VLIW
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
VLIW(Very Long Instruction Word)는 여러 연산을 하나의 명령어에 묶어 병렬로 실행하는 컴퓨터 아키텍처이다. 1980년대 초 예일 대학교의 조시 피셔 연구 그룹에 의해 처음 개념이 제시되었으며, 컴파일러가 연산 실행 순서를 결정하여 하드웨어의 복잡성을 줄이는 특징을 갖는다. 인텔 i860, 휴렛 팩커드의 PA-RISC 프로세서, 트리미디어, SHARC 등 임베디드 미디어 프로세서에 주로 사용되며, 코드 비대화, 하위 호환성 문제가 존재한다. 러시아의 엘브루스 2000과 같은 VLIW CPU도 개발되었다.
더 읽어볼만한 페이지
- 명령어 처리 - 멀티스레딩
멀티스레딩은 프로세스 내에서 여러 스레드를 동시 실행하여 처리 능력을 향상시키는 기술로, 응답성 향상과 자원 공유 등의 장점이 있지만, 자원 간섭과 소프트웨어 복잡성 증가 등의 단점도 존재하며, 다양한 모델과 구현 방식, 스레드 스케줄러, 가상 머신 활성화 가능성 등을 고려해야 한다. - 명령어 처리 - 마이크로아키텍처
마이크로아키텍처는 명령어 집합 아키텍처를 구현하는 프로세서의 구성 요소, 상호 연결, 작동 방식을 포괄하는 개념으로, 동일 ISA에서 반도체 기술 발전과 새로운 구조 및 회로를 통해 성능 향상을 가능하게 한다. - 명령어 집합 구조 - ARM 아키텍처
ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다. - 명령어 집합 구조 - PA-RISC
PA-RISC는 휴렛 팩커드에서 개발한 RISC 기반 명령어 집합 아키텍처로, HP 서버 및 워크스테이션에 사용되었으며 대용량 L1 캐시와 SIMD 명령어 확장 등의 특징을 가졌으나 아이테니엄 아키텍처로의 전환으로 단종되었다. - 전문가의 참여가 필요한 문서 - 클릭당 지불
클릭당 지불 광고는 광고주가 광고 클릭당 비용을 지불하는 온라인 광고 방식으로, 정액제와 입찰 기반 모델이 있으며 검색엔진 결과 페이지 등에 게재되고 키워드 매칭, 광고 품질, 실시간 입찰 등이 노출 순위에 영향을 미치며 클릭 사기 등의 문제점도 존재하지만 인공지능 기반 타겟팅 기술과 함께 진화하고 있다. - 전문가의 참여가 필요한 문서 - 코넬 웨스트
코넬 웨스트는 하버드와 프린스턴에서 철학 박사 학위를 받고 여러 대학에서 교수로 재직한 미국의 철학자, 작가, 사회 활동가, 공공 지식인으로, 진보적 사회 운동에 참여하며 미국의 인종, 정치, 경제 문제에 대한 비판적 시각을 견지하고 2024년 미국 대통령 선거에 무소속으로 출마하기도 했다.
| VLIW | |
|---|---|
| 일반 정보 | |
![]() | |
| 유형 | CPU 아키텍처 |
| 설계 패러다임 | 병렬 컴퓨팅 |
| 명령어 길이 | 매우 길다 |
| 세부 사항 | |
| 명령어 | 여러 개의 작동을 포함하는 긴 명령어 |
| 스케줄링 책임 | 컴파일러 |
| 하드웨어 복잡성 | 감소됨 |
| 코드 크기 | 증가함 |
| 분기 예측 | 덜 필요함 |
| 장점 | |
| 하드웨어 단순성 | 제어 로직이 간단해짐 |
| 잠재적 병렬성 | 여러 연산을 동시에 수행 가능 |
| 단점 | |
| 코드 크기 증가 | 명령어의 크기가 커짐 |
| 컴파일러 복잡성 | 최적화된 명령어를 생성하기 어려움 |
| 코드 이식성 문제 | 아키텍처에 따라 명령어 형식이 달라짐 |
| 사용 예시 | |
| 프로세서 | Transmeta Crusoe STMicroelectronics ST200 Texas Instruments TMS320 프리스케일 스타코어 [[TriMedia TM1000 TI C6000 Intel Itanium |
2. 역사
VLIW 구조의 개념과 "VLIW"라는 용어는 1980년대 초 예일 대학교의 조시 피셔 연구 그룹에 의해 발명되었다.[18][2]
피셔는 뉴욕 대학교 대학원생 시절 VLIW를 위한 컴파일 방법으로 트레이스 스케줄링을 개발했다. 이는 일반적인 프로그래밍 언어로 작성된 프로그램에서 수평 마이크로코드를 타겟팅할 수 있는 혁신적인 기술이었다. 이전에는 실행 유닛과 명령어 수준 병렬 처리를 소프트웨어에서 미리 스케줄링하는 개념이 수평 마이크로코드 개발 과정에서 이미 확립되어 있었다.
피셔는 VLIW 프로세서의 컴파일러와 아키텍처가 함께 설계되어야 한다는 개념을 제시했다. 이는 플로팅 포인트 시스템즈의 FPS164와 같은 아키텍처에 대한 컴파일의 어려움에서 영감을 얻은 것이다. FPS164는 복합 명령어 집합 컴퓨터(CISC) 아키텍처를 가지고 있어 매우 복잡한 스케줄링 알고리즘이 필요했다. 피셔는 자체 배수 파이프라인, 넓은 멀티포트 레지스터 파일, 메모리 아키텍처와 같은 적절한 VLIW 설계를 특징짓는 일련의 원칙을 개발했다. 이러한 원칙은 컴파일러가 빠른 코드를 생성하는 것을 쉽게 만들었다.
최초의 VLIW 컴파일러는 예일 대학교의 불독(Bulldog) 컴파일러였으며, 피셔의 지도하에 존 엘리스의 박사 학위 논문에서 설명되었다.[5]
피셔는 1984년 예일 대학교를 떠나 멀티플로우라는 회사를 설립하고, TRACE 시리즈의 VLIW 미니 슈퍼컴퓨터를 생산하여 1987년에 첫 제품을 출시했다. 멀티플로우의 VLIW는 명령어당 28개의 작업을 병렬로 실행할 수 있었다. 멀티플로우의 기술은 휴렛 팩커드 등 여러 회사에 라이선스되었다.
1980년대에는 일본에서 도미타 신지 등이 QA-1, QA-2와 같은 VLIW 아키텍처를 독자적으로 개발했다.[14][15]
2. 1. 소련의 초기 연구
VLIW 이전에, 소련의 컴퓨터 과학자 미하일 카르체프는 1960년대 군사용 M-9 및 M-10 컴퓨터에 대한 연구를 기반으로 VLIW의 이론적 측면을 개발했다.[3] 그의 아이디어는 조시 피셔의 획기적인 논문보다 2년 전에 교과서의 일부로 개발되어 출판되었지만, 철의 장막과 카르체프의 연구가 주로 군사 관련이었기 때문에 서방 세계에서는 거의 알려지지 않았다.2. 2. 주요 발전과 상용화
1990년대 초, 인텔은 최초의 64비트 마이크로프로세서이자 단일 칩에서 VLIW를 구현한 최초의 프로세서인 인텔 i860을 출시했다.[7] i860은 단순 RISC 모드와 VLIW 모드 두 가지로 작동할 수 있었다.[7] VLIW 모드에서 i860은 임베디드 시스템 디지털 신호 프로세서(DSP) 응용 프로그램에서 널리 사용되었는데, 이는 응용 프로그램 실행 및 데이터 세트가 단순하고 예측 가능하여 설계자가 VLIW의 병렬 실행 이점을 최대한 활용할 수 있었기 때문이다. VLIW 모드에서 i860은 20-40 더블 정밀도 MFLOPS 범위의 부동 소수점 성능을 유지할 수 있었으며, 이는 당시 25-50Mhz로 작동하는 프로세서에 매우 높은 값이었다.같은 시기, 휴렛 팩커드(HP)는 PA-RISC 프로세서 연구를 통해 VLIW의 장점을 발견했다.[7] 이들은 CPU의 복잡한 디스패치 로직을 컴파일러로 옮겨 CPU를 단순화하는 방법을 연구했다. 당시 컴파일러는 1980년대보다 훨씬 복잡했기 때문에, 컴파일러에 추가되는 복잡성은 큰 문제가 되지 않았다.
이후 VLIW는 주로 소비자 전자 장치를 위한 임베디드 미디어 프로세서로 사용되었다. NXP 반도체(NXP, 이전 필립스 반도체)의 트리미디어(TriMedia), 아날로그 디바이스의 슈퍼 하버드 아키텍처 단일 칩 컴퓨터(SHARC) DSP, ST마이크로일렉트로닉스의 ST200 제품군, 후지쯔(Fujitsu)의 FR-V, 픽셀웍스(Pixelworks)의 BSP15/16[8], CEVA-X DSP, 임프롭 시스템즈(Improv Systems)의 재즈 DSP(Jazz DSP), 실리콘 하이브의 HiveFlex[9] 시리즈, 칼레이(Kalray)의 MPPA Manycore 제품군 등이 대표적인 예이다. 텍사스 인스트루먼트의 TMS320 디지털 신호 프로세서(DSP) 라인은 C6000 제품군에서 VLIW와 더 유사하게 발전했다.
임베디드 처리 시장 외에는 인텔의 아이테니엄(Itanium) IA-64 명시적 병렬 명령어 컴퓨팅(EPIC)과 엘브루스 2000(Elbrus 2000)이 널리 사용되는 VLIW CPU 아키텍처로 꼽힌다. 그러나 EPIC 아키텍처는 명령어 예측, 회전 레지스터 파일, 비병렬 명령어 그룹을 인코딩할 수 있는 매우 긴 명령어 단어를 사용하기 때문에 순수한 VLIW 아키텍처와는 구분되기도 한다.
ATI 테크놀로지스(ATI) 및 AMD(AMD)의 테라 스케일(TeraScale) 마이크로아키텍처는 그래픽 처리 장치(GPU)를 위한 VLIW 마이크로아키텍처이다.
2015년 12월에는 VLIW CPU 엘브루스-4s 기반 PC가 러시아에서 처음 출하되었다.[11]
3. 설계
VLIW 명령어는 여러 연산을 인코딩하며, 각 실행 유닛에 대해 적어도 하나의 연산을 포함한다. 예를 들어, VLIW 장치에 5개의 실행 유닛이 있다면, 명령어는 5개의 연산 필드를 가지며 각 필드는 해당 유닛에서 어떤 연산을 할지 지정한다. 이러한 구조를 수용하기 위해 VLIW 명령어는 보통 64비트 이상이다.[1]
슈퍼 하버드 아키텍처 단일 칩 컴퓨터(SHARC)의 명령어 예시는 다음과 같다.f12 = f0 * f4, f8 = f8 + f12, f0 = dm(i0, m3), f4 = pm(i8, m9);
이는 한 사이클에 부동 소수점 곱셈, 덧셈, 두 개의 자동 증가 로드를 수행하며, 이 모든 것이 하나의 48비트 명령어에 포함된다.
슈퍼스칼라 CPU가 하드웨어를 통해 런타임에 병렬 실행 가능 연산을 결정하는 반면, VLIW CPU는 컴파일러를 사용하여 사전에 결정한다.[6] 컴파일러는 명령어 스케줄링 복잡성을 담당하여 하드웨어 복잡성을 줄인다.
최신 CPU는 분기 명령어를 추측 실행하여 시간을 절약하지만, 오판 시 명령어와 컨텍스트를 ''플러시''해야 한다. VLIW는 이러한 로직이 불필요하여 에너지 사용 및 설계 결함 측면에서 유리하다.[6]
VLIW 컴파일러는 휴리스틱 또는 프로파일 정보를 활용하여 분기 방향을 추측하고, 가장 가능성 높은 경로를 우선하여 연산을 스케줄링한다.[6] 예기치 않은 분기 실행 시, 컴파일러는 추측 결과를 폐기하는 보상 코드를 생성하여 프로그램 의미를 유지한다.
4. 구현
사이드롬(Cydrome)은 1980년대 후반에 에미터 결합 논리(ECL) 집적 회로를 사용하여 VLIW 수치 프로세서를 생산한 회사였지만, 멀티플로우(Multiflow)처럼 몇 년 만에 실패했다.[18]
인텔의 아이테니엄(Itanium) IA-64 명시적 병렬 명령어 컴퓨팅(EPIC) 및 엘브루스 2000(Elbrus 2000)이 널리 사용되는 VLIW CPU 아키텍처의 예시이다. EPIC 아키텍처는 전체 명령어 예측, 회전 레지스터 파일, 비병렬 명령어 그룹을 인코딩할 수 있는 매우 긴 명령어 단어를 사용하기 때문에 순수한 VLIW 아키텍처와는 때때로 구분된다.
VLIW는 그래픽 처리 장치(GPU) 시장에서 상당한 소비자 침투를 얻었지만, 이후 엔비디아(Nvidia)와 AMD 모두 비그래픽 작업 부하에 대한 성능을 향상시키기 위해 RISC 아키텍처로 전환했다.
2015년 12월, VLIW CPU 엘브루스-4s 기반의 PC가 러시아에서 처음으로 출하되었다.[11]
5. 하위 호환성
실리콘 기술이 발전하면서 더 많은 실행 유닛을 가진 프로세서가 등장했다. 하지만, 이전 세대 VLIW 프로세서용으로 컴파일된 프로그램은 실행 유닛 수가 다른 새 프로세서에서 제대로 실행되지 않았다. 이는 VLIW 명령어 인코딩이 프로세서 실행 유닛 수에 따라 달라지기 때문이었다.
트랜스메타는 x86 아키텍처 기반 크루소 프로세서에서 이 문제를 해결했다. 이들은 ''코드 모핑''이라는 소프트웨어 계층을 통해 x86 코드를 크루소 내부 VLIW 기계어로 실시간 변환하여 실행했다. 이를 통해 크루소는 내부적으로 VLIW 프로세서로 동작하면서도 x86과 하위 호환성을 유지했다.
인텔 아이테니엄 아키텍처는 다른 접근 방식을 사용했다. 명령어 내에 이전 명령어와 종속성을 나타내는 비트 필드를 추가, 컴파일 시점에 종속성 정보를 미리 결정하도록 했다. 하드웨어는 이 정보를 바탕으로 명령어 실행 순서를 결정하므로, 실행 유닛 수에 관계없이 올바른 실행을 보장할 수 있었다. 즉, 프로세서는 실행 유닛 수에 맞춰 독립적인 VLIW 명령어를 병렬 처리하여 성능을 높였다.
6. 한계
VLIW는 하나 이상의 실행 유닛이 수행할 유용한 작업이 없어 무연산 NOP 명령어를 실행해야 할 때 코드 비대화(code bloat) 문제가 발생할 수 있다. 이는 코드에 종속성이 있고, 이후의 작업을 진행하기 전에 명령어 파이프라인을 비워야 할 때 발생한다.[17]
하지만 칩의 트랜지스터 수가 증가하면서, VLIW의 이러한 단점은 점차 줄어들고 있다. VLIW 아키텍처는 특히 임베디드 시스템 시장에서 인기를 얻고 있으며, 여기에서는 시스템 온 칩에서 애플리케이션에 맞게 프로세서를 사용자 정의할 수 있다.[17]
7. 응용 분야
VLIW 아키텍처는 주로 임베디드 시스템, 디지털 신호 처리(DSP) 분야에서 널리 사용된다. 예를 들어, 텍사스 인스트루먼트의 TMS320 DSP 라인, NXP 반도체의 트리미디어(TriMedia) 미디어 프로세서, 아날로그 디바이스의 SHARC DSP 등이 VLIW 아키텍처를 사용한다.[7] VLIW는 시스템 온 칩(SoC) 설계를 위한 구성 가능한 프로세서 코어에도 사용된다.
텐실리카(Tensilica)의 Xtensa LX2 프로세서는 FLIX(Flexible Length Instruction Extensions)라는 기술을 통해 다중 연산 명령어를 지원한다. FLIX는 SoC 설계자가 코드 팽창을 줄이면서 VLIW의 성능 이점을 얻을 수 있게 해준다. 인피니언 카멜(Infineon Carmel) DSP도 CLIW(Configurable Long Instruction Word)라는 기술을 사용하여 코드 밀도를 높인다.[10]
임베디드 시스템 외에도, 인텔의 아이테니엄(Itanium) IA-64 명시적 병렬 명령어 컴퓨팅(EPIC) 아키텍처와 엘브루스 2000(Elbrus 2000)이 VLIW CPU 아키텍처의 대표적인 예시이다. EPIC은 명령어 예측, 회전 레지스터 파일 등 순수 VLIW와 구별되는 특징을 가진다.
그래픽 처리 장치(GPU) 시장에서도 VLIW 아키텍처가 사용되었는데, ATI 및 AMD의 테라 스케일(TeraScale) 마이크로아키텍처가 그 예이다. 그러나 엔비디아(Nvidia)와 AMD는 비그래픽 작업 성능 향상을 위해 RISC 아키텍처로 전환했다.
엘브루스 2000(Elbrus 2000) (Эльбрус 2000ru)은 모스크바 SPARC 기술 센터(MCST)에서 개발하고 TSMC(TSMC)에서 제조한 러시아산 512비트 VLIW 마이크로프로세서이다.[11]
참조
[1]
웹사이트
Very Long Instruction Word (VLIW) Architecture
https://www.geeksfor[...]
2022-10-14
[2]
conference
Very Long Instruction Word architectures and the ELI-512
Association for Computing Machinery
[3]
journal
Вопросы построения многопроцессорных вычислительных систем
1970
[4]
book
Вычислительные системы и синхронная арифметика
Radio i Svyaz
1981
[5]
웹사이트
ACM 1985 Doctoral Dissertation Award
http://awards.acm.or[...]
Association for Computing Machinery
2007-10-15
[6]
웹사이트
Control Data 6400/6500/6600 Computer Systems Reference Manual
http://ed-thelen.org[...]
1969-02-21
[7]
웹사이트
An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture
http://www.nxp.com/a[...]
Philips Semiconductors
[8]
웹사이트
Pixelworks | BSP15/16
http://www.pixelwork[...]
2016-07-28
[9]
웹사이트
silicon hive Products
http://www.siliconhi[...]
Silicon Hive BV
2012-01-28
[10]
웹사이트
EEMBC Publishes Benchmark Scores for Infineon Technologies' Carmel - DSP Core and TriCore - TC11IB Microcontroller
http://www.eembc.org[...]
eembc.org
2016-07-28
[11]
웹사이트
ТАСС
http://tass.ru/ekono[...]
tass.ru
2016-07-28
[12]
웹사이트
The Tiny Chip That Could Disrupt Exascale Computing
https://www.nextplat[...]
Stackhouse Publishing Inc
2021-04-26
[13]
문서
en:Very_long_instruction_word#Designのページでは少なくとも 64 ビットと記載されている。
[14]
문서
1980年代前半に作られたCG用並列計算システムのひとつに、日本で作られた LINKS-1(http://museum.ipsj.or.jp/computer/other/0013.html )がある。
[15]
URL
http://museum.ipsj.or.jp/computer/other/0010.html
http://museum.ipsj.o[...]
[16]
웹사이트
ACM Award
http://www.acm.org/a[...]
ACM
[17]
URL
Trimedia
http://www.nxp.com/p[...]
[18]
콘퍼런스 인용
Very Long Instruction Word architectures and the ELI-512
http://doi.acm.org/1[...]
Association for Computing Machinery
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
