存储器介绍

文章目录

  • 存储系统基本概念
    • 存储器的层次
    • 存储器的分类
    • 存储器的性能指标
  • 主存储器
    • 半导体元件的原理
    • 存储芯片的基本原理
    • 寻址
  • DRAM和SRAM
    • DRAM的刷新
    • DRAM的地址复用
  • 只读存储器ROM
  • 主存储器和CPU的连接
    • 位扩展
    • 字扩展
    • 字位同时扩展
    • 补充
  • 双端口RAM和多模块存储器
    • 双端口RAM解决多核CPU访存
    • 多模块存储器解决存取时恢复时间太长
      • 多体并行存储器
      • 单体多字存储器
      • 比较
  • 外存储器
    • 磁盘存储器
      • 性能指标
      • 磁盘地址
      • 磁盘阵列
    • 固态硬盘SSD
  • 刷题小结
  • 最后

存储系统基本概念

存储器的层次

直接贴王道的课件(懒得画图)

image-20230307083749030

从上图可以看出:

  • CPU直接与主存进行数据通信,辅存中的数据需要放到主存里面才能被CPU处理。
  • Cache是为了缓解CPU的运算速度与主存的读写速度不匹配的问题。(冯诺依曼体系也用了这种思想)

举个例子,假如不存在主存,CPU 运算的快,就需要不断地从主存里面取数据(执行load指令),但是主存读取完有个恢复时间,所以cpu不能一直持续的从主存里面取数据,也可以说CPU运算完了主存还处在恢复时间,那CPU就得等主存恢复完毕才可以继续读取,这个等待时间CPU就空闲着了,为了缓解这种情况,引入了Cache。Cache集成在CPU内部。

image-20230307091746216

  • 主存与辅存之间通过硬件和操作系统实现练习,CPU与Cache、主存之间通过硬件(”线“)完成联系。
  • 主存解决了辅存速度慢的问题,辅存解决了主存容量小的问题。
  • 寄存器和Cache是两种东西,寄存器也被集成在CPU内部。寄存器速度更快、价格更贵、容量更小。
  • 存储器速度越快,则相同容量的价格就越贵,用在计算机上为了控制成本自然会使得越快的存储器容量越小。

问老师的得到一些拓展(膜拜:

我们现在都讲计算机多少核之类的,每个核里面有自己独立的一套寄存器,每个线程运行在一个核心上且只能操作自己核心的寄存器。核之间相互独立,且经过逻辑封装后对开发者不可见。

image-20230307092757800

从图里可以看出,核内
存在运算器、寄存器之类的部件,数据从主存写入Cache,再读到核内进行运算,算完后在写回Cache,再写回主存。

存储器的分类

稍作了解即可

image-20230307093137120

image-20230308095859775

  • 随机存取存储器(RAM)读写任何一个存储单元的时间相同,顺序存取存储器(SAM)的读写时间与存储单元的位置有关,直接存取存储器(DAM)有两者的特性,相联存储器(CAM)根据内容找到存储单元进行读写。

  • RAM是随机存储器,ROM是只读存储器

  • 内存和Cache是易失性存储器,断电后里面的数据就丢失了,磁盘、硬盘之类的是非易失性存储器,断电后的数据不会丢失。

以前是机械硬盘,所以开机比较慢,我记得我小学时候家里电脑开机要三四分钟,现在换成固态硬盘SSD了,开机基本几十秒,快的十几秒就行,这是因为开机时要运行操作系统和一些软件,那就要把他们调入主存,而固态硬盘读写速度比机械硬盘快几倍,所以现在开机速度比以前快了,当然这只是开机速度一个方面,别的方面肯定也有优化。BIOS之类的集成在主板上。

  • 半导体存储器速度比较快,快于磁表面存储器(因为主存和Cache就是半导体做的)。
  • DRAM是破坏性读出类,原存储数据会被破坏。而SRAM芯片属于非破坏性读出类,读出数据后原存储数据不会被损坏。

存储器的性能指标

一些概念直接贴王道课件了

image-20230307100812139
  • 存储容量:存储字数*字长(1M$\times$8位),MDR的位数反映了存储字长。
  • 数据传输率和主存带宽是一个东西,表示每秒从主存进出信息的最大数量,数据传输率=数据的宽度/存储周期。
  • 特别注意存取数据后有个恢复时间,而考虑恢复时间才是一个存取周期

主存储器

半导体元件的原理

建议去听王道的课。视频里会讲半导体元件是怎么存储0和1的。

贴王道的课件,懒得画图

image-20230307102500667

  • 存储器分为存储体、MAR、MDR,MAR是地址寄存器,MDR是数据寄存器。
image-20230307110130009
  • 我简单理解为存储元存储0和1是通过电容的充放电,以及MOS管的通断电来实现的,但是不管怎么样,我知道存储元通过电路实现了0和1的存储。
  • 图中一行存储元就叫存储单元,比如图中一个存储单元包括8个存储元。
  • 一行存储元也可以称为存储字,存储字长就是存储字的位数,图中一个存储字包括8个存储元就说明存储字长是8位。
  • 存储字就是存储单元,存储器读写的基本单位是存储字。

存储芯片的基本原理

image-20230307103459851
  • MAR是主存地址寄存器。译码器输出和存储元之间还存在一个放大器使得输出的信号稳定有效,一般称为驱动。
    在这里插入图片描述

  • 译码器 是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号。
    image-20230307104025665

  • MAR里放的是一个地址,输入译码器,译码器翻译一下得到使得某根线“有效”(存储体中红色的线,选通线),之后那根线“指向”的存储单元表示的数据通过数据线(存储体中绿色的线)被传到MDR里面。

  • CPU通过数据总线和MDR连接,进而从MDR里取走数据。数据总线的宽度=存储字长

  • CPU通过地址总线和MAR连接,进而向MAR里写数据,再通过控制总线等一些机制实现取出数据

问老师得到的回答:

如果一定要细致分析的话,和任何组件直接相连的都只有总线,组件通过把数据放到总线上和从总线取数据来完成数据传输,类似于水管系统和水管上的蓄水槽的关系,蓄水槽通过开关接口来完成取水和放水.

  • MAR能否输入译码器,是否从MDR里取数据,是否向MAR里写数据这些工作由控制电路控制
  • 总容量=存储单元的个数 × \times ×存储字长
  • 存储器上可能有多块存储芯片,片选线的作用就是选中一块存储芯片工作。
  • image-20230307112959065

存储芯片上有很多的针脚,这些针脚的作用是连接外部电路,如连接对应的地址线、数据线、读写线等。

  • 芯片的描述:8K*8位=存储单元数量 × \times ×存储字长=213$\times$23bit
    image-20230307183542665

寻址

现在计算机按字节编址,寻址方式也有很多种,如按字节寻址、按字寻址、按半字寻址等等。

image-20230307184131259

从图中可知:由总容量可以看出地址线数目,不同的寻址方式单元数目和每个单元的大小也不同。

DRAM和SRAM

ChatGPT:

image-20230309141423248

DRAM(动态随机存取存储器)采用的是栅极电容,SRAM(静态随机存取存储器)采用的是双稳态触发器。

image-20230309163043444
  • DRAM采用电容和MOS管的充放电来存储0和1,但是电容上的电荷可能会流失,所以过一段时间我们需要进行刷新操作来保证信息存储的正确性,而SRAM采用的是双稳态触发器,不需要刷新操作,但是双稳态触发器的设计更复杂,成本也更高。
  • DRAM的复杂度更低,成本低,所以在相同大小的芯片可以容纳更多的存储元,即存储密度高,芯片集成度高,但是读写速度相对较慢,常用于主存
  • SRAM的复杂度更高,成本高,所以在相同大小的芯片可以容纳更少的存储元,即存储密度低,芯片集成度低,但是读写速度相对较快,常用于Cache
  • DRAM读写数据时电荷流失,是破坏性读出,所以读出后要进行“重写”操作。SRAM是非破坏性读出,无需重写。

DRAM的刷新

之前提到我们采用刷新的策略来保证存储信息的正确性。

image-20230309165823040

图中提到了一般是2ms需要刷新一次,通过硬件进行刷新,每次刷新一行存储单元,图中给出了三种方案,分别是每次读写后都刷新,集中一段时间刷新,在2ms内每行刷新一次即可,其中第三中方案的效率最高,比如CPU需要用到第4行存储单元,此时不需要第5行存储单元,于是我们可以蹭着这个时候刷新第5行的存储单元,缩短了死时间但没有消除。唯一没有死时间的是第一种分散刷新,但是效率最高的是第三种。

DRAM的地址复用

image-20230309165552116

之前提到,MAR里存储的地址信号给到译码器,译码器解码后找到一根选通线施加高电平,即选中了这根线所在的存储单元。

所以如果地址线有3根,就是23=8个地址,需要8根选通线来联系存储体,如果扩大到20根地址线,就需要220这么多根线来联系存储体达到寻址的目的。

显然这样的成本很大,于是存储体编址时分为了行地址和列地址,比如8位的地址0x11223344,那1122作为行地址,3344作为列地址,于是我们只需要24+24这么多的选通线,比起之前28是一个很大的优化。那20位的地址就只需要211次方,显然2048根线比起211能节省很多。

那地址是同时送到行和列地址的译码器吗,其实不是,而是先把行和列地址放入到一个缓冲区里面,再用同一批线先后将行地址和列地址送入相对应的译码器,这样优化后只需要以前一半的地址线即可完成工作,比如8位地址需要8根地址线,现在优化后只需要4根地址线,线更少了延迟也会更低。

地址复用减少了地址线的数目,本质是行列地址走同一批线送入译码器。而地址线减半,芯片的金属引脚数目也可以减半。

image-20230309171002558

现在其实用的都是SDRAM,比如我们常听见的DDR4内存条之类的,是RAM技术的进化版本,更快更好。

只读存储器ROM

不是只能读的才可以算是ROM,现在的SSD等技术都是基于ROM发展起来的,可以称作是ROM的升级版

问同学得到的回答:闪存和固态也是rom,是rom技术升级版,在课本上学到的rom是1990年左右生产的rom,固态和闪存是2010年生产的rom,本质不变,技术更新

直接贴王道的课件

image-20230309162736263 image-20230309212649024

MROM(Mask Read-Only Memory):厂家按客户需求定制,可靠性高,成本高,在生产中写入信息,任何人无法修改,适合批量定制。

PROM (Programmable Read-Only Memory):用户可以用专用的PROM写入信息,写过一次后就不可更改。

EPROM (Erasable Programmable Read-Only Memory):允许用户写入,并用特殊方法擦除信息,修改次数有限。分为UVEPROM和EEPROM,UVEPROM是用紫外线擦除,紫外线照射半小时后全部擦除,EEPROM是电擦除,用电可以擦除特定的字。

闪速存储器(Flash Memory):如U盘、SD卡,可多次快速的擦除重写,由于闪存需要先擦除再写入所以写的速度比读的慢,此外闪存的每个存储元都只要一个MOS管,所以芯片也比较小

SSD:就是我们现在讲的固态硬盘,也是基于闪存技术发展起来的,速度快,功耗低,成本高

U盘和固态硬盘都是闪存存储器的一种。U盘通常采用NAND闪存,而固态硬盘则通常采用NAND闪存或者更高速的3D XPoint技术等。虽然它们都属于闪存存储器,但它们的设计和用途有很大的区别。U盘通常用于存储和传输数据,而固态硬盘则用于计算机的主要存储设备,用于安装操作系统和存储应用程序和文件等。此外,固态硬盘的读写速度和稳定性通常比U盘更高。

image-20230309213102087

启动系统得借助BIOS程序,开机时RAM由于断电没有数据,所以BIOS程序需要被集成在ROM上,所以理解上可以说主存是由RAM和ROM组成的。一般来说会把ROM设计在低地址,RAM设计在高地址。

主存储器和CPU的连接

与ChatGPT的对话

CPU通过总线与主存储器相连,中间会借助一些寄存器,比如MAR和MDR,总线又分为数据总线和地址总线。

位扩展

位扩展扩展的是主存的存储字长

以下图为例,当存储芯片的存储字长为1位时,存储芯片每次只能通过数据总线传输1位,而从图中可以看出数据总线的容量有8位(D0-D7),所以为了提高数据传输的效率,我们采用位扩展的方法,让第二块芯片也连接数据总线,使得第二块芯片读出的那一位也被输出到数据总线里面,此时通过数据总线就传输了两位数据,同理再连接6块芯片,那数据总线每次就能传输8位了,此时就可以把8个8KX1位的存储芯片看作1个8KX8位的芯片。我简单理解成通过位扩展把数据总线的位数占满了,提高了传输效率。

image-20230315170509337

下面这张图和上面表达的意思是一样的

image-20230314201130911

字扩展

字扩展扩展的是主存容量

建议去看王道视频,里面讲的比较详细

以下图片选法为例,数据总线被占满了,地址线空了三根。下图的CPU具有216的编址能力,而存储芯片只有213个存储地址,所以我们可以通过一个38译码器和总线再连接7个存储芯片(加上本身就是一共8个),译码器的作用是每次只选中一个存储芯片,而通过图中的地址可以看出,通过译码器存储地址可以是连续的,连续的地址便于存取。此时一共就有了216个地址,充分利用了CPU的寻址能力。

image-20230315172506269

上面是片选法,利用译码器每次唯一选中一个存储芯片,好处是地址连续,还有一种是线选法。

下面的就是线选法,图中的A13和A14分别连在两块芯片上,与片选法不同的是这种办法不能保证只有一块芯片被选中,比如图中的两块芯片同时被选中,就一共有十六位会被输出到数据总线中,而数据总线的位数是8位,所以数据会“碰撞”出错,而且相对于片选法地址也不是连续的,所以在实际情况下字扩展都会选择片选法。

image-20230315195448342

线选法和片选法的比较

线选法片选法
电路简单电路复杂
地址不连续地址连续
n条线n个选片信号n条线2n个选片信号

字位同时扩展

既扩展了存储字长也扩展了容量

image-20230315200322283

补充

38译码器里有个部分叫使能端,当使能端有效时译码器才生效,如图中的G1、G2A、G2B,当这三个全部有效时译码器生效,因为在最开始电路信号可能不稳定,这个设计可以等电路信号稳定后再让译码器生效,即保证了信号的有效性。

CPU现在MAR和MDR里准备好数据,然后送出地址信号,因为最开始电流可能不稳定,所以等地址信号稳定后再使得MREQ有效,之后译码器生效选中某块芯片工作。

image-20230315200443460

图中左下角有个时序图,地址信号生效后过一段时间CPU让译码器生效即CS信号生效,芯片被选中工作后就可以通过数据总线传输数据,所以CS信号生效后过了一段时间数据总线里出现数据并稳定下来,数据稳定下来后地址信号失效。

简单来说,送出地址信号,信号稳定后选中芯片,数据总线里数据稳定后地址信号失效。

双端口RAM和多模块存储器

两个问题

  1. 多核CPU访存怎么办?(我们之前都只考虑的CPU都是一个核)
  2. 主存的访问存在存取周期,有恢复时间,CPU运算时间很快,主存恢复时间太长怎么办?

双端口RAM解决多核CPU访存

image-20230315203101756

双端口RAM可供两个核访问,有以下几种情况:

  • 两个核同时读,不管是读相同地址单元还是不同单元都没问题
  • 两个核同时写,如果时不同地址单元则可行,如果是相同地址单元则会出问题
  • 一个核写,一个核读,读写的存储单元不同没有问题,读写的单元相同会出问题

出现冲突时让双端口RAM的某一端关闭(置忙),让另一端先用,也可以说两个端口排个队,具体做决策和电路有关。

多模块存储器解决存取时恢复时间太长

多模块存储器说白了就是多个主存。

多体并行存储器

看下面这张图得从多位交叉编址和低位交叉编址入手。可以看出高位交叉编址在一个存储器里的地址是连续的,而低位交叉编址的地址在多个存储器里是连续的。由于存取周期包括存取时间和恢复周期,处于恢复周期时CPU不能读写,所以低位交叉编址可以使得存储器处于恢复周期时CPU能够存取另一块芯片,有点“异步”的思想,而从两种编址方式的时序图也可以看出,低位交叉编址的效率更高。

而每个存储器之间都是独立的,所以相互之间可以并行运行,也可以交叉运行。

image-20230317161838576

为什么探讨的是“连续访问”的情况?因为我们存放的数据大多都是连续的。

低位交叉编址这种情况下CPU像”流水线“一样的去读写存储器,在宏观上是并行的,微观上是串行的,有点像进程调度。为了使得“流水线”不间断,应满足m>=存取周期/存取时间,m为存储体的数量。

确定一个地址属于第几个存储体:由于地址被划分为体内地址和体号,所以看体号即可。(比如四块存储器,就以低两位为体号即可)。

image-20230317162932347

单体多字存储器

image-20230317163524981

即每个存储单元存储多个字(一般一个存储单元都只存储一个字),然后这多个字一次性被读取,好处是快,缺点是可能会取到冗余的数据,因为不能单独取某个字。

比较

多体并行存储器分为高位交叉编址和低位交叉编址,由于低位交叉编址效率更高,所以后面提到的多体并行存储器都指低位交叉编址的多体存储器,当存储体的数量m>=存取周期T/存取时间r时,可以达到最高的效率,即CPU存取一个字都只需要存储时间r.

而单体多字每次可以取m个字,所以存取一个字的时间等于字的存取周期T/m。

比如存取周期为4r,存取时间为r时:若采用有4个存储体的多体并行存储器,则存取一个字的时间为r。若采用4个字的单体多字存储器,存取一个字的时间也约为r。所以两者的效率其实差不多。

我们组双通道内存时就是用到的就是低位编址的多体并行存储器,两个内存采用频率和容量一样的,频率不同会发生降频,容量不同时会有部分编址以单通道的形式访问。

外存储器

磁盘存储器

磁盘上涂了磁性介质,并通过了一些物理知识,如电磁感应等待来存储0和1。

正面

image-20230317165035541

背面

image-20230317165511848 image-20230317165555660

图形比话好理解

  • 柱面数:硬盘每一面的磁道数目
  • 扇区:磁盘读写数据的最小单位,一条磁道上有多个扇区。可以从图中看出磁道是一个个的同心圆,扇区是一段段”同心的弧“,弧长不等但是这些弧存储信息的容量是相等的,即靠近里面的扇区信息密度大,弧长小,而相对外面的扇区弧长大,存储信息的密度低。显然存储信息密度越高需要的工艺就越精密。
image-20230317170433950

从上面每个扇区存储的信息相同,且每条磁道扇区数相同,显然可以推出每条磁道能存储的信息相同

  • 扇区数:一条磁道上有多少个扇区
image-20230317170030885

性能指标

  • 磁盘容量:磁盘能存储的总字节。格式化前后的容量不同,一般格式化后的容量更小。
  • 记录密度:分为道密度、位密度、面密度。
image-20230317170527570

图中的60道/cm就是道密度,表示1cm(单位长度)内有多少条磁道

600bit/cm表示位密度,表示1cm(单位长度)内存储信息的多少。

面密度=道密度 × \times ×位密度

  • 平均存取时间=寻道时间+旋转延迟时间+传输时间

寻道时间:存取时磁头要先找到数据在哪条磁道上,磁头是一个机械装置,一般由马达驱动(可以b站找机械硬盘工作的视频)

旋转延迟时间:找到磁道后要去找到对应的扇区

传输时间:传输数据花费的时间,就是划过扇区的时间

image-20230317171011593
  • 数据传输率:单位时间内向主机传送数据的字节数

比如我规定单位时间为1s,磁盘1秒能转60圈,即60转/秒,即1s内可以读60条磁道这么多的数据,记每条磁道能够存储的信息大小为D,那数据传输率就是60D。那推广到磁盘1秒转r圈,每条磁道能够存储的信息大小为D,数据传输率=D × \times ×r

磁盘地址

image-20230317201153306

先确定是哪个磁盘,即驱动器号,然后寻道找到对应的磁道,再确定是哪个盘面(使用哪个磁头),再找到对应的扇区进行存取。

磁盘是串行读写的,同一时刻只能读或者只能写。但是不代表计算机一刻只能运行一个任务,操作系统会调度好,让我们运行多任务时看起来有“并行”的效果

磁盘阵列

image-20230317202147046

RAID是廉价冗余磁盘阵列,即采用多块磁盘保证数据的安全。RAID0就不做任何措施,而RAID1就直接完全备份一份数据,如果其中一份数据坏了也不要紧,但是需要两倍的容量来存放原来的数据,这样可能有点浪费,所以下面的RAID2、RAID3等都采用了不同的方案为了在容量和安全上取得一个平衡,在保证数据安全的前提下也不会浪费很多存储空间。

固态硬盘SSD

  • 固态硬盘以页为最小的读写单位,机械磁盘以扇区为最小的读写单位,两者都可以被称作逻辑块。
image-20230317202552076
  • 固态硬盘要写的页如果有数据那在写之前要先擦除,擦除以块为单位,可是此时我们只想擦除一个页,这时就会擦掉一些无关数据,所以在擦除时会先把无关数据进行拷贝,再进行写入。比如1个块有3页,记为A、B、C,要在A这页写入数据,B、C不动,那就把BC两页拷贝到别的没有数据的地方,然后再进行写入,之后闪存翻译层再修改一下地址映射使得修改后数据的物理地址和之前的逻辑块对应上。(这里讲的很抽象,王道视频画个图就很清楚)
  • 固态硬盘擦写次数多了块就会失效(但是能用很久,只要不是每天写入海量的数据用个几十年不是问题),而且也不会逮着一个块一直擦除,会将“擦除”分配到各个块上。

王道的思维导图:

image-20230317203911261

刷题小结

  • 要知道RAM、ROM、SAM、DAM是什么,RAM典型的就是主存,ROM比如光盘,SAM比如磁带,DAM比如磁盘。

  • 存储器分级是为了解决速度、容量、价格之间的矛盾

  • CAM是相联存储器,存储方式是内容指定方式和地址指定方式

  • 一般地址指定方式的存储器都是随机访问的,即读写存储单元的时间与位置无关,直接根据地址找到存储单元即可。

  • 主存与辅存之间的数据调动仅对应用层程序员透明,主存与辅存之间的数据调动由硬件和操作系统完成。

  • Cache的命中率低时需要从主存中读取数据,所以提高Cache的命中率可以提高系统性能。Cache的命中就是CPU能否在Cache里拿到自己想要的数据。

  • S R A M 芯片的引脚的最小数目 = 地址线 + 数据线 + 片选线 + 读写控制线 SRAM芯片的引脚的最小数目=地址线+数据线+片选线+读写控制线 SRAM芯片的引脚的最小数目=地址线+数据线+片选线+读写控制线

  • D R A M 芯片的引脚的最小数目 = 地址线 ( 地址复用技术 ) + 数据线 + 行选通 + 列选通 + 读写控制线 DRAM芯片的引脚的最小数目=地址线(地址复用技术)+数据线+行选通+列选通+读写控制线 DRAM芯片的引脚的最小数目=地址线(地址复用技术)+数据线+行选通+列选通+读写控制线,行选通线可以充当片选线,所以不用加上片选线,特别注意地址复用技术(题目说了是DRAM没指明地址复用技术也默认采用了地址复用技术)

  • DRAM的刷新策略中只有分散刷新不存在死时间,因为分散刷新把刷新的那部分时间算到存取周期里了,相当于延长了存储周期(读完了还要等这一行刷新完了才算一个存取周期)。集中刷新存在死区,异步刷新缩短了死时间,减少了内存访问延迟(可以一直连续的访问)

  • EPROM可改写但是不能作为随机存储器,改写次数有限。

  • DRAM存储一个比特位需要1个MOS管和一个电容,SRAM存储一个比特位需要6个MOS管,所以相同体积下DRAM可以存储更多的信息,故DRAM的集成度更高

  • 一次完整的刷新过程只需要占用一个存储周期,刷新相当于读取,读出来后借助刷新放大器放大后再存回去,刷新放大器每次可以选择一行进行刷新,所以刷新一行的时间相当于读取一个存储单元,即一次完整的刷新过程只需要占用一个存储周期。

  • 题目里的多体交叉存储器没有指明是高位多体交叉存储器就默认是低位交叉存储的。

  • 地址的后几位就能看出这个地址属于第几块芯片,连续访存同一块地址芯片可能发生访存冲突

  • DRAM的行缓冲区的大小等于一行存储单元的大小

  • SDRAM是一种同步动态随机存取内存,它可以与计算机的系统时钟同步,从而提高内存的运行速度,也是一种DRAM。

  • 低位多体交叉存储器可以做到一直读取,连续存取m个字所需的时间为 T + ( m − 1 ) r T+(m-1)r T+(m1)r,T是存取周期,r是存取时间。读取最后一个字所需的时间是T,要等最后一个字恢复完毕才算一个完整的存取周期。

  • 高位多体交叉存储器不能很好的满足程序的局部性原理,满足程序的局部性原理的意思是可以连续访问,因为程序的局部性原理指的是CPU刚刚访问了某个地址,后面CPU的访问多半会在这个地址附近,所以能连续访问的存储体可以更好的满足这种特性,所以低位交叉存储器能满足程序的局部性原理。

  • 字扩展时地址总线的低位先接入存储芯片,高位用来接译码器产生片选信号。(注意字位同时扩展时,不能单看容量来判断需要几根地址线接入译码器,比如4K$\times$4位的芯片构成16KB的存储器,从容量上看一共需要8块存储芯片,但是它还需要位扩展(2个存储芯片并联在一起完成位扩展,相当于分组了),所以字扩展只需要四块芯片接入译码器,也即只需要两个地址线即可。

  • 字位扩展可以抽象为一个矩阵(王道课件里给的是立体图),位扩展等同于行(并联在一起),字扩展等同于列(串联在一起)。

字扩展,位扩展和字位扩展,下面的图来自于这篇博客,说明了位扩展是并联。

image-20230322162113371

  • 算地址时注意按字编址的字是多大,一般告诉你存储字长,计算机字长都相当于告诉你按字编址的字是多大。

  • 减小存储芯片的刷新开销就是减少存储阵列的行数,行数越少刷新的次数少,开销小。

  • SSD固态硬盘的写速度相对慢,因为要电擦除再写,易磨损(可以理解为擦除次数有限),这是题目里的话。实际使用时我觉得写速度不慢了,而就算有磨损也可以用很多年了,但题目这么说就这么选/doge。

  • 磁盘数据传输速率是的KB里的K是103

  • 扇区的存取时间 = 寻道时间 + 旋转时间 + 传输时间 + 控制器延迟 扇区的存取时间=寻道时间+旋转时间+传输时间+控制器延迟 扇区的存取时间=寻道时间+旋转时间+传输时间+控制器延迟,就是找到磁道的时间+找到扇区的时间+读取扇区的时间+控制器的延迟。

    其中旋转时间就是转半圈的时间,因为计算时取了平均。

    有时不会给控制器延迟,给出转速我们就知道了旋转时间,知道转速和一个磁道上的扇区数就知道了单位时间可以读多少个扇区也就知道了读一个扇区的传输时间。

  • RAID是将多个物理盘组成一个逻辑盘,RAID0没有任何措施,RAID1-5加入了冗余和校验的方法保证数据安全。冗余比如镜像,校验比如奇偶校验。

最后

自己理解可能有误,请大佬斧正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15445.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI文档翻译——在不通的场景下如何更好的设计ChatGPT提示词

概述 OpenAI可以被广泛的应用于各种任务,他为各种模型提供使用简单而功能强大的API。你可以输入一些文本作为提示词,OpenAI则会生成对应的提示词补全,在使用过程中这就是会话形式以及能够记住上下文的体现。探索如何生成提示词的最好方法就是…

如何使用ChatGPT 写官方声明?

上海车展宝马Mini展台被指区别对待中外访客,向外国访客送冰淇淋,中国访客索要时则说“没有”,此事引发争议。 对此,宝马官方也发布了官方致歉声明,网友看到声明后,纷纷发布自己的看法,有网友还…

独家专访:OpenAI 的 Sam Altman 谈 ChatGPT 以及通用人工智能如何“打破资本主义”

来源: AI前线 作为 OpenAI 的首席执行官,Sam Altman 领导的这家初创公司是正在快速增长的生成式 AI 行业中最热门且最受关注的一家。在 1 月中旬参观了 OpenAI 的旧金山办事处后,福布斯采访了这位最近不太愿意在媒体上抛头露面的投资者和企业家&#x…

ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)

文章目录 ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)Text-to-Text 模型ChatGPTLaMDAPEERMeta AI Speech from Brain Text-to-Code 模型CodexAlphacode Text-to-Science 模型Galacti…

