提示:部分内容有误,已经做了更改。
Intel的早期芯片产品一般都是4位编号的。
最早的Intel CPU是4004,第一位4表示它是一个4位CPU(4bit),后面的4是序号,因为用4004组装的计算机是由4001(ROM)+4002(RAM)+4003(移位寄存器)+4004(CPU)+4008(地址锁存器)+4009(IO接口),如下图:
4004的后续产品是4040,这个CPU的外围芯片更多。
4004的升级产品是8008,4变成8是因为位宽变成8bit,4040的升级产品是8080,升级规则都是4变8,其中8008和8080的区别是,前者是纯8位的CPU,8080开始已经部分支持16位指令了。
到了8080时代,外围芯片的数量已经很多了,比如时钟、IO、中断芯片等等,做过8086时代汇编的都应该听说过8259(中断控制器)8257(DMA控制器)等等。
具体链接如下:
8080的后继产品是8085,其中5的含义是5伏电压的意思,8080和8085都同时支持8、16位指令。
然后就是8086,结尾6的意思,其实是要表达16位的含义,因为8086是一个纯16位CPU,不再兼容8位指令。8086还可以使用8087做FPU,没有8087的话就不能做硬浮点。
8087之后还有一个8088,通过结尾可以看出,这是一款8位处理器,因为结尾是8不是6,它的数据宽度是8,但指令集是16bit的。
所以,名字里的8表示8位,6表示16位,从8086开始,才有了x86-16指令集的概念,x86-16指令的意思是兼容8086的16位指令集。
到后来,因为用8开头进行的4位编号,已经不太够用了,Intel出了太多的芯片了,不仅仅是CPU,所以就加了一位,也就是有了80186和80286。
80186算是一个快速的8086的CPU,寻址方式跟8086是一样的,内存地址空间最大是1MB,没有保护模式。
80286开始,有保护模式出现,地址宽度是24位,有了段描述符的概念,虽然整体还是16位的,但已经有32位的样子了:
名字里的2究竟是想表达地址宽度是24位,还是32位(高8位永久是0,像现在的48-64bit地址),我说不好,但至少这个2是跟这些东西有关的。
80386是真正意义上的32位CPU,支持分段也支持分页,3的意思就应该是表达32位吧。
至于后面80486、586、686可能只是纯粹的名字升级了。
芯片的命名有一点规律,但也不是完全遵守规律。