RangA 2023. 5. 30. 21:18

01. 명령어 수행 순서

01. 명령어(Instruction)의 개념

1) 컴퓨터에 명령 전달 방법

  • 컴퓨터에 명령을 전달할 때는 비트(Bit)로 전달이 됨
  • 비트의 0과 1을 컴퓨터가 이해할 수 있는 방식으로 변환하여 전달함
  • 전달 방법으로는 전기적 신호를 이용하거나 광신호를 이용하는 방식 등이 있음

2) 명령어 실행 및 데이터 처리

  • 컴퓨터는 전달 받은 0과 1의 값들을 정해진 순서대로 실행하며 그 과정에서 처리, 저장 등을 수행함
  • 프로그램 실행 및 데이터 처리는 중앙 처리 장치에서 수행하고, 저장은 기억 장치에서 수행함
  • 중앙 처리 장치로부터 명령을 받아 데이터를 입력 또는 출력하는 일은 입출력 장치에서 수행함



02. 명령어 수행

1) 명령어 수행 순서

  • 메모리에 기억된 명령어들을 가져와 CPU에서 처리되는 순서로 기계 사이클(Machine Cycle)이라고 함
  • 인터럽트가 추가된 기계 사이클은 명령어 실행 단계 다음에 인터럽트 처리 여부를 확인함
  1. 명령어 인출(Instruction Fetch) : 명령어를 메모리에서 CPU로 가져옴
  2. 명령어 해석(Instruction Decoder) : 명령어를 분석(해독)하는 것으로, 필요한 장치로 제어 신호를 보냄
  3. 오퍼랜드 인출(Operand Fetch) : 연산 대상(피연산자)을 가져옴
  4. 명령어 실행(Instruction Execution) : 명령어를 실행(연산)하는 것으로, 명령어의 결과를 저장함
  5. 인터럽트 조사(Interrupt Search) : 인터럽트 여부를 조사함

2) 인터럽트 여부 조사

  • 인터럽트는 새로운 프로그램을 수행하기 위하여 현재 수행 중인 프로그램을 잠시 중단하는 것
  • 하나의 명령어가 수행 중인 경우, 인터럽트가 발생하더라도 현재 수행 중인 명령어는 중단되지 않고 명령어가 모두 처리된 후에 인터럽트 여부를 조사하게 됨



03. 레지스터(Register)

1) 레지스터의 개념

  • CPU 내에서 자료를 일시적으로 저장하는 저장 장치
  • 주기억 장치보다 저장 용량이 적고 기억 장치 중에서는 속도가 가장 빠름
  • 일반적으로 플립플롭(Flip-Flop)이나 래치(Latch) 등을 연결하여 구성됨
  • CPU 내부에서 처리할 명령어나 연산의 중간값 등을 일시적으로 저장하는 기억 장치
  • 휘발성 메모리이면서 읽기/쓰기가 가능함

2) 특수 전담 레지스터

  • 가장 중요한 레지스터로 이미 그 용도가 정해져 있으므로 사용자가 직접 접근할 수 없음
  • 종류에는 PC, MAR, MBR, IR이 있음

3) 데이터 레지스터(DR : Data Register)

  • 명령어 수행 시에 주기억 장치에서 가져온 데이터를 기억시키는 레지스터로 워드(Word) 크기와 같음
  • 종류에는 ACCumulator, MBR, GPR이 있음

4) 주소 레지스터(AR : Address Register)

  • 주기억 장치에 접근하기 위해 주기억 장치 주소의 일부 또는 전부를 기억시키는 레지스터
  • 종류에는 PC, MAR, 베이스 레지스터, 인덱스 레지스터가 있음



04. 제어 장치(CU : Control Unit)

1) 프로그램 계수기(PC : Program Counter or Location Counter)

  • 다음 수행할 명령어의 주소(위치) 값을 기억하고 있는 레지스터
  • 현재 1001번지가 수행되는 중이라면 다음 실행할 1002번지를 기억하고 있음

2) 메모리 접근 레지스터(MAR : Memory Address Register)

  • 현재 접근하고자 하는 주소 값을 기억하고 있는 레지스터
  • PC에서 가지고 있던 주소 값의 명령을 주기억 장치에서 가져다가 MBR에 기억시킴

3) 기억 레지스터(MBR : Memory Buffer Register)

  • 주기억 장치의 명령어나 데이터를 임시로 기억하고 있는 레지스터

4) 명령 레지스터(IR : Instruction Register)

  • 현재 실행 중인 명령어를 기억하고 있는 레지스터

5) 명령어 해독기(ID : Instruction Decoder)

  • 명령 레지스터에서 호출된 명령을 해독하여 해독된 명령을 수행시키고 제어 신호를 만들어 내는 장치



05. 시스템 버스(Bus)

1) 시스템 버스

  • CPU를 구성하고 있는 장치 간에 혹은 CPU와 주기억 장치 간에 정보 교환을 위해 연결된 통신 회선으로 종류로는 주소 버스, 데이터 버스, 제어 버스가 있음
  • 시스템 버스의 회선 수는 시스템의 옵션에 의해서 결정되는(가변적으로 결정되는) 버스가 아닌, 이미 컴퓨터 성능에 맞춰진 버스(고정 버스)

2) 주소 버스(Address Bus)

  • CPU에서 주기억 장치의 특정 위치를 가리키기 위한 단방향 회선
  • 주소 버스 회선 수 : 메모리 용량이 256KB이라면 256 = 28, 1K는 210이므로 28 × 210 = 218이며, 따라서 주소 버스의 회선 수는 18개가 필요하고, 이는 18bit 주소 버스가 됨
  • 주소 버스 회선 수의 이해
    • 주기억 장치의 위치가 4개이면 주소 버스의 회선 수는 2비트가 됨
    • 주기억 장치의 위치가 8개이면 주소 버스의 회선 수는 3비트가 됨
    • 주기억 장치의 위치가 256개이면 주소 버스의 회선 수는 8비트가 됨

3) 데이터 버스(Data Bus)

  • CPU와 메모리 사이에서 데이터를 주고 받기 위한 양방향 회선
  • 데이터 버스 회선 수 : 8비트 컴퓨터, 32비트 컴퓨터가 있다면 8, 32비트는 데이터 버스의 회선 수이며 컴퓨터의 성능을 판단하는 기준이 됨
  • 데이터 버스 회선 수의 이해
    • 주기억 장치의 데이터를 가져오기 위한 그릇
    • 주기억 장치에 있는 데이터를 한 번에 가져오는 크기
    • 한 번에 가져올 수 있는 데이터의 크기를 워드(Word)라고 함
    • 데이터의 크기가 64비트이면 데이터 버스 회선 수도 64비트가 됨

4) 제어 버스(Control Bus)

  • CPU나 채널에서 입출력 장치에 동작을 지시하기 위하여 제어 신호를 전달하는 단방향 회선