计算机硬件技术基础—第二章

CISC与RISC

CISC与RISC都是计算机指令系统(CPU能直接识别的指令)的优化方向

  • CISC (complex instruction set computing) 复杂指令集计算机,通过设置一些功能复杂的指令,把一些原来通过软件实现的常用功能改用硬件的指令系统实现,以提高计算机的执行速度。
  • RISC (reduced instruction set computing) 精简指令集计算机,通过尽量简化计算机指令功能,只保留功能简单、能在一个节拍完成的指令,而把较复杂的指令通过一段子程序实现,使得指令平均执行周期减少,从而提高计算机的工作主频,同时大量使用寄存器提高子程序执行的速度

区别

其实了解了两者的原理,就自然会明白两者在各个方面的区别,如:因为RISC复杂指令是一段子程序,所以在一条指令执行的适当地方可以响应中断,所以中断响应及时;而CISC则在一条指令执行完成后才能响应中断。再比如RISC只保留功能简单的指令,所以CPU包含较少的单元电路,面积小、功耗低;CISC的CPU则有丰富的电路单元,功能强、面积大、功耗大。

8086/8088

缩写

在这里插入图片描述

  • 其中,AX、BX、CX、DX都是由两个八位寄存器组成,所以可以分成高八位AH、BH、CH、DH和低八位AL、BL、CL、DL。所以他们既可以按字(16位)访问,也可以按字节(8位)访问。
  • 但SP、BP、SI、DI都是十六位寄存器,不能分开
  • EU 执行单元
  • BIU 总接口单元

8086/8088 CPU的内部功能结构

在这里插入图片描述

由于BIU与EU分开独立工作,且BIU有指令队列缓冲器,所以当CPU在执行一条指令时,可同时取一条或多条放在指令队列中排队,即指令预取与指令执行并行,从而提高执行速度

8086/8088的编程结构

  • 通用寄存器
  • 段寄存器
  1. 地址加法器
    通过“段加偏移”的技术,先将16位的段地址左移四位,形成二十位段起始地址,再与十六位偏移地址相加,得到二十位的物理地址。从而实现用16位寄存器,寻址20根地址线提供的20位物理地址空间
    2.分段
    这样一来,就能实现分段,每一个段地址在左移四位后,结合偏移地址,就能拥有24也就是64KB的长度。如,代码段寄存器CS以来存放程序当前使用的代码段的段地址,CPU执行的指令将从代码段中取得。
  • 控制寄存器
    8086/8088的控制寄存器包括16位指令指针寄存器IP(instruction pointer)和16位标志寄存器FLAGS。标志寄存器又称为处理器寄存器。
    在这里插入图片描述
  • CF:当执行一个加法或减法运算使最高位产生进位或借位时,CF=1,否则为0。
  • PF:当指令执行结果的低八位中有偶数个1时,PF=1,反之为0
  • TF:跟踪(陷阱)标志。为调试程序方便而设置的,若TF=1,则8086/8088CPU处于单步执行指令的工作方式;否则,将正常执行程序。

总线周期的概念

总线周期是微处理器与存储器或I/O设备接口之间进行数据传送时,所需要的一个基准时间段。
对于16位的8086/8088CPU,一个总线周期由四个时钟周期(状态)组成,包括:T1、T2、T3、T4
在这里插入图片描述
若外设或存储器的速度跟不上CPU的访问速度时,外设或存储器会通过READY线,在当T3状态启动之前,向CPU发送一个“数据未准备好”的无效信号,此时CPU会在T3前插入一个或多个TW(等待状态)。
注意只有在CPU执行取指令或传送数据时才执行总线周期,否则,系统总线将处于空闲状态,CPU页执行空闲周期。
对32位CPU来说,一个总线周期由T1和T2组成。
在这里插入图片描述

读时序

t1时送出地址

ALE (address lockenable) 地址锁存信号输出
*
386/486后数据线和地址线分开了,但在这之前数据线和地址线是共用的,为了实现地址复用,也就是防止在传输数据时丢失地址信息,在传输数据时要对地址进行所存。
*
具体实现为:在访问外部存储器时,在ALE信号的下降沿时,会将p0口上的低8位地址送到三片地址锁存器(8282)锁存起来。

锁存地址稳定以后,加载读信号,存储器进入读周期,从锁存下来到数据输入(200、300ns——>40ns)

