最近大概讀一點ucb發布時間rocket處理器的源**,的每個檔案的源**的功能有一定的一般理解,mark一點點。
rocket是一家64bit標量處理器,5第一階段管道,用途risc-v指令集。綜合fpu,還有很多or1200沒有功能,例項:無堵塞快取記憶體、分支**、返回位址堆疊、硬體頁表填充、cache支援ecc、支援多核等。
開源處理器rocket的原始碼檔案作用說明
arbiter.scala
實現了乙個固定優先順序的仲裁器,編號越低,優先順序越高
btb.scala
實現了gshare。當中包括btb(branch target buffer)、bht(branch history table),還實現了ras(return address stack)
consts.scala
定義了一些類似與巨集定義的變臉
core.scala
包括控制通路、資料通路。聯合起來為core
csr.scala
實現了risc-v指令集中定義的control status registers
ctrl.scala
實現了控制通路,當中就反映了5級流水線
decode.scala
當中實現了對卡諾圖的化簡,在指令解碼的時候會使用這裡的功能
dpath.scala
實現資料通路
depath_alu.scala
實現了alu
fpu.scala
實現了與第三方fpu的介面
icache.scala
實現了指令一級快取、取值,當中就使用了btb.scala中定義的分支預測技術
instructions.scala
定義了rocket處理器支援的全部指令
multiplier.scala
實現了乘法、除法運算,當中乘法採用的是迭代法。除法採用的是試商法
nbdcache.scala
實現了資料一級快取。採用mshr技術實現了無堵塞快取
package.scala
定義了復位位址、異常處理vector base address
ptw.scala
實現了硬體的page table walk,也就是硬體頁表填充
rocc.scala
實現了乙個加速協處理器。用來執行使用者自己定義指令
tile.scala
rocket處理器的頂層檔案,當中連線core、指令一級快取、資料一級快取、fpu等模組
tlb.scala
實現了傳輸後備緩衝器
util.scala
定義了一些物件,提供了一些工具函式,比方:型別轉換。
以上是個人的理解。歡迎提出異議,討論啊。
64位處理器與32位處理器的區別
第二,要求配置不同。64位作業系統只能安裝在64位電腦上 cpu必須是64位的 同時需要安裝64位常用軟體以發揮64位 x64 的最佳效能。32位作業系統則可以安裝在32位 32位cpu 或64位 64位cpu 電腦上。當然,32位作業系統安裝在64位電腦上,其硬體恰似 大馬拉小車 64位效能就會大...
64位x86 64處理器架構
本節重點關注所有使用 x86 64 指令集的 64 位處理器的基本架構細節。這些處理器包括 intel 64 和 amd64 處理器系列。指令集是已討論的 x86 指令集的 64 位擴充套件。以下為一些基本特徵 1 向後相容 x86 指令集。2 位址長度為 64 位,虛擬位址空間為 2 64 位元組...
蘋果ARM64移動處理器
friday qa 2013 09 27 arm64 and you.html 64位 我們先來談談 64位 這個術語及其含義。大家對於這個術語一直比較困惑,很大一部分原因在於,它沒有統一的 約定俗成的定義。然而,在大體上卻達成了一些共識,儘管這些共識並未為大眾所知。位 cpu通常是指兩個部分的寬度...