-
컴퓨터구조 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학기' 카테고리의 다른 글
c++ 프로그래밍 (2) (0) 2021.11.30 c++ 프로그래밍 정리 (0) 2021.11.29 컴퓨터구조 (0) 2021.11.10 자료구조 03 스택 04 큐 05 연결 리스트 (0) 2021.11.08 선형대수 과목 행렬부분 02~ (0) 2021.10.28