计算机原理第三章——存储器(未完善
如上图所示,我们所学的重点就是上面的
存储器的分类
半导体
存储方式
主存储器的基本结构
SRAM和DRAM随机芯片
就是看前面的第一章我写的就行了
下面这里还有地址线和数据线的,然后通过控制电路,相当于是片选线联合使用。既可以发送信息,也能够接受信息
片选线就相当于是高电平或者是低电平。高电平就是1,相当于是全开,而低电平是全关
然后又有低电平或高电平有效,就是当接收到高电平就是全开,反之低电平全开。
除了这个还有
存储单元个数就相当于是,在地址线那里2的n次方,实际是行数。而存储字长是列
所以说多少位的
存储单元地址的分配
我们知道了1个字节是一个b,即8个二进制位。字长是自己按照需求设置。32位=4b=4*8位
下面的问题是如何定位到存储单元,就是寻址
字长是4b,总容量为1kb,1b位8位。4b为32位,
从字节寻址来看的话,1kb可以是等于1021*b,就是把其分为1024个单元。然后每个字长是1b就行
如果我们按照字来的话。1024个字节,一个字长为4个字节,那么1024/4=256个单元,每个单元有4个字节
同样半个字寻址的话
-
- 在按半字寻址的模式下,每次寻址操作会访问2字节。因此,1KB的内存可以划分为512个可寻址的单元(1024字节 / 2字节/单元 = 512单元)。
四个格子为一组,看有多少个单元
这里是有10根地址线,
那么一共是10位,用十进制表示地址位,
我们用每一行的首个高行当作我们的标识符
如果这里以一行为单位,一行是4b的话,就是32位数据了
把这个32位的话写出16进制,又因为16进制每个位相当于是4个二位制。
地址 数据
0000: 12
0001: 34
0010: 56
0011: 78
如果我们是像这样表示的话,32位=4*8,那么的话因为一个十六进制的数字用二进制表示的的时候是四位数字,像12放在一起就是8位,有四个八位那么就是32位了,
那么这个小节就是这样了
存储芯片的基本结构
这里64kx8位的话,相当于地址为2的16,这是地址位,然后每个存储单元是8位了
现在我们用32片,分为4组,每组可以表示位8位,这就和存储器的8位对应上了,然后后,16k是地址位,共有4组,16x4=64
地址线输送想要访问存储单元的地址,n条地址线,能够对应到2的N个存储单元。至于第5为什么说片选器能够扩大容量,因为想当于是可以轮换存储芯片,
主存容量的扩展
下面是两个芯片的比较了(SRAM,DRAM)
存储信息都是0和1 ,不过一个是触发器类型,一个是电容类型的
当然,以下是对SRAM和DRAM在各项特性中的差异的解释:
存储信息
SRAM:使用双稳态触发器(bistable latches)来存储每个位,因此它可以保持信息,直到电力被移除,无需刷新。
DRAM:使用电容存储电荷来代表每个位,电容上的电荷会随时间泄漏,因此需要定期刷新来维持数据。
破坏性读出
SRAM:非破坏性读出,因为读取数据不会改变触发器的状态。
DRAM:破坏性读出,因为读取数据会导致电容放电,必须随后重新充电。
需要刷新
SRAM:不需要刷新,因为触发器能够稳定地保持数据。
DRAM:需要刷新,因为电容电荷会逐渐泄漏,需要定期充电以保持数据。
运行速度
SRAM:运行速度快,因为它的电路设计更简单,访问时间短。
DRAM:运行速度慢,因为需要额外的步骤来刷新电容,且访问时间较长。
集成度
SRAM:集成度低,因为每个存储单元需要更多的晶体管(通常6个)。
DRAM:集成度高,因为每个存储单元只需要1个晶体管和1个电容(或更少的晶体管)。
发热量
SRAM:发热量大,因为它的电路更复杂,电阻更大,导致更多的功耗。
DRAM:发热量小,因为它的设计更简单,功耗更低。
存储成本
SRAM:存储成本高,因为每个存储单元需要更多的组件,制造成本更高。
DRAM:存储成本低,因为每个存储单元需要的组件更少,制造成本较低。
常用作
SRAM:常用作Cache,因为它的高速特性适合用作快速存取的数据缓存。
DRAM:常用作主存,因为它的成本较低,适合用作更大容量的存储。
行地址与列地址
SRAM:同时发送行地址和列地址,因为它的设计允许更直接的访问。
DRAM:分两次发送地址,使用地址复用技术,减少地址线的数量,降低成本。
断电丢失信息
SRAM:断电后丢失信息,因为它是一种易失性存储器,需要电力来维持数据。
其他备注
DRAM:同步动态随机存储器(SDRAM)是一种特殊类型的DRAM,它的工作与系统时钟同步,进一步提高了数据传输的效率。
这些差异导致了SRAM和DRAM在不同应用场景中的不同用途。SRAM由于其快速和高成本的特点,通常用于缓存,而DRAM由于其大容量和低成本的特点,通常用于主存储器。
DRAM的刷新频率
根据您提供的图片信息,DRAM(动态随机存取存储器)采用以行为单位的刷新策略主要是出于以下几个原因:
减少选通线的数量:随着存储容量的增加,如果每个存储单元都需要独立的选通线,那么所需的选通线数量将会非常庞大。通过将存储单元组织成行,每一行共享一个选通信号,这样可以大大减少所需选通线的总数。
提高访问速度:当需要访问某个特定存储单元时,只需要激活相应的行选通信号,然后在该行内通过列地址找到具体的位置。这种两步寻址方式可以提高访问速度,因为不需要同时处理所有可能的地址组合。
简化电路设计:使用行列地址译码器可以将复杂的地址空间映射到一个相对简单的物理布局上。这样不仅降低了硬件设计的复杂性,也使得芯片的生产和维护变得更加容易。
节省功耗:由于不是所有的存储单元都同时处于活动状态,而是按行逐个激活,这有助于降低整体的功耗消耗。
综上所述,DRAM之所以选择以行为单位进行刷新和数据访问,是为了优化性能、减少资源占用和提高能效比。
为什么用简单模型时候,当n很大的时候,好多线,无法忍受的
用行列地址的时候
这样减少通线数,并把地址分为行列地址,这里地址线还是8位,如0000 0000,前面四位和后面的 四位用来表示xy
几种刷新模式
RAM的读周期
因为这里的地址传上来的时候,我们并不能够确认其是否传输完成,因为每个的传输速度是不同,
恢复时候是用作对电容的电荷重新充电或其他操作 cs还是片线选择器
RAM的随机存储
RAM易失存储器的结构
几种类型
存储器的分类
简单的了解下几种存储
存储时间
存储交流
存储芯片的基本结构
片选信号(Chip Select, CS)是
计算机系统中用于选择特定集成电路芯片的控制信号。它通常由微处理器或其他控制器发出,用来指示某个特定的芯片应该响应接下来的操作,例如读取或写入数据。以下是片选信号的主要用途:
多路复用:在一个系统中可能存在多个相同的芯片,比如内存芯片。通过片选信号可以选择其中一个芯片进行操作,从而实现多路复用,减少引脚数量和提高系统的集成度。
降低成本:使用片选信号可以在不增加芯片引脚数量的情况下扩展系统功能。例如,可以使用一个公共的数据总线和地址总线,并通过不同的片选信号来选择不同的芯片。
两种扩展
字扩展
字扩展
这里cs不能够同时为1的,不然造成数据乱了在这个图中,“8K×8位”表示的是一个具有8K(8192)个地址单元的存储器芯片,每个地址单元可以存储8位(1字节)的数据。具体来说:
8K:意味着这个存储器芯片有8192个独立的地址位置(因为(2^{13} = 8192),所以需要13根地址线来寻址这些位置)
要找到2的几次方等于8k,我们首先需要明确8k代表的是8千字节(8 kilobytes)。1 kilobyte (1k) 等于 1024 bytes,所以8k 等于 8 乘以 1024 bytes。
计算8k的字节数量:
8k = 8 * 1024 bytes = 8192 bytes
现在,我们需要找到一个2的幂,它等于8192。我们可以通过计算log base 2 of 8192来找到这个幂。
log2(8192) = log2(2^13) = 13
因为8192是2的13次方(2^13 = 8192),所以2的13次方等于8k。。
8位:意味着在每个地址位置上可以存储8位的数据,也就是1字节。
因此,整个芯片的总存储容量是 (8 \text{K} \times 8 \text{位} = 64 \text{K位}),或者说是8KB(千字节)。
在图中,可以看到有两个“8K×8位”的存储器芯片并联在一起,它们共享相同的地址线和数据线,但各自有自己的片选信号(CS)。这意味着这两个芯片可以被看作是一个更大的16KB存储器模块的两个部分,通过适当的片选信号控制,可以分别对它们进行读写操作。
高低电平有效
a15和a13都是0,说明选通了0号芯片,然后蓝色的那一位可以是0或1.这样就相当于是自己两倍的空间
字位同时扩展
选用不同芯片的时候对应不同的数值范围
如何确定地址线
由于我无法访问外部网站或特定视频,我将根据一般计算机组成原理的知识来解释 ROM 地址线数量的问题。
ROM 地址线数量的确定:
ROM 地址线的数量取决于 ROM 的容量,即它可以存储多少数据。地址线的数量决定了 ROM 的寻址能力,即它可以访问多少个独立的存储单元。
计算地址线数量:
要计算 ROM 所需的地址线数量,可以使用以下公式:
地址线数量 = log2(ROM 容量)
其中,log2 表示以 2 为底的对数。
例如:
如果 ROM 容量为 4KB (4096 字节),则地址线数量为 log2(4096) = 12。
如果 ROM 容量为 8KB (8192 字节),则地址线数量为 log2(8192) = 13。
11 根地址线的情况:
根据公式,11 根地址线可以寻址 2^11 = 2048 个独立的存储单元。
因此,如果 ROM 的容量为 2048 字节,那么它需要 11 根地址线。
可能的原因:
如果视频中的 ROM 芯片确实只有 11 根地址线,那么可能有以下几种原因:
ROM 容量较小: 该 ROM 芯片可能只有 2048 字节或更小的容量,因此只需要 11 根地址线。
地址线复用: 某些 ROM 芯片可能会复用地址线,例如使用 11 根地址线来寻址更大的存储空间。
特殊设计: 某些 ROM 芯片可能采用特殊的设计,例如使用编码方式或其他技术来减少所需的地址线数量。
总结:
ROM 地址线的数量取决于 ROM 的容量和寻址方式。11 根地址线通常用于寻址 2048 个独立的存储单元。如果视频中的 ROM 芯片只有 11 根地址线,那么它可能具有较小的容量,或者使用了特殊的地址线复用技术。
因为cpu是有16根地址线
根据您提供的文档内容,我们可以了解到这是一份关于王道计算机考研计算机组成原理视频课程的列表。这份文档似乎还包含了一些与计算机组成原理相关的图片或图表,其中提到了地址线和译码器。
由于文档内容有限,我无法确定具体的问题,但我可以根据文档中提到的信息,以及一般计算机组成原理的知识,来解释地址线和译码器的关系:
地址线:
地址线是连接 CPU 和内存之间的线路,用于传输内存地址。
地址线的数量决定了 CPU 可以访问的内存地址范围,从而决定了内存容量。
例如,16 根地址线可以访问 2^16 = 65,536 个不同的内存地址,即 64KB 的内存。
译码器:
译码器是一种组合逻辑电路,用于将输入信号转换为输出信号。
在计算机组成原理中,译码器通常用于将 CPU 发出的地址信号转换为内存芯片的片选信号。
通过译码器,CPU 可以选择要访问的特定的内存芯片或存储单元。
地址线和译码器的关系:
地址线提供 CPU 发出的地址信号。
译码器根据地址信号,生成相应的片选信号。
片选信号用于选择要访问的特定的内存芯片或存储单元。
举例说明:
假设我们有 4 片内存芯片,每片芯片容量为 64KB,总共 256KB 的内存。
我们需要 8 根地址线来表示 256KB 的内存地址空间 (2^8 = 256)。
我们可以使用 3-8 译码器来将这 8 根地址线转换为 8 个片选信号,每个信号控制一片内存芯片。
当 CPU 发出特定的地址信号时,译码器会生成相应的片选信号,选择要访问的特定的内存芯片。
总结:
地址线和译码器在计算机组成原理中起着重要作用,它们共同工作,使得 CPU 可以访问特定的内存芯片或存储单元。通过合理地设计地址线和译码器,可以提高内存系统的效率和可靠性。
在存储的地址占用了其中16位的地址之后,那么其他的地址我们可以选用作切片器,即连到不同的存储芯片上面,这样的话算是完成了分区,而最前面的两个是永远保持0、1的状态的,这样我们就可以看作是译码器的齿轮端
图中的两个小圆圈的话,说明了低电平有效,即能连接到g2a和g2b
双口ram和多模块使用
存储周期
双端口的ram使用
对于这个的解决办法用忙闲的信号量控制
多模块存储器
每个轮流做,在m0完成后m1接上去
微观小题目
局部器原理
cache
28=19+3+6,其中的六是在每一行里面的具体位置,3是行数,19数据
虚拟存储器
该图片展示了页式虚拟存储器的地址转换过程。
1.首先从程序给出的逻辑地址(虚页号和页内地址)开始,在页表(Page Table)中进行查询。
2.页表位于主存中,它将逻辑地址映射到物理地址。
3.根据虚页号查到对应的实页号后,再将逻辑地址中的页内地址与实页号拼接起来,形成完整的物理地址(实页号+页内地址)。这个物理地址指向Cache或主存中的实际数据所在位置。
4.最后,通过访问Cache或主存获取最终的数据。
这张图片展示了段式虚拟存储器的工作原理和地址转换过程。以下是详细的描述:
段式虚拟存储器概述
段式虚拟存储器是一种内存管理方式,其中内存被划分为多个段,每个段的长度可以根据程序的逻辑结构来划分。虚拟地址由两部分组成:段号和段内地址。
地址转换过程
虚拟地址分解:
虚拟地址分为两个部分:段号和段内地址。
段表查找:
根据段号在段表中查找相应的条目。段表的每一行记录了与某个段对应的段号、装入位、段起点和段长等信息。
计算物理地址:
从段表中获取段的起始地址(段基址)。
将段内地址与段基址相加,得到实际的物理地址。
访问内存:
使用计算出的物理地址访问Cache或主存,以获取所需的数据。
图解步骤
段表基地址寄存器:保存段表的起始地址。
段表地址:通过段表基地址寄存器和段号计算出段表的具体地址。
段表:存储各个段的详细信息,包括段基址等。
主存地址:通过段基址加上段内地址得到最终的物理地址。
实地址:用于访问Cache或主存的实际地址。
总结
段式虚拟存储器通过将虚拟地址转换为物理地址,实现了对内存的有效管理和利用。这种机制允许程序按照其逻辑结构进行分段,提高了内存使用的灵活性和效率。
页式存储和段式存储相比的话
存储器与cpu的连接
地址线的连接
页式存储和段式存储是两种不同的虚拟内存管理技术,它们在地址转换和内存管理方面各有特点。以下是页式存储与段式存储的比较:
地址管理方式
页式存储:
- 地址空间被划分为固定大小的页。
- 虚拟地址由页号和页内偏移组成。
- 页的大小通常是固定的,例如4KB或8KB。
- 页表用于将虚拟页映射到物理页。
段式存储:
- 地址空间被划分为变长的段,每个段对应程序的一个逻辑单元。
- 虚拟地址由段号和段内偏移组成。
- 段的大小可以根据程序的需要而变化。
- 段表用于存储段的基址和长度信息。
内存分配
页式存储:
- 内存分配以页为单位,可以是非连续的。
- 由于页大小固定,管理起来比较简单。
段式存储:
- 内存分配以段为单位,可以是连续的或非连续的。
- 由于段大小不固定,管理起来相对复杂。
碎片问题
页式存储:
- 容易产生内部碎片,因为页的大小固定,如果一个页没有完全被使用,剩余的部分就会浪费。
段式存储:
- 容易产生外部碎片,因为段的大小不固定,随着段的分配和释放,内存中可能会出现无法被利用的小空闲块。
程序结构和数据访问
页式存储:
- 不关心程序的逻辑结构,只关注页的分配和映射。
- 可能会导致跨页的数据结构被分割,影响性能。
段式存储:
- 依据程序的逻辑结构进行分段,如代码段、数据段、堆栈段等。
- 可以更好地适应程序的结构,提高访问效率。
系统性能
页式存储:
- 由于页的大小固定,