千万级入口服务[Gateway]框架设计(三:分层模式)

本文将以技术调研模式编写,非技术同学可跳过。 文章目录 背景分层分发Handle分发hook分发并发分层 管道ChannelDemo 实现 小结 附录 背景 基于组件(插件)模式设计构建的入口服务实现中,使用 Go 原生包 plugin 的时候,会存在功能缺陷问题&am…

ChatGPT配合两款神器,1分钟生成流程图

流程图,工作上再正常不过的一种图形,常见制图方法对比: 传统手动制图:耗时耗力,迁移性差AI 辅助制图:使用自然语言提出需求,零基础快速制图 几款常见的我在用的在线绘图工具推荐: Pr…

面向对象实现游戏聊天中的敏感词屏蔽功能,将敏感词汇用星号***替换

import java.util.Scanner;//新建一个类 public class Replace {// 定义一个字符串String commons;// 建一个替换的方法public void replace() { //控制台输入Scanner sc new Scanner(System.in);// 提示输出(为方便功能实现,此处提示内定的敏感词汇&am…

DreamGPT:让ChatGPT活在梦里!利用幻觉来激发创意灵感

本文来源 新智元 编辑:LRS 【新智元导读】语言模型幻觉从bug变feature! ChatGPT最为人诟病的缺陷就是「胡编乱造」了,可以一本正经地讲一段林黛玉倒拔垂杨柳的故事。 对于真正想了解「林黛玉」或「倒拔垂杨柳」的人来说,这段回答…

