Download presentation
Presentation is loading. Please wait.
Published bySucianty Salim Modified 5년 전
1
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
레지스터의 조직 명령어 사이클 명령어 파이프 라이닝
2
Section 01 컴퓨터 본체에서 CPU의 위치 살펴보기
[그림 9-1] 주 회로기판에서 중앙처리장치와 주기억장치
3
Section 02 CPU의 성능 성능 측정 요소 클럭 주파수 워드크기 캐시 메모리 명령어집합의 복잡성 파이프라이닝 병렬처리
4
성능 측정 요소 클럭 주파수 워드크기 수행되는 연산의 타이밍을 맞추기 위한 펄스 컴퓨터의 명령어 수행 속도 결정
하나의 클럭 동안에 명령어 부 사이클이 수행 클럭의 주기가 짧을 수록 많은 명령을 처리 워드크기 CPU가 한번에 읽고 쓸 수 있는 비트수 레지스터나 데이터버스의 크기와 일치 워드가 큰 시스템은 워드가 작은 시스템에 비해 한 명령어에서 더 많은 데이터 처리 가능
5
성능 측정 요소 캐시 메모리 명령어 집합의 복잡성 CPU가 데이터를 빠르게 접근할 수 있는 고속 기억장치
읽기와 쓰기의 속도 향상 명령어 집합의 복잡성 복잡 명령어 집합 컴퓨터(CISC : Complex Instruction Set Computer) CPU에 많은 복잡한 명령어가 내재된 컴퓨터 한 명령어가 메모리에 많은 바이트를 차지 명령어의 길이가 다름 축소 명령어 집합 컴퓨터 (RISC : Reduced Instruction Set Computer) CPU 내부에 빠르게 수행되는 제한된 수의 간단한 명령어만이 내재된 컴퓨터 모든 명령어 길이가 일정
6
성능 측정 요소 파이프라이닝 병렬처리 프로세서가 이전명령 마치기 전에 다음명령을 수행 병행처리로 속도 향상
다수의 CPU가 있는 컴퓨터에서 한번에 여러 개의 명령어를 동시에 처리하는 방법 [그림 9-2] 파이프라이닝의 동작 원리 [그림 9-3] 병렬 처리의 동작 원리
7
Section 03 CPU의 기능 명령어 인출 명령어 해독 명령어에 따라 다른 수행기능
캐시나 주기억장치에 저장되어 있는 명령어를 읽어오는 기능 명령어 해독 읽혀진 명령어에 대해 수행해야 할 동작을 결정하기 위해 인출된 명령어 해독 명령어에 따라 다른 수행기능 기능 내용 데이터 인출(Data Fetch) 기능 명령어 실행을 위해 기억장치 또는 입출력장치로부터 데이터를 읽어오는 과정 데이터 처리(Data Process)기능 읽어 온 데이터에 대한 산술적 또는 논리적 연산을 수행 데이터 쓰기(Data Store)기능 데이터 처리과정에서의 수행 결과를 저장하는 기능 [표 9-1] 명령어의 기능
9
Section 04 CPU의 조직 CPU 내부 구조 연산장치 레지스터 세트 제어장치 내부 CPU 버스
10
연산장치(Arithmetic and Logic Unit)
CPU 내부 구조 연산장치(Arithmetic and Logic Unit) 이동기 : 데이터의 좌우 이동 보수기 : 보수 연산 산술 및 부울 로직 : 산술 연산과 논리 연산 상태 플래그 : ALU 내의 상태 표시(오버플로우, 0나눗셈 등) 레지스터 세트 CPU 내부의 레지스터 집합 레지스터는 컴퓨터의 기억장치들 중 액세스속도가 가장 빠름 제한된 수의 레지스터가 CPU 내부에 존재 특수 목적용과 일반 목적용으로 구분
11
내부 CPU 버스(internal CPU bus)
제어장치 프로그램에 의해 주어진 연산의 순서대로 실행하기 위해 기억,연산,입출력장치에 제어신호 발생 제어장치의 동작 1단계 : 명령어를 해독 제어장치내의 명령어 레지스터(IR)에 저장 2단계 : 명령어 레지스터에 저장된 명령어를 실행 내부 CPU 버스(internal CPU bus) ALU와 레지스터들간의 데이터 이동을 위한 통로 데이터 선과 제어선으로 구성 외부의 시스템 버스와 연결되지 않음 버퍼레지스터 또는 버스 인터페이스 회로를 통해 외부 시스템 버스와 접속
12
4단계 CPU 동작 데이터는 주기억장치로부터 레지스터 1번으로 외부 시스템 버스를 통해 연결
제어장치는 레지스터 1과 레지스터 2에 저장되어 있는 데이터를 덧셈하라는 제어신호를 ALU로 전달 ALU 에서는 제어신호에 의해 덧셈을 수행, 그 결과를 누산기에 저장 계산결과는 외부시스템 버스를 통해 주기억장치에 전달 [그림 9-6] CPU의 기본 동작
13
제어장치의 4단계 기본 동작 주 기억 장치에서 명령어를 읽어서 제어장치 내에 명령어 레지스터로 저장된다.
명령어의 포인터(PC)에는 다음에 실행될 명령어의 주소가 저장된다. 제어장치가 명령어 레지스터의 명령어를 해석한다. 해석된 명령어는 해당되는 제어신호를 발생하게 된다. [그림 9-7] 제어장치의 기본 동작
14
CPU는 주 기억장치에서 읽어온 명령어와 데이터를 임시 보관하는 장소가 필요 ALU의 처리 결과 임시적 보관장소 필요 레지스터
Section 05 레지스터의 조직 CPU는 주 기억장치에서 읽어온 명령어와 데이터를 임시 보관하는 장소가 필요 ALU의 처리 결과 임시적 보관장소 필요 레지스터 CPU에서 사용되는 임시적인 저장장치 기억장치 계층의 최상위에 위치하며 동작속도가 가장 빠름 고비용으로 용량제한이 있음 사용자에게 보이는 레지스터와 제어 및 상태 레지스터로 구분
15
사용자에게 보이는 레지스터 어셈블리 프로그램을 위해 사용되는 레지스터 프로그래머가 레지스터의 명칭과 용도를 미리 인지
프로그래머가 레지스터의 명칭과 용도를 미리 인지 일반 목적용 레지스터 여러 가지 용도로 사용, 연산의 피연산자를 저장 데이터 레지스터 데이터 저장에 사용, 누산기(AC:Accmulator) 주소레지스터 특정 주소 지정 방식을 위해 사용 세그먼트 포인터: 세그먼트 시작주소 저장 인덱스 레지스터: 인덱스주소 저장 스택 포인터:스택에 저장되는 번지 수 저장 조건코드 레지스터에 저장된 데이터의 상태 표시:상태 레지스터 부호비트 영(zero)비트 오버플로우 비트
16
제어 및 상태 레지스터 프로그램 실행 과정에서 CPU 내부적으로 사용되는 레지스터
프로그램 카운터(Program Counter) : 다음 인출할 프로그램의 주소 저장 명령어 레지스터(Instruction Register): 인출하여 실행할 명령어를 저장 기억장치 주소 레지스터(Memory Address Register) : 주소 값을 저장, 주소버스와 직접 연결 기억장치 버퍼 레지스터(Memory Buffer Register) : 데이터를 저장, 데이터버스와 직접 연결 입/출력 주소 레지스터(I/O AR: I/O Address Register) 입/출력 버퍼 레지스터(I/O BR: I/O Buffer Register) 프로그램 상태 단어(Program Status Word): 제어 및 상태레지스터에 저장된 데이터의 상태와 조건을 저장 부호(sign)비트, 영(zero)비트, 올림수(carry)비트, 동등(equal)비트, 오버플로우(overflow)비트, 인터럽트 가능/불가능(interrupt enable/disable)비트 , 슈퍼바이저(supervisor)비트
18
명령어 인출 사이클(fetch cycle) 명령어 실행 사이클(execute cycle)
Section 06 명령어 사이클 명령어 인출 사이클(fetch cycle) 명령어 실행 사이클(execute cycle) [그림 9-9] 명령어 사이클
19
CPU가 주 기억장치로 부터 명령어를 읽어 오는 단계
명령어 인출 사이클 CPU가 주 기억장치로 부터 명령어를 읽어 오는 단계 프로그램 카운터(PC)는 다음에 인출할 명령어의 주소가 저장 프로세서는 PC가 가리키는 기억장소로부터 명령어를 인출한 후 PC 내용을 증가 인출된 명령어가 명령어 레지스터(IR)로 적재. 프로세서는 명령어를 해석하고, 요구된 동작을 수행 CPU 클럭 마이크로 연산 동작 t0 MAR → PC PC 내용을 MAR로 전송 t1 MBR → M[MAR] PC → PC + 1 해당주소 기억장치의 명령어가 MBR로 적재 PC의 내용에 1을 증가 t2 IR → MBR MBR에 있는 명령어 코드가 IR로 이동 [표 9-2] 인출 사이클의 마이크로 연산
20
인출 사이클에서 주소와 명령어 흐름 [그림 9-10] 인출 사이클에서 주소와 명령어 흐름
21
명령어 실행 사이클 명령어 실행의 종류 프로세서와 기억장치 간에 데이터가 전송 프로세서와 I/O 모듈 간에 데이터가 전송
데이터에 대하여 지정된 산술 혹은 논리 연산이 수행 제어(control)동작 점프(jump)와 같이 실행될 명령어의 순서가 변경될 때 사용된다.
22
덧셈 연산의 실행 사이클(ADD A,(addr)
명령어 실행 사이클 덧셈 연산의 실행 사이클(ADD A,(addr) CPU 클럭 마이크로 연산 동작 t0 MAR → IR(addr) MBR에 저장될 데이터의 기억장치의 주소를 MAR로 전송 t1 MBR → M[MAR] 저장할 데이터를 버퍼 레지스터인 MBR로 이동 t2 AC → AC + MBR MBR 데이터와 AC의 내용을 더하고 결과값을 다시AC에 저장 [표 9-3] ADD 실행 사이클의 마이크로 연산
23
ADD 명령어 실행 사이클 동안의 정보흐름 [그림 9-11] ADD 명령어 실행 사이클 동안의 정보 흐름
24
명령어 파이프 라이닝 CPU의 프로그램 처리속도를 높이기 위해 CPU내부 하드웨어를 여러 단계로 나누너 병행처리토록 하는 기술 예) 명령어 수행과 다음 명령어 인출을 동시에 수행 2단계 명령어 파이프라인 4단계 명령어 파이프라인 6단계 명령어 파이프라인 파이프라인에 의한 속도 향상
25
2단계 명령어 파이프라이닝 인출(fetch stage), 실행(execute stage) 두개의 독립적 파이프라인 모듈로 분리 실행 명령어 처리 속도가 약 2배 향상 처리시간이 동일하지 않으면 2배의 속도 향상을 기대할 수 없다. [그림 9-12] 2단계 명령어 파이프라인과 시간 흐름도
26
명령어 인출(IF : Instruction Fetch) 명령어 해독(ID : Instruction Decode)
4단계 명령어 파이프라인 명령어 인출(IF : Instruction Fetch) 명령어를 기억장치로부터 인출 명령어 해독(ID : Instruction Decode) 인출된 명령어 해석 오퍼랜드 인출(OF : Operand Fetch) 기억장치로부터 변수 또는 데이터 인출 실행(EX : Execute) 지정된 연산을 수행 2단계 명령어 파이프 라인에 비해 더 빠른 속도
27
4단계 명령어 파이프 라인과 시간 흐름도 [그림 9-13] 4단계 명령어 파이프라인과 시간 흐름도
28
FI (Fetch Instruction) DI (Decode Instruction)
6단계 명령어 파이프라인 FI (Fetch Instruction) DI (Decode Instruction) CO (Calculation Operand) FO (Fetch Operand) EI (Execute Instruction) WO (Write Operand) 처리 속도의 향상 최대 6개의 명령어 단계가 동시에 처리
29
6단계 명령어 파이프 라인과 시간 흐름도 [그림 9-14] 6단계 명령어 파이프라인 시간 흐름도
30
파이프라인에 의한 속도 향상 파이프라인 단계 수 = k 실행할 명령어들의 수 = N
각 파이프라인 단계가 한 클럭 주기씩 걸린다고 가정 파이프라인에 의한 전체 명령어 실행 시간 T T = k + (N - 1) 명령어를 실행하는데 k 주기 소요 (N - 1)개의 명령어들은 각각 한 주기씩만 소요 만약 파이프라인 되지 않은 경우에는 N개의 명령어들을 실행하는 데는 k × N 주기가 소요
31
속도 향상의 예 [예] 파이프라이닝의 속도 향상 : 속도향상 = (10 × 4) / 13 ≒ 3.08 배
파이프라인 단계 수 = 4 파이프라인 클럭 = 1 MHz(각 단 계에서의 소요시간 = 1 ㎲)인 경우 첫 번째 명령어 실행에 걸리는 시간 = 4 ㎲ 다음부터는 매 1 ㎲ 마다 한 개씩의 명령어 실행 완료 10개의 명령어 실행 시간 = 4 + (10 - 1) = 13 ㎲ 파이프라이닝의 속도 향상 : 속도향상 = (10 × 4) / 13 ≒ 3.08 배
32
속도 향상의 예 [예] 파이프라인 단계 수 = 4 명령어의 수 N 증가
N = 100 이라면, Sp = 400 / 103 = 3.88 N = 1000 이라면, Sp = 4000 / 1003 = 3.99 N = 이라면, Sp = / = 3.998 N → ∞, Sp = 4 파이프라인 단계수 만큼 속도 증가
Similar presentations