91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

前ARM工程師批評(píng):RISC-V不完美之處

Q4MP_gh_c472c21 ? 來(lái)源:嵌入式ARM ? 作者:嵌入式ARM ? 2020-12-30 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

本文最初完成于幾年之前,彼時(shí)作者正在 ARM 公司擔(dān)任執(zhí)行核心驗(yàn)證工程師職位。作者當(dāng)時(shí)的工作深入或圍繞多種處理器核心,而文中提到的觀點(diǎn)深受這些經(jīng)驗(yàn)的影響,換句話說(shuō),這些觀點(diǎn)存在不同程度的偏見(jiàn)。

作者依舊堅(jiān)持認(rèn)為 RISC-V 的設(shè)計(jì)并不完美,但同時(shí)也承認(rèn),如果現(xiàn)在需要搭建一個(gè) 32 或 64 位的 CPU,他在實(shí)現(xiàn)構(gòu)建時(shí)也會(huì)從現(xiàn)有工具中受益。

本文主要基于 RISC-V ISA 規(guī)范 v2.0,部分已更新至 v2.2。

一些觀點(diǎn)

RISC-V ISA 對(duì)極簡(jiǎn)主義的追求鉆了牛角尖,它極力強(qiáng)調(diào)減少指令數(shù)量,規(guī)范編碼等等。而這種追求則導(dǎo)致了錯(cuò)誤的正交性(分支、調(diào)用、返回時(shí)重復(fù)使用同一指令),以及對(duì)贅余指令的需求,這些在程序大小和指令數(shù)量上都會(huì)影響到代碼密度。

以下面的 C 代碼為例:

int readidx(int *p, size_t idx){ return p[idx]; }


簡(jiǎn)單的數(shù)組索引,非常常見(jiàn)的操作。將其在 x86_64 中編譯:

mov eax, [rdi+rsi*4]ret

或者是 ARM 中:

ldr r0, [r0, r1, lsl #2]bx lr // return

但是在 RISC-V 中需要的代碼則是:

# 很抱歉如果有任何語(yǔ)法錯(cuò)誤,risc-v 并沒(méi)有在線編譯器slli a1, a1, 2add a0, a1, a1lw a0, a0, 0jalr r0, r1, 0 // return

RISC-V 的極簡(jiǎn)主義讓解碼器(CPU 前端)變得更簡(jiǎn)單,代價(jià)則是需要執(zhí)行更多的指令。然而,相對(duì)于拓寬流水線這個(gè)難題而言,解碼不規(guī)則指令的問(wèn)題很好解決,主要難點(diǎn)在于確定指令的長(zhǎng)度是否一致。x86 的眾多前綴就是個(gè)極佳的反面教材。對(duì)指令集的簡(jiǎn)化不應(yīng)追求極限。寄存器 + 移位寄存器的內(nèi)存操作指令是程序中非常常見(jiàn)且簡(jiǎn)單的操作,對(duì)于 CPU 而言也很容易實(shí)現(xiàn)。即使無(wú)法直接執(zhí)行,CPU 也可以相對(duì)輕松地將其分步執(zhí)行,其操作復(fù)雜程度遠(yuǎn)遜色于融合簡(jiǎn)單操作的序列。

CISC CPU 中的“復(fù)合”指令,繁復(fù)、少有使用且普遍性能低下,而 CISC 和 RISC CPU 通用的“功能”指令則意指結(jié)合了少量操作序列并且使用率高、性能高的指令。這二者應(yīng)當(dāng)有所區(qū)分。

還不錯(cuò)的部分

幾乎不受任何限制的可擴(kuò)展性。雖說(shuō)這是 RISC-V 的賣(mài)點(diǎn),但它同時(shí)也是碎片化、不兼容生態(tài)系統(tǒng)的罪魁禍?zhǔn)?,在管理時(shí)還需加倍小心。

調(diào)用、返回和寄存器間接分支使用同一指令(JALR)。分支預(yù)測(cè)需要額外解碼。

調(diào)用:Rd = R1

返回:Rd = R0, Rs =R1

間接分支: Rd = R0, Rs≠ R1

(奇怪分支:Rd≠ R0, Rd ≠ R1)

可變長(zhǎng)度編碼無(wú)法自我同步。x86 和 Thumb-2 中都存在的常見(jiàn)問(wèn)題,會(huì)導(dǎo)致實(shí)現(xiàn)和安全性方面的各種漏洞,例如面向返回的編程攻擊。

