计算机组成原理课件网上第14讲_第1页
计算机组成原理课件网上第14讲_第2页
计算机组成原理课件网上第14讲_第3页
计算机组成原理课件网上第14讲_第4页
计算机组成原理课件网上第14讲_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Double

Data

Rate

(DDR)

SDRAMSDRAM:

Synchronous

Dynamic

RAMDouble

data

rate

(DDR)

SDRAM

was

a

later

development

of

SDRAM,used

in

PC

memory

beginning

in

2000.SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升沿进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升沿和下降沿各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR2

SDRAM

was

originally

seen

as

a

minor

enhancement

(basedupon

the

industry

standard

single-core

CPU)

on

DDR

SDRAM

thatmainly

afforded

higher

clock

speeds

and

somewhat

deeper

pipelining.However,

with

the

introduction

and

rapid

acceptance

of

the

multi-coreCPU

in

2006,

it

is

generally

expected

in

the

industry

that

DDR2

willrevolutionize

the

existing

physical

DDR-SDRAM

standard.Further,

with

the

development

and

introduction

of

DDR3

SDRAM

in2007,

it

is

anticipated

DDR3

will

rapidly

replace

the

more

limitedDDR

and

newer

DDR2.相联存储器Associative

Memory相联存储器不是按地址访问,而是按所存数据字的内容查找。在查找时,将要查找的字与相联存储器中的全部字同时比较。如果某字与要查找的内容相符合,则返回1,否则返回0。查找结果寄存器SRR××××××……×比较数寄存器CR……………………………………字01……01……W-1相联比较电路很复杂,速度比较慢。同时比较的字越多,速度越慢。需要高速电路支持。§5.7

高速缓冲存储器Cache§5.7.1

Cache-主存层次工作原理Cache

是位于CPU与主存之间的一个高速小容量的存储器。Cache一般采用和CPU相同的半导体工艺制成,在物理位置上尽量靠近CPU,而不在主存模块中,最好在处理器芯片内。其速度与CPU的速度相匹配,即能够在一个最短的存储周期内完成一次读/写,约比主存速度高数倍~数十倍以上。Cache的管理全部用硬件实现。原理上,Cache-主存层次有两种工作方式:方式1.CPU对Cache和主存都有直接访问路径。Cache既是Cache-主存层次中的一层,也是一个旁路存储器。CPUCache主存CPUCache主存CPU发出的地址同时访问Cache和主存。如果Cache命中,则放弃对主存的访问。如果Cache不命中,则从主存读出。方式2.CPU只直接访问Cache,不直接访问主存。当CPU需要访问存储器时,先检查Cache,此时,地址不出现在地址总线上。如果Cache不命中,才通过总线访问主存。标准的二级存储层次。Cache和主存都分成若干行(块,Block,Line,Slot),每行有若干字(Word)或字节组成。(一)Cache-主存层次的基本结构装入Cache1个字主存地址块号块内地址主存-Cache地址映射变换机构Cache地址块

号 块内地址Cache主存Cache替换策略AddressMappingFromProcessor地址总线数据总线直接通路

To

ProcessorMissHit1行已装不进如果不在Cache中,称为不命中Miss(块失效),则访问主存。同时,将包含该字的一行装入Cache。主存-Cache地址映射变换机构将处理机发出的主存地址变换成Cache地址,判定该字所在行是否在Cache中。如果在Cache中,称为命中Hit,则访问Cache。装入Cache直接通路1个字Cache地址主存地址块号

块内地址主存-Cache地址映射变换机构块号

块内地址Cache主存Cache替换策略AddressMappingFrom

Processor地址总线数据总线To

ProcessorMissHit1行已装不进若Cache已满,则按照某种替换策略把该行替换进Cache。CPU访问Cache,每次1个字。主存与Cache之间的数据传输以数据块为单位。要求总线和主存支持多字(块)同时传输。TA=H·TA1

