数据库系统 —— 1.2 计算机体系结构(存储系统)

记录自学的过程,分享自己的笔记


1.2.2 存储系统


存储器系统是一个由不同的容量、成本和访问时间的存储器构成的层次结构,这些存储器通过适当的硬件和软件有机地组合在一起。
数据库系统 —— 1.2 计算机体系结构(存储系统)

三层存储器分别是高速缓存、主存储器和辅助存储器(外存储器)。

(1)存储器的分类

  • 按存储器所处位置:可分为内存外存

    内存,也称为主存储器,设置在主机内,用来存放机器当前运行所需的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。

    外存,也称为辅助存储器,如硬盘、磁盘和光盘等,用来存放当前不参与运行的大量信息,必要时可把需要的信息调入内存。相对于内存,外存的容量大、速度慢。

  • 按构成存储器的材料:可分为磁存储器半导体存储器光存储器

    磁存储器,是用磁介质做成的,如磁芯、磁泡、磁膜、磁带及磁盘等。

    光存储器,如CD-ROM、DVD-ROM等光盘存储器。

  • 按存储器的工作方式:可分为读写存储器只读存储器

    读写存储器,即RAM。既能读取数据又能存入数据的存储器。

    只读存储器,根据数据的写入方式,可分为固定只读存储器(ROM)、可编程的只读存储器(PROM)、可擦除可编程的只读存储器(EPROM)和电擦除可编程的只读存储器(EEPROM)。

  • 按访问方式:可分为按地址访问的存储器按内容访问的存储器

  • 按寻址方式:可分为随机存储器顺序存储器直接存储器

    随机存储器(RAM),这种存储器可以对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。

    顺序存储器(SAM),访问数据所需要的时间与数据所在的存储位置相关,磁带就是典型的顺序存储器。

    直接存储器(DAM),介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。

(2)随机访问存储器

随机访问存储器可分为两种:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,也更贵。SRAM常用于高速缓存存储器,DRAM用来作为主存储器及图形系统的帧缓冲存储区。

(3)高速缓存(p22)

高速缓存是用来存放当前最活跃的程序和数据,其特点是:容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。

  • Cache是介于CPU与主存之间的一级存储器,其容量较小,但是速度较快,一般比主存快5~10倍。
  • 它的主要作用是:调和CPU的速度与内存存取速度之间的差异,从而提升系统性能
  • Cache使用的是程序的局部性原理,其内容是主存局部域的副本
  • 当CPU需要读取数据时,首先判断要访问的信息是否在Cache中,如果在即为命中,如果不在,就要按替换算法把主存中的一块信息调入Cache中。
  • 替换算法有:随机替换算法、先进先出替换算法、近期最少使用替换算法、优化替换算法等。
  • CPU工作时给出的是主存的地址,要从Cache存储器中读写信息,就需要将主存地址转换成Cache存储器的地址,这种地址的转换叫做地址映像

Cache的地址映像有以下三种方法:

  • 直接映像:主存的块与Cache块的对应关系式固定的,在这种映像模式下,由于主存中的块只能存放在Cache存储器的相同块号中,因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中。
    数据库系统 —— 1.2 计算机体系结构(存储系统)

    主存地址

    主存区号 区内块号 块内地址

    优点:地址变换简单。

    缺点:灵活性差,块冲突率高,Cache空间得不到充分利用。例如,不同区号中块号相同的块无法同时调入Cache存储器,即使Cache中有空闲块也无法使用。

  • 全相联映像:主存与Cache存储器均分为容量相同的块。允许主存的任一快可以调入Cache存储器的任何一个块的空间中。
    数据库系统 —— 1.2 计算机体系结构(存储系统)

    主存地址

    主存块号 块内地址

    优点:灵活,块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache利用率高。

    缺点:无法从主存块号中直接获得所对应Cache的块号,变换比较复杂,地址变换速度慢,成本高。

  • 组相联映像:是前两种方式的折中。将Cache中的块再分组。组采用直接映像方式块采用全相联映像方式。主存的任何区的0组只能存到Cache的0组中,1组只能存放到1组中,以此类推。而组内的块可以存放到Cache中相同组的任一快中。
    例如,0区1组3块可以存放到Cache中的1组2块或者1组3块中。

数据库系统 —— 1.2 计算机体系结构(存储系统)

公式:
主存地址位数 = 区号 + 组号 + 主存块号 + 块内地址
Cache地址位数 = 组号 + 组内块号 + 块内地址