핵심 정리(전자 계산기)

2016. 8. 11. 14:51자격증 공부/정보처리기사

[1]논리회로


1. 기본 정리(다이어그램으로 이해)


분배: A+B*C = (A+B)(A+C)

흡수: A+A*B=A, A(A+B)=A

드모르간의 정리: !(A+B)=!A*!B, !(A*B)=!A+!B(+가 *로 바뀌면서 !가 분배됨)


2. 논리 게이트


방울 모양: !(NOT)의 의미

플러그 모양: AND(둘 다 꼽아야 작동하니까)

샤프 끝 모양: eXclusive OR(같을 때는 0/ 다를 때는 1)


3. 논리 회로 종류


1) 반가산기(Half Adder) = 플러그(C) + 진동기(S)

2) 전가산기(3개의 2진수 더하기) = 2*반가산기 + OR

3) 디코더(해독기)

N개의 입력 > 2의 N승의 출력

4개의 AND(플러그)로 만들어짐(전력 많이 먹음)


4. 플립플롭: 1비트 기억 소자(1>0 OR 0>1로 바뀌며 기능도 바뀜)


1) RS - 4NAND(4꼭지)


 S R

 Q(t)

 Q(t+1) 

 

 0 0

 0

1

 0

1

 변화 X

 0 1

 0

1

 0

0

 0으로(RESET)

 1 0

 0

1

1

 1로(SET)

 1 1

 불허

불허 

불허 


2) JK - 2AND(2플러그)

(위 표에서 1,1 부분만 '반전'으로)


3) 주종 - 2AND + NOT


* 카운터: 시간 펄스 수 카운트, 회로 동작 제어

*레지스터: 연산 Data 대기방


[2]자료표현 및 연산


1. 수의 표현 방법


1) 양음 표현

양수: 맨 앞 Bit가 0

음수: 맨 앞 Bit가 1


2) 음수 구하기

1의 보수 > 반전

2의 보수 > 1의 보수 +1


3) BCD 코드(10진수>2진수)

ex) 111 > 0001 | 0001 | 0001


*Excess-3: BCD 코드에 10진수 3을 더한 것


[3] 명령어 및 프로세서


1. 기본


1) 구조: 연산자(Operation) + 연산 대상(Operand)

2) 연산자의 기능 4(FICT)

ㄱ) Functional(함수 연산)

ㄴ) I/O(입출력)

ㄷ) Control(제어)

ㄹ) Transfer(전달)

*CPU의 4기능(연산, 전달, 제어, '기억')과 비슷


3) 명령어 종류(처리, 전송, 제어)

ㄱ) Data 처리

a. 산술: (4칙: ADD, SUB, MUL, DIV), INC/DEC

b. 논리: AND/OR, COMPLIMENT(1의 보수), CLEAR(모두 0으로 리셋)

c. 시프트: 산술/논리 Shift, ROTATE(문자 위치 이동)

          (비트/자료 이동)


ㄴ) Data 전송

PUSH/POP: 스택에 Data 입출력

INPUT/OUTPUT


ㄷ) Data 제어

JUMP/SKIP

SMA/SZA

SZA/ISZ


4) 부 프로그램 vs. 매크로

call 문으로 호출 vs. 본문에 삽입


*Recursion: 자기 자신 호출, stack에 올려 실행


2. 명령어 형식

1) 0-주소: Operand(주소 부분)이 없음, 스택 구조에서 사용(SI)

2) 1-주소: 주소 1개, 누산기(Accumulator) 구조에서 사용(AI)


*레지스터와 메모리는 두 개의 주소 가짐


3. 주소 지정 방식


1) 속도 비교


Immediate > Direct > Relative > Indirect

참조 횟수          0번          1번        1번           2번

   

참조 방식  NO(Data 포함) 주소값으로  +PC로      주소값의 주소값으로


4. 프로세서 종류


1) CISC(Complex Instruction Set Computer) vs RISC(Reduced-)

  

 

 CISC

RISC 

 명령어 길이

 16~64

32 고정 

 개수

 100 이상

100 미만 

 참조 연산

 메모리

레지스터 


2) CPU 구성 3

ㄱ) 연산 장치(ALU:Arithmetic&Logic Unit): 가산기, 누산기, 플립플롭, 보수기

ㄴ) 제어 장치(CU:Control Unit): 명령어 해독 > 제어 신호 전달

ㄷ) 메모리: 자료 보관


*Bus: 정보 교환에 이용, 결선 수 줄이는 최선의 방법

*버스 경합 축소법 3: 고속화, 다중 버스 사용, 캐시 사용


5. 레지스터: CPU 안 임시 기억 장치로서 기억된 정보에 신속하게 접근


1) 종류

ㄱ) PC(P Counter): 명령어 주소값 기억, 수행 순서 나타냄

ㄴ) MAR(Memory Address R): 접근 장소 주소값 기억

ㄷ) MBR(Memory Buffer R): 주기억 장치에 Data 기억

