存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。
存储器是用来存储程序和数据的部件,有了存储器,计算机才有记忆功能,才能保证正常工作。按用途存储器可分为主存储器(内存)和辅助存储器(外存)。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据就会丢失
1、存储器的构成
构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。一个存储器包含许多存储单元,每个存储单元可存放一个字节(按字节编址)。每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。一个存储器中所有存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储容量为1MB。
2、存储器的分类
(1)按存储介质分
半导体存储器:用半导体器件组成的存储器。
磁表面存储器:用磁性材料做成的存储器。
(2)按存储方式分
随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。
顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。
(3)按存储器的读写功能分
只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。
随机读写存储器(RAM):既能读出又能写入的半导体存储器。
(4)按信息的可保存性分
非永久记忆的存储器:断电后信息即消失的存储器。
永久记忆性存储器:断电后仍能保存信息的存储器。
(5)按存储器用途分
根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。
为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
名称简称用途特点
l 高速缓冲存储器(Cache)高速存取指令和数据 存取速度快,但存储容量小;
l 主存储器(内存)存放计算机运行期间的大量程序和数据 存取速度较快,存储容量不大;
l 外存储器(外存)存放系统程序和大型数据文件及数据库 存储容量大,位成本低。
3、存储器的层次结构
按照与CPU的接近程度,存储器分为内存储器与外存储器,简称内存与外存。内存储器又常称为主存储器(简称主存),属于主机的组成部分;外存储器又常称为辅助存储器(简称辅存),属于外部设备。CPU不能像访问内存那样,直接访问外存,外存要与CPU或I/O设备进行数据传输,必须通过内存进行。在80386以上的高档微机中,还配置了高速缓冲存储器(chache),这时内存包括主存与高速缓存两部分。对于低档微机,主存即为内存。
把存储器分为几个层次主要基于下述原因:
(1)合理解决速度与成本的矛盾,以得到较高的性能价格比。 半导体存储器速度快,但价格高,容量不宜做得很大,因此仅用作与CPU频繁交流信息的内存储器。磁盘存储器价格较便宜,可以把容量做得很大,但存取速度较慢,因此用作存取次数较少,且需存放大量程序、原始数据(许多程序和数据是暂时不参加运算的)和运行结果的外存储器。计算机在执行某项任务时,仅将与此有关的程序和原始数据从磁盘上调入容量较小的内存,通过CPU与内存进行高速的数据处理,然后将最终结果通过内存再写入磁盘。这样的配置价格适中,综合存取速度则较快。
为解决高速的CPU与速度相对较慢的主存的矛盾,还可使用高速缓存。它采用速度很快、价格更高的半导体静态存储器,甚至与微处理器做在一起,存放当前使用最频繁的指令和数据。当CPU从内存中读取指令与数据时,将同时访问高速缓存与主存。如果所需内容在高速缓存中,就能立即获取;如没有,再从主存中读取。高速缓存中的内容是根据实际情况及时更换的。这样,通过增加少量成本即可获得很高的速度。
(2)使用磁盘作为外存,不仅价格便宜,可以把存储容量做得很大,而且在断电时它所存放的信息也不丢失,可以长久保存,且复制、携带都很方便。
下面的这条没看懂:
4、存储器管理
服务器在存储器环境按这样的方法分配存储器:在某个环境分配的存储器可以被环境析构器释放而不会影响其他环境中分配的存储器.所有存储器分配(通过 palloc 等)都被当作在当前环境的区域中分配存储器.如果你试图释放(或再分配)不在当前环境的存储器,你将得到不可预料的结果.
创建存储器环境和切换存储器环境是 SPI 管理器中存储器管理器的任务.
SPI 过程处理两种存储器环境:上层执行器存储器环境和过程存储器环境(如果已联接).
在一个过程与 SPI 管理器联接之前,当前存储器环境是上层执行器环境,所以所有由过程自身通过 palloc/repalloc 或通过 SPI 应用函数在联接到 SPI 管理器之前分配的存储器都在这个环境里.
在进行 SPI_connect 调用之后,当前环境是过程自身所有的.通过 palloc/repalloc 或通过SPI 应用函数分配的存储器(除了 SPI_copytuple,SPI_modifytuple,SPI_palloc 和SPI_repalloc 以外)都在这个环境中分配.
当进程与 SPI 管理器断开(通过调用 SPI_finish)后,当前环境恢复为上层执行器环境并且所有在过程存储器环境分配的存储器都被释放,并且不可继续使用!
如果你想返回一些东西给上层执行器,那么你必须为此在上层环境分配一片存储器!
SPI 不能自动释放在上层执行器环境里分配的存储器!
SPI 在查询完成后自动释放查询执行期间的存储器分配!
转自:http://jxw0101.blog.163.com/blog/static/357031402009828101725388/
下面的这一个写的也很好:
转:http://blog.csdn.net/hyf_shenrenbushen/article/details/52534831
主存储器:
转自http://share.onlinesjtu.com/mod/tab/view.php?id=195
一、主存储器的技术指标
主存储器是CPU能直接访问的存储器,由随机读写存储器RAM和只读存储器ROM组成,能快速地进行读或写操作。衡量一个主存储器性能的技术指标主要有存储容量、存取时间、存储周期和存储器带宽。
1.存储容量
在一个存储器中可以容纳的存储单元的总数称为存储容量(Memory Capacity)。
存储单元可分为字存储单元和字节存储单元。所谓字存储单元,是指存放一个机器字的存储单元,相应的单元地址称为字地址;而字节存储单元,是指存放1个字节(8位二进制数)的存储单元,相应的地址称为字节地址。如果一台计算机中可编址的最小单位是字存储单元,则该计算机称为按字编址的计算机;如果一台计算机中可编址的最小单位是字节存储单元,则该计算机称为按字节编址的计算机。一个机器字可以包含数个字节,所以一个字存储单元也可包含数个字节存储单元。
为了描述方便和统一,目前大多数计算机采用字节为单位来表征存储容量。在按字节寻址的计算机中,存储容量的最大字节数可由地址码的位数来确定。例如,一台计算机的地址码为n位,则可产生2n个不同的地址码,如果地址码被全部利用,则其最大容量为2n个字节。一台计算机设计定型以后,其地址总线、地址译码范围也已确定,因此其最大存储容量是确定的,而实际配置存储容量时,只能在这个范围内进行选择,通常情况下主存储器的实际存储容量远远小于理论上的最大容量。一般而言,存储器的容量越大,所能存放的程序和数据就越多,计算机的解题能力就越强。
存储容量的单位通常用KB、MB、GB来表示,K代表210,M代表220,G代表230。
1KB=l024B,1MB=1024KB,1GB=l024MB
2.存取时间
存取时间即存储器访问时间(Memory Access Time),是指启动一次存储器操作到完成该操作所需的时间。
具体地说,读出时为取数时间,写入时为存数时间。取数时间就是指存储器从接受读命令到信息被读出并稳定在存储器数据寄存器中所需的时间;存数时间就是指存储器从接受写命令到把数据从存储器数据寄存器的输出端传送到存储单元所需的时间。
3.存储周期
存储周期又称为访问周期,是指连续启动两次独立的存储器操作所需间隔的最小时间,它是衡量主存储器工作性能的重要指标。存储周期通常略大于存取时间。
4.存储器带宽
存储器带宽是指单位时间里存储器所存取的信息量,是衡量数据传输速率的重要指标,通常以位/秒(bps,bit per second)或字节/秒(Byte/s)为单位。
例如,总线宽度为32位,存储周期为250ns,则
存储器带宽 = 32b/250ns = 128Mb/s = 128Mbps
存取时间、存储周期、存储器带宽都反映了主存的速度指标。
二、主存储器的基本组成
主存储器由存储体、寻址系统、存储器数据寄存器、读写系统及控制线路等组成,如图3-3所示。
1.存储体
存储体是一个由存储单元按照一定规则排列起来的存储阵列。存储体是存储器的核心,是存储信息的实体。
2.寻址系统
寻址系统就是读出和写入信息的地址选择机构,包括存储器地址寄存器(MAR)和地址译码器。
地址译码器接收来自地址寄存器的n位地址,经译码后产生2n 个地址选择信号,并从2n个单元中选出一个单元。通常用X选择线(行线)和Y选择线(列线)的交叉来选择所需要的单元。
存储器地址寄存器MAR具有地址缓冲功能,可使CPU和主存的速度都得到充分发挥和提高。MAR从功能上看属于主存,但在一些微型机中常被放在CPU内,并可兼作别用,在速度要求较高的计算机中,CPU与主存中都设有地址寄存器。
3.存储器数据寄存器(MDR)
一般把存储器数据寄存器MDR作为存储器接收输入数据和发出输出数据用的数据缓冲器件。在数据传送中,它可以起到数据缓冲作用,使CPU与主存速度相匹配,从而使两者的速度都能得到发挥和提高。
4.读写系统
读写系统包括写入信息和读出信息所需线路。写入信息所需线路包括写入线路、写驱动器等;读出信息所需线路包括读出线路、读驱动器和读出放大器等。
5.控制线路
无论是读或写操作,都需要由一系列明确规定的连续操作步骤来完成,这就需要主存时序线路、时钟脉冲线路、读逻辑控制线路、写或重写逻辑控制线路以及动态存储器的定时刷新线路等,这些线路总称为存储器控制线路。存储器控制线路控制逻辑电路接收片选信号CS(Chip Select)及来自CPU的读/写控制信号,形成芯片内部控制信号,并控制数据的读出和写入。
主存储器的工作原理:由CPU发来的地址送到存储器地址寄存器中,在读写控制线路的作用下,经过地址译码后,选中存储体中某一存储单元,对该存储单元进行读/写操作,读出或写入的信息都暂存于存储器数据寄存器中。
SRAM存储器:转 http://blog.csdn.net/redredredlu/article/details/45191187
目前广泛采用的半导体存储器是MOS半导体存储器。根据存储信息的原理不同,分为静态MOS存储器(SRAM)和动态MOS存储器(DRAM)。
所有的SRAM是用一个锁存器(触发器)作为存储位元。
SRAM包含三组信号:
2、基本RMOS存储器逻辑结构
由存储体(阵列)、地址译码器、IO电路和控制电路组成
地址译码器:将用二进制代码表示的地址转换成输出端的高电位,用来驱动相应的读写电路,以便选择所要访问的存储单元。
地址译码有两种方式:
单译码(单方向译码):只有一个译码器,译码输出选择一个存储字。
N位地址,译码输出2N个状态,对应2N个单元(次方)
15(译码器的输入端的线)位地址,需2^15=32K条选通线(地址译码器的输出端的线)
双译码:采用X、Y两个方向译码器进行译码。
采用双向译码方式可以减少译码输出选择线的条数。
同样32K个单元,采用256×128阵列形式时,只需要256+128=384条选择线(地址译码器的输出端的线)
存储体:存储单元的集合
存储阵列由256行*128列*8位的三维结构。行和列的交叉位置为一个存储单元。通常用X选择线(行线)和Y选择线(列线)的交叉来选择所需要的单元。
I/O电路: 处于数据总线和被选用的单元之间, 控制被选中的单元读出或写入,放大信息。
片选: 在地址选择时,首先要选片,只有当片选信号有效时,此片所连的地址线才有效。
3、读/写周期波形图
读/写周期波形图精确的反映了SRAM工作的时间关系。也反映了数据线、地址线、和控制线在读/写存储器过程中的相互关系。
读周期时间:从地址有效开始到从数据线读出数据的时间。
写周期时间:从地址有效到数据写入存储器的时间。
存取周期:将读周期和写周期取为相同,并称之为存取周期。
eg :某单片机字长16位,它的存储容量64KB,若按字编址,那么它的寻址范围是( )
64KB=64K*8位/16位=32K
eg:某存储器采用4096×1的存储单元矩阵结构,分析其寻址过程 。
地址译码方法分析:
已知: 存储器共有4096个单元,即有4096个地址。
∵ 4096=2^12 ∴ 存储单元地址为12位(需要12位地址线)。
(1)若采用单译码法产生地址译码,则地址译码器输出为4096根线,用以选择4096个存储单元。
这样,利用X译码器输出与Y译码器输出的交叉选择,同样可以确定出4096个存储单元。而两个译码器的输出,总共仅有: 64+64=128根线。显然大大减少了译码器的输出线数!
DRAM存储器:
转:http://blog.csdn.net/redredredlu/article/details/45193997
可惜这会没看懂