컴퓨터는 무엇인가?
Computer
- 계산기
- 프로그램을 실행하는 기계
디지털 컴퓨터
- 모든 정보를 2진수의 데이터로 나타낸다.
- 정밀도가 높다.
아날로그 컴퓨터
- 아날로그 신호를 데이터로 이용하는 컴퓨터
- 신속한 입력과 즉각적인 반응을 얻을 수 있어 제어용 목적에 적합하다.
하이브리드 컴퓨터
- 아날로그와 디지털의 장점을 취하여 제작한 것으로 어떤 종류의 데이터도 처리할 수 있다.
컴퓨터의 개발 과정
-
수동식 계산기 : 주판
- 기계식 계산기 : 파스칼라인 - 가감승제 계산기 - 차분기관과 분석기관 - 천공카드
- 전기기계식 계산기 : MARK 1
-
전자식 계산기 : 아타나소프-베리 컴퓨터
- ENIAC(애니악) : 최초의 전자식 디지털 컴퓨터
- 내장 프로그램 방식 컴퓨터 : 1945년 폰 노이만이 제안, 컴퓨터에 기억장치를 설치하고 프로그램과 데이터를 함께 기억장치에 저장했다가, 프로그램에 포함된 명령에 따라 자동으로 작업을 처리하는 방식, EDVAC(애드박) - 1952년 미국에서 최초로 개발된 프로그램 내장 방식의 컴퓨터
- UNIVAC I(유니박 I) : 최초의 순수 데이터 처리용인 상업용 컴퓨터
- IBM 701 : 본격적인 상업용 컴퓨터
컴퓨터의 발전
컴퓨터 구성의 분류
하드웨어와 소프트웨어
- 하드웨어(H/W) : 컴퓨터의 기계적인 장치
- 소프트웨어(S/W) : 하드웨어의 동작을 제어하고 지시하는 모든 종류의 프로그램
- S/W = Program + Data
프로그램과 명령어
- 프로그램 : 컴퓨터가 수행하여야 할일을 명령어로 나열한 것
- 명령어 : 프로그래머가 컴퓨터에게 지시할 수 있는 기본적인 작업 단위
시스템 S/W
- 컴퓨터 시스템을 제어하고 운영하는 프로그램
- 예) OS, 펌웨어, 컴파일러, 디바이스 드라이버
- BIOS(Basic Input/Output System) : 전원이 공급되면 시작되는 부팅절차에서 하드웨어 초기화를 수행한다.
Application S/W
- 시스템 소프트웨어를 기반으로 특정한 목적을 위해 사용할 수 있는 프로그램
- 예) DB, Word, 엑셀
- API(Application Programming Interface) : 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
1.1 디지털 컴퓨터
컴퓨터 하드웨어
CPU
메모리
- Program Memory(ROM)
- Data Memory(RAM)
Input Output Processor(IOP)
I/O Device
- Interface : 8251 SIO, 8255 PIO, 6845 CRTC, 8272 FDC 등등
- Input Device : 키보드, 마우스, 스캐너
- Output Device : 프린터, 플러터, 디스플레이
- 저장 기기 : SDD, HDD
CPU
- 프로세서
- 프로그램 실행과 데이터 처리라는 기능을 담당하는 요소
- 산술 및 논리 연산부분, 데이터 저장 레지스터들과 명령어를 수행하는 제어 회로등으로 구성되어 있다.
메모리
-
메인 메모리
-
- CPU 가까이 위치하며, 반도체 기억장치 칩들로 구성되어 있다.
- 고속 액세스
- 가격이 높고 면적을 많이 차지한다.
- 일시적 저장 기능
Auxiliary Storage Device
- 2차 기억장치
- 저장 밀도가 높고, 비트 당 가격이 낮음
- 읽기/쓰기 속도가 느리다.
- 영구 저장 능력을 가진 저장장치 : HDD, 플래시 메모리, CD-ROM
I/O 기기
- 사용자와 컴퓨터간의 대화를 위한 입력 및 출력장치
- 유무선 통신 네트워크 인터페이스 장치
컴퓨터 데이터 소스 : 이진 데이터
- On/Off = 0/1
- 비트 : Binary Digit
- Byte : 8bits
- Word : 2 or 4 bytes
Program Code
- 기계어 : 2진 비트의 조합으로 구성되어 컴퓨터의 하드웨어 부품들이 이해하는 언어
- 어셈블리어 : 고급 언어와 기계어 사이의 중간 언어
- 고급 언어 : 영문자와 숫자로 구성되어 사람이 이해하는 언어
컴파일러 : 고급언어 프로그램을 기계어 프로그램으로 번역하는 소프트웨어
어셈블리 : 어셈블리 프로그램을 기계어 프로그램으로 번역하는 소프트웨어
명령어 집합 구조(ISA : Instruction Set Architecture)
- 하드웨어 가 인식해서 실행할 수 있는 기계어 명령어들의 집합
- 하드웨어마다 기계어 코드의 길이와 숫자 코드가 다름
- 프로그래머가 볼 수 있는 시스템의 속성(개념적 구조, S/W의 동작)은 실제 하드웨어의 물리적인 동작과 구분됨
1.2 논리게이트
ADC(Analog to Digital Conversion)
- Signal -> Physical Quantity -> Binary Information
게이트(Gate)
1.3 Boolean Algebra(부울 대수)
Boolean Function : variable + operation
- F(x, y, z) = x+y`z
부울 대수의 목적
- 디지털 회로의 설계와 분석이 쉬워진다.
장점
- 진리표 : 변수 사이의 관계를 대수 형식으로 표시
- 논리도 : 입출력 관계를 표시
- 회로를 더 간단하게 만드는데 사용한다.
불 대수의 기본 관계
1.4 맵 간소화
최소항(Minterm) / 최대한(Maxterm)
-
진리표에서 변수를 조합하여 만들 수 있는 항
-
Minterm : n variables product (x=1, x`=0)
-
- 출력 F가 1인 최소항만 모아서 논리식을 만든다.
Maxterm : n variables sum (x=0, x`=1)
- 출력 F가 0인 최대항만 모아서 논리식을 만든다.
2) 1로 표시된 이웃들을 1, 2, 4, 8, 16개씩 (가능한 크게) 묶어서 그룹을 만든다.
- 하나의 칸이 여러 그룹에 중복해서 묶일 수 있다.
- 그룹화할 이웃이 없으면 단독 그룹으로 취급
3) 각 그룹을 간소화된 식으로 나타낸다.
4) 모든 그룹의 간소화식을 OR 연산한다.
Don’t care 조건
- 이웃 영역을 그룹화할 때 가장 간단한 표현을 얻기 위해 임의로 채워질 수 있음
- 간소화 과정에서 그룹화 할수도 있고 그룹화 하지 않을 수도 있음
논리곱의 논리합(Sum of Product) : 모든 항이 최소항이고 논리 합(OR)연산으로 구성된 부울 식
논리합의 논리곱(Product of Sum) : 모든 항이 최대항이고 논리 곱(AND) 연산으로 구성된 부울 식
1.5 조합회로 (Combinational Circuits)
- 입력 및 출력 세트와 연결된 논리 게이트 배열
분석
- 논리회로 다이어그램 -> 부울 함수 또는 진리표
설계
- 문제 명세
- I/O 변수 지정
- 진리표
- 간소화된 부울 함수
- 논리 회로 다이어그램
디자인 예제
전가산기(Full Adder)
-
전가산기는 3개의 입력 비트의 덧셈을 만드는 조합회로이다.
-
3개의 입력 (x, y, z)와 2개의 출력(S:sum, C: carry)를 갖는다.
-
진리표
- 간소화
- 논리회로도
1.6 플립플롭
- 기록된 순차 회로에 사용되는 스토리지 요소
- 2비트의 정보를 저장할 수 있는 이진 셀
모서리 변이형 플립플롭
- 상태 변경을 클럭 펄스의 변이동안 동기화하는 것 : 입력 펄스가 일정한 임계값을 넘어 설때 입력값을 고정시켜, 클럭 펄스가 다시 0으로 되거나 다음 펄스가 올 때까지 유지
- setup time(20ns) : 입력 D가 이전까지 상수 값을 유지해야 하는 최소 시간
- Hold time(5ns) : 입력 D가 양수로 변한 후 변화하지 않아야 하는 최소 시간
- Propagation delay(max 50ns) : 시계 입력과 Q 단위의 응답 사이의 시간
마스터 슬레이브 플립플롭
- 2개의 F/F를 사용(Slave와 Master F/F) 하며 negative-edge transition 사용한다.
- Race현상을 방지하기 위해 위와 같이 사용한다.
Race 현상
- 조건 : Setup Time > Propagation delay
- 증상 : 0과 1을 반복하다가 불안정한 상태가 된다.
- 해결책 : Edge triggered F/F 또는 Master/Slave F/F 사용한다.
여기표
-
지정된 상태 변경에 필요한 입력 조합
-
현재 상태와 다음 상태로 표현한다.
1.7 순차회로
-
순차회로는 F/F와 게이트의 상호연결이다.
-
클럭 동기형 순차회로다
플립플롭 입력 방정식
- F/F 입력에 대한 부울 표현식
- 입력 표현식 예제
- 출력 표현식 예제
상태표
- 현재 상태, 입력(x), 다음상태, 출력(y)를 표현
- 상태표의 조합 = 2^m+n, m : F/F 수, n : 조합회로의 입력 변수의 수
- Da, Db : F/F 입력
- A, B : F/F 출력
상태도
- 상태표의 그래픽적인 표현
- 원(상태), 선(변화), 상태(input/output)