OR
gate에 feedback을 추가한 경우에서부터 RAM을 거쳐 HDD, SDD까지 다양하다.일정 시간에 맞춰 반복되는 주기적인 펄스를 발생시켜 computer등에서 time 정보를 제공하는 역할
CPU에서 동작 클럭 등이 해당 device가 어떤 빠르기로 동작하는지를 나타내며 동작 클럭을 제공하는 것이 oscillator이다.
* 주로 piezoelectric effect를 이용하는 crystal로 만들어진다. 보다 저렴한 ceramic으로 만들어지는 경우도 있다.
걸쇠라는 뜻으로 자물쇠의 의미를 가진다.
gate를 조합하여 1bit의 정보를 기억하는(걸어두는) 역할을 하는 회로를 뜻한다.
S-R letch
에 대한 이해를 통해 실제 1bit의 정보를 기억하는데 많이 사용되는 flip-flop
을 이해하는 과정으로 배우게 된다. 이 flip-flop은 CPU가 명령어와 데이터를 기억하는데 사용하는 register
로 확장하게 된다.letch
는 주로 high 레벨에서 기억이 이루어지며 flip-flop는 주로 rising edge에서 기억이 이루어지는 버전이 많이 사용된다. OR
latchfeedback 연결과 OR
gate를 이용하여 1bit의 정보를 기억한다는 점에서 가장 간단한 latch이다.
하지만 기억만 가능(정확히는 set)할 뿐 다시 reset할 방법이 없다.
교과서에서만 주로 다루는 latch이다.
AND
-OR
LatchOR
latch의 feedback connection을 OR
에 직접 연결하지 않고 OR
앞에 연결된 AND
에 연결하는 동시에 해당 AND에 을 (reset
입력을 inverter
에 연결)을 입력시켜 reset 기능을 추가한 latch
OR
latch에서 reset이 되지 않는 단점을 보완한 것으로 정보의 기억 및 기억된 정보의 출력, 기억될 정보의 수정이 가능한 가장 간단한 memory이다.
symmetric structure가 아니기 때문에 gate 간의 propagation delay에 취약하다.
S-R
latchAND
-OR
latch를 NAND
와 NOR
로 구현하여 symmetric structure를 가지도록 구현한 것이며 이름의 S
와 R
은 set과 reset을 줄인 말이다.NAND
로 구현되어 있으나 NOR
로 만들 수 있다.S-R
latch를 가르킨다.초기값 관련한 문제가 디지털 회로에서 자주 제기되며 과
이 동시에 activation되는 경우는 사용하지 않는다.
S-R
latchS-R latch
를 확장한 것이며 개념적인 S-R latch
가 아닌 실제 회로 등에서 얘기하는 Latch
는 (특히 synchronous circuit) 이 Gated S-R latch를 가르키는 경우가 많다.OR
을 붙이고 각 OR
에서 과 의 입력을 받고 동시에 각 OR
은 clock이 입력될 동일 입력을 받는 구조이다.Memory는 일정 기간 동안 입력을 받기보다 한 순간의 값을 기억하는 게 유리한 경우가 많다.
특정 시점의 1bit 정보를 기억하는 memory device
latch
는 high level에서 기억이 이루어지지만 flip-flop
에서는 edge(=transition between logic level)로 결정된다.
latch
가 특정 level인 경우 입력을 받아들이므로 해당 level 기간동안 입력이 변경될 수 있다.edge
는 훨씬 짧은 시간동안 입력을 받아들이므로 해당 시간에 입력이 변경될 확률이 latch에 비해 매우 낮다.(flip-flop은 Edge triggered latch라고도 불린다.)flip-flop들을 묶어서 여러 bit를 기억하게 확장한 형태의 register 또는 clock의 rising edge(or positive edge)의 수를 세는 counter로 확장이 된다.
흔히 4가지의 Flip-Flop이 다루어지지만 여기선 가장 널리 사용되는 D flip-flop만을 살펴본다.
Gate로 D Flip-Flop의 구조를 보면 다음과 같다. (S-R latch 3개를 이용함)
Setup Time
과 Hold Time
이라고 부르며 각각의 의미는 다음과 같다.이들과 Propagation Delay를 반영한 Timing Diagram은 다음과 같다.
register와 함께 flip-flop의 대표적인 응용사례이다.
가장 간단한 정의는 다음과 같다.
state
가 반복하여 변화하는 일종의 Register
이다.Oscillator
의 clock pulse를 입력받아 Difital System(computer 포함)에서 Time에 대한 정보를 주는 소자이다.흔히 Counter의 풀력은 Counter의 state
가 된다. oscillator의 pulse train의 주기에 정수배한 주기신호들을 만들어낼 수 있으며 Asynchoronous counter와 Synchoronus counter로 나뉘는데 Synchoronus counter가 사용하기 쉽기 때문에 많이 사용된다.
D flip-flop
의 input 에 가 연결되어 있기 때문에 1로 올라가고 나선 다시 0으로 떨어지게 되며 이를 에 들어오는 signal에 맞춰 반복한다.ripple counter라는 별칭을 가지고 있는데 구성하고 있는 D flip-flop의 출력이 왼쪽에서 오른쪽으로 전달되는 것이 마치 물결이 퍼져나가는 것과 비슷하다는 점에서 유래되었다. 이 별칭에서도 알 수 있듯이 flip-flop에서의 출력이 동시에 이루어지는 게 아닌 출력이 앞에서 뒤로 이어지는 경우이다. 따라서 propagation delay에 취약할 수밖에 없다. 실제로 clock signal이 빠르게 변할 경우 정상적인 동작이 이루어지지 못한다.
Synchoronous란 clock을 공유한다는 뜻으로 HW나 SW나 동기식이 훨씬 제어가 쉽다. 단 일정부분 느려지는 trade-off가 있다.
다음은 Synchoronous counter로서 를 공유하여 모든 flip-flip들이 정확히 같은 시간에 값이 변화하게 된다.
1bit를 기억할 슈 있는 flip-flop들을 여러 개를 묶어서 여러 bit를 기억하도록 만들어진 device로 CPU 내부에 위치하며 ALU 등이 직접 접근하여 사용되는 memory가 바로 Register이다.
가장 빠르고 비싼 memory라고 할 수 있다.
D flip-flop
들을 묶어서 사용하면 8bit register가 가능하다.decoder
와 selector
가 연결된 memory
device가 등장한다.schematic representation
clock
: rising edge에 입력 D
의 값이 Q
에서 출력enable
: 해당 입력이 active여야 register가 동작한다. 여기선 1이어야 한다.reference
1. wikipedia pulse
2.mk docs