这五个问题一下就看出阿里通义千问和ChatGPT的差距了

前言 阿里通义千问申请过了,为了看看达到了什么水平,于是我问题了5个ChatGPT回答过的问题1,这五个问题网上都是没有的,是我自己想出来的。 问题一:小明说今天他吃了一只公鸡蛋,请问小明诚实吗? ChatGPT 这…

chatgpt赋能python:Python模拟终端:打造简单易用的命令行工具

Python模拟终端:打造简单易用的命令行工具 在现代编程中,命令行工具被广泛使用。无论是开发、测试还是维护,都需要通过命令行工具完成。Python的灵活性和强大的库使得开发命令行工具变得更加容易。本文将介绍如何使用Python编写一个简单易用…

Llama 2高调开源颠覆大模型圈!2万亿token训练,打不过GPT3.5

​ 编辑 添加图片注释,不超过 140 字(可选) 来源 | 新智源 ID | AI-era 一觉醒来,Meta直接丢了一颗重磅核弹:Llama 2! 继LLaMA开源后,Meta今天联手微软高调开源Llama 2,一共有7B、…

对话哥伦比亚大学教授俞舟:人工智能公司的竞争,到最后还是产品和服务的竞争...

视学算法报道 编辑:杨德泽 在对谈中,俞舟不像其他创业者那样大谈 ChatGPT 对于行业的巨大影响力,她更加关注产品、更加关注使用产品的人,她不相信 AI 可以替代人类,而是帮助人类提升技能。 在俞舟开始她的对话系统创业…

