2 극진공관, 트랜지스터, 코어

 

컴퓨터와 인간지능 : Donald G. Fink 저, 이기호 역, 이화여대 출판부, 1986, Page 101~124

 

2 극 진공관 : 편도체

트랜지스터 : 여분의 연결을 갖는 2 극진공관

트랜지스터 교호 접속

코어 기억장치

문자와 단어의 저장

 

 

컴퓨터 내에서 스위치와 같이 사용되는 장치는 2 극진공관 (diodes) 과 트랜지스터 (transistors) 이다 (주석 : 7094 컴퓨터 장기 (체스) 게임은 4700 2 극진공관, 44,000 트랜지스터, 1,152,000 기억코어, 66,500 전자회로 구성 원소로 되어 있다 !). 그것들은 엄청난 속도로 작동한다. 전형적인 고속 스위칭 트랜지스터는 몇 십억 분의 1 초 내에 개폐할 수 있다. 트랜지스터 쌍들은 임시로 숫자를 저장하기 이한, 예를 들면 덧셈을 하는 동안 가수와 피가수의 비트 (bit) 들을 포함하기 위한 기억장치의 한 부분처럼 사용된다.

지시와 자료를 더욱 오랫 동안 저장하기 위해 자기장치를 사용한다. 힘의 자기선 지시에 따라서 자기장치들은 0 이나 1 을 저장한다. 컴퓨터 프로그램이 진행되는 동안 숫자들의 저장은 자기물질로 된 작은 도너츠 모양의 코어 (cores) 와 연결되는데, 그것은 저장된 각 비트에 하나씩 관련을 맺는다. 자기테이프는 장기간의 저장을 위해 사용한다. 카드나 종이 테이프에 천공되거나 (1') 혹은 천공되지 않은 (0') 구멍처럼 비트들은 또한 기계적인 형태로 저장된다.

스위치와 기억방 (memory cell) 은 두 가지 기능을 수행한다. 첫째, 그것들은 비트를 받아들일 수 있어야 한다. 즉 두 가지 입력 조건 0 혹은 1 의 어떤 것에도 응답할 수 있어야 한다. 둘째, 그것들은 비트를 공급할 수 있어야 한다. 즉 두 개의 출력 조건 0 혹은 1 중 어느 것이든지 제공할 수 있어야 한다. 부정 스위치는 입력에 반대되는 출력을 통과시킨다. 2 진수 덧셈에 연결된 스위치들은 올림수, 피가수, 그리고 가수의 비트들을 입력으로서 받아들여야 하고, 출력으로서는 합과 다음 번의 올림수 비트를 제공해야 한다. 8 개로 된 주기억장치의 집합은 (모델 1401 언어에서 8 개의 비트 문자를 저장하도록 배열된) 입력으로서 저장된 문자의 비트들을 받아들여야 하고, 기억장치에서 문자가 검색될 때 출력으로서 똑같은 8 개의 비트들을 제공해야 한다.

정보를 옮기기 위해서, 한 장치가 다른 것에 연결된다. 두번째와 마찬가지로 입력이 첫 번째 출력과 연결된다. 따라서 하나의 숫자가 저장될 때, 출력으로 숫자를 제공하는 트랜지스터는 적당한 자기코어에 연결되는데, 이 자기코어는 입력으로 숫자를 받아들이고 그것을 저장한다. 나중에, 프로그램이 계산에서 사용될 수 있는 숫자를 요구할 때, 코어는 출력으로서 하나의 비트를 적당한 2 극진공관이나 트랜지스터에 제공하며, 2 극진공관이나 트랜지스터는 입력으로 숫자를 받아들인다.

2 극 진공관 : 편도체

가장 간단한 컴퓨터 스위치는 2 극진공관이다. 이것은 편도체 (one-way conductor) 로서 전류는 한쪽 방향으로만 통과한다 (반대 방향으로 통과할 수 있는 전류는 너무 적어서 실제적인 목적을 위해서 그것을 제로 [0] 라고 부른다). 2 극진공관의 일방로 성질은 회로 부호에서 (그림 1) 선과 화살표로 나타난다.

그림 1  반도체 2 극진공관과 그의 회로 기호.

화살표는 양전극 혹은 양극이며, 그것은 장치를 통하는 전류가 흐르기 쉬운 방향을 나타낸다. 선은 음극 혹은 음전극을 나타낸다. 전압 (전지 혹은 교류전압 공급) 의 원천으로 양의 끝이 양극과 연결되어 있고, 음의 끝은 음극과 연결되면 전류가 흐른다. 만약 역으로 연결된다면, 전류가 흐르지 않는다. 2 극진공관은 양극이 음극보다 더욱 양극화될 때마다 전류가 흐르게 하지만 그렇지 않으면 전류가 흐르지 않는다.

