1. 중앙처리장치(CPU; Central Processing Unit)
: 컴퓨터시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치
: 제어장치, 연산장치, 레지스터로 구성, 버스(전달기능)
**- 제어장치(Control Unit)
: 컴퓨터에 있는 모든 장치들이 동작을 지시하고 제어하는 장치
: 주 기억장치에서 읽어 들인 명령어를 해독하여 해당하는 장치에게 제어신호를 보내 정확하게 수행하도록 지시
- 제어장치의 구성요소
1. 명령 해독기(Decoder)
: 명령 레지스터에 있는 명령어를 해독하는 회로
2. 부호기(Encoder)
: 해독된 명령에 따라 각 장치로 보낼 제어 신호를 생성하는 회로
3. 제어주소 레지스터, 제어버퍼 레지스터, 제어 기억장치, 순서제어 모듈 등
**- 연산장치(ALU; Arithmetic & Logic Unit)
: 제어장치의 명령에 따라 실제로 연산을 수행하는 장치
: 가산기, 누산기(AC; Accumulator), 보수기, 데이터 레지스터, 오버플로 검출기, 시프트 레지스터 등으로 구성
**- 레지스터(Register)
: CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억, 임시기억장소
: 메모리 중 가장속도가 빠르다
: 플립플롭이나 래치들을 병렬연결하여 구성
: 레지스터 간의 자료 전송은 직렬전송, 병렬전송, 버스전송 등
- 주요 레지스터의 종류
* 제어신호는 마이크로 동작이 순선적으로 일어나게 한다
* fetch 사이클은 CPU가 메모리에서 명령을 가져오는 사이클
* CPU가 무엇을 하고 있는지 나타내는 레지스터 = Major state register
* PSW는 플래그 레지스터라고도 한다
- 제어 레지스터
: 프로그램 카운터, 명령 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터
- 연산 레지스터
: 누산기, 상태 레지스터, 데이터 레지스터
**- 버스(BUS)
: CPU, 메모리, I/O장치 등과 상호 필요한 정보를 교환하기 위해 연결해 놓은 전송선
1) 주소버스(Address Bus)
: CPU가 메모리나, 입출력기기의 번지를 지정할 때 사용하는 단방향 전송선
2) 데이터 버스(Data Bus)
: CPU와 메모리 또는 입출력기기 사이에서 데이터를 전송하는 양방향 전송선
3) 제어 버스(Control Bus)
: CPU의 현재상태나 상태변경을 메모리 또는 입출력장치에 알리는 제어신호를 전송하는 데 사용하는 양방향 전송선
- 내부버스: CPU 및 메모리 내에 구성된 BUS
- 외부버스: 주변 입출력 장치에 구성된 BUS
2. 명령어(Instruction)
*- 명령어의 구성
1) 연산자(Operation Code)부 - OP-Code
: 수행해야 할 동작에 맞는 연산자를 표시, OP-Code라고 부름
: 연산자부가 5비트라면 최대 2의5승 = 32개의 명령어를 사용할 수 있다
: 연산자부에는 주소부의 유효주소가 결정되는 방법을 지정하기 위한 비트를 추가하기도 한다(0:직접, 1:간접)
2) 자료부(Operand) - 주소 필드
: 실제 데이터에 대한 정보를 표시하는 부분, 주소필드 라고도 한다
: 기억장소의 주소, 레지스터 번호, 사용할 데이터 등을 표시
: 자료부의 크기는 메모리의 용량과 관계가 있음
: 자료부가 16비트라면 2의16승 = 65536 = 64k의 메모리 주소 지정
*- 명령어 설계시 고려사항
: 연산자의 종류, 주소지정방식, 데이터의 구조
- 인스트럭션 세트의 효율성을 높이기 위한 고려사항
: 기억공간, 사용빈도, 주소지정방식
*- 연산자의 기능
1) 함수 연산 기능
1-1) 산술연산
:ADD, SUB, MUL, DIV, 산술 Shift등
1-2) 논리연산
: 단항 연산(NOT, Complement, Shift, Rotate 등)
: 이항 연산(사칙연산, AND, OR, XOR 등)으로 구분
2) 자료 전달 기능
: CPU와 기억장치 사이에 정보를 교환하는 기능
- Load: 기억장치에 기억된 정보를 CPU로 가져오는 명령
- Store: CPU의 정보를 기억장치에 기억시키는 명령
- Move: 레지스터 간의 자료를 전달하는 명령
- Push: 스택에 자료를 저장하는 명령
- Pop: 스택에 자료를 꺼내오는 명령
3) 제어기능
: 명령의 실행 순서를 변경시킬 때 사용하는 명령
: 무조건 분기 명령(GOTO, Jump 등), 조건 분기 명령(IF, SPA, SNA, SZA 등), Call, Return
4) 입, 출력 기능
: CPU와 I/O장치, 또는 메모리와 I/O 장치사이에 자료를 전달하는 기능
: INPUT(입출력 -> 주기억), OUTPUT(주기억 -> 입출력)
3. 연산(Operation)
1) AND(Masking Operation)
: 특정 비트를 삭제 시키는 연산
2) OR(Selective-Set)
: 특정 비트를 삽입하거나 1로 세트 시키는 연산
3) XOR(Compare)
: 두개의 데이터를 비교하거나, 특정 비트를 반전시킬 때 사용
4) NOT(Complement)
: 각 비트의 값을 반전시키는 연산, 보수를 구할 때 사용
5) 논리 Shift
: 왼쪽 또는 오른쪽으로 1Bit씩 이동하는 연산
: 직렬 전송에 사용
6) Rotation
: Shift에서 밀려 가나는 비트값을 반대편으로 입력하는 연산
: 문자의 위치를 변환할 때 사용
7) 산술 Shift
: 부호를 고려하여 자리를 이용하는 연산
: 2의n승으로 곱하거나 나눌 때 사용
: 왼쪽으로 n Bit Shift하면 원래 자료에 2의n승을 곱한 값과 같다
: 오른쪽으로 n Bit Shift하면 원래 자료에 2의n승을 나눈 값과 같다
: 정수 표현 방식에서만 가능한 방법
4. 명령어 형식
1) 3주소 명령어
: Operand부가 세 개로 구성되는 명령어 형식, 범용 레지스터에 사용
: 결과는 1번째, 3번째 operand에 남는다
- 장점
: 원래의 자료를 파괴하지 않는다.
: 프로그램 전체의 길이를 짧게 할 수 있다
: 주기억장치를 접근하는 횟수가 줄어든다
- 단점
: 한 개의 명령어 길이가 길어진다
: 하나의 명령어를 수행하기 위해서는 최소 4번의 접근이 필요
2) 2주소 명령어
: Operand부가 두 개로 구성되는 명령어 형식, 가장 일반적으로 사용되는 명령어 형식
- 장점
: 실행속도가 빠르고 기억장소를 많이 차지하지 않는다
- 단점
: 연산의 결과는 주소 Operand1에 저장되므로 Operand1에 있던 원래자료가 파괴된다
3) 1주소 명령어 - 누산기 이용
: 누산기를 이용하여 명령어를 처리, 결과도 누산기에 저장
4) 0주소 명령어 - 스택 이용
: Operand부 없이 OP-Code부분만 구성
: 모든 연산은 Stack을 이용하여 수행
: 스택에 기억된 데이터만을 이용하여 연산하므로 인스트럭션 수행기간이 짧다
: 피연사자를 나타내지 않기 때문에 기억공간의 이용이 효율적이다
* 연산자(OP code)의 수행에 필요한 자료를 보관시키는 장소
: 주기억장치, 스택, 레지스터
* 연산자(OP code)의 비트만큼 2의 n승한 값이 명령어가 가질 수 있는 연산자의 종류
* 주기억장치가 몇 비트 = address의 비트
5. 주소 지정 방식(Addressing Mode)
- 주소 설계시 고려사항
: 표현의 효율성, 사용의 편리성, 주소 공간과 기억 공간의 독립성
* 절대주소: 임의의 장소에 대한 실제 주소로 처음부터 차례대로 저장
* 상대주소: 기존주소를 기준으로 상대적으로 얼마만큼 떨어져 있는 주소로서, 절대주소로 변환해야만 실제 데이터에 접근할 수 있다
- 주소지정방식의 종류
: 암시적(Implied), 즉시적(Immediate), 직접(Direct), 간접(Indirect) 계산에 의한 주소지정방식이 있다
1) 암시적 주소지정방식(Implied Mode)
: 주소를 지정하는 필드가 없는 0번지 명령어에서 사용
2) 즉시적 주소지정방식(Immediate Mode)
: 명령어 자체에 오퍼랜드(실제 데이터)를 가지고 있는 방식
3) 직접 주소방식(Direct Mode)
: 명령어의 주소부가 사용할 자료의 번지를 표현하고 있는 방식
: 명령의 Operand부에 주소를 이용하여 실제데이터가 기억된 기억장소에 직접 사상시킴
4) 간접 주소방식(Indirect Mode)
: 명령어 내의 Operand에 실제데이터의 주소가 저장된 곳의 주소를 표현, 최소한 2번 이상 접근해야 데이터가 있는 기억장소를 알 수 있다
5) 계산에 의한 주소지정방식
: 상대주소, 베이스 레지스터, 인덱스 레지스터 등
: 인덱스 레지스터는 서브루틴 연결, 어드레스 수정, 반복계산 수행을 한다
Popular Posts
-
1. 불 대수(G.Boole) : 0는 off, 1는 on // Switch 1) 기본적인 논리함수 2) 불 대수의 기본 공식 * 0과 1을 대입해서 옳고 그름을 판단하면 된다 3) 불 대수의 간소화 : ...
-
1. 데이터베이스 개념 : 업무 처리를 위해 사용자들이 공용으로 사용하기 위해 통합, 저장된 운영 데이터의 집합 : DBMS = DataBase Management System (데이터베이스 관리 시스템) -> crud : 사용자와 DBMS...
-
1. 다중 처리기(Multi-Processor) : 하나의 시스템에 여러 개의 처리기를 두어 하나의 작업을 각 처리기에게 할당하여 처리하는 것을 의미 : 프로세스간 상호작용이 밀접한 강결합 시스템 : 여러 작업을 동시에 처리하여 실행 시간이 감소...
Agapang. Powered by Blogger.
댓글 없음:
댓글 쓰기