昨晚,爆了。

昨天晚上,我们微信群爆炸了。 因为星球就聊挣钱,首期小红书电商训练营开放报名,第一期我们准备开放了100个名额。 结果,不到3分钟就爆满了100人,再我们赶紧结束报名的时候,又涌入了40人。 这是我们就聊挣钱…

马斯克在中国的44小时丨多少值得看

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 马斯克中国行的高度神秘性背后,预示特斯拉对于此次行程成果的看重和期待。 作者丨 魏帅 任娅斐 来源丨中国企业家杂…

chatgpt赋能python:Python图像拼接代码:将多张图片合并为一张

Python图像拼接代码:将多张图片合并为一张 如果您需要将多个图片合并成一张大图,那么Python图像拼接代码可以帮助您简化这个过程。这篇文章将为您介绍如何使用Python的Pillow库来合并多个图片,并且展示了一些关于图像拼接常见的问题和技巧。…

开源一个各种USB电缆的测试仪,再也不用担心被只有充电功能的数据线坑了

作者:晓宇,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 01 想知道你的USB Type C数据线是USB2或者USB3吗?大家是否有一些仅有充电功能的USB数据线在你的抽屉里,等待…

OpenAI再出新作,AIGC时代,3D建模师的饭碗危险了!

大家好,我是千与千寻,也可以叫我千寻哥,说起来,自从ChatGPT发布之后,我就开始焦虑,担心自己程序员的饭碗会不会哪天就被AIGC取代了。 有人说我是过度焦虑了,但是我总觉有点危机感肯定没有坏处。(结尾反转,hhh,希望你看下去!) 不过好家伙,还没等AIGC大模型完全替…

python编写照片中人脸标识并保存功能

这是我之前回答中的代码的更新版本,它检测图像中的人脸并将检测到的人脸保存为单独的图像: 需要安装opencv-python pip3 install opencv-python -i https://pypi.douban.com/sample/ 还需要训练模型(人脸识别文件):…

【钓鱼实测】写bug给new bing和chatGPT查。问他们林黛玉倒拔垂杨柳

BUG 错误代码 #include <iostream> #include <vector> using namespace std; int main() {vector<int> vec{1,2,3,2,4};for (auto iter vec.begin(); iter ! vec.end(); iter ){if (*iter 2) {vec.erase(iter);}}cout << vec.size() << endl…

2013-14红军利物浦赛季总结

本文首发于懂球帝 总览 本赛季红军利物浦如好莱坞大片般的剧情&#xff0c;跌宕起伏扣人心弦&#xff0c;有喜悦&#xff0c;也有遗憾&#xff0c;最后几轮争冠历程的虐心程度堪比韩剧。随着纽卡比赛的终场哨响&#xff0c;KOP们心里五味杂陈&#xff0c;不知是如释重负&#x…