아래 내용은 2020 정보처리 산업기사 시나공 기본서를 공부해 요약한 내용이며
완벽하게 모든 내용을 정리한것이 아니고 제 편의껏 요약한것 입니다 보다 자세한 내용과 여러 동작에 대한 원리등이
궁금하시다면 책과 함께봐주세요
출처 : 정보처리 산업기사 필기 - 시나공 시리즈
출판사 : 길벗

1. 논리회로

 

1) 불 대수

 

불 대수
: 하나의 명제가 참 또는 거짓인가를 판단하는데 이용되는 수학적인 방법으로 영국의 불(G. Boole)에 의해 개발되었다

 

기본적인 논리함수

 

- AND : 입력 정보의 값이 모두 1일 때만 결과가 1이 된다 입력되는 값이 A, B라면 A AND B 또는 A·B로 표현한다
- OR : 입력 정보의 값 중 한 개라도 1이며 결과가 1이된다 입력되는 값이 A, B라면 A OR B 또는 A+B로 표현한다
- NOT : 입력되는 정보의 반대값이 출력된다 입력되는 값이 항상 1개이며 입력되는 값이 A라면 NOT A 또는 A'로 표현

           한다

 

불 대수의 기본 공식

 

- 교환법칙 : 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)' = A'·B', (A·B)' = A'+B'
- 복원법칙 : A" = A

 

*(논리식의 간소화)

 

2) 논리 게이트

 

논리 게이트
: 논리회로를 구성하는 기본적인 전자소자로 0또는 1을 입력과 출력으로 사용한다

 

3) 조합논리회로

 

조합논리회로
:임의의 시간에서의 출력이 이전의 입력에는 관계없이 현재의 입력조합으로부터 직접결정되는 논리회로이다

 

조합논리회로의 종류

 

- 반가산기 : 2진수 두 개를 덧셈하여 합과 자리올림수를 구하는 회로이다
- 전가산기 : 뒷자리에서 올라온 자리올림수를 포함하여 1 bit 크기의 2진수 3자리를 더하여 합과 자리올림수를 구하는

                회로이다
- 병렬가산기 : n bit로 된 2진수 A, B에 대한 덧셈을 n개의 전가산기를 이용하여 구성한 실질적인 가산기이다
- 반감산기 : 1 bit짜리 2진수 2자리에 대한 감산을 하는 회로이다
- 전감산기
- 디코더 : n bit의 Code화된 정보를 그 Code의 각 bit 조합에 따라 2ⁿ개의 출력으로 번역하는 회로이다
- 인코더 : 디코더의 반대 기능을 한다
- 멀티플렉서 : 2ⁿ의 입력선 중 1개를 선택하여 그 선으로부터 입력되는 값을 1개의 출력선으로 출력시키는 회로이다
- 디멀티플렉서 : 1개의 입력선으로 들어오는 정보를 2ⁿ개의 출력선 중 1개를 선택하여 출력하는 회로이다
- 다수결회로
- 비교기

 

4) 순서논리회로

 

순서논리회로
: 외부로부터의 입력과 현재 상태에 따라 출력이 결정된다

 

순서논리회로의 종류

 

- 플립플롭
- 카운터
- 레지스터
- RAM
- CPU

 

플립플롭(FF, Flip-Flop)의 특징

 

- 두 개의 NAND 또는 NOR 게이트를 이용하여 구성한다
- 전원이 공급되고 있는 한 상태의 변화를위한 외부 신호가 발생할 때까지 현재의 상태를 그대로 유지하는 논리회로이다

 

RS 플립플롭(Reset-Set FF)
: 모든 플립플롭의 기본으로 S와 R선의 입력을 조절하여 임의의 bit 값을 그대로 유지시키거나 무조건 0 또는 1의 값을 기억시키기 위해서 사용되는 플립플롭이다

 

D 플립플롭
: RS FF의 R선에 인버터를 추가하여 S선과 하나로 묶어서 입력선을 하나만 구성한 플립플롭이며 입력하는 값을 그대로 저장하는 기능을 수행한다

 

JK 플립플롭
: RS FF에서 S=R-1일 떄 동작되지 않는 결점을 보완한 플립플롭이며 입력선 S와 R에 AND 게이트 2개를 추가하여 JK FF의 입력선 J와 K로 사용한다

 

T 플립플롭
: JK FF의 두 입력선을 묶어서 한 개의 입력선으로 구성한 플립플롭이다

 

