불 대수 기본법칙
카르노맵
논리게이트
전파지연 (Propagation Delay)
- 평균 전이시간: 논리회로에 입력된 신호가 출력으로 전파되는데 걸리는 시간
- 계산기상 Operation Speed는 전파지연에 반비례
- 더 빠른 Gate를 사용함으로서 전파지연시간을 줄일 수 있음.
- ALU의 Parallel-adder에 전파지연을 줄이기 위해 Carry Look Ahead를 사용
전가산기(Full Adder)
- Sum = A⊕B⊕C
- Carry = (A⊕B)C+AB
반가산기(HA: Half Adder)
- Sum = A⊕B
- Carry = AB
디코더(Decoder)
플립플롭 (Flip-flop)
- 전원이 공급되는 한, 상태가 유지되는 회로
- 한 개가 1bit를 구성하는 2진 Cell
- 레지스터 구성의 기본소자
- 2개의 NAND or NOR Gate로 구성됨
디지털IC의 성능평가 요소
- 전파지연시간, 전력소모, Fan-Out, 잡음허용치
수치코드
- BCD Code
- 가중치코드 (= 8421 Code)
- 10진수 1자리를 2진수 4bits로 표현
- Excess-3 Code
- BCD Code에 3을 더한 코드
- 3 초과 코드
- 자보수 코드
- 비가중치 코드
- Gray Code
- 패리티 코드 (Parity Code)
- Odd Parity: 1의 수가 홀수가 되게끔 0/1 추가
- Even Parity: 1의 수가 짝수가 되게끔 0/1 추가
- 해밍 코드 (Hamming Code)
- 1,2,4,8,16,32, …, n2번째에 parity bit가 들어감
- 해밍코드 산출방식:
코드종류
멀티플렉서 (Multiplexer)
- Selector Channel: 특정한 한개의 장치를 독점하여 입/출력함
- 자기디스크, 자기테이프, 자기드럼 등
- Multiplexer Channel: 동시에 여러개의 입출력장치를 제어
- 카드리더, 프린터 등
- Block Multiplexer Channel: 동시에 여러기의 입출력장치를 제어
- 고속입출력장치 등
시분할 공유버스
- 프로세서, 기억장치, 입출력장치들 간에 하나의 버스통신로만 제공하는 방법
Registers
- PC(Program Counter)
- 다음 실행명령어의 번지를 기억
- IR(Instruction Register)
- 현재 실행중인 명령어 내용을 기억
- ACC(Accumulator)
- 연산결과를 일시적으로 저장/연산
- PSWR(Program Status Word Register)
- 상태 레지스터, 시스템 내부의 순간상태 기록(PSW)을 기억.
- Overflow, Underflow, Carry, 계산상태(0, -, +) etc..
- MAR(Memory Address Register)
- 기억장치를 출입하는 데이터의 번지를 기억
- MBR(Memory Buffer Register)
- 기억장치를 출입하는 데이터가 잠시 기억되는 곳
- Index Register
- 주소변경, 서브루틴연결, Loop 연산 등 횟수기억
- Data Register
- 연산 데이터를 기억
- Shift Register
- Shift 연산수행
- Major Status Register
- CPU Major Status를 기억
연산기호
- AND는 Mask, OR는 Selective Set
- XOR는 비교(Compare), NOT은 보수(Complement)
- Shift Left의 경우 1의보수인 경우만 1이 채워진다.
- Shift Right의 경우 보수법을 사용한 경우 1이 채워진다.
명령어의 형식
- 3-Address 주소지정: ADD R1, A, B
- 범용레지스터 구조 (서버 등 특수목적 컴퓨터)
- 2-Address 주소지정: ADD R1, A
- 범용레지스터 구조 (PC, 태블릿, 스마트폰 등)
- 1-Address 주소지정: ADD A
- 누산기 구조 (구형PC, PDA, 모니터, 공학용계산기 등)
- 0-Address 주소지정: ADD
- 스택 구조 (간단한 전자계산기, 전자시계 등)
주소설계 고려사항
- 표현의 효율성 (다양한 주소지정 사용)
- 사용의 편리성 (Pointer, Relocate)
- 주소공간(보조기억)과 기억공간(주기억)의 독립성
인스트럭션 세트 설계시 고려사항
연산자종류, 주소지정방식, 데이터구조, 명령어형식, 사용빈도 및 기억공간
마이크로 프로그램(Micro Program)
- 마이크로 프로그램은 ROM에 저장
- 마이크로 명령어를 사용해서 소프트웨어(Software)방식으로 구현
- 명령어들을 쉽게 변경할 수 있는 융통성이 좋지만 속도가 Hard-wired 방식보다 느림
명령 처리과정
인스트럭션 패치 → 인스트럭션 디코딩 → 오퍼랜드 패치 → 실행 → 인터럽트 조사
Major Status
Fetch Cycle
- MAR ← PC // 명령어 주소번지 획득
- MBR ← M[MAR] // 명령어획득
- PC = PC + 1 // PC증가
- IR ← MBR[OP] // 인스트럭션패치 (명령어전송)
- I ← MBR[I] // 명령어 mode bit를 I Flip-flop에 전송
- IF I THEN R ← 1 // Indirect cycle
- ELSE F ← 1 // Execute cycle
Indirect Cycle
- MAR ← MBR[AD] // MBR 명령어번지를 MAR로
- MBR ← M[MAR] // MAR이 가지고있는 실 값을 MBR로
- F ← 1; R ← 0; //To Execute cycle
Execute Cycle
- MAR ← MBR[AD] // MBR의 명령어 번지를 MAR로
- MBR ← M[MAR] // 명령어 획득
- AC ← AC + MBR // 누산기에 MBR을 추가하여 누산기에 전송
- IF F==0 THEN F ← 0; R ← 0; // To Fetch cycle
- ELSE IF R==1 THEN F ← 1; R ← 1 // To Interrupt cycle
Interrupt Cycle
- MBR[AD] ← PC // 다음실행명령어를 MBR로
- PC ← 0 // 복귀주소 0 저장
- MAR ← PC // 복귀주소를 MAR로 전송
- PC = PC + 1 // 인터럽트 처리 이동을 위해 PC를 1로
- M[MAR] ← MBR // MBR에 저장된 다음 실행명령을 0번지에 저장
- IEN ← 0 // 인터럽트 단계가 끝날때까지 다른 인터럽트 받지않기
- F ← 0; R ← 0; // To Fetch cycle
※ Folling: 인터럽트 요청신호 Flag를 차례로 검사하여 인터럽트 원인을 판별
인터럽트 작동순서
- 인터럽트 요청
- 프로그램 실행중단
- 프로그램 상태보존
- 인터럽트 인지신호 발생
- 벡터 인터럽트 처리
- 상태 복구
- 리턴에 의한 상태 복구 및 프로그램 재개
BUS
- Address BUS
- CPU, 메모리, I/O기기의 번지를 지정할때 사용하는 단방향 전송선
- 주소 전송용 단방향 전송선
- DATA BUS
- CPU, 메모리, I/O기기의 번지를 전송하는 양방향 전송선
- 데이터 전송용 양방향 전송선
- Control BUS
- CPU, 메모리, I/O기기에게 제어신호를 전송하는 양방향 전송선
- 제어신호 전송용 양방향 전송선
명령어(Op-code)
- 구성
- OP-Code가 n bit면 최대 2n개의 명령어사용이 가능
- OPerand가 n bit면 최대 2n개의 주소지정이 가능
- 4대 기능
- 함수연산 기능 : ADD, AND, CPA, CPC, CLA, CLC, ROL, ROR
- 전달 기능 : LAD(Load AC), STA(Store AC)
- 제어 기능 : JMP(Jump), SMA, SZA
- 입출력 기능 : INP, OUT
Operation Code의 기능
- 함수연산기능: 산술연산 및 논리연산
- ROR, ROL, ADD, SUB, MUL, DIV, SHIFT, NOT, AND, OR, XOR, ROTATE etc..
- 자료전달기능: CPU와 기억장치 간 정보전달 기능
- LOAD, STORE, PUSH, POP, MOVE etc..
- 제어기능: 실행순서의 변경
- GOTO, JMP, SNA, SZA, CALL, RETURN etc..
- 입출력기능: CPU와 I/O, 메모리와 I/O간의 정보전달
- INPUT, OUTPUT etc..
Pipeline
- 여러개의 명령을 동시에 병렬처리하는 장치
- 분업화원리를 이용하여 시간적 병렬처리
복수모듈 기억장치
- 독자적 데이터를 저장할 수 있는 기억장치 모듈을 여러개 갖춘 기억장치
- 인터리빙 기법으로 여러 모듈에 동시접근 가능
- 주기억장치와 CPU의 속도차이를 개선
- 기억장치의 버스룰 시분할하여 사용
- 기억장소의 접근을 보다 빠르게 함
사이클스틸(Cycle Stealing)
채널과 프로세서가 동시에 주기억장치를 액세스하면, 중앙처리장치의 Cycle time을 DMA가 일시적으로 압수하여, 채널에 우선 순위를 주고 프로세서는 주기억장치를 사용하지 못하게 하는 전송 방식이다.
Associative Memory의 특징
- DRAM보다 비싸다.
- 구조 및 동작이 복잡함
- 명령어 랜덤기억
- 주소보다 내용에 위해 검색
Loader
- Compile And Go Loader
- 별도의 로더없이 번역기가 로더 역할까지 수행
- 연결기능 없이 할당, 재배치
- 적재작업을 모두 번역기가 담당
- Absolute Loader
- 목적프로그램을 기억장소에 적재만 함
- Direct Linking Loader
- 로더의 일반적인 기능을 모두 수행
- Dynamic Loading Loader
- 프로그램을 실행시 필요한 일부분만 적재하는 로더. (Load-On-Call)
SSD(Solid State Drive)
- SLC(Single Level Cell): 하나의 셀에 1비트
- MLC(Multi Level Cell): 하나의 셀에 2비트
- TLC(Triple Level Cell): 하나의 셀에 3비트
Mapping Process의 종류
- Direct Mapping
- Associative Mapping
- Set-associative Mapping
메모리 IC 핀의 수
- Address pins: 1024 = 210 = 10개 필요
- Data pins: Word의 크기와 같음 = 8개 필요
- Chip select bit: 선택유무 = 1개 필요
- 따라서, 총 19개 필요
부동소수점 나눗셈 과정
Zero검증 → 레지스터 초기화 및 부호결정 → 피젯수 위치조정 → 지수 뺄셈 → 가수 나눗셈
I/O 제어방식
- Program에 의한 I/O
- Interrupt에 의한 I/O
- DMA에 의한 I/O
- Channel에 의한 I/O
- Strobe Pulse
- Handshaking
댓글 없음:
댓글 쓰기