CPU-4 - 이상정

Download Report

Transcript CPU-4 - 이상정

6. CPU 설계
순천향대학교 정보기술공학부
이상정
컴퓨터 구조
6장 학습내용
 고정배선방식제어(hardwired control)를 사용한
CPU의 설계
 CPU의 활용분야 분석
 마이크로동작과 CPU의 상태도 설계
 내부 데이터 경로와 필요한 제어신호 정의
 제어신호와 제어부(control unit) 설계
 2개의 간단한 CPU 설계
 Intel
8085 마이크로프로세서의 내부구조
순천향대학교 정보기술공학부
이상정
2
컴퓨터 구조
CPU의 사양
 CPU의 능력을 수행할 작업과 일치
 적당한 명령어 집합 구조 설계
• 명령어와 레지스터
 CPU의 상태도 설계
• 상태와 마이크로동작 명시
 CPU의 동작 순차
• 인출(fetch) 주기
• 명령어를 메모리에서 인출하고, 해독주기로 간다
• 해독(decode) 주기
• 명령어를 해독하고, 실행주기로 간다
• 실행(execute) 주기
• 명령어를 실행하고, 인출주기로 간다
순천향대학교 정보기술공학부
이상정
3
컴퓨터 구조
CPU 상태도 개요
순천향대학교 정보기술공학부
이상정
4
Very Simple CPU 설계
컴퓨터 구조
Very Simple CPU의 사양
 메모리
• 64바이트 메모리 공간
• 6 비트 주소
 버스
• 주소 버스 6비트 A[5..0]
• 데이터 버스 8비트 D[7..0]
 레지스터
• 8비트 누산기 AC
• 6비트 주소 레지스터(address register: AR)
• 메모리에 주소 저장
• 6비트 프로그램 카운터(program counter: PC)
• 다음에 실행될 명령어 주소
• 8비트 데이터 레지스터(data register: DR)
• 메모리에서 명령어와 데이터를 받는다
• 2비트 명령어 레지스터(instruction register: IR)
• 메모리에서 인출된 명령어 코드(OP code) 저장
순천향대학교 정보기술공학부
이상정
6
컴퓨터 구조
명령어
 4개의 명령어
순천향대학교 정보기술공학부
이상정
7
컴퓨터 구조
명령어 인출
 동작 단계
• 주소 핀 A[5..0]에 주소를 실어 메모리에 보낸다
• 메모리는 주소를 해독하고 명령어를 읽어서 CPU의
D[7..0] 핀에 실어 보낸다
 명령어 인출의 상태
FETCH1: AR ← PC
FETCH2: DR ← M, PC ← PC + 1
FETCH3: IR ← DR[7..6], AR ← DR[5..0]
순천향대학교 정보기술공학부
이상정
8
컴퓨터 구조
명령어 해독
 인출된 명령어를 해독하고 실행 루틴 결정
순천향대학교 정보기술공학부
이상정
9
컴퓨터 구조
명령어 실행
 ADD 명령어
• 하나의 오퍼랜드를 메모리에서 가져오기
• 누산기와 오퍼랜드를 더해서 결과를 누산기에 저장
• ADD 명령어 실행의 상태
ADD1: DR ← M
ADD2: AC ← AC + DR
 AND 명령어
AND1: DR ← M
AND2: AC ← AC ^ DR
 JMP 명령어
JMP1: PC ← DR[5..0] 혹은 PC ← AR
 INC 명령어
INC1: AC ← AC + 1
순천향대학교 정보기술공학부
이상정
10
컴퓨터 구조
CPU의 상태도
순천향대학교 정보기술공학부
이상정
11
컴퓨터 구조
데이터 경로(data path) 설계 (1)
 마이크로 동작
FETCH1: AR ← PC
FETCH2: DR ← M, PC ← PC + 1
FETCH3: IR ← DR[7..6], AR ← DR[5..0]
ADD1: DR ← M
ADD2: AC ← AC + DR
AND1: DR ← M
AND2: AC ← AC ^ DR
JMP1: PC ← DR[5..0]
INC1: AC ← AC + 1
순천향대학교 정보기술공학부
이상정
12
컴퓨터 구조
데이터 경로(data path) 설계 (2)
 레지스터 저장을 기준으로 재정렬
AR: AR ← PC; AR ← DR[5..0]
PC: PC ← PC + 1; PC ← DR[5..0]
DR: DR ← M
IR : IR ← DR[7..6]
AC: AC ← AC + DR; AC ← AC ^ DR; AC ← AC + 1
순천향대학교 정보기술공학부
이상정
13
컴퓨터 구조
데이터 경로 초기 설계
 AR: AR ← PC; AR ← DR[5..0]
 PC: PC ← PC + 1;
