CPU : 컴퓨터의 핵심 요소
CPU의 기본 기능 : 기억장치에 저장되어 있는 p/g 코드인 명령어를 실행함으로써 ‘p/g 수행’
CPU가 p/g을 수행하기 위한 세부적인 동작
① 명령어 인출 (instruction fetch) : 저장장치로부터 명령어를 읽어옴.
② 명령어 해독 (instruction decode) : 수행 동작의 결정을 위해 명령어 해독.
③ data 인출 (data fetch) : 명령어 실행을 위해, data가 필요한 경우.
④ data 처리 (data process) : 산술/논리 연산을 수행.
⑤ data 저장 (data store) : 수행 결과를 저장.
※ ①~②는 반드시 수행, ③~⑤는 선택적 수행.
이 장에서는 ‘CPU의 구조와 동작 원리’에 대해 다룸.
① CPU의 내부 구성요소
② 명령어 실행 과정 분석 (CPU 동작원리)
③ 파이프라이닝의 원리와 명령어 형식
CPU의 내부 구성요소 : 산술/논리연산장치(ALU) → 회로뭉치, register(기억장치, reg.), 제어유닛
= ALU : 산술(+, -, ×, ÷), 논리(AND, OR, NOT 등) => 3장에서 자세히 다룸.
= 레지스터 : 기억장치들 중 가장 빠름. 비교적 공간을 많이 차지, 특수용도와 일반용도로 나뉨.
= 제어유닛 : 명령어 해석 후 적절한 제어신호 발생, 명령어 수와 제어유닛 복잡도는 비례관계. → 회로가 복잡하면 실행속도 느려짐. RISC
CPU 내부버스 : CPU 내부 구성요소들 간의 정보 전송 통로 => data 버스/주소 버스/제어 버스
※ CPU 내부 버스선들은 외부의 시스템 버스와 직접 연결되지 않으며 반드시 버퍼 reg. 혹은 인터페이스 회로를 통해 연결.
**명령어 사이클 : CPU가 하나의 명령어를 실행하는데 필요한 전체 과정 (**fetch cycle + execution cycle)
= 명령어 인출 (fetch) : CPU가 기억장치로부터 명령어를 읽어오는 단계
= 명령어 실행 (execution) : 명령어를 실행하는 단계
= 명령어 사이클은 CPU가 p/g 실행을 시작한 순간부터 전원을 끄거나 시스템이 중단 될 때까지 반복 수행
CPU 내부 reg.들 [그림 2-3]
① 프로그램 카운터(PC) : 다음에 인출될 명령어의 주소를 저장하는 reg.명령어가 인출된 후에 주소가 한 단위 증가 혹은 목적주소로 갱신.
② 누산기(accumulator; AC, working reg.; W-reg.) : ALU의 출력에 연결되어 data를 일시적으로 저장하는 reg.. reg.의 크기는 word(CPU가 한 번에 처리할 수 있는 data 폭)의 길이와 동일
③ 명령어 reg. (instruction reg.; IR) : 가장 최근에 인출된 명령어가 저장되는 reg.
④ 기억장치 주소 reg. (memory address reg.; MAR) : PC의 주소가 시스템 주소버스로 출력되기 전에 임시로 저장되는 주소 reg. (이 reg.의 출력선들은 주소버스와 직결)
⑤ 기억장치 버퍼 reg. (memory buffer reg.; MBR) : 저장장치에 저장되거나 읽혀진 data가 임시로 저장되는 버퍼 reg. (이 reg.의 입출력선들은 data 버스와 직결)