1. 마이크로프로그램 제어장치
1) 마이크로프로그램 제어장치란?
• 컴퓨터의 명령어 실행을 제어하는 역할을 수행
• 명령어 집합을 해독하고 실행하는 데 필요한 제어 신호를 생성
• 마이크로코드(하드웨어 수준에서 명령어를 해석하고 제어)를 사용하여 CPU 동작 조절
• CPU는 마이크로프로그램 제어장치를 통해 다양한 명령어를 처리하고 연산을 수행하며 데이터를 처리함
2) 마이크로프로그램 제어장치 구조
• 제어주소 레지스터(CAR: Control Address Register): 제어 기억장치 주소 제공
• 제어 기억장치(CM: Control Memory): 메모리에 제어 신호 저장
- 제어단어(control word): 한 개의 주소에 저장되어 있는 제어 신호
- 제어단어의 구성: {제어신호 필드, 다음주소 선택 필드}
• 제어버퍼 레지스터(CBR: Control Buffer Register): 제어 신호 필드를 시스템 클록 신호에 동기 맞춰 처리장치로 전달
• 순서제어기(Sequencer): 명령어 레지스터, 상태 레지스터, 제어단어의 다음주소 선택 필드를 조합하여 제어주소 레지스터에 적재할 다음 주소 결정
2. 마이크로프로그램 동작 제어
1) 마이크로프로그램 동작 제어
• 제어단어의 제어신호 필드를 통해 프로세서 동작을 제어
• 명령어 인출 후 실행 단계에서 간접 주소 지정 방식이 사용될 경우 간접 단계로 이동하여 기억장치에서 유효 주소 획득
2) 제어신호 부호화
• 프로세서의 주소지정 방식과 명령어 집합 증가 → 제어 신호 수 증가 → 제어 기억장치 용량 증가 → 제어 기억장치 폭 증가
• 제어 신호 일부를 부호화(Encoding)하여 제어 신호 폭을 감소
- 수평 마이크로프로그래밍: 제어 신호마다 한 비트를 배정
- 수직 마이크로프로그래밍: 동시에 사용하지 않는 그룹별로 제어 신호를 인코딩(부호화)하여 디코더로 풀어서 사용
3. 마이크로프로그램 순서제어
1) 마이크로 명령어의 순서제어
• 제어 기억장치에 주소를 공급하는 방법을 결정하여 **CAR(Control Address Register)**에 적재될 주소 결정
2) 제어 기억장치의 다음 주소
Next: CAR ← CAR + 1
• 현재 CAR + 1을 CAR에 적재
• 명령어 실행의 마지막 마이크로오퍼레이션을 제외한 단계에서 사용
Jump TO: CAR ← TO
• 다음 주소 필드의 값(TO)을 CAR에 적재
• 명령어 실행 단계가 끝나고 다른 단계로 이동할 때 사용
Jump (IR): CAR ← MAP(IR)
• 명령어 레지스터(IR)에 해당하는 제어 단어 시작 주소를 적재
• 명령어 실행 단계의 첫 번째에서 사용
조건 분기: If(조건) Jump TO
• 조건 만족 시 CAR ← TO, 조건 불만족 시 CAR ← CAR + 1
• 마이크로프로그램이 조건 분기를 처리할 때 사용
3) 순서제어 예제
• 명령어 0과 1을 실행 중, 1 실행 도중 인터럽트 발생 시 CAR(Control Address Register) 변화
명령어 0 실행 과정
• 명령어 인출: FET, FET+1, ..., FET+n
• 명령어 실행: EXT, EXT_INST0, ..., EXT_INST0+e0
• 실행 후: EXIT, EXIT+1
명령어 1 실행 과정
• 명령어 인출: FET, FET+1, ..., FET+n
• 명령어 실행: EXT, EXT_INST1, ..., EXT_INST1+e1
• 실행 후: EXIT
인터럽트 단계 실행 과정
• INT, INT+1, ..., INT+k
4) 다음 주소를 선택하는 방법
현재 출력 중인 제어단어의 다음 주소 선택 (Next)
• CAR ← CAR + 1
• 명령어 단계가 여러 개의 제어단어로 구성되고 조건 분기 처리가 없을 때 사용
명령어 실행 단계에서 첫 번째 제어단어의 주소 선택 (Jump(IR))
• 명령어의 첫 번째 제어단어 주소를 결정
조건에 따라 주소를 결정하는 조건 분기 (If(조건) Jump TO)
• 무조건 분기: 항상 참인 경우 사용
• 조건 분기: 상태 레지스터의 특정 비트를 참고하여 결정
5) 명령어 실행의 첫 번째 클록에서 제어기억장치 주소를 구하는 방법
• 명령어의 첫 번째 마이크로 명령어 주소 계산 방법
Opcode(동작코드) 기반 주소 계산
• 모든 명령어의 마이크로오퍼레이션 수가 같거나 일정한 간격으로 배치된 경우 사용
매핑 테이블 사용 방법
• 기억장치를 활용하여 매핑 테이블을 구현
• 명령어에 대한 제어단어가 일정한 간격으로 배치되지 않은 경우 사용
이 내용은 휴넷사회복지평생교육원의 컴퓨터 구조 강의를 듣고 정리한 것입니다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 18. 기억장치 (2) (0) | 2025.05.16 |
---|---|
[컴퓨터 구조] 17. 기억장치 (1) (0) | 2025.05.15 |
[컴퓨터 구조] 15. 제어장치 (1) (1) | 2025.05.02 |
[컴퓨터구조] 14. 중앙처리장치 (5) (0) | 2025.05.01 |
[컴퓨터구조] 13. 중앙처리장치 (4) (0) | 2025.04.30 |