实验一存储器实验

实验一存储器实验
实验一存储器实验

实验一存储器实验

1.FPGA中LPM_ROM定制与读出实验

一.实验目的

1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。

2、用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于

lpm_ROM中;

3、在初始化存储器编辑窗口编辑mif文件配置ROM;

4、验证FPGA中mega_lpm_ROM的功能。

二.实验原理

ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。CPU中的重要部件,如RAM、ROM可直接调用他们构成,因此在FPGA中利用嵌入式阵列块EAB可以构成各种结构的存储器,lpm_ROM是其中的一种。

lpm_ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。由于ROM是只读存储器,所以它的数据口是单向的输出端口,ROM中的数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。图3-1-1中的lpm_ROM有3组信号:inclk——输入时钟脉冲;q[23..0]——lpm_ROM的24位数据输出端;a[5..0]——lpm_ROM的6位读出地址。

实验中主要应掌握以下三方面的内容:

⑴lpm_ROM的参数设置;

⑵lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写;

⑶lpm_ROM的实际应用,在GW48_CP+实验台上的调试方法。

三.实验步骤

(1)用图形编辑,进入mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[]和数据总线宽度q[],分别为6位和24位,并添加输入输出引脚,如图3-1-1设置和连接。

(2)设置图3-1-1为工程。

(3)在设置lpm_rom数据参数选择项lpm_file的对应窗口中(图3-1-2),用键盘输入lpm_ROM配置文件的路径(rom_a.mif),然后设置在系统ROM/RAM读写允许,以便能对FPGA中的ROM在系统读写。

(4) 用初始化存储器编辑窗口编辑lpm_ROM配置文件(文件名.mif)。这里预先给出后

面将要用到的微程序文件:rom_a.mif 。rom_a.mif中的数据是微指令码(图3-1-3)。

(5)全程编译。

(6)下载SOF文件至FPGA,改变lpm_ROM的地址a[5..0],外加读脉冲,通过实验台上的数码管比较读出的数据是否与初始化数据(rom_a.mif中的数据)一致。

注:下载sof示例文件至实验台上的FPGA,选择实验电路模式仍为NO.0,24位数据输出由数码8至数码3显示,6位地址由键2、键1输入,键1负责低4位,地址锁存时钟CLK由键8控制,每一次上升沿,将地址锁入,数码管8/7/6/5/4/3将显示ROM 中输出的数据。发光管8至1显示输入的6位地址值。

图3-1-1 lpm_ROM的结构图

图3-1-2 设置在系统ROM/RAM读写允许

图3-1-3 rom_a.mif中的数据

(7)打开QuartusII的在系统存储模块读写工具,了解FPGA中ROM中的数据,并对其进行在系统写操作(图3-1-4)。

图3-1-4 在系统存储模块读写

四.实验要求

(1)实验前认真复习LPM-ROM存储器部分的有关内容。

(2)记录实验数据,写出实验报告,给出仿真波形图。

(3)通过本实验,对FPGA中EAB构成的LPM-ROM存储器有何认识,有什么收获?五.思考题

(1)如何在图形编辑窗口中设计LPM-ROM存储器?怎样设计地址宽度和数据线的宽度?怎样导入LPM-ROM的设计参数文件和存储LPM-ROM的设计参数文件?

(2)怎样对LPM-ROM的设计参数文件进行软件仿真测试?

(3)怎样在GW48实验台上对LPM-ROM进行测试?

(4)学习LPM-ROM用VHDL语言的文本设计方法(顶层文件用VHDL表达)。

(5)了解LPM-ROM存储器占用FPGA中EAB资源的情况。

2.FPGA中LPM_RAM读写实验

一.实验目的

1、了解FPGA中RAMlpm_ram_dq的功能,

2、掌握lpm_ram_dq的参数设置和使用方法,

3、掌握lpm_ram_dq作为随机存储器RAM的工作特性和读写方法。

二.实验原理

在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_ram_dq的结构如图3-2-1。数据从ram_dp0的左边D[7..0]输入,从右边Q[7..0]输出,R/W——为读/写控制信号端。数据的写入:当输入数据和地址准备好以后,在inclock是地址锁存时钟,当信号上升沿到来时,地址被锁存,数据写入存储单元。

数据的读出:从A[7..0]输入存储单元地址,在CLK信号上升沿到来时,该单元数据从Q[7..0]输出。

R/W——读/写控制端,低电平时进行读操作,高电平时进行写操作;

CLK——读/写时钟脉冲;

DATA[7..0]——RAM_dq0的8位数据输入端;

A[7..0]——RAM的读出和写入地址;

Q[7..0]——RAM_dq0的8位数据输出端。

三.实验步骤

(1)按图3-2-1输入电路图。并进行编译、引脚锁定、FPGA配置。

(2)通过键1、键2输入RAM的8位数据(选择实验电路模式1),键3、键4输入存储器的8位地址。键8控制读/写允许,低电平时读允许,高电平时写允许;键7

(CLK0)产生读/写时钟脉冲,即生成写地址锁存脉冲,对lpm_ram_dq进行写/

读操作。

(3)注意,lpm_ram_dq也能加入初始化文件(这里是5_ram.mif ,是后面将要用到的模型CPU执行微程序文件),注意此文件加入的路径表达和文件表达(3-2-2): ./

5_ram.mif ,(后缀mif要小写),同时选择在系统读写RAM功能,RAM的ID名取为:ram1。

注:验证程序文件在DEMO5_lpm_ram目录,工程名是ram_dp1.bdf,下载ram_dp1.sof 至实验台上的FPGA,选择实验电路模式为NO.1,按以上方式首先进行验证实验。

首先控制读出初始化数据,与载入的初始化文件ram_dp1.mif中的数据进行比较,然后控制写入一些数据,再读出比较。使用在系统读写RAM的工具对其中的数据进行读写操作(图3-2-3),设置成连续读模式,将在系统读写工具窗口的数据与实验箱上数码管上显示的数据对照起来看。

四.实验要求

(1) 实验前认真复习存储器部分的有关内容;

(2) 写出实验报告

五.思考题

(1)如何在图形编辑窗口中设计lpm_ram_dq存储器?怎样设定地址宽度和数据线的宽度?设计一数据宽度为6,地址线宽度为7的RAM,仿真检验其功能,并在FPGA

上进行硬件测试。

(2)如何建立lpm_ram_dq的数据初始化,如何导入和存储lpm_ram_dq参数文件?

生成一个mif文件,并导入以上的RAM中。

(3)怎样对lpm_ram_dq设计参数文件进行软件仿真测试?

(4)使用VHDL文件作为顶层文件,学习lpm_ram_dq的VHDL语言的文本设计方法。(5)了解lpm_ram_dq存储器占用FPGA中EAB资源的情况。

(6)使用系统读写RAM的工具对其中的数据进行读写操作。

(7)lpm_ram_dq存储器在CPU中有何作用?

图3-2-2 lpm_ram_dq加入初始化文件和选择在系统读写RAM功能

图3-2-1 lpm_ram_dp实验电路图

3.FIFO定制与读/写实验

一.实验目的

1.掌握FPGA中先进先出存储器lpm_fifo的功能,工作特性和读写方法。

2.了解FPGA中lpm_fifo的功能,掌握lpm_fifo的参数设置和使用方法。

3.掌握lpm_fifo作为先进先出存储器FIFO的工作特性和读写方法。二.实验原理

FIFO(First In First Out)是一种存储电路,用来存储、缓冲在两个异步时钟之间的数据传输。使用异步FIFO可以在两个不同时钟系统之间快速而方便地实时传输数据。在网络接口、图像处理、CPU设计等方面,FIFO具有广泛的应用。在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_fifo的结构如图3-3-1所示。

WR —写控制端,高电平时进行写操作;

RD —读控制端,高电平时进行读操作;

CLK —读/写时钟脉冲;

CLR —FIFO中数据异步清零信号;

D[7..0] —lpm_fifo的8位数据输入端;

Q[7..0] —lpm_fifo的8位数据输出端;

U[7..0] —表示lpm_fifo已经使用的地址空间

图3-3-1 lpm_fifo的实验结构图

图3-3-2 lpm_fifo的仿真波形图

三.实验步骤

1.编辑输入lpm_fifo实验电路(双击原理图3-3-1的FIFO元件,可进入该元件的编辑窗)。

2.将编译通过的文件下载到GW-48实验台,实验台选择工作模式NO.0;

3.通过实验台上的键1、键2输入数据,键3控制读/写允许WR(高电平写有效,低电平读有效,)、键7控制数据清0(高电平清0有效)、键8输入CLK信号,数

码管4/3显示已占用地址,数码管2/1显示FIFO输出的数据:

4.将数据写入LPM-FIFO:键3置高电平(写允许);键7清0一次;键1、键2每输入一个新数据(数据显示于发光管D8-D1),键8就给出一个脉冲(按键0-1-0),

将数据压入FIFO中;

5.将数据读出LPM-FIFO:键3置低电平(读允许);随着键8给出脉冲,观察数码管2/1显示的FIFO中输出的数据,与刚才写入的数据进行比较,同时注意数码

4/3显示的地址数变化的顺序。

注:验证程序文件工程名是fifo2.bdf,下载fifo2.sof至实验台上的FPGA,选择实验电路模式为NO.0,按以上方式首先进行验证实验。

四.实验要求

1.实验前认真复习LPM-FIFO存储器部分的有关内容。

2.完成FIFO设计和验证,给出仿真波形图,增加“空”、“未满”、“满”的标志信号,写出实验报告。

五.思考题

1.通过本实验,对FPGA中EAB构成的LPM-FIFO存储器有何认识,有什么收获?

2.如何了解lpm_fifo存储器占用FPGA中EAB资源的情况?

3.lpm_fifo存储器在CPU设计中有何作用?当lpm_fifo“空”、“未满”、“满”时,full、empty和usedw[7..0]d的输出信号如何变化?

4.怎样通过波形仿真了解LPM-FIFO存储器的功能?

5.如何设置LPM-FIFO存储器各项参数?

4.FPGA与外部16位RAM接口实验

一.实验目的

1.掌握FPGA与外部RAM的硬件接口技术。

2.通过FPGA控制,向外部RAM写入数据。

3.通过FPGA控制,从外部RAM读出数据,并且用数码管显示读出的数据。二.实验原理

用FPGA与外部RAM接口,实现对外部RAM的读写控制。FPGA需要产生地址信号和读写控制信号,并且需要采用具有双向I/O功能的电路结构,实现对SRAM 数据端口输入/输出操作。接口电路主要由可增减地址计数器LPM_COUNTER、三态总线控制器LPM_BUSTRI、读写控制电路组成。实验电路结构如图3-4-1所示,

