Patent ID: 8447959

Claim:
A multithread processor processing apparatus, comprising: at least one processing unit that executes first processing on a first thread or second processing on a second thread; a first store unit that stores first data used for the first processing; a second store unit that stores second data used for the second processing; a first retain unit, connected to the at least one processing unit and the first and second store units, the first retain unit retaining the first data from the first store unit and the second data from the second store unit; a second retain unit that retains information about an active one of the first and second threads; a third retain unit that retains information about an inactive one of the first and second threads; and a control unit, wherein the control unit, when the first processing is executed, forwards the first data retained in the first retain unit, from the first retain unit to one of the at least one processing unit, and stores, in the first retain unit and in the first store unit corresponding to the first thread, first result data that results from the first processing and is outputted from the one of the at least one processing unit that receives the first data, and wherein the control unit, when the second processing is executed by switching from the first thread to the second thread, forwards, to the second retain unit, the information about the inactive second thread, the information being retained in the third retain unit before thread switching; switches the second thread from inactive to active, by forwarding, to the third retain unit, the information about the active first thread, the information being retained in the second retain unit before the thread switching; makes the first retain unit retain the second data that corresponds to the second thread and is forwarded from the second store unit; forwards the second data retained in the first retain unit, from the first retain unit to one of the at least one processing unit; and stores, in the first retain unit and in the second store unit, second result data that results from the second processing and is outputted from the at least one processing unit that receives the second data.