【计算机组成体系结构】主存储器的基本组成

一、半导体元器件存储二进制0/1的原理

一个存储器逻辑上分为MAR,MDR和存储体,这三块在时序逻辑电路的控制下相互配合工作。 

存储体有多个存储单元构成,每个存储单元又由每个存储元构成。一个存储元可以存放一位的二进制的0/1。

一个存储元由一个MOS管和一个电容组成。 

MOS管是一种半导体,当通电压达到某一定阈值时它才会变成导体,否则是绝缘体。

上图所示电容下金属板接地为0V,下金属板若和上金属板存在电势差则会存储电荷,以此来决定存储元存储的是1还是0。

当接通MOS管时,若导线一端有电荷流出,则可以判断该电容保存的是二进制的1,否则保存的是0。这是二进制的读出。

存储也很简单,接通MOS管,接通导线,电容开始累计电荷,这样就在里面存储了1。这时候再断开MOS管,就可以防止电荷跑出去了。

如果把多个存储元排列在一起就可以组成一个存储单元(存储字)。上图红线链接了一个存储单元的所有MOS管,如果此时在红线上加入一个5v的阈值电压就可以一次读出该存储单元内所有的二进制数据(绿线用来检测有无电流导出判断是0/1)。 

而多个存储单元又构成了存储体(存储矩阵)。上图所示的存储字长为8bit。存储字长根据一个存储单元中存储元的个数决定。但是1Byte=8bit是不会变的。

这也解释了为什么存储器一次读写都是以一个存储字长为单位

 


二、存储芯片的基本原理

1.译码器

如何根据地址决定我们要读/写哪一个字呢?这就涉及到译码器的工作原理。

对于译码器,我们给定n位地址对应2^n个存储单元,所以译码器会根据MAR给出的地址转变为某一条选通线的高电平信号,这样就可以读出一整排的存储元的数据了。

译码器的每一条选通线对应每一个存储单元的地址。 

之后通过数据线(绿线)把每一位二进制数据送入MDR中,接着CPU会通过数据总线从MDR中取走一整个存储字的数据。(当然数据总线的宽度是和存储字长相同的)

2.控制电路

由于电信号的不稳定,除译码器之外,还要有控制电路来控制MAR,MDR和译码器来实现存储器的读写。 

电信号是不稳定的,CPU通过地址总线将电信号送到MAR,但不会立刻送到译码器,当MAR中的电信号稳定之前,控制电路不会打开译码器的开关。

同样的,当输出的时候,控制电路同样会在MDR中的电信号稳定之后才能从MDR送出数据到数据总线。

另外,存储芯片还要对外提供一些线路如\overline{CS}(芯片选择信号)/\overline{CE}(芯片使能信号),上面带横线的意思就是当处于低电平的时候起作用。两个线路的意思就是,当处于低电平的时候,这块芯片可以工作了。

同时还有读写线。有些设计为两根线,一根表示读一根表示写(\overline{WE},\overline{OE})。有些则用一根既可以表示读也可以表示写。


片选线的作用如上图所示,上图内存条的每个黑块就表示一个存储芯片,当地址线搜索的地址在某一个存储芯片上,片选线自然要关闭除它以外的其它所有存储芯片。

同时存储芯片的引脚数应该等于地址线+数据线+片选线+读写控制线+供电+接地。 

上图中存储器的逻辑构成我们只有读写电路和驱动器上面没有说。读写电路包括上面的红线绿线以及控制电路的读写控制线。

驱动器,我们前面说过电信号的不稳定性,而驱动器就是一个信号放大器,可以让信号离开译码器之后仍然稳定有效。

之前我们说过总容量 = 存储单元个数 X 存储字长。之后我们还要熟悉上图所示的描述方式。

例如:8X8位的存储芯片,前一个8表示的是存储单元的数量,后面的8则表示存储字长。

而通过存储单元的数量自然就可以推断出地址线是多少,如上面的例子,2^3=8,所以8X8位的存储芯片的地址线有3根,又因为每个存储字长为8,所以数据线有3X8=24根。


三、不同的寻址方式的实现

上图所示的每个方格表示一个字节,也就是8bit,而每一整行表示一个存储字,也就是说这块存储芯片它的字长是4B。假设它的总容量是1KB,那也就是说它有256个字(256行)。

现代计算机中通常按字节编址,也就是说每个字节一个地址。所以这个存储矩阵中有1K个地址。这也就是按字节编址。   

但是存储器指支持的寻址形式可不是只有按字节寻址。按字节寻址自然需要10根地址线,因为2^10=1024,才足够寻1000个地址。

而如果按字寻址,一整行,也就是一个字合并看成一个地址。当我们需要读某个字的时候,假如我们现在要读的是第1个字,那只需要我们对1进行算术左移得到100,也就是4,就可以得到该字起始字节的字节地址。

按半字寻址和按双字寻址以此类推。 

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

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

相关文章

OWASP安全练习靶场juice shop-更新中

Juice Shop是用Node.js,Express和Angular编写的。这是第一个 完全用 JavaScript 编写的应用程序,列在 OWASP VWA 目录中。 该应用程序包含大量不同的黑客挑战 用户应该利用底层的困难 漏洞。黑客攻击进度在记分板上跟踪。 找到这个记分牌实际上是&#…

【Android】在Android中设置网络代理:一文详解

在Android中设置网络代理:一文详解 引言 在移动设备上,特别是Android平台,设置网络代理是一种常见的需求,可以通过网络代理实现对网络请求和响应的拦截和修改。本文将详细介绍在Android设备上通过adb命令设置全局HTTP代理的方法…

想考研到电子类,未来从事芯片设计,目前该怎么准备?

