第 1 章 数据存储
章节总结
- 计算机如何实现存储数据,主存储器、海量存储器的原理;
- 文本、图像、视频、声音的存储;
- 整数、分数的存储和计算;
计算机如何实现存储数据,主存储器、海量存储器的原理
1.1 存储二进制位的实现方法--触发器
在计算机中数据是以二机制 0 1 存储的,我们可以通过门电路来实现三种基本的布尔元算(与、或、异或)以及非门,实现方式是通过电子元器件(三极管、二极管)的搭配。有了“与门”、“或门”、“非门”、“异或门”,我们可以利用它们的特性构造如下的一个电路:
这种电路两个输入值都是0,我们可以通过临时给第一个输入置1,使输出永远为1,临时给第二个输入置1,使输出永远为0,就达到了一种通过电路存储数据的效果,这种电路我们成为触发器,触发器是计算机存储器的基本单元,触发器的实现方式不止上面一种电路。
1.2 主存储器、海量存储器
利用超大规模集成技术,我们就可以制造数百万个触发器组成的存储器,这种存储器被称为计算机的主存储器(main memmory)。主存储器由 存储单元(cell) 组成,每个单元存储八位(一个字节),每个cell 都有自己的编号,可以通过编号访问某个 cell ,所以主存储器具备了用任何顺序访问 cell 的能力,也被称为随机存储器 (random access memory, RAM)。
为了获得响应时间更短的主存储器,现代 RAM 都是将位存储为微小的快速消散的电荷,这种设备需要附加电路(刷新电路)在短时间内反复补充电荷很多次。因为这种易失性,这种存储器被称为动态存储器(DRAM)
由于 DRAM 的易失性和存储容量的限制,所以大多计算机都配备 海量存储器(mass storage)的附加存储设备。海量存储器主要有磁存储系统、光存储系统、闪存。
磁技术实现存储的硬件我们一般称为磁盘,光技术实现存储的硬件我们一般称为光盘,这两种技术实现存储的原理都是依靠机械运动,具体实现方式书中有详细介绍。
闪存技术实现存储数据的原理请参考书或网络资源。闪存技术构建的存储器,我们一般称为闪存驱动器 ( flash drive ),也称为固态驱动器(solid-state drive, SSD)
文本、图像、视频、声音的存储
文本类型的数据,我们采用字符编码的方式存储,也就是文本中每个不同的字符,我们都采用唯一的位模式(0和1组成的串)表示,目前使用比较广泛的是 ASCII 码、UTF-8 或 UTF-16。
图像的表示方法有多种,一种是将图像解释为一组像素构成的点,然后对像素进行编码,这种称为位图。位图有多种编码方式。另一种表示图像的方式是,将图像描述称几何机构(如直线和曲线)的集合,这些几何结构可以用解析几何技术来编码。
视频一般采用由一个个图像拼接而成,通过快速播放这些图像,就有了视频的效果。
声音的存储最常用的方法是,按照规定的时间间隔对声波的振幅采样,并记录所得到的值序列,然后对这些记录进行编码。此时采样的间隔时间直接影响音质。
整数、分数的存储和计算
计算机中存储整数的两种编码方法有二进制补码记数法和余码记数法,最常用的还是二进制补码记数法。补码记数法中,第一位表示符号位,0为正数,1为负数。正数从0000一直到0111,而负数从1111一直到 1000(其中,1111是-1,往下依次减1,一直到1000)。补码表示法中,减法是把另一个数取反相加来计算。此时,补码表示法可以表示的整数就受位模式的数量限制了,在计算时会出现溢出现象,一般计算机采用32位模式来存储整数,也就是4个字节。
分数也就是小数一般采用浮点记数法表示。浮点记数法在表示的时候由于截断误差导致有些小数表示不精确,具体内容请查看原书。现在计算机一班采用32位模式的单精度浮点记数法(最多有7位十进制有效数字),和64位的双精度浮点记数法(最多有15位十进制有效数字)。