尽管很天真,但基本的问题很简单:
每个“位”具有4个状态而不是2个意味着两倍的存储空间?如果不清楚,我的意思是好像每个“存储结构”(而不是仅代表2个值,(以2为基数:0、1))可以代表4个值(以4:0、1、2、3为基数) )。
尽管很天真,但基本的问题很简单:
每个“位”具有4个状态而不是2个意味着两倍的存储空间?如果不清楚,我的意思是好像每个“存储结构”(而不是仅代表2个值,(以2为基数:0、1))可以代表4个值(以4:0、1、2、3为基数) )。
Answers:
您要查找的单词不是“位”,而是“符号”。“符号”是用于描述将硬件信号(例如电压或磁模式)映射为逻辑位的过程的词。如果一个符号可能具有4种状态,则它可以编码2位信息。
当然,在该参数中我们没有说出任何有关符号资源使用的信息。如果要沿着电线发送符号作为电压,则随着增加每个符号的状态数,不同的符号看起来会越来越相似。如果我使用0-5V导线,并且每个符号(1位)具有2个状态,则我的两个状态分别是0V和5V,每个符号之间为5V。如果我使用同一根导线,但每个符号(2位)编码4个状态,则我的状态分别为0V,1.66V,3.33V和5V。每个符号之间为1.66V。现在,噪声更容易破坏我的信号。
有一种与此相关的定律,称为香农定律,该定律将带宽(以位为单位)与由于线路噪声引起的错误率相关。事实证明,可以跨导线填充的位数是有限制的。使用更多的符号会导致更多的错误,需要更多的错误纠正。
我们确实在现实生活中使用了这种技术。数字电视使用QAM-64,具有64种状态(因此每个符号6位)。以太网使用4个电压电平,因此每个符号2位。
编辑:我使用位传输速率而不是存储,因为在传输中看到具有更多状态的符号更为常见,因此我可以使故事更清晰。如果有人希望只关注存储,那么可以看一下“某处某人”中提到的闪存中的多级单元。这种存储器使用完全相同的方法,将3位存储为电容器的16种不同电荷水平。(或者更多!)
一个四分之一存储单元可以存储与两个二进制存储单元一样多的信息:
Quaternary Binary
0 00
1 01
2 10
3 11
因此,如果您具有相同数量的存储单元,但是它们是四分之一,那么您的存储量将是原来的两倍。但是,如果该四单元电池占用一块芯片上两倍的空间,则没有任何好处。
或以另一种方式,如果您有1吉字节的四分之一存储,则它可以存储与2吉字节的普通二进制存储器一样多的信息,因为每个四元组可以用两位表示。
从某种意义上说,整个过程只是学术上的兴趣。您可能已经认为存储芯片可以存储2 ^ 32个状态单元,因为您无法从中获取1位,因此总能得到一个完整的字。而且,如果将来有人提出一种将字存储在4状态物理单元中比2状态单元更有效的方法,则可以使用该方法,但是在存储芯片外部看不到它,它仍然可以处理仅全存储字,例如可以具有2 ^ 32个不同的状态。
在基本理论上,是的。实际上,没有-因为我们无论如何都不会将数据实际存储在硬盘上。Cort Ammon很好地介绍了数据传输中的问题。RAM,缓存和SSD将数据存储为位,但是HDD由于其物理材料的性质以及我们将更多数据打包到其上的努力而有所不同。大多数数据仍存储在HDD上,因此我将重点介绍这些数据。我将不仅仅提供您从大多数来源中都能找到的解释,而且会尽可能地引用这些来源。这些来源必须从古老的互联网中挖掘出来,因为在很大程度上,它是真正被遗忘的知识。
首先,硬盘驱动器的磁盘表面上存储着带有磁场的信息。驱动头通过感应来自磁场变化的磁通量来读取这些信息-比磁场的实际方向和强度更容易测量。但是,如果该字段是连续的50个相同段中的一个,则它实际上不能算出有50个-在读取第一个段时读取了磁通量峰值,然后在一段时间内没有磁通量,因此无法跟踪时间准确到足以确定该字段在50个段中没有变化。
因此,基本(过于简化)的模型是将一点存储为一对磁场。第一个始终是前一个段的切换,第二个总是代表1的翻转或没有代表0的翻转。因此0是FN(翻转-空),而1是FF(翻转)。驱动器的定时足够准确,可以识别一个段中一个磁通峰值和两个磁通峰值之间的差异。这种格式称为频率调制。因此,这给出了清晰的信号,但是这意味着内存的每一位在驱动器上都需要两个空格-这是非常低效的。因此,实际上没有硬盘具有这种最基本的编码形式。它使用了简单的压缩技巧。最简单的是修改频率调制(Modified Frequency Modulation),它会更改模式,以便仅在0后面再加上0时才使用额外的磁性翻转。这使工程师可以将几乎两倍的数据装入同一空间,因此可以在第一个HDD上使用,并且是软盘上的格式。在那之后,开发了一个更高级的系统,称为Run Length Limited,它具有类似的一般思想,我不再赘述,因为它变得更加复杂并且有多种实现。
但是我们今天不使用任何类似的系统。取而代之的是,我们使用称为部分响应,最大似然(PRML)的系统。PRML要求磁头读取一段长度并收集磁性样本,然后将其与一组参考的存储样本进行比较,以确定最匹配的样本。它放弃了通量尖峰的整个概念,而是使用模式匹配(我简化了,但是过度简化是值得的),并且模式对应于一组位。它使用噪声过滤器和其他技术来消除潜在的错误。最好将其视为一个复杂的波形,HDD知道如何将每个波形转换为一组位。从这个意义上讲,数据实际上以模拟格式而不是数字格式存储,
最好的指南是http://www.pcguide.com/ref/hdd/geom/data.htm(几次单击“下一步”按钮以阅读所有内容),还有一些其他资源-主要来自创建了大量没有任何理由的计算机知识存储库的人。http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html上还有一个不错的附加资源(据我所知,这很好,但还不是100%完美)。
TL; DR:硬盘磁盘不以1和0之类的格式存储数据;相反,他们使用复杂的信号处理将信号塞入尽可能小的空间,并在读取时对其进行解码。因此,它们确实是不可知论的。
在某个时候尝试在SSD或RAM上进行base-4存储时,我不会感到惊讶。这完全取决于材料的物理和化学性质。工程师和科学家将尽可能地推动这些材料,并且将寻求能够产生最佳结果的任何途径。
是的,具有更多状态将允许存储的每个“单元”或数据传输线上的每个符号携带更多的信息。
但是没有免费的午餐,我们实际上需要能够区分那些州。事实证明,构建二进制逻辑门很容易,而要区分,处理和重新生成两个以上逻辑级别的门要困难得多。
然后就是衰减信号的问题。在两级系统上,您可以简单地设计阈值,使其与最坏情况下的衰减一起工作;在四态系统上,如果期望显着衰减,则需要使阈值适应系统的特定衰减,而不仅仅是最差的情况。情况衰减。实际上,这意味着您需要在通信系统中添加衰减测量系统。
所有这些都说明在某些情况下确实需要额外的复杂性。现在,许多SSD的每个闪存单元使用两个以上的级别(称为MLC或TLC),现代高速通信协议也几乎总是使用多层编码。
您可能想知道俄罗斯人开发的芯片是三元的,而不是二进制的。这意味着,每一个符号可以有值-1
,0
或1
。因此,每个物理门都可以存储“三个”值,而不是“两个”值。
潜在的未来应用
随着用于计算机的大量生产的二进制组件的出现,三元计算机的重要性已降低。但是,唐纳德·克努斯(Donald Knuth)认为,它们将在未来重新投入使用,以利用三元逻辑的优雅和效率。
您开始怀疑,可能会有更有效的方法来实现基本编号系统。(尽管这种表达能力更有效的能力取决于我们在材料上进行物理制造的能力。)事实证明,常数e
(自然对数的底数(〜2.71828))具有最佳的基数经济性,其次是3,然后是2然后4。
基数经济性是您可以表示多少个数字,而需要使用多少个符号。
例如,数学数字3 3
以10 为底,但以11
2(二进制)为底。基数10可以用比二进制数更少的符号来表示更大的数字,但是基数10的符号表(0 ... 9)比基数2的符号表(0,1)大5倍。将表达能力与符号集的大小进行比较称为“基数节约”(基数是基数,例如,二进制数为2,或“基数2”)。随之而来的自然问题是,就此折衷而言,我想在哪里?我应该采用哪个数字作为基数?我可以优化表达力和符号集大小之间的权衡吗?
如果您查看Wikipedia中基数经济的文章中的图表,则可以比较各个基准的经济。在我们的示例中,基数2的基数经济性为1.0615,而基数10的经济性为1.5977。数字越低越好,因此基数2比基数10更有效。
您的以4为基数的问题的效率为1.0615,它与以2为基数(或二进制)的大小相同,因此,在基数2上采用它只能使您平均获得与每个数字完全相同的存储大小。
如果您想知道,那么有一个理想的数字作为基础,此图表向您表明,它不是整数,而是数学常数e
(〜2.71828),这是最好的,经济性为1.0。这意味着它尽可能高效。对于任何一组数字e
,给定符号表,base平均都会为您提供最佳的表示大小。这是最好的“物有所值”。
因此,尽管您认为您的问题也许很简单,很基础,但实际上却很复杂,这是设计计算机时要考虑的非常有价值的问题。如果您可以设计理想的分立计算机,则使用基数4与二进制(基数2)可以提供相同的交易-相同的成本空间;使用基数3或三进制可提供比二进制更好的处理能力(俄罗斯人确实用晶体管的基数3表示构建了一个物理的,可工作的计算机);但理想情况下,您将使用e为底。我不知道是否有人用e建了一个工作的物理计算机,但是从数学上讲,它将提供比二进制和三进制更好的空间-实际上,是所有实数中最好的。
您相信我可以通过一次匹配就可以对人类知识的总和进行编码吗?
如果我在单个匹配中编码一点,则符号可能看起来像这样:
有了足够的比赛,我什么都可以说。但是,如果我再添加两个符号,在相同的比赛中我可以说两倍。可能看起来像这样:
具有相同匹配项的信息多两倍!好吧,为什么不呢?那么为什么停下来?将每个符号旋转45度,我们再次加倍。30、15等。很快我有了足够的符号,只用一场比赛就可以说任何东西!一旦这样做,我们就会遇到问题。这场比赛怎么说?
您如何确切确定现在是哪个符号?您需要确定多少时间?就是这样。我添加的符号越多,您需要付出更多的努力才能将它们区分开。
每个“位”有4个状态而不是2个意味着两倍的存储空间吗?
如果我们正在谈论每场比赛,那么可以肯定。但是,即使那并没有减慢我们的比赛读取速度,但现在我们要占用更多的厨房柜台空间。总是这样
如果某个位具有4个状态,而不是符号(位)中的2个状态,则是的,您将拥有两倍的内存量。根据使用的技术,这可能占用或不占用两倍的空间。
每天都有一个真实的例子出现在您的眼前:以太网(这不是内存,但是就其传输数据而言,它是类似的),其中包括普通的“快速以太网”,速度为100 MBit 100BASE -TX,您就拥有1GbE以太网。
显然,1GbE所需的频率是100 MBit的10倍(因为100 MBit所需的频率是10 MBit的10倍),这就是为什么您也需要更昂贵的电缆的原因。明显。
糟糕,这根本不是真的。
100 MBit以太网以100 MHz的两个电缆对传输,而GbE以4 MHz的电缆以125 MHz的传输速率。
等等,那么GbE真的只比100 Mbit以太网快2.5倍吗?我只能得到250 MBit / s吗?
不,它还使用5-PAM编码,该编码可以对每对电缆每脉冲编码2.32位,其中2位用作实际信息,其余部分使信号对噪声更具弹性。多亏了这些小数位,1000BASE-T也能够丢弃8B10B编码。
因此,您的导线数量增加了一倍,频率略有提高,但吞吐量却提高了10倍!
现在,如果您认为这真是神奇,请看一下数字有线电视的工作原理,如果仍然不确定,请看一下ADSL,它使用32768-QAM在一个符号中编码15位。
相同的旧铜线,相同的频段,通过的材料多出15倍。
编辑:
我完全忘记了另一个非常明显的现实生活示例(因为它太明显了,因为它太明显了!),您每天眼前都是:USB笔式驱动器。
那些通常使用MLC闪存。那是什么?它是一种存储单元,用于存储四个不同电荷级别之一。这是您可以在硬件级别上访问的最小单元。因此,您可以说您的“位”确实具有4种状态(它们没有,您实际上只获得了2位而不是1位,并且无论如何您只能从设备读取完整的扇区...但是您可以说看一下它那样)。
单元数相同,但内存增加了一倍。更便宜,更小,更不可靠,但是……首先是更便宜。
每位数有4个符号,而不是2个,意味着您可以在一个位数中存储两倍的信息。但是,随着数字位数的增加,您可以存储更多的信息:
基数2中的任何n个数字都可以编码2 ^ n个状态,而基数4中可以编码4 ^ n个状态。
(4^n) / (2^n) = 2^n
这意味着您可以以指数方式(2^n
倍)表示更多的状态,但只能表示两倍(log2(4^n) / log2(2^n) = 2n / n = 2
)以上的存储。请记住storage capacity in bits = log2(number of states)