컴퓨터 구성장치의 분석
입출력장치
입력장치
- 컴퓨터가 작업을 수행하기 위해 사용되는 데이터를 입력하는 장치
- 키보드, 마우스, 스캐너, 비디오 캠코더, 그래픽 태블릿, 디지타이저 등
출력장치
- 컴퓨터가 수행한 결과를 나타내는 장치
- 모니터, 프린터, 프로젝터, HMD 등
주변장치
- 미디어 처리장치: 오디오·비디오 등의 미디어를 처리해서 컴퓨터로 입출력
- 사운드 카드: 소리를 컴퓨터에서 처리할 수 있는 디지털 방식으로 변환하고, 소리를 재생하거나 녹음
- 비디오 카드: CPU에서 처리한 그래픽 정보를 아날로그 비디오 신호로 변환하여 모니터에 표시하는 장치
- 그래픽 가속 보드: 3차원 그래픽 등과 같은 고품질의 해상도를 얻거나 렌더링 속도를 향상시키는 데 사용
보조기억장치
- 컴퓨터의 중앙처리장치가 아닌 외부에서 프로그램이나 데이터를 보관하기 위한 기억장치
- 주기억장치보다 속도는 느리지만 많은 자료를 영구적으로 보관할 수 있음
- 읽기만 가능한 장치와 읽기와 쓰기가 가능한 장치로 구분
- 읽기 & 쓰기 - 하드디스크, 플로피디스크, 자기테이프
- 읽기 전용 - CD-ROM, DVD-ROM
통신장치
- 데이터 통신과 인터넷을 하기 위해서 사용되는 주변장치
- LAN 카드: PC들을 LAN(Local Area Network)에 연결
- 모뎀: 디지털 신호를 아날로그로, 아날로그 신호를 디지털로 바꾸는 역할(변복조기, MOdulator DEModulator)
주회로기판(Main Board)
- CPU, RAM, I/O 컨트롤러
- 주변장치들이 연결될 수 있도록 확장슬롯, 각종 포트와 단자
- 전원 공급장치와 중앙처리장치를 위한 쿨러, 케이블, 전선
중앙처리장치(CPU)
- 프로그램 실행과 데이터 처리라는 중추적인 기능 수행
- 제어장치·연산장치·레지스터 등으로 구성
- 다양한 마이크로프로세서를 사용
주기억장치
- 컴퓨터 내에서 명령어와 데이터들을 기억하는 저장장치
- 고속 액세스가 가능하나 가격이 높고 저장 용량의 한계
- 영구 저장 능력이 없어 프로그램 실행 중에 일시적으로만 저장기능을 수행
- 휘발성 메모리
구분 | 특징 |
RAM | CPU가 읽기·쓰기를 위한 기억장치로 명령어와 데이터를 저장 |
ROM | 읽기 전용 기억장치로 부팅에 필요한 명령어를 내장 |
캐시 메모리 | DRAM보다 빠른 고속 RAM(SRAM)으로 CPU에 자주 쓰이는 명령어와 데이터를 저장하여 처리 성능을 높이는 역할 |
보조기억장치
- 주기억장치를 보조하므로 2차 기억장치(secondary memory)라고 함
- 액세스의 속도가 저속이고 대용량 데이터를 저장하는 데 사용
- SSD, 하드디스크 등
- IDE 등의 표준화 연결 방식으로 CPU에 연결
시스템 확장 카드
- 컴퓨터의 기능을 확장하거나 보조하기 위하여 카드 형태로 만들어진 장치
- 사용자는 특수 목적에 맞는 확장카드를 주회로기판에 부착하여 사용
- LAN 카드, 사운드 카드, 그래픽 카드, 영상 카드 등
입출력 포트
- 입출력장치를 컴퓨터에 연결해주는 역할
- 병렬포트, 직렬포트, USB 포트, Firewire 포트, LAN 포트, 음향기기를 위한 입출력 포트 등
- 최근에는 병렬포트와 직렬포트가 USB 포트와 Firewire 포트 등으로 대체되고 있음
- 블루투스와 무선 연결 방식으로 대체되고 있는 추세
컴퓨터의 구성요소
- 컴퓨터 시스템이 동작하려면 하드웨어 뿐만 아니라 소프트웨어도 필요
- 컴퓨터를 구성하는 장치인 하드웨어는 물리적인 실체로 컴퓨터에서 사용되는 정보들을 처리·전송·저장 그리고 전송 통로를 제공
- 하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의 부호(codes) 혹은 명령어(instructions)의 집합을 소프트웨어라고 함
- 펌웨어는 소프트웨어를 하드웨어화한 것으로 하드웨어와 소프트웨어의 중간 단계에 해당되어 미들웨어라고도 함
CPU를 구성하는 하드웨어
산술논리연산장치
- ALU, Arithmetic and Logical Unit
- 컴퓨터에서 수행하는 산술 연산과 논리 연산을 수행하는 장치
- ALU를 어떻게 설계하느냐에 따라서 연산의 개수가 결정됨
- 산술연산 처리기
- 4비트의 덧셈과 뺄셈 연산을 수행하도록 설계
- 전가산기 4개를 가지고 조합논리회로를 구성
- 논리연산 처리기
- AND·OR·XOR·NOT 연산을 수행
- 각 해당 연산의 논리 게이트가 4×1 멀티플렉서에 연결됨
- 이동(Shift) 처리기
- 양쪽으로 이동하는 레지스터로 2의 곱셈과 나눗셈 연산을 수행
- 레지스터는 4개의 D 플립플롭을 가지고 설계된 순차 논리회로
레지스터
- CPU에서 사용되는 데이터 정보를 임시적으로 저장하는 장치
- 플립플롭의 연결을 기본으로 하는 순차 논리회로
- 4비트 데이터를 병렬로 읽기와 쓰기가 가능한 레지스터
- 프로그램 카운터(PC): 다음에 실행할 명령어의 주소를 저장하는 레지스터
- 명령어 레지스터(IR): 기억장치로부터 읽어온 명령어를 수행하기 위하여 일시적으로 저장
- 기억장치 주소 레지스터(MAR): 다음에 읽기 동작이나 쓰기 동작을 수행할 기억장소의 주소를 저장하는 주소 저장용 레지스터
- 기억장치 버퍼 레지스터(MBR): 기억장치에 저장될 데이터 혹은 기억장치로부터 읽은 데이터를 임시로 저장
- 입/출력 주소 레지스터(I/O AR): 입/출력장치의 주소를 저장하는 주소 레지스터
- 입/출력 버퍼 레지스터(I/O BR): 입/출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장
제어장치
- CPU에서 사용하는 명령어의 실행 과정을 관리하고 제어하는 장치
입출력 제어기를 구성하는 논리 회로
- 입출력장치와 CPU와의 처리속도는 그 차이가 너무 커서 직접적으로 데이터를 주고 받는 것은 굉장히 비효율적
- 속도 차이를 극복하기 위한 방법으로 입출력 제어기 사용
- 레지스터와 주소 디코더는 일반적은 조합 논리회로와 순차 논리회로들을 이용하여 그 기능을 수행할 수 있음
버스를 통한 하드웨어의 연결
- 컴퓨터를 구성하는 하드웨어는 버스를 통해서 연결되고 이를 통해서 데이터와 각종 제어신호 전달
- 버스로 연결된 컴퓨터의 구성 요소와 중앙처리장치를 중심으로 데이터 신호와 명령 신호의 흐름
소프트웨어
- 명령들이 모여서 프로그램을 형성하며, 프로그램들이 모여서 집합을 형성한 것
- 컴퓨터 시스템이나 주변기기 등의 하드웨어를 작동시켜 원하는 작업 결과를 얻기 위한 프로그램 또는 명령어의 거대 집합
- 컴퓨터 명령: 정보를 원하는 형태로 처리하고, 목적하는 방향으로 이동시키면 저장장치에 저장시키는 동작을 수행
- 시스템 소프트웨어: 컴퓨터의 기본적인 운영작업 수행 지원
- 응용 소프트웨어: 사용자 수행작업 지원
시스템 소프트웨어
- 컴퓨터 시스템의 운영을 위한 프로그램으로, 컴퓨터 시스템의 개별 하드웨어 요소들을 직접 제어·통합·관리하는 가장 큰 기능을 수행
- 운영체제, 장치 드라이버, 프로그래밍 도구, 컴파일러, 어셈블러, 유틸리티
운영체제
- 물리적 장치와 논리적 자원인 파일의 관리 및 제어를 수행
- 하드웨어를 직접 제어하고 자원을 관리해서 컴퓨터의 시동, 메모리나 파일 관리, 주변기기 관리, 네트워크 연결 등의 작업 수행
- 응용 프로그램들의 실행환경 제공
- 컴퓨터와 사용자 사이의 중재적 역할
프로그래밍 언어
- 컴퓨터가 읽고 사용하는 명령이나 코드의 집합
- 프로그래머가 의도한 대로 동작하는 프로그램을 개발하는 데 사용
- 고급언어: 명령어가 인간이 사용하는 일상적인 문장에 가까운 언어, 기계어로 번역하기 위해 복잡한 과정 필요
- 저급언어: 컴퓨터가 사용하는 언어(기계어), 데이터 표현에 0과 1 사용
- 어셈블리어: 컴퓨터 고유의 기계어 명령을 사람이 어느 정도 해독할 수 있도록 문자화하거나 기호화한 형태
컴파일러
- 컴파일: 프로그램을 컴퓨터가 이해할 수 있는 언어로 번역하는 과정
- 모든 프로그램은 컴퓨터가 사용할 수 있는 기계어로 번역되어야 실행 가능
- 소스 프로그램을 기계어로 번역하여 오브젝트 코드라 불리는 실행 가능한 프로그램으로 만들어주는 프로그램
데이터베이스 관리시스템(DBMS)
- 응용 소프트웨어와 운영체제 사이에서 대용량 데이터를 효율적으로 관리하기 위한 시스템 소프트웨어
- 데이터베이스의 추가·수정·검색 등의 작업을 하기 위한 시스템 인터페이스를 제공하며 관리
범용 유틸리티 소프트웨어
- 사용자가 컴퓨터를 효율적으로 관리하는데 필요한 다양한 기능을 독립적으로 수행하는 프로그램
- 파일 관리 기능, 디스크 관리 기능, 시스템 상태 관리
장치 드라이버
- 컴퓨터에 연결되는 주변 장치를 제어할 수 있도록 지원하는 소프트웨어
응용 소프트웨어
- 컴퓨터에게 특정 목적의 작업을 수행하기 위한 프로그램들
- 컴퓨터가 많은 다른 작업을 수행할 수 있도록 하는 소프트웨어
- 문서 작성, 그래픽, 프레젠테이션, 수치 분석, 정보 및 참조, 데이터 관리, 연결, 교육 및 훈련, 게임, 회계 및 재무, 기업
펌웨어
- 일반적으로 시스템의 효율을 높이기 위한 ROM에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미
- ROM은 프로그램이 고정되어 있기 때문에 하드웨어의 특성도 가지고 있지만 실제로는 소프트웨어에 더 가까움
- 소프트웨어를 하드웨어화 시킨 것으로 소프트웨어와 하드웨어의 중간에 해당
- 소프트웨어의 기능을 펌웨어로 변경할 수 있으면 속도가 현저히 증대함
- 고속 처리가 필요한 프로그램은 펌웨어로 만들어 사용함
- 하드웨어의 기능을 펌웨어로 변경하면 속도는 느려짐
- 논리 회로를 설계하여 사용하는 것보다 저렴하고, 편리하게 구현하여 사용할 수 있는 장점을 가짐