디지털 컴퓨터
디지털 컴퓨터는 0과 1의 두 개로 숫자만을 사용하는 이진수 시스템이다.
하나의 이진숫자를 bit라고 부르며, 디지털 컴퓨터에서 정보는 비트들의 그룹으로 표현한다.
비트 그룹을 통해 숫자와 문자등을 표현한다.
컴퓨터는 주로 하드웨어와 소프트웨어의 두 부분으로 나뉜다.
- 하드웨어는 전자부품과 주변 장치를 구성하는 전자기적 부품이다.
- 소프트웨어는 컴퓨터의 다양한 정보처리 작업을 수행하는 명령어와 데이터들로 구성된다.
논리 게이트
디지털 컴퓨터에서 이진 정보는 물리량인 전압 신호를 이용하여 0과 1로 표현된다.
이진 정보의 처리는 게이트(gate)라 불리는 논리 회로에서 행해진다.
게이트는 입력 논리의 필요조건을 만족할 때 1 또는 0의 신호를 만드는 하드웨어의 블럭이다.
각 게이트는 기호가 다르고 그것의 동작은 대수 함수의 방법으로 표시된다.
Name | Graphic symbol | Algebraic function | Truth table |
AND | x = A * B or x = AB |
||
OR | x = A + B | ||
Inverter | x = A' | ||
Buffer | x = A | ||
NAND | x = (AB)' | ||
NOR | x = (A + B)' | ||
Exclusive-OR (XOR) | x = A ⊕ B or x = A'B + AB' |
||
Exclusive-NOR or equivalence | x = (A ⊕ B)' or x = A'B' + AB |
[이미지 출처] https://en.wikipedia.org/wiki/Logic_gate
부울 대수
부울 대수는 이진 변수와 논리 동작을 취급하는 대수이다.
EX) F = x + y'z
부울 대수의 목적은 디지털 회로의 해석과 설계를 쉽게 하는 데 있다.
(1) x + 0 = x (3) x + 1 = 1 (5) x + x = x (7) x + x' = 1 (9) x + y = y + x (11) x + (y + z) = (x + y) + z (13) x(y + z) = xy + xz (15) (x + y)' = x'y' (17) (x')' = x |
(2) x * 0 = 0 (4) x * 1 = x (6) x * x = x (8) x * x' = 0 (10) xy = yx (12) x(yz) = (xy)z (14) x + yz = (x + y)(x + z) (16) (xy)' = x' + y' |
De Morgan 정리
논리 연산에서 논리합은 논리곱과 부정기호로, 논리곱은 논리합과 부정기호로 표현할 수 있음을 가리키는 법칙이다.
not (A or B) = (not A) and (not B)
not (A and B) = (not A) or (not B)
맵의 간소화
진리표로부터 논리 표현식을 얻게 된다.
논리표현식은 부울 대수를 사용해서 간단히 만들 수 있으나 여러 가지 규칙이 있다.
맵(Map) 방법은 부울 함수를 곧바로 간소화할 수 있다.
진리표에서 변수의 각 조합을 minterm이라 한다.
[K-map(카르노 맵)에 대한 사이트] https://en.wikipedia.org/wiki/Karnaugh_map
진리표에서 출력 F가 1이 되는 minterm만을 뽑으면 SOP(sum of products)을 유도할 수 있다.
논리합의 논리곱 (POS)
이전에 유도한 부울 함수는 SOP(sum of products) 즉, 논리곱의 논리합이다.
다만 경우에 따라 POS(product of sums) 논리합의 논리곱을 사용하는 것이 유리할 때가 있다.
이러한 경우 함수가 0이 되는 minterm에 0을 넣고 인접한 0을 크게 묶는다.
F'를 구할 수 있는데 이때 De Morgan 정리에 의하여 F = (F')'을 얻는다.
Don't care 조건
map에 minterm 구역에는 0 또는 1이 들어가는데, minterm 이 0 또는 1이 되는 것과 관계없이 같은 함숫값을 가지는 경우가 있다.
이런 don't care를 맵에서는 X로 집어넣고 간소화시키기 위하여 묶는데 편히라도록 이를 편의에 따라 1 또는 0으로 본다.
묶는데 유리한 방향으로 생각하면 된다.
조합 회로
조합 회로는 입력과 출력을 가진 논리 게이트의 집합이다.
반가산기
반가산기(half-adder)는 비트 두 개를 가산하는 조합회로이다.
두 개의 비트를 x, y라 할 때 가산을 위한 논리 표현식은 다음과 같다.
S : Sum
C : Carry
S = x'y + xy' = x ⊕ y
C = xy
전가산기
전가산기(full-adder)는 비트 두 개와 밑에서 올라오는 Carry까지 고려한 비트 세 개의 가산 조합회로이다.
두 개의 반가산기로 구성된다.
S = x ⊕ y ⊕ z
C = xy + (x ⊕ y)z
[가산기에 대한 사이트] https://en.wikipedia.org/wiki/Adder_(electronics)
플립플롭
플립플롭은 한 비트의 정보를 저장하는 이진 셀이다.
플립플롭은 입력 펄스가 상태 변환을 일으키기 전까지 이진 상태를 그대로 유지한다.
입력이 이진 상태에 영향을 미치는 방식에 따라 여러 종류로 분류할 수 있다.
SR flip-flop
Characteristic table
S R Q(t + 1) 0 0 Q(t) No change 0 1 0 Clear 0 1 0 1 Set to 1 1 1 ? Indeterminate
Excitation table
Q(t) Q(t + 1) S R 0 0 0 x 0 1 1 0 1 0 0 1 1 1 x 0
JK flip-flop
Characteristic table
J K Q(t + 1) 0 0 Q(t) No change 0 1 0 Clear 0 1 0 1 Set to 1 1 1 Q'(t) Complement
Excitation table
Q(t) Q(t + 1) J K 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0
D flip-flop
Characteristic table
D Q(t + 1) 0 0 Clear 0 1 1 Set to 1
Excitation table
Q(t) Q(t + 1) D 0 0 0 0 1 1 1 0 0 1 1 1
T flip-flop
Characteristic table
D Q(t + 1) 0 Q(t) No change 1 Q'(t) Complement
Excitation table
Q(t) Q(t + 1) T 0 0 0 0 1 1 1 0 1 1 1 0
['Mano의 컴퓨터시스템구조 제 3판' 을 공부하며 작성한 내용입니다.]