计算机组成原理--主存储器_什么是地址字,计算机组成原理-程序员宅基地

技术标签: 计算机组成原理  

主存的基本组成
在这里插入图片描述
存储体由若跟个存储单元组成,存储单元由多个存储元件组成
存储体----存储单元(存储一串二进制串)----存储元件(存储一个0/1)
存储单元:存放一串二进制代码。
存储字:存储单元中的二进制代码
存储字长:存储单元中二进制代码位数。
存储单元按照地址进行寻址
MAR:存储器地址寄存器,反应存储单元个数。保存了存储体的地址(存储单元的编号),反应了存储单元的个数。所以MAR的位数和存储单元的个数有关。
MDR:存储器数据寄存器,反应存储字长(存储单元长度)。保存了要送入CPU中的数据或要保存到存储体中的数据或者刚刚从存储体中取出来来的数据。这个寄存器的长度和存储单元的长度相同。

在这里插入图片描述
主存中存储单元的地址分配
如12345678 H 在主存储器中如何进行存储?

1、高位字节地址为字地址(大端大尾)
在这里插入图片描述
2、低位字节地址为字地址(小端小尾)
在这里插入图片描述
寻址方式及寻址范围计算:
地址线24根,按字节寻址,地址个数 = 2^24 * 1B = 16MB
如果字长16位,按字寻址,地址个数 = 8MW
如果字长32位,按字寻址,地址个数 = 4MW

半导体存储芯片基本结构

在这里插入图片描述
在这里插入图片描述

容量计算

地址线(单向) 数据线 (双向) 芯片容量
10 4 2^10 * 4 = 1K * 4
14 1 2^14 * 1 = 16K * 1
13 8 2^13 * 1 = 8K * 8

片选线作用
让某一组芯片同时进行工作。如下图所示,使用32片 16K * 1位的存储器组成 64K * 8 位的存储器。16 K * 1说明每个存储器的数据线为1根,要组成64K * 8 位的存储器,只需使得每次读数据是从8个16 K * 1存储器中各读取一位即可,这时候就可以使用片选线同时选中8个 16K * 1的存储器。
在这里插入图片描述

半导体芯片译码驱动方式
1、线选法
在这里插入图片描述
从上图可以看出,地址总线为4,数据总线为8,按照字节进行寻址,内存大小为16 * 8 b。通过地址线判断从那个字节进行数据的读取,换句话说,如果地址输入为0000,在只有字线0有效,其他字线无效。
线选法存在的问题:
如果容量稍大,比如为1M * 1 ,则此时有20根地址线,相应的有2^20 = 100万根字线,这样导致芯片字线非常密集,并且很难把芯片的密集程度做的很高。

2、重合法
在这里插入图片描述
对于重合法,同样如果有1M * 1的容量,此时X(行)、Y(列)各有十根地址线,对应的字线各有1024条,则公有2048跟字线。

随机存储器(RAM)
(一) 静态RAM
1、静态RAM保存0和1的原理是什么?
静态RAM使用的是触发器进行存储数据,触发器由四根晶体管构成,属于双稳态触发器,具有源端和非端用于存储数据,一方为0另一方为1,一方为1,另一方为0。
2、静态RAM基本单元电路的构成是什么?
在这里插入图片描述
在这里插入图片描述
图中是保存一个0位或者1位的电路。
行地址线选择:相当于重合法图中的Xn,每行有多个基本单元电路,行地址选中一行中所有的基本单元电路。
列地址选择:相当于重合法图中的Yn,每列有多个基本单元电路,列地址选中一列中所有的基本单元电路。
每次读取数据,需要行和列同时被选中。
T1 ~ T4为触发器,T1和T4用于存储0和1,T5和T6用于控制读取哪一端数据。
在实际的芯片中,会将虚框中的内容(T1 ~ T 4, T5和T6)进行列分布而非单独一个,T7和T8属于列开关,行列交叉点会有多个基本单元电路,能读出多位数据。
3、静态RAM对单元电路如何进行读出和写入?

