第 4章 存储系统
● 存储器 是计算机系统的重要组成部分,用它来存放
程序和数据。
● 存储系统 由存放程序和数据的各类存储设备及有关
的软件所构成。
?有了存储器,计算机就具有记忆能力,因而能自动地
进行操作。
4.1 存储器概述
4.1.1 存储器的主要性能指标
◆ 评价存储器特性的主要标准是 大容量, 高速度 和 低
价格 。
?存储器的容量指它能存放的二进制位数或字(字节)
数;
?存储器的速度可用访问时间、存储周期或频宽来描述。
? TW是将一个字写入存储器所需的时间。
▲ 访问时间一般用读出时间 TA及写入时间 TW
来描述。
? TA是从存储器接到读命令以后至信息被送到
数据总线上所需的时间。
▲ 存取周期是存储器进行一次完整的读写操作所需要
的全部时间;
?存储器进行连续读写操作所允许的最短间隔时间。
?存取周期用 TM表示,它直接关系到计算机的运算
速度。
一般有 TM >TA, TM >TW, TM的单位常采用微秒
或毫微秒。
▲ 存储器的频宽 B表示存储器被连续访问时,
可以提供的数据传送速率;
?常用每秒钟传送信息的位数(或字节数)
来衡量。
▲ 存储器的价格可用总价格 C或每位价格 c来表示, 若
存储器按位计算的容量为 S;
?则,c=C/S
4.1.2 存储器分类
1,按存储元件分类
?存储元件必须具有两个截然不同的物理状态,
才能被用来表示二进制代码,0和 1”。
?半导体存储器
?磁性材料存储器
?光介质存储器
2,按存取方式分类
(1) 顺序存取存储器( SAM)
?这类存储器的特点是信息顺序存放或读出,其存取时
间取决于信息存放位置。
?它不按字单元编址,而以记录块为单位编址。
?磁带存储器就是一种顺序存储器,它的最大优点是存
储容量大,缺点则是存取速度慢。
(2) 随机存取存储器( RAM)
?这类存储器的特点是 CPU或 I/O设备在任一
时刻都可按地址访问其任一个存储单元,
而且访问时间与地址无关,都是一个存取周期。
?半导体存储器一般属于这类存储器。
(3) 直接存取存储器( DAM)
?此类存储器的存取方式介于 RAM和 SAM之间,先选
取需要存取信息所在的区域,然后用顺序方式存取。
?磁盘就是先寻找信息所在的扇区,然后再顺序存取信
息,此类存储器的容量也比较大,速度则介于 SAM和
RAM之中,主要用作辅存。
(4) 只读存储器( ROM)
?在正常读写操作下,这类存储器的内容
只能读出而不能写入。
?有的 ROM位于主存中特定区域(如 IBM-PC机中
ROM BIOS)其访问方式和 RAM一样按地址访问;
?也有的 ROM用作辅存,采用顺序访问方式,例如
CDROM。
3,按存储器在计算机中的功能分类
(1) 高速缓冲存储器( Cache)
?目前由双极型半导体组成,构成计算机系统中的一个
高速小容量存储器。
?其存取速度能接近 CPU的工作速度,用来临时存放指
令和数据。
(2) 主存储器
?主存储器是计算机系统中的重要部件,用来存放计算
机 运行时 的大量程序和数据,主存储器目前一般用
MOS半导体存储器构成。
(3) 辅助存储器
?辅助存储器又称外存储器。
? CPU能够直接访问的存储器称内存储器,
高速缓存和主存都是内存储器。
?外存储器的特点是容量大,所以可存放大量的程序和
数据。
?外存储器的内容需要调入主存后才能被 CPU访问。
?外存储器主要由磁表面存储器组成,光存储器应用已
很广泛,渐渐成为一种重要的辅助存储器。
4.1.3 存储器结构
1,存储系统的层次结构
▲ 存储系统的层次结构就是把各种不同容量和不同存取
速度的存储器按一定的结构有机地组织在一起;
?程序和数据按不同的层次存放在各级存储器中,而整
个存储系统具有较好的速度、容量和价格等方面的综
合性能指标。
▲ 由二类存储器构
成的存储系统层
次结构
C P U 主存 辅存
高速缓存
图4, 1 存储器系统的层次结构
(1),高速缓存 —主存”层次
?这个层次主要解决存储器的速度问题。
?在 CPU与主存之间再增设一级存储器,
称高速缓冲存储器( Cache)。
? CPU访问内存时,将地址码同时送到 Cache和主存,
若在 Cache中找到相应内容,称访问“命中”,信息
就从 Cache中读取;
?否则 CPU就以较慢的速度从主存中读取(称访问“不
命中”)。此时一般要进行 Cache和主存的信息交换。
? Cache是一种采用和 CPU工艺相类似的半导体器件构
成的存储装置,其速度可与 CPU相匹配,但容量较小,
只能存放一小段程序和数据。
(2),主存 —辅存”层次
?这个层次主要解决存储器的容量问题。
?具有“主存 —辅存”层次的存储系统是一个既具有主
存的存取速度又具有辅存的大容量低成本特点的一个
存储器总体 。
?把正在被 CPU使用的“活动”的程序和数据放在主存
中,其余信息则存放在容量大、但速度较慢的辅存中。
2,多体交叉存取
▲ 把主存分为若干容量相同、能独立地由 CPU进行存
取的存储体。
?在不提高各存储体存取
速度的前提下,通过
CPU与各存储体的并行
交叉存取操作,提高整
个主存储器的频宽。
CPU
总线控制器
M
0
M
3
M
2
M
1
图4, 2 多体交叉存储系统
?设有 m个体,地址为 0,m,…… km 的存储单元位
于 0号存储体中;地址为 1,m+1,…… km+1 的存
储单元位于 1号存储体中; …… ;地址为 m-1,2m-1,
…… (k+1)m -1 的存储单元位于 m-1号存储体中。
▲ CPU访问 M0~ M3的时间安排
读写命令 0
读写命令 3
读写命令 2
读写命令 1
(a) CPU依次向各体发出读写命令 (b) CPU访问各存储体的时间
图 4.3 多体交叉存储器的访问
TM
?尽管每个存储体的存储周期为 TM,但 CPU每隔 1/4TM
就可以读出或写入一个数据。
4,2 半导体读写存储器
■ 半导体 RAM
双极型 RAM
MOS型 RAM
静态 RAM
动态 RAM
4.2.2 半导体 RAM芯片





X






I / O 电路
Y 译码器
地址寄存器
输出驱动
控制电路
输出
输入
读/ 写 片选
0
1
63
8
1
64X64
存储矩阵
0 1 63
A
6
A
7
A
11
图4, 8 静态M O S R A M 芯片结构图
.
.
.
.
.
.
.
.
.
A
0
A
1
A
5
.
.
.
...
.........
...
...
...
1,静态 MOS存储器芯片
?存储体
?读写电路
?地址译码
?控制电路
(1)芯片组成:
① 存储体 (存储矩阵)
?存储体是存储单元的集合。在容量较大的
存储器中往往把各个字的 同一位 组织在一
个集成片中;
? 4096个存储单元排成 64*64的矩阵。由 X选择线(行
选择线)和 Y选择线(列选择线)来选择所需用的单
元。
?图 4.8中的芯片是 4096*1位,由这样的 8个芯片可组成
4096字节的存储器。
▲ 两种地址译码方式:
?一种是单译码方式,适用于小容量存储器;
② 地址译码器
?地址译码器把用二进制表示的地址转换
为译码输入线上的高电位,以便驱动相应
的读写电路。
☉ 地址译码器只有一个,其输出叫字选线,选择某个
字的所有位。
☉ 地址输入线 n=4,经地址译码器译码后,产生 16个字
选线,分别对应 16个地址。
?另一种是双译码方式,适用于容量较大
的存储器。
☉ 地址译码器分为 X和 Y两个译码器。每一
个译码器有 n/2个输入端,可以译出 2 n/2个
状态,两译码器交叉译码的结果,可产生
2 n/2 × 2 n/2 个输出状态。
☉ 图 4.9是采用双译码结构的 4096× 1的存储单元矩阵;
对 4096个单元选址,需要 12根地址线,A0—A11。
..
.X地



0,0
1,0
63,0
0,1
1,1
63,1
0,63
1,63
63,63
Y地址译码
I/O控制
图 4.9 双地址译码存储结构
X0
X1
X63
..
.
y0 y1,.,y63
..
.
..
....
③ 驱动器
?一条 X方向的选择线要控制在其上的各个存储单元的
字选线,负载较大,要在译码器输出后加驱动器。
④ I/O控制
?它处于数据总线和被选用的单元之间,用以控制被选
中的单元读出或写入,并具有放大信息的作用。
⑤ 片选控制
?将一定数量的芯片按一定方式连接成一个完整的存储
器;芯片外的地址译码器产生片选控制信号,选中要
访问的存储字所在的芯片。
⑥ 读 /写控制
?根据 CPU给出的信号是读命令还是写命令,控制被选
中存储单元的读写。
(2) 静态 MOS存储器芯片实例 (62256 SRAM)
WE
A12
A7
A6
A5
A4
A3
A2
A1
A0
I/O0
I/O1
I/O2
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
Vcc
A14
A13
A8
A9
A11
OE
I/O3
I/O4
I/O5
I/O6
I/O7
CE
A10
图 4.10 M62256
▲ 62256 SRAM芯片引脚
?地址引脚,A0—A14
?数据引脚,I/O0—I/O7
?片选,CE低有效
▲ 该芯片容量为 32K× 8
?读 /写控制,WE,低电
平时为写入控制;高电
平时为读出控制。
① 位扩展
?用若干片位数较少的存储器芯片构成具有给定字长的
存储器,而 存储器的字数与芯片上的字数相同 。
(3) 存储容量的扩展
?用 8片 4096× 1位的芯片构成 4K字节的存储器;如图
4.11所示。
② 字扩展
?字扩展是容量的扩充,位数不变 。
?用 4组 16K× 8的存储器构成 64K× 8的存储器 (图 4.12)。
中央
处理器
(CPU)
地址总线
D0
A0-A11
D7 数据总线
图 4.11 位扩展示意图
A15
A14
CPU
A13-A0
WE
D0-D7
2:4
译码
CE
16KX8
WE
CE
16KX8
WE
CE
16KX8
WE
CE
16KX8
WE
图 4.12 字扩展示意图
(4) 静态 RAM芯片与 CPU连接
▲ 要考虑和解决的几个问题:
? CPU的负载能力,
☉ 当存储芯片较多时,在 CPU与存储芯片之间,要增
加必要的缓冲和驱动电路。
?速度匹配问题:
☉ 存储器与 CPU的速度相比,还是有很大差距;
? 多片存储芯片的选通:
☉ 增加外部译码电路,产生片选信号;
? 读 /写控制信号:
☉ CPU的读 /写控制信号不一定与存储芯片
引脚定义的控制信号相符,所以有时要
增加某些附加线路来实现正确的控制。
(5) 静态存储芯片的读 /写周期
?要保证正确地读 /写,必须注意 CPU时序与存储器读 /
写周期的配合。
2,动态 RAM芯片
(1) 芯片举例 (图 4.14)
?绝大多数产品都采用一位输入输出,如,256K× 1、
1M× 1,4M× 1等。
?而且它的行地址和列地址通过相同的管脚分先后两次
输入,这样地址引脚数可减少一半。
?当 RAS低电平时输入行地址,CAS低电平时输入列地
址。
Vcc 1 24 Vss
D1 2 23 D4
D2 3 22 D3
WE 4 21 CAS
A8 1 16 Vss
Din 2 15 CAS
WE 3 14 Dout RAS 5 20 OE
RAS 4 13 A6 Nc 6 19 A9
A10 7 18 A8A0 5 12 A3
A2 6 11 A4 A0 8 17 A7
A1 7 10 A5 A1 9 16 A6
VDD 8 9 A7 A2 10 15 A5
A3 11 14 A4
Vcc 12 13 Vss
(a) 256× 1 DRAM芯片
(b) 4M× 4 DRAM芯片
图 4.14 两种 DRAM芯片
(2) 动态 RAM芯片的读写和再生 (刷新 )时序
① 读周期,
?实现读操作,各信号的时间关系应符合下面的要求。
☉ 行地址必须在 RAS信号有效之前送到芯片的地址输
入端。
☉ CAS信号应滞后 RAS一段时间,并滞后于列地址送
到芯片地址输入端的时间。
☉ RAS,CAS应有足够的宽度。
☉ WE信号为高,并在 CAS有效之前建立。
② 写周期,
? RAS与 CAS之间的关系,以及它们与地址
信息之间的关系和读周期相同。
? WE信号为低,并在 CAS信号有效之前建立。
? 写数据必须在 CAS有效之前出现在 Din端。
③ 刷新:
?动态 RAM的存储阵列中所有的存储电容必须周期地
重新充电,这一过程称“刷新”。
?“刷新”可以采用“读出”的方法进行。
▲ 只送 RAS信号的一种“刷新”方法
?芯片中一行的所有元素被选中并进行“读
出”操作。根据读出内容对各单元进行
“重写”;即完成补充充电。
?由于没有列地址和 CAS信号,各单元的数据读写彼此
隔离,并且不会送到读出电路。
?对 256*256的存储体,256次刷新操作可刷新整个存储
体。也可分为 4个 128*128并行连接,只需 128次刷新。
? DRAM控制电路还向所有芯片提供刷新时的行地址。
每产生一行,这个地址自动加一,如此周而复始。
(3) 刷新方式
▲ 一次刷新的时间间隔称 刷新周期,一般为 2ms;
▲ 常用的刷新方式有四种:
?集中式刷新、分散式刷新、异步刷新和透明刷新。
① 集中式刷新 (图 4.16 (a))
?整个刷新 间隔内,前一段时间用于正常的读 /写操作。
而在后一段时间停止读 /写操作,逐行进行 刷新。
?将 128× 128存储器刷新一遍,设读写周期为 0.5μs,
刷新间隔为 2ms;前 3072个读写周期用来进行正常的
读 /写操作,而后 128个读写周期用来进行刷新操作。
?该方式会出现 读 /写操作 死区
正常读写
(3072次 )
刷新操作
(128次 )
tM tR
读 /写 再生 读 /写 再生 …… 读 /写 再生
存储周期
(a) 集中式刷新 (b) 分散式刷新
图 4.16 两种刷新方式
1 2 3,.,3072 3073 3999...
② 分散式刷新 (图 4.16 (b))
?一个存储周期的时间分为 两段,前一段时间 tM用于正
常的读 /写操作,后一段时间 tR用于刷新操作。
?假定读 /写操作和刷新操作的时间都为 0.5μs,则一个
存储周期为 1μs。在 2ms时间内进行 2000次刷新操作,
只能进行 2000次读 /写操作。
③ 异步刷新
?上述两种方式结合起来构成异步刷新。
?以 128行为例,在 2ms时间内必须轮流对
每一行刷新一次,即每隔 15.5μs刷新一行。
?前 15μs可以进行 CPU的读 /写操作,而最后 0.5μs完成
刷新操作。目前用得较多。
?有单独的刷新控制器,刷新由单独的时钟、行计数与
译码独立完成;高档微机中大部分采用这种方式。
④ 透明刷新(或称稳含式刷新)
? CPU在取指周期后的译码时间内,插入刷新操作。
(4) DRAM控制器
地址总线
刷新地址
计数器
地址多
路开关
行列地址
刷新
定时器
仲裁
电路
控制信号
发生器
读/ 写
RAS
CAS
WR
DRAM
存储器
C P U
图4, 1 7 D R A M 控制器结构框图
(5) 新型 DRAM芯片
? DRAM具有存储密度大、功耗小、成本低等优点,
由于它需要定时刷新,对其工作速度有较大影响。
① EDRAM( Enhanced DRAM)(图 4.18)
? EDRAM 在动态芯片上集成了一个小容量 SRAM缓冲
器,可以存放前一次读出的一整行元素内容,共 2048
位( 512个 4位组)。
?刷新可以和读写并行操作,使芯片不能读写的时间减
至最低程度。此外,从 SRAM缓冲器读出数据的通路
与写入数据的通路各自独立。
列地址允许
列地址寄存器
1 1 位比较器
上次读行地址
列地址译码
5 1 2 ×4 S R A M
前次读出的行
D R A M 读写
I / O 控制

