컴공생의 공부LOG

[컴퓨터개론] 컴퓨터의 역사와 구성 본문

학교 수업/1학년 1학기

[컴퓨터개론] 컴퓨터의 역사와 구성

푸우키 2024. 11. 20. 00:32

컴퓨터의 역사

 

컴퓨터의 탄생 (1940s)

 

 

 

에니악

- 펜실베니아 대학의 모클리와 에커트 교수가 만듦

- 최초의 전자식 컴퓨터로써 30톤의 거대한 계산기

- 날씨나 바람의 미세한 영향을 미리 프로그래밍해 놓음으로써, 미사일을 발사할 때 정확도를 높임

   => 3초 만에 탄도 계산 가능

- 진공관 1만 8,000개와 전선을 여러 잭에 꽂아 회로를 연결

- 계산한 결과는 진공관을 통해 확인 (켜지면 1, 꺼지면 0)

   => 이러한 원리는 컴퓨터가 2진법을 사용하는 이유임

- 선을 연결하여 논리 회로를 구성한 하드 와이어링 (hard wiring) 방식

최초의 컴퓨터 에니악

 

 

일괄 처리 시스템 (1950s)

 

 

 

IC칩

-기술이 발전하면서 진공관을 대치하는 트랜지스터를 사용

- 또 트랜지스터 여러 개를 하나로 만든 IC(Integrated Circuit) 칩이 개발됨

- IC 칩은 진공관과 전선으로 만든 논리회로를 매우 작은 크기로 구현한 것

- IC 칩으로 컴퓨터를 만들면서 현대적인 모습의 컴퓨터가 제작됨

- 이러한 컴퓨터는 미약하지만 CPU와 메인메모리도 가지게 됨

순서대로 <진공관, 트랜지스터, IC칩>

 

 

 

일괄 처리 시스템의 입출력 장치

-입력 장치로 천공 카드 리더 (punch card reader)를 사용

  => 천공 카드 리더는 OMR(Optical Mark Reader)의 원조

- 출력 장치로 라인 프린터 (line printer)를 사용

- 천공 카드와 라인 프린터를 사용하면서 현재 프로그래밍을 하는 방법과 유사한 방식으로 다양한 소프트웨어를 개발할 수 있음

홀러리스의 천공 카드 시스템

 

 

 

일괄 처리 시스템의 구성

- 하나의 작업을 읽어 실행하면 정해진 순서에 따라 처리한 후 결과만 출력

- 모든 작업을 한꺼번에 처리

- 프로그램 실행 중간에 사용자로부터 데이터 입력 및 수정이 불가능함

일괄 처리 시스템 구성

 

 

 

일괄 처리 시스템과 라면 자판기

-라면 자판기는 라면을 자동으로 끓여 줄 뿐 레시피 변경은 불가능함

- 처음에 프로그래밍된 대로만 동작한다는 점에서 일괄 처리 시스템과 같음

 

 

대화형 시스템 (early 1960s)

 

 

 

대화형 시스템

-컴퓨터와 사용자가 대화 (interactive)를 통해 작업

-문서 편집기나 게임 등 다양한 종류의 응용 프로그램 제작 가능

- 키보드와 모니터 개발로 작업이 진행되는 중에 사용자로부터 입력을 받거나 중간 결과 값을 보여주는 게 가능해짐

대화형 시스템 구성도

 

 

 

다중 사용자 시스템 (late 1960s)

 

 

 

다중 사용자 시스템

-값비싼 컴퓨터를 효율적으로 사용할 수 있는 여러 연구를 통해 여러 작업을 동시에 수행할 수 있는 시스템

-다중 프로그래밍 기술은 규모가 큰 식당과 같음

=> 여러 테이블의 요구를 수용 가능

 

다중 프로그래밍 기술

-CPU의 사용 시간을 매우 작은 값으로 쪼개어 이를 여러 작업에 나누어 줌

-모든 작업이 동시에 실행되는 것처럼 보임

-CPU의 시간을 나눈다는 의미에서 '시분할 시스템'이라고도 함

 

다중 프로그래밍 기술 구성도

 

 

개인용 컴퓨터 (late 1970s)

 

 

 

애플 II 컴퓨터의 등장

