2018년 8월 2일 목요일

전자계산기구조 - 요점정리

불 대수 기본법칙


카르노맵


논리게이트



전파지연 (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
    • Gray Code 산출방법
    • BCD를 XOR연산으로 산출
  • 패리티 코드 (Parity Code)
    • Odd Parity: 1의 수가 홀수가 되게끔 0/1 추가
    • Even Parity: 1의 수가 짝수가 되게끔 0/1 추가
  • 해밍 코드 (Hamming Code)
    • 1,2,4,8,16,32, …, n2번째에 parity bit가 들어감
    • 해밍코드 산출방식:

코드종류



멀티플렉서 (Multiplexer)



채널 (Channel)의 종류

  • 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

  1. MAR ← PC // 명령어 주소번지 획득
  2. MBR ← M[MAR] // 명령어획득 
  3. PC = PC + 1 // PC증가
  4. IR ← MBR[OP] // 인스트럭션패치 (명령어전송)
  5. I ← MBR[I] // 명령어 mode bit를 I Flip-flop에 전송
  6. IF I THEN R ← 1 // Indirect cycle
  7. ELSE F ← 1 // Execute cycle
※ 명령어를 가져오기위해 기억장치에 접근하는 것Fetch상태라고 한다. 

Indirect Cycle

  1. MAR ← MBR[AD] // MBR 명령어번지를 MAR로
  2. MBR ← M[MAR] // MAR이 가지고있는 실 값을 MBR로
  3. F ← 1; R ← 0; //To Execute cycle

Execute Cycle

  1. MAR ← MBR[AD] // MBR의 명령어 번지를 MAR로
  2. MBR ← M[MAR] // 명령어 획득
  3. AC ← AC + MBR // 누산기에 MBR을 추가하여 누산기에 전송
  4. IF F==0 THEN F ← 0; R ← 0; // To Fetch cycle
  5. ELSE IF R==1 THEN F ← 1; R ← 1 // To Interrupt cycle

Interrupt Cycle

  1. MBR[AD] ← PC // 다음실행명령어를 MBR로
  2. PC ← 0 // 복귀주소 0 저장
  3. MAR ← PC // 복귀주소를 MAR로 전송
  4. PC = PC + 1 // 인터럽트 처리 이동을 위해 PC를 1로
  5. M[MAR] ← MBR // MBR에 저장된 다음 실행명령을 0번지에 저장
  6. IEN ← 0 // 인터럽트 단계가 끝날때까지 다른 인터럽트 받지않기
  7. F ← 0; R ← 0; // To Fetch cycle
IEN(Interrupt ENable flip-flop)
※ Folling: 인터럽트 요청신호 Flag를 차례로 검사하여 인터럽트 원인을 판별


인터럽트 작동순서

  1. 인터럽트 요청
  2. 프로그램 실행중단
  3. 프로그램 상태보존
  4. 인터럽트 인지신호 발생
  5. 벡터 인터럽트 처리
  6. 상태 복구
  7. 리턴에 의한 상태 복구 및 프로그램 재개

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) 


  1. SLC(Single Level Cell): 하나의 셀에 1비트
  2. MLC(Multi Level Cell): 하나의 셀에 2비트
  3. TLC(Triple Level Cell): 하나의 셀에 3비트

Mapping Process의 종류

  1. Direct Mapping 
  2. Associative Mapping 
  3. 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 





댓글 없음:

댓글 쓰기