設計自己的處理器 標題有點大,其實就是從零開始,探討學習處理器是怎么被設計出來的思想。 問題來了,為什么會有那些不同架構的CPU,然后有不同配套的匯編語言? 計算機由兩部分組成,軟件和硬件(沒有軟件的計算機連廢鐵都不如,哈哈半導體)。 那么硬件工
設計自己的處理器
標題有點大,其實就是從零開始,探討學習處理器是怎么被設計出來的思想。
問題來了,為什么會有那些不同架構的CPU,然后有不同配套的匯編語言?
計算機由兩部分組成,軟件和硬件(沒有軟件的計算機連廢鐵都不如,哈哈半導體)。
那么硬件工程師要和軟件工程師共同溝通并開發我們想要的計算機,溝通需要一個標準,就像諜戰人員的密碼電報一樣,你得“自己人懂自己人的語言”。硬件工程師和軟件工程師達成一致,于是這個標準就是—— 指令系統。
起初為了便于人類記憶,于是就把相應指令盡可能的用人類語言的單詞簡單寫法代替,ADD,JMP(jump為便于記憶寫成了JMP)
實際上,計算機是不認識這些人類字符的。他只能識別兩種邏輯——0和1.但是基于這兩種邏輯表達形式0和1,利用不同的序列能夠衍生出其他豐富的邏輯表達形式。比方說0001表示 ADD 0000表示LOAD等等。
下面是指令的格式,假定我們設計的計算機CPU的指令長度都是2byte(實際上x86就不是指令等長度的)
我們可以假定如下設計理念。
只要建立好這種對應的字符對應01組合的對應關系,我們就可以很方便的“翻譯字符到01組合”。實際上這個過程是匯編語言編譯之后得到機器代碼。
任何事情真正弄明白都要知道來龍去脈,以上就回答了,blog開頭提出的問題。為什么我們需要一套指令系統?
為了更好的協同合作!
----------------------------------------------------------------------------------------------------------------------------------------------
僅作個人筆記用,推薦有心人一起學習交流討論北大在coursera出的《計算機組成原理》。陸老師講的很好!
我打算把自己遇到的問題或學到的東東總結出來。僅做個人交流討論用。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com