Mano의 컴퓨터시스템구조 제3판, 프로텍 미디어, 김종상 옮김 도서를 정리, 요약하는 글입니다.
1. 타이밍과 제어
- 기본 컴퓨터의 모든 플립플롭과 레지스터는 주 클럭 발생기에 의하여 제어된다. 하지만 클럭펄스만으로는 레지스터의 상태를 변경시킬 수가 없고, 제어 장치에서 생성된 제어 신호가 인에이블시켜 주어야 한다. 제어 장치가 하드와이어 제어방식일 경우 게이트, 플립플롭, 디코더 등의 디지털 회로를 이용하여 제어 논리를 구현하기 때문에 속도는 빠르지만 컴퓨터의 구조가 변경될 경우 부품의 배선까지 바꾸어야 한다. 예를 들어 자판기와 같이 변하지 않는 구조의 컴퓨터가 있겠다. 반면 마이크로 프로그램 방식은 제어 메모리에 저장된 제어 정보를 이용하여 마이크로 연산을 순차적으로 수행시키기 떄문에 설계가 변경되더라도 마이크로 프로그램만 갱신하면 된다는 장점이 있다.
- 위 그림은 제어장치 블럭도이다. 가장 왼쪽의 I 비트는 플립플롭으로 전달되고, 연산코드 부분은 3x8 decoder로 전송되어 D0~D7까지로 디코딩된다. 남은 11~0비트는 제어 논리 게이트로 전달된다. 그리고 4bit 순차 카운터(SC)로부터 0~15까지 16개의 타이밍 신호를 싱생하여 이는 4x16 docoder의 입력으로 들어가 T0~T15를 디코딩한다.
- 예를 들어 D3T4 : SC ← 0이라는 명령문이 있을 때, 이는 타이밍 신호가 T4이고 D3가 1로 활성화 되었을 때, SC가 0으로 클리어된다는 뜻이다. 이를 타이밍도로 나타내면 위 그림과 같다. 순차 카운터는 T0~T15까지의 타이밍 신호를 생성하고 있고 이때 T4가 1이 되는 시점에 D3가 1이라면 CLR SC 역시 1이 되는 것을 알 수 있다. 이 명령은 카운터를 0으로 초기화하라는 뜻이기 때문에 T4 다음 타이밍이 T5가 아니라 T0로 초기화되어 다시 T0가 1이 되는 것을 알 수 있다.
- 그런데 문제는 메모리 사이클(메모리에서 데이터를 읽거나 쓰는 데 걸리는 시간)과 클럭 사이클(프로세서가 작동하는 기본 시간 단위, 클럭이 한 번 상승하고 하강하는 것이 한 사이클이다.)이 차이가 있다는 점이다. 만약 메모리 사이클이 한 클럭 사이클보다 작다고 가정하면 메모리 사이클이 한 클럭 신호를 받기 전에 모든 작업이 끝날 수 있을 것이다. 그러면 프로세서가 바로 메모리에서 필요한 데이터를 한 클럭 안에 사용할 수 있다. 하지만 실제로 많은 컴퓨터에서 메모리가 프로세서보다 훨씬! 더 느리기 때문에, 메모리 동작이 프로세서 클럭보다 한참 더 오래 걸린다. 이런 경우, 프로세서는 메모리에서 데이터를 읽어오는 동안 몇 클럭 사이클을 기다려야 할 것이다. 메모리 접근 신간이 프로세서의 속도보다 느리면, 프로세서는 메모리에서 데이터가 준비될 때까지 멈추고 기다려야 한다는 것이다.
'CS > 컴퓨터구조(Mano)' 카테고리의 다른 글
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (6) 명령어 종류와 결정 (1) | 2024.10.01 |
---|---|
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (5) 명령어 사이클 (fetch, decode) (0) | 2024.10.01 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (3) 컴퓨터 명령어 (0) | 2024.10.01 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (2) 컴퓨터 레지스터 (0) | 2024.09.26 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (1) 명령어 코드 (0) | 2024.09.22 |