Mano의 컴퓨터시스템구조 제3판, 프로텍 미디어, 김종상 옮김 도서를 정리, 요약하는 글입니다.
1. 명령어 종류와 결정
- fetch와 decode를 한 이후에 T3 시간에는 명령어의 종류를 결정한다. 이 때, D7 값을 확인한다. D7은 연산 코드(opcode) 부분을 3x8 decoder에 의해 D7에서 D0로 디코딩된 것을 의미한다.
- 만약 D7이 1이면 opcode가 111이라는 뜻이므로 레지스터 참조 명령이거나 입출력 명령일 것이다.(이는 I 값에 따라 바뀔 것이다.) D7이 0이라면 opcode가 111이 될 수 없으므로 (000~110 중에 하나라는 것이므로) 메모리 참조 명령이라는 뜻이다.
2. 메모리 참조 명령
- D7 = 0인 경우 메모리 참조(memory reference) 명령이다.
- 메모리 참조 명령의 경우, 플립플롭 I 값을 검사하는데 이때 I = 1이면 간접 주소 방식이므로 메모리에서 유효 주소를 한번 더 가져와야 한다. 간접 주소 방식은 주소를 한번 더 가져온다는 점만 기억하면 된다.
- I = 0이면 유효 주소를 다시 가져올 필요가 없다. 하지만 실제 명령이 수행되는 타이밍을 위해서 아무런 일도 하지 않고 순차 카운트만 하나 증가시킨다.
3. 레지스터 참조 명령
- D7 = 1이고 I = 0이면 레지스터 참조(register reference) 명령이다. 명령어 비트로 보면 맨 왼쪽 비트가 0111인 것이다. 그리고 남은 12비트로 명령어의 종류가 달라진다.
- 예를 들어 명령어 코드가 16진수로 7800이라고 하면 이는 2진수로 0111 1000 0000 0000이 될 것이다. IR(0-11) 레지스터의 각 비트는 Bi로 표시한다. 2진수로 표현한 코드의 각각을 보면 I', D7, B11이 1의 값을 가진다. 모든 제어 함수는 이러한 부울식이 필요하다. 간단히 기호 r로 표현한다. 따라서 7800 코드의 제어 함수는 D7I'T3B11이 된다. 혹은 rB11로 표현할수 있다.
- 레지스터 참조 명령의 공통으로 쓰일 D7I'T3B11 = r로 둔다면 제어 함수들은 다음 표와 같다.
- 결국 T3에 실행될 수 있는 명령의 종류를 제어함수로 표현하면 다음과 같다.
D7'IT3 : AR ← M[AR] (유효 주소 읽어오기)
D7'I'T3 : do nothing
D7I'T3 : 레지스터 참조 명령 실행
D7IT3 : 입출력 명령 실행
- 모든 명령을 실행하고 나면 다시 처음 단계인 fetch로 넘어가기 위해서 SC 값을 0으로 클리어 하므로 T0 타이밍이 된다. 이는 SC ← 0으로 표현한다.
'CS > 컴퓨터구조(Mano)' 카테고리의 다른 글
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (8) 입출력과 인터럽트 (2) | 2024.10.02 |
---|---|
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (7) 메모리 참조 명령어 (0) | 2024.10.01 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (5) 명령어 사이클 (fetch, decode) (0) | 2024.10.01 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (4) 타이밍과 제어 (0) | 2024.10.01 |
[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (3) 컴퓨터 명령어 (0) | 2024.10.01 |