色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開始了解RISC-V的好

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2021-01-08 17:34 ? 次閱讀

RISC和CISC戰爭在1990年代后期爆發以來,人們就宣稱RISC和CISC不再重要。許多人會指出指令集是無關緊要的。

但是指令集其實很重要,因為他們限制了可以輕松添加到微處理器的優化類型。作者最近一直在學習有關RISC-V指令集體系結構(ISA)的更多信息,以下是作者對RISC-V ISA最印象深刻的一些方面:1.這是一個RISC指令集,它很小且易于學習(基礎為47個)。對于任何對學習微處理器感興趣的人都非常友好。

2.大學中用于數字設計教學的主導架構。

3.它經過精心設計,可讓CPU制造商使用RISC-V ISA創建高性能微處理器

4.無需授權費,并且被設計為允許簡單的硬件實現,那么專業的業余愛好者原則上就可以在合理的時間內進行自己的RISC-V CPU設計。

5.易于修改和使用的開源設計。

1

RISC的復仇

正如我開始了解RISC-V的好,我認識到,RISC-V其實是一個根本性的轉,因為它讓我們回到了那個好多人認為已經過去的計算時代。在設計方面,RISC-V就好像回到了上世紀八九十年代的經典RISC 時代。。

在隨后的幾年中,許多人指出RISC和CISC的區別不再重要,因為像ARM這樣的RISC CPU添加了很多指令,許多指令相當復雜,以至于今天它比純RISC CPU更像是一種混合。對于其他RISC CPU(例如PowerPC)也有類似的看法。

相比之下,RISC-V則是RISC CPU中的硬核。實際上,如果您閱讀有關RISC-V的討論,您會發現有人聲稱RISC-V是由一些拒絕與時俱進的老派RISC激進分子制造的。

前ARM工程師Erin Shepherd幾年前對RISC-V發表了有趣的評論:

RISC-V ISA追求極簡主義,這是一個錯誤。因為他們過分強調了最小化指令數量,規范化編碼等。這種極簡主義的追求導致錯誤的正交性(例如將相同的指令重新用于分支,調用和返回),并且需要多余的指令,這會影響代碼密度。指令的大小和數量。

讓我快速介紹一下。保持較小的代碼對性能有利,因為這樣可以更輕松地將正在運行的代碼保持在高速CPU緩存中。

這里的批評是RISC-V設計師過于關注使用小的指令集。這畢竟是最初的RISC目標之一。

這樣聲稱的結果是,一個現實的程序將需要更多的指令來完成工作,從而占用更多的內存空間。

多年以來的傳統常識是,RISC處理器應添加更多指令并變得更像CISC。這個想法是,更專業的指令可以代替多個通用指令的使用。

2

壓縮指令和宏操作融合但是,CPU設計中特別存在兩項創新,這些創新從許多方面使添加更多復雜指令的策略變得多余:

壓縮指令-指令在內存中進行壓縮,并在CPU的第一階段進行解壓縮。

宏操作融合-將CPU讀取的兩個或更多簡單指令融合為一個復雜指令。

ARM實際上已經采用了這兩種策略,而x86 CPU則采用了后者,因此這并不是RISC-V的新招。

但是,這里有一個關鍵點:RISC-V從這些策略中獲得了更大的優勢,其原因有兩個:

1.從一開始就添加了壓縮指令。ARM上使用的Thumb2壓縮指令格式必須通過將其添加為單獨的ISA進行改進。這需要一個內部模式開關和單獨的解碼器來處理。但在RISC-V方面,壓縮指令可以添加到帶有最少400個額外邏輯門(AND,OR,NOR,NAND門)的CPU中。

2.RISC對保持唯一指令數量低的癡迷得到了回報。壓縮指令帶來更多空間。

3

指令編碼

后一部分需要一些闡述。在RISC架構上,指令通常為32位寬。這些位需要用于編碼不同的信息。例如,假設有一條這樣的指令(hash marks comments):ADD x1,x4,x8#x1←x4 + x8

