요약
- 섀넌의 정보이론부터 논리 게이트, 튜링 머신, 폰노이만 구조까지 컴퓨터의 정의와 발전
본문
- 정의 : a machine that processes the information
- 정보의 정의: 섀넌의 정보이론(1948년)
- 정보는 어떤 사건의 불확실성을 정량적으로 표현한 것
- 사건 X가 있으면 사건 X의 정보량은 이 사건에 발생할 확률의 마이너스 로그승
ex) 주사위를 던져서 숫자 2가 나올 확률을 다른 사람에게 전달할떄 정보량
- 최소한 정보가 의미 있으려면 사건이 2개가 일어나야함
정보 처리 장치
- 정보를 처리하기 위해선 위에서 기술한 정보의 상태를 변환할 수 있는 물리적 장치가 필요함
- 논리 연산자들
- NOT, AND, OR 등임
- NOT 게이트는 트랜지스터를 통해 만들 수 있음
- NOT, AND, OR을 이용해서 XOR게이트, NAND 게이트, NOR 게이트 6가지 게이트를 만들면 직접회로를 만들 수 있음
- XOR: 같으면 0, 다르면 1
- NAND: NOT + AND
- NOR: NOT + OR
- 직접회로에서 직접도를 높이면 우리가 알고있는 CPU가 됨
간단한 연산의 구현
- 덧셈
- XOR 게이트
- AND 게이트
A ───-┬────────(XOR 게이트)──── S (Sum)
│
├──(AND 게이트)── C (Carry)
│
B ───┘
- 반가산기, 전가산기, 4비트 가산기(리플 캐리 가산기)
- 반가산기: 두 입력을 더하는 회로(두 비트 합(XOR), 자리올림(AND 연산))
- 전가산기: 반가산기에서 확장된 개념으로, 세개의 입력을 더할 수 있음
- 반가산기 2개와 OR 게이트
- 4비트 가산기
- 전가산기 4개를 직렬로 연결해, 4비트 2진수를 더하는 회로
- N개로 확장 가능
- 뺄셈
- 2의 보수 표현을 통해 뺄셈 가능
- 곱셈, 나눗셈도 가산기를 이용해 가능함, for 문도 가능함, 조건문도 가능함
- 3가지 게이트로 다 계산할 수 있음
- 수학적으로 NAND 게이트만으로 기본 논리 연산을 포함한 모든 Bool 연산을 만들 수 있음
- 결국 nand 게이트를 얼마나 조밀하게 집어넣는지가 중요함
현대적 컴퓨터
앨런 튜링 - 튜링 머신
- 1936년, 앨런 튜링(Alan Turing)
- "On Computable Numbers, with an Application to the Entscheidungsproblem"*
- 튜링 머신은 다른 모든 튜링 머신을 시뮬레이션 할 수 있다.
- 어떤 구조를 만족하는 오토마타는 Turing Computable 한 문제를 범용적으로 계산하는데 사용될 수 있다
- 튜링 머신은 헤드와 테이프를 사용하여 기계적으로 계산을 수행하는 모델.
- 컴퓨터 과학에서 이론적으로 계산 가능한 모든 것을 설명하는 모델로 사용됨.
- 무한한 테이프(Tape): 데이터를 저장하는 공간 (무한한 길이)
- 읽기/쓰기 헤드(Head): 테이프에서 데이터를 읽거나 변경
- 상태(State): 현재 기계의 내부 상태
- 전이 함수(Transition Function): 현재 상태와 테이프 기호에 따라 새로운 상태로 전이하고, 테이프를 변경하거나 이동
- 튜링 완전성
- 모든 입력 x에 대해 유한한 시간내에 계산 가능하다.
- 불가능한 문제
- 정지 문제
- 어떤 튜링 머신 M과 입력 x가 주어졌을 때, M(x)가 언제든지 멈출지 아닌지 판별하는 문제
- 주어진 논리식이 항상 참인지 판별하는 문제
- 정지 문제
- 오토마타 이론은 계산 가능성의 경계를 정의한다
폰노이만 - 폰노이만 구조
- 1950년대 폰노이만 => 컴퓨터 아빠
- 폰노이만 아키텍쳐의 주요 개념
- 메모리
- 인스트럭션 셋 아키텍쳐
- 연산 장치
- 버스
- 인스트럭션셋 아키텍쳐를 이용해서 범용 컴퓨터를 만듦
- 프로그램 내장 방식: 내장형 프로그램 방식을 처음 도입한 사람,램에 프로그램을 올린다.
- 하나의 메모리 사용
- 순차적 실행 방식
- CPU가 메모리에서 명령어를 읽고, 해석하고, 실행하는 순서로 동작
- 이전의 컴퓨터들은 특정 연산을 하드웨어적으로 설계 되었음
- 폰노이만 구조를 통해, 소프트웨어만 바꿔서 실행가능하게 됨
프로그램
프로그램은 명령어의 집합
- 프로그램을 작성
- 컴파일
- 어셈블리어
- 이진수
운영체제
- 운영체제는 일종의 프로그램인데, 하드웨어 전체를 컨트롤 하는 프로그램
- 시스템 서비스를 어플리케이션 프로그램한테 제공함
- 프로세스 관리, 리소스 관리, 파일 I/O
- 결국 OS는 디바이스와 어플리케이션 사이의 인터페이스