Instruction cycle (CPU operation method)

명령 사이클(instruction cycle) (CPU 동작 방식)

  • CPU가 하나의 명령어를 수행하는 데 필요한 모든 단계나 과정

  • 계속해서 명령 사이클을 반복하면서 CPU가 동작함

  • 여러 단계로 나뉘어져 있음

  1. 인출(Fetch)

    • 주기억장치로부터 수행할 명령어를 CPU로 가져옴

      • CPU의 프로그램 카운터(Program Counter, PC)가 가리키는 메모리 주소에서 명령어를 가져와 명령어 레지스터(Instruction Register, IR)에 저장

    • 프로그램 카운터는 다음 명령어의 주소를 가리키도록 증가

  2. 간접(Indirect)

    • IR의 명령이 메모리 접근을 필요로 한다면, 해당 명령이의 메모리 주소가 직접 주소인지 간접 주소인지 확인

      • if 직접 주소 명령

        • 추가적인 작업 없이 다음 단계로 진행

      • if 간접 주소 명령

        • IR에 저장된 오퍼랜드를 통해 실제 메모리 주소를 찾아 해당 위치의 데이터를 가져온다.

        • 가져온 데이터(실제 메모리 주소)를 IR의 오퍼랜드 부분에 저장한다.

  3. 실행(Execute)

    • 인출된 명령어를 해독(decode)하고 적절한 동작을 수행

    • 실행 사이클에서 수행되는 마이크로 연산들은 명령어에 따라 다름

      • ADD, LOAD, STA, JUMP

  4. 인터럽트(Interrupt)

    • 인터럽트 발생시 인터럽트 처리를 위한 단계

    • 인터럽트 처리 순서

직접 주소 vs 간접 주소

**주소 지정 방식(Addressing Modes)**에 대한 내용이다.

직접 주소 지정 방식 (Direct Access Mode)

  • 개념: 직접 메모리 접근 방식에서는 어셈블리 명령어 내의 오퍼랜드가 실제로 접근하고자 하는 메모리의 주소를 직접 나타냅니다.

  • 예시: **LOAD R1, 1000**이라는 명령어가 있다면, 이는 메모리 주소 **1000**에서 값을 가져와서 레지스터 **R1**에 저장하라는 의미입니다.

간접 주소 지정 방식 (Indirect Access Mode)

  • 개념: 간접 메모리 접근 방식에서는 어셈블리 명령어 내의 오퍼랜드가 실제 데이터의 메모리 주소를 담고 있는 다른 메모리 위치를 가리킵니다. 즉, 명령어의 오퍼랜드는 "주소의 주소"를 나타내게 됩니다.

  • 예시: **LOAD R1, (1000)**이라는 명령어가 있다면, 이는 메모리 주소 **1000**에 저장된 값을 먼저 가져와서 (이 값은 또 다른 메모리 주소일 것입니다), 그 주소 위치에서 실제 데이터를 가져와 레지스터 **R1**에 저장하라는 의미입니다.

간단히 요약하면:

  • 직접 주소 지정 방식: "이 주소에 있는 데이터를 가져와라."

  • 간접 주소 지정 방식: "이 주소에 있는 값을 가져와, 그 값이 가리키는 주소로 가서 데이터를 가져와라."

간접 접근 방식은 특정 목적에 맞게 메모리 구조를 동적으로 변경할 필요가 있을 때 유용합니다. 예를 들어, 포인터나 참조 변수, 테이블 기반의 접근 방식 등에서 간접 메모리 접근 방식을 활용하게 됩니다.

스크린샷 2023-09-20 오후 5.23.40.png

참조

명령 주기

https://velog.io/@onenewarm/%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9D%B4%ED%81%B4

[컴퓨터 공학 기초 강의] 11강. 명령어 사이클과 인터럽트

Last updated