64位開源處理器Rocket該人士介紹

2021-09-07 03:22:35 字數 1339 閱讀 1453

最近大概讀一點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通常是指兩個部分的寬度...