Patent FR834566A successfully refreshed from Google Patents.
Patent US173436A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5960211A Expired / Lapsed US ⏱️ 0.0 years remaining

Data formatting method and apparatus for a data processing array

Assignee: The AT&T MVPD Group LLC
•
Filing: 1995-12-15
•
Granted: 1999-09-28
•
Expires: 2015-12-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Data is reformatted in a memory external to the processing elements of a processing array, relieving the processing array of this task and allowing it to perform its data processing functions more efficiently. Data is transferred to or from the multi-channel memory in a wordstream format, with individual data words mapped into the proper memory channels and the proper addresses within each channel in a matrix format. The invention is applicable to two-dimensional reformatting for data transfers between an input/output port and the memory, and to one-dimensional reformatting for data transfers between the processing array and either the memory or the input/output port. Logic circuitry within each channel selects the proper data words for that channel from a wordstream, and the associated address for each selected word, according to the respective positions of the data words in the wordstream. Data words are assigned to memory channels and to addresses within those channels based upon programmable format specifiers.

Inventors

  • 👤 David A. Schwartz
  • 👤 Philip G. Rosen

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 21:17
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/80

Claims Analysis

Total Claims: 46
Claim 1
Independent Claim 151 words
A method of transmitting data between two selected elements of a data processing system whose elements comprise a single-instruction, multiple data (SIMD) processing array having a plurality of processing elements that are programmed with SIMD instructions to run a SIMD algorithm, a plurality of multi-address memory channels external to said SIMD processing array that establish a matrix of memory channels and addresses within said memory channels, and an input/output (I/O) port, comprising: programming said SIMD processing array to run a SIMD algorithm, establishing a reformatting procedure for the selected SIMD algorithm external to said SIMD processing array to reformat data between a wordstream format and a positional format in said matrix of memory channels; and transmitting said data between a selected one of said SIMD processing array and said I/O port and said memory channels while reformatting said data between said wordstream and positional formats in accordance with said reformatting procedure.
Claim 2
Independent Claim 151 words
A method of transmitting data between two selected elements of a data processing system whose elements comprise a single-instruction, multiple data (SIMD) processing array having a plurality of processing elements that are programmed with SIMD instructions to run a SIMD algorithm, a plurality of multi-address memory channels external to said SIMD processing array that establish a matrix of memory channels and addresses within said memory channels, and an input/output (I/O) port, comprising: programming said SIMD processing array to run a SIMD algorithm, establishing a reformatting procedure for the selected SIMD algorithm external to said SIMD processing array to reformat data between a wordstream format and a positional format in said matrix of memory channels; and transmitting said data between a selected one of said SIMD processing array and said I/O port and said memory channels while reformatting said data between said wordstream and positional formats in accordance with said reformatting procedure.
Claim 3
Dependent Claim 67 words
The method of claim 1, wherein said data is transmitted between said memory channels and said I/O port, and said positional format is established by: specifying a respective memory channel in said matrix for each data word in said wordstream, and specifying a respective memory address in said matrix for each data word in said wordstream in accordance with the reformatting procedure for the selected SIMD algorithm.
Claim 4
Dependent Claim 20 words
The method of claim 2, wherein said data words are read out from said memory channels to said I/O port.
Claim 5
Dependent Claim 19 words
The method of claim 2, wherein said data words are written into said memory channels from said I/O port.
Claim 6
Dependent Claim 26 words
The method of claim 2, wherein the respective memory channels for said data words are specified by the positions of said data words in said wordstream.
Claim 7
Dependent Claim 45 words
The method of claim 5, wherein the memory channel for each data word in said wordstream is programmably specified in terms of Chan -- ID, Block, Chan -- Row, Chan -- Dwell, Chan -- Start, Chan -- Upper, Chan -- Width and Chan -- Inc.
Claim 8
Dependent Claim 31 words
The method of claim 2, wherein the respective memory addresses for said data words within their respective memory channels are specified by the positions of said data words in said wordstream.
Claim 9
Dependent Claim 41 words
The method of claim 7, wherein the memory address for each data word in said wordstream is programmably specified in terms of Addr -- Start, Addr -- Upper, Addr -- Width, Addr -- Inc, Addr -- Len and Addr -- Gap.
Claim 10
Dependent Claim 68 words
The method of claim 1, wherein said processing array has a plurality of edge processing elements (PEs), said data is transmitted between said memory channels and respective edge PEs of said processing array in a positional format in said memory channels and a wordstream format at said processing array, and said positional format is established by specifying a respective memory address for each data word in said wordstream.
Claim 11
Dependent Claim 20 words
The method of claim 9, wherein said data words are read out from said memory channels to respective edge PEs.
Claim 12
Dependent Claim 19 words
The method of claim 9, wherein said data words are written into said memory channels from respective edge PEs.
Claim 13
Dependent Claim 31 words
The method of claim 9, wherein the respective memory addresses for said data words within their respective memory channels are specified by the positions of said data words in said wordstream.
Claim 14
Dependent Claim 41 words
The method of claim 12, wherein the memory address for each data word in said wordstream is programmably specified in terms of Addr -- Start, Addr -- Upper, Addr -- Width, Addr -- Inc, Addr -- Len and Addr -- Gap.
Claim 15
Dependent Claim 63 words
The method of claim 1, wherein said processing array has a plurality of edge processing elements (PEs), said data is transmitted between said I/O port and said edge PEs in a positional format at said processing array and a wordstream format at said I/O port, and said positional format is established by specifying respective edge PEs for the data words in said wordstream.
Claim 16
Dependent Claim 20 words
The method of claim 14, wherein said data words are read out from respective edge PEs to said I/O port.
Claim 17
Dependent Claim 19 words
The method of claim 14, wherein said data words are written into respective edge PEs from said I/O port.
Claim 18
Dependent Claim 26 words
The method of claim 14, wherein the respective edge PEs for said data words are specified by the positions of said data words in said wordstream.
Claim 19
Dependent Claim 45 words
The method of claim 17, wherein the edge PE for each data word in said wordstream is programmably specified in terms of Chan -- ID, Block, Chan -- Row, Chan -- Dwell, Chan -- Start, Chan -- Upper, Chan -- Width and Chan -- Inc.
Claim 20
Independent Claim 171 words
A method of communicating wordstream data with a memory for a single instruction, multiple data (SIMD) processing array that is programmable to execute different SIMD algorithms, comprising: providing a plurality of multi-address memory channels external to said data processing array to establish a matrix of memory channels and addresses within said channels, providing a plurality of reformatting circuits external to said SIMD processing array that act independently to select particular sequences of addresses in the respective memory channels, said reformatting circuits being programmable to achieve a cooperative reformatting in accordance with a particular SIMD algorithm, selecting a SIMD algorithm to be run by the SIMD processing array, and executing a SIMD instruction so that said reformatting circuits' cooperative reformatting corresponds to the selected SIMD algorithm, said reformatting circuits: specifying a respective memory channel for each data word in a wordstream, specifying a respective memory address within its respective memory channel for each data word in said wordstream, and communicating data words between said wordstream and their respective memory channels and addresses.
Claim 21
Independent Claim 171 words
A method of communicating wordstream data with a memory for a single instruction, multiple data (SIMD) processing array that is programmable to execute different SIMD algorithms, comprising: providing a plurality of multi-address memory channels external to said data processing array to establish a matrix of memory channels and addresses within said channels, providing a plurality of reformatting circuits external to said SIMD processing array that act independently to select particular sequences of addresses in the respective memory channels, said reformatting circuits being programmable to achieve a cooperative reformatting in accordance with a particular SIMD algorithm, selecting a SIMD algorithm to be run by the SIMD processing array, and executing a SIMD instruction so that said reformatting circuits' cooperative reformatting corresponds to the selected SIMD algorithm, said reformatting circuits: specifying a respective memory channel for each data word in a wordstream, specifying a respective memory address within its respective memory channel for each data word in said wordstream, and communicating data words between said wordstream and their respective memory channels and addresses.
Claim 22
Dependent Claim 22 words
The method of claim 19, wherein said data words are communicated by writing them from an input wordstream into said memory channels.
Claim 23
Dependent Claim 22 words
The method of claim 19, wherein said data words are communicated by reading them from said memory channels to an output wordstream.
Claim 24
Dependent Claim 34 words
The method of claim 19, wherein said processing array has a plurality of edge processing elements (PEs), further comprising the step of communicating said data words between said memory channels and respective edge PEs.
Claim 25
Dependent Claim 15 words
The method of claim 19, wherein said data words are communicated in a wordstream sequence.
Claim 26
Dependent Claim 29 words
The method of claim 23, wherein the respective memory channels with which said data words are communicated are specified by the positions of said data words in said wordstream.
Claim 27
Dependent Claim 45 words
The method of claim 24, wherein the memory channel for each data word in said wordstream is programmably specified in terms of Chan -- ID, Block, Chan -- Row, Chan -- Dwell, Chan -- Start, Chan -- Upper, Chan -- Width and Chan -- Inc.
Claim 28
Dependent Claim 33 words
The method of claim 23, wherein the respective memory addresses within the memory channels with which said data words are communicated are specified by the positions of said data words in said wordstream.
Claim 29
Dependent Claim 41 words
The method of claim 26, wherein the memory address for each data word in said wordstream is programmably specified in terms of Addr -- Start, Addr -- Upper, Addr -- Width, Addr -- Inc, Addr -- Len and Addr -- Gap.
Claim 30
Independent Claim 221 words
A method of supplying data to a single instruction, multiple data (SIMD) processing array which has a plurality of edge processing elements (PEs), comprising: executing a SIMD instruction that configures a plurality of reformatting circuits to achieve a cooperative reformatting in accordance with a desired SIMD algorithm to be run by said SIMD processing array, loading wordstream data words into multiple memory channels that are external to, and have a one-to-one correspondence with, respective sets of edge PEs, in a positional format in accordance with said cooperative reformatting, reformatting said data words from said memory channels into a wordstream with a wordstream format, loading said data words from said wordstream into said SIMD processing array, running said algorithm with said SIMD processing array upon said loaded data words, subsequently executing a different SIMD instruction to reconfigure said reformatting circuits to achieve a cooperative reformatting in accordance with a different SIMD algorithm, loading a different set of wordstream data words into said memory channels in a different positional format in accordance with said cooperative reformatting, reformatting said different set of data words from said memory channels into a wordstream with a different wordstream format, loading said data words from said wordstream into said SIMD processing array, and running different SIMD algorithm with said SIMD processing array upon said different loaded data words.
Claim 31
Independent Claim 221 words
A method of supplying data to a single instruction, multiple data (SIMD) processing array which has a plurality of edge processing elements (PEs), comprising: executing a SIMD instruction that configures a plurality of reformatting circuits to achieve a cooperative reformatting in accordance with a desired SIMD algorithm to be run by said SIMD processing array, loading wordstream data words into multiple memory channels that are external to, and have a one-to-one correspondence with, respective sets of edge PEs, in a positional format in accordance with said cooperative reformatting, reformatting said data words from said memory channels into a wordstream with a wordstream format, loading said data words from said wordstream into said SIMD processing array, running said algorithm with said SIMD processing array upon said loaded data words, subsequently executing a different SIMD instruction to reconfigure said reformatting circuits to achieve a cooperative reformatting in accordance with a different SIMD algorithm, loading a different set of wordstream data words into said memory channels in a different positional format in accordance with said cooperative reformatting, reformatting said different set of data words from said memory channels into a wordstream with a different wordstream format, loading said data words from said wordstream into said SIMD processing array, and running different SIMD algorithm with said SIMD processing array upon said different loaded data words.
Claim 32
Dependent Claim 28 words
The method of claim 28, wherein for each of said memory channels the data words loaded into said memory channel are specified independent of the other memory channels.
Claim 33
Dependent Claim 29 words
The method of claim 28, wherein the respective memory channels into which said data words are loaded are specified by the positions of said data words in said wordstream.
Claim 34
Dependent Claim 45 words
The method of claim 30, wherein the memory channel for each data word in said wordstream is programmably specified in terms of Chan -- ID, Block, Chan -- Row, Chan -- Dwell, Chan -- Start, Chan -- Upper, Chan -- Width and Chan -- Inc.
Claim 35
Dependent Claim 35 words
The method of claim 28, wherein for each of said memory channels the respective addresses into which the channel's data words are loaded are specified by the positions of said data words in said wordstream.
Claim 36
Dependent Claim 41 words
The method of claim 32, wherein the memory address for each data word in said wordstream is programmably specified in terms of Addr -- Start, Addr -- Upper, Addr -- Width, Addr -- Inc, Addr -- Len and Addr -- Gap.
Claim 37
Dependent Claim 162 words
A data processing system, comprising: a single instruction, multiple data (SIMD) processing array that has a plurality of edge processing elements (PEs) and is capable of being programmed to run different SIMD algorithms, respective multi-address memory channels corresponding to respective sets of said edge PEs but external to said data processing array, and establishing a matrix of memory channels and addresses within said memory channels, a communications line for communicating wordstream data with said memory channels, and a data formatter external to said SIMD processing array that assigns respective memory positions in said matrix to different data words for a data wordstream on said communications line, with the correlation between said data words and the memory position to which they are assigned depending upon the nature of the particular SIMD algorithm to be run by said SIMD processing array, said data formatter being reprogrammable to alter the formatting procedure when a different algorithm is to be run on said SIMD processing array.
Claim 38
Dependent Claim 162 words
A data processing system, comprising: a single instruction, multiple data (SIMD) processing array that has a plurality of edge processing elements (PEs) and is capable of being programmed to run different SIMD algorithms, respective multi-address memory channels corresponding to respective sets of said edge PEs but external to said data processing array, and establishing a matrix of memory channels and addresses within said memory channels, a communications line for communicating wordstream data with said memory channels, and a data formatter external to said SIMD processing array that assigns respective memory positions in said matrix to different data words for a data wordstream on said communications line, with the correlation between said data words and the memory position to which they are assigned depending upon the nature of the particular SIMD algorithm to be run by said SIMD processing array, said data formatter being reprogrammable to alter the formatting procedure when a different algorithm is to be run on said SIMD processing array.
Claim 39
Dependent Claim 23 words
The data processing system of claim 34, wherein said communications line comprises an input line for writing wordstream data into said memory channels.
Claim 40
Dependent Claim 24 words
The data processing system of claim 34, wherein said communications line comprises an output line for reading wordstream data out from said memory channels.
Claim 41
Dependent Claim 29 words
The data processing system of claim 34, wherein said communications line comprises an input/output line for writing wordstream data into or reading wordstream data out of said memory channels.
Claim 42
Dependent Claim 27 words
The data processing system of claim 34, wherein said data formatter assigns said memory positions according to the respective positions of said data words in said wordstream.
Claim 43
Dependent Claim 54 words
The data processing system of claim 38, wherein said data formatter assigns said data words to respective memory channels based upon the programmable format specifiers Chan -- ID, Block, Chan -- Row, Chan -- Dwell, Chan -- Start, Chan -- Lower, Chan -- Upper, Chan -- Width, Chan -- Inc, and Chan -- Chan.
Claim 44
Dependent Claim 36 words
The data processing system of claim 39, said data formatter including respective registers for storing said specifiers, and logic circuitry for applying specifiers stored in said registers to a wordstream to determine said memory channel assignments.
Claim 45
Dependent Claim 54 words
The data processing system of claim 38, wherein said data processor assigns said data bits to respective addresses within their respective memory channels based upon the programmable format specifiers Addr -- Start, Addr -- Lower, Addr -- Upper, Addr -- Width, Addr -- Inc, Addr -- Addr, Addr -- Len and Addr -- Gap.
Claim 46
Dependent Claim 36 words
The data processing system of claim 41, said data formatter including respective registers for storing said specifiers, and logic circuitry for applying specifiers stored in said registers to a wordstream to determine said memory address assignments.

References Cited (Backward Citations)

US4546429A Cited
US5561784A Cited
US5388214A Cited
US5521915A Cited
US5590356A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-09-27 2003-03-29 2003-09-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-09-27 2007-03-29 2007-09-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-09-27 2011-03-29 2011-09-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag