Multiple address-space data processor with addressable register and context switching
First Claim
Patent Images
1. In a data processor for processing data according to a program which includes a plurality of executable instructions, the data processor having a plurality of registers, apparatus for storing information comprising:
- a first portion of byte-addressable memory for storing data and programs, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which programs and data are mapped, each address in said first address space is either an operand address or an instruction address of at least one of said plurality of instructions; and
a second portion of byte-addressable memory, at least some of the byte-addresses for said second portion forming a second address space different from said first address space, at least some addresses of said second address space being addresses which also occur in said first address space, wherein at least a first of said registers has a byte address, said first register being mapped by said byte address to said second address space such that said first register is accessible using a second instruction which has an operand address in said second address space, said byte address of said first register in said second address space being identical to said operand address or instruction address of said one of said instructions in said first address spacewhereby said data processor accesses said operand address or said instruction address in said first address space by executing said one of said instructions having said operand address or said instruction address in said first address space; and
whereby said data processor accesses said first register in said second address space by executing said second instruction having said operand address in said second address space.
0 Assignments
0 Petitions
Accused Products
Abstract
Two or more address spaces are provided in a data processor. One of the address spaces comprises control registers so that the control registers can be accessed using instructions having an address in the second address space. High-speed context switching can be accomplished by allotting the context-saving area to the second address space. The context can be saved in various formats specified by a context format register.
445 Citations
16 Claims
-
1. In a data processor for processing data according to a program which includes a plurality of executable instructions, the data processor having a plurality of registers, apparatus for storing information comprising:
-
a first portion of byte-addressable memory for storing data and programs, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which programs and data are mapped, each address in said first address space is either an operand address or an instruction address of at least one of said plurality of instructions; and a second portion of byte-addressable memory, at least some of the byte-addresses for said second portion forming a second address space different from said first address space, at least some addresses of said second address space being addresses which also occur in said first address space, wherein at least a first of said registers has a byte address, said first register being mapped by said byte address to said second address space such that said first register is accessible using a second instruction which has an operand address in said second address space, said byte address of said first register in said second address space being identical to said operand address or instruction address of said one of said instructions in said first address space whereby said data processor accesses said operand address or said instruction address in said first address space by executing said one of said instructions having said operand address or said instruction address in said first address space; and whereby said data processor accesses said first register in said second address space by executing said second instruction having said operand address in said second address space. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a data processing system for processing data according to a program which includes a plurality of executable instructions, the data processing system having a main processor and a co-processor, said main processor having at least a first associated register and said co-processor having at least a second associated register, apparatus for storing information, comprising:
-
a first portion of byte-addressable memory for storing data and programs, at least some of the byte addresses for said first portion of byte-addressable memory forming a first address space, each address in said first address space is either an operand address or an instruction address of at least one of said plurality of instructions; and a second portion of byte-addressable memory, at least some of the byte addresses for said second portion of byte-addressable memory forming a second address space, different from said first address space, at least some addresses of said second address space being addresses which also occur in said first address space, at least said first register associated with said main processor having a first byte address and said second register associated with said co-processor having a second byte address, said first and second registers being mapped to said second address space by said first and second byte addresses, said first and second registers being accessible using a respective second of said plurality of instructions which has an operand address in said second address space, at least one of said first and second byte addresses of said first and second registers in said second address space being identical to said operand address or instruction address of a respective one of said plurality of instructions in said first address space whereby said main processor and said co-processor access a respective said operand address or said instruction address in said first address space by executing said respective one of said plurality of instructions having said operand address or said instruction address in said first address space; and whereby said main processor and said co-processor access said first and second registers in said second address space by executing said respective second of said plurality of instructions having said operand address in said second address space.
-
-
8. In a data processor for processing data according to a program which includes a plurality of executable instructions, apparatus for storing information comprising:
-
a first portion of byte-addressable memory for storing data and programs, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which programs and data are mapped, each address in said first address space is either an operand address or an instruction address of at least a first of said plurality of instructions; a second portion of byte-addressable memory, at least some of the byte-addresses for said second portion forming a second address space different from said first address space, at least some addresses of said second address space being addresses which also occur in said first address space; the data processor executing at least a first of said plurality of instructions to save a context of said data processor into said second address space; the data processor executing at least a second of said plurality of instructions, different from said first instruction, to restore said context from said second address space; the data processor executing at least a third of said plurality of instructions, different from said first instruction, to save a context of said data processor into said first address space; and the data processor executing at least a fourth of said plurality of instructions, different from said second instruction, to restore said context from said first address space. - View Dependent Claims (9, 10)
-
-
11. In a data processor for processing data according to a program which includes a plurality of executable instructions, including instructions for saving and restoring a context, apparatus for storing information comprising:
-
a first portion of byte-addressable memory for storing data and programs, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which programs and data are mapped, each address in said first address is space is either an operand address or an instruction address of at least a first of said plurality of instructions; a second portion of byte-addressable memory, at least some of the byte addresses for said second portion forming a second address space different from said first address space, at least some addresses of said second address space being addresses which also occur in said first address space, said second address space being accessible using said instructions for saving and restoring a context; means for specifying into which address space a context block is to be stored according to one of said plurality of instructions; the data processor executing at least a first of said plurality of instructions to save the context of a process into said address space specified by said means for specifying; and the data processor executing at least a second of said plurality of instructions, different from said first instruction, to restore said context from the address space specified by said means for specifying.
-
-
12. In a data processor for processing data according to a program which includes a plurality of executable instructions, the data processor having a plurality of registers, a method for storing information comprising:
-
providing a first portion of byte-addressable memory for storing data and instructions, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which data and instructions are mapped; accessing at least a first address in said first address space by executing at least one of said instructions having an operand address in said first address space; providing a second portion of byte-addressable memory, at least some of the byte-addresses for said second portion forming a second address space different from said first address space wherein at least a first of said registers is mapped by a byte address to said second address, at least some addresses of said second address space being addresses which also occur in said first address space; and accessing said first register by executing a second of said instructions having an operand address in said second address space, said address of said first register in said second address space being identical to a data address or instruction address of said at least one instruction in said first address space. - View Dependent Claims (13)
-
-
14. In a data processing system for processing data according to a program, which includes a plurality of executable instructions, the data processing system having a main processor and a co-processor, said main processor having at least a first associated register and said co-processor having at least a second associated register, a method for storing information, comprising:
-
providing a first portion of byte-addressable memory for storing data and programs, said byte-addressable memory having a plurality of storage locations addressable by a plurality of byte addresses at least some of the byte addresses for said first portion of byte-addressable memory forming a first address space; executing at least one of said instructions, stored at an instruction address and having an operand address in said first address space; providing a second portion of byte-addressable memory, at least some of the byte addresses for said second portion of byte-addressable memory forming a second address space, different from said first address space, at least some addresses of said second address space being addresses which occur in said first address space, at least said first register associated with said main processor having a first byte address and said second register associated with said co-processor having a second byte address, said first and second registers being mapped to said second address space by said first and second byte addresses; accessing at least one of said first and second registers by executing a second of said plurality of instructions having an operand address in said second address space, the byte address of said one register in said second address space being identical to said operand address or instruction address of said one of said instructions in said first address space.
-
-
15. In a data processor for processing data according to a program which includes a plurality of executable instructions, including instructions for saving and restoring a context, a method for storing information comprising:
-
providing a first portion of byte-addressable memory for storing data and programs, at least some of the byte-addresses for said first portion of byte-addressable memory forming a first address space in which data and programs are mapped, each address in said first address space is either being usable as an operand address or an instruction address of at least a first of said plurality of instructions; providing a second portion of byte-addressable memory, at least some of the byte-addresses for said second portion forming a second address space different from said first address space, said second address space being accessible using said instructions for saving and restoring a context, at least some addresses of said second address space being addresses which also occur in said first address space; specifying, in a first of said plurality of instructions, into which address space a context block is to be stored; saving the context of a process into said specified address space in response to said first instruction; and restoring said context from the specified address space in response to a second instruction, different from said first instruction. - View Dependent Claims (16)
-
Specification