当前位置:首页 » 存储配置 » 计算机组成原理存储器实验

计算机组成原理存储器实验

发布时间: 2023-07-26 11:23:19

① 计算机组成原理——虚拟存储

(1)程序员在比实际主存大得多的逻辑地址空间中编写程序

(2)程序执行时,把当前需要的程序段和数据块掉入主存,其他暂不使用的放在磁盘上

(3)执行指令时,通过硬件将逻辑地址转化为物理地址。虚拟地址高位为虚页号,低位为页内偏移地址

(4)当程序发生数据访问或程序访问失效(缺页时),由操作系统把信息从磁盘调入主存中

    (1)基本思想:

        内存被分成固定长度且长度较小的存储块(页框,实页,物理页)

        每个进程也被划分为固定长度的程序块(页,虚页,逻辑页)

        通过页表,实现逻辑地址想物理地址的转化

    (2)逻辑地址

        程序中指令所使用的地址(进程所在地址空间)

    (3)物理地址

        存放指令或数据的实际内存地址

(1)与“cache-主存”层次相比,页大小远比cache的行大小要大(windows中的页位4k)

(2)采用全相联映射方式:磁盘中的任意一个页能用射到内存中的任意一个页

    因为缺页导致中断时,操作系统从磁盘拿数据通常要耗费几百万个时钟周期。增大页大小,可以减少缺页中断

(3)为什么让软件处理“缺页”

    因为访问磁盘需要好粉几百万个时钟周期,硬件即使能立刻把地址打给磁盘,磁盘也不能立即响应

(4)为什么地址转换用硬件实现

    硬件实现地址转换可以加快指令的执行速度

(5)为什么页写会策略采用write back

    避免频繁的慢速磁盘访问

页表的首地址放在基址寄存器。采用基址寻址方式

每个页表项前面有一个虚页号:从0开始递增的序号。页表项又分为几个结构:

(1)装入位:该页是否在内存中

(2)修改位:该也在内存中是否被修改

(3)替换控制位:用于clock算法

(4)其他

(5)实页号(8进制)

(1)一次磁盘引用需要访问几次主存?2次,一次查页表,一次查物理地址。于是,把经常查的页表放到cache中。这种在cache页表项组成的页表称为TLB(Translation Lookside Buffer)

(2)TLB的页表结构:tag + 主存中的页表项

当采用全相连映射时,tag为页表项前面的虚页号。需要把tag和虚页号一一比较

当采用组相联映射时,tag被分为tag+index,虚页号的高位为tag,虚页号的低位为index,做组内索引(属于组内第几行)

    1.段式存储是根据程序逻辑,给程序分段。使得每段大小不同。这种虚拟地址划分方法适合程序设计

    2.段式存储的虚拟地址由段号和段内偏移地址组成。段式虚拟存储器到物理地址的映射通过段表实现

    3.段式虚拟存储会造成空页

    1.段页式虚拟存储,先把程序按照逻辑分成段,再把每段分成固定大小的页。

    2.程序对主存的调入调出是按照页面进行的;但他有可以根据段实现共享和保护

    3.缺点是段页式虚拟地址转换成物理地址需要查询2个表:段表和页表。段表找到相应页表的位置,页表找到想也页的位置

    4.段页式细腻地址的结构可以为以下形式:

            程序地址: 用户号(进程pid) | 段号 | 页号 | 页内偏移地址

(1)某计算机的cache块工16块,采用二路组相联映射方式,每个主存块大小为32字节,按照字节编制。则主存129号单元的主存块硬装如刀cache的组号是:(C)A、0      B、2      C、4      D、6

解:二路组相联,所以每组2块,共有16/2=8组,所以组号占3位。

      每块32字节,所以块内地址占5位。

      129转化为二进制:1000 0001:前3位为组号,100:=4

(2)假设用若干个2K4位的芯片组成一个8K8位的存储器,则地址0B1FH所在芯片的最小地址为:

解:用2片组成一行,共4行,所以片选地址占2位。片内地址有2k=211,所以占11位

      0B1FH:000|0 1|011 0001 1111 这三段为前缀,片选地址,片内地址。

      该片芯片的最小地址是片内地址全0:000|0 1|000 0000 0000 = 0800H

(3)某计算机的主存地址空间大小为256MB,按字节编址,指令cache和数据cache分离,均有8个cache行,每行大小为64B,数据cache采用直接映射方式,现有两个程序A,B对数组int a[256][256]进行遍历,程序A按行遍历,程序B按列遍历。假定int类型数据用32位补码表示,数组a按行优先方式存储,其地址为320(十进制)。

