Digital systems and Logic

정태규·2022년 10월 19일
1

컴퓨터구조

목록 보기
2/9

Hardware Design Hierarchy

System

  • datapath
    • code registers
    • multiplexer
    • comparator
  • control
    • state registers
    • combinational logic

logic은 다음으로 구성된다.

  • multiplexer
  • comparator
  • combinational logic

register는 다음으로 구성된다

  • code registers
  • state resgisters

logic과 register가 합쳐져 switching networks(0과 1로 구성된 네트워크)를 구성한다.

Switches(1/2)


위에 보이는 그림이 Open switch 이고 A = 0(unasserted)
아래 보이는 그림은 close switch 이고 A = 1(aseserted)

이러한 example 에서 Z ≡ A로 표현,(A에 따라서 Z에 불이 들어올 수 있다.)

Switches(2/2)

1 = close 이다.

직렬

병렬

Block Diagrams

NAND로부터 AND,OR,NOT같은 연산을 만들 수 있다.

Digital System은 두개의 기본타입 회로로 이루어진다.

  • Combinational Logic
    • Output은 current inputs만 영향을 미친다.
    • GATE들(AND,OR,NOT)을 엮은것. E.g)ALU
  • Sequential Logic
    • Output은 current inputs+ current states(stored values)에 의해 영향을 받는다.
    • E.g) memory and registers

ALU(Arithmetic Logic Unit)

  • ALU는 Combinational Logic이다. binary number로 arithmetic과 bitwise operation을 수행한다.
  • ALU는 많은 컴퓨팅 회로의 기본적으로 많이 들어간다. e.g) CPU, FPU, GPU

Combinational Logic

  • Text Description
  • Circuit Diagram
    • Trangister and wires
    • Logic gates
  • Truth Table
  • Boolean Expression
  • All are equivalent
  • 내부 기억 element가 없기 때문에 같은 값이면 출력 값이 같다.
  • 출력이 현재 입력값에만 의존

Truth tables

  • output은 오직 현재 input에 의존
  • 0과 1 사용
  • 한개의 input은 0,1이 가능하다. input이 N개 일때, 가능한 output의 수는 2N2^N

Logic Gates(1/2)


  • NAND: AND NOT과 같다. 둘다 1이면 0
  • NOR: OR NOT과 같다. 둘중에 하나만 1이면 0 이다.
  • XOR: exclusive OR과 같다. 두 값이 같으면 0, 아니면 1이다.

Boolean Algebric Simplification Example

y = ab + a + c = a(b +1)+c = a+c

Circuit Simplification Example(1/3)


D = (AB)'(A + B'C)

Circuit Simplification Example(2/3)

D = (AB)'(A +B'C) = (A' + B')(A + B'C) = A'A+A'B'C+B'A+B'B'C
= 0+A'B'C'+B'A+B'C =B'C(A'+1)+B'A =B'C+B'A =B'(C+A)

After Simplification


gate가 6개에서 3개로 줄었다.

Sequential Logic

  • 상태를 포함하는 논리회로
  • output은 current input과 past input 모두 영향받음
  • Combinational Logic 에서 나온 output을 register에 저장했다가 현재 상태 반영해서 새로운 Logic 만든다.(state element에 값 전달)
  • clock에서 현재상태를 전달

state element

  • 적어도 2개의 입력과 1개의 출력을 갖는다.(꼭 있어야 하는 입력은 기록할 데이터와 클럭)
    • 클럭 입력은 데이터 값이 state element에 기록되는 시점을 결정한다.
    • state element의 출력은 이전 clock cycle에 기록된 값이다.
  • state element의 값을 읽는 것은 언제라도 가능하다.
  • e.g) 명령어 메모리, 데이터 메모리 및 레지스터
  • logic 내부에 state element가 있으면 상태를 갖게 된다.
  • 회로가 저장된 정보를 기억하게 해준다.

Clocks

  • 하드웨어의 작동능력은 clock에 의해 많이 좌우된다. 예를들어 assembler의 instruction 하나에 쓰이는 clock이 똑같이 10개일때 하나의 clock 즉,위의 그림의 Clock period가 짧다면 CPU가 더 수행능력이 좋아 빠를 것이다.
  • 참고로, voltage는 아날로그 신호이지만,0과 1로 나타낸다.

register internals

  • N-bit register(FF+FF+FF......): Flip-Flops 모음이라고 할 수 있다
  • D는 "data input", Q는 "data output"이다
  • D-type Flip-Flop이라고 불리기도 한다.

Digital system

  • CL: combinational logic
  • reg: register
  • combinational Logic이 복잡하면 Clock이 커진다.
  • Clock은 sequential logic elements(register)에만 연결되어 있다.
  • feedback은 application에 따라 선택적이다.

Critical Path

  • critical path는 두개의 register 회로 사이에 가장 오래 걸리는 경로이다.
  • clock period는 critical path보다 길어야 한다. 그렇지 않으면 시그널이 제대로 다음 레지스터에 전달되지 않는다.

0개의 댓글