t2 撤销地址,为数据传输做准备,总线高四位(A19~A16)用来输出本总线周期状态信息
t3 高四位继续提供状态信息,低十六位(8086)/低八位(8088)出现数据
READY送低电平会操作TW,高电平则不操作
t4 CPU采取数据总线,完成传送数据,结束总线周期
先地址、然后读信号、然后数据

写时序

写信号与数据输出几乎是同时进行的
先地址、然后数据、然后写信号
不太用ready线,因为可以充分利用t4

引脚信号与功能

在这里插入图片描述

1. 地址/数据总线

AD15~AD0是地址和数据分时复用线,也就是说是在不同时段会传输不同的信号(地址/数据)。
具体来说,将在T1状态用来输出要寻址的存储器或I/O端口地址;在T2状态浮置为高阻状态,为传输数据做准备,T3状态传输数据。当CPU响应中断时以及系统总线“保持响应”时,复用线都被浮置为高阻状态。

保持响应简单地说就是其它外部设备向CPU借用总线,此时CPU没有对总线的控制权。

2. 地址/状态总线

在这里插入图片描述

3. 控制总线

控制信号中,有的是微处理器送往存储器和输入输出设备接口电路的(输出),比如:读/写信号、片选信号、中断响应信号等;
也有是其它部件反馈给CPU的(输入),比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。
因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。

  • RD ‾ \overline{\text{RD}} RD 读控制信号,三态,输出。 当 RD ‾ \overline{\text{RD}} RD=0时,表示CPU将要执行对存储器或I/O端口的读操作
    在读操作的时候, RD ‾ \overline{\text{RD}} RD在T2、T3和T4状态都为低电平,以使CPU读有效
  • INTR 可屏蔽中断请求信号,输入,高电平有效。当INTR=1时,表示外设发出了中断请求,8086/8088在每个指令周期的最后一个T状态取采样此信号,若IF=1,则CPU响应中断。

“紧急事件”须向处理器提出申请(发一个电脉冲信号),要求“中断”,即要求处理器先停下“自己手头的工作”先去处理“我的急件”,这一“申请”过程,称——中断请求。

IF 中断允许标志

  • NMI 非屏蔽中断请求信号,输入,上升沿触发。此请求不受IF状态的影响,也不能用软件屏蔽,只要该信号一出现,就在现行指令结束后引起中断。

数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。

  • RESET 复位信号,输入,高电平有效
    在这里插入图片描述

在8086CPU加电启动或复位后CS和IP被设置为
CS=FFFFH,IP=0000H,即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。

8086/8088系统的工作模式

有最大模式和最小模式两种工作模式,

最小模式:系统里只有8086/8088一个微处理器,属于单处理系统。

最大模式:系统里一般包含两个或多个处理器,为了解决主处理器与协处理器之间的协作工作问题以及对总线的征用共享问题,加入了8288总线控制器,使总线控制功能更加完善。

最小工作模式

在这里插入图片描述

  • M/IO 存储器/输入输出控制信号输出
    高电平表示CPU与存储器之间进行数据传输
    低电平表示CPU与输入输出设备进行数据传输
    在DMA(直接存储器存取)方式时,M/ IO ‾ \overline{\text{IO}} IO被浮置为高阻状态

最大工作模式

在这里插入图片描述

注意到在最小模式系统中,控制信号 INTA ‾ \overline{\text{INTA}} INTA、ALE、 DEN ‾ \overline{\text{DEN}} DEN、DT/ R ‾ \overline{\text{R}} R、M/ IO ‾ \overline{\text{IO}} IO WR ‾ \overline{\text{WR}} WR是直接从第24~29脚送出的,而在最大模式系统中,状态 S1 ‾ \overline{\text{S1}} S1 S2 ‾ \overline{\text{S2}} S2 S3 ‾ \overline{\text{S3}} S3隐含了以上信息,如下图↓

在这里插入图片描述

8086/8088的存储器及I/O组织

存储器组织

8086/8088有20条地址线,可寻址1MB的存储空间。存储器仍按字节组织,每个字节只有唯一的一个地址。

  • 若存放的信息时八位的字节,将按顺序存放
  • 若存放的时1个字(16位,双字节)时,则将字的低位字节放在低地址中,高位字节放在高地址中
  • 当存放的时双字形式(这种情况一般作为指针),其低位字是被寻址地址的偏移量,高位字是被寻址地址所在的段地址。
  • 对于存放的字,其低位字节可以在奇数地址开始存放(非规则存放),也可以在偶数地址开始存放(规则存放),前者存放的字称为非规则字,后者存放的字称为规则字。


将存储结构暂时理解为上图,每个字为两字节,存放的方式为两种,占据同一排,如11-10 或占据两排,如01-10 ,前者在一个总线周期就可以全部取走,而后者则需要两个总线周期(改变一次寻址地址)。
*
所以11-10这种就成为规则存放,又因为高位放在高地址,低位放在低地址,所以此时便是低位字节存放在了低地址—10(偶数地址)
*
8086的1MB空间实际分为两个512KB的存储体,又称存储库,分别是高位库和低位库。
低位库与数据总线D7~D0相连,该库中每一个地址为偶数地址;
高位库与数据总线D7~D0相连,该库中每一个地址为偶数地址。
地址总线A19~A1可同时对高、低位库的存储单元寻址,A0 BHE ‾ \overline{\text{BHE}} BHE则用于对库的选择,分别接到库选择端 SEL ‾ \overline{\text{SEL}} SEL上。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

存储器的分段

分段的原理就是前文在编程结构处提到的段加偏移。
在这里插入图片描述

超过64k申请两个段
不超过64k申请一个段
申请的区域可以连续也可以不连续
根据优先级可以将先前的调出(释放)
内存中会出现很多很小的碎块
操作系统会在存储时使用

分段的功能还有数据保护,取指令就是只能读指令,写东西就是非法操作
代码段 堆栈段 数据段(可申请只读)

实际地址和逻辑地址

  • 实际地址 又称物理地址或绝对地址 是指CPU对存储器进行访问时实际寻址所使用的地址,对8086/8088来说,是用20位二进制数或5位十六进制表示的地址
  • 逻辑地址 是指在程序和指令中表示的一种地址,包括段地址与偏移地址两部分。
  • 一个物理地址可对应多个逻辑地址,如实际地址11245H,既可以由段地址1123H与偏移地址15H获得,也可以由段地址1123H与偏移地址05H获得。
  • 段地址来源于四个段寄存器,偏移地址来源于IP、SP、BP、SI和DI。
    在这里插入图片描述

偏移地址是指相对段地址(就是逻辑段开始位置)的位移(距离),而有效地址就是指寻址存储器操作数时的偏移地址。

堆栈

8086/8088系统中的堆栈,是用段定义语句在存储器中定义的一个堆栈段,和其他段一样,可在1MB的存储空间中浮动。一个系统具有的堆栈数目不受限制,一个栈的深度最大为64KB(和其他段一样)
堆栈(段) 用于数据暂存、保留轨迹

SS:SP
SP的十六位偏移地址指定当前栈顶,即从堆栈段的段基址到栈顶的偏移量。栈顶是堆栈操作的唯一出口,他是堆栈地址较小的一段。
为了加快堆栈操作的速度,堆栈操作均以字(两字节)为单位进行操作。
入栈出栈操作↓
在这里插入图片描述

入栈时SS不变SP减二,并将新数据(AX)写入SS:SP
出栈时SS不变SP加二,并排出数据
寄存器堆栈,用寄存器做堆栈,速度快,但导致堆栈容量有限。
(8086用存储器一块区域做堆栈、空间大、灵活,但存储器访问比较慢,导致指令执行慢)

主程序和子程序可能会使用同名的寄存器
子程序在调用时会先启动保护,将寄存器数据暂存到堆栈中,子程序完成后再恢复
栈顶的地址送给PC

“段加偏移”寻址机制允许重定位

即允许一个完整的程序块或数据块在存储器所允许的空间内任意浮动,并定位到一个新的可寻址的区域。且只需重新设置段寄存器的段地址而程序和数据以及偏移地址都不需要任何修改。

I/O组织

8086/8088用地址线的低十六位来寻址八位的I/O端口,且64KB寻址空间不需要分段。

80x86微处理器

主要介绍80286的虚拟存储管理、80386的存储器分段与分页管理、80486的5级流水线,以及Pentium的双流水线等技术。

80286&虚拟存储管理

  • 内部寄存器32位,外部总线16位,地址总线24根

