自动化设备演进_IBM PC

在ENIAC问世之后的几年里,有几项突破性技术使得计算机体系结构进步显著:·约翰·巴丁(John Bardeen)、沃尔特·布拉顿(Walter Brattain)和威廉·肖克利(William Shockley)于1947年发明了晶体管。与当时流行的真空管技术相比,晶体管速度更快、体积更小、功耗更低,另外,生产工艺充分改进后,晶体管的可靠性比易发生故障的真空管高得多。·1958年,在德州仪器(Texas Instruments)的杰克·基尔比(Jack Kilby)的带领下,集成电路产业开始将大量原先分立的元件集成到一块硅片上。·1971年,英特尔开始生产第一款商用微处理器——Intel 4004。Intel 4004旨在用于电子计算器,专门对4位二进制编码的十进制数进行操作。虽然Intel 4004起初并不起眼,但微处理器技术在接下来的十年里迅速发展,单芯片上集成的电路元件越来越多,因此,单芯片微处理器的能力也得到了很大的提升。

1. 8088微处理器IBM于1981年发布了IBM PC。最初的PC中包含一个时钟频率为4.77MHz的Intel 8088微处理器(该处理器具有16KB的RAM,并可扩展到256KB)、一个或两个(可选)软盘驱动器,以及彩色显示器。版本较新的PC支持更大容量的内存,但由于部分地址空间已预留给视频内存和只读内存,因此该体系结构最多可支持640KB的RAM。8088包含14个16位寄存器。其中4个是通用寄存器(AX、BX、CX和DX),还有4个是将地址空间扩展到20位的段寄存器(CS、DS、SS和ES)。段寻址的功能是将16位段寄存器值左移4位后,与指令中的16位偏移量相加,从而产生1MB以内的物理内存地址。剩余的6个8088寄存器是栈指针(SP)、基指针(BP)、源索引(SI)、目标索引(DI)、指令指针(IP)和状态标志(FLAGS)。现代x86处理器采用与此寄存器集非常类似的体系结构(第10章将详细介绍x86体系结构)。8088和x86之间最明显的区别是x86将寄存器宽度扩展到了32位,并增加了一对段寄存器(FS和GS),这两个寄存器目前主要用作多线程操作系统中的数据指针。

8088的外部数据总线宽度为8位,这意味着读取或写入16位数据需要两个总线周期。与采用16位外部总线的早期8086处理器相比,这是8088性能较低的一个重要原因。然而,使用8位总线使PC的生产成本更低,并提供了与较低成本的8位外围设备的兼容性。这是一种优先考虑成本的设计方法,有助于降低PC的价格,获得更多潜在客户。由于程序内存和数据内存共享相同的地址空间,8088通过单一总线访问内存。换句话说,8088实现了冯·诺依曼体系结构。8088指令集包括数据移动、算术运算、逻辑运算、字符串操作、控制转移(有条件跳转和无条件跳转、子程序的调用和返回)、输入/输出和附加的多种功能的指令。该处理器中每条指令的平均执行时间大约是15个时钟周期,故其执行速度约为0.3MIPS(Millions Instruction Per Second,每秒百万条指令数)。8088支持9种不同的内存寻址模式,如此多的寻址模式可以有效地实现一次访问单个数据或遍历数据序列。

在8088体系结构中,段寄存器提供了一种巧妙的方法,能够在不增加大多数引用内存位置的指令长度的情况下扩展可寻址内存的范围。每个段寄存器允许访问从物理内存地址为16字节整数倍处开始的64KB内存块。也就是说,16位段寄存器表示低4位为0的20位基地址,指令可以使用由段寄存器定义的地址的16位偏移量来引用64KB段内的任何位置。CS寄存器用来指明代码段在内存中的位置,并用于获取指令、执行跳转、执行子程序调用与返回。DS寄存器定义了数据段位置,一般用于涉及内存数据访问的指令。SS寄存器设置了堆栈段位置,用于子程序内的本地内存分配和存储子程序的返回地址。在每个代码段、数据段和堆栈段中,小于64KB的程序可以完全忽略段寄存器,因为这些段寄存器只需要在程序启动时设置一次(编译器会自动设置),并且在执行过程中保持不变。实现起来非常简单!

当程序的数据大小超过64KB时,情况就变得比较复杂了。基于8088体系结构的编译器区分对内存的近程访问和远程访问。近程指针表示相对于当前段寄存器中基址的16位偏移量。远程指针包含32位寻址信息:16位段寄存器值和16位偏移量。远程指针显然需要16位额外的数据内存,以及额外的处理时间。使用远程指针进行一次存储器访问涉及以下步骤:1.将当前段寄存器内容保存到临时位置。2.将新的段值加载到寄存器中。3.使用相对于段基址的偏移量访问数据(根据需要进行读取或写入)。4.恢复原始的段寄存器值。使用远程指针时,可以声明最大64KB的数据对象(例如,字符数组)。如果需要更大的结构,就必须设法将其拆分成不超过64KB的块,并对这些块进行管理。由于需要管理段寄存器,因此那些需要访问超过64KB的数据的程序容易发生代码膨胀和执行速度减慢的问题。

IBM PC主板上还有一个插座,可用于安装Intel 8087浮点协处理器。8087的设计者发明了32位和64位浮点数的数据格式和处理规则,该数据格式和处理规则于1985年作为IEEE 754浮点标准,至今仍在广泛使用。8087每秒可以执行大约50000次浮点运算。我们将在第9章中详细介绍浮点处理器。2. 80286和80386微处理器IBM PC的第二代PC(名为PC AT)于1984年发布。AT代表先进技术(Advanced Technology),主要指的是在原先PC的基础上,使用了Intel 80286处理器而带来了几项重大的改进。

与8088一样,80286也是一个16位处理器,它保持了与8088的向后兼容性:8088代码可以原封不动地在80286上运行。80286具有16位数据总线和支持16兆字节地址空间的24位地址线。相比8088的8位总线,16位的外部数据总线提高了数据访问性能。在许多应用中,指令执行率(每个时钟周期执行的指令数)大约是8088的两倍,这意味着在相同的时钟频率下,80286的速度将是8088的两倍。起初,PC AT处理器的时钟频率为6MHz,后来版本的时钟频率为8MHz。80286在6MHz频率下实现了约0.9MIPS的指令执行率。80286实现了受保护的虚拟地址模式,旨在支持多用户操作系统和多任务处理。在保护模式下,处理器强化内存保护,以确保一个用户的程序不会干扰操作系统或其他用户的程序。由于多用户、多任务处理环境中需要足够的内存空间来保存上下文,在当时的条件下其成本的增加令人望而却步,因此这一突破性的技术在提出后的多年内几乎没有得到使用。

x86处理器系列的下一代是1985年推出的80386。80386是32位处理器,在保护模式下支持32位线性内存模型。线性内存模型允许程序员在不需要管理段寄存器的情况下直接寻址高达4GB的存储空间。康柏公司(Compaq)在1986年推出了一款基于80386的与IBM PC兼容的个人计算机,称为DeskPro。DeskPro附带了针对80386体系结构的Microsoft Windows操作系统。80386在很大程度上保持了与80286和8088处理器的向后兼容性。在80386中实现的设计仍然是当前标准的x86体系结构。有关该体系结构的更多信息参见第10章。第1版本80386的时钟频率是33MHz,其性能达到了11.4MIPS。基于x86体系结构的现代处理器由于具有更高的时钟频率、使用了高速缓存等提升性能的技术,以及在硬件级采用更高效的指令执行方式,因此运行速度比最初的版本快几百倍。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值