일반기술
목적코드 수준에서의 벡터 스케쥴링 기법 및 그 시스템
벡터 루프는 과학적인 계산을 수행하는 프로그램에서 빈번히 발생되는 루프로서 계산 시간의 많은 부분을 소모하는 루프이다. SIMD (Single Instruction stream Multiple Data stream) 계열의 컴퓨터들은 이러한 벡터 루프들을 프로그램의 원시코드 수준에서 검출하여 벡터 명령어로 변환시킴으로써 프로그램의 수행속도를 향상시키고 있다. 그러나 목적코드 수준에서 벡터 루프를 검출하고 벡터화시키는 기법은 원시코드 수준에서와는 다른 몇 가지 문제점들을 안고 있어서, 목적코드 수준에서는 루프 구조와 반복 조건들이 코드상에 명확히 드러나 있지 않다. 따라서 목적코드 수준에서 벡터 루프를 찾기 위해서는 먼저 프로그램 흐름 그래프상에서 루프가 검출되어야 하고, 그 루프를 제어하는 변수가 검출되어야 하며 그 LCV의 초기값, 증감폭, 최종값 등이 분석되어야 한다. 또한, 벡터 루프로 판명된 루프를 병렬화시키는 작업에서 루프에 의해 반복되는 동일한 명령어를 하나의 벡터 명령어로 만들기 위해서는 많은 상대 레지스터가 필요하게 되고, 이 레지스터들은 그것을 사용하는 명령어로 정확하게 이식되어야 한다. 많은 상대 레지스터들을 한꺼번에 사용해야 하기 때문에 레지스터 압력을 제어하기 위한 방법 또한 고려되어야 한다. 본 기술은 프로그램의 실행 속도 향상을 위한 코드 최적화 기법에 관한 것으로 프로그램의 목적코드 수준에서 루프의 구조나 반복조건, 그리고 자료 종속성 등에 대한 전체적인 정보에 기반하여 스케줄링을 수행한다.본 기술의 벡터 스케쥴링은 루프 구조나 반복조건에 대한 전체적인 정보에 기반하여 스케쥴링을 수행하기 때문에 자료 종속성만으로 스케쥴하는 소프트웨어 파이프 라이닝보다 더 높은 병열성을 추출할 수 있는 특징이 있다.본 기술은 소프트웨어 파이프라이닝 방법보다 프로그램의 수행속도를 향상시킨다. 소프트웨어 파이프라이닝 방법이 적용된 루프에 비해서 벡터 스케줄된 루프의 경우 대략 4배의 속도 향상을 나타내며, 벡터 스케줄링은 상대적으로 기계적인 단계로 수행될 수 있는 벡터 판명과 루프 전개 등에 대부분의 시간을 소비하므로 소프트웨어 파이프라이닝 방법에 비해 유리한 효과가 있다.본 기술이 적용되는 시장은 프로그램 설계 분야에 다양하게 사용될 수 있어서 응용될 수 있는 시장 범위는 매우 넓다.
기술정보
- 기술분류
- 정보 > 데이터베이스 관리시스템
- 보유기관
- 인하대학교
- 기술유형
- 일반기술
- 등록일
- 2004-03-17
- 데이터 갱신일
- 정보 없음
상세설명
정보 없음
관련 특허
등록된 관련 특허가 없습니다.