2 극진공관은 반도체와 금속의 전기적인 특성에 힘입어 이런 행동을 나타낸다. 반도체는 전기를 전도할 수 있는 물질이지만, 잘 전도하는 편은 아니다. 규소는 컴퓨터 2 극진공관에서 가장 많이 사용되는 반도체이다. 규소는 구리보다 불충분한 전도체이지만, 자기 제품과 같은 절연체에 비하면 꽤좋은 양도체라고 할 수 있다. 전기를 옮길 수 있는 이런 중간적인 능력은 흔히 있을 수 있는 관심사이다. 문제는 반도체가 칼륨과 같은 특별한 금속과 접속할 때, 잠재적인 장벽이 반도체와 금속의 경계에 나타나는 사실이다. 이 장벽은 전자가 한쪽 방향으로 통과하고 있는 동안, 다른 방향으로 통과하지 못하게 한다. 장벽은 녹기 시작할 때까지는 금속의 온도를 올림으로써 형성된다. 따라서, 장벽의 원자가 반도체의 원자와 섞이게 한다.

2 극진공관은 두 개의 전선과 연결되는데 하나는 금속에, 다른 것은 반도체의 반대편에 연결된다. 이 두 개의 전선은 유리의 코팅이나 다른 보호물질을 통해서 나와 있다.

2 극진공관의 출력은 전류가 흐를 때 전압이 나타나는 것을 가로질러 전류가 전기저항을 통과하게 함으로써 발전되었다. 기본적인 2 극진공관 회로는 <그림 2> 에 나타나 있다. 양전압이 입력 단말장치 을 통해서 양극에 적용될 때 (입력 단말장치 를 통해서 음전압이 음극에 적용된다) 전류가 흐르며 전압은 저항을 가로질러서 나타난다 (그림 2-A). 전지가 역으로 되고 (그림 2-B) 양극을 더 음극화하면 전류가 흐르지 않고, 전압은 출력 단말장치를 통해 나타나지 않는다. 전도 조건에 있어서, 2 극진공관은 입력 조건에 의해서 만들어진 전류뿐만 아니라 다른 회로로부터 공급된 전류도 옮길 수 있다. 2 극진공관은 다른 회로들을 조절할 수 있다. 왜냐하면 이것이 전도될 때 정보를 통과시키며, 전도되지 않을 때는 정보를 거둬들이기 때문이며, 이것을 2 극진공관 게이트 (diode gate) 라고 한다. 대표적인 게이트회로에서 2 극진공관은 기계기억의 출력과 계산기의 피가산수 부분 사이 (피가산수 레지스터) 에 연결된다. 저장된 피가산수가 계산기에 통과될 수 있을 때 제어장치는 양전압을 2 극진공관의 양극에 적용한다. 2 극진공관이 계산기에 기억장치를 전도하고 연결한다. 피가산수의 이전이 완료되면 2 극진공관은 전도되지 않는 상태로 돌아가며 기억장치와 연락을 끊고 피가산수 레지스터를 심한 혼란으로부터 보호한다. 다른 2 극진공관은 가산수를 옮기기 위해서 가산수 레지스터를 기억장치에 연결시킨다. 계산기가 합을 만들면, 다른 2 극진공관은 전도되고, 그 합을 기억장치로 다시 옮긴다.

이와 같은 방법으로 정보는 비트를 통과시키거나, 제어장치가 지시하는 것처럼 그것들의 통과를 금지하는 2 극진공관을 통해서 컴퓨터 내의 한 곳에서 다른 곳으로 발송된다. 특히 2 극진공관 게이트는 똑같이 중요한 두 가지 기능을 갖는 것에 유의하라. 필요할 때 정보를 통과시키며, 그렇지 않을 땐 통과되지 않는다는 것을 알아야 한다. 2 극진공관 게이트는 연결도 가능하고 분리도 가능해야 한다.