마스터-슬레이브 플립플롭(주종 플립플롭)
: 출력 측의 일부가 입력 측에 궤환되어 유발되는 레이스 현상을 없애기 위해 고안된 플립플롭이다

 

2. 자료의 표현

 

1) 자료 구성의 단위

 

자료 구성의 단위

 

- 비트(Bit) : 자료 표현의 최소 단위
- 니블(Nibble) : 4개의 Bit가 모여 구성
- 바이트(Byte) : 문자를 표현하는 최소 단위 8개의 Bit가 모여 1Byte
- 워드(Word) : 컴퓨터가 한 번에 처리할 수 있는 명령 단위, 반워드(Half-Word)2Byte, 전워드(Full-Word)4Byte, 더블

                    워드 (Double-Word)8Byte
- 필드(Field) : 파일 구성의 최소 단위이다
- 레코드(Record) : 하나 이상의 관련된 필드가 모여서 구성된다
- 블록(Block), 물리 레코드(Physical Record) : 하나 이상의 논리 레코드가 모여서 구성된다
- 파일(File) : 프로그램 구성의 기본 단위로 같은 종류의 여러 레코드가 모여서 구성된다
- 데이터베이스(Database) : 여러 개의 관련된 파일의 집합이다

 

2) 수의 표현 및 진법 변환

 

진법

 

- 컴퓨터 내부에서는 2진법을 사용하여 모든 연산을 수행한다
- 2진수 외에 컴퓨터를 연구할 때 자주 사용하는 진법은 8진수와 16진수이다

 

진법의 종류

 

- 2진법(Binary) : 0과 1 두 개의 숫자로 표현한다
- 8진법(Octal) : 0~7까지의 숫자로 표현하며 2진수 3자리를 묶어서 하나의 수로 표현한다
- 10진법(Decimal) : 0~9까지의 숫자로 표현한다
- 16진법(Hexadecimal) : 0~9까지의 숫자와 10~15까지를 의미하는 A~F까지의 문자로 표현한다

 

*(다른 진법으로의 변환 익히기)

 

3) 보수

 

보수

 

- 컴퓨터가 기본적으로 수행하는 덧셈 회로를 이용하여 뺄셈을 수행하기 위해 사용한다
- r진법에는 r의 보수와 r-1의 보수가 있다

 

보수를 이용한 뺄셈
: A-B는 A+(-B)이므로 B에 대한 보수를 구하여 덧셈 연산으로 뺄셈을 한다

- 1의 보수 이용
- 2의 보수 이용

 

4) 자료의 내부적 표현 - 고정 소수점 표현

 

2진 연산

 

- 음수의 표현 방법 : 부호와 절대치, 부호와 1의 보수, 부호와 2의 보수

 

10진 연산

 

- 언팩(Unpack)연산 : 연산이 불가능하고 데이터의 입출력에 사용된다
- 팩(Pack)연산 : 연산이 가능하고 데이터의 입출력이 불가능하다

 

5) 자료의 내부적 표현 _ 부동 소수점 표현

 

부동 소수점 방식의 특징

 

- 매우 큰 수나 작은수 매우 정밀한 수를 적은 비트로 표현할 수 있다
- 고정 소수점 방식에 비해 연산 시간이 많이 걸린다
- 지수부와 가수부를 분리하는 정규화 과정이 필요하다
- 과학이나 공학 또는 수학적인 응용에 주로 사용된다

 

부동 소수점 수의 연산 방법

 

- 덧셈, 뺄셈 : 0인지 여부 조사 -> 가수의 위치 조정 -> 가수부 값끼리 더하거나 뺀다 -> 결과를 정규화한다
- 곱셈 : 0인지 여부 조사 -> 지수를 더한다 -> 가수를 곱한다 -> 결과를 정규화한다
- 나눗셈 : 0인지 여부 조사 -> 부호 결정 -> 피제수가 제수보다 작게 피제수의 위치를 조정한다 -> 지수의 뺼셈을한다

             -> 가수의 누눗셈을 한다

 

6) 자료의 외부적 표현

 

자료의 외부적 표현이란
: 처리된 결과를 사람이 확인할 수 있도록 출력할 때의 문자를 표현하는 방식이다

 

자료의 외부적 표현의 종류

 

- BCD(Binary Coded Decimal, 2진화 10진 코드)
- ASCII(American Standard Code for Information Interchange)
- EBCDIC(Extended BCD Interchange Code, 확장 2진화 10진 코드)

 

