[(구)정처기/컴퓨터일반] (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)
: 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공하는 것, 공개키 암호 방식 이용
댓글남기기