2 극진공관은 또한 논리회로에서의 스위치와 마찬가지로 사용된다. 예를 들면 <그림 3> 에서 보는 "선언명제" ("혹은…혹은 모두) 회로이다. 선언명제를 위한 진리표가 나타내는 것처럼 1 이란 출력은 입력 중 적어도 하나가 1 일 때 요구된다. 평범한 출력저항에 연결된 두 개의 2 극진공관은 두 개의 입력에 도움을 준다 (그림 3-A). 만약 1 이란 입력이 둘 중 어느 하나, 혹은 둘 모두에 적용된다면, 전류가 저항을 통과해서 흐르며 1 이란 출력이 생긴다. 이 원리는 많은 입력을 위해서 확장될 수 있고, 각각의 2 극진공관은 평범한 출력저항을 공급한다 (그림 3-B). 이런 "혹은 (or)" 회로는 2 극진공관 가운데서 적어도 하나가 1 이란 입력을 가질 때는 1 이란 출력을 내놓을 것이다. 2 극진공관의 고립 기능이 특히 이 회로에서는 중요하다. 각 2 극진공관은 평범한 출력저항으로만 전류를 통과시킬 수 있다. 반대 입력회로로의 흐름은 다른 2 극진공관의 일방로의 성질에 의해서만 제지된다.

"결합명제 (and)" 의 논리는 연결된 2 극진공관의 수에 대해서 유사하게 수행될 수 있다 (그림 4). 2 극진공관은 각각의 입력이 1 인 것에 의해 분리 전도되도록 만들어졌다 (양극을 양으로 음극을 음으로 만들면서). 모든 2 극진공관이 1 인 입력을 가질 때만 그 회로는 완료된다. 그러면 전류는 출력저항을 통과하면서 흐르고, 1 이란 출력이 만들어진다. 만약 2 극진공관이 전도되지 않으면 0 이란 출력을 만든다.

 

그림 4  "그리고" 에 대한 2 극진공관 회로. 만약 어떤 입력도 없으면 출력도 없다.

2 극진공관은 논리의 모든 기능을 수행할 수 있도록 서로 연결 가능하고, 최근의 컴퓨터 내에서 2 극진공관은 사실상 대부분이 논리적 기능과 제어기능을 위해서 사용된다. 그것은 트랜지스터보다 값이 싸고 거의 비슷한 속도로 작동하지만 몇 가지 한계가 있다. 첫째, 2 극진공관 회로는 필연적으로 입력 전압의 일부를 소비한다 (입력 전압은 2 극진공관과 출력저항 사이에서 나누어진다). 여러 개의 2 극진공관이 직렬로 사용될 때 하나는 다음에 공급되는데, 그 회로에서 2 극진공관 중의 하나의 출력 전압이 너무 낮아져서 다음을 위한 입력으로서 제공될 수 없으면 증폭 (amplification) 이 요구된다. 트랜지스터는 그 자체가 증폭이기 때문에 이 문제를 해결한다. 더욱이 2 극진공관은 저장장치가 아니다. 입력이 제거되면 출력도 사라진다. 한 개의 트랜지스터는 저장소가 부족하지만 두 개의 트랜지스터는 제거된 후에도 비트를 저장할 수 있도록 서로 연결될 수 있다.

트랜지스터 : 여분의 연결을 갖는 2 극진공관

트랜지스터는 입력을 증폭할 수 있는 장치이며 더 큰 출력을 만들어낼 수 있다. 그것은 세 가지 단말장치를 갖는다 (그림 5). 만약 입력의 전력이 단말장치 중 임의의 두 개에 적용된다면, 더 큰 양의 전력을 세 번째 단말장치와 다른 두 개 중 하나로부터 취할 수 있게 된다. 실제로, 트랜지스터는 등을 맞대고 연결된 두 개의 2 극진공관과 같다. 2 극진공관은 단 하나의 반도체의 반대편에서 만들어진다 (게르마늄 [Ge] 이 많이 사용되긴 하지만, 대부분의 컴퓨터 트랜지스터 내에서는 규소가 사용된다).

그림 5  트랜지스터와 그와 동일한 회로 ("등을 맞대어 연결된" 두 개의 2 극진공관).

두 종류의 전류 운송 전하, 즉 전자와 구멍이 트랜지스터 내에서 사용될 수 있다. "구멍 (hole)" 이란 실제로는 반도체 원자의 외계 전자각에 전자가 없음을 의미한다. 전자가 손실되고 원자에 의해 택해졌을 때 공백이 생기며, 따라서 구멍은 양분자를 "움직이는" 성질을 갖는다.

트랜지스터의 2 극진공관 중 하나는 입력을 받아들이도록 도와준다. 그것은 양극을 양으로 만드는 전지에 연결되며, 정적인 전류가 2 극진공관의 잠재된 장벽을 가로질러 흐르도록 한다. 입력 전압은 전지와 같이 직렬로 적용되는데, 입력의 양극으로 전류를 증가 또는 감소시킨다.

트랜지스터의 반도체는 수정으로 만들어졌는데, 수정의 구조는 근대의 기술로 성취될 수 있는 한 거의 완전하다. 거의 완전한 수정의 원자 사이에서 전기력의 균형 때문에, 원자는 잠재적인 장벽을 통과한 후 전류 운송 전하를 쉽게 잡을 수가 없다. 거의 모든 전하들은 사실상 반도체의 판이 매우 얇기 때문에 다른 2 극진공관의 잠재적인 장벽에 매우 빨리 도착한다.

첫째 것과 등을 맞대고 연결된 둘째 2 극진공관은 수정의 구조가 거의 완전하지 않다면 전하의 통과를 방해할 것이다. 전하들은 전지로 둘째 2 극진공관에 적용되는 전압에 의해서 유도된다. 수정의 전기력이 균형은 둘째 전지에 의해 자극받은 전하들이 둘째 장벽의 "터널" 을 파도록 허용하며, 트랜지스터의 셋째 단말장치를 통해 외부세계로 도달한다.

증폭은 어떻게 일어나는가? 그 대답은 두 2 극진공관의 전기저항에서의 차이점에서 발견될 수 있다. 여러분이 상기하는 첫째 2 극진공관은 "흐르기 쉬운" 방향으로 전류를 통과시킨다. 입력 전압에서의 일어나는 작은 변화는 첫째 장벽을 통과하는 전류에 커다란 변화를 초래한다. 전류가 둘째 장벽을 통과할 때 둘째 2 극진공관이 전류의 흐름을 방해하기 때문에 훨씬 더 높은 저항을 만난다. 이런 저항을 통과하는 데 있어서 전류 내의 변화는 비교적 큰 전압, 즉 입력의 증폭된 부분에 있어서의 변화를 낳는다.

트랜지스터의 회로 부호는 <그림 6> 에 나타난다. 화살표는 방사기 (emitter) 를 나타내는데, 이것은 첫째 장벽을 통해 전류 운송 전하를 주입한다. 수직선은 반도체 자체를 나타낸다. 그것은 기저 (base) 라고 부른다. 기울어진 선은 집전자 (collector) 를 나타내는데 이것은 전하가 둘째 장벽을 통과한 후 그 전하를 모은다. 트랜지스터의 출력은 출력 전압이 나타나는 것을 가로지르는 저항을 통해 모인 전류를 통과시킴으로써 생겨난다.

 

그림 6  트랜지스터의 회로 부호.

트랜지스터들은 세 개의 단말 중 두 개가 입력을 받아들이는 것에 의해서 세 개의 기본적인 회로로 사용될 수 있다. 가장 넓게 사용되는 회로 (그림 6) 는 방사기 입출력과 공통이 되므로 공통된 방사기 회로라고 부른다. 소위 "P-N-P" 형태라고 불리우는 회로의 트랜지스터가 바로 이것으로서, 전류 운송 전하는 이 트랜지스터 내에서 양의 구멍이다.

이런 형태이 트랜지스터는 둘째 장벽을 통해 구멍을 유도하기 위해 집전자에서는 음의 전지전압을 요구한다. 공통된 방사기 회로는 그것을 통과하는 어떤 신호의 양극을 뒤집는다. 즉 기저가 더 양극화되면 집전자는 점점 더 음극화된다. 따라서 이런 회로는 논리에 있어서 "부정 (negation)" 기능을 수행한다.

2 극진공관처럼 두 개의 트랜지스터는 "혹은…혹은 모두" 논리를 수행하기 위해 공통된 출력저항 (그림 8-A) 에 연결된다. 공통된 출력저항을 갖는 트랜지스터들은 "여러 개 중 적어도 하나" 란 논리를 수행한다. 회로에 연결된 트랜지스터는 "그리고 (and)" 논리를 실행한다. <그림 8-B> 에서 만약 모든 트랜지스터가 1 이란 입력을 갖는다면 전류가 1 이란 출력저항을 통해서 흐른다.

"부정" "혹은…혹은 모두" 그리고 "그리고" 를 위한 회로는 상징적인 논리의 모든 기능들을 수행하게 될 더 정교한 회로를 건설하기 위한 건축용 블록처럼 사용된다. 이들 중 하나는 2 진수 덧셈에서 사용되는데 "환합 (ring-sum)" 회로라고 하는 十 으로 생략해서 쓴다. 두 개의 입력이 다를 때만 (0 과 1 혹은 1 과 0) 1 이란 출력을 만든다. 만약 입력이 같다면 (1 과 1 혹은 0 과 0) 그것은 출력이 0 이다. 이것은 올림수 숫자에 상관 없이 피가산수와 가산수를 더하는 데 필요한 회로이다. 그것은 "or…but not both" 의 논리를 수행하는데, "inclusive or" ("or…or both") 인 접속사와 구별하기 위해서 "exclusive or" 로써 알려진다.

"exclusive or" 회로를 만드는 방법은 <그림 9> 에서 보여준다. 입력 A 와 B 는 부정회로에서 와 로 바뀐다. 두 개의 "그리고 (and)" 회로는 출력으로서 각각 와 를 만든다.

이런 양들은 입력으로서 "inclusive or" 회로에 도움이 되는데 그 회로는 A 와 B 가 다를 때 출력이 1 이고, 같을 때는 0 이다.

이런 블록 형성 (building lock) 의 조합들은 진리표를 참조함으로써 조립할 수 있다. 이것을 설명하기 위해, 충분한 2 진수 덧셈표를 만들고 가산수 회로가 표에서 말한 관계를 어떻게 따르는지를 보여주겠다. 가산수 진리표는 세 개의 입력의 양을 갖고 (피가산수, 가산수 그리고 올림수 숫자) 그리고 두 개의 출력을 갖는다 (합과 다음 올림숫자). 표는 다음과 같다.

입            력

출    력

a

피가산수

b

가산수

c

가산수

합

다음올림수

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

0

0

0

1

0

1

1

1

우리는 표의 각 줄을 읽음으로써 적당한 출력이 주어진 입력에 관련되어 있다는 사실을 알 수 있다. 예를 들면, 네 번째 줄에서 우리는 1 이란 가산수를 0 과 피가산수에 더할 수 있고, 그리고 1 이란 올림수 숫자를 갖는다. 이것은 0 이란 합과 1 이란 다음 올림수 숫자를 만든다.

이런 표는 <그림 10> 에서처럼 조립된 "그리고", "혹은", 그리고 "환합" 회로에 의해서 구현될 수 있다. 점선으로 닫혀진 이런 회로의 두 부분이 똑같다는 사실에 주의하여야 한다. 이런 것들은 "반가산기 (half-adder)" 들이다 (그림 5 참조). 오른쪽에 있는 "혹은 (or)" 회로는 다음 올림수를 만들어낸다.

트랜지스터 교호 접속

트랜지스터 회로의 가장 중요한 것 중 하나는 비트를 저장하는 교호 접속 (flip-flop) 이다. 교호 접속은 토글 (toggle) 스위치와 같은 고속도의 전기적인 스위치이다. 만약 한 방향으로 세게 밀린다면, 그것은 갑자기 위로 튀고, 그리고 비트를 저장한다. 만약 반대 방향으로 세게 밀린다면 뒤로 튀고 반대편의 비트를 저장한다. 그것은 2 개의 트랜지스터를 사용한다. <그림 11> 에서 보는 것처럼 다른 것의 입력에 출력이 연결된다. 공통된 방사기 회로 내에 있는 각 트랜지스터는 입력의 반대 출력을 갖는다. 따라서 하나의 트랜지스터가 입력으로 1 을 받으면 이것은 이것을 0 이란 출력으로 바꿔놓고, 그리고 출력 0 을 다른 것의 입력에 적용한다. 후자는 입력을 0 에서 1 로 바꾸고 그리고 이것을 첫째 것의 입력에 적용한다. 이것은 처음에 가정된 조건이고, 그래서 회로는 막연히 다른 것의 조건을 강화하는 하나의 트랜지스터를 "폐쇄한다." 따라서 회로는 비트를 저장한다 (명확하게 하기 위해서 첫째 트랜지스터의 입력 조건을 즉 1-비트를 명시한다).

이 회로에서 0-비트를 저장하기 위해서는 둘째 트랜지스터에 입력을 1 로 적용한다. 이 트랜지스터는 이 입력을 0-비트로 변환하고, 그것을 1-비트로 변환하는 첫째 트랜지스터에 적용하며, 그리고 처음에 가정한 것처럼 둘째 트랜지스터에 그것을 적용한다. 지금 회로는 다시 "닫혀지지만" 트랜지스터의 조건은 뒤바뀐다. 첫째 트랜지스터의 입력조건은 현재 0-비트이고 그리고 이 비트로 막연히 저장된다. 우리는 첫째 트랜지스터의 입력을 측정함으로써 1-비트나 혹은 0-비트 중 어느 것이 저장되는지 조사할 수 있다.

두 개의 보조트랜지스터가 입력을 교호 접속회로 (그림 12) 에 공급하기 위해 사용된다면 그것들의 입력을 출력과 격리 설치할 때 그러면 0 이나 1 을 쉽게 저장할 수 있으며, 회로를 설치할 때 어떤 것이 저장될 것인지 혼란을 일으키지 않는다.

하나의 교호 접속회로 출력 "기록 (reading)" 은 2 극진공관이나 트랜지스터를 통해서 다른 것에 옮겨진다. 이런 전이는 특히 곱셈과 나눗셈에서와 같이 2 진수를 옮기는 데 필요하다. 많은 교호 접속회로는 한 줄에 놓인다. 각 입력을 통해서 교호 접속회로 하나 하나는 숫자를 나타내는 0 이나 1 을 저장하도록 정해질 수 있다. 그러면 그 수를 왼쪽으로 한 자리 옮기기 위해 우리는 각 교호 접속회로의 조건을 게이트를 통해서 그 수의 왼쪽으로 한 자리씩 옮긴다. 접속회로의 설치는 바뀔지도 모르며 (예를 들면 새로운 젯수를 만들기 이해 나머지를 뺌으로써), 그 결과는 다시 옮겨진다 (제 2 장 맨뒤에 있는 나눗셈). 교호 접속회로의 그런 수집을 레지스터라고 한다. 레지스터는 산술 연산을 지시받은 동안은 비트를 갖거나 옮기는 데 사용된다.

수들은 레지스터로부터 옮겨진다 (왼쪽으로의 이동이 나타나면 가장 왼쪽 교호 접속회로에서 나아가야 한다). 밖으로 옮겨진 비트는 쓸모없이 되고, 또는 그것은 (게이트를 통해) 기억방과 같은 컴퓨터의 다른 부분으로 통과된다. 사실상, 2 진수를 기억장치로 옮기는 하나의 방법은 비트를 개개의 기억방에 분배하는 게이트를 통해 레지스터로부터 비트별로 그것을 옮길 수 있다.

코어 기억장치

자기 기억방 (magnetic memory cell), 토로이달 (toroidal) 기억장치를 살펴보자. <그림 13> 에 나타나는 것처럼 토로이달 코어는 마그네슘과 망간산화물이 혼합되어 철산화물 가루로 만들어졌다. 그 가루는 접합재와 혼합되고, 주어진 모양으로 입력이 가해지며 그리고 모양대로 구어 굳어진다. 코어는 반경이 단지 1 인치의 몇 백 분의 1 정도로 미세하다. 수십만의 코어는 부피가 1 세제곱 피트보다 더 작게 순서대로 쌓일 수 있다.

 

이들 코어의 원료가 되는 자기 가루 (magnetic powder) 는 다음과 같은 성질로 개발되었다. (1) 시계 방향으로 도는 자기력선 (숫자 1 을 나타내기 위한 것) 이나 혹은 시계 반대 방향으로 도는 자기력선 (숫자 0) 을 가지는 두 가지 조건 중의 어느 하나로 영구히 자기화될 수 있다. (2) 자기작용은 악화되지 않고 빠르게, 그리고 계속 저장된 수를 0 에서 1 로 바꾸고 또 반대로도 변화시키면서 전환된다. (3) 영구적인 자기작용의 방향은 일단 정해지면, 바꾸는 힘이 어떤 제한을 초과할 때만 전환될 수 있다 (즉 코어는 토글 스위치의 취급처럼 그 자체를 전환할 수 있는 충분한 압력을 받을 때까지는 정해진 자기 방향에 달려 있다). 코어의 구멍을 빠져나간 정해진 자기 방향에 달려 있다). 코어의 구멍을 빠져나간 전선을 통과하는 작은 전류 (몇 천분의 1 암페어) 는 자기작용을 정한다. 전자기의 오른손법칙에 의해서 자기력선은 전류가 아래로 흐를 때 시계 방향으로 (숫자 1) 돈다 (이것은 전지의 + 쪽에서 - 쪽 방향으로 전류가 흐르는 관계적인 것이다)

