← Back to Patent Explorer
US5123097A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy

Assignee: Bull HN Information Systems Inc
•
Filing: 1989-01-05
•
Granted: 1992-06-16
•
Expires: 2009-01-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a data processing system in which each of the data processing units is implemented using pipeline techniques and has a cache memory unit employing a store through strategy, the time required to prepare a write instruction operand address can be substantially shorter than the time required by the execution unit to prepare the associated write instruction operand. In order to utilize the time difference, apparatus is included in the execution cache unit for storing the write instruction operand address during the preparation of the associated write instruction operand. After storing the write instruction operand address, a next address is entered in an input register of the execution cache unit. When the newly entered address is associated with a read instruction, does not conflict with the write instruction operand address, and produces a "hit" signal when applied to the execution cache unit tag directory, the read instruction is processed by the execution unit. When a second write instruction operand address is entered in the input register, the read instruction operand address conflicts with the stored write instruction operand address or the read instruction operand address results in a "miss" when applied to the execution cache tag directory unit, the address is stored in the input register until the write instruction operand has been determined and the associated write instruction has been procossed by the execution cache unit.

Inventors

  • 👤 Thomas F. Joyce
  • 👤 Ming T. Miu
  • 👤 Richard P. Kelly

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 13:30
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0855; G06F12/0804

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 431 words
A data processing system comprising: a memory unit; a system bus coupled to said memory unit; and a plurality of data processing units coupled to said system bus, wherein said data processing units and said memory unit transfer data operands and associated address operands asynchronously over said system bus, each data processing unit processing a sequence of instructions, said sequence of instruction including read instructions and write instructions, each data processing unit transferring a data operand to said main memory in response to a write instruction, each of said data processing units including: an address unit responsive to said read and write instructions for providing associated address operands for data operands identified by said read instructions and said write instructions; an execution unit responsive to said write instructions for providing data operands for storage in said memory unit at locations identified by associated address operands, wherein determination of a data operand by said execution unit can require a longer time period than providing an associated address operand by said address unit; a cache means coupled to said execution unit for storing data operands at locations determined by said associated address operands, said cache means temporarily storing a write instruction address operand from said address unit in response to a first write instruction while said execution unit determines an associated write instruction date operand in response to said first write instruction, said cache means including apparatus providing a read data operand from a location determined by an associated read address operand to said execution unit in response to a read instruction, wherein a read instruction data operand stored in said cache means can be transferred to said execution unit in response to a first read instruction after a write instruction address operand has been transferred to said cache unit and before an associated write instruction data operand has been transferred to said cache means, initiation of processing of said firs read instruction following initiation of processing of said first write instruction by said data processing unit, wherein said cache means apparatus includes busy means for preventing transfer of a read instruction data operand to said execution unit by said cache means until determination of a write instruction data operand when said associated read instruction address operand is identical to said associated write instruction address operand; and an interface unit receiving write instruction data operands and associated write instruction address operands from said cache means, said interface unit applying said write data operands and associated write instruction address operands from said cache means to said system bus for transfer to said memory unit.
Claim 2
Dependent Claim 431 words
A data processing system comprising: a memory unit; a system bus coupled to said memory unit; and a plurality of data processing units coupled to said system bus, wherein said data processing units and said memory unit transfer data operands and associated address operands asynchronously over said system bus, each data processing unit processing a sequence of instructions, said sequence of instruction including read instructions and write instructions, each data processing unit transferring a data operand to said main memory in response to a write instruction, each of said data processing units including: an address unit responsive to said read and write instructions for providing associated address operands for data operands identified by said read instructions and said write instructions; an execution unit responsive to said write instructions for providing data operands for storage in said memory unit at locations identified by associated address operands, wherein determination of a data operand by said execution unit can require a longer time period than providing an associated address operand by said address unit; a cache means coupled to said execution unit for storing data operands at locations determined by said associated address operands, said cache means temporarily storing a write instruction address operand from said address unit in response to a first write instruction while said execution unit determines an associated write instruction date operand in response to said first write instruction, said cache means including apparatus providing a read data operand from a location determined by an associated read address operand to said execution unit in response to a read instruction, wherein a read instruction data operand stored in said cache means can be transferred to said execution unit in response to a first read instruction after a write instruction address operand has been transferred to said cache unit and before an associated write instruction data operand has been transferred to said cache means, initiation of processing of said firs read instruction following initiation of processing of said first write instruction by said data processing unit, wherein said cache means apparatus includes busy means for preventing transfer of a read instruction data operand to said execution unit by said cache means until determination of a write instruction data operand when said associated read instruction address operand is identical to said associated write instruction address operand; and an interface unit receiving write instruction data operands and associated write instruction address operands from said cache means, said interface unit applying said write data operands and associated write instruction address operands from said cache means to said system bus for transfer to said memory unit.
Claim 3
Dependent Claim 58 words
The data processing system of claim 1 wherein said cache means apparatus includes valid means responsive to said read instruction address operand for preventing transfer of said read instruction data operand by said cache means when said cache means does not store a valid operand at a cache means location identified by said associated read instruction address operand.
Claim 4
Dependent Claim 41 words
The data processing system of claim 2 wherein said cache means apparatus includes an input address register, said input address register storing said read instruction address operand when said read instruction data operand can not be transferred to said execution unit.
Claim 5
Dependent Claim 30 words
The data processing system of claim 1 wherein said cache means apparatus includes register means for storing said write instruction address operand unit receipt of said write instruction data operand.
Claim 6
Dependent Claim 37 words
The data processing system of claim 4 further comprising a virtual memory management unit for translating address operands from said address unit to address operands related to storage locations in said cache means and said memory unit.
Claim 7
Dependent Claim 31 words
The data processing system of claim 1 wherein said cache means apparatus transfers a second read instruction data operand to said execution unit during determination of said write instruction data operand.
Claim 8
Independent Claim 232 words
A method of expediting instruction execution in a data processing system having at least one pipelined data processing unit and a memory unit asynchronously coupled to a system bus, wherein said data processing units include cache units having a store through strategy, wherein said data processing units execute sequences of instructions including read instructions and write instructions, said method comprising the steps of: storing a write address operand determined by a write instruction in a cache unit while an execution unit is determining an associated write data operand; transferring a read data operand identified by a read address operand applied to said execution unit as a result of a read instruction processed following said write instruction, said read data operand being transferred to said execution unit after storing said write address operand and before transferring said associated write data operand to said cache unit for transfer to said memory unit; comparing said read address operand with said stored write address operand; preventing transfer of said read data operand from said cache unit to said execution unit until said write data operand has been transferred to said cache unit; transferring a second read data operand to said execution unit in response to a second read instruction following said write instruction prior to transfer of said write data operand to said cache unit; and transferring said associated write address operand to said cache unit.
Claim 9
Independent Claim 232 words
A method of expediting instruction execution in a data processing system having at least one pipelined data processing unit and a memory unit asynchronously coupled to a system bus, wherein said data processing units include cache units having a store through strategy, wherein said data processing units execute sequences of instructions including read instructions and write instructions, said method comprising the steps of: storing a write address operand determined by a write instruction in a cache unit while an execution unit is determining an associated write data operand; transferring a read data operand identified by a read address operand applied to said execution unit as a result of a read instruction processed following said write instruction, said read data operand being transferred to said execution unit after storing said write address operand and before transferring said associated write data operand to said cache unit for transfer to said memory unit; comparing said read address operand with said stored write address operand; preventing transfer of said read data operand from said cache unit to said execution unit until said write data operand has been transferred to said cache unit; transferring a second read data operand to said execution unit in response to a second read instruction following said write instruction prior to transfer of said write data operand to said cache unit; and transferring said associated write address operand to said cache unit.
Claim 10
Dependent Claim 81 words
The method of expediting instruction execution of claim 7 further comprising the steps of; determining when a valid read data operand is stored in said cache unit at a location determined by said associated read address operand; and preventing transfer of said read data operand by said cache unit until said write data operand has been transferred to said cache unit when a valid operand is not stored in said cache unit at a location determined by said read address operand.
Claim 11
Dependent Claim 50 words
The method of expediting instruction execution of claim 8 further comprising a step of storing read address operand in an input register of said cache unit until said write data operand has been transferred to said cache unit when said read data operand is prevented from being transferred to said
Claim 12
Dependent Claim 57 words
The method of expediting instruction execution of claim 7 further comprising a step of preventing transfer of a second write data operand resulting preventing transfer of a second write data operand resulting from a second write instruction following said write instruction to said cache unit prior to transfer of said write data operand to said cache unit.
Claim 13
Dependent Claim 293 words
A data processing system having a memory unit and a plurality of data processing units coupled by a system bus, wherein said data processing units are implemented using pipeline techniques, each data processing unit processing sequences of instructions, said sequences of instructions including write instructions and read instructions, each data processing unit including a cache unit, each cache unit comprising: a storage unit for storing data operands in a plurality of storage unit locations identified by associated address operands; a directory unit having a plurality of locations each related to a one of said storage unit locations, said directory unit locations along with signals stored therein providing an address operand of a data operand stored in said storage unit, said directory unit having at least a valid bit location associated with each of said directory unit locations; an input address register for storing an address operand from its data processing unit; a write address register for storing a write address operand resulting from a write instruction while a write data operand resulting from said write instruction is being determined; and block store means for providing a busy signal when a read address operand resulting from a read instruction following said write instruction is stored in said input address register and said read address operand and a write operand address in said write address register are identical, wherein a read address operand stored in said input address register after storage of a write address operand in said write address register and prior to receipt of said write data operand results in transfer of a read data operand stored at cache unit location determined by said read address operand from said cached unit to said data processing unit when said busy signal is not provided.
Claim 14
Dependent Claim 293 words
A data processing system having a memory unit and a plurality of data processing units coupled by a system bus, wherein said data processing units are implemented using pipeline techniques, each data processing unit processing sequences of instructions, said sequences of instructions including write instructions and read instructions, each data processing unit including a cache unit, each cache unit comprising: a storage unit for storing data operands in a plurality of storage unit locations identified by associated address operands; a directory unit having a plurality of locations each related to a one of said storage unit locations, said directory unit locations along with signals stored therein providing an address operand of a data operand stored in said storage unit, said directory unit having at least a valid bit location associated with each of said directory unit locations; an input address register for storing an address operand from its data processing unit; a write address register for storing a write address operand resulting from a write instruction while a write data operand resulting from said write instruction is being determined; and block store means for providing a busy signal when a read address operand resulting from a read instruction following said write instruction is stored in said input address register and said read address operand and a write operand address in said write address register are identical, wherein a read address operand stored in said input address register after storage of a write address operand in said write address register and prior to receipt of said write data operand results in transfer of a read data operand stored at cache unit location determined by said read address operand from said cached unit to said data processing unit when said busy signal is not provided.
Claim 15
Dependent Claim 51 words
The data processing system of claim 11 wherein an absence of a valid operand at location determined by said read address operand in said storage nit prevents transfer of said read data operand associated with said read address operand stored in said input register until said write operand has been determined.
Claim 16
Dependent Claim 99 words
The data processing system of claim 11 wherein transfer of said read data operand related to said read address operand stored in said input address register from said cache unit to said data processing unit causes a second read address operand to be entered in said input register, said second read address operand resulting from a second read instruction following said read instruction, wherein said second read address operand results in transfer of a second read data operand from a location of said storage unit determined by said second read address operand when said busy signal is not provided.
Claim 17
Dependent Claim 65 words
The data processing system of claim 11 wherein said write address register includes a first location indicating when said write address operand is stored along with a valid signal in said directory unit, said write data operand being stored in said storage unit at a location determined by said write address operand when a predetermined signal is present in said write address register first location.
Claim 18
Dependent Claim 46 words
The data processing system of claim 11 wherein said data processing unit is comprised of an execution unit, said cache unit being coupled to said execution unit for exchanging data operands therebetween, said execution unit determining said write data operand in response to said write instruction.
Claim 19
Dependent Claim 61 words
The data processing system of claim 11 wherein said data processing unit is comprised of a bus interface unit coupled to said system bus for buffering data and address operands transferred between said data processing unit and said system bus, wherein said write address operand and said write data operand are applied to said interface unit in processing a write instruction.
Claim 20
Dependent Claim 43 words
The data processing system of claim 11 wherein a second write address operand transferred to said input register prior to a determination of said write data operand is prevented from causing processing by said cache unit until said write data operand is determined.

References Cited (Backward Citations)

US4345309A Cited
US4349871A Cited
US4481573A Cited
US4541045A Cited
US4521851A Cited
US4682281A Cited
US4933835A Cited
US4761733A Cited
US4891753A Cited
US4811215A Cited
US4802085A Cited
US4912626A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-06-16 1995-12-16 1996-06-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-06-16 1999-12-16 2000-06-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-06-16 2003-12-16 2004-06-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag