-
[Computer Architecture] 2. 데이터의 표현Computer Science/컴퓨터구조 2020. 9. 18. 18:49
※ 1 nibble = 4 bit
※ 8진수는 2진수에서 3자리씩, 16진수는 2진수에서 4자리씩 묶어 변환하여 표현한다.
※ 실수의 소수 부분은 이진수 변환 시 곱하며 해당 값을 계산한다.
# 보수(complement)는 뺄셈과 음수를 실현한다.
- one's complement(1진 보수=1의 보수) : 최댓값(해당 bit에서 가장 큰 표현형) 형성에 서로 보완 관계에 있는 두 수의 관계
ex) A + B = 9, A + B = 99
- two's complement(2진 보수=2의 보수) : Modulus(최대 표현 자리 수) 형성에 서로 보완 관계에 있는 두 수의 관계
ex) A + B = 100 (해석 : 두 자리 수를 표현하기 위한 모든 가지 수, 99(99가지)와 0(1가지)은 서로 2의 보수 관계)
※ 2진수의 1의 보수는 자신의 수를 반대로(0 ↔ 1) 바꾸면 되고, 2의 보수는 1의 보수에 1을 더하면 된다.
# 정수
- 정수는 고정 소수점(Fixed Point Number)이다
- 정수는 맨 왼쪽에 sign bit를 두는 부호화 절대치 방식을 사용하는데 이로 인해 발생하는 -0, 0의 공존 문제를 2의 보수법을 사용하여 극복하였다. -0에 해당하던 숫자는 음수 표현을 하나 더 늘리게 된다.
<2의 보수를 사용했을 때의 표현 범위의 변화> <보수의 표현 예> - 10진수가 연산이 아닌 입출력 용도일 때는 unpacked decimal, 입출력이 아닌 연산 용도일 때는 packed decimal을 사용한다. (이건 문구만 통째로 남긴다... 못 알아듣겠다)
# 실수 표현
- 실수는 부동 소수점(Floating Point Number)이다.
<부동 소수점 도식> # 인간과 컴퓨터의 상호 전환 수 체계 시스템
사람이 익숙한 10진수와 기계에 자주 쓰이는 2/8/16 진수는 다양한 방법으로 상호 변환이 일어난다. 진 이진수는 연산이 가능한 실제 이진수를 의미하며 언급되었듯 연산을 하는 데 사용된다. 반면, 코드화 변환은 BCD 코드 같이 연산이 아닌 입출력에만 사용되는 변환 형태이다. 또한, 정수 및 실수를 포괄할 수 있는 형태로 변환하기도 한다.(ex. 1011.0101)
# 논리 게이트 (Logical gate)
논리 연산의 기본 표현으로 AND, OR, NOT, XOR(Exclusive OR)이 있다.
<논리 게이트 심볼> <논리 게이트 대수식> <논리 게이트 진리표> # 논리식을 간단히 만들 수 있는 방법
1. 부울 대수 (Boolean Algebra)
1854년 영국 수학자 부울(G. Boole )이 만든 논리적 명제를 수학적 식으로 표현하는 수학 이론이다. 진리표를 간략화하여 논리 회로의 형태와 구조를 기술할 수 있으며 동일한 성능의 더 간단한 회로를 만드는데 용이하다.
논리 연산은 ① 교환 법칙, ② 결합 법칙, ③ 분배 법칙(ex. A(B+C) = AB + AC), ④ 드모르간의 법칙(ex.
<부울 대수를 통한 논리 연산 간략화> 2. 카노(Karnaugh) 맵
여러 가지 법칙을 통해 논리 표현식을 간단히 만드는 부울 대수를 더욱 곧바로 간소화시키는 방법이다. 2ⁿ 개의 민텀(minterm)으로 카노 맵을 구성해 간소화한다.
<카노 맵의 표현 방법> <카노 맵을 사용한 부울식 간편화> → 이런 논리식 간편화를 통해 우리는 조합논리회로를 만들 수 있고, 여러 개의 플립플롭(기억회로, 1비트를 기억할 수 있는 장치)을 묶어 만든 레지스터와 함께 컴퓨터 구조(순차회로)를 만든다.
∴ 우리의 목표는 조합논리회로와 기억회로(플립플롭)가 조화롭게 어우러진 순차회로를 만드는 것!
# 조합논리회로의 설계
- 조합논리회로의 설계 절차
① 문제 제시 → ② 입력 및 출력 변수 설정 (ex. a b c) → ③ 입력과 출력 사이의 관계를 정의하는 진리표 유도
→ ④ 출력에 대한 간소화된 부울 함수 획득 → ⑤ 논리도 작성
- 대표적인 조합논리회로
1. 가산기(Adder) : 두 개 이상의 입력을 받아 결과물을 출력하는 조합 논리 회로
· 반가산기(Half Adder) : 캐리 비트는 처리하지 못함.
· 전가산기(Full Adder) : 두 개의 반가산기를 붙여서 캐리 비트까지 처리하게 만든 회로
2. 멀티플렉서(Multiplexer) : 다수의 입력 중 하나만을 선별적으로 출력 가능하게 해주는 조합논리회로
3. 디멀티플렉서(Demultiplexer) : 하나의 입력 값을 다수의 출력으로 분해하는 기능
# 기억회로의 구성 및 작동 원리
- 플립플롭(Flip-Flop) 종류
ex) SR flip-flop(R-S Latch에 clock이 포함된 것), D flip-flop, JK flip-flop, T flip-flop 등이 존재
본 포스팅은 이승주 강사님의 패스트캠퍼스 컴퓨터 공학 전공 필수 올인원 패키지 Onlne
Part 4. 컴퓨터 구조 강의 내용을 듣고 정리한 내용을 담고 있습니다.
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
[Computer Architecture] 1. 컴퓨터 시스템의 이해 (0) 2020.09.04