PC的足迹--新的篇章《二》

来源:互联网 发布:java中常用关键字 编辑:程序博客网 时间:2024/04/27 22:37

19851017日,英特尔在伦敦、慕尼黑、巴黎、旧金山和东京同时发布了80386处理器[16]。这是x86构架的一个划时代的产品。386处理器是Intel第一个32位处理器,提供了三种模式,实模式、保护模式和VM86模式[13]

VM86模式用于多用户操作系统执行VM86任务,绝大多数VM86任务都是DOS任务,因此VM86任务有时也被称为DOS任务,即基于DOS操作系统的应用程序。实际上这个模式对于多数386处理器的用户并没有太大的意义,因为他们使用的操作系统就是DOS操作系统。这个模式给我带来的最大好处是我现在还可以继续在Windows操作系统中运行仙剑奇侠,三国英杰和大航海2这些经典的DOS游戏。

实模式在现代处理器体系结构中的标准说法是关闭MMUMemory Management Unit)的模式,在这种模式下,处理器可以直接访问物理地址;保护模式是指打开MMU的模式,在这种模式下,处理器必须通过MMU将程序直接访问的虚拟地址转换为物理地址后,才能访问存储器地址。当然MMU的功能不仅是虚实地址的转换,还有许多关于内存属性和访问权限的设置。在x86体系中,保护模式的概念在286处理器中首先提出,在386处理器中真正地将其系统化,完整化。

386处理器提出一些在之前x86体系中没有涉及过的概念,进一步完善了指令集、寄存器、指令流水线、内存管理和中断/异常处理,并为任务切换提供了TSSTaskState Segment)。这一切工作使得386处理器更加适合运行多任务操作系统[13]。但是直到386处理器完全淡出,也没有等到合适她的多任务操作系统。当时的应用水平决定了这颗处理器将与DOS为伴。当时有许多程序员热衷在DOS操作系统中编写一些常驻内存的程序,这也是在DOS系统下多任务的雏形。有些常驻内存程序非常有用,我喜欢一个叫FPE的游戏修改程序,这个程序使用小键盘的*键(也可以修改成`键激活,这是我最喜欢的方式)激活。使用这个常驻内存程序,我习惯性地将沙丘魔堡游戏中的金钱值锁定,然后率领的军队所向披靡。

这种常驻内存程序经常会引发系统崩溃,主要的原因还是在DOS实模式下,存储器可以被直接访问,虽然386处理器提供了一系列内存使用机制,但是DOS并没有使用。386处理器的这些内存访问机制一直被x86体系的后续处理器继承。

386处理器使用段页式管理物理内存,通过CS/DS/ES/FS/GS/SS这些段寄存器从GDTGlobal Descriptor Table)或者LDTLocal Descriptor Table)中获得段描述符,之后再将这个段中的物理内存按照4K字节大小页面进行管理,并可以设置访问权限,物理页面属性等一系列参数[13]386处理器使用中断控制器8259A管理外部中断。从现在的眼光看,8259A是一个功能单一的中断控制器,但是目前还有许多微机原理教科书以8259A为例,讲述中断控制器的在处理器系统中的作用。

386处理器引进了许多新的概念,如处理器的特权级别,并规定操作系统使用级别0~2,应用程序使用级别3,各种用于转换特权级的门(Gate),如调用门(Call Gate)、任务门(Task Gate)、中断门(Interrupt Gate)和自陷门(Trap Gate[13]

这些机制使得386处理器鲜明区别于之前的8086/808880286处理器。这是x86体系中的一个重大的里程碑。这颗处理器的出现是Intel向高级处理器迈向的坚实一步。而这颗处理器在面世的时候并没有得到太多主流学术界人士的认可,这颗处理器确实也有自身的问题,许多设计并非完全合理,Intel在后来也确实为这些不合理付出了代价。但是没有人会依此否定386处理器的成就,否定Intel的抉择。

0 0
原创粉丝点击