数据锁存
地址





D R A M 矩阵
2 0 4 8 ×5 1 2
×4
行地址锁存器
行地址和
刷新控制
读允许
片选
写允许
数据
( D 0 - D 3 )
R/W
R e f r e s h
( A 0 - A 8 )
行地址( A 9 - A 1 9 )
图4, 1 8 E D R A M 结构框图
② SDRAM( Syncnronous DRAM)
?传统 DRAM与处理机之间采用异步方式交换数据。
? SDRAM的读写和处理机一样受系统时钟控制,将处
理机或其它主设备发出的地址和控制信息锁存起来,
经一定数量的时钟周期后,给出响应。
? SDRAM采用成组传送的工作方式,对顺序访问那些
与第一次访问的信息在同一行( ROW)的数据时特
别有用。
? SDRAM内部采用双存储体结构,极大地改善了片内
存取的并行性; 设有 SDRAM的工作方式寄存器。
CKE
CLK
CS
DQM
WE
CAS
RAS
A11
控制逻辑
工作方式
寄存器
列地址
锁存
行地址
锁存
刷新
计数器
组计数器 列译码器
行多路器




B a n k A
DRAM
( 2 M ×8 )




B a n k B
DRAM
( 2 M ×8 )
数据输出
缓冲器
数据输入
缓冲器
缓冲器
缓冲器
DQ
0
-DQ
7
图 4, 1 9 S D R A M 内部逻辑示意图
4, 3 半导体只读存储器
■ 根据只读存储器的工艺,可分为:
ROM
PROM
EPROM
EEPROM( E2PROM)
4.3.1 掩膜只读存储器( masked ROM)
◆ 掩膜 ROM存储的信息由生产厂家在掩膜
工艺过程中“写入”,用户不能修改。
◆ 掩膜 ROM也有双极型和 MOS型两种
▲ 双极型 ROM(图 4.20)
?译码器向某字选线送出, 选中, (高)电位时,被选
中的字的各位同时向各自的位线送, 读出, 结果。
?结果为, 0”或, 1”,取决于该位的三极管发射极是否
与相应的位线连通,连通则读出, 1”,反 之读出,0”。
+E
00






01
10
11
A1
A0
D3 D2 D1 D0
字线0
(1 1 1 1 )
字线1
(1 1 1 0 )
字线2
(1 1 0 0 )
字线3
(1 0 0 0 )
图4, 2 0 4 ×4 双极型掩膜R O M
+E
图4, 2 1 4 ×4 M O S 型掩膜R O M
00






01
10
D3 D2 D1 D0
11
A1
A0
字线0
(1 1 1 1 )
字线3
(1 0 0 0 )
▲ MOS型 ROM (图 4.21)
▲ 存储矩阵可采用单译码结构,也可采用双译码结构。
?工作原理与双极型相仿。
4.3.2 可编程 ROM( PROM)
◆ 这类 ROM允许用户用特定的编程器
向 ROM中写入数据,写入后,不能修改。
◆ 有 P-N结破坏型和熔丝烧断型两种
?写入时,字线加电压 E。若写,1”,则位线 D加负压
,将反向偏置的二极管击穿;若写,0”,位线上不加
负压,P—N结不烧穿。
1,P—N结破坏型 PROM(图 4.22)
W (字线)
烧穿
D1
存1
未烧穿
存0
D0
图4, 2 2 P - N 结破坏型P R O M
W (字线)
D1 D0
+E
+E
图4, 2 3 熔丝烧断型P R O M
未烧断 烧断
存1 存0
?写入时,在字线和位线向加高电压,使熔丝烧断,烧
断存 0,不烧断存 1。
2,熔丝烧断型 (图 4.23)
4.3.3 可擦除和编程的 ROM( EPROM)
◆ 采用浮栅雪崩注入 MOS存储器 FAMOS( floating
gate avalanche injection mos)。
1,FAMOS EPROM的写入
▲ 漏极上加正高压( 20—30V),浮动栅上带有足够多
的正电荷,电位可达 +10V左右,好象浮动栅上接有
10V电源一样,使 FAMOS管处于导通状态。
▲ 写入完毕后,撤消 D极上的高压,由于 Sio2层的绝缘
性很好( 1014~1015 ),注入浮栅的电荷无泻放回路
而保留在浮栅上。
2,FAMOS型 EPROM的读出
▲ 若 TD( FAMOS)
管栅极带有正电
荷,读出,0”。
▲ 若 TD栅极不带电
荷,读出,1”。
读放
+E

TG TD
图4, 2 5 F A M O S 存储电路
x
y
FAMOS
3,FAMOS芯片中信息的抹除
▲ 用紫外线或 X射线照射,使能量大的光子与浮栅上的
电荷发生能量交换和转移,使空穴获得足够大的能
量,通过 Sio2层返回衬底,浮栅不再带电。
▲ 把 EPROM芯片上的石英窗口对着紫外线灯,距离
3cm远,照射 8—20分钟,可抹除芯片上全部信息。
◆ EPROM芯片 27256( 32K× 8)
Vpp
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
Vcc
A14
A13
A8
A9
A11
OE
D7
CE
A10
图 4.26 I27256 引脚图
D6
D5
D4
D3
D1
D2
4.3.4 电擦除电改写只读存储器( EEPROM)
◆ 电擦除电改写只读存储器又叫 EEPROM或 E2PROM
( Electrically Erasable and Programmable Rom)。
?在读数据的方式上与 EPROM完全一样,优点是可以
用电来擦除和重编程。
? E2PROM在每次写入操作时执行一个自动擦除,因此
比 RAM的写操作慢的多。 E2ROM可进行 10000次擦
除,在不受干扰时,存放的数据至少可维持 10年。
东南大学远程教育
计算机组成原理
第 二十一 讲
主讲教师,王健
4.4 高速缓冲存储器
4.4.1 工作原理
◆ 设置高速缓存 (Cache)是为了解决 CPU
和主存之间的速度匹配问题
?高档微机中为获得更高的效率,不仅设置了独立的指
令 Cache和数据 Cache,还设置二级或三级 Cache 。
?高速缓存通常由双极型半导体存储器或 SRAM组成。
?地址映象以及和主存数据交换机构全由硬件实现,并
对程序员透明。
?访问 Cache的时间一般为访问主存时间的 1/4—1/10;
Cache存储器已在大、中、小及微型机上普通采用。
?主存和 Cache均是模块化的(以页为单位),
并且两者之间交换数据以页为单位进行。
◆ Cache的基本结构和工作原理 (图 4.27)
LRU 管理逻辑
相联存储
映象表
地址
总线
Cache
存储器
(M1)
数据
总线
主存
储器
(M2)
图4, 2 7 C a c h e 结构简图
? CPU访存地址送到 Cache,经相联存储映象表
的地址映射变换,要访问的内容在 Cache中,
则称为,命中,,CPU要访问的内容不在
Cache中,,不命中,或称,失靶,,则 CPU
送来地址直接到主存中读取数据。
?访存地址是同时送到 Cache和主存中的。如果访问
“未命中”,除了本次访问对主存进行存取外,主存
和 Cache之间还要通过多字宽通路交换数据。
?主存内容在写入 Cache过程中,如果 Cache已满,要
按某种替换策略将 Cache中一页调出写回主存。这种
替换算法可以是最近最少使用算法( LRU)或其它算
法,这由相应的管理逻辑来实现。
?地址变换、替换等步骤必须全部由硬件来完成。
4.4.2 映射方式
?假定主存空间被分为 2m个页
(页号为 0,1,2…….2 m-1),每页大小为 2b个字节。
◆ Cache空间的分配以及数据交换都以页
为单位进行。
? Cache存储空间分为 2c页,每页也是 2b个字
(当然 m>c)。
◆ 映象函数
?为了便于根据 CPU送来的地址信息到 Cache中去读取
数据,必须有某种函数把主存地址映象成 Cache地址。
实现这种映象的函数叫 映象函数 。
?选取何种映象方法,取决于在给定地址映象和变换的
硬件条件下,能否达到高速度,以及能否使块冲突的
概率小。
◆ 常用的地址映象方式
?有直接映象、全相联映象和组相联映象。
?块冲突:要调一个主存块到 Cache中,而该主存块要
进入的 Cache块已被其它主存块占据。
1,直接映象法
▲ 主存和 Cache页号的对应关系 (图 4.28)
?主存的页以 2c为模映象到 Cache的固定位置上。由映
象函数还可以看出,主存页号的低 C位(即 jmod 2c)
正好是它要装入的 Cache的页号。
?直接映象函数为 i=jmod 2c,其中 i是 Cache页号,j是
主存页号。
?T位标志用来区别记入的是主存中的哪一页,在一个
新页送入 Cache时,把主存地址的高 t位存入 Cache的标
志字段中。
t位 Cache
主存
标记 页面 0
标记 页面 1
标记 页面
2C-1
页面 0
页面 1
页面 2C-1
页面 2C+1
页面 2C+1+1
页面 2m-1
图 4.28 直接映象方式
页面标记 页号 页内地址
m位
t位 c位 b位
比较
标记
标记
标记
命中
失靶
Cache读出
主存
主存读出
数据总线
主存
地址
图 4.29 直接映象方式下,主存和 Cache的读出过程
...
页面 2c
页面 2C+1-1
页面 2C+1
...
...
...
...
?否则“不命中”(或失靶),CPU直接从主存读出。
▲ 直接映象的优点是实现简单,其缺点是不够灵活。
▲ 主存和 Cache的读出
? CPU访问时,首先根据访存地址中
的 C位 (页号 ),直接查出该主存对应的 Cache页号。
?找到对应的 Cache页后,检查它的标记和主存的高 t位
是否一致。若一致,访问“命中”,再根据页内地址
(b位 ),从 Cache中读数据。
?出现 Cache中还有很多空页,也必须对指定的 Cache
页进行替换。
2,全相联映象法
▲ 对应关系(图 4.30)
?主存中任一页可装入 Cache内任一页的位置。
?采用存放于 相联存储
器中的目录表 来实现
地址映象;以加快
“主存 —Cache”地
址变换速度。
Cache
主存
页 0
页 0
页 1
页 1

页 0


页2
m - 1
图4, 3 0 全相联映象法
?相联表中无相同的
页号,表示主存页
未装入 Cache,失
靶,去主存读。
▲ 主存 —Cache地址变换过程(图 4.31)
页号 页 内地址
主存地址
Cac he地 址
相联比较
失靶
去主存读
命中
页号 页内地址
图4, 3 1 全相联映象地址变换
.
.
.
.
.
.
?让主存页号与目录表中各项的页号作相联
比较;如有相同的,则将对应行的 Cache
页号取出,拼接上页内地址就形成了
Cache地址。
?优点是块冲突概率
最低;但查表速度
难以提高。几乎没
有单纯采用全相联
映象法。
3,组相联映象法
▲ 组相联映象法的映象规则
?将 Cache空间分成组,每组 2s页(称为 2s路相联),
Cache有 2q组。
▲ 全相联映象法和直接映象法结合起来,就产生了组
相联映象法。
m位 q位
组区 字
?主存分成 2m个区,每区共有 2q页。主存某区的页允许
映射到固定组内的任意页。
0页
1页
..
.
.
.
.
0页
1页
.
.
.
127页
.
.
.
区0
区1
区2
20
读出
比较




