카테고리 없음

[3] 메모리와 디스크의 핵심 순차논리

우유식빵 2022. 5. 5. 13:21

지난 2장에서는 컴퓨터가 비트를 사용하는 조합논리에 대해 알아봤다.

조합 논리를 이용해서 현재 상태들을 이용해 결과를 도출해낼 수 있었다. 

그런 조합 논리 표현하는 게이트들이 있었고 게이트들을 모아서 큰 회로를 만들 수 있었다.

그러나 조합 논리만을 이용해서는 1부터 100까지 더하는 합계를 구할 수 없다. 

현재 어디까지 합이 구해졌는지 상태를 알 수 없기 때문이다.

컴퓨터는 어떻게 비트를 기억하는지에 대해 이번장에서 다룰 것 같다.

 

     1. 시간 표현과 상태 기억

오실레이터: 인버터의 출력을 입력에 연결하여 출력이 0과 1사이를 진동함. 

> 좀 더 안정적인 주파수로 진동하는 오실레이터가 있다면 더 정확히 시간을 측정할 수 있다.

클록: 시간을 셀 수 있게 해주는 신호. 오실레이터가 제공.  가장빠른 클록 속도는 회로의 전파 지연 시간에 의해 결정

 

위 두 장치를 통해 시간을 표현하는 근원을 만들었다.

래치: 래치를 사용하면 입력을 기억하고 입력이 끊겨도 출력에는 이전 입력이 계속 출력된다.

데이터 변경이 생겨 다른 잘못된 결과가 출력되지 않도록 전이신호, 즉 에지(edge)를 사용하는 래치를 플리플롭이라고한다.

레지스터: 클록을 공유하는 D플리플롭을 여러개 묶은 것. 여러 비트를 저장할 수 있다. 

 

이번 장은 사실 회로랑 같이 봐야하는데, 다 학부시절 논리회로 설계를 공부하면서 공부했던 것이니

깊게 보지 않고 '아 이런게 있었지' 하고 넘어가기로 했다. (그래도 HW전공이 아니니까 이 정도면 괜찮겠지?)

 

     2. 메모리 조직과 주소 지정

많은 정보를 저장하기 위해서 레지스터들을 쌓아 놓는다. 그러면 이제 어떤 레지스터를 사용해야하는 지 어떻게 정할 수 있을까?

1. 디코더를 사용하여 각 레지스터에 번호를 부여한다.

2. 지정한 주소에 해당하는 레지스터의 출력을 선택하기위하여 실렉터를 사용한다.

3. 여러 메모리 컴포넌트의 출력을 한 출력으로 연결하기 위해 트라이스테이트를 사용한다.

그러면 메모리 회로가 완성된다. 주소 연결 신호를 묶어서 address bus, 데이터 연결 신호를 묶어서 data bus라고 할 수 있다. 

 

     3. RAM

RAM(random access memory)를 사용하면 메모리 위치 중 원하는 곳은 어디든 원하는 순서로 쓰거나 읽을 수 있다. 
SRAM(static RAM) 각 비트에 트랜지스터가 6개들어가서 비싸고 빠르다. 많은 비트를 저장하기엔 좋지 않다.
DRAM(dynamic RAM) 은 커패시터를 사용하고 트랜시터 1개만을 사용하는데 집적도가 높아 큰 메모리 칩에 사용된다.
 

     4. 기타 등등

ROM(read-only memory)은 한 번 쓴 후에 여러번 읽기를 할 수 있는 메모리
플레시메모리: DRAM같은데 DRAM처럼 전자가 버킷에서 새지 않아서 refresh가 필요없음.
대신에 버킷 뚜껑을 열었다 닫았다(읽었다 썼다) 하면 뚜껑이 닳음. 
읽을 때는 ramdom access, 쓸 때는 block access. 
이를 이용해서 SSD(solid-state drive)를 만듬
 

     5. 오류 감지와 정정

패리티(parity)를 사용하면 1비트의 오류를 감지 할 수 있다. 

짝수패리티와 홀수패리티가 있는데, 패리티의 문제점은 오류가 짝수번 발생하면 오류발생여부 판단을 할 수 없다.

해밍코드(hamming code)는 더 많은 비트를 사용해서 더 많은 오류를 감지한다. 

이런 회로를 내장한 ECC칩도 있다. (error checking and correction) 

체크섬(checksum)이라는 단순한 방법도 있고 순환중복검사(CRC cycle redundancy check)라는 방법도 있다. 

 

     정리

이번 장은 사실 훑고 지나갔다고 해도 무방하다.

학부시절에 컴퓨터 구조 시험을 보기위해 잔뜩 암기만 하던 내용들을

한번 리마인드 했던 기분이 들었다. 

 

이번 장을 읽으면서 얻었던 것은 단순 회로 > 래치와 같은 순차 회로 > 레지스터 > 메모리로

커져가는 과정을 한번더 쉽게 이해할 수 있었다고 생각한다. 

 

 

 

 

... 한 권으로 읽는 컴퓨터 구조와 프로그래밍 3장을 읽고.