컴퓨터의 구성 요소

Download Report

Transcript 컴퓨터의 구성 요소

컴퓨터 시스템의 구성과 기능
IT CookBook, 컴퓨터 구조와 원리 2.0
학습목표
 컴퓨터의 하드웨어 구성장치를 파악한다.
 컴퓨터 구성요소에 대하여 분류하고 그 기능을 이해한다.
 시스템 버스의 개념을 이해한다.
 컴퓨터의 수행 동작을 이해한다.
목차
 컴퓨터 분해를 통한 구성장치의 분석
 컴퓨터 구성 요소
 버스와 상호 연결
 컴퓨터의 기능과 동작
01 컴퓨터 분해를 통한 구성장치의 분석
 컴퓨터의 구성요소
 컴퓨터의 외관적인 구성장치들을 주변장치(peripheral device)라고 한다.
하드 디스크
CD-ROM
모니터
그래픽 카드
프린터
메인보드
케이스
랜 카드
스캐너
키보드
마우스
01 컴퓨터 분해를 통한 구성장치의 분석
 입출력장치(Input Output Device)
 입력장치(Input Device)
• 컴퓨터가 작업을 수행하기 위해 사용되는 데이터를 입력하는 장치다.
• 키보드 : 데이터를 입력하는 장치로 문자, 숫자, 특수키, 기능키 등으로
구성된다.
• 마우스 : 마우스가 움직이면 그에 따라 화면에 나타난 커서(cursor)가
움직이며, 위에 있는 버튼을 눌러 명령어를 선택하거나 프로그램을
실행한다.
• 스캐너 : 사진 영상을 읽어 들여 기억장치에 디지털 데이터로 저장한다.
• 비디오 캠코더 : 촬영한 동영상을 디지털 데이터로 변환해서 컴퓨터에
입력한다.
• 그래픽 태블릿(Graphic Tablet)와 디지타이저(Digitizer)
 평판 태블릿, 마우스와 스타일러스(stylus)로 구성된다.
 대형 그래픽 도면, 손으로 쓴 글씨 등의 입력에 사용한다.
01 컴퓨터 분해를 통한 구성장치의 분석
 출력장치(Output Device)
• 컴퓨터가 수행한 결과를 나타내는 장치다.
• 모니터(Monitor)




가장 대표적인 출력장치다.
그패픽 카드의 종류에 따라 다양한 해상도 지원한다.
해상도는 그래픽 카드가 지니는 VRAM(Video RAM)의 용량에 따라 제한된다.
액정 디스플레이(LCD: Liquid Crystal Display)의 가격이 하락하고 해상도가 높아져
점차 액정 모니터가 일반화되고 있다.
• 컬러 프린터
 컴퓨터에서 출력되는 결과를 종이로 출력해주는 장치다. 잉크젯(Ink Jet) 프린터와
레이저 프린터가 있다.
01 컴퓨터 분해를 통한 구성장치의 분석
 출력장치(Output Device)
• 프로젝터(Projector)
 출력되는 결과를 확대할 수 있는 장치다.
 컴퓨터 모니터 상에 나타나는 출력을 대형 스크린에 디스플레이하는 장비다.
 많은 사람에게 동시에 멀티미디어 정보를 제공할 수 있는 외부 출력장치다.
• HMD(Head Mounted Display)
 머리에 착용해서 화면을 보는 디스플레이 장치다.
 부착된 안경을 통해 3차원의 영상을 출력할 수 있다.
01 컴퓨터 분해를 통한 구성장치의 분석
 주변장치(Peripheral Device)
• 미디어 처리장치
 오디오, 비디오 등의 미디어를 처리해서 컴퓨터로 입출력한다.
• 사운드 카드
 소리를 컴퓨터에서 처리할 수 있는 디지털 방식으로 변환하고, 소리를 재생하거나
녹음한다.
• 비디오 카드
 CPU에서 처리한 그래픽 정보를 아날로그 비디오 신호로 변환하여 모니터에 표시하
는 장치다.
 ‘비디오 어댑터’ 또는 ‘그래픽 카드’ 라고도 한다.
• 그래픽 가속 보드
 3차원 그래픽 등과 같은 고품질의 해상도를 얻거나 렌더링 속도를 향상시키는 데
사용된다.
 현재는 비디오 카드에 내장되는 것이 보편화되고 있다.
01 컴퓨터 분해를 통한 구성장치의 분석
 보조기억장치와 통신장치
 보조기억장치
