每个“位”有4个状态而不是2个意味着两倍的存储空间吗?


35

尽管很天真,但基本的问题很简单:

每个“位”具有4个状态而不是2个意味着两倍的存储空间?如果不清楚,我的意思是好像每个“存储结构”(而不是仅代表2个值,(以2为基数:0、1))可以代表4个值(以4:0、1、2、3为基数) )。


4
我不知道这意味着两倍的存储空间,因为存储多个级别需要一定的成本。
Erik Eidt

13
请参阅“ 多级单元”,用于许多闪存。他们现在正在移动到三层单元,或每个物理单元三位数据。
某处某人

52
“位” 定义为具有两个状态,因此具有四个状态的存储单元将为每个定义存储两个位。
JacquesB

24
@JacquesB虽然在技术上是正确的(最好的一种),但这显然不是提问者的意思。
MetaFight

11
如果一个具有4个状态的“位”与两个具有两个状态的“位”一样胖,则存储空间是相同的。
mouviciel

Answers:


105

您要查找的单词不是“位”,而是“符号”。“符号”是用于描述将硬件信号(例如电压或磁模式)映射为逻辑位的过程的词。如果一个符号可能具有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种不同电荷水平。(或者更多!)


1
评论不作进一步讨论;此对话已转移至聊天
maple_shaft

由于以太网,这个答案是完全错误的。参见此处 -普通的100Base-T具有3级的MLT3,而1000Base-T具有5级的PAM5,10GBase-T具有16级的PAM16。没有一个我知道或可以在任何地方找到的具有4个级别的以太网版本。@CortAmmon您在Wikipedia上的哪里发现以太网具有4个电压电平?我非常乐于对其进行深入研究并验证其来源。
vaxquis

21

一个四分之一存储单元可以存储与两个二进制存储单元一样多的信息:

Quaternary Binary
0          00
1          01
2          10
3          11

因此,如果您具有相同数量的存储单元,但是它们是四分之一,那么您的存储量将是原来的两倍。但是,如果该四单元电池占用一块芯片上两倍的空间,则没有任何好处。

或以另一种方式,如果您有1吉字节的四分之一存储,则它可以存储与2吉字节的普通二进制存储器一样多的信息,因为每个四元组可以用两位表示。


从某种意义上说,整个过程只是学术上的兴趣。您可能已经认为存储芯片可以存储2 ^ 32个状态单元,因为您无法从中获取1位,因此总能得到一个完整的字。而且,如果将来有人提出一种将字存储在4状态物理单元中比2状态单元更有效的方法,则可以使用该方法,但是在存储芯片外部看不到它,它仍然可以处理仅全存储字,例如可以具有2 ^ 32个不同的状态。


1
“一个四分之一存储单元可以存储与2个二进制存储单元一样多的信息”,但是2个base-4数字可以存储的值是两个base-2值的四倍。
JimmyJames

1
@JimmyJames四种可能的状态与四倍的存储空间是不一样的。查看Richard Dunn的回答下的对话。
肖恩·伯顿

2
对我来说,明显的后续问题这个答案是,“嗯...... 四细胞吸收两倍芯片上多少空间?”。
Daniel Wagner

5
然后我重新表述:四倍的可能状态与四倍的信息不是同一回事。
肖恩·伯顿

1
@JimmyJames这是一个矛盾。2个四单元格等于4个二进制cel。因此,您说的是4个二进制单元存储的信息是2个二进制单元的4倍,即使它只是2倍的单元。IOW,至少在将信息计算为“位”(或字节或TB)时,您是错的。
海德

9

在基本理论上,是的。实际上,没有-因为我们无论如何都不会将数据实际存储在硬盘上。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存储时,我不会感到惊讶。这完全取决于材料的物理和化学性质。工程师和科学家将尽可能地推动这些材料,并且将寻求能够产生最佳结果的任何途径。


关心讨论存储概念吗?如果我们要基于坐标平面而不是顺序存储符号,在我看来,我们可以根据坐标位置以及相对于其他位的位置存储额外的位。chat.stackexchange.com/rooms/66911/vizs-discussion-2
Viziionary

曼彻斯特编码是为磁带开发的,而相移键控是为无线电开发的。与您所说的想法类似。

对此一无所知,但也不是很惊讶。
Walfrat

SSD上的base-4存储称为MLC。
user253751 '17

6

是的,具有更多状态将允许存储的每个“单元”或数据传输线上的每个符号携带更多的信息。

但是没有免费的午餐,我们实际上需要能够区分那些州。事实证明,构建二进制逻辑门很容易,而要区分,处理和重新生成两个以上逻辑级别的门要困难得多。

然后就是衰减信号的问题。在两级系统上,您可以简单地设计阈值,使其与最坏情况下的衰减一起工作;在四态系统上,如果期望显着衰减,则需要使阈值适应系统的特定衰减,而不仅仅是最差的情况。情况衰减。实际上,这意味着您需要在通信系统中添加衰减测量系统。

所有这些都说明在某些情况下确实需要额外的复杂性。现在,许多SSD的每个闪存单元使用两个以上的级别(称为MLC或TLC),现代高速通信协议也几乎总是使用多层编码。


三元不太难。已经使用它来构建计算机。

1
是的,三进制比四进制更容易,因为您只需要区分“正”,“负”和“偏离”,而不必区分同一符号的多个级别。虽然仍然比二进制难。
彼得·格林

2
关于无线电摩尔斯电码的有趣之处在于信号是否打开。不满足条件不是信息。因此,承载信息的不是开和关的交替,而是开脉冲的长度和间隔。据我所知,没有其他现代表示系统可以这种方式工作。

1
条码?条形和空格分隔数字,宽度确定值。
索普里

@Sopuli好的,因此在那种情况下,条形码的深色部分不会反射光,因此它将是“关闭”或“无信号”状态。我想我的意思是,编码并不总是简单地是两个信号状态,而是可能是信号与没有信号,这看起来很奇怪,除了在实际情况下,例如摩尔斯电码,条形码,语音等。计算机表示通常不会浪费空间在存储“无信号”区域时,它们比物理信号系统更有效。在实际情况下,我们不能随意“快进”内容上的空白,我们必须等待它们。

2

您可能想知道俄罗斯人开发的芯片是三元的,而不是二进制的。这意味着,每一个符号可以有值-101。因此,每个物理门都可以存储“三个”值,而不是“两个”值。

潜在的未来应用

随着用于计算机的大量生产的二进制组件的出现,三元计算机的重要性已降低。但是,唐纳德·克努斯(Donald Knuth)认为,它们将在未来重新投入使用,以利用三元逻辑的优雅和效率。

您开始怀疑,可能会有更有效的方法来实现基本编号系统。(尽管这种表达能力更有效的能力取决于我们在材料上进行物理制造的能力。)事实证明,常数e(自然对数的底数(〜2.71828))具有最佳的基数经济性,其次是3,然后是2然后4。

基数经济性是您可以表示多少个数字,而需要使用多少个符号。

例如,数学数字3 3以10 为底,但以112(二进制)为底。基数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建了一个工作的物理计算机,但是从数学上讲,它将提供比二进制和三进制更好的空间-实际上,是所有实数中最好的。


这似乎甚至没有试图解决所提出的问题,每个“位”具有4个状态而不是2个意味着存储空间增加一倍吗?请参阅“ 如何回答
gna”,即2008年

@gnat我认为基数经济的概念直接解决了每个符号可获取多少数据。它不仅可以回答4的情况,还可以回答任意数字的情况。这是一般的解决方案。
user1936

1
我两次检查了隐藏在“结果”下的Wikipedia链接,但坦率地说,我仍然看不到它与存储空间的关系
gnat

2
@gnat我已经更新了答案。希望在这一点上,您至少看到它如何尝试回答这个问题。
user1936

2

您相信我可以通过一次匹配就可以对人类知识的总和进行编码吗?

如果我在单个匹配中编码一点,则符号可能看起来像这样:

在此处输入图片说明 在此处输入图片说明

有了足够的比赛,我什么都可以说。但是,如果我再添加两个符号,在相同的比赛中我可以说两倍。可能看起来像这样:

在此处输入图片说明 在此处输入图片说明

具有相同匹配项的信息多两倍!好吧,为什么不呢?那么为什么停下来?将每个符号旋转45度,我们再次加倍。30、15等。很快我有了足够的符号,只用一场比赛就可以说任何东西!一旦这样做,我们就会遇到问题。这场比赛怎么说?

在此处输入图片说明

您如何确切确定现在是哪个符号?您需要确定多少时间?就是这样。我添加的符号越多,您需要付出更多的努力才能将它们区分开。

每个“位”有4个状态而不是2个意味着两倍的存储空间吗?

如果我们正在谈论每场比赛,那么可以肯定。但是,即使那并没有减慢我们的比赛读取速度,但现在我们要占用更多的厨房柜台空间。总是这样


从本质上讲,这就是正交AM和相位调制等无线电调制方案的工作方式。如果您想获得真正的乐趣,请研究旋转相位矢量如何在单边带或FM中表示两个同时出现的音调。

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位,并且无论如何您只能从设备读取完整的扇区...但是您可以说看一下它那样)。
单元数相同,但内存增加了一倍。更便宜,更小,更不可靠,但是……首先是更便宜


这是关于充分利用可用带宽。

100BASE-TX每个方向仅使用一对,而1000BASE-T每个方向使用4对(具有回声消除功能)。
user253751 '17

-5

每位数有4个符号,而不是2个,意味着您可以在一个位数中存储两倍的信息。但是,随着数字位数的增加,您可以存储更多的信息:

基数2中的任何n个数字都可以编码2 ^ n个状态,而基数4中可以编码4 ^ n个状态。


6
您的陈述是:“ 4个符号/位”。这表明缺乏了解。它是4个状态/符号,并使用4个状态/符号将编码2位。
Pieter B

4
@Kapep,这是错误的。他正在交替使用“信息量”和“可以编码N个状态”,这绝对是不正确的。信息以位为单位,而不是以状态数为单位。每个符号加倍的位所增加的信息与符号数量加倍一样多。
user5226582 17-10-10

3
您应该对此进行编辑,以澄清当您说“每个数字4个符号”时,是指每个数字位置具有4个可能的值(或状态或“符号”)。当我看到短语“每位4个符号”时,我想的第一件事就是写下一位数字就意味着要写下4个符号。当您在执行此操作时,您的答案包含9个错误的大写单词,可以修复...
Tanner Swett

2
@TannerSwett由于我们处在学徒之地,“数字”表示10个值,这就是为什么我们通常将使用二进制“数字”的技术称为有趣的原因。
JimmyJames

2
(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)
zakinster
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.