10강. 컴퓨터 구조 (2)

학습개요

이번 강의에서는 지난 강의에서 다룬 디지털 회로를 바탕으로 명령어를 처리하기 위한 처리장치와 제어장치가 어떻게 구현되고 동작하는지를 살펴본다. 그리고 입출력 시스템의 구조와 제어 방식, 그리고 병렬처리의 기법에 대해서 학습한다.

학습목표

  1. 명령어의 종류, 형식, 그리고 주소지정방식 이해할 수 있다.
  2. 중앙처리장치의 구성, 동작 원리 및 구현 방법을 이해할 수 있다.
  3. 입출력 시스템의 구성과 제어 방식, 그리고 병렬처리 기법으로서 파이프라인 처리의 개념과 동작을 이해할 수 있다.

연습문제

  1. 연산의 대상이 되는 데이터를 누산기에서 가져오고, 결과를 누산기에 저장하는 방식의 명령어 형식은?
    1. 0-주소 명령어
    2. 1-주소 명령어
    3. 2-주소 명령어
    4. 3-주소 명령어
      정답 : 2

      ❒ 연산의 대상이 되는 데이터를 어디서 추출하고 결과를 어디에 저장할지에 따라, 즉 오퍼랜드의 개수에 따라 명령어 형식은 0/1/2/3-주소 명령어로 구분할 수 있다.

      • 0-주소 명령어 → 스택 구조의 컴퓨터에서 사용된다.
      • 1-주소 명령어 → 누산기(AC)를 이용하는 형식
      • 2-주소 명령어 → 가장 보편적으로 사용되는 형식
      • 3-주소 명령어 → 프로그램의 길이가 가장 짧다.

  2. 주소지정방식 중에서 두 번의 기억장치 접근이 필요한 것은?
    1. 직접 주소지정방식
    2. 레지스터 주소지정방식
    3. 즉시 주소지정방식
    4. 간접 주소지정방식
      정답 : 4

      ❒ 간접 주소지정방식은 명령어의 오퍼랜드의 내용이 실제 데이터가 저장된 기억장치의 주소를 가지고 있는 기억장치의 주소를 나타내기 때문에 두 번의 기억장치 접근을 통해서 실제 데이터를 얻기 때문에 처리 속도가 가장 느리다.

      • 주소지정방식에 따른 접근 속도의 비교(감소순 나열): 즉시 주소지정방식 → 레지스터 주소지정방식 → 직접 주소지정방식 → 상대 주소지정방식 → 간접 주소지정방식

  3. 주기억장치에서 가져와서 현재 실행 중인 명령어를 저장하고 있는 레지스터는?
    1. PC
    2. AC
    3. IR
    4. MBR
      정답 : 3

      ❒ CPU 내에서 특별한 기능을 수행하는 특수 레지스터로서는 다음과 같은 것들이 있다.

      • 누산기(AC) → 데이터나 연산 결과를 일시적으로 저장하는 레지스터로서, 입력장치로부터 데이터를 받아들이거나 출력장치로 데이터를 전송하는 데 사용한다. CPU가 연산을 수행한 후 그 결과는 반드시 누산기에 저장된다.

      • 프로그램 카운터(PC) → 다음에 수행될 명령어가 저장되어있는 주기억장치의 주소를 저장하고 있는 레지스터

      • 명령어 레지스터(IR) → 주기억장치에서 가져와서 현재 실행 중인 명령어를 저장하고 있는 레지스터

      • 기억장치 버퍼 레지스터(MBR) → 기억장치에 저장될 또는 기억장치에 읽어온 데이터를 임시로 저장하는 레지스터

      • 기억장치 주소 레지스터(MAR) → 현재 프로그램 카운터(PC)의 내용을 시스템 버스의 주소 버스로 출력되기 전에 일시적으로 저장되는 레지스터

  4. 제어장치의 명령어 사이클을 올바르게 나열한 것은?
    1. 인출 – 해독 – 실행 – 저장
    2. 인출 – 해독 – 저장 – 실행
    3. 해독 – 인출 – 실행 – 저장
    4. 해독 – 실행 – 인출 – 저장
      정답 : 1

      ❒ 명령어 사이클: 인출 – 해독 – 실행 – 저장

      • 제어장치는 처리장치 및 기억장치와 연결되어 있어서 기억장치로부터 다음에 수행할 명령어를 가져와서(인출, fetch) 상응하는 마이크로연산들로 해독(decode)한 후 수행(execute)하고 레지스터에 다시 저장하는 과정을 반복 수행한다.

  5. 입출력 제어 방식 중에서 입출력 전용의 별도 프로세서를 사용하기 때문에 CPU와 같은 다양한 연산 작업도 수행 가능한 것은?
    1. DMA 방식
    2. 인터럽트 방식
    3. 채널 방식
    4. 프로그램 방식
      정답 : 3

      ❒ 입출력 제어 방식

      • CPU를 통한 제어 → 입출력장치의 정보가 CPU를 통해 주기억장치에 쓰고 읽혀지는 방식

      – 프로그램에 의한 방식 → CPU가 주기적으로 입출력장치에 신호를 보내 입출력이 필요한지를 물어보는 방식

      – 인터럽트 방식 → 입출력장치가 인터럽트를 걸 때만 CPU가 해당 장치와 연락하는 방식

      • DMA 방식 → 작업을 수행하다가 CPU가 입출력을 원할 때 DMA 제어기에게 입출력을 지시하고, CPU는 다른 작업을 처리 → 지시를 받은 DMA 제어기는 CPU를 거치지 않고 주기억장치와 입출력장치 사이의 데이터 전송을 수행 → 전송이 끝나면 DMA 제어기는 CPU에게 인터럽트 신호를 보냄으로써 동작을 마치고, 신호를 받은 CPU는 입출력 요청 이후의 작업을 재개한다.

      • 채널 방식 → 입출력 전용의 별도의 프로세서(“채널”)를 사용하는 방식으로, 입출력에 대한 CPU의 부담이 거의 없으나 하드웨어적인 비용이 증가하는 단점이 있다.

