[(구)정처기/컴퓨터일반] (2) 전자계산기 자주 틀리는 내용 정리
주의) 해당 내용은 (구)정보처리기사, 컴퓨터일반 내용을 기반으로 문서화하였습니다. 수정이 필요하거나, 부족한 내용이 있을시 답글을 남겨주시면 해당 항목을 수정하겠습니다.
불 대수 기본 정리
| A + A = A | A · A = A | A · 0 = 0 | A + 0 = A |
| A + 1 = 1 | A · 1 = A | 0 + 0 = 0 | 0 · 0 = 0 |
| 1 + 0 = 1 | 1 · 0 = 0 | 1 + 1 = 1 | 1 · 1 = 1 |
| A + A·B = A | A·(A + B) = A |
논리게이트
- Exclusive OR : A, B 입력 ⇒ 서로 다를 때 1출력, 같을 때 0 출력
- Exclusive NOT OR : A,B 입력 값 ⇒ 서로 같을 때 1, 다를 때 0 출력
조합 논리 회로
- 반가산기(Half Adder) : AND(1) + XOR(1)
S : A ⊕ B / C : A·B
- 반감산기(Half Subtracter) : NOT(1) + AND(1) + XOR(1)
D : X ⊕ Y / B : X’ · Y
- 전가산기(Full Adder) : Half Adder(2) + OR(1)
S : A ⊕ B ⊕ C / C : (A ⊕ B) · C + A · B = A · B + B · C + A · C
- 전감산기(Full Subtracter) : Half Subtracter(2) + OR(1)
D = X ⊕ Y ⊕ B / B = (X ⊕ Y)’·B + X’ · Y
- 병렬 가산기 :
반가산기(2n-1)개 + OR(n-1)개 / 전가산기(n개)를 여러 개 사용 - 디코더 = 해독기
N개의 입력 ⇒ 2n개의 출력 - 인코더
2n개의 입력 ⇒ n개의 출력 - 멀티플렉서 == 선택기
2n개의 입력선 + n개의 선택선 ⇒ 하나의 출력 - 디멀티플렉서
하나의 입력 정보 + n개의 선택선 ⇒ 2n 개의 출력 - 비교기 : Exclusive NOR(n개) 연결
- 3-상태 버퍼
순서 논리 회로
-
플립플롭 : 현 상태값에 관계 없이 입력 값을 다음 상태로 전달하는 특징이 있음
RS플립플롭 : S, R 단자가 모두 1인 경우 ⇒ 불허용
JK 플립플롭 : S, R 단자가 모두 1인 경우 ⇒ 반전(토글)
D 플립플롭 : 배타적인 경우만 이용, D 입력(1) ⇒ 출력(1)
T 플립플롭 : 토글 기능만 작동
- 마스터 슬래이브 플립플롭 : Race 현상 해결하기 위해
- 카운터
- 레지스터
자료의 외부 표현
- BCD : Zone(2Bit) + Digit(4Bit) ⇒ 6Bit
- EBCDIC : Zone(4Bit) + Digit(4Bit) ⇒ 8Bit
- ASCII : Zone(3Bit) + Digit(4Bit) ⇒ 7Bit + Parity(1Bit)
고정 소수점 수에서 음수 표현 방식에 따른 특징
- 수의 표현 범위
- 부호와 절대치 : -(2^(n-1)-1) ~ 2^(n-1)-1
- 1의 보수 : -(2^(n-1)-1)~2^(n-1)-1
- 2의 보수 : -2^(n-1) ~ 2^(n-1)-1
부동 소수점
- 부호(1), 지수(8), 가수(23)
- 나눗셈 과정 :
- 0인지 조사 ⇒
- 부호 결정 ⇒
- 피젯수를 위치 조정 ⇒
- 지수 뺄셈 ⇒
- 가수 나눗셈 ⇒
- 결과의 정규화
- 메가플롭스(MFLOPS) : 1초간에 실행되는 부동 소수점 연산의 수를 100만 단위로 표현
10진 표현
- 언팩 10진 표현 : 연산 불가, 입출력 작업 시
부호는 맨 마지막 바이트의 존 부분에 표현(+:C(1100), -:D(1101)) - 팩 10진 표현 :
연산 가능, 부호는 맨 마지막 4비트(+:C(1100), -:D(1101))
코드의 분류
- 가중치 코드 : 자리 값을 가지고 있는 코드
- 8421, 2421, 7421, 5421, 5111, Biquinary, Ring Counter
- 비가중치 코드 : 자리 값이 없는 코드
- 3초과 코드, 그레이 코드, 2-out-of-5 코드, 3-out-of-5 코드
- 자기 보수 코드 : 코드의 1의 보수 == 10진수의 9의 보수
- 3초과 코드, 2421, 5211, 5111, 8421
- 에러 검출 코드
- 패리티, 해밍, 2-out-of-5 코드, 3-out-of-5 코드, Biquinary, Ring Counter
- Gray 코드 : 기계적인 동작을 제어하는데 적당
수치적 연산
- 산술 시프트
- 우측 산술 시프트
부호와 절대치 표현 ⇒ 부호 비트 고정 1의 보수 ⇒ 음수일 경우 1 패딩 2의 보수 ⇒ 음수일 경우 1 패딩
- 좌측 산술 시프트
부호와 절대치 표현 ⇒ 부호 비트 고정 1의 보수 ⇒ 부호 비트 고정, 음수일 경우 1패딩 2의 보수 ⇒ 부호 비트 고정
명령어의 구조
- 연산자 = Op-Code : Op-Code (n)Bit ⇒ 명령어 생성 개수 = 2^n
- 모드 : 직접 주소 / 간접 주소
- 주소 : 메모리 용량이 2^n ⇒ Operand (n)Bit
연산자(Operation, Op-Code)의 기능
- 함수 연산 기능, 제어 기능, 전달 기능, 입출력 기능
명령어 세트의 효율성을 향상시키기 위한 고려사항
기억 공간, 사용 빈도, 주기억 장치의 밴드폭 사용, 주소 지정 방식 함수 연산 기능 대 기타 연산 기능의 비율
명령어 설계 과정 고려사항
- 연산자의 수, 종류 / 주소 지정 방식 / 데이터 구조 / 워드 크기
명령어의 종류
- 데이터 처리 명령어
ADD / SUB / MUL / DIV INC / DEC AND / OR / XOR / COMPLEMENT / CLEAR 산술, 논리 SHIFT / ROTATE - 데이터 전송 명령어
LOAD / STORE / MOVE / PUSH / POP / INPUT / OUTPUT - 데이터 제어 명령어
JUMP / SMA / SZC / SKIP / SZA / ISZ / RETI / CALL / RETURN / HALT
명령어 메모리 참조 형식
- 레지스터 참조 명령(RRI : Register Reference Instruction)
- 메모리 참조 명령(MRI : Memory Reference Instruction)
- 입출력 명령(IOI : Input Output Instruction)
주소 지정 방식
- 즉시 주소(Immediate Address) :
주소 부분에 실제 데이터가 들어있는 방식 - 직접 주소(Direct Address) :
주소 부분에 실제 데이터가 들어있는 유효주소가 있음 - 계산에 의한 주소(Calculate Address)
- 인덱스 주소 지정(Index Register Address) :
인덱스 레지스터, 배열 엑세스 방식 - 상대 주소 지정(Relative Address) :
PC, 데이터 영역의 배치와 Program 배치 유사, 분기 명령 - 기준 주소 지정(Base Register Address) :
베이스 레지스터, 프로그램 재배치, 다중 프로그래밍 기법에서 주로 사용 - 간접 주소(Indirect Address)
CPU의 구분
- 스택 구조 CPU : 0 주소 명령어 형식, Postfix 표기법
- 단일 누산기 구조 CPU : 1주소 명령어 형식, Infix 표기법
- 범용 레지스터 구조 CPU : 2주소 명령어 형식, Prefix 표기법
프로세서의 종류
- CISC(Complex Instruction Set Computer)
초창기 컴퓨터, 마이크로 프로그램 제어 방식 사용
메모리 참조 연산 - RISC(Reduced Instruction Set Computer)
하드 와이어드 제어 방식
중요 명령어 ROM에 저장
명령어 길이 고정, 명령어의 개수 적음
레지스터 참조 연산
레지스터
- AR(Address Register) : 기억용량과 관련, 주기억장치 / 워드 길이
- PC(Program Counter)
- MAR(Memory Address Register)
- DR(Data Register) : 기억 장치의 워드 크기와 관련
- MBR(Memory Buffer Register)
- Status Register : 프로그램 제어를 위한 상태 정보를 기억
명령어 수행 순서
명령어 인출 ⇒ 명령어 해독 ⇒ 오퍼랜드 인출 ⇒ 실행 ⇒ 인터럽트 조사
Instruction Fetch ⇒ Instruction Decoder ⇒ Operand Fetch ⇒ Exe ⇒ Interrupt Search
마이크로 오퍼레이션
- 하나의 클록 펄스 동안 실행되는 기본 동작을 의미
- CPU에 있는 레지스터와 플래그의 상태 변환을 일으키게 하는 동작
- CPU에서 발생시키는 제어 신호에 따라 마이크로 오퍼레이션이 순서적 실행
- 동기 고정식 마이크로오퍼레이션
- 마이크로 사이클 타임이 가장 긴 것 == 클록 주기
- 수행 시간이 차이가 날 때 CPU의 시간 낭비, 구현 간단
- 여러 종류의 MO 수행 시 CPU 사이클 타임이 실제적인 오퍼레이션 시간보다 김
클럭 사이클 시간
조합 논리 회로 : 세그먼트 중 가장 긴 것 + 가장 짧은 것
메이져 상태
- 인출 주기
- 간접 주기
- 실행 주기
- ADD
- AND
- LOAD
- STORE
- BUN(JUMP)
- BSA(Branch and Save Return Address)
- ISZ(Increment and Skip if Zero) : 프로그램의 수행 순서를 조건에 따라 결정
- 인터럽트 주기
제어 장치
제어 메모리 : 액세스 타임이 빠른 ROM으로 만들어진다
CPU의 제어 데이터
| 제어 데이터 | 인출 | 간접 | 실행 | 인터럽트 |
|---|---|---|---|---|
| 메이저 상태를 변화시키는 데이터 | 명령어 | 직/간접 주로 방식을 판별하는 비트 | 인터럽트 요청 신호 | 없음 |
| CPU의 제어점을 제어하는 데이터 | 명령어 | 명령어의 연산자 부분 | 명령어의 연산자 부분 | 기종에 따라 다름 |
| 명령 수행 순서를 결정하는 제어 데이터 | 명령어 | 기억 장치에서 읽어낸 실제 데이터 주소 | PC | 기종에 따라 다름 |
마이크로 프로그램
일련의
제어 워드가 특수한 기억 장치 속에 저장되어 기계어 명령어들이 적절히 수행되도록 각종제어 신호를 발생시키는프로그램
제어 장치의 구현 방법
- 고정 배선식 제어 방식(Hard Wired)
하드웨어적, 속도 빠름, 변경 불가, 회로 복잡, 변경이 어려움 - 마이크로프로그램 제어 방식
제어 메모리에서 번지 결정 방법
- 순차 수행 : 제어 주소 레지스터의 내용을 +1 결정
- 무조건 분기 : 마이크로 명령어 상에 있는 분기 주소에 나타난 다음 명령어 수행
- 조건 분기 : 상태 플래그의 내용에 따라
- 서브 루틴 : 독립된 서브 마이크로프로그램 호출하여 수행
- 매크로 : 반복되는 부분을 매크로로 정의하고 직접 제어 메모리로 매핑
주기억 장치
- DRAM
재충전 시간이 필요하므로 사이클 시간 > 접근 시간 - DRO(파괴성 판독 : Destructive Read Out)
- 메모리에서 데이터를 읽어내면서 원래의 데이터를 소거하는 판독 방법으로 메모리에서 정보를 보존하려면 읽어낸 뒤 즉시 재기입하여하 하기 때문에
- 사이클 타임 > 접근 시간
- SSD(Solid State Drive) : 메모리 반도체를 사용하는 대용량 저장 장치
- SLC / MLC / TLC(속도 빠름/수명 길다 ↔ 속도 느림/수명 짧음)
- CPLD(Complex Programmable Logic Device)
- LAB, PIA로 구성되어 규칙적이고 빠른 타이밍이 필요하거나 어드레스 디코더 같은 간단한 로직 구현에 사용
보조 기억 장치
- 자기 디스크
- 등선 속도(CLV : Constant Linear Velocity)
- 디스크의 안쪽, 바깥쪽 회전 속도가 일정하지 않음
- 등각 속도(CAV : Constant Angular Velocity)
- 외부 면의 저장 밀도가 떨어져 공간 낭비 유발, 접근 속도 빠름
- 등선 속도(CLV : Constant Linear Velocity)
- 블루레이
405nm 파장의 청자색 레이저 사용, DVD보다 많이 저장 가능
한 면에 최대 27GB, 듀얼 50GB, MPEG-2 압축 방식
캐시메모리
캐시 메모리 평균 액세스 시간 = 히트 시간 + 미스도 + 미스 패널티
캐시 블록 번호 = 주기억 장치 블록 번호(= 번지 / 블록 크기) MOD 캐시 전체의 블록 수
캐시 메모리에 데이터 저장 시 주기억 장치와의 관계
- Write Through : 캐시에 저장이 일어날 때 캐시와 주기억 장치를 동시에 갱신
- Write Back : 캐시의 내용만 갱신이 일어나다가 블록이 캐시에서 제거될 때, 주기억에 복사해서 갱신
연관 기억 장치(Associative Memory)
- 기억된 정보의 일부분을 이용하여 원하는 정보를 검색 ⇒ 주소가 필요 없음
- 신속한 검색, 병렬판독회로 내장(가격이 비싸다)
- 작은 용량의 IC메모리를 사용하여 캐시 메모리나 가상 메모리의 주소 탐색에 주로 이용
가상 기억 장치
- 실제 페이지의 개수 = 주기억 장치 용량 / 하나의 페이지 크기
- 가상 페이지의 개수 = 가상 주소(nBit ⇒ 2^n) / 하나의 페이지 크기
메모리 인터리빙
- 독립된 메모리를 2개 이상 나누어 연결하고 CPU에서 각각 독립된 메모리를 번갈아가면서 연속적으로 액세스가 이루어지도록 구현하는 방법
- CPU의 처리속도에 비해 사이클 타임이 오래 걸리지만, 접근하는 시간은 효율적
기억 장치 / 입출력 장치
동작 속도 / 정보 단위 / 동작의 자율성 / 에러율
입출력 제어기의 역할
- 데이터 버퍼링 / 제어 신호의 논리적, 물리적 변환
- 통신 회선 확보 / 상태 정보 저장 / 주기억 장치 접근 / 데이터 교환
고립형 입출력 포트(I/O Mapped I/O Port)
- 입출력 포트와 메모리 주소가 독립적인 상태
- 마이크로프로세서는 뚜렷한 입출력 명령을 가짐 각 명령은 인터페이스 레지스터의 주소를 가짐
메모리 맵 입출력 포트(Memory Mapped I/O Port)
- 입출력 포트와 메모리 주소가 종속적인 상태
- 마이크로프로세서가 인터페이스 레지스터를 메모리 시스템의 한 부분으로 인식
DMA(Direct Memory Access)
- 단어 계수기는 입출력이 일어날 때마다 하나씩 감소하여 0이 되면 인터럽트를 요청하여 블록에 대한 입출력이 완료되었음을 CPU에게 알림
- 구성요소
- 인터페이스 회로 : CPU ↔ 입출력 장치 통신
- 번지 레지스터 : 기억 장치와 위치 지정을 위한 번지를 기억
- 워드카운터 레지스터 : 전송되어야 할 워드의 수 표시
- 제어 레지스터 : 전송 방식을 결정
- 데이터 버스 버퍼, 주소 버스 버퍼
- Data Buffer Register / F Flip-Flop / Status Register / Address Register / Word Counter
사이클 스틸
- CPU 상태를 보존할 필요가 없음
- CPU가 잠시 쉴 수 있음
- 아무 사이클이나 상관없이 훔치는 것이 가능
- DMA의 우선순위는 메모리 참조의 경우 CPU장치보다 상대적으로 높음
채널
- Interlock Channel : 하나 이상의 입출력 요청이 들어올 경우 이를 적절히 수행
- Crossbar Channel : 여러 개의 채널 제어기 중 아무거나 사용해서 입출력할 수 있는 방식
- 버스트 모드 : 하나의 I/O 장치가 데이터 전송을 하고 있는 동안 채널의 기능을 완전히 독점하여 대량의 데이터를 고속으로 전송
- 멀티플렉서 모드 : 여러 개의 I/O 장치가 채널의 기능을 공유하여 시간 분할 형식으로 데이터를 전송하는 형태, 저속의 I/O 장치 여러 개를 연결하는 방식
- 입출력 수행 중 어떤 에러 조건에서 CPU에 인터럽트를 걸 수 있음
- 구성요소
- 채널 명령어(CCW : Channel Command Word) : 주기억 장치에 있는 하나의 블록 입출력 정보를 가지고 있는 명령어
- Operation Code : I/O 여부 / 분기 / 입출력 장치 제어 / 채널 동작 정보
- 블록 주소 : 블록의 첫 번째 시작 주소
- 블록의 단어수 : 입출력하고자 하는 블록 워드의 개수
- 다음 채널 명령의 주소 : PC가 없으므로 다음에 수행해야 할 명령어 있음
- 채널 주소 단어(CAW : Channel Address Word) : 채널 명령어의 시작 주소를 기억
- 채널 상태 단어(CSW : Channel Status Word) : 채널 정보, I/O 장치 정보 레지스터
- 채널 명령어(CCW : Channel Command Word) : 주기억 장치에 있는 하나의 블록 입출력 정보를 가지고 있는 명령어
인터럽트 종류
- 페이지 폴트 / 캐시 미스 인터럽트
- 외부 인터럽트 : 타이머 인터럽트나 조작원의 의도적 동작인 입출력 인터럽트
- 내부 인터럽트 : 0으로 나누기 / 불법적인 명령어 사용 / 오버, 언더 플로우
- 트랩 : 어떤 프로세스가 특정 시스템 기능을 사용하려고 할 때 OS에게 요청
- I/O 인터럽트 : 의도적으로 인터럽트 발생 가능
- SVC(Super Visor Call) : 사용자가 프로그램을 이용하여 직접 인터럽트를 호출
- 차단 불가능 인터럽트(NMI : Non-Maskable Interrupt)
- 인터럽트 마스크에 영향을 받지 않는 우선순위가 가장 높은 인터럽트
- 정전, 심각한 하드웨어 이상 인터럽트에 해당
인터럽트 발생 시 CPU의 처리 사항
- PC
- 프로그램에서 사용한 모든 레지스터의 내용
- 플래그 상태 조건 내용
- 스택의 내용 / 메모리 0번지의 내용
인터럽트 우선순위 부여 방식
- 폴링 = 프로그램에 의한 I/O 제어 방식
- CPU와 I/O 장치 사이의 데이터 전달이 프로그램에 의해서 제어되는 방법
- 프로그램에서 D와 B 상태를 검사하여 데이터를 전송
- 인터럽트 요청 체인 방식
- 인터럽트 우선순위 체인 방식
- 병렬 우선순위 부여 방식
- 처리 중인 인터럽트보다 우선순위가 낮은 것을 비활성화시키는 마스크 레지스터
- 인터럽트 처리 루틴 없이 인터럽트 취급 루틴 시작
- CPU에 있는 인터럽트 레지스터의 각 비트는 요청 회선과 연결
인터럽트 작동 순서
인터럽트 요청 ⇒ 현 상태 보존 ⇒ 인터럽트 판별 ⇒ 인터럽트 취급 ⇒ 원 상태 복귀
병렬 컴퓨터 구조
- 파이프라인 클록 타임
T = (k + (N -1)) (k:파이프라인 단계 수, N : 수행할 명령어의 개수)
상호연결 구조
- 다중 처리기
- Bus, 크로스바 스위치, 다단 상호 연결망(오메가 스위치)
- 다중 컴퓨터
- Bus, 그리드, 하이퍼큐브
시스톨릭 배열(Systolic Array)
파이프라인 어레이 구조의 새로운 범주로서 지역적으로 연결된 프로세서들이 규칙적으로 데이터를 계산하고 시스템을 통해 데이터를 전달하는 프로세서 네트워크
벡터 처리기, MISD
파일 보호 기법
파일 명명, 접근 제어, 암호화
보안 유지 방식
부인 방지(Non-repudiation) : 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공하는 것, 공개키 암호 방식 이용
댓글남기기