(1)读操作:
在这里插入图片描述
读数据时,虽然T5开,T7开,但是非端数据到写放大器就终止了。

(2)写操作
在这里插入图片描述
写数据时,左边的写放大器把右边的写放大器的值取非后进行输出,保证A和非A端的值相反。

4、Intel 2114静态RAM芯片的结构及读写操作?
以Intel 2114芯片举例,Intel 2114 外特性如下图:
在这里插入图片描述
2114RAM芯片结构示意图
在这里插入图片描述
Intel 2114 芯片是由64 * 64位矩阵构成。由图中可知,芯片地址线9根,数据线4根,那芯片内部是如何进行布局的呢?具体布局如下图:

在这里插入图片描述
如图所示,地址线共10位,其中行地址线6位,列地址线4位,行字线2^ 6 = 64,列字线 2^ 4 = 16。读取数据时如下所示:

在这里插入图片描述
将64列数据分为四组,每组16列。数据读取的时候,如,行地址为000000,列地址为0000,此时,行位线选中第一行中所有的元件,列地址选中每组中的第一列,这样就从每组中读取一位,共读取四位数据。写数据和读数据同理。

(二)动态RAM
1、动态RAM保存0和1的原理是什么?
动态RAM使用电容,电容中保存了电荷为1,电容没有被充电为0。
2、动态RAM基本单元电路的构成是什么?
在这里插入图片描述

动态RAM基本电路有两种,如上图左(三管动态RAM)、右(单管动态RAM)。

3、动态RAM对单元电路如何进行读出和写入?
(1)左侧电路读写操作
读操作: T4为预充电信号,如果预充电信号有效,T4会被打开,Vdd通过T4对读数据线进行充电,使得读数据线成为高电平,如果是进行读操作,则读选择信号有效,T2打开,如果此时CG中保存的数据是0,也就是CG没有充电,则T1不会导通,则读数据线就会保持高电平,所以,如果保存的数据是0,则在读数据时候,读出的数据是1。如果CG电容中保存的数据是1,T1导通,此时读数据线上的电平通过T2,T1线路进行放电,读数据线低电平,读出的数据为0。所以电容读出的信息和原存的信号是相反的。
写操作: 写入和输入信息相同。如果是写操作,写选择线有效,T3导通 写数据线会通过T3向CG充电,或者CG通过T3进行放电,如果写入的数据是1高电平,写数据线会通过T3向CG充电,CG写入1.如果写入是0,则CG通过T3进行放电,CG放电为0。

(2)右侧电路读写操作
读操作: 如果相应的行被选中,字线连接的T被打开,电容就会通过T进行充电或者放电,如果CG中有电位1,此时放电,则数据线有电流,如果CS中没有充电,则数据线无电流,通过数据数据线有无电流判断CS中保存的是1还是0。
写操作: 写入时,写入1,数据线有电流,进行充电为1。写入0,数据线无电流,放电为0。

4、动态RAM芯片的结构及读写操作?
(1) 三管动态RAM(Intel 1103)

三管动态RAM读写操作:
在这里插入图片描述
(2)单管动态RAM(Intel 4116)

单管动态RAM外特性:
在这里插入图片描述
上图中,大小为16k X 1,所以有14根地址线,图中地址线只有A0 – A6共7根线,此时行地址和列地址分为两次传输,将行地址和列地址分别保存早缓存器中。

单管动态RAM读写操作:
在这里插入图片描述

图中的读放大器的工作原理像一个撬撬板电路,一端为0,另一端就是1,一端为1,另一端就是0。
读操作: 如果选中63行,0列。则63行中所有的开关都被打开,如果电容中有电,则读放大器左端为1,则右端为0,此时读出的数据为0。如果电容中没有电,读放大器左端为0,则右端为1,此时读出数据为1。
写操作: 如果如果选中63行,0列。写入1,读放大器右端为1,左端为0,写入0。如果写入0,读放大器右端为0,左端为1,写入1。
以上电容中实际数据和写入读出数据相反,但是读出和写入的数据相同。

