VLIW: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
(오늘의 문서 생성)
 
(아이태니엄 구조 그림 추가)
1번째 줄: 1번째 줄:
[[파일:Architettura Itanium 2.png|300px|thumb|VLIW ISA를 사용하는 대표 CPU인 아이태니엄 2의 내부 구조]]
'''VLIW'''(Very Long Instruction Word)는 1980년 예일대에 재학 중이던 조셉 피셔(Joseph Fisher)가 처음 발표한 CPU 명령어 처리 기법이다.
'''VLIW'''(Very Long Instruction Word)는 1980년 예일대에 재학 중이던 조셉 피셔(Joseph Fisher)가 처음 발표한 CPU 명령어 처리 기법이다.


== 상세 ==
== 상세 ==
일반적으로 CPU, GPU 같은 프로세서 칩에서 하나의 명령어를 연속적으로 빠르게 처리하는 것보다 적당한 수준의 처리 속도에서 최대한 동시에 많은 명령어를 병렬적으로 처리하는 것이 더 빠르다. 그래서 앨런 튜링을 시작으로 많은 초기 컴퓨터공학자들은 하드웨어를 통해 수평적 프로그래밍을 하는 방법을 강구하고 있었다. 조셉 피셔는 여기서 프로세서에 직접 명령어를 넣어줄 때부터 동시에 처리할 경우 훨씬 더 빠른 프로세서를 만들 수 있을 것이라고 생각하여 그의 박사 논문에 VLIW를 처음으로 구체화시켰다. 이후 여기서 고정된 파이프라이닝의 변경이 어렵다는 단점을 완화하기 위해 [[인텔]]에서 명령어 종류 간의 파이프라이닝을 분리하는 EPIC(Explicitly Parallel Instruction Computing)을 개발하였고 현대 VLIW 아키텍처는 전부 EPIC 구조를 가지고 있다.  
일반적으로 CPU, GPU 같은 프로세서 칩에서 하나의 명령어를 연속적으로 빠르게 처리하는 것보다 적당한 수준의 처리 속도에서 최대한 동시에 많은 명령어를 병렬적으로 처리하는 것이 더 빠르다. 그래서 앨런 튜링을 시작으로 많은 초기 컴퓨터공학자들은 하드웨어를 통해 수평적 프로그래밍을 하는 방법을 강구하고 있었다. 조셉 피셔는 여기서 프로세서에 직접 명령어를 넣어줄 때부터 동시에 처리할 경우 훨씬 더 빠른 프로세서를 만들 수 있을 것이라고 생각하여 그의 박사 논문에 VLIW를 처음으로 구체화시켰다. 이후 여기서 고정된 파이프라이닝의 변경이 어렵다는 단점을 완화하기 위해 [[인텔]]에서 명령어 종류 간의 파이프라이닝을 분리하는 EPIC(Explicitly Parallel Instruction Computing)을 개발하여 [[인텔 아이태니엄 시리즈]]에 적용하였고 현대 VLIW 아키텍처는 전부 EPIC 구조를 가지고 있다.  


== 장점 ==
== 장점 ==
14번째 줄: 16번째 줄:


== 현황 ==
== 현황 ==
현재 트랜스메타 [[크루소 프로세서]]나 아이태니엄 같이 일반 소비자를 위해 기획했던 VLIW 아키텍처 프로세서는 [[AMD]]의 Terascale GPU 아키텍처를 사용한 라데온 [[그래픽 카드]]를 제외하면<ref>GPU는 CPU에 비해 분기 명령을 처리할 일이 매우 적고 여러 화소를 같은 방식으로 처리하는 등 병렬적으로 데이터를 처리할 일이 많기 때문에 드라이버 소프트웨어만 잘 만들면 VLIW의 단점이 잘 가려진다. 다만 그때의 라데온의 드라이버 소프트웨어는 별명이 까탈리스트였을 정도로 제 성능 안 나오기로 유명했지만...</ref> 대부분 사장된 지 오래되었고 군사용 특수 목적 CPU인 [[옐브루스 프로세서]]나 몇몇 [[DSP]] 정도에서만 근근이 명맥을 유지하고 있다. 그리고 VLIW가 장악하지 못한 일반 소비자용 칩에는 하드웨어적으로 동시에 실행 가능한 명령어를 끌어오는 슈퍼스칼라 기법이 대신 도입되었다.
현재 트랜스메타 [[크루소 프로세서]]나 [[인텔 아이태니엄 시리즈]] 같이 일반 소비자를 위해 기획했던 VLIW 아키텍처 프로세서는 [[AMD]]의 Terascale GPU 아키텍처를 사용한 라데온 [[그래픽 카드]]를 제외하면<ref>GPU는 CPU에 비해 분기 명령을 처리할 일이 매우 적고 여러 화소를 같은 방식으로 처리하는 등 병렬적으로 데이터를 처리할 일이 많기 때문에 드라이버 소프트웨어만 잘 만들면 VLIW의 단점이 잘 가려진다. 다만 그때의 라데온의 드라이버 소프트웨어는 별명이 까탈리스트였을 정도로 제 성능 안 나오기로 유명했지만...</ref> 대부분 사장된 지 오래되었고 군사용 특수 목적 CPU인 [[옐브루스 프로세서]]나 몇몇 [[DSP]] 정도에서만 근근이 명맥을 유지하고 있다. 그리고 VLIW가 장악하지 못한 일반 소비자용 칩에는 하드웨어적으로 동시에 실행 가능한 명령어를 끌어오는 슈퍼스칼라 기법이 대신 도입되었다.


[[분류: IT]]
[[분류: IT]]
[[분류: 컴퓨터]]
[[분류: 컴퓨터]]

2023년 8월 19일 (토) 17:44 판

VLIW ISA를 사용하는 대표 CPU인 아이태니엄 2의 내부 구조

VLIW(Very Long Instruction Word)는 1980년 예일대에 재학 중이던 조셉 피셔(Joseph Fisher)가 처음 발표한 CPU 명령어 처리 기법이다.

상세

일반적으로 CPU, GPU 같은 프로세서 칩에서 하나의 명령어를 연속적으로 빠르게 처리하는 것보다 적당한 수준의 처리 속도에서 최대한 동시에 많은 명령어를 병렬적으로 처리하는 것이 더 빠르다. 그래서 앨런 튜링을 시작으로 많은 초기 컴퓨터공학자들은 하드웨어를 통해 수평적 프로그래밍을 하는 방법을 강구하고 있었다. 조셉 피셔는 여기서 프로세서에 직접 명령어를 넣어줄 때부터 동시에 처리할 경우 훨씬 더 빠른 프로세서를 만들 수 있을 것이라고 생각하여 그의 박사 논문에 VLIW를 처음으로 구체화시켰다. 이후 여기서 고정된 파이프라이닝의 변경이 어렵다는 단점을 완화하기 위해 인텔에서 명령어 종류 간의 파이프라이닝을 분리하는 EPIC(Explicitly Parallel Instruction Computing)을 개발하여 인텔 아이태니엄 시리즈에 적용하였고 현대 VLIW 아키텍처는 전부 EPIC 구조를 가지고 있다.

장점

  • 위에서 서술한 대로 실제 구현된 VLIW 디코딩을 하는 프로세서 칩은 정말 명령어 처리속도가 빠르다.
  • 명령어의 앞뒤 순서(종속성)를 미리 소프트웨어적으로 재배치한 채로 디코딩을 하기 때문에 명령어 종속성을 제거하기 위해 추가적인 하드웨어를 배치할 필요가 없고 따라서 파이프라인의 단계 수를 획기적으로 줄일 수 있다.

단점

  • 종속성 제거를 소프트웨어가 담당하기 때문에 넣어 줄 소프트웨어 명령어를 기계어로 번역하는 컴파일러의 제작 난이도가 수직상승한다. VLIW의 최대 단점으로 아이태니엄이 실패한 이유가 바로 이것이다.
  • 명령어가 잘못 들어올 수 있는 경우 파이프라인을 통째로 비우거나 CPU의 작업을 올스톱시켜야 한다. 대표적인 경우가 캐시 미스가 발생하여 한 명령어가 메모리에서 결과를 기다리는 동안 동시에 들어온 다른 명령어가 같이 기다리는 상황, 그리고 입력에 따라 조건문 같은 분기 명령어가 다르게 작동하는 상황이 있다. 이건 CISCRISC에도 있는 단점이지만 VLIW 아키텍처에서는 동시에 들어온 다른 명령어도 다같이 운명공동체가 되기 때문에 훨씬 치명적이다.
  • Read-After-Write 명령어 종속성 앞에서는 VLIW 아키텍처라도 어쩔 수 없이 직렬적인 명령어 처리를 하게 되는데, 이러면 VLIW의 장점이 가려진다.

현황

현재 트랜스메타 크루소 프로세서인텔 아이태니엄 시리즈 같이 일반 소비자를 위해 기획했던 VLIW 아키텍처 프로세서는 AMD의 Terascale GPU 아키텍처를 사용한 라데온 그래픽 카드를 제외하면[1] 대부분 사장된 지 오래되었고 군사용 특수 목적 CPU인 옐브루스 프로세서나 몇몇 DSP 정도에서만 근근이 명맥을 유지하고 있다. 그리고 VLIW가 장악하지 못한 일반 소비자용 칩에는 하드웨어적으로 동시에 실행 가능한 명령어를 끌어오는 슈퍼스칼라 기법이 대신 도입되었다.

  1. GPU는 CPU에 비해 분기 명령을 처리할 일이 매우 적고 여러 화소를 같은 방식으로 처리하는 등 병렬적으로 데이터를 처리할 일이 많기 때문에 드라이버 소프트웨어만 잘 만들면 VLIW의 단점이 잘 가려진다. 다만 그때의 라데온의 드라이버 소프트웨어는 별명이 까탈리스트였을 정도로 제 성능 안 나오기로 유명했지만...