스와

SWAR

SIMD in Register(SWAR; 레지스터 내 SIMD)[1]프로세서 레지스터에 포함된 데이터에 대해 병렬 연산을 수행하기 위한 기술입니다.SIMD는 단일 명령, 다중 데이터를 나타냅니다.Flynn의 1972년 분류법에 따르면 SWAR은 "파이프라인 처리"로 분류됩니다.

현대의 많은 범용 컴퓨터 프로세서에는 SIMD에 대한 몇 가지 조항이 있으며, 레지스터 그룹 및 이를 사용하기 위한 명령어 형태로 제공됩니다.SWAW는 SIMD 작업을 더 잘하도록 설계된 특수 처리 엔진을 사용하는 것이 아니라 이러한 레지스터와 명령을 사용하는 것을 의미합니다.또한 당시에는 의도하지 않았던 범용 레지스터 및 명령과 함께 다양한 새로운 소프트웨어 [3]트릭을 통해 SIMD를 사용하는 것을 의미합니다.

SWAR 아키텍처

SWAR 아키텍처는 레지스터의 독립된 서브워드 또는 필드에 저장되어 있는 데이터에 대해 병렬 연산을 실행하도록 명시적으로 의도된 명령을 포함하는 아키텍처입니다.SWAR 대응 아키텍처는 이러한 필드에 저장되어 있는 데이터를 개별적으로 처리할 수 있는 일련의 명령어를 포함하는 아키텍처입니다.단, 아키텍처에 명시적으로 의도된 명령어는 포함되어 있지 않습니다.

SWAR 아키텍처의 초기 예는 MMX 확장 세트를 구현한 MMX 인텔 Pentium입니다.반면 인텔 Pentium에는 이러한 명령어가 포함되어 있지 않지만 신중한 수동 코딩 또는 컴파일러 기술을 통해 SWAR 아키텍처로서 기능할 수 있습니다.

초기의 SWAR 아키텍처에는 DEC Alpha, Hewlett-Packard의 PA-RISC MAX, Silicon Graphics Incorporated의 MIPS MDMX, Sun의 SPARC V9 VIS 등이 있습니다.MMX와 마찬가지로 많은 SWAR 명령어세트는 보다 빠른 비디오코딩을 [4]목적으로 하고 있습니다.

SWAR 프로그래밍 모델의 이력

웨슬리 A. Clark는 1950년대에[citation needed] 분할된 하위 단어 데이터 작업을 도입했습니다.이는 SWAR의 초기 버전이라고 할 수 있습니다.Leslie Lamport는 1975년 "Multiple byte processing with full-word instructions"[5]라는 제목의 논문에서 SWAR 기술을 발표했습니다.

1996년 인텔의 MMX 멀티미디어 명령어 세트 확장이 도입되면서 SIMD 병렬 처리 기능을 갖춘 데스크톱 프로세서가 보편화되었습니다.이전에는 이러한 지침을 손으로 쓴 어셈블리 코드를 통해서만 사용할 수 있었습니다.

1996년 가을, Hank Dietz 교수는 Purdue 대학 전기 컴퓨터 공학부의 학부 컴파일러 건설 과정의 강사였습니다.이 과정에서는 학생들이 MMX를 대상으로 한 단순한 컴파일러를 구축하는 일련의 프로젝트를 할당했습니다. 입력 언어는 NEMPL(Not Extily MPL)이라고 불리는 MasPar의 MPL의 서브셋 방언이었습니다.

학기 중에 코스 어시스턴트인 랜달(랜디) 피셔에게 NEMPL 컴파일러의 백엔드를 구축하기 어려운 MMX에 많은 문제가 있다는 것이 분명해졌습니다.예를 들어 MMX에는 16비트 데이터를 곱하는 명령이 있지만 8비트 데이터는 곱하지 않습니다.NEMPL 언어에서는 이 문제가 발생하지 않았기 때문에 프로그래머는 8비트 곱셈이 필요한 프로그램을 작성할 수 있었습니다.

인텔의 x86 아키텍처만이 SIMD와 같은 병렬 명령어를 탑재한 것은 아닙니다.Sun의 VIS, SGI의 MDMX 및 기타 멀티미디어 명령 세트는 소위 미디어 애플리케이션을 지원하기 위해 다른 제조업체의 기존 명령 세트 아키텍처에 추가되었습니다.이러한 확장은 데이터의 정밀도와 지원되는 명령 유형에 큰 차이가 있었습니다.