這的注冊內容x4和x8結果存儲到x1。我們需要對此進行編碼的位數取決于我們擁有的寄存器數量。RISC-V和ARM64具有32個寄存器。數字32可以用5位表示:2^5= 32

由于必須指定3個不同的寄存器,因此總共需要15位(3×5)來編碼操作數(用于加法運算的輸入)。

因此如果我們希望在我們的指令集支持更多的東西,那么我們小號消耗的32bit位數越多。當然,我們可以使用64位指令,但這將消耗過多的內存,從而降低性能。

通過積極降低指令數量,RISC-V留出了更多空間來添加表示我們正在使用壓縮指令的位。如果CPU看到指令中的某些位被設置,則知道應該將其解釋為壓縮指令。

4

壓縮指令:二合一

這意味著,我們可以將兩條16位寬的指令放入32位字中,而不必在32位字中插入一條指令。自然,并非所有的RISC-V指令都可以16位格式表示。因此,根據32位指令的效用和使用頻率來選擇它們的子集。未壓縮的指令可以使用3個操作數(輸入),而壓縮的指令只能使用2個操作數。因此,壓縮ADD指令如下所示:C.ADD x4,x8#x4←x4 + x8

RISC-V匯編使用C.前綴來指示匯編器應將指令轉換為壓縮指令。但是實際上您不需要編寫此代碼。如果適用,RISC-V匯編程序將能夠選擇未壓縮指令而不是未壓縮指令。

基本上壓縮的指令減少了操作數的數量。三個寄存器操作數將消耗15位,而只剩下1位來指定操作!因此,通過使用兩個操作數,我們剩下了6位來指定操作碼(執行操作)。

實際上,這與x86匯編的工作方式非常接近,在x86匯編中,保留的位數不足以擁有3個寄存器操作數。取而代之的是,x86會花費一些位來允許例如一條ADD指令從存儲器和寄存器中讀取輸入。

5

宏操作融合:一對一

但是,當我們將指令壓縮與宏操作融合相結合時,我們才能看到真正的收獲。你看,如果CPU得到包含兩個壓縮的16位指令的32位字,它可以融合這些成一個單一的復雜指令。

聽起來像胡說八道,難道我們不是剛回到起點嗎?我們不是要避免使用CISC樣式的CPU嗎?

不會,因為我們避免使用很多復雜的指令,x86和ARM策略來填充ISA規范。相反,我們基本上是通過簡單指令的各種組合間接地表達大量復雜指令。

在正常情況下,宏融合存在一個問題:盡管兩條指令可以被一條指令代替,但它們仍然消耗兩倍的內存空間。但是通過指令壓縮,我們不再消耗更多空間。我們兩全其美。

讓我們看一下Erin Shepherd的例子之一。在對RISC-V ISA的批評中,她展示了一個簡單的C函數。為了清楚起見,我重寫了一下:int get_index(int * array,int i){

return array [i];

}

在x86上,它將編譯為:mov eax,[rdi + rsi * 4]

ret

當您以編程語言調用函數時,通常會根據已建立的約定將參數傳遞給寄存器中的函數,這取決于所使用的指令集。在x86上,第一個參數放置在rdi寄存器,中第二個參數放置在中rsi寄存器中。按照慣例,返回值必須放在eax寄存器中。

第一條指令將rsi中的內容乘以4。它包含我們的i變量。為什么要相乘?由于array都是由整數元素組成,因此它們之間的間隔為4個字節。因此,數組中的第三個元素實際上處于字節偏移量3×4 = 12。

之后,我們將其添加到rdi中,因為它包含了array的基礎地址地址。這為我們提供了array中i元素的最終地址。我們讀存儲單元的內容,并將其存儲在eax,任務就此完成了。