三管动态RAM和单管动态RAM电路比静态RAM电路多出放大器,放大器所用:电容存在漏掉,需要刷新放大器没过一段时间对每一列上的电容进行刷新重现。

5、动态RAM为什么要进行刷新,刷新方法是什么?
由于动态RAM使用电容存储信息,电容容易漏电,经过一段时间,电容漏电,会导致数据有1变为0,。动态RAM刷新只和行地址有关,和列地址无关,每次刷新的是一行中的所有基本电容电路。给出行地址,某一行被全部选中,这个行上所有电容中的信息都会被送到读电路,如果在读数据线和写数据线之间增加一个刷新放大器(每一列都加),就会完成对一行数据的刷新。

(1) 集中刷新:以128 * 128矩阵为例
首先主存储器的存储周期 为0.5us。
在这里插入图片描述
上图中的集中式刷新:每隔2ms对128行进行全部刷新,存取周期为0.5us,所以刷新每行也需要0.5us,2ms内,刷新需要64us。在这段死区内,CPU无法对动态RAM进行读写操作。

(2)分散刷新:以128 * 128矩阵为例

上图的分散式刷新:延长存取周期为正常存取周期的两倍(0.5us * 2 = 1us)。每1us对其中的一行进行刷新,128us刷新全部的128行。虽然没有死区,但是刷新过于频繁,并且延长了CPU的读写周期。
在这里插入图片描述

(3)分散集中相结合:以128 * 128矩阵为例
在这里插入图片描述
这种方式存取周期为0.5us,在集中式刷新中,每隔2ms对128行进行全部刷新,2ums= 2000us,即如果平均分到每行,则每15.6um刷新一行。若将刷新安排在指令译码阶段,就不会出现死区。

(三)静态RAM和动态RAM比较
在这里插入图片描述
DRAM用于做主存,SRAM用于主存和CPU之间的缓存。这样就可以降低成本同时加快访问速度。

只读存储器ROM
(一)只读存储器发展历史
早期的只读存储器,在厂家就写好了内容,无法修改。
改进1:用户可以自己写,一次性修改。
改进2:可以多次写,能对信息进行擦除。
改进3:电可擦写,特定设备。
改进4:电可擦写,直接连接到计算机上。
(二)只读存储器(ROM类型)
1、掩模 ROM ( MROM )

行列选择线交叉处有 MOS 管为“1”
行列选择线交叉处无 MOS 管为“0”

2、PROM (一次性编程)
在这里插入图片描述

熔丝断为 “0”
熔丝未断为 “1”

3、EPROM (多次性编程 )
在这里插入图片描述
G:栅极 S:源 D:漏
使用紫外线进行擦洗

D 端加正电压形成浮动栅,S 与 D 不导通为 “0”。
D 端不加正电压不形成浮动栅,S 与 D 导通为 “1”。

4、EEPROM (多次性编程 )

使用电擦写,可局部擦写,也可全部擦写。

5、Flash Memory (闪速型存储器)

第三种EPROM价格便宜,集成度高。
第四种EEPROM,电可擦洗重写。
Flash Memory比 EEPROM快,具备 RAM 功能。

存储器容量的扩展
1、位扩展(增加存储字长)
在这里插入图片描述
上图为用两个 1k * 4 位存储芯片组成一个1K * 8位的存储芯片。在读取数据的时候,通过cs片选线同时选中两个芯片,将每个芯片中的四位组成8位传送到数据线上。

2、字扩展
在这里插入图片描述

图中是将连个1k * 8的存储芯片组成一个2k * 8的存储芯片。共需要11根地址线 ,8根数据线,其中10根地址线选中具体的一个地址,第十根地址线用作片选线,当第十根为0时候,使用芯片1,当第十根为1时候,使用芯片2。