ㄹ) IR(Instruction R): 현재 수행 중 명령어 기억


*DR-ACC: 연산에 사용되는 Data, 결과 임시 기억

*Flag R(=PSWR:Status Word): 매 순간 P 수행 상태 나타냄


[4]입출력(I/O)


1. I/O 시스템 구조


주기억장치 - I/O 제어기 - 인터페이스 - I/O 장치 제어기 - I/O 장치


2. I/O 제어 방식


1) Polling(SW에 의한): 시시때때로 FLAG 상태 검사 -> 비효율적

2) 인터럽트: 인터럽트 받았을 때만 -> 효율적

3) DMA 제어기(Direct Memory Access): 주기억과 DMA 사이에서 작동

ㄱ) 특징: CPU 경유 X, Cycle Steal 이용(버스 하이잭)

ㄴ) 절차: 버스 사용 요구 -> 허가 -> Data 전송 -> 인터럽트

ㄷ) 방식: 하나 입출력할 때마다 '단어 계수기 값' 감소. 0이 되면 완료 보고 인터럽트 발생


3. 채널(입출력 전용 프로세서)


1) Selector: 1채널 1입출력 장치 > 고속 전송

2) Byte Multiplexer: 1채널 여러 장치 > 시분할 공유

3) Block Multiplexer


[5] 인터럽트 및 병렬 컴퓨터 구조


1. 인터럽트의 기본


1) 동작 순서

인터럽트 요청 > 현 상태 보존 > (원인) 판별 > 취급(=조치) > (원 상태) 복귀


*Vector 인터럽트 방식

장치마다 고유 인터럽트 요청 회선 > 장치 판별 필요 없음

HW 신호에 의해 특정 번지의 서브 루틴 수행


2) 우선 순위(Priority): 높은 순


정전(Power Fail)


기계 고장(Machine Check)

 

외부 신호: 타이머, 조작원, I/O 요청


-----외부------


Program: 불법 연산자, 보호 공간 접근, 0으로 나누기, overflow(=내부 인터럽트, Trap)


SVC(SuperVisor Call): 제어 P 호출


3) 우선 순위 부여 방식


ㄱ) SW에 의한(Polling): 경제성, 융통성 高(SW니까) | 반응속도 低

ㄴ) HW에 의한(Daisy Chain:직렬 연결) vise versa:

요청 체인(신호 최초 받은 놈)/Priority 체인(높은 놈만 장치 번호 보냄)으로 나눠짐


2. 병렬 컴퓨터 구조


1) 병렬 처리기


 

 파이프라인(SISD)

배열 

 다중

 

 분할된 하나의 처리기

여러 처리기 

여러 처리기 

 

 서로 다른 종류 데이터

동일 종류 연산

작업 분할해 분배 

 

 길거리 훈수꾼들

 공장 컨베이어 벨트

 


2) 연결 구조


ㄱ) 공유 BUS형: 추가는 쉽지만 처리 속도가 공유 버스에 제한 받음

ㄴ) 크로스바 스위치형: 와플 모양, 병렬성 발군

ㄷ) 다단계 상호(오메가 스위치): 축구 토너먼트?


[6]시스템의 개요


1. 1) 기본 요소 5

I/O, Process, Control, Feedback


2) 특성 4(목적, 자동, 제어, 종합)


2. 시스템 개발                생명 주기

1) SDLC(System Develop. Life Cycle)

조사 > 분석 > 설계 > 구현 > 테스트 > 유지보수


[7] 코드 설계


1. 1) 코드 기능 3(식별, 분류, 배열)

                      구별

2) 설계 시 유의사항: 공통, 일관 | 체계, 식별, 간결 | 확장


3) 설계 순서

코드화 항목 > 목적 > 대상 > 범위 > 사용 기간 > 항목 특성 분석 > 방식 결정 > 문서화


2. 코드 종류


1) Sequence(순차): 간단하지만 중간에 추가 곤란 ex) 사원 번호

2) Block(구분): ex) 총무부 - 인사과 - 코드

3) Decimal(십진): 좌>우 분류, 기계 처리 불편 ex) 공학100 - 전산10 - 1,2,3

4) Group Classification(분류식): 대>중>소분류, 추가 용이, 기계 처리 Good! ex) 대학교>소속 대학>학과>

5) Significant Digit(표의 숫자): 길다는 단점 ex) 26-20-25(신체 사이즈)

<-> Mnemonic(연상) ex) 17-TV 17인치 TV


3. 코드 오류 종류


1) 사본(Transcription): 1자리 틀림

2) 전위(Transposition): 2자리 틀림 ex) 아기 바뀜

3) Double Trans-: 2*2자리 틀림, 전위의 2배

4) 생략/첨가: 1자리 아예 없음/있음


*체크 디지트

1 3 3 4 6 | 1(검사 자리)

1) 맘대로 가중치 곱하여 더함

2) Modular 10으로 나눠 나머지 구함

3) (10 - 나머지)를 검사 자리와 비교

4) 일치 > "정상"