컴퓨터 공학

컴퓨터 공학(Computer Engineering)은 컴퓨터와 컴퓨터로 제어되는 장치를 구성하는 하드웨어와 소프트웨어를 설계하고 구현하며, 두 요소가 하나의 시스템으로 올바르게 동작하도록 통합하는 공학 분야이다. 컴퓨터 과학의 계산 이론과 소프트웨어 기술, 전기공학과 전자공학의 회로 및...

영문명Computer Engineering
분류공학, 컴퓨팅
기반 학문컴퓨터 과학, 전기공학, 전자공학
주요 대상컴퓨터 하드웨어, 소프트웨어, 펌웨어, 컴퓨터 제어 장치
핵심 영역디지털 논리, 컴퓨터 구조, 임베디드 시스템, 컴퓨터 네트워크, 하드웨어·소프트웨어 공동 설계
관련 산업반도체, 컴퓨터 시스템, 통신, 자동차 전자장치, 산업 자동화, 사물인터넷

컴퓨터 공학(Computer Engineering)은 컴퓨터와 컴퓨터로 제어되는 장치를 구성하는 하드웨어소프트웨어를 설계하고 구현하며, 두 요소가 하나의 시스템으로 올바르게 동작하도록 통합하는 공학 분야이다. 컴퓨터 과학의 계산 이론과 소프트웨어 기술, 전기공학전자공학의 회로 및 신호 기술을 바탕으로 프로세서, 메모리, 디지털 회로, 임베디드 시스템, 컴퓨터 네트워크와 각종 지능형 장치를 다룬다.[1]

컴퓨터 공학은 개별 전자 부품이나 프로그램만을 독립적으로 연구하기보다, 명령어를 실행하는 프로세서와 데이터를 저장하는 메모리, 외부 장치와 통신하는 인터페이스, 이를 제어하는 펌웨어와 운영체제까지 연결된 전체 계산 시스템을 주요 대상으로 삼는다. 따라서 같은 기능이라도 전용 하드웨어로 구현할지, 프로세서에서 실행되는 소프트웨어로 구현할지, 또는 두 방식을 결합할지를 결정하는 하드웨어·소프트웨어 공동 설계가 중요한 영역을 이룬다.

컴퓨터 공학자가 설계하는 시스템의 규모는 단일 논리 게이트와 집적회로에서 마이크로컨트롤러, 시스템 온 칩, 개인용 컴퓨터, 서버, 슈퍼컴퓨터와 대규모 분산 장치에 이르기까지 다양하다. 자동차의 제어 장치, 산업용 로봇, 통신 장비, 의료기기, 가전제품과 사물인터넷 장치처럼 다른 기계 내부에 포함되어 특정 기능을 수행하는 컴퓨터도 주요 연구·개발 대상이다.

현대의 컴퓨터 공학은 성능만을 높이는 데 그치지 않고 전력 소비, 생산 비용, 물리적 크기, 실시간 응답성, 신뢰성, 안전성과 보안을 함께 고려한다. 특히 반도체 집적도가 높아지고 계산 시스템이 일상적인 장치와 사회 기반 시설에 널리 포함되면서, 컴퓨터 구조와 회로 설계뿐 아니라 병렬 처리, 인공지능 가속기, 사이버 물리 시스템, 하드웨어 보안과 에너지 효율적인 계산 기술의 중요성이 커지고 있다.

ACM과 IEEE Computer Society의 컴퓨터 공학 교육 지침은 이 분야를 현대 계산 시스템과 컴퓨터 제어 장치의 하드웨어 및 소프트웨어 구성 요소를 설계·구축·구현·유지하는 학문으로 정의한다. 또한 컴퓨터 공학을 컴퓨터 과학과 전기공학에 밀접하게 연결되어 있으면서도, 고유한 지식 체계와 설계 문제를 가진 별도의 공학 분야로 다룬다.[2]

역사

전기식 계산 장치의 등장

진공관 컴퓨터

트랜지스터와 반도체

집적회로와 마이크로프로세서

개인용 컴퓨터와 마이크로컴퓨터

임베디드 시스템의 확산

시스템 온 칩과 현대 컴퓨터 공학

기초 이론

수학과 이산수학

전기회로

전자회로

신호와 시스템

확률과 통계

정보 이론

디지털 논리

수 체계와 데이터 표현

불 대수

논리 게이트

조합 논리 회로

순차 논리 회로

레지스터와 카운터

유한 상태 기계

디지털 회로의 타이밍

전자회로와 반도체

