명령어 인출 사이클과 실행 사이클 General Tech.2008/02/18 19:33
1. CPU가 각 명령어 사이클의 시작단계에서 대기
2. PC(프로그램 카운터)가 가리키는 기억장치의 위치에서 명령어 인출
3. PC의 내용을 1씩 증가(기억장치에 저장된 순서대로 명령어를 읽는다.)
t0 : MAR <- PC
t1: MBR <- M[MAR], PC <- PC + 1
t2: IR <- MBR
t0,t1,t2는 CPU 클럭의 주기
실행 사이클(4가지 연산)
데이터 이동: CPU와 기억장치 또는 CPU와 I/O 장치 간에 데이터 이동
데이터 처리: 데이터에 대하여 산술 혹은 논리 연산을 수행
데이터 저장: 연산결과 데이터 혹은 입력장치로부터 읽어들인 데이터를 기억장치에 저장.
제어: 프로그램의 실행 순서를 결정.
명령어의 구성은 연산코드|오퍼랜드(address)로 구성됨.
첫번째 연산 - IR(Instructure Register)에 저장된 오퍼랜드(addr) 를 MAR을 통해 기억장치로 보내어 데이터를 인출
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <- M[MAR] (주소가 지정한 기억장소에서 데이터 인출하고 MBR로 전송)
t2: AC <- MBR (AC에 적재, LOAD 실행완료)
t0,t1,t2는 CPU 클럭의 주기
두번째 연산 - AC 레지스터의 내용을 기억장치에 저장
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <- AC (저장할 데이터를 버퍼 레지스터로 이동(MBR))
t2: M[MAR] <- MBR (MBR의 내용을 MAR이 지정하는 기억장소에 저장)
t0,t1,t2는 CPU 클럭의 주기
세번째 연산 - 데이터 처리 명령어, 기억장치에 저장된 데이터를 AC의 내용과 더해 다시 AC에 저장.
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <- M[MAR] (주소가 지정한 기억장소에서 데이터 인출하고 MBR로 전송)
t2: AC <- AC + MBR (AC의 내용을 더하고 결과값을 AC에 저장)
t0,t1,t2는 CPU 클럭의 주기
네번째 연산: 제어 명령은 대부분 분기 명령어로 실행
t0 : PC<- IR(addr) (오퍼랜드가 PC로 적재됨)
'General Tech.' 카테고리의 다른 글
| 인터럽트 사이클 (0) | 2008/02/19 |
|---|---|
| 간접사이클과 명령어 파이프라이닝 (0) | 2008/02/19 |
| 명령어 인출 사이클과 실행 사이클 (0) | 2008/02/18 |
| SOA란? (0) | 2008/02/17 |
| CPU의 구조 (0) | 2008/02/17 |
| CPU와 기억장치 (0) | 2008/02/16 |