• 컴퓨터의 중앙처리장치가 아닌 외부에서 프로그램이나 데이터를 보관하기
위한 기억장치다. 주기억장치보다 속도는 느리지만 많은 자료를 영구적으로
보관할 수 있다.
• 읽기만 가능한 장치와 읽기와 쓰기가 가능한 장치로 구분된다.
• 재생 및 기록 가능한 보조기억장치
 하드디스크(Hard disk) : 하드라고 부르는 기억장치다.
 플로피디스크(Floppy disk) : 이동성이 가능한 소용량의 기억장치로 저장용량의 부
족과 물리적으로 강인하지 못한 이유로 잘 사용이 되지 않고 있다.
 자기테이프(Magnetic tape) : 대용량의 데이터를 저장하는 백업장치다.
• 재생만 가능한 장치
 CD-ROM, DVD-ROM
01 컴퓨터 분해를 통한 구성장치의 분석
 보조기억장치와 통신장치
 통신 장치
• 데이터 통신과 인터넷을 하기 위해서 사용되는 주변장치다.
• LAN(Local Area Network) 카드
 인접 PC들을 LAN에 연결해준다.
• 모뎀(MODEM: Modulator DeModulator, 변복조기)
 디지털(Digital) 신호를 아날로그(Analog) 신호로, 아날로그 신호를 디지털 신호로
바꾸는 역할을 담당
01 컴퓨터 분해를 통한 구성장치의 분석
 컴퓨터의 주요 주변장치
01 컴퓨터 분해를 통한 구성장치의 분석
 주회로기판에 존재하는 구성요소
• 컴퓨터 내부의 주 회로 기판(Main Board)에는 주요 하드웨어 구성 요소들이
존재한다.
 주회로기판 구성
•
•
•
•
중앙처리장치(CPU), 주기억장치인 RAM, I/O 컨트롤러가 있다.
주변장치들이 연결될 수 있도록 확장슬롯과 각종 포트와 단자가 있다.
전원 공급장치와 중앙처리장치를 위한 냉각 송풍기, 케이블과 전선들이 있다.
각 구성요소들은 버스로 연결되어 데이터를 송수신한다.
01 컴퓨터 분해를 통한 구성장치의 분석
 주회로기판구성 요소
 중앙처리장치(CPU, Central Processing Unit)
• 프로그램 실행과 데이터 처리라는 중추적인 기능 수행한다.
• 제어장치, 연산장치, 레지스터 등으로 구성된다.
• 다양한 마이크로프로세서를 사용 한다.
 예) Intel, AMD, Motorola 마이크로프로세서
 주기억장치(Main Memory)
• 컴퓨터 내에서 명령어와 데이터들을 기억하는 저장장치다.
• 고속 액세스가 가능하나 가격이 높고 저장 용량의 한계가 있다.
• 영구 저장 능력이 없어 프로그램 실행 중에 일시적으로만 저장기능을
수행한다.
01 컴퓨터 분해를 통한 구성장치의 분석
 주기억장치(Main Memory)
• RAM(Random Access Memory)
 CPU가 읽기, 쓰기를 위한 기억장치로, 명령어와 데이터를 저장한다.
• ROM(Read Only Memory)
 읽기전용 기억장치로 부팅(booting)에 필요한 명령어를 내장하고 있다.
• 캐시 메모리(Cache Memory)
 RAM보다 빠른 고속 RAM으로 CPU에 자주 쓰이는 명령어와 데이터를 저장하여
처리 성능을 높이는 역할을 한다.
01 컴퓨터 분해를 통한 구성장치의 분석
 보조기억장치
•
•
•
•
주기억장치를 보조하므로 2차 기억장치(secondary memory)라고 한다.
액세스의 속도가 저속이고 대용량 데이터를 저장하는 데 사용한다.
하드디스크, DVD-ROM, CD-ROM, 플로피디스크 등이 있다.
IDE등의 표준화 연결방식으로 CPU에 연결한다.
 시스템 확장 카드
• 컴퓨터의 기능을 확장하거나 보조하기 위하여 카드 형태로 만들어진 장치다.
• 사용자는 특수 목적에 맞는 확장카드를 주회로기판에 부착하여 사용한다.
• LAN카드, 사운드 카드, 그래픽 카드, 영상카드 등의 다양한 종류가 있다.
01 컴퓨터 분해를 통한 구성장치의 분석
 입출력 포트
