Assembler system and method for a geometry accelerator
First Claim
1. An assembler method for enabling efficient usage of space in a read only memory (ROM) that permits multiway branching, comprising the steps of:
- providing source code having nonaligned and aligned instructions, each of the nonaligned instruction being nonaddressable by other instructions, each of the aligned instructions being addressable by a plurality of other instructions,storing the nonaligned instructions in the ROM, starting with a lowest memory location and moving to higher memory locations; and
storing the aligned instructions in the ROM, starting with a highest memory location and moving to lower memory locations.
3 Assignments
0 Petitions
Accused Products
Abstract
An assembler system enables efficient usage of space in a read only memory (ROM) that permits multiway instruction branching. Source code is analyzed and assembled by the assembler system and the assembler system then efficiently places the instructions in the ROM. The source code includes at least the following elements or an equivalent counterpart thereof: next state statements, nonaligned instructions, align statements, and aligned instructions. Next state statements serve as a flag to separate the various instructions. Nonaligned instructions are defined as those instructions that are nonaddressable by other instructions, i.e., those instructions that are not branched to. Align statements serve as a flag to the assembler system that a plurality k (where k is equal to 2n and where n is a positive integer) of aligned instructions directly follow in succession. Furthermore, aligned instructions are defined as those that are addressable by a plurality of other instructions, i.e., those instructions that can be branched to by a branch instruction. A branch instruction can be a nonaligned or an aligned instruction. The assembler system is configured to store the nonaligned instructions in the ROM in succession starting with a lowest memory location and moving to higher memory locations. Moreover, the assembler system is configured to store aligned instructions in the ROM in sets of k instructions starting with a highest memory location and moving toward lower memory locations, a lowest location of each set of the ROM being a mathematical multiple of k.
45 Citations
17 Claims
-
1. An assembler method for enabling efficient usage of space in a read only memory (ROM) that permits multiway branching, comprising the steps of:
-
providing source code having nonaligned and aligned instructions, each of the nonaligned instruction being nonaddressable by other instructions, each of the aligned instructions being addressable by a plurality of other instructions, storing the nonaligned instructions in the ROM, starting with a lowest memory location and moving to higher memory locations; and storing the aligned instructions in the ROM, starting with a highest memory location and moving to lower memory locations. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An assembler method for enabling efficient usage of space in a read only memory (ROM) that permits multiway branching, comprising the steps of:
-
providing source code having code fragments that include nonaligned, align, and aligned instructions, the nonaligned instruction being nonaddressable by other instructions, the align statements indicating a following set of k aligned instructions, where k is equal to 2n and where n is a positive integer, the aligned instructions being addressable by a plurality of other instructions; analyzing the code fragments in succession and storing the nonaligned and aligned instructions in the ROM by; storing any of the nonaligned instructions in the ROM, in succession starting with a lowest memory location and moving toward higher memory locations; and storing any of the aligned instructions in the ROM, starting with a highest memory location and moving to lower memory locations, by storing sets of k instructions associated with each of the align statement within sets of k contiguous locations of the ROM, a first location of each set of the ROM being a highest memory location, at a time of analysis of the align statement, that is a mathematical multiple of k. - View Dependent Claims (9, 10, 11)
-
- 12. An assembler system for enabling efficient usage of space in a read only memory (ROM) that permits multiway branching, the system comprising logic configured to analyze instructions of source code and store the instructions in the ROM, the instructions including nonaligned and aligned instructions, each of the nonaligned instructions being nonaddressable by other instructions, each of the aligned instructions being addressable by a plurality of other instructions, the logic configured to store the nonaligned instructions in the ROM, starting with a lowest memory location and moving to higher memory locations, and the logic configured to store the aligned instructions in the ROM, starting with a highest memory location and moving to lower memory locations.
-
15. A geometry accelerator, comprising:
-
a stack of a plurality of processing elements; a plurality of control units implemented in a read-only memory (ROM) via instructions, each of the control units configured to drive a processing element in order to modify image data; a next address associated with each of the instructions and defining a location in the ROM of a next instruction to be executed; nonaligned and aligned instructions situated in the ROM, each of the nonaligned instructions being nonaddressable by other instructions, each of the aligned instructions being addressable by a plurality of other instructions, the nonaligned instructions being stored in the ROM in succession starting with a lowest memory location and moving to higher memory locations, and the aligned instructions being stored in the ROM in sets of locations starting with a highest memory location and moving toward lower memory locations; and branch logic configured to define the next address for a currently executing instruction associated with a corresponding ROM-based control unit. - View Dependent Claims (16, 17)
-
Specification