Patent ID: 8141088

Claim:
A multithreaded processor that executes instruction streams simultaneously, said multithreaded processor comprising: a computing unit group comprising computing units operable to execute instructions; a grouping unit operable to group the instruction streams into groups for each of the instruction streams, the instructions being included in each of the instruction streams, and each of the groups being made up of instructions to be simultaneously issued to the computing units in said computing unit group in each of execution cycles of said multithreaded processor; an instruction buffer which holds the instructions for each of the groups obtained by said grouping unit; an instruction issuing unit operable to read the instructions for each of the groups from said instruction buffer in each of the execution cycles of said multithreaded processor, and to issue the read instructions to said computing unit group; a first priority queue which stores first identifiers for each of the instruction streams; and a priority determining unit operable to select at least one of the first identifiers from said first priority queue by prioritizing the first identifiers and switching priorities of the first identifiers in each of the execution cycles of said multithreaded processor, and to determine at least one of the selected first identifiers as priority information, wherein said instruction issuing unit is operable in each of the execution cycles of said multithreaded processor: (i) to determine an instruction stream based on the priority information determined by said priority determining unit; (ii) to read, from said instruction buffer, a group of instructions included in the determined instruction stream; and (iii) to issue the read instructions to said computing unit group.