计算机组成原理之Cache模拟器的实现

计算机组成原理之Cache模拟器的实现
计算机组成原理之Cache模拟器的实现

实验一Cache模拟器的实现

一.实验目的

(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二、实验内容和步骤

1、启动Cachesim

2.根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

Cache概念:高速缓冲存

Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM 速度快,但价格高。程序和数据具有局限性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这样,可大大加快CPU访问存储器的速度,提高机器的运行效率

3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

(1)Cache容量:

启动CacheSim,提示请输入Cache容量,例如1、2、4、8......。此处选

择输入4。

(2)块容量:

如下图所示,提示输入块容量,例如1、2、4、8......。此处选择输入16。

(3)映射方式:

如下图所示,提示输入主存储器和高速缓存之间的assoiativity方法(主存地址到Cache地址之间的映射方式),1代表直接映射(固定的映射关系)、2代表组相联映射(直接映射与全相联映射的折中)、3代表全相联映射(灵活性大的映射关系)。此处选择全相联映射。

(4)替换策略:

如下图所示,提示输入替换策略,1代表先进先出(First-In-First-Out,FIFO)算法、2代表近期最少使用(Least Recently Used,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。此处选择先进

先出。

(5)写策略:

如下图所示,提示输入Cache的读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。此处选写回法

4、读取中的trace文件。

如下图所示,提示输入要测试的路径及名称,此处输入的路径,以及需要读取的trace文件名,此处选择读取。

5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。

如下图所示,读取文件,程序运行结果如下:

(1)高速缓存访问次数: 727230

(2)高速缓存次数:5972

(3)cache存储次数:721258

(4)平均缓存命中率:%

(5)高速缓存命中率:%

访问

次数

读出

次数

写入

次数

平均命

中率

读出命

中率

写入命

中率7272305972721258

% % %

(6)缓存命中率:%

思考:1、Cache的命中率与其容量大小有何关系

(1)当Cache块容量为8B、Cache容量为8KB时,平均命中率为%.

(2)当Cache块容量为8B、Cache容量为16KB时,平均命中率为%.

(3)当Cache块容量为8B、Cache容量为32KB时,平均命中率为%.

(4)当Cache块容量为8B、Cache容量为64KB时,平均命中率为%.(5)当Cache块容量为8B、Cache容量为128KB时,平均命中率为%.

当Cache块容量为8B时,不同Cache容量下的命中率如下图所示:

由上述图中数据及表格数据可知,当Cache块容量一定时,Cache容量越大,其cache的命中率越高。

2、Cache块大小对不命中率有何影响

(1)当Cache块容量为8KB、Cache容量为8B时,平均命中率为%.

(2)当Cache块容量为16KB、Cache容量为8B时,平均命中率为%.(3)当Cache块容量为32KB、Cache容量为8B时,平均命中率为%.

(4)当Cache块容量为64KB、Cache容量为8B时,平均命中率为%.(5)当Cache块容量为128KB、Cache容量为8B时,平均命中率为%.

当Cache容量为8kB时,不同Cache容量下的命中率如下图所示:

Cache

块容量

8 16 32 64

128平均命

中率

% %% % %

由上述图中数据及表格数据可知,当Cache容量一定时,Cache块容量越大,其cache的命中率越高。则其不命中率越低。

3、替换算法和相联度大小对不命中率有何影响

(1)当相联度大小保持一致,均为二路组相联映射时

替换策略为先进先出算法时:

当相联度为二路组相联映射,替换策略为先进先出算法时,此时cache平均命中率为%。

替换策略为近期最少使用算法时:

当相联度为二路组相联映射,替换策略为近期最少使用算法时,此时cache 平均命中率为%。

(2)当替换算法保持一致,均为先进先出算法时:

相联度大小为二路:

当替换策略为先进先出算法时,相联度大小为二路组相联映射时,此时cache平均命中率为%。

相联度大小为四路:

当替换策略为先进先出算法时,相联度大小为四路组相联映射时,此时

cache平均命中率为%。

当替换策略为近期最少使用时,相联度大小为四路组相联映射时,此时cache 平均命中率为%

由上述数据可知,当保持相联度大小一致时,替换策略为近期最少使用算法的命中率高于先进先出算法的命中率。当保持替换策略一致时,相联度大小为二路组相联的命中率高于四路组相联的命中率。

三.实验结果分析

根据实验内容及上述数据结果可知:

1.Cache容量不同时它的命中率也会随之改变;

当Cache块容量一定时,Cache容量越大,其CPU的平均命中率越高

2.Cache 块大小不同时对命中率也会有影响。 Cache 块容量越大,其不命中率越低

3.替换算法和相联度对命中率也有影响.

由实验数据可知,当保持相联度大小一致时,替换策略为近期最少使用算法的命中率高于先进先出算法的命中率。当保持替换策略一致时,相联度大小为二路组相联的命中率高于四路组相联的命中率。其中替换算法对命中率的影响比较大,而相联度大小对命中率的影响小一些,在实际工作中为了提高命中率我们应该选择合适的算法。

具体实验数据如下表所示:

(1)当输入cache 容量为8b ,cache 块容量为32kb 时出现以下数据:

(2)当Cache 块容量为8B 时,不同Cache 容量下的命中率如下图所示: Cache 容量

8

16

32

64

128

平均命中率

%

%

%

%

% (3)当Cache 容量为8kB 时,不同Cache 容量下的命中率如下图所示:

访问次数

读出次数

写入次数

平均命中率

读出命中率

写入命中率

727230

5972

721258

%

%

%

(4)当控制相联度为2或4时,改变替换策略cache的命中率如下图:

四.实验心得

1.通过此次的实验我发现当输入的cache容量一定时,改变cache块容量的大小则cache的命中率会改变,规律是cache块容量的值越大,则cache命中率越高,反之亦然。

2.当cache块容量一定时,cache命中率因为cache容量变大而变大。

3.通过这次的试验我发现书本上的很多理论都是要自己做,这样才会对实验结果及的更加牢固。以后要好好学习多做实验争取发现书本上没有写的东西这样才可以将这门课学好。

4.准备越充分,实验越顺利。

古人云,磨刀不误砍柴工。前期的知识储备、文献储备、材料准备、方法准备可以避免手忙脚乱,充分的预实验使你充满信心。一步一个脚印,就不必“从头再来”。最不能容忍的是在开始的几步偷懒,造成后面总有一些无法排除的障碍。

linux内核之内存管理

Linux内核之内存管理 作者:harvey wang 邮箱:harvey.perfect@https://www.360docs.net/doc/ca9093723.html, 新浪博客地址:https://www.360docs.net/doc/ca9093723.html,/harveyperfect,有关于减肥和学习英语相关的博文,欢迎交流 把linux内存管理分为下面四个层面 (一)硬件辅助的虚实地址转换 (二)内核管理的内存相关 (三)单个进程的内存管理 (四)malloc软件 (一)处理器硬件辅助的虚实地址转换(以x86为例) 在x86中虚实地址转换分为段式转换和页转换。段转换过程是由逻辑地址(或称为虚拟地址)转换为线性地址;页转换过程则是将线性地址转换为物理地址。段转换示意图如下 X86支持两种段,gdt和ldt(全局描述段表和局部描述符段表),在linux中只使用了4个全局描述符表,内核空间和用户空间分别两个gdt,分别对应各自的代码段和数据段。也可以认为在linux中变相地disable了x86的段式转换功能。 页转换示意图如下

在linux中x86 的cr3寄存器(页表基地址寄存器)保存在进程的上下文中,在进程切换时会保存或回复该寄存器的内容,这样每个进程都有自己的转换页表,从而保证了每个进程有自己的虚拟空间。 (二)内核管理的内存相关 从几个概念展开内存管理:node、zone、buddy、slab 1、Node SGI Altix3000系统的两个结点 如上图,NUMA系统的结点通常是由一组CPU(如,SGI Altix 3000是2个Itanium2 CPU)和本地内存组成。由于每个结点都有自己的本地内存,因此全系统的内存在物理上是分布的,每个结点访问本地内存和访问其它结点的远地内存的延迟是不同的,为了优化对NUMA 系统的支持,引进了Node 来将NUMA 物理内存进行划分为不同的Node。而操作系统也必须能感知硬件的拓扑结构,优化系统的访存。

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

第二章计算机组成原理练习题

一、判断题 1. 在使用配置了触摸屏的多媒体计算机时,可不必使用鼠标器。 2. 盘和存之间以簇为单位交换数据。 3. 光盘是一种可读不可写的存储器。 4. VGA是显示器主机间的接口。 5. 激光打印机使用的墨水质量很高。 6. 扫描仪工作时,将被扫描的图件正面朝上。 7. 数码相机的成像技术与传统相机的成像技术基本相同。 8. CMOS是一种易失性存储器。 9. SRAM比DRAM速度慢。 10.ROM是非易失性存储器。 11.利用Cache能加快程序的运行速度,其依据的原理是Cache速度快。 12.主存储器的编址单位是字节。 13.I/O控制器可以完全脱离CPU控制I/O操作的全过程。 14.CPU总线、存储器总线和I/O总线统称系统总线。 15.I/O接口就是用于连接I/O设备的各种插头插座。 16.总线控制器包含在主板的芯片组。 17.USB接口按双向并行方式传输数据。 18.ALU与浮点运算器可以同时进行整数和实数的运算。 19.CPU主频即CPU总线频率。 20.计算机常用的输入设备为键盘、鼠标,常用的输出设备有显示器、打印机。21.不同厂家生产的计算机一定互相不兼容。 22.PC机的主存储器包含大量的存储单元,每个存储单元都可以存放8个Byte。 23.在使用输入设备进行输入时,目前还只能输入文字、命令和图像,无法输入声音。 24.为了提高CPU访问硬盘的工作效率,硬盘通过将数据存储在一个比其速度快得多的缓冲区 来提高与CPU交换的速度,这个区就是高速缓冲区,它是由DRAM芯片构成的。 25.在一台已感染病毒的计算机上读取一CD-ROM光盘中的数据,该光盘也有可能被感染病毒。 26.存储容量是数码相机的一项重要性能,不论拍摄质量如何,存储容量大的数码相机可拍摄 的相片数量肯定比存储容量小的相机多。 27.绘图仪、扫描仪、显示器、音箱等均属于输出设备。 28.PC机的主板又称为母板,上面可安装CPU、存储器、总线、I/O控制器等部件,它们是 PC机的核心。 29.由于硬盘的外部传输速率要小于部传输速率,所以外部传输速率的高低是评价硬盘整体性 能的决定性因素。 30. PC机中常用的外围设备都通过各自的扩充卡与主板相连,这些扩充卡只能插在主板上的 PCI总线插槽中。 31.大部分数码相机采用CCD成像芯片,CCD芯片中有大量的CCD像素,像素越多影像的分辨 率(清晰度)就越高,生成的数字图像也越小。 32. 高速缓存(Cache)可以看做主存的延伸,与主存统一编址,接收CPU的访问,但其速度要 比主存高得多。 33. 即插即用就是不需要设备驱动程序。 34. USB接口是一种通用的串行接口,通常连接的设备有移动硬盘、优盘、鼠标器、扫描仪

计算机组成原理概念

总线:连接多个部件的信息传输线,是各个部件共享的传输介质。在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的消息。分为片内总线,系统总线和通信总线。 时钟周期:也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。 机器周期:完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成 存储容量:存储容量是指存储器可以容纳的二进制信息量,用存储器中存储地址寄存器MAR 的编址数与存储字位数的乘积表示。即:存储容量 = 存储单元个数 * 存储字长 立即寻址:立即寻址的特点是操作数本身设在指令字内,即形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。数据是采用补码的形式存放的把“#”号放在立即数前面,以表示该寻址方式为立即寻址。 直接寻址:在指令格式的地址字段中直接指出操作数在内存的地址ID。在指令执行阶段对主存只访问一次。 计算机系统:由计算机硬件系统和软件系统组成的综合体。 计算机硬件:指计算机中的电子线路和物理装置。 计算机软件:计算机运行所需的程序及相关资料。 主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。 CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成; PC:程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址。IR:指令寄存器,其功能是存放当前正在执行的指令。 CU:控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序列。 ALU:算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。 ACC:累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。MAR:存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。 MDR存储器数据缓冲寄存器,在主存中用来存放从某单元读出,或要写入某存储单元的数据。I/O输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。 存储单元:可存放一个机器字并具有特定存储地址的存储单位。 存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。 存储字:一个存储单元所存二进制代码的逻辑单位。 存储字长:一个存储单元所存二进制代码的位数。 机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。 指令字长:一条指令的二进制代码位数。 微指令:取指周期:PC->MAR,1->R,M(MAR)->MDR,MDR->IR,OP(IR)->CU,(PC)+1->PC 间指周期:Ad(IR)->MAR,1->R,M(MAR)->MDR 执行周期:MDR->MAR,Ad(IR)->MAR,取数指令“LDA M”:1->R,M(MAR)->MDR,MDR->ACC存数指令“STA M”:1->W,ACC->MDR,MDR->M(MAR)加法指令“ADD M”:1->R, M(MAR)->MDR, (ACC)+(MDR)->ACC 1什么是总线?总线传输有何特点?为了减轻总线的负载,总线上的部件都应具备什么特点?解:总线是多个部件共享的传输部件;总线传输的特点是:某一时刻只能有一路信息在总线上传输,即分时使用;为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。

Cache的工作原理

前言 虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。 若CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力。 如500MHz的PⅢ,一次指令执行时间为2ns,与其相配的内存(SDRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来? 如何减少CPU与内存之间的速度差异?有4种办法: 一种是在基本总线周期中插入等待,但这样会浪费CPU的能力。 另一种方法是采用存取时间较快的SRAM作存储器,这样虽然解决了CPU与存储器间速度不匹配的问题,但却大幅提升了系统成本。 第3种方法是在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache法。 还有一种方法,采用新型存储器。 目前,一般采用第3种方法。它是PC系统在不大增加成本的前提下,使性能提升的一个非常有效的技术。 本文简介了Cache的概念、原理、结构设计以及在PC及CPU中的实现。 Cache的工作原理 Cache的工作原理是基于程序访问的局部性。 对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来

就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。 数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。 根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。 系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。 CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。 命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。 只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache 的命中率还是相当高的。 一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。在这种情况下,命中率都在90%以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它拷进Cache,以备下次访问。

实验1 Cache性能分析

实验1 Cache性能分析 1 实验目的 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache 2 实验平台 采用MyCache模拟器。 MyCache模拟器的使用方法: (1) 双击MyCache.exe,启动模拟器。 (2) 系统打开操作界面,如下图所示: (3) 写不命中时的调块策略。可以直接从列表中选择。 (4) 访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。 3 实验内容和步骤 3.1 Cache容量对不命中率的影响 (1) 启动MyCache。 (2) 单击“复位”按钮,将各参数设置为默认值。 (3) 选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 (4) 选择不同的Cache容量,包括2KB,4 KB,8 KB,16 KB,32 KB,64 KB,128 KB和256 KB,分别执行模拟器(单击“执行到底”按钮就可执行),然后在表1.1中记录各种情况下的不命中率。 地址流文件名:all.din 表1.1 不同容量下Cache的不命中率

(5)指明地址流文件名,以容量为横坐标,画出不命中率虽Cache容量变化而变化的曲线 (6) 根据该模拟结果,能得出什么结论? 相同的地址流文件,Cache容量越大,Cache的不命中率越低,命中率越高,但当Cache 容量达到一定程度时,Cache的命中率将不变。 3.2 相联度对不命中率的影响 (1) 单击“复位”按钮,将各参数设置为默认值。此时的Cache容量为64KB。 (2) 选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 (3) 选取不同的Cache相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮),然后再表1.2中记录各种情况下的不命中率。 地址流文件名:all.din (4) 把Cache的容量设置为256KB,重复(3)步骤填表1.3。

计算机组成原理

1.用二进制代码表示的计算机语言称为(),用助记符编写的语言称为()。 2.计算机系统的三个层次结构由内到外分别是()、系统软件和()。 3.编译方式是使用编译程序把源程序编译成机器代码的(),并以()的形式保留。 4.计算机系统的层次结构中,位于硬件系统之外的所有层次统称为() 5.现在主要采用()结构作为计算机硬件之间的连接方式。 6.存储(),并按()顺序执行,这是()型计算机的工作原理。计 算机中有()在流动:一股是(),即操作命令,其发源地是(),它分散流向各个部件;另一股是(),它受()的控制,从一个部件流向另一个部件,边流动边加工处理。 7. 假定基准程序A在某计算机上的运行时间为100s,其中90s为CPU时间,其余为I/O时间。若CPU速度提高50%,I/O速度不变,则运行基准程序A所耗费的时间是()。 8. 至今为止,计算机中的所有信息仍以二进制方式表示,其理由是()。 A节约元件 B. 运算速度快C. 物理器件性能决定 D. 信息处理方便 9. 对计算机的软、硬件资源进行管理,是()的功能。 A. 操作系统 B. 数据库管理系统 C. 语言处理程序 D. 用户程序 10. 冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是() A.指令操作码的译码结果 B.指令和数据的寻址方式 C.指令周期的不同阶段 D.指令和数据所在的

存储单元 11. 存储字长是指()。 A.存放在一个存储单元中的二进制代码的组合 B.存放在一个存储单元中二进制代码位数 C.存储单元的个数 D.机器指令的位数 12. 当前设计高性能计算机的重要技术途径是() A.提高CPU主频 B.扩大主存容量 C.采用非冯诺依曼 D.采用并行处理技术 13.兼容性是计算机的一个重要性能,通常是指向上兼容,即旧型号计算机的软件可以不加修改地在新型号计算机上运行。系列机通常具有这种兼容性。 14.计算机“运算速度”指标的含义是指每秒钟能执行多少条操作系统的命令 15.利用大规模集成电路技术把计算机的运算部件和控制部件做在一块集成电路芯片上,这样的一块芯片叫做单片机 16.冯·诺依曼计算机体系结构的基本思想是什么?按此思想设计的计算机硬件系统应由哪些部件组成?它们各起什么作用? 第三章 1.根据连线的数量,总线可分为()总线和()总线,其中()总 线一般用于长距离的数据传送。

计算机组成原理之Cache模拟器的实现

实验一Cache模拟器的实现 一.实验目的 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。 (4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。 二、实验内容和步骤 1、启动Cachesim 2.根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。 Cache概念:高速缓冲存 Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。程序和数据具有局限性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这样,可大大加快CPU访问存储器的速度,提高机器的运行效率 3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。Cache容量块容量映射方式替换策略写策略 8 32 全相联映射先进先出算法写回法(1)Cache容量: 启动CacheSim,提示请输入Cache容量,例如1、2、4、8......。此处选择输入4。 (2)块容量: 如下图所示,提示输入块容量,例如1、2、4、8......。此处选择输入16。

(3)映射方式: 如下图所示,提示输入主存储器和高速缓存之间的assoiativity方法(主存地址到Cache地址之间的映射方式),1代表直接映射(固定的映射关系)、2代表组相联映射(直接映射与全相联映射的折中)、3代表全相联映射(灵活性大的映射关系)。此处选择全相联映射。 (4)替换策略: 如下图所示,提示输入替换策略,1代表先进先出(First-In-First-Out,FIFO)算法、2代表近期最少使用(Least Recently Used,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。此处选择先进先出。 (5)写策略: 如下图所示,提示输入Cache的读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。

计算机组成原理之Cache模拟器的实现

实验一Cache模拟器得实现 一、实验目得 (1)加深对Cache得基本概念、基本组织结构以及基本工作原理得理解。 (2)掌握Cache容量、相联度、块大小对Cache性能得影响。 (3)掌握降低Cache不命中率得各种方法以及这些方法对提高Cache性能得好处。 (4)理解LRU与随机法得基本思想以及它们对Cache性能得影响. 二、实验内容与步骤 1、启动Cachesim 2、根据课本上得相关知识,进一步熟悉Cache得概念与工作机制。 Cache概念:高速缓冲存 Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。程序与数据具有局限性,即在一个较短得时间内,程序或数据往往集中在很小得存储器地址范围内。因此,在主存与CPU之间可设置一个速度很快而容量相对较小得存储器,在其中存放CPU当前正在使用以及一个较短得时间内将要使用得程序与数据,这样,可大大加快CPU访问存储器得速度,提高机器得运行效率 3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略与写策略. (1)Cache容量: 启动CacheSim,提示请输入Cache容量,例如1、2、4、8、、、、、、。此处选择输入4。 (2)块容量: 如下图所示,提示输入块容量,例如1、2、4、8、、、、、、。此处选择输入16。 (3)映射方式: 如下图所示,提示输入主存储器与高速缓存之间得assoiativity方法

(主存地址到Cache地址之间得映射方式),1代表直接映射(固定得映射关系)、2代表组相联映射(直接映射与全相联映射得折中)、3代表全相联映射(灵活性大得映射关系)。此处选择全相联映射。 (4)替换策略: 如下图所示,提示输入替换策略,1代表先进先出(First-In—First—Out,FIFO)算法、2代表近期最少使用(Least RecentlyUsed,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。此处选择先进 先出. (5)写策略: 如下图所示,提示输入Cache得读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。此处选写回法

第二章 计算机组成原理(5)

第二章计算机组成原理(5) 一、选择题 1、下列关于IC卡的叙述中,错误的是______ D ___。 A.IC卡是"集成电路卡"的简称 B.IC卡中内嵌有集成电路芯片 C.IC卡不仅可以存储数据,还可以通过加密逻辑对数据进行加密 D.非接触式IC卡依靠自带电池供电 2、下列关于USB接口的说法错误的是___ A _____。 https://www.360docs.net/doc/ca9093723.html,B接口只有一种标准(版本) B.一个USB接口通过USB集线器可以连接多 个设备 https://www.360docs.net/doc/ca9093723.html,B的中文含义是通用串行总线 https://www.360docs.net/doc/ca9093723.html,B接口连接的设备可以热插拔,即不需要关机就可以插拔设备 3、以下打印机中,需要安装硒鼓才能在打印纸上印出文字和图案的是____ A ____。 A.激光打印机 B.压电喷墨式打印机 C.热喷墨式打印机 D.针式打印 机 4、移动存储器有多种,目前已经不常使用的是__ D __。 A. U盘 B. 存储卡 C. 移动硬盘 D. 磁带 5、销售广告标为"P4/1.5G/512MB/80G"的一台个人计算机,其CPU的时钟频率是___ B _____。 A.512MHz B.1500MHz C.80000MHz D.4MHz 6、下列关于USB接口的叙述,正确的是_A_。 https://www.360docs.net/doc/ca9093723.html,B接口是一种总线式串行接口 https://www.360docs.net/doc/ca9093723.html,B接口是一种并行接口 https://www.360docs.net/doc/ca9093723.html,B接口是一种低速接口 https://www.360docs.net/doc/ca9093723.html,B接口不是通用接口 7、显示器分辨率是衡量显示器性能的一个重要指标,它指的是整屏可显示多少__D______。 A.颜色 B.ASCII字符 C.中文字符 D.像素 8、下面属于PC机标准输入设备的是_____ A ___。 A.键盘 B.触摸屏 C.扫描仪 D.数码相机 9、下面有关计算机输入输出操作的叙述中,错误的是____ C ____。 A.计算机输入/输出操作比CPU的速度慢得多 B.两个或多个输入输出设备可以同时进行工作 C.在进行输入/输出操作时,CPU必须停下来等候I/O操作的完成 D.每个(或每类)I/O设备都有各自专用的控制器 10、下面关于硬盘存储器信息存储原理的叙述中,错误的是______ D _______。 A.盘片表面的磁性材料粒子有两种不同的磁化方向,分别用来记录 "0"和"1" B.盘片表面划分为许多同心圆,每个圆称为一个磁道,盘面上一般都有几千个磁道 C.每条磁道还要分成几千个扇区,每个扇区的存储容量一般为512字节 D.与CD光盘片一样,每个磁盘片只有一面用于存储信息 11、下面关于硬盘存储器结构与组成的叙述中,错误的是______ D _____。 A.硬盘由磁盘盘片、主轴与主轴电机、移动臂、磁头和控制电路等组成 B.磁盘盘片是信息的存储介质 C.磁头的功能是读写盘片上所存储的信息 D.盘片和磁头密封在一个盒状装置内,主轴电机安装在PC主板上 12、下面关于液晶显示器的叙述中,错误的是_____D___。

根据spim的cache实验

汕头大学实验报告 学院: 工学院系: 计算机系专业: 计算机科学与技术年级: 13实验时间: 2015.6.16 姓名: 林子伦学号: 2013101030实验名称:基于SPIM-CACHE的Cache实验 一.实验目的: (1)熟悉SPIM-CACHE模拟器环境 (2)深入认识CACHE的工作原理及其作用。 二.实验内容: (1)阅读实验指导书资料(虚拟教室提供了英文论文的电子版本); (2)下载SPIM-CACHE软件,理解英文论文的基本内容之后,给出几种典型的cache配置,运行英文论文提供的代码,记录运行时CACHE命中率等重要数据;(3)运行Fig.4代码,了解mapping functions 即映射规则 (4)运行Fig.7代码,了解temporal and spatial locality 即时空局部性,进一步理解cache的工作原理; (5)运行Fig.8代码,运行学习replacement algorithms 即替代算法,理解其工作原理。 三.实验地点,环境 实验地点:软件工程实验室 实验环境: 操作系统:Microsoft Windows 8 中文版 处理器:Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz 2.50GHz 内存: 4.00GB(3.82GB 可用) 四.实验记录及实验分析(80%): 4.1实验前配置: 1) 按下图配置好Spim设置

2)关于实验中cache设置如下(具体配置根据下面实验要求) ——》 ——》 Cache size ——cache大小 Block size ——块大小 Mapping ——组相连 4.2实验一:fig4.s 实验目的:Algorithm and corresponding code to study mapping functions Cache配置:256-B size, 16-B line size, four-way set associative 实验操作: 1) Ctrl+O 打开运行代码fig4.s 代码如下: .data 0x10000480 Array_A: .word 1,1,1,1,2,2,2,2 .data 0x10000CC0 Array_B: .word 3,3,3,3,4,4,4,4 .text .globl _start _start: la $2,Array_A li $6,0 li $4,8 loop: lw $5,0($2) add $6,$6,$5 addi $2,$2,4

cache性能分析实验报告

计算机系统结构实验报告 名称: Cache性能分析学院:信息工程 姓名:陈明 学号:S121055 专业:计算机系统结构年级:研一

实验目的 1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解; 2.了解Cache的容量、相联度、块大小对Cache性能的影响; 3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处; 4.理解Cache失效的产生原因以及Cache的三种失效; 5.理解LRU与随机法的基本思想,及它们对Cache性能的影响; 实验平台 Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器 实验步骤 1.运行SimpleScalar模拟器; 2.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效 次数、三种不同种类的失效次数; 3.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序), 统计各种失效的次数,并分析Cache容量对Cache性能的影响; 4.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所 选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响; 5.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程 序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响; 6.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序 (指明所选的测试程序)统计Cache总失效次数,计算失效率。分析不同的替换算法对Cache性能的影响。 预备知识 1. SimpleScalar模拟器的相关知识。详见相关的文档。 2. 复习和掌握教材中相应的内容 (1)可以从三个方面改进Cache的性能:降低失效率、减少失效开销、减少Cache命中时间。 (2)按照产生失效的原因不同,可以把Cache失效分为三类: ①强制性失效(Compulsory miss)

第二章 计算机组成原理(2)

第二章计算机组成原理(2) 一、选择题 1、以下关于计算机指令系统的叙述中,正确的是_____ B ___。 A.用于解决某一问题的一个指令序列称为指令系统 B.计算机指令系统中的每条指令都是CPU可执行的 C.不同类型的CPU,其指令系统是完全一样的 D.不同类型的CPU,其指令系统完全不一样 2、以下符号中____ C ____代表一种I/O总线标准。 A.CRT B.VGA C.PCI D.DVD 3、以下打印机中,需要安装硒鼓才能在打印纸上印出文字和图案的是____ A ____。 A.激光打印机 B.压电喷墨式打印机 C.热喷墨式打印机 D.针式打印 机 4、移动存储器有多种,目前已经不常使用的是__ D __。 A. U盘 B. 存储卡 C. 移动硬盘 D. 磁带 5、销售广告标为"P4/1.5G/512MB/80G"的一台个人计算机,其CPU的时钟频率是___ B _____。 A.512MHz B.1500MHz C.80000MHz D.4MHz 6、现在激光打印机与主机连接多半使用的是____B___接口,而以前则大多使用并行接口。 A.SATA https://www.360docs.net/doc/ca9093723.html,B C.PS/2 D.IEEE-1394 7、显示器分辨率是衡量显示器性能的一个重要指标,它指的是整屏可显示多少__D______。 A.颜色 B.ASCII字符 C.中文字符 D.像素 8、下面属于PC机标准输入设备的是_____ A ___。 A.键盘 B.触摸屏 C.扫描仪 D.数码相机 9、下面有关计算机输入输出操作的叙述中,错误的是____ C ____。 A.计算机输入/输出操作比CPU的速度慢得多 B.两个或多个输入输出设备可以同时进行工作 C.在进行输入/输出操作时,CPU必须停下来等候I/O操作的完成 D.每个(或每类)I/O设备都有各自专用的控制器 10、下面关于硬盘存储器信息存储原理的叙述中,错误的是______ D _______。 A.盘片表面的磁性材料粒子有两种不同的磁化方向,分别用来记录 "0"和"1" B.盘片表面划分为许多同心圆,每个圆称为一个磁道,盘面上一般都有几千个磁道 C.每条磁道还要分成几千个扇区,每个扇区的存储容量一般为512字节 D.与CD光盘片一样,每个磁盘片只有一面用于存储信息 11、下面关于硬盘存储器结构与组成的叙述中,错误的是______ D _____。 A.硬盘由磁盘盘片、主轴与主轴电机、移动臂、磁头和控制电路等组成 B.磁盘盘片是信息的存储介质 C.磁头的功能是读写盘片上所存储的信息 D.盘片和磁头密封在一个盒状装置内,主轴电机安装在PC主板上 12、下面关于液晶显示器的叙述中,错误的是_____D___。 A.它的英文缩写是LCD B.它的工作电压低,功耗小 C.它几乎没有辐射 D.它与CRT显示器不同,不需要使用显示卡 13、下面关于鼠标器的叙述中,错误的是___ C _____ A.鼠标器输入计算机的是其移动时的位移量和移动方向 B.不同鼠标器的工作原理基本相同,区别在于感知位移信息的方法不同

Cache模拟器实验报告

Cache模拟器 一、实验目标: 程序运行时,都会对内存进行相关操作,所访问的内存地址可以被记录下来,形成memory trace文件。在本实验中,你将使用benchmark 程序产生的memory trace文件来测试Cache命中率,文件可以在https://www.360docs.net/doc/ca9093723.html,/classes/fa07/cse240a/proj1-traces.tar.gz上获得。每次存储器访问都包含了三个信息: 1.访问类型,’l’表示Load操作,’s’表示Store操作; 2.地址。采用32位无符号的十六进制表示; 3.存储器访问指令之间的间隔指令数。例如第5条指令和第10条指 令为存储器访问指令,且中间没有其他存储器访问指令,则间隔指令数为4。 通过写一段程序,模拟Cache模拟器的执行过程。 二、实验要求: 写一段程序模拟Cache模拟器的执行过程,并对5个trace文件进行测试,完成以下目标: 1.请统计Load类型指令和Store类型指令在这5个trace文件中的指令比例。 2.设Cache总容量为32KB,对以下所有参数进行组合(共有72种组合),测量相应5个文件的Cache命中率。通过对命中率的分析,可以发现什么规律。

行大小:32字节、64字节、128字节 相连度:8路相联、4路相联、2路相联、1路相联 替换策略:FIFO,随机替换,LRU 写策略:写直达、写回 3. 给出5个文件的最佳Cache命中率的参数组合。针对不同的trace 文件,最佳配置是否相同。 4. 测量各种组合下Cache和主存之间的数据传输量。 5. 给出5个文件的最小数据传输量的参数组合。这个组合和第3问中得到的组合是否一致。针对不同的trace文件,最佳配置是否相同。 6. Cache缺失有三种原因:1)强制缺失;2)容量缺失;3)冲突缺失。分析这三种缺失并说明你的分析方法。 7. 请给出5个trace文件在最优Cache命中率的情况下,这三种缺失所占的比例,并和教材图C.8给出的比例进行比较。 三、程序设计与实现: 本程序我打算采用java进行编写,因为java能够很好地体现面向对象编程的优点。首先需要定义相关的数据类型。 将指令定义为一个单独的指令类,好方便操作和记录统计,其中属性包括该指令的类型,比如是Load指令还是Store指令,还包括指令的地址。 class Instruction { String type; String addrs; }

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台: WinDLX模拟器 实验内容和步骤: 1.用WinDLX模拟器执行下列三个程序: 求阶乘程序fact.s 求最大公倍数程序gcm.s 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察 CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相 关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的 百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的 总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 1. 求阶乘程序 用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准 输入读入一个整数,求其阶乘,然后将结果输出。 该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 实验结果: 在载入fact.s和input.s之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

