본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터 구조] -명령어 사이클

이 글은 www.youtube.com/watch?v=0gRA-lHCuWM 보고 공부한 글입니다.

 

유효주소 계산 후 실행하는 단계

유효주소 계산 전에 명령어의 종류를 이미 알아낸다.

T0,T1,T2fetch 사이클이다.
fetch
사이클 = 명령어 해독

 

D7의 값 이 1이면 RRI, io 명령이고, 0이면 RRI 명령이다.
15
번째 비트가 1이면 io명령
                    0
이면 RRI 명령이다.

 

마지막은 SC(sequence count)0으로 만들고 다시T0으로 간다.

D7값이 0이면 MRI 명령일 것이다.


15
번째 비트가 0이면 직접주소이기 때문에 바로 실행하고
1
이면 간접주소 이기 때문에 한번더 메모리에 있는 값을 AR 레지스터에 보내가지고(12비트의 값) 메모리에 접근하고 그 값을 가지고 와서 실제 명령을 실행한다.

MRI는 정확히T4에서 실행된다. RRIIO명령은T3에서 실행된다.

 

 

 

RRI명령어의 종류와 동작

11번 비트가 1인경우가 B11이다.

여기서 r값은 D7값이 1이고, i값이 not0이고 T3일 때 실행


11
번째 비트가 1이면 CLA를 실행하라는 뜻이다.

스킵하는법 : PC에 있는 값을1개 증가시킨다.(그 다음 명령어를 받는다)

 

 

 

 

HLT에  S1인경우 제일 처음 fetch가 일어나게 하는 것
돌고있는 시스템을 멈추게 하려면s0으로 만들면 된다.

 

 

 

 

 

MRI 명령어종류와 동작

T4가 실제 동작시간이다.

SC0으로 만드는건 다음 fetch할 수 있게 한다.

AC는 공통버스에서 DR에서 연결 돼있는 다른 라인을 거쳐 AC에 데이터를 넣는다.

 

STA - 저장

 

PC다음번에 수행해야할 명령의 주소


AR(Address register) –
주소 레지스터

 

BUN점프

 

BSA함수, 서브루틴의 구현에 사용


간접주소 사용의 전형적인 예

PC값이 20이 됏을 때 명령어를 fetch해서 디코딩해보면 BSA이다. 그럼 135번지로 점프한다.
서브루틴인 135번지부터 있다고 가정하자.


20
번 명령어가 실행될 때T0T1가 지나면 PC = PC +1이 동작해서 PC값은 21이 되어있다.

PC=21번지값을 AR에 저장한다. 실제 서브루틴은 136부터 시작한다.

 

서브루틴 만들 때 규칙1. 점프한 주소는 비어있다.
규칙2. 서브루틴 끝나는 마지막 명령은1(간접주소), BUN ,자기가 시작한 주소이다.
마지막에 도착하면 BUN으로 무조건 점프하라 어디로? 자기가 시작한주소, 근데 그건 간접주소 이다. 라고 해석할 수 있다.

 

 

ISZ – if, for, while문처럼 제어문 구현에 사용

DR 값은 1증가시키고 0이면 PC를 다다음 명령의 주소를 가져라.

 

i0부터 10까지 증가한다는 프로그래밍 언어를 쓰는건 기계어로 번역하면 -10~0까지 이다.

 

728x90