问:(1) 若不考虑cache一致性维护和替换算法所需的控制位,则数据cache的总容量占多少?

      (2) 数组元素a[0][31]和a[1][1]各自所在主存块对应的cache行号分别为多少(cache从0行开始)?

      (3)程序A和B的数据访问命中率各自为多少?哪个程序的执行时间更短?

解:(1) 因为cache的总容量是cache每行的数据存储大小+tag位+数据是否有效位+其他一致性控制位。

          主存地址空间256MB,占28位。直接映射方式,8行,行号占3位。每行64B,所以块内地址占6位,因此,tag占28-3-6=19位

          每行有一个数据有效位。因此,cache共(19+1+648)8 = 532字节

      (2) 因为int类型占32位,所以一个int占4B。a[0][31] = 320 + 314 = 444 a1 = 320 + 4(256+1) = 1348。

          块内地址占6位,直接映射下行号占3位,因此444 = 110 | 111100,所以行号为6

          1348 = 10 | 101 | 000100,所以行号为5

      (3) 因为1行cache占64B,每个int数占4B,所以一行有16个数。第一个数会因cache缺失而不命中,然后调入cache。,使得后面的15个int访问全部命中。所以命中率为1516 对于程序B,每次调入16个数,小于数组每行的128个元素,因此每次都不会命中,命中率为0

② 组成原理课程设计论文

组成原理课程设计论文

当代,论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,简称之为论文。它既是探讨问题进行学术研究的一种手段,又是描述学术研究成果进行学术交流的一种工具。它包括学年论文、毕业论文、学位论文、科技论文、成果论文等。接下来我为你带来组成原理课程设计论文,希望对你有帮助。

篇一:计算机组成原理实验报告

一、 实验名称:运算器实验

二、 实验目的:

1.学习数据处理部件的工作方式控制。 2. 学习机器语言程序的运行过程。

三、 实验原理:

CP226实验仪的运算器由一片CPLD实现,包括8种运算功能。运算时先将数据写到寄存器A和寄存器W中,根据选择的运算方式系统产生运算结果送到直通门D。

实验箱上可以向DBUS送数据的寄存器有:直通门D、左移门L、右移门R、程序计数器PC、中断向量寄存器IA、外部输入寄存器IN和堆栈寄存器ST。它们由138译码器的

四、 实验内容:

1. 计算37H+56H后左移一位的值送OUT输出。 2. 把36H取反同54H相与的值送人R1寄存器。

五、 实验步骤:

实验内容(一):

1. 关闭电源。用8位扁平线把J2和J1连接。

2. 用不同颜色的导线分别把K0和AEN、K1和WEN、K2和S0、K3和S1、K4和S2、

K6和X0、K7和X1、K8和X2、K9和OUT连接。 3. K15~K0全部放在1位,K23 ~K16放0位。

4. 注视仪器,打开电源,手不要远离电源开关,随时准备关闭电源,注意各数码管、

发光管的稳定性,静待10秒,确信仪器稳定、无焦糊味。 5. 设置实验箱进入手动模式。

6. 设置K0=0,K8K7K6=000,K23 ~K16=0011 0111。 7. 按下STEP键,在A寄存器中存入37。 8. 设置K0=1,K1=0,K23 ~K16=0101 0110。 9. 按下STEP键,在W寄存器中存入56。

10. 设置K0=1,K1=1,K8K7K6=110,K4K3K2=000。 11. 按下STEP键,L寄存器显示1A。 12. 设置K9=0,其他保持不变。

13. 按下STEP键,OUT寄存器显示1A。 14. 关闭实验箱电源。

实验内容(二):

1. 基本与实验内容(一)的前5个步骤相同(去掉连接OUT寄存器的导线)。 2. 连接K10和SA,K11和SB,K12和RWR。

3. 设置K0=0,K8K7K6=000,K23~K16=0011 0110。 4. 按下STEP键,A寄存器显示36。 5. 设置K8K7K6=100,K4K3K2=110。 6. 按下STEP键,A寄存器显示9C。

7. 设置K1K0=01,K8K7K6=000,K4K3K2=111,K23~K16=0100 0101。 8. 按下STEP键,W寄存器显示45。