• 입출력장치를 컴퓨터에 연결해주는 역할을 한다.
• 병렬 포트(Parallel Port), 직렬 포트(Serial Port), USB 포트, Firewire 포트,
LAN 포트, 음향기기를 위한 입출력 포트 등이 있다.
• 최근에는 병렬포트와 직렬포트가 USB 포트와 Firewire 포트로 대체되고
있으며, 또한 블루투스의 무선 연결 방식으로 대체되고 있는 추세다.
02 컴퓨터의 구성 요소
 컴퓨터 시스템이 동작하려면 하드웨어뿐만 아니라 소프트웨어도 필요
• 컴퓨터를 구성하는 장치인 하드웨어(hardware)는 물리적인 실체로
컴퓨터에서 사용되는 정보들을 처리, 전송, 저장 그리고 전송 통로를
제공한다.
• 하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의
부호들(codes) 혹은 명령어들(instructions)의 집합을
소프트웨어(Software)라고 부른다.
• 펌웨어(Firmware)는 소프트웨어를 하드웨어화한 것으로 하드웨어와
소프트웨어의 중간단계에 해당되어 미들웨어(Middleware)라고도 한다.
02 컴퓨터의 구성 요소
 컴퓨터 하드웨어의 분류
 중앙처리장치(CPU)
• 컴퓨터의 두뇌로서 프로그램을 읽고 해석하여 실행한다.
• 산술논리연산장치, 제어장치, 레지스터로 구성된다.
 기억장치
• 컴퓨터에 필요한 정보를 저장하는 장치다.
• CPU가 사용하는 주기억장치와 영구적 저장을 위한 보조기억장치로
구성된다.
 입력장치
• 컴퓨터 시스템 외부에서 정보를 입력받는 장치다.
• 마우스, 키보드, 터치패드, 광학 스케너 등이 있다.
 출력장치
• 컴퓨터 시스템에서 처리된 결과물을 외부로 출력해주는 장치다.
• 대표적인 출력장치로 프린터, 스피커, 모니터 등이 있다.
02 컴퓨터의 구성 요소
 중앙처리장치를 구성하는 하드웨어
 중앙처리장치의 구성
• 산술논리연산장치, 레지스터, 제어장치는 논리회로 소자들의 집합이다.
02 컴퓨터의 구성 요소
 산술논리연산장치 (ALU, Arithmetic and Logical Unit)
• 컴퓨터에서 수행하는 산술 연산과 논리 연산을 수행하는 장치
• ALU를 어떻게 설계하느냐에 따라서 연산의 개수가 결정된다.
 간단하게 설계된 ALU
• (a)는 산술 연산을 위한 처리기, 논리 연산을 위한 처리기 그리고 이동
처리를 위한 이동 처리기가 있다.
• (b)는 처리기들이 4 x 1 멀티플렉서를 통해서 연산의 결과를 출력하는 (a)의
우측부분을 확대해서 나타낸 것이다.
02 컴퓨터의 구성 요소
 산술연산 처리기
• 4비트의 덧셈과 뺄셈 연산을 수행하도록 설계되었다.
• 전가산기 4개를 가지고 조합논리회로를 구성된다.
02 컴퓨터의 구성 요소
 논리연산 처리기
• AND, OR, XOR, 보수 연산을 수행한다.
• 각 해당 산술 연산의 논리 게이트가 4X1 멀티플랙서에 연결된다.
02 컴퓨터의 구성 요소
 이동처리기
• 양쪽으로 이동하는 레지스터로 2의 곱셈과 나눗셈 연산을 수행한다.
• 레지스터는 4개의 D 플립플롭을 가지고 설계된 순차 논리회로다.
02 컴퓨터의 구성 요소
 레지스터
• CPU에서 사용되는 데이터 정보를 임시적으로 저장하는 장치다.
• 플립플롭의 연결을 기본으로 하는 순차 논리회로다.
• 4비트 데이터를 병렬로 읽기와 쓰기가 가능한 레지스터다.
02 컴퓨터의 구성 요소
 레지스터의 종류
 프로그램 카운터(PC, Program Counter)
• 다음에 실행할 명령어의 주소를 저장하는 레지스터다.
 명령어 레지스터(IR, Instruction Register)
• 기억장치로부터 읽어온 명령어를 수행하기 위하여 일시적으로 저장한다.
 기억장치 주소 레지스터(MAR, Memory Address Register)
• 다음에 읽기 동작이나 쓰기 동작을 수행할 기억장소의 주소를 저장하는
주소저장용 레지스터다.
 기억장치 버퍼 레지스터(MBR, Memory Buffer Register)