RV64I 規(guī)定所有 32 位值的符號(hào)擴(kuò)展。這一點(diǎn)會(huì)導(dǎo)致不必要的上半切換,或者需要對(duì)寄存器的上半部分進(jìn)行特殊調(diào)整。建議采用零擴(kuò)展,在減少切換的同時(shí),通常還可以在已知上半部分為零的情況下,通過(guò)追蹤”為零“位來(lái)進(jìn)行優(yōu)化。

乘法是可選項(xiàng)。考慮到高速乘法器在微型實(shí)現(xiàn)中占用的面積不容忽視,創(chuàng)建占用更小,還可以將現(xiàn)有 ALU 廣泛用于多循環(huán)乘法的小型乘法器不失為良策。

LR/SC 指令對(duì)有限使用子集有嚴(yán)格的最終轉(zhuǎn)發(fā)要求。盡管這項(xiàng)限制頗為嚴(yán)苛,但對(duì)于沒(méi)有緩存的小型實(shí)現(xiàn)而言有可能會(huì)帶來(lái)一些問(wèn)題。

這一點(diǎn)似乎是 CAS 指令的替代品,具體請(qǐng)參照有關(guān)該指令的注釋。

FP 粘性位和舍入模式處于同一寄存器中。如果想通過(guò)執(zhí)行 RMW 操作改變舍入模式,則需要對(duì) FP 管道進(jìn)行序列化。

FP 指令支持的編碼精度有 32 位、64 位和 128 位,唯獨(dú)沒(méi)有硬件中更為常見(jiàn)的 16 位。

這點(diǎn)很容易修正:我們有免費(fèi)的字組編碼 2’b10。

更新:v2.2 中添加了十進(jìn)制 FP 擴(kuò)展占位符,但仍然沒(méi)有半精度占位符。迷惑行為。

FP 寄存器文件中的 FP 值未指定,但可以通過(guò)加載 / 存儲(chǔ)觀察到。

仿真器作者要恨死你了。

VM 遷移會(huì)將變?yōu)椴豢赡堋?/p>

更新:v2.2 需要 NaN 裝箱更寬的值。

糟糕的部分

沒(méi)有條件代碼,只有比較和分支指令。這一點(diǎn)自身沒(méi)什么問(wèn)題,但它意味著:需要編碼一到二個(gè)寄存器說(shuō)明符,導(dǎo)致條件分支中的編碼空間減少。

沒(méi)有條件選擇,這一點(diǎn)在高度不可預(yù)測(cè)的分支中很有用。

加法 / 減法沒(méi)有加進(jìn)位或借位。(即使這樣,這也比 ISA 將 flag 寫(xiě)入通用寄存器 GPR,然后在結(jié)果 flag 上分支要好。)

用戶級(jí) ISA 需要高精度計(jì)數(shù)器。在實(shí)踐中,將這些計(jì)數(shù)器暴露給應(yīng)用程序意味著側(cè)通道攻擊的好機(jī)會(huì)。

乘法和除法同屬于一個(gè)擴(kuò)展,無(wú)法單獨(dú)實(shí)現(xiàn)其中之一。相比除法,乘法要簡(jiǎn)單許多,而且在大多的 CPU 上很常見(jiàn)。

基礎(chǔ) ISA 中沒(méi)有原子指令。多核微型處理器越來(lái)越普遍的今天,LL/SC 類(lèi)型原子指令也越來(lái)越廉價(jià):只需要 1 位 CPU 狀態(tài)即可完成最小 CPU 實(shí)現(xiàn)。

LR/SC 和更復(fù)雜的原子指令同屬于一個(gè)擴(kuò)展。直接限制了小型實(shí)現(xiàn)的靈活性。

非 LR/SC 的一般原子指令不包含 CAS 原語(yǔ)

CAS 的設(shè)計(jì)是為了避免需要一條指令讀取 5 個(gè)寄存器的情況,例如:加法器、Cmp:CmpLo,SwapHi:SwapLo。但 LR/SC 用于取代 CAS 的保底進(jìn)度很可能只會(huì)在實(shí)現(xiàn)上帶來(lái)更高的開(kāi)銷(xiāo)。

原子指令僅支持 32 位或 64 位操作,不支持 8 位或 16 位。

對(duì) RV32I 而言,想在整數(shù)和浮點(diǎn)寄存器文件之間轉(zhuǎn)換 DP 和 FP,只能通過(guò)內(nèi)存解決。

舉例來(lái)說(shuō):RV32I 的 32 位 ADD 和 RV64I 的 64 位 ADD 共用同一套編碼,RV64I 又多加了一套 ADD.W 編碼。如此一來(lái),CPU 實(shí)現(xiàn)這兩種指令時(shí)麻煩了許多,不如直接新增一套 64 位編碼。

