PC_Shopping 板


LINE

说是科普但就是我感冒在家无聊出来干个古、带带风向(? 比起前几天制程一知半解的文来说 这算是我的主战场,但人感冒难免有错请看官们海涵 警告:职业病的关系有些词汇我比较喜欢原文,所以看起来会是讨厌的晶晶体 1. 甚麽是Microcode 在了解为甚麽需要跟甚麽是Microcode前,先来看一下高阶语言的流程 Source code→Compiler→Machine code Machine code里面放着很多machine language instruction(机器指令) 所谓的CISC(复杂指令集)、RISC(精简指令集),复杂精简指的是机器指令复杂度。 CISC特点就是指令数非常多而且复杂,指令长度也不等,这和Microcode什麽关系呢? 以前设计CPU的时候都是直接硬体实现(hard-wired),fetch、decode、execute (包含位 址计算、读取、写入等等),都是直接用组合逻辑+状态机电路直接实现并控制的,优点是 硬体执行非常高效。但在後来CISC持续发展下,寻址(addressing)等复杂操作要完全用硬 体实现就越来越不现实也很难维护,所以Microcode就这样生出来了。 讲了那麽多,Microcode到底是什麽? 其实就是把一个指令拆解成很多个Microcode (Micro-ops),这些microcode是可以直接被硬体实现(执行)的,这样做降低了很多设计上 的难题和复杂度。Microcode就是一个执行的最小单位(low-level layer)。 Machine instruction执行的时候需要解码(Decode),负责解码的单元叫做Instruction Decode Unit(IDU),IDU大略可以分成两部分,hardware decoding和microcode decoding ,前者就是直接硬体实现(hard-wired)一些基本指令,例如加减;後者就是负责将复杂指 令转成数个micro-ops,简单一点的可能一个micro-ops,普通3~4个左右,复杂的4个以上 。 x86在80年代後就一直有用microcode,并且Intel在发生了下面要讲的事件後开始思考能不 能透过维护microcode来达成出货後的错误修正。 2. Intel大出包 在这次的事件前,Intel出过最大的包应该就是1994年Pentium FDIV bug了,源头是FPU 的浮点除法指令,在1994年有个美国教授(是数学还是CS我忘了),有个研究需要用电脑做 除法运算,但是他在用电脑处理除法的时候发现答案是错的,後来种种原因发现是Intel在 当时为了加速运算,把乘法表烧录在CPU上,但其中有5个输入错误。 其实在运算过程中是会自动修复,只有几个数字才会完全错误,但这位教授很幸运地遇到 了。事後统计我记得是90亿次除法才会出现一个错误,平均故障是700年才会发生一次(还 是800我也忘了)。後来事件的结果是全面召回有缺陷的CPU。 事件发生後Intel就开始思考出货後要怎麽维护硬体故障了,很明显microcode就是一个最 好的维修孔,至於实际上怎麽维修或是patch就是它们的商业机密了,但最後对使用者的方 式就是两个BIOS更新和作业系统更新。 3. 总结 Microcode是一本基本手册,利用这本手册可以实现复杂的指令(CISC) Microcode的角色是: A. 指令执行的最小单位 B. CPU内部硬体控制 C. CPU出货後的维修孔 Microcode其实很有趣,某种程度上RISC的诞生也有渊源,因为在1970年代中期IBM内部的 Project,他们分析了S/360还有S/370的数据得到了一个结论:Microcode的引入会导致 「执行最频繁执行的指令」时产生很大、昂贵的开销,这个结论其实就是RISC的源起和概 念。 突然想到补充一下这个Project就是IBM 801,由John Cocke主导,他是图灵奖得主也被誉 为RISC架构之父,同时也是CYK Algorithm里的C,(另外两人是Daniel Younger、嵩忠雄) 其实还有很多能讲的,为了避免过於唠叨就暂且不提,有人有兴趣的话再写 而且如果完全不知道Microcode是甚麽我想这些应该足够了xD 最近开始尝试与他人交流(? 我其实不太确定这样的文章(包含之前在板上PO的),对於小白来说能看懂多少,我是希望 能让完全不懂的人了解到底在讲什麽东西,起码这是我在甚麽都不懂的时候,会想要得到 的知识、资讯。如果看了有点心得的人可以给我一点反馈 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.158.55 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PC_Shopping/M.1721742613.A.240.html ※ 编辑: benmei99 (111.248.158.55 台湾), 07/23/2024 21:51:34
1F:推 smallreader: 热心讲解推220.142.66.69 07/23 21:51
2F:推 mrme945: 推科普,这几天电虾水准整个都高了不少111.71.212.153 07/23 21:54
3F:推 EraKing: 有趣文章推1.165.223.42 07/23 21:57
4F:推 cgalen1994: 长知识125.229.187.235 07/23 22:01
5F:推 zseineo: 推 111.243.97.202 07/23 22:03
6F:推 a20556: 推 科普赞赞111.252.138.240 07/23 22:05
7F:推 CircusWorld: 感谢分享123.205.143.107 07/23 22:09
8F:推 weiber82: 感谢分享,还是用arm好惹39.15.8.227 07/23 22:13
9F:推 Pchome12H: 看到一半惊觉拉上去看ID後才继续看完 42.72.147.146 07/23 22:15
10F:推 Alllllogo: 如果你明天有放假,能不能用个Ai生图 39.1.34.24 07/23 22:20
11F:→ Alllllogo: 来讲解....39.1.34.24 07/23 22:20
AI生图xD? 你想看怎麽样的图片 文字太多难以下咽吗xD?
12F:推 ctes940008: 听君一席话 36.239.215.108 07/23 22:21
13F:推 kawa0710: 推专业文106.107.215.228 07/23 22:24
14F:推 TISH12311: 你484想带学术风向= = 111.250.6.69 07/23 22:25
※ 编辑: benmei99 (111.248.158.55 台湾), 07/23/2024 22:31:16
15F:推 Yatta: 推114.43.22.65 07/23 22:29
16F:→ mayolane: 大师1.161.122.158 07/23 22:31
17F:推 Cubelia: 以前microcode大到能从dieshot看到结构111.255.28.25 07/23 22:32
18F:推 allyourshit: 看到中间一直觉得会跳出胡歌老公出来 1.34.92.164 07/23 22:33
阿月是不是很久没发文了阿,好像很久没看到了xD ※ 编辑: benmei99 (111.248.158.55 台湾), 07/23/2024 22:36:00
19F:推 cc431015: 好文推 61.62.197.40 07/23 22:34
※ 编辑: benmei99 (111.248.158.55 台湾), 07/23/2024 22:38:12
20F:推 sdbb: 台风夜优文,谢谢112.104.64.201 07/23 22:41
21F:→ labbat: 不太满意一词多义,虽然知道是英特尔干法 180.177.2.153 07/23 22:47
22F:→ labbat: 然而可程式化的环节和解码的环节要区分开 180.177.2.153 07/23 22:48
我知道你意思也确实是以Intel家为出发点写这篇,下次改进
23F:推 cutejojocat: 先推不然等等怕被发现看不懂 36.229.202.227 07/23 22:55
24F:推 jay920314: 推 好多长知识文此风可长 1.200.57.105 07/23 22:57
25F:推 proton63: 推36.236.249.53 07/23 23:01
26F:推 yymeow: 推专业文,这几天真的神人辈出114.25.212.97 07/23 23:02
27F:→ dos01: 刚才把科普看成抖音...我觉得今天该早点睡182.155.78.98 07/23 23:02
28F:推 dogluckyno1: 推推36.238.158.130 07/23 23:04
29F:推 chibon1992: 推101.12.16.19 07/23 23:05
30F:推 weimr: 推 61.224.136.251 07/23 23:05
31F:推 cliff2001: 推 223.140.43.33 07/23 23:13
32F:推 E7lijah: ptt是学术论坛 没毛病 27.52.66.205 07/23 23:23
33F:→ aasssdddd: 最重要马口怎麽应用去修正hw没讲 36.229.59.11 07/23 23:23
具体修正的细节是商业机密,我要是知道的话就不会在这边惹
34F:推 se2104: 推 122.55.34.138 07/23 23:26
35F:推 andy188: 推27.51.42.113 07/23 23:27
36F:推 harry886901: 对不起我只能说你讲的已经比我计算机61.63.210.182 07/23 23:29
37F:→ harry886901: 组织的教授好多了 61.63.210.182 07/23 23:29
38F:推 guanting886: 楼上 帮老师上图 42.78.155.164 07/23 23:41
39F:推 fufu8aa: 推118.161.195.122 07/23 23:58
※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 00:17:52
40F:推 GonXiaXiao: 好文推 101.12.155.61 07/24 00:20
41F:→ Nafusica: 无聊说一下,microcode後来在开发阶段220.141.218.222 07/24 00:26
42F:→ Nafusica: 可以做很多有用的事情 像是early sample220.141.218.222 07/24 00:27
43F:→ Nafusica: 可以暂时写到bios让开发中的mb开机测试220.141.218.222 07/24 00:27
44F:→ Nafusica: 量产大货的时候可以移除掉es的支援220.141.218.222 07/24 00:27
45F:→ Nafusica: 以前顶级玩家也会争取mb厂先拿初期的220.141.218.222 07/24 00:28
46F:→ Nafusica: microcode来跑极限成绩之类220.141.218.222 07/24 00:28
懂行的xD 没错 感谢补充 ※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 00:42:17
47F:推 lunaX19: 推 1.164.155.86 07/24 00:42
48F:推 sunyanwen: classic microcode是这样,modern "micr 132.226.0.200 07/24 00:44
49F:→ sunyanwen: ocode"包含更多,像CPU的PCU Firmware就132.226.0.200 07/24 00:44
50F:→ sunyanwen: 管理turbo,frequency,vid,power等 132.226.0.200 07/24 00:44
是的,感谢补充,这部分忘了写,下次改进 ※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 00:56:28
51F:推 lukeatlee: 推 满有趣的解释 也好奇Error hand 123.50.45.219 07/24 00:56
52F:→ lukeatlee: ling原理(逃 123.50.45.219 07/24 00:56
Error handling也是蛮多能写的,CPU层级的interrupt、OS IPC层级、程式语言层级的ex ception ※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 01:04:27
53F:推 niverse: 很有趣 推个 150.117.240.33 07/24 01:12
54F:→ niverse: 拜托续集XD 150.117.240.33 07/24 01:13
55F:推 roseritter: 推 认真文 111.254.72.165 07/24 01:19
56F:推 y7moremore: 看不懂也推 49.216.25.135 07/24 01:27
57F:推 z1357961: 推科普 165.91.13.20 07/24 01:42
58F:推 fate201: 推学术 唤醒死去的计算机概论的记忆 114.43.19.214 07/24 01:47
59F:推 woula: 推 很不错,受教了XD 1.161.81.144 07/24 02:26
60F:推 as134679258: 长知识 推 114.34.72.78 07/24 02:42
61F:推 neo5277: 推个˙ 1.162.145.171 07/24 03:16
62F:推 justicebb: 推科普 很好睡123.110.195.144 07/24 03:35
63F:推 moocow: 推 114.32.252.42 07/24 03:56
64F:推 ShibaTatsuya: 推 PTT果然是学术论坛 203.204.7.54 07/24 04:49
65F:推 kelvin0004: 死去的计结记忆在攻击我219.70.139.149 07/24 05:28
66F:推 xxxx9999xxxx: 推。 1.172.175.87 07/24 05:53
67F:推 iorittn: 推223.138.121.71 07/24 06:42
68F:推 DivineSX: 推推114.40.135.239 07/24 06:45
69F:→ bhmagic: 听君一席话 知君是文组 76.82.233.154 07/24 07:38
70F:推 Dreampen: 推讲解122.116.209.70 07/24 08:49
71F:推 DarkPST: 感谢科普 194.114.136.8 07/24 08:59
72F:推 Recluz: 赞赞 版上需要更多这种优质文 118.160.61.30 07/24 09:07
73F:推 greg7575: 应该不会在这版上出现胡歌老公吧。111.251.240.184 07/24 09:25
74F:推 bunjie: 推推 希望能有更多深入介绍182.155.240.233 07/24 09:39
75F:推 fanyuzeng: 推解说 61.223.31.125 07/24 09:55
76F:推 ClixTW: 推推,看了觉得很有趣 101.137.80.248 07/24 09:57
77F:推 kuroshizu21: 言简意赅, 清楚易懂, 期待下一篇!! 114.47.72.135 07/24 10:31
78F:推 kuroshizu21: 而且这样抛砖引玉的文章也让板上很多114.47.72.135 07/24 10:33
79F:→ kuroshizu21: 其他的板友出来回应/补充/讨论, 我个114.47.72.135 07/24 10:33
80F:→ kuroshizu21: 人觉得这样很棒 114.47.72.135 07/24 10:34
81F:推 ufoufoufo: 推118.161.202.100 07/24 10:40
82F:推 Fortis931: 小白狂喜 223.138.92.121 07/24 10:41
83F:推 andy6805: 电虾一片业代中难得的清流 123.204.10.56 07/24 10:48
84F:推 rgo: 至少能让咱们理解下intel不是空口豪洨 223.137.12.107 07/24 10:52
85F:推 info2000: 推推,我一直以为微码只有辨识cpu的功能36.225.52.142 07/24 11:21
86F:→ info2000: ,原来用处这麽大 36.225.52.142 07/24 11:21
87F:→ AmibaGelos: 现代microcode和当初已经差很多惹 早36.231.132.162 07/24 11:33
88F:→ AmibaGelos: 期指state machine 如arm push能挑哪36.231.132.162 07/24 11:33
89F:→ AmibaGelos: 些reg存进stack 实际上是loop over指36.231.132.162 07/24 11:33
90F:→ AmibaGelos: 令里16个select bit 这部分到现在变36.231.132.162 07/24 11:33
91F:→ AmibaGelos: 成decoder内的microcode 但microcode36.231.132.162 07/24 11:33
92F:→ AmibaGelos: 更新包山包海 不论eTVB或之前spectre36.231.132.162 07/24 11:33
93F:→ AmibaGelos: meltdown改分支预测行为都和原始micr36.231.132.162 07/24 11:33
94F:→ AmibaGelos: ocode无关惹 只是当初借用名字36.231.132.162 07/24 11:33
是的,感谢补充,这部分稍嫌琐碎就没写了
95F:→ labbat: 借用名字描述得真好,之前想用重载或重新180.177.2.153 07/24 11:43
96F:→ labbat: 定义的解释效果都不太理想180.177.2.153 07/24 11:43
※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 11:49:14
97F:推 jacky841224j: 实现这语意有点奇怪,应该是达成吧 49.217.60.244 07/24 11:54
一般情况下我会讲implement xD ※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 11:57:53
98F:推 y865504: 推专业 1.175.220.38 07/24 12:14
99F:推 smartree: 又学了新知识了,好文推推 111.243.6.38 07/24 12:18
100F:→ shadoM: 计组科普 122.117.127.48 07/24 12:24
101F:推 nicetw20xx: 推 36.234.18.38 07/24 12:40
102F:推 kyocartoon: 推专业 跪求续集 114.36.241.219 07/24 12:45
103F:→ tomsawyer: 如果microcode能被永久放在cpu里,那 1.200.96.190 07/24 12:58
104F:→ tomsawyer: 一定有储存结构 但应该没有 1.200.96.190 07/24 12:58
105F:→ tomsawyer: 所以ucode应该都是随着os实时打上去的 1.200.96.190 07/24 13:00
其实是有的喔,有一块ROM跟RAM,RAM是用来帮那块ROM patch的。以Intel来说目前Microco de的读写都是透过Model Specific Register(MSR)
106F:推 athraugh: 希望看续集 1.160.65.242 07/24 14:17
107F:推 tw11509: 推 114.32.37.105 07/24 14:17
108F:推 jhjhs33504: 常见BIOS更新microcode是CISC架构 36.228.21.82 07/24 14:42
109F:→ jhjhs33504: RISC不确定是不是当成firmware写入O 36.228.21.82 07/24 14:45
110F:→ jhjhs33504: S image 36.228.21.82 07/24 14:45
111F:→ jhjhs33504: 早期灌OS还得先灌驱动更新才行36.228.21.82 07/24 14:47
112F:推 et84121: 推推 123.194.160.27 07/24 14:55
113F:推 cmshow: 推,涨姿势36.236.132.146 07/24 15:05
114F:推 wk415937: 推 101.10.60.213 07/24 15:19
115F:→ cancelpc: 用知识冲淡钱臭味 118.161.221.81 07/24 16:35
※ 编辑: benmei99 (111.248.158.55 台湾), 07/24/2024 16:35:52
116F:推 RusevDay: 先推再看 114.136.179.49 07/24 16:42
117F:推 jhjhs33504: 手机通常出厂怎样就怎样 也可刷机破解 36.228.21.82 07/24 17:45
118F:推 w9515: 推分享谢谢 223.140.62.60 07/24 17:48
119F:推 yymeow: 再推一下,长知识了 114.25.212.97 07/24 17:52
120F:推 Tenshi3028: 好文推推 220.133.91.47 07/24 18:11
121F:→ ILike58: 这不算晶晶体啦,优质的中译书籍也是这种 42.70.125.160 07/24 19:04
122F:→ ILike58: 描述。 42.70.125.160 07/24 19:04
123F:推 fantasy043: 推专业教导 辛苦了 211.23.27.67 07/24 23:14
124F:推 canandmap: 推,谢谢分享 36.228.131.46 07/25 00:07
125F:推 dowbane: 感谢分享 111.250.209.38 07/25 00:43
126F:推 timofEE: 稍微看的懂 先推着明天来仔细看 123.195.1.131 07/25 02:32
127F:推 amethystboy: 原来是商业机密 111.243.136.83 07/25 08:01
128F:推 samsonfu: 推 27.51.59.176 07/25 12:32
129F:推 doomsday0728: 推 跟上时事 36.234.204.45 07/25 14:53
130F:推 jyhfang: 推 有些词用原文完全没问题 中文翻译 220.134.41.251 07/25 17:18
131F:→ jyhfang: 不一致 阅读起来比较头疼 220.134.41.251 07/25 17:19
132F:推 kuseang: 推推 长知识 59.120.4.4 07/25 23:03
133F:→ kaltu: 实现语境会怪是因为这也是大陆人翻英文不管 100.8.245.106 07/26 00:30
134F:→ kaltu: 语境只看字典第一个意思的结果,跟面向对向 100.8.245.106 07/26 00:30
135F:→ kaltu: 一样的翻法 100.8.245.106 07/26 00:30
136F:→ kaltu: 我对microcode的理解就是比较简单的就算机 100.8.245.106 07/26 00:30
137F:→ kaltu: 器码的巨集展开器,比较复杂的就是机器码的 100.8.245.106 07/26 00:30
138F:→ kaltu: 直译器 100.8.245.106 07/26 00:30
139F:→ kaltu: 反正这个时代跟编译语言直译语言的区别已经 100.8.245.106 07/26 00:30
140F:→ kaltu: 从根本上消失了,再怎麽编译最後产生的mach 100.8.245.106 07/26 00:30
141F:→ kaltu: ine code/binary 100.8.245.106 07/26 00:30
142F:→ kaltu: 对CPU来说也只是microcode拿来interpret的b 100.8.245.106 07/26 00:30
143F:→ kaltu: ytecode而已 100.8.245.106 07/26 00:30
144F:推 a8785007: 原来是这样啊 39.9.66.201 07/26 03:02
145F:推 SilverFox: 推 101.10.6.251 07/26 07:22
146F:推 tgenie: 堆 60.248.16.189 07/26 07:55
147F:推 skyrain1234: 推 49.217.62.205 07/26 09:06
148F:推 ak478998: 把学术论坛效益发挥的淋漓尽致 36.229.38.60 07/26 12:48
149F:推 youcanfindit: 推 感谢科普 27.52.98.145 07/26 18:27







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP