操作系统-存储管理(1)内存

记忆单元/存储基元/存储元/位元/Cell,是具有两种稳态的能够表示二进制数码0和1的物理器件。
具有相同地址的位构成一个存储单元,也称为一个编址单位,编址方式有字节编址、按字编址(由ISA规定)
编址单位是指具有相同地址的位元构成的单位,编址方式一般为按字节编址。如图,相同单元字线连在一起。
指令执行过程中需要访间主存时,CPU首先把需访问单元的地址送到CPU内的主存地址寄存器(Memory Address Register,简称MAR)中, 然后通过地址线将主存地址送到主存中的地址寄存器, 以便地址译码器进行译码后选中相应单元, 
地址译码器的输入是地址,输出是地址驱动信号(只有一根地址驱动线被选中),可寻址范围为主存地址空间。
同时,CPU将读/写控制信号通过控制线送到主存的读写控制电路。 
如果是写操作,CPU同时将要写的信息送主存数据寄存器(Memory Data Register,简称MDR)中,在读写控制电路的控制下, 经数据线将信息写入选中的单元;如果是读操作, 则主存读出选中单元的内容送数据线, 然后送到MDR中。
数据线的宽度与MDR的宽度相同, 地址线的宽度与MAR的宽度相同。 
图中采用64位数据线, 因此, 在字节编址方式下, 每次最多可以存取8个字节的内容。 
地址线的位数决定了主存地址空间的最大可寻址范围, 例如, 36 位地址的最大可寻址范围为 0~2^36-1。
 
SRAM:
SRAM中数据保存在一对正负反馈门电路中,只要供电,数据就一直保持,不是破环性读出,无需刷新和读后再生。
      保持时:字线为0(低电平)
      写入时:位线上是被写入的二进位信息0或1;置字线为1;存储单元(触发器)按位线的状态设置成0或1
      读出时:置2个位线为高电平;置字线为1 ;存储单元状态不同,位线的输出不同
DRAM:
读写原理:字线上加高电平,使T管导通。
      写“0”时,数据线加低电平,使CS上电荷对数据线放电;写“1”时,数据线加高电平,使数据线对CS充电;
      读出时,数据线上有一读出电压。它与CS上电荷量成正比。
优点:电路元件少,功耗小,集成度高,用于构建主存储器
缺点:速度慢、是破坏性读出(需读后再生)、需定时刷新
PS:DRAM的一个重要特点是,数据以电荷的形式保存在电容中,电容的放电使得电荷通常只能维持几十个毫秒左右,相当于1M个时钟周期左右,因此要定期进行刷新(读出后重新写回),按行进行(所有芯片中的同一行一起进行),刷新操作所需时间通常只占1%~2%左右。
 
字片式存储体阵列组织:
同一个字的不同位的n个cell,字线连接在一起,连接到译码器上,一共m个字。
一般ROM、SRAM为字片式芯片,是一维地址译码系统,只在x向上译码,同时读出字线上所有位。
 
位片式存储体阵列组织:
位片式芯片是二维地址译码系统,需要有片选信号,在x向和y向同时译码,选中的字又包含若干位。
扩充时可以在字方向和位方向扩充,
DRAM芯片都是位片式。
 
典型的16M位DRAM:
16M位 = 4Mbx4 = 2048x2048x4 = 2^11x2^11x4
4位一编址
(1) 地址线:11根线行地址列地址分时复用,由RAS(行地址选通)和CAS(列地址选通)提供控制时序。被选中的行中的所有列进入行缓冲(用SRAM实现)中,再由列地址选出其中一列(共4个2进制位)输出。
选中的超元(supercell)有4位,需4根数据引脚。
每加一根地址线,则行地址和列地址各增加一位,所以行数和列数各增加一倍。因而容量至少提高到4倍。
行数应尽量小以减少刷新次数;最好行列数相等。
(2) 需4个位平面,对相同行、列交叉点的4位一起读/写,这4位具体同样的地址
(3) 各片同时按行刷新,需要刷新2018次。MUX是多路选择器,刷新则把刷新计数器内的值作为行地址;读写则把行地址缓冲器内的值作为行地址
刷新计数器的位数也是11位,刷新计数值不需要送列译码器。
 
往往通过存储器芯片扩展技术,把多个芯片做在一个内存条(是把若干DRAM芯片焊装在一小条印制电路板上制成)上,然后由多个内存条以及主板或扩充板上的RAM芯片和ROM芯片组成主存空间。每次访存操作总在其中一个内存条内进行。
图为存控、存储器总线内存条和DRAM芯片之间的连接:
由若干DRAM芯片构成一个存储器时,需要在字方向和位方向进行扩展。
位扩展:用若干片位数较少的存储器芯片构成给定字成的存储器,如8片4K×1位芯片构成4K×8位存储器,在位方向扩展8位
字扩展:容量扩充,位数不变,如16K×8位芯片构成64K×8位存储器,在字方向扩展4位
内存条内有8片DRAM芯片,每一片4096×4096×8Mb。每一片芯片又有8个位平面。芯片的地址引脚共12根。
每一片芯片的行缓冲是4096×8位。所有行缓冲一共4096×8B,它们的地址都是连续的。主存复制到cache往往是从行缓存里复制。
地址A(存控送到内存条的地址)共27位,由12位行地址、12位列地址、3位选片号组成。
如果地址高3位是选片号,那么芯片内地址是连续的,这样无法同时读写多个芯片,读得慢;
现在的内存条都是交叉编址方式(主存地址低位选片,这样同一行不同列地址不连续,间隔=芯片数),所有芯片同时读和传送。选片号其实用不着,因为每次读最少一个block。
 
以Intel Core i7为例:
没有北桥芯片了,存控直接做在CPU里,直接通过存储器总线和内存条相连。
目前内存常用的是基于 SDRAM(synchronous DRAM)芯片技术的内存条,包括DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM等。SDRAM是一种与当年Intel推出的芯片组中北桥芯片的前端总线同步运行的DRAM芯片,因此称同步DRAM。
DDR3芯片内部I/O缓冲采用8位预取技术。假设芯片内部核心频率为133.25MHZ,则存储器总线每秒传送数据次数为133.25×8=1066MT/s,每次传8B,其带宽约为8.5GB/s。三通道通过三条存储器总线并行传输,同时传192位。
存储器总线上时钟信号CLK的上升沿和下降沿进行两次传输,因此外部总线时钟频率=总线上每秒传送数据次数/2=533MHZ,是芯片内部工作频率的四倍。
DDR2采用4位预取方式、DDR则采用2位预取方式。其它计算方法相同。
如图是标配的六插槽。只要将同色的三个内存插槽插上内存条(相邻的两个插槽是串行的),系统便会自动识别进入三通道模式。
存控负责把地址分解成Channel、DIMM、Rank、Chip、(Bank)、Row、Coloum。传送用brust方式一次传送连续地址数据,通过DQM(数据掩码信号)选择Burst传输中的哪个数据。例如brust长度是4,传输4个64bit,DQM选择传输哪几个64bit。
每个channel都需要配有一组存控。
每个channel中能够有很多组DIMM(Dual In-line Memory Module)。
rank指的是连接到同一个chip-Select上所有chip,内存控制器能够对同一个rank的所有chips同时进行读写操作,而在同一个rank的chip也分享同样的控制信号。
图中每个chip由于16个bank组成,每个bank是一个位平面。

转载于:https://www.cnblogs.com/yangyuliufeng/p/9203573.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值