Dietz와 Fisher는 프로그래밍이 대상 아키텍처의 세부 사항을 알지 않고도 모델을 대상으로 할 수 있는 잘 정의된 병렬 프로그래밍 모델의 아이디어를 개발하기 시작했습니다.이 모델은 피셔의 논문의 기초가 될 것이다."SWAR"라는 약자는 어느 날 디츠와 피셔가 퍼듀 [6]대학의 MSEE 건물에 있는 행크의 사무실에서 만든 것이다.이는 병렬 처리의 이러한 형태, 이러한 유형의 처리를 기본적으로 수행하도록 설계된 아키텍처 및 피셔의 논문인 범용 프로그래밍 모델을 말합니다.

이러한 다양한 아키텍처에 [4]대한 컴파일 문제는 LCPC98에서 제시된 논문에서 논의되었습니다.

SWAR의 일부 응용 프로그램

SWAR 처리는 이미지 처리,[7] 암호 페어링,[8] 래스터 [9]처리에 사용되어 왔습니다.컴퓨터 유체 [10]역학 및 통신.[11]

「 」를 참조해 주세요.

레퍼런스

  1. ^ Miyaoka, Y.; Choi, J.; Togawa, N.; Yanagisawa, M.; Ohtsuki, T. (2002). An algorithm of hardware unit generation for processor core synthesis with packed SIMD type instructions. Asia-Pacific Conference on Circuits and Systems. Vol. 1. p. 171-176. doi:10.1109/APCCAS.2002.1114930. hdl:2065/10689.
  2. ^ Flynn, Michael J. (September 1972). "Some Computer Organizations and Their Effectiveness" (PDF). IEEE Transactions on Computers. C-21 (9): 948–960. doi:10.1109/TC.1972.5009071.
  3. ^ Fisher, Randall J (2003). General-Purpose SIMD Within A Register: Parallel Processing on Consumer Microprocessors (PDF) (Ph.D.). Purdue University.
  4. ^ a b Fisher, Randall J.; Henry G. Dietz (August 1998). S. Chatterjee; J. F. Prins; L. Carter; J. Ferrante; Z. Li; D. Sehr; P.-C.Yew (eds.). "Compiling for SIMD Within A Register". Proceedings of the 11th International Workshop on Languages and Compilers for Parallel Computing.
  5. ^ Lamport, Leslie (August 1975). "Multiple byte processing with full-word instructions". Communications of the ACM. 18 (8): 471–475. doi:10.1145/360933.360994. S2CID 1593593.
  6. ^ Dietz, Hank. "The Aggregate Magic Algorithms".
  7. ^ Padua, Flavio L. C.; Pereira, Guilherme A. S.; Neto, Jose P. de Queiroz; Campos, Mario F. M.; Fernandes, Antonio O. (2001). "Improving processing time of large images by instruction level parallelism" (PDF). Archived from the original (PDF) on 2007-02-25. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  8. ^ Grabher, Philipp; Johann Großschädl; Dan Page (2009). On Software Parallel Implementation of Cryptographic Pairings. Selected Areas in Cryptography. Lecture Notes in Computer Science. Vol. 5381. pp. 35–50. doi:10.1007/978-3-642-04159-4_3. ISBN 978-3-642-04158-7.
  9. ^ Persada, Onil Nazra; Thierry Goubier (12–14 September 2004). "Accelerating Raster Processing with Fine and Coarse Grain Parallelism in GRASS". Proceedings of the FOSS/GRASS Users Conference 2004.
  10. ^ Hauser, Thomas; T. I. Mattox; R. P. LeBeau; H. G. Dietz; P. G. Huang (April 2003). "Code Optimizations for Complex Microprocessors Applied to CFD Software". SIAM Journal on Scientific Computing. 25 (4): 1461–1477. doi:10.1137/S1064827502410530. ISSN 1064-8275.
  11. ^ Spracklen, Lawrence A. (2001). SWAR Systems and Communications Applications (PDF) (Ph.D.). University of Aberdeen.

외부 링크