문제 정보 / 이미지 출처 (무료인강) :
https://www.youtube.com/playlist?list=PLimVTOIIZt2aR9jib0ws7hoDVZXdtiWsK
1. 마이크로 오퍼레이션의 개념
2. 마이크로 오퍼레이션 명령
3. 마이크로 사이클 타임
4. 동기 고정식 / 동기 가변식
1. 마이크로 오퍼레이션의 개념
컴퓨터가 수행하는 가장 작은 명령 처리 실행(동작) 단위
ADD 100 을 수행하기 위해 컴퓨터가 실행하는 모든 처리 과정 중 가장 작은 동작 단위
CPU 내부에 클럭주파수(= 제어신호★, CPU 동작의 타이밍 신호 )
발생기가 클럭신호(GHz 단위로 발생하는 신호)를 한 번 보낼 때마다
cpu 내의 여러 장치들이 유기적으로 동작한 뒤, 다음 신호를 기다림
클럭신호가 발생하고 다음 클럭신호가 발생할 때까지의 사이 시간에 cpu내부에서 일어나는 하나의 동작을 지시하는
가장 작은 동작이 마이크로 오퍼레이션
명령의 수행은 마이크로 프로그램(ROM에 저장돼있다.)에 의해 이루어지는데,
마이크로 프로그램을 구성하는 하나의 클럭 주파수 주기 동안 실행되는 명령 = 마이크로 오퍼레이션
마이크로 오퍼레이션은 CPU내의 레지스터와 플래그의 상태 변환을 일으키는 동작이다.
하나의 클록 펄스(Clock Pulse= control signal, 제어 신호)에 기준을 두고 실행된다.
3번 : 처리기에 의해서 두 레지스터가 어떠한 처리를 거쳐 레지스터에 저장되게 하는 오퍼레이션과,
레지스터에서 레지스터로 이동하게 하는 오퍼레이션이 있다는 의미
예를 들어 PC에서 MAR로 주소를 보낼 때, 어떠한 처리도 없이 이동만 하는것이 R → R
PC에 PC + 1을 하여 저장하는 것은 어떠한 처리를 거쳐 저장하므로 F(R, R)→ R 로 표현한 것 뿐이다.
4번은 3번 설명과 반대되는 내용
Instruction fetch cycle
Instruction Fetch에서 가장 먼저 이루어져야하는 마이크로 오퍼레이션은 : MAR ← PC
>> PC ← PC+1 // MBR ← M(MAR) 이 두 마이크로 오퍼레이션이 동시에 실행
>> IR ← MBR
>>기존 값을 기준으로 풀면 된다.
4번은 산술
명령 패치 이후의 명령별 마이크로 오퍼레이션
ADD : AC(누산기)와 메모리의 내용을 더하여 결과를 AC에 저장하는 연산 명령.
Tn : 하나의 클럭 펄스
마이크로 오퍼레이션 목록 :
ADD
T0 : MAR ← MBR [ AD ] //AD는 주소부, 오퍼랜드부 // (PC로 먼저 보내는거 아닌가 ㅠ 생략한건가 동시에 이루어지는건가)
T1 : MBR ← M[ MAR ] //MAR 생략하는 경우도 있다
T2 : AC ← AC + MBR
LDA (Load to Accumulation)
메모리의 내용을 AC로 가져오는 명령이다.
(ADD와는 누산기 레지스터를 0으로 초기화하는 과정만 다르다)
누산기 초기화 과정 없이 MBR만 AC에 저장해도 똑같은 과정
LDA
T0 : MAR ← MBR(AD)
T1 : MBR ← M[MAR], AC ← 0
T2 : AC ← AC + MBR
MBR ← M(MAR)을 R(read)로 간단하게 표현
STA (Store Accumulator to Memory) //LDA 명령어의 반대
누산기 레지스터의 값을 메모리에 저장하라 (시험문제에는 Store Accumulator로 잘못나올수도있다.)
STA
T0 : MAR ← MBR(AD)
T1 : MBR ← AC //누산기레지스터에서 바로 메모리로 Store할순 없으므로 MBR을 거친다.
T2 : M[MAR] ← MBR
BUN / BSA ( Branch UnConditional / Branch and Save return Address )
BUN은 분기한 뒤 복귀하지 않는다.
BSA는 분기한 뒤 다시 복귀한다.
BUN
T0 : PC ← MBR[AD]
BSA ( 분기했다가 복귀해야한다. )
T0 : MAR ← MBR(AD) //분기 주소를 MAR로 옮겨놓음
MBR(AD) ← PC // 복귀 주소를 MBR로
PC ← MAR //분기주소를 PC로
T1 : M[MAR] ← MBR //복귀주소를 MAR를 통해 메모리에 저장!
T2 : PC ← PC + 1
BSA 실행시 분기 주소의 이동 경로 : MBR > MAR > PC (분기를 실행해야하므로)
복귀 주소의 이동 경로 : PC > MBR > MAR (복귀주소를 메모리에 저장)
BSA는 분기하고, 복귀 준비까지만!
ISZ (Increment and Skip if Zero) // 대충 기억만 해두면 된다.
메모리 값을 읽고 그 값을 1증가시킨 값이 0이면 현재 명령을 건너뛰고 다음 명령으로 이동하는 명령
...
MBR ← MBR+1 //Increment
...
IF(MBR=0) THEN (PC ← PC+1) // 읽은 값이 0 이면 다음 (명령)주소로 가서 실행하라
3. 마이크로 사이클 타임
한 개의 마이크로 오퍼레이션을 수행하는 데 필요한 시간
CPU 속도를 나타내는 척도
CPU Clock Time / CPU Cycle Time
4. 동기 고정식 / 동기 가변식
동기 고정식
모든 마이크로 오퍼레이션 중에서 수행시간이 가장 긴 것을 마이크로 사이클 타임으로 정의하는 방식
CPU 처리 속도가 느려지진 않는다. 비효율적인 것이지 CPU의 속도는 달라지지 않는다. 같은 속도지만 비효율적으로 처리할 뿐
엄밀히 말하면 CPU의 효율이 떨어지는 것
동기 가변식
아주 작은 시간이기때문에 비동기식(모두 다르게, 완전히 가변적이게는)은 불가능
비슷한 오퍼레이션끼리 모아서 집합을 만들고 각 집합에 대해서 서로 다른 마이크로 사이클 타임을 정한다.
사이클 타임은 정수배로 정한다 : 각 집합 간 서로 다른 사이클 타임의 동기를 맞추기 위함
'기타' 카테고리의 다른 글
정보처리 필기_전자계산기 구조_16강_특수기억장치 (0) | 2019.07.28 |
---|---|
정보처리 필기_전자계산기 구조_15강_명령 실행 및 제어 (0) | 2019.07.28 |
정보처리 필기_전자계산기 구조_13강_주소지정 방식 (0) | 2019.07.28 |
정보처리 필기_전자계산기 구조_12강_명령어 형식 (0) | 2019.07.27 |
정보처리 필기_전자계산기 구조_11강_연산 -(인강 메모) (0) | 2019.07.26 |