컴퓨터 메모리에는 왜 두 가지 상태만 있습니까?

컴퓨터 메모리에는 왜 두 가지 상태만 있습니까?

컴퓨터가 바이너리를 사용하는 이유는 높은 상태와 낮은 상태만 나타낼 수 있는 비트를 사용하는 이유는 무엇입니까? 나는 "Logic & Computer Design Fundamentals"(M. Morris Mano, Charles R. Kime(저자) 및 Tom Martin 저)를 읽고 있었는데 그 이유를 이해하지 못합니다.

십진수를 나타내는 10개의 값이 있는 시스템을 생각해 보세요. 이러한 시스템에서 사용 가능한 전압(예: 0~1.0V)은 각각 길이가 0.1V인 10개의 범위로 나눌 수 있습니다. 회로는 이러한 10개 범위 각각 내에서 출력 전압을 제공합니다. 회로의 입력은 적용된 전압이 10개 범위 중 어느 범위에 있는지 결정해야 합니다. 전압에 대한 잡음을 허용하려면 주어진 숫자 표현에 대해 출력 전압 범위가 0.05V 미만으로 허용될 수 있으며 입력 간의 경계는 0.05V 미만으로 달라질 수 있습니다. 이를 위해서는 복잡하고 값비싼 전자 회로가 필요하며, 제조 또는 사용 중에 발생하는 회로의 작은 "잡음" 전압이나 작은 변화로 인해 출력이 여전히 방해를 받을 수 있습니다.

그렇다면 0.05v의 변화를 정확하게 감지하고 소음으로부터 보호할 수 있다면 10가지 상태를 가진 컴퓨터를 사용할 수 있을까요? 그렇다면 0.05v 변화를 감지할 수 있는 장비를 발명하는 것이 과연 문제일까요? 규모를 늘리면 어떨까요? 예를 들어 범위를 0-50V로 만들고 5의 배수(예: 0,5,10,15,...,50)마다 상태를 가지며 잡음에 대해 +/- 2V를 허용합니까?

답변1

근본적인 이유는 두 가지 상태 논리를 구축하는 것이 더 쉽고 99%의 경우 더 복잡한 것은 실질적인 이점을 제공하지 않는다는 것입니다.

사실, 그것은멀리저장하고 읽을 수 있는 단일 메모리 단위를 구축하는 것보다 각각 두 가지 상태(BCD 표기법으로 십진수를 저장하는 데 사용할 수 있음)를 갖는 4개의 메모리 장치를 구축하는 것이 더 쉽습니다(더 작고 저렴하며 더 안정적이라는 의미). 10개 주 중.

미래의 기술 개선으로 인해 1/10 메모리가 향상될 수 있습니다. 그렇습니다. 그러나 동일한 기술 개발을 바이너리 회로에도 적용하여 더 작고, 더 안정적이며, 더 적은 전력을 사용할 수 있습니다. 바이너리 회로는 근본적으로 더 간단한 작업을 수행하기 때문에 10개 전압 레벨 중 하나의 회로보다 더 빠르게 개선됩니다. 따라서 10개의 회로 중 하나는절대따라잡아라.

더 높은 전압을 사용하는 것은 시작이 아닙니다. 전력 소비가 증가합니다. 신호 라인의 전압이 높을수록 더 많은 노이즈가 방출됩니다(따라서 다른 신호를 손상시킬 가능성이 더 커집니다). 실제로 우리는 현재 신호 추적을 서로 너무 가깝게 실행하고 있으므로 50V에서는 용량성 결합뿐만 아니라 아크에 대해서도 걱정해야 합니다! 최신 CPU의 추세는 더 높은 전압이 아닌 더 낮은 전압을 사용하는 것입니다.

게다가 바이너리 코딩은 처음 접하면 이상해 보이지만 여러 면에서 매우 편리합니다. 이진 가산기 회로는 설명된 것처럼 다양한 전압 레벨을 사용하는 가산기보다 훨씬 더 간단하고 신뢰할 수 있는 설계입니다. (그리고 곱셈, 나눗셈 또는 부동 소수점을 어떻게 수행할지 생각하고 싶지도 않습니다.) 또한 컴퓨터 프로세서의 나머지 부분을 구현하려면 이진 디지털 논리가 필요합니다.

