计算机体系结构变迁

一个开放的软硬件生态要符合标准、开放、兼容三个基本点。

目录

 

1.冯·诺伊曼结构

2.早期计算机系统

3. 基于DMA的计算机系统

4. 实模式与保护模式

5. 几个需要掌握的汇编指令


1.冯·诺伊曼结构

Von Neumann model

冯·诺伊曼结构(英语:Von Neumann architecture),也称冯·诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。

冯·诺伊曼瓶颈指在CPU与存储器之间的流量(数据传输率)与存储器的容量相比起来相当小,由此就会导致在某些情况下(当CPU需要在巨大的数据上运行一些简单指令时),数据流量就成了整体效率非常严重的限制。

正是由于上述冯·诺伊曼瓶颈的存在,所以提出在CPU与存储器间的缓存存储器抒解了冯·诺伊曼瓶颈的性能问题。另外,分支预测branch prediction)算法的创建也帮助缓和了此问题。由此引出了下面将要讲述的计算机系统。

2.早期计算机系统

CPU(包含运算器和控制器)负责执行程序、对数据信息进行处理、对整个系统进行控制。并利用地址总线与数据总线和存储器与IO设备进行交互。其中地址总线决定了寻址范围的大小,数据总线决定了一次可以从内存读入数据块的大小,如两位数据总线的话一次只能拿两位(注:此处总线仅指系统总线)

3. 基于DMA的计算机系统

上面的体系结构是以前的体系结构常见于51单片机,但存在的问题是每次io读入数据都需要CPU参与,这会降低效率的伐,故现在常用的技术是DMA方式,释放CPU。

DMA技术指计算机系统允许某些硬件子系统访问独立于CPU的主系统内存。

4. 实模式与保护模式

其实这是一个历史遗留问题,早期的x86体系结构地址总线是20位的,而到386之后变为32位了,具体变迁见下表:

型号

总线位宽

地址位

寻址空间

8080

8

16

64k(2^16)

8086

16

20

1M(2^20)

8088

8

20

1M

80386

32

32

4G

在变为386模式之后为了和以前的系统版本相兼容,386采取的措施是将运算器使用的四个16bits通用寄存器AX,BX,CX,DX扩展为32bits的通用寄存器EAX,EBX,ECX,EDX。当然这些寄存器的低16位还可以像8086那样直接使用或者拆分来使用。还有指令指针寄存器IP,以及BP、SP、SI、DI也扩展为了32bits的EIP,以及EBP、ESP、ESI、EDI。而比较有意思的事情发生在四个段寄存器CS、DS、SS、ES上。

在8086中我们使用段地址加偏移量的方式来进行代码/数据寻址,段地址一般由DS/CS给出,偏移量由 通用指针寄存器/IP指出,因为只有这样才可以经由“(段起始地址<<4) + 偏移量”构成20bits的地址,才能满足8086 20bit地址线的基本要求。而在80386中我们做了一定的改变,首先在内存中的某个位置维护一个表格,表格中的一项一项是段描述符(Segment Descriptor)。这里面才是真正的段的起始地址。而段寄存器里面保存的是在这个表格中的哪一项,称为选择子(Selector)。这样,将一个从段寄存器直接拿到的段起始地址,就变成了先间接地从段寄存器找到表格中的一项,再从表格中的一项中拿到段起始地址。这样段起始地址就会很灵活了。当然为了快速拿到段起始地址,段寄存器会从内存中拿到 CPU 的描述符高速缓存器中。

如上所述,我们将前一种模式(8086)叫做实模式,后一种模式(80386)叫做保护模式。在系统刚刚启动的时候其实是处于实模式下的,当需要更多的内存的时候,就会尝试切换到保护模式,进而可以利用32bit地址总线的优势,做到更快的寻址操作。这样下来,尽管不是无缝对接的,但通过切换可以达到同样的效果也是可以接受的。

5. 几个需要掌握的汇编指令

mov,call,jmp,int,ret,add,or,xor,shl,shr,push,pop,inc,dec,sub,cmp

[笔记文档链接]   计算机系统.note

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章