PC ← DR[5..0]
 DR: DR ← M
 IR : IR ← DR[7..6]
 AC: AC ← AC + DR;
AC ← AC ^ DR;
AC ← AC + 1
순천향대학교 정보기술공학부
이상정
14
컴퓨터 구조
데이터 경로 초기 설계 수정
 AR의 출력은 메모리로만 가고 내부 버스에 연결되
지 않는다
 IR은 다른 구성요소에 데이터를 제공하지 않는다
 AC는 데이터를 다른 구성요소에 제공하지 않는다
 버스의 크기는 8비트이나 6비트와 2비트도 사용되
므로 이를 명시해야 한다
 AC는 AC와 DR의 산술합과 논리곱 결과를 얻기 위
해서 ALU가 있어야 한다
순천향대학교 정보기술공학부
이상정
15
컴퓨터 구조
데이터 경로 최종 설계
 AR: AR ← PC; AR ← DR[5..0]
 PC: PC ← PC + 1;
PC ← DR[5..0]
 DR: DR ← M
 IR : IR ← DR[7..6]
 AC: AC ← AC + DR;
AC ← AC ^ DR;
AC ← AC + 1
순천향대학교 정보기술공학부
이상정
16
컴퓨터 구조
Very Simple CPU ALU 설계
 덧셈과 논리곱 연산
 멀티플렉서로 결과 선택
순천향대학교 정보기술공학부
이상정
17
컴퓨터 구조
제어부 설계
 제어부는 명령 실행을 위한 제어신호 생성하는
장치
 2가지 방식
• 고정배선제어(hardwired control) 방식
• 조합논리, 순차논리 사용
• 마이크로프로그램 제어(microprogrammed control) 방식
• 참조 메모리(lookup memory) 사용
 Very Simple CPU의 제어부
• 고정배선제어 방식으로 설계
• 카운터 – 현재의 상태 유지, 9개의 상태, 4비트 카운터
• 디코더 – 각 상태를 구별하는 신호 발생, 4 X 16 디코더
• 조합논리 – 필요한 제어 신호를 조합
순천향대학교 정보기술공학부
이상정
18
컴퓨터 구조
제어부 구성
순천향대학교 정보기술공학부
이상정
19
컴퓨터 구조
제어부 상태 할당
 카운터와 디코더를 사용하여 상태할당
• RTL의 제어를 나타내는 상태
• FETCH1, FETCH2, FETCH3, ADD1, ADD2, AND1, AND2,
JMP1, INC1 에 이진 값 배정
 상태할당
• 연속적인 상태에 연속적인 카운터값 할당
• 카운터 INC 입력 사용
• FETCH1을 0에 할당
• 카운터 입력값 0
• 카운터 CLR 신호 사용
• FETCH2는 카운터값 1, FETCH3은 카운터값 2
• 실행 루틴의 첫 번째 상태는 실행 루틴의 상태의 최대 갯수 고
려
• LD 신호 사용
순천향대학교 정보기술공학부
이상정
20
컴퓨터 구조
명령어 매핑
 명령어 디코드
• 명령어 코드로 부터 실행루틴의 처음 상태 지정
 IR에서 처음상태 카운터 값으로의 매핑 함수
• 1 IR[1..0] 0 매핑
• ADD1, AND1, JMP1, INC1이 8, 10, 12, 14로 할당
1 0 0 0 (8)
1 0 1 0 (10)
1 1 0 0 (12)
1 1 0 0 (14)
• 잘못된 매핑 예
• 10 IR[1..0] 매핑
• ADD1은 8, AND1은 9, ADD 연산이 연속적으로 상태할당을 할
수 없음
순천향대학교 정보기술공학부
이상정
21
컴퓨터 구조
Very Simple CPU 제어부 설계
순천향대학교 정보기술공학부
이상정
22
컴퓨터 구조
데이터 경로 제어신호 설계
 카운터 제어 신호
• LD, INC, CLR

 레지스터 제어신호
마이크로동작
FETCH1: AR ← PC
FETCH2: DR ← M,
PC ← PC + 1
FETCH3: IR ← DR[7..6],
AR ← DR[5..0]
ADD1: DR ← M
ADD2: AC ← AC + DR
AND1: DR ← M
AND2: AC ← AC ^ DR
JMP1: PC ← DR[5..0]
INC1: AC ← AC + 1
•
•
•
•
•
•
PCLOAD = JMP1
PCINC = FETCH2
DRLOAD = FETCH2 V ADD1 V AND1
ACLOAD = ADD2 V AND2
ACINC = INC1
IRLOAD = FETCH3
 ALU 제어 신호
• ALUSEL = AND2
 버퍼 인에이블 신호
• MEMBUS = FETCH2 V ADD1 V AND1
• PCBUS = FETCH1
 메모리 제어 신호
• READ = FETCH2 V ADD1 V AND1
순천향대학교 정보기술공학부
이상정
23
컴퓨터 구조
데이터 경로 제어신호 구현
순천향대학교 정보기술공학부
이상정
24
컴퓨터 구조
설계검증
 간단한 예에 대하여 실행을 추적하여 성계 검증
 명령어 코드 예
0: ADD 4
1: AND 5
2: INC
3: JMP 0
4: 27H
5: 39H
 CPU 상태 추적
•
•
•
•
ADD 4: FETCH1 -> FETCH2 -> FETCH3 -> ADD1 -> ADD2
AND 5: FETCH1 -> FETCH2 -> FETCH3 -> AND1 -> AND2
INC : FETCH1 -> FETCH2 -> FETCH3 -> INC1
JMP 0: FETCH1 -> FETCH2 -> FETCH3 -> JMP1
순천향대학교 정보기술공학부
이상정
25
컴퓨터 구조
실행 추적
순천향대학교 정보기술공학부
이상정
26
Relative Simple CPU 설계
컴퓨터 구조
Relatively Simple CPU의 사양
 메모리
• 64K 바이트 메모리 공간
• 16비트 주소
 버스
• 주소 버스 16비트 A[15..0]
• 데이터 버스 8비트 D[7..0]
 레지스터
•
•
•
•
•
•
•
8비트 누산기 AC
8비트 범용 레지스터 R
16비트 주소 레지스터(address register: AR)
16비트 프로그램 카운터(program counter: PC)
8비트 데이터 레지스터(data register: DR)
8비트 명령어 레지스터(instruction register: IR)
8비트 임시 레지스터(temporary register: TR)
• 임시 데이터 저장, 명령어로 접근 불가
• 제로 플래그 Z
순천향대학교 정보기술공학부
이상정
28
컴퓨터 구조
명령어 집합
 16개의 명령어
 8비트 연산코드, 16비트 주소
순천향대학교 정보기술공학부
이상정
29
컴퓨터 구조
명령어 인출과 해독
FETCH1: AR ← PC
FETCH2: DR ← M, PC ← PC + 1
FETCH3: IR ← DR, AR ← PC
순천향대학교 정보기술공학부
이상정
30
컴퓨터 구조
명령어 실행 (1)
 NOP 명령어
• 아무 일도 하지 않고 다음 명령어 인출 루틴으로 간다
NOP1: (아무일도 하지 않음)
 LDAC 명령어
• AC <- M
LDAC1: DR ← M, PC ← PC + 1, AR ← AR + 1
LDAC2: TR ← DR, DR ← M, PC ← PC + 1
LDAC3: AR ← DR, TR
LDAC4: DR ← M
LDAC5: AC ← DR
 STAC 명령어
• M <- AC
STAC1: DR ← M, PC ← PC + 1, AR ← AR + 1
STAC2: TR ← DR, DR ← M, PC ← PC + 1
STAC3: AR ← DR, TR
STAC4: DR ← AC
STAC5: M ← DR
순천향대학교 정보기술공학부
이상정
31
컴퓨터 구조
명령어 실행 (2)
 MVAC와 MOVR 명령어
• MVAC1: R ← AC
• MOVR1: AC ← R
 JUMP 명령어
JUMP1: DR ← M, AR ← AR + 1
JUMP2: TR ← DR, DR ← M
JUMP3: PC ← DR, TR
 JMPZ와 명령어
• Z=1이면 JMPZY의 분기가 실행, Z=0이면 JMPZN의 다음 명령어 실
행
JMPZY1: DR ← M, AR ← AR + 1
JMPZY2: TR ← DR, DR ← M
JMPZY3: PC ← DR, TR
JMPZN1: PC ← PC + 1
JMPZN2: PC ← PC + 1
순천향대학교 정보기술공학부
이상정
32
컴퓨터 구조
명령어 실행 (3)
 JPNZ 명령어
• Z=0이면 JPNZY의 분기가 실행, Z=1이면 JPNZN의 다음 명령어 실행
JPNZY1: DR ← M, AR ← AR + 1
JPNZY2: TR ← DR, DR ← M
JPNZY3: PC ← DR, TR
JPNZN1: PC ← PC + 1
JPNZN2: PC ← PC + 1
 나머지 명령어
ADD1: AC ← AC + R, IF (AC + R = 0) THEN Z ← 1 ELSE Z ← 0
SUB1: AC ← AC - R, IF (AC - R = 0) THEN Z ← 1 ELSE Z ← 0
INAC1: AC ← AC + 1, IF (AC + 1 = 0) THEN Z ← 1 ELSE Z ← 0
CLAC1: AC ← 0, Z ← 1
AND1: AC ← AC ^ R, IF (AC ^ R = 0) THEN Z ← 1 ELSE Z ← 0
OR1: AC ← AC V R, IF (AC V R = 0) THEN Z ← 1 ELSE Z ← 0
XOR1: AC ← AC + R, IF (AC + R = 0) THEN Z ← 1 ELSE Z ← 0
NOT1: AC ← AC - R, IF (AC - R = 0) THEN Z ← 1 ELSE Z ← 0
순천향대학교 정보기술공학부
이상정
33
컴퓨터 구조
CPU의 상태도
순천향대학교 정보기술공학부
이상정
34
컴퓨터 구조
데이터 경로
 데이터 전송 목적지 별로 재정렬
•
•
•
•
•
•
•
AR: AR ← PC; AR ← AR + 1; AR ← DR, TR
PC: PC ← PC + 1; PC ← DR, TR
DR: DR ← M, DR ← AC
IR: IR ← DR
R: R ← AC
TR: TR ← DR
AC: AC ← DR; AC ← R; AC ← AC + R; AC ← AC - R;
AC ← AC + 1; AC ← 0; AC ← AC ^ R; AC ← AC V R;
AC ← AC + R; AC ← AC’;
• Z: Z ← 1, Z ← 0
 AR과 PC는 병렬적재와 증가 기능이 있어야 함
 DR, IR, R, TR은 병렬적재 기능, 내부 버스 이용
 ALU의 한 입력은 AC, 나머지 하나는 내부 버스
 AC는 언제나 ALU 출력을 입력으로 한다
순천향대학교 정보기술공학부
이상정
35
컴퓨터 구조
데이터 경로 초기 설계
•
•
•
•
•
•
•
•
AR: AR ← PC; AR ← AR + 1; AR ← DR, TR
PC: PC ← PC + 1; PC ← DR, TR
DR: DR ← M, DR ← AC
IR: IR ← DR
R: R ← AC
TR: TR ← DR
AC: AC ← DR; AC ← R; AC ← AC + R;
AC ← AC - R; AC ← AC + 1; AC ← 0;
AC ← AC ^ R; AC ← AC V R;
AC ← AC + R; AC ← AC’;
Z: Z ← 1, Z ← 0
순천향대학교 정보기술공학부
이상정
36
컴퓨터 구조
데이터 경로 초기 설계 수정
 AR과 IR은 다른 구성요소에 데이터를 제공하지 않음
 핀 D[7..0]은 양방향
 모든 레지스터가 16비트 버스를 다 사용하지는 않음
• 비트 수를 명시
 레지스터 Z는 어디에도 연결되어 있지 않음
 IR ← DR 전송은 내부 버스가 아닌 직접 연결을 사용
 TR ← DR 전송은 내부 버스가 아닌 직접 연결을 사용
 DR 출력을 15..8과 7..0에 둘 다 연결
 레지스터 Z 도입
순천향대학교 정보기술공학부
이상정
37
컴퓨터 구조
데이터 경로 최종 설계
•
•
•
•
•
•
•
•
AR: AR ← PC; AR ← AR + 1; AR ← DR, TR
PC: PC ← PC + 1; PC ← DR, TR
DR: DR ← M, DR ← AC
IR: IR ← DR
R: R ← AC
TR: TR ← DR
AC: AC ← DR; AC ← R; AC ← AC + R;
AC ← AC - R; AC ← AC + 1; AC ← 0;
AC ← AC ^ R; AC ← AC V R;
AC ← AC + R; AC ← AC’;
Z: Z ← 1, Z ← 0
순천향대학교 정보기술공학부
이상정
38
컴퓨터 구조
Relatively Simple CPU ALU 설계 (1)
 AC에 적재되는 데이터는 모두 ALU를 통과
 AC의 내용을 수정하는 전송들
• LDAC5: AC ← DR
• MOVR1: AC ← R
• ADD1: AC ← AC + R
• SUB1: AC ← AC – R
• INAC1: AC ← AC + 1
• CLAC1: AC ← 0
• AND1: AC ← AC ^ R
• OR1: AC ← AC V R
• XOR1: AC ← AC + R
• NOT1: AC ← AC’
순천향대학교 정보기술공학부
이상정
39
컴퓨터 구조
Relatively Simple CPU ALU 설계 (2)
 산술부 설계