标记 组
20位
5位7位
127组
n组
0组
1组
C a c h e ( 8 K B )
地圵总线
32位
C P U 送来地址
图4, 3 2 组相联映象规则
字节 标记
读出
▲ 主存地址构成(图 4.32 ):
?图中,q=7,则 Cache有 128组; s=1,每组 2页 (称为 2
路相联 ),每页 32字节,Cache容量共为 8KB。
?主存地址 32位,m=20,最大可分成 220个区;每区
128(2q)页,每页 32个字节。
▲ 主存 —Cache地址变换过程
?访问存储器时,根据 CPU给出地址的中间 7位去 Cache
中选择某一组。拿组中每一页的标记逐一与 CPU给出
地址中的标记 (20位 )送比较器进行比较。
?若有一致者,则“命中”,再根据字地址从 Cache
中读出内容;若无一致者,则“失靶”,则根据 CPU
地址去主存中读出。
▲ 在组相联映象法中,某区的第 i页可以调入 i组中的任
意一页。比直接映象法灵活。
?组相联映象法在各组间用直接映象,组内各页则是全
相联映象。
? S的选取决定了页冲突的概率和地址映象的复杂性。
S字段越大,则 Cache页冲突越低,而相联映象表也越
大。
4.4.3 替换算法
?常用的方法有 FIFO,及 LRU法,且常用命中率
( Hit Ratio)来衡量 Cache存储器的效果指标。
?访存时出现 Cache页失靶,需要将主存页按所采用的
映象规则装入 Cache。
?如果此时出现页冲突,就必须按某种策略将 Cache页
替换出来。
◆ Cache页失靶处理
◆ 替换策略的选取
?替换策略的选取要根据实现的难易,以及是否能获得
高的命中率两方面因素来决定。
1,先进先出法( FIFO)
?选择最早装入的 Cache页为被替换的页,
采用这种算法,有可能产生较大的页失效率。
2.“近期最少使用”算法( LRU)
?选择近期最少使用访问的 Cache页为调出页,这种算
法能比较正确地反映程序的局部性;
?具体实现比 FIFO算法要复杂一些,替换算法只能全
部用硬件方法实现。
4
1
44
3
5
2
5
4
3
4
33
5
2
地址流
1
1
时刻 2
2 3
3 4
4
5
1
6
2
7
5
8
1
9
2
10
3
11
4
12
5
1 * 1 *
2 2 *
3 3 *
1
*
2
1 * 1 *
2
5
2 *
5 * 5 *
3页 /组
命 中 >>>
5
4
3
5
4
3
4
3
4
3
2 1
3
22 2
1 *
1
3
2
1
4
3
2
5
3
5
41 *
2
1 *
1 * 1 *
1 *
2
2 *
4
5 *
1 *
1 *
2
2 *
命中率 3/12
命中率 2/12
4页 /组
命 中 > >
(a) FIFO算法 (*号为最先进入的页 )
计数值
1
2
3
4
1
3
4
1
5
1
1
2
5
3
4
5
2
3
4
1
2
3
5
1
2
2
地址流
1
1
时刻 2
2 3
3 4
4
5
1
6
2
7
5
8
1
9
2
10
3
11
4
12
5
1
3
3 4
1 2
2
215444321
154333
0
3
4
2
1








> > 2/12命

3页 /组
4页 /组
5页 /组 >> > 7/12
4/12
(b) LRU算法 (计数值 0为刚被访问的页 )
图 4.33 Cache两种替换算法的替换和命中率情况
1*
4*
3*
? LRU算法的平均命中率比 FIFO算法高,而且随着分
组容量的加大,LRU算法命中率必定提高。
◆ 说明两种替换算法的工作原理和命中率 (图 4.33)
?也不是分组容量越大越好,因为组内采用全相联映象
法,随着组内容量的增大,其实现的复杂性也增加。
4.4.4 Cache— 主存内容的一致性问题
◆ CPU执行写操作时,要写的内容恰在 Cache中,则
Cache内容被更改,但该单元对应的主存内容尚没有
改变,这就产生了 Cache和主存内容不一致的情况。
◆ 解决问题的关键是选择更新主存内容的算法;采
用两种算法。
▲ ?写回法’( Write back)
?处理机执行写操作时,信息只写入 Cache,当 Cache
页被替换时,将该页内容写回主存后,再调入新页。
?处理机进行写操作时,利用,Cache—主存”层次
中存在于处理机和主存之间的通路将信息也写回主存。
?写直达则在每次写入时,都要附加一个比写 Cache长
得多的写主存时间;写直达法的开销大一些,但其一
致性保持要好一些。
▲ 写直达法又称存直达法,
?在页替换时,就不必将被替换的 Cache页内容写回,
可以直接调入新页。
◆ 采用两种算法比较
?写回法的开销是在 页替换时的回写时间 ;
4.4.5 Cache 结构举例
1,Pentium Cache 结构
▲ Pentium微处理器在芯片内集成了一个代码 Cache 和
一个数据 Cache(图 4.34)
6 4 位
总 线 接 口
代 码 C a c h e
( 8 K B )
指 令 预 取
缓冲
2 5 6 位
整数
A L U
整数
A L U
整 数 寄 存 器 组
数 据 C a c h e
( 8 K B )
寄 存 器 组
浮 点 部 件
乘 法 器
加 法 器
除 法 器
转移
预测
3 2 位 3 2 位
6 4 位
3 2 位 3 2 位
3 2 位
3 2 位
6 4 位
图 4, 3 4 P e n t i u m 片 内 结 构 框 图
L R U 位
1 2 7 1 2 7
0 0
主存地址结构
(共3 2 位)
图 4, 3 5 P e n t i u m 片 内 C a c h e 目 录 表 和 L R U 位
0
0
0
1
0
0
...
0 0 F 4 9
1 5 8 A C
01
01
0 0 0 F 5
0 0 F 5 9
01
01
标记 标记 状态
状态
...,..
20 7 3 2
......
标记 组号 双字 字节
2,Power PC Cache 结构
▲ 3个可以并行工作的整数 ALU,和一个浮点运算部件,
该浮点运算部件有自己的寄存器、乘法、加法和除法
运算部件。
128位
L 2 / 总线
接口
128位
指令C a c h e
( 3 2 K 字节)
128位
指令部件
整数
ALU
整数
ALU
整数
ALU
整数
寄存器
取数/ 存数
部件
浮点
寄存器
浮点
ALU
数据C a c h e
( 3 2 K 字节)
图4, 3 6 P o w e r P C 6 2 0 结构框图
64位
64位
4.5 虚拟存储器
4.5.1 虚拟存储器的功能
◆ 问题的提出:
?系统程序和应用程序要求主存容量越来越大,
?地址字能直接访问的存储空间,比主存的实际存储
空间大得多。程序员用这种较长的地址字编程序,会
感到主存容量不够用。
◆ 虚拟存储技术:
?将一部分(或全部)辅存和主存结合,把两者的地
址空间统一编址,形成比实际主存空间大得多的逻辑
地址空间。
?访存时,用软、硬件结合的方法,将逻辑地址(虚
地址)转化为物理地址(实地址)。
? Cache的替换算法和地址映象方式完全由硬件实现,
在虚拟存储系统中,用软、硬件结合的方法来实现。
◆ 虚拟存储器的功能
?虚拟存储器是一种解决存储容量和存取速度
矛盾的一种有效措施,是管理存储设备的有效方法。
?采用虚拟存储器,用户编制程序时就无需考虑所编程
序在主存中是否放得下以及放在什么位置等问题。给
软件编程提供了极大的方便。
?虚拟存储器使计算机具有辅存的容量,接近于主存的
速度和辅存的位成本。
◆,主存 —辅存”层次和,Cache—主存”层次采用的
地址变换及映象方法和替换策略,在原理上是类似的

4.5.2 虚拟存储器的基本管理方法
◆ 虚拟存储器的管理方式有段式、页式或段页式三种。
▲ 段是利用系统的模块化性质,按照程序的逻辑结构划
分成多个相对独立部分 (过程、子程序、数据表、阵
列 );把主存按段分配的存储管理方式称为段式管理。
?可以把段作为基本信息单位在主存 —辅存之间传送和
定位。
?用段表来指明各段在主存中的位置;每段都有它的名
称(用户名或数据结构名或段号)、段起点、段长等。
?由于段的长度各不相同,段的起点和终点不定,给主
存空间分配带来麻烦,且容易在实存中留下许多空白
的零碎存储空间不好利用,造成浪费。
▲ 段式管理系统的优点和不足
?段的分界与程序的自然分界相对应;段的逻辑独立性
使它易于编译、管理、修改和保护,也便于多道程序
共享;
?某些类型的段(堆栈、队列)具有动态可变长度,允
许自由调度以便有效利用主存空间。
?比段式管理系统中段外空间的浪费要小的多。
▲ 页式管理系统的基本信息传送单位是定长的页,
主存的物理空间也被划分为等长的固定区域 (其
容量要比段小得多 ),称为页面。
▲ 可采用分段和分页结合的段页式存储管理系统
?程序按模块分段,段内再分页,进入主存仍以页为基
本信息传送单位;
?由于页不是逻辑上独立的实体,所以处理、保护和共
享都不及段式来得方便。
?用段表和页表(每段一个页表)进行两级定位管理。
1,页式虚拟存储器
?虚存地址分为两个字段:高位字段为逻辑页号,低位
字段为页内地址。
▲ 在页式虚拟存储器系统中,把虚拟空间分成页,称为
逻辑页;主存空间也分成同样大小的页,称为物理页。
?实存地址也分两个字段:高位字段为物理页号,低位
字段为页内地址。
?两者的页面大小一样,页内地址是相等的。
▲ 页式管理的地址变换 (图 4.37)
?一个虚存逻辑页号有一个表项,表项内容包含该逻辑
页所在的主存页面地址(物理页号)、装入位、替换
控制位及其它保护位等;
?虚存地址到主存实地址的变换是由放在
主存中的页表 来实现。
?用主存页面地址作为实(主)存地址的高字段,与虚
存地址的页内地址字段相拼接,就产生了完整的实存
地址,用来访问主存。
?装入位为,1”,表示该逻辑页已从外存调入内存;反
之,则表示对应的逻辑页未调入内存。从辅存中读
出新的页到主存中来。
页表基址寄存器
页表基地址
逻辑页号 页内地址
00000010 1010110
虚存地址
装入位 主存页号
1 10101
0 *****
1 11010
1 00101
0 *****
┆ ┆
11010 1010110
实存地址
物理页号 页内地址
页表(在主存中)
图 4.37 页式虚拟存储器地址变换
▲ 经快表与慢表实现地址变换的方式(图 4.38)
?快表由硬件组成,它比页表小得多;
?由逻辑页号同时去查快表和慢表,当在快表中有此逻
辑页号时,能很快地找到对应的物理页号送入实存地
址寄存器,并使慢表的查找作废;
?如果在快表中查不到,要花费一个访主存时间查慢表,
从中查到物理页号送入实存地址寄存器,并将此逻辑
页号和对应的物理页号送入快表,替换快表中应该移
掉的内容。
逻 辑页号 页内地址 虚 存地址
( 按地址访问)
物 理页号 页内地址
快表
(相联存储
器)
实 存地址
相联比较 ( 按内容访问)
逻 辑页号 物理页号
┄ ┄ ┄ ┄
物 理页号 控制位
┄ ┄ ┄ ┄
(快表中查不到)
慢 表(在主存中)
图 4.3 8 经快表和慢表进行地址变换
2,段式虚拟存储器
▲ 虚拟地址由段号和段内地址组成。
▲ 通过 段表 把虚拟地址变换成实存地址
?段表格式 (图 4.39)
程 序分段(逻辑 )
段0 ( 2K)
段1 (5K )
段2 (3K )
┄┄
段表(在主 存)
段号 段首址 装入位 段长
12 0 0 1 2K
33 2 0 1 5K
** * * 0 3K
┄┄
80 0 0 1 2 K
┄┄
0
1
2

实存 空间
1200
段0

段1
段i
┄┄
i
3320
8000
图4, 3 9 段表示意图
3,段页式虚拟存储器
▲ 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储
器的结合。
?把程序按逻辑单位分段以后,再把每段分成固定大小
的页。程序对主存的调入调出是按页面进行的,按段
实现共享和保护。
?它兼有页式和段式的优点。缺点是在地址映象过程中
需要多次查表。
?虚拟地址向实存地址的变换过程 (图 4.40)
段表基址寄存器
段表基地址
虚存地址
段号 段内地址
段号 段首址 装入位 段长
0
1
2
n 实存地址
段表( 在主存中)
图4, 4 0 段式虚拟存储器地址变换
..
.
...
?在访问某段时,如果段内地址值超过段的
长度,则发生地址越界中断。
?段表中的每个表项对应一个段,每个表项有一个指向
该段的页表起始地址的指针和该段的控制保护信息。
▲ 每道程序是通过一个段表和一组页表来进行
定位。
?目前,大、中型机一般都采用这种段页式存储管理方
式。
?页表指明该段各页在主存中的位置以及是否已装入、
修改等状态信息。
▲ 多道程序虚拟地址
?用基号(用户标志号)指明该道程序的段表
起始地址(存放在基址寄存器中)。
基号 页内地址页号段号
?多道程序虚拟地址格式:
▲ 例:有三道程序(用户标志号为 P1,P2,P3),其
基址寄存器内容分别为 B1,B2,B3,
?逻辑地址到物理地址的变换(图 4.41)
?若只有一个基址寄存器,基号可以不要,在多道程序
切换时,由操作系统修改基址寄存器的内容来实现。
基 址 寄 存 器
B1
B2
B3
基 号 段 号 页 号 页 内地 址
P3 1 2 b
B1+0
B1+1
B1+2
B3+1
实 地 址
程 序 P 1 段 表

程 序 P 3 段 表
B3+0
*
m
物 理 页 号 页 内 地 址
8 b
程 序 P 3, 1 段 的 页 表
m+0
m+1
m+2

5
9
8

图 4, 4 1 段 页 式 虚 拟 存 储 器 地 址变 换
虚拟地址
?上述每一张表的每一行都要设置一个有效位;若有效
位均为,0”,访问失败,则发中断请求操作系统建表

