일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python
- spring boot
- 구조체배열
- 코테
- 카카오
- git
- 프로그래머스
- C언어
- 파이썬
- nestJS
- AWS
- @Autowired
- nestjs typeorm
- 가상면접사례로배우는대규모시스템설계기초
- 컴포넌트스캔
- OpenCV
- 카카오 코테
- 알고리즘
- 코딩테스트
- Spring
- 시스템호출
- 해시
- C++
- thymeleaf
- nestjs auth
- Nodejs
- TypeORM
- 카카오 알고리즘
- 스프링
- @Component
- Today
- Total
공부 기록장 💻
[컴퓨터구조] 제어 유니트 (Control Unit) 본문
컴퓨터구조론(생능출판사) 4장 - 제어 유니트
제어 유니트의 기능
1. 명령어 코드의 해독
2. 명령어 실행에 필요한 제어 신호들 발생
- 마이크로명령어(micro instruction) : 명령어 사이클의 각 주기에서 실행되는 마이크로-연산들에 대응되는 비트들로 이루어진 단어
- 마이크로프로그램(microprogram) : 마이크로명령어들의 집합
- 루틴(routine) : CPU의 특정 기능을 수행하기 위한 마이크로명령어들의 그룹
제어 유니트의 구조
제어 유니트의 내부 구성도
- 명령어 레지스터 -> 명령어 해독기 -> 제어 주소 레지스터(CAR) ( -> SBR) -> 제어 기억 장치 -> 제어 버퍼 레지스터(CBR) ( -> 순서 제어 모듈 -> CAR) -> 해독기
명령어 해독기(instruction decoder)
- 명령어 레지스터로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작 주소를 결정
제어 주소 레지스터(control address register: CAR)
- 다음에 실행할 마이크로명령어의 주소를 저장
제어 기억장치(Control memory) -> ROM으로 구성
- 마이크로프로그램을 저장
제어 버퍼 레지스터(Control buffer register: CBR)
- 마이크로명령어를 일시적으로 저장
서브루틴 레지스터(subroutine register: SBR)
- 마이크로프로그램에 서브루틴이 호출되는 경우, 현재의 CAR내용을 일시적으로 저장
순서 제어 모듈(Sequencing Module)
- 마이크로 명령어의 실행 순서 결엊
CPU의 명령어 세트 설계 과정
1) 명령어들의 종류와 비트 패턴을 정의
2) 명령어들의 실행에 필요한 하드웨어를 설계
3) 각 명령어를 위한 실행 사이클 루틴을 마이크로프로그래밍함
제어 기억 장치 -> CPU 칩 내에 포함되는 ROM으로 만들어짐
- 공통 루틴들(인출, 간접, 인터럽트 사이클
- 실행 사이클 루틴
명령어 해독을 하기 위해 사용되는 방법
사상(mapping) : 명령어 해독기가 연산 코드를 이용해 제어 기억장치 내 해당 실행 사이클 루틴의 시작주소를 찾는(명령어를 해독하는) 과정
- 명령어의 연산 코드를 특정 비트 패턴과 혼합시킴으로써 그 연산의 수행에 필요한 실행 사이클 루틴의 시작 주소를 찾아냄
마이크로 명령어의 형식
- 연산필드 (2개인 경우, 두 개의 마이크로0연산들이 동시에 수행될 수 있음)
- 조건(CD) 필드: 분기에 사용될 조건 플래그 지정
- 분기(BR) 필드: 분기의 종류와 다음에 실행할 마이크로명령어의 주소를 결정하는 방법 명시
- 주소(AD) 필드: 분기가 발생하는 경우를 위해 목적지 마이크로명령어의 주소를 가짐
- 연산필드 1 에 위치한 마이크로-연산들
- 연산필드 2 에 위치한 마이크로-연산들
- 조건 필드
- 분기 필드
마이크로프로그래밍
- 인출 사이클 루틴의 마이크로 명령어 루틴
- 간접 사이클 루틴의 마이크로 명령어 루틴
- 실행 사이클 루틴
- 사상방식 이용
마이크로프로그램의 순서제어
- 순서제어(sequencing): 다음에 실행할 마이크로명령어의 주소 결정
- CAR의 초깃값 = 0
MUX1
MUX2
순서 제어 회로가 포함된 제어 유니트의 구성도
주소 선택 회로의 입력 및 출력 신호들
주소 선택 방법
제어 신호의 생성
(1) 수직적 마이크로프로그래밍 (Vertical Microprogramming)
(2) 수평적 마이크로프로그래밍(Horizontal Microporgramming)
'# CS Study > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 시스템 버스, I/O 및 인터럽트 (0) | 2021.06.06 |
---|---|
[컴퓨터구조] 컴퓨터 산술과 논리 연산 (0) | 2021.04.21 |
[컴퓨터구조] CPU 구조와 기능 - 명령어 파이프라이닝(2, 4단계), 명령어 세트 (0) | 2021.04.20 |
[컴퓨터구조] CPU 구조와 기능 - 기본 구조(ALU, Register, Control Unit) / CPU 레지스터(PC, AC, IR, MAR, MBR) / 명령어 실행(인출 사이클, 실행 사이클, 인터럽트 사이클 ISR, 간접 사이클) (0) | 2021.04.20 |