• LDAC5: AC ← DR
• MOVR1: AC ← R
• ADD1: AC ← AC + R
• SUB1: AC ← AC – R
• INAC1: AC ← AC + 1
• CLAC1: AC ← 0
 캐리 입력 병렬 가산기 사용 구현
• LDAC5: AC ← 0 + BUS + 0
• MOVR1: AC ← 0 + BUS + 0
• ADD1: AC ← AC + BUS + 0
• SUB1: AC ← AC + BUS’ + 1
• INAC1: AC ← AC + 0 + 1
• CLAC1: AC ← 0 + 0 + 0
순천향대학교 정보기술공학부
이상정
40
컴퓨터 구조
Relatively Simple CPU ALU 설계 (3)
 논리부 설계
• 4 x 1 멀티플렉서 사용
• AC ^ BUS, AC V BUS, AC + BUS, AC’
LDAC5: AC ← 0 + BUS + 0
MOVR1: AC ← 0 + BUS + 0
ADD1: AC ← AC + BUS + 0
SUB1: AC ← AC + BUS’ + 1
INAC1: AC ← AC + 0 + 1
CLAC1: AC ← 0 + 0 + 0
순천향대학교 정보기술공학부
이상정
41
컴퓨터 구조
제어부 설계 (1)
 상태 생성을 위해 2개의 레지스터 사용
• 명령어 레지스터: 연산코드
• 타임 카운터: 시간적인 순서
 T0는 FETCH1, T1은 FETCH2, T2는 FETCH3
 실행 루틴의 상태는 T3에서 시작
• LDAC1 = LDAC ^ T3
• LDAC2 = LDAC ^ T4
• LDAC3 = LDAC ^ T5
• LDAC4 = LDAC ^ T6
• LDAC5 = LDAC ^ T7
순천향대학교 정보기술공학부
이상정
42
컴퓨터 구조
제어부 설계 (2)
순천향대학교 정보기술공학부
이상정
43
컴퓨터 구조
CPU 상태 목록
• 연산 디코더 출력과 타임 카운
터의 디코더 출력을 결합하여 상
태 생성
• 상태를 사용하여 제어신호
발생
순천향대학교 정보기술공학부
이상정
44
컴퓨터 구조
제어신호
순천향대학교 정보기술공학부
이상정
45
컴퓨터 구조
제어신호 생성
 PCBUS
FETCH1: AR ← PC
FETCH3: IR ← DR, AR ← PC
PCBUS = FETCH1 V FETCH3
= T0 V T2

ARLOAD
FETCH1: AR ← PC
FETCH3: IR ← DR, AR ← PC
LDAC3: AR ← DR, TR
STAC3: AR ← DR, TR
ARLOAD = FETCH1 V FETCH3 V
LDAC3 V STAC3
= T0 V T2 V
(ILDAC ^ T5) V (ISTAC ^ T5)
순천향대학교 정보기술공학부
이상정
46
컴퓨터 구조
시뮬레이터 개요
 RS-CPU 시뮬레이터
• Relative Simple Computer 시뮬레이터
• JAVA 애플릿 – 웹 브라우저 이용 가능
• 모든 명령어의 인출, 해독, 실행이 단계별로 진행 가능
 링크
• 시뮬레이터 실행
http://sjlee.sch.ac.kr/lecture/arch/cpu_sim/web.html
• 시뮬레이터 매뉴얼
http://sjlee.sch.ac.kr/lecture/arch/cpu_sim/help/index.html
순천향대학교 정보기술공학부
이상정
47
컴퓨터 구조
Simple CPU의 부족한 점
 더 많은 내부 레지스터와 캐시
 CPU 안의 다중 버스
 파이프라인 명령어 처리
 더 큰 명령어 집합
 서브 루틴과 인터럽트
순천향대학교 정보기술공학부
이상정
48
컴퓨터 구조
다중 버스의 사용 예
순천향대학교 정보기술공학부
이상정
49
컴퓨터 구조
8085 마이크로프로세서의 내부 구조
순천향대학교 정보기술공학부
이상정
50
컴퓨터 구조
과제
 Very Simple CPU와 Relatively Simple CPU를 아래와
같이 설계하라
1) 설계과정 기술
2) CAD나 그래픽 도구를 사용한 완전한 설계도면
 12월 1일까지 다음 제출
1) 리포트 내용 및 설계도면 출력물
2) 리포트 내용 및 설계도면 파일
(e-mail 또는 디스켓, CD)
* 2인 1조 작성 가능
순천향대학교 정보기술공학부
이상정
51