4,替换算法
▲ 页式管理中,产生页面失效时,要从外存
调进包含有这条指令或数据的页面。
▲ 主存中的内容与外存保持一致
?页表的每一行设置一修改位,当该页刚调入主存时,
此位为,0”,当对该页内任一地址进行写入时,就把
该位修改为,1”。
?在页被替换时,检查其修改位,如为,1”,先将该页
内容从主存写入外存,然后再从外存接收新的一页。
▲ 假如主存页面已全部被占满,通常采用 LRU算法,
把“近期最少使用的页”替换出去。
4.6 辅助存储器
4.6.1 磁表面存储器
◆ 磁表面存储器包括磁鼓、磁带、磁盘和磁卡片等。
目前,在计算机系统中以磁盘和磁带为主。
◆ 本节主要介绍磁表面存储器的存储原理、数据的记
录方式以及磁盘和磁带的结构及寻址方式。
?磁表面存储器主要用作辅存,可存储大量的程序和数
据,需要时,调入主存供 CPU访问。属 I/O设备。
1,磁表面存储原理
(1) 磁层和磁头
▲ 磁层是存放信息的介质,由非矩形剩磁特性的导磁
材料(氧化铁、镍钴合金等)构成。
?将用这种材料制成的磁胶涂敷或镀在载磁体上,其厚
度通常为 0.1~5μ m,以记录信息。
?磁层材料的剩磁( BR)要大(读出信息大),矫顽
力 HC要合适(较小的写电流);磁层厚度要薄(提
高记录密度);生成磁层的工艺、机械性能好。
▲ 磁头是实现“磁 —电”和“电 —磁”转换的
元件
?磁头由高导磁率的软磁性材料(如坡莫合金
和高频铁氧体)做成铁芯,在铁芯上开有缝隙并绕有
线圈。
?用磁头对磁层进行信息读写的原理
?磁头中的缝隙形状和尺寸将直接影响记录密度和读出
幅度。
?磁头分读磁头、写磁头和读 / 写磁头,其铁芯上的线
圈分别称为读线圈、写线圈和读 /写线圈。
(2) 磁表面存储器的读写过程
▲ 磁头固定,磁层作高速回转或匀速直线运动;
在相对运动中,通过磁头缝隙对磁层进行信息存取。
① 信息写入过程
?写线圈中通以写电流脉冲,磁头缝隙处的磁场穿过磁
层中一微小区域,使该区域磁层以一定方向磁化,且
保持该方向的剩磁( +BR或 -BR)。
② 信息读出过程
?磁头与磁层作相对运动,当磁层中记录单元运动到磁
头缝隙下面时,在磁头中产生较大的磁通变化,读线
圈两端产生较大的感应电势 E,经读出放大电路整形
和放大后成为读出信号。
(3) 磁表面存储器的性能指标
?在磁道中,单位长度内存放的二进制信息的数目叫位
密度。位密度的单位为 bPI(每英寸二进制位数)。
软盘位密度约每英寸 4000—10000位。
① 记录密度
?记录密度可用道密度和位密度来表示。
?磁道是在磁层运动方向上被磁头扫过的轨迹。一个磁
表面会有许多磁道。
?在沿磁道分布方向上,单位长度内的磁道数目,叫道
密度。常用的道密度单位为 TPI(每英寸磁道数),
目前软磁盘的道密度约 40—150TPI。
② 存储容量
?指整个存储器所能存放的二进制字数或字节数。
它与磁表面大小和记录密度密切相关。
?磁鼓容量最小,为几兆字节。磁带容量最大,为若干
亿字节;磁盘介于两者之间。
?磁盘的平均寻道时间一般为 10~20ms;等待时间一般
取磁盘旋转一周所需时间的一半,假如磁盘转速为
6000转 /分,等待时间约为 5ms。
?磁带的定位时间与走带速度和带长有关,带愈长,带
速愈慢,其平均时间愈长。
③ 平均存取时间
?存取时间应包括定位和等待这两部分时间。
④ 数据传送速率
?由于磁表面存储器和主存之间的数据交换常以批量方
式进行,故传送速率较大。如软磁盘传送一个字节约
为几个微秒,而硬盘每秒可传送几兆字节。
?数据传送速率是指磁表面存储器完成定位和等待操
作以后,单位时间内与主机交换数据的二进制信息
量,以位 /秒或字节 /秒表示。
( 4)数据记录方式
▲ 记录方式取决于写入磁化电流波形的组合
方式。记录方式的选取将直接影响记录密
度、存储容量、传送速率以及读 /写的控制逻辑。
?数据记录方式按照写信息所施加的电流波形的 极性,
频率 和 相位 的不同,有归零制、不归零制、调相制
和调频制等。
① 归零制( RZ)
?写,1”用正脉冲,写,0”用负脉冲,一位信息写完后
,电流总回归到零。
?磁化单元的剩磁方向,在存,1”时为 +Br,存,0”时
为- Br。
?归零制的写电流波形(图 4.42)
RZ + I
-I
图4, 4 2 归零制写电流波形
1 1 0 0 1 0 1
?归零制主要特点
☉ 写入前先退磁,两个信息位之间有未磁化的间隙
( B=0),记录密度较低。
☉ 每个位单元有两个读出波形,具有自同步能力,即
能从本磁道读出的信息脉冲序列中提取出选通时钟
信号,而无需增加附加的同步磁道。
② 不归零 -1( NRZ—1)制(图 4.43)
?写电流只在写,1”时改变方向,写,0”时写电流
不变,所以又称作“见 1就翻”不归零制。
?信息位间无“间隙”,记录密度较高。
?存,1”才能读出信号,存,0”无读出信号,故无自同
步能力。电流不回到零,功耗较大。
1 1 0 0 1 0 1
-I
图4, 4 3 N R Z - 1 制写电流波形
+I
NRZ-1
③ 调相制( PM制)(图 4.44)
?利用写电流的相位不同实现写,1”和写,0”的
一种记录方式。若写,0”时,写电流先正后负;
而写,1”时,写电流是先负后正。
?主要特点:无论写 1还是写 0,在一个位信息期间,写
电流相位至少有一次改变。利用记录信号变向,可生
成读同步脉冲。
1 1 0 0 1 0 1PM
-I
+I
图4, 4 4 P M 制写电流波形
④ 调频制( FM制)(图 4.45)
?写入一个二进制信息时,磁头中通入的写
电流的频率是不相同的。
1 1 0 0 1 0 1FM
-I
+I
图4, 4 5 F M 制写电流波形
?调频制特点:
1) 每记录一个代码时,在两个信息位的交界处,写电
流一定改变方向。
2) 写,1”时,写电流的频率比写,0”时的频率高一倍

3) 有自同步能力。
⑤ 改进调频制( MFM制)(图 4.46 )
?改进调频制和调频制的区别在于去掉了
FM制中的冗余信息,
1 1 0 0 1 0 1MFM
-I
+I
图4, 4 6 M F M 制写电流波形
?其特点是:
1) 写电流不是在每个位周期的起始处都翻转,而是只
有 连续记录两个或两个以上‘ 0?时,才在位周期的
起始处翻转一次;
2) 逢 1在位中央翻转一次。仍然保持了自同步能力,而
使记录密度提高,故又称倍密度记录方式,在磁盘
中得到广泛应用。
2,磁盘存储器
▲ 以磁盘或磁盘组作为存储介质的记录装置,
又叫磁盘机。具有记录密度高、容量大、
速度快等优点,普遍使用的一种辅助存储器。
▲ 根据盘片的构成及其可更换性分类:
固 定式磁盘
浮动型固定磁头
可更换式磁盘
固 定式磁盘
浮动型活动磁头
可更换式磁盘
金属机体硬盘
接触型活动磁头
浮动型活动磁头
塑 料机体软盘
磁盘
均为可更换式
① 硬磁盘存储器的基本组成(图 4.47)
?主要由磁记录介质、磁盘驱动器、磁盘控制
器三大部分组成。
(1) 硬磁盘存储器
并行数据
来自总线
控制逻辑 时钟
并→串转换电路
读放电路 串→并转换电路
写电流驱动器
读写开关
读/ 写磁头
图4, 4 7 硬磁盘存储器的逻辑结构
送总线
② 温彻斯特磁盘存储器
?可移动磁头固定盘片的磁盘存储器,用密封组合式结
构,具有防尘性好、可靠性高等优点,应用广泛。
?温盘的盘片直径有 14吋,8吋,5.25吋和 3.5吋等几种
,用于 IBM PC 系列机的温盘一般是 3.5吋的,现在容
量可达 20GB以上。
③ 硬盘驱动器
?硬盘驱动器是精密的机电装置,由定位驱动系
统、主轴系统和数据转换系统组成。加工和安
装有严格的技术要求,在超净环境下组装。
写入电路
写命令
写入数据
读出数据
读命令 读出电路
盘地址
寻道结束
磁盘地址
寄存器
扇区符合
比较器
扇区符合
道地址
磁头定位
伺服系统
磁头选择
读写磁头
扇区
计数器
来自或送到
磁盘控制器
扇区号
扇区标志脉冲
图4, 4 8 磁盘驱动器逻辑框图
?磁盘驱动器的逻辑操作归纳为寻址、读盘和
写盘。
·读写操作
☉ 判断所找扇区已转到磁头下方。扇区定位成功,输
出扇区符合信号。
· 寻址操作
☉ 根据控制字中的盘地址(柱面号、磁头号、
扇区号)找出目标磁道和记录块位置。
☉ 控制器的读写控制电路动作。
☉ 写操作:就将数据送入写电路,写电路根据记录方式
生成相应的写电流脉冲。
☉ 读操作:根据道、扇区地址读出内容送盘控制器。
④ 磁盘控制器
?磁盘控制器是主机与磁盘驱动器之间的接口;
与和主机之间采用成批数据交换方式。
S C S I 接口
DMA
控制








串/ 并
转换
并/ 串
转换
数据
译码
数据
编码
读时钟
发生器
读出
放大器
写入
驱动器
E S D I 接口 S T 5 0 6 接口
图4, 4 9 磁盘控制器接口逻辑
C B A
?磁盘控制器与磁盘驱动器之间并没有明确的界线,
⑤ 磁盘上的信息分布
?磁盘表面称为记录面,记录面上一系列同心
圆称为磁道( track),有双面和单面之分。
柱面0
柱面n
图4, 5 0 磁盘的柱面和扇区示意
扇区
?每个记录面上都有一个磁头,在寻道时同步运动。
?磁盘组上直径相同的磁道构成一个柱面 (Cylinder),
柱面从外向里编址。
?定长记录格式
☉ 每个记录块记录的字节数固定。如 IBM PC 中每记录
块记录 128,256或 512字节。
·头空,不记数据 (记全‘ 1?),磁盘转过该区域的时间
是留给磁盘控制器作准备用的。
☉ 定长记录格式中每个扇区记录一个数据块,每个扇
区有头空,ID域、间隙、数据域和尾空。
· 尾空,在数据块和数据块的 CRC码后的区域,
也记全‘ 1?。
序标,又称同步字符,标志 扇区开始的代码。
扇区地址,包括柱面号、磁头号、扇区号等。
从序标开始的 CRC码。
数据域又有同步字符、数据标志、数据和相应的
CRC组成。
· ID域,又由序标、扇区地址和相应 CRC组成。
? IBM PC机所用软盘的记录格式,硬盘的记
录格式与之类似 (图 4.51 )。
索引 空隙 第一扇区 第二扇区,,, 第K 扇区 空隙
( a ) 磁道上信息的分布
(b )I B M 格式的记录块组成




ID域


数据域
信息名
字节数
代码
FF 00 FE FF 00 F8 FF
FM

字节数
代码
M F M 制
图4, 5 1 I B M P C 机所用软盘的记录格式






CRC










数据 CRC


40 6 1 4 2 11 6 1
128
256
512
2 27
FF 00
3个
A1
1个
FE
4E 00
F8