图3-4-1 FPGA与外部16位数据,18位地址线宽SRAM接口电路结构三.16位SRAM读写逻辑设计

如果要设计16位数据总线的CPU,又要用到大容量的RAM,就必须外接具有16位数据口的RAM。

在实验板上与FPGA相接有2片256K字节/每片的16位RAM:IDT71V416,电路连接如图3-4-2所示,FPGA读写控制电路原理图如图3-4-1所示。实验验证步骤如下(对其中1片RAM读写):

1、验证程序sram.bdf,下载sram.sof至实验台上的FPGA,选择实验电路模式为N0.1;

用一接插线将适配板上方的P196针与实验板主系统上的键9的插针相接,键9作为地址计数器清0控制端。

2、利用键4、键

3、键2、键1输入数据,放在RAM数据口,如ABCDH(显示于数

码管4/3/2/1);

3、按动键9,对地址信号发生计数器清0,键7置1(写RAM允许,高电平为读RAM

写允许);

4、写RAM。用键4/3/2/1每更新一次16位输入数据,就按动1次键8(0→1→0),

即使地址值自动加1(地址值显示于发光管D8—D1,左为高位,了解图3-4-1的地址计数器功能)。

5、读出已被写入的数据。按动键9,对地址信号发生计数器清0,键7置0(读RAM

允许),之后连续按键8,递增地址值(地址值显示于发光管D8—D1),将能依次顺序(显示于数码8/7/6/5上)读出外部16位RAM中已写入的数据,与输入数据进行比较。

图3-4-2 16位SRAM和6264电路原理图

四.思考题

1.FPGA如何与外部存储器双向数据总线接口?FPGA采用怎样的电路结构、如何控制双向数据口的数据输入/输出?

2.若要对任意指定存储单元进行读写,图3-4-1电路应如何修改?请在实验台上验证所设计的功能。

3. 根据图3-4-1和3-4-2,重新锁定引脚,对另一块RAM进行读写。

4. 根据图3-4-1和3-4-2,对Flash SST39VF080/160进行读写。

5.通过本实验,对CPU与外部存储器接口电路设计有何认识,有什么收获?6.在计算机外部存储器的读写时序是怎样的?怎样使FPGA满足对外部RAM的读/写时序要求?

计算机原理实验二 静态随机存储器实验 操作步骤

2.1 静态随机存储器实验 2.1.1 实验目的 掌握静态随机存储器RAM工作特性及数据的读写方法。 2.1.2 实验设备 PC机一台,TD-CMA实验系统一套。 2.1.3 实验原理 实验原理图如图2-1-3所示,存储器数据线接至数据总线,数据总线上接有8个LED 灯显示D7…D0的内容。地址线接至地址总线,地址总线上接有8个LED灯显示A7…A0的内容,地址由地址锁存器(74LS273,位于PC&AR单元)给出。数据开关(位于IN单元)经一个三态门(74LS245)连至数据总线,分时给出地址和数据。地址寄存器为8位,接入6116的地址A7…A0,6116的高三位地址A10…A8接地,所以其实际容量为256字节。 RD WR 图2-1-3 存储器实验原理图 实验箱中所有单元的时序都连接至时序与操作台单元,CLR都连接至CON单元的CLR 按钮。实验时T3由时序单元给出,其余信号由CON单元的二进制开关模拟给出,其中IOM 应为低(即MEM操作),RD、WR高有效,MR和MW低有效,LDAR高有效。 2.1.4 实验步骤 (1) 关闭实验系统电源,按图2-1-4连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明。 (2) 将时序与操作台单元的开关KK1、KK3臵为运行档、开关KK2臵为‘单步’档(时序单元的介绍见附录二)。 (3) 将CON单元的IOR开关臵为1(使IN单元无输出),打开电源开关,如果听到有

‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。 图2-1-4 实验接线图 (4) 给存储器的00H、01H、02H、03H、04H地址单元中分别写入数据11H、12H、13H、14H、15H。由前面的存储器实验原理图(图2-1-3)可以看出,由于数据和地址由同一个数据开关给出,因此数据和地址要分时写入,先写地址,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0),数据开关输出地址(IOR=0),然后打开地址寄存器门控信号(LDAR=1),按动ST产生T3脉冲,即将地址打入到AR中。再写数据,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0)和地址寄存器门控信号(LDAR=0),数据开关输出要写入的数据,打开输入三态门(IOR=0),然后使存储器处于写状态(WR=1,RD=0,IOM=0),按动ST产生T3脉冲,即将数据打入到存储器中。写存储器的流程如图2-1-5所示(以向00地址单元写入11H为例): WR = 0 RD = 0 IOM = 0 IOR = 0 LDAR = 0 WR = 0 RD = 0 IOM = 0 IOR = 0 LDAR = 1 T3= WR = 0 RD = 0 IOM = 0 IOR = 0 LDAR = 0 WR = 1 RD = 0 IOM = 0 IOR = 0 LDAR = 0 T3= 图2-1-5 写存储器流程图 (5) 依次读出第00、01、02、03、04号单元中的内容,观察上述各单元中的内容是否与前面写入的一致。同写操作类似,也要先给出地址,然后进行读,地址的给出和前面一样,而在进行读操作时,应先关闭IN单元的输出(IOR=1),然后使存储器处于读状态(WR=0,RD=1,IOM=0),此时数据总线上的数即为从存储器当前地址中读出的数据内容。读存储器的流程如图2-1-6所示(以从00地址单元读出11H为例):