9. 设置K1K0=11,K8K7K6=100,,4K3K2=011,K10K11=10,K12=0。 10. 按下STEP键,D寄存器和R1寄存器显示40。 11. 关闭实验箱电源。

六、 实验结论:

实现数据处理部件的工作方式控制和机器语言程序的运行过程。

七、 体会:

通过本次试验,我对运算器实验了解更深了并进一步巩固了第一周所学的内容。

八、 思考题:

如何计算3456H+12EFH的值? 答:

通过CP226实验仪,把S2S1S0设置为100,可以使用带进位加法运算。由于是四位16进制,可以把它拆开,从个位开始计算,一位一位向上计算通过带进位加法器,即算(64H*64H+64H*10H*3H+64H*3H+10H*9H+8h)+(64H*10H*4H+64H*8H+10H*4H+7H)

篇二:计算机组成原理实验报告

【实验环境】

1. Windows 2000 或 Windows XP

2. QuartusII、GW48-PK2或DE2-115计算机组成原理教学实验系统一台,排线若干。

【实验目的】

1、熟悉原理图和VHDL语言的编写。2、验证全加器功能。

【实验原理】

设计一个一位全加器,能完成两个二进制位的加法操作,考虑每种情况下的进位信号,完成8组数据的操作。

【实验步骤】

1.1建立工程项目

1.1.4 原理图设计

新建项目后,就可以绘制原理图程序了。下面以一位全加器如图1-12所示为例,讲解原理图的编辑输入的方法与具体步骤。

图1-12 一位全加器原理图

(1)执行菜单“File”→“New…”,或在工具栏中单击图标,弹出如图1-13所示的“New”对话框。在此对话框的“Design Files”项中选择“Block Diagram/Schematic File”,在单击“OK”按钮,QuartusⅡ10.0的主窗口进入如图1-14所示的原理图工作环境界面。

图1-13 “New”对话框

(2)在如图1-14所示的原理图工作环境界面中单击图标或在原理图编辑区的空白处双击鼠标或在原理图编辑区的空白处右键单击在弹出的菜单中选择“Insert”中的任意一个,弹出如图1-15所示的元件输入对话框,在“Name”栏中直接输入所需元件名或在“Libraries: ”的相关库中找到合适的元件,再单击“OK”按钮,然后在原理图编辑区中单击鼠标左键,即可将元件调入原理图编辑区中。为了输入如图1-12所示的原理图,应分别调入and2、xor2、or3、input、output。对于相同的器件,可通过复制来完成。例如3个and2门,器操作方法是,调入一个and2门后,在该器件上单击鼠标右键,在弹出的菜单中选择“Copy”命令将其复制,然后在合适的位置上右键,在弹出的菜单中选择“Paste”命令将其粘帖即可。1

图1-14 原理图工作环境界面

图1-15 元件输入对话框

如果元件放置好后,需要改元件的位置时,对于单个器件而言,在该器件上按住鼠标左键,拖到合适的位置后再松开鼠标左键即可;对于多个器件而言,应该按下鼠标左键框选需要移动的所有器件,然后将光标移动到选择的器件上,待光标变成可移动的“十”字光标,此时按住鼠标左键将其拖到合适的位置即可。

如果要删除元件时,应先将元件选中,然后按“Del”键或右键在弹出的菜单中选择“Del”。

如果要旋转元件时,应先将元件选中,然后右键在弹出的菜单中可选“Filp Horizontal”(水平翻转)、“Filp Vertical”(垂直翻转)、“Rotate by Degrees”(逆时针方向旋转,可选90°、180°、270°)等命令。

(3)将光标指向元件的引脚上,光标变成“十”字形状,按下鼠标左键并拖动,就会有导线引出,连接到另一端的元件上后,松开鼠标左键,即可绘制好一根导线,按此方法绘制好全部导线,如图1-16所示。

2

图1-16 导入元件和绘制导线(注意:用鼠标拖出的导线只能最多转一个弯)

图1-17 修改引脚名对话框

(4)双击或右键单击“pin_name”输入引脚,将弹出如图1-17所示的对话框。在此对话框的“Gerneral”页的“Pin name(s) ”项中输入引脚名,如:S,然后单击“确定”按钮,即可将“pin_name”输入引脚名改为“S”。按此方法依次修改其他引脚。修改后如图1-16所示。

(5)执行菜单命令“File”→ “Save…”,或在工具栏中单击

名并单击“保存”按钮即可(此时最好不要更改存储路径)。

图标,弹出“Save AS”对话框,在此对话框中输入文件