• 기억장치에 저장될 데이터 혹은 기억장치로부터 읽은 데이터를 임시로 저장한다.
 입/출력 주소 레지스터(I/O AR: I/O Address Register)
• 입/출력장치의 주소를 저장하는 주소 레지스터다.
 입/출력 버퍼 레지스터(I/O BR: I/O Buffer Register)
• 입/출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장한다.
02 컴퓨터의 구성 요소
 제어장치
 CPU에서 사용하는 명령어의 실행 과정을 관리하고 제어하는 장치
 제어장치 내의 구성
• 순서제어 논리장치(sequencing logic), 제어장치 레지스터들(control unit registers),
명령어 해독기(decoder), 제어 메모리(control memory)로 구성된다.
• 제어장치 레지스터들에는 제어 주소 레지스터(control address register),
제어 버퍼 레지스터(control buffer register), 서브루틴 레지스터(subroutine
register) 등이 있다.
02 컴퓨터의 구성 요소
 제어장치의 마이크로 구조
 가장 기본적인 형태로 만들어진 제어장치의 구조
• 레지스터, 기억장치, 해독기, 순서제어 모듈로 구성 된다.
02 컴퓨터의 구성 요소
 명령어 해독기와 순서제어 모듈
 명령어 해독기는 디코더를 사용하여 구현
 순서 제어모듈은 멀티플렉서와 주소 선택회로로 구성
02 컴퓨터의 구성 요소
 기억장치를 구성하는 논리회로
• 반도체 기억장치에서 논리 회로를 이용하는 기억장치는 RAM의 한 종류인
SRAM이 있다.
• SRAM은 플립플롭을 기본 구성으로 해서 1비트를 저장하는 기억소자를
만든다.
• SRAM 기억소자의 논리회로와 논리기호
 RS 플립플롭과 AND 게이트가 조합된 순차 논리회로를 구성한다.
02 컴퓨터의 구성 요소
 4×3 SRAM의 기본구조
• 주소 입력을 위해서 2 x 4 디코더가 이용되고 출력단에서는 OR 게이트를
사용한다.
02 컴퓨터의 구성 요소
 입출력 제어기를 구성하는 논리 회로
• 입출력장치와 CPU와의 처리속도는 그 차이가 너무 커서 직접적으로
데이터를 주고 받는 것은 굉장히 비효율적이다.
 속도 차이를 극복하기 위한 방법으로 입출력 제어기를 사용
• 처리속도 및 동작 특성이 유사한 입출력장치들을 제어 관리한다.
 입출력 제어기의 구조
• 레지스터와 주소 디코더는 일반적인 조합 논리 회로와 순차 논리 회로들을
이용하여 그 기능을 수행할 수 있다. 또한 제어 회로도 마찬가지다.
02 컴퓨터의 구성 요소
 버스를 통한 하드웨어의 연결
• 컴퓨터를 구성하는 하드웨어는 버스를 통해서 연결되고 이를 통해서
데이터와 각종 제어신호를 전달한다.
• 버스로 연결된 컴퓨터의 구성 요소와 중앙처리장치를 중심으로 데이터
신호와 명령 신호의 흐름
02 컴퓨터의 구성 요소
 소프트웨어
 컴퓨터 명령(command)
• 정보를 원하는 형태로 처리하고, 목적하는 방향으로 이동시키면 저장장치에
저장시키는 동작을 수행한다.
 소프트웨어
• 명령들이 모여서 하나의 프로그램을 형성하며, 프로그램들이 모여서 집합을
형성한 것이 소프트웨어다.
• 컴퓨터 시스템이나 주변기기 등의 하드웨어를 작동시켜 원하는 작업 결과를
얻기 위한 프로그램 또는 명령어의 거대 집합이다.
 소프트웨어의 분류
• 시스템 소프트웨어(system software), 응용 소프트웨어(application
software)로 분류된다.
소프트웨어
시스템
소프트웨어
응용
소프트웨어
컴퓨터의 기본적인
운영작업을 수행지원
사용자 수행작업
지원
02 컴퓨터의 구성 요소
 시스템 소프트웨어
 컴퓨터 시스템의 운영을 위한 프로그램으로, 컴퓨터 시스템의 개별
하드웨어 요소들을 직접 제어, 통합, 관리하는 가장 큰 기능을 수행
• 운영체제, 장치 드라이버, 프로그래밍 도구, 컴파일러, 어셈블러, 유틸리티
 시스템 소프트웨어의 계층적 분류
