您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第1章--IA-32概----述
微机原理与接口技术(第2版)第1章概述1.1IA-32结构的概要历史1971年,Intel公司发布了Intel4004,这是一个4位微处理器,被认为是世界上第一个微处理器。到了20世纪70年代中期,微处理器的主流是Intel的8080、8085,Motorola的6800和zilog的Z80等8位微处理器。20年来,Intel公司的微处理器有了极大的发展,从8086(8088)到80286、80386、80486、奔腾(也称为80586)、奔腾MMX、奔腾PRO(也称为80686)、奔腾II、奔腾III,直至最新的奔腾4、奔腾D,形成了IA(IntelArchitecture)32结构。1.1.18086IA-32结构的起源能追溯到Intel8086。IA-32结构同时包括了16位处理器和32位处理器。IA-32结构的最重要的成就之一是,在1978年Intel公司的那些处理器上建立的目标程序仍能在IA-32结构系列最新的处理器上执行。1.1.280386Intel386处理器是IA-32结构系列中的第一个32位处理器。它在结构中引入了32位寄存器,用于容纳操作数和地址。每个32位寄存器的后一半保留两个早期处理器版本(8086和80286)的16位寄存器的特性,以提供完全的后向兼容。Intel386还提供了一种新的虚拟8086方式,以在新的32位处理器上最有效地执行为8086处理器建立的程序。Intel386处理器有32位地址总线,能支持多至4GB的物理存储器。1.1.380486Intel486处理器把Intel386处理器的指令译码和执行单元扩展为5个流水线段,增加了更多的并行执行能力,其中每个段(当需要时)与其他的并行操作最多可在不同段上同时执行5条指令。80486的一个重大改进是在IA-32处理器的芯片中引入了缓存。Intel486处理器也是第一次把x87FPU(浮点处理单元)集成到处理器上并增加了新的引脚、位和指令,以支持更复杂和更强有力的系统(二级Cache支持和多处理器支持)。1.1.4奔腾(Pentium)Intel奔腾(Pentium)处理器增加了第二个执行流水线以达到超标量性能(两个已知的流水线u和v,一起工作能实现每个时钟执行两条指令)。1.1.5P6系列处理器在1995年,Intel公司引入了P6系列处理器。此处理器系列是基于新的超标量微结构的,它建立了新的性能标准。P6系列微结构设计的主要目的之一是在仍使用相同的0.6μm、四层金属BICMOS制造过程的情况下使处理器的性能明显地超过奔腾处理器,用与奔腾处理器同样的制造过程要提高性能只能在微结构上有实质上的改进。IntelPentiumPro处理器是基于P6微结构的第一个处理器。P6处理器系统随后的成员是IntelPentiumII、IntelPentiumIIXeon(至强)、IntelCeleron(赛扬)、IntelPentiumIII和IntelPentiumIIIXeon(至强)处理器。1.1.6奔腾IIIntelPentiumII处理器把MMX技术加至P6系列处理器,并具有新的包装和若干硬件增强。处理器核心包装在了SECC上,这使其更具有了灵活的母板结构。第一级数据和指令Caches每个扩展至16KB,支持二级Cache的尺寸为256KB、512KB和1MB。PentiumIIXeon(至强)处理器组合Intel处理器前一代的若干额外特性,例如4way、8way(最高)可伸缩性和运行在“全时钟速度”后沿总线上的2MB二级Cache,以满足中等和高性能服务器与工作站的要求。1.1.7奔腾IIIPentiumIII处理器引进流SIMD扩展(SSE)至IA-32结构。SSE扩展把由IntelMMX引进的SIMD执行模式扩展为新的128位寄存器和能在包装的单精度浮点数上执行SIMD操作。PentiumIIIXeon处理器用Intel公司的0.18µm处理技术的全速高级传送缓存(AdvancedTransferCache)扩展了IA-32处理器的性能级。1.1.8IntelPentium4处理器IntelPentium4处理器是2000年推出的IA-32处理器,是第一个基于IntelNetBurst微结构的处理器。IntelNetBurst微结构是新的32位微结构,它允许处理器在比以前的IA-32处理器更高的时钟速度和性能等级上进行操作。1.1.9Intel超线程处理器超线程技术允许单个物理处理器用共享的执行资源并发地执行两个或多个分别的代码流(线程)。以提高IA-32处理器运行多线程操作系统与执行多线程应用程序代码时的性能。图1-1支持HT技术的IA-32处理器与传统的双处理器系统的比较1.1.10Intel双核技术处理器双核技术是在IA-32结构中硬件多线程能力的另一种形式。双核技术由用在单个物理包中有两个分别的执行核心提供硬件多线程能力。图1-2支持双核的IA-32处理器IA-32e模式在两种子模式之一上操作:(1)兼容模式允许64位操作系统不修改地运行大多数32位软件。(2)64位模式允许64位操作系统运行应用程序访问64位地址空间。在IntelEM64T的64位模式,应用程序可以访问:64位平面线性寻址8个附加的通用寄存器(GPR)为了流SIMD扩展(SSE、SSE2与SSE3)的8个附加的寄存器64位宽的GPR与指令指针统一的字节寄存器寻址快速中断优先权机制一种新的指令指针相对寻址方式1.2计算机基础1.2.1计算机的基本结构图1-3计算机的基本结构图1.2.2常用的名词术语和二进制编码1.位、字节、字及字长(1)位(bit)“位”指一个二进制位。它是计算机中信息存储的最小单位。(2)字节(Byte)“字节”指相邻的8个二进制位。1024个字节构成1个千字节,用KB表示。1024KB构成1个兆字节,用MB表示。1024MB构成1个千兆字节,用GB表示。B、KB、MB、GB都是计算机存储器容量的单位。(3)字(Word)和字长一个字所包含的二进制位数称为字长。常见的微型计算机的字长,有8位、16位、32位和64位之分。目前在PC中,把字(Word)定义为2字节(16位),双字(DoubleWord)为4字节(32位),四字(QuadWord)为8字节(64位)。2.数字编码为便于机器识别和转换,计算机中的十进制数的每一位用二进制编码表示,这就是所谓的十进制数的二进制编码,简称二—十进制编码(BCD码)。二—十进制编码的方法很多,最常用的是8421BCD码。8421BCD码有10个不同的数字符号,逢10进位,每位用四位二进制表示。例如:83.123对应的8421BCD码是10000011.000100100011。同理,11110010010.00100101BCD对应的十进制是792.25。3.字符编码字母、数字、符号等各种字符也必须按特定的规则用二进制编码才能在计算机中表示。字符编码的方式很多,世界上最普遍采用的一种字符编码是ASCII。4.汉字编码用计算机处理汉字,每个汉字必须用代码表示。键盘输入汉字是输入汉字的外部码。外部码必须转换为内部码才能在计算机内进行存储和处理。1.2.3指令程序和指令系统就拿两个数相加这一最简单的运算来说,就需要以下几步(假定要运算的数已在存储器中)。第一步:把第一个数从它所在的存储单元(Location)中取出来,送至运算器。第二步:把第二个数从它所在的存储单元中取出来,送至运算器。第三步:相加。第四步:把加完的结果,送至存储器中指定的单元。1.2.4初级计算机图1-4微机结构图1.CPU的结构图1-5一个模型机的CPU结构2.存储器图1-6模型机的存储器结构图(1)读操作图1-7存储器读操作示意图(2)写操作图1-8存储器写操作示意图3.执行过程若程序已存放在内存中,大部分8位机执行过程就是取出指令和执行指令这两个阶段的循环(8086与此不同,我们将在后面介绍)。机器从停机状态进入运行状态,要把第一条指令所在的地址赋给PC,然后就进入取指(取出指令)阶段。在取指阶段从内存中读出的内容必为指令,所以DR把它送至IR,然后由指令译码器译码,就知道此指令要执行什么操作,在取指阶段结束后就进入执行阶段。当一条指令执行完以后,就进入了下一条指令的取指阶段。这样的循环一直进行到程序结束(遇到停机指令)。1.2.5简单程序举例例:要求机器把两个数7和10相加。名称助记符操作码说明立即数取入累加器MOVAL,n10110000B0nn这是一条两字节指令,把指令第二字节的立即数n送累加器AL加立即数ADDAL,n0000010004nn这是一条两字节指令,累加器AL中的内容与指令第二字节的立即数n相加,结果在AL中停机HLT11110100F4停止操作表1-1完成两数相加的指令用助记符形式表示的程序为:MOVAL,7ADDAL,10HLT图1-9指令的存放图1-10取第一条指令的操作示意图图1-11取立即数的操作示意图图1-12取第二条指令的操作示意图图1-13执行第二条指令的操作示意图1.2.6寻址方式1.立即寻址(ImmediateAddressing)操作数就包含在指令中,这种规定操作数的方式,称为立即寻址。指令中的操作数称为立即数。2.寄存器寻址(RegisterAddressing)若操作数在某一寄存器中,这种寻址方式称为寄存器寻址。MOVAL,BL是两字节指令。3.直接寻址(DirectAddressing)MOVAL,[n]4.寄存器间接寻址(RegisterIndirectAddressing)MOVAL,[BL]图1-14直接寻址方式示意图图1-15寄存器间接寻址方式示意图图1-16寄存器间接寻址加法指令示意图指令名称寻址方式助记符操作码说明取数指令立即寻址MOVAL,nB0n把指令第二字节的立即数送累加器AL中;n→AL立即寻址MOVBL,nB3n把指令第二字节的立即数送至寄存器BL中;n→BL寄存器寻址MOVAL,BL8AC3把寄存器BL中的内容,送至累加器AL中;BL→AL①MOVBL,AL8AD8把累加器AL中的内容送至BL中,AL→BL①寄存器间接寻址MOVAL,[BL]8A07以寄存器BL中的内容为操作数的地址,操作数送至AL中;[BL]→AL②直接寻址MOVAL,[n]A0n指令中的第二字节为操作数的地址,操作数送至AL中;[n]→AL②存数指令直接寻址MOV[n],ALA2n指令中的第二字节为地址,把AL中的内容存入此地址单元;AL→[n]寄存器间接寻址MOV[BL],AL8807以寄存器BL中的内容作为地址,把AL中的内容存入此地址单元;AL→[BL]加法指令立即寻址ADDAL,n04nn为立即数;AL+n→ALBL中的内容为操作数;AL+BL→AL以BL中的内容为操作数的地址;AL+[BL]→AL寄存器寻址ADDAL,BL02C3寄存器间接寻址ADDAL,[BL]0207表1-2四种寻址方式及相应的指令若仍是7和10两个数相加,但数7已存在存储器中,另外要求把相加后的和放在存储器中。通常为了避免运算的数据与指令混淆,程序和数据在存储器中是分开存放的。但为了节省内存单元,可以把数据放在程序的后边。能实现上述要求的程序为:MOVAL,[M1]ADDAL,0AHMOV[M2],ALHLT图1-17程序在存储器中存放示意图图1-18取出第一条指令后CPU的状态图图1-19直接寻址方式操作示意图图1-20取操作数过程示意图1.3计算机的硬件和软件计算机的基本结构构成了计算机的硬件。但是光有硬件,计算机还是什么事也干不了的,要使计算机能正确地运行以解决各种问题,必须给它编制各种程序。为了运行、管理和维护计算机所编制的各种程序的总和称为软件。1.3.1系统软件由计算机的设计者提供的,为了使用和管理计算机的软件,统称为系统软件。系统软件包括如下内容。(1)各种语言和它们的汇编或解释、编译程序。(2)机器的监控管理程序(Monitor)、调试程序(Debug)、故障
本文标题:第1章--IA-32概----述
链接地址:https://www.777doc.com/doc-4624741 .html