이제, 전선을 통해서 필요한 전류를 아래로 통과시킨다고 가정하자. 전류는 코어물질을 충분히 "포화시킬 수" 있을 정도로 커야 한다. 즉 모든 원자들이 자기적으로 시계 방향으로 일렬로 늘어설 수 있는 정도여야 한다. 전류가 멈추면 자기작용은 남아 있고 (코어는 "영원한 자석" 이다), 코어는 숫자 1 을 "영원히" 저장한다. 만약 나중에 적은 양의 전류가 반대 방향 (즉, 위로) 으로 흐른다면 코어는 시계 방향의 자기작용을 계속 고수하며 막연히 숫자 1 의 저장을 보호한다.

그런데 많은 양의 전류가 반대 방향으로 통과할 때 자기작용은 갑자기 바뀐다. 반대 방향의 전류는 실제로 코어 안에 있는 모든 원자의 자기적인 정렬을 반대로 할 수 있을 만큼 충분해야 한다. 그러면 그 코어는 시계 반대 방향으로 포화되고, 숫자 0 을 저장한다. 위로 향한 전류가 멈출 때 코어는 충분히 많은 아래 방향의 전류가 그것을 전환시킬 때까지 0-비트 조건을 유지한다.

이런 방법으로, 우리는 코어를 빠져나간 전선을 통해서 충분히 큰 전류를 아래로 혹은 위로 통과하게 함으로써 자기 코어에 각각 1 이나 0 을 부과할 수 있다. 따라서 우리는 "기억장치의 서판" 상에 "쓸" 수 있다. 그러나 기억장치로부터 정보를 취해야 한다는 것을 상기하라. 또한 그 서판을 "읽을" 수도 있어야 한다. 이것을 어떻게 하는가?