02 컴퓨터의 구성 요소
 운영체제(OS, Operating System)
 운영 체제의 역할
• 물리적 장치와 논리적 자원인 파일의 관리 및 제어를 수행한다.
 하드웨어를 직접 제어하고 자원을 관리해서 컴퓨터의 시동, 메모리나 파일 관리, 주
변기기 관리, 네트워크에 연결 등의 작업을 수행한다.
• 응용 프로그램들의 실행환경을 제공한다.
• 컴퓨터와 사용자 사이의 중재적 역할을 한다.
 운영체제 기능
•
•
•
•
•
•
컴퓨터의 시동(Booting)
사용자 인터페이스 제공
프로그램 실행관리
메모리 관리
파일 관리
기타 기능 : 보안(security) 기능, 암호화 및 압축 기능, 인터넷 연결 작업,
네트워크 제어 기능, 성능 모니터링 기능 등을 지원
02 컴퓨터의 구성 요소
 프로그래밍 언어
• 컴퓨터가 읽고 사용하는 명령이나 코드의 집합으로, 프로그래머가 의도한
대로 동작하는 프로그램을 개발하는 데 사용한다.
 고급(High-level) 언어
• 명령어가 인간이 사용하는 일상적인 문장에 가까운 언어다.
• 컴퓨터가 사용하는 기계어하고는 차이가 커서, 고급 언어를 기계어로
번역하기 위해서는 복잡한 과정을 거쳐야 한다.
 저수준(Low-level) 언어
• 컴퓨터가 사용하는 언어라고 해서 기계어(Machine Language)라고 한다.
• 데이터를 표현에 있어 기본 단위인 비트의 값 0과 1로 그대로 표기하는
언어다.
 어셈블리 언어(Assembly Language)
• 컴퓨터 고유의 기계어 명령을 사람이 어느 정도 해독할 수 있도록
문자화하거나 기호화한 형태의 중간수준의 언어다.
02 컴퓨터의 구성 요소
 컴파일과 컴파일러
 컴파일
• 프로그램을 컴퓨터가 이해할 수 있는 언어로 번역하는 과정을 컴파일이라
한다.
 컴파일러(Compiler)
• 모든 프로그램은 컴퓨터가 사용할 수 있는 기계어로 번역되어야 실행이
가능하다.
• 소스 프로그램(Source Program)을 기계어로 번역하여 오브젝트 코드(Object
Code)라 불리는 실행 가능한 프로그램으로 만들어주는 프로그램이
컴파일러다.
02 컴퓨터의 구성 요소
 데이터베이스 관리시스템(DBMS)
 응용 소프트웨어와 운영체제 사이에서 대용량 데이터를 효율적으로
관리하기 위한 시스템 소프트웨어
 데이터베이스의 추가, 수정, 검색 등의 작업을 하기 위한 시스템
인터페이스를 제공하며 관리
 DBMS의 특징
•
•
•
•
•
데이터의 효율적 관리
데이터 접근에 대한 관리
효율적인 데이터 검색
원하는 형태의 보고서 즉시 작성
백업 및 복구 기능 보유
• 다양한 인터페이스 제공
02 컴퓨터의 구성 요소
 범용 유틸리티 소프트웨어와 장치드라이버
 범용 유틸리티 소프트웨어
• 사용자가 컴퓨터를 효율적으로 관리하는데 필요한 다양한 기능을
독립적으로 수행하는 프로그램이다.
• 대표적인 기능
 파일 관리 기능 : 파일의 목록을 보여주고 파일을 복사하거나 이름을 바꾸고 삭제하
며 저장한다.
• 디스크 관리 기능
 불필요한 파일을 삭제하거나 문제점을 해결한다. 그리고 포맷팅 기능도 있다.
 디스크 조각 모으기를 통해서 작은 조각들을 모아서 파일공간으로 사용하기 쉽도
록 만들어 주는 기능도 포함한다.
• 시스템 상태 보기
 컴퓨터 하드웨어, 주변기기나 시스템 소프트웨어의 상태 보기를 통해서, 시스템의
문제를 진단한다.
 장치 드라이버
• 컴퓨터에 연결되는 주변 장치를 제어할 수 있도록 지원하는 소프트웨어다.
02 컴퓨터의 구성 요소
 응용 소프트웨어
 컴퓨터에게 특정목적의 작업을 수행하기 위한 프로그램들
