etc/책 리뷰

[책] 컴퓨터 아키텍처 - 05. 데이터와 디지털 논리 회로

hojak99 2019. 3. 15. 18:31

데이터와 디지털 논리 회로

데이터의 개요

컴퓨터는 제한된 데이터 형식만 구현하여 사용한다.

데이터의 종류

  • 수치 데이터 : 고정 소수점으로 표현되는 정수와 부동 소수점으로 표현되는 실수.
  • 비수치 데이터 : 모든 문자, 기호, 한글 등을 코드로 나타낸 것.

데이터의 형식

  • 데이터 형식 : 컴퓨터에서 제공하는 명령어 집합으로 연산할 수 있는 정보의 표현.

간단한 데이터 형식으로 정수, 불리언, 문자, 부동 소수점 등이 존재. 복잡한 데이터 형식은 문자열, 배열, 벡터, 집합, 레코드, 스택, 큐 등이 존재.

데이터와 진법

컴퓨터는 데이터를 2가지 상태로만 표현할 수 있어 2진법을 사용함.

모든 프로그램 코드나 데이터가 2진법 형식으로 저장되며 이 2진법은 정수, 실수, 문자와 같은 데이터 뿐만 아니라 명령어도 될 수 있고, 그래픽 이미지나 동영상도 될 수 있다.

정수

정수는 고정 소수점 수라고 부른다. 정수는 컴퓨터 시스템에서 그 범위가 유한하다. n 비트 정수의 경우 2의 n제곱 개의 패턴만 사용하기 때문.

무부호 정수의 표현

  • 무부호 정수 : 0과 양의 정수만 포함하는 정수
  • 유부호 정수 : 무부호 정수에서 음수까지 포함할 경우.

진수 관련 내용은 책 참고

유부호 정수의 표현

k 비트로 유부호 정수를 표현하려면 2의 k제곱개의 표현 가능한 수에서 0을 제외한 2의 k제곱 - 1 개의 절반을 양수, 나머지 절반을 음수로 나타내면 된다.

이 때 2의 k제곱 - 1개는 홀수로 양분될 수 없기 때문에 양수와 음수의 개수가 비대칭이 될 수 밖에 없다.

4비트로 구성된 유부호 정수의 표현 방식으로 부호-크기 방식, 2의 보수, 1의 보수 방식 등이 존재한다.

부호-크기 방식

MSB 를 부호 비트로 사용하고, 나머지 비트는 크기로 사용함. MSB 가 0일 경우 양수, 1일 경우 음수를 나타냄.

하지만 부호를 별도로 점검해야 하며 2개의 0이 존재한다. (+0, -0) 그리고 32비트로 구성된 워드는 MSB 를 부호 비트로 사용하고 나머지는 크기로 사용하기 때문에 -2의 31제곱 - 1 부터 +2의 31제곱 - 1을 표현할 수 있다.

1의 보수 방식

  • 1의 보수 방식 : 음수를 표현하기 위해 각 비트를 0과 1사이에 상호 반전하는 것.

1의 보수 방법의 장점 및 단점은 부호-크기방식처럼 양수 및 음수 전환이 유용하나 2개의 0을 포함하고 있다는 것이다.

2의 보수 방식

  • 2의 보수 방식 : 1의 보수 방식과 동일하나 -0이란 표현은 없고 음의 정수는 1의 보수 방식보다 1을 크게 표현한다.

32비트로 구성된 2의 보수 방식은 부호-크기 방식이나 1의 보수 방식과 달리 -2의 31제곱 부터 +2의 31제곱 - 1 을 표현할 수 있어 이보다 크거나 작을 경우 오버플로우가 발생함.

7-초과 코드 방식

초과코드는 실제 수에 어떤 수만큼 더해서 표현하는 방식으로, 바이어스된 수라고도 한다.

그래서 7-초과 코드 방식은 실제 수에 7을 더하여 표현하는 것이다. 초과 코드는 다른 표현 방식과 달리 부호비트라는 것이 없다

2의 보수 방식의 대중성

자세한 내용은 책을 참고

2의 보수 방식은 비대칭형 표현으로 완전성을 만족하지 못한다. (모든 음수를 역부호화를 할 수 없기 떄문) 그러나 0에 대한 표현의 유일성이 범위의 대칭성보다 더 중요하기 때문에 대부분의 아키텍처는 2의 보수 방식을 사용한다.

실수

실수에 대한 연산을 SW 로 수행하면 너무 느리고, 하드웨어로 구현하면 많은 칩 면적이 필요하다. 하드웨어 기술이 발전하여 동일한 프로세서 칩에 정수, 실수 연산을 위한 하드웨어를 배치하고 있다.

실수의 개요

  • 실수 : 정수 및 연속한 두 정수 사이의 모든 수

실수는 일반적으로 부호, 가수, 10진 소수점, 기수, 지수로 표현된다.

컴퓨터에서는 실수를 부동 소수점 수로 표현하며, 실수 V 는 4개의 구성 요소를 사용하여 나타낸다.

V = (-1)의 S 제곱 X M X R 의 E제곱

// S 는 부호
// M 은 분숫값인 가수
// R 은 기수
// E 는 지수

정규화와 잠복 비트

부동 소수점은 하나의 실수가 무한한 방법으로 표현된다는 문제점이 있다. 즉, 하나의 실수에 대한 고유한 표현이 없다.

0.0001 X 10
0.001 x 10의 0제곱
0.01 X 10 의 -1 제곱
0.1 X 10 의 -2 제곱

이와 같은 부동 소수점 표현을 비정규화 수라고 한다.

어떤 수에 대해 고유한 표현 방식이 없다면 컴퓨터가 수를 처리하는 혼란이 생기기 때문에 보통 제약을 걸어놓는다. 일반적으로 소수점 왼쪽에 있는 수를 0이 아닌 한 자리 수로 제한한다.

이와 같은 부동 소수점 수를 정규화 수라고 한다.

하지만 주어진 실수에 소수점 왼쪽의 정숫값이 0이거나 1비트를 넘으면 비정규화 수가 되기 때문에 시프트 여산을 통해 소수점을 이동해야 한다. 하지만 소수점 왼쪽의 0이 아닌 1비트의 수는 1뿐이므로 왼쪽 비트는 항상 1이다. 항상 1이라는 것은 가수 필드에 저장할 필요가 없을 의미하기 때문에, 가수 필드에 없지만 사용할 수 있는 1개의 유효비트를 잠복 비트라고 한다.

잠복 비트를 사용할 경우 0을 표현할 수 없다는 문제가 발생한다.

IEEE-754 표준

부동 소수점 형식에 대한 표준안인 IEEE-754 를 개발하여 이를 대부분의 컴퓨터에서 사용한다. 해당 표준안에는 부동 소수점 연산의 소프트웨어, 하드웨어 구현 모두에 대해 유효할 뿐만 아니라발생할 수 있는 라운딩, 오버플로우, 언더플로우 및 여러가지 예외 사항도 다루고 있다.

자세한 내용은 책 참조

범위와 정밀도

  • 수치 데이터 형식
    • 영역
      • 범위 : 데이타를 표현할 수 있는 최댓값과 최솟값. 지수를 위한 유효 자릿수에 좌우됨
      • 정밀도 : 2개의 연속적인 데이터 값 사이의 거리 (정수에는 미포함). 기수를 위한 유요 자릿수에 좌우됨
    • 연산

고정된 길이의 부동 소수점 표현에서 지수 필드와 가수 필드의 크기를 변화시키면 다음과 같은 영향이 있다.

  • 지수 필드를 위한 비트 수를 증가시키면 표현 범위는 넓어지나 정밀도가 떨어짐.
  • 지수 필드를 위한 비트 수를 증가시키면 표현 범위는 좁아지나 정밀도가 높아짐.

자세한 내용은 책 참조

비수치 데이터

비수치 데이터는 주로 데이터의 입력 및 출력을 위해 사용되기 때문에 외부적 표현이라고 한다.

