计算机组成原理与汇编语言 (组成原理部分) 2000 级

Post on 04-Jan-2016

129 views 2 download

description

计算机组成原理与汇编语言 (组成原理部分) 2000 级. 北航计算机学院 刘旭东 Tel : 82316285 , 82317634 Mail : liuxd@buaa.edu.cn. 第二部分 存储系统. 存储系统概述 主存储器的组成与工作原理 高速缓冲存储器的结构与工作原理 辅助存储器(磁表面存储器) 虚拟存储系统. 存储系统概述 主存储器的组成与工作原理 高速缓冲存储器的结构与工作原理 辅助存储器(磁表面存储器) 虚拟存储系统. 1.1 存储系统概述. 存储器分类 按介质分类: 半导体存储器 磁介质存储器 光盘存储器 - PowerPoint PPT Presentation

Transcript of 计算机组成原理与汇编语言 (组成原理部分) 2000 级

计算机组成原理与汇编语言(组成原理部分)

2000级

北航计算机学院 刘旭东Tel : 82316285, 82317634

Mail: liuxd@buaa.edu.cn

第二部分 存储系统

一.存储系统概述二.主存储器的组成与工作原理三.高速缓冲存储器的结构与工作原理四.辅助存储器(磁表面存储器)五.虚拟存储系统

一.存储系统概述二.主存储器的组成与工作原理三.高速缓冲存储器的结构与工作原理四.辅助存储器(磁表面存储器)五.虚拟存储系统

1.1 存储系统概述 存储器分类

按介质分类: 半导体存储器 磁介质存储器 光盘存储器

按访问方式分类: 随机访问存储器 ( Random Access Memory—RAM) 只读存储器 ( Read Only Memory—ROM) 顺序访问存储器 ( Tape) 直接访问存储器 ( Disk) 联想存储器 (某些 Cache)

按功能分类: 高速缓冲存储器 主存储器 辅助存储器 控制存储器

1.1 存储系统概述

存储器的性能指标 访问时间( Access Time):

随机访问存储器:访问时间指读或写操作所用时间,即从给定地址到存储器完成读或写操作所需时间。

其他类型:指将读写机构定位到目标位置所需的时间。 存储周期( Cycle Time):

仅对 RAM 而言,指两次访问存储器单元之间的最小时间间隔。一般均大于访问时间。

带宽( Bandwidth)/数据传输率( Transfer Rate) 一般的随机访问存储器: 1/ Cycle Time;

其他类型: TN=TA+N/R

TN :读写 N Bits 所需的平均时间

TA :访问时间

N:N Bits

R :存储部件的数据传输率 ( bits /s)

1.1 存储系统概述

存储器的层次 / 性能特征

Control

Datapath

SecondaryStorage(Disk)

Processor

Registers

MainMemory(DRAM)

SecondLevelCache

(SRAM)

On

-Ch

ipC

ache

1s 10,000,000s

(10s ms)

Speed (ns): 10s 100s

100s GsSize (bytes): Ks Ms

TertiaryStorage(Tape)

10,000,000,000s (10s sec)

Ts

1.1 存储系统概述

存储器的层次结构

Reg.

Cache

Main memory

Disk Cache

Magnetic Disk

Magnetic Tape Optical Disk

二级存储系统指:高速缓冲存储器( Cache)+主存储器

1.2 半导体存储器随机访问存储器( RAM)

SRAM( Static RAM ):静态存储器,相对动态而言,集成度低,但不必刷新。

DRAM( Dynamic RAM ):动态存储器,需要刷新,相对而言,集成度高。

FPM ( Fast Page Mode ) DRAM :串行访问方式,传统的 DRAM 类型( RAS,CAS 选择型)。

EDO ( Extended Data Out ) DRAM :可并行访问的 DRAM 类型(实际上是一种简单的 Pipelining 型存储器类型。上一个地址访问结束前可以开 展 下 一 个 地 址 访 问 , 提 高 了 整 个 存 储 器 的 BandWidth )。 FPM DRAM、 EDO DRAM 均属于非同步型 DRAM。

SDRAM ( Synchronous DRAM ):同步 DRAM (与 CPU 保持同步) , 由系统时钟驱动的 DRAM ,在存储器完成存取操作期间, CPU 可以进行其他工作,从而提高了系统的性能。而非同步型 DRAM ,在存取操作期间, CPU 只能处于等待状态。

DDR( Double Data Rate) DRAM

1.2 半导体存储器

只读存储器( ROM) 固定掩膜( Masks) ROM PROM( Programmable ROM):一次性可编程 EPROM( Erasable PROM):可擦除可编程(紫

外线擦除) EEPROM( Electrically Erasable PROM):电擦

除(字节一级) Flash Memory :电擦除( Block Level)

一.存储系统概述二.主存储器的组成与工作原理三.高速缓冲存储器的结构与工作原理四.辅助存储器(磁表面存储器)五.虚拟存储系统

2.1 存储单元电路

基本要求 具有两种稳定(或半稳定)状态,用来表示二

进制的 1 和 0 ; 可以实现状态写入(或设置); 可以实现状态读去(或感知)。

2.1 存储单元电路SRAM 存储单元电路(六管单元电路)

字选线

T1 T2

T3 T4T5 T6

D D

Vcc

T1, T2 :工作管;

T3, T4 :负载管;

T5, T6 :门控管;

稳定状态: T1 截止, T2 导通,表示 1

T2 截止, T1 导通,表示 0

保持状态:字选线低电平, T5 和 T6 截止,内部保持稳定状态。

读出:字选线高电平, T5和 T6 导通, D 线读出内部电平(状态)。

写 1: D 线高电平, D 线低电平,字选线高电平, T5 和 T6 导通, T1截止, T2 导通,写入 1 。

写 0: D 线低电平, D 线高电平,字选线高电平, T5 和 T6 导通, T2截止, T1 导通,写入 0 。

2.1 存储单元电路DRAM 存储单元电路(单管单元电路)

Cs 电容 <<Cd 电容 C 上有电荷表示‘ 1’ ,无电荷表示

