看板 MobileComm 關於我們 聯絡資訊
我們常常在教科書 甚至很多文章上看到 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.cc), 來自: 36.231.14.99 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1605699902.A.37D.html
DOMENKING : 現在VLIW, superscalar, fusion, multiple issue, t11/18 19:51
DOMENKING : omasulo全部加在一起,指令集根本不是重點了11/18 19:51
BenJMAS : 電蝦的人會比較有熱忱聽你分析。11/18 19:53
HMKRL : 怎麼不去ICDESING之類的版問啊11/18 19:54
sismiku : 嗯,剛我想的11/18 19:56
sismiku : 一樣11/18 19:56
kira925 : 現在都是大亂鬥沒錯11/18 19:58
hyghmax1202 : 未看先推11/18 20:01
hms5232 : 現在的x86也不是以前的x86了 各種混亂11/18 20:03
ttmm : 錯版了吧11/18 20:04
DarenR : 可以講點我聽的懂的事情嗎11/18 20:04
hms5232 : 不過我覺得沒有錯版 畢竟手機CPU和電腦不同是大家都11/18 20:06
hms5232 : 知道的(應該?)只是比較有涉獵的人常不常在這邊出沒11/18 20:07
F20 : 我還以為我走錯版11/18 20:09
kerkercheng : 看到頭就好痛 想到考研究所的時候11/18 20:14
benedict76 : 現在soc都有npu這個component,傳統x86要模擬npu效11/18 20:14
benedict76 : 能太差,所以有npu設計,m1加這個進來對跑分也有幫11/18 20:14
benedict76 : 助。11/18 20:14
james80351 : MISP(X) MIPS(O)11/18 20:14
感謝指正
Vram : 嗯嗯,跟我想的差不多11/18 20:16
APC : x86 的歷史包袱就像便秘越積越多11/18 20:16
AmigoSin : 我愛RISC V 11/18 20:20
i9602283 : 這是啥科目阿,可以講一下嗎11/18 20:20
F20 : 計概的部分阿11/18 20:22
cytochrome : 這麼電機的東西QQ11/18 20:25
aaa90213 : 嗯嗯 你說的我都懂11/18 20:26
GJME : 實務上兩者的區別沒有計概教科書上講的那麼涇渭分明11/18 20:26
沒錯
Hohenzollern: 今年最快的超級電腦就開始用ARM架構11/18 20:26
ryan9200929 : 能順便講M1怎麼比前幾代的i5 i7快嗎,看影片除了跑11/18 20:28
ryan9200929 : 分實際效能好像也不差11/18 20:28
MobileComm : 編譯器也有關係,蘋果自己軟硬都包11/18 20:28
MinionsBOB : 這是計算機組織的東西11/18 20:34
APC : 牙膏廠擠了十幾年牙膏,誰知蘋果不講武德,自己擠11/18 20:34
APC : 了一大坨 xD11/18 20:34
suichui : 簡單說:簡單的沒這麼簡,兩邊都在學習11/18 20:38
suichui : 比較期待下篇文章,應該很有料11/18 20:38
ofd168 : 推 感謝解說11/18 20:39
limitlesscit: 這不太重要,東西本來就會越來越複雜11/18 20:42
sachialanlus: 我是認為X86單位Byte的指令密度比較高 理論性能應該11/18 20:44
sachialanlus: 是更好 但是Branch Predictor也要能夠跟上才行11/18 20:44
sachialanlus: 其實intel的x86從core i開始就改成用risc內核 但是11/18 20:47
sachialanlus: 外部仍然用cisc 你可以想成x86是api 然後底層用risc11/18 20:47
sachialanlus: 實作 好處是可以在不同代之間改變內核的執行流程 彈11/18 20:47
sachialanlus: 性比較高 11/18 20:47
sachialanlus: 我覺得就如同你說的 現在risc和cisc或許沒分得那麼11/18 20:48
sachialanlus: 清楚 我覺得指令集長度是最大差異吧?11/18 20:48
basacola : 錯板11/18 20:54
jaid : 裡面很多技術都是RISC實現起來最簡單的,我覺得是描11/18 20:55
jaid : 述指令集設計而不是你說的微架構細節11/18 20:55
指令集本來就是要配合架構去調整的 所以我覺得從架構來分析也是可以的
ntlmystery : intel好像也有把最後編譯的結果變成類似risc的微指11/18 20:58
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 : 這要學過計算機結構才看得懂吧XDD11/18 21:28
colin8930 : 這裡文組太多 聽不懂的啦11/18 21:39
NX9999 : 現在都指令自助餐啊XD被爆漏洞就補一下變CISC,來11/18 21:40
NX9999 : 回R一下C一下@@11/18 21:40
timtdsas : 推11/18 21:53
kuma660224 : 現在底層指令都是RISC11/18 22:04
kuma660224 : 但X86的CISC指令還在 靠即時轉譯11/18 22:05
那樣效率真的太差
l11k755013 : arm a73也能叫錯板。厄11/18 22:07
ctes940008 : 幫轉11/18 22:27
denyy555 : CISC已死11/18 22:38
ifconfig5566: 有請jserv 11/18 22:51
gs8613789 : 計組惡夢11/18 22:52
admon : 一個指令就做很多事的是cisc,不是看總指令數或架構11/18 23:02
admon : 幾層pipeline,查wiki.11/18 23:03
但原本RISC的精神確實是拔掉一些不常用的指令集
hu7592 : 嗯嗯嗯嗯11/18 23:03
jjba310 : 危障11/18 23:12
Xperia : 推11/18 23:32
zznzm : 看最新的avx512支援你就會發現優勢在於好不好擠11/18 23:36
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 : 只要可以用滑鼠按2下打lol看片 就沒什麼差11/19 00:28
ji3g4zo6 : 嗯嗯 這你說的我都懂 可是11/19 00:32
lwei781 : 解指令和 Branch11/19 00:48
a58524andy : 看到risc沒分支預測就能endㄌ 笑死11/19 00:50
沒有(複雜)的分支預測 當然如果我誤會了 你也可以說說RISC的分支預測是如何複雜
wayne0411 : 阿~白算盤的惡夢啊阿阿阿阿11/19 00:54
ntustjc : 計組考試:請說明三種pipeline 中可能的Hazard11/19 01:53
arthas11 : 感謝強者解說11/19 02:44
breaker9527 : 樓下Jserv老師11/19 02:48
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 : X86的IF和分枝預測電路面積太大又複雜 11/19 09:06
wenli978 : 這點是天生的缺點造成X86耗電降不下來 11/19 09:06
wenli978 : 內部早就變成類RISC的模式,而且有多組備用register 11/19 09:07
wenli978 : 加上X86太多定址法,增加許多原本不必要的電路 11/19 09:08
wenli978 : 某方面來說Intel和AMD可以把X86效能搞到今天這程度 11/19 09:08
wenli978 : 已經是一種藝術了 11/19 09:08
wenli978 : 以軟體觀點來看,X86能做的事情ARM也可以做 11/19 09:12
wenli978 : 而且搞不好電路和電量都用不到X86的一半 11/19 09:12
ffman : 確實錯版…ARM,x86不在行動通訊下,但肯分享還是推 11/19 09:49
GTR12534 : 在計組課看到這篇文章... 11/19 10:21
homer00 : 去公道五路面試Qcom,還是得複習白算盤 11/19 10:37
realbout : APPLE:球證裁判都是我的人..... 11/19 11:09
gameguy : AMD,雙修,地球第一?!?!(原本就有X86,現在再 11/19 11:50
gameguy : 買賽靈思) 11/19 11:50
tonyian : x86跟arm哪裡不在行動通訊?之前asus不也有intel 11/19 13:17
tonyian : cpu? 11/19 13:17
misaka0120 : 有推有正取 11/19 15:14
meteor724 : m1就拜託你了,謝謝 11/19 15:30
rogergon : 你還是比較一下兩邊的指令集數量多寡吧 11/20 07:43
huapa : 期待續篇 11/20 10:02
lpoijk : 其實x86也會拆解instructions成micro operation,基 11/20 20:02
lpoijk : 本上兩者已經很相似了 11/20 20:02