2.1 顶层VHDL文件设计

2.1.1 创建工程和编辑设计文件

首先建立工作库,以便设计工程项目的存储。任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。

在建立了文件夹后就可以将设计文件通过QuartusII的文本编辑器编辑并存盘,详细步骤如下:

1、新建一个文件夹。利用资源管理器,新建一个文件夹,如:e : eda 。注意,文件夹名不能用中文。

2、输入源程序。打开QuartusII,选择菜单“File”“New”,在New窗中的“Device Design Files”中选择编译文件的语言类型,这里选“VHDL Files”(如图2-1所示)。然后在VHDL文本编译窗中键入VHDL程序(如图2-2所示)。3

图2-1 选择编辑文件的语言类型

图2-2编辑输入设计文件(顶层设计文件ADD1.VHD)

图2-3利用“New Preject Wizard”创建工程

篇三:计算机组成原理实验2.2_实验报告

一、 实验目的与要求

(1) 掌握Cache 控制器的原理及其设计方法。

(2) 熟悉CPLD 应用设计及EDA 软件的使用。

二、 实验设备

PC 机一台,TD-CM3+或TD-CMX 实验系统一套。

三、 实验原理

本实验采用的地址变换是直接映象方式,这种变换方式简单而直接,硬件实 现很简单,访问速度也比较快,但是块的冲突率比较高。其主要原则是:主存中一块只能映象到Cache 的一个特定的块中。

假设主存的块号为B,Cache 的块号为b,则它们之间的映象关系可以表示 为:b = B mod Cb

其中,Cb 是Cache 的块容量。设主存的块容量为Mb,区容量为Me,则直接 映象方法的关系如图2-2-1 所示。把主存按Cache 的大小分成区,一般主存容量为Cache 容量的整数倍,主存每一个分区内的块数与Cache 的总块数相等。直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache 中同一块号的那个特定块中。例如,主存的块0 只能映象到Cache 的块0 中,主存的块1 只能映象到Cache 的块1 中,同样,主存区1 中的块Cb(在区1 中的相对块号是0)

也只能映象到 Cache 的块0 中。根据上面给出的地址映象规则,整个Cache 地址与主存地址的低位部分是完全相同的。

直接映象方式的地址变换过程如图2-2-2 所示,主存地址中的块号B 与Cache 地址中的块号b 是完全相同的。同样,主存地址中的块内地址W 与Cache 地址中的块内地址w 也是完全相同的,主存地址比Cache 地址长出来的部分称为区号E。

1

在程序执行过程中,当要访问 Cache 时,为了实现主存块号到Cache 块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与Cache 的块数相等,字长为主存地址中区号E 的.长度,另外再加一个有效位。

在主存地址到Cache 地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。把读出来的区号与主存地址中的区号E 进行比较,根据比较结果和与区号在同一存储字中的有效位情况作出处理。如果区号比较结果相等,有效位为‘1’,则Cache 命中,表示要访问的那一块已经装入到Cache 中了,这时Cache 地址(与主存地址的低位部分完全相同)是正确的。用这个Cache 地址去访问Cache,把读出来的数据送往CPU。其他情况均为Cache没有命中,或称为Cache 失效,表示要访问的那个块还没有装入到Cache 中,这时,要用主存地址去访问主存储器,先把该地址所在的块读到Cache 中,然后CPU 从Cache 中读取该地址中的数据。

本实验要在CPLD 中实现Cache 及其地址变换逻辑(也叫Cache 控制器),采用直接相联地址变换,只考虑CPU 从Cache 读数据,不考虑CPU 从主存中读数据和写回数据的情况,Cache和CPU 以及存储器的关系如图2-2-3 所示。

Cache 控制器顶层模块如图2-2-4 所示,主存地址为A7A0,共8 位,区号E 取3 位,这样Cache 地址还剩5 位,所以Cache 容量为32 个单元,块号B 取3 位,那么Cache 分为8 块,块内地址W 取2 位,则每块为4 个单元。图2-2-4 中,WCT 为写Cache 块表信号,CLR 为系统总清零信号,A7A0 为CPU 访问内存的地址,M 为Cache 失效信号,CA4CA0 为Cache 地址,

2

MD7MD0 为主存送Cache 的数据,D7D0 为Cache 送CPU 数据,T2 为系统时钟, RD 为CPU 访问内存读信号,LA1 和LA0 为块内地址。

