2과목 : 전자계산기 구조


1. 불 대수의 기본 공식

-교환법칙 : A+B=B+A, A․ B=B․ A

-결합법칙 : A+(B+C)=(A+B)+C, A․ (B․ C)=(A․ B)․ C

-분배법칙 : A․ (B+C)=A․ B+A․ C, A+B․ C=(A+B)(A+C)

-멱등법칙 : A+A=A, A․ A=A

-보수법칙 : A+A‘=1, A․ A’=0

-항등법칙 : A+0=A, A+1=1, A․ 0=0, A․ 1=A

-콘센서스 : AB+BC+CA‘=AB+CA’, (A+B)(B+C)(C+A‘)=(A+B)(C+A’)

-드모르강 : A‘+B’=(A․ B)‘, A’․ B‘=(A+B)’

-복원법칙 : A‘’=A


2. 자료 구성의 단위


비트(Bit, Binary Digit)

- 자료(정보) 표현의 최소 단위이다.

- 두 가지 상태(0과 1)를 표시하는 2진수 1자리


니블(Nibble)

- 4개의 비트(Bit)가 모여 1개의 Nibble을 구성한다.

- 4비트로 구성되며 16진수 1자리를 표현하기에 적합하다.


바이트(Byte)

- 문자를 표현하는 최소 단위로, 8개의 비트(Bit)가 모여 1Byte를 구성한다.

- 1Byte는 256(28)가지의 정보를 표현할 수 있다.

- 주소 지정의 단위로 사용된다.


워드(Word)

- CPU가 한 번에 처리할 수 있는 명령 단위이다.

- 반워드(Half Word) : 2Byte

- 풀워드(Full Word) : 4Byte

- 더블워드(Double Word) : 8Byte


필드(Field)

- 파일 구성의 최소 단위이다.

- 의미 있는 정보를 표현하는 최소 단위이다.


레코드(Record)

- 하나 이상의 관련된 필드가 모여서 구성된다.

- 컴퓨터 내부의 자료 처리 단위로서, 일반적으로 레코드는 논리 레코드(Logical Record)를 의미한다.


블록(Block)물리 레코드(Physical Record)

- 하나 이상의 논리 레코드가 모여서 구성된다.

- 각종 저장매체와의 입/출력 단위를 의미하며, 일반적으로 물리 레코드(Physical Record)라고 한다.


파일(File)

- 프로그램 구성의 기본 단위로, 여러 레코드가 모여서 구성된다.


데이터베이스(Database)

- 여러 개의 관련된 파일(File)의 집합이다.


3. 기타 자료의 표현 방식


BCD 코드

- 10진수 1자리의 수를 2진수 4Bit로 표현한다.

- 4Bit의 2진수 각 Bit가 8(23), 4(22), 2(21), 1(20)의 자리 값을 가지므로 8421코드라고도 한다.

- 대표적인 가중치 코드이고 문자코드인 BCD에서 Zone 부분을 생략한 형태이다.

- 10진수 입.출력이 간편하다.


Excess-3 코드(3초과 코드)

- BCD + 3, 즉BCD 코드에 310(00112)을 더하여 만든 코드이다.

- 대표적인 자보수 코드이며, 비가중치 코드이다.


Gray 코드

- BCD 코드의 인접하는 비트를 X-OR 연산하여 만든 코드이고, 입출력장치, D/A변환기, 주변장치 등에서 숫자를 표현할 때 사용한다.

․ 1Bit만 변화시켜 다음 수치로 증가시키기 때문에 하드웨어 적인 오류가 적다.


패리티 검사 코드

- 코드의 오류를 검사하기 위해서 데이터비트 외에 1Bit의 패리티 체크 비트를 추가하는 것으로 1Bit의 오류만 검출할 수 있다.

- Odd Parity : Odd 패리티는 코드에서 1인 Bit의 수가 홀수가 되도록 0이나 1을 추가한다.

․ Even Parity : Even 패리티는 코드에서 1인 Bit의 수가 짝수가 되도록 0이나 1을 추가한다.


해밍 코드

- 오류를 스스로 검출하여 교정이 가능한 코드이고, 1Bit의 오류만 교정할 수 있다.

- 데이터 비트 외에 에러 검출 및 교정을 위한 잉여 비트가 많이 필요하다.

- 해밍코드 중 1, 2, 4, 8, 16 …… 2n 번째 비트는 오류 검출을 위한 패리티 비트이다.


4. 중앙처리장치의 구성요소


-컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치이다.

- 주기억장치에서 읽어 들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시한다.

- 프로그램 카운터(PC), 명령어레지스터(IR), 부호기(제어신호 발생기), 명령어 해독기, 번지 해독기 등으로 구성되어 있다.


- 제어장치의 명령에 따라 실제로 연산을 수행하는 장치이고 , 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동(Shift) 등이 있다.

- 가산기, 누산기(AC ; Accumulator), 보수기, 데이터 레지스터, 오버플로우 검출기, Shift Register 등으로 구성되어 있다.


- CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억 장소이다.

- 플립플롭(Flip-Flop)이나 래치(Latch)들을 병렬로 연결하여 구성하고 메모리 중에서 가장 속도가 빠르다.


5. 레지스터

  • 프로그램 카운터, 프로그램 계수기(PC, Program Counter) : 다음 번에 실행할 명령어의 번지를 기억하는 레지스터이다.
  • 명령 레지스터(IR, Instruction Register) : 현재 실행 중인 명령의 내용을 기억하는 레지스터이다.
  • 누산기(AC, Accumulator) : 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심이다.
  • 상태 레지스터(Status Register) PSWR(Program Status Word Register) : 시스템 내부의 순간순간의 상태가 기록된 정보를 PSW라고 하고, 오버플로, 언더플로, 자리올림, 인터럽트 등의 PSW를 저장하고 있는 레지스터이다.
  • 메모리 주소 레지스터(MAR, Memory Address Register) : 기억장치를 출입하는 데이터의 번지를 기억하는 레지스터이다.
  • 메모리 버퍼 레지스터(MBR, Memory Buffer Register) : 기억장치를 출입하는 데이터가 잠시 기억되는 레지스터이다.
  • 인덱스 레지스터(Index Register) : 주소의 변경이나 프로그램에서의 반복연산의 횟수를 계수하는 레지스터이다.
  • 데이터 레지스터(Data Register) : 연산에 사용될 데이터를 기억하는 레지스터이다.
  • Shift Register : 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리 이동시키는 레지스터이고,  2배 길이 레지스터라고도 한다.
  • Major Status Register CPU의 메이저 상태를 저장하고 있는 레지스터이다.

6. 버스(BUS)

CPU, 메모리, I/O장치 등과 상호 필요한 정보를 교환하기 위해 연결하는 공동의 전송선이다.


 전송하는 정보에 따른 분류

- 번지 버스(Address Bus) : CPU가 메모리나 입출력 기기의 번지를 지정할 때 사용하는 단방향 전송선이다.

- 자료 버스(Data Bus) : CPU와 메모리 또는 입출력 기기 사이에서 데이터를 전송하는 양방향 버스이다.

- 제어 버스(Control Bus) : CPU의 현재 상태나 상태 변경을 메모리 또는 입출력에 알리는 제어신호를 전송하는선이다.


버스 위치에 따른 분류

- 내부 버스 : CPU 및 메모리 내에 구성된 Bus

- 외부 버스 : 주변 입출력장치에 구성된 Bus


7. 명령어 구성

연산자 부(Operation Code부)

- 수행해야할 동작에 맞는 연산자를 표시함, 흔히 OP-Code부라고 한다.

- 연산자부의 크기(비트수)는 표현할 수 있는 명령의 종류를 나타내는 것으로, nBit면 최대 2n개의 명령어를 사용할 수 있다.


주소부(Operand부)

- 실제 데이터에 대한 정보를 표시하는 부분이다.

- 기억장소의 주소, 레지스터 번호, 사용할 데이터 등을 표시한다.

- 주소부의 크기는 메모리의 용량과 관계가 있다.


8. 연산자(Operation Code)의 기능


함수 연산 기능

산술 연산 : ADD, SUB, MUL, DIV, 산술 Shift 등이 있다.

논리 연산 : NOT, AND, OR, XOR, 논리적 Shift, Rotate,Complement, Clear 등이 있다.


자료전달기능

- CPU와 기억장치 사이에서 정보를 교환하는 기능이다.

- Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령이다.

- Store : CPU에 있는 정보를 기억장치에 기억시키는 명령이다.

- Move : 레지스터간에 자료를 전달하는 명령이다.

- Push : 스택에 자료를 저장하는 명령이다.

- Pop : 스택에서 자료를 꺼내오는 명령이다.


제어 기능

- 프로그래머가 명령어 실행 순서를 변경시키는 기능 이다.

- 무조건 분기 명령 : GOTO, Jump(JMP) 등이 있다.

- 조건 분기 명령 : IF 조건, SPA, SNA, SZA 등이 있다.

- Call : 부프로그램 호출

- Return : 부프로그램에서 메인 프로그램으로 복귀


입 /출력기능

- CPU와 I/O장치, 또는 메모리와 I/O장치 사이에서 자료를 전달하는 기능이다.

- INPUT : 입출력 장치의 자료를 주기억장치로 입력하는 명령이다.

- OUTPUT : 주기억 장치의 자료를 입출력 장치로 출력하는 명령이다.



9. 연산


AND(Masking Operation)

- 특정 문자 또는 특정 Bit를 삭제(Clear)시키는 명령으로 Masking 명령이라고도 한다.

- 삭제할 부분의 Bit를 0과 AND시켜서 삭제하는데, 대응시키는 0인 Bit를 Mask Bit라고 한다.


OR(SelectiveSet)

- 특정 문자를 삽입하거나 특정 Bit에 1을 세트시키는 명령으로 Selective Set 연산이라고도 한다.

