八零八六
今天在极客时间上,发现这位帅气作者写的专栏已经有 8086 个人学习了。
那我们今天就简单讲讲 8086 吧~
8086 是 Intel 早期的一款 CPU 的型号,它就是我们现在常说的 x86 架构的鼻祖。
让我们跟随 Intel 手册看看它的发展史,你会看到现在的很多技术都是一步一个脚印发展起来的,并不是一蹴而就。
8086 是 1978 年 Intel 的一款 CPU 型号,众所周知是一款 16 位的 CPU,但地址线是 20 位的。
然后你看上面的第一句话,就表明了 x86 架构起源于 8086,也就是后来我们常说的 8086 是 x86 架构的鼻祖这句话的来源。
其中 IA-32 表示 x86,也可以说是 x86-32,Intel 64 表示 x64,也可以说是 x86-64。而 IA-64 却并不是 x86 家族的,与之不兼容,而且已经被淘汰了。关于这段的命名历史背景,可以看 Intel 与 AMD 的故事。
再往后就到了 1982 年的 80286,加入了保护机制,具体包括段限长的检查,只读与只可执行的段标识,以及四个特权级。这才有了现在常说的用户态(3 特权级)与内核态(0 特权级)的说法。
全体起立!1985 年推出了 80386,是第一款 x86 家族的 32 位 CPU,且兼容原来的 16 位模式。看下面的第三条,Paging,即支持了分页机制,也就有了现在的 virtual memory 虚拟内存的说法。
当然在原有的分段机制下也可以叫虚拟内存,但这个概念在分页机制下才开始大放异彩。
1989 年的 80486 引入了五个指令分阶段执行的流水线机制,就是我们常说:
Fetch Decode Execute Memory Write
1993 年,也就是我出生的那一年,奔腾系列芯片出现了。
这里看到很多熟知的名词,MESI 缓存一致性协议,APIC 高级可编程控制器,可支持多处理器系统。
随后的 P6 家族系列芯片,也叫奔腾 PRO,不断在缓存容量上做了提升。
支持虚拟化技术(Virtualizatio)。
支持超线程技术(Hyper-Threading)。
添加更多的指令集支持。
支持 Intel 64 位体系结构。
------
再往后就是五花八门的,让人听不懂的技术了,我也只能挑一些见过的名词给大家截图说一说。
不过其实闲着的时候翻翻这些手册的历史,你会发现原来好多常见的技术名词,在非常早期的 CPU 设计中就有过了,而且也并不是一蹴而就的。
而且你会发现,越早期出现的技术,对我们软件开发人员来说越重要,甚至决定了未来的操作系统以及应用程序开发的模样,比如分段、分页、特权级、MESI、流水线、Cache、多处理器等等。
而后面出现的技术,对基础软件开发的影响并不大,只是在特定场景的优化才会发挥作用,比如新的指令集添加、超线程技术、虚拟化技术、缓存大小增加以及一些我看不懂的名词,等等。
那么学习这些技术,当然是从这些手册中看是最有效的,一来这是他们第一次出现的地方,还处于最本质最简单的设计,二来一手资料里的信息是最权威的,不用担心出现错误,往往这些信息是最需要准确,也最容易传播错误的点。
------
8086 是 x86 架构的鼻祖。
80386 是 x86 架构的第一款 32 位 CPU。
不过这个数字没卡好点,超了,大家如果有兴趣的话可以取关一下,让这个数字降一降,哈哈哈哈哈哈。