secondary memory devices
communications equipment
terminals
CPU에서는 한 번에 하나의 명령어씩 가져와서 수행하는데 메인 메모리에서 바로 가져와서 사용할 수 없다. (연결되어 있지 않으므로)
또한 CPU에는 연산의 결과를 저장하거나 데이터를 불러올 때 저장할 범용레지스터가 많이 있는데, 마찬가지로 메인 메모리에서 바로 사용할 수 없다.
CPU와 레지스터들을 모두 연결하려면 경우가 너무 많기 때문에 설계하기 복잡해지고 어려워진다.
따라서 CPU에는 메모리에 대한 최소한의 연결 정보만을 저장하기 위해 MAR, MBR을 사용한다.
Condition codes
Interrupt enable/disable
Supervisor/user mode
명령 실행은 두 단계로 이루어진다.
CPU가 메인 메모리로부터 명령어를 가져오는 단계
명령어를 분석하고 실행하는 단계
명령 실행의 예시를 통해 과정을 알아보자
Fetch Stage#1 (Step1)
Execute Stage#1 (Step2)
명령 분석
IR에 있는 명령을 분석한다.
IR 내의 첫 번째 4비트는 메모리에 저장된 값이 AC(Accumulator Register)에 적재될 것을 나타내고, 나머지 12비트는 그 주소를 명시한다.
IR의 주소 부분이 MAR로 이동한다.
메모리에서 MAR 부분을 읽어 MBR에 저장한다.
MBR → AC
Fetch Stage#2 (Step3)
Execute Stage#2 (Step4)
명령 분석
앞의 4비트는 덧셈을 나타내고 나머지 12비트는 덧셈할 값의 주소를 명시한다.
IR의 주소 → MAR
Memory[MAR] → MBR
AC ← AC + MBR
Fetch Stage #3 (Step5)
Execute Stage#3 (Step6)
명령 분석
앞의 4비트는 저장을 나타내고 나머지 12비트는 저장할 주소를 명시
IR의 주소 → MAR, AC → MBR(메모리와 AC가 연결되어 있지 않기 때문에)
Memory[MAR] ← MBR
📚 참고 및 이미지 출처