IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0677106
(2000-09-29)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
12 인용 특허 :
4 |
초록
▼
Systems and methods perform super-region instruction scheduling that increases the instruction level parallelism for computer programs. A compiler performs data flow analysis and memory interference analysis on the code to determine data dependencies between entities such as registers and memory loc
Systems and methods perform super-region instruction scheduling that increases the instruction level parallelism for computer programs. A compiler performs data flow analysis and memory interference analysis on the code to determine data dependencies between entities such as registers and memory locations. A region tree is constructed, where the region tree contains a single entry block and a single exit block, with potential intervening blocks representing different control flows through the region. Instructions within blocks are moved to predecessor blocks when there are no dependencies on the instruction to be moved, and when the move results in greater opportunity for instruction level parallelism. Redundant instructions from multiple paths can be merged into a single instruction during the process of scheduling. In addition, if a dependency can be removed the method transforms the instruction into an instruction that can be moved to a block having available resources.
대표청구항
▼
What is claimed is: 1. A computerized method for scheduling one or more instructions within one or more instruction blocks, the method comprising: analyzing a control flow and a data flow of the one or more instructions to determine registers accessed by the one or more instructions; constructing a
What is claimed is: 1. A computerized method for scheduling one or more instructions within one or more instruction blocks, the method comprising: analyzing a control flow and a data flow of the one or more instructions to determine registers accessed by the one or more instructions; constructing a region tree having one or more regions, each region containing a subset of the one or more instruction blocks; and, for each region in the region tree, performing the tasks of: creating a dependency graph of the subset of the one or more instruction blocks based on the registers accessed by the one or more instructions comprised in the subset of the one or more instruction blocks; and, scheduling each block in the subset of the one or more instruction blocks, wherein scheduling each block in the subset of the one or more instruction blocks comprises: constructing a ready list for holding ready-to-schedule instructions; obtaining a ready-to-schedule instruction from the ready list; scanning the ready list for one or more identical instructions to the ready-to-schedule instruction; and merging the one or more identical instructions into the ready-to-schedule instruction. 2. The computerized method of claim 1, wherein creating a dependency graph creates a directed acyclic graph. 3. The computerized method of claim 1, wherein the tasks performed further include creating a wide-trace within the region, the wide-trace comprising a second subset of the blocks in the region, each block in the subset having a block weighting representing frequency of use of the block. 4. The computerized method of claim 3, wherein the block weighting is determined by profiling the one or more instructions. 5. The computerized method of claim 3, wherein the block weighting is determined by heuristics designed to predict the block weighting. 6. The computerized method of claim 1, wherein scheduling each block in the subset of the one or more instruction blocks further comprises transforming an instruction into an identical instruction. 7. The computerized method of claim 6, wherein transforming an instruction comprises transforming the instruction into a speculatively executed instruction. 8. The computerized method of claim 6, wherein transforming an instruction comprises changing the register accessed by the instruction. 9. The computerized method of claim 6, wherein transforming an instruction comprises converting the instruction into a predicate instruction. 10. The computerized method of claim 1, further comprising analyzing a set of memory references for a memory interference. 11. The computerized method of claim 1, wherein the tasks further include: performing a path analysis for use in creating the dependency graph; and incrementally updating a system state. 12. A computer-readable storage medium having computer-executable instruction for performing a method for scheduling one or more instructions within one or more instruction blocks, the method comprising: analyzing a control flow and a data flow of the one or more instructions determine registers accessed by the one or more instructions; constructing a region tree having one or more regions, each region containing a subset of the one or more instruction blocks; and, for each region in the region tree, performing the tasks of: creating a dependency graph of the subset of the one or more instruction blocks based on the registers accessed by the one or more instructions comprised in the subset of the one or more instruction blocks; and, scheduling each block in the subset of the one or more instruction blocks, wherein scheduling each block in the subset of the one or more instruction blocks comprises: constructing a ready list for holding ready-to-schedule instructions; obtaining a ready-to-schedule instruction from the ready list; scanning the ready list for one or more identical instructions to the ready-to-schedule instruction; and merging the one or more identical instructions into the ready-to-schedule instruction. 13. The computer-readable medium of claim 12, wherein creating a dependency graph creates a directed acyclic graph. 14. The computer-readable medium of claim 12, wherein the tasks performed further include creating a wide-trace within the region, the wide-trace comprising a second subset of the blocks in the region, each block in the subset having a block weighting representing frequency of use of the block. 15. The computer-readable medium of claim 14, wherein the block weighting is determined by profiling the one or more instructions. 16. The computer-readable medium of claim 14, wherein the block weighting is determined by heuristics designed to predict the block weighting. 17. The computer-readable medium of claim 12, wherein scheduling each block in the subset of the one or more instruction blocks further comprises transforming an instruction into an identical instruction. 18. The computer-readable medium of claim 17, wherein transforming an instruction comprises transforming the instruction into a speculatively executed instruction. 19. The computer-readable medium of claim 17, wherein transforming an instruction comprises changing the register in the instruction. 20. The computer-readable medium of claim 17, wherein transforming an instruction comprises converting the instruction into a predicate instruction. 21. The computer-readable medium of claim 12, wherein the method further comprises analyzing a set of memory references for a memory interference. 22. The computer-readable medium of claim 12, wherein the tasks further include performing a path analysis for use in creating the dependency graph.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.