3、字和位同时扩展

在这里插入图片描述
用8片 1K * 4位的芯片组成4K * 8位的芯片。其中有12根地址线,8根数据线,其中两根地址线作为片选线,一个片选地址选中两片芯片。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43627118/article/details/105188281

智能推荐

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

电脑技巧:Windows系统原版纯净软件必备的两个网站_msdn我告诉你-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏14次。该如何避免的,今天小编给大家推荐两个下载Windows系统官方软件的资源网站,可以杜绝软件捆绑等行为。该站提供了丰富的Windows官方技术资源,比较重要的有MSDN技术资源文档库、官方工具和资源、应用程序、开发人员工具(Visual Studio 、SQLServer等等)、系统镜像、设计人员工具等。总的来说,这两个都是非常优秀的Windows系统镜像资源站,提供了丰富的Windows系统镜像资源,并且保证了资源的纯净和安全性,有需要的朋友可以去了解一下。这个非常实用的资源网站的创建者是国内的一个网友。_msdn我告诉你

vue2封装对话框el-dialog组件_<el-dialog 封装成组件 vue2-程序员宅基地

文章浏览阅读1.2k次。vue2封装对话框el-dialog组件_

MFC 文本框换行_c++ mfc同一框内输入二行怎么换行-程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏6次。MFC 文本框换行 标签: it mfc 文本框1.将Multiline属性设置为True2.换行是使用"\r\n" (宽字符串为L"\r\n")3.如果需要编辑并且按Enter键换行,还要将 Want Return 设置为 True4.如果需要垂直滚动条的话将Vertical Scroll属性设置为True,需要水平滚动条的话将Horizontal Scroll属性设_c++ mfc同一框内输入二行怎么换行

redis-desktop-manager无法连接redis-server的解决方法_redis-server doesn't support auth command or ismis-程序员宅基地

文章浏览阅读832次。检查Linux是否是否开启所需端口,默认为6379,若未打开,将其开启:以root用户执行iptables -I INPUT -p tcp --dport 6379 -j ACCEPT如果还是未能解决,修改redis.conf,修改主机地址:bind 192.168.85.**;然后使用该配置文件,重新启动Redis服务./redis-server redis.conf..._redis-server doesn't support auth command or ismisconfigured. try

实验四 数据选择器及其应用-程序员宅基地

文章浏览阅读4.9k次。济大数电实验报告_数据选择器及其应用

随便推点

灰色预测模型matlab_MATLAB实战|基于灰色预测河南省社会消费品零售总额预测-程序员宅基地

文章浏览阅读236次。1研究内容消费在生产中占据十分重要的地位,是生产的最终目的和动力,是保持省内经济稳定快速发展的核心要素。预测河南省社会消费品零售总额,是进行宏观经济调控和消费体制改变创新的基础,是河南省内人民对美好的全面和谐社会的追求的要求,保持河南省经济稳定和可持续发展具有重要意义。本文建立灰色预测模型,利用MATLAB软件,预测出2019年~2023年河南省社会消费品零售总额预测值分别为21881...._灰色预测模型用什么软件

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

100种思维模型之全局观思维模型-67_计算机中对于全局观的-程序员宅基地

文章浏览阅读786次。全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。_计算机中对于全局观的

线程间控制之CountDownLatch和CyclicBarrier使用介绍_countdownluach于cyclicbarrier的用法-程序员宅基地

文章浏览阅读330次。一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do..._countdownluach于cyclicbarrier的用法

自动化监控系统Prometheus&Grafana_-自动化监控系统prometheus&grafana实战-程序员宅基地

文章浏览阅读508次。Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,_-自动化监控系统prometheus&grafana实战

React 组件封装之 Search 搜索_react search-程序员宅基地

文章浏览阅读4.7k次。输入关键字,可以通过键盘的搜索按钮完成搜索功能。_react search