一直挺好奇 cpu 里那么多晶体管,内存数据存在高低电压中。每天在千亿万亿次计算中有没有可能出错,例如某一个 0 被当成 1 ,只要某一个位出错可能出现连锁反应导致整个计算结果的出错,计算机有没有机制保证或者察觉到这种出错。如果存在这种可能是不是你银行的钱就可能多一个 0 或少一 0 ,这种出错概率是多少。
这里大多数人应该都是做软件的,可能平常也不会去想这些底层硬件是如何去保证计算的正确性。
1
GiggleSmile 3 天前
|
2
xibeifeng 3 天前
计算机组成原理?好像记得硬件是进行补码加法运算,然后会有各种校验码方法,什么 crc 、海明码保证运算结果正确,好像是这么回事
|
3
liprais 3 天前 4
"这里大多数人应该都是做软件的,可能平常也不会去想这些底层硬件是如何去保证计算的正确性。"
问问题还不忘扣帽子,真是 xx 的好学生 |
5
TrackBack 3 天前
你要是我 10 岁的侄子问出来我会夸你有探索精神
你在这里问我只能说本科没好好上课就回去翻书 |
6
tt83 OP @GiggleSmile 看回答就是会出错,只是概率低极低
|
9
deepblue1 3 天前
学计算机(软硬件)的不学计算机组成原理吗 这不是软件必修课
|
10
psyche 3 天前
op 不是科班的,还是上课摸鱼了?
|
11
a949690645 3 天前 16
不想回答就不要回,为什么总是高高在上的感觉呢,难道因为这是一个很简单的问题大家就不去提问了吗?
|
12
mobpsycho100 3 天前
关键词: CPU post-validation
|
13
me1onsoda 3 天前
事实上计算机计算并不保证正确,精度缺失溢出等等,或者干脆说它压根就没有在计算,纯粹的在进行异或进位等操作。再追根究底下去就需要电路相关的知识了,这种人才应该在做半导体芯片的工作
|
14
ryd994 3 天前 via Android 1
“例如某一个 0 被当成 1 ”
所以需要 ecc 内存 “计算机有没有机制保证或者察觉到这种出错” 有,而且有很多。ECC 内存、CPU cache 也是 ECC 的。CPU 本身在发售前就要大量的验证,但仍然可能有 bug 。一些 bug 可以通过微码更新修复,一些 bug 无法修复就只能屏蔽功能或召回。Intel 的处理器白皮书你可以去看看,有很多勘误才是正常的。 对于要求极高可靠性的情况(比如火箭控制)可以使用多机同步计算投票的办法做最终的纠错。 “你银行的钱就可能多一个 0 或少一 0 ,这种出错概率是多少” 可能性很大但也很小。很大是说这种错误在底层很常见。很小是说这种信号错误经过层层纠错,影响结果的概率几乎没有。而且银行内部的流程设计就包括了各种容错机制。毕竟别说计算机可能出错,人更可能出错。人出错的概率比电脑大多了。 |
15
icyalala 3 天前
SpaceX 的猎鹰 9 火箭,内置了 3 个 x86 处理器来作为辐射容错( radiation fault )
错误由软件层面解决,一台出错了也没问题,自动重启就行 这是 SpaceX 官方工程师的说法 |
16
besto 3 天前 3
多个方面:
1. 所谓 0 1 是数字电路,简化后的结果,底层还是要有波动的,比如电源 5V ,并不是 0V 才是 0 ,5V 才是 1 ,这中间就有了很大容错空间,如果你做 FPGA 就能接触到 setup hold removal 时序,如果不满足,就可能出错,而这个时序和频率有关系,这也就是为啥超频可能跑飞的原因,因为确实很多地方算错了; 2. 有各种容错算法,比如上面提到 ECC / CRC 校验等,当然这里大多数是对内存或是传输过程中错误; 3.也就是 15L 说的,这里有个专业名词叫 lockstep ,简单点就是 2CPU 一起算,结果一样才能出来,不行重算,有安全要求的芯片中很常见,比如 720AE 的,就是锁步 CPU ,甚至还有类似的 GPU (我知道的,IMG 公司的 BXS 这种); 最后一条: 算错是非常常见的事情,芯片出来有良品率一说,也就是出场芯片有很多都是坏的,它就会算错,这时候有 ATE 验证,甚至还有 SLT 验证,就是要工厂通过特定 0/1 特征流输入给芯片,看芯片能否返回正确值,这也就是 12L 说的验证; @icyalala @mobpsycho100 |
17
julyclyde 3 天前
其实保证不了
“想当年”Pentium 刚出的时候就有浮点运算错误的 bug 更不要说浮点数本身就不准 |
18
xz410236056 3 天前
校验和冗余
|
19
paopjian 3 天前
CPU 没法保证计算结果正确, 只能多重验证+算法验证+人工发现
|
20
duanxianze 3 天前 2
其实关键的问题就是出错的概率没你想的那么高,可以说非常非常低,比如说一个发光二极管,通电它就一定亮,断电它就一定灭,现实世界还是很稳定的,芯片的物理和化学物质也都非常稳定,就像沙子放一万年还是砂子一样,所以只要设计不出错,再加一定的冗余措施,出错的概率极低
|
21
paradoxs 3 天前
没有保证啊。
你现在用豆包,做数学题,很容易出错的。 |
22
passive 3 天前 via Android
这问题涉及太广了。每个人都会往自己的方向说。并不是楼上说的科班不科班的区别。
问编码的会说因为考虑了校验,问高速电路的会说电路设计牛逼眼图干净,问材料科学的会说他发明的基底材料 dispersion 小,问工艺的也会从工艺上给你解释,问质量管理的又会是另一套说辞 |
23
lxh1983 3 天前 via iPhone
现在的计算机专业都不学微机原理了吗?
|
24
cpstar 3 天前
不是单纯一个层面在纠错,若干个层面都有,从底层高低电位到最上层软件编写
|
25
moudy 3 天前
出厂前的验证,日常运行时各种 ECC 纠错机制,关键任务,比如航天航空,还会上 n 选 1 异构软硬件。
|
26
Lightbright 3 天前 via Android
你这个问题问 gpt 岂不是更快
|
27
twig 2 天前 via iPhone
|
28
lekai63 2 天前 via iPhone
op 在学习研究计算机底层原理的同时,也要多看看社科人文作个补充啊。
|
29
mhycy 2 天前
地表上晶体管的电压能保证其自身在物理学定律约束下不出错
非晶体管器件以及长引线需要引入 ECC 纠错,片上 ECC 在 FPGA 很常见 逻辑上抵御串扰的方法不是加电压就是加距离,这是为了在物理学约束下能不出错 可以参考眼图这一东西,在外部需要用眼图测试来保证链路没问题 至于高空…… 上冗余!加铅封!降频率!降工艺!加电压! 好了,物理学能大概率保证你不出错了 |
30
cnrting 2 天前 via iPhone
2025 年了,这种问题丢给 AI 就行了
|
31
willatman 2 天前 via iPhone
@tt83 人家根本没往政治上扯,就是说你问问题就问问题,还埋汰一下论坛里的人干啥? 你问的问题听上去就是在说,看我想的问题,比你们不知道高到哪里去了,问你们也不懂。
|
33
yov123456 1 天前 via iPhone
intel 14 代缩肛导致 ue5 游戏高负载下报错不就是 cpu 算错了嘛🤔 还挺常见的
|
34
GeekGao 1 天前
发帖的礼仪、情商,都很重要。
就好像如果你把 CPU 、RAM 这类核心芯片 给干红温了,降频、高温导致信号干扰那自然就会出错。如果长时间没触发断电机制的话,电子迁移会导致硬件完全损毁。 所以自保手段之一就是当机。然后你还要埋冤 “你们做软件的不靠谱,可能平常也不会去关注底层硬件。。。你看,硬件主动断电了吧” |