Patentable/Patents/US-6378065
US-6378065

Apparatus with context switching capability

PublishedApril 23, 2002
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

The present invention relates to a data processing unit, comprising at least one register having at least one read port and one write port. The register has at least two memory cells each having a write line and a read line, a first switch having inputs and one output for coupling said read line of one of said memory cells with said read port, second switch for coupling said write line of one of said memory cells with said write port.

Patent Claims
38 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. Method of context switching from a first task to a second task in a data processing unit having a memory and a plurality of registers coupled with said memory with a set of registers representing a context, each of said registers having at least two memory cells and a selector to switch between said memory cells, the method comprises: upon execution of a first predetermined event the step of speculatively storing a less than full portion of a current context from said set of registers to said memory and then switching to the next available memory cell in each of said registers, and upon execution of a second predetermined event the step of switching back to the previous memory cell in each of said registers.

2

2. Method as in claim 1 , wherein after execution of n 1 first events, whereby n is equal the number of memory cells in a register, and upon execution of a further first event after switching to another memory cell the step of storing the content of said memory cells of all registers of said set of registers in said memory.

3

3. Method as in claim 2 , wherein after execution of n first events, whereby n is equal the number of memory cells in a register, and upon execution of a further first event after switching to another memory cell the step of storing the content of said memory cells of all registers of said set of registers in said memory.

4

4. Method as in claim 2 , wherein after execution of n 1 second events, whereby n is equal the number of memory cells in a register, and upon execution of a further second event after switching to another memory cell the step of loading the content of the stored memory cells of all registers of said set of registers from said memory into said registers.

5

5. Method as in claim 3 , wherein after execution of n second events, whereby n is equal the number of memory cells in a register, and upon execution of a further second event after switching to another memory cell the step of loading the content of the stored memory cells of all registers of said set of registers from said memory into said registers.

6

6. Method as in claim 1 , wherein said first predetermined event is a subroutine call or interrupt, and said second predetermined event is a return from a subroutine or interrupt.

7

7. Method as in claim 1 , wherein: said set of registers can simultaneously hold n contexts, said data processing unit requires a number p of cycles to transfer said context from said plurality of registers to said memory, and context changes that are respectively in response to each of n executions of first predetermined events without any intervening second predetermined event are guaranteed to take less than p cycles each.

8

8. Method as in claim 7 , wherein said data processing unit requires a number q of cycles to load a context from said memory into said plurality of registers, and the method further comprises speculatively loading a context into said plurality of registers from said memory in response to said second predetermined event, wherein two context changes that are respectively in response to two executions of second predetermined events without any intervening first predetermined event are guaranteed to take less than q cycles each.

9

9. Method as in claim 8 , wherein q equals p.

10

10. Method as in claim 1 , wherein n is at least three.

11

11. Method of context switching from a first task to a second task in a data processing unit having a memory and a plurality of registers coupled with said memory with a set of registers representing a context, each of said registers having at least two memory cells and a selector to switch between said memory cells, the method comprises: upon execution of a first predetermined event the step of switching to the next available memory cell in each of said registers, upon execution of a second predetermined event the step of switching back to the previous memory cell of said registers, and upon execution of said first predetermined event and before switching to another memory cell the step of storing the content of the current memory cells of a predefined number of registers of said set of registers in said memory.

12

12. Method as in claim 11 , wherein upon execution of said first predetermined event and after switching to another memory cell the step of storing the content of the current memory cells of the remaining number of registers of said set of registers in said memory.

13

13. Method as in claim 11 , wherein upon execution of said second predetermined event and before switching to another memory cell the step of loading the content of the stored memory cells of a predefined number of registers of said set of registers from said memory into said registers.

14

14. Method as in claim 13 , herein upon execution of said second predetermined event and after switching to another memory cell the step of loading the content of the stored memory cells of the remaining number of registers of said set of registers from said memory into said registers.

15

15. Method of context switching from a first task to a second task in a data processing unit having a memory and registers coupled with said memory with a set of registers representing a context, each of said registers having at least two memory cells, each memory cell having at least one read port and one write port and a switch to select one of said read ports and a switch for random access of said write ports, the method comprises: upon execution of a first predetermined event the step of speculatively loading at least a portion of a context into said plurality of registers from said memory and then switching to the read ports of the next available memory cell in each of said registers, and upon execution of a second predetermined event the step of switching back to the read ports of the previous memory cell in each of said registers.

16

16. Method as in claim 15 , wherein after execution of n 1 first events whereby n is equal the number of memory cells in a register, and upon execution of a further first event after switching to the read port of another memory cell the step of storing the content of the current memory cells of all registers of said sets of registers in said memory.

17

17. Method as in claim 15 , wherein after execution of n first events, whereby n is equal the number of memory cells in a register, and upon execution of a further first event after switching to the read port of another memory cell the step of storing the content of the current memory cells of all registers of said set of registers in said memory.

18

18. Method as in claim 16 , wherein after execution of n 1 second events, whereby n is equal the number of memory cells in a register, and upon execution of a further second event the step of loading the content of the stored memory cells of all registers of said set of registers from said memory through said write port into said registers.

19

19. Method as in claim 17 , wherein after execution of n second events, whereby n is equal the number of memory cells in a register, and upon execution of a further second event the step of loading the content of the stored memory cells of all registers of said set of registers from said memory through said write port into said registers.

20

20. Method as is claim 15 , wherein a register indicates which registers are assigned to a set of registers.

21

21. Method of context switching from a first task to a second task in a data processing unit having a memory and registers coupled with said memory with a set of registers representing a context, each of said registers having at least two memory cells, each memory cell having at least one read port and one write port and a switch to select one of said read ports and a switch for random access of said write ports, the method comprises: upon execution of a first predetermined event the step of switching to the read ports of the next available memory cell in each of said registers, upon execution of a second predetermined event the step of switching back to the read ports of the previous memory cell in each of said registers, and upon execution of said first predetermined event and before switching to the read port of another memory cell the step of storing the content of the current memory cells of a predefined number of registers of said set of registers in said memory.

22

22. Method as in claim 21 , wherein upon execution of said first predetermined event and after switching to the read port of another memory cell the step of storing the content of the current memory cells of the remaining number of registers of said set of registers in said memory.

23

23. Method as in claim 21 , wherein upon execution of said second predetermined event the step of loading the content of the stored memory cells of a predefined number of registers of said set of registers from said memory through said write port into said registers.

24

24. Method as in claim 22 , wherein upon execution of said second predetermined event the step of loading the content of the stored memory cells of the remaining number of registers of said set of registers from said memory through said write port into said registers.

25

25. Data processing unit, comprising: at least one register having at least one read port and one write port, said register having at least two memory cells each having a write line and a read line, a first switch comprising inputs and one output for coupling said read line of one of said memory cells with said read port, a second switch having at least one input and outputs for coupling said write line of one of said memory cells with said write port, and a control unit configured to operate at least said first and second switches to, in response to a call instruction, speculatively initiate saving of content of current memory cells and select a next one of said at least two memory cells as the new current memory cell, wherein the new current memory cell is made available for use only after some content of the previous memory cells has been speculatively saved, and to, in response to a return event, select the previous memory cell as once again the current memory cell.

26

26. Data processing unit as in claim 25 , further comprising multiple read port drivers having an input and an output, and a plurality of read port data lines, whereby said inputs of said read port drivers being connected to said output of said switch, and said outputs of said read port drivers being connected to said output of said switch, and said outputs of said read port drivers being connected to said read port data lines.

27

27. Data processing unit as in claim 25 , further comprising a plurality of write port data lines wherein said second switch can couple each write port data line with said write line of each memory cell.

28

28. Data processing unit as in claim 25 , wherein said second switch provides random access to each memory cell.

29

29. Data processing unit as in claim 28 , wherein said second switch comprises a plurality of transfer transistors to couple each write line of each memory cell with one of said write ports.

30

30. Data processing unit as in claim 25 , further comprising a control unit for storing and loading the content of said register.

31

31. Data processing unit as in claim 30 , wherein said control unit comprises a state machine.

32

32. Data processing unit as in claim 25 , wherein each of said at least two memory cells corresponds to a context, and said first and second switches are configured to permit issuing of a next instruction during preloading of a next context.

33

33. Data processing unit comprising: a register file having a first set of registers and a second set of registers, said registers in said first set of registers having at least one read port and one write port and said registers each having n memory cells each having a write line and a read line, wherein n is at least two, a first switch for coupling a read line of one of said memory cells of each register of said first register set with a respective read port, and a second switch for coupling a write line of one of said memory cells of each register of said first register set with a respective write port, and a memory, a bus that couples said first set of registers with said memory, wherein the bus is configured to transfer a context from said first set of registers to said memory in p cycles, and a control unit that controls said switches to conduct context switching, including speculatively saving contexts to memory that may not ultimately need to be saved to memory so that even if n calls are executed without intervening returns, the calls are guaranteed to take less than p cycles each.

34

34. Data processing unit as in claim 33 , wherein said registers each comprise multiple read and multiple write ports and said first and said second switch couples said multiple read and write ports with the respective memory cells of each register of said first register set.

35

35. Data processing unit as in claim 33 , wherein said control unit comprises a state machine.

36

36. Data processing unit as in claim 33 , wherein said first set of registers comprises data and address registers.

37

37. Data processing unit as in claim 33 , further comprising a third switch for coupling a read line of one of said memory cells of each register of said first register set with a read port of each register, wherein said first and third switches are controlled to permit independent reading of a first and a second memory cell, respectively, of said each register.

38

38. Data processing unit as in claim 33 , wherein two of said memory cells of each register respectively correspond to two contexts, and said registers and first and third switches are configured to permit a call to issue in parallel with an integer operation.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

April 27, 1998

Publication Date

April 23, 2002

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Apparatus with context switching capability” (US-6378065). https://patentable.app/patents/US-6378065

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.