CS/Computer Architecture

[컴퓨터구조] 5-5.2. Instruction Cycle(Memory-reference instruction)

F12:) 2023. 9. 27. 15:04

오늘은 Instruction Cycle 중에서 Memory-reference Instruction에 대해 다뤄보겠습니다.

 


우리는 5-2 장에서 Instruction 중 memory-reference Instruction이 있고, 그 종류는 총 7가지라는 것을 배웠습니다.

 

그럼 이제, 그 7가지 과정에 대해서 조금 더 자세하게 Instruciton Cycle로 알아보겠습니다.

 

위의 표의 과정을 RTL로 표시한 그림도 같이 확인해봅시다.

 

확실히 이해가 되시나요?? 무엇보다도 알아야할 것은, 각 operation의 종료 Timing이 다르다는 것입니다. 따라서 어떠한 연산은 조금 빨리 끝나고, 어떠한 연산은 조금 오래 걸린다는 뜻이겠죠. 각 연산에서 특정 Timing마다 진행되는 것은 저렇게 정해져있습니다. 따라서 이러한 것들은 이해를 통한 암기가 답입니다..

 

 

위의 그림은 각 Operation마다의 뜻을 알면 조금 더 이해하기 쉽습니다. ADD같은 직관적인 것 말고, 다른 Operation들은 아래에 조금 설명을 해볼까합니다.

 

LDA : Load AC

STA : Store AC

BUN : AR이 가르키는 주소로 가서 instruction을 수행하는 것이라고 보면 쉽습니다. 그렇기 때문에, AR의 주소가 PC에 Load되는 것이죠.

BSA : Branch and Save return Address를 의미합니다. Branch를 할건데(AR이 가리키는 주소로 갈건데) 현재 주소를 저장하고 가겠다는 뜻입니다. 그래서 실제로 BSA의 RTL을 확인해보시면,

 

M[AR] <- PC : 다음에 실행할 주소를 AR 번지에 저장합니다.

AR <- AR + 1 : 현재 주소를 1 증가시킵니다.

PC <- AR : AR을 다음에 실행할 주소로 설정합니다.

 

 

BSA

BSA는 사실 꽤 중요한 개념이므로 더 자세히 설명해보겠습니다.(방금의 설명만으로 부족할게 뻔하니까요...)

 

BSA는 이 과정으로 진행됩니다. 이러한 과정을 이해하려면 아래의 그림이 더욱 이해를 도울 수도 있겠네요.

 

T4에서의 과정입니다. PC는 현재 21입니다. 이 21의 값을 M[AR]에 저장한 모습이고, AR을 1 증가 시켰습니다.

 

이후, T5에서 AR의 값을 PC에 LD하므로, PC는 136이 되겠군요. T5의 과정은 설명을 생략하겠습니다.

 

그렇게 모든 subroutine을 마쳤다면, 제일 마지막에 BUN을 만나고 Indirect로 135번을 받았으니, 135번 주소에 가면 진짜 다음 instruction의 주소가 있게 됩니다. 그래서 결국 subroutine을 들어가기 전으로 돌아가서 계속 다음 주소의 instruction을 수행할 수 있게 되는 것입니다.

 

 

 

마지막 ISZ입니다.

DR에 있는 값을 1 올리고 만약 그 값이 0이라면 PC<- PC+1 즉, Instruction을 하나 건너 뛰는 것을 의미합니다. 

 

 

 


 

자 정리해봅시다. 오늘은 BSA에 대해서 조금 중점적으로 배웠습니다. 오늘 배운 instruction cycle은 memory-reference instruction이고, 각 instruction은 종료 Timing이 다르다는 것까지!! 조금 더 심화하면, 어느 instruction은 언제 끝나고, 어떠한 연산을 수행하는지까지 이해하셨으면 완벽합니다.

 


다음 장에서는 register-reference와 Inuput/Output 그리고, I/O에서는 빠질 수 없는 개념인 Interrupt까지 짚어볼 생각입니다. 감사합니다.