컴퓨터 구조: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
1 개의 출처 구조, 0 개의 링크를 깨진 것으로 표시 #IABot (v2.0beta14)
Orderkim (토론 | 기여)
편집 요약 없음
2번째 줄:
[[파일:com_abstract_layers_kor.png|섬네일|250px]]
 
'''컴퓨터 구조'''(computer architecture)는 [[컴퓨터 공학]]에서 컴퓨터 시스템의 기능(functionality), 구성(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다. 또 다른 정의로는 컴퓨터 구조는 [[명령어 집합|명령어 집합 구조]](Instruction set architecture, ISA), [[마이크로아키텍처]](Microarchitecture) 설계, 논리 설계 및 [[구현]]을 의미한다.<ref>{{cite book|last1=Hennessy|first1=John|last2=Patterson|first2=David|title=Computer Architecture: A Quantitative Approach|page=11|edition=Fifth|quote=This task has many aspects, including instruction set design, functional organization, logic design,and implementation.}}</ref>
'''컴퓨터 구조'''(computer architecture)는 [[컴퓨터 공학]]에서 개념의 설계요, [[컴퓨터]] 시스템의 근간이 되는 운영 구조이다. 컴퓨터의 여러 부분에 대해 설계적으로 이식되는 것들과 요구 사항들(특히 속도와 상호 연결)이 무엇인지 기능적으로 설명되어 있는 [[청사진]]이다. 주로 [[중앙 처리 장치]] (CPU)가 [[메모리 주소]]에 내부적으로 수행하고 접근하는 방법이 집중적으로 설명된다.
 
== 역사 ==
하드웨어 부품을 골라서 상호적으로 연결하여 기능, 성능, 비용적인 목표를 충족하는 컴퓨터를 만들어 내는 과학과 기술로 정의될 수도 있다.
컴퓨터 구조의 첫번째 문서는 1837년 [[찰스 배비지]]가 고안한 [[해석기관]]으로 실제 제작되지는 않았지만, 논리적 설계는 범용 컴퓨터의 모습을 예측한 중요한 모델로 평가된다. 1936년 [[불 논리]] 체계와 프로그래밍이 가능한 세계 최초의 기계식 컴퓨터 [[Z1_(컴퓨터)|Z1]]을 만들 때, [[콘라트 추제]]는 향후 자신의 프로젝트에 대한 두 가지 특허 출원서에 명령어와 데이터가 동일한 저장장치에 저장하는 [[프로그램 내장식 컴퓨터]] 개념을 최초로 기술하였다.<ref>{{citation |title=Electronic Digital Computers |journal=Nature |date=25 September 1948 |volume=162 |page=487 |url=http://www.computer50.org/kgill/mark1/natletter.html |accessdate=2009-04-10 |doi=10.1038/162487a0 |archive-url=https://web.archive.org/web/20090406014626/http://www.computer50.org/kgill/mark1/natletter.html |archive-date=6 April 2009 |dead-url=yes }}</ref><ref>Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000</ref> 이 개념은 1945년에 컴퓨터 구조의 두 가지 중요한 발자취로 이어진다.
* [[존 폰 노이만]]은 1945년 논문 "EDVAC에 대한 보고서의 첫 번째 초안(First Draft of a Report on the EDVAC)"에서 논리적 요소에 대한 구성을 기술<ref>{{Cite book|title=First Draft of a Report on the EDVAC|last=Neumann|first=John|publisher=|year=1945|isbn=|location=|pages=9}}</ref>
*[[앨런 튜링]]은 [[존 폰 노이만]]의 논문을 인용하여 1945년에 더 자세하게 제안된 ACE(Automatic Computing Engine)<ref>Reproduced in B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, pp. 369-454.</ref>
 
[[컴퓨터 공학]]에서 컴퓨터 아키텍처라는 용어는 1959년 IBM 연구소의 라일 존슨(Lyle R. Johnson)과 [[프레더릭 브룩스]](Frederick P. Brooks, Jr.)에 의해 사용되었다. 존슨은 [[로스앨러모스 국립 연구소]](당시 로스앨러모스 과학 연구소)용 슈퍼컴퓨터인 스트레치(Stretch)를 세부 수준까지 상세히 기술하기 위해서 형식, 명령 종류, 하드웨어 매개변수, 속도 향상 등에 관한 설명은 "기계 구성"보다는 "시스템 아키텍처" 수준의 용어가 더 적합하다고 언급하였다.<ref>{{cite web|url=https://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/05-10/102634114.pdf|last1=Johnson|first1=Lyle|title=A Description of Stretch|page=1|year=1960|access-date=7 October 2017}}</ref> 그 후, 스트레치 설계자인 [[프레더릭 브룩스]]는 1962년 컴퓨터 시스템 계획: 프로젝트 스트레치(Planning a Computer System: Project Stretch)에서 다음과 같이 언급했다.<ref>{{Cite book|title=Planning a Computer System|last=Buchholz|first=Werner|publisher=|year=1962|isbn=|location=|pages=5}}</ref> {{quote|다른 아키텍처와 마찬가지로 컴퓨터 아키텍처는 구조 사용자의 요구를 결정한 후 경제적, 기술적 제약 내에서 가능한 한 효과적으로 요구를 충족하도록 설계하는 기술이다. (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>{{서적 인용|author=John L. Hennessy and David A. Patterson|제목=Computer Architecture: A Quantitative Approach|edition=Third Edition|publisher=Morgan Kaufmann Publishers}}</ref>
* [[명령어 집합|명령어 집합 구조]](Instruction set architecture, ISA) : 프로세서가 읽고 실행할 수 있는 [[기계어]]
* [[마이크로아키텍처]](혹은 컴퓨터 조직) : 특정 프로세서가 ISA를 어떻게 구현할 것인지를 설명.
* 시스템 디자인 : 컴퓨팅 시스템 내 모든 하드웨어 구성품을 포함하는 것을 의미
* 시스템 디자인
** 데이터 경로
** [[메모리 컨트롤러]] 및 계층
줄 25 ⟶ 31:
* [[소프트웨어 아키텍처]]
* [[추상화 계층]]
 
* [[ASPLOS]]
 
== 외부 링크 ==
줄 32 ⟶ 38:
* {{언어링크|en}} [https://web.archive.org/web/20050528085407/http://www.hpcaconf.org/ HPCA: International Symposium on High Performance Computer Architecture]
* {{언어링크|en}} [http://portal.acm.org/toc.cfm?id=SERIES311&type=series&coll=GUIDE&dl=GUIDE&CFID=41492415&CFTOKEN=3676847 ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems]
* {{언어링크|en}} [http://www.acm.org/tocs/ TCS: ACM Transactions on Computer Systems]
* {{언어링크|en}} [http://www.acm.org/taco/ TACO: ACM Transactions on Architecture and Code Optimization]
* {{언어링크|en}} [https://web.archive.org/web/20170714015812/https://www.computer.org/portal/web/tc/home TC: IEEE Transactions on Computers]
 
{{컴퓨터 과학}}