Patent ID: 8539208

Claim:
An arithmetic processing unit comprising: an arithmetic section configured to perform arithmetic processing; a register file including K number of windows each of which has N number of registers including a shared register that is shared by a neighboring window, and is used for passing an argument when calling a subroutine, a current window selecting unit configured to select, when a register value is read from the register file, a current window from the K number of windows according to a window address information that is output from a control section and is based on a value of a current window pointer, and a register selecting unit configured to select a reading register via a reading address; and the control section configured to output the window address information for the current window selecting unit of the register file to select a window, wherein the current window selecting unit comprises: a first local register reading port configured to select a register based on the window address information from local registers in local register groups whose window number is even, the local registers being working registers of the subroutine; a second local register reading port configured to select a register based on the window address information from local registers in local register groups whose window number is odd, the local registers being working registers of the subroutine; a first out-register reading port configured to select a register based on the window address information from out-registers in out-register groups whose window number is even, the out-registers being used for passing an argument when the subroutine is called; a second out-register reading port configured to select a register based on the window address information from out-registers in out-register groups whose window number is odd, the out-registers being used for passing an argument when the subroutine is called; and a third out-register reading port configured to select a register based on the window address information from out-registers in out-register groups used for passing an argument when the subroutine is called.