자기력선이 변화하면 (수 혹은 방향 또는 둘 다) 전류는 자기력에 의해서 둘러싸인 전선에 유도된다. 따라서 만약 "감도 높은 전선 (sensing wire)" 이 코어의 구멍을 통과한다면, 전류는 코어 자기작용이 시계 방향에서 시계 반대 방향으로 바뀔 때마다 한 방향 내의 그 전선 안에서 유도될 것이며, 유도된 전류는 자기작용이 시계 반대 방향에서 시계 방향으로 바뀔 때 반대 방향으로 될 것이다. 따라서 이런 감도 높은 전선 코어 자기작용이 1 에서 0 으로 전환될 때마다 저장된 숫자가 1 을 나타내는 것을 받아들이고 코어가 0 에서 1 로 전환하면 그것은 0 을 받아들인다.

코어의 저장소를 바꿈으로써만 코어를 "읽을" 수 있다. 말을 바꾸면 그것을 읽을 때 저장소를 파괴해야 한다. 이런 약점 ("파괴적인 정보 취득" 이라고 한다) 은 기본적이며 특별한 치료 수단을 취한다. 읽은 뒤에 정확ㅎ 수를 교체하는 것은 기억장치 내에 여분의 회로를 요구한다. 우리가 코어에 숫자를 "기록할" 때 만약 기록이 정확하다면 이미 저장된 반대숫자를 자동적으로 없애야 한다. 1 을 기록하고자 하는 데 이미 1 의 방향으로 자기화되었다고 가정하자. 실제로 코어의 모든 원자들이 정확한 방향으로 이미 자리를 잡았으므로 어떠한 변화도 나타나지 않고 1 은 의도한 대로 유지되고 저장된다. 그러나 만약 코어가 이미 0 을 저장했다면 1 을 기록하는 전류가 자기작용을 바꿀만큼 충분히 많으면 0 을 의도한 것처럼 1 로 바꿀 수 있다.