在 QuartusII 软件中先实现一个8 位的存储单元(见例程中的MemCell.bdf),然后用 这个8位的存储单元来构成一个32 X 8 位的Cache(见例程中的CacheMem.bdf),这样就实现了Cache的存储体。

再实现一个4 位的存储单元(见例程中的TableCell.bdf),然后用这个4 位的存储单

来构成一个8 X 4 位的区表存储器,用来存放区号和有效位(见例程中的CacheTable.bdf),在这个文件中,还实现了一个区号比较器,如果主存地址的区号E 和区表中相应单元中的区号相等,且有效位为1,则Cache 命中,否则Cache 失效,标志为M,M 为0 时表示Cache 失效。

当Cache 命中时,就将Cache 存储体中相应单元的数据送往CPU,这个过程比较简单。 当Cache 失效时,就将主存中相应块中的数据读出写入Cache 中,这样Cache 控制器就要产生访问主存储器的地址和主存储器的读信号,由于每块占四个单元,所以需要连续访问四次主存,这就需要一个低地址发生器,即一个2 位计数器(见例程中的Counter.vhd),将低2 位和CPU 给出的高6 位地址组合起来,形成访问主存储器的地址。M 就可以做为主存的读信号,这样,在时钟的控制下,就可以将主存中相应的块写入到Cache 的相应块中,

最后再修改区表(见例程中的(CacheCtrl.bdf)。

四、 实验步骤

1、实验接线:

3

2、实验步骤:

(1) 使用Quartus II 软件编辑实现相应的逻辑并进行编译,直到编译通过,Cache 控

器在EPM1270 芯片中对应的引脚如图2-2-5 所示,框外文字表示I/O 号,框内文字表示该引脚的含义(本实验例程见‘安装路径Cpld CacheCtrlCacheCtrl.qpf’工程)

(2) 关闭实验系统电源,按图2-2-6 连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明。

(3) 打开实验系统电源,将生成的POF 文件下载到EMP1270 中去,CPLD 单元介绍见实验1.2。

(4) 将时序与操作台单元的开关KK3 置为‘运行’档,CLR 信号由CON 单元的CLR 模拟给出,按动CON 单元的CLR 按钮,清空区表。

(5) 预先往主存写入数据:联机软件提供了机器程序下载功能,以代替手动读写主存,机器程序以指定的格式写入到以TXT 为后缀的文件中。

;

③ 计算机组成原理(三)存储系统

辅存中的数据要调入主存后才能被CPU访问

按存储介质,存储器可分为磁表面存储器(磁盘、磁带)、磁心存储器半导体存储器(MOS型存储器、双极型存储器)和光存储器(光盘)。

随机存取存储器(RAM):读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关,如内存条等

顺序存取存储器(SAM):读写一个存储单元所需时间取决于存储单元所在的物理位置,如磁盘等

直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取。如硬盘等

相联存储器,即可以按内容访问的存储器(CAM)可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器

读写存储器—即可读、也可写(如:磁盘、内存、Cache)
只读存储器—只能读,不能写(如:实体音乐专辑通常采用CD-ROM,实体电影采用蓝光光盘,BIOS通常写在ROM中)

断电后,存储信息消失的存储器——易失性存储器(主存、Cache)
断电后,存储信息依然保持的存储器——非易失性存储器(磁盘、光盘)
信息读出后,原存储信息被破坏——破坏性读出(如DRAM芯片,读出数据后要进行重写)
信息读出后,原存储信息不被破坏——非破坏性读出(如SRAM芯片、磁盘、光盘)

存储器芯片的基本电路如下

封装后如下图所示

图中的每条线都会对应一个金属引脚,另外还有供电引脚、接地引脚,故可以由此求引脚数目

n位地址对应2 n 个存储单元

假如有8k×8位的存储芯片,即

现代计算机通常按字节编址,即每个字节对应一个地址

但也支持按字节寻址、按字寻址、按半字寻址、按双字寻址

(Dynamic Random Access Memory,DRAM)即动态RAM,使用栅极电容存储信息
(Static Random Access Memory,SRAM)即静态RAM,使用双稳态触发器存储信息

DRAM用于主存、SRAM用于Cache,两者都属于易失性存储器

简单模型下需要有 根选通线,而行列地址下仅需 根选通线

ROM芯片具有非易失性,断电后数据不会丢失

主板上的BIOS芯片(ROM),存储了“自举装入程序”,负责引导装入操作系统(开机)。逻辑上,主存由 辅存RAM+ROM组成,且二者常统一编址

位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。

字扩展是指增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围。

实际上,存储器往往需要同时扩充字和位。字位同时扩展是指既增加存储字的数量,又增加存储字长。

两个端口对同一主存操作有以下4种情况:

当出现(3)(4)时,置“忙”信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。

多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交义工作。多体并行存储器分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)两种.