+(1—H)·TA2

=(二)平均访问时间例如,主存的访问时间为100ns,Cache的访问时间为10ns,命中率为90%。则Cache-主存层次的平均访问时间为H·TC

+(1—H)·(TM+

TC)=

0.9×10+(1—0.9)×110

=

20

ns使用Cache可明显改进计算机系统的平均访问时间。如果命中率足够高,则大多数的访问时间都接近于快速的Cache存储器的访问时间。如果Cache的速度与处理机相当,容量足够大,配上以合适的调度算法为基础的、全部硬化的地址映射变换部件,实现高的命中率,则可能实现高主振频率的CPU的零等待(在访存时,不插入TW)。平均访问时间受命中率的影响很大。§5.7.2

Cache设计影响命中率的因素:Cache的容量,行的容量,地址映射变换,替换算法,Cache的个数,地址流,等。Cache的容量(Cache

Size)Cache的容量每增加一倍,不命中率减少30%。Cache的容量越大命中率越高。行的容量(

Block

Size

)一般每行1~16字。每行4~8个可寻址单元似乎接近最好。主存-Cache地址映射变换(

Mapping

Function

)Cache存储器的基本特点是快速的访存。因此,在Cache中寻找字的时间必须极短。把主存地址变换成Cache地址称为映射。实际使用的映射变换有3种:①直接映射,②相联映射(全相联),③组相联映射。Cache

行i主存块j01……m-10,m,2m,……,2S-m1,m+1,2

m+1,……,2S-m+1……m-1,2

m-1,3

m-1,……,2S-1(1)直接映射Direct

Mapping主存的每一块只能映射到Cache的一个特定的行。若Cache有m行,每行n字,主存有2S块,则直接映射可表示为Cache的行号i=主存的块号j(Modulo

m)Cache012……m-1主存012……m-1mm+1m+2……2m-12m2m+1……km-1km……nm-1设m=2r,n=2W若Cache有m行,每行n字,主存有2S块,主存地址(S+w位)Cache地址(r+w位)Tag字0字1……字n-1Cache

的内容标志Tag行地址Line字地址WordS—r位r位w位行地址Line字地址Word选中1行选中行内1个字主存容量16MB,按字节编址,Cache容量64KB,每行4个字节。16M

=224,主存地址24位。

S

=

22,Cache的行数m

=16k行=

214行,

n

=

4

,选中1行选中行内1个字主存地址(S+w位)Cache地址(r+w位)TagW0W1W2W38

位8

位8

位8

位8

位Cache

的内容CPU访存时,用主存地址中间的r=14位作为Cache行地址,选中1行Cache。把该行的Tag与主存地址中的高8位Tag比较。若相同,则命中,用主存地址最低2位作为字地址取出1个字节数据。若不命中,则22位地址S用于从主存中取出1个块(4字节)数据至Cache。例如:S-r=8位r=14位w=2位标志Tag行地址Line字地址Word行地址Line字地址Word直接映射技术简单、廉价、易于实现。主要缺点:块冲突概率最高。对于任意给定的主存块,都有一个固定的Cache位置。如果一个程序碰巧重复地访问映射到同一行Cache的2个主存块,则这2个块需连续地交换进Cache,命中率很低。Cache012……m-1主存012……m-1mm+1m+2……2m-12m2m+1……km-1km……nm-1(2)相联映射Associative

Mapping(全相联映射Fully

Associative

Mapping)主存的任何块都能映象到Cache的任何行。把主存地址作为标志项和数据一道存入Cache。该标志项唯一地识别主存的一块。为了确定1个块是否在Cache中,Cache的控制逻辑必须同时检查每一行的标志项是否相符。例:主存容量16MB,Cache容量64KB,16K行,每行4个字节。主存地址TagWord22位2位TagW0W1W2W322

位8

位8

位8

位8

位Cache

