第四章:處理器體系結(jié)構(gòu)

處理器體系結(jié)構(gòu)

一個處理器支持的指令和指令的字節(jié)級編碼稱為它的指令集體系結(jié)構(gòu)(Instruction-Set Architecture,ISA)刚照。

Y86-64指令集體系結(jié)構(gòu)

程序員可見狀態(tài)

Y86-64程序中的每條指令都會讀取或修改處理器狀態(tài)的某些部分,這稱為程序員可見狀態(tài)。


4.1.1.png

每個程序寄存器存儲一個64位的字。寄存器%rsp被入棧浩姥、出棧、調(diào)用和返回指令作為棧指針状您,除此之外寄存器沒有固定的含義或固定值勒叠。條件碼ZF、SF膏孟、OF保存著最近的算術或邏輯指令所造成影響的有關信息缴饭。程序計數(shù)器PC存放當前正在執(zhí)行指令的地址。

內(nèi)存從概念上說是一個很大的字節(jié)數(shù)組骆莹,保存著程序和數(shù)據(jù)。Y86-64程序用虛擬地址來引用內(nèi)存位置担猛。硬件和操作系統(tǒng)軟件聯(lián)合起來將虛擬地址翻譯成實際或物理地址幕垦,指明數(shù)據(jù)實際存在內(nèi)存中哪個地方。

狀態(tài)碼Stat表明程序執(zhí)行的總體狀態(tài)傅联,會指示是正常運行還是出現(xiàn)了某種異常先改。

Y86-64指令

4.1.2.png
  • movq指令分成了4個不同指令:irmovq,rrmovq蒸走,mrmovq仇奶,rmmovq,分別顯式的指明源和目的的格式比驻,源可以時立即數(shù)i该溯,寄存器r岛抄,內(nèi)存m。指令名字第一個字母表明源的類型狈茉。目的可以是寄存器或內(nèi)存夫椭,第二個字母指明了目的類型。
  • 有4個整數(shù)操作指令氯庆,addq蹭秋、subq、andq堤撵、xorq仁讨,只對寄存器數(shù)據(jù)進行操作。這些指令會設置三個條件碼实昨,ZF零洞豁,SF符號,OF溢出屠橄。
  • 7個跳轉(zhuǎn)指令族跛,jmp,jle锐墙,jl礁哄,je,jne溪北,jge桐绒,jg。根據(jù)指令的類型和條件代碼的設置來選擇分支之拨。
  • 6個條件傳送指令茉继,cmovle,cmovl蚀乔,cmove烁竭,cmovne,cmovge吉挣,cmovq派撕。這些指令的格式與寄存器-寄存器傳送指令rrmovq一樣,但是只有當條件碼滿足所需要的約束時睬魂,才會更新目的寄存器的值终吼。
  • call指令將返回地址入棧,然后跳轉(zhuǎn)到目的地址氯哮,ret指令從這樣的調(diào)用中返回际跪。
  • pushq和popq指令實現(xiàn)了入棧和出棧。
  • halt指令停止指令的執(zhí)行,執(zhí)行halt指令會導致處理器停止姆打,并將狀態(tài)碼設置為HLT良姆。

指令編碼

每條指令需要1-10個字節(jié)不等。每條指令的第一個字節(jié)表明指令的類型穴肘,這個字節(jié)分為兩個部分歇盼,高4位是代碼code部分,低4位是功能function部分评抚。

4.1.3.png

15個程序寄存器中每一個都有一個相對應的范圍在0到0xE之間的寄存器標識符Register ID豹缀。

Y86-64異常

狀態(tài)碼:AOK表示程序執(zhí)行正常,其他的代碼表示發(fā)生了某種類型的異常慨代。HLT表示處理器執(zhí)行了一條halt指令邢笙。ADR表示處理器試圖從一個非法內(nèi)存地址讀或者向一個非法內(nèi)存地址寫。INS表示遇到了非法的指令代碼侍匙。

邏輯設計和硬件控制語言HCL

大多數(shù)現(xiàn)代電路技術都是用信號線上的高電壓或低電壓來表示不同的位值氮惯,當前技術中,邏輯1是用1.0伏特左右的高電壓表示的想暗,邏輯0是用0.0伏特左右的低電壓表示的妇汗。

