并行存储器-奥鹏教育_第1页
并行存储器-奥鹏教育_第2页
并行存储器-奥鹏教育_第3页
并行存储器-奥鹏教育_第4页
并行存储器-奥鹏教育_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

奥鹏远程教育中心心系天下求学人PagePAGE1ofNUMPAGES179专业专注周到细致高校名称:福建师范大学课程名称:《计算机体系结构》心系天下求学人PagePAGE176ofNUMPAGES179专业专注周到细致目录TOC\o"1-1"\h\z\u第一章概论课堂笔记 3第一章概论关键词汇 12第一章概论FAQ 13第一章绪论拓展资源 14第二章存储系统课堂笔记 15第二章存储系统关键词汇 34第二章存储系统FAQ 35第二章存储系统拓展资源 36第三章输入输出系统课堂笔记 38第三章输入输出系统关键词汇 54第三章输入输出系统FAQ 55第三章输入输出系统拓展资源 57第四章数据表示和指令系统课堂笔记 64第四章数据表示和指令系统关键词汇 87第四章数据表示和指令系统FAQ 88第四章数据表示和指令系统拓展资源 89第五章流水线处理技术课堂笔记 91第五章流水线处理技术关键词汇 118第五章流水线处理技术FAQ 119第五章流水线处理技术拓展资源 120第六章并行处理技术和多处理机课堂笔记 121第六章并行处理技术和多处理机关键词汇 141第六章并行处理技术和多处理机FAQ 141第六章并行处理技术和多处理机拓展资源 142第七章互联网络课堂笔记 144第七章互联网络关键词汇 161第七章互联网络FAQ 162第七章互联网络拓展资源 163第八章非冯·诺依曼计算机结构课堂笔记 164第八章非冯·诺依曼计算机结构关键词汇 176第八章非冯·诺依曼计算机结构FAQ 176第八章非冯·诺依曼计算机结构拓展资源 177第一章概论课堂笔记主要知识点掌握程度本章主要内容包括:介绍了现代计算机系统的构成和层次结构;了解计算机系统结构的定义及结构划分,重点掌握计算机系统设计的原则、任务、方法和性能评价指标。知识点整理一、现代计算机系统自1946年第一台电子数字计算机问世以来,已经过了半个世纪,计算机经历了五次更新换代,各代划分的主要标志是硬件和软件技术的明显变革。从所用的器件而言,它经历了由电子管、晶体管到集成电路,由继电器存储,磁介质存储到集成电路,乃至大规模和超大规模集成电路存储的发展过程。从结构的发展而言,它经历了由单个CPU组成的单机系统到流水线机、多处理机到大规模的并行处理机的发展过程,从技术的发展上而言,它不断引入变址技术、中断技术、微程序技术、缓冲技术共享、重用技术、虚拟技术。从语言和应用方面而言,它经历了由汇编到高级语言,从单用户到多用户,到并行处理的语言、编译、操作系统,直到如今计算机网络、异构系统处理等等这一发展过程。随着硬、软件的发展。展示在人们面前的计算机也已大大不同于50年前的样子,而且仍然在不停地迅速发展和变化着。(一)现在计算机的构成计算机系统不只是最明显的硬件设备,还应包括与它不可分割的系统软件、应用软件、用户接口等,它们形成一个集成系统,如图1.1.1所示。(二)计算机系统层次结构计算机系统由硬件/器件和软件组成,按功能可以划分成以下7级层次结构:级别计算机系统人实现方式6应用语言级用户软件5高级语言级高级语言程序员软件4汇编语言级汇编程序师软件3操作系统级操作员软件2传统机器语言级机器语言程序员软硬件接口1微程序机器级逻辑设计员固件0电子线路级硬件设计员硬件其中,第0级由硬件实现,第1级由微程序(固件)实现,第2级至第6级由软件实现。可见,计算机系统结构是指在计算机系统软、硬件的分接口上,机器所表现出的外特性。二、计算机系统结构(一)计算机系统结构定义概念:计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性,是硬件子系统的概念结构及其功能特性。系统结构一般应包括以下几个方面:机器内的数据表示、寻址方式、寄存器定义、指令系统、中断机构、存储体系和管理、机器工作状态的定义和切换、输入输出结构、信息保护等。在计算机技术中,一种本来存在的事物或属性,但从某种角度看似乎不存在,这称为透明性。(二)计算机系统结构、组成与实现计算机系统结构是机器语言程序员所了解的计算机的属性,即外特性。系统结构设计者的主要任务是研究软件、硬件功能分配和对软件、硬件界面的确定,即哪些功能由软件完成,哪些功能由硬件完成。包括:数据表示、寻址方式、寄存器定义、指令系统、中断机构、存储体系和管理、机器工作状态的定义和切换、输入输出结构、信息保护等。计算机组成是计算机系统结构的逻辑实现,计算机组成的任务是在计算机系统结构确定分配给硬件子系统的功能及其概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令级的各种功能和特性。具体包括:数据通路的宽度、专用部件的设置、各功能部件操作部件的并行度和共享程度、控制机构的组成方式、缓冲技术排队技术的采用、可靠性技术的采用和方式的选择、预估预判优化处理。计算机实现即计算机逻辑设计之后的物理实现,包括:处理机,主存部件的物理结构,器件的集成度,速度的选择,模块、插件、底板的划分与连接,电源、冷却,以及整机的装配技术等。(三)计算机系统结构的分类计算机系统的分类常见分类方法:1、按大小划分种类:巨型机、大型机、中型机、小型机、微型机等。2、按用途划分种类:科学计算、事务处理、实时控制、工作站、服务器、家用计算机等。3、按数据类型划分种类:定点机、浮点机、向量机、堆栈机等。4、按处理机个数和种类划分种类:单处理机、并行处理机、多处理机、分布处理机、关联处理机、超标量处理机、超流水线处理机、SMP(对称多处理机)、MPP(大规模并行处理机)、机群(Cluster)系统等。5、按所使用的器件划分种类:第一代:电子管计算机(Valve)第二代:晶体管计算机(Transistor)第三代:集成电路计算机(LSI)第四代:大规模集成电路计算机(VLSI)第五代:智能计算机等6、佛林(Flynn)分类法1966年由Michael.J.Flynn提出,按照指令流和数据流的多倍性特征对计算机系统进行分类。指令流(instructionstream):机器执行的指令序列;数据流(datastream):由指令流调用的数据序列,包括输入数据和中间结果;多倍性(multiplicity):在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。种类:(1)单指令流单数据流SISD(SingleInstructionSingleDatastream)(2)单指令流多数据流SIMD(SingleInstructionMultipleDatastream)(3)多指令流单数据流MISD(MultipleInstructionSingleDatastream)(4)多指令流多数据流MIMS(MultipleInstructionMultipleDatastream)CU:控制部件PU:处理部件MM:内存模块IS:指令流DS:数据流图1.2.1Flynn分类法各类机器结构7、冯泽云分类法1972年美籍华人冯泽云提出用最大并行度来对计算机系统进行分类。最大并行度:指在单位时间内能够处理的最大二进制位数。字宽:在一个字中同时处理的二进制的位数。位宽:在一个位片中能同时处理的字数。例如:同时处理的字宽为n,位宽为m,则最大并行度定义为:图1.2.2按最大并行度的冯氏分类法由图1.2.2可得出4类不同处理方法的计算机系统结构:种类:(1)字符串位串WSBS(WordSerialandBitSerial)串行计算机;m=1,n=1;例如:EDVAC(1,1)(2)字并位串WPBS(WordParallelandBitSerial)传统的单处理机;m=1,n>1;例如:Pentium(32,1)(3)字符串位并WSBP(WordSerialandBitParallel)并行计算机、MPP、相联计算机;m>1,n=1;例如:MPP(1,16384),STARAN(1,256),DAP(4)字并位并WPBP(WordParallelandBitParallel)全并行计算机;m>1,n>1;例如:IILIACIV(64,64),ASC(64,32),PEPE,Cmmp8、汉德勒分类法由WolfganHandler于1977年根据并行度和流水线提出的一种分类方法。又称为ESC(ErlangeClassificationScheme)分类法。根据并行度和流水线分类,计算机硬件结构分成三个层次,并分别考虑它们的可并行性和流水处理程度。这三个层次是:(1)程序级k:程控部件(PCU)的个数;(2)操作级d:算术逻辑部件(ALU)或处理部件(PU)的个数;(3)逻辑级w:每个算术逻辑部件包含的逻辑线路(ELC)的套数。据此可以把计算机系统的结构用公式t(系统型号)=(k,d,w)表示。例如:t(EDVAC)=(1,1,1) t(Pentium)=(1,1,32)t(STARAN)=(1,8192,1)t(ILLIACⅣ)=(1,64,64)t(Cmmp)=(16,1,16)为了表示流水线,采用:t(系统型号)=(k×k',d×d',w×w')其中:k'表示宏流水线中程控部件的个数d'表示指令流水线中算术逻辑部件的个数w'表示操作流水线中基本逻辑线路的套数例如:Cray1有1个CPU,12个相当于ALU或PE的处理部件,最多8级流水线,字长为64位,可以实现1~14位流水线。表示为:t(Cray1)=(1,12×8,64(1~14))又例如:t(PEPE)=(1×3,288,32)t(TIASC)=(1,4,64×8)三、计算机系统设计计算机系统结构的设计是整个计算机系统设计当中极为重要的内容,因此也必须遵守计算机系统设计的原则方法和步骤。下面介绍目前在计算机系统设计中应该遵守的定量原理。(一)计算机系统的设计原则1、加快经常性事件的速度(Makethecommoncasefast)这是最重要也是被广泛采用的设计准则。道理十分明显,使经常性事件的处理速度加快能明显提高整个系统的性能。2、Amdahl定律IBM公司的设计师Amdahl在1967年提出的Amdahl定律告诉我们:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。性能提高的衡量指标为加速比,其定义为:在Amdahl定律中,加速比与两个因素有关:一是被改进部分的使用频率的大小即可改进部分所占时间的百分比:二是被改进部分本身在改进后所取得的效果,即改进部分的加速比,也可以用时间参量来表示:改进之后整个任务的执行时间为(改进前时间-(改进前可改时间-改进后可改时间)):其中T0为改进前的整个任务的执行时间。改进后整个系统的加速比达到:其中(1-Fe)表示不可改进部分,显然当Fe为0,即没有改进部分时,Sn为1,所以性能的提高受改进部分所占比例的限制。当Se→∞时,则Sn=1/(1-Fe),因此,可获取性能改善极限值受Fe值的约束。3、访问局部性原理程序访问局部性原理说明了计算机在程序执行过程中呈现出的一种规律,即程序往往重复使用它刚刚使用过的数据和指令。局部性分为时间上的局部性和空间上的局部性两种。所谓时间局部性是指近期被访问的代码,很可能不久又将再次被访问;空间局部性是指地址上相邻近的代码可能会被连续地访问。目前存储系统层次结构的设计就是以此为理论基础。(二)计算机系统设计的主要任务1、确定用户对计算机系统的功能、价格和性能要求功能要求包括:应用领域、软件兼容性、操作系统的要求、各种通用国际标准的要求。价格要求:考虑用户或市场对计算机功能和性能要求的前提下,尽量降低成本。性能要求包括:速度、容量、输入/输出的种类、可靠性、可维护性、安全性、容错能力、人机交互的能力等等。2、软硬件的平衡硬件实现:速度快、成本高;灵活性差、占用内存少。软件实现:速度低、复制费用低;灵活性好、占用内存多。设计必须考虑硬件和软件的合理分配,同时还应考虑设计的复杂性及软硬件实现的难易程度。3、设计出符合今后发展方向的系统结构一个成功的系统结构应该能经得住软、硬件技术的发展以及应用的变化。因此设计者必须特别注意计算机应用和计算机技术的发展趋势,这样才能延长一种机器的使用寿命。发展趋势:硬件实现的比例越来越高,软件所占的成本越来越高。(三)计算机系统设计的主要方法基于计算机系统层次结构的基础上,其设计方法可以有以下的三种:1、由上向下(Top-Down)设计过程:面向应用的数学模型→面向应用的高级语言→面向这种应用的操作系统→面向操作系统和高级语言的机器语言→面向机器语言的微指令系统和硬件实现。应用场合:专用计算机的设计(早期计算机的设计)。特点:对于所面向的应用领域,性能(性能价格比)很高。随着通用计算机价格降低,目前已经很少采用。2、由下向上(Bottom-Up)(通用计算机系统的一种设计方法)设计过程:根据当时的器件水平,设计微程序机器级和传统机器级。根据不同的应用领域设计多种操作系统、汇编语言、高级语言编译器等。最后设计面向应用的虚拟机器级。应用场合:在计算机早期设计中(60~70年代)广为采用。特点:容易使软件和硬件脱节,整个计算机系统的效率降低。3、中间开始(Middle-Out)设计过程:首先定义软硬件的分界面。然后各个层次分别进行设计。应用场合:用于系列机的设计。特点:软硬件的分界面在上升,硬件比例在增加。硬件价格下降,软件价格上升。软硬件人员结合共同设计。四、计算机的性能评价(一)CPU性能CPU的性能是指CPU执行程序所用时间,也就是CPU连续地执行一条条指令的时间,不包括I/O等待时间。CPU的性能取决于三个要素:①时钟频率;②每条指令所花的时钟周期数CPI;③指令条数IC。则:其中Ii表示i指令在程序中执行的次数,CPIi表示i指令所需的平均时钟周期数,n为指令种类数。(二)MIPS和MFLOPS1、MIPS(millioninstructionspersecond)它表示每秒百万条指令数,对于一个给定的程序,MIPS定义为:程序的执行时间为:其中:Te为程序执行时间,CPI为每条指令的平均时钟周期,时钟频率为每秒周期数即每周期的时间的倒数。显然,机器愈快其MIPS愈高,但MIPS对指令系统和程序的依赖性很大,故在某些情况下不能准确反映系统的性能。2、MFLOPS(millionfloatingpointoperationspersecond)表示每秒百万次浮点操作次数,MFLOPS定义为:显然,MFLOPS可以用来衡量机器浮点操作的性能,因为同一程序在不同机器上执行的指令可能不同,但执行的浮点运算却是完全相同的。但是,MFLOPS不能体现机器的整体性能;MFLOPS取决于机器和程序两个方面,因为不同机器浮点运算集不同,因此不同的浮点操作类型运算时间不同。(三)系统性能测试为了能进行合理的评价,通常采用不同类型的程序进行测试,经过实践选择出的这些程序称为基准测试程序。1、基准测试程序(1)实际应用程序:例如C语言的编译程序,Tex正文处理程序,SpiceCAD工具软件等。(2)核心程序:从实际程序中抽取小量关键的循环程序段,例如Livermore24Loop(24个循环段)、Linpack(解线性方程组)。(3)综合测试程序:它类似于核心程序,但考虑到各种不同的操作和不同种类的程序。如Whetstone和Dhrystone等。2、性能评价结果处理根据哪个数据来确定机器的性能呢?一般有以下三个:假设有n个测试程序,Ri为第i个测试程序的速率;Ti为第i个测试程序所需的时间,则:速率算术平均值Am:速率几何平均值Gm:通常用于各机器之间的比较,可以以某一机器为标准,对其他机器进行规格化,再求其几何平均值的比。速率加权平均值Am:其中,ωi是第i个程序在任务中所占的比重。五、计算机系统结构的发展(一)冯·诺依曼机型及其演变1946年普林斯顿高级研究所数学家冯·诺依曼(VanNenmann)提出了一个完整的现代计算机雏形,它由运算器、控制器、存储器、输入输出四部分组成,主要特点是程序存储,指令驱动,集中控制,见图1.5.1所示。一般认为其主要特征有以下几点:(1)机器以运算器为中心。除了完成运算以外,机器内部的数据传输都经过运算器。各部件的操作以及它们之间的协调由控制器集中控制。(2)存储器按一维线性编址,顺序访问存储器地址单元,每个存储单元的位数固定。(3)程序存储,指令和数据无区别存放在存储器中,指令和数据一样可以送到运算器中进行运算,指令与数据的区别主要在于地址区域不同。(4)指令在存储器中按其执行顺序存放,由一个顺序控制器(亦称程序计数器或指令计数器)指定即将被执行的指令地址。每读取一条指令后,计数器自动按顺序递增。(5)指令由操作码和地址码组成,操作码指明操作类型,地址码指明操作数的地址和结果地址。(6)数据以二进制表示。经历几十年的不断改进与发展,现代的计算机虽然仍然以冯·诺依曼的结构为基础,但已有了许多重大改进,主要改进是:存储器为中心,总线结构,分散控制。具体表现在下列几个方面。(1)计算机处理的数据类型不断增加新的表示形式,除了通常的定点数、浮点数、十进制数、逻辑数字符等基本数据类型外,还有向量、堆栈、自定义数据、汉字等。(2)指令种类与寻址方式增加,增加了支持操作系统与语言编译的指令,增加了多种寻址方式如变址寻址、间接寻址、相对寻址、基址寻址以及为了存储管理而采用的页面寻址等方式。(3)改变了以CPU为中心的数据传送方式,以存储器为中心,存储系统中采用了虚拟存储,高速缓存,为了提高速度出现了多存储体的并行存取或交叉存储的结构,改变了一维线性编址的方式。采用了指令与数据分体的存储方式,以有利于并行操作。(4)处理器采用了多种新技术,如堆栈的采用、支持过程调用及递归、表达式的计算,采用指令流水、操作流水的技术与多功能部件,多处理器的并行技术,提高了CPU的功能,改进并行性能。(二)系统结构并行技术的发展计算机系统结构发展的重要方向就是并行处理。并行处理技术的发展经过以下几个阶段:1、串行阶段传统的程序存储计算机。2、先行处理最初的并行,通过预取指令使取指令与指令执行操作重叠。3、功能并行(1)采用并行多功能部件;(2)中断技术,使输入输出与CPU操作并行;(3)多体存储器交叉并行访问技术,使存储器与存储器及CPU并行;(4)整数运算,浮点运算以及指令执行的取指、译码、读操作数由各自独立的功能部件完成。4、流水线技术(1)一个任务分成多个子任务同时执行;(2)用软件控制循环执行,称为标量流水线处理机。5、向量处理机(1)以硬件或固件的结构执行,称为显式向量处理机;(2)实现存储器到存储器和寄存器到寄存器之间的并行处理。6、SIMD、MIMD如阵列机、联想机、多处理机与多计算机。(三)影响计算机系统结构的因素1、软件对系统结构的影响由于软件相对于硬件的成本越来越贵,并且已积累了大量成熟的系统软件和应用软件,用户希望能在性能更好的机器上运行原来开发的软件,以便保护软件开发投资,为此采用以下几种措施。(1)系列机与兼容机:所谓系列机是指同一厂家生产的具有相同系统结构,但采取了不同的组成和实现技术的一系列计算机系统。如IBM系列机具有以下结构特点:相同的指令系统,采用顺序执行、重迭、流水和并行处理方式。相同的32位字长,数据通路宽度为8位、16位、32位、64位。采用系列机方法的主要优点:系列机之间软件兼容,可移植性好;插件、接口等相互兼容;便于实现机间通信;便于维修、培训;有利于提高产量、降低成本。采用系列机方法的主要缺点:限制了计算机系统结构的发展。如PC系列机,其系统结构最落后,使用也最普及(2)模拟和仿真:用软件的方法在一台现有的计算机系统上实现另一台计算机的指令系统叫模拟。被模拟的机器是不存在的,称为虚拟机,执行模拟程序的机器称为宿主机。用微程序(即用硬件、固件或软件、硬件、固件混合)的方法在一台现有的计算机系统上实现另一台计算机的指令系统叫仿真。执行微程序的机器称为宿主机,被实现的称为目标机。模拟是用宿主机的指令编写出一段程序来解释虚拟机上的一条指令;仿真是直接用宿主机的一段微程序解释执行目标机的每条指令。从而实现软件的移植。(3)统一标准高级语言:采用同一种不依赖于任何具体机器的高级语言编写系统软件和应用软件。但至今还没有这样一种高级语言。2、应用需求对系统结构的影响应用的需求一直是计算机发展的动力。3、器件对系统结构的影响在相当长的一段时间内,器件的改进是提高计算机速度的主要途径,器件发展对提高处理机主频(Fz)起决定性作用。器件发展的特点:集成度迅速提高、速度已接近极限、价格直线下降、可靠性越来越高。第一章概论关键词汇1、计算机系统结构计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性,是硬件子系统的概念结构及其功能特性。系统结构一般应包括以下几个方面:机器内的数据表示、寻址方式、寄存器定义、指令系统、中断机构、存储体系和管理、机器工作状态的定义和切换、输入输出结构、信息保护等。2、指令流机器执行的指令序列。3、数据流由指令流调用的数据序列,包括输入数据和中间结果。4、多倍性在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。5、Amdahl定律IBM公司的设计师Amdahl在1967年提出的Amdahl定律告诉我们:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。性能提高的衡量指标为加速比,其定义为:6、字宽在一个字中同时处理的二进制的位数。7、位宽在一个位片中能同时处理的字数。8、MIPS它表示每秒百万条指令数,对于一个给定的程序,MIPS定义为:9、MFLOPS表示每秒百万次浮点操作次数,MFLOPS定义为:10、CPU的性能是指CPU执行程序所用时间,也就是CPU连续地执行一条条指令的时间。11、程序访问局部性原理程序访问局部性原理说明了计算机在程序执行过程中呈现出的一种规律,即程序往往重复使用它刚刚使用过的数据和指令。局部性分为时间上的局部性和空间上的局部性两种。所谓时间局部性是指近期被访问的代码,很可能不久又将再次被访问;空间局部性是指地址上相邻近的代码可能会被连续地访问。12、最大并行度指在单位时间内能够处理的最大二进制位数。13、透明性在计算机技术中,一种本来存在的事物或属性,但从某种角度看似乎不存在,这称为透明性。14、系列机所谓系列机是指同一厂家生产的具有相同系统结构,但采取了不同的组成和实现技术的一系列计算机系统。15、模拟用软件的方法在一台现有的计算机系统上实现另一台计算机的指令系统叫模拟,是用宿主机的指令编写出一段程序来解释虚拟机上的一条指令;16、仿真用微程序(即用硬件、固件或软件、硬件、固件混合)的方法在一台现有的计算机系统上实现另一台计算机的指令系统叫仿真,是直接用宿主机的一段微程序解释执行目标机的每条指令。第一章概论FAQ一、实现程序移植的主要途径有什么?答:统一高级语言、系列机、模拟、和仿真。二、提高计算机系统并行性的主要技术途径有什么?答:提高计算机系统并行性的主要技术途径有时间重叠、资源重复和资源共享。三、计算机系统的Flynn(弗林)分类法是按什么来分类的?共分哪几类?解释其含义。弗林分类法是按指令流、数据流以及多倍性分类的。共分四类。SISD——指令部件只对一条指令处理,只控制一个操作部件操作。如一般的串行单处理机。SIMD——由单一指令部件同时控制多个重复设置的处理单元,执行同一指令下不同数据的操作。如阵列处理机。MISD——多个指令部件对同一数据的各个处理阶段进行操作。这种机器很少见。MIMD——多个独立或相对独立的处理机分别执行各自的程序、作业或进程。例如多处理机。四、假设高速缓存Cache工作速度为主存的5倍,且Cache被访问命中的概率为90%,则采用Cache后,能使整个存储系统获得多高的加速比?能使整个存储系统获得3.57的加速比。第一章绪论拓展资源—计算机系统结构的发展现状和方向一、从CISC到RISC70年代以前的CBC结构下的计算机,将许多复杂指令通过硬件来实现,很大程度简化了目标程序,CISC指令长度不一,可以接节省存储空间,而且,CISC指令可以直接对存储器操作。从80年代,随着VLSI技术的发展,电路集成度大大提高,而由于CISC中指令系统庞大寻址方式,指令格式较多且长度不一,许多复杂指令的控制逻辑及其不规整,用VLSI工艺实现存在很大困难,增加了硬件复杂度和设计成本,同时大量DRAM做主存储器,主存与控存速度相当,复杂指令用微程序实现和简单指令的子程序实现效率相当,而且,大量的数字统计表明20%指令占据了80%的处理机时间,许多指令使用频度低。针对以上这些问题,1980年,PATTERSON和DITZEL提出了精简指令系统计算机的设想,通过精简,指令系统使计算机结构变得简单,合理,有效。IBM在1980年推出了PC/XT,然后又推出了RISC系统/6000。SUN也在其SPARC处理器中采用了这个概念。二、RISC技术的主要内容一般来说,CPU的执行速度受程序中的指令数L,每条指令执行所需的周期数CPI和每个周期的时间T3个因素的影响。RISC技术主要从减少CP入手,采取了以下措施:(1)精简指令系统。大多数典型的RISC指令系统通过采用寄存器堆减少缓存次数,减少CPI来提高CPU速度。同时,采用简单的指令格式,固定的指令字长和简单的寻址方式,让指令的执行尽可能安排在一个周期内完成。(2)流水线和延迟转移技术。采用流水线技术的方式工作,取指令和执行指令并行进行,虽然一条指令的执行需要几个周期的时间,但从平均效应来看,每条指令的周期数大大减少,甚至达到每条指令只需一个周期。同时为了避免转移指令中出现重叠方式预取的下一条指令作废的浪费,提出了延迟转移的思想,在这两类指令之后分别安排一条与它们不存在依赖关系的可立即执行的指令,确保流水线的高效运行。(3)采用LOAD,STORE结构和高速缓存结构。RISC技术只允许LOAD指令和STORE指令执行存储器操作,其他指令只能对寄存器进行操作,使大多数指令的功能得到简化。缩短了执行时间。同时,RISC机器还设置了较大容量的高速缓存,以扩展存储器的带宽,满足CPU频繁取指的需要,提高流水线的效率。(4)重叠寄存器窗口技术。重叠寄存窗口技术的基本思想是:在机器中配置一个很大的寄存器群,将其划分给若干个过程使用,每个过程所用的一组寄存器又可分为三部分,第一部分用来与高一级(本过程的主调过程)交换参数;第二部分只供本过程使用;第三部分用来与低一级过程(本过程的受调过程)交换参数。每个过程的第三部分寄存器与低一级的第一部分寄存器合用相同的物理寄存器,以达到寄存器的重叠使用。利用该重叠窗口进行过程的参数交换没有任何延迟。(5)在逻辑上采用以硬件为主,软件为辅的技术。RISC控制器采用组合逻辑部件,而不采用微程序控制。首先微程序对微码的解释和执行很难在一个机器周期内完成,这与RISC机器在一个机器周期内执行一条指令的思想是相违背的;其次,RISC采用硬布线控制逻辑的控制部件所占面积要比微程序存储器少得多,可以利用所节余的面积安放寄存器组或其它逻辑电路。(6)采用优化编译程序。RISC指令集的简化使用CPU执行同样一个程序所需的指令数I比CISC所需的指令数I多,但通过优化编译程序和其他方法可减少指令数I。另外,还可优化调整指令的执行顺序,以尽量减少机器的空等时间。(7)指令流调整技术。为了使RISC处理机中的指令流水线高效地工作。当发现指令流有断流可能时,调整指令序列,可以通过重命名来取消数据相关等,从而提高流水线执行效率。(8)指令取消技术。在使用指令取消技术的处理机里,所有指令都可以决定下面待执行的指令是否应该取消,如果取消,相当于执行一条空指令,不影响程序执行环境。三、RISC技术的优缺点实践证明,采用RISC结构可以带来如下好处:(1)精简指令系统设计适合超大规模集成电路实现。指令条数相对较少,寻址方式简单,指令格式规整,控制器的译码和执行硬件相对简单,VLSI片中用于实现控制器的这部分面积所占的比例明显减少。(2)可以提供直接支持高级语言的能力,简化编译程序的设计。指令总数的减少,缩小了编译过程中对功能类似的机器指令进行选择的范围,减轻了对各种寻址方式进行选择,分析和变换的负担,易于更换或取消指令,调整指令顺序,提高程序的运行速度。而且,由于主要操作在寄存器间进行,及寄存器重叠窗口的采用,直接支持子程序和过程调用的高级语言处理。(3)可提高机器的执行速度和效率,降低设计成本,提高系统的可靠性。指令系统的精简可以加快指令的译码,控制器的简化可以缩短指令的执行延时等等,这些都可以提高程序执行的速度。同时也缩短了设计周期,减少了设计错误,降低了设计成本,提高了系统的可靠性。四、计算机系统结构的新发展VLIWVLIW(VERYLONGINSTRUCTIONWORD)超长指令集架构,是微处理器设计领域中的一种越来越流行的技术,采用了先进的EPIC(清晰并行指令)设计。这种类型的CPU芯片能从应用程序中提取高度并行且长度稍短的指令组成定长长指令数据,并把这些机器指令均匀地分配给芯片中的众多执行单元。VLIW最大优点是通过编译器静脉调度发掘程序中潜在的并行性,简化了处理器的结构,删除了处理器内部许多复杂的控制电路,这些电路通常是超标量芯片(CISC和RISC)协调并行工作时必须使用的。VLIW的结构简单,也能够使其芯片制造成本降低,价格低廉,能耗少,而且性能也要比超标量芯片高得多。目前基于这种指令架构的微处理器主要有INTEL的IA-64和AMD的X86-64两种。第二章存储系统课堂笔记主要知识点掌握程度本章重点介绍了存储系统的相关知识,包括存储系统的层次结构及特征,重点介绍了并行存储器、高速缓冲存储器、虚拟存储器的功能/结构及原理,最后简要介绍了存储保护的常用方法。知识点整理一、存储系统概述(一)存储系统的形成在计算机系统中,存在着许多个不同介质、不同性能,不同工作方式的存储器,其目的都是存放计算机系统中所需要处理的程序和数据。储存系统是随计算机技术的不断发展而逐步形成的。首先由于计算机的结构由以CPU为中心转变到以主储存器为中心,使得访问存储器的部件不只是单一通路的CPU,而且还有输入输出设备,有时还需要接受多个CPU,多个I/O部件的访问,因此对主存的访问速度要求越来越高;其次由于计算机应用的不断发展,程序越来越大,数据越来越多,对机器处理能力的要求不断提高,主存的容量要求也急剧增加;第三,由于半导体技术的不断发展,CPU速度改进很快,主存储器要与其合理地匹配。计算机系统对存储器的希望是速度高,能与CPU速度匹配;容量大,能存放下尽可能多的程序数据,系统软件;同时希望价格低廉。一种解决办法是致力于对存储器的介质、器件组成技术的研究,以提供性能良好的新型存储器;另一种解决办法是通过对各种不同性能的存储器之间寻求一种相互联系、缺陷互补的方法,使其组成存储器的系统以满足高性能的要求。所以存储系统是两个或两个以上的速度、容量、价格不同的存储器采用硬件,软件或软、硬件结合的办法联结成一个系统,使得整个系统看起来像一个存储器,其速度接近其中最快的一个,容量接近其中最大的一个,价格接近其中最便宜的一个。(二)存储系统的层次结构通用寄存器:CPU的一部分,汇编和编译器可支配,速度最快。高速缓冲存储器:Cache置于主存储器与CPU之间,对汇编透明,速度比主存快得多。主存储器:存储系统的核心,是用户的编程空间。辅助存储器:软盘、硬盘等,容量大,价格低。脱机大容量存储:磁带机,光盘等。现代计算机的存储系统中,主要采取了以下2种技术:1.在主存与CPU之间增加了一级高速缓冲存储器,使得CPU在对主存访问时,所面对的存储器具有高速缓存的速度和主存的容量。2.在主存与辅存之间采用了虚拟存储技术,使得CPU在访问主存时,所见到的存储器速度接近主存,容量接近辅存。(三)存储系统的局部性、包含性、一致性局部性:根据局部性原理即程序往往重复访问它刚刚使用过的数据和指令,就有可能将最近期和最经常被访问的那一部分指令和数据预取出来存放到速度更高的存储器中,然后将执行完成或不经常访问的指令和数据不断地替换出去放到容量大而速度慢的存储器中。包含性:是指在容量小的存储器中(称上层)所存放的内容一定是其下层存储器内容的一部分,也就是说在容量大的存储器中,一定能找到上层存储信息的副本。一致性:由于同一信息在各个层次中都存放了它的内容,当在某一层存储器中被修改后,也必须使其在其他存储器的副本,都进行修改,以保持同一信息的一致性。二、并行存储器(一)多体并行访问存储器一个多体的主寄存器结构图如图2.2.1所示,存储器是由m个体组成,设m=2a,每个存储体的容量为n,则n=2b由上述结构可以看出该存储器的频带宽度(指单位时间内所能访问的数据量)B=mW/T,即可以同时访问m条指令或m个数据,但取出的m个数不一定都有用,产生这一缺陷的主要原因是地址寄存器共用一个,每次访问的地址码各体内相同。如果每个存储体分别具有自己的地址寄存器那么上述缺陷可以大大改善。(二)多体并行交叉访问存储器所谓交叉访问是指当存在多个访问源时,这些访问源可以同时向多个体中的任何一个发出访问请求。依据编址方式的不同,可分为高位交叉访问与低位交叉访问两种。1、高位交叉访问图2.2.2示出了高位交叉访问的存储器结构(高位连续地址分别处于不同体中),图中结构具有m个体,每个体内容量为n个字,存储单元的地址由两部分组成,地址码的低位部分为各体内地址,由0~(n-1);高位字段表示了各体的体号,由0~(m-1)。寻址时,地址的高位字段指出寻址的体,低位字段送到该体的地址寄存器(MAR)。存储器的总容量为m×n个字,地址码长度为log2(m×n)位,其中,地址的高字段为log2m位,低位字段为log2由于程序局部性原理,近期所用到的指令和数据往往都集中在一个体内,从而出现了并行访问冲突,如果在多任务多用户的应用状态下,访问冲突较少。2、低位交叉访问图2.2.3示出了低位交叉访问存储器结构(低位连续地址分别处于不同体中),地址码的低位字段为存储体号,高位字段为存储体内的地址,低位字段译码后决定选择哪个存储体的数据。由于编址方式采用连续地址分布在不同存储体中,因此并行性比较好,可以有效地拓宽存储器的频带。为了达到提高主存储器速度的目的,采用了低位交叉方式的存储器,在一个存储器周期内,m个存储体必须分时启动,实际上是一种采用流水线方式工作,因而被广泛地采用,特别是在多处理机,流水线处理机中,一般都采用了这种低位交叉访问的多体存储器。在低位交叉访问的存储器中,影响其性能提高的因素有二点:一是转移指令的出现;二是数据访问时同体产生冲突,两者比较起来,后者的影响更为严重。如何才能减少这种冲突呢?下面以一维数组和二维数组为例,说明解决冲突的方法。(1)一维数组(向量)的无冲突访问存储器按连续地址访问,没有冲突,按位移量为2的变址方式访问,频带宽度降低一半……方法:存储体的个数取质数,且m≥向量长度。例如:Burroughs公司巨型机BSP,存储体个数为17;CRAY-1机存储体个数为31;我国研制的银河巨型机,存储体的个数为37。(2)二维数组的无冲突访问存储器要求:一个n×n的二维数组,按行、列、对角线以及反对角线访问,并且在不同的变址位移量情况下,都能实现无冲突访问。顺序存储:按行、对角线访问没有冲突,但按列访问每次冲突。方法:存储体的个数大于或等于向量长度(数组列数)且取质数,并错位存放。三、高速缓冲存储器(Cache)(一)高速缓冲存储器的功能、结构与工作原理高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的访问速度。为此需要解决2个技术问题:一是主存地址与缓存地址的映象及转换;二是按一定原则对Cache的内容进行替换。Cache的结构和工作原理如图2.3.1所示。主要由三大部分组成:Cache存储体:存放由主存调入的指令与数据块。地址转换部件:建立目录表以实现主存地址到缓存地址的转换。替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。(二)地址映象与转换概念:地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。下面介绍三种地址映象的方式。1、全相联方式地址映象规则:主存的任意一块可以映象到Cache中的任意一块(1)主存与缓存分成相同大小的数据块。(2)主存的某一数据块可以装入缓存的任意一块空间中。全相联方式的对应关系如图2.3.2所示。如果Cache的块数为Cb,主存的块数为Mb,则映象关系共有Cb×Mb种。图2.3.3示出了目录表的格式及地址变换规则。目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。举例:某机主存容量为1M,Cache的容量为32KB,每块的大小为16个字(或字节)。划出主、缓存的地址格式、目录表格式及其容量。容量:与缓冲块数量相同即211=2048(或32K/16=2048)。优点:命中率比较高,Cache存储空间利用率高。缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而应用少。2、直接相联方式地址映象规则:主存储器中一块只能映象到Cache的一个特定的块中。(1)主存与缓存分成相同大小的数据块。(2)主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。(3)主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。图2.3.4示出了直接相联映象规则。可见,主存中各区内相同块号的数据块都可以分别调入缓存中块号相同的地址中,但同时只能有一个区的块存入缓存。由于主、缓存块号相同,因此,目录登记时,只记录调入块的区号即可。图2.3.5示出了主、缓冲地址格式、目录表的格式及地址变换规则。主、缓存块号及块内地址两个字段完全相同。目录表存放在高速小容量存储器中,其中包括二部分:数据块在主存的区号和有效位。目录表的容量与缓存的块数相同。地址变换过程:用主存地址中的块号B去访问目录存储器,把读出来的区号与主存地址中的区号E进行比较,比较结果相等,有效位为1,则Cache命中,可以直接用块号及块内地址组成的缓冲地址到缓存中取数;比较结果不相等,有效位为1,可以进行替换,如果有效位为0,可以直接调入所需块。优点:地址映象方式简单,数据访问时,只需检查区号是否相等即可,因而可以得到比较快的访问速度,硬件设备简单。缺点:替换操作频繁,命中率比较低。举例:上例中,主存容量为1M,Cache的容量为32KB,每块的大小为16个字(或字节)。划出主、缓存的地址格式、目录表格式及其容量。容量:与缓冲块数量相同即211=2048(或32K/16=2048)。3、组相联映象方式组相联的映象规则:(1)主存和Cache按同样大小划分成块。(2)主存和Cache按同样大小划分成组。(3)主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。(4)当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。图2.3.6示出了组相联的映象关系,图中缓存共分Cg个组,每组包含有Gb块;主存是缓存的Me倍,所以共分有Me个区,每个区有Cg组,每组有Gb块。那么,主存地址格式中应包含4个字段:区号、区内组号、组内块号和块内地址。而缓存中包含3个字段:组号、组内块号、块内地址。主存地址与缓存地址的转换有两部分,组地址是按直接映象方式,按地址进行访问,而块地址是采用全相联方式,按内容访问。组相联的地址转换部件也是采用相关存储器实现,见图2.3.7。相关存储器中每个单元包含有:主存地址中的区号E与组内块号B,两者结合在一起,其对应的字段是缓存块地址b。相关存储器的容量,应与缓存的块数相同。当进行数据访问时,先根据组号,在目录表中找到该组所包含的各块的目录,然后将被访数据的主存区号与组内块号,与本组内各块的目录同时进行比较。如果比较相等,而且有效位为“1”则命中。可将其对应的缓存块地址b送到缓存地址寄存器的块地址字段,与组号及块内地址组装即形成缓存地址。如果比较不相等,说明没命中,所访问的数据块尚没有进入缓存,则进行组内替换;如果有效位为0,则说明缓存的该块尚未利用,或是原来数据作废,可重新调入新块。优点:块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。缺点:实现难度和造价要比直接映象方式高。(三)替换策略根据程序局部性规律可知:程序在运行中,总是频繁地使用那些最近被使用过的指令和数据。这就提供了替换策略的理论依据。综合命中率、实现的难易及速度的快慢各种因素,替换策略可有随机法、先进先出法、最近最少使用法等。1、随机法(RAND法)随机法是随机地确定替换的存储块。设置一个随机数产生器,依据所产生的随机数,确定替换块。这种方法简单、易于实现,但命中率比较低。2、先进先出法(FIFO法)先进先出法是选择那个最先调入的那个块进行替换。当最先调入并被多次命中的块,很可能被优先替换,因而不符合局部性规律。这种方法的命中率比随机法好些,但还不满足要求。先进先出方法易于实现,例如Solar-16/65机Cache采用组相联方式,每组4块,每块都设定一个两位的计数器,当某块被装入或被替换时该块的计数器清为0,而同组的其它各块的计数器均加1,当需要替换时就选择计数值最大的块被替换掉。3、最近最少使用法(LRU法)LRU法是依据各块使用的情况,总是选择那个最近最少使用的块被替换。这种方法比较好地反映了程序局部性规律。实现LRU策略的方法有多种。下面简单介绍计数器法、寄存器栈法及硬件逻辑比较对法的设计思路。计数器方法:缓存的每一块都设置一个计数器,计数器的操作规则是:(1)被调入或者被替换的块,其计数器清“0”,而其它的计数器则加“1”。(2)当访问命中时,所有块的计数值与命中块的计数值要进行比较,如果计数值小于命中块的计数值,则该块的计数值加“1”;如果块的计数值大于命中块的计数值,则数值不变。最后将命中块的计数器清为0。(3)需要替换时,则选择计数值最大的块被替换。例如IBM370/65机的Cache用组相联方式,每组4块,每一块设置一个2位的计数器,其工作状态如表2.3.1。表2.3.1计数器法实现LRU策略主存块地址块4块2块3块5块号计数器块号计数器块号计数器块号计数器Cache块0110111111500Cache块1301310300301Cache块2400401410411Cache块3空XX200201210操作起始状态调入命中替换寄存器栈法:设置一个寄存器栈,其容量为Cache中替换时参与选择的块数。如在组相联方式中,则是同组内的块数。堆栈由栈顶到栈底依次记录主存数据存入缓存的块号,现以一组内4块为例说明其工作情况,如表2.3.2所示,表中1~4为缓存中的一组的4个块号。表2.3.2寄存器栈法实现缓存操作初始状态调入2命中块4替换块1寄存器03241寄存器14324寄存器21432寄存器3空113(1)当缓存中尚有空闲时,如果不命中,则可直接调入数据块,并将新访问的缓冲块号压入堆栈,位于栈顶。其他栈内各单元依次由顶向下顺压一个单元,直到空闲单元为止。(2)当缓存已满,如果数据访问命中,则将访问的缓存块号压入堆栈,其他各单元内容由顶向底逐次下压直到被命中块号的原来位置为止。如果访问不命中,说明需要替换,此时栈底单元中的块号即是最久没有被使用的。所以将新访问块号压入堆栈,栈内各单元内容依次下压直到栈底,自然,栈底所指出的块被替换。比较对法:比较对法是用一组硬件的逻辑电路来记录各块使用的时间与次数。假设Cache的每组中有4块,替换时,是比较4块中那一块是最久没使用的,4块之间两两相比可以有6种比较关系。如果每两块之间的对比关系用一个RS触发器,则需要6个触发器(T12,T13,T14,T23,T24,T34),设T12=0表示块1比块2最久没使用,T12=1表示块2比块1最久没有被使用。在每次访问命中或者新调入块时,与该块有关的触发器的状态都要进行修改。按此原理,由6个触发器组成的一组编码状态可以指出应被替换的块。例如,块1被替换的条件是:T12=0,T13=0,T14=0;块2被替换的条件是:T12=1,T23=0,T24=0等等。(四)Cache的一致性问题Cache的内容是主存内容的一部分,是主存的副本,内容应该与主存一致。由于:(1)CPU写Cache,没有立即写主存;(2)I/O处理机或I/O设备写主存。从而造成Cache与主存内容的不一致,如图2.3.8所示。对Cache进行写操作时引起的不一致的解决方法:1、全写法亦称写直达法(WT法-Writethrough)方法:在对Cache进行写操作的同时,也对主存该内容进行写入。优点:可靠性较高,操作过程比较简单。缺点:写操作速度得不到改善,与写主存的速度相同。2、写回法(WB法-Writeback)方法:在CPU执行写操作时,只写入Cache,不写入主存。优点:速度较高。缺点:可靠性较差,控制操作比较复杂。(五)Cache性能分析1、Cache系统的加速比存储系统采用Cache技术的主要目的是提高存储器的访问速度,加速比是其重要的性能参数。Cache存储系统的加速比SP(Speedup)为:其中:Tm为主存储器的访问周期,Tc为Cache的访问周期,T则为Cache存储系统的等效访问周期,H为命中率。可以看出,加速比的大小与两个因素有关:命中率H及Cache与主存访问周期的比值Tc/Tm,命中率越高加速比越大。图2.3.9示出了加速比与命中率的关系。2、Cache的命中率影响Cache命中率的因素很多,如Cache的容量,块的大小,映象方式,替换策略以及程序执行中地址流的分布情况等等。一般地说,Cache容量越大则命中率越高,当容量达到一定程度后,容量的增加命中率的改善并不大;Cache块容量加大,命中率也明显增加,但增加到一定值之后反而出现命中率下降的现象;直接映象法命中率比较低,全相联方式命中率比较高,在组相联方式中,组数分得越多,则命中率下降。四、虚拟存储器(一)概述目的:虚拟存储器是由主存储器和辅助存储器组成,通过必须的软件和硬件的支持,使得CPU可以访问的存储器具有近似于主存的速度和近似于辅存的容量。虚拟存储器通过存储管理部件,使辅存中的内容动态地调入主存,以满足程序对大容量存储器的要求。工作过程:CPU访问主存时所给出的是虚地址VA,必须通过存储管理部件进行转换。如果访问命中主存,则将VA转换成主存的物理地址PA,到主存存取数据或指令(D或I);如果不命中,则说明所需的I或D尚在辅存,则将VA转换成辅存地址,进行辅存与主存之间的信息传输。主要技术问题:虚实地址映象与转换,主存内容的替换(与高速缓存存储器相同)。(二)虚拟存储器的管理方式1、段式管理(1)地址映象:一个用户程序可以包含多个功能不同的程序段,例如主程序、各个子程序、数据块、表格、向量等等。各段的大小可以不同。因此,可以将虚存空间分段,当程序从辅存调入主存时,按段调入,按段分配足够的空间,段内地址连续,只要主存具有足够的连续空间,新调入的段可以存放在内存的任意空间。如图2.4.1所示。为了记录地址映象关系,每一个应用程序(或进程)都建立一个段表。段表的内容主要应包括段长度及在主存的起始地址。每个程序段调入时,应填入段表相应内容。(2)地址转换:主存与虚存的地址格式如下:如图2.4.2所示,当CPU进行访问时,给出的是虚地址VA,首先根据用户号对基址寄存器进行访问找到用户号,取出其段首地址,然后与VA中的段号相加,即得到所要访问的段号,根据此段记录的主存首地址与段内地址相加即可得主存实地址。(3)主要优点:程序模块化的性能好,各段在功能上是相互独立的。便于编制、修改和调试,对某一段的处理对其他各段没有影响。便于程序和数据的共享。因为功能上独立而完整,所以当其他程序需要共享时,可以在主段中装入此段,在段表中列入它的主存首址即可享用。程序的动态链接比较容易。便于实现存储保护。(4)主要缺点:地址变换所需的时间比较长。主存的空间利用不充分。对辅存(磁盘)的管理比较困难。2、页式管理(1)地址映象:页式管理是将主存空间与虚存空间按固定的大小划分成块,每块称为一页。页的大小和划分与程序的逻辑功能无关,由操作系统软件来执行。一般而言,一页的大小应该是512Bit的整数倍,因为辅助磁盘存储的物理块的大小为512Bit。虚页中的页称为虚页,实存中的各页称为实页,各虚页与实页之间按全相联方式映象,也就是虚页中的一页,可以存入主存中的任意一页的位置,如图2.4.3所示。(2)地址转换:主存地址与虚存地址只是页号不同,也就是页的首地址不同,而页内地址是相同的。其地址格式如下:图2.4.4示出了地址转换过程,当CPU给出所要访问的虚地址后,根据用户号访问基址寄存器,求得用户的页表首地址Pa,然后与虚地址中的虚页号P相加,得到该页的表目,由此表目中得到该页存入主存中的实页号为p,将该页号读出与页内地址组装即可得到主存的实际地址。(3)主要优点:主存储器的空间利用率比较高,不得已而浪费的空间每个用户不到一页。页表的管理比较简单,可以不考虑程序的长短;页表的结构也比较简单。地址映象与地址转换速度比较快。按页的管理方式,与对辅存的地址格式是一致的,因而管理起来比较容易。(4)主要缺点:由于页的长度一般比段小,所以虚空间的页数就很多,页表长度很大,占用很大的存储空间(几MB~几十MB)。程序的模块化性能不好。3、段页式管理(1)地址映象:段页式管理是将虚拟存储空间按段式管理,而主存空间按页式管理,存在于虚空间的程序按逻辑关系分段,每一段又可分为固定大小的页;主存则只分成若干相同大小的页。段页式地址映象的方式是虚存的任意一段的任意一页,可以存入主存的任意一个实页空间。如图2.4.5所示。(2)地址转换:为了记录下这种映象关系和进行地址转换,需要三层表:段表基地址表,段表和页表。每个用户在段表基址表中占一行,在段表基地址表中给出该用户的段表长度和段表首地址;每个用户一张段表,每个程序段在段表中占一行,在段表中给出该程序段的页表长度和页表的起始地址;每一段都有一张页表,页表中给出这个程序段的每一页在主存储器中的实页号。图2.4.6示出了段页式管理地址转换过程,CPU根据虚地址用户号U,查找段表基地址表得到该用户的段表首地址As,然后与虚地址中的段号S相加,在段表中查找到页表的首地址,然后再与虚地址中的虚页号P相加,在页表中找到该页在内存的实际页首地址p,再与虚地址中的页内地址组合得到所要访问的主存地址。(3)主要优缺点:综合了段式、页式的优点,但多了一次查表过程,因而降低了速度。(三)虚拟存储器的工作过程在说明虚拟存储器工作过程之前需要先说明两个问题,一是为了加快查表速度所采取的措施;二是虚地址与辅存地址,也就是磁盘地址的转换。下面以页式管理为例。1、快表和目录表为了提高地址转换速度,缩短查表时间,采用一个小容量的、高速的相关存储部件,用来存放当前最经常用到的那一部分页表,采取按内容相联方式进行访问。这样,查页表的时间就相当于访问小容量的相关存储器的时间,从而大大地提高了速度,这个小容量相关存储器称为快表,存放在主存的页表称为慢表。快表的内容包括两部分即虚地址与实地址的对应关系。虚地址中包括用户号及虚页号,对应的是它存入主存的实页号。当进行地址转换时,将虚地址中的用户号和虚页号做为模式与快表中的各表目进行比较。同时也送往主存,查找慢表。如果快表命中,立即可以得到对应的实页号。如果不命中,则由慢表中求出实页号。然后替换快表内容。如图2.4.7所示。目录表法是采用一个小容量的高速存储器(按照内容访问的相关存储器,称为目录表),把那些已经调入的页的地址对应关系存入其中。因为页表的容量是整个虚空间的页数,但实际上被用到的页表内容占整个页表容量的比例很小,因此可以把装入位为“1”的页表表目存入高速的目录表中。在CPU访问时,可先查目录表,凡已入驻主存的地址都记录在此目录表中,一般情况下都可查到它的主存地址。如果在目录表中没有查到,则说明此页尚未进入主存。此时需要由辅存将要访问的页全部送入主存。如图2.4.8所示。2、虚存与外存地址的转换当CPU访问主存时,虚地址通过页表转换成主存地址。当该虚地址所在的页尚没有调入主存时,就应当按照虚地址到辅存中寻找到该页,并通过输入输出操作调入主存。因此需要将虚地址转换成辅存地址。虚地址与磁盘地址(辅存地址)的转换也是建立一个对应关系表称为外页表,它记录了虚地址与磁盘实地址的对应关系,转换过程如图2.4.9所示。外页表的表目是按虚存页号顺序排放的,每个表目内只记录了该虚页对应的磁盘地址及装入位。每一个用户具有一张外页表,外页表存放在主存中,通过执行软件进行表目的查找。外页表的首地址根据虚地址中的用户号来查找,再根据虚页号到外页表中查找该页对应的磁盘地址。3、页式管理虚拟存储器工作过程(1)系统中每个用户都有自己的页表基址寄存器,页表(慢表)及快表,当CPU需要访问时,首先查快表,如果命中则可以得到实页号,然后与页内地址组装成为主存的实际地址。(2)如果在快表中不命中,则通过查慢表得出实页号,同时修改快表内容。(3)如果慢表中仍然没有命中,则说明该页尚未进入主存,发生页面实效,出现缺页中断,系统转入中断处理。在中断处理程序中需完成两项工作:一是查外页表,进行虚地址与磁盘地址的转换,并到磁盘中读取该页。二是查询主存使用状态,如果主存没有存满,则直接将磁盘信息调入,并修改页表及快表;如果主存已满,则需要进行替换。为了方便查询主存占用情况,通常建立一个帧页表(帧页号,内容,虚地址,状态位),其中帧页号字段是指主存的实际页号,内容字段存放用户名或程序名,虚地址字段记录存入该页的虚页号,状态页字段指明虚页的信息是否已调入主存。(四)页面替换策略当发生页面失效时,要从磁盘中调入一页到主存。如果主存储器的所有页面都已经被占用,必须从主存储器中淘汰掉一个不常使用的页面,以便腾出主存空间来存放新调入的页面。由于虚拟存储器技术的理论依据与高速缓冲存储器相同,都是程序局部性原理,所以替换策略基本上是相同的。即:(1)随机算法(RANDrandomalgorithm)(2)先进先出算法(FIFOfirst-infirst-outalgorithm)(3)近期最少使用算法(LFUleastfrequentlyusedalgorithm)(4)最久没有使用算法(LRUleastrecentlyusedalgorithm)(五)虚拟存储器的性能分析虚拟存储器技术,改善了主存容量不足的缺陷,使用户可以使用到近似于辅存的空间,希望获得近似于主存的访问速度。影响访问速度的主要因素是访问快表和页表的命中率,访问虚存的等效访问周期Tv可以用下式计算:其中:Hv是访问主存的命中率;T1是访问主存的时间;T2是磁盘存储器的访问速度。影响命中率的因素有下列几方面:1.页面大小:当页面比较小时,随着页面的增大,命中率明显提高,但当页面增大到一定值时,命中率不再增大,而随着页面的增大而下降。2.主存容量:当主存容量增加时,命中率不断提高;当容量增大到一定程度后,命中率的提高就不大了。3.页面调度方式:页面的调度都是发生在产生缺页中断时进行,因此在程序刚开始运行时命中率很低,为此可以采用预取式调度法,提高命中率。五、存储保护在采用了多用户虚拟存储技术后,在主存中存放的有系统程序也有用户程序,甚至是多个用户的程序。为了防止各用户程序之间访问错误,保护系统程序免受破坏,就要设法使各用户之间,用户与系统程序之间隔离开。下面介绍三种存储保护方式。(一)加界保护方式在采用段式管理的方式下,程序段在内存是连续存放的,因此可以在CPU中设置多个界限寄存器,每一个程序占用一对界限寄存器。当调入时,可以将其上界、下界存入界限寄存器中,当程序运行过程中,每当访问主存时,首先将访问地址与上下界寄存器进行比较,如果在此区域内,则允许访问,否则不允许访问。这种保护方式是对存储区的保护,运用于段式管理。(二)键保护方式在页式或段页式管理中,主存是按页面管理的。将主存的每一页都设置一个存储键,给予一个键号,此键号存放在快表的表目中。对于每个用户程序的各页,也设置一个程序键,给予一个键号。当该页由辅存调入主存时,就将其调入的实页号及其键号登记在快表中,将程序键号,送入程序状态字中。每次访问主存,首先进行键号比较,如果键号相等才允许访问,存储键与程序键键号的分配,由操作系统完成。(三)环保护方式将系统程序和各用户程序按其功能的性质和要求分为几个级别,分别授予不同的权限。各级之间如同同心环的关系由内层向外层级别逐渐降低,各层的环号由操作系统给定,每个程序都具有一个环号,此环号说明该程序只能访问它的同级或低级的程序。为了进一步对信息进行保护,对于那些可以访问页面的访问方式也给予了授权,对内存的信息可以有三种访问操作,即读、写、执行,访问方式就是对这三种访问操作的规定。第二章存储系统关键词汇1、通用寄存器CPU的一部分,汇编和编译器可支配,速度最快。2、高速缓冲存储器Cache置于主存储器与CPU之间,对汇编透明,速度比主存快得多。3、主存储器存储系统的核心,是用户的编程空间。4、辅助存储器软盘、硬盘等,容量大,价格低。5、脱机大容量存储磁带机,光盘等。6、地址映象指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。7、全相联方式地址映象地址映象规则:主存的任意一块可以映象到Cache中的任意一块(1)主存与缓存分成相同大小的数据块。(2)主存的某一数据块可以装入缓存的任意一块空间中。8、直接相联方式地址映象地址映象规则:主存储器中一块只能映象到Cache的一个特定的块中。(1)主存与缓存分成相同大小的数据块。(2)主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。(3)主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。9、组相联映象方式地址映象组相联的映象规则:(1)主存和Cache按同样大小划分成块。(2)主存和Cache按同样大小划分成组。(3)主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。(4)当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。第二章存储系统FAQ一、主存实际频宽与模数m的关系是什么?出现这种现象的原因是什么?指令流与数据流完全随机时,主存实际频宽与模块数m有什么关系?答:并行主存系统的实际频宽随模数m的增加会提高,但不是线性增加,随模数m增大,其实际频宽的增量越来越小。这是因为程序中的指令和数据并不是完全顺序放置和被访问的。程序会有转移,数据分布有一定的随机性。如果指令流和数据流完全随机时,主存的实际频宽将随模数m的增大,大致成平方根的关系增大。二、在页式虚拟储存器中,什么叫页面失效?什么叫页面争用?什么时候两者同时发生?什么时候两者不同时发生?答:要访问的虚页不再实际主存中时,就会发生页面失效。当页面调入主存,主存中的页面位置全部已被其它虚页占用时,就会发生页面增用。当分配给程序的内存已被全部占用之后,只要发生页面失效,就一定会发生页面争用。反之,发生页面失效,并不会发生页面争用。三、什么是堆栈型的替换算法(用式子描述)?答:能满足下列两个关系式的替换算法就是堆栈型的替换算法。即其中,n为分配给程序的实页数,Bt(n)为t时刻在n个实页中的页面集合,Lt为t时刻已处理过的不同虚页的页面数。四、对于二级虚拟存储层次,其等效访问时间与主、辅存的访问时间有什么关系?需提高存储层次的等效访问速度,可采取的措施有哪些?答:存储层次的等效访问时间是主、辅访问时间T1和T2的概率加权平均和,即式中,H为主存命中率。要提高存储层次等效访问速度,可采取的措施有:①当等效访问时间远远大于主访问周期时,可采取提高主存命中率的方法,如,改进替换算法、增大主存容量、调整页面大小、改进页面调度算法等。②当主存命中率H已经很高时,可提高主存的访问速度,以降低T1。③加快内部地址映象和变换,如采用快-慢表层次、增大快表命中率等等。五、CPU写Cache时,会发生Cache与主存的对应复本内容不一致的现象,解决这个问题有什么方法?各需要增加什么开销?答:写回法:CPU只写入Cache,不写入主存,仅当Cache快替换时,才写回主存后在替换。这种方法要求对每个Cache块增加一个修改位的资源开销。写直达法:CPU每次写Cache的同时,也经写直达通路写入主存。这种方法要增加写主存的时间开销。第二章存储系统拓展资源——绿色存储绿色存储系统的流行已经成为一个不争的事实。那么,选择绿色存储系统时,需要考虑哪些要素?绿色存储系统的技术将走向哪里?衡量绿色数据中心的标准目前,如何建立一个标准、理想的绿色数据中心还没有一个明确的定义。规划一个理想的绿色数据中心是一个非常复杂的系统工程,涉及的因素较多,在没有明确的模板、标准的情况下可以从数据中心建筑物本身和数据中心内部设施两个方面进行考虑。首先要保证数据中心建筑物本身的绿色、环保,可以参考美国绿色建筑委员会(USGBC)倡议的有关能源与环境设计的标准——LEED标准。该标准从热岛效应、节能、再生能源、暴雨管理、建筑物再利用、建筑废料管理、地方材料和创新设计等方面,给出了明确的建议和评判标准。其次,对于数据中心内部的运行设备,可以参考Sun公司制订的有关下一代Internet服务器的评价标准,即SWaP标准。该标准从设备占用的空间、消耗的电力、最终提供的服务性能三个维度给出了一个简单的评测计算公式,既SWaP=P/(S*W)。其中P为基准性能测试工具获得的测试值,S为设备在数据中心机架中占用的高度,W为服务器在基准测试时的功耗。什么是绿色存储?绿色存储是一个系统设计方案,在方案的每个设计环节都以降低能耗为宗旨,该方案涉及到存储数据的产品、数据存储的技术、文件系统和软件配置等多方面的因素,其最终目的是用最少的存储容量来满足业务的需求,从而消耗最低的能源。绿色存储产品实际上在产品设计、开发之初就融入了一些环保、节能的理念以保障产品在最低的能耗下提供最佳的效率。下面将从五个方面剖析绿色存储产品的一些设计特点或选择要素,以帮助读者在选择存储产品时进行综合考虑。绿色存储产品的系统设计存储产品结构设计的合理性决定了产品的稳定性、产品的寿命和产品的能耗。在评价一个产品是否属于绿色存储产品时,首先要观察产品中各个部件设计位置的合理性,因为部件的位置直接

温馨提示

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

评论

0/150

提交评论