명시적 병렬 명령 컴퓨팅
Explicitly parallel instruction computingEPIC(Explicitly parallel instruction computing)는 HP와 인텔의[1] 제휴에 의해 1997년에 만들어진 용어입니다.이는 1980년대 [2]초부터 연구자들이 연구해 온 컴퓨팅 패러다임을 설명하기 위한 것입니다.이 패러다임은 독립 건축이라고도 불린다.이는 인텔과 HP의 인텔 Itanium [3]아키텍처 개발의 기초가 되었습니다.HP는 "EPIC"는 Itanium [4]아키텍처의 오래된 용어일 뿐이라고 주장했습니다.EPIC는 마이크로프로세서가 복잡한 온다이 회로가 아닌 컴파일러를 사용하여 병렬 명령 실행을 제어함으로써 소프트웨어 명령을 병렬로 실행할 수 있도록 합니다.이는 높은 클럭 주파수에 의존하지 않고 단순한 성능 확장을 가능하게 하기 위한 것입니다.
VLIW 루트
1989년까지 HP의 연구자들은 RISC(Reduced Instruction Set Computer) 아키텍처가 [clarification needed]사이클당 하나의 명령으로 한계에 도달하고 있음을 인식했습니다.그들은 후에 [3]EPIC라는 이름의 새로운 아키텍처에 대한 조사를 시작했다.연구의 기초는 VLIW였습니다.VLIW에서는 모든 명령에서 여러 연산을 부호화한 후 여러 실행 단위로 처리했습니다.
EPIC의 한 가지 목표는 명령 스케줄링의 복잡성을 CPU 하드웨어에서 소프트웨어 컴파일러로 옮기는 것이었습니다. 소프트웨어 컴파일러는 (추적 피드백 정보를 사용하여) 정적으로 명령 스케줄링을 수행할 수 있습니다.이것에 의해, CPU에 복잡한 스케줄링 회로가 필요 없게 되어, 추가의 실행 자원을 포함한 다른 기능을 위한 공간과 전력이 해방됩니다.마찬가지로 중요한 목표는 컴파일러를 사용하여 병렬 실행을 위한 추가 기회를 찾아 활용함으로써 ILP(Instruction Level Parallelism)를 더욱 활용하는 것이었습니다.
VLIW(최소한 원본 형식)에는 다음과 같은 몇 가지 쇼트코밍이 있습니다.
- VLIW 명령 세트는 구현 간에 하위 호환성이 없습니다.광범위한 구현(더 많은 실행 유닛)이 구축되면 더 넓은 기계에 대한 명령 집합은 더 오래되고 더 좁은 구현과 하위 호환성이 없습니다.
- CPU 캐시 및 DRAM을 포함한 메모리 계층으로부터의 로드 응답은 결정론적 지연이 없습니다.이로 인해 컴파일러에 의한 로드 명령의 정적 스케줄링이 매우 어려워집니다.
EPIC 아키텍처는 VLIW 아키텍처에서 발전했지만 슈퍼스케일러 아키텍처의 많은 개념을 유지했습니다.
VLIW를 넘어서는 것
EPIC 아키텍처는 VLIW의 결함을 해결하기 위해 다음과 같은 몇 가지 기능을 추가합니다.
- 여러 소프트웨어 명령의 각 그룹을 번들이라고 합니다.각 번들에는 이 조작 세트가 후속 번들에 의해 의존하는지 여부를 나타내는 정지 비트가 있습니다.이 기능을 사용하면 향후 여러 번들을 동시에 발행할 수 있는 구현을 구축할 수 있습니다.의존관계 정보는 컴파일러에 의해 계산되므로 하드웨어는 오퍼랜드 의존관계 체크를 수행할 필요가 없습니다.
- 소프트웨어 프리페치 명령은 데이터 프리페치의 일종으로서 사용된다.이 프리페치는 로드에 대한 캐시 적중 가능성을 증가시키고 캐시의 다양한 수준에서 필요한 시간적 인접성의 정도를 나타낼 수 있습니다.
- 추측 부하 명령은 데이터가 사용될지(제어 의존성을 우회) 또는 데이터가 사용되기 전에 수정될지(데이터 의존성을 우회)를 알기 전에 추측적으로 데이터를 로드하기 위해 사용됩니다.
- 부하 검사 명령은 투기 부하가 이후 저장소에 종속되어 있는지 여부를 검사하여 투기 부하를 보조하므로 다시 로드해야 합니다.
EPIC 아키텍처에는 ILP를 향상시키기 위한 아키텍처 개념도 포함되어 있습니다.
- 사전 실행은 분기 발생을 줄이고 명령의 추측 실행을 증가시키기 위해 사용됩니다.이 특징에서 분기조건은 취하지 않은 분기측에서 실행된 명령의 결과를 죽이기 위해 사용되는 술어 레지스터로 변환된다.
- 지연된 예외는 범용 레지스터 내의 not thing 비트를 사용하여 가능한 예외를 지난 추측 실행을 허용합니다.
- 매우 큰 아키텍처 레지스터 파일을 사용하면 레지스터 이름을 변경할 필요가 없습니다.
- 다방향 분기 명령은 여러 대체 분기를 하나의 번들로 결합하여 분기 예측을 향상시킵니다.
또한 Itanium 아키텍처는 수동으로 레지스터를 언롤하고 이름을 변경할 필요가 없으므로 소프트웨어 파이프라인에 유용한 도구인 회전 레지스터 파일을 추가했습니다.
기타 연구 개발
Itanium 아키텍처의 개발과 직접 관련이 없는 EPIC 아키텍처에 대한 다른 조사도 있었습니다.
- Wen-mei Hwu가 이끄는 일리노이 대학교 Urbana-Champaign의 IMPCT 프로젝트는 이 주제에 대한 많은 영향력 있는 연구의 원천이었다.
- HP 연구소의 PlayDoh 아키텍처는 또 다른 주요 연구 프로젝트였습니다.
- Gelato는 Itanium 서버에서 실행되는 Linux 애플리케이션용 보다 효과적인 컴파일러를 개발하기 위해 학술 및 상업 연구자들이 참여한 오픈 소스 개발 커뮤니티였습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Schlansker and Rau (February 2000). "EPIC: An Architecture for Instruction-Level Parallel Processors" (PDF). HP Laboratories Palo Alto, HPL-1999-111. Retrieved 2008-05-08.
- ^ US 4847755, Morrison, Gordon E.; Brooks, Christopher B. & Gluck, Frederick G, "자연적인 동시 처리를 가진 낮은 수준의 명령을 병렬 처리함으로써 처리를 증가시키는 병렬 처리 방법 및 장치", 1989-07-11. MCC Development Ltd.에 할당되었습니다.
- ^ a b "Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture". HP Labs. June 2001. Retrieved 2007-12-14.
- ^ De Gelas, Johan (November 9, 2005). "Itanium–Is there light at the end of the tunnel?". AnandTech. Retrieved 2008-05-08.
외부 링크
- EPIC 이력
- Mark Smotherman (2002) "EPIC 아키텍처와 구현에 대하여"