第四章处理机与存储器层次结构

Download Report

Transcript 第四章处理机与存储器层次结构

第四章
处理机与存储器层次结构
处理机技术:指令系统、CISC结构、RISC结构(流水
线在第六章介绍)
超标量和向量处理机:VLIW结构
存储器层次结构技术定理
虚拟存储器技术
4.1 先进的处理机技术
与微电子技术和组装技术关系最密切
4.1.1 处理机的设计空间
衡量处理机的技术,可从图4-1来形象表示。
二个重要的指标,形成一个合理的“设计空间”:
时钟频率
CPI(每条指令执行的机器周期数)
CISC:
(微程序)
f:33~50,
CPI:1~20
RISC:
(硬布线逻辑) f:20~120, CPI:1~2
超标量: (多发射)
f:20~120, CPI:<1~2
VLIW:
(多部件)
超流水线: (多相时钟) f:100~500, CPI :<1~2
(流水线在第六章讨论)
指令流水线(基准标量处理机)
指令流水线周期-时钟周期
指令发射等待时间-两条相邻指令发射之间所需的时间
指令发射速率-每个周期发射的指令数
简单操作等待时间-一般一个周期
资源冲突-两条以上指令在同一时间请求使用同一功能部件
每个周期发射一条指令,等待一个周期的时间,指令发射之
间等待又一个周期。如果相继指令能以每个周期一条的速率
连续进入流水线,那么该指令流水线就能得到充分利用。
图4-2中a的CPI=1,其他CPI=2
处理机-协处理机结构:
(某种意义上,VLSI技术不能满足功能的需要)
目的:弥补通用性对特殊性需求的不足
采用“主机后端”(Host-back-End)工作关系,并有兼容性
“协”的含义是帮助,所以不能独立应用,一般没有I/O能力
Co-CPU形式:浮点加速器、向量处理器、DSP(数字信号处理
器)、AI中的Lisp处理器。。。
4.1.2 指令系统结构
•指令系统规定了程序员进行程序设计的基本命令或机器指令
•指令系统的复杂性:取决于所用的指令格式、数据格式、寻
址方式、通用寄存器、操作码规格、流控制。。。
•指令系统结构的二大流派:
CISC-复杂指令集计算机
RISC-精简指令集计算机
CISC-复杂指令集计算机
过程:
硬件价格高——指令系统简单,对硬件要求低
指令系统简单——与高级语言的语义差距扩大
软件编程工作量大
造成:硬件价格降下来,软件价格上升
解决的办法:使指令系统不断复杂化(指令条数120~350;可
变长指令格式;十几种变址方式;8~24通用寄存器组。。。)
又造成:编译工作量越来越大。
解决复杂化的办法:微程序控制的普遍使用(目前又不采用)
部分高级语言语句硬化,降低编译负担
RISC-精简指令集计算机(80年代开始)
•统计得出20%~80%定律(书上:在95%时间里,只要25%指令
被经常使用)
•把“使用频度”不高的复杂指令的功能由软件来完成。虽然时
间开销大些,但这些指令使用少,还是“合算”。让节省下来
的芯片面积去增加cache数量、增强浮点处理能力。。。
•让指令条数少于100;只采用3~5种简单寻址方法;采用LoadStore结构访内;大部分指令实现CPI=1。。。
二者在结构上有区别:图4-4
趋势:两者的结合与折中
典型的CISC处理机:
•板基处理机:VAX8600-VAX11/780(图4-5)
•指令系统:300条指令;20种寻址方式
•VMS操作系统
•SBI/Unibus I/O总线接口
•并发执行的整数与浮点指令执行功能部件 ,合用一个
cache(存放指令和数据)
•指令流水线分六段功能块
•虚拟存储地址,用TLB转换物理地址
•CPI=2~20范围变化
片基处理机:MC68040(图4-6)
•工艺:0.8微米,HCMOS,120 万个晶体管
•指令系统:100多条,18种寻址方式,种类多(数据传
送、算术运算[整数、BCD、浮点、逻辑、移位、位-字
段]、控制、存储器管理、cache 维护、多处理机通信等
•16个通用寄存器,2个4KBcache(数据/指令)
•存储管理部件MMU,地址转换cache(ATC)
•整数部件(6段流水线)、浮点部件(3段流水线)
•数据、指令交叉存取( MMU实现)
典型的RISC处理机:
SUN SPARC(Scalable processor architecture)可扩展处理器结构
见表4-5/图4-7
VLIW结构(Very Long Instruction Word)
水平微码与超标量处理结合
采用多部件并发工作的技术,一条VLIW指令可能有数百位长度,
不同字段中的操作码被送到不同的功能部件中去执行。
在VLIW结构中,指令并行性和数据传送完全是在编译时确定的。
运行时的资源调度和同步则完全被排除。它将不相关的或无关的
操作已经预先同步地压缩在一起。
VLIW处理机成功与否取决于代码压缩的效率,它的结构和传统的
结构有很大的区别。尽管它有不少优点(指令系统简单、并行性
显式表示等),但还是无法进入计算机的主流。
图4-14
4.3.存储器层次结构
•层次存储器技术
•包含性、一致性、局部性
•存储器容量的规则
4.4. 虚拟存储器技术(替换算法/策略)
4.3.1 层次存储器技术
所谓“存储金字塔”:
层0:CPU内寄存器组:由编译器完成分配,传送速度按处
理机速度
层1:高速缓存(cache):可几个层次,MMU控制
层2:主存储器:基本存储器,MMU与操作系统管理,存取策略
层3:外存储器(硬盘):联机存储器(I/O处理)
层4:后援存储器(光盘、磁带机):海量,联机存储器(I/O处理)
层次关系:
M1
M2
五个参数表征存储技术和存储组织
工艺/介质:半导体/电、磁、光、生物
1。存取时间(ti)-CPU到第i层存储器的往返时间
2。存储器容量(si)-第层的字节/字的数量
3。成本-第i层成本ci*si
每字节/字成本ci
4。传输带宽(bi)-相邻层间传递信息的速率
5。传输单位(xi)-i与i+1层之间数据传送的粒度
关系:ti-1 < ti
si-1 < si
ci-1 > ci
bi-1 > bi
xi-1 < xi
4.3.2 包含性、一致性、局部性
1。包含性(inclusion)
形式表示:M1  M2  M3  ...  Mn
所有信息最初存放在最外层Mn,处理过程中Mn的子集
复制到Mn-1,Mn-1复制到Mn-2,。。。
定性:在Mi的信息字,可在Mi+1,。。。Mn找到同一
信息字,但在Mi-1中不一定能找到。
图4-18
2。一致性(coherence)
同一信息项与后继存储器层次上的副本应保持一致
实现的二种策略:
(1)写直达(WT-write-through)
在Mi中修改了一个字,则在Mi+1中需立即修改。
(2)写回(WB-write-back)
Mi+1的修改工作要等到该字在Mi中被替换或从Mi消
失时进行。
3。局部性(locality)
90-10规则:典型程序在其10%的代码上耗费执行时间的90%(
例如:嵌套循环)。说明CPU对存储器的访问,在时间、空间
、次序往往都集中在一定范围内进行。
三个特性:
(1)时间局部性:最近的访问项(指令/数据)很可能在不久
的将来再次被访问(往往会引起对最近使用区域的集中访问)
(2)空间局部性:一个进程访问的各项其地址彼此很近(往
往会访问在存储器空间的同一领域)
(3)顺序局部性:按序执行和不按序执行的比例在普通程序
中是5:1
4.3.3 存储器容量的规则
存储器层次结构的性能是由各层的有效存取时间Teff决定,它依
赖于相继层次的命中率(h)和访问频率(f)
命中率(h):当在Mi中找到一个信息项时,称为“命中”(hi)
,反之“不命中/缺失”(1-hi)。即命中率hi是信息项在Mi中的概
率。
特例:h0=0 CPU总先访问
hn=1 访问到Mn时总是命中
访问频率(f):在较低层次有i-1次不命中而在Mi有一次命中时
访问Mi成功的概率
f1»f2 » f3»... »fn 表明由于局部性的原因,对存储器内层的访
问经常比外层的访问要多。
有效存取时间(Teff)
Teff=h1t1+(1-h1)h2t2+…+(1-h1)(1-h2)…(1-hn-1)tn
说明:发生不命中[(1-h1)],就要向上继层次访问,这种“
代价”很可贵。
例如;(Stone,1990)
•cache不命中是命中代价的2-4倍
(要访问主存,板内总线速度)
•主存页面不命中是命中代价的1000-10000倍
(要访问外存,一般属I/O操作)
层次结构的优化
总成本(Ctotal=∑cixsi)是由分配给n个层次的成本决定的。
因为各层成本c1>c2>c3>... >cn,而各层容量只能s1<s2<s3<... <sn
优化设计的要求:Teff接近M1的t1
Ctotal接近Mn的Cn
但较难实现,要综合平衡(这是一个线性规划求最小值的问题)
设成本上限C0,在服从下列限制条件
si >0, ti >0
i=1,2,…,n
Ctotal= ∑cixsi<C0
则 Teff=∑fixti
减到最小值
例4.7 存储器层次设计
设 Ctotal=$15000, 有限存取时间t=10.04μs
M1cache
t1=25ns
s1=512kB
c1=$1.25/kB
h1=0.98
M2主存
t2=X
s2=32MB
c2=$0.20/kB
h2=0.90
M3外存
t3=4ms
s3=Y
c1=$0.0002/kB
h3=1.00
解:
(1)∵c1s1+c2s2+c3Y≤ Ctotal=$15000
∴(s3)Y=39.8GB
(2)∵t=h1t1+(1-h1)h2X+(1-h1)(1-h2)h3t3 ≤ 10.04μs
∴(t2)X=903ns
4.4. 虚拟存储器技术
•两类虚拟存储器
•地址转换机制
•页面替换算法/策略
4.4.1 虚拟存储器模型
虚拟存储的概念
物理存储器(实存)的容量《 虚拟存储器(虚存)容量(虚
存)需后援存储器支持。只有“活动”的程序驻留在物理存储
器内,其他程序则放在后援存储器上。而用户面对有几乎没有
限制的存储器工作空间。
物理地址空间:物理存储器用唯一的物理地址标识
虚拟地址空间:由编译器和操作系统共同产生
二者之间有一个映象(mapping)关系:
设 V-运行程序所产生的一组虚拟地址
M-为运行程序而分配的一组物理地址
虚拟存储器的自动机制实现映象ft
ft:VM∪{φ}
假设任意虚地址∈V,则映象ft可形式定义:
ft()=m
φ
如果m∈M已被分配用于存储由虚地址标识的数据
如果数据 在M中缺失
两种虚拟存储器模型
(1)私用虚拟存储器
虚拟存储器只与每台处理机有关。每个私用虚拟空间被分成许多
页面,可以将不同虚拟空间的虚拟页面映象到由所有处理机共享
的同一物理存储器中。
存在同义问题:在不同或相同虚拟空间里的不同虚拟地址会指向
同一物理页面。
在不同虚拟空间里的同一虚拟地址可能指向主存储器的不同页面。
图4-20(a)
(2)共享虚拟存储器
(2)共享虚拟存储器
将所有虚拟地址空间组合成一个全局共享虚拟空间,然后将共
享虚拟存储器的一部分分给每台处理机,并成为它们的地址。
不同的处理机使用的空间可以不连在一起。虚拟空间的某些区
域还可以由多台处理机共享。
它的优点是所有地址都是唯一的,因而不存在同义问题。
由于采用页表方法进行转换,因此转换时间较长。
图4-20(b)
4.4.2 TLB、分页、分段
虚拟存储器(页面)与物理存储器(页面框架)都分固定长度的
页面,存储器分配就是把虚拟存储器页面分配到物理存储器的页
面框架中去。这里有地址转换机制。
TLB:高速查找表,存放近期可能访问的页面项(虚拟页面号与
页面框架号组成)
虚地址:虚拟页面号,高速缓存块号,块内字地址
转换过程:以虚拟页面号作为关键字,对TLB做匹配查找;若查
找到(命中),则将页面项中该虚拟页面号所对应的页面框架号,
“或”上高速缓存块号和块内字地址作为一个完整的物理地址;
若查找不到(不命中),则用散列指针指明一张页表(PT)并在其
中搜索到所要的页面框架号。
图4-21(b)
分页:
虚拟存储器与物理存储器空间是分成长度固定的页面,它们的
转换是在“页面”这一级上进行的。如果PT页表中搜索不到相
应页面框架号,则表明要访问的页面不在主存内,需要到下一
层次的存储器中查找。此时的进程要被“挂起”,待该页面调
进主存,才能继续运行。
分段:
用户定义虚拟地址空间的一部分,是将分散的页面逻辑地连在
一起形成“段”,它的长度是可变的。因此段的管理更为复杂。
页与段还可以结合起来使用。原理是一样的,适合在特别大的
存储空间。
4.4.3 存储器替换策略
原因:可用页面框架比页面少得多,页面框架最终被完全占用。
再容纳一个新页面,必将有一个页面框架让出来。让“谁”,则
是替换算法要完成的工作。
目标:使可能发生的缺页的数量降到最小(减少有效存取时间)
效率:取决于程序行为,所用存储器通信模式(与程序局部性相
匹配)
常用替换算法:
近期最少使用(LRU )
最优算法(OPT)
先进先出(FIFO)
随机替换(RAND)
[书上作形式化描述]