地址总线24根也就是说实际内存是224(16MB)

  • 80286片内的NMU可以实现虚拟存储管理。
  • 虚拟存储器:指程序可以占有的空间,并不是由内存芯片所提供的物力地址空间,而是由大型的外部存储器(如硬盘等)提供的所谓虚拟地址空间
  • 物理存储空间:由内存芯片所提供的物理地址空间,是CPU可以直接访问的存储器(即真正的内存)
  • 操作系统和用户编写的应用程序是放在虚拟存储器上的,当机器执行命令时,必须要把即将执行的程序或存取的数据从虚拟存储器加载到物理存储器上,也就是把程序和数据从虚拟地址空间转换到物理地址空间。这个转换过程成为映射。
  • 在80286中,虚拟存储器的大小可达230B(1GB),而物理存储器的大小只可达224B(16MB)。
  • 有两种寻址模式:

寻址空间一般指的是CPU对于内存寻址的能力。
通俗地说,就是能最多用到多少内存的一个问题,CPU在运算的时候需要从存储器提取数据,这时候就需要找到数据,这就叫做寻址,但如果地址太多超出了CPU的能力范围,CPU就无法找到数据了。 CPU最大能查找多大范围的地址叫做寻址能力 ,CPU的寻址能力以字节为单位。
*
计算机的寻址范围由总线宽度(处理器的地址总线的位数)决定的,也可以理解为cpu寄存器位数,这二者一般是匹配的,即2^N(B)
如地址总线和地址寄存器的宽度为20位,即CPU的寻址能力为220==1M字节。也就是说,如果机器的CPU过早,即使有很大的内存也不能得到利用

1.实地址模式
只使用24条地址线中的20条,寻址1MB
2.保护模式
寻址16MB,可使用虚拟内存。
增强了对存储器的管理以及对地址空间的分段保护功能。

80386

全32位处理器
32位数据线 32位地址线
寻址空间为232B(4GB)
在保护模式下利用虚拟存储器,将能寻址246B(64TB)虚拟存储空间
逻辑存储器采用分段结构,一个段最大可达4GB
增加了分段部件和分页部件

  • 分段单元通过提供一个额外的寻址器件对程序员编程时所涉及的逻辑地址空间进行管理,并将指令指定的逻辑地址变换为线性地址
  • 分页单元把由分段单元或由指令译码单元多得到的线性地址再转换成物理地址,并实现程序的重定位。分页单元可以将每个段转换成多个页面,一个页面可为1B~4KB(80386固定为4KB),通常在内存和磁盘之间进行映射时都是以页为单位进行的。
    windows基于80386

80486

  1. 第一个采用了RISC

  2. 内含8KB的高速缓存,用于对频繁访问的指令和数据实现快速的混合存放,使高速缓存系统能截取80486对内存的访问。如果查询所需要的指令或数据在高速缓存中(命中),则无需插入等状态便可直接把指令或数据从cache中取得;如果miss,CPU才从主存中读取。实际上,由于高速缓存的命中率很高,使得插入等状态趋于零。
    在这里插入图片描述

  3. 五个指令执行阶段:指令预取、指令解码1、解码2、执行和回写
    实现五级指令流水操作功能
    在这里插入图片描述

其他

主频

又称时钟频率,用来表示CPU的运算和处理数据的速度。
CPU的主频与CPU实际运算能力没有直接关系,CPU的运算能力还要看CPU的流水线、总线等各方面的性能指标
CPU的主频=外频 x 倍率系数
在台式机中所说的超频都是指超CPU的外频

前端总线(FBS)

将CPU了解到北桥芯片的总线
前端总线频率越高,CPU与内存之间的数据传输量越大,更能发挥CPU的功能
数据带宽=(外频 x 数据总线宽度)/8
如64位宽度,总线800Mhz的Xeon的数据带宽6.4GB/s

缓存

缓存(cache memory)又称高速缓存
是指可以进行高速数据交换的存储器,他先于内存与CPU交换数据。
高速缓冲存储器均由静态RAM组成
CPU缓存分一级缓存(L1)、二级缓存(L2)、三级缓存(L3)。
其中二级缓存的作用是协助CPU的运行速度与内存存取速度之间的差异,是CPU性能表现的关键之一。
L3对性能提高显得不是特别重要。

over

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值