四川大学 操作系统上机实验 实验五 Windows虚拟存储器管理

实验报告 实验名称:Windows虚拟存储器管理 实验时间:2013年5月27日 实验人员:____郑笑凡___(姓名)__1143041243__(学号)____2011____(年级) 实验目的:1、了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。 2、理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。 3、学会使用Windows 2000/XP下内存管理的基本API函数 实验环境:windows xp 实验步骤: 1、下载virtumem.cpp; 2、建立工程,将virtumen.cpp加入; 3、编译工程,观察结果,确信六种状态都出现至少一次,必要时可改程 序,方便观察结果; 4、看懂程序,按要求另写一段小程序; 5、编译,执行,观察结果。 6,总结。 实验陈述: 1、基础知识: pagefile.sys文件的位置在:__安装的系统盘根目录下____________________________________此文件的作用:____实现物理内存的扩展__________________________________________________ 改变此文件大小的方法:右击”我的电脑”,依次选择”属性”—“高级”—“性能选项”— “更改”_______________________________________ 虚拟地址空间中的页面分为:提交页面,保留页面,空闲页面 页面的操作可以分为:保留、提交、回收、释放、加锁 2、编程准备. 页面属性是在结构体MEMORY_BASIC_INFORMATION_的字段AllocationProtect 和字段中Protect体现出来的。 简述VirtualFree,VirtualPtotect,VirtualLock,VirtualUnlock,VirtualQuery的作用:_ VirtualFree:__释放虚存___________________________________________________ VirtualPtotect:_保留虚存_________________________________________________ VirtualLock:___加锁虚存_________________________________________________ VirtualUnlock:_解锁虚存________________________________________________ VirtualQuery:____查询虚存_______________________________________________ 3、编程 1)将virtumem.cpp加入工程,编译,执行。 是否能编译成功?是 请描述运行结果:

虚拟存储器管理 页面置换算法模拟实验

淮海工学院计算机工程学院实验报告书 课程名:《操作系统原理A 》 题目:虚拟存储器管理 页面置换算法模拟实验 班级:软件*** 学号:20**1228** 姓名:****

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实 页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页 的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号, 取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内,此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定

实验二 数据存储器和程序存储器实验

实验二数据存储器和程序存储器实验 实验目的: 了解DSP内部数据存储器和程序存储器的结构 了解DSP指令的几种寻址方式 实验要求: 主要是对外扩数据存储器进行数据的存储、移动。该实验所需要的硬件主要是DSP、CPLD、DRAM。实验过程是:让学生通过CCS5000的DSP仿真器对DSP 进行仿真,向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCS5000仿真界面进行观察或通过发光二极管观察其正确性。 实验步骤: 经过了实验一以后,相信各位同学对于CCS的基本操作已经了解,故在此不再赘述。 1、以Simulator方式启动CCS,打开项目文件,编译程序,加载目标代码文件。 2、打开各个观察窗口,值得注意的是,本实验需要打开三个内存窗口:Data页的0x2000(.data段)起始处、Data页的0x3000(.stack段)起始处、以及Program页的0x1f00起始处 3、按照实验一的步骤设置断点,观察方法也基本相同,下面仅对各个小段程序进行简要说明: bk0: 通过对XF引脚的置位和复位实现发光二极管的闪烁 bk1: 立即数寻址方式 bk2: 绝对地址寻址方式-数据存储器地址寻址 bk3: 绝对地址寻址方式-程序存储器地址寻址 bk4: 累加器寻址方式 bk5: 直接寻址方式(DP为基准) bk6: 直接寻址方式(SP为基准) bk7: 间接寻址方式 bk8: 存储器映射寄存器寻址方式 bk9: 堆栈寻址方式 bk10: 将程序存储器0x2000为起始地址的0x100个字复制到数据存储器的0x4000为起始地址的空间中

************************************************ * FileName: ex2.asm * * Description: 数据存储器和程序存储器实验* ************************************************ CMD文件: MEMORY { PAGE 0: VECS: origin = 0xff80, length = 0x80 PROG: origin = 0x1000, length = 0x1000 PAGE 1: DATA: origin = 0x2000, length = 0x1000 STACK: origin = 0x3000, length = 0x1000 } SECTIONS { .vectors: {} > VECS PAGE 0 .text: {} > PROG PAGE 0 .data: {} > DATA PAGE 1 .stack: {} > STACK PAGE 1 } 5000系列DSP汇编语言: .title "ex2" ;在清单页头上打印标题 .global reset,_c_int00 ;定义reset和_c_int00两个全局(外部标号),_c_int00是C ; ;行环境的入口点,该入口点在连接的rtsxxx.lib库中,DSP ;复位后,首先跳到0地址,复位向量对应的代码必须跳转 ;到C运行环境的入口点_c_int00. .mmregs ;输入存储器映象寄存器进符号表 .def _c_int00 ;识别定义在当前模块和用在其它模块中的一个或多个符号DA T0 .set 00H ;给符号DAT0设置值为00H DA T1 .set 01H DA T2 .set 02H DA T3 .set 03H DDAT0 .set 2004H DDAT1 .set 2005H DDAT2 .set 2006H DDAT3 .set 2007H PDAT0 .set 1f00H PDAT1 .set 1f01H PDAT2 .set 1f02H PDAT3 .set 1f03H .sect ".vectors" ;中断向量表, 表示以下语句行汇编进名为.vectors的初始化段, ;若用户的程序是要写进EPROM并在上电之后直接运 ;行,则必须包含Vectors.asm文件,这个文件的代码将作为IST ;(中断服务表),并且必须被连接命令文件(.cmd)分配到0 ;地址,DSP复位后,首先跳到0地址,复位向量对应的代码