7) 기타 자료의 표현 방식

 

BCD 코드

 

- 10진수 1자리의 수를 2진수 4Bit로 표현한다
- 4Bit의 2진수 각 Bit가 8(2³), 4(2²), 2(2¹), 1의 자리값을 가지므로 8421 코드라고도 한다
- 대중적인 가중치 코드이다

 

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

 

- BCD +3 즉 BCD 코드에 3(0011₂)을 더하여 만든 코드이기 때문에 모든 비트가 동시에 0이 되는 경우는 없다
- 대표적인 자기 보수 코드이며 비가중치 코드이다

 

Gray 코드

 

- BCD 코드의 인접하는 비트를 XOR 연산하여 만든 코드이다
- A/D 변환기에 사용한다
- 1Bit만 변환시켜 다음 수치로 증가시키기 때문에 하드웨어적인 오류가 적다

 

패리티 검사 코드

 

- 1Bit의 오류만 검출할 수 있다
- 1의 개수에 따라 짝수패리티와 홀수패리티 방법이 있다

 

해밍코드

 

- 오류를 스스로 검출하여 교정이 가능한 코드이다
- 해밍코드 중 1, 2, 4, 8, 16,···, 2ⁿ번째는 오류 검출을 위한 패리티 비트이다

 

코드의 분류

- 가중치코드 : BCD, 2421, 84-2-1, 51111, Ring-Counter
- 비가중치코드 : 3초과(Excess-3), Gray, Jonson, 2-out-of-6, 3-out-of-5
- 자기 보수 코드 : 3초과(Excess-3), 2421, 51111, 84-2-1
- 오류 검출용 코드 : 해밍코드, 패리티 검사 코드, Binquinary, Ring-Counter, 2-out-of-6, 3-out-of-5

 

3. 프로세서

 

1) 중앙처리장치

 

중앙처리장치

:사람의 두되와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치이다

- 중앙처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있다

 

제어장치
: 모든 장치들의 동작을 지시하고 제어하는 장치이다


- 명령 레지스터
- 명령 해독기(Decoder)
- 제어신호 발생기, 부호기(Encoder)
- 제어 주소 레지스터(CAR)
- 제어 버퍼 레지스터(CBR)
- 제어 기억장치
- 순서 제어 모듈
- 순차 카운터(Sequence counter)

 

연산장치
: 산술 연산, 논리 연산, 관계 연산, 이동 등을 수행한다(가산기, 누산기, 보수기, 데이터 레지스터등)

 

레지스터
: CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장치이다

 

- 프로그램 카운터(PC) : 다음에 실행할 명령어의 번를 기억하는 레지스터
- 명령 레지스터(IR) : 현재 실행 중인 명령의 내용을 기억하는 레지스터
- 누산기(AC) : 연산된 결과를 일시적으로 저장하는 레지스터
- PSWR, 상태 레지스터, 플래그 레지스터 : 시스템 내부의 순간순간의 상태를 기록하고 저장하고 있는 레지스터
- 메모리 주소 레지스터(MAR) : 데이터의 번지를 기억하는 레지스터
- 메모리 버퍼 레지스터(MBR) : 데이터가 잠시 기억되는 레지스터
- 베이스 레지스터(Base Register) : 명령이 시작되는 시작 번지를 기억하고 있는 레지스터
- 인덱스 레지스터(Index Register) : 주소의 변경, 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터
- 데이터 레지스터(Data Register) : 연산에 사용될 데이터를 기억하는 레지스터
- 시프트 레지스터(Shift Register) : 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 레지스터
- 메이저 스테이터스 레지스터(Major status Register): CPU의 메이저 상태를 저장하고 있는 레지스터

 

버스
: 버스를 통해 전달되는 제어 신호, 어드레스 신호 및 데이터 신호의 상호 시간적 관계가 잘 유지되어야 한다

 

- 번지 버스
- 자료 버스
- 제어 버스

 

2) 명령어(Instrution)

 

명령어의 구성

 

- 연산자부(Operation Code 부) : 수행해야 할 동작에 맞는 연산자를 표시한다
- 모드(Mode)부 : 주소부의 유효 주소가 결정되는 방법을 지정한다
- 자료(Operand)부 : 실제 데이터에 대한 정보를 표시하는 부분이다

 

명령어 설계시 고려사항

 

