|
|
|
|
|
|
|
|
| ( 1 of 1 ) |
| United States Patent | 7,039,906 |
| Trelewicz , et al. | May 2, 2006 |
A compiler for data processing outputs lower-level code for packing multiple signed data elements per register into a processor's registers using the rules set forth herein, and when executed, the code simultaneously operates on the elements in a register in a single cycle using the same operand. The elements can be independent of each other as defined by compiler directives, and the sizes of the elements in a register can differ from each other. Moreover, a relatively large element can be split across multiple registers. In an exemplary application, a data stream representing two images can be simultaneously processed using the same number of registers as have been required to process a single image. Or, a single image can be processed approaching N-times faster, where N is the number of elements per register. In any case, the present invention results in a significant increase in processing efficiency.
| Inventors: | Trelewicz; Jennifer Q. (Superior, CO), Brady; Michael Thomas (Longmont, CO), Mitchell; Joan Laverne (Longmont, CO) |
|---|---|
| Assignee: |
International Business Machines Corporation
(Armonk,
NY)
|
| Family ID: | 27101408 |
| Appl. No.: | 09/693,090 |
| Filed: | October 20, 2000 |
| Application Number | Filing Date | Patent Number | Issue Date | ||
|---|---|---|---|---|---|
| 09675779 | Sep 29, 2000 | ||||
| Current U.S. Class: | 717/149; 708/513; 712/22; 712/E9.017; 712/E9.025; 717/159 |
| Current CPC Class: | G06F 7/4991 (20130101); G06F 7/49994 (20130101); G06F 8/441 (20130101); G06F 8/447 (20130101); G06F 9/30036 (20130101); G06F 9/30109 (20130101); G06F 9/30112 (20130101); G06F 9/30014 (20130101); G06F 7/49921 (20130101); G06F 2207/3828 (20130101); G06F 2207/3816 (20130101) |
| Current International Class: | G06F 9/45 (20060101) |
| Field of Search: | ;717/149,150,159 ;708/498,513 ;712/22 |
| 3816734 | June 1974 | Brendzel |
| 4752873 | June 1988 | Shonai et al. |
| 4956800 | September 1990 | Kametani |
| 5021945 | June 1991 | Morrison et al. |
| 5218564 | June 1993 | Covey |
| 5230057 | July 1993 | Shido et al. |
| 5274818 | December 1993 | Vasilevsky et al. |
| 5293631 | March 1994 | Rau et al. |
| 5303357 | April 1994 | Inoue et al. |
| 5341506 | August 1994 | Nohmi et al. |
| 5381531 | January 1995 | Hanawa et al. |
| 5390135 | February 1995 | Lee et al. |
| 5408670 | April 1995 | Davies |
| 5410721 | April 1995 | Divine et al. |
| 5418915 | May 1995 | Matuda et al. |
| 5574939 | November 1996 | Keckler et al. |
| 5594679 | January 1997 | Iwata |
| 5602769 | February 1997 | Yu et al. |
| 5669010 | September 1997 | Duluk, Jr. |
| 5689450 | November 1997 | Kurokawa et al. |
| 5692207 | November 1997 | Ho-Lung et al. |
| 5770894 | June 1998 | Agarwal |
| 5774727 | June 1998 | Walsh et al. |
| 5818364 | October 1998 | Hintzman et al. |
| 5847978 | December 1998 | Ogura et al. |
| 5864703 | January 1999 | van Hook et al. |
| 5881259 | March 1999 | Glass et al. |
| 5907694 | May 1999 | Suzuki et al. |
| 5958038 | September 1999 | Agrawal et al. |
| 5999987 | December 1999 | O'Farrell et al. |
| 6038652 | March 2000 | Phillips et al. |
| 6080204 | June 2000 | Mendel |
| 6112299 | August 2000 | Ebcioglu et al. |
| 6243803 | June 2001 | Abdallah et al. |
| 6519052 | February 2003 | Oneda et al. |
| 3257579 | Nov 1991 | JP | |||
Hank Dietz, "Technical Summary: SWAR Technology," [online] 1997 [accessed Mar. 18, 2004], Retrieved from Internet <URL: http://dynamo.ecn.purdue.edu/.about.hankd/SWAR/over.html>, pp. 1-5. cited by examiner . Prof. Hank Dietz and Randy Fisher, "Scc: Simd within a register C Compiler," [online] 1998 [accessed Mar. 18, 2004], Retrieved from Internet <URL: http://dynamo.ecn.purdue.edu/.about.hankd/SWAR/Scc.html>, pp. 1-14. cited by examiner . Randall Fisher, "General-Purpose SIMD within a Register: Parallel Processing on Consumer Microprocessors," 1997, Ph.D. Thesis Proposal, School of Electrical and Computer Engineering, Purdue University, pp. 1-26. cited by examiner . Randall J. Fisher, "Issues in the Design of SWAR Programming Models," 1998, Presentation slides, 11th annual Workshop on Languages and Compilers for Parallel Computing (LCPC98), pp. 1-21. cited by examiner . Randall J. Fisher and Henry G. Dietz, "Compiling for SIMD within a Register," 1998 Workshop on Languages and Compilers for Parallel Computing, North Carolina, Aug. 1998, pp. 1-20. cited by examiner . Randall J. Fisher and Henry G. Dietz, "The Scc Compiler: SWARing at MMX and 3DNow!," 1999, 12.sup.th Annual Workshop on Languages and Compilers for Parallel Computing (LCPC99), pp. 1-15. cited by examiner . "SWAR: SIMD within a Register (at Purdue ECE)," [online] 1997 [accessed Mar. 18, 2004], Retrieved from Internet <URL: http://dynamo.ecn.purdue.edu/.about.hankd/SWAR>, p. 1. cited by examiner . Andrew C. Staugaard, Jr., "Structured and Object-Oriented Techniques: an Introduction Using C++," 1997, Prentice-Hall, Inc., pp. iii, iv, 70, and 75. cited by examiner . IBM Technical Disclosure Bulletin. "Multisequencing a Single Instruction Stream as High-End Machine". vol. 36, PubNo. 5. pp. 9-12. May 1993. cited by other . IBM Technical Disclosure Bulletin. "High Speed Parallel SIGNATURE Board". pp. 114-119, Jun. 1986. cited by other. |
|
|