Patent US899121A successfully refreshed from Google Patents.
Patent EP0243892A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0243892A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

System for guaranteeing the logical integrity of data

Assignee: International Business Machines Corp
•
Filing: 1987-04-24
•
Granted: —
•
Expires: 2007-04-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for controlling access to its general purpose registers (GPR) by a high end machine configuration including a plurality of execution units within a single central processing unit (CPU). The invention allows up to "N" execution units to be con­currently executing up to "N" instructions using the same general purpose register (GPR) sequentially or different general purpose registers (GPR) concurrently as either SINK or SOURCE while at the same time preserving the logical integrity of the data supplied to the execution units. The use of the invention allows a higher degree of parallelism in the execution of the instructions than would otherwise be possible if only sequential operations were performed. A series of special purpose tags are associated with each general purpose register (GPR) and execute unit. These tags are used together with control circuitry both within the general purpose registers (GPR), within the indivi­dual execute units and within the instruction decode unit, which permit the multiple use of the registers to be accomplished while maintaining the requisite logical integrity.

Inventors

  • 👤 James Herbert Pomerene
  • 👤 Thomas Roberts Puzak
  • 👤 Rudolph Nathan Rechtschaffen
  • 👤 Frank John Sparacio

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-28 12:42
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838; G06F9/384

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 305 words
High speed multi-execution unit uniprocessor system having N-execution units and a plurality of general purpose registers (GPR) each of which is accessible to each of the execution units, the improvement which comprises a control mechanism which allows "N" execution units to be concurrent­ly executing up to "N" instructions using the same general purpose registers (GPR) sequentially or different general purpose registers (GPR) concurrent­ly while at the same time preserving the logical integrity of the data within the individual general purpose registers (GPR) said improvement further comprising: at least four special purpose tab fields associated with each general purpose register (GPR), a SINK FORWARD TAG, a SINK EXECUTE TAG, and at least one SOURCE TAG/SOURCE CTR pair, each execution unit having associated therewith instruction register storage means having, in addition to fields for storing an instruction to be executed by the execution unit, at least two special purpose tag fields for storing an identi­fication (ID) TAG unique to that execution unit and at least one SINK V SOURCE TAG, and a control mechanism for loading said special purpose tag fields in said execution units and said general purpose registers (GPR) during an instruction decoding phase of the system operation including means for maintaining a record of the chronological sequence of use requests by any execution unit for a particular general purpose register (GPR) in the SINK FORWARD TAG field, means for identifying a first execution unit which must utilize the general purpose register (GPR) as a SINK, immediately preceding a second execution unit's utilization in the execution unit's SINK V SOURCE TAG field and, means operable, as the execute units perform their assigned tasks, to maintain a record of the chronological sequence of use of the general purpose register (GPR) by various execution units in the SINK EXECUTE TAG field of the general purpose register (GPR).
Claim 2
Dependent Claim 305 words
High speed multi-execution unit uniprocessor system having N-execution units and a plurality of general purpose registers (GPR) each of which is accessible to each of the execution units, the improvement which comprises a control mechanism which allows "N" execution units to be concurrent­ly executing up to "N" instructions using the same general purpose registers (GPR) sequentially or different general purpose registers (GPR) concurrent­ly while at the same time preserving the logical integrity of the data within the individual general purpose registers (GPR) said improvement further comprising: at least four special purpose tab fields associated with each general purpose register (GPR), a SINK FORWARD TAG, a SINK EXECUTE TAG, and at least one SOURCE TAG/SOURCE CTR pair, each execution unit having associated therewith instruction register storage means having, in addition to fields for storing an instruction to be executed by the execution unit, at least two special purpose tag fields for storing an identi­fication (ID) TAG unique to that execution unit and at least one SINK V SOURCE TAG, and a control mechanism for loading said special purpose tag fields in said execution units and said general purpose registers (GPR) during an instruction decoding phase of the system operation including means for maintaining a record of the chronological sequence of use requests by any execution unit for a particular general purpose register (GPR) in the SINK FORWARD TAG field, means for identifying a first execution unit which must utilize the general purpose register (GPR) as a SINK, immediately preceding a second execution unit's utilization in the execution unit's SINK V SOURCE TAG field and, means operable, as the execute units perform their assigned tasks, to maintain a record of the chronological sequence of use of the general purpose register (GPR) by various execution units in the SINK EXECUTE TAG field of the general purpose register (GPR).
Claim 3
Dependent Claim 87 words
High speed multi-execution unit uniprocessor system as set forth in claim 1 wherein said control mechanism includes means for deter­mining if a request for a general purpose register (GPR) is for immediate use by the decoder, for a future assignment of use by a particular execution unit or for immediate use by an execution unit, and wherein a request for immediate use comprises the "execution" phase of the control function and a request for a future assignment of use comprises the "assignment" phase of the control function.
Claim 4
Dependent Claim 65 words
High speed multi-execution unit uniprocessor system as set forth in claim 2 wherein said control mechanism's means for loading said special purpose tag fields in said general purpose registers (GPR) includes means for storing the identification tag of the execution unit currently being assigned a future SINK operation in the particular general purpose register (GPR) in that general purpose registers (GPR) SINK FORWARD TAG field.
Claim 5
Dependent Claim 72 words
High speed multi-execution uniprocessor system as set forth in claim 3 wherein said control mechanism for loading said special purpose tag fields in said general purpose registers (GPR) includes means for retaining the identifica­tion tag of the execution unit which last re­quested a SINK operation in the general purpose register (GPR) in the particular general purpose registers (GPR) SINK FORWARD TAG field when a request for a future SOURCE operation is received.
Claim 6
Dependent Claim 124 words
High speed multi-execution unit uniprocessor system as set forth in claim 4 wherein said control mechanism's means for loading said special purpose tag fields in said general purpose registers (GPR) includes further means operative when a request for a SOURCE operation is received for determining if the current requesting exe­cution unit is requesting the same SINK value requested by an immediately preceding SOURCE request from another execution unit and, if so, incrementing a SOURCE CTR associated with a SOURCE TAG containing that SINK value, by one and, if not, storing the current value in the SINK FORWARD TAG field of the general purpose register (GPR) in the SOURCE TAG field of the general purpose register (GPR) and incrementing its associated SOURCE CTR by one.
Claim 7
Dependent Claim 67 words
High speed multi-execution unit uniprocessor system as set forth in claim 5 wherein said control mechanism's means for loading said special purpose tag fields in said execution units includes means for loading a SINK V SOURCE TAG field in a particular execution unit with the value in the SINK FORWARD TAG field of the particular general purpose register (GPR) whose use the execution unit is currently requesting.
Claim 8
Dependent Claim 83 words
High speed multi-execution unit uniprocessor system as set forth in claim 6 wherein there are as many SINK V SOURCE TAG fields in each execution unit as there are general purpose registers (GPR) in the system and said control mechanism includes means for storing a SINK V SOURCE TAG value in as many SINK V SOURCE TAG fields of the execution unit as there are general purpose registers (GPR) whose future use is being requested for a particular operation by the execution unit.
Claim 9
Dependent Claim 74 words
High speed multi-execution unit uniprocessor system as set forth in claim 7 wherein there are a plurality of SOURCE TAG/SOURCE CTR pairs in each general purpose registers (GPR) and said control mechanism includes means for storing the current SINK FORWARD TAG in the next available SOURCE TAG field if the SINK FORWARD TAG doesn't match the last assigned SOURCE TAG field whenever the general purpose register (GPR) is assigned to a future SOURCE operation.
Claim 10
Dependent Claim 92 words
High speed multi-execution unit uniprocessor system as set forth in claim 8 wherein said control mechanism further includes means operative during the future use assignment phase of operation when the request is for future SOURCE usage to determine if there is a SOURCE TAG available in the general purpose register (GPR) controls set to "home" status and if so, granting the request and storing the current value of the SINK FWD TAG field in the SOURCE TAG field and leaving the SINK FORWARD TAG field in the general purpose register (GPR) unchanged.
Claim 11
Dependent Claim 58 words
High speed multi-execution unit uniprocessor system as set forth in claim 6 wherein said control mechanism includes means operable, during the execution phase of operation, if a general purpose register (GPR) request is for immediate use by the decoder, to allow such use only if there is no pending prior SINK or SOURCE request by an execution unit.
Claim 12
Dependent Claim 65 words
High speed multi-execution unit uniprocessor system as set forth in claim 9 wherein said control mechanism includes means operative, during the execution phase of operation, if the request is for immediate use by an execution unit, to compare a requesting execution unit's SINK V SOURCE TAG with the general purpose register's (GPR) SINK EXECUTE TAG and, if the comparison is affirmative, to allow the request.
Claim 13
Dependent Claim 94 words
High speed multi-execution unit uniprocessor system as set forth in claim 11 wherein said control mechanism further includes means operative during the execution phase of operation, when an execute unit's request is for a SOURCE operation in a general purpose register (GPR), to decrement the SOURCE CTR associated with the general purpose register's (GPR) SOURCE TAG, determining if the associated SOURCE CTR is at a predetermined value and, if so, resetting both the SOURCE TAG field and its associated SOURCE CTR to "home" status, and leaving thegeneral purpose register's (GPR) SINK EXECUTE TAG unchanged.
Claim 14
Dependent Claim 72 words
High speed multi-execution unit uniprocessor system as set forth in claim 12 wherein said control mechanism for loading said special purpose tag fields in said general purpose re­gisters (GPR) during the execution phase of the system operation further includes means operative, if the request is for a SINK operation, to replace the general purpose register's (GPR) current SINK EXECUTE TAG with the requesting execution unit's ID TAG after granting the SINK request.
Claim 15
Dependent Claim 151 words
High speed multi-execution unit uniprocessor system as set forth in claim 12 wherein said control mechanism includes means operative during the execution phase of operation, when a request for immediate SOURCE usage for a general purpose register (GPR) is received and wherein the general purpose register (GPR) has a plurality of SOURCE TAG/SOURCE CTR pairs, first determining if the SK V SRC TAG from the execute unit matches the general purpose register's (GPR) SINK EXEC TAG and, if so, determining which SOURCE TAG in the requested general purpose register's (GPR) SOURCE TAG fields matches the SINK V SOURCE TAG field from the execute unit, allowing the SOURCE request and decrementing the SOURCE CTR associated with the matching SOURCE TAG by one, and determining if that counter has been decremented to a predetermi­ned value and, if so, setting the particular SOURCE TAG and associated SOURCE CTR to "home" (no operation pending) status.
Claim 16
Dependent Claim 59 words
High speed multi-execution unit uniprocessor system as set forth in claim 14 wherein said control mechanism includes means operable during the execution phase of operation for requesting SINK V SOURCE access to all of the general purpose registers (GPR) referenced in the various SINK V SOURCE TAG field in the execute unit which are required for a particular opera­tion.
Claim 17
Dependent Claim 398 words
High speed multi-execution unit uniprocessor system having N-execution units and a plurality of general purpose registers (GPR) each of which is accessible to each of the execution units, an improved mechanism which allows "N" execution units to be concurrently executing up to "N" instructions using the same general purpose register (GPR) sequentially or different general purpose re­gisters (GPR) concurrently while at the same time preserving the logical integrity of the data within the individual general purpose register (GPR) said improvement further comprising: at least four special purpose tag fields associated with each general purpose register (GPR), a SINK FORWARD TAG, a SINK EXECUTE TAG, and at least one SOURCE TAG/SOURCE CTR pair, each execution unit having associated therewith instruction register storage means having, in addition to fields for storing an instruction to be executed by the execution unit, at least two special purpose tag fields for storing an identification (ID) TAG unique to that execution unit and at least one SINK V SOURCE tag, and a control mechanism for loading said special purpose tag fields in said execution units and said general purpose registers (GPR) during an in­struction decoding phase of the system operation including, means for determining if a request for a general purpose register (GPR) is for immediate use by the decoder, for a future assignment of use by a particular execution unit or for immediate use by an execution unit, and wherein a request for immediate use comprises the "execution" phase of the control function and a request for a future assignment of use comprises the "assignment" phase of the control function, means for maintaining a record of the chronological sequence of use requests by any execution unit for a particular general purpose register (GPR) in the SINK FORWARD TAG field, means for identifying a first execution unit which must utilize the general purpose register (GPR) as a SINK, immediately preceding a second execution unit's utilization in the second execution unit's SINK V SOURCE TAG field, means operable, as the execute units perform their assigned tasks, to maintain a record of the chrono­logical sequence of use of the general purpose register (GPR) by various execution units in the SINK EXECUTE TAG field of said general purpose register (GPR), and means for maintaining a sequence of the chrono­logical assignment and use of the general purpose register (GPR) as a SOURCE in the SOURCE TAG/SOURCE CTR pair.
Claim 18
Dependent Claim 398 words
High speed multi-execution unit uniprocessor system having N-execution units and a plurality of general purpose registers (GPR) each of which is accessible to each of the execution units, an improved mechanism which allows "N" execution units to be concurrently executing up to "N" instructions using the same general purpose register (GPR) sequentially or different general purpose re­gisters (GPR) concurrently while at the same time preserving the logical integrity of the data within the individual general purpose register (GPR) said improvement further comprising: at least four special purpose tag fields associated with each general purpose register (GPR), a SINK FORWARD TAG, a SINK EXECUTE TAG, and at least one SOURCE TAG/SOURCE CTR pair, each execution unit having associated therewith instruction register storage means having, in addition to fields for storing an instruction to be executed by the execution unit, at least two special purpose tag fields for storing an identification (ID) TAG unique to that execution unit and at least one SINK V SOURCE tag, and a control mechanism for loading said special purpose tag fields in said execution units and said general purpose registers (GPR) during an in­struction decoding phase of the system operation including, means for determining if a request for a general purpose register (GPR) is for immediate use by the decoder, for a future assignment of use by a particular execution unit or for immediate use by an execution unit, and wherein a request for immediate use comprises the "execution" phase of the control function and a request for a future assignment of use comprises the "assignment" phase of the control function, means for maintaining a record of the chronological sequence of use requests by any execution unit for a particular general purpose register (GPR) in the SINK FORWARD TAG field, means for identifying a first execution unit which must utilize the general purpose register (GPR) as a SINK, immediately preceding a second execution unit's utilization in the second execution unit's SINK V SOURCE TAG field, means operable, as the execute units perform their assigned tasks, to maintain a record of the chrono­logical sequence of use of the general purpose register (GPR) by various execution units in the SINK EXECUTE TAG field of said general purpose register (GPR), and means for maintaining a sequence of the chrono­logical assignment and use of the general purpose register (GPR) as a SOURCE in the SOURCE TAG/SOURCE CTR pair.
Claim 19
Dependent Claim 249 words
High speed multi-execution unit uniprocessor system as set forth in claim 16 wherein said control mechanism includes means operative during the assignment phase of operation comprising: means for loading said special purpose tag fields in said general purpose registers (GPR) including: means for storing the identification tag of an execution unit currently being assigned a future SINK operation in the particular general purpose register (GPR) in that general purpose register's (GPR) SINK FORWARD TAG field, means for loading a SINK V SOURCE TAG field in a particular execution unit with the value in the SINK FORWARD TAG field of the particular general purpose register (GPR) whose use the execution unit is currently requesting, means for retaining the ID tag of the execution unit which last requested a SINK operation in the general purpose register (GPR) in the particular general purpose register's (GPR) SINK FORWARD TAG field when a subsequent request for a future SOURCE operation is received, means further operative when a request for a future SOURCE operation is received for deter­mining if the current requesting execution unit is requesting the same SINK value requested by an immediately preceding SOURCE request from another execution unit and, if so, incrementing a SOURCE CTR associated with a SOURCE TAG containing that SINK value by one and, if not, storing the current value in the SINK FORWARD TAG field of the general purpose register (GPR) in an unused general purpose register SOURCE TAG field and incrementing its associated SOURCE CTR by one.
Claim 20
Dependent Claim 230 words
High speed multi-execution unit uniprocessor system as set forth in claim 16 wherein said control mechanism includes means operative during the execution phase of operation comprising: means operative, if a request of a general purpose register (GPR) request is for immediate use by the decoder, to allow such use only if there is no pending prior SINK or SOURCE request by an exe­cution unit, means operative, if the request is for immediate use by an execution unit, to compare a requesting execution unit's SINK V SOURCE TAG with the general purpose register's (GPR) SINK EXECUTE TAG and, if the comparison is affirmative, to allow the request, if for SOURCE usage or if for SINK usage and there is no SOURCE request pending means operative, if a request is for a SINK operation by an execution unit, to replace the general purpose register's (GPR) current SINK EXECUTE TAG with the requesting execution unit's ID TAG after granting the SINK request, means operative when an execute unit's request is for a SOURCE operation in a general purpose register (GPR), to decrement the SOURCE CTR associated with the general purpose register's (GPR) SOURCE TAG, determining if the associated SOURCE CTR is at a predetermined value and, if so, resetting both the SOURCE TAG field and its associated SOURCE CTR to "home" status, and leaving the general purpose register's (GPR) SINK EXECUTE TAG unchanged.
Claim 21
Dependent Claim 101 words
High speed multi-execution unit uniprocessor system as set forth in claim 6 wherein there are as many SINK V SOURCE TAG fields in each execution unit as there are general purpose registers (GPR) in the system and said control mechanism includes means for storing a SINK V SOURCE TAG value in as many SINK V SOURCE TAG fields of the execution unit as there are general purpose registers (GPR) whose future use is being requested for a particular operation by the execution unit whereby an instruction may specify the use of a plurality of general purpose registers (GPR) for an instruction.
Claim 22
Dependent Claim 287 words
High speed multi-execution unit uniprocessor system as set forth in claim 19 wherein there are a plurality of SOURCE TAG/SOURCE CTR pairs in each general purpose register (GPR) and said control mechanism includes means operative during the assignment phase of operation, when the request is for future SOURCE usage, to first determine if there is a previous assignment of that SINK FORWARD TAG in a SOURCE TAG field and, if so, incrementing the associated SOURCE CTR and if not, to determine if there is a SOURCE TAG available in the general purpose register (GPR) controls and, if so, granting the request and storing the current value of the SINK FWD TAG field in the SOURCE TAG field and leaving the SINK FORWARD TAG field in the general purpose register (GPR) unchanged, and means operative during the execution phase of operation, when a request for immediate SOURCE usage for a general purpose register (GPR) is received, for first determining if the SINK V SOURCE TAG matches the general purpose register's (GPR) SINK EXECUTE TAG and, if so, determining which SOURCE TAG in the requested general purpose register's (GPR) SOURCE TAG fields matches the SINK V SOURCE TAG field from the execution unit, allowing the SOURCE request and decrementing the SOURCE CTR associated with the matching SOURCE TAG by one, and determining if the counter has been decremented to a predetermined value and, if so, setting the particular SOURCE TAG and associated SOURCE CTR to "home" (no operation pending) status, said means being further operable for requesting SINK V SOURCE access to all of the general purpose register (GPR) referenced in the various SINK V SOURCE TAG fields in the execution unit which are required for a particular operation.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag