Claims Analysis
Total Claims: 42
Claim 1
Independent Claim
524 words
An apparatus for processing data in response to a program composed of prespecified instructions in pipeline cycles, the data being stored in locations in a data memory addressed by data addresses and instructions being stored in locations in an instruction memory addressed by instruction addresses, and wherein instructions include file address field identifying sources of operand data and destinations for result data, the apparatus comprising: channel means for transferring addresses and data to the instruction and data memories (14,15,16) and for receiving data and instructions from the data and instruction memories, including an instruction interface (20) adapted for receiving instructions from the instruction memory, a data interface (22) adapted for communicating data between the apparatus and the data memory, and an address interface (21) adapted for supplying data addresses to the data memory and instruction addresses to the instruction memory; program addressing means (31), responsive to the program, for supplying a sequential instruction address or a non-sequential instruction address for an instruction to be executed according to the program; buffering means (26), coupled to receive instructions from the instruction interface and to the program addressing means, for buffering a sequence of instructions supplied to the instruction interface in buffer locations accessible in response to the sequential instruction address supplied by the program addressing means; caching means (29) coupled to the program addressing means, for storing sets of instructions in blocks of cache locations identified by a field in the instruction addresses and accessible in response to the non-sequential instruction address supplied by the program addressing means, the sets including instructions retrieved from sequential locations in the instruction memory, and a first instruction in each set being a target instruction of a non-sequential instruction address; instruction register means (27), coupled to buffering means and the caching means, for staging under program control an instruction accessed from the buffering means or the caching means in response to the sequential or non-sequential instruction address, respectively, supplied by the program addressing means; storage means (40) for storing data in a file of data locations identified by file addresses, the storage means including at least two read ports (A,B) and at least one write port (C), the read ports including means connected to receive file addresses in pipeline cycles for supplying data at the read port from data locations identified by the received file addresses, and the write port connected to receive data and including means connected to receive file addresses in pipeline cycles for writing data received at the write port to data locations identified by the received file addresses; file addressing means (43), coupled to receive file address field of the instructions staged from the instruction register means and to the storage means, for supplying file addresses identified by the file address field to the read ports and the write port under program control; executing means (42), responsive to the instructions staged from the instruction register means in pipeline cycles and coupled to the read ports, for executing the instructions and generating resulting data; result register means (53), coupled to supply data to the write port and connected to the executing means, for staging the resulting data.
Claim 2
Independent Claim
524 words
An apparatus for processing data in response to a program composed of prespecified instructions in pipeline cycles, the data being stored in locations in a data memory addressed by data addresses and instructions being stored in locations in an instruction memory addressed by instruction addresses, and wherein instructions include file address field identifying sources of operand data and destinations for result data, the apparatus comprising: channel means for transferring addresses and data to the instruction and data memories (14,15,16) and for receiving data and instructions from the data and instruction memories, including an instruction interface (20) adapted for receiving instructions from the instruction memory, a data interface (22) adapted for communicating data between the apparatus and the data memory, and an address interface (21) adapted for supplying data addresses to the data memory and instruction addresses to the instruction memory; program addressing means (31), responsive to the program, for supplying a sequential instruction address or a non-sequential instruction address for an instruction to be executed according to the program; buffering means (26), coupled to receive instructions from the instruction interface and to the program addressing means, for buffering a sequence of instructions supplied to the instruction interface in buffer locations accessible in response to the sequential instruction address supplied by the program addressing means; caching means (29) coupled to the program addressing means, for storing sets of instructions in blocks of cache locations identified by a field in the instruction addresses and accessible in response to the non-sequential instruction address supplied by the program addressing means, the sets including instructions retrieved from sequential locations in the instruction memory, and a first instruction in each set being a target instruction of a non-sequential instruction address; instruction register means (27), coupled to buffering means and the caching means, for staging under program control an instruction accessed from the buffering means or the caching means in response to the sequential or non-sequential instruction address, respectively, supplied by the program addressing means; storage means (40) for storing data in a file of data locations identified by file addresses, the storage means including at least two read ports (A,B) and at least one write port (C), the read ports including means connected to receive file addresses in pipeline cycles for supplying data at the read port from data locations identified by the received file addresses, and the write port connected to receive data and including means connected to receive file addresses in pipeline cycles for writing data received at the write port to data locations identified by the received file addresses; file addressing means (43), coupled to receive file address field of the instructions staged from the instruction register means and to the storage means, for supplying file addresses identified by the file address field to the read ports and the write port under program control; executing means (42), responsive to the instructions staged from the instruction register means in pipeline cycles and coupled to the read ports, for executing the instructions and generating resulting data; result register means (53), coupled to supply data to the write port and connected to the executing means, for staging the resulting data.
Claim 3
Dependent Claim
106 words
The apparatus of claim 1, further including: prefetching means (25), coupled to the address interface and the caching means, for generating a starting address for a transfer of instructions having sequential instruction addresses for supply to the instruction interface and wherein, if the target instruction of the non-sequential instruction address is not stored in the caching means, the starting address being the non-sequential instruction address supplied by the program addressing means, and if the target instruction of the non-sequential address is stored in the caching means, the starting address is calculated by adding an offset to the non-sequential instruction address supplied by the program addressing means.
Claim 4
Dependent Claim
37 words
The apparatus of claim 2, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means and the prefetching means.
Claim 5
Dependent Claim
22 words
The apparatus of claim 2, wherein the offset is equal to the number of instructions stored in a set of cache locations.
Claim 6
Dependent Claim
55 words
The apparatus of claim 1, wherein the file addressing means further includes: stack pointer means (806) for storing a stack pointer having a pointer value modifiable under program control; and means (811,812,813) for generating the file addresses in response to the file address field supplied by instructions and to the value of the stack pointer.
Claim 7
Dependent Claim
280 words
The apparatus of claim 5, wherein the means for generating file addresses includes: first means (811), coupled to receive a first file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the first file address field and the stack pointer to generate a first stack file address; first selecting means (814), coupled to receive the first stack file address and the first file address field, for selecting under program control the first stack file address or the first file address field for supply as a file address to a first read port; second means (812), coupled to receive a second file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the second file address field and the stack pointer to generate a second stack file address; second selecting means (820), coupled to receive the second stack file address and the second file address field, for selecting under program control the second stack file address or the second file address field for supply as a file address to a second read port; third means (813), coupled to receive a third file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the third file address field and the stack pointer to generate a third stack file address; and third selecting means (823), coupled to receive the third stack file address and the third file address field, for selecting under program control the third stack file address or the third file address field for supply as a file address to a write port.
Claim 8
Dependent Claim
56 words
The apparatus of claim 5, wherein the file of data locations in the storage means includes a first subset of local data locations and a second subset of global data locations, and wherein the means for generating file addresses is responsive to the stack pointer in generation of file addresses identifying locations within the first subset.
Claim 9
Dependent Claim
33 words
The apparatus of claim 5, wherein the stack pointer means comprises a location in the storage means accessible in response to a prespecified file address (Reg. No. 1) for storing the stack pointer.
Claim 10
Dependent Claim
47 words
The apparatus of claim 1, wherein the file addressing means further includes: indirect pointer means (807,808,809) for storing an indirect pointer indicating a file address modifiable under program control; and means (814,820,823) for supplying the indirect pointer as a file address for access to the storage means.
Claim 11
Dependent Claim
33 words
The apparatus of claim 9, wherein the indirect pointer means comprises a location in the storage means accessible in response to a prespecified file address (Reg. No. 0) for storing the indirect pointer.
Claim 12
Dependent Claim
69 words
The apparatus of claim 6, wherein the file addressing means further includes: indirect pointer means (807) for storing an indirect pointer indicating a file address modifiable under program control; and wherein the first selecting means (814) is further coupled to receive the indirect pointer for selecting the indirect pointer, the first stack file address or the first file address field as the file address to the first read port.
Claim 13
Dependent Claim
191 words
The apparatus of claim 6, wherein the file addressing means further includes: first indirect pointer means (807) for storing a first indirect pointer indicating a file address modifiable under program control; second indirect pointer means (808) for storing a second indirect pointer indicating a file address modifiable under program control; third indirect pointer means (809) for storing a third indirect pointer indicating a file address modifiable under program control; and wherein the first selecting means (814) is further coupled to receive the first indirect pointer for selecting the first indirect pointer, the first stack file address or the first file address field as the file address to the first read port; the second selecting means (820) is further coupled to receive the second indirect pointer for selecting the second indirect pointer, the second stack file address or the second file address field as the file address to the second read port; and the third selecting means (823) is further coupled to receive the third indirect pointer for selecting the third indirect pointer, the third stack file address or the third file address field as the file address to the write port.
Claim 14
Dependent Claim
82 words
The apparatus of claim 12, wherein: the first selecting means is responsive to a prespecified file address in the first file address field (15-8) to select the first indirect pointer means; the second selecting means is responsive to a prespecified file address in the second file address field (7-0) to select the second indirect pointer means; and the third selecting means is responsive to a prespecified file address in the third file address field (23-16) to select the third indirect pointer means.
Claim 15
Dependent Claim
94 words
The apparatus of claim 1, wherein the locations in the storage means are grouped in a plurality of banks, and further including: bank protection means (1000) for storing a bank protection code indicating a bank or banks of locations protected from access in response to the instructions staged from the instruction register means, the bank protection code being modifiable under program control; and means (1002), responsive to the bank protection code and the file addresses supplied by the file addressing means, for generating a protection violation signal upon attempted access of a protected bank.
Claim 16
Dependent Claim
30 words
The apparatus of claim 1, further including: means (41), coupled to the program addressing means and responsive to instructions staged from the instruction register means, for generating non-sequential instruction addresses.
Claim 17
Dependent Claim
21 words
The apparatus of claim 1, wherein the instruction interface (20), data interface (22) and address interface (21) comprise separate, non-multiplexed buses.
Claim 18
Dependent Claim
71 words
The apparatus of claim 1, wherein the caching means further includes a plurality of tag locations, one tag location associated with each set and storing information identifying the target instruction in the associated set and validity of instructions in the associated set; and means (510,511,514), coupled to the program addressing means and to the tag locations, for enabling access to the sets of cache locations in response to a non-sequential address.
Claim 19
Dependent Claim
162 words
The apparatus of claim 17, further including: prefetching means (25), coupled to the address interface, the program addressing means and the caching means, for generating a starting address for supply to the address interface for a transfer of instructions having sequential instruction addresses to be supplied to the instruction interface and wherein, if the target instruction of the non-sequential instruction address is not stored n the caching means as the first instruction in a set of instructions in one of the sets of cache locations, the starting address being the non-sequential instruction address supplied by the program addressing means, and if the target instruction of the non-sequential address is stored in the caching means as the first instruction in a set of instruction in one of the sets of cache locations and all of the instructions in the one set are valid, the starting address is calculated by adding an offset to the non-sequential instruction address supplied by the program addressing means.
Claim 20
Dependent Claim
22 words
The apparatus of claim 18, wherein the offset is equal to the number of instruction stored in a set of cache locations.
Claim 21
Dependent Claim
37 words
The apparatus of claim 18, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means and the prefetching means.
Claim 22
Dependent Claim
33 words
The apparatus of claim 1, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means.
Claim 23
Independent Claim
454 words
An apparatus for processing data in response to a program composed of prespecified instructions in pipeline cycles, the data being stored in locations in a data memory addressed by data addresses and instructions being stored in locations in an instruction memory addressed by instruction addresses, and wherein instruction include file address fields identifying sources of operand data and destinations for result data, the apparatus comprising: channel means for transferring addresses and data to the instruction and data memories (14,15,16) and for receiving data and instructions from the data and instruction memories, including an instruction interface (20) adapted for receiving instructions from the instruction memory, a data interface (22) adapted for communicating data between the apparatus and the data memory, and an address interface (21) adapted for supplying data addresses to the data memory and instruction addresses to the instruction memory; program addressing means (31), responsive to the program, for supplying a sequential instruction address or a non-sequential instruction address for an instruction to be executed according to the program; fetching means (23), coupled to the program addressing means and to the instruction interface, for supplying instructions in response to the sequential or non-sequential instruction address supplied by the program addressing means; instruction register means (27), coupled to fetching means, for staging under program control an instruction supplied by fetching means; storage means (40) for storing data in a file of data locations identified by file addresses, the storage means including at least two read ports (A,B) and at least one write port (C), the read ports including means connected to receive file addresses in pipeline cycles for supplying data at the read port from data locations identified by the received file addresses, and the write port connected to receive data and including means connected to receive file addresses in pipeline cycles for writing data received at the write port to data locations identified by the received file addresses; file addressing means (43), coupled to receive file address fields of the instructions staged from the instruction register means and to the storage means, for supplying file addresses to the read ports and the write port under program control, including stack pointer means (806) for storing a stack pointer having a pointer value modifiable under program control, and means (811,812,813) for generating the file addresses in response to the file address field supplied by instruction and to the value of the stack pointer; executing means (42), responsive to the instructions staged from the instruction register means in pipeline cycles and coupled to the read ports, for executing the instructions and generating resulting data; result register means (53), coupled to supply data to the write port and connected to the executing means, for staging the resulting data.
Claim 24
Independent Claim
454 words
An apparatus for processing data in response to a program composed of prespecified instructions in pipeline cycles, the data being stored in locations in a data memory addressed by data addresses and instructions being stored in locations in an instruction memory addressed by instruction addresses, and wherein instruction include file address fields identifying sources of operand data and destinations for result data, the apparatus comprising: channel means for transferring addresses and data to the instruction and data memories (14,15,16) and for receiving data and instructions from the data and instruction memories, including an instruction interface (20) adapted for receiving instructions from the instruction memory, a data interface (22) adapted for communicating data between the apparatus and the data memory, and an address interface (21) adapted for supplying data addresses to the data memory and instruction addresses to the instruction memory; program addressing means (31), responsive to the program, for supplying a sequential instruction address or a non-sequential instruction address for an instruction to be executed according to the program; fetching means (23), coupled to the program addressing means and to the instruction interface, for supplying instructions in response to the sequential or non-sequential instruction address supplied by the program addressing means; instruction register means (27), coupled to fetching means, for staging under program control an instruction supplied by fetching means; storage means (40) for storing data in a file of data locations identified by file addresses, the storage means including at least two read ports (A,B) and at least one write port (C), the read ports including means connected to receive file addresses in pipeline cycles for supplying data at the read port from data locations identified by the received file addresses, and the write port connected to receive data and including means connected to receive file addresses in pipeline cycles for writing data received at the write port to data locations identified by the received file addresses; file addressing means (43), coupled to receive file address fields of the instructions staged from the instruction register means and to the storage means, for supplying file addresses to the read ports and the write port under program control, including stack pointer means (806) for storing a stack pointer having a pointer value modifiable under program control, and means (811,812,813) for generating the file addresses in response to the file address field supplied by instruction and to the value of the stack pointer; executing means (42), responsive to the instructions staged from the instruction register means in pipeline cycles and coupled to the read ports, for executing the instructions and generating resulting data; result register means (53), coupled to supply data to the write port and connected to the executing means, for staging the resulting data.
Claim 25
Dependent Claim
280 words
The apparatus of claim 22, wherein the means for generating file addresses includes: first means (811), coupled to receive a first file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the first file address field and the stack pointer to generate a first stack file address; first selecting means (814), coupled to receive the first stack file address and the first file address field, for selecting under program control the first stack file address or the first file address field for supply as a file address to a first read port; second means (812), coupled to receive a second file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the second file address field and the stack pointer to generate a second stack file address; second selecting means (820), coupled to receive the second stack file address and the second file address field, for selecting under program control the second stack file address or the second file address field for supply as a file address to a second read port; third means (813), coupled to receive a third file address field from the instruction staged by the instruction register means and to receive the stack pointer, for combining the third file address field and the stack pointer to generate a third stack file address; and third selecting means (823), coupled to receive the third stack file address and the third file address field, for selecting under program control the third stack file address or the third file address field for supply as a file address to a write port.
Claim 26
Dependent Claim
47 words
The apparatus of claim 22, wherein the file addressing means further includes: indirect pointer means (807,808,809) for storing an indirect pointer indicating a file address modifiable under program control; and means (814,820,823) for supplying the indirect pointer as a file address for access to the storage means.
Claim 27
Dependent Claim
69 words
The apparatus of claim 23, wherein the file addressing means further includes: indirect pointer means (807) for storing an indirect pointer indicating a file address modifiable under program control; and wherein the first selecting means (814) is further coupled to receive the indirect pointer for selecting the indirect pointer, the first stack file address or the first file address field as the file address to the first read port.
Claim 28
Dependent Claim
191 words
The apparatus of claim 23, wherein the file addressing means further includes: first indirect pointer means (807) for storing a first indirect pointer indicating a file address modifiable under program control; second indirect pointer means (808) for storing a second indirect pointer indicating a file address modifiable under program control; third indirect pointer means (809) for storing a third indirect pointer indicating a file address modifiable under program control; and wherein the first selecting means (814) is further coupled to receive the first indirect pointer for selecting the first indirect pointer, the first stack file address or the first file address field as the file address to the first read port; the second selecting means (820) is further coupled to receive the second indirect pointer for selecting the second indirect pointer, the second stack file address or the second file address field as the file address to the second read port; and the third selecting means (823) is further coupled to receive the third indirect pointer for selecting the third indirect pointer, the third stack file address or the third file address field as the file address to the write port.
Claim 29
Dependent Claim
81 words
The apparatus of claim 13, wherein: the first selecting means is responsive to a prespecified file address in the first file address field to select the first indirect pointer means; the second selecting means is responsive to a prespecified file address in the second file address field (7-0) to select the second indirect pointer means; and the third selecting means is responsive to a prespecified file address in the third file address field (23-16) to select the third indirect pointer means.
Claim 30
Dependent Claim
94 words
The apparatus of claim 22, wherein the locations in the storage means are grouped in a plurality of banks, and further including: bank protection means (1000) for storing a bank protection code indicating a bank or banks of locations protected from access in response to the instructions staged from the instruction register means, the bank protection code being modifiable under program control; and means (1002), responsive to the bank protection code and the file addresses supplied by the file addressing means, for generating a protection violation signal upon attempted access of a protected bank.
Claim 31
Dependent Claim
21 words
The apparatus of claim 22, wherein the instruction interface (20), data interface (22) and address interface (21) comprise separate, non-multiplexed buses.
Claim 32
Dependent Claim
56 words
The apparatus of claim 5, wherein the file of data locations in the storage means includes a first subset of local data locations and a second subset of global data locations, and wherein the means for generating file addresses is responsive to the stack pointer in generation of file addresses identifying locations within the first subset.
Claim 33
Dependent Claim
33 words
The apparatus of claim 22, wherein the stack pointer means comprises a location in the storage means accessible in response to a prespecified file address (Reg. No. 1) for storing the stack pointer.
Claim 34
Dependent Claim
33 words
The apparatus of claim 24, wherein the indirect pointer means comprises a location in the storage means accessible in response to a prespecified file address (Reg. No. 0) for storing the indirect pointer.
Claim 35
Dependent Claim
125 words
The apparatus of claim 22, wherein the fetching means includes: buffering means (26), coupled to receive instructions from the instruction interface and to the program addressing means, for buffering a sequence of instructions supplied to the instruction interface in buffer locations accessible in response to the sequential instruction address supplied by the program addressing means; caching means (29), coupled to the program addressing means, for storing sets of instructions in blocks of cache locations identified by a field in the instruction addresses and accessible in response to the non-sequential instruction address supplied by the program addressing means, the sets including instructions retrieved from sequential locations in the instruction memory, and a first instruction in each set being a target instruction of a non-sequential instruction address.
Claim 36
Dependent Claim
106 words
The apparatus of claim 33, further including: prefetching means (25), coupled to the address interface and the caching means, for generating a starting address for a transfer of instructions having sequential instruction addresses for supply to the instruction interface and wherein, if the target instruction of the non-sequential instruction address is not stored in the caching means, the starting address being the non-sequential instruction address supplied by the program addressing means, and if the target instruction of the non-sequential address is stored in the caching means, the starting address is calculated by adding an offset to the non-sequential instruction address supplied by the program addressing means.
Claim 37
Dependent Claim
37 words
The apparatus of claim 34, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means and the prefetching means.
Claim 38
Dependent Claim
71 words
The apparatus of claim 33, wherein the caching means further includes a plurality of tag locations, one tag location associated with each set and storing information identifying the target instruction in the associated set and validity of instructions in the associated set; and means (510,511,514), coupled to the program addressing means and to the tag locations, for enabling access to the sets of cache locations in response to a non-sequential address.
Claim 39
Dependent Claim
162 words
The apparatus of claim 36, further including: prefetching means (25), coupled to the address interface, the program addressing means and the caching means, for generating a starting address for supply to the address interface for a transfer of instructions having sequential instruction addresses to be supplied to the instruction interface and wherein, if the target instruction of the non-sequential instruction address is not stored n the caching means as the first instruction in a set of instructions in one of the sets of cache locations, the starting address being the non-sequential instruction address supplied by the program addressing means, and if the target instruction of the non-sequential address is stored in the caching means as the first instruction in a set of instruction in one of the sets of cache locations and all of the instructions in the one set are valid, the starting address is calculated by adding an offset to the non-sequential instruction address supplied by the program addressing means.
Claim 40
Dependent Claim
22 words
The apparatus of claim 37, wherein the offset is equal to the number of instruction stored in a set of cache locations.
Claim 41
Dependent Claim
33 words
The apparatus of claim 33, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means.
Claim 42
Dependent Claim
37 words
The apparatus of claim 37, wherein the instruction memory is organized in pages characterized by page boundary crossing addresses, and page boundary crossing addresses are treated as non-sequential addresses by the caching means and the prefetching means.