• 컴퓨터가 많은 다른 작업을 수행할 수 있도록 하는 소프트웨어다.
 응용 소프트웨어에 대한 계층적 개념과 분류
02 컴퓨터의 구성 요소
 응용 소프트웨어 종류 및 특성
02 컴퓨터의 구성 요소
 펌웨어(Firmware)
 일반적으로 시스템의 효율을 높이기 위한 ROM에 저장된 하드웨어를
제어하는 마이크로 프로그램을 의미
• ROM은 프로그램이 고정되어 있기 때문에 하드웨어의 특성도 가지고 있지만
실제로는 소프트웨어에 더 가깝다.
• 소프트웨어를 하드웨어화 시킨 것으로 소프트웨어와 하드웨어의 중간에
해당한다.
 소프트웨어의 기능을 펌웨어로 변경할 수 있으면 속도가 현저하게 증대
• 고속 처리가 필요한 프로그램은 펌웨어로 만들어 사용한다.
 하드웨어의 기능을 펌웨어로 변경하면 속도는 느려진다.
• 논리 회로를 설계하여 사용하는 것 보다 저렴하고, 편리하게 구현하여
사용할 수 있는 장점을 가지기도 한다.
03 버스와 상호 연결
 버스(Bus)
 컴퓨터에서 두 개 혹은 그 이상의 장치들을 연결하는 공유 전송 매체
 버스를 통해서 전송되는 데이터의 유형들
• 프로세서가 기억장치로부터 명령어와 데이터를 읽는 유형.
• 프로세서가 기억장치에 데이터를 저장하는 유형.
• 프로세서는 입출력(Input/Output, I/O) 모듈을 통하여 I/O 장치로부터
데이터를 읽고, 프로세서가 I/O 장치로 데이터를 전송하는 유형.
• I/O 모듈이 DMA(Direct memory access )를 통하여 기억장치와 직접
데이터를 교환하는 전송 유형.
 시스템 버스(system bus)
• 프로세서, 기억장치 및 I/O 장치간의 통신을 위한 상호 연결한다.
03 버스와 상호 연결
 시스템 버스의 분류
 주소 버스
• 데이터가 읽혀지거나 쓰여질 기억장소의 주소를 전송하는 통로다.
• CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합이다.
 데이터 버스
• 모듈들 사이로 데이터를 전송하는 통로다.
• CPU가 기억장치와 I/O 장치와의 사이에 데이터를 전송하는 신호 선들의 집합이다.
 제어 버스(Control Bus)
• 제어신호들을 전송하는 통로다.
• CPU가 컴퓨터내의 각종 장치들의 동작을 제어하기 위한 신호 선들의 집합이다.






기억장치 읽기/쓰기(Memory Read/Write) 신호
전송 확인(transfer acknowledge), 인터럽트 확인(interrupt acknowledge)
버스 승인(bus grant)
I/O 읽기/쓰기(I/O Read/Write) 신호
버스 요구(bus request), 인터럽트 요구(interrupt request)
리셋(reset)
03 버스와 상호 연결
 시스템 버스의 구성
03 버스와 상호 연결
 시스템 버스의 방향성과 기억장치 쓰기와 읽기 시간
 시스템 버스의 방향성
• 데이터 버스는 읽기와 쓰기 동작을 모두 수행하므로 양방향성을 갖는다.
• 제어 버스는 요구 제어신호와 확인 제어신호를 사용하므로, 양방향성이다.
• 주소 버스는 신호가 CPU로부터 기억장치 혹은 I/O 장치들로만 전송되지만
반대로의 전송은 존재하지 않기 때문에 단방향성 버스다.
• 기억장치 쓰기동작
 CPU는 기억장치에 데이터를 전송해서 저장한다.
• 기억장치 읽기 동작
 CPU가 기억장치에 저장된 데이터를 가져와 자신의 레지스터에 싣는다.
03 버스와 상호 연결
 기억장치 쓰기 시간(memory write time)
• 기억장치 쓰기 동작에서 CPU가 주소와 데이터를 보낸 순간부터 저장이
완료될 때까지의 시간이다.
 기억장치 읽기 시간(memory read time)
• 기억장치 읽기 동작에서 주소를 해독(decode)하는 데 걸리는 시간과 선택된
기억 소자들로부터 데이터를 읽는 데 걸리는 시간을 합한 시간이다.
 기억장치 액세스 동작의 시간 흐름도