①高位交叉编址

②低位交叉编址

采用“流水线”的方式并行存取(宏观上并行,微观上串行),连续取n个存储字耗时可缩短为

宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍。存取周期为T,存取时间/总线传输周期为r,为了使流水线不间断,应保证模块数

单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。

缺点:每次只能同时取m个字,不能单独取其中某个字;指令和数据在主存内必须是连续存放的

为便于Cache 和主存之间交换信息,Cache 和主存都被划分为相等的块,Cache 块又称Cache 行,每块由若干字节组成。块的长度称为块长(Cache 行长)。由于Cache 的容量远小于主存的容盘,所以Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。因此 Cache 按照某种策略,预测CPU在未来一段时间内欲访存的数据,将其装入Cache.

将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾

CPU欲访问的信息已在Cache中的比率称为命中率H。先访问Cache,若Cache未命中再访问主存,系统的平均访问时间t 为

同时访问Cache和主存,若Cache命中则立即停止访问主存系统的平均访问时间t 为

空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的

时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息

基于局部性原理,不难想到,可以把CPU目前访问的地址“周围”的部分数据放到Cache中

直接映射方式不需要考虑替换算法,仅全相联映射和组相联映射需要考虑

①随机算法(RAND):若Cache已满,则随机选择一块替换。实现简单,但完全没考虑局部性原理,命中率低,实际效果很不稳定

②先进先出算法(FIFO):若Cache已满,则替换最先被调入Cache的块。实现简单,依然没考虑局部性原理

③近期最少使用算法(LRU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块已经有多久没被访问了。当Cache满后替换“计数器”最大的.基于“局部性原理”,LRU算法的实际运行效果优秀,Cache命中率高。

④最不经常使用算法(LFU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块被访问过几次。当Cache满后替换“计数器”最小的.并没有很好地遵循局部性原理,因此实际运行效果不如LRU

现代计算机常采用多级Cache,各级Cache之间常采用“全写法+非写分配法”;Cache-主存之间常采用“写回法+写分配法”

写回法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。减少了访存次数,但存在数据不一致的隐患。

全写法(写直通法,write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)。使用写缓冲,CPU写的速度很快,若写操作不频繁,则效果很好。若写操作很频繁,可能会因为写缓冲饱和而发生阻塞访存次数增加,速度变慢,但更能保证数据一致性

写分配法(write-allocate):当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常搭配写回法使用。

非写分配法(not-write-allocate):当CPU对Cache写不命中时只写入主存,不调入Cache。搭配全写法使用。

页式存储系统:一个程序(进程)在逻辑上被分为若干个大小相等的“页面”, “页面”大小与“块”的大小相同 。每个页面可以离散地放入不同的主存块中。CPU执行的机器指令中,使用的是“逻辑地址”,因此需要通“页表”将逻辑地址转为物理地址。页表的作用:记录了每个逻辑页面存放在哪个主存块中

逻辑地址(虚地址):程序员视角看到的地址
物理地址(实地址):实际在主存中的地址

快表是一种“相联存储器”,可以按内容寻访,表中存储的是页表项的副本;Cache中存储的是主存块的副本

地址映射表中每一行都有对应的标记项

主存-辅存:实现虚拟存储系统,解决了主存容量不够的问题

Cache-主存:解决了主存与CPU速度不匹配的问题

④ 【计算机组成原理】存储器设计问题

1、要考虑速度问题,即CPU和存储器之间的速度;
2、容量问题,CPU的访问地址线要能够足够存储单元用。
3、成本问题,要适合要设计的系统,成本要低;
4、可靠性问题
5、存储器类型,选用eeprom还是flash rom,还是EPROM等等
第一问:ROM需要6个,先用两个组成2K*8一组,再用3组组成6K*8的ROM;RAM需要4个芯片组成2K*8.总计8K,所以需要13条地址线。片选信号,CPU的WR RD分别连接RAM芯片的EN ,OE ; EA连接ROM的OE。
芯片数量的计算方法为 数量n =ROM或RAM的总容量/ROM或RAM单个芯片的容量

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:235
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726