- 연산자의 종류
- 명령어 형식
- 주소지정방식
- 데이터 구조
- 인스트럭션 세트의 효율성을 높이기 위하여 고려할 사항 : 기억공간, 사용빈도, 주소지정방식

 

연산자(Operation Code)의 기능

 

- 함수 연산 기능
수치적인 산술 연산 : ADD, SUB, MUL, DIV, 산술 Shift 등
비수치적인 논리 연산 : NOT, AND, OR, XOR, 논리적 Shift, Rotate, Complement, Clear

 

- 자료 전달 기능
Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령
Stor : CPU에 있는 정보를 기억장치에 기억시키는 명령
MOVE : 레지스터 간에 자료를 전달하는 명령
Push : 스택에 자료를 저장하는 명령
Pop : 스택에서 자료를 꺼내오는 명령

 

- 제어기능 : 무조건 분기명령, 조건 분기 명령, Call(서브루틴 호출), Return(복귀)

- 입출력기능 : INPUT, OUTPUT

 

3) 연산(Operation)

 

AND(Masking Operation)

 

- 특정 문자 또는 특정 비트를 삭제 시키는 연산으로 Masking 연산이라고도 한다
- 삭제할 부분의 비트를 0과 AND 시켜서 삭제하는데 대응시키는 0인 비트를 MASK Bit라 한다

 

OR(Selective-Set)

 

- Selective-Set 연산이라고도 한다
- 삽입하거나 세트시킬 비트에 삽입할 문자 코드 또는 1을 OR 시킨다

 

XOR(Compare, 비교)

 

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

 

NOT(Complement, 보수)

 

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

 

논리 Shift

 

- 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 연산으로 데이터의 직렬 전송에 사용한다

 

Rotate

 

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

 

산술 Shift

 

- 부호를 고려하여 자리를 이동시키는 연산으로 2ⁿ으로 곱하거나 나눌 때 사용한다
- 왼쪽으로 n Bit Shift하면 원래 자료에 2ⁿ을 곱한 것과 같다
- 오른쪽으로 n Bit Shift하면 원래 자료를 2ⁿ으로 나눈 것과 같다
- 홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다

 

4) 명령어 형식

 

명령어
: 명령어는 크게 OP-Code부와 Operand(자료부)로 구성되는 Operand부의 개수에 따라 네 가지 명령어 형식이 있다

 

3 주소 명령어

 

- Operand부가 세 개로 구성된다
- 연산의 결과는 주로 Operand 1에 기록한다
- 연산 시 원래의 자료를 파괴하지 않는다

 

2 주소 명령어

 

- Operand부가 두 개로 구성된다
- 가장 일반적으로 사용되는 명령어 형식이다
- 실행 속도가 빠르고 기억 장소를 많이 차지하지 않는다
- 원래의 자료가 파괴된다

 

1 주소 명령어

 

- Operand부가 한 개로 구성된다
- 누산기를 이용한다

 

0 주소 명령어

 

- 스택머신이라고도 한다
- 인스트럭션 수행시간이 짧다
- 스택을 사용한 컴퓨터에서 수식을 계산하기 위해서는 수식을 Postfix 형태로 변경해야한다

 

Stack의 응용 분야

 

- 0 주소 명령어 형식의 자료 저장소
- 부 프로그램 호출 시 복귀주소
- 재귀(Recursion) 프로그램의 순서 제어
- 인터럽트가 발생시의 복귀주소
- 컴파일러를 이용한 언어 번역시
- 후위 표기법으로 표현된 산술식을 연산할때

 

5) 주소지정방식(Adressing Mode)

 

주소 설계 시 고려 사항

 

- 표현의 효율성 : 빠르게 접근하고 주소 지정에 적은 비트 수를 사용할 수 있도록 다양한 어드레스 모드를 사용할 수 있

                       어야 한다
- 사용의 편리성 : 다양하고 융통성 있는 프로그램 작업을 위해 포인터, 프로그램 리로케이션 등의 편의를 제공하여야 한

                       다
- 주소공간과 기억공간의 독립성 : 프로그램 상에서 사용한 주소를 변경 없이 실제 기억공간 내의 주소로 재배치할 수 있

                                            도록 서로 독립적이여야 한다

 

암시적(묵시적) 주소지정방식(Implied Mode)

 

- 명령 실행에 필요한 데이터의 위치를 지정하지 않고 누산기나 스택의 데이터를 묵시적으로 지정하여 사용한다

 

즉시적 주소지정방식(Immediate Mode)

 

