A chip from the birth of demand to the final chip packaging success, need to go through a very long process. If it's some kind of non-programmable chip,
Compared to the new Isa, the two types of chips corresponding to the software workload, is not at an order of magnitude. Non-programmable chip, does not require the ISA design, does not
Need compiler design, and these two parts of the software, whether from the difficulty, or the workload, are a certain degree of difficulty. Especially
Compiler is a scarce resource in China. A set of efficient and excellent Isa, need to do a lot of preliminary research on the application scenarios of the chip, need
Sufficient statistical data to be finalized. Take the first GPU as an example, when the GPU was designed, because vertex staining in the GPU and pixel
The dyed render parts are programmable, so you need to provide a set of instructions for the GPU, which was the first GPU design, holding the ARB
Provided by the virtual ISA directly designed, there is no deep research and statistics resulting in the final, rendering processor design, complex ISA
The scale of the hardware does not have to be expanded. In the second GPU design, the first version of ISA is a large number of cropping, thus rendering
The hardware size of the processor is much smaller. These are the problems that ISA design brings. For GPU compiler, because the team did not
Compiler people, the original rendering software is all their own with the ISA one by one to toss out. Usually, you communicate with the computer
Language is C, the first time to use the assembly to the GPU to write code, due to lack of proficiency, to the blank note on the use of register allocation. of common
Processor, only a few registers, manual assembly programming, requires the programmer to do the register of the allocation, a bit inattentive, usually lead to the process
The first run of the sequence is correct, and at the second execution, the program runs incorrectly due to a register problem. This problem is the hardest to debug. If there is
Compiler, he's going to save a lot of time with the allocation of registers, which is also a benefit of high-level languages, and of course, usually,
High-level language programmers will not consider these issues.
Some problems in the design of graphics processing chip