计算机组成与体系结构(原书第4版)》 —2 特别关注

网友投稿 910 2022-05-28

特别关注

数据记录和传输的编码ASCII、EBCDIC和Unicode在计算机存储器中已被明确表示。(第3章介绍如何使用二进制数字设备完成此操作。)数字开关(如在存储器中使用的数字开关)的状态是“关”或者“开”。然而,当数据被写入某种记录介质(如磁带或磁盘)或长距离传输时,二进制信号可能变得模糊,特别是当涉及一长串的1和0时。这种模糊部分归因于发送方和接收方之间的时间漂移。磁介质如磁带和磁盘,也可能因为磁性材料具有的电气性能而失去同步。数字信号的“高”和“低”状态之间的信号转换有助于在数据记录和通信设备中保持同步。为此,ASCII、EBCDIC和Unicode在传输或记录之前被转换成其他编码。这个转换是由数据记录和传输设备中的控制电子设备操作的。用户和主机都不知道这种转换已经发生。

电信设备通过在传输介质(例如,铜线)中使用“高”和“低”脉冲来发送和接收字节。磁性存储设备使用名为磁通反转的磁极变化来记录数据。某些编码方法更适合数据通信而不是数据记录。新的编码不断被发明,以适应不断变化的记录方法和改进的传输和记录介质。我们将研究一些较流行的记录和传输编码,以显示如何克服这一领域的一些挑战。为了简洁起见,我们将使用术语数据编码来表示将简单字符代码(如ASCII)转换成更适合存储或传输的其他代码的过程。编码数据表示被编码的字符代码。

2A.1 非归零码

最简单的数据编码方法是非归零(NRZ)码。我们使用这种编码意味着当我们说“高”和“低”时分别代表1和0:通常1为高电压,0为低电压。通常,高电压为+3V或+5V;低电压为-3V或-5V。(相反的情况在逻辑上是等效的。)

例如,具有偶校验的英文单词OK的ASCII编码是11001111 01001011。在NRZ码中,这种模式以信号形式和磁通形式在图2A-1中显示。每位占据传输介质中一个任意时间片,或磁盘上一个任意空间点。这些片和点称为位元。

图2A-1 OK的NRZ编码

正如图2A-1所示,在ASCII字符O中有连续的1。如果传送单词OK的更长形式OKAY,那么我们会有一长串0,以及一长串1的字符串:11001111 01001011 01000001 01011001。除非接收方与发送方精确同步,否则无法知道每个位元信号确切的持续时间。接收方的慢定时或异相定时可能导致单词OKAY的位序列被接收为:10011 0100101 010001 0101001。这个位序列转换回ASCII码是(),这与发送的内容不相同。(用于表示一个ASCII的文本结束字符,十进制表示为26)。

这个例子的小实验表明,在NRZ代码中只要丢了一位,整个消息就可能成为乱码。

2A.2 不归零反转码

不归零反转(NRZI)方法解决了同步丢失的部分问题。NRZI中的每个二进制1都有从高到低或低到高的转换,二进制0没有转换。对于单词OK的NRZI编码(具有偶校验)如图2A-2所示。

虽然NRZI消除了二进制1丢失的问题,但我们仍然面临着长串0的问题,这会导致接收方或读设备偏离相位,这种方法有可能丢掉二进制位。

解决这个问题的明显方法是向传输波形注入足够的转换,以保持发送方和接收方的同步,同时保持消息的信息内容。这是今天在数据存储和传输中使用的所有编码方法背后的基本思想。

《计算机组成与体系结构(原书第4版)》 —2 特别关注

图2A-2 单词OK的NRZI编码

2A.3 调相(曼彻斯***)

通常称为调相(PM)或曼彻斯***的编码方法正是解决同步问题的方法。PM中每个位都有一次转换,无论是1还是0。在PM中,每个二进制1用一个“向上”的转换表示,二进制0用一个“向下”的转换表示。必要时,在位元边界上提供额外的转换。OK这个词的PM编码如图2A-3所示。

图2A-3 单词OK的调相(曼彻斯特编码)

调相通常用于数据传输应用,如局域网。然而,它不适合用在数据存储中。如果在磁带和磁盘中使用PM,则调相的位密度将是NRZ的两倍。(每半个位元有一次磁通变换,如图2A-3b所示。)然而,我们刚刚看到使用NRZ可能导致有无法接受的高错误率。因此,我们可以定义一种“好的”编码方案,即在“过度”存储要求与“过度”错误率之间达到平衡的最经济的方法。为了寻找这个平衡,已经创建了许多代码。

2A.4 调频

当用于数字应用时,调频(FM)与调相相似,其中每个位元至少有一次转换。这些同步转换发生在每个位元的开头。为了对二进制1进行编码,在位元的中间应有附加的转换。单词OK的FM编码如图2A-4所示。

从图2A-4中可以看出,对于其存储要求,FM只比PM稍好一点。然而,有一种对FM本身改进的编码方法称为改进调频(MFM),其中位元边界的转换只在相邻0之间才有。那么,在MFM中每一对位元至少有一次转换,而不是像在PM或FM中每个位元至少有一次转换。

图2A-4 单词OK的调频编码

MFM比PM的转换次数少,比NRZ的转换次数多。MFM是一种在经济性和错误控制方面高效的编码。多年来,MFM实际上是硬盘存储的唯一编码方法。单词OK的MFM编码如图2A-5所示。

图2A-5 单词OK的改进调频编码

2A.5 游程长度受限码

游程长度受限(RLL)是一种编码方式,在这种编码方法中诸如ASCII或EBCDIC之类的块字符码字转换为在限制代码中出现连续零数量的码字。一个RLL(d,k)编码允许最小d个和最大k个连续0出现在任何一对连续的1之间。

显然,RLL码字必须包含比原始字符代码更多的位。然而,因为RLL是使用磁盘上的NRZI进行编码的,所以RLL编码的数据实际上占用较少的磁介质空间,因为它涉及更少的磁通转换。使用RLL码字的目的是防止硬盘出现丢失同步的情况,在使用缺少变化的二进制NRZI码时会出现这种情况。

虽然有许多变种,但RLL(2,7)是磁盘系统使用的主要编码。在技术上它是8位ASCII或EBCDIC字符的16位映射。然而,在磁通逆转方面,它几乎比MFM有效50%。(证明这个结果留给读者作为一个练习。)

理论上讲,RLL是一种名为赫夫曼编码(在第7章中讨论)的数据压缩形式,赫夫曼编码使用最短的码字位模式对最合适的信息位模式进行编码。(在这儿,我们在谈论最少的磁通逆转。)这个理论基于这样一个假设:在任何位元中存在或不存在1是一个概率相等的事件。从这个假设我们可以推断模式10在任何一对相邻位元内发生的概率是0.25。\[P(bi=1)=1/2;P(bj=0)=1/2;P(bibj=10)=1/2×1/2=1/4\]。类似地,位模式011的发生概率为0.125。图2A-6显示了在RLL(2,7)中使用位模式的概率树。表2A-1给出了RLL(2,7)使用的位模式。

正如表2A-1中所示,不可能有超过7个连续的0,至少两个0将出现在任何可能的位组合中。

图2A-7将单词OK的MFM编码与其RLL(2,7)NRZI编码进行了比较。MFM有12次磁通转换,而RLL有8次转换。在磁盘设计中,如果限制因素是每平方毫米的磁通转换次数,则在相同的磁性区域中单词OK使用RLL比使用MFM可以多压缩50%以上。因此,RLL几乎全部用于高容量磁盘驱动器。

图2A-6 RLL(2,7)编码的概率树

表2A-1 RLL(2,7)编码字符位模式RLL(2, 7)编码100100111000000000100010100100011001000001000100100001100001000

图2A-7 单词OK的MFM编码(上)和RLL(2,7)编码(下)

2A.6 部分响应最大似然编码

在当今超高容量的磁盘和磁带介质上,RLL本身不是足够可靠的编码。随着数据密度的增加,编码位必须写得更靠近一些。这意味着将有较少的磁性材料颗粒参与每位的编码,这会导致磁信号的强度降低。随着信号强度的降低,相邻的磁通反转开始互相干扰。这种名为叠加的现象是有特点的,如图2A-8所示。它显示了一个漂亮、整洁、易于检测的磁正弦波,看起来像一串煮得过熟得意大利面条。

图2A-8 随着a)、b)和c)中位密度的增大,磁通变化越来越紧密

尽管它有不好看的外观,但叠加的波形可以很好地被定义和理解。然而,与传统的正弦波不同,它们的特性不能被简单的峰值检测器捕获,它对每个位元执行一次测量。相反,它们在位元波形中可以多次采样,对检测器电路给出一种“部分响应”模式。然后,检测器电路(维特比检测器)将部分响应模式与相对较小的一组可能的响应模式相匹配,并将最接近的匹配(“最大似然”正确模式)传递给数字译码器。因此,这种编码方案称为部分响应最大似然(PRML)。(在阅读第3章之后,您将了解维特比检测器如何决定哪种模式是最有可能的。)

PRML是一系列编码方法的通用名称,不同方法之间是通过每个位元采样的数目来区分的。更频繁的采样允许更大的数据密度。随着磁头技术的改进,自2000年以来,PRML一直是磁盘和磁带密度增加的根本推动因素,这项技术确实有可能尚未得到充分的利用。

2A.7 总结

在磁盘和磁带上如何存储字节的理解将有助于了解许多与数据存储相关的概念和问题。熟悉错误控制方法将有助于研究数据存储和数据通信。有关磁存储数据编码的最佳信息可以在电气工程书籍中找到。它们包含一系列关于物理介质行为的引人入胜的信息,以及这种行为如何被各种编码方法所使用。在第7章中将学到更多的有关数据存储的内容。第12章介绍与数据通信有关的主题。

练习

1.为什么避免使用非归零码作为数据写入磁盘的方法?

2.为什么曼彻斯特编码不是将数据写入磁盘的好选择?

3.解释游程长度受限码的工作原理。

4.使用以下编码写出字符4的7位ASCII码:

a)非归零码

b)不归零反转码

c)曼彻斯***

d)调频

e)改进调频

f)游程长度受限

(假设1为“高”,0为“低”。)

硬件开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:你知道数据库索引的工作原理吗?
下一篇:RocketMQ的集群模式
相关文章