存储器结构

来源:百度文库 编辑:神马文学网 时间:2024/04/29 20:54:31
为了存储数据,计算机包含大量的电路(如触发器),每一个电路能够存储单独的一个位。这种位存储器被称为计算机的主存储器(main memory)。
存储器结构
27



计算机主存储器是以称为存储单元(cell)的可管理单位组织起来的,一个典型的存储单元容量是8位。(一个8位的串称为一个字节(byte),因此一个典型的存储单元容量是一个字节。)在像微波炉这样的家用电器中所使用的小型计算机的主存储器,仅仅包含几百个存储单元,但是大型计算机的主存储器可能有上亿个存储单元。
尽管计算机中没有左或右的概念,但是我们通常假设存储单元的位是排成一行的。该行的左端称为高位端(high-order end),右端称为低位端(low-order end)。高位端的最左一位称作高位或最高有效位(most significant bit)。取这个名称是因为:如果把存储单元里的内容解释为数值,那么这一位就是该数的最高有效数字。类似地,低位端的最右一位称为低位或最低有效位(least significant bit)。于是,我们可以按图1-7那样描述字节型存储单元的内容。

字节型存储单元的结构
为了区分计算机主存储器中的各存储单元,每一个存储单元都被赋予了一个唯一的“名字”,称为地址(address)。这类似于通过地址确定一个城市的房屋。不过,对于存储器单元,所用地址都是用数字表示的。更精确地说,我们把所有的存储单元都看作是排成一行的,并按照这个顺序从0开始编号。这样的编址系统不仅为我们提供了唯一标识每个存储单元的方法,而且也给存储单元赋予了顺序的概念(见图1-8),这样就有了诸如“下一个单元”、“前一个单元”的说法。

按地址排列的存储单元
将主存储器的存储单元和存储单元的位都进行排序,就产生一个重要结果,即计算机主存储器的所有二进制位本质上被排成了一长行。因而这个长行上的片段就可以存储比单个存储单元要长的位模式。特别是,我们只需要通过两个连续的存储单元就可以存储16位的串。
为了做成一台计算机的主存储器,实际存放二进制位的电路还组合了其他的电路,这些电路使得其他电路可以从存储单元中存入和取出数据。以这种方式,其他电路可以通过电信号请求从存储器中得到指定地址的内容(称为读操作),或者请求把某个位模式存放到指定地址的存储单元里(称为写操作)。
28



由于计算机的主存储器由单个的、可编址的存储单元组成,所以这些存储单元可以根据需要独立存取。为了反映用任何顺序存取存储单元的能力,计算机的主存储器常被称为随机存取器(random access memory,RAM)。主存储器的这种随机存取特性与1.3节中将要讨论的海量存储系统形成鲜明对比,其中长二进制被作为合并块来操纵。
尽管我们已经介绍触发器可以作为一种二进制位的存储方法,但是在现代的大多数计算机中,随机存储器都是用其他可以提供更小型化和更快响应时间的技术制造的,许多技术可以存储快速消散的微小电子。因此,这些设备需要附加的电路,称为刷新电路,可以在1s内反复补充电子很多次。因为它的这种不稳定性,所以通过这种技术构造的计算机存储器常被称为动态存储器(dynamic memory),于是就产生了术语DRAM(读作“DEE-ram”),用来表示动态RAM。或者,有时候关于动态存储器也会用SDRAM(读作“ES-DEE-ram”),用来表示同步动态RAM,采取这种附加的技术可以缩短从存储单元取出信息所需要的时间。
存储器容量的度量
正如在第2章要学到的,如果主存储器中存储单元的总数是2的幂,那么设计是很方便的。因此早期计算机存储器的大小通常以1024(210)个存储单元为度量单位。因为1024接近于数值1000,所以计算界的许多人采用前缀千(kilo)来表示这个单位。也就是说,术语千字节(kilobyte,简写KB)用于表示1024字节。因此有4096个存储单元的计算机被称为有4KB存储器(4096=4×1024)。随着存储器容量的增大,这种度量单位也随之增加,包括如前缀兆(mega),表示1 048 576(220)、前缀吉(giga)表示1 073 741 824(230)。于是,兆字节(megabyte,MB)和吉字节(gigabyte,GB)这样的单位就流行了。
29



遗憾的是,这种前缀用法属于术语的误用,因为这些前缀已经是其他领域用于指称10的幂的单位。例如,在度量距离时,千米(kilometer)指的是1000米(m);在度量无线电频率时,兆赫(megahertz)指的是1 000 000赫兹(Hz)。更为严重的是,已经有些计算机厂商混淆了两组术语,即用KB表示1024字节,而用MB表示1000 KB(1 024 000字节)。不用说,这些差别已经造成了多年来的混乱和误解。
为了阐明这些问题,有人建议是保留千(kilo)、兆(mega)和吉(giga)这些前缀,作为10的幂的单位,并引入新的前缀约千位(kibi,kilobinary的缩写,简写为Ki)、约兆位(mebi,megabinary的缩写,简写为Mi)和约吉位(gibi,gigabinary的缩写,简写为Gi),用来表示相应的2的幂的度量单位。根据这种方法,术语约千字节(kibibyte,简写KiB)就指称1024字节,而千字节(kilobyte,简写KB)则指称1000字节。这些前缀是否能够成为流行术语还有待考验。但就目前而言,前缀千(kilo)、兆(mega)和吉(giga)传统上的误用在计算界的主存储器方面仍然是根深蒂固的,因此我们在涉及数据存储时仍将遵循这个传统。可是,建议中的前缀约千位(kibi)、约兆位(megi)和约吉位(gibi)的确代表了解决这个愈显突出问题的一种尝试,而且今后使用术语千字节(kilobyte)和兆字节(megabyte)时要小心。