实验存储器部件实验(精品)

北京林业大学 11学年—12学年第 2 学期计算机组成原理实验任务书 专业名称:计算机科学与技术实验学时: 2 课程名称:计算机组成原理任课教师:张海燕 实验题目:实验四内存储器部件实验 实验环境:TEC-XP+教学实验系统、PC机 实验内容 1.设计扩展8K字存储器容量的线路图,标明数据线、地址线和控制信号的连接关系。 2.扩展教学机的存储器空间,为扩展存储器选择一个地址,并注意读写等控制信号的正确状态。 3.用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM (58C65)在读写上的异同。 4.用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确。 5.用监控程序的A命令编写一段程序,对扩展存储器EEPROM(58C65)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行。 实验目的 1.熟悉ROM芯片和RAM芯片在功能和使用方法等方面的相同和差异之处。 2.理解并熟悉通过字、位扩展技术实现扩展存储器系统容量的方案。 3.了解如何通过读、写存储器的指令实现对58C65ROM芯片的读、写操作。 4.加深理解存储器部件在计算机整机系统中的作用。 实验要求 1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的

必要准备。 2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果; 3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 实验说明 内存储器是计算机中存放正在运行中的程序和相关数据的部件。在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器的存储体,包括只读存储区(ROM、存放监控程序等)和随读写存储区(RAM)两部分,ROM存储区选用4片长度8位、容量8KB的58C65芯片实现,RAM存储区选用2片长度8位、容量2KB的6116芯片实现,每2个8位的芯片合成一组用于组成16位长度的内存字,6个芯片被分成3组,其地址空间分配关系是:0-1777H用于第一组ROM,固化监控程序,2000-2777H用于RAM,保存用户程序和用户数据,其高端的一些单元作为监控程序的数据区,第二组ROM的地址范围可以由用户选择,主要用于完成扩展内存容量(存储器的字、位扩展)的教学实验。 在这里还要说明如下两个问题。 第一,要扩展8K字的存储空间,需要使用2片(每一片有8KB容量,即芯片内由8K个单元、每个单元由8个二进制位组成)存储器芯片实现。 第二,当存储器选用58C65ROM芯片时,它属于电可擦除的EPROM器件,可以通过专用的编程器软件和设备向芯片的写入相应的内容,这是正常的操作方式。也可以通过写内存的指令向芯片的指定单元写入16位的数据,只是每一次的这种写操作需要占用长得多写入时间,例如几百个微秒,可以通过运行完成等待功能的子程序来加以保证。本次试验采用的是通过写内存的指令将数据写入芯片

存储管理实验报告

实验三、存储管理 一、实验目的: ? 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验理解在分页式存储管理中怎样实现虚拟存储器。 在本实验中,通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 二、实验题目: 设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 对分区的管理法可以是下面三种算法之一:(任选一种算法实现) 首次适应算法 循环首次适应算法 最佳适应算法 三.实验源程序文件名:cunchuguanli.c

执行文件名:cunchuguanli.exe 四、实验分析: 1)本实验采用可变分区管理,使用首次适应算法实现主存的分配和回收 1、可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并 且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。 为了说明那些分区是空闲的,可以用来装入新作业,必须有一张空闲说明表 ? 空闲区说明表格式如下:? 第一栏 第二栏 其中,起址——指出一个空闲区的主存起始地址,长度指出空闲区的大小。 长度——指出从起始地址开始的一个连续空闲的长度。 状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业完成后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。 2、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。 有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分

操作系统实验五虚拟存储器管理

操作系统实验 实验五虚拟存储器管理 学号1115102015 姓名方茹 班级11 电子A 华侨大学电子工程系

实验五虚拟存储器管理 实验目的 1、理解虚拟存储器概念。 2、掌握分页式存储管理地址转换盒缺页中断。 实验内容与基本要求 1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说 明哪些页已在主存,哪些页尚未装入主存。作业执行 时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转 换机构按页号查页表,若该页对应标志为“ 1”,则表示该页 已在主存,这时根据关系式“绝对地址 =块号×块长 +单元号”计算出欲访问的主 存单元地址。如果块长为 2 的幂次,则可把块号作为高地址部分,把单元号作为低 地址部分,两者拼接而成绝对地址。若访问的页对 应标志为“ 0”,则表示该页不在主存,这时硬件发“缺页中断”信号, 有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后 再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转 换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执 行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主 存时,则输出“ * 该页页号”,表示产生了一次缺页中断。 2、用先进先出页面调度算法处理缺页中断。 FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时, 把开始的 m 个页面装入主存,则数组的元素可定为m 个。 实验报告内容 1、分页式存储管理和先进先出页面调度算法原理。 分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

