**컴퓨터 구조(Computer Architecture)**란 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법을 말합니다.
컴퓨터 구조는 컴퓨터의 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨어 및 컴퓨팅 방법에 대한 설계 등이 포함됩니다.
‘컴퓨터의 기능 구조에 대한 설계’란 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에 필요한지 고민하고, 설계하는 분야입니다. 대표적으로 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조가 있습니다.
CPU의 명령어에 대한 설계는 **명령어 집합구조(Instruction Set Architecture)**라고 불리며, CPU가 처리해야하는 명령어를 설계하는 분야입니다. 대표적으로 ARM, MIPS, AVR, 인텔의 x86 및 x86-64 등이 있습니다.
CPU의 하드웨어적 설계는 **마이크로 아키텍처(Micro Architecture)**라고 불리며 정의된 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계하는 분야입니다.
초기 컴퓨터 과학자 중 한명인 폰 노이만은 컴퓨터에 연산, 제어, 저장의 세 가지 핵심 기능이 필요하다고 생각했습니다. 근대의 컴퓨터는 연산과 제어를 위해 **중앙처리장치(Central Processing Unit, CPU)**를, 저장을 위해 **기억장치(memory)**를 사용합니다. 그리고 장치간에 데이터나 제어 신호를 교환할 수 있도록 **버스(bus)**라는 전자 통로를 사용합니다.