在ARM上,它非常相似:LDR r0,[r0,r1,lsl#2]

BX lr; return

在這里,我們不是與4相乘,而是r1寄存器向左移動2位,這等同于與4相乘。這可能也是x86代碼中發生情況的更真實的表示。在x86上,您只能乘以2、4或8,所有這些都可以通過左移1、2或3來執行。

無論如何,您幾乎可以從我的x86描述中猜測其余的內容。現在讓我們進入RISC-V,真正的樂趣開始了?。╤ash starts comments)

SLLI a1,a1,2#a1←a1 《《 2

ADD a0,a0,a1#a0←a0 + a1

LW a0,a0,0#a0←[a0 + 0]

RET

在RISC-V寄存器上,a0,a1僅是x10和x11的別名。這些是放置函數調用的第一個和第二個參數的位置。RET是偽指令(簡寫):JALR x0,0(ra)#sp←0 + ra

#x0←sp + 4 ingnoring resultJALR跳轉到ra引用返回地址的地址。ra是x1的別名。

無論如何,這看起來簡直太可怕了吧?這樣簡單而通用的操作的指令需要在表中進行基于索引的查找并返回。

確實確實看起來很糟。這就是為什么Erin Shepherd高度批評RISC-V團隊做出的設計選擇的原因。她寫道:RISC-V的簡化使解碼器(即CPU前端)更容易,但以執行更多指令為代價。但是,縮放流水線的寬度是一個難題,而對輕微(或高度)不規則指令的解碼已廣為人知(當確定一條指令的長度不平凡時,主要的困難就出現了-x86在這種情況下尤其糟糕,因為他們又d眾惡多前綴)。

但是,由于指令壓縮和宏操作融合,我們可以解決這個問題。C.SLLI a1,2#a1←a1 《《 2

C.ADD a0,a1#a0←a0 + a1

C.LW a0,a0,0#a0←[a0 + 0]

C.JR ra

現在,這將占用與ARM示例完全相同的內存空間。

好的,接下來讓我們做一些

Macro-op融合!

RISC-V中允許將操作融合為一個的規則之一是目標寄存器是相同的。ADD和LW(加載字)指令就是這種情況。因此,CPU將這些指令轉換為一條指令。

如果SLLI也是如此,我們可以將所有三個指令融合為一個。因此,CPU會看到類似于更復雜的ARM指令的內容:LDR r0,[r0,r1,lsl#2]

為什么我們不能在代碼中直接編寫這種復雜的宏操作?

因為我們的ISA不包含對它的支持!我們有有限的可用位數。為什么不延長說明時間呢?因為那會消耗太多內存,并更快地填充寶貴的CPU緩存。

但是,如果我們在CPU內部制造這些長的半復雜指令,則無需擔心。因為在任何時候,CPU永遠不會漂浮數百條指令。因此,在每個指令上浪費128位并不重要。每個人都有很多硅。

因此,當解碼器獲得正常指令時,通常會將其轉換為一個或多個微操作。這些微操作是CPU實際處理的指令。這些可能真的很廣泛,并且包含許多額外的有用信息??紤]到它們很寬,將它們稱為“微型”可能看起來具有諷刺意味。但是,“微型”是指它們執行的任務數量有限。

6

Goldie鎖定指令的復雜性

宏操作融合使解碼器的工作變得微不足道:我們沒有將一條指令變成多個微操作,而是采取了多種操作并將它們變成一個微操作。

因此,現代CPU中發生的事情顯得有些奇怪:

1.首先,它通過壓縮將兩條指令組合為一條。2.然后通過解壓將其分為兩部分。3.通過宏操作融合將它們組合回一個操作中。

相反,其他指令最終可能會分成多個微操作,而不是被融合。為什么有些人會融合而另一些人會分拆呢?關鍵是最終要進行適當程度的復雜性的微操作:

不太復雜,因為否則它無法在為每個指令分配的固定數量的時鐘周期內完成。

不太簡單,因為那樣我們就在浪費CPU資源。執行兩次微操作所需的時間是執行一次微操作所需時間的兩倍。