다이오드와 트랜지스터

MOSFET

CMOS

집적회로

아날로그 회로와 디지털 회로

반도체 제조

전력과 신호 무결성

컴퓨터 구조

명령어 집합 구조

중앙 처리 장치

데이터 경로와 제어 장치

파이프라이닝

캐시와 메모리 계층

가상 메모리

입출력 구조

인터럽트와 예외

병렬 컴퓨터 구조

이기종 컴퓨팅

프로세서와 가속기

범용 프로세서

마이크로컨트롤러

디지털 신호 처리 장치

그래픽 처리 장치

인공지능 가속기

주문형 집적회로

재구성 가능 하드웨어

시스템 온 칩

메모리와 저장장치

레지스터

캐시 메모리

주기억장치

비휘발성 메모리

보조 기억장치

메모리 컨트롤러

오류 검출과 정정

저장장치 인터페이스

하드웨어 설계와 구현

회로도 기반 설계

하드웨어 기술 언어

레지스터 전송 수준

논리 합성

배치와 배선

FPGA 설계

ASIC 설계

인쇄 회로 기판

시제품 제작과 양산

소프트웨어와 펌웨어

저수준 프로그래밍

어셈블리어

시스템 프로그래밍

펌웨어

부트로더

장치 드라이버

운영체제와 하드웨어 추상화

크로스 컴파일과 도구 체인

하드웨어·소프트웨어 공동 설계

시스템 요구사항 분석

하드웨어와 소프트웨어의 기능 분할

인터페이스 설계

성능과 비용의 절충

전력과 자원 최적화

공동 시뮬레이션

공동 검증

시스템 통합

임베디드 시스템

임베디드 프로세서

센서와 액추에이터

주변장치와 버스

저전력 설계

실시간 운영체제

베어메탈 시스템

산업용 제어 시스템

사물인터넷 장치

실시간 시스템

실시간 요구사항

결정성

작업과 우선순위

실시간 스케줄링

인터럽트 지연

마감시간 분석

안전 중요 시스템

장애 허용

컴퓨터 네트워크와 통신

데이터 통신

네트워크 인터페이스

유선 통신

무선 통신

통신 프로토콜의 하드웨어 구현

네트워크 프로세서

소프트웨어 정의 네트워크

시간 민감형 네트워크

로봇공학과 제어

피드백 제어

센서 융합

모터 제어

실시간 인식과 판단

자율 시스템

산업용 로봇

이동 로봇

인간과 로봇의 상호작용

신호 처리와 멀티미디어

디지털 신호 처리

필터링

음성 처리

영상 처리

데이터 압축

멀티미디어 가속기

센서 데이터 처리

병렬·분산 시스템

멀티코어 프로세서

공유 메모리

분산 메모리

병렬 프로그래밍

클러스터와 데이터 센터

엣지 컴퓨팅

고성능 컴퓨팅

보안과 신뢰성

하드웨어 보안

보안 부팅

신뢰 실행 환경

암호 연산 가속

부채널 공격

하드웨어 취약점

오류 검출과 복구

신뢰성 공학

설계 검증과 시험

기능 검증

시뮬레이션

형식 검증

정적 분석

하드웨어 시험

디버깅과 계측

성능 분석

적합성 시험

설계 목표와 절충

성능

전력 소비

에너지 효율

비용

물리적 크기

발열과 냉각

신뢰성과 수명

개발 기간

개발 도구

전자 설계 자동화

회로 시뮬레이터

논리 분석기

오실로스코프

디버거와 프로그래머

FPGA 개발 도구

반도체 설계 도구

하드웨어 에뮬레이터

활용 분야

개인용 컴퓨터와 서버

모바일 장치

자동차 전자 시스템

항공우주와 국방

산업 자동화

통신 장비

의료기기

가전제품

게임기와 멀티미디어 장치

인공지능 시스템

사물인터넷과 스마트 장치

다른 분야와의 관계

컴퓨터 과학

전기공학

전자공학

소프트웨어 공학

정보통신공학

제어공학

로봇공학

반도체 공학

기계공학과 메카트로닉스

교육과 직무

컴퓨터 공학 교육

하드웨어 엔지니어

임베디드 시스템 엔지니어

펌웨어 엔지니어

컴퓨터 구조 연구자

반도체 설계 엔지니어

시스템 엔지니어

검증 엔지니어

장점과 한계

관련 문서

  1. ACM CCECC: Computer Engineering
  2. ACM·IEEE Computer Society: Computer Engineering Curricula 2016