<address id="9993j"><address id="9993j"><listing id="9993j"></listing></address></address><form id="9993j"><nobr id="9993j"><meter id="9993j"></meter></nobr></form>

    <output id="9993j"><nobr id="9993j"></nobr></output>

    <noframes id="9993j">
        <address id="9993j"><address id="9993j"></address></address>

          <noframes id="9993j"><address id="9993j"><th id="9993j"></th></address>

          <noframes id="9993j">

            <em id="9993j"><form id="9993j"><nobr id="9993j"></nobr></form></em>

            新聞中心

            EEPW首頁 > 嵌入式系統 > 設計應用 > 從4004到core i7:處理器的進化史 (3)-1—萬事開頭難

            從4004到core i7:處理器的進化史 (3)-1—萬事開頭難

            作者:時間:2014-02-19來源:摘自《果殼小組》網收藏

              我們就用一個最簡單的例子說起。

            本文引用地址:http://www.snowlakeshores.com/article/221768.htm

              現在讓我們暫時先忘掉編程和,集中精力來解下面這一道小學算術題:

              1+2=?

              不要以為算出答案就完事了,我們來仔細想一想我們是怎么算數的。

              首先我們是有眼睛的,所以看到了上面的那道算術題。

              其次我們的眼睛是有焦點的,也就是說我們一般一時間只能看清一道算術題中的某一個數字符號。

              然后我們會做加法。我們并非生來就會做加法,而是因為我們都上過小學,學過算數。換言之,我們被訓練過,大腦中有了相應的突觸連接。我們只能被訓練做有限的事情。萬能顯然不是用來形容人類或者的。

              有了上面的生理基礎還不夠。我們還需要一支筆來書寫,一張紙來記錄。

              我們先不要急著往計算機上靠攏,而是想一想我們上面究竟都弄清楚了些神馬:

              我們有一個需求,即計算1+2=?我們用清楚的語言描述了這個需求。這叫做設計捕捉(design capture)。

              我們能描述清楚滿足這種需求的流程:

              用眼睛從題目的最左端向右掃視,辨認沿途碰到的每一個符號,同時將符號分成兩堆:數和運算符。

              這些符號我們可以記在大腦中,但是想象我們是某種極其健忘的生物,必須要用筆記錄在紙上。

              想要完成一次運算,我們至少得明白加法的含義,并且短暫地記住加數和被加數。

              我們終于完成了運算,趕快把結果寫在題目后面,免得忘掉了。

              以上我們有了一個切實可行的算法。你可以注意到,這種算法其實是高度抽象、靈活的。比方說,我可以把眼睛換成攝像頭,把大腦換成一個最簡單的那種按起來滴滴響的計算器,等等。這就是說,我們有了一個行為描述(behavioral discrption),這種描述其實并沒有指定具體的解決方案。

              接下來讓我們假設我們突然獲得了有關半導體的知識,突然明白了用MOS管可以實現。對于高效、正確地完成大量小學算術題這個任務,你有什么想法呢?

              算術題可以用比特表示出來,因為算術題的種類(加減乘除等等)是有限的,運算數也很好用比特表示出來(請相關人員自行腦補補碼等內容)。運算這個操作十分簡單、機械本身也很好用數字邏輯表示出來。為了存貯這些比特,我們可能需要一些記憶單元(類比于符號和筆紙的關系)。十分幸運的是,這些記憶單元也非常容易用晶體管搭建出來(寄存器、緩存、內存(主存))。

              但是算術題本身卻可以千變萬化??梢允?+2,可以是2+3,可以是3+4......盡管其中每一個操作用晶體管搭出來都很簡單,組合卻是沒有窮盡的。也就是說,我們最好在臨算術之前用某種方式告訴晶體管它要完成的究竟是哪一道算術題。

              以上我們區分了行為描述中兩種不同的成分:固定、機械的和靈活多變、無法窮盡的。我們很自然地想到刻在硅片上的電路板極其擅長前者,而后者恐怕就要由我們的更強大的大腦代勞了。這就是硬件/軟件劃分(hw/sw partitioning)。不要小瞧了這個劃分,在很多數字系統中軟硬劃分常常決定了整個工程執行的速度??傊?,每個組件只做一件事情,但要做好。Divide and conquer.這不光是的設計哲學。

              軟硬劃分是億萬程序員和相比起來寥寥無幾的CPU設計師的神圣不可侵犯的契約。這個劃分是如此的堅固,以至于千千萬萬的freshman在學到時想都不想就認為編程是一件自然的事情。

            c語言相關文章:c語言教程



            上一頁 1 2 3 下一頁

            評論


            相關推薦

            技術專區

            關閉
            五月天国产成人AV免费观看