‘ 0’ 保持状态:字选线低电平, T 截止,

内部保持稳定状态。但电容有漏电流,状态不能长久保持 ,需要不断刷新(再生)。

读出时: D 线预充电到 Vpre=2.5V ,字选线高电平, T 导通,若单元电路保存信息是 1, Vcs=3.5V ,电流方向从单元电路内部向外;若单元电路保存信息是 0, Vcs=0.0V ,电流方向从外向单元电路内部;因此,根据数据线上电流的方向可判断单元电路保存的是 1 还是 0。

读出过程实际上是 Cs与 Cd 上的电荷重新分配的过程,也是 Cs与Cd 上的电压重新调整的过程。 Cd 上的电压,即是 D 线上的电压。

写入时: D 线加高电平( 1 )或低电平( 0 ),对 C 充电或放电。

T

Cs

W字选线 D

Cd

2.1 存储单元电路DRAM 单管单元电路的工作特征

T

Cs

W字选线 D

Cd

左右。%),一般为%到不会太大(

大一两个数量级,所以要比由于

化量线上读出过程前后的变:原来的电压线在读出调整后的电压

100mV101

)/()(

DV

:V

D :

'

'

V

CC

CCCVVVVV

C

V

sd

dssprecspred

scs

d

mvpfpfpfvvV

mvpfpfpfvvV

VVCC

cscs

preds

49)501/(1)5.20()0(

6.19)501/(1)5.25.3()1(

0VV,03.5V,V,1

5.250pf 1pf

则:时存储时存储

=,,假定

D 线上的电压在读出过程中的变化量实例计算:

2.1 存储单元电路DRAM 存储单元电路的信号刷新问题

1. (不考虑 Sense Amplifier 的作用的前题下)读出操作是一种破坏性操作,读 1 时, Cs 在放电;读 0 时, Cs 在充电;所以读出操作后,原保存在 Cs 上的数据(电荷)被破坏,应该立即进行恢复(重写或刷新)。

2. 在保持状态下, T 管截止, Cs 与外部隔开,但 Cs 两级间存在漏电流,所以, Cs 上的电荷也会出现变化,必须在一个时间内重写数据,这个时间称为单元电路的刷新周期,一般为 4ms、 8ms。

2. 刷新由 Sense Amplifier 在读出过程中同时实现刷新。在 D 线上增加了 Sense Amplifier后读过程实际上就是一次刷新过程。事实上, DRAM 的刷新就是通过读操作来实现的。

T

Cs

W字选线 D

Cd

1. 由于读出过程 D 线电压变化量较小,需要对变化量进行放大才能得到有效的数据,所以单管存储单元电路中 D 线上必须增加放大器(Sense Amplifier)。

2.1 存储单元电路DRAM 单管单元电路

D 线上的电压在读出过程中的变化情况

Vd

t

Vpre

V(1)

V(0)

Sense Amplifier Activate

Word line Activate

V(1)

V(0)

预充电阶段

读出阶段读出阶段结论: DRAM的读过程就是

刷新过程

T

Cs

W字选线 D

Cd

2.1 存储单元电路符号表示

位元

w 选线

DD

2.2 存储芯片逻辑存储芯片结构(一维地址结构)

1024* 1 : 1024 个字单元,每个字单元 1 个二进制位。

译码电路

D

W 0W 1W 2

W 1023

A 0A 1A 2

A 9

存储单元电路

存储器地址

字选择线

2.2 存储芯片逻辑 二维地址结构( SRAM): 4096* 4 : 4096 个字,每个字 4 位。

X译码

Y译码

A 0

A 1

A 2

A 3

A 4

A 5

A 6

W 0

W 1

W 2

W 127

D 0

D 1

D 2

D 3

A 7 A 8 A 9 A 10 A 11

Y 0 Y 1 Y 31

行地址

列地址

128 X 128 存储单元矩阵行地址数与列地址数不等

X译码

Y译码

A 0

A 1

A 2

A 3

A 4

A 5

A 6

W 0

W 1

W 2

W 63

D 0

D 1

D 2

D 3

A 7 A 8 A 9 A 10 A 11

Y 0 Y 1 Y 63

SenseAmp

SenseAmp

SenseAmp

SenseAmp

SenseAmp

SenseAmp

SenseAmp

预充电 预充电 预充电 预充电 预充电 预充电 预充电

2.2 存储芯片逻辑二维地址结构( DRAM): 4096* 4 : 4096 个字,每个字 4 位

行地址

列地址

64 X 256 存储单元矩阵行地址数与列地址数相等

2.2 存储芯片逻辑 SRAM 2114(1024*4)芯片结构

行选择

列选择

A 0

A 1

A 2

A 3

A 4

A 5

A 6

W 0

W 1

W 2

W 63

D 0

D 1

D 2

D 3

A 7 A 8 A 9 A 10

64*64 存储单元矩阵

列I/O电路数据输入

数据输入

控制逻辑

CS

WE

W 62

片选信号

2.2 存储芯片逻辑

DRAM 4M*4 DRAM芯片结构 ( 内部包含刷新电路 )

RefreshCounter

MUX

Memory Array2048 x (2048 x 4)

Sense Ampliferand I/O gate

Column Decoder

Data InputBuffer

Data OutputBuffer

RowAddressBuffer

ColumnAddressBuffer

RowDecoder

Timing and Control

RAS CAS WE OE

A0A1...

A10

D0D1D2D3

Row Access Strobe

Column Access Strobe

2.3 RAM读写时序Intel 2114 SRAM 的读时序

TRC :读周期

TA :读出时间

Tco :从片选有效到输出数据稳定所需时间

Tcx :片选有效到输出有效(不一定稳定)所需的时间

TOTD :片选无效到输出数据维持的时间

TOHA :地址改变后初出数据的维持时间

Add

Data

CS

TRC

TA

TCX

TOTD

TOHA

TCO

存储器芯片结构总结SRAM普遍采用全地址线方式,即芯片地址管脚安排了内部所需要的全部行地址和列地址。芯片采用片选信号 CS。

DRAM为压缩芯片面积,减少管脚数目,普遍采用地址线复用方式,即芯片地址管脚只安排内部所需要的地址的一半,行地址线与列地址线复用,内部设置行地址和列地址锁存器,分时输入行地址和列地址。采用行选信号 RAS 和列选信号 CAS 分别控制行地址和列地址的输入, RAS 同时作为芯片的片选信号。

2.4 存储器芯片的扩展位扩展

存储器芯片提供的字空间满足整个存储空间的字空间要求,但存储器芯片的位空间不能满足要求。

基本思路:确定每个芯片的地址管脚数、数据管脚数。 整个存储空间与存储芯片的地址空间一致,所以所需的地址总

线也一样。单数据总线数量不一样。计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。

所有芯片的地址管脚全部连接到地址总线对应的地址线上。 同一字空间的存储芯片 CS 信号连在一起。 不同位空间的数据线连接到对应的数据总线上。 所有芯片的 CS逻辑连接在一起。 统一读写控制。

2.4 存储器芯片的扩展例 : 1K 4的 SRAM 存储芯片构造 1K 8 的存储器

1K X

4

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

1K X

4

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

D3D2D1D0

Da

ta B

us

A0A1A2A3A4A5A6A7A8A9

Address Bus

WE

D7D6D5D4

2.4 存储器芯片的扩展字扩展

存储器芯片提供的字空间不能满足整个存储空间的字空间要求,但存储器芯片的位空间满足要求。

基本思路:确定每个芯片的地址管脚数、数据管脚数。确定整个存储空间所需的地址总线和数据总线的数量。计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。

所有芯片的地址管脚全部连接到地址总线对应的地址线上。 同一字空间的存储芯片 CS 信号连在一起。 同一位空间的数据线连在一起,并连接到对应的数据总线上。 根据每个存储器芯片的地址空间范围设计存储器芯片所需要的片选信号逻辑, CS逻辑电路的输入一定是地址总线中没有连接到芯片的地址管脚上的哪部分地址线。

统一读写控制。

2.4 存储器芯片的扩展例: 1Kx8 SRAM 存储芯片构成 4Kx8 的存储器

1K X

8

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

D3D2D1D0

Da

ta B

us

A0A1A2A3A4A5A6A7A8A9

Address Bus

WE

D4D5

D6

D7

D7D6D5D4

1K X

8

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

D4D5

D6

D7

1K X

8

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

D4D5

D6

D7

1K X

8

CS

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

D0D1

D2

D3

WE

D4D5

D6

D7

2-4译码器

A10A11

CS0CS1CS2CS3

2.4 存储器芯片的扩展混合扩展

存储器芯片提供的字空间不能满足整个存储空间的字空间要求,位空间也不能满足要求。

基本思路:确定每个芯片的地址管脚数、数据管脚数。确定整个存储空间所需的地址总线和数据总线的数量。计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。

所有芯片的地址管脚全部连接到地址总线对应的地址线上。 同一字空间的存储芯片 CS 信号连在一起。 同一位空间的数据线连在一起,并连接到对应的数据总线上。 根据每个存储器芯片的地址空间范围设计存储器芯片所需要的片选信号逻辑, CS逻辑电路的输入一定是地址总线中没有连接到芯片的地址管脚上的哪部分地址线。

统一读写控制。

2.4 存储器芯片的扩展例: 1Kx4 SRAM 存储芯片构成 16Kx8 的存储器

1Kx4 1Kx4

1Kx4 1Kx4

1Kx4 1Kx4

译码器

CS CS

CS CS

CSCS WE WE

WEWE

WE WE

A0--A9

A10

A11

A12

A13

CS0

CS1

CS15

D0--D3 D4--D7

WE

2.4 存储器芯片的扩展DRAM扩展的特殊性

DRAM芯片地址的特殊性问题:行地址与列地址复用,行地址与列地址的定时与选通问题。 CPU (或总线)提供的是完全的地址,如何将全部地址分成行地址和列地址?如何产生行选通信号 RAS 和列选通信号 CAS?

DRAM芯片的片选问题:行地址选通信号 RAS 作为片选信号。

DRAM芯片扩展是刷新的问题必须:刷新由谁来完成,谁提供刷新地址,刷新的控制,刷新的定时,刷新与 CPU 访问内存时的冲突策略等问题。

解决的办法在 CPU 与存储器之间设计专用的 DRAM 存储器控制电路,完

成刷新控制、刷新定时、地址划分与选通信号的产生与定时等。

由 DRAM芯片控制器来实现上述定时、控制与刷新等操作。

2.4 存储器芯片的扩展DRAM 控制器

RefreshCounter

MUX

RefreshTiming

RAS

CAS

WE

仲裁电路

定时电路

CPUDRAM

MBR

AddAdd

WE

Data

DataDRAM Controler

2.4 存储器芯片的扩展DRAM 存储芯片的扩展

DRAM芯片: 41256A8( 256K X 8 )芯片 4 个,组成 1MByte 存储器,同时要提供 16 位字访问方式和 8 位字节方式方式。存储器按字节编址。

DRAM 控制器: Intel 82C08, 18 位地址多路复用到 256K 存储器件的 9 个地址,它可控制两个存储体( BS 信号决定),所以可以实现 512K 个地址空间。

按字节访问时最低位地址 A0 有意义,按 16 位字访问时,最低位地址 A0没有意义。

CPU (或总线)提供 BHE 信号,表明是字节访问方式还是 16 位字访问方式。

2.4 存储器芯片的扩展

Fro

m A

dd

res

s B

us

256K X

8

CAS

A0A1A2A3A4A5A6A7A8

RAS

D0D1D2D3

WE

D4D5D6D7

256K X

8

CAS

A0A1A2A3A4A5A6A7A8

RAS

D0D1D2D3

WE

D4D5D6D7

256K X

8

CAS

A0A1A2A3A4A5A6A7A8

RAS

D0D1D2D3

WE

D4D5D6D7

256K X

8

CAS

A0A1A2A3A4A5A6A7A8

RAS

D0D1D2D3

WE

D4D5D6D7

DR

AM

CO

NT

RO

LER

AL0AL1AL2AL3AL4AL5AL6AL7AL8

RAS0

WE

AH0AH1AH2AH3AH4AH5AH6AH7AH8

AO0AO1AO2AO3AO4AO5AO6AO7AO8

RDWECLK

RAS1CAS0

CAS1

PE

A1A2A3A4A5A6A7A8A9

A10A11A12A13A14A15A16A17A18

RDWECLK

读写控制BHE

A0

Data BusD0~D7D8~D15

A19 BS

2.5 DRAM的刷新DRAM 的刷新

刷新操作:读操作;按行刷新、所有芯片同时进行 ;刷新操作与 CPU 访问内存分开进行; 刷新周期: 2ms, 4ms, 6ms, 16ms; 刷新地址及刷新地址计数器

DRAM 的刷新方式集中刷新 :将刷新周期分成两部分,在一个时间段内刷新存储器所有

行,此时 CPU停止访问内存,另一个时间段 CPU 访问内存,刷新电路不工作。

分散隐含刷新: CPU 与刷新电路交替访问内存,一个存储周期刷新 1行,下一个存储周期刷新另一行,直至最后 1 行后,又开始刷新第 1行。同 1 行两次被刷新的时间间隔可能小于存储芯片的刷新周期。

分布式刷新:保证在一个刷新周期内将存储芯片内的所有行刷新一遍,可能等时间间距,也可能不等。

2.5 DRAM的刷新刷新方式

集中式刷新周期

cpu访内

cpu访内

cpu访内

cpu访内

cpu访内

刷新1第 行

刷新2第 行

刷新最1后 行

cpu访内

刷新1第 行

cpu访内

刷新2第 行

cpu访内

刷新3第 行

cpu访内

刷新最1后 行

分散式刷新周期

cpu访内

cpu访内

刷新1第 行

cpu访内

cpu访内

cpu访内

刷新2第 行

刷新最1后 行

cpu访内

异步(分布)式刷新周期

2.6 ROM(只读存储器)固定掩膜 ROM 单元电路

WL

BL

WL

BL

1

0

Diode ROM

WL

BL

WL

BL

1

0

Bipolar ROM

VDD

WL

BL

WL

BL

1

0

MOS ROM

GND

含二级管的电路表示 1 ,不含电路表示 0

含三级管的电路表示 1 ,不含电路表示 0

含MOS 管的电路表示 0 ,不含电路表示 1

2.6 ROM(只读存储器)可编程的 PROM 单元电路

WL

BL

V

PROM

出厂时所有位均为 1 。编程时(写入数据),对写 0 的

单元加入特定的大电流,熔丝被烧断,变为另一种表示 0 的状态,且不可恢复。

工作时,加入正常电路。

2.6 ROM(只读存储器)紫外线擦除可编程的 EPROM 单元电路

WL

BL

Fl oati ng gate MOS EPROM

FAMOS

出厂时所有位均为1, FAMOS (栅极浮动)管 G极无电荷,处于截止状态。

编程时(写入数据),对写 0 的单元加入特定的电压, FAMOS上的 G极与 D极被瞬时击穿,大量电子聚集到 G极上,撤销编程电压后, G极上的聚集的电子不能越过隔离层, FAMOS 导通,表示 0 。

工作时,加入正常电路, FAMOS 的状态维持不变。

擦除时,用紫外线照射, FAMOS聚集在 G极上的电子获得能量,越过隔离层泄漏, FAMOS恢复截止状态。

2.6 ROM(只读存储器)ROM芯片的结构

WL3

BL0

V DD

WL2

WL1

WL0 BL1 BL2 BL3

下拉电阻

一.存储系统概述二.主存储器的组成与工作原理三.高速缓冲存储器的结构与工作原理四.辅助存储器(磁表面存储器)五.虚拟存储系统

3.1 高速缓冲存储器 (CACHE)的结构Cache产生的前提

单级存储系统中 ,主存的存储速度与 CPU 的速度不匹配,造成CPU资源的浪费;

程序运行时访问内存在一定的时间内存在明显的局部性; 存在比主存普遍采用的 DRAM 速度更快的存储单元电路;在 CPU 与内存之间设置一个高速的容量相对小的存储机构,把

CPU正在执行的指令或数据附近一部分主存内容取来保存在这个存储机构中,供 CPU使用。在一段时间内 CPU 可以减少访问内存的频度,提高运行效率。这个存储机构就是高速缓冲存储器( CACHE)。

CPU Cache Main MemoryWord Block

3.1 高速缓冲存储器 (CACHE)的结构Cache 要解决的问题

提供快速访问的能力;具有存取数据的能力和与主存交换数据的能力; 由于 CPU总是以主存地址访问存储器,所以 CACHE应具备判断 CPU当前要访问的内容是否在 CACHE中的能力,并具有将主存地址转换成 CACHE 地址的能力,或者具有根据主存地址在 CACHE中访问到相应数据单元的能力。

具备在 CACHE 容量不够的前提下替换 CACHE中的内容的决策机制。

3.1 高速缓冲存储器 (CACHE)的结构Cache 的基本结构

存储机构:保存数据,存取数据,一般采用 SRAM 构成。以Block (若干字)为单位;

地址机构:地址比较机制,地址转换机制,地址标示( Tag),一个 Block 具有一个 Tag( 实际上可以是一个寄存器 );

替换机制:记录 Block 的使用情况,替换策略;

Block

Block

Block

Block

Tag

Tag

Tag

Tag

Cache 的基本结构

Block

Block

Main

Memory

3.1 高速缓冲存储器 (CACHE)的原理Cache 的有关术语

数据块( Block): CACHE 与主存的基本划分单位,也是主存与CACHE 一次交换数据的最小单位,由多个字节(字)组成,取决与主存一次读写操作所能完成的数据字节数。也表明主存于CACHE 之间局部总线的宽度。

标记( Tag):地址标记, CACHE每一 Block 具有一个唯一的标记,用来指明该 Block中的数据属于主存中哪个数据 Block 的副本。

组 (Set) :若干块 (Block) 构成一个组,地址比较一般能在组内各块间同时进行。

路 (Way): Cache 相关联的等级,每一路具有独立的地址比较机构,各路地址比较能同时进行(一般与组结合) ,路数即指一组内的块数。

命中: CPU 要访问的数据在 CACHE中。 失效: CPU 要访问的数据不在 CACHE中。

3.2 CACHE的工作原理Cache 的读操作

开始

CPU接收来自 的存储器地址

Cache中包含?该数据块吗

从主存中读取数据

Cache在中分配一数据块

CPU当前数据交给

Cache从 中读取数CPU据交

结束

No

Yes

从主存读取当前Cache数据块到

3.3 CACHE与主存之间的映射全相联映射( Associative Mapping)

主存分为若干 Block, Cache 按同样大小分成若干 Block, Cache中的Block 数目显然比主存的 Block 数少得多。

主存中的某一 Block 可以映射到 Cache中的任意一 Blcok。

Block 0

Block 1

Block 0

Block 1

Block 2

Block 2

Block i

Block 2 -1c

Block 2 -1m

Tag Cache

Main Memory

3.3 CACHE与主存之间的映射

Block0

Block1

Blockn-1

Tag Data

Block Number Offset

比较

Memory Address

Hit

CACHE

全相联映射的

Cache组织

3.3 CACHE与主存之间的映射全相联映射的地址

主存的地址格式: Block Number Offset

Cache的 Tag 内容:主存中与该 Cache 数据块对应的数据块的块地址。

全相联映射举例主存: 16M BytesCache: 64K BytesBlock: 8 Bytes

解答主存共分为: 2M Blocks主存地址: 24为,其中高 21 位为块地址,低 3 位为块内地址(块内偏移

)Cache共分为: 8K BlocksCache的 Tag应该为 21 位。

3.3 CACHE与主存之间的映射组相联映射( Set Associative Mapping)

映射关系: Cache 分成 K 组,每组分成 L 块;主存的块 J 以下列原则映射到 Cache 的组 I 中的任何一块。

I = J mod K 实际上主存与 Cache都分成 K 组,主存每一组内的块数与

Cache 一组内的块数不一致 , 主存组 M 内的某一块只能映射到Cache组M 内 , 但可以是组 M 内的任意一块 .

Block 0 Block k

Block k-1

Block 1 Block k+1

Block 2k-1

Tag

Main Memory

Tag

Set 0

Set 1

Set k

Block 0

Block k-1

Block 1

Block k

Block k+1

Block 2k-1

Block (m-1)k

Block (m-1)k+1

Block mk-1

Cache

3.3 CACHE与主存之间的映射

Block 0

Block 1

Block L

Set 0

Tag Data

Block # of Set Offset

比较

Memory Address

Hit

CACHE

Block 0

Block 1

Block L

Set 1

Set #

组相联映射的

Cache组织

3.3 CACHE与主存之间的映射组相联映射

主存的地址格式:Cache的 Tag 内容:主存中与该 Cache 数据块对应的数据块的组内块地址

组内块地址 块内偏移组地址

组相联映射举例主存: 16M BytesCache: 64K BytesBlock: 8 BytesSet : 2K SetsWay : 4 Ways

解答主存 : 2M Blocks, 2K Sets, 1K Bolcks/SetCache: 8K Blocks, 2K Sets, 4 Blocks/Set 主存地址: 24为,其中高 10 位为组内块地址,中间 11 位为组地址,低

3 位为块内地址Cache的 Tag应该为 10 位。

3.3 CACHE与主存之间的映射直接映射( Direct Mapping)

主存中的某一块 J 映射到 Cache中的固定块 K , K = J Mod M , 其中M是 Cache包含的块数。

实际上是将主存按 Cache 的大小分区,一个区内的各块分别与 Cache 的对应各块映射。

Block 0

Block 1

Block 0

Block 1Tag Cache

Main Memory

Block 2 -1c

Block 2 -1c

Block 2c

Block 2 +1c

Block 2 -1

C+1

Block 2C+1

Block 2 -1m

区0

区1

3.3 CACHE与主存之间的映射

Block0

Block1

Blockn-1

Tag Data

Sec # Offset

比较

Memory Address

Hit

Bl ock # CACHE

直接映射的

Cache组织

3.3 CACHE与主存之间的映射直接映射

主存的地址格式:

Cache的 Tag 内容:主存中与该 Cache 数据块对应的数据块的组内块地址。

区地址 块内偏移区内块地址

直接联映射举例主存: 16M BytesCache: 64K BytesBlock: 8 Bytes

解答主存 : 2M Blocks, 分成 256 个区,每个区 8KBlocksCache: 8K Blocks主存地址: 24为,其中高 8 位区地址,中间 13 位为区内块地址,低 3 位为块内地址

Cache的 Tag应该为 8 位。

3.4 CACHE的替换策略

替换策略LRU( Least-Recently Used )最近最少使用法FIFO( First-In-First-Out )先进先出法 LFU (Least-Frequently Used) 最小使用频率法

3.5 CACHE与主存的数据一致性

数据一致性的问题主要由写操作产生写直达( Write Through):写 CACHE 的同时写主存,效率较低;

写回( Write Back):直到 Block替换时才将整个 Block 写回主存;需要增加 Block修改标志。

多处理器情况下共享内存的一致性问题(每个处理器具有自己的 Cache)

Bus Watching and Write Through ;Non-cachable memory ;

3.5 CACHE与主存的数据一致性

CPUCache

Main Memory

Write Buffer

Write Through 模式的 Cache 结构

一般 Write Buffer 是 FIFO

CPU对 Cache 实行写的频率 << 1/DRAM Cycle Time

3.6 CACHE的其他一些问题

块的大小与命中率:比较复杂, 4-8 个可寻址单元 /Block似乎可获得较高的效率;

Cache 的层次:一级 CACHE 或两级 CACHE ; 统一 CACHE 还是分离的 CACHE :比如指令 Cache 和数据 Cache ; 两层存储结构的存储访问时间:

H为 Cache命中率T1和 T2 分别为两层存储器的访问间则系统访问时间 Ts = T1 × H + ( 1 - H) ×( T1 + T2)

3.7 CACHE举例Pentiun的 Cache

采用两级 Cache 结构。 CPU 内部 Cache( Level 1 Cache )包括 8K 指令 Cache 和 8K 数据 Cache, 32Bytes/Line ,采用两路成组映射结构和 LRU替换策略,数据 Cache采用 Write Back 写策略(可以动态配置为Write-through);外部 Cache (Level 2 Cache)256KB 或 512KB, 32Bytes/Line, 64Bytes/Line,128Bytes/Line ,采用两路成组映射结构。

PowerPc 620 Cache 采用两级 Cache 结构。 CPU 内部 Cache( Level 1 Cache )包括 32K 指令 Cache 和 32K 数据 Cache ,采用八路成组映射结构。

3.7 CACHE举例

Tag W0 W1 W2 W3 Tag W0 W1 W2 W3

比较器 比较器

字选择 字选择

字选择

CPU地址有效位 有效位

组地址 组地址

组内块地址

块内地址

Data

Cache 的地址机构:(两路组相联 Cache 的地址机构 )

存储系统概述主存储器的组成与工作原理高速缓冲存储器的结构与工作原理辅助存储器(磁表面存储器)虚拟存储系统

4.1 磁表面存储原理

磁头与磁记录介质磁头:体积小,重量轻;软盘采用接触方式,硬盘采用浮动方式(浮动磁头,薄膜磁头)磁记录材料:极细的 γ- Fe2O3颗粒,涂在(或喷射)在盘面上,形

成细密、均匀、光滑的磁膜。片基(载体):塑料(软盘),金属(硬盘)

读写原理

4.2 磁记录编码方式磁记录编码方式实际上是写入电流的变化方式

归零制 RZ不归零制 NRZ调相制 PM调频制 FM

1 0 0 1 0

归零制

不归零制

调相制

调频制

4.2 磁记录编码方式

几种记录方式的特点可靠性:归零制低,调相制高; 记录密度:不归零制高,归零制低; 自同步能力:不归零制没有自同步能力,其他都具备;

4.3 硬磁盘存储器的基本结构结构

全密封:存储机构、控制机构和机械驱动机构等密封在一起。磁头:接触启停式浮动磁头,盘面分启停区和数据区,当磁盘不工作时( Power Off),磁头停留在启停区表面,磁盘工作是,由于磁盘高速旋转带动气流,使磁头漂浮在磁盘数据区表面上方,头盘间隙仅有几分之一微米;

读写电路:安装在磁头臂接近磁头的地方,以减少干扰; 旋转速度: 3600RPM, 7200RPM, 10000RPM 。等角速度旋转

磁头

磁头臂移动方向

4.3 硬磁盘存储器的基本结构

磁头

磁头臂移动方向

硬盘的基本结构

4.3 硬磁盘存储器的基本结构数据结构与格式

数据结构: 磁道(柱面:

Cylinder) 盘面(磁头: Head ) 扇区( Sector)

扇区容量: 512 Bytes每个磁道包含的扇区数一样最小访问单位:扇区扇区的地址表示:

扇区

道间空隙

磁道

扇区空隙

Cylinder# Head# Sector#扇区地址:

4.3 硬磁盘存储器的基本结构数据结构与格式

数据结构: 磁道(柱面:

Cylinder) 盘面(磁头: Head ) 扇区( Sector)

扇区容量: 512 Bytes每个磁道包含的扇区数一样最小访问单位:扇区扇区的地址表示:

Cylinder# Head# Sector#扇区地址:

扇区道间空隙 磁道扇区空隙

4.3 硬磁盘存储器的基本结构

扇区数据格式( Segate ST506 磁盘扇区格式)

Gap1

IDField 0

Gap2

Data Field 0Gap

3Gap

1ID

Field 1Gap

2Data Field 1

Gap3

SynchByte

Track#

Head#

Sector#

CRCSynchByte

Data 512 Bytes CRC

17Bytes 7 41 515 20

Sector 600Bytes Sector 600Bytes

1 2 1 1 2 1 2512

Winchester disk track format(segate ST506)

4.4 磁盘的性能参数

性能参数寻道时间 (Seek Time) TS :磁头从当前位置定位道目标磁道所需的时

间(用平均值表示); 寻区时间(或等待时间, Rotational latency) Tw :磁头定位到目标磁道后,等待目标扇区旋转到磁头下所需的时间(用平均值表示);

访问时间( Access Time) TA: TS +Tw

数据传输率 (Transfer rate ) Dr :单位时间内传输的数据位数( bit/second)

容量计算数据传输率的计算

4.4 磁盘的性能参数磁盘的类型

Floppy Disk尺寸: 5.25 inch, 3.5 inch 容量: 360KB, 1.2MB,720KB,1.44MB

IDE( Integrated Drive Electronics) Hard Disk 80年代出现,主要为基于 IBM PC 兼容机所用,属于低价位磁盘,由系统 BIOS(Basic Input Output System) 处理磁盘的读写等操作。

早期可能是 BIOS 程序员的失误, IDE 磁盘的地址被定义为: Head #(4 位,从 0 开始 ), Cylinder#(10 位,从0 开始 ), Sector#(6 位,从 1 开始 ) ,所以磁盘最大容量限制: 16*63*1024*512Bytes( 528MB)。

后来,出现了 EIDE( Extendex IDE) Hard Disk ,支持 LBA(Large Block Address) 地址模式,扇区地址可以从 0 到 224-1 。

4.4 磁盘的性能参数磁盘的类型

SCSI(Small Computer System Interface) 磁盘:数据结构和磁盘结构与 IDE 类似。但具有不同的接口和更高的数据传输率。 50 wires cable (8-bit): GND(25 wires), Data(8 wires),

Parity ( 1 wire),Control(9 wires), Power (Others)。 所有 SCSI 设备(不一定是磁盘)可以同时操作,这是与

IDE和 EIDE 最大的不同之处。 Name Data Bits Bus MHZ MB/Sec

SCSI-1 8 5 5

SCSI-2 8 5 5

Fast SCSI-2 8 10 10

Fast & Wide SCSI-2 16 10 20

Ultra SCSI 16(32) 20 40

4.5 RAID(磁盘阵列)

Reduntant Array of Inexpensive Disks 的特点RAID 由多个物理构成,但被操作系统当成一个逻辑磁盘; 数据分布在不同的物理磁盘上; 冗余磁盘用于保存数据校验信息,校验信息保证在出现磁盘损坏时能够有效的恢复数据;

RAID包括六种不同模式: Level 0, Level1, Level3, Level4, Level 5 ;

Strip 4

Strip 0

Strip 8

Strip 5

Strip 1

Strip 9

Strip 6

Strip 2

Strip 10

Strip 7

Strip 3

Strip 11

RAIDLevel 0

4.5 RAID(磁盘阵列)Level 0

实际上不应属于 RAID家族成员,完全没有冗余; 用户数据和系统数据条带化( Strip )地分布在不同的物理磁盘上。 Strip 可以

是物理磁盘上的一块存储区(扇区或其他单位)。磁盘组中每一个磁盘同一位置的磁盘区构成一个逻辑上的条带,所以一个条带

分布在多个磁盘上。 单个 I/O 操作访问的数据分布在一个条带上是,可实现 I/O 操作的并行处理,改善数据传输性能。

4.5 RAID(磁盘阵列)Level 1

简单镜像磁盘冗余方案 ,成本太高; 与 RAID 0 类似,用户数据和系统数据条带化( Strip )地分布在不同的物理磁

盘上(包括镜像磁盘)。 读操作同时在两组磁盘中进行,数据从访问时间小的磁盘组中获得,所以,读

操作性能得到改善。 写操作同时在两组磁盘中进行,写操作的访问时间以速度慢的为准,所以,写

操作性能指标不高。 出现磁盘损坏时,数据恢复简单。

Strip 4

Strip 0

Strip 8

Strip 5

Strip 1

Strip 9

Strip 6

Strip 2

Strip 10

Strip 7

Strip 3

Strip 11

Strip 4

Strip 0

Strip 8

Strip 5

Strip 1

Strip 9

Strip 6

Strip 2

Strip 10

Strip 7

Strip 3

Strip 11

RAIDLevel 1

4.5 RAID(磁盘阵列)Level 2

采用完整的并行访问技术,所有磁盘在任何时刻都并行地响应 I/O 请求;磁盘组中物理磁盘处于完全同步状态,以保证任何时刻,所有磁盘的磁头都处于相同位置。

数据按较小的条带(一个字或一个字节)分布在不同的磁盘上。 根据磁盘数据计算错误校验码(比如海明码),校验码按位分布在冗余磁盘对应位置上。

数据传输率高;访问效率高; 成本比较高(比 RAID1稍低)

B0 B 1 B2 B3 f0(b) f1(b) f2(b)

RAIDLevel 2

4.5 RAID(磁盘阵列)Level 3

与 RAID2 一样,采用并行访问技术;数据按较小的条带(一个字或一个字节)分布在不同的磁盘上。 校验码是简单的奇偶校验码( 1 位),保存在独立的冗余磁盘对应位置上。一个磁盘损坏,可以方便地实现数据恢复; 数据传输率高;访问效率高;

B 0 B1 B2 B3 Parity

RAIDLevel 3

4.5 RAID(磁盘阵列)Level 4

采用独立访问技术,每个磁盘独立工作,分散的 I/O请求将得到很好的并行处理

数据按较大的条带分布在不同的磁盘上。 校验码是简单的奇偶校验码( 1 位),保存在独立的冗余磁盘对应位置上。一个磁盘损坏,可以方便地实现数据恢复; 写操作效率较低,由于需要计算奇偶校验位,磁盘组中一个磁盘发生写操作,

均需要读取原检验信息,重新计算校验信息,再写校验信息。

Strip 4

Strip 0

Strip 8

Strip 5

Strip 1

Strip 9

Strip 6

Strip 2

Strip 10

Strip 7

Strip 3

Strip 11

P4-7

P0-3

P8-11

RAIDLevel 4

4.5 RAID(磁盘阵列)Level 5

与 RAID 4 的差别仅在于校验信息的保存位置;数据校验码作为条带的一部分保存在磁盘组不同的磁盘中

Strip 19

Strip 15

Strip 18

Strip 14

Strip 17

Strip 13

Strip 16

P12-15

P16-19

Strip 12

Strip 4

Strip 0

Strip 8

Strip 5

Strip 1

Strip 9

Strip 6

Strip 2

P8-11

P4-7

Strip 3

Strip 10

Strip 7

P0-3

Strip 11

RAIDLevel 5

4.5 光介质存储器CD-ROM

规格:直径 120mm ,厚度 1.2mm ,中心孔径 15mm

结构:树脂片基,铝反射层,保护膜,印刷层

数据记录区: 32mm 宽的环形记录带。

等线速度方式:一个螺旋环环绕 22188 次( 600环 /mm ,总长度约 5.6km 长)

等角速度方式数据表示:凹点( Pit )表

示 0, Land 表示 1 ;

120mm

32mm15mm

Pit ( 0.8 微米直径 )

Land

4.5 光介质存储器CD-ROM 的数据格式

00 FF x 10 00 4 Bytes ID 2048 Bytes Data 288 Bytes ECC

12 Bytes SYNCH

Sector Format

Symbol: 14 位, 8 位数据, 6 位海明校验位 ( 看成一个 Bytes);

Frame: 42 个连续 Symbol( 588bits),其中 192 位( 24 字节)存储数据,其余 396 位用于错误纠正与控制;

Sector: 98个 frame 构成一个 Sector (总计 2352Bytes)。

总容量: 650MB

等线速度旋转时:单速: 120cm/s (最内圈 530RPM,(最外圈200RPM), 75 Sectors/Sec( 150KB/S)。

制作过程:母板压模 读机制: 0.78 微米波长红外激光,根据反射光的强度判断是 0 还是 1 ;

4.5 光介质存储器CD-R( Recordables)

与 CD-ROM 的结构、规格、技术指标都一致,仅在数据记录方法上有所差别,在片基(树脂)与反射层(金)中增加了一层染料层作为数据记录层,初始状态下,染料层透明,在写入状态时,高能量( 8-16mw )使照射处的染料变色,变成不透明点,不可再恢复成透明状态。读出状态下 (0.5mw) ,根据透明不透明判断是 0 还是 1 。

Printed label

Protective lacquer

Reflective gold layer

Dye layer

Ploycarbonate substrate

1.2mm

4.5 光介质存储器

CD-RW( Rewritables)与 CD-R 的差别是采用合金层代替染料层。一般采用银、铟、锑、碲合金。该合金具有两种稳定状态:透明状态(晶体结构)和不透明状态(无序结构),初始时为晶体结构。

CD-RW 工作时采用三种不同功率的激光: 大功率(写):合金熔化,由晶体结构变为无序结构; 中等功率(擦除):合金熔化,由无序结构变为晶体结构; 小功率(读)

4.5 光介质存储器

DVD( Digital Video Disk)与 CD-ROM 的差别:Pit 直径更小( 0.4微米); 环绕密度更高( 0.74微米, CDROM 是 1.6微米); 0.65微米波长红色激光( CDROM 是 0.78微米的红外激光); 容量:单面单层 4.7GB ,单面双层 8.5GB ,双面单层 9.4GB ,双面双

层 17GB 。 ( Philips and Sony 要单面双层结构,他们认为人们不愿意做翻面这样

的工作; Toshiba and Time Warner 要双面单层结构,他们相信将双层置于一层势必带来更多的麻烦。最后的结果成了四种结构)。

数据传输率:单速 DVD 1.4M Bytes/Sec 。

作业1. 某机主存容量为 16MB ,列(组)相联方式的 CACHE 容量为

64KB, CACHE 与主存都分为 16列,每个数据块为 256 字节。某指令执行时,经寻址计算,其字节操作数的有效地址为020281H ,又知 CACHE中第 2列(列号为 2 的那列)的前 4块已装入,且第 2列前 4块的 Tag 内容为 :

0 010H1 020H2 030H3 040H

( 1 )写出主存与 Cache 的地址格式;( 2)上述操作数能否从 CACHE中读取,若能,给出其在 CACHE中的地址

。 2. 计算机系统包含 32K 字的主存, Cache 容量 4K 字,每组 4 Blocks ,每 Block 64 个字。假设 Cache 开始是空的, CPU 顺序从存储单元 0, 1 , 2 到 4351中读取字,然后再重复这样的取数 9 次, Cache比主存快 10倍,采用 LRU替换算法, 假定块替换的时间忽略不计,计算采用 Cache后的加速比。

存储系统概述主存储器的组成与工作原理高速缓冲存储器的结构与工作原理辅助存储器(磁表面存储器)虚拟存储系统

5.1 虚拟存储系统多道程序(多进程)运行

I/ O 操作速度缓慢,单道程序运行时 CPU 不得不经常等待 I/ O;多道程序(多进程)运行,在一个进程处于等待 I/O 操作时, CPU转向执

行另一个进程;由于 CPU 的速度比 I/O 速度高得多,即使多个进程运行, CPU仍然存在

等待 I/O 的状态。同时运行更多的进程,多内存的需求增大,解决办法?

扩展内存,以便容纳更多的进程,充分占用 CPU 的时间;但是内存太贵,另一方面,程序(或进程)对存储空间的需求在不断增加,扩展内存无法解决。

采用交换机制(属于操作系统的内容),进程保存在硬盘中,当内存有空间时,进程被调入,每次调入一个,当进程完成时,移出内存,以便其他进程调入。

当单道程序对内存的需求量超过物理内存的容量时将程序分成若干部分(段、页),每次调入一部分,其余存储在硬盘中,

不断在内存和硬盘中进行交换,达到完成程序运行的目的。

以上两种情况:存在一种将内存和外存视为一个整体,使外存完成内存的功能的需要。这样一种将内外存统一管理的存储管理机制就是虚拟存储管理(虚拟存储系统)。

5.2 页式虚拟存储系统

程序空间一个大容量的存储空间,称为虚存空间程序中的地址:虚拟地址、逻辑地址

页式虚拟存储器虚存空间和主存空间按统一大小分成若干页,虚存称为虚页,主存称为实页。

程序按页调入内存(某一虚页调入某一实页)虚存的地址格式(逻辑地址格式):虚页号 + 页内地址实存的地址格式(物理地址格式):实页号 + 页内地址页表:虚页与实页的映射,实现虚实地址的转换。页表:建立在内存中,操作系统为每道程序建立一个页表。页表基址寄存器:保存页表在内存中的起始地址。

5.2 页式虚拟存储系统

虚页 0

虚页 1

虚页 2

虚页 3

虚页 4

进程 A 页 13

页 14

页 15

页 16

页 17

页 18

页 19

页 20

页 21

页 12

A 的页 0

A 的页 1

A 的页 2

A 的页 3

内存

实页号 状态位14

16

17

1

1

1

19 1

XX 0

A 的页表

虚页

0

1

2

3

4

5.2 页式虚拟存储系统

转换后备缓冲器 TLB( Translation Lookaside Buffer)

每次虚拟存储器的访问带来两次存储器访问,一次访问页表,一次访问所需的数据(或指令),简单的虚拟存储器速度太慢。

解决办法:使用 Cache 存储页表项,称为 TLB ,它包含了最近使用的那些页表项。

5.2 页式虚拟存储系统开始

CPU检查TLB

页表在TLB中

访问页表

页在主存中

更新TLB

CPU生成物理地址

操作系统指挥CPU从磁盘读取页

CPU启动I/O

页由磁盘传送到主存

主存满 完成页替换

修改页表

Yes

No

Yes

No

Yes

No

程序请求存取一页

5.3 其他形式的虚拟存储器

段式虚拟存储器段页式虚拟存储器