- 명령어 자체에 실제 데이터를 가지고 있는 방식이다
- 별도의 기억장소를 액세스하지 않고 실행 속도가 빠르다

 

직접 주소지정방식(Direct Mode)

 

- Operand부에 실제 사용할 데이터의 주소를 표현
- 주소 길이에 제약을 받는다

 

간접 주소지정방식(Indirect Mode)

 

- Operand부에 실제 데이터의 주소가 저장된 곳의 주소를 표현한다
- 최소한 주기억장치를 두 번 이상 접근한다
- 긴 주소에 접근 가능한 방식이다

 

계산에 의한 주소지정방식

 

- 상대 주소 : 명령어의 주소 부분 + PC
- 베이스 레지스터 : 명령어 주소 부분 + Base Register
- 인덱스 레지스터 : 명령어의 주소 부분 + Index Register

 

4. 명령 실행과 제어

 

1) 마이크로 오퍼레이션(Micro Operation)

 

마이크로 오퍼레이션의 정의
: 한 개의 Clock 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행된다

 

마이크로 사이클 타임(Micro Cycle Time)
: 한 개의 Micro Operation을 수행하는데 걸리는 시간

 

마이크로 사이클 타임 부여 방식

 

- 동기 고정식(Synchronous Fixed)
모든 마이크로 오퍼레이션 중에서 동작시간이 가장 긴 마이크로 오퍼레이션의 동작시간을 Micro Cycle Time이라 한다
모든 마이크로 오퍼레이션의 동작시간이 비슷할 때 유리한 방식이다

 

- 동기 가변식(Synchronous Variable)
각 그룹별로 서로 다른 Micro Cycle Time을 정의하는 방식이다
마이크로 오퍼레이션 수행시간이 현저한 차이를 나타낼 때 사용한다

 

- 비동기식(Asynchronous)
모든 마이크로 오퍼레이션에 대하여 서로 다른 Micro Cycle Time을 정의하는 방식이다

 

2) 메이저 스테이트(Major State)

 

메이저 스테이트의 정의
: 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로서 CPU가 무엇을 위해 주기억장치에 접근하느냐에 따라 Fetch, Indirect, Execute, Interrupt 이렇게 네 개의 상태로 나뉜다

 

메이저 스테이트의 변천과정

 

인출 단계(Fetch Cycle)

 

- 명령어를 주기억장치에서 중앙처리장치의 명령 레지스터로 가져와 해독하는 단계로 명령이 실행되기 위해서 가장 먼

  저 수행되는 동작이다

 

간접 단계(Indirect Cycle)

 

- Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행된다

 

실행 단계(Execute Cycle)

 

- Fetch 단계에서 인출하여 해석한 명령을 실행하는 단계이다
- Execute 단계에서는 플래그 레지스터의 상태 변화를 검사하여 Interrupt 단계로 변천할 것인지를 판단한다

 

인터럽드 단계(Interrupt Cycle)

 

- 인터럽트 발생 시 복귀 주소(PC)를 저장시키고 제어 순서를 인터럽트 처리 프로그램의 첫 번째 명령으로 옮기는 단계

   이다
- 인터럽트 단계를 마친 후에는 항상 Fetch 단계로 변천한다

 

3) 주요 명령의 마이크로 오퍼레이션

 

AND ( AC <- AC ∧ M[AD )
: AND는 AC와 메모리의 내용을 AND하여 결과를 AC에 저장하는 연산명령이다

 

ADD ( AC <- AC + M[AD] )
: ADD는 AC와 메모리의 내용을 더하여 결과를 AC에 저장하는 연산 명령이다

 

LDA ( AC <- M[AD] )
: LDA는 메모리의 내용을 AC로 가져오는 명령이다

 

STA ( M[AD] <- AC )
: STA는 AC의 내용을 메모리에 저장하는 명령이다

 

BUN
: BUN은 PC에 특정한 주소를 전송하여 실행 명령의 위치를 변경하는 무조건 분기 명령이다

 

BSA
: BSA는 복귀주소를 저장하고 부 프로그램을 호출하는 명령이다

 

ISZ
: ISZ는 메모리의 값을 읽어 그 값을 1 증가시킨 후 음수에서 시작한 그 값이 0이면 현재 명령을 건너 띄어 다음 명령으

  로 이동한다

 

4) 제어기의 구현

 

제어 데이터
: 제어장치가 제어 신호를 발생하기 위한 자료

 

제어 데이터 종류

 

