双端口RAM

提高存储器访存速度一些措施。

存取周期

进行一次存取之后,是不能立即进入下一次存取的,存储器要进行一次恢复。

存取周期=存取时间+恢复时间

  1. 对不同时间进行不同存取操作,双端RAM
  2. 流水线的方式,多模块存储器

双端口RAM

置一个忙信号

多模块存储器

CPU的速度比存储器要快的,如果从存储器中同时存取n个字。可以提高cpu使用资源

补充:可以并行工作,如总线宽度为mW时,可以同时取出长度为mW的数据。

普通存储器

每行为1个存储单元

单体多字存储器

每个存储单元存储m个字,总线宽度也为m个字,一行并行读出m个字。

增加了存储器的带宽。

缺点:指令和数据在主存内必须连续存放。

多体并行的存储器

每个模块都有相同的容量和存取速度,各个模块都有独立的读写控制电路、地址寄存器和数据寄存器

编制方式:

高位交叉编址的多体存储器

高位是体号,低位是体内地址

假如有8个存储单元

相当于说,先确定是哪一个(存储体),然后在在那一个里面找相对应的一块。

低位交叉编址的多提存储器

低位是体号,高位是体内地址

假如有8个存储单元

先找到具体的位置,在看哪一个存储体。

为什么要这么弄?

假如每个存储体的存储周期为T

连续访问:

00000

00001

00010

00011

00100

高位

其实就是在M0里一直访问

时空图:

如果连续访问这个5个地址,需要花费5t个时间。并没有带来什么好处。

高位交叉编址相当于扩容,每个其实还是相当于独立的,并没有带来时间优势。

采用高位交叉编址,连续取n个存储字,耗时nT

低位

先访问M0的0号单元,接下来00001,是M1的0号单元,只需要间隔一小段时间。然后就是M2,M3.都是用一小段时间。可以相当于是同时访问。大大减少了存取时间。

时空图:

时间如何计算?

假设启动完M0后启动M1的时间间隔是τ,启动完M1在启动M2的时间间隔是τ、启动完M2在启动M3的时间间隔是τ,接下来启动完M3在启动M0的时间间隔也是τ

所以就有总时间T+4τ

假如连续存取n个存储字,采用低位交叉编址,耗时:T+(n-1)τ

流水线(考试常考)

微观(计算题)

有m个存储体,存储周期是T,字长W,每隔r时间启动下一个存储体,连续存放n个字,求存储器的存取速率。

\[连续存取n个字耗时=T+(n-1)r
\]
\[!!!注意:m≥T/r
\]

如果m<T/r

还需要在等多一个r

如果m>T/r

所以:

\[带宽=\frac{n*w}{T+(n-1)r}
\]

如果n较大时,带宽->W/r

对比单个存储体的带宽:W/T

宏观(概念题)

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

回顾

提出这样的存储器是为了提高CPU的访存速度

双端口RAM和多模块存储器的更多相关文章

  1. 【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器

    下面我们进入双端口RAM和多模块存储器的学习.这是提高我们的存储器的访存速度的一些措施. 我们之前已经讲过我们的主存和CPU是进行连接的,那么这就导致了一个问题就是说,随着我们现代科技的发展,计算机的 ...

  2. xilinx fpga中块ram的使用——简单双端口ram的使用

    在简单双端口ram中最简单有9个端口:分别是 clka  为输入端口的时钟 wea  读写控制端,高为写,低为读 addra 写地址 dina  待写入的数据 clkb 为输出端口的时钟的 addrb ...

  3. FPGA入门1

    FPGA入门知识介绍    近几年来,由于现场可编程门阵列(FPGA)的使用非常灵活,又可以无限次的编程,已受到越来越多的电子编程者的喜爱,很多朋友都想学习一些FPGA入门知识准备进行这个行业,现在关 ...

  4. FPGA设计思想与技巧(转载)

    题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...

  5. FPGA - 认识FPGA

    一.何为FPGA? FPGA,英文全拼:Field-Programmable Gate Array 现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集 ...

  6. Stratix内嵌存储器测试报告

         Stratix和Stratix GX系列器件内嵌TriMatrix存储块包括512-bit M512块.4-Kbit M4K块及512-Kbit M-RAM块.TriMatrix存储结构可对 ...

  7. OpenRisc-47-or1200的WB模块分析

    引言 “善妖善老,善始善终”,说的是无论什么事情要从有头有尾,别三分钟热度. 对于or1200的流水线来说,MA阶段是最后一个阶段,也是整条流水线的收尾阶段,负责战场的清扫工作.比如,把运算指令的运算 ...

  8. ROM与RAM知识

    “ROM”和“RAM”的意思: “ROM”:N年前代表一种只能写入和读取,而不能改写和擦除的设备,可以用光驱CD-ROM来说明这个道理.目前的“ROM”已经不是这个道理了,它的技术已经飞快的发展到现在 ...

  9. DUAL PORT RAM应用实例

    作者:桂. 时间:2018-05-14  12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...

随机推荐

  1. 结合实战和源码来聊聊Java中的SPI机制?

    写在前面 SPI机制能够非常方便的为某个接口动态指定其实现类,在某种程度上,这也是某些框架具有高度可扩展性的基础.今天,我们就从源码级别深入探讨下Java中的SPI机制. 注:文章已收录到:https ...

  2. C#高级编程之泛型一(泛型的引入、泛型的使用、何为泛型)

    为何引入泛型 当我们要对不同类型的参数执行类似的方法时:如下所示功能打印传入参数的相关信息. class CommonMethdod { /// <summary> /// show in ...

  3. python-Requests模块的使用

    1. Requests简介 Requests模块是一个用于网络访问的模块,其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能,那为什么R ...

  4. bootstrap-datetimepicker的两种版本

    1.引入js/css <link rel="stylesheet" th:href="@{/plugin/bootstrap-datetimepicker/boot ...

  5. 阿里面试官:小伙子,给我说一下Spring 和 Spring Boot 的区别吧

    前言 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对 ...

  6. 装了IDM后看网页有时会自动弹出下载怎么办

    我们在安装了IDM之后,浏览一些网站时可能会自动弹文件下载窗口,但有时内容并非我们要下载的.对此类自动弹下载对话框的情况,操作者可进行自定义设置.不仅可通过设置文件格式来禁止自动弹窗,也可通过设置特定 ...

  7. 如何使用系统清理缓存软件优化MacBook

    在我们使用我们的Mac一定的时间后,总是不可避免的出现Mac内存不足的情况,所以清理垃圾软件也就成为了我们电脑里必不可少的软件.苹果软件商店中有很多各有不同的清理垃圾软件,但我们往往很难从这一大堆软件 ...

  8. Docker-maven-plugin + Dockerfile + Arthas实现应用诊断

    一.前言 我们的微服务响应生产环境出现一个功能响应时间过慢,对Prometheus监控 Http Request进行分析发下该功能调用的后端接口响应时间平均在30秒以上,分析源码接口有mysql查询. ...

  9. EDI的五个常见挑战以及如何克服这些挑战

    EDI是成功进行供应链管理的一个关键要素.它使企业能够以标准化的电子格式处理与任何交易伙伴的业务数据交换,极大简化了许多曾经繁琐的程序.然而,如果企业正在扩张或处于高速增长阶段,如何充分利用EDI仍然 ...

  10. mfc 位图本地存储 本地位图读取显示

    一.读取CImage //在绘图函数中直接使用参数pDC,无需定义 CDC* pDC = GetDC(): //读去位图路径,根据实际情况修改 CString loatImagePath = TEXT ...