双端口RAM和多模块存储器
双端口RAM
提高存储器访存速度一些措施。
存取周期
进行一次存取之后,是不能立即进入下一次存取的,存储器要进行一次恢复。
存取周期=存取时间+恢复时间
- 对不同时间进行不同存取操作,双端RAM
- 流水线的方式,多模块存储器
双端口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个字,求存储器的存取速率。
\]
\]
如果m<T/r
还需要在等多一个r
如果m>T/r
所以:
\]
如果n较大时,带宽->W/r
对比单个存储体的带宽:W/T
宏观(概念题)
一个存储周期内,交叉存储器可以提供的数据量为单个模块的m倍。
回顾
提出这样的存储器是为了提高CPU的访存速度
双端口RAM和多模块存储器的更多相关文章
- 【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器
下面我们进入双端口RAM和多模块存储器的学习.这是提高我们的存储器的访存速度的一些措施. 我们之前已经讲过我们的主存和CPU是进行连接的,那么这就导致了一个问题就是说,随着我们现代科技的发展,计算机的 ...
- xilinx fpga中块ram的使用——简单双端口ram的使用
在简单双端口ram中最简单有9个端口:分别是 clka 为输入端口的时钟 wea 读写控制端,高为写,低为读 addra 写地址 dina 待写入的数据 clkb 为输出端口的时钟的 addrb ...
- FPGA入门1
FPGA入门知识介绍 近几年来,由于现场可编程门阵列(FPGA)的使用非常灵活,又可以无限次的编程,已受到越来越多的电子编程者的喜爱,很多朋友都想学习一些FPGA入门知识准备进行这个行业,现在关 ...
- FPGA设计思想与技巧(转载)
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...
- FPGA - 认识FPGA
一.何为FPGA? FPGA,英文全拼:Field-Programmable Gate Array 现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集 ...
- Stratix内嵌存储器测试报告
Stratix和Stratix GX系列器件内嵌TriMatrix存储块包括512-bit M512块.4-Kbit M4K块及512-Kbit M-RAM块.TriMatrix存储结构可对 ...
- OpenRisc-47-or1200的WB模块分析
引言 “善妖善老,善始善终”,说的是无论什么事情要从有头有尾,别三分钟热度. 对于or1200的流水线来说,MA阶段是最后一个阶段,也是整条流水线的收尾阶段,负责战场的清扫工作.比如,把运算指令的运算 ...
- ROM与RAM知识
“ROM”和“RAM”的意思: “ROM”:N年前代表一种只能写入和读取,而不能改写和擦除的设备,可以用光驱CD-ROM来说明这个道理.目前的“ROM”已经不是这个道理了,它的技术已经飞快的发展到现在 ...
- DUAL PORT RAM应用实例
作者:桂. 时间:2018-05-14 12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...
随机推荐
- Python _PyQt5 【总】
http://www.cnblogs.com/archisama/p/5442071.html QtCore QtGui QtWidgets QtMultimedia QtBluetooth QtNe ...
- CSS属性(背景属性)
1.背景属性 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...
- 08 . Vue脚手架安装,使用,自定义配置和Element-UI导入使用
Vue脚手架 Vue脚手架可以快速生成Vue项目基础的架构. 安装3.x版本的Vue脚手架 /* npm install -g @vue/cli@3.3 */ 基于3.3版本的脚手架命令创建Vue项目 ...
- JWT(JSON Web Token)入门
简介 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案 一.跨域认证的问题 互联网服务离不开用户认证.一般流程是下面这样. 1.用户向服务器发送用户名和密码. 2.服务器验证 ...
- linux 用户组操作
1. 添加用户到...目录中useradd -M -s /目录 username 2. 添加用户属于多个组 usermod -G 本组(用户名),组1,组2... 用户名 3. mysql添加禁止登录 ...
- Hadoop分布式平台搭建
环境:CentOS 7.4 (1708 DVD) 工具:MobaXterm 一. 安装 1. 将hadoop安装包上传到/usr/local目录下,将其解压并重命名. 2. 配置hadoop的环境变 ...
- Stream流的这些操作,你得知道,对你工作有很大帮助
Stream流 Stream(流)是一个来自数据源的元素队列并支持聚合操作: 元素是特定类型的对象,形成一个队列. Java中的Stream并不会存储元素,而 是按需计算. 数据源 流的来源. 可以是 ...
- pytest的setup和teardown
学过unittest的setup和teardown,前置和后置执行功能.pytest也有此功能并且功能更强大,今天就来学习一下吧. 用例运行级别: 模块级(setup_module/teardown_ ...
- Oracle 11g改密码有效期
oracle 11g,密码默认有效期为180天,设置为不过期,可在线操作. 步骤: -->>进入oracle用户 su - oracle -->>已sys超级用户登录sqlpl ...
- leetcode_3FizzBuzz的一些思考
题目很简单,给定一个正整数n,如果n能整除3的话往list里加入Fizz,如果n能整除5的话往list里面加入Buzz,如果即能整除3又能整除5的话,加入FizzBuzz,代码也很简单 public ...