IP Library Granted Patent US 9,678,752
Granted Patent B2
US 9,678,752 · App. 14/258,526 · Granted Jun 13, 2017

Scheduling apparatus and method of dynamically setting the size of a rotating register

Inventor: Tai-Song Jin (Seoul, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F9/30123G06F9/30112G06F9/30134G06F9/30138G06F9/30189
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,678,752
App. No.
14/258,526
Granted
Jun 13, 2017
Kind
B2
Abstract

A scheduling apparatus for dynamically setting a size of a rotating register of a local register file during runtime ids provided. The scheduling apparatus may include a determiner configured to determine whether a non-rotating register of a central register file is sufficient to schedule a program loop; a selector configured to select at least one local register file to which a needed non-rotating register is allocated in response to a determination that the non-rotating register of a central register file has a size which is sufficient to loop a program loop; a scheduler configured to schedule a non-rotating register of the at least one selected local register file.

Claims (29)

1. A scheduling apparatus, comprising:

a determiner configured to determine whether a non-rotating register of a central register file has a size which is sufficient to schedule a program loop, by calculating a required size of a non-rotating register for the program loop and comparing the calculated size with the size of a non-rotating register of a central register file;

a selector configured to select at least one local register file to which a needed non-rotating register is allocated in response to a determination that the non-rotating register of a central register file does not have a size which is sufficient to schedule a program loop; and

a scheduler configured to schedule a non-rotating register to the at least one selected local register file,

wherein in response to the determination that the non-rotating register of the central register file has a size which is sufficient to schedule a program loop, the scheduler configured to schedule a non-rotating register to the central register file.

2. The scheduling apparatus of claim 1 , wherein the determiner is further configured to calculate the size of the non-rotating register of the central register file based on a live-in/out value of the program loop.

3. The scheduling apparatus of claim 1 , wherein the scheduler is further configured to generate a rotating configuration instruction to request setting a size of a rotating register allocated to the at least one selected local register file.

4. The scheduling apparatus of claim 3 , wherein the rotating configuration instruction is executed before a processor switches from a Very Long Instruction Word (VLIW) mode to a Coarse Grained Array (CGA) mode.

5. The scheduling apparatus of claim 1 , wherein the scheduler is further configured to determine a register index to be loaded into a non-rotating register of the at least one selected local register file and generate a live-in/out value processing instruction using the determined register index.

6. The scheduling apparatus of claim 5 , wherein the live-in/out value processing instruction requests that before a VLIW mode is switched to a CGA mode in the processor, a live-in value stored in the non-rotating register of the central register be loaded into the non-rotating register of the at least one selected local register file.

7. The scheduling apparatus of claim 5 , wherein the live-in/out value processing instruction requests that a live-out value stored in the non-rotating register of the at least one selected local register file be loaded into the non-rotating register of the central register file, in response to a CGA mode being switched to a VLIW mode.

8. A scheduling method, comprising:

determining whether a non-rotating register of a central register file has a size which is sufficient to schedule a program loop, the determining comprising calculating a required size of a non-rotating register for scheduling the program loop and comparing the calculated size with the size of the non-rotating register of the central register file;

in response to a determination that the non-rotating register of the central register file does not have a size which is sufficient to schedule a program loop, selecting at least one local register file to which a needed non-rotating register is allocated; and

scheduling a non-rotating register to the at least one selected local register,

wherein in response to the determination that the non-rotating register of the central register file has a size which is sufficient to schedule a program loop, the scheduling of the non-rotating register comprises scheduling to the central register file.

9. The scheduling method of claim 8 , wherein the calculating of the required size of the non-rotating register comprises calculating the required size of the non-rotating register based on a live-in/out value of the program loop.

10. The scheduling method of claim 8 , wherein the scheduling of the non-rotating register comprises generating a rotating configuration instruction to request setting a size of a rotating register of the at least one selected local register file.

11. The scheduling method of claim 10 , wherein the rotating configuration instruction is executed before a Very Long Instruction Word (VLIW) mode is switched to a Coarse Grain Array (CGA) mode in a processor.

12. The scheduling method of claim 8 , further comprising:

determining a register index to be allocated to the non-rotating register of the at least one selected local register file; and

generating a live-in/out value processing instruction using the determined register index.

13. The scheduling method of claim 12 , wherein the live-in/out processing instruction requests that before a VLIW mode is switched to a CGA mode in a processor, a live-in value stored in the non-rotating register of the central register file is to be loaded into the non-rotating register of the at least one selected local register file.

14. The scheduling method of claim 12 , wherein the live-in/out processing instruction requests that after a CGA mode is switched to a VLIW mode in a processor, a live-out value stored in the rotating register of the at least one selected local register file is to be loaded into the non-rotating register of the central register file.

15. A scheduling apparatus, comprising:

a determiner configured to determine whether a non-rotating register of a central register file has a sufficient size to schedule a program loop, by calculating a required size of a non-rotating register for the program loop and comparing the calculated size with a size of a non-rotating register of a central register file; and

a selector configured to select at least one local register file to which a needed non-rotating register is allocated in response to a determination that the non-rotating register of a central register file does not have a size which is sufficient to schedule a program loop.

16. The scheduling apparatus of claim 15 , further comprising a scheduler configured to schedule a non-rotating register to the at least one selected local register file, wherein in response to the determination that the non-rotating register of the central register file has a size which is sufficient to schedule a program loop, the scheduler configured to schedule the non-rotating register to the central register file.

17. The scheduling apparatus of claim 15 , wherein the determiner is further configured to calculate the size of the non-rotating register of the central register file based on a live-in/out value of the program loop.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2014
From: JIN, TAI-SONG
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 032972/0776 →
Priority Claims (1)
KR 10-2013-0044432 · Apr 22, 2013 · national
Continuity (1)
Related Publication 20140317627A1 · Oct 23, 2014