03 버스와 상호 연결
 CPU와 주변장치와의 데이터 전송
 CPU에서 입출력장치로의 데이터 이동
• CPU의 속도와 입출력장치의 처리속도의 차이가 커서, 고속으로 전송된
데이터들은 느린 처리속도를 가진 입출력장치가 제대로 처리를 못한다.
• 시스템 버스와 입출력장치를 연결하는 입출력장치 제어기 (I/O device
controller)가 있다.
 CPU와 입출력 장치간의 데이터 흐름
03 버스와 상호 연결
 입출력 장치 제어기의 역할
• CPU로부터 입출력 명령을 받아서, 해당 입출력 장치를 제어하고 데이터를
이동시키는 명령을 수행하는 전자회로 장치이며, 두 개의 레지스터가
존재한다.
• 상태 레지스터
 입출력장치의 현재 상태를 나타내는 비트들을 저장한 레지스터이다. 준비 상태
(RDY) 비트, 데이터 전송확인(ACK) 비트가 해당 상태를 표시한다.
• 데이터 레지스터
 CPU에서 입출력 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터다.
03 버스와 상호 연결
 시스템 버스를 통한 구성장치의 연결
03 버스와 상호 연결
 컴퓨터의 기능과 동작
 컴퓨터의 특징과 기능
• 컴퓨터의 기본적인 특징





신속성 : 컴퓨터의 처리 속도는 고속이어서 1초에 수억 번의 작업을 수행한다.
신뢰성 : 입력된 자료를 오류 없이 정확하게 처리해줘서 그 결과를 믿을 수 있다.
정확성 : 입력된 자료가 정확하고 사용 방법이 올바르면 처리 결과는 정확하다.
대용량성 : 작은 기억장치 하나에 방대한 양의 자료를 저장할 수 있다.
공유성 : 인터넷에 연결된 컴퓨터는 정보를 많은 사람이 공유하게 한다.
• 컴퓨터의 기본적인 기능
 입력 기능 : 데이터나 프로그램을 컴퓨터 내부로 잃어오는 기능이다.
 기억 기능 : 입력된 데이터나 프로그램, 중간 결과 및 처리된 결과를 기억한다.
 처리 기능 : 산술이나 논리 연산 등을 수행. 프로그램을 읽고 해석하여 각 장치에
필요한 지시를 한다.
 출력 기능 : 처리 결과를 기호, 문자, 그림, 음성 등의 형태로 외부로 낸다.
 통신 기능 : 다른 컴퓨터와 연결하여 자료를 입력 또는 처리하거나 출력한다,
03 버스와 상호 연결
 컴퓨터의 기능
03 버스와 상호 연결
 컴퓨터 시스템의 동작
 컴퓨터 시스템의 작동 과정
 컴퓨터에서 프로그램이 실행 시, 구성 장치들이 수행하는 동작
• 실행 : CPU가 주기억장치에서 프로그램 코드를 읽어서 실행한다.
• 데이터 저장 : 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에
저장한다.
• 데이터 이동 : 보조기억장치에 저장되어 있는 프로그램과 데이터 블록을
주기억장치로 이동시키는 기능
• 데이터 입력 : 사용자가 키보드를 통해 보내는 명령이나 데이터를 읽어
들인다.
• 데이터 출력 : CPU가 처리한 결과 값이나 기억장치의 내용을 출력한다.
• 제어 : 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를
변경하도록 조정하며, 각종 제어 신호들을 발생시킨다.
03 버스와 상호 연결
 컴퓨터에서 프로그램의 역할
 컴퓨터의 동작은 프로그램내의 명령어를 읽고, 처리하고, 그리고
저장하는 과정을 통해서 정해진 순서대로 프로그램을 실행
 프로그램내의 명령어가 수행되는 과정
•
•
•
•
명령어 인출 : 명령어를 읽어가지고 오는 단계다.
명령어 해독 : 명령어의 내용을 결정하는 단계다.
명령어 실행 : 해독 명령어의 내용을 수행하는 과정으로 처리 결과는 저장한다.
프로그램 카운터 증가 단계 : 다음 명령어를 수행하기 위한 단계다.
03 버스와 상호 연결
 명령어 사이클 (Instruction Cycle)
• 중앙처리장치가 하나의 명령어를 실행하는데 필요한 전체 처리 과정을
명령어 사이클이라고 한다.
• 명령어 사이클은 기본적으로 인출 사이클(fetch cycle)과 실행
사이클(execution cycle)의 부 사이클(sub-cycle) 두 개로 구성되어 있다.
• 인출 사이클은 CPU가 주기억장치로부터
명령어를 읽어오는 단계다.
• 실행 사이클은 명령어를 실행하는 단계다.
실행되는 동작은 다음과 같이 분류한다.




