컴퓨터는 무엇인가?

Computer

  • 계산기
  • 프로그램을 실행하는 기계

디지털 컴퓨터

  • 모든 정보를 2진수의 데이터로 나타낸다.
  • 정밀도가 높다.

아날로그 컴퓨터

  • 아날로그 신호를 데이터로 이용하는 컴퓨터
  • 신속한 입력과 즉각적인 반응을 얻을 수 있어 제어용 목적에 적합하다.

하이브리드 컴퓨터

  • 아날로그와 디지털의 장점을 취하여 제작한 것으로 어떤 종류의 데이터도 처리할 수 있다.

컴퓨터의 개발 과정

  1. 수동식 계산기 : 주판

  2. 기계식 계산기 : 파스칼라인 - 가감승제 계산기 - 차분기관과 분석기관 - 천공카드
  3. 전기기계식 계산기 : MARK 1
  4. 전자식 계산기 : 아타나소프-베리 컴퓨터

  5. ENIAC(애니악) : 최초의 전자식 디지털 컴퓨터
  6. 내장 프로그램 방식 컴퓨터 : 1945년 폰 노이만이 제안, 컴퓨터에 기억장치를 설치하고 프로그램과 데이터를 함께 기억장치에 저장했다가, 프로그램에 포함된 명령에 따라 자동으로 작업을 처리하는 방식, EDVAC(애드박) - 1952년 미국에서 최초로 개발된 프로그램 내장 방식의 컴퓨터
  7. UNIVAC I(유니박 I) : 최초의 순수 데이터 처리용인 상업용 컴퓨터
  8. IBM 701 : 본격적인 상업용 컴퓨터

컴퓨터의 발전

K-001

컴퓨터 구성의 분류

K-002

하드웨어와 소프트웨어

  • 하드웨어(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

K-003

  • 프로세서
  • 프로그램 실행과 데이터 처리라는 기능을 담당하는 요소
  • 산술 및 논리 연산부분, 데이터 저장 레지스터들과 명령어를 수행하는 제어 회로등으로 구성되어 있다.

메모리

  • 메인 메모리

    • 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)

K-010

1.3 Boolean Algebra(부울 대수)


Boolean Function : variable + operation

  • F(x, y, z) = x+y`z

K-011

부울 대수의 목적

  • 디지털 회로의 설계와 분석이 쉬워진다.

장점

  • 진리표 : 변수 사이의 관계를 대수 형식으로 표시
  • 논리도 : 입출력 관계를 표시
  • 회로를 더 간단하게 만드는데 사용한다.

불 대수의 기본 관계

K-012

K-013

1.4 맵 간소화


최소항(Minterm) / 최대한(Maxterm)

  • 진리표에서 변수를 조합하여 만들 수 있는 항

  • Minterm : n variables product (x=1, x`=0)

    • 출력 F가 1인 최소항만 모아서 논리식을 만든다.

    Maxterm : n variables sum (x=0, x`=1)

    • 출력 F가 0인 최대항만 모아서 논리식을 만든다.

K-014

2) 1로 표시된 이웃들을 1, 2, 4, 8, 16개씩 (가능한 크게) 묶어서 그룹을 만든다.

  • 하나의 칸이 여러 그룹에 중복해서 묶일 수 있다.
  • 그룹화할 이웃이 없으면 단독 그룹으로 취급

K-015

3) 각 그룹을 간소화된 식으로 나타낸다.

4) 모든 그룹의 간소화식을 OR 연산한다.

Don’t care 조건

  • 이웃 영역을 그룹화할 때 가장 간단한 표현을 얻기 위해 임의로 채워질 수 있음
  • 간소화 과정에서 그룹화 할수도 있고 그룹화 하지 않을 수도 있음

K-016

논리곱의 논리합(Sum of Product) : 모든 항이 최소항이고 논리 합(OR)연산으로 구성된 부울 식

K-017

논리합의 논리곱(Product of Sum) : 모든 항이 최대항이고 논리 곱(AND) 연산으로 구성된 부울 식

K-018

1.5 조합회로 (Combinational Circuits)


  • 입력 및 출력 세트와 연결된 논리 게이트 배열

분석

  • 논리회로 다이어그램 -> 부울 함수 또는 진리표

설계

  1. 문제 명세
  2. I/O 변수 지정
  3. 진리표
  4. 간소화된 부울 함수
  5. 논리 회로 다이어그램

디자인 예제


전가산기(Full Adder)

  1. 전가산기는 3개의 입력 비트의 덧셈을 만드는 조합회로이다.

  2. 3개의 입력 (x, y, z)와 2개의 출력(S:sum, C: carry)를 갖는다.

  3. 진리표

K-019

  1. 간소화

K-020

  1. 논리회로도

K-021

1.6 플립플롭


  • 기록된 순차 회로에 사용되는 스토리지 요소
  • 2비트의 정보를 저장할 수 있는 이진 셀

K-022

K-023

모서리 변이형 플립플롭

  • 상태 변경을 클럭 펄스의 변이동안 동기화하는 것 : 입력 펄스가 일정한 임계값을 넘어 설때 입력값을 고정시켜, 클럭 펄스가 다시 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 입력에 대한 부울 표현식
  • 입력 표현식 예제

K-024

  • 출력 표현식 예제

K-025

상태표

  • 현재 상태, 입력(x), 다음상태, 출력(y)를 표현
  • 상태표의 조합 = 2^m+n, m : F/F 수, n : 조합회로의 입력 변수의 수

K-026

  • Da, Db : F/F 입력
  • A, B : F/F 출력

상태도

  • 상태표의 그래픽적인 표현
  • 원(상태), 선(변화), 상태(input/output)

K-027

예제 : 2진 카운터


K-028

K-029