- 메이저 스테이트 사이의 변천을 제어하는 데이터
- 중앙처리장치의 제어점을 제어하는 데이터
- 인스트럭션의 순서를 결정하는데 필요한 제어 데이터

 

제어기의 구현

 

- 고정배선 제어장치(Hard-wired Control Unit)
조합논리회로를 설계하는 해당 제어점에 연결하는 방식이다
Hardware적인 구성 방법이다 고속이며 회로 구성이 복잡하다

 

- 마이크로 프로그래밍 기법(Micro Programmed Control Unit)
내부 제어 신호를 여러 가지 마이크로 인스트럭션으로 작성하는 것이다
Software적인 구성방법이다 펌에워를 이용하는 방식이며 저속이다

마이크로 명령의 형식

- 수평 마이크로 명령(Horizontal Micro Instruction)
- 수직 마이크로 명령(Vertical Micro Instruction)
- 나노 명령(Nano Instruction)

 

5. 입력 및 출력

 

1) 입출력의 기본

 

입출력장치의 구성

 

- 입출력 제어장치
입출력장치와 컴퓨터 사이의 자료 전송을 제어한다
데이터 버퍼 레지스터를 이용하여 두 장치 간의 속도 차를 조절한다

 

- 입출력 인터페이스
내부장치(주기억장치, CPU)와 외부 입출력장치 사이에 정보를 원활하게 전송하기 위한 방법이다

 

- 입출력 버스
데이터버스, 주소버스, 제어버스

 

기억장치와 입출력 장치의 동작 차이

 

 

비동기 데이터 전송
: 두 개의 독릭적인 장치 사이의 비동기적인 데이터 전송을 이루기 위해서는 데이터 전송시각을 알기 위한 제어 신호를

 서로 교환하여 송수신 상태를 서로 맞추어야 한다

 

- 스토르브 펄스
- 핸드셰이킹

 

스풀링(Spooling)

 

- 디스크에 입출력할 데이터를 모았다가 나중에 한꺼번에 입출력한다
- 여러 작업을 병행 수행할 수 있도록 하여 다중 프로그래밍 시스템의 성능 향상을 가져온다
- 디스크 일부를 매우 큰 버퍼처럼 사용하며 큐 방식의 입출력을 수행한다

 

2) 입출력 제어 방식

 

- Programmed I/O
CPU가 계속 Flag를 검사

 

- Interrupt I/O
CPU가 계속 Flag를 검사하지 않고 입출력 장치의 요구가 있을 때 데이터를 전송하는 제어방식이다

 

- DMA(Direct Memory Access)에 의한 I/O
CPU를 거치지 않고 메모리와 입출력 장치가 직접 통신
Cycle Steal 방식을 이용하여 데이터를 전송한다


(Cycle Steal이란 채널과 CPU가 주 기억 장치를 동시에 Access할 때 우선 순위를 데이터 채널에게 주는 방식이다)

 

- Channel에 의한 I/O

CPU 관여 없이 주 기억 장치와 입출력장치 사이에서 입출력을 제어
DMA 방법으로 입출력을 수행한다


