计算机组成原理(1)----主存储器

news2025/1/10 1:21:59

目录

1.基本半导体元件及原理

2.寻址


1.基本半导体元件及原理

一个主存储器可以分为存储器,MAR(地址寄存器)和MDR(数据寄存器),这三个部件由在时序控制逻辑的控制下工作

其中存储体用来存放二进制数据0和1,1个存储体由多个存储单元构成,一个存储单元由多个存储元构成,存储元如下图所示:

其中包含两个半导体元件:

1.MOS管,MOS管可理解为一种电控开关,输入电压达到某个阈值时,MOS管就可以接通

2.电容,一个电容由两个金属板和中间的绝缘体构成,可以以电容是否保存电荷来记录2进制的0和1,当保存电荷时,记录的是2进制的1,接着再接通MOS管,在一端检测到电流,就意味着输出了2进制1

若想让电容保存2进制1,那么就需在一端输入高电平,再接通MOS管,电容的上下两个金属板存在电压差,就会存储电荷了。

所以电容充电过程就是写数据的过程,电容放电过程就是读数据的过程

若将多个存储元合理相连,就可以一次性读出和写入多个2进制数据,多个存储元组成一个存储单元,在这里,一行表示一个存储单元(也就是一个存储字),多个行就是一个存储体(也就是存储矩阵),如图所示,一个存储字的字长为8bit

这里区分存储字和字节:

一个存储字的字长看一行有几个存储元,例如上面存储字长为8bit

一个字节8bit,即1Byte=8bit

如何通过一个地址决定读写哪一个字,这就涉及译码器的使用:

n位地址会对应2^n个存储单元,译码器会根据地址寄存器中给的地址,转变为某一条选通线的高电平信号。

例如CPU给MAR(地址寄存器)传输的是000,3个0的十进制即0(每个地址会对应译码器的一条输出线,总共有2^3=8个地址,所以译码器的输出端有8条线),所以译码器会将第0根字选线高电平输出,那么第0根线对应的存储元都会被接通,其中的2进制数据就能被读出了。 

具体地,红色的字选线被接通后,会通过绿色的数据线(位线),把每一位的2进制信息传输到MDR(数据寄存器)中,接着CPU会通过数据总线从MDR中取走整个存储字的数据(数据总线的宽度和存储字长是相同的

这个存储体的总容量=存储单元个数*存储字长=2^3*1Byte=8B

还需添加一个控制电路,控制MAR和MDR和译码器,例如,CPU通过地址总线,将地址送到MAR中,但是,由于我们是通过电信号传送2进制数据,而电信号可能会有不稳定的情况,所以在电信号稳定之前,这一电信号是不能传送给译码器的,所以只有电信号稳定,控制电路才能打开译码器的开关,让译码器接收这一地址,给出相应的数据信号,同理,输出时,只有输出的电信号稳定,控制电路才会使MDR通过数据总线输出数据信号给CPU

控制电路还需要连接片选线\overline{CS}(chip select,芯片选择信号)或\overline{CE}(chip enable,芯片使能信号),这些信号低电平有效,当我们给片选线加低电平时,表示这块芯片可以工作

一个内存条可能包含多块存储芯片,如果只想读取某块存储芯片指定地址的数据,那么只需要将这块芯片的片选信号使能(给低电平)即可。其他芯片(给高电平)

这些存储芯片会对外保留金属引脚,这些金属引脚用来接收地址线,数据线,读/写控制线,片选线传来的数据

n位地址--->2^n个存储单元
总容量=存储单元个数x存储字长=2^3 x 8bit =2^3 x 1Byte = 8B
8(存储单元个数)x8(存储字长)位的存储芯片

同时,控制电路还会连接读/写控制线,可以为一个读/写控制线(一根读/写线\overline{WE}低电平写高电平读),或两个线,一个读控制线(\overline{OE}允许读),一个写控制线(\overline{WE}允许写)

我们忽略内部的结构,就可得到下图:

存储矩阵就是存储体

译码驱动就是译码器+驱动器(为了使译码器输出的高电平信号稳定,通常会在译码器后添加驱动器,保证译码器输出的信号稳定)

读写电路包括上图的绿色线,红色线,以及控制电路

2.寻址

如下图所示,该存储体的字长为4B,总容量为1KB,即256个字,也就是总共256行

按字节寻址:总共1K个单元(地址线:10根),每个单元 1 B

按字寻址:256个单元(地址线:8根),每个单元 4 B

地址线为8根,只需要将地址算数左移两位,即在末尾添加两个0

例如要访问1号字,那就在1后面添加两个00,100:4,得到这个字起始字节的字节地址为4

再例如,访问2号字,在10后面添加两个00,1000:8,得到这个字起始字节的字节地址为8

按半字寻址:512个单元,每个单元 2 B

按双字寻址:128个单元,每个单元 8 B

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

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

相关文章

[BIZ-缓存] - 3.金融交易系统缓存架构设计

1. 前置文章 [BIZ] - 1.金融交易系统特点https://blog.csdn.net/besthezhaowen/article/details/136118133 [缓存] - 1.缓存共性问题https://blog.csdn.net/besthezhaowen/article/details/136111466 [缓存] - 2.分布式缓存重磅中间件 Redis-CSDN博客文章浏览阅读1.4k次&…

docker (一)-简介

1.什么是docker Docker 是一个开源的应用容器引擎,由于docker影响巨大,今天也用"Docker" 指代容器化技术。 2.docker的优势 一键部署,开箱即用 容器使用基于image镜像的部署模式,image中包含了运行应用程序所需的一…

【Java程序员面试专栏 分布式中间件】ElasticSearch 核心面试指引

关于ElasticSearch 部分的核心知识进行一网打尽,包括ElasticSearch 的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 从数据分类入手,考察全文索引的基本概念 现实世界中数据有哪…

【教程】Kotlin语言学习笔记(二)——数据类型(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 第二章 《数据类型》 文章目录 【Kotlin语言学习】系列文章一、基本数据…

机器学习和统计学的区别?

1、本质区别: 目标:机器学习的核心目标是建立一个可以自动学习和改进的模型,以预测未知数据。它更关注结果的准确性和模型的泛化能力,通常不关心模型是否可以解释。而统计学的目标是探究变量之间的关系,理解数据的内在…

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示:二维网格数据表 实例1:通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注:一般网络访问不了iris sns.load_dataset(iris)ir…

Spring Boot 笔记 020 redis集成

1.1 安装redis Windows 下 Redis 安装与配置 教程_redis windows-CSDN博客 2.1 引入redis坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.2 配置…

144.【Activiti 7】

Activiti 7 工作流 (一)、工作流程1.概念2.工作流系统3.适用行业4.具体应用5.实现方式 (二)、Activiti7概述1.介绍(1).BPM 介绍(2).BPM软件(3). BPMN 2.使用步骤(1).部署activiti(2).流程定义(3).流程定义部署(4).启动一个流程实例(5).用户查询待办任务(Task)(6).用户办理任务(…

第13讲创建图文投票

创建图文投票实现 图文投票和文字投票基本一样&#xff0c;就是在投票选项里面&#xff0c;多了一个选项图片&#xff1b;、 <view class"option_item" v-for"(item,index) in options" :key"item.id"><view class"option_input&…

如何在JavaScript中使用大于和小于运算符

在你的 JavaScript 程序中&#xff0c;你经常需要比较两个值&#xff0c;以确定一个是否大于另一个或小于另一个。这就是大于和小于运算符派上用场的地方。 在本文中&#xff0c;我们将通过代码示例更详细地介绍如何使用这些运算符。 &#xff08;本文内容参考&#xff1a;ja…

Mysql中关于on,in,as,where的区别

目录 Mysql on,in,as,where的区别 Mysql语句问题解决 1、left join数据筛选问题 2、相同数据重复筛选使用问题 3、根据某个字段排序取每个类别最后三条数据或前三条数据 4、业务逻辑书写位置问题 5、查找另一表内和本表相关字段的数量 6、关于union的使用 7、limit的巧…

Ubuntu如何设置成中文

1、右上角点击&#xff08;音量图标和电池图标位置&#xff09;&#xff0c;选择“Settings”&#xff08;设置&#xff09;。 2、左侧选择“Region & Language”&#xff08;区域与语言&#xff09;&#xff0c;然后选择“Manage Installed Languages”&#xff08;管理已…

测试开发-2-概念篇

文章目录 衡量软件测试结果的依据—需求1.需求的概念2.从软件测试人员角度看需求3.为什么需求对软件测试人员如此重要4.如何才可以深入理解被测试软件的需求5.测试用例的概念6.软件错误&#xff08;BUG&#xff09;的概念7.开发模型和测试模型8.软件的生命周期9.瀑布模型&#…

中科大计网学习记录笔记(十一):CDN

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

Qt 的准备知识

文章目录 1. Qt 背景介绍2. 搭建 Qt 开发环境3. 认识 Qt Creator3.1 main.cpp3.2 widget.h3.3 widget.cpp3.4 Forms3.5 .pro文件 1. Qt 背景介绍 Qt 是⼀个 跨平台的 C 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界⾯所需的所有功能。它是完全⾯向对…

SAP MM学习笔记42 - 特殊调达流程 - 受托品(寄售)

上一章讲了 外注加工的知识。 详细可以参考如下链接。 SAP MM学习笔记41 - 特殊调达流程 - 外注加工-CSDN博客 咱们继续学习特殊调达流程。 本章主要讲受托品。 1&#xff0c;什么是受托品 &#xff08;寄售&#xff09; 仕入先提供的商品&#xff0c;商品是放在你公司了&a…

Python爬虫——解析库安装(1)

目录 1.lxml安装2.Beautiful Soup安装3.pyquery 的安装 我创建了一个社区&#xff0c;欢迎大家一起学习交流。社区名称&#xff1a;Spider学习交流 注&#xff1a;该系列教程已经默认用户安装了Pycharm和Anaconda&#xff0c;未安装的可以参考我之前的博客有将如何安装。同时默…

C语言第二十四弹---指针(八)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、数组和指针笔试题解析 1.1、字符数组 1.1.1、代码1&#xff1a; 1.1.2、代码2&#xff1a; 1.1.3、代码3&#xff1a; 1.1.4、代码4&#xff1a; 1…

LeetCode 每日一题 Day 62 - 75

1686. 石子游戏 VI Alice 和 Bob 轮流玩一个游戏&#xff0c;Alice 先手。 一堆石子里总共有 n 个石子&#xff0c;轮到某个玩家时&#xff0c;他可以 移出 一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有 不一样的的评判标准 。双方都知道对方的评判标准。 给你…

手动汉化unity编辑器,解决下载中文语言报错问题

手动汉化unity编辑器&#xff0c;解决下载中文语言报错问题 START 最近在下载支持微信小程序版本的编辑器时&#xff0c;中文语言包&#xff0c;一直无法下载。记录一下 手动汉化unity编辑器的方法 &#xff0c;帮助和我遇到同样问题的人。 解决方案 1. 下载汉化包 https:…