문자와 단어의 저장

각 비트의 저장에 대하여 설명했다. 그러면 여러 개의 숫자로 구성된 문자의 저장은 어떤가? 우리가 "compare" 라는 단어 대신 한 개의 문자로 약자 C 를 저장하고자 한다고 가정하자. C 는 그 단어에서 (이 경우는 단지) 첫째 문자라는 것을 나타낸다. 제 4 장에서 C 에 대한 (모델 1401 언어에서) 표준 코드 그룹은 11110011 이라는 것을 안다. 이 문자를 저장하기 위해서 우리는 8 개의 코어를 필요로 하며, <그림 14> 에서 보여주는 것처럼 가장 왼쪽 숫자에 대응하는 것을 가장 위의 코어에 하나를 더 올려 놓은 식으로 정돈한다. 각 코어를 통해서 "기록 (writing)" 전선이 빠져 나간다. C 를 저장하기 위해 위의 네 개와 아래 두 개의 기록 전선을 통해 전류를 아래로 통과시킬 것이고 (1), 그리고 나머지 두 개의 전선을 통과하는 전류를 위로 보낸다 (0).

이것은 매우 간단한 것처럼 보인다. 우리는 각 코어에 하나의 기록 전선을 요구하고 이것들은 전류에 연결된 트랜지스터에 의해 요구된 것처럼 1 이나 혹은 0 의 전류가 공급된다. 읽기 위해서 각 코어 내에 있는 부수적인 감도 높은 전선을 사용할 수 있는데 그것들 내에서 유도된 전류들은 컴퓨터의 다른 장치로 그것들을 통과시키고 증폭하는 트랜지스터에 공급되기 때문이다. 심지어 작은 기억장치 안에 몇 만 개의 코어들이 있기 때문에 이런 배열은 두 배의 트랜지스터를 요구하는 데 경비가 많이 든다. 그래서 오래 전에 컴퓨터 디자이너는 더 나은 해답을 찾았는데 이것은 프랑스의 대 수학자이며 철학자인 데카르트 (René Descartes, 1596-1650) 의 중대한 발명에서 발견되었다.

우리가 한 줄이 인치인 의 그래프 용지를 갖고 있다고 가정하자. 가로 34 줄과 세로 44 줄이 있다. 그리고 각선은 34 × 44 = 1,496 개의 점에서 교차한다. 이들 점 가운데 어느 하나를 자리에 놓기 위해서, 우리는 각각에 1 에서 1,496 까지 라벨 (label) 을 붙일 수 있다. 또는 데카르트가 처음 제시했던 것처럼, 카티전 좌표 (Cartesian coordinates : X 좌표와 Y 좌표) 의 구성이 되는 두 수의 라벨에 의해 교차점이 놓일 수 있다. 지금 1,496 개의 라벨 대신에 단지 34 + 44 = 78 개의 라벨을 필요로 한다. 매우 의미있는 축소이다.

똑같은 체제를 기억방에 적용하기 위해서 몇 백 개의 코어를 그래프 용지의 교차점이 생긴 후에 형성된 배열 내에 똑같이 자리를 차지하도록 정리할 수 있다. 코어를 통해서 각 배열의 열과 행을 위한 한 기록 전선을 빠져 나가게 한다. 일곱 째 열과 다섯 째 행이 교차에서 코어에 있는 숫자를 기록한다고 하자 (그림 15). 일곱 번째 열과 다섯 번째 행에 숫자 기록에 필요한 전류의 반씩을 통과시킨다. 그러면 교차점에서 코어는 반으로 나누어진 요구된 전류 2 개를 받아들이고 (코어가 그림 15 에서 보여준 것처럼 수정되면, 자기력이 더해지기 때문에) 이런 조합은 필요한 모든 전류를 구성한다. 이런 코어의 자기작용은 필요한 비트를 저장하기 위해 강화되기도 하고 전환되기도 한다. 그 행과 열에 있는 다른 모든 코어들은 필요한 기록 전류의 반만을 비트들을 계속 저장하면서 받아들인다. 코어 물질의 "토글 스위치" 행동이 왜 그렇게 중요한지 이제 명백해졌다. 이 방법으로 우리는 주어진 코어에 기록하기 위해 요구되는 전선과 트랜지스터의 수를 몇 만에서 몇 백으로 감소시킨다. 더욱이 특별한 코어를 어드레싱 (addressing) 하는 문제를 간단히 한다.

