1.1IA-32结构的概要历史
1971年,Intel公司发布了Intel 4004,这是一个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(Intel Architecture)32结构
1.1.1 8086
- IA-32结构的起源能追溯到Intel 8086
- IA-32结构同时包括了16位处理器和32位处理器
- IA-32结构的最重要的成就之一是,在1978年Intel公司的那些处理器上建立的目标程序仍能在IA-32结构系列最新的处理器上执行
1.1.2 80386
- Intel 386处理器是IA-32结构系列中的第一个32位处理器
- 它在结构中引入了32位寄存器,用于容纳操作数和地址
- 每个32位寄存器的后一半保留两个早期处理器版本(8086和80286)的16位寄存器特性,以提供完全的后向兼容
- Intel 386还提供了一种新的虚拟8086方式,以在新的32位处理器上最有效地执行为8086处理器建立的程序
- Intel 386的处理器有32位地址总线,能支持多至4GB的物理存储器
1.1.3 80486
- Intel 486处理器把Intel 386处理器的指令译码和执行单元扩展为5个流水线段,增加了更多的并行执行能力,其中每个段(当需要时)与其他的并行操作最多可在不同段上同时执行5条指令
- 80486的一个重大改进是在IA-32处理器芯片中引入缓存
- Intel 486处理器也是第一次吧x87 FPU(浮点处理单元)继承到处理器上并增加了新的引脚、位和指令,以支持更复杂和更强有力的系统(二级Cache支持和多处理器支持)
1.1.4奔腾(Pentium)
- Intel 奔腾(Pentium)处理器增加了第二个执行流水线以达到超标量性能(两个已知流水线u和v,一起工作能实现每个时钟执行两条指令)
1.1.5 P6系列处理器
在1995年,Intel公司引入了P6系列处理器
此处理器系列是基于新的超标量微结构的,它建立了新的性能标准
P6系列微结构设计的主要目的之一是在仍使用相同的0.6m、四层金属BICMOS制造过程的情况下使处理器的性能明显地超过奔腾处理器,用于奔腾处理器同样的制造过程要提高性能只能在微结构上有是指上的改进
Intel Pentium Pro处理器是基于P6微结构的第一个处理器
P6处理器系统随后的成员是Intel Pentium II、Intel Pentium II Xeon(至强)、Intel Celeron(赛扬)、Intel Pentium III和Intel Pentium III Xeon(至强)处理器
1.1.6 奔腾II
- Intel Pentium II处理器把MMX技术加至P6系列处理器,并具有新的包装和若干硬件增强
- 处理器核心包装在SECC上,这使其更具有了灵活的母板结构
- 第一级数据和指令Caches每个扩展至16KB,支持二级Cache的尺寸256KB、512KB和1MB
- Pentium II Xeon处理器组合Intel处理器前一代的若干额外特性,例如4way、8way(最高)可伸缩性和运行在“全时钟速度”后沿总线上的2MB二级Cache,以满足中等和高性能服务器与工作站的要求
1.1.7 奔腾III
- Pentium III处理器引进流SIMD扩展(SSE)至IA-32结构。SIMD(Single Instruction Multiple Data,单指令多数据流)能够赋值多个操作数,并把它们打包在大型寄存器的一组指令集,例:3DNOW!、SSE。以同步方式,在同一时间内执行同一条指令
SIMD在性能上的优势:
- 以加法指令为例,单指令但数据(SISD)的CPU对加法指令译码后,执行不见先访问内存,去的第一个操作数:之后再一次访问内存,取得第二个操作数:随后才能进行求和运算。而在SIMD型的CPU中,指令译码后几个执行不见同时访问内容,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算
- 如:AMD公司引以为豪3D NOW!技术实质SIMD,这使K6-2、雷鸟、毒龙处理器在音频解码、视频回放、3D游戏等应用应用中显示出优异的性能。
- SSE扩展把由Intel MMX引进的SIMD执行模式扩展为新的128位寄存器和能在包装的单精度浮点数上执行SIMD操作
- Pentium III Xeon处理器用Intel公司的0.18m处理技术的全速高级传送缓存(Advanced Transfer Cache)扩展IA-32处理器的性能级
1.1.8Intel Pentium 4 处理器
- Intel Pentium 4处理器2000年推出的IA-32处理器,是第一个基于Intel NetBurst微结构的处理。Intel NetBurst微结构是Intel Pentium 4处理器的基础
- Intel NetBurst微结构是新的32位微结构,它允许处理器在比以前的IA-32处理器更高的时钟和性能等级上进行操作
1.1.9 Intel超线程处理器
-
超线程技术允许单个物理处理器用共享的执行资源并发地执行两个或多个分别的代码流(线程)
以提高IA-32处理器运行多线程操作系统与执行多线程应用程序代码时的性能
1.1.10 Intel双核技术处理器
- 双核技术是在IA-32结构中硬件多线程能力的另一种形式
-
双核技术由单个物理包中有两个分别的执行核心提供硬件多线程能力
IA-32e模式在两种子模式之一上操作:
(1)兼容模式允许64位操作系统不修改地运行大多数32位软件
(2)64位模式允许64位操作系统运行应用程序访问64位地址空间
在Intel EM64T的64位模式,应用程序可以访问:
- 64位平面线性寻址
- 8个附加的通用寄存器(GPR)
- 为了流SIMD扩展(SSE、SSE2与SSE3)的8个附加的寄存器
- 64位宽的GPR与指令指针
- 统一的字节寄存器寻址
- 快速中断优先权机制
- 一种新的指令指针相对寻址方式
1.2计算机基础
1.2.1 计算机的基本结构
1.2.2常用的名词术语和二进制编码
1.位、字节、字及字长
(1)位(bit)
“位”指一个二进制位。它是计算机中信息存储的最小单位
(2)字节(byte)
“字节”指相邻的8个二进制位
1024个字节构成1个千字节,用KB表示
1024KB构成1个兆字节,用MB表示
1024MB构成1个千兆字节,用GB表示
(3)字(Word)和字长
一个字所包含的二进制位数称为字长
常见的微型计算机的字长,有8位、16位、32位和64位之分
目前在PC中,把字(Word)定义为2字节(16位),双字(Double Word)为4字节(32位),四字(Quad Word)为8字节(64位)
2.数字编码
为便于机器识别和转换,计算机中的十进制数的每一位用二进制编码表示,这就是所谓的十进制数的二进制编码,简称二—十进制编码(BCD码)
二—十进制编码的方法很多,最常用的是8421BCD码
8421BCD码有10个不同的数字符号,逢10进位,每位用四位二进制表示
3.字符编码
字母、数字、符号等各种字符也必须按特定的规则用二进制编码才能在计算机中表示
字符编码的方式很多,世界上最普遍采用的一种字符编码是ASCII
4.汉字编码
用计算机处理汉字,每个汉字必须用代码表示
键盘输入汉字是输入汉字的外部码
外部码必须转换为内部码才能在计算机内进行存储和处理
1.2.3指令程序和指令系统
两个数相加需要以下几步(假定要运算的数已在存储器中)
- 第一步:把第一个数从它所在的存储单元(Location)中取出来,送至运算器
- 第二部:把第二个数从它所在的存储单元中取出来,送至运算器
- 第三部:相加
- 第四部:把加完的结果,送至存储器中指定的单元
1.2.4初级计算机
1.CPU的结构
2.存储器
(1)读操作
(2)写操作
3.执行过程
若程序已存放在内存中,大部分8位机执行过程就是取出指令和执行指令这两个阶段的循环(8086与此不同)
机器从?;刺朐诵凶刺?,要把第一条指令所在的地址赋给PC,然后就进入取指(取出指令)阶段
在取指阶段从内存中读出的内容必为指令,所以DR把它送至IR,然后由指令译码器译码,就知道此指令要执行什么操作,在取指阶段结束后就进入执行阶段
当一条指令执行完以后,就进入了下一条指令的取指阶段
这样的循环一直进行到程序结束(遇见?;噶睿?/p>
1.2.5简单程序举例
要求机器把两个数7和10相加
指令的存放
取第一条指令的操作
取立即数的操作
取第二条指令的操作
执行第二条指令的操作
1.2.6寻址方式
1.立即寻址(Immediate Addressing)
操作数就包含在指令中,这种规定操作数的方式,称为立即寻址
指令中的操作数称为立即数
2.寄存器寻址(Register Addressing)
若操作数在某一寄存器中,这种寻址方式称为寄存器寻址。
MOV AL,BL是两字节指令
3.直接寻址(Direct Addressing)
MOV AL,[n]
4.寄存器间接寻址(Register Indirect Addressing)
MOV AL,[BL]
四种寻址方式及相应的指令
指令名称 | 寻址方式 | 助记符 | 操作码 | 说明 |
---|---|---|---|---|
取数指令 | 立即寻址 | MOV AL,n | ||
立即寻址 | ||||
寄存器寻址 | ||||
寄存器间接寻址 | ||||
直接寻址 | ||||
存数指令 | 直接寻址 | |||
存储器间接寻址 | ||||
加法指令 | 立即寻址 | |||
寄存器寻址 | ||||
寄存器间接寻址 |
- 若仍是7和10两个数相加,但数7已存在存储器中,另外要求把相加后的和放在存储器中
- 通常为了避免运算的数据与指令混淆,程序和数据在存储器中是分开存放的
- 但为了节省内存单元,可以把数据放在程序后边
- 能实现上述要求额成为
MOV AL,[M1]
ADD AL,0AH
MOV [M2],AL
HLT
程序在存储器中存放示意图
取出第一条指令后CPU的状态图
直接寻址方式操作
取操作数过程
1.3计算机的硬件和软件
计算机的基本结构构成了计算机的硬件。但是光有硬件,计算机还是什么事也干不了的,要使计算机能正确地运行以解决各种问题,必须给它编制各种程序。为了运行、管理和维护计算机所编制的各种程序的综合称为软件
1.3.1系统软件
由计算机的设计者提供的,为了使用和管理计算机的软件,统称为系统软件
系统软件包括如下内容
(1)各种语言和它们汇编或解释、编译程序
(2)机器的监控管理程序(Monitor)、调试程序(Debug)、故障检查和诊断程序
(3)程序库。为了扩大计算机的功能,便于用户使用,机器中设置了各种标准子程序,这些子程序的总和就形成了程序库
(4)操作系统
1.3.2应用软件
用户利用计算机以及它所提供的各种系统软件,编制解决用户各种实际问题的程序,这些称为应用软件
1.3.3支撑软件
随着计算机的硬件和软件的发展,计算机在信息处理、情报检索以及各种管理系统中的应用越来越普及
计算机需要处理大量的数据,检索和建立大量的各种表格
这些数据和表格应按一定规律组织起来,使得检索更迅速,处理更方便,也更便于用户使用,于是就建立了数据库
为了便于用户根据需要建立自己的数据库,询问、显示、修改数据库的内容,输出打印各种表格等,还需要数据管理系统(Data Base Management System)等支撑软件
1.4微型计算机的结构
第一代,是用电子管制造的,第二代,是用晶体管,第三代,是用集成电路,第四代,是用大规模集成电路
1.4微机的外部结构
1.4.1微型计算机的外部结构
在微机系统中,外部信息的传送是通过总线进行的
大部分微机有三组总线:地址总线(Address Bus)、数据总线(Data Bus)和控制总线(Control Bus)
- 地址总线:通常32位,即A31~A0,因此,可寻址的内存单元为=4GB。I/O接口也是通过地址总线来寻址的,它可寻址64KB的外设端口
- 数据总线:通常32位,即D31~D0.数据在CPU与存储器和CPU与I/O接口之间的传送是双向的,故数据总线为双向总线
- 控制总线:它传送各种控制信号,有的是CPU到存储器和外设接口的控制信号,例如,存储器请求(MERQ)、I/O请求(IORQ)、读信号(RD)、写信号(WR)等;有的是由外设到CPU的信号,如8086中READY以及INT等
1.4.2微型计算机的内部结构
1.5多媒体计算机
1.5.1人机接口
1.5.2多媒体计算机的主要功能
多媒体系统应具有如下特性
(1)具备高度集成性
(2)具有良好的交互性
(3)具有完善的多媒体硬件和多媒体工作平台