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

2024-02-15 22:28

本文主要是介绍计算机组成原理(1)----主存储器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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

这篇关于计算机组成原理(1)----主存储器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712713

相关文章

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.