实验二 I2C存储器实验

I2C存储器实验 实验目的 1、了解I2C总线的工作原理 2、掌握I2C总线驱动程序的设计和调试方法 3、掌握I2C总线存储器的读写方法 实验仪器 单片机开发板、稳压电源、计算机 实验原理 1、 I2C总线常识 I2C总线采用一个双线式漏极开路接口,可在一根总线上支持多个器件和主控器。所连接的器件只会把总线拉至低电平,而决不会将其驱动至高电平。总线在外部通过一个电流源或上拉电阻器连接至一个正电源电压。当总线空闲时,两条线路均为高电平。在标准模式中,I2C 总线上的数据传输速率高达100kbit/s,而在快速模式中则高达400kbit/s。 I2C总线上的每个器件均由一个存储于该器件中的唯一地址来识别,并可被用作一个发送器或接收器(视其功能而定)。除了发送器和接收器之外,在执行数据传输时,还可把器件视作主控器或受控器。主控器是负责启动总线上的数据传输并生成时钟信号以允许执行该传输的器件。同时,任何被寻址的器件均被视作受控器。 CAT24WC01/02/04/08/16是一个1K/2K/4K/8K/16K位串行CMOS EEPROM,内部含有128/256/512/1024/2048个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT24WC01有一个8字节页写缓冲器,CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,有一个专门的写保护功能,并且器件能与400KHzI2C 总线兼容。 引脚名称和功能如图1所示。 图1 24系例I2C存储器引脚说明 通过器件地址输入端A0、A1和A2可以实现将最多8个24WC01和24WC02器件4个24WC04器件,2个24WC08器件和1个24WC16器件连接到总线上。 2、I2C总线协议 (1)只有在总线空闲时才允许启动数据传送。 (2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。 (3)起始信号 时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C 总线的起始信号。 (4) 停止信号 时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C 总线的停止信号。I2C 总线时序:

南京中医药大学虚拟存储器管理实验

实验三虚拟存储管理 实验性质:验证 建议学时:3 实验目的: 存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法。 预习内容: 阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。 实验内容: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分。 具体的实施方法是: ①在[0,319]的指令地址之间随机选取一起点m; ②顺序执行一条指令,即执行地址为m+1的指令; ③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; ④顺序执行一条指令,其地址为m’+1; ⑤在后地址[m’+2,319]中随机选取一条指令并执行; ⑥重复上述步骤,直至执行320次指令。 (2)将指令序列变换成页地址流。 设:①页面大小为1K; ②用户内存容量为10块到32块; ③用户虚存容量为32K; 在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页(对应的虚存地址为[0,9]); 第10条~第19条指令为第1页(对应的虚存地址为[10,19]); …… 第310条~第319条指令为第31页(对应的虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3)计算并输出下述各种算法在不同的内存容量下的缺页率。 ①先进先出的算法(FIFO); ②最近最少使用算法(LRU); ③最佳淘汰法(OPT):先淘汰最不常用的页地址; ④最少访问页面算法(LFU)。 缺页率=(页面失效次数)/(页地址流长度)= 缺页中断次数/ 320 在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

OS实验指导四——虚拟存储器管理

OS实验指导四——虚拟存储器管理

————————————————————————————————作者:————————————————————————————————日期: 2

《操作系统》实验指导四 开课实验室:A207、A209 2015/11/23 、2015/11/24 实验类型设计 实验项目(四)虚拟存储器管理实验 实验学时 4 一、实验目的 设计一个请求页式存储管理方案,并编写模拟程序实现。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发 环境,如C \C++\Java 等编程语言环境。 三、实验要求 1) 上机前认真复习页面置换算法,熟悉FIFO算法和LRU页面分配和置换算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行 结果截图)。 四、实验内容 1、问题描述: 设计程序模拟FIFO和LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,并计算每种算法缺页次数和缺页率。 2、程序具体要求如下: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1)快表页面固定为4块 2)从键盘输入N个页面号 3)输出每次物理块中的页面号和缺页次数,缺页率 4)实现算法选择

3、程序流程图 3、源程序参考: (1)FIFO 算法部分 #include "stdio.h" #define n 12 #define m 4 void main() { int ym[n],i,j,q,mem[m]={0},table[m][n]; char flag,f[n]; printf("请输入页面访问序列\n "); for(i =0;i

计算机组成原理实验报告二半导体存储器原理实验

半导体存储器原理实验 一、实验目的: 1、掌握静态存储器的工作特性及使用方法。 2、掌握半导体随机存储器如何存储和读取数据。 二、实验要求: 按练习一和练习二的要求完成相应的操作,并填写表2.1各控制端的状态及记录表2.2的写入和读出操作过程。 三、实验方案及步骤: 1、按实验连线图接线,检查正确与否,无误后接通电源。 2、根据存储器的读写原理,按表2.1的要求,将各控制端的状态填入相应的栏中以方便实验的进行。 3、根据实验指导书里面的例子练习,然后按要求做练习一、练习二的实验并记录相关实验结果。 4、比较实验结果和理论值是否一致,如果不一致,就分析原因, 然后重做。 四、实验结果与数据处理: (1)表2.1各控制端的状态

