PTT評價

[討論] RISC和CISC現在還真的有差別嗎?

看板MobileComm標題[討論] RISC和CISC現在還真的有差別嗎?作者
ja9740807
(finallydream)
時間推噓62 推:64 噓:2 →:45

我們常常在教科書 甚至很多文章上看到
RISC就是什麼只加總
CISC有甚麼很複雜的操作阿,加減乘除之類的
在2020年的今天 他們究竟還存在那些差別呢?

https://i.imgur.com/KXLZkm0.jpg

(圖為MIPS架構)

這架構就是很經典的RISC
他沒有複雜的分支預測 uops感知器阿
甚至他只有單純的ALU 執行整數運算
這就是RISC最原本的樣子

那現在的ARM處理器又是什麼樣子呢?
我們拿一個最經典的處理器 ARM公版架構
也就是S835拿來魔改的A73架構

https://i.imgur.com/Xl0kLa3.png

(圖為ARM A73架構)

已經不是只有單純的ALU
又了很大量的ROB
再加上不論是NEON/ FP合併的運算
或者是INT 和AGU
早就違背當初RISC簡單的初衷

RISC早期會快是因為元件設計簡單
流程相對較短 執行的東西也單一
可以在一個週期 數次快速重複指令運算
但是如果要他執行一些比較進階的命令
難度會高出許多

從上面這架構圖來分析
我能很清楚的告訴你 這絕對早就不是RISC
因為RISC當時的定義是不可能有後面這些東西的

https://i.imgur.com/TaUVej8.png

(intel core 2架構)

從經典的X86架構圖來看
A73架構所說的那些 X86也幾乎都有
頂多就是運算器的不同
導致指令集的編寫也不同

只有最早期的那幾種東西
才是真正符合那種精神
後面大家都互相學習優缺點
讓自己的架構更加完善且進步
RISC 常說是什麼精簡指令集
CISC 是複雜指令集
那個是為了應對 架構而寫的指令集
你今天架構已經不是以前單純的模樣
那指令集也該為了架構而做出改變
畢竟 指令集的產生 就是應對著架構而去工作的東西

如果你要說 現在的ARM仍然是精簡指令集
那配上這個架構 明顯應該有那些地方是不符合的

以上這是我對ARM和X86架構的理解
可能有些部分是錯誤的
歡迎多多討論

我之後應該也會寫篇文章討論M1跑分高的原因
也謝謝大家耐心看完

--
Sent from my Windows

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.14.99 (臺灣)
PTT 網址

DOMENKING 11/18 19:51現在VLIW, superscalar, fusion, multiple issue, t

DOMENKING 11/18 19:51omasulo全部加在一起,指令集根本不是重點了

BenJMAS 11/18 19:53電蝦的人會比較有熱忱聽你分析。

HMKRL 11/18 19:54怎麼不去ICDESING之類的版問啊

sismiku 11/18 19:56嗯,剛我想的

sismiku 11/18 19:56一樣

kira925 11/18 19:58現在都是大亂鬥沒錯

hyghmax1202 11/18 20:01未看先推

hms5232 11/18 20:03現在的x86也不是以前的x86了 各種混亂

ttmm 11/18 20:04錯版了吧

DarenR 11/18 20:04可以講點我聽的懂的事情嗎

hms5232 11/18 20:06不過我覺得沒有錯版 畢竟手機CPU和電腦不同是大家都

hms5232 11/18 20:07知道的(應該?)只是比較有涉獵的人常不常在這邊出沒

F20 11/18 20:09我還以為我走錯版

kerkercheng 11/18 20:14看到頭就好痛 想到考研究所的時候

benedict76 11/18 20:14現在soc都有npu這個component,傳統x86要模擬npu效

benedict76 11/18 20:14能太差,所以有npu設計,m1加這個進來對跑分也有幫

benedict76 11/18 20:14助。

james80351 11/18 20:14MISP(X) MIPS(O)

感謝指正

Vram 11/18 20:16嗯嗯,跟我想的差不多

APC 11/18 20:16x86 的歷史包袱就像便秘越積越多

AmigoSin 11/18 20:20我愛RISC V

i9602283 11/18 20:20這是啥科目阿,可以講一下嗎

F20 11/18 20:22計概的部分阿

cytochrome 11/18 20:25這麼電機的東西QQ

aaa90213 11/18 20:26嗯嗯 你說的我都懂

GJME 11/18 20:26實務上兩者的區別沒有計概教科書上講的那麼涇渭分明

沒錯

Hohenzollern11/18 20:26今年最快的超級電腦就開始用ARM架構

ryan9200929 11/18 20:28能順便講M1怎麼比前幾代的i5 i7快嗎,看影片除了跑

ryan9200929 11/18 20:28分實際效能好像也不差

MobileComm 11/18 20:28編譯器也有關係,蘋果自己軟硬都包

MinionsBOB 11/18 20:34這是計算機組織的東西

APC 11/18 20:34牙膏廠擠了十幾年牙膏,誰知蘋果不講武德,自己擠

APC 11/18 20:34了一大坨 xD

suichui 11/18 20:38簡單說:簡單的沒這麼簡,兩邊都在學習

suichui 11/18 20:38比較期待下篇文章,應該很有料

ofd168 11/18 20:39推 感謝解說

limitlesscit11/18 20:42這不太重要,東西本來就會越來越複雜

sachialanlus11/18 20:44我是認為X86單位Byte的指令密度比較高 理論性能應該

