Computer Science/컴퓨터구조

[Computer Architecture] 2. 데이터의 표현

Lucian_Cho 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. 컴퓨터 구조 강의 내용을 듣고 정리한 내용을 담고 있습니다.