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

Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system

Assignee: Intel Corp
•
Filing: 1995-10-31
•
Granted: 1996-11-19
•
Expires: 2015-10-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A number of data misalignment detection circuits are provided to select ones of an execution unit and memory order interface components, of an out-of-order (OOO) execution computer system, this aids the buffering and fault generation circuits of the memory order interface components, to buffer and dispatch load and store operations depending on if the misalignments are detected and their nature, resulting in load and store operations of misaligned data against a memory subsystem of the OOO execution computer system are available, the data addressed by the load and store operations are of the following types: chunk split, cache split, or page split misaligned.

Inventors

  • 👤 Jeffrey M. Abramson
  • 👤 Haitham Akkary
  • 👤 Andrew F. Glew
  • 👤 Glenn J. Hinton
  • 👤 Kris G. Konigsfeld
  • 👤 Paul D. Madland

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 10:30
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/3004; G06F9/30043; G06F9/38; G06F9/3802; G06F9/3816; G06F9/3824; G06F9/3834; G06F12/00; G06F12/02; G06F12/04

Claims Analysis

Total Claims: 66
Claim 1
Independent Claim 162 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 2
Dependent Claim 162 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 3
Dependent Claim 100 words
The apparatus as set forth in claim 1, wherein, said apparatus further comprises (c) second misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry further dispatches said load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned if cache line split misalignment is detected for said load operation.
Claim 4
Dependent Claim 61 words
The apparatus as set forth in claim 2, wherein, said apparatus further comprises (d) address and data size calculation circuitry coupled to said buffering circuitry and disposed in the same MOI component as said buffering circuitry for incrementing addresses and decrementing data sizes for each subsequent one of said successive aligned subset load operations to be dispatched for said load operation.
Claim 5
Dependent Claim 153 words
The apparatus as set forth in claim 2, wherein said apparatus further comprises: (d) third misalignment detection circuitry disposed in said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said load operation when a first of said successive aligned subset load operations is dispatched by said buffering circuitry; (e) first fault generation circuitry disposed in said at least one MOI component and coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (f) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 6
Dependent Claim 63 words
The apparatus as set forth in claim 4, wherein said buffering circuitry further redispatches said first of said successive aligned subset load operations for said load operation if said first of said successive aligned subset load operation was only faulted for said load operation being also memory page split misaligned, and then dispatches each subsequent one of said successive aligned subset load operations.
Claim 7
Dependent Claim 98 words
The apparatus as set forth in claim 5, wherein, said EU comprises an address generation unit for generating a linear address for said load operation, said address generation unit comprising said first misalignment detection circuitry; said at least one MOI component comprises a memory order buffer (MOB) having a load buffer (LB) for buffering load operations, said LB comprising said buffering circuitry and said second misalignment detection circuitry; said at least one MOI component further comprises a data translation lookaside buffer (DTLB), said DTLB comprising said third alignment detection circuitry, and said first and second fault generation circuitry.
Claim 8
Dependent Claim 193 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation, said buffering circuitry dispatching said cache line split misaligned load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned.
Claim 9
Dependent Claim 193 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation, said buffering circuitry dispatching said cache line split misaligned load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned.
Claim 10
Dependent Claim 61 words
The apparatus as set forth in claim 7, wherein, said apparatus further comprises (c) address and data size calculation circuitry coupled to said buffering circuitry and disposed in the same MOI component as said buffering circuitry for incrementing addresses and decrementing data sizes for each subsequent one of said successive aligned subset load operations to be dispatched for said load operation.
Claim 11
Dependent Claim 157 words
The apparatus as set forth in claim 7, wherein said apparatus further comprises: (c) second misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said load operation when a first of said successive aligned subset load operations is dispatched by said buffering circuitry; (d) first fault generation circuitry disposed in said at least one MOI component and coupled to said second misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (e) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 12
Dependent Claim 63 words
The apparatus as set forth in claim 9, wherein said buffering circuitry further redispatches said first of said successive aligned subset load operations for said load operation if said first of said successive aligned subset load operation was only faulted for said load operation being also memory page split misaligned, and then dispatches each subsequent one of said successive aligned subset load operations.
Claim 13
Dependent Claim 72 words
The apparatus as set forth in claim 10, wherein, said at least one MOI component comprises a memory order buffer (MOB) having a load buffer (LB) for buffering load operations, said LB comprising said buffering circuitry and said first misalignment detection circuitry; said at least one MOI component further comprises a data translation lookaside buffer (DTLB), said DTLB comprising said second alignment detection circuitry, and said first and second fault generation circuitry.
Claim 14
Dependent Claim 222 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO s execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said load operation when a first of successive aligned subset load operations is dispatched for said load operation; (b) first fault generation circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (c) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 15
Dependent Claim 222 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO s execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said load operation when a first of successive aligned subset load operations is dispatched for said load operation; (b) first fault generation circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (c) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 16
Dependent Claim 38 words
The apparatus as set forth in claim 12, wherein, said at least one MOI component comprises a data translation lookaside buffer (DTLB), said DTLB comprising said first alignment detection circuitry, and said first and second fault generation circuitry.
Claim 17
Dependent Claim 308 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, a method for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said method comprising the steps of: (a) detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation; (b.1) dispatching a first of said successive aligned subset load operations; (b.2) detecting memory page split misalignment for said load operation when said first of said successive aligned subset load operations is dispatched; (b.3) faulting said first of said successive aligned subset load operations if memory page split misalignment is also detected for said load operation; (b.4) faulting also said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault; (b.5) redispatching said first of said successive aligned subset load operations if said first of said successive aligned subset load operations is faulted for only memory page split misalignment being detected for said load operation; and (b.6) dispatching each subsequent one of said successive aligned subset load operations if either memory page split misalignment is not detected for said load operation, or memory page split misalignment is detected for said load operation but said first of said successive aligned subset load operation is redispatched.
Claim 18
Dependent Claim 308 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, a method for performing a data load operation of misaligned data from said memory subsystem into said execution unit, said method comprising the steps of: (a) detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and (b) buffering said load operation, and dispatching said load operation to said MEM non-speculatively if data chunk split misalignment is detected for said load operation; (b.1) dispatching a first of said successive aligned subset load operations; (b.2) detecting memory page split misalignment for said load operation when said first of said successive aligned subset load operations is dispatched; (b.3) faulting said first of said successive aligned subset load operations if memory page split misalignment is also detected for said load operation; (b.4) faulting also said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault; (b.5) redispatching said first of said successive aligned subset load operations if said first of said successive aligned subset load operations is faulted for only memory page split misalignment being detected for said load operation; and (b.6) dispatching each subsequent one of said successive aligned subset load operations if either memory page split misalignment is not detected for said load operation, or memory page split misalignment is detected for said load operation but said first of said successive aligned subset load operation is redispatched.
Claim 19
Dependent Claim 87 words
The method as set forth in claim 14, wherein, said step (a) further comprises detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM if said load operation is detected to be data chunk split misaligned; said step (b) comprises dispatching said load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned if cache line split misalignment is also detected for said load operation.
Claim 20
Dependent Claim 192 words
The method as set forth in claim 15, wherein said step (b) comprises: (b.1) dispatching a first of said successive aligned subset load operations; (b.2) detecting memory page split misalignment for said load operation when said first of said successive aligned subset load operations is dispatched; (b.3) faulting said first of said successive aligned subset load operations if memory page split misalignment is also detected for said load operation; (b.4) faulting also said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault; (b.5) redispatching said first of said successive aligned subset load operations if said first of said successive aligned subset load operations is faulted for only memory page split misalignment being detected for said load operation; and (b.6) dispatching each subsequent one of said successive aligned subset load operations if either memory page split misalignment is not detected for said load operation, or memory page split misalignment is detected for said load operation but said first of said successive aligned subset load operation is redispatched.
Claim 21
Dependent Claim 138 words
An out-of-order (OOO) execution processor comprising: (a) a data cache (DC) for caching data; (b) an instruction fetch and issue unit for fetching and issuing instructions; (c) an execution unit (EU) coupled to the instruction fetch and issue unit comprising an address generation unit (AGU) for generating a linear address for a load operation dispatched from said EU, said AGU having a first misalignment detection circuitry for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; (d) a memory order buffer (MOB) coupled to said EU and said DC comprising a load buffer (LB) having buffering circuitry for buffering said load operation dispatched from said EU, and dispatching said load operation to said DC non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 22
Dependent Claim 138 words
An out-of-order (OOO) execution processor comprising: (a) a data cache (DC) for caching data; (b) an instruction fetch and issue unit for fetching and issuing instructions; (c) an execution unit (EU) coupled to the instruction fetch and issue unit comprising an address generation unit (AGU) for generating a linear address for a load operation dispatched from said EU, said AGU having a first misalignment detection circuitry for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; (d) a memory order buffer (MOB) coupled to said EU and said DC comprising a load buffer (LB) having buffering circuitry for buffering said load operation dispatched from said EU, and dispatching said load operation to said DC non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 23
Dependent Claim 87 words
The processor as set forth in claim 17, wherein, said LB further having second misalignment detection circuitry for detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry further dispatches said load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned if cache line split misalignment is detected for said load operation.
Claim 24
Dependent Claim 160 words
The processor as set forth in claim 18, wherein said processor further comprises (e) a data translation lookaside buffer (DTLB) coupled to said MOB and said DC for translating a linear address to a physical address, and performing a number of fault detections, said DTLB having fault detection circuitry comprising: (e.1) third misalignment detection circuitry for detecting memory page split misalignment for said load operation when a first of said successive aligned subset load operations is dispatched by said buffering circuitry; (e.2) first fault generation circuitry coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (e.3) second fault generation circuitry for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 25
Dependent Claim 63 words
The processor as set forth in claim 19, wherein said buffering circuitry further redispatches said first of said successive aligned subset load operations for said load operation if said first of said successive aligned subset load operation was only faulted for said load operation being also memory page split misaligned, and then dispatched each subsequent one of said successive aligned subset load operations.
Claim 26
Dependent Claim 19 words
The processor as forth in claim 20, wherein said processor is disposed in a single silicon based integrated circuit.
Claim 27
Dependent Claim 133 words
An out-of-order (OOO) computer system comprising: (a) a main memory for storing data; (b) a data cache (DC) coupled to said main memory for caching a subset of said data stored in said main memory; (c) an instruction fetch and issue unit for fetching and issuing instructions; (d) an execution unit (EU) coupled to the instruction fetch and issue unit comprising a first misalignment detection circuitry for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; (e) a memory order buffer (MOB) coupled to said EU and said DC comprising buffering circuitry for buffering said load operation dispatched from said EU, and dispatching said load operation to said DC non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 28
Dependent Claim 133 words
An out-of-order (OOO) computer system comprising: (a) a main memory for storing data; (b) a data cache (DC) coupled to said main memory for caching a subset of said data stored in said main memory; (c) an instruction fetch and issue unit for fetching and issuing instructions; (d) an execution unit (EU) coupled to the instruction fetch and issue unit comprising a first misalignment detection circuitry for detecting data chunk split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; (e) a memory order buffer (MOB) coupled to said EU and said DC comprising buffering circuitry for buffering said load operation dispatched from said EU, and dispatching said load operation to said DC non-speculatively if data chunk split misalignment is detected for said load operation.
Claim 29
Dependent Claim 88 words
The computer system as set forth in claim 22, wherein, said MOB further having second misalignment detection circuitry for detecting cache line split misalignment for said load operation when said load operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry further dispatches said load operation as successive aligned subset load operations, each destined for a subset of source memory locations that are data boundary aligned if cache line split misalignment is detected for said load operation.
Claim 30
Dependent Claim 162 words
The computer system as set forth in claim 23, wherein said computer system further comprises (f) a data translation lookaside buffer (DTLB) coupled to said MOB and said DC for translating a linear address to a physical address, and performing a number of fault detections, said DTLB having fault detection circuitry comprising: (f.1) third misalignment detection circuitry for detecting memory page split misalignment for said load operation when a first of said successive aligned subset load operations is dispatched by said buffering circuitry; (f.2) first fault generation circuitry coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset load operations if memory page split misalignment is detected for said load operation; and (d.3) second fault generation circuitry for also faulting said first of said successive aligned subset load operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset load operations would result in fault.
Claim 31
Dependent Claim 64 words
The computer system as set forth in claim 24, wherein said buffering circuitry further redispatches said first of said successive aligned subset load operations for said load operation if said first of said successive aligned subset load operation was only faulted for said load operation being also memory page split misaligned, and then dispatched each subsequent one of said successive aligned subset load operations.
Claim 32
Dependent Claim 200 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said store operation, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said MEM with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 33
Dependent Claim 200 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said store operation, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said MEM with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 34
Dependent Claim 141 words
The apparatus as set forth in claim 26, wherein, said apparatus further comprises (c) second misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry prevents said misaligned data of said store operation from being promoted to said system commitment ready state if cache line split misalignment is detected for said operation until said store operation is ready to be dispatched to said MEM, and dispatches said store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrently with committing said misaligned data of said store operation to system state.
Claim 35
Dependent Claim 61 words
The apparatus as set forth in claim 27, wherein, said apparatus further comprises (d) address and data size calculation circuitry coupled to said buffering circuitry and disposed in the same MOI component as said buffering circuitry for incrementing addresses and decrementing data sizes for each subsequent one of said successive aligned subset store operations to be dispatched for said store operation.
Claim 36
Dependent Claim 157 words
The apparatus as set forth in claim 27, wherein said apparatus further comprises: (d) third misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said store operation when a first of said successive aligned subset store operations is dispatched by said buffering circuitry; (e) first fault generation circuitry disposed in said at least one MOI component and coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (f) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 37
Dependent Claim 63 words
The apparatus as set forth in claim 29, wherein said buffering circuitry further redispatches said first of said successive aligned subset store operations for said store operation if said first of said successive aligned subset store operation was only faulted for said store operation being also memory page split misaligned, and then dispatches each subsequent one of said successive aligned subset store operations.
Claim 38
Dependent Claim 98 words
The apparatus as set forth in claim 30, wherein, said EU comprises an address generation unit for generating a linear address for said store operation, said address generation unit comprising said first misalignment detection circuitry; said at least one MOI component comprises a memory order buffer (MOB) having a store buffer (SB) for buffering store operations, said SB comprising said buffering circuitry and said second misalignment detection circuitry; said at least one MOI component further comprises a data translation lookaside buffer (DTLB), said DTLB comprising said third alignment detection circuitry, and said first and second fault generation circuitry.
Claim 39
Dependent Claim 224 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said store operation, preventing said misaligned data of said store operation from being promoted to a system commitment ready state if cache line split misalignment is detected for said store operation until said store operation is ready to be dispatched to said MEM, and dispatching said cache line split misaligned store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrent with committing said misaligned data of said store operation to system state.
Claim 40
Dependent Claim 224 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and (b) buffering circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for buffering said store operation, preventing said misaligned data of said store operation from being promoted to a system commitment ready state if cache line split misalignment is detected for said store operation until said store operation is ready to be dispatched to said MEM, and dispatching said cache line split misaligned store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrent with committing said misaligned data of said store operation to system state.
Claim 41
Dependent Claim 61 words
The apparatus as set forth in claim 32, wherein, said apparatus further comprises (c) address and data size calculation circuitry coupled to said buffering circuitry and disposed in the same MOI component as said buffering circuitry for incrementing addresses and decrementing data sizes for each subsequent one of said successive aligned subset store operations to be dispatched for said store operation.
Claim 42
Dependent Claim 157 words
The apparatus as set forth in claim 32, wherein said apparatus further comprises: (c) second misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said store operation when a first of said successive aligned subset store operations is dispatched by said buffering circuitry; (d) first fault generation circuitry disposed in said at least one MOI component and coupled to said second misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (e) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 43
Dependent Claim 63 words
The apparatus as set forth in claim 34, wherein said buffering circuitry further redispatches said first of said successive aligned subset store operations for said store operation if said first of said successive aligned subset store operation was only faulted for said store operation being also memory page split misaligned, and then dispatches each subsequent one of said successive aligned subset store operations.
Claim 44
Dependent Claim 72 words
The apparatus as set forth in claim 35, wherein, said at least one MOI component comprises a memory order buffer (MOB) having a store buffer (SB) for buffering store operations, said SB comprising said buffering circuitry and said first misalignment detection circuitry; said at least one MOI component further comprises a data translation lookaside buffer (DTLB), said DTLB comprising said second alignment detection circuitry, and said first and second fault generation circuitry.
Claim 45
Dependent Claim 221 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said store operation when a first of successive aligned subset store operations is dispatched for said store operation; (b) first fault generation circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (c) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 46
Dependent Claim 221 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: (a) first misalignment detection circuitry disposed in either said EU or said at least one MOI component coupled to said buffering circuitry for detecting memory page split misalignment for said store operation when a first of successive aligned subset store operations is dispatched for said store operation; (b) first fault generation circuitry disposed in said at least one MOI component and coupled to said first misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (c) second fault generation circuitry disposed in said at least one MOI component for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 47
Dependent Claim 38 words
The apparatus as set forth in claim 37, wherein, said at least one MOI component comprises a data translation lookaside buffer (DTLB), said DTLB comprising said first alignment detection circuitry, and said first and second fault generation circuitry.
Claim 48
Dependent Claim 167 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, a method for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said method comprising the steps of: (a) detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and (b) buffering said store operation, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said MEM with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 49
Dependent Claim 167 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, a method for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said method comprising the steps of: (a) detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and (b) buffering said store operation, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said MEM with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 50
Dependent Claim 131 words
The method as set forth in claim 39, wherein, said step (a) further comprises detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM if said store operation is detected to be data chunk split misaligned; said step (b) comprises preventing said misaligned data of said store operation from being promoted to said system commitment ready state until said store operation is ready to be dispatched to said MEM instead if cache line split misalignment is also detected for said store operation, and dispatching said store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrent with committing said misaligned data of said store operation to system state.
Claim 51
Dependent Claim 209 words
The method as set forth in claim 40, wherein said dispatching of said cache line split misaligned store operation as successive aligned subset store operations in said step (b) comprises: (b.1) dispatching a first of said successive aligned subset store operations; (b.2) detecting memory page split misalignment for said store operation when said first of said successive aligned subset store operations is dispatched; (b.3) faulting said first of said successive aligned subset store operations if memory page split misalignment is also detected for said store operation; (b.4) faulting also said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault; (b.5) redispatching said first of said successive aligned subset store operations if said first of said successive aligned subset store operations is faulted for only memory page split misalignment being detected for said store operation; and (b.6) dispatching each subsequent one of said successive aligned subset store operations if either memory page split misalignment is not detected for said store operation, or memory page split misalignment is detected for said store operation but said first of said successive aligned subset store operation is redispatched.
Claim 52
Dependent Claim 176 words
An out-of-order (OOO) execution processor comprising: (a) a data cache (DC) for caching data; (b) an instruction fetch and issue unit for fetching and issuing instructions; (c) an execution unit (EU) coupled to said instruction fetch and issue unit comprising an address generation unit (AGU) for generating a linear address for a store operation dispatched from said EU, said AGU having a first misalignment detection circuitry for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; (d) a memory order buffer (MOB) coupled to said EU and said DC comprising a store buffer (SB) having buffering circuitry for buffering said store operation dispatched from said EU, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said DC with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 53
Dependent Claim 176 words
An out-of-order (OOO) execution processor comprising: (a) a data cache (DC) for caching data; (b) an instruction fetch and issue unit for fetching and issuing instructions; (c) an execution unit (EU) coupled to said instruction fetch and issue unit comprising an address generation unit (AGU) for generating a linear address for a store operation dispatched from said EU, said AGU having a first misalignment detection circuitry for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; (d) a memory order buffer (MOB) coupled to said EU and said DC comprising a store buffer (SB) having buffering circuitry for buffering said store operation dispatched from said EU, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said DC with an appropriate byte mask, after said misaligned data of said store operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 54
Dependent Claim 129 words
The processor as set forth in claim 42, wherein, said SB further having second misalignment detection circuitry for detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry prevents said misaligned data of said store operation from being promoted to said system commitment ready state until said store operation is ready to be dispatched to said MEM if cache line split misalignment is detected for said store operation, and dispatches said store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrent with committing said misaligned data of said store operation to system state.
Claim 55
Dependent Claim 160 words
The processor as set forth in claim 43, wherein said processor further comprises (e) a data translation lookaside buffer (DTLB) coupled to said MOB and said DC for translating a linear address to a physical address, and performing a number of fault detections, said DTLB having fault detection circuitry comprising: (e.1) third misalignment detection circuitry for detecting memory page split misalignment for said store operation when a first of said successive aligned subset store operations is dispatched by said buffering circuitry; (e.2) first fault generation circuitry coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (e.3) second fault generation circuitry for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 56
Dependent Claim 63 words
The processor as set forth in claim 44, wherein said buffering circuitry further redispatches said first of said successive aligned subset store operations for said store operation if said first of said successive aligned subset store operation was only faulted for said store operation being also memory page split misaligned, and then dispatched each subsequent one of said successive aligned subset store operations.
Claim 57
Dependent Claim 19 words
The processor as forth in claim 45, wherein said processor is disposed in a single silicon based integrated circuit.
Claim 58
Dependent Claim 171 words
An out-of-order (OOO) computer system comprising: (a) a main memory for storing data; (b) a data cache (DC) coupled to said main memory for caching a subset of said data stored in said main memory; (c) an instruction fetch and issue unit for fetching and issuing instructions; (d) an execution unit (EU) coupled to said instruction fetch and issue unit comprising a first misalignment detection circuitry for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; (e) a memory order buffer (MOB) coupled to said EU and said DC comprising buffering circuitry for buffering said store operation dispatched from said EU, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said DC with an appropriate byte mask, after said misaligned data of said stoe operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 59
Dependent Claim 171 words
An out-of-order (OOO) computer system comprising: (a) a main memory for storing data; (b) a data cache (DC) coupled to said main memory for caching a subset of said data stored in said main memory; (c) an instruction fetch and issue unit for fetching and issuing instructions; (d) an execution unit (EU) coupled to said instruction fetch and issue unit comprising a first misalignment detection circuitry for detecting data chunk split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; (e) a memory order buffer (MOB) coupled to said EU and said DC comprising buffering circuitry for buffering said store operation dispatched from said EU, allowing said misaligned data of said store operation to be promoted to a system commitment ready state, and dispatching said store operation to said DC with an appropriate byte mask, after said misaligned data of said stoe operation has been promoted to said system commitment ready state, if data chunk split misalignment is detected for said store operation.
Claim 60
Dependent Claim 130 words
The computer system as set forth in claim 47, wherein, said MOB further having second misalignment detection circuitry for detecting cache line split misalignment for said store operation when said store operation is dispatched from said EU to said MEM; said buffering circuitry being also coupled to said second misalignment detection circuitry prevents said misaligned data of said store operation from being promoted to said system commitment ready state until said store operation is ready to be dispatched to said MEM if cache line split misalignment is detected for said store operation, and dispatches said store operation as successive aligned subset store operations, each destined for a subset of source memory locations that are data boundary aligned, concurrent with committing said misaligned data of said store operation to system state.
Claim 61
Dependent Claim 162 words
The computer system as set forth in claim 48, wherein said computer system further comprises (e) a data translation lookaside buffer (DTLB) coupled to said MOB and said DC for translating a linear address to a physical address, and performing a number of fault detections, said DTLB having fault detection circuitry comprising: (e.1) third misalignment detection circuitry for detecting memory page split misalignment for said store operation when a first of said successive aligned subset store operations is dispatched by said buffering circuitry; (e.2) first fault generation circuitry coupled to said third misalignment detection circuitry for faulting said first of said successive aligned subset store operations if memory page split misalignment is detected for said store operation; and (e.3) second fault generation circuitry for also faulting said first of said successive aligned subset store operations if at least one reference to a memory page to be referenced by a subsequent one of said successive aligned subset store operations would result in fault.
Claim 62
Dependent Claim 64 words
The computer system as set forth in claim 49, wherein said buffering circuitry further redispatches said first of said successive aligned subset store operations for said store operation if said first of said successive aligned subset store operation was only faulted for said store operation being also memory page split misaligned, and then dispatched each subsequent one of said successive aligned subset store operations.
Claim 63
Dependent Claim 177 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) at least one misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting at least one type of data misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said at least one misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM in a manner depending on whether data misalignment is detected for said load operation, and the type of data misalignment detected.
Claim 64
Dependent Claim 177 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing data load operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) at least one misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting at least one type of data misalignment for said load operation when said load operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said at least one misalignment detection circuitry for buffering said load operation, and dispatching said load operation to said MEM in a manner depending on whether data misalignment is detected for said load operation, and the type of data misalignment detected.
Claim 65
Dependent Claim 178 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) at least one misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting at least one type of data misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said at least one misalignment detection circuitry for buffering said store operation, and dispatching said store operation to said MEM in a manner depending on whether data misalignment is detected for said store operation, and the type of data misalignment detected.
Claim 66
Dependent Claim 178 words
In an out-of-order (OOO) computer system comprising an instruction fetch and issue unit for fetching and issuing instructions, an OOO execution unit (EU) for executing instructions, a memory subsystem (MEM) for storing data, and at least one memory ordering interface (MOI) component coupled to said EU and said MEM for interfacing between said EU and MEM, an apparatus for performing a data store operation of misaligned data from said memory subsystem into said execution unit, said apparatus comprising: a) at least one misalignment detection circuitry disposed in either said EU or said at least one MOI component for detecting at least one type of data misalignment for said store operation when said store operation is dispatched from said EU to said MEM; and b) buffering circuitry disposed in said at least one MOI component and coupled to said at least one misalignment detection circuitry for buffering said store operation, and dispatching said store operation to said MEM in a manner depending on whether data misalignment is detected for said store operation, and the type of data misalignment detected.

References Cited (Backward Citations)

US4807113A Cited
US4803615A Cited
US5146570A Cited
US4722049A Cited
US4991090A Cited
US5063497A Cited
US5197130A Cited
US5191653A Cited
US5274763A Cited
US5261071A Cited
US5293603A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-11-19 2000-05-20 2000-11-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-11-19 2004-05-20 2004-11-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-11-19 2008-05-20 2008-11-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag