제10강 중앙처리장치 1
강의내용 중앙처리장치의 개요 중앙처리장치의 내부 구조 레지스터의 종류
중앙처리장치의 개요 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치 프로그램이 수행되는 전반적인 과정을 제어 처리장치와 제어장치로 구성
중앙처리장치의 내부구조 구성요소 내부구조 산술논리연산장치 레지스터 세트 제어장치 내부버스 중앙 처리 장치 처 리 장 치 제어 A L U
중앙처리장치의 구성요소 산술논리연산장치(ALU) 구성요소 산술연산장치, 논리연산장치, 쉬프터, 상태 레지스터, 보수기 상태 레지스터(status/flag register) 연산결과의 상태를 나타내는 플래그(flag)를 저장하는 레지스터 보수기(complementer) ALU내의 데이터에 대해 보수연산을 수행
중앙처리장치의 구성요소 레지스터 세트 CPU내의 레지스터 집합 기억장치 중 액세스 속도가 가장 빠르다. 레지스터의 수는 제한된다.
중앙처리장치의 구성요소 제어장치 프로그램에 의한 연산의 순서대로 기억장치, 연산장치, 입출력장치에 제어신호를 발생한다. 제어장치의 동작 - 1단계 : 명령어를 해독하고, 명령어 레지스터에 저장 - 2단계 : 명령어 레지스터에 저장된 명령어 실행
중앙처리장치의 구성요소 내부버스 ALU와 레지스터 간의 데이터 전송을 위한 통로 - 데이터 버스와 제어버스로 구성 외부장치(기억장치, 입출력장치)와 데이터 전송 - 시스템 버스와 연결 - 시스템 버스 : 데이터, 주소, 제어 버스로 구성
중앙처리장치의 구성요소 CPU 내부버스와 시스템 버스의 연결관계 입출력장치 기억장치 내부버스 처리장치 제어장치 범용 레지스터 명령어 레지스터 특수 레지스터 명령어 해독기 산술논리연산장치 CPU 프로그램카운터 데이타버스 시스템 버 스 주소버스 제어버스 입출력장치 기억장치
레지스터 레지스터의 종류 - 특수한 기능을 수행 범용 레지스터(general purpose register) - 데이터를 일시적으로 저장 특수 레지스터(special purpose register) - 특수한 기능을 수행
레지스터 범용 레지스터 데이터 저장, 주소 저장과 같은 일반적인 목적을 위한 레지스터 CPU 내부에 있는 소규모의 일시적인 기억장치로 프로그램의 진행 도중 가까운 시간 내에 사용할 데이터나 연산결과를 일시적으로 기억시키는데 사용 데이터를 연산할 때 메모리로부터 데이터를 인출할 경우 호출시간이 많이 걸리기 때문에 CPU 내부의 레지스터에 데이터를 기억시켜두고 연산한다.
레지스터 범용 레지스터의 형태 일반적인 구조 스크래치패드 메모리 구조 ALU ALU 디코더 MUX MUX A B D1 D2 레지스터 0 레지스터 1 레지스터 2 레지스터 3 A번지 선택 스크래치패드 메모리 B번지 선택 메모리 인에이블 디코더 WE ME MUX MUX A B D1 D2 쓰기 읽기 연산제어신호 ALU ALU 연산 제어신호 자리이동제어신호 쉬프터 자리이동 제어신호 쉬프터
특수 레지스터 ALU 제어장치 CPU 내부의 특수 레지스터 구성 중앙처리장치 AC PC IR MBR MAR 내부 버스 시스템 버 스
특수 레지스터 프로그램 카운터(PC: program counter) 다음에 수행되어질 명령어가 있는 주소를 갖고 있다. - 즉, 데이터가 저장되어 있는 기억장치의 주소를 지정 현재 처리하려고 하는 데이터를 인출한 후에는 자동적으로 1 증가 프로그램 카운터의 비트 수는 기억장치의 용량에 따라 결정된다. - 예) 기억장치 전체 영역이 256MByte (= 228 )라면 프로그램카운터의 비트 수는 28비트
특수 레지스터 명령어 레지스터(IR: instruction register) 프로그램의 수행 중 가장 최근에 기억장치로부터 인출되어진 명령어를 갖고 있다. 명령어 레지스터의 비트 수는 명령어의 연산코드의 비트 수와 같다.
특수 레지스터 누산기(AC: accumulator) 데이터를 일시적으로 저장하는 레지스터 입력장치로부터 데이터를 받아들이거나, 출력장치로 데이터를 전송하는데 사용된다. 산술 및 논리연산이 이루어질 경우에는 오퍼랜드나 연산 결과를 일시적으로 기억하는 레지스터이다. CPU가 연산을 수행 한 후 그 결과는 반드시 누산기에 저장한다.
특수 레지스터 기억장치 주소 레지스터(MAR: memory address register) 기억장치 주소를 임시 저장하는 레지스터이다. 기억장치 버퍼 레지스터(MBR: memory buffer register) 기억장치로 쓰여질 데이터나 혹은 기억장치로부터 읽혀질 데이터를 임시로 저장하는 레지스터이다.
특수 레지스터 스택 포인터(SP: stack pointer) 스택 주소지정방식에서 사용된다. 스택 영역의 번지를 지정해 주는 포인터이다. 스택 영역은 실제로 데이터가 피신되는 기억 장소로써 기억장치에 위치한다. 프로그램 카운터와 같은 크기의 비트 수를 가진다.
특수 레지스터 ALU 제어장치 CPU 내부의 특수 레지스터 구성 중앙처리장치 AC PC IR MBR MAR 내부 버스 시스템 버 스
중앙처리장치에서의 명령어 수행 ALU 중앙처리장치와 기억장치의 구성도 기 억 장 치 AC PC 제어장치 IR MBR MAR 내부 버스 제어장치 IR MBR MAR 데이터버스 주소버스 제어버스
명령어 사이클 명령어 사이클(instruction cycle) 명령어 사이클의 종류 한 개의 명령어를 CPU에서 수행하는데 필요한 전체 수행 과정 명령어 사이클의 종류 인출 사이클(fetch cycle) 실행 사이클(execute cycle) 간접 사이클(indirect cycle) 인터럽트 사이클(interrupt cycle)
명령어 사이클 명령어 수행 과정 명령어 인출 명령어 해석 명령어 실행 저 장 인터럽트 처리 기억장치로부터 명령어를 가져오는 과정 인출된 명령어의 주소는 PC에 들어있고, 인출된 명령어는 IR로 옮겨진다. 명령어 인출 명령어를 해독하는 과정 명령어의 종류에 따라 필요한 경우 오퍼랜드의 인출이 일어난다. 명령어 해석 지정된 연산을 실행하는 과정 간접주소지정인 경우 기억장치로부터 데이터가 들어있는 유효주소를 인출 명령어 실행 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정 저 장 명령어 실행 도중에 입출력장치와 같은 다른 장치에 의해 인터럽트가 들어오면 그에 합당한 서비스를 제공하는 과정 인터럽트 처리
명령어 인출 사이클 기억장치에 저장되어 있는 명령어를 인출하는 과정 T0 : MAR ← PC (첫번째 클럭 T0에서는 다음 명령어의 주소가 들어 있는 PC의 내용을 MAR로 이동 시킨다.) T1 : MBR ← M[MAR], PC ← PC+1 (두번째 클럭 T1 에서는 MAR 에 저장된 주소를 가지고 기억장치에 저장된 내용을 MBR로 이동시키며, 동시에 PC 를 1 증가시킨다.) T2 : IR ← MBR (세번째 클럭 T2 에서는 MBR에 저장된 명령어를 실행시키기 위해 IR로 이동시킨다.)
명령어 인출 사이클 ALU 명령어 인출사이클의 명령어 흐름도 AC IR MBR MAR PC 제어장치 기 억 장 치 중앙처리장치 내부 버스 AC IR MBR MAR PC 제어장치 데이터버스 기 억 장 치 T0 T1 T2 주소버스 제어버스 명령어 인출사이클의 명령어 흐름도
다음 강의 <제11강 중앙처리장치 2> 수고하셨습니다. 다음 강의 <제11강 중앙처리장치 2>