(Selector Channel : 고속 입출력, 장치 1개의 장치를 관리
(Multiplexer Channel : 저속 입출력 장치, 동시에 여러 개의 입출력 장치를 제어한다
(Block Multiplexer Channel : 고속 입출력장치를 제어하는 채널, 동시에 여러 개의 입출력 장치를 제어한다

 

3) 인터럽트의 개념

 

인터럽트의 정의

 

- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생한 경우
- 현재 실행 중인 작업을 잠시 중단하고 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하는 것을 말한다

인터럽트 종류 및 발생 원인

 

외부 인터럽트

 

- 전원 이상 인터럽트(Power Fail Interrupt)
: 정전이 되거나 전원 이상이 있는 경우

 

- 기계 착오 인터럽트(Machine Check Interrupt)
: CPU의 기능적인 오류 동작이 발생한 경우

 

- 외부 신호 인터럽트(External Interrupt)
: 타이머에 의해 규정된 시간을 알리는 경우, 키보드로 인터럽트 키를 누른 경우, 외부 장치로부터 인터럽트 요청이 있는 경우

 

- 입출력 인터럽트(Input-Output Interrupt)
: 입출력 Data의 오류나 이상 현상이 발생한 경우, 입출려 장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우

 

내부 인터럽트

 

- 프로그램 검사 인터럽트(Program Check Interrupt)
: 0으로 나누기가 발생한 경우, Overflow 또는 Underflow가 발생한 경우, 프로그램에서 명령어를 잘못 사용한 경우, 부당한 기억장소의 참조와 같은 프로그램 상의 오류

 

소프트웨어 인터럽트

 

- SVC 인터럽트(SuperVisor Call Interrupt)
: 사용자가 SVC 명령을 써서 의도적으로 호출한 경우, 복잡한 입출력 처리를 해야 하는 경우, 기억장치 할당 및 오퍼레이터와 대화를 해야 하는 경우

 

인터럽트 발생시 CPU가 확인할 사항

 

- 프로그램 카운터의 내용
- 사용한 모든 레지스터의 내용
- 상태 조건의 내용(PSW)

 

인터럽트의 동작 원리(수행순서)

 

- 인터럽트 요청 신호 발생
- 현재 수행중인 명령을 완료하고, 상태를 기억시킨다
- 인터럽트를 요청한 장치를 식별
- 인터럽트 서비스 루틴을 실행한다
- 보존한 프로그램 상태를 복귀
- 중단된 프로그램 실행 재개

 

4) 인터럽트 우선순위(Priority)체제

 

인터럽트 우선순위
: 전원이상 -> 기계 착오 -> 외부 신호 -> 입출력 -> 명령어 잘못 -> 프로그램 -> SVC

 

인터럽트 우선순위 체제의 목적과 기능

 

- 하나 이상의 인터럽트가 발생하였을 때 먼저 서비스할 장치를 결정
- 각 장치에 우선순위를 부과하는 기능
- 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능
- 우선 순위가 높은 것을 먼저 처리할 수 있는 기능

 

소프트웨어적인 인터럽트 우선순위 판별 방법 (Polling)

 

- 인터럽트 요청 플래그를 차례로 검사
- 속도가 느리지만 경제적이고 회로가 간단하며 융통성이 있다

 

하드웨어적인 인터럽트 우선순위 판별 방법 : Vertored Interrupt

 

- 반응 속도가 빠르고 비싸고 회로가 복잡하며 융통성이 없다
- 직렬 우선순위 부여 방식 : 데이지 체인(Daisy-chain)방식
- 병렬 우선순위 부여 방식 : Mask Register를 사용한다

 

6. 기억장치

 

1)기억장치의 개요

 

기억장치의 분류

 

 

기억장치의 계층 구조

 

 

기억장치의 특성을 결정하는 요소

 

- 기억용량
- Access Time : 읽기 요청이 발생한 시간부터 정보를 꺼내서 사용 가능할 때까지의 시간이다
- Cycle Time : 기억장치에 읽기 신호를 보낸 후 다시 읽기 신호를 보낼 수 있을 때까지의 시간
- Bandwidth(대역폭, 전송률) : 메모리로부터 또는 메모리까지 1초 동안 전송되는 최대한의 정보량

 

2) 주기억장치

 

ROM(Read Only Memory)

 

- 읽기만 가능하고 쓰기는 불가능한 기억장치
- 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리다

 

ROM의 종류와 특징

 

- Mask ROM
: 제조공장에서 프로그램화하여 생산한 ROM으로 사용자가 내용을 변경시킬 수 없다

 

- PROM
: PROM 프로그램 장치라는 특수 장비를 이용하여 비어 있는 ROM에 사용자가 한 번만 내용를 기입할 수 있다

 

- EPROM
: 자외선을 쏘여서 기입한 내용을 지울 수도 있고 PROM 프로그램 장치로 내용을 기록할 수도 있다 사용자가 여러번 반복해서 지우거나 기록할 수 있다

 

- EEPROM
: 전기적 특성을 이용하여 기록된 정보의 일부를 바꿀 수 있는 ROM

 

- EAROM
: 전기적인 방법을 이용하여 기록된 내용을 여러번 수정하거나 새로운 내용을 기록할 수 있는 ROM

 

RAM(Random Access Memory)

 

- 자유롭게 읽고 쓸 수 있는 기억장치로 RWM이라고도 한다
- 현재 사용중인 프로그램이나 데이터가 저장되어있다
- 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리다

 

DRAM과 SRAM의 특징

 

 

자기코어
: 전류 일치 기술에 의하여 기억장소를 선별한다

 

3) 보조기억장치

 

보조기억장치의 개념
: 주기억장치의 단점을 보완하기 위한 기억장치이며 주기억장치에 비해 속도는 느리지만 전원이 차단되어도 내용이 그대로 유지되고 저장 용량이 크다는 장점이 있다