(完整版)计算机组成原理知识点总结

《计算机组成原理》(白中英)复习 第一章计算机系统概论 电子数字计算机的分类(P1) 通用计算机(超级计算机、大型机、服务器、工作站、微型机和单片机)和专用计算机。计算机的性能指标(P5) 数字计算机的五大部件及各自主要功能(P6) 五大部件:存储器、运算器、控制器、输入设备、输出设备。 存储器主要功能:保存原始数据和解题步骤。 运算器主要功能:进行算术、逻辑运算。 控制器主要功能:从内存中取出解题步骤(程序)分析,执行操作。 输入设备主要功能:把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二 进制信息形式。 输出设备主要功能:把计算机处理的结果变换为人或其他机器所能接收和识别的信息形 式。 计算机软件(P11) 系统程序——用来管理整个计算机系统 应用程序——按任务需要编制成的各种程序 第二章运算方法和运算器 课件+作业 第三章内部存储器 存储器的分类(P65) 按存储介质分类: 易失性:半导体存储器 非易失性:磁表面存储器、磁芯存储器、光盘存储器 按存取方式分类: 存取时间与物理地址无关(随机访问): 随机存储器RAM ——在程序的执行过程中可读可写 只读存储器ROM ——在程序的执行过程中只读 存取时间与物理地址有关(串行访问): 顺序存取存储器磁带 直接存取存储器磁盘 按在计算机中的作用分类: 主存储器:随机存储器RAM ——静态RAM 、动态RAM 只读存储器ROM ——MROM 、PROM 、EPROM 、EEPROM Flash Memory 高速缓冲存储器(Cache) 辅助存储器——磁盘、磁带、光盘 存储器的分级(P66)

