컴퓨터구조와 논리회로
※ 본 강의의 목표
- 디지털 논리회로의 기본 원리를 이해한다.
- 데이터 표현 방법을 습득한다.
- 컴퓨터 시스템의 원리를 이해한다.
- 컴퓨터 시스템과 관련된 각종 용어를 이해한다.
※ 컴퓨터 구성의 분류
- 하드웨어(Hardware)와 소프트웨어(Software)로 구분
하드웨어 : 컴퓨터의 기계적인 장치
소프트웨어 : 하드웨어의 동작 제어 및 지시하는 모든 종류의 프로그램
※ 하드웨어
하드웨어는 기능에 따라 중앙처리장치, 기억장치, 입,출력장치 로 분류
중앙처리장치(CPU, Central Processing Unit)
컴퓨터의 두뇌에 해당하는 장치 = 즉 시스템 전체를 제어하는 장치로서
입력장치에서 데이터를 입력 받아 처리한 후 출력장치와 기억장치로 데이터를 보낸다.
< 산술•논리 연산장치(ALU, Arithmetic Logic Unit) >
CPU의 핵심 요소로써 산술 연산과 논리 연산을 수행한다.
// 산술 연산은 주로 덧셈, 뺄셈, 곱셈, 나눗셈 등의 사칙연산
// 논리 연산은 참과 거짓을 판결하는 연산으로 대표적으로 AND, OR, NOT, X-OR등의 연산
< 제어장치(Control Device) >
CPU 내부에서 일어나는 모든 작업을 통제하고 관리한다.
• 적절한 순서로 명령어를 인출하고 그 명령어를 해석한 결과에 따라 컴퓨터 시스템의 필요한 부분으로 제어신호를 전달
< 기억장치(Memory Device) >
기억장치는 내부 기억장치와 외부 기억장치로 나눌 수 있다.
lCPU 내의 레지스터와 캐시기억장치, 주기억장치는 내부 기억장치에 속한다.
보조기억장치(하드 디스크, 플로피 디스크, CD-ROM, DVD)는 외부 기억장치에 해당
- 주기억장치(Main Memory)
컴퓨터 시스템에서 수행되고 있는 프로그램과 수행에 필요한 데이터를 기억하고 있는 장치
CPU에 접근 속도가 빠르며 많은 양의 데이터를 기억할 수 있다.
ex) RAM(Random Access Memory)
보조기억장치(Secondary Memory)
외부 기억장치라고도 하며 반영구적으로 데이터를 저장하고 보존할 수 있다.
보조기억장치에 저장된 데이터는 중앙처리장치와 직접 정보를 교환할 수 없다 -> 주기억장치로 옮겨진 후 처리
주기억장치에 비해 가격은 저렴하고 저장 용량 또한 크지만 속도가 느리다는 단점이 있다.
ex) 자기 테이프, 자기 디스크, 자기 드럼, 플로피 디스크, 하드 디스크, CD-ROM, DVD, 플래시 메모리, 광 디스크 등
입력장치(Input Device)
컴퓨터에서 처리할 데이터와 정보를 외부에서 입력해주는 역할을 수행
처리하고자 하는 데이터를 제어장치의 명령에 따라 입력매체에서 읽어서 기억장치로 보낸다.
키보드의 동작 원리
키보드 뜯어보면 전선으로 / 전기적 신호로 전달
키보드와 전선의 접점을 좌표로 해서 신호 전달
고장나는 원인 - 주로 음료수 및 커피 쏟았을 때 ! 물을 쏟았을 경우는 대부분 괜찮다 !
이유 - 설탕의 막 때문에 접점이 안되기 때문
출력장치(Output Device)
컴퓨터 내부에서 처리된 결과를 사용자가 보거나 들을 수 있도록 출력매체를 이용해서 내보낸다.
마우스 - 휠 의 원리
안에 구멍이 나있어서 휠을 굴리면
레이저가 통과 했다 안했다 -> 전기 신호로 포인터로 움직임 신호 전달
레이저가 반사되는 것을 신호로 받는다.
모니터의 원리
CRT 모니터 툭 튀어나온 뒤 쪽에 만져보면 열이 항상 나있다. 그리고 구멍이 있다.
뒤쪽에 코일이 존재. 무수히 많은 코일을 만나서 전압을 생성 (높은 전압) 그로 인한 열
전기안에 있던 전자가 버티지못하고 밖으로 발산 -
전자가 화면에 닿으면 반짝 ! ?관의 원리
LCD - 형광등 비슷하게 만들어노아서 , 전기적 신호로 빛을 만들어냄 ( 백 라이트 존재 해야함 )
전기적 신호로 물질의 느슨함을 이용해 빛을 통과시켜서 화면에 출력
LED -
올레드 : 작은 소자에서 엄청난 LED !
대형 패널에 관한 올레드 특권을 LG만 가지고 있다.
삼성에서는 그 특허권이 없어서.. 다만 휴대폰은 가능 !
LG가 모니터 및 TV가 유명한 이유 !
※ 소프트웨어(Software)
- 컴퓨터 프로그램과 그와 관련된 문서들을 총칭하는 용어
- 정보들이 이동하는 방향과 정보처리의 종류를 지정하고 이러한 동작이 일어나는 시간을 지정하는 명령어의 집합
- 시스템 소프트웨어 - 응용 소프트웨어로 분류
- 하드웨어가 발달하여 가격이 저렴해지고 교체가 잦아짐에 따라 소프트웨어의 중요성은 더욱 높아지고 있음
//소프트웨어로 향상되는 생산성, 바뀐 하드웨어에 적용할 수 있는 소프트웨어의 호환성,
유지보수를 하는 것이 효율적인지 등의 요구 조건 중요하다.
소프트웨어의 분류
시스템 소프트웨어(System Software)
여러 컴퓨터 시스템에서 공통적으로 필요한 프로그램으로, 사용자가 컴퓨터를 좀 더 효율적으로 사용하기 위해 만듬
컴퓨터 시스템을 제어하고 운영하는 프로그램이다.
운영체제 프로그램 (DOS, UNIX, Windows9x, Window 2000, Windows XP, Window 7), 컴파일러(C • FORTRAN 컴파일러 등), 입출력 제어 프로그램 등이 있다.
응용 소프트웨어(Application Software)
시스템 소프트웨어를 기반으로 특정한 응용 분야에서 특수 목적을 위해 사용할 수 있는 프로그램
사무 자동화 프로그램, 공학용 계산 프로그램, 인터넷 웹 브라우저, 그래픽 프로그램 등이 이에 속한다.
※ 컴퓨터의 발전 과정
1. 수동식 계산기 : 수판
2. 기계식 계산기
파스칼라인 – 가감승제 계산기 – 차분기관과 분석기관 – 천공카드 도표 작성기
3. 전기기계식 계산기
MARK1 : 종이 테이프에 천공된 프로그램 명령어들에 의하여 작동 제어되도록 설계되었다.
4. 전자식 계산기
아타나소프-베리 컴퓨터(ABC computer)
순차적 방식과 2진 법체계를 사용하는 진공관방식이다.
5. 전자식 디지털 컴퓨터
ENIAC
최초의 전자식 디지털 컴퓨터(1946)다.
전자적인 가산기를 연산용 기억장치로 사용한다.
컴퓨터 내부의 회로 소자로 진공관을 사용하였다.
프로그램을 작성하려면 컴퓨터 각 부분을 전선으로 연결해야 하고, 프로그램의 수행을 위해서는 6,000여 개의 스위치를 조절해야 한다.
애니악의 유래 : 미국에서 포탄의 궤적을 빨리 계산하기 위해서 !
6. 내장 프로그램 방식 컴퓨터
1945년 폰 노이만(Von Neumann)이 제안하였다.
컴퓨터에 기억장치를 설치하고, 프로그램과 데이터를 함께 기억장치에 저장했다가, 프로그램에 포함된 명령에 따라 자동으로 작업을 처리하는 방식이다.
오늘날 컴퓨터의 기본 사상이다.
EDVAC(Electronic Discrete Variables Automatic Computer) : 1952년 미국에서 최초로 개발된 프로그램 내장 방식의 컴퓨터다.
7. 전자식 디지털 컴퓨터
UNIVAC I(Universal Automatic Computer)
이전의 특수 목적용이 아닌 최초의 순수 데이터 처리용이면서 상업용 컴퓨터다.
lIBM 701
1952년에 CRT(cathode-ray-tube)를 주기억장치로 하고, 보조기억장치로서 자기 드럼과 자기 테이프를 채택하였다.
본격적인 상업용 컴퓨터 시대을 열었다.
// IC를 여러개 모아서 집적회로를 만들어 사용
직접 X -> 집적 O
스티븐 잡스가 참고해서 애플 컴퓨터를 만들었당
+ 스티브 잡스랑 2~3명이서 모여서 창업했다 그것이 바로바로 IBM !
IBM PC !
IBM에서는 착각을 했다 - pc 팔아봐야 돈 되겠나, 서버 파는게 훨씬 낫지 ! 라는 오판을 한다.
PC를 생산할 수 있는 특허권을 전부 풀어버린다.
그래서 우리나라에서도 PC만든다. ! 삼성도 만들고있다 !
하드웨어를 구지 직접 만들필요있나 -! -> 위탁을 맡긴다 -> 그 회사가 바로 InTel !
---
빌게이츠가 소프트웨어 개발 ! (MS)
IBM에 찾아가서 내가 소프트웨어 무료로 줄테니까 독점을 하게 해달라 !
IBM은 이렇게 서버위주로 판매하다가 점점 안 팔리게된다.
/ PC의 성능이 날이갈수록 좋아지니까
서버주력의 회사들은 점점 쪼그라진당
HP 휴랫팩커드 ..
※ 컴퓨터의 분류
사용 목적에 따른 분류
전용 컴퓨터(Special Purpose Computer)
특정한 목적 위해 설계된 컴퓨터로, 군사용이나 공장의 공정 제어용 등으로 한정된 목적으로 사용한다.
/ 성능보다 안전성 위주로 개발 ! 16bit 컴퓨터 성능은 낮지만 안전성이 검증된 CPU
/ 우주선도 32bit CPU사용 - 안전성의 이유
범용 컴퓨터(General Purpose Computer)
여러 분야의 다양한 일을 처리할 수 있도록 설계 제작된 컴퓨터다.
다양한 응용 소프트웨어가 여러 분야의 다양한 일 처리를 가능하게 한다.
사용 데이터에 따른 분류
디지털 컴퓨터
모든 정보를 2진수의 데이터로 부호화하여 사용한다.
대부분의 컴퓨터가 디지털 컴퓨터, 아날로그 컴퓨터보다 정밀도가 높은 편이다.
아날로그 컴퓨터
아날로그 신호를 데이터로 이용하는 컴퓨터다.
신속한 입력과 즉각적인 반응을 얻을 수 있어 제어용 목적에 적합하다.
하이브리드 컴퓨터
아날로그와 디지털의 장점을 취하여 제작한 것으로 어떤 종류의 데이터도 처리할 수 있는 컴퓨터다.
처리 능력에 따른 분류
/ 중앙처리장치와 기억장치의 규모에 따른 분류
마이크로 컴퓨터(Microcomputer)
•PC를 의미하며 가정용이나 작은 사업의 용도로 사용되는 소형의 컴퓨터다.
중형 컴퓨터(Minicomputer)
•대용량의 주기억장치와 보조기억장치 및 빠른 주변장치들을 가지고 있어 수십 명 또는 수백명이 쓰기에 적합한 컴퓨터
•중소기업, 학교, 연구소들에서 주로 사용된다.
대형 컴퓨터(Mainframe Computer)
•대용량의 저장장치를 보유하여 다중 입출력 채널을 이용한 고속의 입출력 처리 능력을 보유한 컴퓨터다.
•공공 단체, 대기업, 은행, 병원, 대학 등으로 단말기를 연결시켜 온라인 업무나 분산 처리 업무에 이용된다. 또한 대규모 데이터 베이스 저장 및 관리 용으로 사용한다.
수퍼 컴퓨터(Super Computer)
•복잡한 계산을 초고속으로 처리하는 초대형 컴퓨터로 가장 빠르고 비싼 컴퓨터다.
•원자력 개발, 항공우주, 기상 예측 등의 분야에서 사용한다.
cpu 8000개 병렬로 들어간 슈퍼 컴퓨터 <-> 일반pc 8000대 비교해도 슈컴이 10~20배 더 비쌈
구조에 따른 분류
파이프라인 슈퍼 컴퓨터(Pipeline Supercomputer)
하나의 CPU 내에 다수의 연산장치를 포함하고 있는 컴퓨터다.
각 연산장치는 파이프 라이닝 구조를 이용하여 고속 벡터 계산이 가능하다.
대규모 병렬 컴퓨터(Massively Parallel Computer)
하나의 시스템 내에 상호 연결된 수백 혹은 수천 개 이상의 프로세스들을 포함한다.
프로세서들이 하나의 큰 작업을 나누어서 병렬로 처리하는 구조다.
※ 컴퓨터 정보의 표현과 저장
컴퓨터에서는 데이터 1비트를 기본으로 0, 1 두 개의 숫자를 표시하는 2진법을 사용함
비트(Bit)
2진수에서 데이터를 표현하는 단위다.
2진수의 조합은 2n 만큼의 조합을 가질 수 있고, n은 비트의 수다.
바이트(byte)
정보처리를 위해 사용되는 비트의 집합으로 8bit를 1byte로 규정한다.
워드(word)
컴퓨터가 한 번에 처리할 수 있는 데이터의 양이다.
컴퓨터 종류에 따라 2바이트, 4바이트, n바이트 등으로 구성되며, 일반적으로 32비트(4바이트)가 가장 많이 쓰이고 있다.
# nibble 이라는 단위도 존재 ! 4bit 묶음
# 64비트 운영체제를 가장 많이 사용하지만 정보처리 산업기사는 최신화 되지 않아서 32비트로 알고있다 !
디지털 정보의 표현 단위
수의 진법(1)
10진법(Decimal Notation)
인간이 사용하는 수의 체계로 0, 1, 2, 3, 4, 5, 6, 7, 8, 9의 열 가지의 기호를 이용하여 수를 표현한다.
각 자리에서 9 다음에 자리 올림이 발생한다. 이때 자리 올림으로 생성된 각 자리의 단위는 10의 지수 승(10N)이 된다
2진법(Binary notation)
컴퓨터에서 사용하는 수 체계로 0과 1만을 가지고 수를 표현한다.
각 자리에서 1 다음에 자리 올림이 발생한다. 이때 자리올림으로 생성되는 각 자리의 단위는 2의 지수 승(2N)이 된다.
다른 진법과 구별을 하기 위해서 첨자로 2를 표시한다.
2진수 101은 (101)2로 표현
2의 지수 승 분해한다.
(1101)2 = 1×23 + 1×22 + 0×21 + 1×20
10진수와 2진수의 비교
8진법(Octal notation)
숫자들이 0, 1, 2, 3, 4, 5, 6, 7 등 8가지의 문자를 이용하여 구성한다.
각 자리에서 7 다음에 자리 올림이 발생한다. 이때 자리올림으로 생성되는 각 자리의 단위는 8의 지수 승(8N)이 된다.
8진수의 표현은 8의 아래 첨자를 이용해서 표현한다. 예 : (27)8
8의 지수 승으로 분해하면 다음과 같다.
(27) = 2×81 + 7×8
10진수 -> 8진수 & 16진수로 변환 시 꿀팁 !!
10진수 -> 2진수 변환 후 -> 8진수로 바꾸면 쉬워요 >.<
10진수 -> 2진수 변환 : 변환할 진수로 나눠서 나머지 뒤에서부터 계산 !