FB
FF
128
256
512
80 12 4 4 2 22 12 1 2 54
?理论上的柱面数应该等于(磁盘有效记录区外径 -有
效记录区内径) ÷ 2× 道密度。
⑥ 硬盘容量和数据传输率的计算
(a) 未格式化容量的计算
?按道密度和位密度计算出来的容量,没有考虑由于格
式化引入的各种附加信息,称未格式化的容量,它比
格式化后的实际容量要大。
?未格式化容量 =记录面数 × 理论柱面数 × 内圆周长 ×
位密度( bit)
?磁道能记录的二进制信息位的理论值等于内圆周长 ×
位密度; 内圆的记录密度最大。
?实际容量 =记录面数 × 实际柱面数 × 每道扇区数 ×
每扇区的字节数(字节容量)
(b)格式化后容量(实际容量)的计算
?数据传输率等于单位时间内磁头划过的磁道弧长乘以
位密度
数据传输率 =(每分钟转速 ÷ 60) × 内圆周长 ×
位密度( bit/S)
(c)数据传输率
?数据传输率是单位时间内磁盘与主机交换数据的二进
制信息量;
(2) 软磁盘存储器
① 软磁盘存储器与硬磁盘存储器的差别
1) 硬盘(温盘)转速高,磁头与磁层不接触;而软盘
转速低,磁头与磁层接触。
2) 大多数硬盘采用固定盘组,软盘单片使用。
3) 硬盘系统价格高,存储量大,存取速度快;软盘价
廉,存储量小,存取速度较慢
4) 硬盘盘片不可拆卸,一般不能互换,软盘是可拆卸
的且可互换。
③ 软盘驱动器和控制器
?软盘驱动器主要由驱动机构、磁头及定位机构和读写
电路组成。
② 软盘盘片
?软盘盘片由聚酯塑料制成,厚度几十微米,上面凃有
磁层,封装在方形外壳中。
?软盘控制器解释来自主机的命令,向软盘驱动器发出
控制信号,并检测软盘驱动器的状态,按规定的数据
格式向驱动器读写数据。
?具体控制有:寻道操作、地址检测、读数据、、写数
据、初始化等。
4.6.2 光盘存储器
1,光盘存储器的分类
◆ 光盘存储器是一种采用聚焦激光束在盘形介质上高
密度地记录信息的存储装置。
▲ 只读型光盘
?只读型光盘由生产厂家预先用激光在盘片上蚀刻而
成,信息不能改写。
?如 LV,CD,CD-ROM,已相当普及。
?具有记录密度高、存储容量大、信息保存寿命长、
工作稳定可靠、环境要求低等特点,广泛应用于文件
、声音和图象等,各种数字化信息的存储。
▲ 可重写型光盘是读 /写型光盘,第一代是改写型,第
二代是重写型。
?按记录介质不同可分为磁光型、相变型两大类。
▲ 一次写入型光盘
?由用户一次写入、可多次读出但不能擦除的光盘。
?要修改的数据只能追记在盘片上的空白处,用于不需
要修改的应用场合。
?磁光型记录技术既有光记录信息的高密度,又有磁记
录介质的可擦除重写特点,在可重写型光盘中占据重
要地位。
2,光盘存 储器的基本工作原理
(1) 只读型光盘的信息存储机理
?所有只读型光盘上的信息都以坑点形式分布,一系列
的坑点(信息元)形成信息记录道。
?只读型光盘是生产厂家制造,为了大量复制,需要制
作母盘。将存储信息以表面坑点形式转录在母盘上。
(2) 一次写入型光盘的信息存储机理
?记录数据以直接可读的方式录刻在光盘上。一旦录制
完毕,存储数据就不能再行改写。
?用强激光束照射薄膜,可在膜层上烧蚀或蒸发出凹坑
点(信息元)。
3,磁光盘存储器
▲ 磁光存储技术采用 热磁光 记录方法来完成写擦功能
。又称热磁写入。
?是光学录制与磁性介质可逆特性相结合的产物。磁光
介质由铁磁材料薄膜组成,它在垂直于表面的方向上
十分容易磁化。
第 5章 指令系统
?计算机的指令有微指令, 机器指令和宏指令
之分 。 微指令是微程序级的命令, 属于硬件;宏指
令是由若干机器指令组成, 属于软件;机器指令介
于二者之间, 因而是硬件和软件的界面 。
?一台计算机能执行的机器指令全体称为该机的指令
系统。它是软件编程的出发点和硬件设计的依据,它
衡量机器硬件的功能,反映硬件对软件支持的程度。
5.1 指令格式
5.1.1 指令的格式
?机器指令必须规定硬件要完成的操作,并指出操作
数或操作数地址。指令一般的格式如下,
操作码 O P 地址码 D
1,三地址指令
OP D 1 D 2 D 3
执行( D1) OP( D2) → D3
2,二地址指令
OP D 1 D 2
执行( D1) OP( D2) → D2
3.单地址指令
OP D
执行( D) OP ( A) → A
A(称累加器 ),CPU中一个专用寄存器
4.零地址指令
这类指令无操作数,所以无地址码。例如空操作、
停机等不需要地址的指令 。
5.1.2 指令长度
原则:
1.指令长度应为存储器基本字长的整数倍 。
?如果指令长度任意,就会产生指令跨存储字边界存
放的情况 。
?指令长度有固定长指令和可变长指令两类。
2.指令字长应尽量短
?指令短,有利于提高程序的效率,即减少所需存储
量和加快运行速度。
?不能为了使指令短而影响指令系统的完备性
和规整性。指令系统的完备性差,机器的功
能受影响;规整性差,分析指令的时间必然加长。
5,2 寻址方式
?指令如何指定操作数或操作数地址称为寻址方式。
?希望指令内所含地址尽可能短;
?希望能访问尽可能大的存储空间;
?寻址方法尽可能简单;
?在不改变指令的情况下, 仅改变地址的实际值 。
常用的寻址方式有以下几类:
1,立即寻址
?指令直接给出操作数本身,这种寻址方式又称立即数
寻址。
OP 操作数格式如下:
操作码
存储器地址 存储器内容
8 位立即数n+1
操作码n
下条指令n+2
存储器地址 存储器内容
n+2
n+1
n
立即数高8 位
立即数低8 位
n+3 下条指令
( a ) 8 位立即数 ( b ) 1 6 位立即数
图5, 1 按字节编址机器中的立即寻址指令
2,直接寻址
?指令直接给出操作数地址 。
OP 操作数地址格式如下:
操作码
存储器地址 存储器内容
n+2
n+1
n
操作数地址高8 位
操作数地址低8 位
n+3 下条指令
图5, 2 按字节编址机器中的直接寻址指令
3,间接寻址
? 指令给出存放操作数地址的存储单元地址 。
OP @ 间接地址格式如下:
OP
操作数
有效地址
主存@ 间接地址
图5, 3 单级间接寻址
4.寄存器 (直接 )寻址
?操作数在指令指定的 CPU的
某个寄存器中。
OP 寄存器号 或 OP 寄存器号1 寄存器号2
寄存器寻址有以下优点:
① CPU寄存器数量远小于内存单元, 所以
寄存器号比内存地址短, 因而寄存器
寻址方式指令短;
② 操作数已在 CPU中,不用访存, 因而指令执行速度快 。
5.寄存器间接寻址
?操作数地址在指令指定的 CPU某个寄存器中。
?如,8086指令 MOV AX,[BX]
6.寄存器变址寻址
?指令指定一个 CPU寄存器(称为变址寄存器)
和一个形式地址,操作数地址是二者之和。
OP 寄存器号 形式地址
?如,8086指令 MOV AL
,[SI+1000H]。
d a t a n
d a t a 1
d a t a 2
?
SI
形式地址
+
图5, 4 变址寻址选择数组数据
7.相对寻址
?相对寻址是把程序计数器 PC的内容,加上
由指令给出的形式地址而形成操作数地址。
?采用相对寻址便于编制可浮动程序,这种程序随便
放在内存什么位置,都能正常运行。
8.基址寻址
?基址寻址是把由指令中给出的地址 (或称位移量 )与
CPU 中的某个基址寄存器相加而得到实际的操作数
地址。
?变址寻址主要解决程序内部的循环问题,例
如,循环取数组中一个元素”等问题。而基
址寻址则要求基址寄存器的内容能提供整个
主存范围的寻址能力,指令给出的位移地址
实际上指出了相对于基址的位移量。
?基址寻址为逻辑空间到物理空间的地址变换提供了
支持,以便实现程序的动态再定位。
9.隐含寻址方式
?指令没有明显地给出操作数地址,而在操作码中
隐含着操作数地址。
10.其它寻址方式
?有的计算机指令系统中还有更复杂的寻址方式,
如基址变址寻址、位寻址、块寻址、串寻址等等,
5.3 指令类型
?设计一台计算机的指令系统的功能时,以下几个原则
必须考虑:
?完备性或完整性,
?兼容性,
?均匀性,
?可扩充性,
1.按功能可将指令分为以下几类:
(1) 算术和逻辑运算指令
(2) 移位指令和循环指令
① 算术移位:
如图 5.5所示。
② 逻辑移位:
如图 5.6所示。
1 0 1 0 0 0 1 1
操作数移位前:
移位后:
1 0 1 0 0 0 1 1 0
操作数
C 标志
C 标志
0
( a ) 算术左移
移位前:
移位后:
1 1 0 1 0 0 0 1
1 0 1 0 0 0 1 0 ×
0
操作数
操作数 C 标志
C 标志
( b ) 算术右移
图5, 5 算术移位
移位前:
移位后:
0 1 0 1 0 0 0 1
1 0 1 0 0 0 1 0 ×
0
操作数
操作数 C 标志
C 标志
图5, 6 逻辑右移
③ 环移:
1) 小环移
如图 5.7所示。
2) 大环移
如图 5.8所示。
C 标志
操作数
( a ) 小循环左移
C 标志
操作数
( b ) 小循环右移
图5, 7 小环移
( a ) 大循环左移 ( b ) 大循环右移
图5, 8 大环移
C 标志操作数 操作数
④ 半字交换
操作如图 5.9 所示。
交换前,0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0
交换后,0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0
图 5, 9 半字交换
(3) 传送类指令
(4) 串指令
(5) 顺序控制指令
(7) 输入、输出指令
(6) CPU控制指令
2,按操作数个数分有:
(1) 双操作数指令
(2) 单操作数指令
(3) 无操作数指令
3.按操作数寻址方式分有:
(1) R-R型:两个操作数都在 CPU的寄存器中。
(2) R-S型:两个操作数中一个在 CPU寄存器中,另一
个在内存中。
(3) S-S型:两个操作数都在内存中 。
5,4 堆栈和堆栈存取方式
?堆栈是一种特定的数据结构,其特点是后进
先出 (LIFO)或先进后出 (FILO)。
?堆栈存取方式决定它一端存取的特点,往堆栈里存
数叫入(进)栈或压栈,从堆栈里取数叫出栈或弹
出。
1,用移位寄存器实现堆栈
?这是一种硬件实现的方法,用若干移位寄存器构
成,又叫栈顶固定方式堆栈,如图 5.10所示:
栈顶空栈,栈底
栈顶存入b,
b a
栈底
栈顶
取出b,
a
栈底
图5, 1 0 栈顶固定方式堆栈及其存取
栈顶存入a,
a
栈底
2,内存中开辟堆栈区
?这种堆栈,存储器单元固定,而栈顶位置动态变化。
?在 CPU中专门设置堆栈指针 SP,指示栈顶位置。
1)自底向上生成堆栈:
?这种堆栈建栈时堆栈指针 SP指向栈底下面一个单元 (
栈底是堆栈中地址最大的单元 ), 每次入栈时, SP先
减 1,再把入栈数据存入 SP指向的单元 。 出栈时先读
出 SP所指单元的地址, 然后 SP加 1,即:
入栈操作 ( PUSH) 步骤,i)SP-1→SP
ii)存入数据 → ( SP)
出栈操作( POP)步骤,i)( SP)内容读出
ii) SP+1→SP
1 F F D
1 F F E
1 F F F
2 0 0 0
栈底堆栈指针S P
2 0 0 0
(a ) 建栈
1 F F D
1 F F E
1 F F F
2 0 0 0
栈底
a
堆栈指针S P
1 F F F
(b ) a 入栈
1 F F D
1 F F E
1 F F F
2 0 0 0
栈底
a
堆栈指针S P
1 F F F
(d ) b 出栈
图5, 1 1 自底向上生成堆栈
1 F F D
1 F F E
1 F F F
2 0 0 0
栈底
b
a
堆栈指针S P
1 F F E
(c ) b 入栈
2)自顶向下生成堆栈:
这种堆栈建栈时堆栈指针 SP指向栈底上面一个单元
( 栈底是堆栈中地址最小的单元 ), 每次入栈时,
SP先加 1,再把入栈数据存入 SP指向的单元 。 出栈
时先读出 SP所指单元的内容, 然后 SP减 1,即:
入栈操作 ( PUSH) 步骤,i) SP+1→SP
ii)存入数据 → ( SP)
出栈操作( POP)步骤,i)( SP)内容读出
ii) SP-1→SP
5,5 指令系统举例
5.5.1 IBM 370系列机指令格式
?IBM 370系列机指令格式 如图 5.12所示,它分为 RR型
( RRE型),RX型,RS型,SI型,S型,SS型及 SSE
型指令等几类。其中 RR型指令为半个字长( 16位)
,SS型(及 SSE型)指令为一个半字长( 48位),其
余指令为单字长指令( 32位)。
5.5.2 PDP-11指令格式
PDP-11是一个具有 8个寄存器( R0-R7),16位字长
的小型计算机。其中,R0-R5为通用寄存器,R7是程
序计数器 PC,R6是栈指针 SP。为了便于 8位运算,
PDP-11的存储器按字节编址。
OP R1 R2RR 型指令
0 7 8 11 12 15
OPRR E 型指令
0 15
不用 R1 R2
27 28 312416 23
OPS 型指令
0 15
B2 D2
312016 19
OP R1 X2RX 型指令
0 7 8 11 12 15
B2
19
D2
20 3116
OP I1SI 型指令
0 7 8 15
B2
19
D1
20 3116
OP LSS 型指令
0 7 8 15
B1
19
D1
20 3116
B2
32 35
D2
36 47
RS 型指令 OP R1 R2
0 7 8 11 12 15
B2
1916
D2
20 31
图5, 1 2 I B M 3 7 0 系列机指令系统
?双操作数指令:操作码 4位,每个地址码 6位
,地址码由 3位寄存器号和 3位寻址方式字段构
成,如 图 5.13(a) 所示:
?单操作数指令:操作码 10位,地址码 6位。如图
5.13(b) 所示。
?转移指令:如 图 5.13(c) 所示,转移地址 (相对转移 )
由 8位位移量指出;
?条件码操作指令:如图 5.13(d) 所示,低 5位为条件
标志。
操作码 寄存器号 寻址方式 寄存器号 寻址方式
源操作数 目标操作数
1 5 1 2 1 1 9 8 6 5 3 2 0
操作码 位移量
转移地址
( c ) 转移指令格式
操作码 S N Z V C
条件
4 3 2 1 0
( d ) 条件码操作指令格式
图5, 1 3 P D P - 1 1 指令格式
操作码 寄存器号 寻址方式
目标操作数
5 3 2 0
( b ) 单操作数指令格式
( a ) 双操作数指令格式
15
6
15
15
0
78
5
5.5.3 Pentium指令系统
1,指令格式
?Pentium采用可变长指令格式,最短的指令只有一个
字节,最长的指令可有十几个字节。其指令由以下几
个部分组成:
?前缀:位于指令操作码前,各类前缀的字节数如下,
指令前缀 段前缀 操作数长度 地址长度
0 或1 0 或1 0 或1 0 或1
前缀类型:
字节数:
指令:指令各部分的长度和含义如下:
操作码 寻址方式 S I B 位移 直接数据
1 或2 0 或1 0 或1 1,2,4 立即数
指令段:
字节数:
Mod SSR/MR e g / O P B a s eI n d e x
7 6 5 1234 670 2345 01
图5, 1 4 P e n t i u m 指令格式
(1) 前缀:
?前缀不是每条指令必须有的。如果有的话,各种前
缀也都是可选的。
① 指令前缀:指令前缀由 LOCK前缀和重复
操作前缀组成。 LOCK前缀在多机环境下规
定是否对共享的存储器以独占方式使用;
重复操作前缀表示重复操作的类型,有以下
几种,REP,REPZ,REPE,REPNZ,REPNE。
② 段前缀:如果有段前缀,则指令采用段前缀指定的
段寄存器,而不用该指令缺省值规定的段寄存器。
③ 操作数长度前缀:如果有该前缀,操作数长度将采
用它规定的操作数长度处理,而不用该指令缺省值规
定的操作数长度,以便操作数在 16位和 32位之间进行
切换。
④ 地址长度前缀:如果有该前缀,地址长度将
采用它规定的地址长度而不用该指令缺省值规
定的地址长度,以便处理器用 16位或 32位地址
来寻址存储器。
(2) 指令:
① 操作码,1-2字节,操作码除了指定指令的操作外
,还有以下信息:数据是字节还是全字长;数据传
送的方向,即寻址方式字节中 REG字段指定的寄存
器是源还是目标;指令中如果有立即数,是否对它
进行符号扩展。
② 寻址方式字节:由 MOD,reg/OP和 R/M三
个段组成, 由 MOD和 R/M联合指定 8种寄存器
寻址和 24种变址寻址方式, reg/OP指定某个寄
存器为操作数或作为操作码的扩展用 。
③ SIB:由 SS( 2位),Index,Base三部分组成。 SS
指定比例系数(变址寻址方式时,变址寄存器内容要
乘以该系数); Index指定变址寄存器; Base指定基址
寄存器。
④ 位移量,指令中如果有位移量,可以是 1,2或 4个
字节。
⑤ 直接数据:指令中如果有立即数,可以是 1,2或 4
字节。
2,寻址方式
(1) Pentium物理地址的形成
逻辑地址
段 偏移
...
目录 页号 位移
线性地址
...,..
物理地址
页目录表 页表
段表
图5, 1 5 P e n t i u m 物理地址的形成
?Pentium的逻辑地址包括段和偏移量,段号经过段表直接得到
该段的首地址,和有效地址 (即段内偏移 )相加形成一维的线性
地址。如果采用页式存储管理,线性地址再转化为实际的物理
地址。后一个步骤与指令系统无关,由存储管理程序实现,对
程序员来讲是透明的 。
(2) Pentium的寻址方式
表5, 1 P e n t i u m 的寻址方式
寻址方式 说明
立即寻址 指令直接给出操作数
指定的寄存器R 的内容为操作数寄存器寻址
位移 L A = (S R )+ A
基址寻址 L A = (S R )+ (B )
基址加位移 L A = (S R )+ (B )+ A
比例变址加位移 L A = (S R )+ ( I ) ×S + A
L A = (S R )+ (B )+ (I )+ A
L A = (S R )+ (B )+ ( I ) ×S + A
L A = ( P C ) + A
基址加变址加位移
基址加比例变址加位移
相对寻址
注:L A, 线性地址 ( X ), X 的内容 S R, 段寄存器
B, 基址寄存器 I, 变址寄存器 S, 比例系数
P C, 程序计数器
A, 指令中给定地址段的位移量
R, 寄存器
5.5.4 Power PC指令系统
1.指令格式
条件转移 选项 CR位 转移位移量 L
条件转移 选项 CR位 通过计数器或链接寄存器间接 L
A
无条件转移 选项 CR位 通过计数器或链接寄存器间接 L
(a) 转移指令
注,L为连接位,A为绝对 /相对标志
6位 5位 5位 5位
CR 目标位 源位 源位 与、或、异或等 /
(b) 条件寄存器逻辑指令
6位 5位 5位 16位
表 5.2 Power PC 指令简表
6位 5位 5位 11位
位移
取数 /存数间接 目标寄存器 基址寄存器 变址寄存器 大小、符号、更新 /
取数 /存数间接 目标寄存器 基址寄存器 位移 XO
(c) 取数 /存数指令
取数 /存数间接 目标寄存器 基址寄存器
算术运算 源寄存器源寄存器 ADD,SUB等 RO
ADD SUB等
目标寄存器
源寄存器 有符号立即数
逻辑运算 源寄存器源寄存器 ADD,SUB等 R
AND,OR等 源寄存器 有符号立即数
环移 源寄存器
源寄存器 移位类型或屏蔽
R
环移 平移 源寄存器
移位量 屏蔽起点 屏蔽终点
R
环移 源寄存器 R移位量 屏蔽字 XO S
环移 源寄存器 R移位量 屏蔽字 XO
源寄存器 类型或屏蔽平移 源寄存器 RS
(d) 整数算术/逻辑运算及环移/平移指令
6位 5位5位 16位
目标寄存器
目标寄存器
目标寄存器
目标寄存器
目标寄存器
目标寄存器
目标寄存器
目标寄存器
源寄存器 浮点加等浮点运算 目标寄存器 源寄存器 R源寄存器
(e) 浮点运算指令
注,A:绝对或 PC相对 L,链接至子程序 O:将溢出标志记录到 XER中 R:将状态
标志记录到 CR1中 XO:操作码扩展 S:移位量字段的一部分
2.寻址方式
(1) 取数 /存数指令的寻址方式
?这类指令主要有两种寻址方式:间接寻址和间接变
址寻址,如图 5.16所示。
?间接寻址其有效地址 EA=(BR)+D,BR为基址寄存器
,任何一个通用寄存器均可为基址寄存器; D为 16位 (
有正负 )的位移量。间接变址寻址其有效地址
EA=(BR)+(IR),IR为变址寄存器,任一通用寄存器
也均可作为变址寄存器。
基址寄存器( B R ) 变址寄存器( I R )
逻辑地址
至地址转换机构
( b ) 变址间接寻址
基址寄存器( B R ) 有符号位移 D
逻辑地址
至地址转换机构
( a ) 间接寻址
图5, 1 6 P o w e r P C 访存指令寻址方式
(2) 转移指令的寻址方式
① 绝对地址:
② 相对寻址:
③ 间接寻址:
(3) 算术指令的寻址方式
?整数算术指令可采用寄存器寻址或立即寻址,立即
数是 16位有符号数。浮点算术指令只可采用寄存器
寻址。
5,6 CISC与 RISC指令
1.背景
?“复杂指令集计算机”,简称 CISC(Complex
Instruction Set Computer)。
?使指令系统越来越复杂的出发点有以下几点:
① 使目标程序得到优化:
② 给高级语言提供更好的支持:
③ 提供对操作系统的支持:
?精简指令集计算机 RISC( Reduced Instruction Set
Computer)。
2.特点
?精简指令系统计算机的着眼点不是简单地放在
简化指令系统上,而是通过简化指令使计算机
的结构更加简单合理,从而提高机器的性能。
?RISC与 CISC比较, 其指令系统的主要特点为:
2) 指令长度固定, 指令格式种类少, 寻址方式
种类少;
3) 大多数指令可在一个机器周期内完成;
4)通用寄存器数量多,只有存数 /取数指令访问存储
器,而其余指令均在寄存器之间进行操作。
1) 指令数目较少,一般都选用使用频度最高的一些简
单指令;
?采用 RISC技术后,由于指令系统简单,
CPU的控制逻辑大大简化,芯片上可设置更
多的通用寄存器,指令系统也可以采用速度
较快的硬连线逻辑来实现,且更适合于采用
指令流水技术,这些都可以使指令的执行速
度进一步提高。
?指令数量少,固然使编译工作量加大,但由于指令
系统中的指令都是精选的,编译时间少,反过来对
编译程序的优化又是有利的。
3,CISC与 RISC之争论
?随着速度, 芯片密度的不断提高, 使 RISC系统日趋
复杂, 而 CISC机也由于采用了部分 RISC先进技术,
其性能更加提高 。
5.7 MMX技术
?MMX(Microprocessor Media Extension)是
Intel公司为提高 PC机上处理多媒体和通信能力
而推出的新一代处理器技术,它通过在
Pentium或 pentium Pro处理器中增加 8个 64位
寄存器和 57条新指令来实现。
1,MMX的由来与特点
多媒体应用中的图形, 图像, 视频, 音频的操作中存
在大量共同特征的操作, 如:
· 短整数类型的并行操作 (如 8图形象素和 16位音频信
号 );
·频繁的乘法累加 (如 FIR滤波, 矩阵运算 );
· 短数据的高度循环运算 (如快速傅里叶变换
FFT,离散余弦变换 DCT);
·计算密集型算法 (如三维图形, 视频压缩 );
· 高度并行操作 (如图像处理 )。
?MMX技术的特点:
(1)引进了新的数据类型和通用寄存器 ;
? MMX技术的主要数据类型为定点紧缩 (Packed)整数
它定义了 4种新的 64位数据类型 (如图 5.17所示 )。
6 3 5 6 5 5 4 8 3 1 2 4 2 3 1 6 1 5 8 7 0
6 3 4 8
6 3 0
紧缩字节
紧缩字
4字
紧缩双字
图5, 1 7 M M X 技术引入的数据类型
47 32 31 16 15 0
4 7 4 0
63 32 31 0
3239
(2) 采用 SIMD(Single Instruction Multi Data技术
?单条指令同时并行地处理多个数据元素
(3) 饱和 (Situration)运算
?两类运算模式:环绕运算和饱和运算。
?在环绕运算或称非饱和运算中,上溢或下溢的结果
被截取,即进位被丢掉,仅返回低有效位值。
?饱和运算:即上溢与下溢结果被截取至各类数据值
域的最大值或最小值。
(4) 兼容性
? MMX技术与现有的 IA(Intel Architecture)处理器和
OS保持向下兼容,IA MMX状态建立在 IA浮点状态
之上,无需增加新的状态。
2,MMX指令系统
? 7大类:算术运算指令、逻辑运算指令、比
较指令、转换指令、移位指令、数据传送指
令、置空 MMX状态指令。
( 1)指令句法
· 数据类型,紧缩字节、紧缩字、紧缩双字,64位字;有符号数与无符号数;环绕和饱和运算。
·句法,词头; 指令; 词尾 。
(2) 指令类型
1) 算术运算类指令:有紧缩加 (ADD),减 (SUB),乘法
(MUL),乘加 (MADD)等指令 。
2) 比较指令,PCMPEQ( 相 等 比 较 ),
PCMPGT(是否大于 ),这类指令用于条件转
移操作 。
3) 转换指令:实现各类紧缩数据之间的转换 。
4) 逻辑指令:在 64位数据上进行按位, 与,,, 与非
” 或, 与非, 和, 异或, 操作 。
5) 移位指令,64位数据的逻辑左 /右移和算术右移 。
6) 数据传送指令:在主存储器和 MMX寄存器之间或
MMX寄存器本身之间 64位数据传送;或整型寄存器
与 MMX寄存器之间 32位数据传送 。
7) EMMX(Empty MMX State):置空 MMX状态 。 在
MMX例程结束时, 清除 MMX状态 。
(3) 操作数
?MMX指令中除数据传送指令以外,源操作数都驻
留在存储器或 MMX寄存器中,而目标操作数驻留在
MMX寄存器中;而传送指令,源和目标操作数还可
以是整型寄存器内容。
第 6章 中央处理机组织
● CPU概念,控制并执行指令的部件,该部
件不仅要与计算机的其它功能部件进行信
息交换,还要控制它们的操作。
● CPU基本功能,读取并执行指令,它通常
包括 控制器 与 运算器 两大部分。
6.1 CPU的结构与功能
■ 指令存放在连续的主存单元中,当未遇到转移或跳步
指令时,CPU将按照指令在主存中的存放顺序逐条将
其读出并执行。 CPU用一个专门的寄存器,即 程序计
数器( PC),以存放下一条指令所在主存单元的地址。
6.1.1 CPU的组成与操作
地址线
指令译码器
MDR
MAR
PC
IR
数据线
存储器总线
R0
Y
R(n-1)
Z
ALU


