ABOUT ME

Today
Yesterday
Total
  • 컴퓨터구조 04 처리장치
    방송대/3-2학기 2021. 11. 19. 18:38

    4 처리장치(1)

     

    01 처리장치의 개요

     

    - 중앙처리장치 ( CPU: Central Processing Unit ) 

    * 처리장치 ( 데이터를 처리하는 연산을 실행 ) + 제어장치 ( 연산을 수행하도록 제어 )

    시스템 버스 + 입력 장치 + 중앙 처리장치 + 기억 장치 + 출력 장치

     

    중앙처리장치 ( 처리장치: [레지스터 세트(데이터 보관 기억장치) + 산술논리 연산장치(각종 연산)] + 제어장치 )

    제어장치 → 처리장치: 제어신호

    처리장치 → 제어장치: 상태신호

     

    - 처리장치의 구성

    산술논리 연산장치 ( ALU, Arithmetic and Logic Unit ): 산술, 논리, 비트연산 등의 연산을 수행 + 레지스터 ( Register, 기억장치의 일종 ): 연산에 사용되는 데이터나 연산의 결과를 저장

    *산술논리연산장치(ALU) 는 독립적으로 데이터를 처리하지 못하며, 반드시 레지스터들과 조합해 데이터를 처리해야 함

     

    - 기억장치 RAM ( 반도체 소자로 만든 장치 ), Register ( 디지털 논리회로로 만들어진 장치 )

     

    02 마이크로 연산

    * CPU 안의 데이터 처리장치에서 수행되는 각종 연산

     

    - 마이크로 연산: 레지스터에 저장되어 있는 데이터에 대해 이뤄지는 기본적인 연산 ( 한 레지스터의 내용을 다른 레지스터로 옮기는 것 + 두 레지스터의 내용을 합하는 것 + 레지스터의 내용을 1 만큼 증가시키는 것 등 )

    *처리장치의 동작원리를 이해하기 위해서는 마이크로 연산을 이해해야 함

     

    - 마이크로 연산의 종류

    *레지스터 전송 마이크로 연산( register transfer micro-operation ), 산술 마이크로 연산( arithmetic micro-operation ), 논리 마이크로 연산( logic micro-operation ), 시프트 마이크로 연산( shift micro-operation )

     

    - 레지스터 전송 마이크로 연산

    *한 레지스터에서 다른 레지스터로 2진 데이터를 전송하는 연산, 레지스터 사이의 데이터 전송은 연산자(←)로 표시

    예) R2 ← R1 :레지스터 R1 의 내용이 레지스터 R2 로 전송, T1 = 1 인 상태에서 R1 에서 R2 로의 데이터 전송

     

    - 레지스터 전송문

    조건문 > if ( T1 = 1 ) then ( R2 ← R1 )

    레지스터 전송문 > T1: R2 ← R1

     

    - 레지스터 전송문장에서 사용되는 기본적인 기호

    영문자(숫자와 함께) 레지스터를 표시 AR, R2, DR, IR

    괄호 레지스터의 일부분 R2(1), R2(7:0), AR(1)

    화살표 자료의 이동 표시 R1 ← R2

     

    - 산술 마이크로 연산: 레지스터 내의 데이터에 대해 실행되는 산술연산

    R0 ← R1 + R2 : R1 과 R2 의 합을 R0 에 저장

    R2 ← R2바 : R2 의 보수(1의 보수) 를 R2 에 저장

    R2 ← R2바 + 1 : R2 에 2의 보수를 계산 후 저장

     

    - 논리 마이크로 연산: 레지스터 내의 데이터에 대한 비트를 조작하는 연산

    기본적인 논리연산으로는 AND, OR, XOR, NOT 연산 등이 있음

    R0 ← R1바 : 비트별 논리적 NOT (1의 보수)

    R0 ← R1 ∧ R2 : 비트별 논리적 AND (비트 클리어)

    R0 ← R1 ∨ R2 : 비트별 논리적 OR (비트 세트)

     

    - 시프트 마이크로 연산: 레지스터 내의 데이터를 시프트(shift) 시키는 연산 *데이터의 측면이동에 사용

    • 왼쪽 시프트 R1 ← sl R2
    • 오른쪽 시프트 R1 ← sr R2

     

    시프트 연산을 수행하더라도 R2(출발 레지스터)의 값은 변하지 않는다, sr 이나 sl 에 대해 입력비트는 0 으로 가정한다, 출력비트의 값은 버려진다

     

    03 처리장치의 구성요소

     

    - 여러 개의 레지스터 ( 레지스터 세트 ), 산술논리연산장치 ( ALU ), 내부 버스 ( internal bus, 데이터가 오가는 연결통로 )

     

    - 레지스터 세트 ( Register Set ), 산술논리연산장치 ( ALU )

    - 처리장치의 동작: 마이크로 연산의 수행과정을 통해 처리장치가 동작함

    - 마이크로 연산의 수행과정

    ① 지정된 출발 레지스터의 내용이 ALU 의 입력으로 전달됨 ② ALU 에서 그 연산을 실행함 ③ 그 결과가 도착 레지스터에 전송됨

     

    - 처리장치에서 마이크로 연산의 수행과정: 처리장치의 구성요소들의 선택신호에 의해 제어됨

    *마이크로 연산의 예: R0 ← R1 + R2

    ① 선택신호 A 는 R1 의 내용을 버스 A 로 적재 ② 선택신호 B 는 R2 의 내용을 버스 B 로 적재 ③ 선택신호 F 는 ALU 에서 산술연산 A+B 를 수행 ④ 선택신호 H 는 시프터에서 시프트 연산을 수행 ⑤ 선택신호 D 는 연산결과를 R0 로 적재

     

    - 내부버스: 레지스터들 간의 데이터 전송을 위한 공통선로의 집합

    *내부버스를 구성하는 방법: 멀티플렉서 ( 출발 레지스터 선택 ) + 디코더 ( 도착 레지스터 선택 ) 를 이용함

     

    - 간단한 내부 버스의 구성 및 동작 예

    *마이크로 연산: R1 ← R0

    R0, R1 이 4 비트 레지스터인 경우, 내부버스 구성을 위해 2X1 MUX 4개, 1X2 디코더 1개가 필요함. 마이크로 연산을 위해 MUX 의 선택신호는 0 (2진수)

     

     

    5 처리장치(2)

     

    01 산술논리연산장치

    - 산술연산과 논리연산을 실행하는 조합논리회로: 산술연산회로와 논리연산회로의 결합

     

    - 산술연산회로: 여러 개의 전가산기 ( FA ) 를 연속적으로 연결한 병렬 가산기로 구성

    - 병렬가산기로 들어가는 제어입력 값을 선택해 여러가지 형태의 산술연산을 실행

     

    - 논리연산회로: 레지스터에 있는 각 비트를 독립된 2진 변수로 간주해 비트별 연산을 실행함. AND, OR, XOR, NOT 연산 등이 있으며, 이를 이용해 복잡한 연산을 유도함

     

    - 산술논리연산회로: 산술연산장치와 논리연산장치를 결합

     

    - 상태 레지스터 ( flag register ): ALU 에서 산술연산이 수행된 후 연산결과에 의해 나타나는 상태값을 저장함

    : 상태 레지스터는 C(carry bit), S(sign bit), Z(zero bit), V(overflow bit) 로 구성됨

    *상태변화가 제어할 때 필요하다, 상태변화 보관장치 = 상태 레지스터

     

    - 시프터 ( shifter ): 입력 데이터의 모든 비트들을 각각 서로 이웃한 비트로 자리를 옮기는 시프트 연산을 수행함

     

    02 제어단어

     

    - 제어단어 ( control word ): 제어변수(선택신호) 들의 묶음

     

    *선택신호

    - 처리장치 내에서 수행되는 마이크로 연산을 선택하는 변수. 특정 선택신호 = 제어변수

    - 이런 제어변수들의 묶음을 제어단어 ( control word ) 라고 함

     

    - 예를 들어 처리장치 구성이 다음과 같다면, 제어단어를 구성하는 선택신호(제어 변수) 는?

    • 레지스터 세트: 7개의 레지스터 ( R1 ~ R7 )
    • 산술논리연산장치: 12 개 연산을 수행
    • 시프터: 6 가지 연산 수행

     

    A 123 B 456 D 789 F 10111213 H 141516

    A 필드: ALU 로 입력되는 A 버스 선택 (3bit)

    B 필드: ALU 로 입력되는 B 버스 선택 (3bit)

    D 필드: 도착 레지스터 선택 (3bit)

    F 필드: ALU 의 연산 선택 (4bit)

    H 필드: 쉬프터의 연산 선택 (3bit)

     

    - 전체 16 bit 로 구성된 선택신호들의 모임 (제어단어) 을 처리장치의 각 구성요소에 가하면, 해당 마이크로 연산이 수행됨

    - 제어단어가 특정 마이크로 연산을 수행하게 함

     

    - 제어단어 생성을 위한 효과적 방법 > 작성된 제어단어를 기억장치에 저장하고, 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로 연결

    - 이렇게 하면 기억장치로부터 연속적인 제어단어를 읽음으로써 처리장치에서의 마이크로 연산이 정해진 순서대로, 연속적으로 수행된다 = 제어장치의 역할

     

     

    6 제어장치(1)

     

    01 제어장치의 개요, 구성, 구현방법

     

    - 제어장치의 정의: 컴퓨터 시스템의 모든 장치들을 유기적으로 제어하는 장치

    - 제어장치의 역할: 기억장치에 저장된 프로그램으로부터 명령어 ( 연산코드+operand ) 를 순차적으로 하나씩 읽어내 연산코드 부분을 해독한 후, 그 결과에 따라 컴퓨터 시스템의 각 요소를 동작시키는 제어신호를 발생시켜 명령어를 수행함

    *하나의 명령어는 한 클럭 동안에 수행되는 마이크로 연산의 집합으로 구성됨

    *명령어의 실행은 이러한 마이크로 연산의 연속적인 반복으로 이뤄짐

    - 결국 제어장치는 요구되는 마이크로 연산을 연속적으로 수행하게 하는 신호를 보내 명령어를 수행하게 하는 역할을 함

     

    *제어장치와 처리장치와의 관계

    외부 신호 ( 컴퓨터 명령 ) --> 제어장치 ( 전체 컴퓨터시스템을 제어하는 제어신호를 만들어 준다 ) --> 제어신호 ( 마이크로연산 ): 처리장치를 구동하고, 제어단어 + 주소로 구성된다 --> 처리장치 ( 입력 데이터, 출력 데이터 ) --> 상태신호 ( 마이크로연산 수행 과정중에 발생함 )

     

    - 제어장치의 구성요소: 명령어 레지스터(명령어 보관 기억장치), 명령어 해독기(OP코드 등), 순서 제어기(명령어가 순차적으로 조건에 따라 분기도 하고 실행되어야 함), 주소 처리기(해당 명령어가 들어있는 위치)

     

    - [제어장치] 명령어 레지스터(IR): 연산코드 (OP code) + 오퍼랜드/주소, 제어신호 발생기: 명령어 해독기 + 순서 제어기, 주소 처리기

    ↔ [처리장치]

    - 기억장치

     

    - 제어장치의 동작 (명령어 수행과정)

    ① 프로그램 카운터 (PC) 에 저장된 주소로 기억장치에 접근한다

    ② 기억장치에서 명령어를 읽어와 명령어 레지스터 (IR) 에 저장하고, 프로그램 카운터를 1 증가시킨다

    ③ 읽어온 명령어에서 연산코드는 명령어 해독기로, 오퍼랜드는 주소 처리기로 보낸다

    ④ 주소처리기는 명령어 수행에 필요한 오퍼랜드의 주소 또는 다음 명령어의 주소를 계산한다

    ⑤ 제어신호 발생기에서 연산코드를 해독해 명령어 수행을 위한 제어신호를 발생한다

     

    - 제어장치의 유형

    *마이크로프로그램에 의한 제어장치

    > 제어단어와 같은 제어정보를 특별한 기억장치에 기억시킨 구조

    '방송대 > 3-2학기' 카테고리의 다른 글

    댓글