컴퓨터 구조

섬네일
섬네일|250px

컴퓨터 구조(computer architecture)는 컴퓨터 과학에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다. 또 다른 정의로는 컴퓨터 구조는 명령어 집합 구조(Instruction set architecture, ISA), 마이크로아키텍처(Microarchitecture) 설계, 논리 설계 및 구현을 의미한다.

 역사 
컴퓨터 구조의 첫 번째 문서는 1837년 찰스 배비지가 고안한 해석기관으로 실제 제작되지는 않았지만 논리적 설계는 범용 컴퓨터의 모습을 예측한 중요한 모델로 평가된다. 1936년 불 논리 체계와 프로그래밍이 가능한 세계 최초의 기계식 컴퓨터 Z1을 만들 때, 콘라트 추제는 향후 자신의 프로젝트에 대한 두 가지 특허 출원서에 명령어와 데이터가 동일한 저장장치에 저장하는 프로그램 내장식 컴퓨터 개념을 최초로 기술하였다.Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000 이 개념은 1945년에 컴퓨터 구조의 두 가지 중요한 발자취로 이어진다.
 존 폰 노이만은 1945년 논문 "EDVAC에 대한 보고서의 첫 번째 초안(First Draft of a Report on the EDVAC)"에서 논리적 요소에 대한 구성을 기술
 앨런 튜링은 존 폰 노이만의 논문을 인용하여 1945년에 더 자세하게 제안된 ACE(Automatic Computing Engine)Reproduced in B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, pp. 369-454.

컴퓨터 과학에서 컴퓨터 아키텍처라는 용어는 1959년 IBM 연구소의 라일 존슨(Lyle R. Johnson)과 프레더릭 브룩스(Frederick P. Brooks, Jr.)에 의해 사용되었다. 존슨은 로스앨러모스 국립 연구소(당시 로스앨러모스 과학 연구소)용 슈퍼컴퓨터인 스트레치(Stretch)를 세부 수준까지 상세히 기술하기 위해서 형식, 명령 종류, 하드웨어 매개변수, 속도 향상 등에 관한 설명은 "기계 구성"보다는 "시스템 아키텍처" 수준의 용어가 더 적합하다고 언급하였다. 그 후, 스트레치 설계자인 프레더릭 브룩스는 1962년 컴퓨터 시스템 계획: 프로젝트 스트레치(Planning a Computer System: Project Stretch)에서 다음과 같이 언급했다. 

브룩스는 계속해서 IBM_시스템/360 컴퓨터를 개발하는데 도움을 주었는데, 여기서 "아키텍처"는 "사용자가 알아야할 것"을 정의하는 용어가 되었다.

 하부 분류 
컴퓨터 구조는 기본적으로 3가지 하부 분류가 있다.<ref>
 명령어 집합 구조(Instruction set architecture, ISA) : 프로세서가 읽고 실행할 수 있는 기계어
 마이크로아키텍처(혹은 컴퓨터 조직) : 특정 프로세서가 ISA를 어떻게 구현할 것인지를 설명.
 시스템 디자인 : 컴퓨팅 시스템 내 모든 하드웨어 구성품을 포함하는 것을 의미
 데이터 경로
 메모리 컨트롤러 및 계층
 직접 메모리 접근(DMA)과 같은 CPU 이외의 데이터 처리
 가상화, 다중처리와 같은 기타 문제

 참조 

 같이 보기 

 컴퓨터 하드웨어
 소프트웨어 아키텍처
 추상화 계층
 폰 노이만 아키텍처
 하버드 아키텍처

 외부 링크 
  ISCA: Proceedings of the International Symposium on Computer Architecture
  Micro: IEEE/ACM International Symposium on Microarchitecture
  HPCA: International Symposium on High Performance Computer Architecture
  ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems 
  TCS: ACM Transactions on Computer Systems
  TACO: ACM Transactions on Architecture and Code Optimization
  TC: IEEE Transactions on Computers


분류:중앙 처리 장치