프로세서와 기억장치 간에 데이터가 전송된다.
프로세서와 I/O 모듈 간에 데이터가 전송된다.
데이터에 대하여 지정된 산술 혹은 논리 연산이 수행된다.
제어(control)동작 : 점프( jump) 같이 실행 명령어의 순서가 변경될 때 사용된다.
03 버스와 상호 연결
 명령어 인출 사이클 과정
 명령어 인출 사이클의 3단계 과정
• t0 : 프로그램 카운터(PC)는 다음에 인출할 명령어의 주소를 가지고 있다.
이것을 MAR에 저장한다.
• t1 : 프로세서는 PC가 지정하는 기억장소로부터 명령어를 인출한다. 그리고
PC 내용을 증가시킨다.
• t2 : 인출된 명령어가 명령어 레지스터(IR)로 적재된다. 그리고 프로세서는
명령어를 해석하고, 요구된 동작을 수행한다.
 인출 사이클에서 주소 및 명령어의 흐름
03 버스와 상호 연결
 CPU는 실행 사이클 동안에 명령어 코드를 해독(decode)하고, 그
결과에 따라 필요한 연산들을 수행
 ADD 명령어의 예
• 기억장치에 저장된 데이터를 AC(Accumulator, 누산기)의 내용과 더하고, 그
결과는 다시 AC에 저장하는 명령어다.
 ADD 명령어 실행 사이클 3단계 과정
• t0 : MBR에 저장될 데이터의
기억장치 주소를 MAR로 전송한다.
• t1 : 저장할 데이터를 버퍼 레지스터인
MBR로 이동한다.
• t2 : MBR 데이터와 AC의 내용을
더하고 결과값을 다시 AC에 저장한다.
 ADD 명령어 실행 사이클 동안의
정보 흐름
03 버스와 상호 연결
 컴퓨터 언어를 이용한 프로그램의 작성
 어셈블리 언어(assembly language)
• 어셈블리 코드들의 집합으로, 고급 언어와 기계어 사이의 중간 언어
• 저급 언어인 기계어와 일대일 대응 관계로 기계어로의 변환과정이 쉽다.
 어셈블러 : 어셈블리 프로그램을 2진수의 기계어로 번역하는
소프트웨어
 니모닉스(mnemonics) : 어셈블리 명령어가 지정하는 동작을
개략적으로 짐작할 수 있도록 하기 위해 사용되는 기호
• LOAD : 기억장치에 저장된 데이터나 명령어를 명령어 레지스터 IR로 읽어
오는 어셈블리 명령어다.
• ADD : 두 레지스터에 저장된 데이터를 산술적으로 덧셈을 수행하고 결과를
레지스터에 저장하라는 명령어다.
• STOR : 처리되거나 계산된 데이터를 기억장치로 저장하는 명령어다.
03 버스와 상호 연결
 덧셈 연산에 대한 고급 언어에서 기계어로 변경되는 과정
 고급 언어로 두 수가 덧셈을 수행하도록 작성된 코드의 예
• Z=X+Y
 어셈블리로 변환
• 1 단계 : LOAD A, X
• 2 단계 : ADD A, Y
• 3 단계 : STOR Z, A
 기계어로의 변환
03 버스와 상호 연결
 기계어
 기계어는 두 개의 필드로 구분된 일정한 형식을 갖는다.
• 연산 코드(operation code) 필드는 CPU가 수행할 각종 연산을 지정해 주는
비트다.
• 오퍼랜드(operand) 필드는 적재될 데이터가 저장되어 있는 기억장치 주소
또는 연산에 바로 사용될 데이터 비트 값을 나타낸다.
 8비트 기계명령어 형식
• 연산 코드의 비트 수가 3이면, 지정할 수 있는
연산의 최대 수는 8(= 23)이다.
• 오퍼랜드의 비트의 수가 5이면, 지정할 수 있는
기억장소의 최대 수는 32(= 25)다.
 기억장치에 저장되어 있는 단어 단위의 기계어
• 프로그램과 데이터가 기억장치에 저장되는 단위를
단어(word)라고 하는데 CPU가 한 번에 처리할 수
있는 비트들의 그룹이다.
IT CookBook, 컴퓨터 구조와 원리 2.0