-스티브 잡스가 1977년에 발표

-개인용 컴퓨터 (Persoal Computer, PC)의 시초

-저장 장치로 카세트테이프 사용

 

IBM 호환 컴퓨터

-IBM은 1981년 애플보다 성능이 더 좋은 IBM XT를 출시했으나 고전

-이후 'IBM 호환 컴퓨터'라는 개방 정책을 펼쳐 돌파구 마련

    -삼성, LG, 삼보와 같은 기업들이 컴퓨터 시장에 진입하게 됨

    - 하드웨어 가격은 싸지고 소프트웨어는 풍부해지면서 판매 급증

    -현재 사용하는 대부분의 개인용 컴퓨터 (PC)는 IBM 호환기종

    - CPU는 인텔, 운영체제는 마이크로소프트의 MS-DOS 사용

 

 

인터넷의 발전

 

인터넷

 

 

 

알파넷(ARPAnet)

-1960s 미국 ARPA에서는 서로 호환되지 않는 랜(LAN)들을 하나로 묶는 연구의 결과 탄생

=> 이후 차츰 개방되어 현재의 인터넷이 됨

 

마우스의 대중화

-문자 기반 사용자 인터페이스 -> 그래픽 사용자 인터페이스로 변화

 

문자 기반 인터넷 화면 (하이텔 화면)

 

'모자이크' 웹 브라우저

 

 

 

모자이크

-1993년 탄생

-천문학과 물리학 종사자들이 자신들의 연구를 세상에 알리려고 만듦

-한 화면에 문자와 그림을 한꺼번에 표현

-중요한 단어를 클릭하면 연결된 다른 웹 페이지로 이동 (하이퍼텍스트)

-모자이크를 만들던 팀이 따로 회사를 차려 1994년 넷스케이프 출시

-넷스케이프 이후 마이크로소프트 익스플로러, 구글 크롬 등이 출시됨

-웹 브라우저를 이용해 WWW(World Wide Web) 서비스 사용

 

 

5세대 컴퓨터와 양자컴퓨터

양자컴퓨터

 

 

 

양자컴퓨터

- 중첩(superposition)과 얽힘(entanglement) 등 양자 물리학 원리 이용

- 다수의 정보를 동시에 연산, 새로운 개념의 컴퓨터

- 양자비트(quantum bit) 인 ’ 큐비트(qubits)’를 이용

-> 0, 1, 그리고 0과 1의 조합을 동시에 나타내고 저장

-> 00・01・10・11을 동시에 가짐

- 성능은 슈퍼컴퓨터보다 최소 1억배 이상 나은 결과

- 머신러닝, 최적화, 신약 개발, 암세포 염기서열 분석 등의 과제들을 해결

 

양자컴퓨터 상용화

-2019년 구글 '시커모어', 슈퍼컴퓨터의 한계를 넘음

-> 큐비트 50개로 양자컴퓨터 칩

->23년에는 큐비트 1,000개의 벽을 넘어 1,121개로 만든 '콘도르' 개발 계획

-IBM은 2019년 세계 최초로 20 큐비트의 상용 양자컴퓨터 'Q시스템원'을 공개

 -> 2021년 127 큐비트와 43 큐비트의 중급형 양자컴퓨터를 개발

 -> 2023년 1,000 큐비트의 양자컴퓨터 개발을 계획

IBM이 운용 중인 65 큐비트 양자컴퓨터용 칩 '허밍버드'와 양자컴퓨터 IBM Q시스템원

 

 

 

컴퓨터의 구성

컴퓨터의 개념

 

 

 

컴퓨터란?

-계산을 수행하는 장치

-데이터 입력 -> 처리 -> 출력 또는 저장

-데이터(data)를 입력 받아 처리(process)하면 의미 있는 자료가 되는데 이를 정보 (information)라 부름

 

 

컴퓨터의 구성요소 비유

 

 

 

-하드웨어 : CPU, 메인메모리, 입력장치, 출력장치, 저장장치

-소프트웨어 : 각종 프로그램

컴퓨터의 구성

 

 

 

요리로 보는 컴퓨터의 동작 원리

-주방장은 CPU, 요리하는 작업대는 메인메모리

