a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

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

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

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

  有了契約,整個解決方案就被分成了兩部分:硬件和軟件。只要其中的接口(interface)不變,兩邊其實都不大關心對面究竟在背地里搞什么名堂。我們經常見到這種接口,它就是指令集(instruction set)。

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

  于是在軟件一方,人們漸漸覺得機器碼看起來實在是太詭異了,就出現了高級語言,讓編程這件非人類的事情盡量地向人類的自然語言靠攏。當然,這一切都離不開編譯器(compiler)的支持。如今人們已經離軟硬劃分的借口很遠了,遠到了軟件已經出現了自己的一套哲學、思考問題的范式。

  在,也就是硬件的一方,人們的步伐看起來似乎要慢得多。畢竟,硬件是一件需要大量金錢和經驗的工作,這導致它不可避免的不像軟件那么易于上手,從業者不那么人山人海。不過,我們已經看到了至少3代的,其中每一代的性能提升都是非常巨大的。我們將要看到,這種巨大的性能的提升,其本質是集成度的極大提高,源動力是電路和器件層面的。和軟件相反,今天的“聰明”的雄心勃勃,正在試圖越過曾經神圣不可侵犯的契約,高效的完成一些以往只有編譯器才能完成的優化工作。

  上面的內容說得有點遠了,我們再考慮回我們的小學算術題,只不過這一次完全從CPU的角度考慮,就是下面幾條指令:

  load reg1, mem1
  load reg2, mem2
  add reg1,reg2,reg3
  store mem3, reg3

  其中我們假設1和2分別存在mem1和mem2里,運算結果存在mem3里

  從上面的偽匯編碼,再結合算術的類比,我們想到:

  我們必須有一張紙來記住題目和答案->CPU必須有(memory)、寄存器(register)的配合

  我們必須會計算加法->CPU中必須有算術-邏輯單元(Arithmetic Logic Unit,ALU)。

  我們需要理解紙上的符號->CPU需要有指令譯碼(instruction decode)器

  紙上的符號被理解之后還要被我們轉移到腦海中至少短暫地被記住->CPU需要有與直接進行交涉的加載/存儲單元(load/store unit)

  我們需要從試卷上的一大堆題目中選擇一道我們將要完成的題目->CPU需要有取指(instruction fetch)單元

  上面的例子中我們已經涉及到了幾乎全部的CPU子模塊。漏下的可能只是分支單元(branch),I/O單元(I/O controller),以及控制上面這么多邏輯的控制器(controller)了。我們得到了第一個CPU模型,正如第一代CPU設計者們用非常straightforward的思考建造的一樣。

  以上我們從空間上討論了第一個CPU應該有些什么單元,下面我再列一下從時序上來說一個指令執行分為哪些階段:

  IF = instruction fetch
  ID = instruction decode
  OC = operhand calculation
  EX = execution
  WB = result writeback

  將上面這5個步驟老老實實重復一遍,一條指令就執行完了。

  注意上面的MR步驟對于的操作是只讀的,WB步驟對于存儲器的操作是只寫的。你解題的時候應該不能擅自修改題目的運算數,或者抄襲一個還不存在的答案吧!!

  這第一個CPU模型雖然簡陋,卻能夠工作。我們后續將要討論的高性能無不是處于對它的優化改良而成。

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




評論


相關推薦

技術專區

關閉