정리하기

  1. 명령어
    • 명령어 집합 → 컴퓨터 시스템 내에 정의된 기본적인 명령어들의 집합
      • 명령어 집합이 정의되면 그에 상응하는 하드웨어 구조가 결정됨 → CISC, RISC
    •  명령어 형식 → 연산자코드와 오퍼랜드로 구성
      • 오퍼랜드의 개수에 따른 구분 → 3-주소 명령어, 2-주소 명령어, 1-주소 명령어, 0-주소 명령어
      •  명령어의 메모리 표현 → 각 연산자에게 고유의 이진 패턴이 부여되고, 주기억장치의 주소와 레지스터도 고유의 이진 패턴이 부여되며, 이런 연산자코드-오퍼랜드 쌍이 2진수의 나열의 형태로 표현되어 주기억장치에 저장됨
    • 주소지정방식 → 연산에 사용될 데이터가 기억장치의 어디에 위치하는지를 지정하는 방식
      • 종류 → 즉시 주소지정방식, 직접 주소지정방식, 간접 주소지정방식, 레지스터 주소지정방식, 레지스터 간접 주소지정방식, 상대 주소지정방식(→인덱스된 주소지정방식, 베이스 레지스터 주소지정방식)
        .
  2. 중앙처리장치
    • 명령어의 구현 방법
      • 마이크로프로그램에 의한 제어장치 → 연산과 명령어 수행 순서 조작 회로가 제어기억장치에 저장된 마이크로프로그램으로 기동하는 장치
      • 직접 회로로 구성된 제어장치 → 연산과 명령어 수행 회로가 직접 구성된 제어회로에 의해 기동하는 장치
    • 레지스터 → 범용 레지스터와 특수 레지스터로 구분
      • 특수 레지스터의 종류 → 누산기(AC), 기억장치 버퍼 레지스터(MBR), 기억장치 주소 레지스터(MAR), 프로그램 카운터(PC), 명령어 레지스터(IR)
    • 처리장치 → 연산장치(ALU) + 레지스터
      • 수행되는 모든 연산의 기능은 비트 패턴으로 이루어진 마이크로연산으로 구현
      • 각 마이크로연산은 처리장치 내의 각종 논리회로와 연결되어 하드웨어를 직접적으로 통제할 수 있는 제어단어로 일대일 매핑되어 있음
    • 제어장치
      • 기본 기능 → ① 처리장치를 구동해서 특정 연산을 수행한 후 처리장치 내의 레지스터 값을 갱신하고 연산 결과를 출력. ② 현재 명령을 수행한 후 다음에 수행할 명령의 주소정보를 생성
      • 명령어 사이클 → 인출 – 해독 – 실행 – 저장
      • 구성요소 → PC, IR, 명령어 해독기, 주소결정회로, 제어기억장치, 제어기억장치 주소 레지스터, 제어기억장치 데이터 레지스터
        .
  3. 입출력장치 및 병렬처리
    • 입출력 시스템의 기본 구성요소
      • 입출력장치, 입출력장치 제어기, 입출력장치 인터페이스, 입출력 버스
    • 입출력 제어 방식
      • CPU에 의한 방식 → 입출력장치의 정보가 CPU를 통해 주기억장치에 쓰고 읽혀지는 방식 → 프로그램에 의한 방식과 인터럽트에 의한 방식으로 구분
      •  DMA 방식 → 입출력장치가 주기억장치와 직접 연결되어 CPU는 두 장치 간의 초기 설정 및 허가에만 관여하고 직접적인 정보의 이동은 장치 간에 DMA 제어기가 처리하는 방식
      • 채널 방식 → 채널이라는 입출력 전용의 별도 프로세서를 사용하는 방식 → 정보 전송 통로 제공 및 CPU와 같은 연산 작업도 수행 가능
    • 병렬처리
      • 파이프라인 처리기 → 프로그램 내에 내재하고 있는 시간적 병렬성을 활용 → 하나의 연산을 서로 다른 기능을 가진 여러 개의 단계로 분할하여 각 단계가 동시에 서로 다른 데이터를 취급하도록 하여 처리 속도의 향상을 도모파이프라인 처리기 → 프로그램 내에 내재하고 있는 시간적 병렬성을 활용 → 하나의 연산을 서로 다른 기능을 가진 여러 개의 단계로 분할하여 각 단계가 동시에 서로 다른 데이터를 취급하도록 하여 처리 속도의 향상을 도모

Leave a Comment