-주방장을 돕는 보조 요리사는 GPU, 재료를 보관하는 창고는 저장장치

-재료를 가져오는 주방 보조는 입출력 관리자

요리와 닮은 컴퓨터 구성

 

 

 

요리 레시피와 소프트웨어 비교

-레시피 : 특정 요리에 사용할 재료, 조리 방법과 절차를 작성해 놓은 것

- 소프트웨어 : 하드웨어를 조작하여 원하는 정보를 만들어 내는 것

컴퓨터는 데이터를 처리하여 정보 생성
요리로 비유할 수 있는 컴퓨터의 구성 요소

 

 

 

컴퓨터의 구성요소

 

 

 

 

CPU (Central Processing Unit)

- 주어진 명령에 따라 데이터를 계산하고 각종 주변 장치에 데이터 입출력 명령을 내림

- 대표적인 제조업체로 Intel과 AMD가 있음

- 데이터를 처리(processing)하기 때문에 프로세서(processor)라고도 함

- 그래픽 작업만 전문으로 하는 그래픽 전용 프로세서를 ’GPU’라 함

일반 CPU와 GPU를 내장한 그래픽 카드

 

 

AP (Application Processor)

- CPU, GPU, 무선통신 시스템 등을 하나의 칩에 구현

- SoC (System on Chip)

- 부피를 줄이고 전력 소모를 최소화 함

- 스마트폰이나 임베디드 시스템에서 사용함

스마트폰용 AP인 퀄컴의 스냅드래곤과 삼성의 엑시노스

 

 

 

기본 입력장치

다양한 입력장치

 

 

센서 입력장치

- 빛센서: 주변 밝기를 측정 후 결과에 따라 화면 밝기 조절  

- 이미지 센서: 화소 수를 늘리고 픽셀을 작게 줄이는 등 이미지 처리

- 지문 인식 센서:사용자 인증과 보안에 사용(잠금해제, 카드거래등)

스마트폰에 탑재된 이미지 센서와 지문 인식 센서

 

 

 

기본 출력장치

다양한 출력 장치

 

 

 

컴퓨터 하드웨어 구성 정리

1. CPU (Central Processing Unit)

-명령어를 해석하여 실행하는 장치

-인간의 두뇌에 해당

 

2. 메인메모리

-작업에 필요한 프로그램과 데이터를 저장하는 장소

-CPU에 데이터를 넘겨주고 처리한 데이터를 다시 저장

 

3. 입력장치

-컴퓨터에 데이터를 전달하는 장치

-스마트폰 보급으로 터치스크린과 카메라가 중요한 입력장치가 됨

 

4. 출력장치

-작업 결과를 나타내는 장치

-최근에는 3D 프린터가 개발됨

 

5. 저장장치

-전원이 꺼진 이후에도 데이터를 보관할 수 있는 장치

-보조 저장 장치, 제2 저장 장치 등 다양하게 불림

 

메인보드와 버스

1. 메인보드 (Main Board)

-CPU와 메모리 등 다양한 컴퓨터 부품을 연결시켜 주는 커다란 판

 

2. 버스 (Bus)

-메인보드 내 고정된 부품들 사이를 연결하는 선의 집합

-전기와 데이터의 통로

-메인보드에 있는 버스를 시스템 버스 (system bus) 또는 전면 버스 (FSB, Front-Side Bus)라 함

 

3. 포트 (Port)

-메인보드에는 각종 부품을 꽂을 수 있는 단자

 

 

폰 노이만 구조

기존의 컴퓨터는 선을 채결해서 프로그래밍하는 방식

-새로운 프로그램을 수행하려면 선을 바꿔껴야했음

-프로그램을 저장해 두었다가 필요할 때 불러올 수 있다면?

-이것을 해결한 것이 미국 수학자 존 폰 노이만(JohnvonNeumann)

 

수행할 프로그램을 저장장치에서 메인메모리로 불러옴

-모든 하드웨어가 버스로 연결되어 있고, 이를 통해 데이터 전달

-메인메모리로부터 명령을 CPU로 불러와 하나씩 처리

 

현대의 모든 컴퓨터가 이 방식을 따름

 

 

 

폰 노이만 구조의 특징

- 모든 프로그램은 메인메모리에 올라와야 실행할 수 있음