인간이 십진수를 사용하여 컴퓨터를 다루는 것을 선호한다는 사실은 거의 관련이 없습니다. 이진수와 십진수 간의 변환은 사소한 코드 조각입니다.

숫자를 십진수로 저장하는 아주 초기의 컴퓨터가 몇 대 있었다는 점은 주목할 가치가 있습니다. 그러나 그들은 다양한 전압 레벨에서는 이를 수행하지 않았습니다. 대신 그들은 실제로 10비트 중 하나만 한 번에 "1"이 될 수 있도록 설정된 10비트 메모리인 "링 카운터"라는 회로를 사용했습니다. ("데카트론"을 찾아보세요.)

나중에 IBM 1401 및 IBM 1620과 같은 "10진수" 컴퓨터가 있었지만 역시 기본적으로 모두 이진 저장소를 사용했습니다. 비트는 다양한 방식으로 십진수를 표현하는 데 사용되었습니다. 예를 들어 1401은 각 십진수를 코딩하는 데 4비트 세트가 사용되는 "이진 코드 십진수"를 사용했습니다. 이와 같은 컴퓨터는 당시 매우 성공적이었으며 대부분의 계산기는 여전히 이런 방식으로 작동합니다.

간단히 말해서, 십진수 표현이 더 의미가 있는 것처럼 보이지만 실제로는 우리 문명이 익숙하기 때문에 그렇습니다. 이진 표현은 모든 엔지니어링 측정을 통해 컴퓨터 회로에 더 적합합니다. (어쨌든, 우리가 조금만 더 똑똑했더라면 손가락을 사용하여 이진수로 셀 수 있었을 것이고, 10뿐만 아니라 1023까지 셀 수 있었을 것입니다! :))

답변2

당신이 인용한 기사는 당신의 질문에 매우 잘 답변해 주므로 좀 더 생각해 보아야 합니다.

전자 데이터 저장 및 전송에 이진 표현을 사용하는 주요 이유는 회로의 복잡성 수준과 잡음 여유 때문입니다.

또 다른 중요한 이유는 데이터 저장 목적으로 바이너리가 가장 낮은 공통 분모라는 것입니다. 오버헤드 없이 모든 데이터를 바이너리로 효율적으로 표현할 수 있습니다. 2개보다 많은 상태를 사용하면 매우 간단한(예: 이진) 데이터를 표현하려고 할 때 오버헤드가 발생하는 경우가 많습니다.

질문의 마지막 부분에 대해 말씀드리자면, 전자 부품 산업이 발전함에 따라 우리는 더 높은 전압이 아닌 더 낮은 전압을 향해 나아가고 있다는 점을 상기시켜 드리고 싶습니다. 컴퓨터 메인 메모리 IO 핀에 50V를 사용하는 것은 매우 비실용적이고 위험하며 비용이 많이 듭니다. 최신 컴퓨터 메모리는 일반적으로 약 1.5V를 사용합니다.

다음 내용을 읽어 보시기 바랍니다.

답변3

메모리는 본질적으로 아날로그이지만 이진 방식으로 사용되고 클록 신호(MHz)에 결합되는 트랜지스터를 기반으로 합니다. 가장 간단한 메모리는 J/K(Q/Q') 플립플롭입니다. 4개의 간단한 NAND 게이트 배열은 디지털 저장의 기본 비트입니다. 이는 1 또는 0을 저장하는 것입니다. 플립플롭에는 디지털이 아닌 값이나 여러 값을 저장할 수 있는 기능이 없습니다.

또 다른 측면은 값 래칭을 제공하는 클록 신호입니다. 값이 변경되어 출력이 불확실해지는 경우가 있습니다. 클럭 신호는 출력이 안정되는 데 걸리는 시간보다 약간 더 길게 선택됩니다. 그런 다음 값을 래치하고 계산이 진행됩니다. 값이 클럭 펄스에 맞춰 결정되지 않으면 잘못된 값이 전달되고 컴퓨터가 충돌합니다.

관련 정보