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

Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations

Assignee: WILLIAM A WULF 6052 GRAFTON STREET PITTSBURGH PENNSYLVANIA 15206
•
Filing: 1987-06-01
•
Granted: 1989-04-04
•
Expires: 2007-06-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A pair of arithmetic logic units for receiving instruction to perform data transformations are positioned in tandem relation between an input bus and an output bus which are both connected to a register file. Data paths connect the register file to the input and output buses for transferring data from the register file to the arithmetic logic units. One arithmetic logic unit has a pair of input ports connected to the input bus and an output port connected to the input of the second arithmetic logic unit. The second arithmetic logic unit has a second input port connected to the input bus and an output port connected to the output bus. The tandem arrangement of arithmetic logic units are pipelined to operate concurrently to provide twice the data transformation capability of a single arithmetic logic unit in a data processor. With this arrangement streams of data are concurrently transformed by the tandem arrangement of arithmetic logic units to perform vector operations. With this arrangement control flow calculations are concurrently executed separately thus allowing the arithmetic logic units to compute data transformations at every moment. As a result procedure call parameters do not consume the general-purpose register since they are stored in a data value queue not saved or stored across procedure boundaries.

Inventors

  • 👤 William A. Wulf
  • 👤 Charles Y. Hitchcock, III

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 08:26
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/57; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30007; G06F9/3001; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3867; G06F9/3875; G06F9/3885; G06F9/3893; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484; G06F9/4486; G06F2207/00; G06F2207/38; G06F2207/3804; G06F2207/386; G06F2207/3884

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 184 words
Apparatus for processing data comprising, a register file for storage of data, an input bus and an output bus, data paths connecting said register file to said input and output buses for transferring data to and from said register file, a first arithmetic logic unit having a pair of input ports connected to said input bus for receiving instruction to perform a data transformation and an output port, a second arithmetic logic unit having a pair of input ports for receiving instruction to perform a data transformation and an output port connected to said output bus, said second arithmetic logic unit input port being connected to said first arithmetic logic unit output port and said input bus respectively, and said second arithmetic logic unit performing a data transformation in response to input from said first arithmetic logic unit while said first arithmetic logic unit is performing simultaneously a subsequent data transformation in response to said input from said register file with a result being temporarily stored prior to transfer as input to said second arithmetic logic unit for data transformation in a subsequent cycle.
Claim 2
Dependent Claim 184 words
Apparatus for processing data comprising, a register file for storage of data, an input bus and an output bus, data paths connecting said register file to said input and output buses for transferring data to and from said register file, a first arithmetic logic unit having a pair of input ports connected to said input bus for receiving instruction to perform a data transformation and an output port, a second arithmetic logic unit having a pair of input ports for receiving instruction to perform a data transformation and an output port connected to said output bus, said second arithmetic logic unit input port being connected to said first arithmetic logic unit output port and said input bus respectively, and said second arithmetic logic unit performing a data transformation in response to input from said first arithmetic logic unit while said first arithmetic logic unit is performing simultaneously a subsequent data transformation in response to said input from said register file with a result being temporarily stored prior to transfer as input to said second arithmetic logic unit for data transformation in a subsequent cycle.
Claim 3
Dependent Claim 30 words
Apparatus as set forth in claim I which includes, an instruction fetch unit, a control path for connecting said instruction fetch unit to said register file for transferring instructions thereto.
Claim 4
Dependent Claim 29 words
Apparatus as set forth in claim 2 which includes, a plurality of control paths for connecting said instruction fetch unit to said first and second arithmetic logic units respectively.
Claim 5
Dependent Claim 70 words
Apparatus as set forth in claim 1 which includes, means for connecting said first arithmetic unit to said second arithmetic unit in tandem relation to perform the instruction S0:=(S1 op1 S2) op2 S3 where S1, S2 and S3 specify values maintained in said register file, op1 and op2 specify data transformations, and S0 specifies the register in said register file to which the result of said data transformations is returned.
Claim 6
Dependent Claim 24 words
Apparatus as set forth in claim 1 wherein, said first and second arithmetic units perform data transformations in cycles of fixed units of time.
Claim 7
Dependent Claim 133 words
Apparatus for transferring a stream of data elements to and from a computer memory comprising, a data processing unit for performing data transformations, a plurality of stream units connected to the computer memory and said data processing unit for transferring a stream of data elements spaced a constant distance apart and originating from a starting address in the computer memory between the computer memory and said data processing unit, a first set of stream units transferring data elements as output to the computer memory, a second set of said stream units receiving data elements as input from the computer memory, and said first and second set of stream units supplying and storing said spaced apart data elements to and from said data processing unit in response to commands from said data processing unit.
Claim 8
Dependent Claim 133 words
Apparatus for transferring a stream of data elements to and from a computer memory comprising, a data processing unit for performing data transformations, a plurality of stream units connected to the computer memory and said data processing unit for transferring a stream of data elements spaced a constant distance apart and originating from a starting address in the computer memory between the computer memory and said data processing unit, a first set of stream units transferring data elements as output to the computer memory, a second set of said stream units receiving data elements as input from the computer memory, and said first and second set of stream units supplying and storing said spaced apart data elements to and from said data processing unit in response to commands from said data processing unit.
Claim 9
Dependent Claim 51 words
Apparatus as set forth in claim 6 in which, said data processing unit includes a register file, a data path for connecting said first set of stream units to the computer memory, and said first set of stream units transferring streams of data from the computer memory to said register file.
Claim 10
Dependent Claim 50 words
Apparatus as set forth in claim 6 in which, said data processing unit includes a register file, a data path for connecting said second set of stream units to the computer memory, and said second set of stream units transferring streams of data from said register to the computer memory.
Claim 11
Dependent Claim 53 words
Apparatus as set forth in claim 6 which includes, said starting address located in said data processing unit for initially transmitting streams of said data elements to said first and second sets of streams units where said streams of data are transferred in strides, and said strides being spaced a constant distance apart.
Claim 12
Dependent Claim 32 words
Aparatus as set forth in claim 9 which includes, data transformations being performed in contiguous memory as an array where each data element is spaced at a specific one of said strides.
Claim 13
Independent Claim 110 words
A method for fetching instructions from computer memory for execution of data transformations by a data processor comprising the steps of, pre-fetching instructions from the computer memory before the instructions are needed for performing data transformation by the data processor, storing pre-fetched instructions corresponding to conditional control flow instructions, concurrently performing data transformations while the pre-fetched instructions are stored, generating conditional control data by the data transformations and storing said data in a conditional queue, fetching the stored conditional control data by an instruction fetch unit for execution of conditional control instructions, and therefore substituting non-conditional control flow instructions for execution by the data processor at any cycle of operation.
Claim 14
Independent Claim 110 words
A method for fetching instructions from computer memory for execution of data transformations by a data processor comprising the steps of, pre-fetching instructions from the computer memory before the instructions are needed for performing data transformation by the data processor, storing pre-fetched instructions corresponding to conditional control flow instructions, concurrently performing data transformations while the pre-fetched instructions are stored, generating conditional control data by the data transformations and storing said data in a conditional queue, fetching the stored conditional control data by an instruction fetch unit for execution of conditional control instructions, and therefore substituting non-conditional control flow instructions for execution by the data processor at any cycle of operation.
Claim 15
Dependent Claim 28 words
A method as set forth in claim 11 which includes, concurrently performing data transformations in an execution unit while executing conditional control instructions by the instruction fetch unit.
Claim 16
Dependent Claim 25 words
A method as set forth in claim 11 which includes, the instruction fetch unit receiving conditional control instructions concurrently with the execution of other instructions.
Claim 17
Dependent Claim 23 words
A method as set forth in claim 11 which includes, allowing the instruction fetch unit to operate only on non-conditional control flow instructions.
Claim 18
Dependent Claim 28 words
A method as set forth in claim 11 which includes, identifying control flow instructions prior to execution and calculating the address of the next instruction to be executed.
Claim 19
Independent Claim 102 words
A method for storing procedure call parameter values in a value queue comprising the steps of, connecting an execution unit to a value queue to receive and transfer procedure call parameters from and to the value queue respectively, receiving the procedure call parameter values from the execution unit in a register file, thereafter maintaining the procedure call parameter values stored in a preselected order as they are received in the register file as the values are transferred to the execution unit for data transformation, and providing stored procedure call parameter values in the order stored when requested by instruction for data transformation.
Claim 20
Independent Claim 102 words
A method for storing procedure call parameter values in a value queue comprising the steps of, connecting an execution unit to a value queue to receive and transfer procedure call parameters from and to the value queue respectively, receiving the procedure call parameter values from the execution unit in a register file, thereafter maintaining the procedure call parameter values stored in a preselected order as they are received in the register file as the values are transferred to the execution unit for data transformation, and providing stored procedure call parameter values in the order stored when requested by instruction for data transformation.
Claim 21
Dependent Claim 22 words
A method as set forth in claim 16 which includes, connecting the execution unit by a data path to the value queue.
Claim 22
Dependent Claim 29 words
A method as set forth in claim 16 which includes, storing procedure call parameters to reserve use of the register file for data transformations and eliminate memory access operations.
Claim 23
Dependent Claim 19 words
A method as set forth in claim 16 which includes, making reference to the value queue by programmed instructions.
Claim 24
Dependent Claim 27 words
A method as set forth in claim 16 which includes, making reference to the value queue by a register name aliased to refer to the value queue.

References Cited (Backward Citations)

US4297743A Cited
US4415969A Cited
US4719570A Cited
US4439827A Cited
US4574348A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1992-04-03 1992-10-03 1993-04-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1996-04-03 1996-10-03 1997-04-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2000-04-03 2000-10-03 2001-04-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag