Download presentation
Presentation is loading. Please wait.
1
제11강 중앙처리장치 2
2
강의내용 명령어 사이클 명령어 수행과정 간단한 구조의 컴퓨터 설계
3
중앙처리장치에서의 명령어 수행 ALU 중앙처리장치와 기억장치의 구성도 기 억 장 치 AC PC 제어장치 IR MBR MAR
내부 버스 제어장치 IR MBR MAR 데이터버스 주소버스 제어버스
4
명령어 사이클 명령어 사이클(instruction cycle) 명령어 사이클의 종류
한 개의 명령어를 CPU에서 수행하는데 필요한 전체 수행 과정 명령어 사이클의 종류 인출 사이클(fetch cycle) 실행 사이클(execute cycle) 간접 사이클(indirect cycle) 인터럽트 사이클(interrupt cycle)
5
명령어 사이클 명령어 수행 과정 명령어 인출 명령어 해석 명령어 실행 저 장 인터럽트 처리
기억장치로부터 명령어를 가져오는 과정 인출된 명령어의 주소는 PC에 들어있고, 인출된 명령어는 IR로 옮겨진다. 명령어 인출 명령어를 해독하는 과정 명령어의 종류에 따라 필요한 경우 오퍼랜드의 인출이 일어난다. 명령어 해석 지정된 연산을 실행하는 과정 간접주소지정인 경우 기억장치로부터 데이터가 들어있는 유효주소를 인출 명령어 실행 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정 저 장 명령어 실행 도중에 입출력장치와 같은 다른 장치에 의해 인터럽트가 들어오면 그에 합당한 서비스를 제공하는 과정 인터럽트 처리
6
명령어 인출 사이클 기억장치에 저장되어 있는 명령어를 인출하는 과정 T2 : IR ← MBR T0 : MAR ← PC
(첫번째 클럭 T0에서는 다음 명령어의 주소가 들어 있는 PC의 내용을 MAR로 이동 시킨다.) T1 : MBR ← M[MAR], PC ← PC+1 (두번째 클럭 T1 에서는 MAR 에 저장된 주소를 가지고 기억장치에 저장된 내용을 MBR로 이동시키며, 동시에 PC 를 1 증가시킨다.) T2 : IR ← MBR (세번째 클럭 T2 에서는 MBR에 저장된 명령어를 실행시키기 위해 IR로 이동시킨다.)
7
명령어 인출 사이클 ALU 명령어 인출사이클의 명령어 흐름도 AC IR MBR MAR PC 제어장치 기 억 장 치 중앙처리장치
내부 버스 AC IR MBR MAR PC 제어장치 데이터버스 기 억 장 치 T0 T1 T2 주소버스 제어버스 명령어 인출사이클의 명령어 흐름도
8
명령어 실행 사이클 명령어를 실행하는 과정 이 과정에서는 명령어 인출과정을 통하여 IR 레지스터에 실린
명령어를 해독하고, 해독한 명령어에 따라 필요한 연산이 수행된다. 수행되는 연산들의 기능 • 데이터의 이동 기능 : 기억장치와 CPU 혹은 입출력장치 사이에 데이터의 이동 • 데이터의 처리 기능 : 산술 혹은 논리연산을 통한 데이터 처리 • 데이터의 저장 기능 : 연산결과를 기억장치에 저장 • 제어 기능 : 프로그램의 실행 순서를 결정
9
명령어 실행 사이클 LOAD 명령어의 실행 사이클 T1 : MBR ← M[MAR] T2 : AC ← MBR
LOAD 명령어는 데이터 이동을 위한 명령어로써 원하는 기억장치의 데이터를 CPU의 내부 레지스터인 누산기로 가져오는 명령어이다. ① 누산기로 이동할 데이터가 들어있는 주소가 MAR에 실린다. ② MAR 레지스터에 있는 주소의 데이터가 MBR에 실린다. ③ MBR에 들어있는 데이터를 누산기로 읽어온다. T0 : MAR ← IR(adrs) T1 : MBR ← M[MAR] T2 : AC ← MBR
10
실행 사이클의 명령어 흐름도(LOAD 명령어)
명령어 실행 사이클 ALU 중앙처리장치 내부 버스 AC IR MBR MAR PC 제어장치 데이터버스 기 억 장 치 T2 T1 T0 주소버스 제어버스 실행 사이클의 명령어 흐름도(LOAD 명령어)
11
명령어 실행 사이클 ADD 명령어의 실행 사이클 T1 : MBR ← M[MAR] T2 : AC ← AC + MBR
ADD명령어는 데이터 처리명령어로서 누산기에 있는 데이터와 기억장치에 있는 데이터를 더한 후에 그 결과를 누산기에 저장하는 명령어이다. ① 더해질 데이터가 들어있는 기억장치의 주소가 MAR에 실린다. ② MAR에 있는 기억장치 주소에 해당하는 데이터가 MBR에 실린다. ③ 누산기에 있는 데이터와 MBR에 있는 데이터가 더해지고, 결과가 누산기에 저장된다. T0 : MAR ← IR(adrs) T1 : MBR ← M[MAR] T2 : AC ← AC + MBR
12
명령어 실행 사이클 STORE 명령어의 실행 사이클 T1 : MBR ← AC T2 : M[MAR] ← MBR
STORE 명령어는 연산결과를 갖고 있는 누산기의 데이터를 기억장치에 저장하는 동작을 수행한다. ① 저장되어질 주소가 MAR에 실린다 ② 누산기에 있는 데이터가 MBR에 실린다. ③ MBR에 있는 데이터가 MAR에 있는 주소로 저장된다. T0 : MAR ← IR(adrs) T1 : MBR ← AC T2 : M[MAR] ← MBR
13
명령어 실행 사이클 분기및 점프 명령어의 실행 사이클 PC가 가지는 주소의 명령어가 아니라, 분기 혹은 점프 명령어에 있는
분기(branch)와 점프(jump)명령어는 제어기능을 수행하는 명령어로써 프로그램의 순서를 바꾸는 명령어이다. 즉, 다음에 수행할 명령어는 PC가 가지는 주소의 명령어가 아니라, 분기 혹은 점프 명령어에 있는 주소에 해당하는 명령어이다. ① 분기 혹은 점프 명령어에 있는 주소가 PC에 실린다. T0 : PC ← IR(adrs)
14
간접 사이클 T1 : MBR ← M[MAR] T2 : IR ← MBR T0 : MAR ← IR(adrs)
간접주소지정방식에서 명령어 오퍼랜드의 유효주소를 결정하는 과정 인출 사이클에서 인출된 명령어가 간접주소지정방식을 사용하면, 간접 사이클이 실행 사이클보다 먼저 실행된다. ① 명령어의 주소가 MAR에 실린다. ② MAR이 지정한 주소의 데이터가 MBR에 실린다. ③ MBR에 있는 데이터가 IR의 주소 필드에 실린다. T0 : MAR ← IR(adrs) T1 : MBR ← M[MAR] T2 : IR ← MBR
15
인터럽트 사이클 T1 : MAR ← SP, PC ← ISR(adrs) T2 : M[MAR] ← MBR T0 : MBR ← PC
CPU의 정상적인 동작 중에 인터럽트 요청이 발생했을 때 실행되는 과정 실행 사이클이 끝난 직후에 인터럽트가 발생했는지를 검사하며, 발생 하였다면 인터럽트 서비스 루틴(ISR : interrupt service routine)이 시작되도록 하는 것이 인터럽트 사이클이다. ① 현재 수행하고 있는 명령어를 처리한 후, 다음에 수행할 명령어 주소를 갖고 있는 PC 의 내용을 스택에 저장한다. ② 요청된 인터럽트 서비스 루틴을 호출하여 그 서비스 루틴의 시작 주소를 PC에 저장한다. T0 : MBR ← PC T1 : MAR ← SP, PC ← ISR(adrs) T2 : M[MAR] ← MBR
16
간단한 구조의 컴퓨터 설계 설계를 위한 컴퓨터의 기본 구성 구성요소 6 개의 레지스터 2 개의 디코더 제어논리 게이트
PC 기억장치(256×8) 6 개의 레지스터 2 개의 디코더 제어논리 게이트 기억장치 256×8 AR DR IR AC 연산디코더 D1 ~ D6 제어논리 게이트 제어출력 T0 ~ T7 타이밍디코더 TC
17
간단한 구조의 컴퓨터 설계 컴퓨터 설계를 위한 레지스터 DR 8 AR AC IR PC TC 3 레지스터기호 비트수 레지스터이름
기억장치에서 읽어올 단어의 내용이나 기억 장치에 쓰여질 단어의 내용을 갖는다 레지스터기호 비트수 레지스터이름 DR 8 데이터 레지스터 AR 주소 레지스터 AC 누산기 IR 명령어 레지스터 PC 프로그램 카운터 TC 3 타이밍 카운터 오퍼랜드의 주소를 갖는다. 데이터 처리가 이루어지는 범용 레지스터이다 명령어의 연산코드를 갖고 있다. 수행하려는 명령어의 주소를 갖고 있다. 타이밍 변수 T0 ~ T7까지를 디코드한다
18
간단한 구조의 컴퓨터 설계 명령어의 설계( 예: 6개의 명령어 ) 연산 코드 기호 이름 기 능 전 송 문 00000001
기 능 전 송 문 INA AC를 증가 AC←AC+1 CMA AC의 보수 AC←AC LDI OPRD 즉치 값을 AC에 적재 AC←OPRD ADI OPRD 즉치 값을 AC에 더함 AC←AC+OPRD LDA ADRS AC로 적재 AC←M[ADRS] STA ADRS AC의 내용을 기억장치에 적재 M[ADRS]←AC 실제 연산코드에 필요한 비트 수는 사용하는 연산의 총 수와 관련한다. 즉, 2n개의 연산을 수행하기 위해서는 최소한 n-비트가 필요하다
19
T0와 T1은 타이밍 변수로서 명령어 인출단계에서 제어변수로 사용된다.
간단한 구조의 컴퓨터 설계 명령어의 수행과정 분석 명령어 인출 단계 PC가 지정한 번지에 있는 연산코드를 기억장치로부터 DR로 읽어온다. 다음에 연산코드는 DR로부터 IR로 전송되고, PC는 기억장치의 다음 주소를 지정하기 위해 1 증가한다. T0 : DR← M[PC] T1 : IR←DR, PC← PC+1 T0와 T1은 타이밍 변수로서 명령어 인출단계에서 제어변수로 사용된다.
20
간단한 구조의 컴퓨터 설계 명령어의 수행과정 분석 명령어 실행 단계( 예: INA 명령 )
타이밍 변수 T2 동안에 연산코드는 IR에 들어 있으며, 연산 디코더 출력 중의 하나만이 1이 된다. 따라서 제어장치는 이 디코더의 출력을 사용해서 다음 마이크로 연산을 지정한다. 즉, INA명령은 연산코드가 이므로, 이는 디코더의 출력 중에서 D1을 1로 하게 된다 D1T2 : AC← AC+1, TC← 0 T2 시간에 D1=1이면, AC는 1 증가하고 TC는 0 으로 리세트된다. TC를 0 으로 리세트함으로써 제어는 타이밍변수 T0로 되돌아가므로, 인출단계를 다시 시작하고 다음 명령어의 연산코드를 읽게 된다.
21
간단한 구조의 컴퓨터 설계 명령어의 수행과정 분석 D3T3 : AC← DR, PC← PC+1, TC← 0
명령어 실행 단계( 예: LDI OPRD 명령 ) LDI 명령은 연산코드가 이므로 디코더 출력 D3가 1이 된다. D3T2 : DR← M[PC] D3T3 : AC← DR, PC← PC+1, TC← 0 D3=1일 때 타이밍변수는 T2이다. 이 시간에 오퍼랜드를 기억장치로부터 인출하여 DR에 적재한다. T3시간에 DR로 읽어온 오퍼랜드는 AC로 전송하고, PC는 다시 1 증가한다. 명령어의 실행을 끝낼 때에는 항상 TC를 0 으로 리세트시켜서 인출 단계로 되돌아간다.
22
간단한 구조의 컴퓨터 설계 명령어의 수행과정 분석 D5T2 : DR← M[PC] D5T3 : AR← DR, PC← PC+1
명령어 실행 단계( 예: LDA ADRS 명령 ) LDA 명령은 연산코드가 이므로 디코더 출력 D5가 1이 된다. D5T2 : DR← M[PC] D5T3 : AR← DR, PC← PC+1 D5T4 : DR← M[AR] D5T5 : AC←DR, TC← 0 T2시간에 ADRS의 값이 인출되며, T3시간에 이 주소는 DR에서 AR로 전송되고, PC는 다시 증가한다. 그리고 ADRS는 오퍼랜드의 주소이므로 T4시간에 오퍼랜드를 DR에 옮긴다. 다음으로 T5시간에는 오퍼랜드를 DR에서 AC로 전송하고, 제어는 인출 단계로 돌아간다.(TC←0)
23
간단한 구조의 컴퓨터 설계 명령어의 전체 수행과정 T0 : T1 : T2 : T3 : T4 : T5 : D1 D2 D3 D4
DR← M[PC] AC← AC+1 TC← 0 AC← AC TC←0 IR←DR PC←PC+1 OP코드 디코드 AC←DR AC←AC+DR AR←DR DR← M[AR] AC← DR AR← DR DR← AC M[AR]← DR T0 : T1 : T2 : T3 : T4 : T5 : ① INA ② CMA ③ LDI OPRD ④ ADI OPRD ⑤ LDA ADRS ⑥ STA ADRS 시작 D1 D2 D3 D4 D5 D6
24
간단한 구조의 컴퓨터 설계 제어논리의 구현 레지스터 전송표현 마이크로 연산 제어 함수
컴퓨터 명령어가 수행하는 연산을 정의하고, 컴퓨터의 내부 동작을 나타내는데 유용한 방법이다. 전송문에서 나타낸 제어 함수와 마이크로 연산이 디지털시스템 을 설계하는데 사용된다. 레지스터 전송표현 마이크로 연산 레지스터의 종류와 데이터 처리장치에서 수행해야 할 디지털 함수를 나타내며, 제어 함수는 제어장치에 필요한 제어논리 게이트를 나타낸다고 볼 수 있다. 제어 함수 논리 게이트들을 이용한 논리회로로 구현할 수 있으며, 이렇게 구현된 제어논리들이 마이크로연산을 수행하게 되기 때문에 하드웨어에 의한 제어장치를 구현할 수 있게 된다.
25
간단한 구조의 컴퓨터 설계 제어함수의 유도 PC←PC+1 의 동작을 찾으면
명령어 수행단계에서의 모든 전송문을 조사해서 같은 마이크로 연산을 수행하는 문장을 찾아 제어함수를 유도한다. 예를들어 PC←PC+1 의 동작을 찾으면 T1 + (D3 + D4 + D5 + D6)T3 : PC← PC+1 타이밍 변수 T1일때 수행하며, T3에서 디코더출력이 D3, D4, D5, D6 일 때도 수행된다.
26
간단한 구조의 컴퓨터 설계 제어함수의 하드웨어 구현 PC ③ ② ① 마이크로연산 PC←PC+1 의 하드웨어 구현 8 T1 T3
D6 D5 D4 D3 T1 T3 클럭 8 ① ② ③ 증가
27
간단한 구조의 컴퓨터 설계 유도된 제어함수 제 어 함 수 마이크로 연산 C1 = T0+(D3+D4+D5+D6)T2
제 어 함 수 마이크로 연산 C1 = T0+(D3+D4+D5+D6)T2 DR ← M[PC] C2 = T1+(D3+D4+D5+D6)T3 PC ← PC+1 C3 = T1 IR ← DR C4 = D1T2 AC ← AC+1 C5 = D2T2 AC ← C6 = D3T3+D5T5 AC ← DR C7 = D4T3 AC ← AC+DR C8 = (D5+D6)T3 AR ← DR C9 = D6T4 DR ← AC C10 = D5T4 DR ← M[AR] C11 = D6T5 M[AR] ← DR C12 = (D1+D2)T2+(D3+D4)T3+(D5+D6)T5 TC ←0 AC
28
간단한 구조의 컴퓨터 설계 제어함수를 구현한 제어논리 D1 D2 D3 D4 D5 D6 T0 T1 T2 T3 T4 T5 C1
29
간단한 구조의 컴퓨터 설계 제어함수를 이용한 컴퓨터 설계 C1-C12 C1 ① C2 C10 기억장치 PC 256 ×8
입력데이타 ① 적재 선택 적재 C10 ① 기억장치 256 ×8 C2 PC 10 주소 MUX ① ② 기록 C8 적재 C11 AR ③ 출력데이타 적재 C3 IR 선택 MUX ② ④ 디 코 더 ① C9 기록 C10 ② DR C1 D1 D2 D3 D4 D5 D6 제어논리게이트 C1-C12 8 비트 가산기 T0 T1 T2 T3 T4 T5 T6 T7 선택 디 코 더 ② MUX ③ 리셋 C7 적재 C12 C6 ③ TC AC C4 증가 ④ 보수 증가 C5
30
다음 강의 <제12강 중앙처리장치 3>
수고하셨습니다. 다음 강의 <제12강 중앙처리장치 3>
Similar presentations