폰 노이만 구조

 

 

 

폰 노이만 구조 비유

-도마(메인메모리)는 주방장 (CPU)이 요리를 하는 핵심 작업 공간

- 보관창고(저장장치)는보조적인공간

- 주방장(CPU)이요리를하려면 보관창고(저장장치)에있는재료를도마(메인메모리)로가져와야함

- 마찬가지로저장장치에있는프로그램은메모리에올라와야실행가능

도마에서 요리하듯이 모든 프로그램은 메인메모리로 올라와야 실행

 

 

 

메인메모리와 CPU

메인메모리

 

 

 

메인메모리 크기와 작업 속도

- 도마가충분히크다면여러재료를한꺼번에가져다놓고조리할수있음

- 도마가작으면재료를조금씩놓고조리함(재료를여러번가져와야함)

- 동일한이유로메인메모리가1GB인컴퓨터보다4GB인것이빠름

-단, 메인메모리가 필요 이상 커진다면 성능향상을 기대하기 힘듦

도마의 크기와 작업 속도

 

 

 

CPU (Central Processing Unit)

 

 

 

CPU의 구성

1. 산술 논리 연산 장치(Arithmetic Logic Unit, ALU)

- 주어진데이터를사용하여덧셈,뺄셈,곱셈,나눗셈등산술연산수행

- 주어진데이터를사용하여AND,OR,XOR등의논리연산수행

 

2. 제어장치 (Control Unit)

- CPU에서작업을지시하는장치

->  저장장치나입력장치에서메인메모리로데이터를가져오는명령

-> 메인메모리에서저장장치나출력장치로데이터를내보내는명령

 

3. 레지스터 (Register)

- CPU 내데이터를임시로보관하는장치

- 계산하는데필요한데이터를잠시저장하거나계산의중간값을저장

 

 

CPU의 구성 비유

CPU 구성

 

 

CPU의 동작 - "2+3"의 처리 과정

1. 2를 레지스터로 가져옴

2. 3을 레지스터로 가져옴

3. 2와 3을 ALU에서 더함

4. 결과 5를 레지스터에 저장

5. 5를 메모리에 저장

 

CPU의 명령 처리 과정

 

 

 

CPU의 성능 (데이터 처리량)

-워드 (word)

-> CPU가 한 번에 처리할 수 있는 데이터 크기

-> 일반적으로 32-bit, 64-bit 사용

-버스의 대역폭 (bandwidth)과 레지스터 크기는 워드의 크기에 따라 결정됨 (예외도 있음)

-64-bit CPU는 32-bit CPU에 비해 한 번에 처리할 수 있는 데이터 크기가 두 배

=> 성능 향상을 기대할 수 있음

32-bit CPU의 구조

 

 

 

CPU 코어(core)

-CPU에서 작업을 하는 주요 장치

-코어 개수에 따라 듀얼코어(dual-core),쿼드코어(quad-core),핵사코어 (hexa-core), 옥타코어(cota-core) 등으로 나뉨

CPU와 코어

 

 

 

CPU 코어와 명령어

- CPU 코어 종류에 명령어 체계가 다르기 때문에 호환되지 않음

- 이런 명령어 체계를 instructionset이라 함

 

 

 

어셈블리어 (assembly language)

- CPU 코어가이해하는기계어와일대일대응되는저급프로그래밍언어

- 컴퓨터구조에따라기계어가다르므로,대응하는어셈블리어도달라짐

ex) 지원하는명령어의타입과개수

ex) 레지스터의크기와개수

ex) 데이터표현방법

ex) ...

- 어셈블리어로 작성된 코드는 어셈블러를 이용해 기계어로 변환 할 수 있음

- 모든 범용 컴퓨터는 기본적으로 동일한 기능을 수행함

- 하지만 내부적으로 어떤 과정을 거치는지는 다를 수 있음

 

(왼쪽) C언어 소스코드 / (오른쪽) 동일 코드에 대한 어셈블리어 코드

 

 

 

컴파일러

- 고급 언어로 구현된 소스코드를 저급 언어로 변환하는 프로그램

- CPU는 기계어 같은 저급 언어를 바로 이해하고 명령을 수행 할 수 있음