大贤者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2007-3-22
|
本帖最后由 Solite 于 2013-9-7 17:33 编辑
Stepping 大体上可以理解为CPU的版本号.
然后这个stepping确实有"纯数字" 和 "字母加数字" 两种形式, 但一般都用"字母加数字"来表示, 比如A0, B1, C2之类的, Intel自己release给OEM厂的各类文档里都是这么标示的, 在研发阶段跟Intel之间沟通时也是用这一类的stepping来称呼.
比如新型号的CPU, 第一批给OEM厂或客户做开发之用的engineering sample 肯定是A0 stepping. 小一点的OEM厂甚至拿不到这一批的sample. 这一版的CPU本身是有很多bug的, 甚至某些feature都没有ready.
然后Intel自己不停修bug加上OEM反馈回去的各种问题, 下一批打出来的有改进的sample就会升级stepping. 比如从A0到A1再到B1再到C2之类的.
那么为啥会有数字形式的出现呢? 这是因为, 软件比如CPUZ或者BIOS, 要去获得CPU信息的方式是通过执行一条叫"CPUID"的指令, 然后从EAX, EBX等寄存器里读值来进行解析. 具体的定义嘛, 在每一代的CPU BIOS Writer’s Guide里写明. 详细可以看下图, 我从Ivybridge这一代的文档里抓的

图里EAX最后的Bit0到Bit3组成的值就是标示stepping的值, 也就是楼主你说的CPUZ中显示的9啊 之类的.
然后Intel傻逼的地方就来了, 对软件or BIOS来说, 这个值就是CPU stepping了, 可是呢, Intel通常又不用这个值来标示stepping, 而是要用字母加数字, 最关键是!! 这两者之间的对应关系是没规律的!!!
对, 你没看错, 就是没规律! 请允许我再骂一句Intel大傻逼!!!
它们之间的对应关系都是每次CPU更新时文档里才单独写明的!!!
而且stepping的值也是没规律的! A0之后可能是A1, A2, A3 也可能直接变到B0, 再然后可能是Cx也可能是Dx, 这就跟老罗的锤子ROM版本号一样, 看Intel心情来定的!!
所以软件or BIOS其实没办法预知未来的CPU stepping是多少, 只能写个函数把通过CPUID读到的值show出来.
但这个值具体对应哪个stepping, 要作者自己去查文档后更新到下一版的软件or BIOS里, 才能正确匹配起来.
现在明白了吧? 最后请允许我说再说句 Intel大傻逼!!!!
|
|