220 likes | 474 Views
중앙 처리 장치. 중앙 처리 장치의 개요와 구성요소 명령어 사이클 CISC 와 RISC 의 비교. 중앙 처리 장치의 개요. 명령어를 수행하고 데이터를 처리하는 장치 컴퓨터 시스템에서 프로그램이 수행되는 전반적인 과정을 제어 기억장치로부터 명령어를 인출 인출된 명령어를 해독하여 필요한 연산을 수행 데이터에 접근하는데 필요한 기억장치주소와 제어신호를 제공 명령어를 해독하고 그 명령어의 실행 과정을 제어
E N D
중앙 처리 장치 중앙 처리 장치의 개요와 구성요소 명령어 사이클 CISC와 RISC의 비교
중앙 처리 장치의 개요 • 명령어를 수행하고 데이터를 처리하는 장치 • 컴퓨터 시스템에서 프로그램이 수행되는 전반적인 과정을 제어 • 기억장치로부터 명령어를 인출 • 인출된 명령어를 해독하여 필요한 연산을 수행 • 데이터에 접근하는데 필요한 기억장치주소와 제어신호를 제공 • 명령어를 해독하고 그 명령어의 실행 과정을 제어 • CPU의 내부적인 기능과 프로그램 명령어를 실행할 때 기억장치와 입출력 장치가 필요로 하는 주소, 데이터, 제어신호 등을 제공
중앙 처리 장치(CPU) 처리 장치 제어 장치 레지스터 세트 ALU 내부버스 중앙처리장치의 내부구조 • 제어장치 • PC, IR, 타이밍 회로, 제어 논리로 구성 • 하드웨어 : 레지스터, 디코더, 다수의 게이트로 구성 • 마이크로 프로그램 : 제어기억장치와 제어 순서기를 사용 • 처리장치 • 하나의 ALU와 많은 내부 레지스터, 내부 버스로 구성
중앙 처리 장치(CPU) 내부버스 처리 장치 제어 장치 범용 레지스터 명령어 레지스터 특수 레지스터 명령어 해독기 ALU PC 데이터버스 시스템 버스 주소버스 제어버스 입출력 장치 기억 장치 내부버스와 시스템 버스의 연결 관계
CPU의 내부 구성 요소 • ALU • 상태레지스터, 쉬프터, 보수기, 산술연산장치, 논리연산장치로 구성 • 상태레지스터 : 연산 결과의 상태를 나타내는 플래그를 저장 • 보수기 : ALU 내의 데이터에 대해 보수 연산을 수행 • 레지스터 세트 • CPU 내부의 레지스터 집합 • 고속이나 가격이 비싸 레지스터 수가 제한됨 • 제어장치 • 입출력 장치, 연산장치, 기억장치 등에서 발생되는 제어신호를 받아 다음에 처리할 작업을 제어 • 명령어를 해독하여 IR에 저장 IR에 저장된 명령어를 실행 • 내부버스 • ALU와 레지스터간의 데이터 전송을 위한 데이터 버스와 제어 신호를 위한 버스로 구성 • 외부 장치와 데이터 전송을 위해서는 시스템 버스를 사용 • 주소버스, 제어버스, 데이터버스 • 시스템 버스와 직접 연결되지 않음 버퍼 레지스터나 시스템 버스 인터페이스 이용
레지스터 • CPU에 있는 임시 저장장치 • 주기억 장치에서 읽어온 명령어와 데이터를 임시 보관 • ALU에서 처리된 결과 데이터를 임시 보관 • 범용 레지스터 • 소규모의 일시적인 기억 장치로 프로그램의 진행 도중 가까운 시간 내에 사용할 데이터나 연산 결과를 일시적으로 기억시키는 데 사용 • 데이터의 저장, 주소 저장과 같은 일반적인 목적을 위해 사용 • 종류 • 플립플롭으로 구성된 일반적 레지스터를 여러 개 묶어 구성 • 스크래치 패드 메모리 구조
특수 레지스터 • 기능 • CPU 내의 특수한 동작을 전담하는 역할 • 종류 • PC : 다음에 수행될 명령어가 있는 주소를 가짐 • PC 값이 MAR로 전달되면 기억장치 읽기 동작이 수행됨 • IR : 가장 최근에 인출된(수행될) 명령어를 가짐 • 명령어 해독기에 의해 해독된 후 제어신호로 전송 • AC : 연산이 이루어질 때 오퍼랜드나 연산 결과를 일시 저장 • CPU의 연산 결과는 반드시 AC에 저장 • MAR : 기억장치의 주소를 임시 저장 • 다음에 수행될 명령어를 인출하기 위해 현재 PC의 내용이 주소버스로 출력되기 전에 일시 저장 • MBR : 기억장치로 쓰일 데이터나 읽힐 데이터를 임시 저장 • SP : 스택 주소 지정 방식에 사용되며 스택의 최상위를 지정 • 스택 영역의 번지를 지정하며 CPU 내부에 존재
중앙 처리 장치(CPU) ALU AC PC 내부버스 제어장치 IR MBR MAR 시스템 버스 특수 레지스터의 구성
명령어 수행 과정 • 명령어수행 과정 • 명령어 인출 : 기억장치로부터 명령어를 가져오는 것 • 인출된 명령어의 주소는 PC로 이도 • PC는 자동 증가하여 다음 명령어의 주소를 가리킴 • 인출된 명령어는 IR로 이동 • 명령어 해석 : 인출된 명령어가 무엇을 수행해야 될지 해독하는 것 • 명령어 종류에 따라 필요한 경우에 오퍼랜드의 인출이 발생 • 명령어 실행 : 지정된 연산을 수행 • 간접주소방식의 명령어인 경우에는 기억장치에서 데이터가 들어 있는 유효주소를 가져옴 • 저장 : 수행된 연산 결과가 레지스터나 기억장치에 쓰여지는 과정 • 인터럽트 처리 : 실행 중에 다른 장치에 의해 인터럽트가 발생하면 그에 합당한 서비스를 제공하는 과정 • 인터럽트가 발생하면 현재 프로세서의 상태를 저장한 후 해당 인터럽트 서브 루틴을 수행
명령어 사이클 • 정의 • 명령어를 CPU에서 수행하는데 필요한 전체 수행 과정 • 구분 • 인출 사이클 (명령어 실행의 1단계) • 명령어를 인출하여 IR에 저장하는 과정 • 실행 사이클 (명령어 실행의 2~3단계) • 명령어를 해석하여 실행하는 과정 • 간접 사이클 (명령어 실행의 3단계 중에 발생) • 명령어가 간접 주소 방식일 때 유효주소를 기억장치에서 읽어 들이는 과정 • 인터럽트 사이클 (명령어 실행의 51단계) • 인터럽트가 발생했을 때 그에 합당한 처리를 수행하는 과정
명령어 인출 사이클 • 기억장치에 있는 명령어를 인출하는 과정 • PC는 다음 명령어를 읽을 수 있게 1 증가 • 인출된 명령어는 MBR을 경유하여 IR에 저장 • IR의 명령어는 명령어 해독기를 통하여 해석 • 필요한 동작을 수행 • 읽기 동작의 예 • PC의 내용을 MAR로 전송 • 기억장치의 내용은 기억장치 데이터 레지스터를 통하여 누산기에 적재 • 연산 명령의 예 • 누산기의 내용을 ALU로 전송 • 연산을 수행한 후 그 결과를 다시 누산기에 저장
중앙 처리 장치 기 억 장 치 ALU AC PC T0 내부버스 T2 제어장치 IR MBR MAR T1 데이터 주소 데이터 버스 주소 버스 제어 버스 명령어 인출 사이클의 명령어 흐름도 T0 : MAR PC T1 : MBR <- M[MAR], PC PC + 1 T2 : IR MBR 마이크로 표현
명령어 실행 사이클 • 명령어를 실행하는 단계 • IR의 명령어를 해독한 후 필요한 연산을 수행 • 수행 연산 기능 분류 • 데이터의 이동 기능 • 기억장치와 CPU 혹은 입출력 장치 사이에 데이터 이동 • LOAD • 데이터의 처리 기능 • 산술 연산 혹은 논리연산을 통한 데이터의 처리 • ADD • 데이터의 저장 기능 • 연산 결과를 기억장치에 저장 • Store • 제어기능 • 프로그램의 실행 순서를 결정 • 분기 혹은 점프 명령어
중앙 처리 장치 기 억 장 치 ALU AC PC T2 내부버스 T0 제어장치 IR MBR MAR T1 데이터 주소 데이터 버스 주소 버스 제어 버스 Load 명령어의 실행 과정 • 원하는 기억장치의 데이터를 AC로 가져오는 명령 • AC로 이동할 데이터가 들어 있는 주소가 MAR에 전송 • MAR에 있는 주소의 데이터가 MBR로 전송 • MBR에 있는 데이터를 AC로 전송 T0 : MAR IR(adrs) T1 : MBR <- M[MAR] T2 : AC MBR
중앙 처리 장치 기 억 장 치 ALU AC PC T2 내부버스 T0 제어장치 IR MBR MAR T1 데이터 주소 데이터 버스 주소 버스 제어 버스 Add 명령어의 실행 과정 • AC의 데이터와 기억 장치의 데이터를 더해 AC에 저장하는 명령 • 더해질 데이터가 들어 있는 주소가 MAR에 전송 • MAR에 있는 주소의 데이터가 MBR로 전송 • AC + MBR을 연산한 후 그 결과가 AC로 전송 T0 : MAR IR(adrs) T1 : MBR <- M[MAR] T2 : AC AC + MBR
중앙 처리 장치 기 억 장 치 ALU AC PC T1 내부버스 T0 제어장치 IR MBR MAR T2 데이터 주소 데이터 버스 주소 버스 제어 버스 STORE 명령어의 실행 과정 • AC의 데이터를 기억장치에 저장하는 명령 • 저장될 주소가 MAR에 전송 • AC의 데이터가 MBR로 전송 • MBR에 있는 데이터가 MAR에 있는 주소로 저장 T0 : MAR IR(adrs) T1 : MBR AC T2 : M[MAR] MBR
중앙 처리 장치 기 억 장 치 ALU AC PC 내부버스 T0 제어장치 IR MBR MAR 데이터 주소 데이터 버스 주소 버스 제어 버스 분기 혹은 점프 명령어의 실행 과정 • 제어기능을 수행하는 명령어로 프로그램 순서를 바꾸는 명령 • 다음에 수행할 명령어는 PC가 가지는 주소가 아니라 분기 혹은 점프 명령어에 있는 주소에 해당하는 명령어 • 분기 혹은 점프 명령어에 있는 주소가 PC로 전송 T0 : PC IR(adrs)
간접 사이클 • 간접 주소 지정 방식을 사용하는 명령어에서 오퍼랜드 부분의 유효 주소를 결정하는 데 사용 • 두 번의 기억장치 액세스가 필요 • 유효 주소를 얻는 간접 사이클이 필요 • 기억장치로부터 명령어를 가져온 후 그 주소 부분을 이용하여 다시 기억 장치에 접근하여 유효주소를 가져와야 함 • 간접 주소 지정 방식을 사용한 명령어는 간접 사이클이 실행 사이클보다 먼저 수행됨 • 간접 사이클 동작 • 명령어의 주소가 MAR에 전송 • MAR이 지정한 주소의 MBR로 전송 • MBR에 있는 데이터가 IR의 주소 필드에 실림 • 마이크로 연산 • T0 : MAR IR(adrs) • T1 : MBR <- M[MAR] • T2 : IR MBR
인터럽트 사이클 • 인터럽트의 정의 • CPU가 현재 처리 중인 프로그램 루틴을 중단시키고 다른 동작을 수행하도록 하는 것 • 인터럽트 사이클 • CPU의 정상적인 동작 중에 인터럽트 처리 요청이 발생했을 때 실행 • 실행 사이클이 끝난 직후에 인터럽트 발생 여부를 검사 • 발생했으면 인터럽트 서비스 루틴을 시작 • 인터럽트 사이클 동작 • 현재 수행하고 있는 명령어를 처리한 후, 다음에 수행할 명령어의 주소를 갖고 있는 PC의 내용을 스택에 저장 • 복귀 주소를 저장 • 요청된 인터럽트 서비스 루틴을 호출하여 그 서비스 루틴의 시작 주소를 PC에 저장 • 마이크로 연산 • T0 : MAR PC • T1 : MBR <- SP, PC ISP(adrs) • T2 : M[MAR] MBR
CISC와 RISC의 특징 • CISC(complex instruction set computer) • 연산을 수행하는데 사용되는 복잡한 명령어를 수백 개 이상 탑재하고 있는 마이크로 처리기 • 명령어의 길이가 가변적이고 복잡하게 구성 • 일련의 명령어를 하나의 처리기가 순차적으로 처리하기에 유용 • 명령어 개수의 증가에 따라 처리기 내부구조가 매우 복잡하고 고속으로 작동되는 처리기를 만들기가 힘들어 속도 향상에 한계 • 한번에 여러 개의 명령어를 동시에 처리할 수 있는 기술이 필요 듀얼 코어 시스템 • CISC의 특징(pp. 145)
CISC와 RISC의 특징 • RISC(reduced instruction set computer) • CISC의 복잡한 명령어를 단순화하여 명령어의 수를 줄이고 하드웨어를 간단하게 개선한 처리기 • 명령어가 다양하고 복잡하여 하나의 명령어를 가져오는데 여러 번의 인출 동작이 필요 • 제어장치의 내부 회로가 복잡해지면서 하드웨어의 규모 증가 • 명령어의 해독과 실행에 소요되는 시간의 증가 • 워크스테이션 및 중/대형 컴퓨터의 성능 개선 목적으로 도입 • RISC의 특징 CISC의 특징 • 단일 사이클의 간단한 명령어 형식을 가짐 여러 사이클, 복잡 • 고정된 길이의 명령어 여러 길이 • 적은 수의 명령어와 주소 지정 방식을 가짐 많은 명령어 • 적재와 저장 명령만이 기억장치의 액세스가 가능 모든 명령어가 가능 • 고도의 파이프라인을 가짐 파이프라인 없거나 소수 • 하드웨어에 의한 제어가 이루어짐 마이크로프로그램 제어 • 복잡함이 컴파일러에 있음 마이크로프로그램 • 다중 레지스터 구조 단일 레지스터 • 상대적으로 CPU의 처리 속도가 빠름
CISC와 RISC의 비교 • RISC가 CISC에 비해 장점을 더 많이 가짐 • 최근에는 CISC 프로세서들이 점점 고속화 추세 • RISC와 처리 속도 차이가 줄어듬 • CISC는 RISC의 장점을 보완하여 차이가 감소