1→ C0
ALU控制
图 6.1 CPU内部单总线组织的数据通路
..
.
◆ CPU的组成 (图 6.1)
◆ CPU至少应有以下四种基本功能:
? 读取某一主存单元的内容,并将其装入某一个 CPU寄存器;
? 把一个数据字从某一 CPU寄存器存入某个给定的主存单元中;
1,从内存读取一个字
( 1) MAR←[R1]
( 2) Read
( 3) WMFC ;等待 MFC信号( Wait MFC)
( 4) R2←[MDR]
? 把一个数据字从某一 CPU寄存器送到另一个寄存器或者 ALU;
? 进行一个算术运算或逻辑运算,将结果送入某一 CPU寄存器。
?通常,在 CPU发出地址信息和读信号之后
,必须等待,直到主存完成读操作时为止。
?所谓读操作完成,是指数据已从主存中读出并放在
存储器总线的数据线上。
?CPU和主存之间通信的方式有“同步”和“异步”两
种。
?“异步”方式即指一个设备(如 CPU)启动一个传
送操作(如送出一个读信号),然后等待另一个设
备(如存储器)回答“操作完成”,此次传送操作
即可完成。
?同步方式即指在 CPU和主存之间建立公共的定时时
钟。一个时钟周期完成一次主存访问。
2,把一个字写入主存
(1) MAR←[R1]
(2) MDR←[R2]
(3) Write
(4) WMFC
...
R(n-1)
Y
...
Yin
A B
ALU
Z
Zout
Yout
R(n-1)out
Zin
图 6.2 寄存器的输入门和输出门
R(n-1)in
3,通用寄存器之间传送数据
R1out,R4in
4,完成算术、逻辑运算
(1) R1out,Yin
(2) R2out,Add,Zin
(3) Zout,R3in
接通三态 总线传 通过 ALU 保持
门时间 输时间 的延时 建立时间 时间
t0 t1 t2 t3 t4 t5
有效数据 下一操
进入寄存器 Z 作开始
准备下一操作的控制信号
图 6.3 加法操作期间控制信号的时序
6.1.2 CPU时序控制方式
◆ 控制器的主要任务,能够按正确的时序产生操作
控制信号。
? 控制器三种时序控制方式,同步、异步和联合控制方式。
1,同步控制方式
▲ 同步控制方式 是指控制序列中每步的执行,都由确定
的具有基准时标的时序信号来控制。每个时序信号的
结束就意味着所要求的操作已经完成。
? 同步方式的时序信号通常由 周期, 节拍 和 脉冲 组成。
? 周期是指令运行过程中相对独立的阶段,也被称为工
作状态。
? 指令的运行过程可分为取指令、读取操作数及执行
(包括写结果 )三个基本工作周期。
? 以主存的工作周期为基础来确定 CPU周期。
? 一个周期划分成若干节拍,以控制不同操作
控制步的顺序执行。
? 为了产生操作控制信号并使某些操作能在一拍的时
间内配合工作,常在一拍之内再设置一个或多个工
作脉冲。
周期
节拍 P0
P1
P2
P3
周期 C0
C1
C2
C3
图 6.4 周期、节拍和脉冲的关系图
2,异步控制方式
? 异步控制方式,不仅要区分不同指令所对
应的操作序列的长短,而且要区分其中每
个操作的繁简,按每条指令、每个操作的
需要而占用时间的一种控制方式。
? 各操作之间是用, 结束, 或, 就绪, —“起
始, 的方式衔接起来的。
3,联合控制方式
? 联合控制方式 是同步和异步控制方式的结合。
? 现代计算机大多采用同步控制方式或联合控制方式。
6.1.3 CPU控制流程
◆ 计算机进行信息处理的过
程就是不断地 取指令, 分
析指令 和 执行指令 这样一
个周而复始的过程。
程序执行完了吗?
取出指令
启动
分析指令
执行指令
是否有中断请求?
转中断处理程序
返回



