컴퓨터구조 10-1

BakJeonghyun·2022년 10월 31일
0

전공컴퓨터구조

목록 보기
11/13

03. 실수

개요

  • 실수는 정수 및 연속한 두 정수 사이의 모든 수를 의미

  • 실수는 일반적으로 아래와 같은 과학적 표기법으로 나타냄
    + 6.13 * 10-2

  • 컴퓨터에서 실수를 부동 소수점 수로 표현

  • 실수 V는 다음과 같이 4개의 구성 요소를 사용하여 나타냄
    V = (-1)s M RE

  • s는 부호, M은 가수, R은 기수, E는 지수

  • 2를 기수로 사용하므로 기수를 제외한 나머지 구성 요소로 표현
    | 부호비트 | 지수필드 | 가수필드 |

정규화

  • 부동 소수점 표현 중에서 소수점 왼쪽에 있는 수를 0이 아닌 한 자리 수로 제한

  • 2진법을 사용하는 정규화된 실수는 가수만 2진수로 표현하고, 나머지 지수와 기수는 아래 첨자가 없더라도 10진수로 표현

  • 항상 1이라는 것은 이 정보를 가수 필드에 저장할 필요가 없음

  • 그래도 유효해서 1을 잠복 비트라고 부른다고...하는 듯.?

잠복 비트

  • 2진법에만 잠복비트 사용

IEEE-754 표준

  • 실수를 위해 단일 정밀도(C언어에서 float)와 2배 정밀도(C언어에서 double)라는 두 가지 형식을 제공

  • 단일 정밀도
    V = (-1)s (1.M) 2E-127

예제

C0C0000016

1 10000001 10000000000000000000000 이다.

1 부호 비트

지수 필드 10000001

가수 M 10000000000000000000000
잠복 비트 1. 추가
-> 1.100000000000000000000002

10진수로 표현하면 1.5

지수 E가 100000012 이므로 2(129-127)

따라서 단일 정밀도 표현을 10진법 실수로 나타내면 6.0(?)이다.

예제

부호가 양이므로 부호 비트 s는 0

가수 3의 2진 표현은 112
정규화된 가수 표현은 1.12,
잠복 비트를 제거하면 0.12
따라서 가수 23비트 M은 100000000000000000000002

지수는 1010이지만 가수의 정규화 과정에서 오른쪽으로 1비트 시프트했기 때문에 이를 보정한다
따라서 지숫값은 1110이 되고, 127-초과 코드로 변환하면 138(11 + 127)이다
이를 8비트 2진수로 효현하면 100010102가 된다

0 10001010 10000000000000000000000

범위와 정밀도

  • 범위: 데이터를 표현할 수 있는 최댓값과 최솟값을 의미

  • 정밀도: 두 개의 연속적인 값 사이의 거리를 의미
    근사값과 실제값 간의 차이(?)

  • 정수는 범위만 가지고, 부동 소수점 수는 범위와 정밀도 두 가지 특성을 가짐

  • 지수와 가수의 상호 조정이 필요

    • 고정된 길이의 부동 소수점 표현에서

      • 지수 필드를 위한 비트 수를 증가시키면 표현 범위는 넓어지지만 정밀도가 떨어진다.

      • 가수 필드를 위한 비트 수를 증가시키면 표현 범위는 좁아지지만 정밀도가 놓아진다.

        V = (-1)s M RE

        	- s는 부호, M은 가수, R은 기수, E는 지수
  • IEEE-754 표준: 단일 정밀도, 2배 정밀도

  • 오버플로우와 언더플로우
    표현할 수 있는 최대 범위를 넘으면 오버플로우 발생
    표현할 수 있는 최소 범위를 넘으면 언더플로우 발생

비수치 데이터

BCD

  • 숫자, 알파벳, 특수기호 ~ 6비트
  • 실제로는 오류 검출용 패리티를 위해...

ASCII

  • 8비트
  • 알파벳 1 대 1 대응

유니코드

  • 다국적 알파벳을 포함하기 위해 하나의 문자를 16비트 체계로 구성한다
  • 만국 공통의 국제 문자 부호 체계를 의미

디지털 논리회로

  • 전기적 신호를 0과 1로 표현
  • 이러한 2진 데이터는 논리게이트로...

논리 게이트

  • 일반적으로 2개의 입력단자와 1개의 출력 단자

  • 논리게이트는 기본 하드웨어 소자. 0 또는 1의 신호를 출력

  • (논리곱)AND 게이트 001 010 101 111

  • (논리합)OR 게이트 000 011 101 111

  • (논리 부정)NOT 게이트 01 10

  • (베타적 논리합)XOR 000 011 101 110

  • 기억소자 유무에 따라 조합 논리회로와 순차 논리회로로 분류된다

    • 조합 논리회로: 입력에 의해서만 출력이 결정됨
    • 순차 논리회로: 기억소자를 포함하기 따문에 현재의 입력뿐만 아니라 현재의 내부 상태에 의해 출력이 결정됨

순차논리회로

  • 기억소자가 있기 때문에 상태를 가짐
  • 플립플롭과 같은 기억소자와 조합 논리회로로 구성

조합논리회로

  • 디코더와 인코더

디코더

  • 출력 단자중 하나면 1이고, 나머지는 0을 출력하는 장치

인코더

  • 단 하나의 입력 단자만 1의 신호

멀티 플렉서

  • 입력 단자 중에서 조건에 맞는 하나를 선택하여 단일 출력 단자로 연결하는 조합 회로
  • 어떤 입력단자와 출력단자를 연결할지 선택
    -> 데이터 선택기(date selector) 혹은 줄여서 MUX

디멀티 플렉서

  • DEMUX
  • 하나의 입력단자를 다수의 출력단자와 연결

반가산기과 전가산기

  • 2진수 0과 1을 연산할 때 생기는 올림수를 표현하기 위해 생김

반가산기

XOR x, y -> s
AND x, y -> cout
x y s cout
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

전가산기

피가수와 가수
연산자를 중간에 두고 왼쪽에 있는 수를 피가수, 오른쪽에 있는 수를 가수라고 한다.

레지스터 파일

  • CPU 내부 메인 메모리와 캐시보다 더 빠른 하드웨어
  • 범용 레지스터 집합, 범용 레지스터 파일, 레지스터 파일
  • 순차 논리회로로 구성됨
  • 1비트 단위의 기억소자인 플립플롭을 일렬로 배열한 조합으로 구성
profile
I just got started a blog.

0개의 댓글