BCD 코드

  • BCD 코드 : 2진화 10진 코드라고도 불리며 숫자, 알파벳, 특수 기호를 나타내기 위해 6비트로 구성된 코드이다. 실제로는 오류 검출용 패리티를 위한 1비트를 포함하여 7비트로 구성된다.

자세한 내용은 책 참조

ASCII 코드

미국 정보 교환 표준 부호(ASCII)는 미국국립표준 연구소가 제정한, 알파벳을 사용하는 대표적인 문자 코드이다.

ASCII 코드는 128 개의 가능한 문자 조합을 제공하는 7비트 부호지만 1비트의 패리티가 추가된 8비트 코드가 주로 사용된다.

자세한 내용은 책 참조

유니코드

유니코드는 다국적 알파벳을 대부분 포함하기 위해 하나의 문자를 16비트 체계로 구성한 코드로서 만국 공통의 국제 문자 부호 체계를 의미한다.

디지털 논리회로

컴퓨터는 모든 데이터를 0과 1의 조합으로 표현하고 처리한다. 이 때 0과 1로 표현되는 2진 데이터는 논리 게이트라는 디지털 논리화로로 처리된다.

논리 게이트

디지털 논리회로는 일반적으로 2개 이상의 입력 단자와 1개의 출력 단자를 가진 논리 게이트의 조합으로 구성된다. 눈리 게이트는 논리회로의 기본 하드웨어 소자이며, 입력논리의 필요 조건을 만족할 때 0또는 1의 신호를 출력한다.

기본 연산으로 논리곱(AND), 논리합(OR), 논리 부정(NOT), 배타적 논리합(XOR) 등이 있다.

조합 논리회로와 순차 논리회로

디저털 논리회로는 조합 논리회로와 순차 논리회로로 분류된다.

조합 논리회로는 현재의 입력에 대해서만 출력이 결졍되고 기억소자를 포함하지 않는다. 순차 논리회로는 기억소자를 포함하기 때문에 현재의 입력뿐만 아니라 현재의 내부 상태에 의해 출력이 결정된다.

기본적인 논리 게이트 표는 책 참조

조합 논리 회로는 기본적인 논리 게이트의 조합으로 구성될 수 있어 대표적인 조합 논리회로는 가산기, 비교기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서 등이다. 순차 논리 회로는 기억소가가 있기 때문에 상태를 가지고 있으며 플립플롭과 같은 기억소자와 조합 논리회로로 구성되며 기억소자는 궤한을 형성하여 조합 논리회로와 열결되어 있다. 또한 클록 신호 여부에 따라 동기, 비동기식으로 구성된다.

책 참조

디코더와 인코더

  • 디코더 : 해독기라고도 함. 출력단자 중 하나만 1이고 나머지는 0을 출력함.

    • 입력 신호를 감지한 후 입력 신호의 패턴에 대응하는 출력단자 활성.
  • 인코더 : 디코더와 반대되는 동작 수행. 입력단자가 다수이지만 하나의 입력단자만 1의 신호이며, 출력 단자는 입력 단자에 대응하는 코드를 출력.

자세한 내용 책 참조

멀티플렉서와 디멀티플렉서

  • 멀티플렉서 : 다중화기라고도 불림. 다수의 입력 단자 중에서 조건에 맞는 하나를 선택해 단일 출력 단자로 연결하는 조합회로.

    • 다중 입력 신호를 하나만 출력하므로 데이터 선택기(data selector), 줄여서 MUX 라고도 함.
  • 디멀티플렉서 : DEMUX, 역다중화기, 데이터 분배기라고도 함. 하나의 입력 단자를 다수의 출력 단자로 연결하는 조합회로이다.

자세한 내용 책 참조

반가산기와 전가산기

  • 반가산기 : 1비트 단위의 피가수와 가수를 더하여 2비트의 결과를 생성하는 조합 논리회로.

    • 1비트만 더하므로 하위 비트에서 발생하는 올림수를 고려하지 않아 2비트 이상의 2진수 덧셈 수행 못함
  • 전가산기 : 하위 비트에서 발생하는 올림수를 포함하여 덧셈 연산을 수행하는 조합 논리회로.

자세한 내용 책 참조

레지스터 파일

책 잠조


반응형