일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- conjunction
- 1차 논리
- 원자 명제
- identity elimination
- identity introduction
- Connectives
- truth table
- soundness
- substitution
- formal proof
- 개별 상수
- predicate symbols
- arguments
- 논리학
- negation
- first order logic
- atomic sentence
- disjunction
- fol
- transitivity of identity
- functional symbol
- individual constants
- Validity
- reiteration
- terms
- Today
- Total
컴공생의 공부LOG
[컴퓨터개론] 컴퓨터의 역사와 구성 본문
컴퓨터의 역사
컴퓨터의 탄생 (1940s)
에니악
- 펜실베니아 대학의 모클리와 에커트 교수가 만듦
- 최초의 전자식 컴퓨터로써 30톤의 거대한 계산기
- 날씨나 바람의 미세한 영향을 미리 프로그래밍해 놓음으로써, 미사일을 발사할 때 정확도를 높임
=> 3초 만에 탄도 계산 가능
- 진공관 1만 8,000개와 전선을 여러 잭에 꽂아 회로를 연결
- 계산한 결과는 진공관을 통해 확인 (켜지면 1, 꺼지면 0)
=> 이러한 원리는 컴퓨터가 2진법을 사용하는 이유임
- 선을 연결하여 논리 회로를 구성한 하드 와이어링 (hard wiring) 방식
일괄 처리 시스템 (1950s)
IC칩
-기술이 발전하면서 진공관을 대치하는 트랜지스터를 사용
- 또 트랜지스터 여러 개를 하나로 만든 IC(Integrated Circuit) 칩이 개발됨
- IC 칩은 진공관과 전선으로 만든 논리회로를 매우 작은 크기로 구현한 것
- IC 칩으로 컴퓨터를 만들면서 현대적인 모습의 컴퓨터가 제작됨
- 이러한 컴퓨터는 미약하지만 CPU와 메인메모리도 가지게 됨
일괄 처리 시스템의 입출력 장치
-입력 장치로 천공 카드 리더 (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 큐비트의 양자컴퓨터 개발을 계획
컴퓨터의 구성
컴퓨터의 개념
컴퓨터란?
-계산을 수행하는 장치
-데이터 입력 -> 처리 -> 출력 또는 저장
-데이터(data)를 입력 받아 처리(process)하면 의미 있는 자료가 되는데 이를 정보 (information)라 부름
컴퓨터의 구성요소 비유
-하드웨어 : CPU, 메인메모리, 입력장치, 출력장치, 저장장치
-소프트웨어 : 각종 프로그램
요리로 보는 컴퓨터의 동작 원리
-주방장은 CPU, 요리하는 작업대는 메인메모리
-주방장을 돕는 보조 요리사는 GPU, 재료를 보관하는 창고는 저장장치
-재료를 가져오는 주방 보조는 입출력 관리자
요리 레시피와 소프트웨어 비교
-레시피 : 특정 요리에 사용할 재료, 조리 방법과 절차를 작성해 놓은 것
- 소프트웨어 : 하드웨어를 조작하여 원하는 정보를 만들어 내는 것
컴퓨터의 구성요소
CPU (Central Processing Unit)
- 주어진 명령에 따라 데이터를 계산하고 각종 주변 장치에 데이터 입출력 명령을 내림
- 대표적인 제조업체로 Intel과 AMD가 있음
- 데이터를 처리(processing)하기 때문에 프로세서(processor)라고도 함
- 그래픽 작업만 전문으로 하는 그래픽 전용 프로세서를 ’GPU’라 함
AP (Application Processor)
- CPU, GPU, 무선통신 시스템 등을 하나의 칩에 구현
- SoC (System on Chip)
- 부피를 줄이고 전력 소모를 최소화 함
- 스마트폰이나 임베디드 시스템에서 사용함
기본 입력장치
센서 입력장치
- 빛센서: 주변 밝기를 측정 후 결과에 따라 화면 밝기 조절
- 이미지 센서: 화소 수를 늘리고 픽셀을 작게 줄이는 등 이미지 처리
- 지문 인식 센서:사용자 인증과 보안에 사용(잠금해제, 카드거래등)
기본 출력장치
컴퓨터 하드웨어 구성 정리
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의 동작 - "2+3"의 처리 과정
1. 2를 레지스터로 가져옴
2. 3을 레지스터로 가져옴
3. 2와 3을 ALU에서 더함
4. 결과 5를 레지스터에 저장
5. 5를 메모리에 저장
CPU의 성능 (데이터 처리량)
-워드 (word)
-> CPU가 한 번에 처리할 수 있는 데이터 크기
-> 일반적으로 32-bit, 64-bit 사용
-버스의 대역폭 (bandwidth)과 레지스터 크기는 워드의 크기에 따라 결정됨 (예외도 있음)
-64-bit CPU는 32-bit CPU에 비해 한 번에 처리할 수 있는 데이터 크기가 두 배
=> 성능 향상을 기대할 수 있음
CPU 코어(core)
-CPU에서 작업을 하는 주요 장치
-코어 개수에 따라 듀얼코어(dual-core),쿼드코어(quad-core),핵사코어 (hexa-core), 옥타코어(cota-core) 등으로 나뉨
CPU 코어와 명령어
- CPU 코어 종류에 명령어 체계가 다르기 때문에 호환되지 않음
- 이런 명령어 체계를 instructionset이라 함
어셈블리어 (assembly language)
- CPU 코어가이해하는기계어와일대일대응되는저급프로그래밍언어
- 컴퓨터구조에따라기계어가다르므로,대응하는어셈블리어도달라짐
ex) 지원하는명령어의타입과개수
ex) 레지스터의크기와개수
ex) 데이터표현방법
ex) ...
- 어셈블리어로 작성된 코드는 어셈블러를 이용해 기계어로 변환 할 수 있음
- 모든 범용 컴퓨터는 기본적으로 동일한 기능을 수행함
- 하지만 내부적으로 어떤 과정을 거치는지는 다를 수 있음
컴파일러
- 고급 언어로 구현된 소스코드를 저급 언어로 변환하는 프로그램
- CPU는 기계어 같은 저급 언어를 바로 이해하고 명령을 수행 할 수 있음
'학교 수업 > 1학년 1학기' 카테고리의 다른 글
[컴퓨터개론] 컴퓨터와 소프트웨어 (0) | 2024.11.20 |
---|---|
[컴퓨터개론] 컴퓨터와 인간의 표현법 (0) | 2024.11.20 |
[논리학] 6. Formal Proofs and Boolean Logic (0) | 2024.11.18 |
[논리학] 4. The Logic of Boolean Connectives (4) | 2024.11.18 |
[논리학] 3. The Boolean Connectives (2) | 2024.11.18 |