순진하지만 근본적인 질문은 간단합니다.
2보다 "비트"당 4 개의 상태를 갖는 것이 저장 공간의 두 배를 의미합니까? 명확하지 않은 경우, 2 개의 값 (기본 2 : 0, 1) 만 나타내는 것이 아니라 모든 "저장소 구조"가 4 개의 값 (기본 4 : 0, 1, 2, 3)을 나타낼 수있는 것처럼 의미합니다. ).
순진하지만 근본적인 질문은 간단합니다.
2보다 "비트"당 4 개의 상태를 갖는 것이 저장 공간의 두 배를 의미합니까? 명확하지 않은 경우, 2 개의 값 (기본 2 : 0, 1) 만 나타내는 것이 아니라 모든 "저장소 구조"가 4 개의 값 (기본 4 : 0, 1, 2, 3)을 나타낼 수있는 것처럼 의미합니다. ).
답변:
찾고있는 단어는 "비트"가 아니라 "기호"입니다. "기호"는 하드웨어 신호 (예 : 전압 또는 자기 패턴)를 논리 비트로 매핑하는 프로세스를 설명하는 데 사용되는 단어입니다. 심볼이 4 개의 상태를 가질 수있는 경우, 2 비트의 정보를 인코딩 할 수 있습니다.
물론, 우리는 그 주장에서 상징의 자원 사용에 대해 아무 말도하지 않습니다. 와이어를 따라 전압을 전압으로 전송하는 경우 심볼 당 상태 수를 늘리면 서로 다른 심볼이 점점 더 유사 해집니다. 0-5V 와이어가 있고 심볼 당 2 개의 상태 (1 비트)가있는 경우 두 상태는 0V와 5V이며 각 심볼 사이에 5V가 있습니다. 와이어가 동일하지만 심볼 당 4 개의 상태 (2 비트)를 인코딩하면 내 상태는 0V, 1.66V, 3.33V 및 5V입니다. 각 심볼 사이의 1.66V입니다. 잡음으로 인해 신호가 손상되기 쉬워졌습니다.
이것들에 관한 섀넌의 법칙 (Shannon 's Law) 으로 알려진 법칙 은 대역폭 (비트)을 회선상의 노이즈로 인해 발생하는 오류율과 관련시킵니다. 와이어를 통해 얼마나 많은 비트를 크램 핑 할 수 있는지에 대한 제한이 있습니다. 더 많은 기호를 사용하면 더 많은 오류가 발생하여 더 많은 오류 수정이 필요합니다.
우리는이 기술을 실제로 사용합니다. 디지털 텔레비전은 64 개의 상태 (따라서 기호 당 6 비트)와 함께 QAM-64를 사용합니다. 이더넷은 4 개의 전압 레벨을 사용하므로 기호 당 2 비트입니다.
편집 : 전송 상태가 더 많은 심볼을 보는 것이 더 일반적이므로 스토리를보다 명확하게 만들 수 있기 때문에 스토리지 대신 비트 전송 속도를 사용했습니다. 스토리지와 스토리지 만 살펴보고 싶다면 누군가 가 주석에서 언급 한 것처럼 플래시 메모리의 멀티 레벨 셀 을 볼 수 있습니다. 이러한 메모리는 정확히 같은 방법을 사용하여 3 비트를 16 개의 서로 다른 충전 레벨의 커패시터로 저장합니다. (이상!)
하나의 1/4 메모리 셀은 2 개의 이진 메모리 셀만큼 정확한 정보를 저장할 수 있습니다.
Quaternary Binary
0 00
1 01
2 10
3 11
따라서 동일한 수의 메모리 셀이 있지만 4 분의 1 인 경우 두 배의 메모리가 있습니다. 그러나이 쿼드 셀이 칩에서 두 배의 공간을 차지한다면 이점이 없습니다.
또는 다른 방법으로, 1 기가 콰드의 일부 4 분의 1 저장소가있는 경우 각 쿼드는 2 비트로 표현 될 수 있기 때문에 2 기가비트의 일반 이진 메모리만큼 많은 정보를 저장할 수 있습니다.
어떤 식 으로든이 전체 라인은 학문적 관심의 대상입니다. 메모리 칩이 예를 들어 2 ^ 32 상태 셀을 저장한다고 생각할 수 있습니다. 1 비트를 가져올 수 없으므로 항상 완전한 단어를 얻습니다. 그리고 미래에 누군가가 2 상태 셀보다 4 상태 물리 셀에 더 효율적으로 그 단어를 저장하는 방법을 찾았다면, 그것은 사용될 것이지만 메모리 칩 외부에서는 보이지 않을 것입니다. 전체 메모리 단어 만, 예를 들어 2 ^ 32 개의 다른 상태를 가질 수 있습니다.
기본 이론에서 그렇습니다. 실제로, 우리는 실제로 데이터를 비트로 저장하지 않기 때문에 (HDD). Cort Ammon은 데이터 전송 문제를 매우 잘 다루고 있습니다. RAM, 캐시 및 SSD는 데이터를 비트로 저장하지만 HDD는 물리적 재질의 특성과 더 많은 데이터를 압축하려는 노력으로 인해 다릅니다. 대부분의 데이터는 여전히 HDD에 저장되므로 이에 초점을 맞출 것입니다. 나는 대부분의 출처에서 찾을 수있는 설명을 넘어서지 만 가능한 한 출처를 인용하려고 노력할 것이다. 이 정보원은 고대의 인터넷 깊이에서 파헤쳐 져야합니다. 왜냐하면 그것은 정말로 잊혀진 지식이기 때문입니다.
첫째, 하드 드라이브는 드라이브 플래터 표면에 자기장 정보를 저장합니다. 드라이브 헤드 는 해당 필드 의 변화 에서 플럭스를 감지하여이를 읽습니다 . 이는 자기장의 실제 방향과 강도보다 측정하기가 훨씬 쉽습니다. 그러나 필드가 연속으로 동일한 세그먼트의 50 개이면 실제로 50 개가 있다고 계산할 수 없습니다. 첫 번째 세그먼트를 읽을 때 플럭스 스파이크를 읽은 후 잠시 동안 플럭스가없고 시간을 추적 할 수 없습니다. 필드가 50 개의 세그먼트에 대해 변경되지 않았을 정도로 충분히 정확합니다.
따라서 기본 (과 단순화 된) 모델은 한 쌍의 자기장으로 비트를 저장하는 것입니다. 첫 번째는 항상 이전 세그먼트의 스위치이고 두 번째는 1을 나타내는 플립이거나 0을 나타내는 플립이 아닙니다. 따라서 0은 FN (flip-null)이고 1은 FF (flip-flip)입니다. 드라이브 타이밍은 세그먼트 내에서 하나의 플럭스 스파이크와 두 개의 플럭스 스파이크 사이의 차이를 인식하기에 충분히 정확합니다. 이 형식을 주파수 변조라고합니다. 따라서 이것은 명확한 신호를 제공하지만 모든 메모리 비트는 드라이브에 두 개의 공간이 필요하다는 것을 의미합니다. 이는 매우 비효율적입니다. 따라서 실제로 가장 기본적인 인코딩 형식의 하드 드라이브는 없었습니다. 대신 간단한 압축 트릭을 사용했습니다. 가장 간단한 것은 Modified Frequency Modulation으로, 0 앞에 다른 0이있는 경우에만 여분의 자기 플립이 사용되도록 패턴을 변경합니다. 이를 통해 엔지니어는 거의 두 배의 데이터를 동일한 공간에 넣을 수 있으므로 첫 번째 HDD에 사용되었으며 플로피 디스크의 형식입니다. 그 후 Run Length Limited라는 고급 시스템이 비슷한 일반적인 아이디어로 개발되었습니다.이 시스템은 훨씬 복잡해지고 여러 구현이 있기 때문에 다루지 않을 것입니다.
그러나 우리는 오늘날 그러한 시스템을 사용하지 않습니다. 그 대신 PRML (Partial Response, Maximum Likelihood)이라는 시스템을 사용합니다. PRML은 헤드가 길이를 읽고 자기 샘플을 수집 한 다음 저장된 샘플의 참조 세트와 비교하여 가장 적합한 샘플을 결정합니다. 그것은 플럭스 스파이크의 전체 개념을 잊어 버리고 대신 패턴 매칭을 사용합니다 (과도 단순화하지만 과도 단순화는 가치가 있습니다). 패턴은 비트 세트에 해당합니다. 노이즈 필터 및 기타 기술을 사용하여 잠재적 인 오류를 제거합니다. 복잡한 파형으로 생각하는 것이 가장 좋으며 HDD는 각 파형을 비트 세트로 변환하는 방법을 알고 있습니다. 이런 의미에서 데이터는 실제로 디지털 형식보다 아날로그 형식으로 더 많이 저장됩니다.
이에 대한 가장 좋은 가이드는 http://www.pcguide.com/ref/hdd/geom/data.htm에 있으며 (다음 버튼을 몇 번 눌러 모든 내용을 읽음) 다른 소스도 있습니다. 아무도 알 이유가없는 거대한 컴퓨터 지식 저장소를 만든 사람들. 괜찮은 추가 소스 (좋지만 100 % 완벽하지는 않지만)는 http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html 에 있습니다 .
TL; DR : 하드 드라이브 디스크는 1과 0과 같은 형식으로 데이터를 저장하지 않습니다. 대신 복잡한 신호 처리를 사용하여 신호를 가능한 가장 작은 공간에 넣고 판독 할 때 디코딩합니다. 따라서, 그들은 기본적으로 불가지론 적입니다.
어느 시점에서 SSD 또는 RAM에서 base-4 스토리지가 시도되었다는 사실에 놀라지 않을 것입니다. 그것은 모두 물질의 물리와 화학에 달려 있습니다. 엔지니어와 과학자들은 재료를 가능한 한 멀리 밀고 최상의 결과를 얻을 수있는 경로를 추구 할 것입니다.
더 많은 상태를 갖는 것은 저장의 각 "셀"또는 데이터 전송 라인상의 각 심볼이 더 많은 정보를 전달할 수있게한다.
그러나 무료 점심은 없습니다. 실제로 그 상태를 구별 할 수 있어야합니다. 이진 로직 게이트를 쉽게 구축 할 수 있고, 2 개 이상의 로직 레벨을 구별, 처리 및 재생하는 게이트를 구축하기가 훨씬 어렵다는 것이 밝혀졌습니다.
그리고 감쇠 된 신호 문제가 있습니다. 2 단계 시스템에서는 임계 값을 간단히 설계하여 최악의 경우 감쇠와 함께 작동 할 수 있습니다. 중대한 감쇠가 예상되는 4 가지 상태 시스템에서는 임계 값을 최악의 경우가 아니라 시스템의 특정 감쇠에 맞게 조정해야합니다. 대 소음 감쇠. 실제로 이는 통신 시스템에 감쇠 측정 시스템을 추가해야 함을 의미합니다.
모든 여분의 복잡한 상황이 있습니다 말했다 합니까 메이크업 감각. 많은 SSD가 이제 플래시 셀당 MLC 또는 TLC라고하는 2 개 이상의 레벨을 사용하며, 현대 고속 통신 프로토콜도 거의 항상 멀티 레벨 인코딩을 사용합니다.
러시아 사람들 이 이진 대신 삼항 칩을 개발했다는 것을 알고 싶을 것이다. 각 기호의 값을 가질 수 있음을 의미한다 -1
, 0
또는 1
. 따라서 각 물리적 게이트는 "2"대신 "3"값을 저장할 수 있습니다.
잠재적 인 미래의 응용
컴퓨터를위한 대량 생산 바이너리 구성 요소가 등장하면서 3 진 컴퓨터의 중요성이 줄어 들었습니다. 그러나 Donald Knuth는 향후 삼항 논리의 우아함과 효율성을 활용하기 위해 개발로 다시 가져올 것이라고 주장합니다.
의심하기 시작하면 기본 번호 매기기 시스템을보다 효율적으로 구현할 수 있습니다. (이 기능이 더 효율적으로 신체 재료에 제조 할 수있는 능력에 따라 표현할 수 있습니다.) 그것은 밝혀 상수가 e
2 다음에, (3),이어서, 자연 로그베이스 (~ 2.71828)이 가장 기수 경제를 가지고 그런 다음 4.
기수 경제는 당신이 표현할 수있는 숫자 대 그것을하기 위해 필요한 기호의 수입니다.
예를 들어, 수학 3 번은 3
밑 10과 같지만 11
밑 2 (2 진)와 같습니다. 기수 10은 이진 수보다 적은 수의 기호로 더 큰 수를 표현할 수 있지만, 기수 10의 기호 표는 기수 2의 기호 표 (0, 1)보다 5 배 더 큽니다 (0 ... 9). 표현력을 심볼 세트의 크기와 비교하는 것을 "기수 경제"(기수는 기수, 예를 들어 2 진 또는 2 진)입니다. 자연스럽게 발생하는 질문은이 트레이드 오프 측면에서 어디에 있고 싶은가입니다. 기수로 어떤 숫자를 채택해야합니까? 표현력과 심볼 세트 크기 간의 트레이드 오프를 최적화 할 수 있습니까?
위키피디아 의 기수 경제 기사에서 차트를 보면 다양한 기반의 경제를 비교할 수 있습니다. 이 예에서 기수 2의 기수 경제는 1.0615 인 반면 기수 10의 경제는 1.5977입니다. 숫자가 낮을수록 좋습니다. 따라서 기수 2는 기수 10보다 효율적입니다.
기본 4에 대한 귀하의 질문은 1.0615의 효율성을 가지는데, 이는 기본 2 (또는 이진)와 동일한 크기이므로, 기본 2보다 그것을 채택하면 평균적으로 숫자 당 정확히 동일한 스토리지 크기 만 얻을 수 있습니다 .
궁금한 점이 있다면 기본으로 채택하기에 이상적인 숫자가 있습니까?이 차트는 정수가 아니라 수학적 상수 e
(~ 2.71828)이며, 경제는 1.0입니다. 이는 가능한 효율적임을 의미합니다. 모든 숫자 집합에 대해 평균적으로 base e
는 기호 테이블이 주어지면 가장 적합한 표현 크기를 제공합니다. 그것은 "당신의 벅에 대한 쾅"최고입니다.
따라서 귀하의 질문은 간단하고 기본적이라고 생각하지만 실제로는 미묘하게 복잡하고 컴퓨터를 설계 할 때 고려해야 할 매우 중요한 문제입니다. 이상적인 개별 컴퓨터를 설계 할 수 있다면, 기본 4를 사용하면 이진 (기본 2)과 동일한 비용 (비용과 동일한 공간)을 제공합니다. 기수 3 또는 삼항을 사용하면 이진보다 더 나은 거래를 제공합니다 (러시아는 트랜지스터에서 기수 3으로 표현 된 실제 작동하는 컴퓨터를 만들었습니다). 그러나 이상적으로는 e를 사용합니다. 누군가가 e를 사용하여 실제 컴퓨터를 만들 었는지 모르겠지만 수학적으로는 이진 및 삼진보다 더 많은 공간을 제공합니다. 사실 모든 실제 숫자 중에서 가장 좋은 방법입니다.
한 번의 일치로 총 인간 지식의 총계를 인코딩 할 수 있다고 생각하십니까?
단일 일치로 비트를 인코딩하면 기호가 다음과 같이 보일 수 있습니다.
충분히 일치하면 아무 말도 할 수 없습니다. 그러나 두 개의 기호를 더 추가하면 동일한 일치 항목으로 두 배 더 말할 수 있습니다. 다음과 같이 보일 수 있습니다.
같은 성냥으로 두 배 많은 정보! 왜 안돼? 왜 멈춰? 모든 기호를 45도 회전하면 다시 두 배가됩니다. 30, 15, 계속해서. 곧 나는 하나의 성냥으로 모든 것을 말할 수있는 충분한 상징을 가지고 있습니다! 일단 그렇게하면 문제가 있습니다. 이 경기는 무엇을 말합니까?
현재 어떤 기호인지 정확히 어떻게 알 수 있습니까? 얼마나 많은 시간을 확신해야합니까? 그것은 문지름입니다. 기호가 많을수록 기호를 구분하는 데 더 많은 노력이 필요합니다.
2보다 "비트"당 4 개의 상태가 저장 공간의 두 배를 의미합니까?
경기 당에 대해 이야기하고 있다면 확실합니다. 그러나 이것이 일치하는 읽기 속도를 늦추지 않더라도 이제는 주방 카운터 공간을 더 많이 차지하고 있습니다. 항상 무언가입니다.
비트가 심볼 (비트)에 2 개가 아닌 4 개 상태 인 경우, 예를 들어 메모리 양이 2 배가됩니다. 사용 된 기술에 따라 공간이 두 배나 더 걸릴 수도 있고 그렇지 않을 수도 있습니다.
실제 눈에 띄는 실제 사례가 있습니다. 이더넷 (메모리는 아니지만 데이터를 전송하는 한 비슷합니다) 100MBit 100BASE의 일반 "고속 이더넷" -TX 및 1GbE 이더넷이 있습니다.
분명히 1GbE는 100MBit보다 10 배 높은 주파수가 필요하므로 (100MBit은 10MBit보다 10 배 높은 주파수가 필요하므로) 더 비싼 케이블도 필요합니다. 명백하게.
죄송합니다. 전혀 사실이 아닙니다 .
100MBit 이더넷은 100MHz에서 두 개의 케이블 쌍을 통해 전송하는 반면 GbE는 4 개의 케이블 쌍을 통해 125MHz에서 전송합니다.
잠깐, 그래서 GbE는 100 Mbit 이더넷보다 2 1/2 배 빠릅니다. 250MBit / s 만 나옵니까?
또한, 이는 케이블 쌍당 펄스 당 2.32 비트를 인코딩 할 수있는 5-PAM 코딩을 사용하며이 중 2 비트는 실제 정보로 사용되며 나머지는 신호의 노이즈에 대한 복원력을 향상시킵니다. 이러한 소수 비트 덕분에 1000BASE-T는 8B10B 코딩도 떨어 뜨릴 수 있습니다.
따라서 와이어 수를 두 배로 늘리고 주파수를 약간 늘 렸지만 처리량은 10 배 증가했습니다!
이제 이것이 마술이라고 생각한다면, 디지털 케이블 텔레비전의 작동 방식을 살펴보고 여전히 확신이 없다면 32768-QAM을 사용하여 15 비트를 하나의 심볼로 인코딩하는 ADSL을 살펴보십시오.
동일한 오래된 구리선, 동일한 주파수 대역, 15 배 더 많은 재료가 통과합니다.
편집 :
매일 당신이 당신의 눈앞에 가지고 있다는 것을 완전히 잊어 버린 또 다른 명백한 실제 예는 다음과 같습니다 .USB pendrives.
이들은 일반적으로 MLC 플래시 메모리를 사용 합니다. 그게 뭐야? 4 가지 충전 레벨 중 하나를 저장하는 메모리 셀 유형입니다. 하드웨어 수준에서 액세스 할 수있는 가장 작은 단위입니다. 따라서 "비트"에 실제로 4 가지 상태가 있다고 말할 수 있습니다 ( 그렇지 않은 경우 실제로는 1 비트 대신 2 비트 만 꺼내고 어쨌든 장치에서 전체 섹터 만 읽을 수는 있지만 ...) 그런 식으로).
셀 수는 동일하지만 메모리가 두 배입니다. 더 싸고, 더 작고, 다소 덜 신뢰할 만하지 만 ... 가장 먼저, 더 싸다 .
두 자리가 아닌 자리 당 4 개의 기호가 있으면 한 자리에 두 배의 정보를 저장할 수 있습니다. 그러나 자릿수를 늘리면 기하 급수적으로 더 많은 정보를 저장할 수 있습니다.
기수 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)