這一切都始于CISC處理器。英特爾開始將其復雜的CISC指令拆分為微操作,因此它們可以像RISC指令那樣更輕松地適應其流水線。但是,在后來的設計中,他們意識到許多CISC指令是如此簡單,以至于它們很容易與一種中等復雜的指令融合在一起。如果執行的指令較少,則可以更快地完成。

7

這樣設計的好處

好的,這有很多細節,也許很難弄清重點是什么。為什么要進行所有這些壓縮和融合?這聽起來像很多額外的工作。

首先,指令壓縮與zip壓縮完全不同。“壓縮”一詞有點用詞不當,因為立即解壓縮已壓縮的指令非常簡單。這樣做不會浪費時間。記住,對于RISC-V來說很簡單。僅使用400個邏輯門,即可執行解壓縮。

宏操作融合也是如此。盡管這看起來很復雜,但是這些方法已經在現代微處理器中使用。因此,已經支付了這種復雜性的稅收或成本。

但是,與ARM,MIPS和x86設計人員不同,RISC-V設計人員在開始設計ISA時就知道指令壓縮和宏操作融合。或更準確地說,競爭對手在設計原始ISA時對此一無所知。在設計x86和ARM指令的64位版本時,他們可能已經考慮到了這一點。為什么他們沒有,我們只能推測。但是,似乎公司喜歡制作新的ISA,而這些ISA不會偏離更早的版本。通常,這是要消除過去的明顯錯誤,而不是徹底改變哲學。

通過使用第一個最小指令集的各種測試,RISC-V設計人員取得了兩個重要發現:

1.RISC-V程序通常會比其他任何CPU體系結構占用或減少內存空間。包括x86,考慮到它是CISC ISA,它本來可以節省空間。2.與其他ISA相比,它需要執行的微操作更少。

基本上,通過設計具有融合功能的基本指令集,他們能夠融合足夠多的指令,從而使任何給定程序的CPU執行的微操作都比競爭對手少。

這使得RISC-V團隊將宏操作融合作為RISC-V的核心策略。您可以在RISC-V手冊中看到很多有關可以融合哪些操作的注釋。您會看到已對指令進行了修訂,以便更輕松地融合以常見模式顯示的指令。

將ISA保持較小意味著學生更容易學習。這意味著對于學習CPU架構的學生來說,實際上更容易構建運行RISC-V指令的CPU。

RISC-V具有每個人都必須實現的小型核心指令集。但是,所有其他指令都作為擴展的一部分存在。壓縮指令只是一個可選擴展。因此,對于簡單設計,可以省略。

宏操作融合只是一種優化。它不會改變整體行為,因此不需要您在特定的RISC-V處理器中實現它。

相反,對于ARM和x86,很多復雜性不是可選的。即使您嘗試創建最小的簡單CPU內核,也必須實現整個指令集和所有復雜的指令。

8

RISC-V設計策略

RISC-V吸收了我們對現代CPU的了解,并使其成為設計和ISA的選擇。例如,我們知道:

今天,CPU內核具有先進的分支預測器。他們的預測可以在90%的時間內糾正。

CPU內核是超標量的,這意味著它們可以并行執行多個指令。

使用亂序執行是超標量的。

它們已pipelined。

這意味著不再需要諸如ARM支持的條件執行之類的東西。在ARM上支持以指令格式占用位。RISC-V可以保存這些位。

有條件執行的最初目的是避免分支,因為分支對pipeline不利。為了使CPU快速運行,通常會預取下一條指令,以便在上一條指令完成其第一階段后立即選擇下一條指令。

但是對于條件分支,開始填充pipeline時,您不知道下一條指令在哪里。但是,超標量CPU可以簡單地并行執行兩個分支。

這也是RISV-C沒有狀態寄存器的原因。這在指令之間創建了依賴關系。每條指令越獨立,與另一條指令并行運行就越容易。