sachialanlus11/18 20:44是更好 但是Branch Predictor也要能夠跟上才行

sachialanlus11/18 20:47其實intel的x86從core i開始就改成用risc內核 但是

sachialanlus11/18 20:47外部仍然用cisc 你可以想成x86是api 然後底層用risc

sachialanlus11/18 20:47實作 好處是可以在不同代之間改變內核的執行流程 彈

sachialanlus11/18 20:47性比較高

sachialanlus11/18 20:48我覺得就如同你說的 現在risc和cisc或許沒分得那麼

sachialanlus11/18 20:48清楚 我覺得指令集長度是最大差異吧?

basacola 11/18 20:54錯板

jaid 11/18 20:55裡面很多技術都是RISC實現起來最簡單的,我覺得是描

jaid 11/18 20:55述指令集設計而不是你說的微架構細節

指令集本來就是要配合架構去調整的 所以我覺得從架構來分析也是可以的

ntlmystery 11/18 20:58intel好像也有把最後編譯的結果變成類似risc的微指

ntlmystery 11/18 20:58

wayne1120 11/18 21:04

wz70403 11/18 21:12錯版

pppooqqq 11/18 21:12嗯嗯 這就是我想的

BlackCoal 11/18 21:17黑貓白貓

soto2080 11/18 21:28這要學過計算機結構才看得懂吧XDD

colin8930 11/18 21:39這裡文組太多 聽不懂的啦

NX9999 11/18 21:40現在都指令自助餐啊XD被爆漏洞就補一下變CISC,來

NX9999 11/18 21:40回R一下C一下@@

timtdsas 11/18 21:53

kuma660224 11/18 22:04現在底層指令都是RISC

kuma660224 11/18 22:05但X86的CISC指令還在 靠即時轉譯

那樣效率真的太差

l11k755013 11/18 22:07arm a73也能叫錯板。厄

ctes940008 11/18 22:27幫轉

denyy555 11/18 22:38CISC已死

ifconfig556611/18 22:51有請jserv

gs8613789 11/18 22:52計組惡夢

admon 11/18 23:02一個指令就做很多事的是cisc,不是看總指令數或架構

admon 11/18 23:03幾層pipeline,查wiki.

但原本RISC的精神確實是拔掉一些不常用的指令集

hu7592 11/18 23:03嗯嗯嗯嗯

jjba310 11/18 23:12危障

Xperia 11/18 23:32

zznzm 11/18 23:36看最新的avx512支援你就會發現優勢在於好不好擠

alicemoe 11/18 23:39感謝解說,電蝦版也需要這篇

frank3302 11/18 23:50難得手機板有知識文

devilkool 11/19 00:00還以為進錯板....

opengaydoor 11/19 00:04看不懂 鮮蝦挺

avmm9898 11/19 00:11嗯嗯 這理論就是我創造的

y7moremore 11/19 00:28只要可以用滑鼠按2下打lol看片 就沒什麼差

ji3g4zo6 11/19 00:32嗯嗯 這你說的我都懂 可是

lwei781 11/19 00:48解指令和 Branch

a58524andy 11/19 00:50看到risc沒分支預測就能endㄌ 笑死

沒有(複雜)的分支預測 當然如果我誤會了 你也可以說說RISC的分支預測是如何複雜

wayne0411 11/19 00:54阿~白算盤的惡夢啊阿阿阿阿

ntustjc 11/19 01:53計組考試:請說明三種pipeline 中可能的Hazard

arthas11 11/19 02:44感謝強者解說

breaker9527 11/19 02:48樓下Jserv老師

saito2190 11/19 03:53上禮拜剛考完計算機結構,憤怒噓

saito2190 11/19 03:55理性使我推回來

keigowei 11/19 08:38趕快推…不要讓人家以為我看不懂

※ 編輯: ja9740807 (36.231.14.99 臺灣), 11/19/2020 09:04:36

wenli978 11/19 09:06X86的IF和分枝預測電路面積太大又複雜

wenli978 11/19 09:06這點是天生的缺點造成X86耗電降不下來

wenli978 11/19 09:07內部早就變成類RISC的模式,而且有多組備用register

wenli978 11/19 09:08加上X86太多定址法,增加許多原本不必要的電路

wenli978 11/19 09:08某方面來說Intel和AMD可以把X86效能搞到今天這程度

wenli978 11/19 09:08已經是一種藝術了

wenli978 11/19 09:12以軟體觀點來看,X86能做的事情ARM也可以做

wenli978 11/19 09:12而且搞不好電路和電量都用不到X86的一半

ffman 11/19 09:49確實錯版…ARM,x86不在行動通訊下,但肯分享還是推

GTR12534 11/19 10:21在計組課看到這篇文章...

homer00 11/19 10:37去公道五路面試Qcom,還是得複習白算盤

realbout 11/19 11:09APPLE:球證裁判都是我的人.....

gameguy 11/19 11:50AMD,雙修,地球第一?!?!(原本就有X86,現在再

gameguy 11/19 11:50買賽靈思)

tonyian 11/19 13:17x86跟arm哪裡不在行動通訊?之前asus不也有intel

tonyian 11/19 13:17cpu?

misaka0120 11/19 15:14有推有正取

meteor724 11/19 15:30m1就拜託你了,謝謝

rogergon 11/20 07:43你還是比較一下兩邊的指令集數量多寡吧

huapa 11/20 10:02期待續篇

lpoijk 11/20 20:02其實x86也會拆解instructions成micro operation,基

lpoijk 11/20 20:02本上兩者已經很相似了