ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CPU major state 및 명령어 처리과정
    컴퓨터지식/컴퓨터구조 2024. 2. 11. 12:27

    CPU major state 정의

    CPU가 무엇을 하고 있는지 나타내는 상태로 major state 또는 machine cycle 이라고 부르며,

    CPU가 무엇을 위해 접근하느냐에따라 fetch, execute, indirect, interrup 싸이클로 구분

     

     

    CPU major state 설명

    major state의 4가지 상태는 F. R 플립플롭의 상태를 가지고 파악함

     

     

    CPU 내부버스를 포함한 major cycle 의 micro operation

    1. fetch cycle

    • 실행할 명령어를 메모리에서 인출 하는 단계
    • CPU는 PC를 1씩 증가시키며 명령어를 기억장치에 저장된 순서대로 읽는것이 가능

     

    C0t0 MAR <- PC PC에 있는 주소를 MAR로 이동
    C0t1 MBR <- MAR, PC <- PC + 1 메모리에 있는 내용을 MBR로 저장, PC 1 증가
    C0t2 IR <- MBR (OP) MBR에 있는 OP-code 부분을 IR에 전달
    * 현재 MBR에는 메모리에서 읽어온 명령어가 들어있음*
    C0t2 I <- MBR (I) 명령어 모드 비트를 플립플롭 I에 전달
    C0t3 F <- 1 or R <- 1 I가 0: F 플립플롭에 1을 전송하여 Execute 단계로
    I가 1: R 플립플롭에 1을 전송하여 Indirect 단계로

     

    PC (Program Counter): 다음에 인출 명령어의 주소를 가진 레지스터

    * AC (Accumulator): 누산기로 데이터를 일시적으로 저장하는 레지스터

    * IR (Instruction Register): 가장 최근에 인출된 명령어의 코드가 저장

    * MAR (Memory Address Register , 기억장치 주소 레지스터): PC에 저장된 명령어 주소가 시스템 버스로 출력되기전에 일시적으로 저장되는 주소 레지스터

    * MBR (Memory Buffer Register, 기억장치 버퍼 레지스터): 기억장치에 쓰여질 데이터 혹은 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼레지스터

     

     

    2. indirect cycle

    • CPU가 주기억장치에서 유효주소를 읽는 단계
    • Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행

    C1t0 MAR <- MBR[AD] MBR에 있는 명령어의 주소부분을 MAR로 이동
    *현재 MBR에는 fetch 단계에서 불러온 명령어가 존재*
    C1t1 MBR <-  MAR 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전달
    C1t2 No operation MBR에 있는 OP-code 부분을 IR에 전달
    * 현재 MBR에는 메모리에서 읽어온 명령어가 들어있음*
    C1t2 F <- 1, R <- 0 F에 1, R에 0을 전송하여 Execute 단계로

     

     

    3. ececute cycle

    • Fetch 단계에서 해석항 명령어를 실행
    • 플래그 레지스터 상태 변화를 검사하여 Interrupt 단계 혹은 Fetch 단계로 상태전이
    C2t0 MAR <- MBR[AD] MBR에 있는 명령어의 주소부분을 MAR로 이동
    C2t1 MBR <- MAR 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전달
    C2t2 AC <- AC+MBR 누산기의 값과 MBR 값을 더해 누산기에 전송
    C2t3 F <- 0, R <- 0 F는 0이고 R=0 이므로 인출 주기로 전기

     

     

    4. Interrupt cycle

    • CPU 상태를 잠시 pending하고 ISR 로 jump후 서비스 실행 후 복귀 단계
    C3t0 MBR[AD] <- PC,
    PC <- 0
    PC가 가지고 있는 다음에 실행할 명령어 주소를 MBR의 주소부분으로 전송
    복귀 주소를 저장할 0번지를 PC에 전송
    C3t1 MAR <- PC
    PC <- PC + 1
    PC가 가지고 있는 0번지를 MAR로 전송
    ISR로 이동할수있는 인터럽트벡터 위치를 지정하기 위해 PC 값 1 증가 
    C3t2 MAR <- MBR
    IEN <- 0
    MBR이 가지고 있는 다음에 실행할 명령의 주소를 메모리의 MAR이 가리키는 위치 (0번지)에 저장
    인터럽트가 끝날때까지 다른 인터럽트 발생 안함
    C3t3 F <- 0, R <- 0 fetch cycle로 이동

     

     

    References

     

    [정보처리][EC구조] 20. 메이저 상태 Major State

    메이저 상태[Major State or Major Cycle]의 기본 ▶ 시간 상태 [ Timing State ] : 메이저 상태에서...

    blog.naver.com

     

     

Designed by Tistory.