精华内容
下载资源
问答
  • 先一句话说明数据流的流通路径:计算机的计算数据需要从磁盘调度到内存,然后再调度到L2 Cache,再到L1 Cache,最后进CPU寄存器进行计算。 一、DRAM(动态随机存取存储器)SRAM(静态随机存取存储器) DRAM只能...

    最近在研究openblas里面用到的gemm矩阵加速思想,涉及到很多cache缓存的问题,便有了这篇文章作为记录

    先一句话说明数据流的流通路径:计算机的计算数据需要从磁盘调度到内存,然后再调度到L2 Cache,再到L1 Cache,最后进CPU寄存器进行计算。

    一、DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)

        DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(预充电)一次,如果存储单元没有被刷新,存储的信息就会丢失(关机就会丢失数据)。主要用于系统内存。

        SRAM是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,速度快,但是集成度低。主要用于CPU与主存之间的高速缓存。

    二、高速缓冲存储器(Cache)

        Cache通常使用昂贵但较快速的SRAM技术(通常认为cache是静态随机存储器)。在计算机存储系统的层次结构中,介于cpu和主存储器之间的高速小容量存储器(主存属于DRAM,比如pc上面的内存条,相对SRAM慢一些)。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。高速缓冲存储器最重要的技术指标是它的命中率。Cache作为主存局部区域的副本,用来存放当前活跃的程序和数据,它利用程序运行的局部性,把局部范围的数据从主存复制到Cache中,使CPU直接高速从Cache中读取程序和数据,从而解决CPU速度和主存速度不匹配的问题。

    三、Cache替换算法

        CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。当出现未命中而高速存储器对应列中没有空的位置时,便淘汰该列中的某一组以腾出位置存放新调入的组,这称为替换。为了保证CPU访问时有较高的命中率,Cache中的内容应该按一定的算法替换。常用的替换算法有:最近最少使用法(LRU)、先进先出法(FIFO)和随机法(RAND)等。

    目前提出的算法可以分为以下三类(第一类是重点要掌握的):

    (1)传统替换算法及其直接演化,其代表算法有:①LRU(Least Recently Used)算法:将最近最少使用的内容替换出Cache;②LFU(Lease Frequently Used)算法:将访问次数最少的内容替换出Cache;③如果Cache中所有内容都是同一天被缓存的,则将最大的文档替换出Cache,否则按LRU算法进行替换。④FIFO(First In First Out):遵循先入先出原则,若当前Cache被填满,则替换最早进入Cache的那个。

    (2)基于缓存内容关键特征的替换算法,其代表算法有:①Size替换算法:将最大的内容替换出Cache②LRU— MIN替换算法:该算法力图使被替换的文档个数最少。设待缓存文档的大小为S,对Cache中缓存的大小至少是S的文档,根据LRU算法进行替换;如果没有大小至少为S的对象,则从大小至少为S/2的文档中按照LRU算法进行替换;③LRU—Threshold替换算法:和LRU算法一致,只是大小超过一定阈值的文档不能被缓存;④Lowest Lacency First替换算法:将访问延迟最小的文档替换出Cache。

    (3)基于代价的替换算法,该类算法使用一个代价函数对Cache中的对象进行评估,最后根据代价值的大小决定替换对象。其代表算法有:①Hybrid算法:算法对Cache中的每一个对象赋予一个效用函数,将效用最小的对象替换出Cache;②Lowest Relative Value算法:将效用值最低的对象替换出Cache;③Least Normalized Cost Replacement(LCNR)算法:该算法使用一个关于文档访问频次、传输时间和大小的推理函数来确定替换文档;④Bolot等人 提出了一种基于文档传输时间代价、大小、和上次访问时间的权重推理函数来确定文档替换;⑤Size—Adjust LRU(SLRU)算法:对缓存的对象按代价与大小的比率进行排序,并选取比率最小的对象进行替换。

    如果对主存访问cache的过程感兴趣的可以参考这篇文章:https://blog.csdn.net/williamgavin/article/details/78600230

    展开全文
  • 在中央处理的控制部件中,包含的寄存器有指令寄存器(IR)程序计数器(PC)。在中央处理的算术及逻辑部件中,存有累加(ACC)。寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成,寄存器拥有非常...

    寄存器

    中央处理器内的组成部分,有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

    分类

    • 数据寄存器- 用来储存整数数字(参考以下的浮点寄存器)。在某些简单/旧的CPU,特别的数据寄存
      器是累加器,作为数学计算之用

    • 地址寄存器- 持有存储器地址,用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)

    • 通用目的寄存器(GPRs) - 可以保存数据或地址两者,也就是说它们是结合数据/地址 寄存器的功用,修改他们的值通常不会对计算机的运行造成很大的影响。

    • 浮点寄存器(FPRs) - 用来储存浮点数字。

    • 常数寄存器- 用来持有只读的数值

    • 向量寄存器- 用来储存由向量处理器运行SIMD(Single Instruction, Multiple Data)指令所得到的数据

    • 特殊目的寄存器- 储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。

    • 指令寄存器(instruction register)- 储存现在正在被运行的指令

    • 索引寄存器(index register)- 是在程序运行时用来更改运算对象地址之用。

    原理

    寄存器的基本单元是 D触发器,按照其用途分为基本寄存器和移位寄存器

    基本寄存器(见图)是由 D触发器组成,在 CP 脉冲作用下,每个 D触发器能够寄存一位二进制码。在 D=0 时,寄存器储存为 0,在 D=1 时,寄存器储存为 1

    CPU的频率就是指数字集成电路的时钟频率

    移位寄存器按照移位方向可以分为单向移位寄存器和双向移位寄存器,单向移位寄存器是由多个 D 触发器串接而成

    寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据

    主存

    主存储器,存放指令和数据,并能由中央处理器(CPU)直接随机存取,一般采用半导体存储器,与辅助存储器相比有容量小、读写速度快、价格高等特点,存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址,而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址,如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字编址的计算机。如果计算机中可编址的最小单位是字节,则该计算机称为按字节编址的计算机。一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编址的字节地址。

    时间

    从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间

    周期

    连续启动两次独立的存储器操作(如连续两次读操作)所需间隔的最小时间

    分类

    • RAM

    RAM一般使用动态半导体存储器件(DRAM),因为CPU工作的速度比RAM的读写速度快,所以CPU读写RAM时需要花费时间等待,这样就使CPU的工作速度下降。人们为了提高CPU读写程序和数据的速度,在RAM和CPU之间增加了高速缓存(Cache)部件。Cache的内容是随机存储器(RAM)中部分存储单元内容的副本

    • ROM

    只读存储器,出厂时其内容由厂家用掩膜技术写好,只可读出,但无法改写。信息已固化在存储器中,一般用于存放系统程序BIOS和用于微程序控制

    • PROM
      PROM是可编程ROM,只能进行一次写入操作(与ROM相同),但是可以在出厂后,由用户使用特殊电子设备进行写入。

    • EROM

    EPROM是可擦除的PROM,可以读出,也可以写入。但是在一次写操作之前必须用紫外线照射,以擦除所有信息,然后再用EPROM编程器写入,可以写多次

    • EEROM

    EEPROM是电可擦除PROM,与EPROM相似,可以读出也可写入,而且在写操作之前,不需要把以前内容先擦去,能够直接对寻址的字节或块进行修改

    • 闪速存储器

    介于EPROM与EEPROM之间。闪速存储器也可使用电信号进行快速删除操作,速度远快于EEPROM。但不能进行字节级别的删除操作,其集成度高于EEPROM

    连接方式

    主存与CPU之间的硬连接:主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB),存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口,MAR可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。MAR和MDR从功能上看属于主存,但通常放在CPU内

    CPU读主存

    CPU-(需要读取数据的地址)->MAR->AB-(读命令)->DB-(交换信息)->MDR-(读数据)->CPU

    CPU写主存

    CPU-(需要写数据的地址)->MAR->AB-(写命令)->MDR->DB

    无论是读还是写数据 DB起到了数据交换作用

    CPU与主存同步

    • CPU和主存间没有统一的时钟,由主存工作完成信号(MFC)通知CPU“主存工作已完成”。

    • CPU和主存采用统一时钟,同步工作,因为主存速度较慢,所以CPU与之配合必须放慢速度,在这种存储器中,不需要主存工作完成信号。

    寄存器和主存速度

    缓存

    位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速率却比内存要快得多。缓存的出现主要是为了解决CPU运算速率与内存读写速率不匹配的矛盾,缓存往往使用的是RAM,L1 Cache(一级缓存)是CPU第一层高速缓存,一般L1缓存的容量通常在32—256KB,L1分为数据Cache,指令Cache,L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片,内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半,缓存只是内存中少部分数据的复制品。二级缓存是比一级缓存速率更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。为了适应速率更快的处理器。

    缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静态存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速率快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。

    工作原理

    缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高,一般把静态RAM缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。

    作用

    • 预读取

    当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中,当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速率远远高于磁头读写的速率,所以能够达到明显改善性能的目的。

    • 写入

    当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上,掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地。

    从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势

    缓存算法

    • 最近最少使用算法,最近一段时间内最少被访问过的行淘汰出局,因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法

    命中率

    CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

    缓存关系

    打开CPU缓存

    在BIOS设置中的StandardCMOSSetup(标准CMOS设定)有两项是用来打开或关闭缓存的:CPUInternalCache设为Enable时开启CPU内部的一级缓冲区,若设置为Disabl则为关闭,这时系统性能将大大降低;ExternalCache选项是控制主板上二级缓冲区,如果主板上有二级缓存则应设成Enable


    感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,你的鼓励是作者写作最大的动力,
    如果您认为本文质量不错,读后觉得收获很大,不妨小额赞助我一下,让我更有动力继续写出高质量的文章。

    • 支付宝

    • 微信

    作 者 : @mousycoder

    原文出处 : http://mousycoder.com/2015/10/14/the-pragmatic-sa-17/

    创作时间:2015-9-15

    更新时间:2015-10-16

    展开全文
  • 外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样...

    寄存器工作原理

    寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。

    外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。CPU对端口的访问也是依据端口的“编号”(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口地址,端口地址范围为0--3FFH。

    e91ab93bd428b14e581024c9a2219e4c.png

    寄存器用途

    1.可将寄存器内的数据执行算术及逻辑运算

    2.存于寄存器内的地址可用来指向内存的某个位置,即寻址

    3.可以用来读写数据到电脑的周边设备。

    a54ae678b482256f935652bd73cece25.png

    主存和寄存器的区别介绍

    主存储器功能:

    存放指令和数据,并能由中央处理器(CPU)直接随机存取。

    寄存器功能:

    1.可将寄存器内的数据执行算术及逻辑运算;

    2.存于寄存器内的地址可用来指向内存的某个位置,即寻址;

    3.可以用来读写数据到电脑的周边设备。

    简单地说:寄存器是操作数据的地方,主存储器是存放数据的地方,寄存器的速度比主存储器的速度要快很多,由于寄存器的容量有限,所以将不需要操作的数据存放在主存储器中,主存储器中的数据必须放入寄存器材能够进行操作。

    展开全文
  • 文章目录1 主存简单模型及寻址的概念1.1 主存储器1.1.1 存储器芯片的基本结构1.1.2 寻址2 半导体存储器2.1半导体随机存取存储器2.1.1 DRAM的刷新2.1.2 SRAM的读周期2.1.3 SRAM的写周期2.1.4 RAM-易失性存储器2.1.6 ...

    存储系统总述:
    在这里插入图片描述

    1 主存简单模型及寻址的概念

    1.1 主存储器

    在这里插入图片描述

    存储体负责存储具体的二进制位
    地址寄存器接收外部功能部件传到存储器的地址
    数据寄存器暂存要传出去或传进来的数据信号
    存储体、地址寄存器、数据寄存器在一个时序控制逻辑的控制下协调工作

    1.1.1 存储器芯片的基本结构

    在这里插入图片描述

    1. 存储矩阵:由大量相同的位存储单元阵列构成。
    2. 译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读/写操作。
    3. 读写电路:包括读出放大器和写入电路,用来完成读/写操作。
    4. 读/写控制线:决定芯片进行读/写操作。
    5. 片选线:确定哪个存储芯片被选中。可用于容量扩充。
    6. 地址线:是单向输入的,其位数与存储字的个数有关。
    7. 数据线:是双向的,其位数与读出或写入的数据位数有关。
    8. 数据线数和地址线数共同反映存储芯片容量的大小

    如地址线10根,数据线8根,则芯片容量=210×8=8K位。

    n位地址一>2n个存储单元总容量=存储单元个数×存储字长

    =23×8bit=23×1Byte=8B

    8×8位的存储芯片

    常见的描述:

    8K×8位,即213×8 bit = 8 KB 地址线13根,数据线8根
    8K×1位,即213×1 bit = 8 Kb=1 KB
    64K×16位,即216×16 bit

    1.1.2 寻址

    在这里插入图片描述

    2 半导体存储器

    2.1 半导体随机存取存储器

    在这里插入图片描述

    2.1.1 DRAM的刷新
    1. 多久需要刷新一次?刷新周期:一般为2ms
    2. 每次刷新多少存储单元?以行为单位,每次刷新一行存储单元
      ——为什么要用行列地址?减少选通线的数量

    在这里插入图片描述

    行列地址:行地址决定存储单元在哪一行,列地址决定存储单元在那一列,行列交叉即可得存储单元位置
    地址0000,0000 对应行地址0000,列地址0000,选中(0,0)号存储单元(8位二进制,行4位,列4位)

    1. 如何刷新?有硬件支持,读出一行的信息后重新写入,占用1个读/写周期
    2. 在什么时刻刷新?
      假设DRAM内部结构排列成128×128的形式,读/写周期(存储周期)0.5us
      2ms共2ms/0.5us=4000个周期

    在这里插入图片描述

    2.1.2 SRAM的读周期

    在这里插入图片描述

    2.1.3 SRAM的写周期

    在这里插入图片描述

    2.1.4 RAM-易失性存储器

    在这里插入图片描述

    2.2 ROM

    在这里插入图片描述

    用RAM做主存,一旦断电,内容全部丢失,ROM掉电之后,内容不会丢失,而且ROM可以直接跟CPU通信
    用ROM存储一些开机之后必要的信息,而更详细的、正在运行的程序的数据放在RAM中

    2.2.1 ROM分类

    在这里插入图片描述

    2.2.2 半导体随机存储器小结

    在这里插入图片描述

    3 存储器分类

    在这里插入图片描述
    按特点和使用方法的不同,可以分为以下几类:
    在这里插入图片描述

    3.1 存储器的性能指标

    1. 存储容量:存储字数×字长(如1M×8位)。 存放的二进制位数或字(字节)数
    2. 单位成本:每位价格=总成本/总容量。
    3. 存储速度:数据传输率=数据的宽度/存储周期。
      在这里插入图片描述
    1. 存取时间(Ta):存取时间是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
    2. 存取周期(Tm):存取周期又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间间隔。
    3. 主存带宽(Bm):主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒、字节/秒(B/s)或位/秒(b/s)。

    3.2 存储器的层次化结构

    在这里插入图片描述

    3.3 存储器概念小结

    在这里插入图片描述

    4 主存与CPU的连接

    4.1 主存容量扩展-位扩展

    CPU数据线数与存储芯片的数据位数不相等时,此时必须对存储芯片扩位,增加存储字长,使其数据位数与CPU的数据线数相等
    在这里插入图片描述
    8Kx1位芯片说明

    1根数据线D0
    13根数据线A0~A12
    片选线 CS: 高电平有效, 收到1工作,收到 0 不工作
    读写控制线 WE :高电平有效

    位扩展:
    在这里插入图片描述

    4.2 主存容量扩展-字扩展

    增加存储器芯片中字的数量,位数不变

    方案1:在这里插入图片描述
    当两个芯片CS同为1时,无法进行正常读写,两位存储器芯片可能冲突

    方案2:使用地址线控制片选信号
    在这里插入图片描述

    方案3:使用非门控制片选信号
    在这里插入图片描述

    译码器:
    在这里插入图片描述
    译码器左边101对应5(A低位,C高位),则右边Y5置1
    在这里插入图片描述

    在这里插入图片描述
    片选信号区分芯片地址范围:

    • A13A14为00时,译码器对应0号线有效,其余皆无效,选中0号芯片,
      地址范围:00,0…00~00,1…11
    • A13A14为01时,译码器对应1号线有效,其余皆无效,选中1号芯片,
      地址范围:01,0…00~01,1…11
    • A13A14为10时,译码器对应0号线有效,其余皆无效,选中2号芯片,
      地址范围:10,0…00~10,1…11
    • A13A14为11时,译码器对应0号线有效,其余皆无效,选中3号芯片,
      地址范围:11,0…00~11,1…11

    特殊情况:在这里插入图片描述

    • A13A15为00时,译码器对应0号线有效,其余皆无效,选中0号芯片 , A14不用管,取0取1无影响

    在这里插入图片描述

    4.3 主存容量扩展-字位同时扩展

    816Kx4位的芯片组成64Kx8位的存储器:

    • 每两片构成一组16Kx8位的存储器(位扩展)
    • 4组构成64Kx8位存储器(字扩展)
    • 地址线 A15A14经 2/4译码器得到4个片选信号
    • A15A14=00时,输出端0有效,选中第一组芯片(①②)
    • A15A14=01时,输出端1有效,选中第二组芯片(③④)在这里插入图片描述

    4.4 字位扩展实例

    在这里插入图片描述

    解题步骤:在这里插入图片描述

    数据线:CPU数据线8根→存储器位数应扩展为8位,如果没有8位的芯片,应选择低位扩展到8位
    地址线:首先确定内存空间的分配

    在这里插入图片描述

    • 67FFH-6000H+1=7FFH+1=800H 表示800H地址空间内有2K个存储单元,每个存储单元8位,则存储容量2KB
    • 6BFFH-6800H+1=3FFH+1=400H(B:11,11-8=3)

    分析地址线如何跟CPU之间进行连接:把地址空间写成二进制形式

    总的地址线16根,而ROM 11根,RAM 10根,把低地址位位直接相连,剩下的高位作为选片信号

    • 3/8译码器:在剩下的地址位中选三位做片选信号,选取原则:以低位占用最多的存储为准,向它高位选三位,用此三位做3/8译码器的输入。即100时选中ROM,101选中RAM
    • 剩下的01做译码器使能端(使能端刚好需要一个1和0),最后的一个端口连MREQ,决定译码器是否工作。而MREQ是低电平有效,只能连0,不可以连1,是译码器开关

    在这里插入图片描述

    说明

    低10位 A0~A9直接连到每一块存储器芯片;
    ROM需要11位地址线。把A10直接连到ROM;
    CBA 刚好直接用,100对应Y4,连到ROM;
    ROM 不仅要求 CBA 101 对应Y5,还要求第10位地址必须是0才可以选通;
    在这里插入图片描述
    A10=0 表示A10经过一个非得1,Y5非为0,经过一个非得1,将两个1与一下,即得RAM的选通信号,非作用就是低电平有效;
    A14A151 0 充当译码器使能端信号,A14连上1,A15连上0;
    MREQ 是低电平有效,接最后一个使能端;
    数据线 ROM 8 位直接连CPU数据线;
    RAM 经过扩展了,一个连低四位,另外一个连高四位;
    最后读写控制线WR的连接,只有RAM需要直接连接CPU的读写控制线,ROM读写控制线是一个静态状态,直接给一个固定信号,题意要求低电平有效,所以可以直接连接地面。

    5 双口RAM多模块存储器

    为了提高CPU访问存储器的工作速度

    5.1 双端口RAM

    双口RAM空间上并行,当两个端口地址不相同时,在两个端口上读写一定不会冲突
    在这里插入图片描述
    两个端口对同一主存操作有以下4种情况:

    1. 两个端口不同时对同一地址单元存取数据。没有问题
    2. 两个端口同时对同一地址单元读出数据。没有问题
    3. 两个端口同时对同一地址单元写入数据。可能写入错误
    4. 两个端口同时对同一地址单元,一个写入数据,另一个读出数据。可能读出错误

    解决方法:置“忙”信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。
    在这里插入图片描述

    5.2 多模块存储器

    5.2.1 单体多字存储器和多体并行存储器

    在这里插入图片描述

    5.2.2 多体并行存储器工作模式

    多体并行存储器工作模式依赖于地址的设置方式

    在这里插入图片描述
    高位交叉编址的多体存储器:体号在前体内地址在后,地址的高位决定现在访问的是哪个体,低位决定访问体内的哪一块单元

    在这里插入图片描述
    低位交叉编址的多体存储器:体号在后体内地址在前,地址的低位决定现在访问的是哪个体,高位决定访问体内的哪一块单元

    在这里插入图片描述
    高位交叉编址的多体存储器:由上往下编,每个存储体地址的高位一致,对应存储体下标,如00对应M0
    低位交叉编址的多体存储器:由左往右编,每个存储体地址的低位一致,对应存储体下标,如01对应M1

    5.2.3 流水线

    微观(计算题)

    模块数m=4,存储周期为T,字长W,数据总线宽度为w,总线传输周期为r,连续存取n个字,求交叉存储器的带宽。

    上面题目对应:有m个存储体,存储周期为T,字长W,每隔r时间启动下一个存储体,连续存取n个字,求存储器的存取速率。

    在这里插入图片描述
    在这里插入图片描述

    宏观(概念题)

    一个存储周期内,交叉存储器可以提供的数据量为单个模块的m倍。

    展开全文
  • 主存,cache ,寄存器

    2021-06-23 17:49:23
    在中央处理的控制部件中,包含的寄存器有指令寄存器(IR)程序计数器(PC)。在中央处理的算术及逻辑部件中,包含的寄存器有累加(ACC)。 主存包含的范围非常广,一般分为只读存储器(ROM)、随机存储器(RAM)...
  • 为解决CPU和主存速度匹配问题,其实现可采用介于CPU和主存之间的Cache。 (学习视频分享:编程视频) Cache存储器,电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模...
  • 比亚迪质量CPU register的速度一般小于1ns,主存的速度一般是65ns左右。速度差异近百倍。当CPU试图从主存中load/store 操作时,比亚迪质量由于主存的速度...我们试图提升主存速度和容量,又期望其成本很低,这就有...
  • 寄存器比内存访问速度快的原因

    千次阅读 2016-10-13 17:29:08
    距离太远,寄存器就在CPU内部,而内存则在外部。寄存器结构复杂,内存设计简单。工作方式不同。...【系统】寄存器比内存访问速度快的原因 计算机的存储层次    同样都是晶体管存储设备,为什么
  • 我们都知道计算机的存储器分为:寄存器主存,辅存,更加具体的分类如下 CPU寄存器 寄存器 主存 高速缓存 主存 磁盘缓存 辅存 磁盘 可移动存储介质    在计算机存储层次中,寄存器和主...
  • 为什么寄存器处理数据的速度比内存快? 计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的...
  • 接下来,我们将从上往下介绍,首先是寄存器。 二、寄存器 如图,我们能知晓寄存器是最小、最快的东西。寄存器是CPU的内部组成单元 下图图示CPU中,蓝色方框里都是寄存器。 我们对寄存器的类型进行一下分类: 1、...
  • cpu对寄存器的访问速度最快

    千次阅读 2016-05-05 09:00:23
     计算机中CPU对其访问速度最快的是( ) 。 A.内存  B.Cache  C.通用寄存器  D.硬盘 所属试卷: 2015年上半年软件设计师考题 为何是通用寄存器而不是CACHE
  • Cache 和主存 的三种映射方法

    万次阅读 多人点赞 2018-12-15 09:14:49
    cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术。 CPU对存储器的访问,通常是一次读写一个字单元。当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若干个字一同调入...
  • 内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器...
  • 存储器和寄存器的区别是:1、存储器功能:存放指令数据,并能由中央处理(CPU)直接随机存取。2、寄存器功能:可将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某个位置,即寻址;可以...
  • cpu寄存器和缓存

    千次阅读 2019-06-11 16:42:58
    所以,寄存器是最贴近CPU的,而且CPU只与寄存器中进行存取。 (寄存的意思是,暂时存放数据,不中每次从内存中取,它就是一个临时放数据的空间,火车站寄存处就是这个意思) 而寄存器的数据又来源于内存。于是 CPU&...
  • 存储器和寄存器

    2017-10-17 08:28:49
    内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器...
  • 寄存器的存取速度比内存快

    千次阅读 2009-10-16 21:44:00
    寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。
  • 存储器和寄存器的区别

    千次阅读 2015-05-25 16:56:02
    内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器...
  • 寄存器和存储器的区别?

    万次阅读 2016-05-01 11:23:55
    内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器...
  • 一图说明 硬盘以上的主存、L3、L2、L1、寄存器一旦发生断电行为数据立刻丢失,只有硬盘能持久化保存。一般程序存储就在内存上,而比较关键的数据会使用寄存器保存(ecx、epx等)。
  • cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术。 主存与cache的地址映射方式有全相联方式、直接方式组相联方式三种。 直接映射(directmapping):将一个主存块存储到唯一的一...
  • 寄存器和内存的关系

    千次阅读 2013-07-05 13:09:34
    其中程序计数器、指令寄存器、指令译码、时序产生器和操作控制等组成了控制。它是对计算机发布命令的“决策机构”,协调指挥整个计算机系统的操作,因此,它处于CPU中极其重要的位置。 在CPU中,除算术...
  • 内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器...
  • 目录 ...CPU 主存或者高速缓存 交流的基本单位是机器字长,这是因为 CPU 取数据或者输出数据都是通过内部的寄存器寄存器因为电路比较复杂,所以可以暂存的数据位数是有限的。 但是主存和 Cac...
  • 内存,寄存器和cache的区别与联系

    千次阅读 2018-08-15 21:11:00
    在中央处理的控制部件中,包含的寄存器有指令寄存器(IR)程序计数器(PC)。在中央处理的算术及逻辑部件中,包含的寄存器有累加(ACC)。 2. 内存包含的范围非常广,一般分为只读存储器(ROM)、随机存储器(RAM...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,005
精华内容 7,602
关键字:

寄存器和主存器的速度