3 분 소요

컴퓨터 구조

컴퓨터의 구조를 익히는 중, 챕터 별로 중요한 개념을 복습하기 위해 정리한 문서.

컴퓨터 구조 개론

컴퓨터의 발전 역사

시대별 컴퓨터의 발전 역사를 HW와 SW 중심으로 살펴보는 챕터.

  • 신체를 이용한 계산 (초창기)
  • 전자식 컴퓨터 시작 (1940)
  • 개인용 컴퓨터 시대 (1980)
  • 인터넷 시대 (1990)
  • 인공지능 시대 (2000)

신체와 작은 도구를 이용한 계산

지금 우리의 컴퓨너틑 전기를 사용하는 전자식 컴퓨터. 전자 흐름과 차단으로 0과 1을 표현하는 것이다.

초창기엔 손가락, 돌멩이와 막대기 등을 이용해 셈을 했을 것이다. 이후 막대기에 돌멩이를 끼운 주판이 나타났고,

  • 한국식 주판은 10진법 (5진법과 10진법 동시 사용)
  • 중국식은 16진법이다.

여기까진 사람이 계산하는 수동식 계산기였다.


기계식 계산기

파스칼(사람)이 톱니 바퀴를 이용한 계산기 제작. 라이프니츠(사람)가 2진법을 이용한 4칙연산기도 개발하였다. 배버지(사람)는 다항 함수 계산 가능한 기계식 계산기 [차분 기관 / 해석 기관] 을 설계했다.

  • 톱니바퀴 제조가 어려워 기계 완성은 못했다.

이후 천공 카드가 개발되어, 이를 기반으로 공학용 도표 작성기 개발하였다.


전자식 컴퓨터

세계 최초 전자식 컴퓨터는 에니악이 아닌 ABC다.

에니악은 2차 세계대전 중 탄도 계산을 위해 개발되었고, 프로그램을 배선판에 일일이 배선하는 외부 프로그래밍 방식이다. 10진수 사용하며, 기존 기계식 계산기보다 1,000배 빨랐다.

참고로 에니악은 다용도 전자식 컴퓨터다.

다용도 컴퓨터: 특정 목적 계산이 아닌, 다양한 계산 수행 가능. 그러니까 프로그래밍 가능하다는 뜻.

내장형 프로그래밍?

컴퓨터의 종류

컴퓨터 부팅 과정

컴퓨터 구조 개괄

컴퓨터 내부의 데이터 표현

진법 계산

진법 계산

# 41.2 (10) ________________________________________________________________________ ## [2진수 변환] 101001.0011 ### [풀이] ### 정수 101001 ### 실수 0011 (반복) ________________________________________________________________________ # 1001.1100 (2) ________________________________________________________________________ ## [8진수 변환] 11.6 ### [풀이] ### 정수 1001 1 001 001 001 11 ### 실수 1100 110 0 6 ## [16진수 변환] 9.C ### [풀이] ### 정수 1001 9 ### 실수 1100 8+4 = C ________________________________________________________________________ # 1011.0110 (2)​ ________________________________________________________________________ ## [10진수 변환] ### [풀이] 11.375 ### 정수 1011 1 -> 2의 3승 => 8 + 0 -> 2의 2승 => 0 + (0이므로 False) 1 -> 2의 1승 => 2 + 1 -> 2의 0승 => 1 ==> 11 ### 실수 0110 0 * 2의 -1승 = 0 1 * 2의 -2승 = 0.25 (1 / 4) 1 * 2의 -3승 = 0.125 (1 / 8) 0 * 2의 -4승 = 0 ==> 0.375 ## [8진수 변환] ### [풀이] ### 정수 1011 ### 실수 0110 ## [16진수 변환] ### [풀이] ### 정수 1011 ### 실수 0110 ________________________________________________________________________ # 7F(16) ________________________________________________________________________ ## [8진수 변환] 177 ### [풀이] ### 정수 7F 0111 1111 (2진수) 01 111 111 001 111 111 1 7 7 ## [10진수 변환] 177 ### [풀이] ### 정수 0111 1111 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 ==> 127

부동소수점

정수는 정확하게 표현되지만, 실수는 2진수 변환 과정에서 무한소수가 되는 경우가 많다.

이를 효율적으로 표현하기 위해, 부동소수점은 매우 크거나 작은 실수를 지수와 가수로 나누어 저장한다. 소수점의 위치를 고정하지 않고 ±1.xxx × 2^지수 형태로 표현해, 넓은 표현 범위와 정밀도를 동시에 확보할 수 있다.

요약

  • 컴퓨터 내부에서 정수의 표현과 실수의 표현 사이의 최대 고려 사항이 어떻게 다른가?
    • 정수의 표현은 최대 비트 값이 해당 값의 제한이다. (10진수를 2진수로 변환하여 생각해야함)
    • 실수의 표현은 무한이기에… 영역이 (오버플로우 ~ 언더플로우)에 엮인다. 정확한 값이 아닌 근사치이다.

논리 회로 기초

1. 논리도 (Logic Diagram)

  • 논리 게이트들을 사용하여 도형으로 나타낸 회로도
  • 직관적이며 회로의 구조와 흐름을 시각적으로 확인 가능

예시:

  • AND, OR, NOT 게이트의 그림 표현
  • 회로가 복잡할수록 도식도 복잡해짐

2. 논리식 (Logic Expression / Boolean Expression)

  • 논리 연산자(AND: ·, OR: +, NOT: )를 사용한 수식 형태의 표현
  • 회로의 기능을 간결한 수학적 표현으로 나타냄

예시:

A · B
A + B
A'


3. 진리표 (Truth Table)

  • 모든 입력 조합에 대해 출력값을 표로 정리
  • 회로의 동작을 완전하게 기술 가능

조합 논리 회로

반가산기는 입력 A와 B. 그리고 출력 S와 C가 있다. 이 경우 아래와 같은 일이 벌어진다.

  0 0 1 0
+ 0 0 1 0
__________
  0 0 0 0
    ㄴ> Carry In이 없기에, 1을 못 올려준다.

이를 완벽히 구현한 게 전가산기이다.

A, B, Cin / S, C

컴퓨터 하드웨어

기계어/어셈블리어

업데이트: