본문 바로가기
Computer Science/Computer Architecture

Introduction : 도구, 기계, 컴퓨터

by Gofo 2021. 3. 11.

도구, 기계, 컴퓨터

도구

사전적 의미 : 일을 할 때 쓰는 연장을 통틀어 이르는 말 (출처 : 표준국어대사전)

인간의 에너지를 동력원으로 사용하여 힘이 효과적으로 사용되도록 함.

 

기계

사전적 의미 : 동력을 써서 움직이거나 일을 하는 장치 (출처 : 표준국어대사전)

화학에너지를 동력원으로 사용하여 인간의 힘을 대신함.

 

컴퓨터

사전적 의미 : 전자 회로를 이용한 고속의 자동 계산기

전기에너지를 동력원으로 사용하여 인간의 머리를 대신함. 계산, 논리적 처리에 있어서 효과적임.

 


컴퓨터의 역사

최초의 계산기 : 파스칼의 계산기

1642년 만들어진 세계 최초의 기계식 계산기이다.

두개의 숫자를 더하거나 뺄 수 있는데 이를 반복하여 곱셈, 나눗셈을 수행할 수 있다.

이후로 기계식 계산기가 꾸준히 발명되었고 1970년대까지 엔지니어들에 의해 사용되었다.

파스칼의 계산기 (출처 : https://en.wikipedia.org/wiki/File:Arts_et_Metiers_Pascaline_dsc03869.jpg)

 

 

20세기

더 강력하고 특별한 전자식 컴퓨터가 발명되었다.

대표적으로 1945년 만들어진 ENIAC(에니악)이 있다.

 

ENIAC

에니악 : Electronical Numberical Integrator And Computer 전자식 숫자 적분 및 계산기

2차 세계 대전 중 정확한 탄도 계산을 위해 개발되었으나 완성은 종전 이후였기 때문에 실제 전쟁에서는 사용되지 못하였다.

에니악은 최초의 범용 전자식 컴퓨터로 알려져있으나, 1973년 미국 법원이 최초의 컴퓨터는 ABC라고 판결을 냈다.

 

현재에 이르러서는 아래의 3개의 구성요소로 이루어진 컴퓨터가 완성되었다.

 


컴퓨터

컴퓨터의 분류

기준에 따라서 여러 방식으로 구분될 수 있다.

  • 사용 목적에 따라서
    • 범용 컴퓨터 : 과학 기술이나 사무처리 등 광범위한 분야에 적용할 수 있는 컴퓨터
    • 전용 컴퓨터 : 특수 분야의 일을 수행하기 위해 제작된 컴퓨터
  • 취급 데이터에 따라서
    • 아날로그 컴퓨타 : 연속적인 데이터(물리량 등)를 취급하는 컴퓨터
    • 디지털 컴퓨터 : 불연속적인 데이터(숫자, 문자 등)를 취급하는 컴퓨터
    • 하이브리드 컴퓨터 : 디지털 컴퓨터와 아날로그 컴퓨터의 기능을 혼합한 컴퓨터
      • 아날로그 데이터를 입력하여 디지털 방식의 처리를 하고자 할 때 주로 사용됨
      • 예 : 병원에서 환자의 심장 박통 상태, 체온 등(아날로그 데이터)을 디지털 데이터로 변환하여 화면에 보여줌.
  • 처리 능력에 따라서
    • 초대형 컴퓨터(슈퍼 컴퓨터) : 속도와 용량이 가장 큰 컴퓨터(기상청, 우주항공 분야)
    • 대형 컴퓨터(메인 프레임 컴퓨터) : 업무량이 많은 기관에서 주로 사용됨(은행, 대기업)
    • 중소형 컴퓨터(미니 컴퓨터) : 업무가 비교적 작은 규모의 기관(연구소, 학교)
    • 초소형 컴퓨터(마이크로 컴퓨터) : 워크스테이션급과 PC의 개인용 컴퓨터
      • 워크스테이션 : 전문적인 작업들(금융 계산, 그래픽 작업 등)을 수행하는데 적합한 고성능 개인용 컴퓨터로, RISC CPU가 사용됨
      • PC : 데스크탑, 랩탑, 노트북, 팜탑으로 분류됨

 

이 중 규모 및 용도에 따라서 다음과 같이 분류할 수 있다.

  • 범용컴퓨터
    • 데스크탑이나 랩탑처럼 어떤 프로그램을 돌리느냐에 따라서 기능이 달라지며 다양한 프로그램을 돌릴 수 있다.
  • 임베디드(내장형) 컴퓨터(시스템)
    • 기계 안에 내장되어 있는 컴퓨터로 프로그램은 한가지 기능으로 고정되어 있다.
    • 들어가는 기계마다 프로그램이 되는 것이 다르기 때문에 범용컴퓨터에 비해 종류가 훨씬 다양하다.

 

컴퓨터의 구성요소

컴퓨터의 핵심은 다음 3가지로 이루어진다.

  • CPU : 메모리에 있는 executable file을 읽어서 수행한다.(연산 담당)
  • Memory : program(executable file, 작업지시서) + data로 구성되어 있다.(기억 담당)
  • I/O Device : 외부와 정보를 주고받는 장치 (모니터, 키보드, 랜 포트 등) (접속 담당)

 

Machine instruction과의 관계

컴퓨터의 기능은 프로그램(executable file)에 의해 결정이 된다.

그리고 프로그램은 machine instruction으로 구성된다.

Machine instruction과의 관계

 

Machine Instruction

컴퓨터는 크게 3개의 machine instruction을 제공한다.

아래 3가지를 이용하여 70년동안 계산을 해왔고, 이를 이용해서 computational problem들을 모두 해결할 수 있다.

  • Arithmetic and logic instructions (산술논리연산)
    • add, sub, mult, div, and, or, not
    • 예 : ADD R1, R2, R3
  • Data transfer instructions (데이터 전달)
    • load, store
    • external memory나 I/O device와 데이터를 주고받기 위함
    • 예 : LD R1, R31(#1)
  • Jump instructions
    • jump if =, ≠, >, <, ≤, ≥

 

Machine-Level programming, High-Level programming

Machine-level programming은 CPU, memory, register가 그대로 노출되어 있다.

Machine-level로 모든 것을 프로그래밍을 하기에는 생산성이 많이 떨어진다.

그렇기에 high-level programming을 한 후 컴파일을 통해 machine-level로 변환한다.

 

예시

High-level programming : C program

int a, b, c;
a = 25;
b = 31;
c = a + b;

compile

Machine-level programming

1000	LOAD R1, (2000) 	// Load from address 2000 to R1
1004	LOAD R2, (2004)	// Load from address 2004 to R2
1008	ADD R3, R1, R2	// Add R1 and R2, then save to R3
100C	STORE R3, (2008)	// Store result to address 2008
1010	HALT				
	...
2000	25				// First operand
2004	31				// Second operand
2008	-				// sum of two operand

 

컴퓨터의 영향

지난 70년간 우리의 일상을 바꾸어 왔다.

  • "프로그래밍을 통한 문제 해결"라는 페러다임 제공
    • 인간이 하기 힘들었던 일이나 어려웠던 일들을 소프트웨어 개발과 자동화를 통해 해결함
    • 빠른 속도, 실수의 부재, 피곤함이 없음 등 효율성을 극대화함
  • 새로운 life-changing tools
    • 예 : 인터넷
  • 인간의 생활 형태를 바꿈
    • 기존 직업군의 소멸 및 새로운 직업군의 탄생

 

댓글