沒(méi)有 MOV 指令。匯編器對(duì)于 MV 的等效指令是:MV rD, rS -> ADD rD, rS, 0。MOV 優(yōu)化通常由高端處理器,尤其是失序處理器完成。識(shí)別 RISC-V 規(guī)范的 MV 需要一個(gè) 12 位的立即數(shù)。

在沒(méi)有 MOV 指令的情況下,ADD rD, rS, r0 是對(duì) MOV 不錯(cuò)的替代。它更易被解碼,而 CPU 通常也會(huì)有特殊情況下的邏輯來(lái)識(shí)別零寄存器。

尤為糟糕的部分

JAL 在本該只是 R1(分支時(shí)是 R0)的鏈接寄存器編碼上浪費(fèi)了 5 比特。

這意味著 RV32I 有 21 位的分支位移(對(duì)于諸如瀏覽器等大型應(yīng)用時(shí),不使用多指令序列或者分支 island 時(shí)會(huì)不夠用)。

其實(shí)是 1.0 版本 ISA 的歷史遺留問(wèn)題

盡管 RISC-V 在統(tǒng)一編碼上花了大功夫,但加載 / 存儲(chǔ)指令的編碼仍然是不同的(寄存器 vs 立即字段互換)。

似乎寄存器編碼的最終正交性要比兩種高度相關(guān)指令的正交性更受歡迎??紤]到地址生成是對(duì)時(shí)序更為敏感的操作,這種選擇有點(diǎn)奇怪。

寄存器偏移量(Rbase +Roffset)或索引(Rbase + Rindex << Scale)沒(méi)有負(fù)載。

FENCE.I 意味著指令緩存和前面的存儲(chǔ)區(qū)必須完全同步,無(wú)論是否有 fence。實(shí)現(xiàn)時(shí)需要在 fence 上刷新 I,或者通過(guò)snoop的方式監(jiān)視D 和存儲(chǔ)緩存區(qū)。

RV32I 中,讀取 64 位計(jì)數(shù)器需讀取上半部分兩次,并進(jìn)行比較和分支,以防在讀取操作時(shí)下半部分和上半部分發(fā)生借位。

通常 32 位 ISA 包含了一個(gè)“讀取一對(duì)特殊寄存器”的指令來(lái)避免這個(gè)問(wèn)題。

架構(gòu)上沒(méi)有定義“提示”編碼空間。提示編碼是指在當(dāng)前處理器上作為 NOP 執(zhí)行,但在之后的變量上有操作的編碼。

“NOP 提示”的常見(jiàn)例子是自旋鎖 yield。

更復(fù)雜的提示也有實(shí)現(xiàn)。即那些對(duì)新處理器有明顯副作用的提示,例如 x86 的邊界檢查指令被編碼在提示空間,以便二進(jìn)制文件保持向后兼容。

責(zé)任編輯:xj

原文標(biāo)題:前ARM工程師批評(píng):RISC-V尤為糟糕的部分!

文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5200

    文章

    20481

    瀏覽量

    334556
  • RISC-V
    +關(guān)注

    關(guān)注

    48

    文章

    2893

    瀏覽量

    53100

原文標(biāo)題:前ARM工程師批評(píng):RISC-V尤為糟糕的部分!

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RISC-V vs ARM:為什么工業(yè)與邊緣計(jì)算仍然選擇 ARM 架構(gòu)?

    完整,占據(jù)工業(yè)與邊緣計(jì)算主流。 既然 RISC-V 看起來(lái)更“先進(jìn)”,為什么工業(yè)界和工程項(xiàng)目依然大量選擇 ARM? 本文從 工程實(shí)現(xiàn)、軟件生態(tài)和項(xiàng)目風(fēng)險(xiǎn) 三個(gè)技術(shù)視角,拆解這個(gè)問(wèn)題。
    的頭像 發(fā)表于 01-21 17:33 ?778次閱讀
    <b class='flag-5'>RISC-V</b> vs <b class='flag-5'>ARM</b>:為什么工業(yè)與邊緣計(jì)算仍然選擇 <b class='flag-5'>ARM</b> 架構(gòu)?

    RISC-V,正式崛起

    編譯自financialcontent全球半導(dǎo)體行業(yè)迎來(lái)里程碑式的變革:開(kāi)源指令集架構(gòu)(ISA)RISC-V已于2026年1月正式占據(jù)全球處理器市場(chǎng)25%的份額。這一里程碑標(biāo)志著x86和Arm長(zhǎng)期雙
    的頭像 發(fā)表于 01-16 15:17 ?687次閱讀
    <b class='flag-5'>RISC-V</b>,正式崛起

    論實(shí)時(shí)性,RISC-V究竟比ARM強(qiáng)多少?

    在很多工業(yè)場(chǎng)景中,實(shí)時(shí)性是十分關(guān)鍵的硬性指標(biāo),它決定了設(shè)備能否精準(zhǔn)響應(yīng),并確保系統(tǒng)穩(wěn)定運(yùn)行。RISC-V開(kāi)源架構(gòu),憑借其精簡(jiǎn)指令集、低中斷延遲,以及高效的任務(wù)調(diào)度能力,天生具備卓越的實(shí)時(shí)性優(yōu)勢(shì),能夠
    的頭像 發(fā)表于 12-22 15:07 ?361次閱讀
    論實(shí)時(shí)性,<b class='flag-5'>RISC-V</b>究竟比<b class='flag-5'>ARM</b>強(qiáng)多少?

    瑞芯微RISC-V芯片已量產(chǎn),性能、功耗平衡更佳

    電子發(fā)燒友網(wǎng)綜合報(bào)道 瑞芯微日前在互動(dòng)平臺(tái)公開(kāi)表示,公司已基于RISC-V架構(gòu)推出并量產(chǎn)新產(chǎn)品,后續(xù)將繼續(xù)研發(fā)基于RISC-V架構(gòu)的產(chǎn)品。 ? 瑞芯微長(zhǎng)期以Arm架構(gòu)為核心,其RK3588系列芯片
    的頭像 發(fā)表于 10-23 09:13 ?1.1w次閱讀
    瑞芯微<b class='flag-5'>RISC-V</b>芯片已量產(chǎn),性能、功耗平衡更佳

    RT-Thread生成玄鐵RISC-V BSP的CDK工程開(kāi)發(fā)指南 | 技術(shù)集結(jié)

    目錄開(kāi)發(fā)環(huán)境配置工程創(chuàng)建CDK工程運(yùn)行CDK工程編譯工程運(yùn)行與調(diào)試RT-Thread課程上線玄鐵系列RISC-VBSP上手指南RT-Thre
    的頭像 發(fā)表于 09-28 10:06 ?4475次閱讀
    RT-Thread生成玄鐵<b class='flag-5'>RISC-V</b> BSP的CDK<b class='flag-5'>工程</b>開(kāi)發(fā)指南 | 技術(shù)集結(jié)

    RISC-V 手冊(cè)

    年提出。其核心理念是開(kāi)放性與模塊化設(shè)計(jì),與x86(CISC)和ARMRISC)形成差異化競(jìng)爭(zhēng),現(xiàn)已成為全球芯片創(chuàng)新的重要驅(qū)動(dòng)力135。核心特點(diǎn)與優(yōu)勢(shì)開(kāi)源開(kāi)放RISC-V采用開(kāi)放標(biāo)準(zhǔn)協(xié)議,無(wú)專(zhuān)利壁壘與授權(quán)費(fèi)用,開(kāi)發(fā)者可自由使用、
    發(fā)表于 07-28 16:27 ?11次下載

    2025新思科技RISC-V科技日活動(dòng)圓滿結(jié)束

    新思科技深度參與2025 RISC-V中國(guó)峰會(huì)并于2025年7月16日舉辦同期活動(dòng)“新思科技RISC-V科技日”技術(shù)論壇,聚焦“從芯片到系統(tǒng)重構(gòu)RISC-V創(chuàng)新”主題,議題覆蓋當(dāng)前最前沿的技術(shù)領(lǐng)域
    的頭像 發(fā)表于 07-25 17:31 ?1447次閱讀

    RISC-V如何盈利?本土企業(yè)率先破局

    了全行業(yè)對(duì)RISC-V美好未來(lái)的信心。 RISC-V崛起:芯片產(chǎn)業(yè)高質(zhì)量發(fā)展的必由之路 當(dāng)前,全球兩大處理器架構(gòu)中,x86完全封閉,Arm需付費(fèi)購(gòu)買(mǎi)。關(guān)鍵技術(shù)被境外壟斷,相關(guān)芯片也依賴境外的生態(tài)和軟件,使國(guó)內(nèi)供應(yīng)鏈面臨著巨大的風(fēng)
    的頭像 發(fā)表于 07-18 11:32 ?3424次閱讀
    <b class='flag-5'>RISC-V</b>如何盈利?本土企業(yè)率先破局

    RISC-V 發(fā)展態(tài)勢(shì)與紅帽系統(tǒng)適配進(jìn)展

    2025 年 7 月 18 日,在第五屆(2025)RISC-V 中國(guó)峰會(huì)的軟件與生態(tài)系統(tǒng)分論壇上,紅帽軟件(北京)有限公司首席軟件工程師RISC-V 國(guó)際基金會(huì)大使傅煒?lè)窒淼闹黝}是《紅帽在
    發(fā)表于 07-18 10:55 ?4094次閱讀
    <b class='flag-5'>RISC-V</b> 發(fā)展態(tài)勢(shì)與紅帽系統(tǒng)適配進(jìn)展

    包云崗:原位替代 ARM,并未真正發(fā)揮 RISC-V 的優(yōu)勢(shì)

    RISC-V 的核心優(yōu)勢(shì)在于開(kāi)放開(kāi)源的模塊化設(shè)計(jì),相比之下,ARM 的優(yōu)勢(shì)在于成熟的生態(tài)閉環(huán)。因此,在第五屆(2025)RISC-V 中國(guó)峰會(huì)主論壇上,中國(guó)科學(xué)院計(jì)算技術(shù)研究所副所長(zhǎng)、中國(guó)開(kāi)放指令
    發(fā)表于 07-17 14:54 ?5160次閱讀

    Tenstorrent 首席架構(gòu):未來(lái) RISC-V 會(huì)是計(jì)算機(jī)的主流

    當(dāng)前,按指令集架構(gòu)(ISA)分類(lèi),主流架構(gòu)包括 x86 架構(gòu)、ARM 架構(gòu)和 RISC-V 架構(gòu)。作為開(kāi)源精簡(jiǎn)指令集(RISC),RISC-V 的主要特點(diǎn)有模塊化設(shè)計(jì),開(kāi)發(fā)者可自由擴(kuò)展
    發(fā)表于 07-17 11:26 ?1499次閱讀

    同一水平的 RISC-V 架構(gòu)的 MCU,和 ARM 架構(gòu)的 MCU 相比,運(yùn)行速度如何?

    ARM 架構(gòu)與 RISC-V 架構(gòu)的 MCU 在同一性能水平下的運(yùn)行速度對(duì)比,需從架構(gòu)設(shè)計(jì)原點(diǎn)、指令集特性及實(shí)際測(cè)試數(shù)據(jù)展開(kāi)剖析。以 ARM Cortex-M33 這類(lèi) ARMv8M 架構(gòu)核心與采用
    的頭像 發(fā)表于 07-02 10:29 ?1511次閱讀
    同一水平的 <b class='flag-5'>RISC-V</b> 架構(gòu)的 MCU,和 <b class='flag-5'>ARM</b> 架構(gòu)的 MCU 相比,運(yùn)行速度如何?

    RISC-VARM有何區(qū)別?

    在微處理器架構(gòu)領(lǐng)域,ARMRISC-V是兩個(gè)備受關(guān)注的體系。ZLG致遠(yuǎn)電子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,這引發(fā)了人們對(duì)這兩種架構(gòu)差異的深入探討。
    的頭像 發(fā)表于 06-24 11:38 ?2045次閱讀
    <b class='flag-5'>RISC-V</b>和<b class='flag-5'>ARM</b>有何區(qū)別?

    FPGA與RISC-V淺談

    全球半導(dǎo)體產(chǎn)業(yè)競(jìng)爭(zhēng)格局正在經(jīng)歷深刻變革,物聯(lián)網(wǎng)、邊緣計(jì)算等新興技術(shù)的蓬勃發(fā)展,讓RISC-V憑借其開(kāi)源、精簡(jiǎn)以及模塊化的靈活優(yōu)勢(shì),日益成為業(yè)界焦點(diǎn),也為全球半導(dǎo)體產(chǎn)業(yè)注入新的活力與挑戰(zhàn)
    發(fā)表于 04-11 13:53 ?687次閱讀
    FPGA與<b class='flag-5'>RISC-V</b>淺談

    RISC-V Day Tokyo|RISC-V平臺(tái)集成Imagination GPU解決方案的探索分析

    在2月27日舉辦的RISC-VDayTokyo2025Spring上,來(lái)自PLCT實(shí)驗(yàn)室的蒲鏡羽、高涵兩位工程師通過(guò)Poster分析了RISC-V在桌面生態(tài)中的發(fā)展與挑戰(zhàn),并且以
    的頭像 發(fā)表于 03-20 09:27 ?1276次閱讀
    <b class='flag-5'>RISC-V</b> Day Tokyo|<b class='flag-5'>RISC-V</b>平臺(tái)集成Imagination GPU解決方案的探索分析