實現(xiàn)一個數(shù)字系統(tǒng),需要三個主要組成部分:計算對位進行操作的函數(shù)的組合邏輯说莫,存儲位的存儲器單元杨箭,控制存儲器單元更新的時鐘信號。

邏輯門

邏輯門是數(shù)字電路的基本計算單元储狭。

組合電路和HCL布爾表達式

將很多的邏輯門組合成一個網(wǎng)互婿,就能構(gòu)建計算塊,成為組合電路辽狈。

字級的組合電路和HCL整數(shù)表達式

算術/邏輯單元ALU慈参。

集合關系

存儲器和時鐘

組合電路從本質(zhì)上講,不存儲任何信息刮萌。相反驮配,它們只是簡單的 相應輸入信號,產(chǎn)生等于輸入的某個函數(shù)的輸出着茸。為了產(chǎn)生時序電路僧凤,也就是有狀態(tài)并且在這個狀態(tài)上進行計算的系統(tǒng),我們必須引入按位存儲信息的設備元扔。存儲設備都是由同一個時鐘控制的,時鐘是一個周期性信號旋膳,決定什么時候要把新值加載到設備中澎语。

  • 時鐘寄存器,存儲單個位或字,時鐘信號控制寄存器加載輸入值擅羞。
  • 隨即訪問存儲器尸变,存儲多個字,用地址來選擇該讀或?qū)懩膫€字减俏。

Y86-64的順序?qū)崿F(xiàn)

將處理組織成階段

  • 取指fetch召烂,取指階段從內(nèi)存讀取指令字節(jié),地址為程序計數(shù)器PC的值娃承,從指令中抽取出指令指示符字節(jié)的兩個四位部分奏夫,稱為icode指令代碼和ifun指令功能。
  • 譯碼decode历筝,譯碼階段從寄存器文件讀入最多兩個操作數(shù)酗昼。
  • 執(zhí)行execute,在執(zhí)行階段梳猪,算術/邏輯單元ALU要么執(zhí)行指令指明的操作麻削,計算內(nèi)存引用的有效地址,要么增加或減少指針春弥。
  • 訪存memory呛哟,訪存階段可以將數(shù)據(jù)寫入內(nèi)存,或者從內(nèi)存讀出數(shù)據(jù)匿沛。
  • 寫回write back扫责,寫回階段最多可以寫兩個結(jié)果到寄存器文件。
  • 更新PC PC update俺祠,將PC設置成下一條指令的地址公给。

SEQ硬件結(jié)構(gòu)

流水線的通用原理

(未完成)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜘渣,隨后出現(xiàn)的幾起案子淌铐,更是在濱河造成了極大的恐慌,老刑警劉巖蔫缸,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腿准,死亡現(xiàn)場離奇詭異,居然都是意外死亡拾碌,警方通過查閱死者的電腦和手機吐葱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來校翔,“玉大人弟跑,你說我怎么就攤上這事》乐ⅲ” “怎么了孟辑?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵哎甲,是天一觀的道長。 經(jīng)常有香客問我饲嗽,道長炭玫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任貌虾,我火速辦了婚禮吞加,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尽狠。我一直安慰自己衔憨,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布晚唇。 她就那樣靜靜地躺著巫财,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哩陕。 梳的紋絲不亂的頭發(fā)上平项,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音悍及,去河邊找鬼闽瓢。 笑死,一個胖子當著我的面吹牛心赶,可吹牛的內(nèi)容都是我干的扣讼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缨叫,長吁一口氣:“原來是場噩夢啊……” “哼椭符!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耻姥,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤销钝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后琐簇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒸健,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年婉商,在試婚紗的時候發(fā)現(xiàn)自己被綠了似忧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡丈秩,死狀恐怖盯捌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蘑秽,我是刑警寧澤饺著,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布滤祖,位于F島的核電站,受9級特大地震影響瓶籽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜埂材,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一塑顺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俏险,春花似錦严拒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莹痢,卻和暖如春种蘸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竞膳。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工航瞭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坦辟。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓刊侯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锉走。 傳聞我的和親對象是個殘疾皇子滨彻,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容