2)练习操作 数据1:(AA)16 =(10101010)2 写入操作过程: 1)写地址操作: ①应设置输入数据的开关状态:将试验仪左下方“ INPUT DEVICE ”中的8位数据开关D7-D0 设置为00000000 即可。 ②应设置有关控制端的开关状态:先在实验仪“SWITCH UNIT ”中打开输入三态门控制端,即SW-B=0 ,打开地址寄存器存数控制信号,即LDAR=1, 关闭片选信号(CE ),写命令信号(WE )任意,即CE=1,WE=0 或1。 ③应与T3 脉冲配合可将总线上的数据作为地址输入AR 地址寄存器中:按一下微动开关START 即可。 ④应关闭AR 地址寄存器的存数控制信号:LDAR=0 。 2)写内容操作: ①应设置输入数据的开关状态:将试验仪左下方“ INPUT DEVICE ”中的8位数据开关D7-D0 设置为10101010 。 ②应设置有关控制端的开关状态:在实验仪“SWITCH UNIT ”中打开输入三态门控制端, 即SW-B=O,关闭地址寄存器存数控制信号,即LDAR=O,打开片选信号(CE )和写命令 信号(WE),即CE=0,WE=1。 ③应与T3 脉冲配合可将总线上的数据写入存储器6116的00000000地址单元中:再按一下 微动开关START 即可。 ④应关闭片选信号和写命令信号:即CE=1,WE=0。 读出操作过程: 1 )写地址操作:参考写入操作的写地址操作 2)读内容操作: ①关闭输入三态门控制端,即SW-B=1。 ②地址寄存器存数控制信号(LDAR)任意,不过最好关闭,即LDAR=0 ,防止误按脉冲信号存入数据。 ③关闭写命令信号(WE),即WE=0,打开片选信号(CE),即CE=0,不需要T3脉冲,即 不要按微动开关START。此时00000000地址的内容通过“ BUS UNIT ”中数据显示灯B7-B0 显示出来。 数据2:(55)16 =(01010101)2 写入操作过程: 1)写地址操作: ①设置输入数据的开关状态:将试验仪左下方“ INPUT DEVICE ”中的8位数据开关D7-D0 设置为

静态存储器实验报告

静态随机存储器实验 组员: 组号:21组 日期:周二5、6节

【实验目的】 掌握静态随机存储器RAM工作特性及数据的读/写方法。 【实验设备】 实验仪一台、PC机一台(观察波形) 【实验原理】 由一片6116(2K x 8)芯片、一片8位锁存器(74LS273)、一片8位三态门(74LS245)构成存储器原理图。 存储器实验原理图 由于存储器地址是由数据开关(input device)锁存在(273),存储器写数据也是由数据开关提供的,因此要分时给出地址和写数据。 因地址寄存器为8 位,所以接入6116 的地址为A7~A0,而高三位A8~A10 接地,所以其实际容量为256 字节。6116 有三个控制线:CE(片选线)、OE(读线)、WE(写线)。当片选有效(CE=0)时,OE=0 时进行读操作,WE=0 时进行写操作。本实验中将OE 常接地,在此情况下,当CE=0、WE=0 时进行读操作,CE=0、WE=1 时进行写操作,其写时间与T3 脉冲宽度一致。 实验时将T3 脉冲接至实验板上时序电路模块的TS3 相应插孔中,其脉冲宽度可调,其它电平控制信号由“SWITCH UNIT”单元的二进制开关模拟,其中SW-B 为低电平有效,LDAR 为高电平有效。 【实验步骤】 (1) 形成时钟脉冲信号T3。具体接线方法和操作步骤如下: ①接通电源,用示波器接入方波信号源的输出插孔H23,调节电位器W1 及W2 ,使H23 端输出 实验所期望的频率及占空比的方波。 ②将时序电路模块(STATE UNIT)单元中的ф和信号源单元(SIGNAL UNIT)中的H23 排针相连。 ③在时序电路模块中有两个二进制开关“STOP”和“STEP”。将“STOP”开关置为“RUN”状

实验四 虚拟存储器管理实验

实验四虚拟存储器管理实验 ◆实验名称:存储器管理实验 ◆仪器、设备:计算机 ◆参考资料:操作系统实验指导书 ◆实验目的: 设计一个请求页式存储管理方案,并编写模拟程序实现。 ◆实验内容: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1.快表页面固定为4块 2.从键盘输入N个页面号 3.输出每次物理块中的页面号和缺页次数,缺页率 ◆实验原理、数据(程序)记录: #define PAGES 4 /* 物理块数*/ #define N 16 /*最多输入的页面号*/ int pages[PAGES][2]; /*page[i][0]保存页面号,page[i][1]保存页面存留时间*/ int queue[N]; /*页面号数组*/ void initialise(void) /*------------初始化:快表和页面号数组++++++++++++++*/ { int i; for(i=0;i

实验一 存储器实验

