bool algebra는 0과 1 두 가지 값으로 한정된다. 하지만 실제 회로에서는 X, Z라는 기호로 표시되는 값을 가질 수 있다. 이 값들에 대해 알아보자.
1. X: 금지된 값
X는 회로의 노드가 알려지지 않은 값이나 금지된 값을 가지고 있음을 나타낸다. 보통 0과 1이 동시에 들어올 때 발생한다. 이러한 상황을 contention이라고 부르며 오류로 간주되어 반드시 피해야 한다.
contention이 발생한 노드의 실제 전합은 0과 V 사이 어딘가에 위치한다. 이 영역은 대부분 금지되어 있다.
또한, contention은 contention이 발생한 게이트(아래 그림에서는 A와 B) 사이에 큰 power flow를 유발한다. 이 때 회로가 뜨거워져 손상을 입게 될 수 있다.
X 값은 circuit simulator에서 초기화되지 않은 값을 나타내기 위해 사용된다.
또한, truth table에서 무정의 값("don't care" value)를 나타내기 위해 X를 사용하는데, 이를 회로에서의 X와 혼동하지 않도록 주의해야한다.
2. Z: 부동 값
Z는 HIGH, LOW 그 어느것도 받지 못한 노드를 나타낸다. 흔히들 이러한 노드가 logic 0과 동일하다고 오해하지만, floating node는 system의 과거 이력에 따라 0, 1, 0과 1 사이 어딘가 일 수도 있다.
floating node는 항상 회로의 에러가 있음을 의미하지는 않는다. 어떤 다른 요소가 이런 floating node를 유효한 논리 수준으로 동작하게 할 수 있기 때문이다.
floating node를 만드는 방법은 circuit input에 전압을 연결하는 것을 잊는 것이다. 혹은, unconnected input이 0을 입력했을 때와 같다고 생각하고 회로를 설계하는 것이다. 이러한 실수는 flating input이 랜덤하게 변화하는 에러를 유발한다.
tristate buffer는 HIGH, LOW, floating(Z)의 3 가지 output states를 갖는다. tristate buffer에는 input A, output Y 말고도 enable E가 존재한다. enable이 TRUE일 때 tristate buffer는 simple buffer처럼 행동한다. 하지만 enable이 FALSE일 때 output은 Z가 된다.
tristate buffer는 주로 다수의 chip을 연결하는 bus에서 사용된다. 각각의 chip은 tristate buffer를 사용해 shared memory bus에 연결될 수 있고, 한번에 오직 하나의 chip만 bus에 값을 보내는 enable signal을 허가받는다. 다른 chip들은 floating output을 만들어야 하고, 따라서 chip이 memory와 통신할 때 contention이 일어나지 않게 한다. 또한 모든 chip이 shared bus에서 언제든 정보를 읽을 수 있다.
이런 tristate busses는 한때 흔했지만, 요즘은 더 빠른 속도가 가능한 point-to-point link를 사용한다.
'Computer > 디지털시스템' 카테고리의 다른 글
[논리회로] 순차 논리회로 (Sequential Logic Circuit) (2): Latch (1) | 2024.06.06 |
---|---|
[논리회로] 순차 논리회로 (Sequential Logic Circuit) (1) (0) | 2024.06.06 |
[논리회로] 조합 논리회로 (Combinational Logic Circuit) (2): boolean equation, boolean algebra (1) | 2024.06.06 |
[논리회로] 조합 논리회로 (Combinational Logic Circuit) (1) (0) | 2024.06.05 |