图 6.5 CPU控制流程

等待
◆ 图 6.5给出了 CPU控制流程
? 对异常情况和某些请求通
过中断处理。
6.1.4 控制器的组成
启停控制线
操作控制信号形成部件
时序信号产生部件 指令译码器
指令寄存器
程序计数器脉冲源
状态寄存器
通用寄存器
ALU
总线控制逻辑
中断机构
+"1"
转移 地址
地址总线
数据总线
控制总线
图 6.6 控制器组成框图
( 1)程序计数器( PC),
( 2)指令寄存器( IR),
( 3)指令译码器,
( 4)脉冲源及启停控制线路,
( 5)时序信号产生部件,
( 6)操作控制信号形成部件,
( 7)中断机构,
( 8)总线控制逻辑,
6.1.5 一条完整指令的执行
◆ 考虑一条比较简单的指令:
Add ( R3),R1
◆ 执行这条指令需要下列动作 (图 6.7 ):
( 1)取指令;
( 2)取第一个操作数 (由 R3所指出的存储单元的内容 );
( 3)完成加法运算;
( 4)结果存入 R1中。
步 动作 说明
1 PCout,MARin,Read,Clear Y,1=>C0,Add,Zin;取指,(PC)+1
2 Zout,PCin,WMFC ; (PC)+1 => PC
3 MDRout,IRin ;指令 => IR
4 R3out,MARin,Read ;取数据
5 R1out,Yin,WMFC ; (R1) => Y
6 MDRout,Add,Zin ;相加
7 Zout,R1in,End ;结果 => R1
图 6.7 指令 Add (R3),R1的执行控制序列
步 动作
1 PCout,MARin,Read,Clear Y,1 => C0,Add,Zin
2 Zout,PCin,WMFC
3 MDRout,IRin
4 PCout,Yin
5 ( IR的偏移字段 )out,Add,Zin
6 Zout,PCin,End
图 6.8 无条件转移指令的控制序列
◆ 条件转移的情况
图 6.8中第 4步应改为:
If N=0 then End
If N=1 then PCout,Yin
6.1.6 CPU性能设计
◆ 决定 CPU性能最重要的三个因素,指令
的功能强弱、时钟周期的长短、执行每
条指令所需时钟周期数。
? 指令流水执行过程中,采用相对简单的指令会更合
适;
? 时钟速度取决于所采用的电子电路的速度和功能部
件(如 ALU)的实现技术;
? 在过去的二十年间,微处理器芯片的时钟频率从几
兆已经发展到几百兆、几千兆。
1,多总线组织
▲ 为了达到更高的性能,每条指令的执行时钟
周期尽量少,最理想的是一个时钟周期;
? 单总线只允许在一个时钟周期内传输一个数
据;有必要考虑在 CPU内部采用多总线结构。
如 Pentium处理器就采用了分层次多总线结
构。
指令译码器
TEMP
寄存器堆
PC
IR
MAR
MDR
ALU
地址线数据线
存储器总线
图 6.9 CPU的三总线组织
A CB
▲ 多总线结构的实现
? 所有通用寄存器都被放入
一个被称为 寄存器堆
( register file)的单独模块
中。
? 在 VLSI技术 中,实现这些
寄存器最有效的方法是采
用 存储元件阵列 。
? 图 6.9 CPU三总线组织
▲ 考虑以下三操作数指
令的例子:
OP Rsrc1,
Rsrc2,
Rdst
2,指令流水
▲ 指令流水( instruction pipelining)技
术, CPU能够将指令的取指周期和执行
周期重叠起来,会极大地改善 CPU性
能。
▲ 一条指令流水线可由如下 5段组成,(图 6.10)
S1,取指令 (IF):由 cache或主存取指令;
S2,指令译码 (ID):生成指令将要完成的操作;
S3,取操作数 (OF):确定存储器操作数地址,读取
存储器操作数和寄存器操作数;
S4,执行 (EX):对操作数完成指定操作;
S5,写回 (WB):修改目标操作数。
▲ 后一指令的第 i功能步与前一指令的第
i+1功能步同时进行。
取指
IF
译码
ID
取操作数
OF
执行
EX
写回
WB
S1 S2 S3 S4 S5
输入 输出
IF
EX
WBEXOFID
OFIDIF
EXOFIDIF
EXOFIDIF WB
WB
WB
指令
i1
i4
i2
i3
2 81 76543 时钟
图 6.10 一个 5段的指令流水线
▲ 上图中,完成 4条指令的执行只用了 8个
时钟周期;若是非流水线的顺序处理则
需要 20个时钟周期。
3,指令发射与完成策略
? 指令发射 ( instruction issue)是指启动指令进入执行
的过程;
? 指令发射策略 是指发射所使用的协议或规则;
? 指令的发射和完成策略主要用于流水线的调度,对于
充分利用指令级的并行度,提高处理器性能十分重要。
? 当指令按程序的指令次序发射时,称之为
按序发射 ( in-order issue);
? 为改善流水线性能,可以将有(结构、控制、数据)
冒险的指令推后发射,而将后面的无冒险的指令提前发
射,即不按程序原次序发射指令,称之为 乱序发射 或 无
序发射 ( out-of-order issue)。
▲ 有三种指令发射与完成策略:
? 按序发射按序完成;
? 按序发射无序完成;
? 无序发射无序完成。
▲ Pentium处理器采用的是按序发射按序完成策略;
PentiumⅡ /Ⅲ 处理器采用的是按序发射无序完成策
略,而以按序回收来保证程序最终结果的正确性。
▲ 无论采用哪种策略对流水线进行调度,都要保证程
序运行最终结果的正确性。
4,动态执行技术
▲ 动态执行( dynamic execution)技术 是
通过预测程序流来调整指令的执行,并
且分析程序的数据流来选择指令执行的
最佳顺序。
▲ 动态执行技术由以下 3方面组成:
? 利用 转移预测技术 (通常预测正确率高达 90%):允许程序
的几个分支流同时在处理器中进行;
? 数据流分析 ( dataflow analysis):通过分析指令之间的数据
相关性,产生优化的重排序的指令调度;
? 推测执行 ( speculative execution):将多个程序流向的指令
序列,以调度好的优化顺序送往处理器的执行部件去执行,
尽量保持多端口多功能的执行部件始终为“忙”,以充分发
挥此部件的效能。
5,一个完整的 CPU(图 6.11)
图 6.11 一个完整的 CPU
指令部件
指令 cache
浮点部件整数部件
总线接口
数据 cache
系统总线
输入 /输出主存
CPU
▲ CPU、微处理器,其工作主要还是进
行 标量处理 ;
? 采用多功能部件和流水线技术,可以在
一个时钟周期内完成多条指令的取指和
执行。这种处理器被称为 超标量流水线
处理器 ( superscalar pipelining
processor)。
6.1.7 典型 CPU举例
1,Pentium处理器
? Pentium是 Intel公司 x86系列的第五代微处理器;
? 主要寄存器为 32位宽,是一个 32位微处理器;
? 连接存储器的外部数据总线宽度为 64位,每次可同时传输 8个
字节;
? Pentium外部地址总线宽度是 36位,一般使用 32位,故物理地
址空间为 4GB。
? Pentium采用 U,V两条指令流水线的超标量结构,内部有分
立的 8KB指令 cache和 8KB数据 cache,外部还可接 256~
512KB的二级 cache;
? 大多数简单指令是用硬连接技术实现,一个时钟周期执行完;
? Pentium的 CISC特征是主要的,属于 CISC结构处理器 。
▲ Pentium有四类寄存器组:
? 基本结构寄存器组
通用寄存器
段寄存器
指令指针
标志寄存器
? 系统级寄存器组
系统地址寄存器
控制寄存器
? 浮点部件寄存器组
数据寄存器堆
控制寄存器
状态寄存器
标记字
事故寄存器 ? 调试和测试寄存器组
图 6.12 Pentium CPU结构框图
▲ Pentium有 4个方面的新型体系结构特点:
(图 6.12)
(1) 超标量流水线
? 超标量流水线是 Pentium系统结构的核心。由 U,V两条指令
流水线构成,每条流水线都有自己的 ALU、地址生成电路和
与数据 cache的接口。
(2) 分设的指令 cache和数据 cache
? Pentium内有分立的 8KB指令 cache和 8KB数据 cache;
? 指令 cache向指令预取缓冲器提供指令代码;
? 数据 cache与 U,V流水线交换数据;
? 它们对 Pentium的超标量结构提供了强有力的支持。
(3) 先进的浮点运算部件
?Pentium的浮点运算采用 8段流水线,前 4段
在 U,V流水线中完成,后 4段在浮点运算部
件中完成。
?浮点部件内有专用的加法器、乘法器和除法器,有 8
个 80位寄存器组成的寄存器堆,内部的数据总线为
80位宽。
?对于常用的浮点运算指令如 LOAD,ADD,MUL等
采用了新的算法,并用硬件实现。
(4) 以 BTB(branch target buffer)实现的动态转移预测
? Pentium采用动态转移预测技术,来减少由于过程相关性引
起的流水线性能损失。
▲ Pentium的后续产品 Pentium MMX、
Pentium Pro,Pentium II,Pentium III
更是集成了 MMX技术,增强了音频、
视频和图形等多媒体应用的处理能力,
加速了数据加密和数据压缩与解压的过
程;
? 具有包括数据流分析、转移预测和推测执行在内的动态执行
技术能力;
? 采用双重独立的总线结构和 SEC( Single Edge Contact)单
边接触封装技术。
? Pentium III首次采用了 Intel公司自行开发的流式单指令多
数据扩展 SSE( Streaming SIMD Extensicm);
? SSE技术使得 Pentium III处理器在三维图像处
理、语言识别、视频实时压缩等方面都有很大
进步,而在互联网应用中最能体现这些进步;
? Pentium II/III处理器采用了层次化的两级 (L1和 L2) cache技
术;
? L1cache是指令与数据分立的哈佛结构,采用写无效式的
MESI监听协议;
? Pentium II/III已将 CISC的指令在处理器内部翻译成一组
RISC的微操作来执行,并实现了超标量、超级流水( 14段)
的指令流水线。
?多处理器技术、虚拟分页扩展技术、单指
令多数据流( SIMD)技术等融入处理器芯
片,使得 PC的系统结构朝着更便于处理多
媒体和互联网络的信息方向发展。
2,PowerPC处理器
? PowerPC是 IBM联合 Motorola和 Apple共同推出
的典型 RISC风格的超标量结构的系列微机 ;
? 601是最早推出的 32位机,603是面向低
端的台式机和便携机,也是 32位机;
? 604是采用了先进的超标量设计技术的
面向中档台式机和中、低端服务器的 32
位机;
? 620是面向高端服务器的全 64位结构的
PowerPC。
▲ 以 PowerPC 601 为例,它的内部结构 (如图 6.13所示 )
指令队列 (8单元 )和发送
整数单元 分支处理单元浮点单元
32KB 指令 /数据 cache 存储管理单元
总线接口单元 (128位 )
图 6.13 PowerPC 601 的结构图
256位
32
32 64
6.2 组合逻辑控制与 PLA控制
■,操作控制信号形成部件,产生指令所需要的操作
控制信号序列,用以控制计算机各部分的操作,它
是整个控制器的核心,也是最复杂的部件。
? 该部件的组成可用微程序方式,也可用组合逻辑方
式或 PLA方式,即通过逻辑电路直接产生控制信号
(又称硬布线方式)。
6.2.1 组合逻辑控制
◆ 产生需要的操作控制信号由下列因素确定:
? 控制步计数器的内容 (时序信号 );
? 指令寄存器的内容;
? 条件码和其它状态标志的内容。
? 状态标志是指 CPU中各部分状态以及连到各控制部
件的信号,如 MFC信号等。
◆ 图 6.14中所有输出到编码器的信号共同产生各种控制
信号 Yin,Zin,PCout,Add,End等;
◆ 图 6.14给出了组合逻辑控制部件,是基于时钟信号
CLK驱动的计数器来控制每个控制步的,它产生的
控制信号序列可完成各类指令需要的控制步。
? 计数器的每个计数值,对应着图 6.7和图 6.8的每一步。
图 6.14 简化的组合逻辑控制器
◆ 图 6.15是编码器结构电路的一个例子。电路实现逻辑功能:
Zin=T1+T6·ADD+T5·BR+…
◆ 图 6.16给出了 End控制信号产生电路,其逻辑功能:
End=T7·ADD+T6·BR+( T6·N+T4·N) ·BRN+…
◆ 组合逻辑控制器的设计步骤:
(1) 根据给定的 CPU数据通路和指令功能,排列出每条
指令的操作控制步序列 (微操作序列 )。
(2) 确定机器的状态周期、节拍与工作脉冲。根据指令
的功能和器件的速度,确定指令执行过程中的周期
及节拍的基本时间。
(3) 列出每个操作控制信号的逻辑表达式。
? 确定了每条指令在每一状态周期中各个节拍内所完成的操
作,也就得出了相应操作控制信号的表达式 ;
? 该表达式由指令操作码、时序状态 (周期、节拍和工作脉冲 )
以及状态条件信息(允许有空缺)等因子组成 ;
? 只须节拍电位控制的信号不用考虑脉冲。
6.2.2 PLA控制
◆ 可编程逻辑阵列( PLA)产生指令执行操作控制信号
◆ 图 6.18是一个简单的 PLA模型
?第一级为 AND阵列,水平线为输入变量,a,b,c,d可以是
指令操作码,也可以是控制步计数 (时序信号 )或标志;垂直
线为输出乘积项;
?第二级为 OR阵列,垂直线为“或”的输入端,水平线为“或
”的输出。
控制信号
a
d
c
b“IR”或“时序, 或
“标志,
“OR”阵列
“AND”阵列
图 6.18 PLA模型
4
3
2
1
F
F
F
F
dcbadbcdcabdcba1F ????
a b cdcba2F ??
F1
F3
F2
F4
控制信号
a
d
c
b“IR”或
“时序, 或
“标志,
“OR”阵列
“AND”阵列
图 6.18 PLA模型
bddcbadcab3F ??? bda b cdbc4F ???
6.3 微程序控制
6.3.1 Wilkes微程序控制
◆ Wilkes提出的微程序控制器设计方案如图 6.19
? 与组合逻辑的控制方法相比,大大减少了控制器的复
杂性和非标准化程度,从而把硬件的用量限制在狭小
范围内。
? 主要缺点是:它要比相同或相近半导体技术的硬布
线式控制器 (如 PLA方式 )慢一些。
? 当代大部分计算机采用硬布线式控制器;也有不少
计算机 (特别是 60-70年代的计算机 )采用微程序控制器。
6.3.2 基本概念
1,基本术语
? 微命令,微命令是微操作的控制信号,而微操作是微
命令的操作内容。
? 一条指令的功能是通过执行一系列操作控制步完成的;
这些控制步中的基本操作称为 微操作 。
? 微指令,可以同时执行的一组微命令组成一条微指令,
完成一个基本运算或传送功能。也将微指令称作控制
字( CW),其中每一位代表一个微命令。
? 微程序,完成指定任务的微指令序列称为微程序。一
条机器指令其功能可由一段微程序解释完成。
? 微程序控制的基本思想是把机器指令的每一操作控
制步编成一条微指令。每条机器指令对应一段微程
序。当执行机器指令时,只要从控制存储器中顺序
取出这些微指令,即可按所要求的次序产生相应的
操作控制信号。
? 微程序存储器(控制存储器),存放计算机指令系
统所对应的所有微程序的一个专门存储器。
? 图 6.20 对应于图 6.7的微程序的例子
2.微程序控制器
译 码
转移控制
控制存储器
CS
μ PC
起始和转移地
址发生器
IR
CLK
...
来自主存
状态标志
条件码
...
微命令
图 6.21 微程序控制器的 基本组织
μ IR
( 1)微程序定义了计算机的指令系统;可以借助改变
微程序存储器的内容来改变指令系统。
▲ 总结:
( 2)不经常改变微程序存储器的内容,通常用只读存
储器 ROM充当微程序存储器。
( 3)任何机器指令的执行都将多次访问控制存储器,
控制存储器的速度起着主要的作用。
3,微程序控制器
工作流程
? 微程序控制器的工
作流程就是不断地
执行取指令的微程
序和执行相应功能
指令的微程序。
取指令微程序的入口地址
μ AR
从 CS读微指令 μ IR
产生下一条微指令的地址
μ AR(μ PC)
取指令微程序完了吗?
经 PLA译码,形成本指令的微
程序入口地址 μ AR(μ PC)
执行微程序
本微程序完了码?
CPU开始执行
取出指令 IR




