Claims
- 1. A method for providing an address in a data processor, the data processor having an instruction execution unit for executing a plurality of instructions, said address based on address information in said instructions and a memory having a plurality of addressable memory elements, each of said memory elements being addressable by an addressable having an address bit-width, the method comprising:
- receiving instructions from memory, at least a first of said instructions having at least one operand, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width said instruction having at least
- an operation code specifying portion for specifying the kind of operation;
- an effective address specifying field specifying a first intermediate address of at least one operand;
- a first additional mode specifying field usable in performing address extension modification with respect to at least said first intermediate address to provide a second intermediate address,
- first bit means in said first instruction for indicating whether or not further modification is to be performed, said bit means being provided in said instruction without being provided in every address word in memory,
- receiving a second additional mode specifying field when said first bit means has a first value, said second additional mode specifying field usable in performing address extension modification to at least said second intermediate address provided in connection with said first additional mode specifying field;
- receiving a second bit means for indicating whether or not further modification is to be performed said second bit means being a bit in said first instruction;
- providing said first intermediate address using said effective address specifying field;
- providing a second intermediate address, using said first additional mode specifying field and said first intermediate address, before said step of receiving said second bit means;
- providing a third address, using said second additional mode specifying field and said second intermediate address, when said first bit means has said first value;
- deriving an address, said derived address being based at least partly on said third address when said first bit means has said first value, and said derived address being based on said second intermediate address when said first bit means has a second value; and
- providing said derived address to said instruction execution unit.
- 2. A method, as claimed in claim 1, wherein said step of providing said first intermediate address is performed without using said first additional mode specifying field.
- 3. A method, as claimed in claim 1, wherein said step of providing said second intermediate address is performed without using said second additional mode specifying field.
- 4. A method, as claimed in claim 1, wherein said step of providing said first intermediate address is performed before said step of providing a second intermediate address.
- 5. A method, as claimed in claim 1, wherein said step of providing said second intermediate address is performed before said step of providing a third address.
- 6. A method for providing first and second operand addresses in a data processor, the data processor having a memory, said memory having a plurality of addressable memory elements each of said memory elements being addressable by an address having an address bit-width, a means for receiving instructions from memory, and an instruction execution unit for executing a plurality of instructions, said address based on address information in said instructions, the method comprising:
- receiving in said means for receiving, at least portions of instructions from memory, at least a first of said instructions being an instruction for an operation in relation to at least first and second operands, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width, said first instruction having
- a first operation code for specifying a single operation;
- a first plurality of fields for specifying a first operand address including at least a first effective address-specifying field and first and second address information fields, said first plurality of fields including at least a first bit means in said first instruction for indicating whether or not further modification is to be performed, said bit means being provided in said instruction without being provided in every address word in memory;
- a second plurality of fields for specifying a second operand address, including at least a second effective address-specifying field and at least one extension modification field, said second plurality of fields including at least second bit means for indicating whether or not further modification is to be performed;
- said first effective address-specifying field specifying an effective address of said first operand;
- said first and second address information fields usable for obtaining an address for said first operand;
- said second effective address-specifying field specifying an effective address of said second operand,
- said at least one extension modification field usable for obtaining an address for said second operand;
- obtaining said address for said first operand without reference to a second operation code by a process including
- providing a first intermediate address using said first effective address specifying field, without reference to said first or second address information field;
- providing a second intermediate address using said first intermediate address and said first address information field, without reference to said second address information field;
- providing a third address using said second intermediate address and said second address information field before receiving any of said second plurality of fields in said means for receiving;
- deriving an address based at least partly on said third address; and
- providing said obtained address to said instruction execution unit.
- 7. A method for providing an address in a data processor, the data processor having an instruction execution unit for executing a plurality of instructions, and a memory having a plurality of addressable memory elements, each of said memory elements being addressable by an address having an address bit-width, said address based on address information in said instructions, the method comprising:
- receiving instructions from memory, at least a first of said instructions having at least one operand, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width, said first instruction having at least
- an operation code specifying portion for specifying the kind of operation;
- an effective address specifying field specifying a first intermediate address of at least one operand;
- a first additional mode specifying field usable in performing address extension modification with respect to at least said first intermediate address to provide a second intermediate address, said first additional mode specifying field including first means in said first instruction for indicating whether or not further modification is to be performed, said first means being provided in said first instruction without being provided in every address word in memory, second means for indicating whether or not indirect memory reference is to be performed, third means for identifying a register, fourth means for indicating a scaling factor and fifth means for indicating a displacement;
- providing said first intermediate address using said effective address specifying field;
- calculating a temporary address using said first additional mode specifying field by adding first and second quantities to said first intermediate address, said first quantity being equal to the contents of the register specified by said third means multiplied by said scaling factor indicated by said fourth means and said second quantity being based on said displacement indicated by said fifth means;
- providing said second intermediate address being equal to said temporary address when said second means indicates direct reference and said second intermediate address being equal to the value stored at said temporary address when said second means indicates indirect memory reference;
- receiving a second additional mode specifying field when said first bit means has a first value, said second additional mode specifying field usable in performing address extension modification to at least said second intermediate address provided in connection with said first additional mode specifying field;
- receiving a second bit means for indicating whether or not further modification is to be performed, said receiving of said second bit means occurring after said step of providing a second intermediate address;
- providing a third address using said second additional mode specifying field and said second intermediate address when said first bit means has said first value;
- deriving an address to provide a derived address, said derived address being based at least partly on said third address when said first bit means has said first value, said derived address being based on said second intermediate address when said first bit means has a second value; and
- providing said derived address to said instruction execution unit.
- 8. In a data processor having an instruction execution unit for executing a plurality of instructions, and a memory having a plurality of addressable memory elements each of said memory elements being addressable by an address having an address bit-width, apparatus for providing an address based on address information in said instructions, comprising:
- means for receiving instructions from memory, at least one of said instructions having at least one operand, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width, said one instruction having
- an operation code specifying portion for specifying the kind of operation;
- an effective address specifying field specifying an effective first intermediate address of at least one operand;
- a first additional mode specifying field which includes a first mode specifier usable in performing address extension modification with respect to at least said first intermediate address according to a first addressing mode specified by said first mode specifier to provide a second intermediate address;
- bit means in said instruction for indicating that further modification is to be performed when said bit means has a first value and for indicating no further modification when said bit means has a second value, said bit means being provided in said instruction without being provided in every address word in memory;
- a second additional mode specifying field which includes a second mode specifier usable in performing address extension modification with respect to at least said second intermediate address provided in connection with said first additional mode specifying field according to a second addressing mode, different from said first addressing mode, specified by said second mode specifier to provide a third address;
- means for deriving an address based at least partly on said third address; and
- means for providing said derived address to said instruction execution unit.
- 9. Apparatus, as set forth in claim 8, wherein said first intermediate address is provided using information specified by said effective address specifying field without reference to said first additional mode specifying field.
- 10. Apparatus, as set forth in claim 8 wherein said second intermediate address is provided using information specified by said effective address specifying field and said first additional mode specifying field without reference to said second additional mode specifying field.
- 11. Apparatus as claimed in claim 8, wherein said bit means includes a bit in said first additional mode specifying field.
- 12. Apparatus, as claimed in claim 8, wherein each additional mode specifying field includes a bit means for indicating whether or not further modification is to be performed.
- 13. In a data processor having an instruction execution unit for executing a plurality of instructions, apparatus for providing an address based on address information in said instructions, comprising:
- means for receiving instructions from memory, at least one of said instructions having at least one operand, said instruction having
- an operation code specifying portion for specifying the kind of operation;
- a plurality of fields for specifying a first operand address including, at least an effective address specifying field and first and second additional mode specifying fields;
- said effective address specifying field specifying an effective first intermediate address of at least one operand;
- said first additional mode specifying field usable in performing address extension modification with respect to at least said first intermediate address to provide a second intermediate address;
- said second additional mode specifying field usable in performing address extension modification with respect to at least said second intermediate address provided in connection with said first additional mode specifying field to provide a third address;
- wherein each of said first and second additional mode specifying fields has at least one of the following fields
- an indirect reference specifying field means for indicating whether or not memory is indirectly referenced in each said additional mode specifying field,
- an index addition field means for indicating whether or not an index register is added in each said additional mode specifying field,
- an index register number field means for indicating the register number for each said additional mode specifying field, and
- a displacement length field means for indicating a length of displacement to be added in each said additional mode specifying field;
- means for deriving an address based at least partly on said effective address specifying field and said first and second additional mode specifying fields; and
- means for providing said derived address to said instruction execution unit.
- 14. In a data processor having an instruction execution unit for executing instructions in relation to data at addresses obtainable from address information in said instructions, apparatus for providing an address based on said information, comprising:
- means for receiving at least portions of instructions from memory, at least a first of said instructions having a plurality of fields including at least a first field means for specifying an operation to be performed, second field means for specifying a first intermediate address of a first operand, third field means for specifying addressing extension with respect to said first intermediate address to provide a second intermediate address, fourth field means for specifying an addressing extension as an extension to said second intermediate address and field means for specifying the address of a second operand which includes at least a fifth field; and
- means for providing an address using at least said second, third, and fourth means before receiving said fifth field in said means for receiving.
- 15. In a data processor having an instruction execution unit for executing a plurality of instructions and a memory having a plurality of addressable memory elements each of said memory elements being addressable by an address having an address bit-width, apparatus for providing an address based on address information in said instructions, comprising:
- means for receiving instructions from memory, at least one of said instructions having at least one operand, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width, said at least one instruction having
- first means for specifying the kind of operation;
- second means for specifying a first intermediate address;
- third means for specifying information usable in performing address extension modification of said first intermediate address to provide a second intermediate address, said third means also including continuation bit means in said one instruction wherein when said bit means has a first value, said bit means indicates further extension modification is to be performed and when said bit means has a second value, said bit means indicates further extension modification is not to be performed, said bit means being provided in said one instruction without being provided in every address word in memory;
- means for obtaining an address based at least partly on said second intermediate address; and
- means for providing said obtained address to said instruction execution unit.
- 16. In a data processor having an instruction execution unit for executing a plurality of instructions and a memory having a plurality of addressable memory elements, each of said memory elements being addressable by an address having an address bit-width, apparatus for providing an address based on address information in said instructions, comprising:
- means for receiving at least portions of instructions from memory, at least one of said instructions having first and second operands, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bit-width, said at least one instruction having:
- an operation code-specifying portion for specifying the kind of operation;
- a first plurality of fields for specifying a first operand address including at least a first effective address-specifying field and first and second additional mode-specifying fields, said first plurality of fields including at least a first bit means in said one instruction for indicating whether or not further modification is to be performed, said bit means being provided in said instruction without being provided in every address word in memory,
- a second plurality of fields for specifying a second operand address including at least a second effective address specifying field,
- said first effective address-specifying field specifying a first intermediate address of said first operand;
- said first additional mode-specifying field usable in performing address extension modification with respect to at least said first intermediate address to provide a second intermediate address;
- said second additional mode-specifying field usable in performing address extension modification to at least said second intermediate address provided in connection with said first additional mode-specifying field to provide a third intermediate address
- said second effective address-specifying field, specifying an effective address of said second operand;
- means for providing a third address based on said third intermediate address, before receiving said second effective address-specifying field in said means for receiving; and
- means for providing said third address to said instruction execution unit.
- 17. In a data processor having an instruction execution unit for executing a plurality of instructions in relation to data at addresses obtainable from address information in said instructions, apparatus for providing an address based on said information, comprising:
- means for receiving at least portions of instructions from memory, at least a first of said instructions having a plurality of fields including at least a first field means for specifying an operation to be performed, a second field means for specifying a first intermediate address of a first operand, a third field means for specifying addressing extension with respect to said first intermediate address to provide a second intermediate address and a fourth field means for specifying addressing extension with respect to said second intermediate address to provide a third address;
- first means for indicating whether or not said second intermediate address is indirectly referenced;
- second means, different from said first means, for indicating whether or not said third address is indirectly referenced, and
- means for deriving an address of a first operand based at least partly on said third address.
- 18. In a data processor having an instruction execution unit for executing instructions in relation to data at addresses obtainable from address information in said instructions, apparatus for providing an address based on said information, comprising:
- means for receiving at least portions of instructions from memory, at least a first of said instructions having a plurality of fields including at least a first field means for specifying an operation to be performed, second field means for specifying a first intermediate address of a first operand, third field means for specifying addressing extension with respect to said first intermediate address to provide a second intermediate address and fourth field means for specifying addressing extensions with respect to said second intermediate address to provide a third address;
- first means, in said third field means, for indicating whether or not an index register is to be added to said first intermediate address
- second means, different from said first means, for indicating whether or not an index register is to be added to said second intermediate address; and
- means for deriving an address based at least partly on said second intermediate address.
- 19. In a data processor having an instruction execution unit for executing a plurality of instructions and a memory having a plurality of addressable memory elements each of said memory elements being addressable by an address having an address bit-width, apparatus for providing an address based on address information in said instructions, comprising:
- means for receiving instructions from memory, at least one of said instructions having at least one operand, at least another of said instructions having means for specifying an address, the range of said address being the entire memory range addressable by addresses with said bitwidth, said one instruction having
- an operation code specifying portion for specifying the kind of operation;
- an address specifying field specifying an intermediate address of at least one operand;
- one or a plurality of extension field including address extension modification information to be used with said intermediate address on the address extension modification information of the preceding extension field; and
- bit means in said instruction for indicating that further modification is to be performed when said bit means has a first value and for indicating no further modification when said bit means has a second value, said bit means being provided for each said extension field;
- means for deriving an address based on the extension field when said bit means has said second value; and
- means for providing said derived address to said instruction execution unit.
Priority Claims (1)
Number |
Date |
Country |
Kind |
62-247419 |
Sep 1987 |
JPX |
|
Parent Case Info
This is a Continuation of application Ser. No. 07/763,473 filed Sep. 20, 1991, now abandoned, which is a continuation of Ser. No. 07/563,749, filed Aug. 3, 1990, now abandoned, which is a continuation of Ser. No. 07/170,972, filed Mar. 21, 1988, now abandoned.
US Referenced Citations (36)
Foreign Referenced Citations (4)
Number |
Date |
Country |
57-105042 |
Jun 1982 |
JPX |
59-105150 |
Jun 1984 |
JPX |
59-31733 |
Aug 1984 |
JPX |
59-135550 |
Aug 1984 |
JPX |
Non-Patent Literature Citations (5)
Entry |
MC68020 32-Bit Microprocessor User's Manual, copyright 1984 by Motorola, Inc. pp. 2-1 to 2-24. |
VAX Architecture Handbook, Chap. 5, pp. 72-81, Digital Equipment Corporation, 1981. |
Encyclopedia of Computer Science, Rosen, S., "Addressing," pp. 9-8, 1976. |
Lee, et al. "Branch Prediction Strategies and Branch Target Buffer Design", IEEE Computer, Vo. 17, No. 1, Jan. 1984. |
K. Sakamura, "Architecture of the TRON VSLI CPU", IEEE Micro, Apr., 1987. |
Continuations (3)
|
Number |
Date |
Country |
Parent |
763473 |
Sep 1991 |
|
Parent |
563749 |
Aug 1990 |
|
Parent |
170972 |
Mar 1988 |
|