最近看不少天坑学子想考研微电子专业,但却不知道该怎么准备?接下来就带大家一起来具体了解一下~ 首先是目标院校的选择? 目前所设的微电子专业学校里,比较厉害的有北京大学、清华大学、中国科学院大学、复旦大学、上海交通大学、…

ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译

ROS2的功能包、依赖管理、工作空间配置与编译 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyrigh…

品牌是如何通过软文推广产品的?媒介盒子为您揭秘

需求是概念的、抽象的,产品是具象的,多维的。软文推广就是通过发现消费者的需求来促使消费者主动购买产品,今天媒介盒子就来和大家聊聊:品牌是如何通过软文推广产品的。 一、 差异化内容打出独特点 差异化内容指通过和竞品的分析…

基于Intel Ai Analytics Toolkit 及边缘计算的溶氧预测水产养殖监测方案

基于AI的淡水养殖水质溯源、优化系统方案 前言一、关键需求及方案概述二、方案设计预测机制LSTM 模型基于intel AI 的时序水质分析模型与分类模型优化 三、实战分析1、方案简述2、数据分析预处理特征类型处理特征分布分析 3、特征构造4、特征选择过滤法重要性排序 5.构建LSTM模…

层三交换机解析(Layer 3 Switch)层3交换机

文章目录 层三交换机解析1. 概述1.1 什么是层三交换机1.2 层三交换机与路由器、二层交换机的比较 2. 层三交换机的工作原理2.1 基于MAC地址的转发2.2 基于IP地址的转发 3. 层三交换机的配置4. 常见问题与解答4.1 我应该使用路由器还是层三交换机?4.2 层三交换机可以…

算法--最短路

这里写目录标题 xmind单源最短路简介所有边权都是正朴素的Dijkstra算法思想例子题解 堆优化版的Dijkstra算法 存在负数权Bellman-Ford算法思想例子题解 多源汇最短路简介 xmind 上述中,朴素Dijkstra算法适用于稠密图 其他用堆优化版 而SPFA算法一般都比Bellman-For…

对python类中__call__()和__getitem__()函数的简单理解

首先python中双下划线方法被称为魔法方法(magic method),显然像__init__, __call__, __len__, __getitem__, __setitem__, __delitem__这些都属于magic method。 __call__() 如果类中定义了__call__()方法,那么该类的实例对象也…

设计模式:装饰者模式

目录 一、定义 二、场景 三、例子 四、优缺点 优点: 缺点: 一、定义 在不改变已有对象结构的情况下,动态添加新的功能到对象上,是继承的一种替代方案。属于结构型模式。 二、场景 1.扩展一个类的功能,添加附加职责…

七、ZooKeeper选举机制

目录 1、概念 2、全新集群选举 3、非全新集群选举 zookeeper默认的算法是FastLeaderElection,采用投票数大于半数则胜出

java第二十八课

实现用户登陆 输入用户名和密码,如果输入用户名和密码正确,允许登录编程过程中采用字符串拉接。 SQL 注入,当使用拼接的 sql 语句. 输入密码时把语句拼接成or,or 后面跟上一个条件正确的式子。 Java 防止 sql 注入,预编…

资料分析(花生)

基期A(给出BR或BX) 前期:代入、直除、假设分配隔年前期:求出间隔增长率,再变成第一类考法前期差值:假设分配法求得两个前期作差。 现期B 有增量求现期:求出 X,列不等式即可有增速求现…

【已解决】页内切换<router-view>使得url变化导致菜单高亮消失

在写项目时&#xff0c;我们常会用到侧边菜单栏&#xff0c;而具体页面中经常使用<router-view>切换子组件。 但是按照我们平时的写法&#xff0c;切换子组件后会导致url改变&#xff0c;从而使得菜单高亮消失&#xff0c;这是非常影响用户体验的。 所以&#xff0c;我…

class文件结构

文章目录 1. 常量池集合2. 访问标志3. 字段表集合4. 方法表集合5. 属性表集合 成员变量&#xff08;非静态&#xff09;的赋值过程&#xff1a;1. 默认初始化 2. 显示初始化/代码块中初始化 3. 构造器中初始化 4. 有了对象后对象。属性或者对象。方法的方式对成员变量进行赋值 …

无线网卡填坑记

没想到我安装无线网卡这么波澜起伏~ 起因 近来刚在电脑上玩完了 Dishonored 2&#xff0c;紧接着继续着我的刺客信条之旅。总是觉得键盘鼠标玩起来不爽&#xff0c;还是手柄玩这种游戏才舒服。突然&#xff0c;灵光一现&#xff0c;我想到正好有闲置的 Switch 掌机没怎么玩&am…

掌握Python Pingouin:数据统计新利器解析!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Pingouin库基于pandas、scipy和statsmodels&#xff0c;为用户提供了执行常见统计分析的功能。它支持各种统计方法和假设检验&#xff0c;例如 t-tests、ANOVA、correlation analysis 等。让我们看一些示例代码&…

请求函数的封装---工具函数

导出一个通用的请求工具函数&#xff0c;支持设置响应数据类型 支持不同接口设不同的响应数据的类型 import axios, { AxiosError, type Method } from axios// 4. 请求工具函数 const request (url: string, method: Method GET, submitData?: object) > {return insta…

【华为OD】静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出

静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出:1. 文件扫描的成本和文件大小相关,如果文件大小为 N ,则扫描成本为 N 个金币2. 扫描报告的缓存成本和文件大小无关,每缓存一个报告需要 M 个金币3. 扫描报告缓存后,后继再碰到该文件则不需要扫描成本,直…

初识MyBatis

1、什么是 MyBatis MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain O…