【轉】x86的8和6分別指什么?
?提示:部分內容有誤,已經做了更改。
Intel的早期芯片產品一般都是4位編號的。
最早的Intel CPU是4004,第一位4表示它是一個4位CPU(4bit),后面的4是序號,因為用4004組裝的計算機是由4001(ROM)+4002(RAM)+4003(移位寄存器)+4004(CPU)+4008(地址鎖存器)+4009(IO接口),如下圖:

4004的后續(xù)產品是4040,這個CPU的外圍芯片更多。
4004的升級產品是8008,4變成8是因為位寬變成8bit,4040的升級產品是8080,升級規(guī)則都是4變8,其中8008和8080的區(qū)別是,前者是純8位的CPU,8080開始已經部分支持16位指令了。
到了8080時代,外圍芯片的數(shù)量已經很多了,比如時鐘、IO、中斷芯片等等,做過8086時代匯編的都應該聽說過8259(中斷控制器)8257(DMA控制器)等等。
具體鏈接如下:
MCS-80 - Intel - WikiChip
8080的后繼產品是8085,其中5的含義是5伏電壓的意思,8080和8085都同時支持8、16位指令。
然后就是8086,結尾6的意思,其實是要表達16位的含義,因為8086是一個純16位CPU,不再兼容8位指令。8086還可以使用8087做FPU,沒有8087的話就不能做硬浮點。
8087之后還有一個8088,通過結尾可以看出,這是一款8位處理器,因為結尾是8不是6,它的數(shù)據寬度是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開始,有保護模式出現(xiàn),地址寬度是24位,有了段描述符的概念,雖然整體還是16位的,但已經有32位的樣子了:

名字里的2究竟是想表達地址寬度是24位,還是32位(高8位永久是0,像現(xiàn)在的48-64bit地址),我說不好,但至少這個2是跟這些東西有關的。
80386是真正意義上的32位CPU,支持分段也支持分頁,3的意思就應該是表達32位吧。
至于后面80486、586、686可能只是純粹的名字升級了。
芯片的命名有一點規(guī)律,但也不是完全遵守規(guī)律。
編輯于 2020-01-02 11:55