的内容相联存储器是最快、最灵活的Cache组织,克服了直接映射的缺点。允许主存的每一块装入Cache的任一行中。有相应的替换算法使其得到最大的命中率。主要缺点:需要复杂的相联比较电路来并行地检查全部Cache行的标志项。成本高。容量难以做大。(3)组相联映射Set-associative

Mapping组相联映射是对直接映射和全相联映射技术的折中,避免了二者的缺点。组间是直接映象,组内各行间是全相联映象。主存的任一块j只能映象到Cache的组i。块j可映射到组i中任一行。设Cache有m行,主存分成与Cache行同样大小的2S块,每块n字。主存012345678……CacheSet

0Set

1Set

2Tag01010101Set

3Cache分成v组,每组k行。m=v×k

v=2dCache的组号i

=

主存块号j(Modulov)当v=m,k=1时是直接映射。

当v=1,k=m时是全相联映射。2路组相联最常用,比直接映射显著改善命中率。4路组相联,命中率略有改善,成本略增。K≥8,对命中率改善不明显,成本显著增加,速度下降。主存容量16MB,Cache容量64KB,每行4个字节,2路组相联。Cache

行数=

16K行,

K

=

2,v

=

8K=2d标志Tag组地址Set字地址Word9位13位2位组地址Set字地址Word选中1组选中行内1个字主存地址(S+w位)Cache地址(d+w位)CPU访存时,用主存地址中间的

d=13位作为Cache组地址,选中1组Cache。把该组的2行的Tag同时与主存地址中的高9位Tag比较。若某行的Tag与主存地址中的Tag相符合,则命中,用主存地址最低2位作为字地址从该行中取出1个字节数据。若不命中,则用22位地址S从主存中取出1个块(4字节)数据至Cache。主存012345678……Set

0Set

1Set

2CacheTag01010101Set

3例如:4.替换算法(Replacement

Algorithm)当一个新的块要装入的Cache位置存在一个原有的块时,就要进行替换。直接映射,只有一个可能的行,别无选择。全相联和组相联映射,需要一种替换算法,而且必须用硬件实现。为了达到高速的目标,替换算法是高命中率的一个关键因素。常用的Cache替换算法有:LRU,FIFO,LFU,Random。①

LRU(Least-Recently

Used)替换出Cache中时间最长未被访问的行。对2路组相联是最容易实现的。每行设一个使用位,当一行被访问时,将该行的使用位置1,而同组中另一行的使用位置0。当要装入一块到该组时,使用位为0的行被替换。②FIFO(First-In-First-Out)把在Cache中存在最久的块替换出去。可用一种循环缓冲技术实现。③LFU(Least-Frequently

Used)将Cache中经历了最少访问次数的块替换出去。可在每行设置一个计数器来实现。④Random不是基于信息块被使用的情况,而是随机地选一个块替换出去。模拟研究表明,性能略低于基于使用的替换算法。5.Cache的写策略(Write

Policy)Cache和主存的一致性Consistency问题。Cache是主存的部分内容的副本,它们的内容应该是一致的。当处理机执行写操作时,如果只写入Cache,则主存中对应部分仍然是原来的。有两种主存修改算法:写回法,写直达法。①写回法Write

Back在执行写操作时,信息只写入Cache,仅当需要被替换时才将该Cache行写回主存。然后再调入新块。写回法使主存写操作最少。可减少中间结果写存。存储器写操作约占访存总数的10~34%。实现:每行有1个更新位。当该行被写时,将更新位置1。当该行被替换时,当且仅当其更新位为1时,才将该块写回主存。问题:主存相应块中的内容可能是无效的。在块从主存调入Cache。写回法一般采用。除了处理机的写操作外,通道和I/O处理机向主存写也会造成主存与Cache内容的不一致。②写直达法Write

