EPIC 아키텍처
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
EPIC(Explicitly Parallel Instruction Computing) 아키텍처는 VLIW(Very Long Instruction Word) 아키텍처를 발전시켜, 명령어 수준 병렬성(ILP)을 높이기 위해 설계되었다. EPIC은 하드웨어의 복잡성을 줄이고 컴파일러를 통해 명령 스케줄링을 수행하며, 정지 비트, 소프트웨어 프리페치, 추측적 로드, 조건부 실행 등의 기능을 제공한다. IA-64 아키텍처(아이테니엄)가 대표적인 EPIC 구현 사례이며, IMPACT 프로젝트, PlayDoh 아키텍처와 같은 연구를 통해 발전해왔다.
더 읽어볼만한 페이지
- 명령어 처리 - 멀티스레딩
멀티스레딩은 프로세스 내에서 여러 스레드를 동시 실행하여 처리 능력을 향상시키는 기술로, 응답성 향상과 자원 공유 등의 장점이 있지만, 자원 간섭과 소프트웨어 복잡성 증가 등의 단점도 존재하며, 다양한 모델과 구현 방식, 스레드 스케줄러, 가상 머신 활성화 가능성 등을 고려해야 한다. - 명령어 처리 - 마이크로아키텍처
마이크로아키텍처는 명령어 집합 아키텍처를 구현하는 프로세서의 구성 요소, 상호 연결, 작동 방식을 포괄하는 개념으로, 동일 ISA에서 반도체 기술 발전과 새로운 구조 및 회로를 통해 성능 향상을 가능하게 한다. - 컴퓨터 구조 - PA-RISC
PA-RISC는 휴렛 팩커드에서 개발한 RISC 기반 명령어 집합 아키텍처로, HP 서버 및 워크스테이션에 사용되었으며 대용량 L1 캐시와 SIMD 명령어 확장 등의 특징을 가졌으나 아이테니엄 아키텍처로의 전환으로 단종되었다. - 컴퓨터 구조 - 메모리 관리
메모리 관리는 운영체제의 핵심 기능으로, 여러 프로세스의 원활한 실행을 위해 메모리 공간을 할당하고 관리하며, 릴로케이션, 보호, 공유, 가상 메모리 관리, 자동/수동 메모리 관리 등의 기능을 수행한다.
EPIC 아키텍처 | |
---|---|
개요 | |
유형 | 명시적 병렬 명령어 컴퓨팅 (Explicitly Parallel Instruction Computing) |
약자 | EPIC |
설계 목표 | 명령어 수준 병렬성 (ILP) |
개발 | 인텔과 휴렛 팩커드 |
주요 특징 | 컴파일러에 의한 병렬성 명시, VLIW 아키텍처의 단점 극복 |
배경 | |
명령어 수준 병렬성 (ILP) 한계 | 레지스터 이름 바꾸기, 분기 예측 등의 복잡한 하드웨어 필요 전력 소비 증가 |
VLIW 아키텍처의 문제점 | 코드 크기 증가 호환성 문제 (재컴파일 필요) |
특징 및 동작 방식 | |
병렬성 명시 | 컴파일러가 명령어 그룹을 명시적으로 정의하여 병렬성을 지정 |
명령어 그룹 (Instruction Groups) | 실행 가능한 명령어들을 묶어 하나의 그룹으로 처리 |
예측 (Predication) | 조건부 실행을 통해 분기 예측의 부담을 줄임 |
소프트웨어 파이프라이닝 (Software Pipelining) | 루프 언롤링과 유사한 기법을 컴파일러가 수행하여 성능 향상 |
회전 루프 (Rotating Loop) | 레지스터를 회전시켜 소프트웨어 파이프라이닝을 효율적으로 관리 |
장점 | 하드웨어 복잡성 감소 전력 효율 증가 높은 ILP 활용 |
단점 | 컴파일러 복잡성 증가 |
대표적인 아키텍처 | |
아이테니엄 (Itanium) | 인텔과 HP가 공동 개발 EPIC 아키텍처를 기반으로 함 서버 및 고성능 컴퓨팅 시장을 목표로 함 |
기타 | Transmeta Crusoe (일부 특징) |
역사 | |
개발 배경 | HP Labs의 연구 VLIW 아키텍처의 한계 극복 |
아이테니엄 출시 | 2001년, 서버 시장에 진출 |
아이테니엄의 영향 | EPIC 아키텍처의 가능성을 보여줌 x86 아키텍처와의 경쟁에서 어려움을 겪음 |
평가 및 전망 | |
장점 | 하드웨어 단순화 및 전력 효율 고급 컴파일러 기술 활용 |
단점 | 컴파일러 복잡성 x86 호환성 문제 |
전망 | 특정 분야 (고성능 컴퓨팅)에서 활용 가능성 RISC-V 등 새로운 아키텍처와의 경쟁 |
2. VLIW 아키텍처의 기원
1980년대 후반, HP의 연구원들은 축소 명령 집합 컴퓨터(RISC) 아키텍처가 한 사이클당 하나의 명령이라는 한계에 도달하고 있음을 인식했다.[3] 이들은 여러 연산을 각 명령에 인코딩하고, 여러 실행 유닛에서 처리하는 매우 긴 명령어 집합(VLIW)에 기반하여 새로운 아키텍처에 대한 연구를 시작했으며, 이는 후에 EPIC으로 명명되었다.
EPIC의 한 가지 목표는 명령 스케줄링의 복잡성을 CPU 하드웨어에서 소프트웨어 컴파일러로 옮기는 것이었다. 컴파일러는 (추적 피드백 정보의 도움을 받아) 명령 스케줄링을 정적으로 수행할 수 있다. 이는 CPU 내의 복잡한 스케줄링 회로의 필요성을 없애고, 추가 실행 자원을 포함한 다른 기능을 위한 공간과 전력을 확보한다. 이와 동등하게 중요한 목표는 명령 수준 병렬성(ILP)을 더욱 활용하기 위해 컴파일러를 사용하여 병렬 실행을 위한 추가적인 기회를 찾고 활용하는 것이었다.
VLIW(적어도 원래 형태)는 주류가 되는 것을 방해하는 몇 가지 단점을 가지고 있다.
- VLIW 명령 집합은 구현 간에 하위 호환성이 없다. 더 넓은 구현(더 많은 실행 유닛)이 구축되면, 더 넓은 머신에 대한 명령 집합은 이전의 좁은 구현과 하위 호환되지 않는다.
- CPU 캐시와 DRAM을 포함하는 메모리 계층 구조로부터의 로드 응답은 결정적인 지연을 가지지 않는다. 이로 인해 컴파일러가 로드 명령을 정적으로 스케줄링하는 것이 매우 어려워진다.
3. VLIW의 한계와 EPIC의 등장
축소 명령 집합 컴퓨터(RISC) 아키텍처가 한 사이클당 하나의 명령 처리에 한계를 보이자, HP의 연구원들은 매우 긴 명령어 집합(VLIW)의 단점을 보완한 새로운 아키텍처를 연구하기 시작했고, 이는 후에 '''EPIC'''으로 명명되었다.[3]
VLIW는 몇 가지 단점을 가지고 있었다.
- VLIW 명령어 집합은 구현 간에 하위 호환성이 없다. 더 넓은 구현(더 많은 실행 유닛)이 구축되면, 더 넓은 머신에 대한 명령 집합은 이전의 좁은 구현과 하위 호환되지 않는다.
- CPU 캐시와 DRAM을 포함하는 메모리 계층 구조로부터의 로드 응답은 결정적인 지연을 가지지 않아, 컴파일러가 로드 명령을 정적으로 스케줄링하기 매우 어렵다.
EPIC 아키텍처는 VLIW의 단점을 극복하기 위해 다음과 같은 기능을 추가했다.
- 여러 소프트웨어 명령어 그룹을 각각 '번들'이라고 하며, 각 번들은 이 연산 집합이 후속 번들에 의존하는지 여부를 나타내는 정지 비트를 가지고 있다. 이를 통해 향후 구현에서 여러 번들을 병렬로 발행할 수 있다. 의존성 정보는 컴파일러가 계산하므로 하드웨어는 피연산자 의존성 검사를 수행할 필요가 없다.
- 소프트웨어 프리페치 명령은 일종의 데이터 프리페치로 사용된다. 이 프리페치는 로드의 캐시 적중 가능성을 높이고 캐시의 다양한 수준에서 필요한 시간적 지역성의 정도를 나타낼 수 있다.
- 추측적 로드 명령은 사용 여부(제어 종속성 우회) 또는 사용 전에 수정 여부(데이터 종속성 우회)를 알기 전에 데이터를 추측적으로 로드하는 데 사용된다.
- 검사 로드 명령은 추측적 로드가 나중의 저장에 종속되었는지 여부를 확인하여 추측적 로드를 지원하고, 따라서 다시 로드해야 한다.
4. EPIC 아키텍처의 주요 특징
EPIC은 명령어 수준 병렬성(ILP)을 높이기 위해 다음과 같은 개념을 포함한다.
- 번들(Bundle): 여러 소프트웨어 명령어 그룹을 '번들'이라고 부른다. 각 번들은 이 연산 집합이 후속 번들에 의존하는지 여부를 나타내는 정지 비트를 가지고 있다.[1] 이 기능을 통해 향후 구현에서는 여러 번들을 병렬로 발행할 수 있다. 의존성 정보는 컴파일러가 계산하므로 하드웨어는 피연산자 의존성 검사를 수행할 필요가 없다.[1]
- 예시: 식별 플래그가 '-'라면 이전 명령어에 의존하지 않고, '+'라면 의존한다고 가정한다.
- +명령어A +명령어B -명령어C -명령어D +명령어E -명령어F
- 위 명령어열을 2개 명령어 동시 실행 가능한 하드웨어에서 실행하면 다음과 같다.
- +명령어A
- +명령어B -명령어C
- -명령어D
- +명령어E -명령어F
- 4클럭으로 실행할 수 있다. 3개 명령어 동시 실행 가능한 하드웨어로 확장하면 명령어 집합의 호환성을 유지하며 3클럭으로 실행 가능하다.
- 소프트웨어 프리페치: 일종의 데이터 프리페치로 사용된다.[1] 프리페치는 로드의 캐시 적중 가능성을 높이고 캐시의 다양한 수준에서 필요한 시간적 지역성의 정도를 나타낼 수 있다.[1]
- 추측적 로드: 사용 여부(제어 종속성 우회) 또는 사용 전에 수정 여부(데이터 종속성 우회)를 알기 전에 데이터를 추측적으로 로드하는 데 사용된다.[1]
- 검사 로드: 추측적 로드가 나중의 저장에 종속되었는지 여부를 확인하여 추측적 로드를 지원하고, 따라서 다시 로드해야 하는지 확인한다.[1]
- 조건부 실행: 분기의 발생을 줄이고 명령의 추측적 실행을 늘리는 데 사용된다.[1] 분기 조건은 분기가 취해지지 않은 측면에서 실행된 명령의 결과를 제거하는 데 사용되는 조건부 레지스터로 변환된다.[1]
- 지연된 예외: 일반 목적 레지스터 내의 무효 비트를 사용하여 가능한 예외를 지나 추측적 실행을 허용한다.[1]
- 큰 아키텍처 레지스터 파일: 레지스터 이름 변경의 필요성을 피한다.[1]
- 다중 분기 명령: 여러 대체 분기를 하나의 번들로 결합하여 분기 예측을 향상시킨다. 예시는 「같음」, 「작음」, 「큼」의 세 방향 분기가 있다.[1]
5. EPIC의 구현 및 평가
IA-64 아키텍처(아이테니엄)는 레지스터 로테이션 기능을 추가했는데, 이는 루프 전개 및 소프트웨어 파이프라이닝 등에 도움이 된다.[1] Wen-mei Hwu가 이끈 일리노이 대학교의 IMPACT 프로젝트는 이 분야에 다양한 영향을 미쳤다.[1] HP 연구소의 PlayDoh 아키텍처도 또 다른 중요한 연구 프로젝트로 꼽힌다.[1]
2004년, EPIC 아키텍처는 디지털 신호 처리와 같은 특정 분야에서는 성공을 거두었으나,[3] 일반적인 컴퓨팅 분야에서는 그만큼의 병렬성을 추출할 수 있는지에 대한 논쟁이 있었고, 평가는 아직 정해지지 않았다.[3] 휴렛 팩커드는 2004년 9월 아이테니엄 아키텍처를 강조하는 것을 중단했다.[3]
6. EPIC 관련 연구
- 일리노이 대학교 어배너-섐페인의 IMPACT 프로젝트는 웬메이 후(Wen-mei Hwu)가 이끌었으며, 이 주제에 대한 많은 영향력 있는 연구의 근원이었다.[1]
- HP 랩스의 PlayDoh 아키텍처는 또 다른 주요 연구 프로젝트였다.[1]
- 젤라토는 학계 및 상업 연구자들이 아이테니엄 서버에서 실행되는 리눅스 애플리케이션을 위한 보다 효과적인 컴파일러를 개발하기 위해 협력한 오픈 소스 개발 커뮤니티였다.[1]
7. 관련 항목
참조
[1]
웹사이트
EPIC: An Architecture for Instruction-Level Parallel Processors
http://www.hpl.hp.co[...]
2008-05-08
[2]
특허
Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
[3]
웹사이트
Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture
http://www.hpl.hp.co[...]
2007-12-14
[4]
웹사이트
Itanium–Is there light at the end of the tunnel?
http://www.anandtech[...]
2008-05-08
[5]
두피디아
EPIC: Explicity Parallel Instruction Computing
[6]
특허
[7]
웹인용
EPIC: An Architecture for Instruction-Level Parallel Processors
http://www.hpl.hp.co[...]
2008-05-08
[8]
웹인용
Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture
http://www.hpl.hp.co[...]
2007-12-14
[9]
웹인용
Itanium–Is there light at the end of the tunnel?
http://www.anandtech[...]
2008-05-08
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com