高速存储器

news2024/11/24 20:32:03

由于CPU和主存储器之间的速度上的不匹配限制了计算机系统的工作速度,为了提高CPU和主存之间的数据传输率,可以采用并行技术的存储器:

  • 双端口存储器
  • 多模块交叉存储器

双端口存储器

  • 同一个存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器
  • 两个端口分别具有各自的地址线、数据线和控制线
  • 两个端口可对存储器中的任何位置上的数据进行独立的存取操作

  1. 无冲突的读写控制1

当两个端口上的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突

  1. 无冲突读写控制2

当两个端口地址相同,但是都进行的是读操作时,也不会发生冲突

  1. 有冲突读写1

当两个端口至少有一个进行写操作时,就会发生冲突

当两个端口都执行写命令时,无法判断是哪个端口先写入

  1. 有冲突读写2

当一个端口为读,一个端口为写时,不知道是先读出还是先写入

解决冲突的方法

设置 B U S Y ‾ \overline {BUSY} BUSY标志,采用仲裁逻辑,判断对哪个端口优先访问,而另一个被延迟的端口置BUSY标志为低电平,暂时关闭此端口,等到优先访问的端口完成访问,再进行复位

仲裁时根据两个端口的地址匹配或者片选使能信号有效时间决定对哪个端口进行存取

  • 仲裁原则
  1. CE判断

如果地址匹配并且在 C E ‾ \overline{CE} CE之前有效,片上的控制逻辑在 C E L ‾ \overline{CE_L} CEL C E R ‾ \overline{CE_R} CER之间进行判断来选择端口

  1. 地址有效判断

如果 C E ‾ \overline{CE} CE在地址匹配之前先有效,片上的控制逻辑在左右地址间进行判断来选择端口

表中符号意义如下:

  • LV5R:

左地址有效先于右地址50ns

  • RV5L:

右地址有效先于左地址50ns

  • 相同:

左右地址均在50ns内完成匹配

  • LL5R:

左使能端有效先于右使能端有效50ns

  • RL5L:

右使能端有效先于左使能端有效50ns

  • LW5R:

左右使能端均在50ns内变为有效

在形同或者LW5R时,两边无法判断哪个优先,此时随机关闭一个端口,即设为BUSY,令两一个端口优先有效

多模块交叉存储器

双端口存储器采用的是空间并行技术,此多模块交叉存储器采用的是时间并行的技术

  • 一个由若干模块组成的主存储器是线性编址的
  • 地址在各模块有两种安排方式
    • 顺序方式
    • 交叉方式

顺序方式

  • 每一个模块内的地址是连续的
  • 高位地址选择不同的模块,地位地址指向模块内存储字
  • 某个模块进行读取时其他模块不工作
  • 某一模块出现故障时,其他模块可以照常工作
  • 通过增添模块来扩充存储器容量比较方便
  • 但是由于各模块串行工作,存储器的带宽受到了限制

如图所示的顺序方式,内存地址使用五位即可以访问所有存储单元,存储器内分为四个模块,采用2-4译码的方式选择各个模块,即内存地址高二位进行模块选择,每一个模块有八个字,因此内存地址低三位用来选择对应的字

交叉方式

  • 连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的
  • 地址码低字段通过译码选择不同的模块,而高位字段指向对应模块的存储字
  • 连续字的成块传送可以实现多模块流水式并行存取,可以大大提高存储器的带宽

与顺序方式相反,内存地址的高三位选择对应字,而低二位选择对应模块

多模块交叉存储器的基本结构

  • 每个模块各自以等同的方式与CPU传送信息
  • CPU同时访问4个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递
  • 是一种并行存储器结构

在一个读写周期内,CPU连续访问4个模块

交叉存取度

  • 设模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为 τ \tau τ,存储器的交叉模块数位m,为了实现流水线存取,应当满足: T ≤ m τ T\leq m\tau Tmτ

  • m的最小值称为交叉存取度: m m i n = T τ m_{min}=\frac{T}{\tau} mmin=τT

  • 交叉方式连续存取x个字所需的时间为: t 1 = T + ( x − 1 ) τ t_1=T+(x-1)\tau t1=T+(x1)τ

  • 顺序方式连续读取x个字所需时间为: t 2 = m T t_2=mT t2=mT

上图为一个二模块交叉存储器,通过内存地址的A2来选择模块,A1A0用EP3~EP0代替,用以控制读写等信号,中间为块内字地址,读写操作时分为行列地址两部分,头部A23~A21为存储体选择用以字扩展

DRAM芯片的读出是一种破坏性读出,在读出后需要立即按照读出信息进行充电再生,若CPU先后两次读取的存储字使用同一个RAS*选通信号,CPU在接收到第一个存储字后必须插入等待状态,直到前一个字再生完毕后才能够开启第二个存储字的读取,而使用二模块交叉存储器,在两个字的读取之间就不必插入等待状态,因为在一个模块的等待状态时使用另外一个模块

上图为零等待成块访问的示意图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Direct3D 12——灯光——聚光灯光

一个与聚光灯光源(spotlight)相近的现实实例是手电筒。从本质上来说,聚光灯由位置Q向方向d 照射出范围呈圆锥体的光。 一个聚光灯以位置Q向方向d发射出半顶角为Φmax 的圆锥体范围的光 其中,P为被照点的位置,Q是聚光…

基于html+css的盒子展示8

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