Through对Cache的所有写操作也写入主存,使主存中总是有效数据。缺点:每次写Cache都要附加一个时间大得多的写主存,增大了主存信息交换量,可能产生瓶颈。当出现写不命中时,无论写回法还是写直达法都有一个在写时是否取的问题。①不按写分配法当Cache写不命中时只写入主存,该写地址单元所在块不从主存调入Cache。②按写分配法当Cache写不命中时,除写入主存外,还把该写地址单元所写直达法一般采用。6.Cache的取算法按需取进法仅当Cache不命中时取进。预取法通常是预取直接顺序的下一块。①恒预取:只要访问第i块,不论是否命中,恒发预取命令。②不命中时预取:只有当访问第i块不命中时才发预取命令。7.Cache的初始化(Initialization)在初始时,Cache被认为是空的,但实际上充满无效数据。当计算机上电或从辅存向主存加载一个完整程序时,Cache被初始化。通常为Cache中的每个字加一个有效位(Validbit)来表示该字是否包含有效数据。一个字从主存装入Cache就把其有效位置1。当把所有的有效位清零就使Cache初始化了。8.Cache的个数Number

of

Caches在Cache初被引入时,典型系统只有一个Cache。现在多采用多个Cache。(1)

统一/分离的Cache (Unified

/

Split

Cache)早期的设计是一个Cache既保存数据又放指令。现在多采用分离的Cache。一个指令Cache,一个数据Cache。一个统一的Cache的优点是,在Cache总容量一定时,有更高的命中率。因为它自动平衡了指令和数据的负载。而且只需设计并实现一个Cache。分离的Cache的优点是,消除了指令处理机与执行单元之间的竞争,使两个操作可以并行进行。这对于流水线机器、超标量机器很重要。预取的指令可以充满Cache。(2)

两级Cache

(Two-level

Caches

)处理机片内的On-ChipCache(L1)减少处理机的外部总线活动,缩短执行时间,提高总体系统性能。当所需的指令或数据在On-ChipCache中找到时,就消除了总线访问。由于片内的数据路径短,On-ChipCache的存取比零等待状态总线周期更快。同时,总线不被处理机占用可支持其它传输。片外的第二级Cache(L2)(On-BoardCache)是当L1不命中时,缩短访存时间,并提高命中率。如果L2的SRAM可与总线速度匹配,则可实现零等待状态传输。CPUL1

CacheL2

Cache主板主存L2

Cache主板主存CPUL0

CacheL1

Cache封装在CPU上面Cache的地址映射变换和替换算法的实现全部是硬件实现的。因此,Cache-主存层次对应用程序员和系统程序员应该都是透明的。而且Cache对处理机和主存之间的信息交往也是透明的。Pentium的Cache结构:1个8kB的数据Cache,1个8kB的指令CacheTwo-way

Set-associative。每行32字节,128个两行组。

每行有1个Tag和2个状态位。Tag是逻辑地址的最高20位。LRU替换算法,每个两行组有1个LRU位。数据Cache用Write

Back。可以动态配置成支持Write

Through。支持外部的第2级Cache,256K或512KB。,双核处理器(Dual

Core

Processor)的Cache

:Pentium

D和Pentium

EE,每个核心采用独立缓存,在处理器内部两个核心之间是互相隔绝的通过处理器外部(主板北桥芯片)的仲裁器负责两个核心之间的任务分配以及缓存数据的同步等协调工作。两个核心共享前端总线,并依靠前端总线在两个核心之间传输缓存同步数据。AMD推出的Athlon

64

X2是由两个Athlon

64处理器上采用的Venice核心组合而成,每个核心拥有独立的512KB(1MB)L2缓存及执行单元。两个内核不需要MCH进行相互间的协调。在

Athlon

64

X2双核心处理器的内部提供了一个称为System

Request

Queue(系统请求队列)的技术,所有的处理过程都在CPU核心范围之

内完成,并不需要借助外部设备。作业5

-23,24,25A

cache

is

a

block

of

memory

for

temporary

storage

of

data

likely

tobe

used

again.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论