实验一存储器实验 1.FPGA中LPM_ROM定制与读出实验 一.实验目的 1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性与配置方法。 2、用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于 lpm_ROM中; 3、在初始化存储器编辑窗口编辑mif文件配置ROM; 4、验证FPGA中mega_lpm_ROM的功能。 二.实验原理 ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。CPU 中的重要部件,如RAM、ROM可直接调用她们构成,因此在FPGA中利用嵌入式阵列块EAB 可以构成各种结构的存储器,lpm_ROM就是其中的一种。lpm_ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都就是可以设定的。由于ROM就是只读存储器,所以它的数据口就是单向的输出端口,ROM中的数据就是在对FPGA现场配置时,通过配置文件一起写入存储单元的。图3-1-1中的lpm_ROM有3组信号:inclk——输入时钟脉冲;q[23、、0]——lpm_ROM的24位数据输出端;a[5、、0]——lpm_ROM的6位读出地址。 实验中主要应掌握以下三方面的内容: ⑴ lpm_ROM的参数设置; ⑵ lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写; ⑶lpm_ROM的实际应用,在GW48_CP+实验台上的调试方法。 三.实验步骤 (1)用图形编辑,进入mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[] 与数据总线宽度q[],分别为6位与24位,并添加输入输出引脚,如图3-1-1设置与连接。 (2)设置图3-1-1为工程。 (3)在设置lpm_rom数据参数选择项lpm_file的对应窗口中(图3-1-2),用键盘输入 lpm_ROM配置文件的路径(rom_a、mif),然后设置在系统ROM/RAM读写允许,以便能

实验二:SRAM 静态随机存储器实验

《计算机组成原理》 实验报告 实验二:SRAM 静态随机存储器实验 学院: 专业: 班级学号: 学生姓名: 实验日期: 指导老师: 成绩评定: 计算机学院计算机组成原理实验室

实验二 一、实验名称:SRAM 静态随机存储器实验 二、实验目的: 掌握静态随机存储器RAM工作特性及数据的读写方法。 三、实验内容: 1、向存储器中指定的地址单元输入数据,地址先输入AR寄存器,在地址灯上显示;再将数据送入总线后,存到指定的存储单元,数据在数据显示灯显示。 2、从存储器中指定的地址单元读出数据, 地址先输入AR寄存器,在地址灯显示; 读出的数据送入总线, 通过数据显示灯显示。 四、实验设备: PC机一台,TD-CMA实验系统一套。 五、实验步骤: 1、关闭实验系统电源,按图2-4 连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明。 2、将时序与操作台单元的开关KK1、KK3 置为运行档、开关KK2 置为…单步?档。 3、将CON 单元的IOR 开关置为1(使IN 单元无输出),打开电源开关,如果听到有…嘀?报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。

图2-4 4、给存储器的00H、01H、02H、03H、04H 地址单元中分别写入数据11H、12H、13H、14H、15H。 由前面的存储器实验原理图(图2-1-3)可以看出,由于数据和地址由同一个数据开关给出,因此数据和地址要分时写入,先写地址,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0),数据开关输出地址(IOR=0),然后打开地址寄存器门控信号(LDAR=1),按动ST 产生T3 脉冲,即将地址打入到AR 中。再写数据,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0)和地址寄存器门控信号(LDAR=0),数据开关输出要写入的数据,

实验四 虚拟存储器管理

实验四虚拟存储器管理 一、实验目的 1、为了更好的配合《操作系统》有关虚拟存储器管理章节的教学。 2、加深和巩固学生对于请求页式存储管理的了解和掌握。 3、提高学生的上机和编程过程中处理具体问题的能力。 二、实验内容 请求页式存储管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 1.通过随机数产生一个指令序列,共320条指令。 指令的地址按下述原则生成: a.50%的指令是顺序执行的。 b.25%的指令是均匀分布在前地址部分。 c.25%的指令是均匀分布在后地址部分。 具体的实施方法是: a.在[0,319]指令地址之间随机选取一起点; b.顺序执行一条指令,即执行地址为m+1的指令; c.在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; d.顺序执行一条指令,其地址为m’; e.在后地址[m’+2,319]中随机选取一条指令并执行; f.重复上述步骤a~e,直到执行320次指令。 2.将指令序列变换成为页地址流 设: a.页面大小为1K; b.用户内存容量为4到32页; c.用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页,对应虚存地址为[0,9];

第10条~第19条指令为第1页,对应虚存地址为[10,19] . . 第310条~第319条指令为第31页,对应虚存地址为[310,319]。 按以上方式,用户指令可组成32页。 3、输出下述各种算法在不同内存容量下的命中率。 a.先进先出的算法; b.最近最少访问算法; c.最近最不经常使用算法。 其中:命中率=1-页面失效次数/页地址流长度 页地址流长度为320,页面失效次数为每次访问相同指令时,该指令所对应的页不在内存的次数。 三、实验要求 实验课时4学时。要求画出利用各种算法置换时的置换图,并可以分析说明。编程可分 为几个部分完成:指令的分页,算法的选择,算法的实现,命中率的输出。编写程序前可先 阅读Linux源代码页面换入: static int do_swap_page(struct mm_struct * mm, struct vm_area_struct * vma,unsigned long address, pte_t * page_table,swp_entry_t entry,int write_access) { struct page *page = lookup_swap_cache(entry); pte-t pte; if (!pgae){ lock_kernel( ); swapin_readahead(entry); page = read_swap_cache(entry); unlock_kernel( ); if (!page) return -1;

虚拟存储器管理实验报告

淮海工学院计算机科学系实验报告书 课程名:《操作系统》 题目:虚拟存储器管理 页面置换算法模拟实验 班级: 学号: 姓名:

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内, 此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定 为了能找到“最近最久未用”的虚页面,程序中可引入一个时间计数器countime,每当要访问 一个虚页面时,countime的值加1,然后将所要访问的虚页的time项值设置为增值后的当前

相关文档
最新文档