컴퓨터 구조

컴퓨터 구조(computer architecture)는 컴퓨터 과학에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다. 또 다른 정의로는 컴퓨터 구조는 명령어 집합 구조(Instruction set architecture, ISA), 마이크로아키텍처(Microarchitecture) 설계, 논리 설계 및 구현을 의미한다. 컴퓨터 구조의 첫 번째 문서는 1837년 찰스 배비지가 고안한 해석기관으로 실제 제작되지는 않았지만 논리적 설계는 범용 컴퓨터의 모습을 예측한 중요한 모델로 평가된다. 1936년 불 논리 체계와 프로그래밍이 가능한 세계 최초의 기계식 컴퓨터 Z1을 만들 때, 콘라트 추제는 향후 자신의 프로젝트에 대한 두 가지 특허 출원서에 명령어와 데이터가 동일한 저장장치에 저장하는 프로그램 내장식 컴퓨터 개념을 최초로 기술하였다. 이 개념은 1945년에 컴퓨터 구조의 두 가지 중요한 발자취로 이어진다. 존 폰 노이만은 1945년 논문 "EDVAC에 대한 보고서의 첫 번째 초안(First Draft of a Report on the EDVAC)"에서 논리적 요소에 대한 구성을 기술 앨런 튜링은 존 폰 노이만의 논문을 인용하여 1945년에 더 자세하게 제안된 ACE(Automatic Computing Engine) 컴퓨터 과학에서 컴퓨터 아키텍처라는 용어는 1959년 IBM 연구소의 라일 존슨(Lyle R. Johnson)과 프레더릭 브룩스(Frederick P. Brooks, Jr.)에 의해 사용되었다. 존슨은 로스앨러모스 국립 연구소(당시 로스앨러모스 과학 연구소)용 슈퍼컴퓨터인 스트레치(Stretch)를 세부 수준까지 상세히 기술하기 위해서 형식, 명령 종류, 하드웨어 매개변수, 속도 향상 등에 관한 설명은 "기계 구성"보다는 "시스템 아키텍처" 수준의 용어가 더 적합하다고 언급하였다. 그 후, 스트레치 설계자인 프레더릭 브룩스는 1962년 컴퓨터 시스템 계획: 프로젝트 스트레치(Planning a Computer System: Project Stretch)에서 다음과 같이 언급했다. 다른 아키텍처와 마찬가지로 컴퓨터 아키텍처는 구조 사용자의 요구를 결정한 후 경제적, 기술적 제약 내에서 가능한 한 효과적으로 요구를 충족하도록 설계하는 기술이다. (Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.) 브룩스는 계속해서 IBM_시스템/360 컴퓨터를 개발하는데 도움을 주었는데, 여기서 "아키텍처"는 "사용자가 알아야할 것"을 정의하는 용어가 되었다. 컴퓨터 구조는 기본적으로 3가지 하부 분류가 있다.<ref> 명령어 집합 구조(Instruction set architecture, ISA) : 프로세서가 읽고 실행할 수 있는 기계어 마이크로아키텍처(혹은 컴퓨터 조직) : 특정 프로세서가 ISA를 어떻게 구현할 것인지를 설명. 시스템 디자인 : 컴퓨팅 시스템 내 모든 하드웨어 구성품을 포함하는 것을 의미 데이터 경로 메모리 컨트롤러 및 계층 직접 메모리 접근(DMA)과 같은 CPU 이외의 데이터 처리 가상화, 다중처리와 같은 기타 문제 Hennessy, John; Patterson, David. 《Computer Architecture: A Quantitative Approach》 Fif판. 11쪽. This task has many aspects, including instruction set design, functional organization, logic design,and implementation.  “Electronic Digital Computers”, 《Nature》 162, 1948년 9월 25일: 487, doi:10.1038/162487a0, 2009년 4월 6일에 원본 문서에서 보존된 문서, 2009년 4월 10일에 확인함  Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000 Neumann, John (1945). 《First Draft of a Report on the EDVAC》. 9쪽.  Reproduced in B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, pp. 369-454. Johnson, Lyle (1960). “A Description of Stretch” (PDF). 1쪽. 2017년 10월 7일에 확인함.  Buchholz, Werner (1962). 《Planning a Computer System》. 5쪽.  “Computer components”, 《컴퓨터 구성 요소》 162, 2008년 9월 21일: 487, doi:Computer |doi= 값 확인 필요 (도움말), 2018년 1월 25일에 원본 문서에서 보존된 문서, 2009년 4월 10일에 확인함  위키미디어 공용에 관련된 미디어 분류가 있습니다. 컴퓨터 구조 컴퓨터 하드웨어 소프트웨어 아키텍처 추상화 계층 폰 노이만 아키텍처 하버드 아키텍처 (영어) 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 Archived 2006년 5월 9일 - 웨이백 머신 (영어) TCS: ACM Transactions on Computer Systems (영어) TACO: ACM Transactions on Architecture and Code Optimization (영어) TC: IEEE Transactions on Computers