RAM

RAM

1 비트를 저장하는 메모리 (1 Bit Register)

지난번에 ALU 배우면서 배웠던 로직 게이트들을

활용해 , 1 비트를 저장하는 메모리를 만들 수 있다.

OR 게이트를 응용

OR 로직 게이트에서 , 로직 게이트 이후의 아웃풋을

병렬적으로 다시 하나의 인풋 선에 연결하면 ,

정상 인풋을 A , 아웃풋과 연결된 인풋을 B 라 하면

일단 A 가 1 이 되면, 아웃풋도 1이 되며 ,

이는 다시 B 를 1로 만든다. 그리고 다시 A 가 0 으로 되더라도

아웃풋은 다시는 0 이 되지 않는다.

AND 게이트를 응용

AND 로직 게이트에서 , 로직 게이트 이후의 아웃풋을

병렬적으로 다시 하나의 인풋 선에 연결하면 ,

정상 인풋을 A , 아웃풋과 연결된 인풋을 B 라 하면

일단 A, B 가 1 이 되면, 아웃풋도 1이 되며 ,

그리고 다시 A 가 0 으로 된다면,

아웃풋과 B 는 0 가 된다.

AND - OR Latch

위에 있는 두개의 회로를 합친 형태로

SET 과 RESET 인풋을 가진다.

SET 은 OR 게이트를 거쳐서 AND 게이트를 통해 아웃풋과

다시 아까 지난 OR 게이트로 향하는 다른 인풋으로 연결되어있고 .

RESET은 NOT 게이트를 거쳐서 AND 게이트의 다른 인풋을 거쳐

아웃풋과 위 OR 게이트가 지나는 것 처럼 OR 게이트의 한 인풋으로 연결되어있다.

( 설명이 복잡한데. 한번 그려보면 이해 갈 것 )

이렇게 구성된 회로를 통해서 . RESET 인풋으로 1이 들어가지 않는 한은

SET 으로 입력한 1 bit 데이터를 기록할 수 있게 된다 !

RESET 인풋에 1이 들어가게 되면 , 이 OUTPUT 은 0 인 상태가 된다.

( 이부분 좀 이상해서 계속 수정중. Gated Latch 와 분명 다를텐데.. 하고 고쳤다. 처음엔 아랫 부분과 헷갈림 #2019_03_5)

Gated LATCH

위에 AND - OR Latch 를 좀 더 구성요소를 늘려 복잡하게 추가하면

Gated Latch 를 만들 수 있다. ( AND-OR Latch 앞부분에 회로 추가 )

DATA IN 과 WRITE ENABLE 인풋 두개를 가지고 있다.

WRITE ENABLE 인풋이 1 이라면 DATA IN 의 값을 Gated Latch 내에 저장하고

WRITE ENABLE 인풋이 0 이라면 DATA IN 의 값으로 Gated Latch 의 저장된 값을 바꿀 수 없다.

8 bit….. 64 bit

그래서 저런 레지스터를 여러개 한줄로 이어붙여서 8 bit 레지스터

같은 것을 만들거나.

아예 매트릭스 형태의 그리드를 이용해

( AND 게이트를 이용해 해당 칼럼 - 로우의 인풋이 1일때만 데이터를 내뱉도록 하는 식 )

좀 더 큰 용량의 레지스터를 만들 수 있다.

( 여기서 레지스터와 램의 차이에 대해서 혼란이 오기 시작했는데, 사용 용도가 다르다고 보는 것이 설명이 있는데 후에 보강하자. #2019_03_5)

후기

지난번에 컴퓨터의 연산에 대해서 살펴보았다면

이번에는 저장장치에 대해서 공부했다.

역시나 이번에도 놀라움의 연속

로직 게이트를 이런 식으로도 활용할 수 있구나.

역시나 컴포넌트와 모듈화를 통해서 순식간에

복잡하고 정교하게 무언가를 기록할 수 있는 장치를 뚝딱 만들어내는

신비한 학문이란 생각이 든다.

인간의 데이터는 뉴런을 통해서 저장되는데

이 뉴런도 자세히보면 로직 게이트랑 별반 차이 없다.

다만 좀더 아날로그와 화학 기반이라고 하면 맞겠다.

( 일정 신호 이상이라면 발화하고 다음 뉴런으로 신호를 넘기는 식 )