들어가며
먼저 클록의 개념을 알고 있는 상태에서 배워야한다.
디지털 논리회로 시간에 배운 클록의 개념은 어렵지않게 이해할 수 있었다.
그렇지만 이러한 클록이 왜 필요한지 의문이 들었다.

내 생각에 위 회로에서 ClockPulse 부분을 항상 1로 두는 것 즉, 아예 없애버린다면 더 빠르게 동작할거 같은데????
그러니까 굳이, 내가 S=1, R=0 을 통해 Q=1 을 설정하기 위해 다음 클록에지를 기다리지않고 그러한 기다리는 시간이 감소된 형태로 속도 측면에서 이득을 얻지 않을까?
이러한 내 생각이 옳은지 확인하고싶었기에 먼저, 클록이 필요한 이유부터 알아야했다.
클록 신호가 필요한 이유
- 동기화: 컴퓨터의 CPU, 메모리, 입출력 장치 등 모든 부품은 서로 정확하게 맞춰져야 합니다. 클록 신호는 이러한 부품들의 동작을 동기화하여 데이터를 정확하게 주고받을 수 있도록 합니다.
- 명령 실행: CPU는 클록 신호에 맞춰 명령을 하나씩 실행합니다. 클록 주파수가 높을수록 CPU는 더 많은 명령을 처리할 수 있으므로 컴퓨터의 성능이 향상됩니다.
- 데이터 전송: 데이터는 클록 신호에 맞춰 버스를 통해 이동합니다. 클록 신호는 데이터 전송의 시작과 끝을 알려주는 역할을 합니다.
그렇다면, Clock Pulse가 없는 상태에서 위 3가지 조건을 만족시킨다면 없어도 상관없을것이다.
동기화란 서로 다른 회로들이 일치하고자 하는 시간대에 동작하는 걸 의미할것이고
명령 실행이란 그저 단순히 입력값에 따른 출력값이 될것이다.
데이터 전송 역시도 그저 단순한 논리값일것이다.
먼저 동기화를 클록 없이 구현할 수 있는가?
간단히 말하면, 현대적인 디지털 회로에서 클록 없이 완벽한 동기화를 이루는 것은 매우 어렵다.
클록 없는 동기화의 어려움
- 데이터 경쟁: 클록 없이 회로를 동작시키면, 데이터가 서로 충돌하거나 예상치 못한 순서로 처리될 수 있다. 이는 데이터 손상이나 오류로 이어질 수 있다.
- 시간 지연: 회로 내 각 부분의 동작 속도가 다르기 때문에, 데이터가 도착하는 시간에 차이가 발생할 수 있다. 이는 데이터 처리 순서에 혼란을 야기할 수 있다.
- 설계 복잡성: 클록 없는 회로를 설계하기 위해서는 매우 복잡한 논리 회로를 구현해야 한다. 이는 회로의 크기와 전력 소모를 증가시키고, 설계 및 검증 시간을 늘릴 수 있다.
또한,
- 비동기 회로: 클록 신호 없이 동작하는 회로를 비동기 회로라고 한다. 하지만 비동기 회로는 설계가 매우 복잡하고, 성능이 낮으며, 검증이 어렵다는 단점이 있다.
- 지연 요소 활용: 일정한 시간 지연을 갖는 논리 게이트를 이용하여 데이터 전송 시간을 조절하는 방법이 있다. 하지만 이 방법은 정확한 시간 지연을 보장하기 어렵고, 온도나 전압 변화에 민감하다.
결론
현재 기술 수준에서는 클록 신호 없이 완벽한 동기화를 이루는 것은 매우 어렵다.
+ 추가된 부분
좀 찾아봤는데 metastablity 를 피하기위해서이네요
클록이 없는 비동기 회로에서
두개의 회로가 flip-flop에 접근할 때 한쪽이 down
다른 한쪽이 up을 보낼떄 중간값을 가지는 신호에 의해 신호가 중간값을 갖게되고 이러한 문제로 인해 소자가 타는 어쩌구 저쩌구
'디지털논리회로' 카테고리의 다른 글
[무어머신 개념정리] 카운터 회로 (0) | 2024.11.30 |
---|---|
디지털논리회로 (2) - 수의 체계 (0) | 2024.06.20 |
디지털논리회로 (1) - 아날로그와 디지털의 차이 (1) | 2024.06.20 |
디지털논리회로(7) - 7장조합논리회로 (1) | 2024.05.01 |