计算机组成原理(四)

本文详细介绍了内存的基本概念,包括随机存储器(RAM)的工作原理,特别是DRAM和SRAM的区别。DRAM是PC常用的内存类型,依赖电容存储数据,需要定期刷新;而SRAM速度更快,但成本更高。内存的地址线数量决定了系统最大寻址空间,字长则影响CPU处理数据的宽度。此外,还解释了CPU如何通过行缓冲区和列地址锁存来访问DRAM中的数据。

此片主要介绍内存原理

 一、内存

 内存主要是指随机存储器(RAM,Random Access Memory)。其存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

 二、内存分类

PC上常说的内存使用的是DRAM技术,目前常见的内存有:

SDRAM

SDRAM(Syncfronous Dynamic Random-Acess Memory,同步动态随机存取内存),SDRAM将CPU与RAM通过一个相同的时钟锁在一起,使CPU和RAM能够共享一个时钟周期,以相同的速度同步工作,每一个时钟脉冲的上升沿便开始传递数据,其工作主频在66~150MHz之间。

DDRAM

DDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器,人们习惯称为DDR),DDRRAM是SDRAM的更新换代产品,他允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能加倍提高SDRAM的速度,随着技术的更新主要有DDR.DDR2,DDR3,DDR4等。

 在嵌入式领域,我们常见的DRAM有SDRAM和DDRRAM。超过128MB的大内存一般都是DDRRAM,在做嵌入式产品设计时,是否能采用DDRRAM 由ARM处理器是否支持这种接口决定。

 三、DRAM

.DRAM内部是由电容来存储数据的,电容里如果有电表示存储1,如果没有电就表示存储0;

·因为电容会漏电,所以DRAM在工作的时候需要刷新电路来不断刷新电容;

 四、DRAM与SRAM

DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管加一个电容。但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。

SRAM也由晶体管组成。接通代表1,断开表示0,并且状态会保持到接收了一个改变信号为止。这些晶体管不需要刷新,但停机或断电时,它们同DRAM一样,会丢掉信息。SRAM的速度非常快,通常能以2Ons或更快的速度工作。一个DRAM存储单元仅需一个晶体管和一个小电容,而每个SRAM单元需要四到六个晶体管和其他零件。所以,除了价格较贵外,SRAM芯片在外形上也较大,与DRAM相比要占用更多的空间。由于外形和电气上的差别,SRAM和DRAM是不能互换的。由于SRAM的速度很快和静态特性,它一般用作置于cpu与主存间的高速缓存

 五、内存位存储

 DRAM内部实现中,一个基本存储单元(Cell)主要由一个晶体管(MOS管)和一个电容(Capacitor)组成;

当MOS管中不导通没有电流经过时,电容没有电荷表示存储0;而当MOS管道通时,电容有电荷表示存储1;
内存存储单元是以行、列形式组织存放的,这样当要访问某一个存储单元,需要给出这个存储单元的行(row)、列(column)地址;

六、地址线与编址

 如上图所示:
假设内存只有2个字节的存储空间,如果要使用二进制来进行编址的话,那么我们只需要1个位就够了(地址为O或1),这时候也只需要一根地址线就可以实现内存寻址。如上图所示,假设CPU在地址线AO上给高电平表示1,给低电平表示0,内存里的地址译码器如果解析出地址是0/1,就把地址为0/1的数据通过数据总线发送给CPU了(这个过程稍后再讲);

·假设内存有4个字节的存储空间的话,使用二进制来进行编码则需要2个位(地址分别为00、01、10、11),这时候CPU跟内存之间通信也就需要2根数据线(A1,A0)了;

.以此类推:
·如果存储单元有8个字节,
则地址需要3位,也就需要3根地址线;
·如果存储单元有16个字节,
则地址需要4位,也就需要4根地址线;
·如果存储单元有4GB (2N32),则地址需要32位,也就是需要32根地址线了。


换句话来讲,地址线的位数(根数)决定了CPU的地址编码能力,这也就决定了系统所能够访问的最大存储空间大小。所以32位的系统,最大能支持的内存为4GB,这样即使你在电脑上安装了16GB的内存,对于系统而言也只能使用其中的4GB。

七、CPU访问内存

上图是16*8bit DRAM芯片一个存储单元的结构图,一个单元又包含多个Cl。上图就是一个有16个C.l,,每个单元8位的存储模块。每一个Cel我们都可以以矩阵的形式访问(比如Cell[2.2])),这样每个Cell都能有唯一的地址,这也是内存地址的基础
·每个Cel的信息通过地址线(传输地址)和数据线(传输数据)寻址和传输数据。如上图有2根地址线和8根数据线连接到存储控制器,其中8根数据线意味着一次传输可以传输8bit(即8个cell的)数据,可是地址线只有2位,编码个数为22=4个地址,怎么访问16个Cell呢?
·看上图我们发现在DRAM芯片里有一个行缓冲区,实际上要获取一个cell的数据,是传送了2次两次地址:第一次发送RAS(Row Access Strobe,行地址锁存),这样将一行的数据放入行缓冲区;第二次发送CAS(Column Acess Strobe,列地址锁存),从行缓冲区中取得相应列对应的数据并通过数据线传出;

 八、字长和总线

 什么是字长?
计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就是在同一时间内处理字长为32位的二进制数据。一般来说计算机的数据线的位数和字长是相同的,这样从内存获取数据后,只需要一次就能把数据全部传送给CPU。
什么是总线?
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。在上面的例子中,我们了解到数据总线是用来传输数据,地址总线用来传输地址,那么控制总线呢?其实控制总线就是用来传送的是各种控制信号,这些控制信号包括时序信号、状态信号和命令信号(如读写信号、忙信号、中断信号)等。
什么是地址总线?
上面我们已经介绍过地址总线的功能,地址总线的数量决定了它最大的寻址范围。就目前来说一般地址总线和字长相同,比如32位CPU拥有32位数据线和32位地址线,最大寻址范围是4G(Ox000000~OxFFFFFFEF)。当然也有例外,Intel的8086有16根数据线和20根地址线,既能处理16位数据,也能处理8位数据,可寻址的内存空间为1MB。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值