{{위키데이터 속성 추적}}
'''이기종 시스템 아키텍처'''(Heterogeneous System Architecture, HSA)는 공유 메모리와 태스크를 가지고 중앙 처리 장치와 [[그래픽 처리 장치]]가 동일한 버스에 연동될 수 있게 하는 업체들 간 사양의 집합이다.<ref>{{웹 인용 |url=http://www.tomshardware.com/news/AMD-HSA-hUMA-APU,22324.html |title=AMD Unveils its Heterogeneous Uniform Memory Access (hUMA) Technology |website=Tom's Hardware |author=Tarun Iyer |date=30 April 2013}}</ref> HSA는 [[HSA 재단]]에 의해 개발되고 있으며, 여기에는 [[어드밴스트 마이크로 디바이시스|AMD]]와 [[ARM]] 등이 참여한다. 플랫폼의 명시된 목표는 CPU, GPU 및 기타 컴퓨팅 장치 간의 통신 대기 시간을 줄이고 프로그래머의 관점<ref name="whitepaper">{{보고서 인용|author=George Kyriazis |date=30 August 2012 |title=Heterogeneous System Architecture: A Technical Review |url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf |publisher=AMD |access-date=26 May 2014 |archive-url=https://web.archive.org/web/20140328140823/http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf |archive-date=28 March 2014 |url-status=dead }}</ref>{{rp|3}}<ref name="whatis">{{웹 인용|title=What is Heterogeneous System Architecture (HSA)? |url=http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-system-architecture-hsa/ |publisher=AMD |access-date=23 May 2014 |archive-url=https://web.archive.org/web/20140621213832/http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-system-architecture-hsa/ |archive-date=21 June 2014 |url-status=dead }}</ref>에서 이러한 다양한 장치의 호환성을 높이는 것이다. (현재 [[OpenCL]] 또는 [[CUDA]]를 사용하여 수행해야 하는 것처럼)<ref>{{웹 인용|author=Joel Hruska |title=Setting HSAIL: AMD explains the future of CPU/GPU cooperation |url=http://www.extremetech.com/gaming/164817-setting-hsail-amd-cpu-gpu-cooperation |website=[[ExtremeTech]] |publisher=[[Ziff Davis]] |date=2013-08-26}}</ref>

CUDA와 OpenCL뿐 아니라 다른 대부분의 고급 프로그래밍 언어들은 HSA를 사용하여 실행 성능을 높일 수 있다.<ref>{{웹 인용|url=http://www.slideshare.net/mobile/linaroorg/hsa-linaro-updatejuly102013|title=LCE13: Heterogeneous System Architecture (HSA) on ARM|author=Linaro|work=slideshare.net}}</ref> [[이기종 컴퓨팅]]은 태블릿, 스마트폰, 기타 모바일 장치, 비디오 게임 콘솔과 같은 시스템온칩 장치에 널리 사용된다.<ref name="gpuscience">{{웹 인용|url=http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/ |archive-url=https://web.archive.org/web/20140201183411/http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/ |title=Heterogeneous System Architecture: Purpose and Outlook |date=2012-11-09 |access-date=2014-05-24 |archive-date=2014-02-01 |website=gpuscience.com }}</ref> HSA를 사용하면 프로그램이 별도의 메모리나 스케줄링 없이 부동 소수점 계산을 위해 그래픽 프로세서를 사용할 수 있다.<ref>{{웹 인용|title=Heterogeneous system architecture: Multicore image processing using a mix of CPU and GPU elements |website=Embedded Computing Design |url=http://embedded-computing.com/articles/heterogeneous-processing-using-mix-cpu-gpu-elements/ |access-date=23 May 2014}}</ref>

== 원리 ==
HSA의 원리는 계산을 GPU에 맡길 때 프로그래머의 짐을 덜어주는 것이다. 원래 AMD가 홀로 주도하여 FSA로 불렸던 이 개념은 GPU 이상의 처리 단위(예를 들어, 다른 하드웨어 설계 기업의 DSP)까지 아우르도록 확장되었다.

{{갤러리
 | width  = 320
 | height = 190
 | align  = center
 | lines  = 3
 | 파일:HSA – using the GPU without HSA.svg| HSA가 아닌 시스템에서 [[그래픽 처리 장치|GPU]]에 연산을 맡길 때 수행되는 단계.
 | 파일:HSA – using the GPU with HSA.svg| HSA를 사용하는 HSA 시스템에서 GPU에 연산을 맡길 때 수행되는 단계.
}}

현대의 GPU들은 [[SIMD]]와 [[SIMT]]를 수행하기에 매우 적절하지만 현대의 CPU들은 브랜치 등의 최적화가 진행되고 있다.

== 개요 ==
원래 [[셀 (마이크로프로세서)|셀 브로드밴드 엔진]](Cell Broadband Engine)과 같은 [[임베디드 시스템]]에 의해 도입된 여러 시스템 행위자 간에 시스템 메모리를 직접 공유함으로써 이기종 컴퓨팅이 더욱 주류를 이루게 되었다. 이기종 컴퓨팅 자체는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP) 또는 모든 유형의 ASIC(주문형 집적 회로) 등 여러 처리 장치를 포함하는 시스템을 의미한다. 시스템 아키텍처에서는 그래픽 프로세서와 같은 모든 가속기가 시스템 CPU와 동일한 처리 수준에서 작동할 수 있다.

주요 기능 중 HSA는 컴퓨팅 장치를 위한 통합 [[가상 주소 공간]]을 정의한다. GPU가 전통적으로 기본(CPU) 메모리와 별도로 자체 메모리를 갖는 경우 HSA는 장치가 [[포인터 (프로그래밍)|포인터]]를 공유하여 데이터를 교환할 수 있도록 이러한 장치가 [[페이지 (컴퓨터 메모리)|페이지 테이블]]을 공유하도록 요구한다. 이는 맞춤형 메모리 관리 장치에 의해 지원된다.<ref name="whitepaper"/>{{rp|6–7}} 상호 운용성을 가능하게 하고 프로그래밍의 다양한 측면을 용이하게 하기 위해 HSA는 CPU와 가속기 모두에 대해 ISA에 구애받지 않고 고급 프로그래밍 언어를 지원하도록 고안되었다.

== 같이 보기 ==
* [[OpenMP]]
* [[불균일 기억 장치 접근]](NUMA)
* [[제로 카피]]
* [[공유 메모리]]
* [[GPGPU]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{위키공용분류-줄}}
* {{유튜브|id=ln8JpfaLvbM|title=HSA Heterogeneous System Architecture Overview}} by Vinod Tipparaju at [[ACM/IEEE Supercomputing Conference|SC13]] in November 2013
* {{언어링크|en}} [https://web.archive.org/web/20160514070602/http://www.mpsoc-forum.org/previous/2013/slides/8-Hegde.pdf HSA and the software ecosystem]
* {{언어링크|en}} [http://www-conf.slac.stanford.edu/xldb2012/talks/xldb2012_wed_1400_MichaelHouston.pdf 2012 – HSA by Michael Houston] {{웨이백|url=http://www-conf.slac.stanford.edu/xldb2012/talks/xldb2012_wed_1400_MichaelHouston.pdf |date=20160305141652 }}

{{전거 통제}}

[[분류:이기종 시스템 아키텍처| ]]
[[분류:이기종 컴퓨팅]]