存储器三个主要特性的关系:速度、容量、价格/位 多级存储器体系结构:高速缓冲存储器(cache)、主存储器、外存储器。 主存储器的技术指标(P67) 存储容量:存储单元个数M ×每单元位数N 存取时间:从启动读(写)操作到操作完成的时间 存取周期:两次独立的存储器操作所需间隔的最小时间,时间单位为ns。 存储器带宽:单位时间里存储器所存取的信息量,位/秒、字节/每秒,是衡量数据传输 速率的重要技术指标。 SRAM存储器(P67) 基本存储元:用一个锁存器(触发器)作为存储元。 基本的静态存储元阵列(P68) 双译码方式(P68) 读周期、写周期、存取周期(P70) DRAM存储器(P70) 基本存储元:由一个MOS 晶体管和电容器组成的记忆电路。 存储原理:所存储的信息 1 或0 由电容器上的电荷量来体现(充满电荷:1;没有电荷:0)。 一个DRAM 存储元的写、读、刷新操作(P71) DRAM 的刷新:集中式刷新和分散式刷新(P73) 存储器容量的扩充(P73) 位扩展——增加存储字长(P73) 字扩展——增加存储字的数量(P73) 字、位扩展(P74) 例题(P73) 只读存储器ROM(P80) 掩模ROM 、PROM 、EPROM 、EEPROM 、Flash 存储器(P80-86) 并行存储器(P86) 双端口存储器:指同一个存储器具有两组相互独立的读写控制线路。 多模块交叉存储器:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连 续的。对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。 cache基本原理(P92) 避免CPU“空等”现象 CPU 和主存(DRAM )的速度差异 程序访问的局部性原理 cache由高速的SRAM 组成 cache的基本原理(P93) 命中、未命中、命中率(P93) 例题(P94) cache与主存的地址映射(P94) 全相联映像:主存中的任一块可以映象到缓存中的任一块。 直接映像:每个缓存块可以和若干个主存块对应;每个主存块只能和一个缓存块对应。 组相联映像:某一主存块j 按模u 映射到缓存的第i 组中的任一块。 替换算法(P98) 先进先出算法(FIFO):把一组中最先调入cache 的块替换出去,不需要随时记录各个

