計算機體系結構是計算機科學與技術學科重要的分支之一。它從全局的觀點出發(fā),通過采用定量分析技術,建立起設計、評價、優(yōu)化計算機體系結構的方法和技術。利用這些方法和技術,可有效地評價已有計算機系統(tǒng)的性能、改進已有的系統(tǒng)設計、進而探討新的體系結構。計算機系統(tǒng)結構是計算機科學工作者,特別是從事偏重于計算機硬件系統(tǒng)和系統(tǒng)軟件研究的科學工作者的一門必備基礎。

本篇上接《芯片》,從芯片深入到CPU。本篇分三部分,第一部分接上篇介紹設計CPU的基本步驟,第二部分介紹CPU原理,第三部分介紹cache原理。

設計CPU的基本步驟

第一步竟然是matlab(或cadence)仿真(matlab真強大啊)。印象中matlab是可以進行FPGA設計的,設計好還能自動轉換verilog代碼。

第二步當然就是實際的verilog/VHDL代碼編寫了,這個過程也叫前端仿真,之前用賽靈思做通信收發(fā)機實驗的時候印象中仿真軟件是可以根據(jù)verilog直接輸出波形的,用來進行功能驗證足夠了。

第三步邏輯綜合,生成實際的邏輯門電路,據(jù)說還會考慮時延。這一步里就要引入臺積電、中芯國際這種代工廠的工藝庫了,芯片設計企業(yè)拿到工藝庫后,就能根據(jù)工藝庫生成對應的電路參數(shù),驗證芯片了。

第四步仿真驗證,也叫后端仿真,這個在學校做過的,就是拿FPGA驗證一下綜合之后的邏輯門電路。一般在學校做項目或者課題到這里就結束了,“我都已經做出實物了,很厲害了好吧?”,其實還有一步后端設計,就是把這個燒進FPGA的東西設計成電路板圖,加一些測試電路,進行布局規(guī)劃等等。

(之前跟做芯片的大佬一起出差招聘,聽他們嘮嗑各種前端后端的,現(xiàn)在終于明白是做啥了。

現(xiàn)在的所謂高端芯片,核心架構是ARM的,代工是臺積電的,設計工具是美國的,誰能告訴我芯片設計企業(yè)的核心競爭力在哪里?僅僅是離最終產品更近嗎?所以海思永遠無法脫離華為而單獨變得偉大?)

CPU原理

在上世紀40年代,英國科學家圖靈發(fā)明了圖靈機,圖靈機由紙帶、讀寫頭、控制規(guī)則、狀態(tài)寄存器等組成,圖靈機在原理上與現(xiàn)代計算機一模一樣。下面簡單描述一下這個“原理”:

我有一個紙帶(有沒有想到高中物理牛頓力學里的紙帶?),紙帶上寫了我需要的計算比如這樣:

a = 5;

b = 1;

c = a + b;

d = a - b;

e = a * b;

f = a / b;

讀寫頭按紙帶的進入順序讀紙帶的內容,圖靈機里有abcdef 6個寄存器,讀到c = a + b,就需要翻譯一下去找加法操作和取a b值,把a和b兩個寄存器里的值和加法告訴運算器,就輸出了一個結果保存到c里。

現(xiàn)代計算機采用了相同的原理。紙帶上的內容叫程序,程序放到了內存里。讀寫頭叫PC,用來從內存里按順序讀取程序內容,控制單元對讀到的內容進行譯碼分解成操作碼(加法)和操作數(shù)(a的地址),然后根據(jù)a的地址去內存里取數(shù)據(jù)內容,這個時候把操作碼和操作數(shù)告訴算術邏輯單元(ALU),計算出結果后回寫到內存里。

為什么寫上面這么些廢話?因為我以前不知道圖靈機是啥,你知道嗎?下面提一個問題,提到計算機總說源自馮諾依曼架構,那么現(xiàn)代計算機是馮諾依曼計算機結構嗎?這個不一定。還有一個哈弗架構,哈弗架構跟馮諾依曼架構的主要區(qū)別是“是否設計了單獨的程序存儲器和數(shù)據(jù)存儲器”,如果你的計算機有單獨的程序存儲器和數(shù)據(jù)存儲器,那么它就是哈弗架構,哈弗架構的特點很明顯:并行帶來速度提升,但實現(xiàn)復雜,代表就是51單片機。現(xiàn)代高性能arm多采用混合架構,一塊同時存儲指令和數(shù)據(jù)的內存,但還加了單獨的指令cache和數(shù)據(jù)cache。

cache原理

既然提到cache了,最后這部分介紹cache。CPU速度按照摩爾定律指數(shù)級上漲,內存運行速度卻沒有相應提升(挺奇怪的)。算了,已經寫了1200字了,cache還挺重要的,單獨寫一篇吧。

郵箱
huangbenjincv@163.com

当阳市| 洮南市| 重庆市| 阿巴嘎旗| 探索| 黑河市| 天祝| 鄂州市| 遂昌县| 舞钢市| 桂东县| 临城县| 新巴尔虎右旗| 盐源县| 呼图壁县| 彩票| 南京市| 巢湖市| 兰溪市| 石屏县| 凤庆县| 聂拉木县| 隆子县| 礼泉县| 汝州市| 科技| 疏附县| 华宁县| 米易县| 灵山县| 公安县| 托克逊县| 南靖县| 山西省| 林周县| 应城市| 乌兰县| 丰顺县| 宁安市| 云林县| 汉川市|