세리프 따라잡기
컴퓨터 구조와 원리 2.0 : 5장 정리 본문
5. 컴퓨터 시스템의 구성과 기능
1. 컴퓨터 분해를 통한 구성장치의 분석
컴퓨터의 구성요소
컴퓨터의 외관적인 구성장치들을 주변장치(peripheral device)라고 한다.
입출력장치(Input Output Device)
입력장치(Input Device)
컴퓨터가 작업을 수행하기 위해 사용되는 데이터를 입력하는 장치
- 키보드: 데이터를 입력하는 장치로 문자, 숫자, 특수키, 기능키 등으로 구성
- 마우스: 마우스가 움직이면 그에 따라 화면에 나타난 커서가 움직이며, 위에 있는 버튼을 눌러 명령어를 선택 및 프로그램을 실행.
- 스캐너: 사진 영상을 읽어 기억장치에 디지털 데이터로 저장.
- 비디오 캠코더: 촬영한 동영상을 디지털 데이터로 변환해 컴퓨터에 입력
- 그래픽 태블릿(Graphic Tablet)과 디지타이저(Digitizer)
- 평판 태블릿, 마우스와 스타일러스로 구성.
- 대형 그래픽 도면, 손으로 쓴 글씨 등의 입력에 사용.
출력장치(Output Device)
-
컴퓨터가 수행한 결과를 나타내는 장치
-
모니터
- 가장 대표적인 출력장치
- 그래픽 카드의 종류에 따라 다양한 해상도 지원.
- 해상도는 그래픽 카드가 지니는 VRAM(Video RAM)의 용량에 따라 제한
- 액정 디스플레이(LCD)의 가격이 하락하고 해상도가 높아져 점차 액정 모니터가 일반화됨.
-
컬러 프린터
- 컴퓨터에서 출력되는 결과를 종이로 출력해주는 장치. 잉크젯 프린터(Ink Jet)와 레이저 프린터가 있음.
잉크젯은 불에 번지지만 레이저는 절대 번지지 않음.
- 프로젝터(Projector)
- 출력되는 결과를 확대할 수 있는 장치
- 컴퓨터 모니터 상에 나타나는 출력을 대형 스크린에 디스플레이하는 장비
- 많은 사람에게 동시에 멀티미디어 정보를 제공할 수 있는 외부 출력장치
- HMD(Head Mounted Display)
- 머리에 착용해 화면을 보는 디스플레이 장치
- 부착된 안경을 통해 3차원의 영상을 출력할 수 있다.
주변장치(Peripheral Device)
- 미디어 처리장치
- 오디오, 비디오 등의 미디어를 처리해 컴퓨터로 입출력
- 사운드 카드
- 소리를 컴퓨터에서 처리할 수 있는 디지털 방식으로 변환하고, 소리를 재생하거나 녹음.
- 비디오 카드 -CPU에서 처리한 그래픽 정보를 아날로그 비디오 신호로 변환해 모니터에 표시하는 장치
- '비디오 어댑터' 또는 '그래픽 카드'라고도 함
- 그래픽 가속 보드
- 3차원 그래픽 등과 같은 고품질의 해상도를 얻거나 렌더링 속도를 향상시키는 데 사용
- 현재는 비디오 카드에 내장되는 것이 보편화
보조기억장치와 통신장치
보조기억장치
- 컴퓨터의 중앙처리장치가 아닌 외부에서 프로그램이나 데이터를 보관하기 위한 기억장치. 주기억장치보다 속도는 느리나 많은 자료를 영구적으로 보관 가능
- 읽기만 가능한 장치와 읽기와 쓰기가 가능한 장치로 구분
- 재생 및 기록 가능한 보조기억장치
- 하드디스크(Hard disk): 하드라고 부르는 기억장치
- 플로피디스크(Floppy disk): 이동성이 가능한 소용량의 기억장치로, 저장용량의 부족과 물리적으로 강인하지 못한 이유로 잘 사용되진 않음
- 자기테이프(Magnetic tape): 대용량의 데이터를 저장하는 백업장치
요즘은 잘 사용하지 않음
- 재생만 가능한 장치
- CD-ROM, DVD-ROM
통신 장치
- 데이터 통신과 인터넷을 하기 위해 사용되는 주변장치
- LAN(Local Area Network)카드
- 인접 PC들을 LAN에 연결해줌
- 모뎀(MODEM: Modulator DeModulator, 변복조기)
- 디지털(Digital) 신호를 아날로그(Analog) 신호로, 아날로그 신호를 디지털 신호로 바꾸는 역할을 담당
컴퓨터의 주요 주변장치
주회로기판에 존재하는 구성요소
컴퓨터 내부의 주 회로 기판(Main Board)에는 주요 하드웨어 구성 요소들이 존재
- 주회로기판 구성
- 중앙처리장치(CPU), 주기억장치인 RAM, I/O 컨트롤러가 있다.
- 주변장치들이 연결될 수 있도록 확장슬롯과 각종 포트와 단자가 있다.
- 전원 공급장치와 중앙처리장치를 위한 냉각 송풍기, 케이블과 전선들이 있다.
- 각 구성요소들은 버스로 연결되어 데이터를 송수신한다.
주회로기판구성 요소
중앙처리장치(CPU, Central Processing Unit)
- 프로그램 실행과 데이터 처리라는 중추적인 기능 수행
- 제어장치, 연산장치, 레지스터 등으로 구성
- 다양한 마이크로프로세서를 사용
- intel, AMD, Motorola 마이크로프로세서
주기억장치(Main Memory)
- 컴퓨터 내에서 명령어와 데이터들을 기억하는 저장장치
- 고속 액세스가 가능하나 가격이 높고 저장 용량의 한계가 있음
- 영구 저장 능력이 없어 프로그램 실행 중에 일시적으로만 저장 기능을 수행.
- RAM(Random Access Memory)
- CPU가 읽기, 쓰기를 위한 기억장치로, 명령어와 데이터를 저장
- ROM(Read Only Memory)
- 읽기전용 기억장치로 부팅(booting)에 필요한 명령어를 내장하고 있다.
- 캐시 메모리(Cache Memory)
- RAM보다 빠른 고속 RAM으로 CPU에 자주 쓰이는 명령어와 데이터를 저장해 처리 성능을 높이는 역할을 한다.
보조기억장치
- 주기억장치를 보조하므로 2차 기억장치(secondary memory)라고 한다.
- 액세스의 속도가 저속이고 대용량 데이터를 저장하는 데 사용
- 하드디스크, DVD-ROM, CD-ROM, 플로피디스크 등이 있다.
- IDE등의 표준화 연결방식으로 CPU에 연결
시스템 확장 카드
- 컴퓨터의 기능을 확장하거나 보조하기 위해 카드 형태로 만들어진 장치
- 사용자는 특수 목적에 맞는 확장카드를 주회로기판에 부착하여 사용
- LAN카드, 사운드 카드, 그래픽 카드, 영상카드 등의 다양한 종류가 있다.
입출력 포트
- 입출력장치를 컴퓨터에 연결해주는 역할을 한다.
- 병렬 포트(Parallel Port), 직렬 포트(Serial Port), USB 포트, Firewire 포트, LAN 포트, 음향기기를 위한 입출력 포트 등이 있다.
- 최근에는 병렬포트와 직렬포트가 USB 포트와 Firewire 포트로 대체되고 있으며, 블루투스의 무선 연결 방식으로 대체되고 있는 추세다.
2. 컴퓨터의 구성 요소
컴퓨터 시스템이 동작하려면 하드웨어뿐만 아니라 소프트웨어도 필요
- 컴퓨터를 구성하는 장치인 하드웨어는 물리적인 실체로 컴퓨터에서 사용되는 정보들을 처리, 전송, 저장 그리고 전송 통로를 제공한다.
- 하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의 부호들(codes) 혹은 명령어들(instructions)의 집합을 소프트웨어(Software)라 한다.
- 펌웨어(Firmware)는 소프트웨어를 하드웨어화한 것으로 하드웨어와 소프트웨어의 중간단계에 해당되어 미들웨어(Middleware)라고도 한다.
컴퓨터 하드웨어의 분류
중앙처리장치(CPU)
- 컴퓨터의 두뇌로서 프로그램을 읽고 해석하여 실행한다.
- 산술논리연산장치, 제어장치, 레지스터로 구성된다.
기억장치
- 컴퓨터에 필요한 정보를 저장하는 장치다.
- CPU가 사용하는 주기억장치와 영구적 저장을 위한 보조기억장치로 구성된다.
입력장치
- 컴퓨터 시스템 외부에서 정보를 입력받는 장치
- 마우스, 키보드, 터치패드, 광학 스케너 등이 있다.
출력장치
- 컴퓨터 시스템에서 처리된 결과물을 외부로 출력해주는 장치
- 대표적인 출력장치로 프린터, 스피커, 모니터 등이 있다.
중앙처리장치를 구성하는 하드웨어
중앙처리장치의 구성
- 산술논리연산장치, 레지스터, 제어장치는 논리회로 소자들의 집합이다.
산술논리연산장치(ALU, Arithmetic and logical Unit)
- 컴퓨터에서 수행하는 산술 연산과 논리 연산을 수행하는 장치
- ALU를 어떻게 설계하느냐에 따라 연산의 개수가 결정
간단하게 설계된 ALU
- a는 산술 연산을 위한 처리기, 논리 연산을 위한 처리기 그리고 이동 처리를 위한 이동 처리기가 있다.
- b는 처리기들이 4x1 멀티플렉서를 통해서 연산의 결과를 출력하는 a의 우측부분을 확대해서 나타낸 것이다.
산술연산 처리기
- 4비트의 덧셈과 뺄셈 연산을 수행하도록 설계되었다.
- 전가산기 4개를 가지고 조합논리회로를 구성
논리연산 처리기
- AND, OR, XOR, 보수 연산을 수행
- 각 해당 산술 연산의 논리 게이트가 4x1 멀티플렉서에 연결된다.
이동처리기
- 양쪽으로 이동하는 레지스터로 2의 곱셈과 나눗셈 연산을 수행
- 레지스터는 4개의 D플립플롭을 가지고 설계된 순차 논리회로다.
레지스터
- CPU에서 사용되는 데이터 정보를 임시적으로 저장하는 장치다.
- 플립플롭의 연결을 기본으로 하는 순차 논리 회로다.
- 4비트 데이터를 병렬로 읽기와 쓰시가 가능한 레지스터다.
레지스터의 종류
프로그램 카운터(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사이에 교환되는 데이터를 일시적으로 저장.
제어장치
CPU에서 사용하는 명령어의 실행 과정을 관리하고 제어하는 장치제어장치 내의 구성
- 순서제어 논리장치(sequencing logic), 제어장치 레지스터들(control unit registers), 명령어 해독기(decoder), 제어 메모리(control memory)로 구성
- 제어장치 레지스터들에는 제어 주소 레지스터(control address register), 제어 버퍼 레지스터(control buffer register), 서브루틴 레지스터(subroutine register)등이 있다.
제어장치의 마이크로 구조
가장 기본적인 형태로 만들어진 제어장치의 구조
- 레지스터, 기억장치, 해독기, 순서제어 모듈로 구성된다.
명령어 해독기와 순서제어 모듈
명령어 해독기는 디코더를 사용하여 구현순서 제어모듈은 멀티플렉서와 주소 선택회로로 구성
기억장치를 구성하는 논리회로
- 반도체 기억장치에서 논리 회로를 이용하는 기억장치는 RAM의 한 종류인 SRAM이 있다.
- SRAM은 플립플롭을 기본 구성으로 해서 1비트를 저장하는 기억소자를 만든다.
- SRAM 기억소자의 논리회로와 논리기호
- RS플립플롭과 AND 게이트가 조합된 순차 논리회로를 구성한다.
4X3 SRAM의 기본구조
- 주소 입력을 위해 2x4 디코더가 이용되고 출력단에서는 OR 게이트를 사용함.
입출력 제어기를 구성하는 논리 회로
- 입출력장치와 CPU와의 처리속도는 그 차이가 너무 커서 직접적으로 데이터를 주고 받는 것은 굉장히 비효율적
속도 차이를 극복하기 위한 방법으로 입출력 제어기를 사용
- 처리속도 및 동작 특성이 유사한 입출력 장치들을 제어 관리
입출력 제어기의 구조
- 레지스터와 주소 디코더는 일반적인 조합 논리 회로와 순차 논리 회로들을 이용해 그 기능을 수행할 수 있다. 제어 회로도 마찬가지
버스를 통한 하드웨어의 연결
- 컴퓨터를 구성하는 하드웨어는 버스를 통해 연결되고 이를 통해 데이터와 각종 제어신호를 전달
- 버스로 연결된 컴퓨터의 구성 요소와 중앙처리장치를 중심으로 데이터 신호와 명령 신호의 흐름
소프트웨어
컴퓨터 명령(command)
- 정보를 원하는 형태로 처리하고, 목적하는 방향으로 이동시키면 저장장치에 저장시키는 동작을 수행
소프트웨어
- 명령들이 모여서 하나의 프로그램을 형성하며, 프로그램들이 모여서 집합을 형성한 것이 소프트웨어다.
- 컴퓨터 시스템이나 주변기기 등의 하드웨어를 작동시켜 원하는 작업 결과를 얻기 위한 프로그램 또는 명령어의 거대 집합
소프트웨어의 분류
- 시스템 소프트웨어, 응용 소프트웨어로 분류된다.
시스템 소프트웨어
컴퓨터 시스템의 운영을 위한 프로그램으로, 컴퓨터 시스템의 개별 하드웨어 요소들을 직접 제어, 통합, 관리하는 가장 큰 기능을 수행
- 운영체제, 장치 드라이버, 프로그래밍 도구, 컴파일러, 어셈블러, 유틸리티
시스템 소프트웨어의 계층적 분류
운영체제(OS, operating system)
운영체제의 역할
- 물리적 장치와 논리적 자원인 파일의 관리 및 제어를 수행
- 하드웨어를 직접 제어하고 자원을 관리해서 컴퓨터의 시동, 메모리나 파일 관리, 주변기기 관리, 네트워크에 연결 등의 작업을 수행
- 응용 프로그램들의 실행환경을 제공
- 컴퓨터와 사용자 사이의 중재적 역할
운영체재 기능
- 컴퓨터의 시동(부팅)
- 사용자 인터페이스 제공
- 프로그램 실행관리
- 메모리 관리
- 파일 관리
- 기타 기능: 보안 기능, 암호화 및 압축 기능, 인터넷 연결 작업, 네트워크 제어 기능, 성능 모니터링 기능 등을 지원.
프로그래밍 언어
- 컴퓨터가 읽고 사용하는 명령이나 코드의 집합으로, 프로그래머가 의도한대로 동작하는 프로그램을 개발하는 데 사용
고급 언어
- 명령어가 인간이 사용하는 일상적인 문장에 가까운 언어
- 컴퓨터가 사용하는 기계어하고는 차이가 커, 고급 언어를 기계어로 번역하기 위해서는 복잡한 과정을 거쳐야 함.
저수준 언어
- 컴퓨터가 사용하는 언어(기계어)
- 데이터를 표현에 있어 기본 단위인 비트의 값 0, 1로 표기하는 언어
어셈블리 언어
- 컴퓨터 고유의 기계어 명령을 사람이 어느 정도 해독할 수 있도록 문자화하거나 기호화한 형태의 중간 수준의 언어
컴파일과 컴파일러
컴파일
- 프로그램을 컴퓨터가 이해할 수 있는 언어로 번역하는 과정을 컴파일이라고 한다.
컴파일러
- 모든 프로그램은 컴퓨터가 사용할 수 있는 기계어로 번역되어야 실행 가능
- 소스 프로그램을 기계어로 번역하여 오브젝트 코드라 불리는 실행 가능한 프로그램으로 만들어주는 프로그램
데이터베이스 관리시스템(DBMS)
응용 소프트웨어와 운영체제 사이에서 대용량 데이터를 효율적으로 관리하기 위한 시스템 소프트웨어
데이터베이스의 추가, 수정, 검색 등의 작업을 하기 위한 시스템 인터페이스를 제공하며 관리
DBMS의 특징
- 데이터의 효율적 관리
- 데이터 접근에 대한 관리
- 효율적인 데이터 검색
- 원하는 형태의 보고서 즉시 작성
- 백업 및 복구 기능 보유
- ★다양한 인터페이스 제공
범용 유틸리티 소프트웨어와 장치드라이버
범용 유틸리티 소프트웨어
- 사용자가 컴퓨터를 효율적으로 관리하는데 필요한 다양한 기능을 독립적으로 수행하는 프로그램
- 대표적인 기능
- 파일 관리 기능: 파일의 목록을 보여주고 파일을 복사하거나 이름을 바꾸고 삭제하며 저장
- 디스크 관리 기능
- 불필요한 파일을 삭제하거나 문제점을 해결한다. 그리고 포맷팅 기능도 있다.
- 디스크 조각 모으기를 통해 작은 조각들을 모아 파일공간으로 사용하기 쉽도록 만들어 주는 기능을 포함
- 시스템 상태 보기
- 컴퓨터 하드웨어, 주변기기나 시스템 소프트웨어의 상태 보기를 통해, 시스템의 문제를 진단.
장치 드라이버
- 컴퓨터에 연결되는 주변 장치들을 제어할 수 있도록 지원하는 소프트웨어.
응용 소프트웨어
컴퓨터에게 특정목적의 작업을 수행하기 위한 프로그램들
- 컴퓨터가 많은 다른 작업을 수행할 수 있도록 하는 소프트웨어.
응용 소프트웨어에 대한 계층적 개념과 분류
응용 소프트웨어 종류 및 특성
펌웨어(Firmware)
일반적으로 시스템의 효율을 높이기 위한 ROM에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미
- ROM은 프로그램이 고정되어 있기 때문에 하드웨어의 특성도 가지고 있으나 실제로는 소프트웨어에 더 가깝다
- 소프트웨어를 하드웨어화 시킨 것으로 소프트웨어와 하드웨어의 중간에 해당(미들웨어)
소프트웨어의 기능을 펌웨어로 변경할 수 있으면 속도가 현저하게 증대
- 고속 처리가 필요한 프로그램은 펌웨어로 만들어 사용
하드웨어의 기능을 펌웨어로 변경하면 속도는 느려진다.
- 논리 회로를 설계하여 사용하는 것 보다 저렴하고 편리하게 구현하여 사용할 수 있는 장점이 있다.
3. 버스와 상호 연결
버스(bus)
컴퓨터에서 두 개 혹은 그 이상의 장치들을 연결하는 공유 전송 매체
버스를 통해서 전송되는 데이터의 유형들
- 프로세서가 기억장치로부터 명령어와 데이터를 읽는 유형
- 프로세서가 기억장치에 데이터를 저장하는 유형
- 프로세서는 입출력(in/output, I/O) 모듈을 통해 I/O장치로부터 데이터를 읽고, 프로세서가 I/O장치로 데이터를 전송하는 유형
- I/O 모듈이 DMA(direct memory access)를 통해 기억장치와 직접 데이터를 교환하는 전송 유형
시스템 버스
- 프로세서, 기억장치 및 I/O 장치간의 통신을 위한 상호 연결.
시스템 버스의 분류
주소 버스
- 데이터가 읽혀지거나 쓰여질 기억장소의 주소를 전송하는 통로
데이터 버스
- 모듈들 사이로 데이터를 전송하는 통로
- CPU가 기억장치와 I/O 장치와의 사이에 데이터를 전송하는 신호 선들의 집합
제어 버스
- 제어신호들을 전송하는 통로
- CPU가 컴퓨터 내의 각종 장치들의 동작을 제어하기 위한 신호 선들의 집합
- 기억장치 읽기/쓰기 신호
- 전송 확인, 인터럽트 확인
- 버스 승인
- I/O 읽기/쓰기
- 버스 요구, 인터럽트 요구
- 리셋
시스템 버스의 구성
시스템 버스의 방향성과 기억장치 쓰기와 읽기 시간
시스템 버스의 방향성
- 데이터 버스는 읽기와 쓰기 동작을 모두 수행함= 양방향성
- 제어 버스는 요구 제어신호와 확인 제어신호를 사용= 양방향성
- 주소 버스는 신호가 CPU로부터 기억장치 혹은 I/O 장치들로만 전송되지만 반대로의 전송은 존재하지 않음= 단방향성
- 기억장치 쓰기 동작
- CPU는 기억장치에 데이터를 전송해서 저장
- 기억장치 읽기 동작
- CPU가 기억장치에 저장된 데이터를 가져와 자신의 레지스터에 싣음.
기억장치 쓰기 시간
- 기억장치 쓰기 동작에서 CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간
기억장치 읽기 시간
- 기억장치 읽기 동작에서 주소를 해독(decode)하는 데 걸리는 시간과 선택된 기억 소자들로부터 데이터를 읽는 데 걸리는 시간을 합한 시간.
기억장치 액세스 동작의 시간 흐름도
CPU와 주변장치와의 데이터 전송
CPU에서 입출력장치로의 데이터 이동
- CPU의 속도와 입출력장치의 처리속도의 차이가 커서, 고속으로 전송된 데이터들은 느린 처리속도를 가진 입출력장치가 제대로 처리를 못한다.
- 시스템 버스와 입출력장치를 연결하는 입출력장치 제어기가 있다.
CPU와 입출력 장치간의 데이터 흐름
입출력 장치 제어기의 역할
- CPU로부터 입출력 명령을 받아서, 해당 입출력 장치를 제어하고 데이터를 이동시키는 명령을 수행하는 전자회로 장치, 두 개의 레지스터가 존재
- 상태 레지스터
- 입출력장치의 현재 상태를 나타내는 비트들을 저장한 레지스터. 준비 상태(RDY) 비트, 데이터 전송확인(ACK) 비트가 해당 상태를 표시
- 데이터 레지스터
- CPU에서 입출력 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터
시스템 버스를 통한 구성장치의 연결
'논리' 카테고리의 다른 글
컴퓨터 구조와 원리 2.0 : 4장 정리 (0) | 2020.10.11 |
---|---|
컴퓨터 구조와 원리 2.0 : 3장 정리 (0) | 2020.10.09 |