學習資源:http://blog.csdn.net/zhangyuan19880606/article/details/51258759算法
這門課絕對算是我四年裏學過的最有意義的課程之一。如何學好不大清楚,只能說說個人感覺。學習
學這門課程以前,要先忘掉這門課程名字中的「計算機」三個字。每節課,每一個課程階段都會介紹一種電路。從簡單到複雜,從開關到ALU。每一個階段作出來的東西看起來都和「計算機」沒什麼關係,除了他們都能存儲和運算。可是會很清楚的瞭解到每一個階段作出來的東西其實徹底沒有「存儲」和「運算」功能。他們只不過是一種電路的狀態,或者經過一個信號,控制另外一部分電路的狀態。因爲很簡單,很容易弄清楚這個東西是如何工做的。最後把全部東西拼成一塊CPU的時候,就像你趴在地上拼拼圖,拼完最後一塊起身俯視的感受。會了解到高低電平是如何經過各類門電路變成數據,變成屏幕上花花綠綠的程序的。這就是所謂的「原理」。spa
這門課徹底能夠用一個詞來歸納,就是「抽象」。在我看來這也是整個計算機設計中所蘊含的的靈魂。操作系統
其實一個門電路徹底不知道本身在作什麼,不過是按照電氣特性把高電平變成低電平,低電平變成高電平。是人們把這些不一樣的狀態抽象出0和1的概念,而後從中產生了「邏輯門」。並用此來表達邏輯運算,而後用這些邏輯運算去表示二進制的數值運算,再把這些運算組合起來,用一組開關來啓動,就有了一條指令,最終把這些簡單的電路變成了CPU。整個過程不過是一層一層的抽象。上層依賴於下層所提供的功能與意義,完成自己的功能同時又提供了更高層次的抽象。最後你從上挖到下,最底下的一層根本找不到什麼0或1 。包括操做系統和各類協議,絕大部分計算機相關的東西都是這麼一層層抽象出來的。這就是「計算機」「組成」的「原理」。.net
友情提示,理論課能夠逃,但實驗課絕對不能逃。不知道大家的實驗課作的是什麼,咱們是用VHDL寫程序,而後燒到一個FPGA試驗檯裏面。因爲個人理論課老師每次課程要花至少三分之二的時間給咱們講西遊記的處世哲學,因此我基本沒怎麼上過。但實驗課一次沒逃過,就算因故缺勤也會本身找老師補上。我感受算法也好,理論也好,玩具也好,若是本身不親自拆一遍再裝回去,就沒辦法深入理解它們是怎麼跑起來的。
http://spoc.wzu.edu.cn/portal/course/1408/5705.mooc設計
目錄blog
導論內存
寄存器和運算器資源
內存讀寫操做io
數據通路綜合練習
內存讀寫操做的微指令實現
寄存器讀寫及機器指令的微程序實現
微程序相關概念及指令系統
指令系統的尋訪方式
並行技術與流水CPU
指令系統與中央處理器
馮諾伊曼結構
#表示負邏輯,0有效,1無效;帶T的信號要與時序脈衝(QD)配合才能生效
初始化:關閉全部的總線信號;關閉全部的寫入信號
第二節課 內存讀寫操做的微指令實現