计算机组成原理(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. 计算机组成原理

    2024-02-16 03:46:03       18 阅读
  2. 计算机组成原理讲解

    2024-02-16 03:46:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-16 03:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-16 03:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-16 03:46:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-16 03:46:03       20 阅读

热门阅读

  1. 微服务设计:Spring Cloud 链路追踪概述

    2024-02-16 03:46:03       29 阅读
  2. 代码随想录二刷——二叉树day18

    2024-02-16 03:46:03       35 阅读
  3. 代码随想录算法训练营|day32

    2024-02-16 03:46:03       34 阅读
  4. 2024.02.11

    2024-02-16 03:46:03       32 阅读
  5. 「优选算法刷题」:除自身以外数组的乘积

    2024-02-16 03:46:03       34 阅读
  6. 算法刷题day12

    2024-02-16 03:46:03       36 阅读
  7. MySQL学习Day15——MySQL架构

    2024-02-16 03:46:03       31 阅读
  8. 奇异递归模板模式应用2-单例模板

    2024-02-16 03:46:03       36 阅读
  9. 2024/2/14

    2024-02-16 03:46:03       33 阅读
  10. Introduction to GraphQL-style APIs

    2024-02-16 03:46:03       29 阅读