2 minute read

명령어 실행

- 명령어 사이클

    CPU 가 한 개의 명령어를 실행하는데 필요한 전체 과정

    명령어 인출과 명령어 실행으로 이루어짐

    부 사이클 인 인출 사이클과 실행 사이클로 부름

- CPU 레지스터

    명령어를 실행하기 위해 기본적으로 필요한 CPU 내부 레지스터

    - 프로그램 카운터 (PC)

        다음에 인출될 명령어 주소를 가지고 있는 레지스터

        각 명령어 인출 후 내용이 자동으로 1(명령어 길이에 해당하는 주소 단위의 수만큼)이 증가됨

        분기 명령어가 실행되는 경우 그 목적지 주소로 갱신됨

        - 분기(branch) 명령어

            PC 내용이 가리키는 위치가 아닌 다른 위치의 명령어로 실행 순서를 바꾸도록 해주는 명령어

    - 누산기 (AC)

        데이터를 일시적으로 저장하는 레지스터

        레지스터의 비트 수는 단어 길이와 같다

    - 명령어 레지스터 (IR)

        가장 최근에 인출된 명령어가 저장되어 있는 레지스터

    - 기억장치 주소 레지스터 (MAR)

        PC 에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전 잠시 저장하고 있는 레지스터

        출력 선들이 시스템 버스의 주소 버스와 직접 연결되어 있음

    - 기억장치 버퍼 레지스터 (MBR)

        기억장치에 저장되거나 읽혀진 데이터를 잠시 가지고 있는 레지스터

        입력, 출력 선들이 시스템 버스의 데이터 버스와 연결되어 있음

- 클록 주기

    명령어 인출에 각각 걸리는 시간

    CPU 의 클록 주파수 1GHz 가 클록 주기의 1ns

- 인출 사이클

    명령어를 인출하는 사이클

    PC의 명령어 주소를 MAR 로 보내고 시스템 주소 버스를 통해 기억 장치로 전송됨

    기억장치에서 인출된 명령어가 MBR 에 적재되며 PC 가 +1 됨. (MBR 은 각 기억 장치의 주소와 명령어 길이를 가지고 있음)

    MBR 의 명령어가 IR 로 이동됨

- 실행 사이클

    인출된 명령어 코드를 해독하고 그 결과에 따라 필요한 연산을 수행함

    데이터 이동, 데이터 처리, 데이터 저장, 프로그램 제어로 분류됨

    첫 번째로 수행되는 연산은 명령어의 오퍼랜드를 MAR 로 이동해 기억장치에서 데이터를 인출하는 것

- 인터럽트

    프로그램 처리 중 CPU 에 순차적인 명령어 실행을 중단하고 다른 프로그램 처리를 요구하는 매커니즘

    정전과 같은 급박한 상황에 대처하거나 외부 장치들과의 상호 작용을 위하여 반드시 필요한 기능

    - 인터럽트 서비스 루틴 (ISR)

        CPU 가 원래의 프로그램 수행을 중단하고 요구된 인터럽트를 처리해주기 위한 프로그램

    - 인터럽트 사이클

        인터럽트 요구 신호 검사, 현재 PC 내용을 스택에 저장, PC 에 해당 ISR 의 시작 주소를 적재하는 과정

        - 마이크로 연산

            PC의 주소가 MBR 에 적재됨

            SP 의 내용이 MAR 을 통해 주소버스로 나가고 PC 에는 ISR 의 시작 주소 적재.

            MBR 에 저장되어 있던 PC 내용 스택에 저장하고 SP의 내용을 1 감소시켜 TOS 주소 저장

    - 인터럽트 상태

        CPU 가 인터럽트를 받을 수 있는 상태인지 알려주는 신호

        인터럽트를 받을 수 없으면 자동으로 넘어감

    - 스택 포인터

        CPU 내부에 있는 특수 목적용 레지스터들 중의 하나

        인터럽트 사이클에 들어갈 시 원래 PC와 AC 를 저장함

        스택의 최상위 주소를 가리킴

        일반적으로 주기억장치의 끝 부분이 사용됨

    - 다중 인터럽트

        인터럽트가 실행되는 도중 다른 인터럽트가 들어오는 것

        새로운 인터럽트 요구가 들어와도 인터럽트 사이클을 수행하지 않도록 하거나 인터럽트 요구들 간에 우선 순위를 정하고 우선 순위에 따라 먼저 수행하는 것이 있음.

- 간접 사이클

    실행 사이클에서 사용될 데이터의 실제 주소를 기억 장치로부터 읽어오는 과정

    - 마이크로 연산

        IR 을 MAR 로 보냄

        데이터 실제 주소 MBR 에 적재

        MBR 의 데이터 실제 주소 IR 에 저장