RISC-V策略基本上是,我們如何才能使ISA盡可能簡單,并盡可能簡化RISC-V CPU的最小實現,而又無需做出使高性能CPU成為可能的設計決策。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120662
  • 微處理器
    +關注

    關注

    11

    文章

    2271

    瀏覽量

    82549
  • RISC-V
    +關注

    關注

    45

    文章

    2294

    瀏覽量

    46249

原文標題:為什么大家都看好RISC-V

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于RISC-V學習路線圖推薦

    一個號的RISC-V學習路線圖可以幫助學習者系統地掌握RISC-V架構的相關知識。比如以下是一個較好的RISC-V學習路線圖: 一、基礎知識準備 計算機體系結構基礎 : 了解計算機的基
    發表于 11-30 15:21

    RISC-V發展及FPGA廠商為什么選擇RISC-V

    Microsemi 于 2017 年開始在其 FPGA 中提供 RISC-V 軟核,Lattice 于 2020 年開始提供,英特爾 (Altera) 于 2021 年開始提供,因此
    的頭像 發表于 11-11 10:24 ?454次閱讀
    <b class='flag-5'>RISC-V</b>發展及FPGA廠商為什么選擇<b class='flag-5'>RISC-V</b>

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未來 !

    加入RISC-VAdvocate行列!我們正在尋找來自世界各地的RISC-V愛好者,通過全球推廣和參與,成為支持RISC-V進步的關鍵參與者。作為一名RISC-VAdvocate,您將
    的頭像 發表于 09-10 08:08 ?431次閱讀
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未來 !

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,賦能RISC-V高效落地

    沁恒在歷屆峰會上分享RISC-V在MCU領域的創新成果,和大家共同見證了本土RISC-V產業的成長。早在第一屆RISC-V中國峰會上,沁恒就公開了青稞RISC-V系列量產芯片的關鍵技術
    的頭像 發表于 08-30 18:18 ?1551次閱讀
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,賦能<b class='flag-5'>RISC-V</b>高效落地

    RISC-V Summit China 2024 | 青稞RISC-V+接口PHY,賦能RISC-V高效落地

    應用開發更加便捷,使廣大客戶無需改變原有開發習慣,即可輕松了解RISC-V、上手RISC-V、快速完成項目開發,從而加速RISC-V在應用端的落地。 08 走在前沿,遍及全球 未來,沁
    發表于 08-30 17:37

    2024 RISC-V 中國峰會:華秋電子助力RISC-V生態!

    第四屆RISC-V中國峰會(RISC-V Summit China 2024)于8月21日至23日在杭州盛大召開,成為RISC-V領域的一次重要盛會
    的頭像 發表于 08-26 18:33 ?926次閱讀
    2024 <b class='flag-5'>RISC-V</b> 中國峰會:華秋電子助力<b class='flag-5'>RISC-V</b>生態!

    risc-v的發展歷史

    RISC-V的發展歷史可以追溯到2006年左右,當時David Patterson和其他研究者開始探索創建一個開放和可擴展的指令集架構(ISA)。以下是RISC-V發展的主要里程碑: 一、起源與初步
    發表于 07-29 17:20

    rIsc-v的缺的是什么?

    RISC-V作為一種開源的指令集架構(ISA),自其誕生以來就受到廣泛關注和應用,但它也存在一些不足之處。以下是RISC-V架構目前存在的主要缺點: 1. 性能問題 相對于專用ISA的性能差距:盡管
    發表于 07-29 17:18

    2024 RISC-V 中國峰會【同期活動】登記開始

    第4屆RISC-V中國峰會(RVSC2024)定于8月19至25日舉辦,其中主會和展會于21-23日在浙江杭州黃龍飯店舉行。經過幾年的發展,RISC-V中國峰會已經成為全球三大RISC-V專業會展
    的頭像 發表于 06-26 08:36 ?1032次閱讀
    2024 <b class='flag-5'>RISC-V</b> 中國峰會【同期活動】登記<b class='flag-5'>開始</b>

    解鎖RISC-V技術力量丨曹英杰:RISC-V與大模型探索

    4月12日,第二期“大家來談芯|解鎖RISC-V技術力量”在上海臨港新片區頂科永久會址舉辦,本期沙龍聚焦RISC-V技術,圍繞AI時代的RISC-V市場機會、RISC-V在汽車領域的應
    的頭像 發表于 04-16 08:16 ?731次閱讀
    解鎖<b class='flag-5'>RISC-V</b>技術力量丨曹英杰:<b class='flag-5'>RISC-V</b>與大模型探索

    什么是RISC-V?RISC-V的關鍵技術

    RISC-V不僅僅是一個流行語;它建立在堅實的技術基礎之上,使其有別于其他指令集架構 (ISA)。RISC-V的核心是基于精簡指令集計算(RISC)原則,強調效率和性能。
    發表于 03-26 09:34 ?3605次閱讀

    玄鐵RISC-V生態大會深圳召開,達摩院引領RISC-V創新應用

    :達摩院院長張建鋒在玄鐵RISC-V生態大會上致詞,RISC即將迎來蝶變進入應用爆發期 ? 從2018年起,阿里巴巴開始投入RISC-V架構,是國內最早涉足
    的頭像 發表于 03-19 10:02 ?4522次閱讀
    玄鐵<b class='flag-5'>RISC-V</b>生態大會深圳召開,達摩院引領<b class='flag-5'>RISC-V</b>創新應用

    學習RISC-V單片機的感想

    RISC-V,以及國內開始的自研其它架構單片機。國內有些企業自研的架構,還沒有機會學習和使用。期待有機會試試,比如華為的處理器、龍芯等?,F在使用最多的還是51的和ARM的。ARM的一直都在不斷發展中,有各種
    發表于 02-17 21:00

    什么是RISC-V

    siFive搞RISC-V 賽昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不問有什么用,RISC-V目前的能力來說,工
    發表于 02-02 10:41

    RISC-V開放架構設計之道|閱讀體驗】 RISC-V設計必備之案頭小冊

    列出一個良好的指令集架構需要哪幾方面的特征。 由此,我們開始RISC-V基礎指令集的閱讀,從基礎的RV32I開始,這是一個目前已經完全不改變的指令集,也就是說無論RISC-V指令集怎
    發表于 01-22 16:24
    主站蜘蛛池模板: 欧美成人中文字幕在线视频| 亚洲精品乱码久久久久久中文字幕| 一级毛片在线免费视频| 交换娇妻呻吟声不停中文字幕| 亚洲中文字幕无码一久久区| 久久伊人精品青青草原2021| avtt一区| 亚在线观看免费视频入口| 寂寞夜晚免费观看视频| 最近更新2019中文字幕免费| 人人碰79免费视频| 国产亚洲精品久久久久久鸭绿欲 | 51国产午夜精品免费视频 | 国模玲玲自拍337p| 97色伦图片97色伦图影院久久| 日韩国产精品欧美一区二区| 国内精自品线一区91| 99热久久视频只有精品6国产| 王晶经典三级| 麻豆国产原创中文AV网站| 粉嫩国产14xxxxx0000| 一久久| 色噜噜狠狠色综合欧洲| 久久精品国产免费中文| 大陆女人内谢69XXXORG| 亚洲一区二区女搞男| 日韩免费视频一区| 久久久无码精品一区二区三区| 大地影院免费观看视频| 中国jjzz| 性色欲情网站IWWW| 欧美性FREE玩弄少妇| 精品三级在线观看| 国产精品九九久久| 99视频免费在线观看| 亚洲一区精品在线| 十分钟免费观看大全视频| 麻豆国产自制在线观看| 韩剧19禁啪啪无遮挡大尺度| 国产不卡视频在线| 99精品视频在线观看免费|