보조기억장치의 일반적인 특징

 

- 중앙처리장치와 직접 자료 교환이 불가능하다
- 접근 시간(Acess Time)이 오래 걸린다

 

자기 테이프(Magnetic Tape)
: 주소의 개념이 없고 처음부터 차례대로 처리하는 순차 처리만 할 수 있는 대용량 저장 매체이다

- 순차 처리만 가능하다
- 블록 단위로 데이터를 전송하며 블록과 블록 사이에는 GAP이 있다

 

자기 디스크(Magnetic Disk)
: 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억 매체로 용량이 크고 접근 속도가 빠르다

자기 디스크의 구조

 

- 트랙(Track) : 디스크 표면에서 회전축을 중심으로 데이터가 기록되는 동심원이다
- 섹터(Sector) : 트랙들을 일정한 크기로 구분한 부분이며 정보 기록의 기본 단위이다
- 실린더(Cylinder) : 서로 다른 면들에 있는 동일 위치의 트랙들의 모임이다

 

자기 드럼(Magnetic Drum)
: 원통 표면에 Track과 Sector를 구성하고 각 Track마다 고정된 R/W Head를 두고 있어 자기 디스크에 비해 속도가 빠르다

 

4) 연관기억장치, 복수 모듈 기억장치

 

연관기억장치(Associative Memory)
: 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치이다

 

복수 모듈 기억장치

 

- 주기억장치와 CPU의 속도 차이 문제점을 개선한다
- 기억장치의 버스를 시분할하여 사용한다
- 기억장소의 접근을 보다 빠르게 한다

 

메모리 인터리빙

 

- 기억장치를 각 모듈이 순차적으로 번갈아 가며 접근하는 방법이다
- 대역폭을 효율적으로 높일 수 있다
- 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용된다

 

5) 캐시 메모리(Cache Memory)

 

캐시 메모리

 

- CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용한다
- 주기억장치를 접근하느 횟수가 줄어듦으로써 컴퓨터의 처리 속도가 향상된다

   캐시 설계시 고려할 사항

- 캐시의 크기
- 전송 Block Size
- 교체 알고리즘

 

매핑 프로세스(Mapping Process)

 

- 직접 매핑(Direct Mapping) : 간단하고 구현 비용이 적게들지만 적중률이 낮아질 수 있다
- 어소시에이티브 매핑(Associative Mapping, 연관매핑) : 직접 매핑 방식의 단점을 보완한 방식이다
- 세트-어소시에이티브 매핑(Set-Associative Mapping) : 직접 매핑과 연관 매핑의 장점만을 취한 방식이다

 

캐시의 적중률

 

- 적중률 = (적중횟수 / 총 접근 횟수)로 계산한다
- 미스율 = 1 - (적중률)

 

6) 가상기억장치(Virtual Memory)

 

가상기억장치
: 기억 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있어 사용자는 프로그램의 크기에 제한 받지 않고 프로그램 실행이 가능하다

 

가상기억장치의 특징

 

- 소프트웨어적인 방법으로 보조기억장치를 주기억장치처럼 사용
- 보조기억장치 중 디스크와 같은 DASD 장치에서 가능

 

가상기억장치의 관리 기법

 

- 페이징 기법 : OS가 보조기억장치에 있는 프로그램을 동일 크기의 블록으로 나눈어서 관리하는 기법
- 세그먼트 기법 : 사용 자가 보조기억장치에 있는 프로그램을 가변적인 크기으 블록으로 나누어서 관리하는 기법

 

기억장치의 관리 전략

 

- 반입(Fetch)전략
: 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략으로 요구반입과 예상반입이 있다

 

- 배치(Placement) 전략
: 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략으로 최초접합(First Fit), 최적접합(Best Fit), 최악접합(Worst Fit)이 있다

 

- 교체(Replacement) 전략
: 새로운 프로그램을 주기억장치에 배치하려고 할때 이미 사용되고 있는 페이지 프레임 중에서 어느 하나를 선택하여 빈 페이지 프레임을 만들어 줄 것인지를 결정하느 전략이다

 

주소 매핑(주소 교환)

- 주소 매핑은 가상주소를 실기억주소로 변환하는 작업이다

 

'자격증 공부!' 카테고리의 다른 글

정보처리 산업기사 필기(데이터베이스)  (0) 2020.08.26

+ Recent posts