一文4000字使用JavaScript+Selenium玩转Web应用自动化测试

自动化测试 在软件开发过程中, 测试是功能验收的必要过程, 这个过程往往有测试人员参与, 提前编写测试用例, 然后再手动对测试用例进行测试, 测试用例都通过之后则可以认为该功能通过验收. 但是软件中多个功能之间往往存在关联或依赖关系, 某一个功能的新增或修改可能或影响到…

手把手教你搭建ROS阿克曼转向小车之(霍尔编码器数据读取与速度计算)

上一篇文章已经介绍了如何驱动直流有刷电机转动起来,这篇文章讲解如何获取编码器的计数值,并且计算出速度信息。在实际的运行中,随着机器的重量不一样,电机受到的阻力就会不一样,给定同样的PWM在不同载重的情况下速度会…

Alien Skin ExposureX8最新ps中文版调色滤镜插件

Exposure是用于创意照片编辑的最佳图像编辑器。Exposure结合了专业级照片调整,庞大的华丽照片外观库以及高效的设计,使其使用起来很愉悦。新的自动调整功能可简化您的工作流程,并使您进入创意区。 Alien Skin Exposure 拥有超过500种预设效果…

基于线性支持向量机的词嵌入文本分类torch案例

一、前言 简介线性支持向量机,并使用线性支持向量机实现文本分类, 输入文本通过词嵌入方法转换成浮点张量,给出torch案例 线性支持向量机(Linear Support Vector Machine,简称Linear SVM)是一种常用的分类算法,它通过一个超平面来…

TiDB实战篇-TiDB Cluster部署

简介 部署TiDB Cluster部署,熟系集群的基础操作。 集群规划 机器拓扑 3pd,3tikv,1tidb_server.1tiflash,监控。 192.168.66.10192.168.66.20192.168.66.21 pd_servers tikv_servers tidb_servers tiflash_servers pd_servers tikv_servers monitoring_servers…

MySQL中使用IN()查询到底走不走索引?

MySQL中使用IN()查询到底走不走索引? 看数据量 EXPLAIN SELECT * from users WHERE is_doctor in (0,1); 很明显没走索引,下面再看一个sql。 EXPLAIN SELECT * from users WHERE is_doctor in (2,1);又走索引了,所以…

Yolov5一些知识

1 Yolov5四种网络模型 Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。 1.1Yolov5网络结构图 eg:Yolov5s 2.1 Yolov3&Yolov4网络结构图 2.1.1 Yolov3网络结构图 Yolov3的网络结构是…

Matlab论文插图绘制模板第86期—带置信区间的折线图

在之前的文章中,分享了很多Matlab折线图的绘制模板: 进一步,分享一种特殊的折线图:带置信区间的折线图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行…

【C++技能树】快速文本匹配 --正则表达式介绍与C++正则表达式使用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 0.正则表达式存在必要性 在日常生活,或者刷题过程中我们难免需要检测一段字符是否需要是否符合规定,或在一大段字符中寻找自己想要的信息…

Mysql 数据库介绍

数据库介绍 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&#xff0…

支持m2的主板换m2硬盘无法识别的问题,主板:七彩虹H410-T

记录一下我的电脑换m2硬盘遇到无法读取的问题,也给有同样问题的人留个参考,特别是七彩虹主板 主板:七彩虹H410-T 遇到的问题: m2 硬盘插上主板后,开机无法识别,打开我的电脑没有相应的盘,设备…

代码随想录---142. 环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整…

【C++】vector的实现

模拟实现vector类前言一、迭代器二、重载 [ ]三、构造函数相关(重点)(1)构造函数(2)构造并使用n个值为value的元素初始化(3)区间构造(4)拷贝构造三、析构函数…

什么是科学

人人都是价值观-思辨专家_个人渣记录仅为自己搜索用的博客-CSDN博客 相关文章 人人都是中医爱好者 科学定义 关于“科学”这个词的定义,历史上曾出现过多种版本,但是目前为止还没有一个是世人公认的定义。 历史上达尔文(Charles Robert Darwin&#xff…

利用阿里云免费部署openai的Chatgpt国内直接用

背景 国内无法直接访问ChatGPT,一访问就显示 code 1020。而且最近OpenAI查的比较严格,开始大规模对亚洲地区开始封号,对于经常乱跳IP的、同一个ip一堆账号的、之前淘宝机刷账号的,账号被封的可能性极大。 那么有没有符合openai规定…

< element-Ui表格组件:表格多选功能回显勾选时因分页问题,导致无法勾选回显的全部数据 >

文章目录👉 前言👉 一、解决思路👉 二、实现代码(仅供参考,具体问题具体分析)> HTML模板> Js模板往期内容 💨👉 前言 在 Vue elementUi 开发中,elementUI中表格在…

Linux服务器怎么修改系统时间

Linux服务器怎么修改系统时间 linux服务器的系统时间,有的时候会产生误差,导致我们的程序出现一些延迟,或者其他的一些错误,那么怎么修改linux的系统时间呢? 我是艾西,今天又是跟linux小白分享小知识的时间…

C语言函数大全-- l 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- l 开头的函数 1. labs&#xff0c;llabs 1.1 函数说明 函数声明函数功能long labs(long n);计算长整型的绝对值long long int llabs(long long int n);计算long long int 类型整数的绝对值 1.2 演示示例 #include <stdio.h> …