배열 내에 코어의 자리를 정하는 것은 정보의 입력을 간단히 하는 데 큰 효과를 갖는다. 우리는 십자 형태로 모든 코어를 지나는 하나의 감도 높은 전선을 빠져 나가게 한다. 그러면 그 코어를 읽기 위해서, 즉 다섯째 행과 일곱째 열의 주소를 읽기 위하여 대응되는 기록전선을 자극, 자기작용을 전환하고 강도 높은 전선은 단지 그 코어에서만 유래된 "읽기" 전류를 유도해왔다. 이때 다른 코어는 활동하지 않은 채로 남아 있다. 그 숫자를 읽었기 때문에 우리는 다섯째 행과 일곱째 열의 기록전선을 경유하여 다시 그것을 기록함으로써 코어에 자기작용의 적절한 방향을 재저장해야 한다. 이와 같은 방법으로 유일하게 그 코어를 통과하는 두 개의 전선을 자극시킴으로써 어떤 특정한 코어에 숫자를 기록할 수도 있고 그 코어로부터 읽을 수도 있다.

기억장치의 코어는 각 배열의 행과 열을 그것의 상ㆍ하 배열의 행과 열로 정돈되는 것과 마찬가지로 많은 코어와 수평 배열 내에서 조립된다. 모델 1401 컴퓨터는 각 문자를 위해 8 개의 비트를 사용하는데, 8 개의 코어 배열을 필요로 한다. 한 개의 문자는 배열 내에서 똑같은 행과 열을 점유하는 8 개의 코어 "더미 (stack)" 내에서 수직 방향으로 (그림 14 에서처럼) 저장된다. 어떤 특정한 문자를 그것의 열과 행에 의해 어드레스 (address) 하려면 우리는 8 개의 배열 내에 특정한 열과 행을 통하는 전선에 연결된 16 개의 트랜지스터를 자극한다. 몇 개의 열과 행의 어드레스를 자극함으로써 코어에 가깝게 있는 "더미" 내에서 문자들의 수를 저장할 수 있다. 따라서 지시 단어나 혹은 데이터 단어들은 코어의 배열 내에 묶여지는데 한 코어에 한 개의 숫자가 8 개 코어의 수직 "더미" 내에 묶여진다.

기억방에서의 읽기 (reading) 와 쓰기 (writing) 는 논리회로가 비트를 취급하는 데 걸리는 것보다 훨씬 더 많은 시간이 걸린다. 그렇기 때문에 컴퓨터 공학자가 해야 할 주된 일 중 하나는 기억방을 읽고 기록하는 속도를 올리는 것이다. 상당한 진보가 있었음에도 비트를 읽거나 기록하는 기억장치의 행동은 수행된 비트에 대한 비트를 처리하는 논리적인 행동보다 백 배 정도 느리다. 이와 같이 속도가 느려지는 것은 기본적으로 코어 내에 있는 모든 원자들을 정렬하는 것을 요구하기 때문이다. 실행과정의 속도를 빠르게 하려면 원자를 거의 갖지 않는 기억 요소들이 요구되며 아주 얇은 자기필름 (magnetic films) 은 기억장치에 코어를 대치하기 위한 시작이다.