º»¹®/³»¿ë
ÃÖ±ÙÀÇ ILP(Instruction Level Parallelism) ÇÁ·Î¼¼¼µéÀº ¼º´ÉÀ» ÃÖ´ëÇÑ ÀÌ¿ëÇϱâ À§ÇÏ¿© ¸¹Àº ÃÖÀûÈ ±â¼úµéÀ» »ç¿ëÇÑ´Ù. ƯÈ÷, ÃÖÀûÈ ±â¼ú Áß ¸í·É¾î ½ºÄÉÁ층½Ã ¸í·É¾îµé »çÀÌ¿¡
Á¦¾îÁ¾¼Ó°ú ÀÚ·áÁ¾¼ÓÀ¸·Î ÀÎÇÑ Áö¿¬(delay, stall)À» ÃÖ¼ÒÈÇϱâ À§ÇÑ ¿¬±¸µéÀÌ ÁøÇàÁßÀÌ´Ù[1, 2].
ÄÚµå ½ºÄÉÁ층(Code Scheduling)Àº ÇÁ·Î±×·¥ÀÇ ½ÇÇà½Ã°£À» ÃÖ¼ÒÈÇϱâ À§ÇÏ¿© ¸í·É¾îµéÀ» ÀçÁ¤·ÄÇϱâ À§ÇÑ ±â¹ýÀÌ´Ù. ¶ÇÇÑ, ÀûÀº ¼öÀÇ Çϵå¿þ¾î ÀÚ¿øÀ» È¿°úÀûÀ¸·Î ÀÌ¿ëÇϱâ À§ÇÑ ·¹Áö½ºÅÍ ÇÒ´ç ±â¹ýµµ ÃÖÀûȸ¦ À§ÇÑ Áß¿äÇÑ ±â¹ýÀÇ Çϳª¶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌµé µÎ ±â¹ýÀ» º´ÇàÇÏ¿© ÃÖÀûȸ¦ ¼öÇàÇϸé È¿°úÀûÀÎ ÃÖÀûÈ ±â¹ýÀÌ µÉ ¼ö ÀÖÁö¸¸ ºÒÇàÈ÷µµ À̵éÀº ¼·Î »óÃæµÇ´Â °ü°è¸¦ °¡Áø´Ù. À̸¦ º¸¿ÏÇϱâ À§ÇÑ ¿¬±¸°¡ Ȱ¹ßÈ÷ ÁøÇàÁßÀε¥ ·¹Áö½ºÅÍ ÇÒ´ç Àü¿¡ ÄÚµå ½ºÄÉÁ층À» ¼öÇàÇÏ´Â ±â¹ýÀ» ¼±´Ü°è ÄÚµå ½ºÄÉÁ층À̶ó°í ÇÏ°í ·¹Áö½ºÅÍ ÇÒ´çÈÄ¿¡ Äڵ带 ½ºÄÉÁ층ÇÏ´Â ±â¹ýÀ» ÈĴܰè ÄÚµå ½ºÄÉÁ층(Postpass Code Scheduling)À̶ó°í ÇÑ´Ù[3, 4, 5].
¼±´Ü°è ÄÚµå ½ºÄÉÁ층À» À§ÇÑ ÃÖÀûÈ ÄÄÆÄÀÏ·¯ÀÇ È帧Àº Fig 1°ú °°´Ù.
Fig 1¿¡¼ »ìÆìº¸¸é ¼±´Ü°è ÄÚµå ½ºÄÉÁ층À»¡¦(»ý·«)
Âü°í¹®Çå
P. P. Chang, W. W. Hwu, `Trace Selection for Compiling Large C Application Programs to Microcode,` Proceedings of the 21st International Microprogramming Workshop, pp. 21¢¦29, Nov. 1988.
2. M. D. Smith, M. S. Lam, M. A. Horowitz, `Boosting Beyond Static Scheduling in a Superscalar Processor,` Proceedings of the 17th Annual International Symposium on Computer Architecture, pp. 344¢¦354, May 1990.
3. P. B. Gibbons, S. S. Muchnick, `Efficient instruction scheduling for a pipelined architecture,` Proceeding of the SIGPLAN `86 Symposium on Compiler Construction, pp. 11¢¦16, 1986.
4. J. R. Goodman, W. C. Hsu, `Code scheduling and register allocation in large basic blocks,` International Conference on Supercomputing, pp. 442¢¦452, 1988.
5. D. G. Bradlee, S. J. Eggers, R. R. Henry, `Integrating register allocation and instruction scheduling for RISCs,` Architectural Support for Programming Languages and Operating Systems, pp. 122¢¦131, 1991.
6. G. J. Chaitin, `Register allocation and spilling via graph coloring,` SIGPLAN Notices, pp. 98¢¦105, June 1982.
7. ÃÖÁرâ, ½ÉÇö±Ô, ÀÌ»óÁ¤, ¡°Retargetable ÄÄÆÄÀÏ·¯ÀÇ ±¤¿ª ·¹Áö½ºÅÍ ÇÒ´ç ±â¹ý,¡± Çѱ¹Á¤º¸°úÇÐȸ Ãß°è Çмú´ëȸ ³í¹®Áý, Vol. 24, No. 2, pp. 351¢¦354, 1997.