三层体系结构的特点

三层体系结构依次是:Cache、主存、辅存。

  • cache-主存:在CPU和主存之间增加一级速度快、但容量较小且每位价格较高的高速缓冲存储Cache)。借助于辅助软硬件,它与主存构成一个有机的整体,以弥补主存速度的不足。这个层次的工作主要由硬件实现。
  • 主存-辅存:这个层次的目的是为了弥补主存容量的它是在主存外面增加一个容量更大、每位价格更速度更慢的存储器(称为辅存,一般是硬盘)。它辅助软硬件的作用,构成一个整体。“主存-辅存常被用来实现虚拟存储器,向编程人员提供大量空间。

    Cache的特点、作用、工作原理

  1. 特点是速度快
  2. 作用:弥补CPU与主存之间的运行速度的差距。
  3. 工作原理:根据数据分布的局部性和时间局部性在CPU和主存之间设置Cache。

    虚拟存储器的特点、工作原理、管理方式

    虚拟存储器指的是“主存-辅存”层次。
    虚拟存储器的作用:
    虚拟存储器,Virtual Machine,简称VM,是对主存(DRAM)的一种抽象,是计算机系统中最重要的概念之一。计算机中有各种存储器,而VM的存在,就是为了帮助我们有效地管理这些存储器,减少错误,提供一种简单的数据交互方法。VM,将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存中来回传送数据,而且为每个进程提供了一致的地址空间,并保护这个地址空间不被其它的进程破坏

段式

  1. 段式存储是根据程序逻辑,给程序分段。使得每段大小不同。这种虚拟地址划分方法适合程序设计
  2. 段式存储的虚拟地址由段号和段内偏移地址组成。段式虚拟存储器到物理地址的映射通过段表实现
  3. 段式虚拟存储会造成空页

页式

  1. 概念
    1. 程序员在比实际主存大得多的逻辑地址空间中编写程序
    2. 程序执行时,把当前需要的程序段和数据块掉入主存,其他暂不使用的放在磁盘上
    3. 执行指令时,通过硬件将逻辑地址转化为物理地址。虚拟地址高位为虚页号,低位为页内偏移地址
    4. 当程序发生数据访问或程序访问失效(缺页时),由操作系统把信息从磁盘调入主存中
  2. 分页
    1. 基本思想:内存被分成固定长度且长度较小的存储块(页框,实页,物理页),每个进程也被划分为固定长度的程序块(页,虚页,逻辑页),通过页表,实现逻辑地址想物理地址转化
    2. 逻辑地址:程序中指令所使用的地址(进程所在地址空间)
    3. 物理地址:存放指令或数据的实际内存地址
  3. 页表结构
    页表的首地址放在基址寄存器。采用基址寻址方式
    每个页表项前面有一个虚页号:从0开始递增的序号。页表项又分为几个结构:
    (1)装入位:该页是否在内存中
    (2)修改位:该也在内存中是否被修改
    (3)替换控制位:用于clock算法
    (4)其他
    (5)实页号(8进制)
    段页式
  4. 段页式虚拟存储,先把程序按照逻辑分成段,再把每段分成固定大小的页。
    程序对主存的调入调出是按照页面进行的。但他有可以根据段实现共享和保护。
  5. 缺点是段页式虚拟地址转换成物理地址需要查询2个表:段表和页表。段表找到相应页表的位置,页表找到想也页的位置。
  6. 段页式细腻地址的结构可以为以下形式:
    程序地址: 用户号(进程pid) | 段号 | 页号 | 页内偏移地址

    Cache的地址映像

    直接映像
    j= i mod Cache的块数
    把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中唯一指定的块中,即相同块号的位置。主存地址分为三部分:区号、块号和块内地址,Cache地址分为:块号和块内地址。直接映像方式下,数据块只能映像到Cache中唯一指定的位置,故不存在替换算法的问题。它不同于全相连Cache,地址仅需比较一次。
    特点:地址变换简单、速度快,可直接由主存地址提取出Cache地址。但不灵活,块冲突率较高,Cache空间得不到充分利用。
    公式:
    1
    2
    主存地址位数 = 区号 + 区内分块号 + 块内地址
    Cache地址位数 = 块号+块内地址

全相联映像
计算主存地址的各字段的位数、命中率。
主存中任何一个块均可以映像装入到Cache中的任何一个块的位置上。主存地址分为块号和块内地址两部分,Cache地址也分为块号和块内地址。Cache的块内地址部分直接取自主存地址的块内地址段。主存块号和Cache块号不相同,Cache块号根据主存块号从块表中查找。Cache保存的各数据块互不相关,Cache必须对每个块和块自身的地址加以存储。当请求数据时,Cache控制器要把请求地址同所有的地址加以比较,进行确认。
特点:灵活,块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache利用率高。但地址变换机构复杂,地址变换速度慢,成本高。
公式:

1
2
主存地址位数 = 块号 + 块内地址
Cache地址位数=块号 + 块内地址。

组相联映像
j=(i mod Cache的组数)×Cache每组块数+k
组相连映像是前两种方式的折衷。主存按Cache容量分区,每个区分为若干组,每组包含若干块。Cache也进行同样的分组和分块。主存中一个组内的块数与Cache中一个组内的块数相等。组间采用直接方式,组内采用全相连方式。组的容量=1时,即直接映像,组的容量=整个Cache的容量时,即全相连映像。Cache的存在对于程序员透明,Cache的地址变换和数据块的替换算法都采用硬件实现。
公式:

1
2
主存地址位数 = 区号 + 组号 + 主存块号 + 块内地址
Cache地址位数 = 组号 + 组内块号 + 块内地址

替换策略(FIFO和LRU)

设置了Cache与未设置Cache时计算机运行速度的计算、内存平均存取时间的计算。

平均存取时间=htc+(1–h) (tm)

辅助存储器的性能参数的计算