Post

CPU 입출력 작업 처리


컴퓨터 구조

컴퓨터 구조를 공부하면서 알게된 내용을 요약해서 작성해보자.

장치 레지스터

  • 장치(하드웨어)에도 자체적인 레지스터인 장치 레지스터가 있다.
  • 장치 레지스터는 주로 장치에 관련된 일부 정보를 저장하며 두 가지 레지스터가 있다.
    • 데이터를 저장하는 레지스터: 사용자가 키보드의 키를 누르면 이 정보는 레지스터에 저장된다.
    • 제어 정보의 상태 정보를 저장하는 레지스터: 이런 레지스터를 읽고 쓰는 작업을 이용하여 장치를 제어하거나 장치 상태를 볼 수 있다.
  • 장치 레지스터는 기계 명령어로 읽고 쓴다.

입출력 기계 명령어

  • CPU 내부에서 자주 볼 수 있는 산술 계산, 점프, 메모리 읽기, 쓰기 등은 모두 특정한 기계 명령어가 있다.
  • 이 특정한 기계 명령어를 입출력 명령어라고 한다.

메모리 사상 입출력

  • LOAD, STORE 명령어는 메모리 주소 공간을 전달한다.
  • 메모리 주소 공간과 실제 메모리 주소는 서로 다른 개념이다.
  • 기계 명령어 관점에서 CPU에 보이는 것은 주소 공간이며, CPU는 주소 공간의 특정 주소에서 데이터를 읽어 온다.
  • 주소 공간의 일부분을 장치에 할당하여, 메모리를 읽고 쓰는 것처럼 장치를 제어하는 방법이다.
  • 컴퓨터의 저수준 계층에는 본질적으로 두 가지 입출력 구현 방법이 있다.
    • 특정 입출력 기계 명령어를 사용한다.
    • 메모리 읽기와 쓰기 명령어를 함께 사용하지만 주소 공간의 일부분을 장치에 할당하는 것이다.

폴링

  • 장치 상태 레지스터를 지속적으로 읽는 작업으로 키보드를 누르면 바로 해당 키워드의 문제를 읽을 수도 있고, 누르지 않을 때는 계속 검사를 반복한다.

인터럽트 구동식 입출력

  • CPU의 어떤 시간도 낭비하지 않는다.

인터럽트 신호

  • CPU가 기계 명령어를 실행하는 과정은 명령어 인출, 명령어 해독, 실행, 다시 쓰기로 전형적인 단계를 나눌 수 있다.
  • 인터럽트 신호가 없으면 모든 것이 정상적으로 동작한다.

인터럽트 처리와 함수 호출의 사이

  • 인터럽트 처리 점프는 서로 다른 실행 흐름을 포함하므로 함수 호출에 비해 저장해야할 정보가 많다.