본문 바로가기

[Chapter 3] 순차 칩 (Sequential Chip)

 

 

 

 

 

(밑바닥부터 만드는 컴퓨팅 시스템 2판, 인사이트(insight), 2023)을 학습하고 개인 학습용으로 정리한 내용입니다.

 

 

 

 

  • 데이타 플립-플롭(data filp-flop, DFF)

DFF는 Chapter 3에서 소개하는 순차 칩 중 가장 기초적인 칩이다.

DFF 입력에 1-bit 값을 넣으면 DFF의 상태가 이 값으로 설정되고, 다음 시간 단위에 이 값을 출력한다.

아래 그림에서 첫 번째 주기(Time 1)에서는 이전 주기 입력이 없으므로 DFF 출력이 없다. 그 뒤로는 이전 시간 입력이 현재 시간의 출력이 된다.

입력 : in

출력 : out

기능 : out(t+1) = in(t)

 

 

 

  • 1-bit 레지스터(register)

1-bit 정보(0 또는 1)를 저장한다.

 

 

  • 16-bit 레지스터(register)

16-bit 값을 처리한다는 점을 제외하고는 1-bit 칩과 동일하다.

입력 : in[16], load

출력 : out[16]

기능 : if load(t) then out(t+1) = in(t)

          else                out(t+1) = out(t)

 

 

 

  • 임의 접근 메모리(Random Access Memory, RAM)

n개의 register로 구성된다.

RAM은 각 레지스터마다 특정 주소를 할당하고, 이 주소를 이용해 레지스터를 읽고 쓴다. 또한 선택된 메모리 레지스터에 접근하는 시간이 즉각적이고, RAM의 크기나 레지스터 주소와는 무관한다.

 

입력 : in[16], load, address[k]  ( \(k = log_{2}n \) )

출력 : out[16]

기능 : out은 address로 지정된 메모리 위치에 저장된 값을 출력한다.

          만약 load ==1 이면, address로 지정된 메모리 위치의 값이 in으로 설정된다.

          불러온 값은 다음 시간 단위부터 out으로 출력된다.

 

 

 

  • 프로그램 카운터(program counter, pc)

매 시간 단위마다 값을 1씩 증가시킨다.

 

입력 : in[16], load, inc, reset

출력 : out[16]

기능 : if reset(t)       then out(t+1) = 0

          else if load(t) then out(t1) = in(t)

          else if inc(t)   then out(t+1) = out(t) + 1 (정수 덧셈)

          else                       out(t+1) = out(t)

 

pc를 제대로 활요하려면 load, inc, reset 중 하나 이상은 활성화되어야 한다.

  load inc reset
PC 재설정 0 0 1
매 시간 단위마다 +1 0 1 0
PC 값을 in으로 설정 1 0 0