图 6.22 微程序控制器工作流程
6.3.3 微指令的格式与编码
◆ 微指令格式可分为两种,水平型微指令 和 垂直型微
指令 。
▲ 水平型微指令
? 能最大限度地表示微操作的并行性;
? 需要使用较长的代码,少则几十位,多则上百位;
? 较长的代码能充分利用硬件并行性所带来速度上的
潜在优势,也使微程序中所包含的微指令条数减至
最少,所以适用于要求较高速度的场合;
? 水平型微指令的码空间利用率较低,并且编制最佳
水平微程序 难度较大。
▲ 垂直型微指令
? 采用短格式,一条微指令只能控制一、二个微操作;
? 设有微操作码字段,由微操作码确定微指令的功能;
? 包含的地址码用来指定微操作数所在的寄存器地址
或微指令转移地址,也可表示立即数或标志码等。
? 用垂直型微指令编写的微程序称 垂直微程序 ;
? 垂直微程序不着重于微操作的并行性,并以此换取
较短的微指令长度和较高的码空间利用率;
? 编写垂直微程序的方法和传统的程序设计方法更为
接近;
? 垂直型微指令面向算法描述而水平型微指令面向处
理机内部控制逻辑的描述。
◆ 水平型微指令编码设计
1)直接表示法
▲ 在微指令的微命令字段中,每个二进制位表示一个
微命令。
? 这种方法直观、不必译码、控制电路简单、速度快;
? 通常微命令的个数很多,使得微指令字长多达几百
位,实现上非常困难;
? 只有极个别的计算机采用这种直接表示法。
▲ 图 6.20是 直接表示法 编码的例子
2)字段直接编码法
? 微指令中相容的微命令分配在不同字段;
? 微指令中相斥的微命令组合在一起,编成一个字段;
? 微命令字段中所包含的小字段数目,是在一条微指
令中最多可同时发出微命令的个数;
? 可以把微指令中的微命令长度压缩到直接表示法的
二分之一到三分之一。
? 只要求少量级数不多的译码器,对微指令的执行速
度影响不大;
? 它为多数微程序控制的计算机所采用。
3)字段间接编码法
? 某一小字段可以表示多个微命令组,到底代表哪一组
微命令,则由另一小字段的二进制码确定。
4)水平型微指令的直接编码和分段编码的差别
▲ 直接编码 (图 6.20)
? 通常所需要的控制信号数量非常大,这种采用一位表
示一个控制信号的方法将导致微指令长度很长;
? 造成控制存储器的空间极大地浪费。
▲ 分段编码 (图 6.24)
? 控制信号分组,将那些互斥的信号分在同一组,而相
容信号分在不同组 ;
? 在一条微指令中每一组只能有一个微操作信号有效 ;
图 6.24
6.3.4 微指令地址的生成
◆ 获得下面将要执行的微指令地址有如下三种情况:
? 由指令寄存器 IR确定
?下一顺序地址
? 转移
必须根据当前微指令、条件标志和指令寄存器内容
,产生下一微指令的控制存储器地址。
◆ 微指令地址生成, 的任务是如何来得到下一条微指
令的地址。
◆ 常见的微指令地址生成技术有计数器法和下地址字
段法两种
1)计数器法
? 只按顺序执行微指令,用图 6.21微程序控制器的结构;
由 μPC负责生成下一微指令的地址 (μPC+ 1→μPC) ;
? 转移分支很多时,通常采用 PLA可编程逻辑阵列来实
现;
? 微程序的转移由专门的“转移微指令”来实现,通过
微地址发生器以及相应的条件码和标志,生成转移地
址送 μPC;
? 将每条机器指令的操作码通过 PLA翻译成对应的微程
序入口地址,这时微指令可写为,μPC← ( PLA)。
2)下址字段法
? 在微指令中设置一个专门的地址字段用以指出下一
条微指令的地址;
? 优点 是消除了专门的转移微指令,而且在给微指令
分配地址时简直没有什么限制;
? 缺点 是增加了微指令的长度,有时还会对控制存储
器的设计带来影响。
? 以 μPC为基础所建立的地址生成技术最大的 缺点 在于
当存在着较大量的转移微指令时,这将严重影响计算
机的工作速度。
译 码
下址
控制存储器
CS
μ AR
微地址译码
IR
来自主存
状态标志
条件码
...
微命令
图6, 2 5 采用下址字段法的微程序控制器组织
μ IR
6.3.5微程序设计举例
1,VAX-11/780微程序设计
▲ 美国 DEC公司 1978年推出的
超级小型计算机,采用典型
的水平型微指令格式。
▲ 包括三部分:只读 PCS、可写
WDCS和 WCS
? PCS是 CPU的主控存,存放
VAX-11/780指令系统的基本
微程序,容量为 4K× 99位;
? WCS容量为 4K× 99位,其中
靠近 PCS的 1K× 99位用于诊
断称可写诊断控制存储器
WDCS;存放诊断微程序。
3 2 位 3 2 位 3 2 位 3位
P C S ( 4 K )
微指令信息值
W C S ( 3 K )
W D C S ( 1 K )
奇偶校验位
图6, 2 6 控制存储器组织
▲ VAX-11/780微指令格式(图 6.27)
? 采用水平型微指令格式,微指令的编码主要采用字
段直接编译法,少量用间接编译法。
U S M XU E B M XU C C KU S C KU F E KU V A KU M S CU I E K U J M P
U K M X U S I / U A C M UQK U S G N U A D S U M C T UFS U S P O
U P C K
U I B C
31 2930 2326 2425 1922 20 18 01217 16 15 13
515455575863
92
4346474850 42
91
41 35 34 32
95
U A M XU B M XU S H FUDK
828487 8588 7677788081
U S U BU R M XUDT U A L UU A C FU B E N
70717279 646566
图6, 2 7 V A X - 1 1 / 7 8 0 微指令格式
U E A L U
U P C K
? 整个控制字除下址字段 (UJMP)和校验位外,余下 83
位分成 32个字段,表示了 300多个微命令。
▲ 整个微指令字分成三部分:
1)顺序控制部分,
13位下址字段( UJMP);
子程序控制字段 (USUB);
条件转移控制字段 (UBEN);
微程序执行顺序的控制采用下址字段法 ;
2) PU数据通路控制部分:
? 指数控制部分:
UEALU 指数加法器控制字段;
USMX 位计数器输入选择字段;
UEBMX 指数加法器 B输入端选择字段;
USCK 移位计数器控制字段;
UFEK 浮点指数寄存器控制字段;
? 运算控制部分:
UALU 加法器运算操作控制字段;
UKMX 常数输入选择字段;
UAMX 加法器 A输入端选择字段;
UBMX 加法器 B输入端选择字段;
USHF 移位器操作控制字段;
USPO 通用寄存器组存取控制字段 ;
? 地址控制部分:
UPCK 程序计数器输入选择与操作控制字段;
UIBC 指令地址缓冲器控制字段;
UVAK 虚拟地址寄存器存取控制字段;
? 数据控制部分:
URMX D,Q寄存器输入选择字段;
UQK Q寄存器操作和输入选择字段;
USI 移位器输入控制字段;
UDK D寄存器操作和输入选择、数据排列及移位矩阵控制字段
3)其它控制部分:
UADS 指令地址选择控制字段;
UACM 浮点加速器等杂项控制字段;
UDT 数据类型选择字段;
USGN 操作数符号选择字段;
UCCK 条件码字段;
UMCT 存储器控制字段;
UACF 浮点加速器控制字段;
UIEK INTER AND EXCED ACK;
RFS 功能选择字段。
?混杂控制:
UMSC 混杂字段,其中部分码点用于指数加法器 A输入端
选择及指数部分状态寄存器控制;部分码点用于通
用寄存器修改记录的存取控制;
UCID CPU内部总线控制字段;
? VAX-11/780微指令控制字并行操作能力强,效率高,灵活性
强、执行速度快。
2,LSI-11 微程序设计
▲ PDP-11是 DEC公司生产的小型机系列,LSI-11是 PDP-11系
列单板处理器,采用典型的垂直型微指令格式 (图 6.29)。
▲ LSI-11的 CPU由三组芯片组成:数据片,控制片和微程序存
储器;微指令总线 MIB(22位数据线和 11位微地址线 )把三者
联系在一起。
微程序R O M
( 5 1 2 ×2 2 ) C P 1 6 1 3 B
C P 1 6 1 3 B
C P 1 6 1 3 B
C P 1 6 1 3 B
数据片 C P 1 6 1 1 B
控制片 C P 1 6 2 1 B
存储器 I / 0
16
8
C o n t r o l B u s
微指令总线( M I B )
图6, 2 8 结构框图
?数据片:包括运算部件 ALU(8位 )、寄存器堆 (26个 8位寄存器 );
寄存器堆中有 10个寄存器可由微指令,A”和,B”字段直接寻址,
作为源或目标寄存器 ;也可以作为 IR、程序状态字 PSW和主存地
址寄存器 MAR等;另外 16个寄存器可以作为 8个 16位寄存器用。
?微程序只读存储器:由 4片 CP1613B(每片 512× 22位 )ROM组
成,容量共 2K× 22位 。其中 2片存放仿真 PDP-11/40的微程序,
1片为乘 /除、浮点扩展等算术指令,另一片为用户可改写的仿
真微程序。
?控制片:提供微地址序列,产生控制信号 ; 11位微地址计数
器能自动增量,微程序一般情况下顺序执行。在遇到新指令
→ IR、子程序调用、中断测试或转移微指令等情况下,新的
转移地址送微地址计数器。
特殊功能 编码的微操作
操作码 转移地址
操作码 测试码 转移地址
操作码 立即数 A 寄存器
操作码 B 寄存器 A 寄存器
4 11 16
转换 装入返回寄存器
( a ) 全部L S I - 1 1 微指令格式
5 11
无条件转移
条件转移
立即数- R 型指令
R - R 型指令
4
8 4 4
84
4 8
( b ) L S I - 1 1 微指令编码部分格式
图6, 2 9 L S I - 1 1 微指令格式
4
▲L
SI
-
11







6.
29

▲ LSI-11微指令按其功能分有以下四类:
? 算术操作指令, ADD,TEST,INC,COND(条
件 )INC/DEC,SUB,Compare… ;
? 逻辑操作指令, AND,TEST,OR,XOR,BIT
Clear,Not… ;
? 一般操作指令, MOV,COND MOV,JUMB、
RETURN,COND JUMP…
? I/O操作指令, INPUT,OUTPUT,Read,Write…
6.3.6 微程序应用
◆ 微程序控制技术从 60年代以来在许多方面得到应用
▲ 计算机实现
▲ 仿真( emulation):
?通过使用微程序在一个机器执行原本为另一类机器
所编写的程序的过程;
?普遍用途在于不同种机器间的 软件移植 。
▲ 操作系统支持
? 微程序在操作系统支持方面主要用来实现部分原语 ;
这种技术能 简化操作系统的实现并能改善其性能 。
▲ 专用设备实现
? 微程序在嵌入式系统的专用设备的实现上有不少用
途 ;将一些软件功能用微程序(固件)实现可增强
系统的性能 。
▲ 高级语言支持
? 将高级语言中常用的一些函数和数据类型直接以固
件实现,将 更利于编译优化,这是微程序应用另一
富有成果的领域。
▲ 微诊断
? 微程序能用于支持监督、确定、隔离和修复系统错
误,这被称为 微诊断 ( micro-diagnostics)。此办法
允许系统测出故障, 重新配置自己 。例如当一个高速
乘法器无效时,一个微程序式乘法器可马上接替。
▲ 用户加工
?, 用户加工,指的是提供一种 RAM控制存储器,
让用户来编写微程序。
?此时一般提供给用户一种很垂直化的、易使用的微
指令集,允许用户“裁剪”机器功能,以适合某些
特定要求的应用。
第 6章完