- 삽입하거나 세트 시킬 Bit에 삽입할 문자코드 또는 1을 OR 연산시킨다.


XOR : 비교(Compare)명령

- 2개의 데이터를 비교하거나, 특정 비트를 반전시킬 때 사용한다.

- 2개의 데이터를 XOR 연산하여 결과에 1Bit라도 1이 있으면 서로 다른 데이터이다.

- 반전시킬 때는 반전시킬 비트와 1을 XOR 시킨다.


NOT(Complement, 보수)

- 각 비트의 값을 반전시키는 연산으로 보수를 구할 때 사용한다.


논리 Shift

- 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 연산으로 데이터의 직렬전송(Serial Transfer)에 사용하고 삽입되는 자리는 무조건 0이다.


Rotate

- Shift에서 밀려 나가는 비트의 값을 반대편 값으로 입력하는 연산이다.

- 문자 위치를 변환할 때 이용한다.


산술 Shift

- 부호(Sign)를 고려하여 자리를 이동시키는 연산으로, 2n으로 곱하거나 나눌 때 사용한다.

- 왼쪽으로 n Bit Shift하면 원래 자료에 2n을 곱한 값과 같다.

- 오른쪽으로 n Bit Shift 하면 원래 자료를 2n으로 나눈 값과 같다.

- 홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다.


10. 명령어 형식


3번지 명령어

- Operand부가 3개로 구성되는 명령어형식으로 여러 개의 범용레지스터(GPR)를 가진 컴퓨터에서 사용한다.

- 연산의 결과는 Operand3에 기록된다.

- 연산시 원시 자료를 파괴하지 않는다.

- 다른 형식의 명령어를 이용하는 것보다 프로그램 전체의 길이를 짧게 할 수 있다.

- 전체 프로그램 실행시 명령 인출을 위하여 주기억장치를 접근하는 횟수가 줄어들어 프로그램 실행속도를 단축시킨다.

- 명령어 한 개의 길이가 너무 길어진다.


2 번지 명령어

- Operand부가 2개로 구성되는 명령어 형식으로 가장 일반적으로 사용되는 명령어 형식이다.

- 여러 개의 범용레지스터를 가진 컴퓨터에서 사용한다.

- 3 주소 명령에 비해 명령어의 길이가 짧다.

- 연산의 결과는 주로 Operand1에 저장되므로 Operand1에 있던 원시자료가 파괴된다.

- 전체 프로그램의 길이가 길어진다.


1 번지 명령어

- Operand부가 1개로 구성되어 있다.

- AC(Accumulator ; 누산기)를 이용하여 명령어를 처리한다.


0 번지 명령어

- Operand부 없이 OP Code부만으로 구성된다.

- 모든 연산은 STACK 메모리의 Stack Pointer가 가리키는 Operand를 이용하여 수행한다.

- 모든 연산은 스택에 있는 자료를 이용하여 수행하기 때문에 스택머신(Stack Machine)이라고도 한다.

- 원래의 자료가 남지 않는다.


11. 주소지정방식(Addressing Mode)의 종류


  • 암시적 주소 지정 방식 (Implied Mode) :주소를 지정하는 필드가 없는 0 번지 명령어에서 Stack의 SP가 가리키는 Operand를 암시하여 이용한다. 
  • 즉치(즉시)적 주소지정방식(Immediate Mode) : 명령어자체에오퍼랜드(실제데이터)를내포하고있는방식이고, 별도의 기억장소를 액세스하지 않고 CPU에서 곧바로 자료를 이용할 수 있어서 실행속도가 빠르다는 장점이 있다. 그리고 명령어의 길이에 영향을 받으므로 표현할 수 있는 데이터 값의 범위가 제한적이다.
  • 직접 주소 지정방식 (Direct Mode) :  명령의 주소부(Operand)가 사용할 자료의 번지를 표현하고 있는 방식이고, 명령의 Operand부에 표현된 주소를 이용하여 실제 데이터가 기억된 기억장소에 직접 사상시킬 수 있다. 그리고 기억용량이 2n개의 Word인 메모리 시스템에서 주소를 표현하려면 n 비트의 Operand부가 필요한다.
  • 간접 주소 지정방식(Indirect Mode) :  명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트(Operand 부의 비트) 수로 나타낼 수 없을 때 사용하는 방식이다.  명령의 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능하고, 명령어 내의 주소부에 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현함으로써, 최소한 주기억장치를 두 번 이상 접근하여 데이터가 있는 기억장소에 도달한다.
  • 계산에 의한 주소지정방식: 상대 주소 지정방식 : 명령어의 주소부분 + PC    - Base Register Mode : 명령어의 주소부분 + Base Register    - Index Register Mode : 명령어의 주소부분 + Index Register


'IT > 자격증' 카테고리의 다른 글

산업기사-전자계산기구조(3)  (0) 2017.05.31
산업기사- 전자계산기 구조(2)  (0) 2017.05.25
산업기사 - 데이터베이스(2)  (0) 2017.05.17
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05

+ Recent posts