680 likes | 2.14k Views
5 장 . 기본 컴퓨터의 구조와 설계. Hwang Soon Hwan http://dol.pknu.ac.kr/shhwang E-mail : shliebe@hanmail.net. 목 차. 명령어 코드 컴퓨터 레지스터 컴퓨터 명령어 타이밍과 제어 명령어 사이클 메모리 참조 명령어 입출력과 인터럽트 컴퓨터에 대한 완전한 기술 기본 컴퓨터의 설계 누산기 논리의 설계. 1. 명령어 코드 (1). 컴퓨터 동작 기술시 필요한 것들 내부 레지스터의 기술 타이밍과 제어 구조 명령어 집합
E N D
5장. 기본 컴퓨터의 구조와 설계 Hwang Soon Hwan http://dol.pknu.ac.kr/shhwang E-mail : shliebe@hanmail.net
목 차 • 명령어 코드 • 컴퓨터 레지스터 • 컴퓨터 명령어 • 타이밍과 제어 • 명령어 사이클 • 메모리 참조 명령어 • 입출력과 인터럽트 • 컴퓨터에 대한 완전한 기술 • 기본 컴퓨터의 설계 • 누산기 논리의 설계 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(1) • 컴퓨터 동작 기술시 필요한 것들 • 내부 레지스터의 기술 • 타이밍과 제어 구조 • 명령어 집합 • 컴퓨터 내부 동작 기술 • microopreation sequence에 의해 정의 • 특수목적 디지털 시스템 : H/W에 의해 고정된 회로 사용 • 범용 디지털 컴퓨터 : 피연산자와 처리순서가 프로그램 방식으로 메모리에 저장 내장프로그램 방식 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(2) • 명령어 코드 • 컴퓨터에게 특정 동작을 시키는 최소단위 • 연산코드와 피연산자들로 구성 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(3) • 연산과 마이크로 연산 • 연산(operation) • 명령어 코드에 기술된 연산코드에 의해 정의된 연산들 • 메모리에 저장된 프로그램 명령의 최소단위 • 마이크로 연산(microoperation) • 하나의 연산을 수행하기 위해 필요한 여러가지 명령들을 수행하는 연산들 • 하나의 연산은 다수 개의 마이크로 연산에 의해 수행 → 매크로 연산(macrooperation)이라고 함 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(4) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(5) • immediate • 명령어 코드의 피연산자 주소 부분이 직접 피연산자의 내용을 나타내는 경우 • direct address • 피연산자의 내용이 담겨있는 메모리의 주소를 나타내는 경우 • indirect address • 주소의 내용을 담고 있는 장소의 주소를 저장하고 있는 메모리 워드의 주소 • Effective address : 오퍼랜드의 주소 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
1. 명령어 코드(6) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
2. 컴퓨터 레지스터(1) • Instruction cycle • fetch • decode • execution • 메모리 장치 • 4096 워드로 구성 • 각 워드는 16비트 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
2. 컴퓨터 레지스터(2) • 기본 컴퓨터를 위한 레지스터 • Data register (DR) : 16비트 • Address register (AR) : 12비트 • Accumulator (AC) : 16비트 • Instruciton register (IR) : 16비트 • Program counter (PC) : 12비트 • Temporary register (TR) : 16비트 • Input register (INPR) : 8비트 • Output register (OUTR) : 8비트 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
2. 컴퓨터 레지스터(3) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
2. 컴퓨터 레지스터(4) • 공통 버스 시스템 • AR과 PC가 선택되는 경우 : 상위 4비트는 0으로 채움 • 버스의 내용이 AR 또는 PC로 전송되는 경우 • 하위 12비트만 전송 • 버스를 통한 레지스터 전송과 ALU에서의 연산이 동일 클럭에서 수행 가능 DR ← AC, AC ← DR 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
2. 컴퓨터 레지스터(5) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
3. 컴퓨터 명령어(1) • 명령어 형식 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
3. 컴퓨터 명령어(2) • 명령어 집합 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
3. 컴퓨터 명령어(3) • 명령어 집합의 완전성 • 모든 데이터 처리를 수행할 수 있도록 하기 위한 명령어 • 산술, 논리, 시프트 명령어 • 메모리와 프로세서 레지스터 간의 정보 이동 명령어 • 상태조건을 검사하는 명령과 프로그램 제어 명령어 • 입력과 출력 명령어 • 복잡한 명령은 프로그램으로 구현 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(1) • 레지스터간 또는 메모리간의 정보 전송 및 연산을 위해 제어 장치 필요 • 제어장치의 방식 • 하드와이어 방식 • 마이크로 프로그램 방식 • 하드와이어(hardwired) 방식 • 게이트, 플림플롭, 디코더 등의 디지털 회로를 이용하여 구현 • 장점 : 속도 빠름 • 단점 : 구조 변경시 배선 변경해 주어야 함 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(2) • 마이크로 프로그램(Microprogrammed) 방식 • 제어 메모리에 저장된 제어정보를 이용 • 장점 : 설계 변경시 제어 메모리의 마이크로 프로그램만 변경하면 됨 • 단점 : 하드와이어 방식에 비해 속도가 느림 • 기본 컴퓨터의 제어 장치(그림5-6) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(3) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(4) • 연산코드 해석하는 3×8 디코더 • 직접 및 간접 주소의 정보를 저장하는 플립플롭 • 16개의 타이밍 신호를 발생하기 위한 4비트 카운터와 4×16 디코더 • 순차 카운터는 동기적으로 클리어 될 수 있음 • D3T4 : SC ← 0 • 타이밍 신호 (그림 5-7) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(5) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
4. 타이밍과 제어(6) • 타이밍 신호 예) • T0 : AR ← PC → T0 가 1일때 PC의 내용을 버스에 올리고 AR에 로드 실제 동작은 다음 클럭의 상승변이에서 일어남 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(1) • 기본 컴퓨터에서 명령어 사이클의 단계 • 명령어를 메모리에서 가져옴 (fetch) • 명령어를 디코딩 (decode) • 간접 주소방식의 명령어일 경우 메모리에서 유효주소를 읽어옴 • 명령어를 실행 (excute) • HALT 명령을 만날때 까지 위의 과정 반복 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(2) • Fetch와 decode • 초기 PC는 프로그램의 첫 명령어를 가리킴 • 순차 카운터는 0으로 타이밍 변수 T0를 가리킴 • 매 클럭마다 순차 카운터는 증가함 • fetch와 decode에 대한 레지스터 전송문 • T0, T1에서의 전송문의 구현 (그림5-8) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(3) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(4) • 명령어 종류의 결정 • T3에서의 명령어 결정에 대한 흐름도(그림 5-9) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(5) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(6) • T3에서의 레지스터 전송문 • 레지스터 참조 명령어 • D7I’T3에서 수행됨 • IR(0 - 11)에 있는 비트로 12가지 명령어 구성(표5-3) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
5. 명령어 사이클(7) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
6. 메모리 참조 명령어(1) • 메모리 참조 명령어들(표5-4) • T4에서 수행됨 • AND (AND memory word to AC) 명령어 • D0T4 : DR ← M[AR] • D0T5 : AC ← AC ∧ DR, SC ← 0 • ADD (Add memory word to AC) 명령어 • D1T4 : DR ← M[AR] • D1T5 : AC ← AC + DR, E ← Cout , SC ← 0 • LDA (Load memory word to AC) 명령어 • D2T4 : DR ← M[AR] • D2T5 : AC ← DR, SC ← 0 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
6. 메모리 참조 명령어(2) • STA (Store content of AC in memory) 명령어 • D3T4 : M[AR] ← DR, SC ← 0 • BUN (Branch unconditionally) 명령어 • D4T4 : PC ← AR, SC ← 0 • BSA (Branch and save return address) 명령어 • D5T4 : M[AR] ← PC, AR ← AR + 1 • D5T5 : PC ← AR, SC ← 0 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
6. 메모리 참조 명령어(3) • BSA 명령의 실행 예 (그림 5-10) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
6. 메모리 참조 명령어(4) • ISZ (Increment and skip if zero) 명령어 • D6T4 : DR ← M[AR] • D6T5 : DR ← DR + 1 • D6T6 : M[AR] ← DR, if (DR=0) then (PC ← PC + 1), SC ← 0 • 제어 흐름도 • 메모리 참조 명령어에 대한 모든 마이크로 연산(그림 5-11) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
6. 메모리 참조 명령어(5) • 최대의 필요한 타이밍이 T6이므로 3비트 SC로 충분 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(1) • 외부 컴퓨터 사용자와의 데이터 인터페이스를 위해 입출력 장치가 필요 • 입력 장치 : 키보드 • 출력 장치 : 프린터, 모니터 • 입출력 구성 • 일반적으로 8비트 단위의 직렬 통신으로 정보 교환 • 입출력 구성 (그림 5-12) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(2) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(3) • 입력 장치와 컴퓨터 사이의 다른 타이밍 속도의 동기 → flag F/F 이용 • FGI (flag input) • 키보드 입력 • INPR에 데이터 입력, FGI=1이 됨 • 컴퓨터는 FGI = 1이면 데이터 가져오고 0으로 만듬 • FGI = 0 이어야만 새로운 키보드 입력 가능 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(4) • FGO(flag output) • 출력할 데이터 발생 • FGO = 1이면 출력 데이터를 OUTR로 전송, FGO = 0으로 만듬 • 출력장치는 FGO = 0이면 OUTR에서 데이터 가져다 출력한 후, FGO = 1로 만듬 • FGO = 1이어야만 새로운 출력 데이터 전송 가능 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(5) • 입출력 명령어 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(6) • 프로그램 인터럽트 • 입출력장치의 속도가 컴퓨터의 속도에 비해 매우 늦음 → 컴퓨터가 데이터가 있는지 레지스터를 점검하는 것은 비 효율적 (polling방식) • 데이터가 외부장치가 데이터 전송이 준비되었을 때만 이를 컴퓨터에게 알림 → 인터럽트 방식 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(7) • 인터럽트 방식 • 플래그 체크 없이 다른 일 수행중, 인터럽트가 오면 데이터를 가져오고, 원래 수행중이던 프로그램으로 복귀, 중요 작업시 인터럽트 들어오면 안됨 • 인터럽트를 허용할 것인지 결정하는 플립플롭 필요 • IEN(interrupt enable flip-flop) 이용 → 명령어에 의해 set 또는 clear 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(8) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(9) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
7. 입출력과 인터럽트(10) • 인터럽트 사이클 • 인터럽트 사이클은 IEN = 1이고 FGO나 FGI가 1일 때 수행 (R = 1) • 타이밍 신호 T0, T1, T2외의 모든 타이밍 신호에서 수행 • 레지스터 전송문 • T’0T’1T’2(IEN)(FGO + FGI) : R ← 1 • 인터럽트 사이클에서의 수행 레지스터 전송문 RT0 : AR ← 0, TR ← PC RT1 : M[AR] ← TR, PC ← 0 RT2 : PC ← PC + 1, IEN ← 0, R ← 0, SC ← 0 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
8. 컴퓨터에 대한 완전한 기술(1) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
8. 컴퓨터에 대한 완전한 기술(2) • 인터럽트 사이클과 명령어 사이클을 포함한 기본 컴퓨터의 최종 흐름도 (그림 5-15) • 기본 컴퓨터의 레지스터 전송문 (표 5-6) 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
9. 기본 컴퓨터의 설계(1) • 설계 시 필요한 하드웨어 요소 • 16비트의 4096 워드를 가진 메모리 • 9개의 레지스터 • AR, PC, DR, AC, IR, TR, OUTR, INPR, SC • 7개의 플립플롭 • I, S, E, R, IEN, FGI, FGO • 2개의 디코더 • 3 × 8 동작 디코더, 4 × 16 타이밍 디코더 • 16비트 공통 버스 • 제어 논리 게이트들 • AC의 입력에 연결된 가산 논리회로 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
9. 기본 컴퓨터의 설계(2) • 제어 논리 게이트 • 그림 5-6의 제어 논리 게이트의 필요한 출력들 • 9개의 레지스터의 입력을 제어하는 신호 • 메모리의 쓰기 및 읽기 입력을 제어하는 신호 • 플립플롭을 세트, 클리어, 보수화시키는 신호 • 버스를 사용할 레지스터를 선택하는데 사용되는 S2, S1, S0에 대한 신호 • AC에 대해 가산 논리 회로를 제어하는 신호 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
9. 기본 컴퓨터의 설계(3) • 레지스터와 메모리에 대한 제어 • 레지스터에 대한 제어 입력들 • LD (load) • INR (increment) • CLR (clear) • AR 레지스터의 제어입력 구성 • 표5-6에서의 AR의 내용을 변경시키는 모든 문장 R’T0 : AR ← PC R’T2 : AR ← IR(0~11) D’7IT3 : AR ← M[AR] RT0 : AR ← 0 D5T4 : AR ← AR + 1 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계
9. 기본 컴퓨터의 설계(4) • 제어 입력별로 구분 LD(AR) = R’T0 + R’T2 + D’7IT3 CLR(AR) = RT0 INC(AR) = D5T4 • 제어 입력별로 구현 (그림 5-16) • AR과 같은 방법으로 다른 레지스터들도 제어입력 만듬 ex) 메모리 읽기 Read = R’T1 + D’7IT3 + (D0 + D1 + D2 + D6)T4 컴퓨터 구조 - 5장 기본 컴퓨터의 구조와 설계