《大話計算機》內容節選之:指令系統和分支預測

《大話計算機》內容節選之:指令系統和分支預測

來自專欄 大話存儲

本書詳細簡介和目錄詳見:《大話計算機》助推國產半導體浴火重生!

根據《大話計算機》內容你點我貼一貼中所述,冬瓜哥收集了 「大話存儲」 和 」大話計算機」 中帖子下的留言如下(藍色表示往期已回答,紅色表示本期選中):

指令系統

我想看分支預測的章節,Intel的漏洞和這個有關

fork流程

6.5.3 中qpi 選路原理能貼嗎? 特別是8p的選路

ddr 內存初始化淺析和memory training

介紹內存和MMIO的解碼規則和內存在BIOS和OS下的布局情況

memory map和decode這兩個概念,特別是decode

5.2.3

cache組關聯

7.1.3 DMA與緩存的一致性

第一章入門部分

10.2.1.1 用戶棧和內核棧

10.9.1.2

9.5.3.3

0.9.2.4

10.2.2.3

6.1.1.超線程並行

6.1.2.多核心/多CPU並行

本次冬瓜哥選擇了如下兩個要求。

  1. 指令系統
  2. 我想看分支預測的章節,Intel的漏洞和這個有關

冬瓜哥點評:

指令系統,或者說ISA,可以說是CPU對外的語言介面,任何高級語言都被翻譯成CPU指令,比如你在c語言中的a=b+c,對應的機器指令是類似: load b 寄存器A;load c 寄存器B,add 寄存器A 寄存器B;寄存器A中保存的就是a的結果。當然,這裡面還牽扯到使用寄存器存放結果,還是把結果放到內存中去。有些處理器提供直接操作內存的指令。不同架構的CPU有不同數量的指令,有的高達七八百條(比如Power系列),有的則只有幾十條(比如開源的RISC-V)。CPU設計者需要針對每一條指令設計對應的解碼、派發和執行過程,內部電路千頭萬緒,控制信號錯綜複雜。在《大話計算機》一書中,冬瓜哥自行設計了一個簡易CPU並給出了幾條樣例指令的電路實現。

分支預測。目前CPU早已實現了流水線技術,其核心思想可參考冬瓜哥的3篇連載:《大話流水線》。流水線中會同時執行多個不同指令的不同子步驟,比如0號指令的執行過程與5號指令的解碼過程同時在進行。這就牽扯到一個問題,如果0號指令是分支指令,根據條件判斷決定跳轉到其它指令執行,那麼在0號指令為得出結果之前,流水線到底應該載入哪個分支的指令,無法判斷。於是有了分支預測技術。

不多說了,上圖。

指令系統:

省略若干篇幅

省略若干篇幅

省略若干,直接進入跳轉指令的實現邏輯

先到這。

分支預測

先到這吧,下面篇幅還很長。留一手。

本期就貼到這裡。沒看夠?請繼續留言吧!本次沒選中的留言會在後續隨著新留言一同重新選,會有機會的。

歡迎關注鄙人微信公眾號:大話計算機、大話存儲

weixin.qq.com/r/sy2KkrD (二維碼自動識別)


推薦閱讀:

【預告】《大話計算機》內容你點我貼

TAG:計算機體系架構 | 中央處理器CPU | 操作系統 |