Rad Blog

Archive

컴퓨터의 역사, 보수연산, 부동소수점

스스로 학습한 내용을 기록합니다.


컴퓨터의 기원

  • 어원 : Compute, 어원적 의미 : 계산을 하기 위한 도구, 굳이 형태로 따지자면 주판 정도
  • 최초의 컴퓨터 : 포탄, 미사일의 복잡한 탄도를 빠르고 정확하게 계산하기 위한 목적으로 만들어짐
  • 1939년 콜로서스 : 독일의 에니그마, 통신 암호체제에 대응, 앨런 튜링 발명
  • 앨런 튜링 : 동성애자, 1936년 베를린 올림픽 손기정 선수 출전시 같이 뜀, 영국 동성애 금지법에 의해 화학적 거세를 당한 후 독을 주입한 독사과를 스스로 먹고 자살, 1935년, 괴델의 정리를 바탕으로 튜링 증명
  • 1946년 애니악 : 제 2차 세계대전(1939.09.01~1945.09.02)중에도 끝내 만들어지지 못하고, 끝난 뒤 만들어짐. 탄도 계산 목적, 집채만한 크기, 안정성 문제
  • 이후 애드박, 애드삭(Electronic delay storage automatic calculator → 스토리지 개념 사용), 군사적 통계와 탄도 계산 목적
  • 1946년 폰 노이만 아키텍쳐 : 지금 CPU의 내장형 프로그램을 처음 고안한 것 (일화, 시대의 천재, 아이큐 250-300추정, 오른쪽에서 네번째자리수가 7인 2의지수중 가장 작은것?2의 21승, 그 외에도 무한급수 문제 있으나 생략)

컴퓨터 세대

  • 1세대 (1951-1958): 연산 속도는 MS(밀리 세컨드), 주기억장치로 자기드럼 사용됨, 진공관 소자, 고장과 발열 문제로 관리 및 운용이 힘듦
  • 2세대 (1958-1963): 연산 속도 MS(마이크로 세컨드), 트랜지스터 소자, 운영체제 개념 도입, 주기억장치로 자기드럼을, 보조기억장치로 자기디스크 사용
  • 3세대 (1964-1970): 연산 속도 NS(나노 세컨드), IC소자, 다양한 입출력 등장으로 인간과 상호작용이 시각적으로 가능해짐
  • 4세대 (1971-1983): 초대형 컴퓨터 기준 연산속도 Pico 단위, LSI 소자(Large Scale Intergration), 인터넷 등장

하드웨어 종류

  • 입/출력장치, 중앙처리장치(CPU), 기억장치

보수 연산

  • 1의 보수 : 2진수 거꾸로
  • 2의 보수 : 2진수 거꾸로 후 1 더함
  • 1의 보수 뺄셈 : 자리올림(가장 좌측)이 생기면 나중에 1을 더함, 안생기면 부호로서 (-)를 붙여줌
  • 2의 보수 뺄셈 : 자리올림이 생기면 1을 제외(자리올림 제외), 안생기면 부호로서 (-)를 붙여줌

부동소수점

  • 고정소수점은 32비트의 공간에서 정수를 16비트, 소수를 16비트 저장
  • 부동소수점은 소수점 위치를 나타내는 수를 따로 적는 방식 (IEEE 754 방식)
  • 부호, 지수, 가수로 나뉘어짐. 지수는 소숫점 위치를 나타내고, 가수는 유효숫자.
  • 정수부 2진수 변환, 소수부 2진수 변환하여 합침 → 소수점을 왼쪽으로 이동시켜 1 하나만 남도록 하고 이동한 횟수를 기억 → 소수점을 이동시켜 만든 수를 정규화 된 부동 소수점 수라고 함. 뒤에 공간이 남으면 0을 삽입하고, 공간이 부족하면 잘리게 되므로 이 경우 오차가 발생할 수 있음.
  • 지수부는 8bit로 표현할 수 있고 0~255까지이지만 지수는 음수를 지원하며 지수가 음수가 될 수도 있기에 -128~+127이 범위가 됨. 소수점이 왼쪽으로 이동한 횟수에다가 가장 중간값인 127( = 기준이 되는 지수값(Bias))를 더한 값이 최종 지수값이 됨.
  • 부동소수점 10진수로 되돌리기 : 각 자릿수에 가중치(2^n)을 곱하며 이 가중치는 자릿수가 소수인 경우 2의 -1승, -2승의 형태로 이루어짐. ex) 1.01101101 × 2^5 → (1x2^5) +(0x2^4)+(1x2^3)+(1x2^2)+(0x2^1)+(1x2^0)+(1x2^-1)+(0x2^-2)+(1x2^-3) 단, 순환소수의 경우 근사값을 구하게 되고 오차가 발생

부동소수점 간의 연산

  • 덧셈과 뺄셈 : 두 수의 지수를 큰 쪽에 맞추어 같게 조정하고 가수에 대해 덧셈과 뺄셈을 하고, 가수를 정규화 하고 이에 맞게 지수를 조정함. ex ) (1.0101 × 2^2) + (1.0010 × 2^3)의 경우, (0.10101 × 2^3) + (1.0010 × 2^3) → 가수를 서로 더함 → (1.11001 × 2^3)
  • 곱셈 : 가수끼리 곱하고, 지수끼리 더한 후 가수를 정규화. ex) (1.0101 × 2^2) × (1.0010 × 2^3)의 경우, 가수끼리의 곱은 1.01111010이며, 지수는 5. → (1.01111010 × 2^5)
  • 나눗셈 : 가수끼리 나누고, 지수끼리 뺀 후 가수를 정규화
comments powered by Disqus