Cache 管理

1 前言 自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与Windows、UNIX 一起占据了操作系统领域几乎所有的市场份额。特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有301 台部署的是Linux 操作系统。因此,研究和使用Linux 已经成为开发者的不可回避的问题了。 下面我们介绍一下Linux 内核中文件Cache 管理的机制。本文以 2.6 系列内核为基准,主要讲述工作原理、数据结构和算法,不涉及具体代码。 2 操作系统和文件Cache 管理 操作系统是计算机上最重要的系统软件,它负责管理各种物理资源,并向应用程序提供各种抽象接口以便其使用这些物理资源。从应用程序的角度看,操作系统提供了一个统一的虚拟机,在该虚拟机中没有各种机器的具体细节,只有进程、文件、地址空间以及进程间通信等逻辑概念。这种抽象虚拟机使得应用程序的开发变得相对容易:开发者只需与虚拟机中的各种逻辑对象交互,而不需要了解各种机器的具体细节。此外,这些抽象的逻辑对象使得操作系统能够很容易隔离并保护各个应用程序。 对于存储设备上的数据,操作系统向应用程序提供的逻辑概念就是"文件"。应用程序要存储或访问数据时,只需读或者写"文件"的一维地址空间即可,而这个地址空间与存储设备上存储块之间的对应关系则由操作系统维护。 在Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。文件Cache 管理指的就是对这些由操作系统分配,并用来存储文件数据的内存的管理。Cache 管理的优劣通过两个指标衡量:一是Cache 命中率,Cache 命中时数据可以直接从内存中获取,不再需要访问低速外设,因而可以显著提高性能;二是有效Cache 的比率,有效Cache 是指真正会被访问到的Cache 项,如果有效Cache 的比率偏低,则相当部分磁盘带宽会被浪费到读取无用Cache 上,而且无用Cache 会间接导致系统内存紧张,最后可能会严重影响性能。 下面分别介绍文件Cache 管理在Linux 操作系统中的地位和作用、Linux 中文件Cache 相关的数据结构、Linux 中文件Cache 的预读和替换、Linux 中文件Cache 相关API 及其实现。 2 文件Cache 的地位和作用 文件Cache 是文件数据在内存中的副本,因此文件Cache 管理与内存管理系统和文件系统都相关:一方面文件Cache 作为物理内存的一部分,需要参与物理内存的分配回收过程,另一方面文件Cache 中的数据来源于存储设备上的文件,需要通过文件系统与存储设备进行读写交互。从操作系统的角度考虑,文件Cache 可以看做是内存管理系统与文件系统之间的联系纽带。因此,文件Cache 管理是操作系统的一个重要组成部分,它的性能直接影响着文件系统和内存管理系统的性能。 图1描述了Linux 操作系统中文件Cache 管理与内存管理以及文件系统的关系示意图。从图中可以看到,在Linux 中,具体文件系统,如ext2/ext3、jfs、ntfs 等,负责在文件Cache 和存储设备之间交换数据,位于具体文件系统之上的虚拟文件系统VFS负责在应用程序和文件Cache 之间通过read/write 等接口交换数据,而内存管理系统负责文件Cache 的分配和回收,同时虚拟内存管理系统(VMM)则允许应用程序和文件Cache 之间通过memory

相关文档
最新文档