IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0689380
(2003-10-20)
|
등록번호 |
US-7581080
(2009-09-08)
|
우선권정보 |
GB-0309198.0(2003-04-23) |
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
4 인용 특허 :
37 |
초록
▼
The present invention is capable of placing or loading input data into a 2D or 3D array of processing elements interconnected in a variety of ways, and moving the data around by using a combination of shifts, e.g. north, south, east, west, which can be combined in any desired manner. The exact type
The present invention is capable of placing or loading input data into a 2D or 3D array of processing elements interconnected in a variety of ways, and moving the data around by using a combination of shifts, e.g. north, south, east, west, which can be combined in any desired manner. The exact type and combination of shifts depends upon the particular data manipulation desired. As the sifting proceeds, each processing element is presented with a plurality of different array values. Each processing element can conditionally load any of the values it sees into the output result. The timing of the loading is achieved by monitoring a local counter. In a preferred embodiment, when the value in the local counter is non-positive, the current array value is selected as the final output for the output result. In general, each local counter is initialized to a different positive value and, at certain points in the shifting process, the counter is decremented. The initial value of the counter depends upon its location, and is given by the general function f(x_Index, y_Index, z_Index), with the exact form of f( ) depending upon the particular data manipulation desired.
대표청구항
▼
What is claimed is: 1. A method of controlling a plurality of processing elements, comprising: issuing a command to a plurality of processing elements arranged in an array; maintaining a count in each of a plurality of processing elements, each count being responsive to a processing element's locat
What is claimed is: 1. A method of controlling a plurality of processing elements, comprising: issuing a command to a plurality of processing elements arranged in an array; maintaining a count in each of a plurality of processing elements, each count being responsive to a processing element's location in said array; receiving data in each of said plurality of processing elements from processing elements connected thereto in response to the execution of said command; selecting from among the received data, where each of the received data is a candidate for selection, one of the received data for output in response to that processing element's count; and saving said selected data. 2. The method of claim 1 wherein said maintaining a count includes setting a counter to a first known value and altering the count at programmable intervals by a programmable amount, said storing occurring when a current count equals a target value. 3. The method of claim 1 wherein said maintaining a count includes setting a counter to an initial value, and counting down from said initial value, said storing occurring when a current count is non-positive. 4. The method of claim 1 wherein said maintaining a count includes setting a counter to a first known value, and counting up from said first known value, said storing occurring when a current count equals a target count. 5. Method of controlling the data selected as output data by a plurality of processing elements, comprising: issuing an instruction set to said plurality of processing elements, said instruction set being performed through a series of data shifts; each processing element: receiving data from processing elements connected thereto as a result of said data shifts; maintaining a count responsive to said data shifts; selecting from among the received data, where each of the received data is a candidate for selection, one of said received data based on said count; and saving said selected data. 6. The method of claim 5 wherein said instruction set includes one of an edge shift, planer shift, wrap shift and vector shift or a combination thereof. 7. The method of claim 5 wherein said data shifts include shifting data in one of a north, south, east and west, plus z and minus z directions. 8. A method of controlling the position of data in a plurality of processing elements, comprising: shifting data within the plurality of processing elements along one of a row, column or diagonal in response to a command issued to said plurality of processing elements; each active processing element receiving data from processing elements connected thereto as a result of said data shifting; each active processing element selecting from among the received data, where each of the received data is a candidate for selection, one of the received data as a final output in response to that processing element's location within the plurality of processing elements; and saving said selected data. 9. The method of claim 8 additionally comprising one of loading an initial count into at least certain of said plurality of processing elements and calculating an initial count locally based on the processing element's location in the plurality and the function being performed on the data. 10. The method of claim 9 additionally comprising maintaining a current count in at least certain of said plurality of processing elements, said current count being responsive to said initial count and the number of data shifts performed, said selecting being responsive to said current count. 11. The method of claim 10 wherein said initial count is modified by a programmable amount at programmable intervals to produce said current count. 12. The method of claim 11 wherein said modification includes one of incrementing and decrementing said initial count. 13. The method of claim 12 wherein said selecting occurs when said current count is being decremented and becomes non-positive. 14. The method of claim 12 wherein said selecting occurs when said current count equals a target value. 15. The method of claim 8 wherein said shifting includes shifting data north to south, south to north, east to west, west to east, northeast to southwest, southwest to northeast, northwest to southeast and southeast to northwest. 16. A method for controlling the position of data in a matrix of processing elements, comprising: shifting data within the matrix of processing elements in response to a command; each active processing element receiving data from processing elements connected thereto as a result of said data shifting; maintaining a current count in each active processing element responsive to the number of data shifts; each active processing element selecting from among the data that processing element has received, where each of the received data is a candidate for selection, output data as a function of that element's current count; and saving said selected data. 17. The method of claim 16 wherein said current count is incremented in response to said data shifts and said selecting occurs when a target value is reached. 18. The method of claim 16 wherein said current count is decremented from an initial count and said selecting occurs when said current count reaches a non-positive value. 19. The method of claim 16 wherein said shifting includes the north to south and south to north shifting of columns, the east to west and west to east shifting of rows, and the northeast to southwest, southwest to northeast, northwest to southeast and southeast to northwest shifting of diagonals. 20. A method, comprising: shifting data within a plurality of processing elements in response to a command; receiving data within each processing element from processing elements connected thereto as a result of said data shifting; each active processing element selecting from among the data that processing element has received, where each of the received data is a candidate for selection, data as a final output in accordance with the formula f(x_Index, y_Index, z_Index) where f is dependent upon the desired output; and saving said selected data. 21. The method of claim 20 additionally comprising one of loading an initial count into each processing element and calculating an initial count locally based on the processing element's location and the function f. 22. The method of claim 21 additionally comprising maintaining a current count in each processing element, said current count being responsive to said initial count and the number of data shifts performed, said selecting being responsive to said current count. 23. A method, comprising: shifting data within a plurality of processing elements in response to a command; receiving data within each processing element from processing elements connected thereto as a result of said data shifting; each active processing element selecting from among the data that processing element has received, where each of the received data is a candidate for selection, data as a final output in accordance with the formula f(d(0), d(1), d(2) . . . d(n-1)) where f is dependent upon the desired output; and saving said selected data. 24. The method of claim 23 additionally comprising one of loading an initial count into each processing element and calculating an initial count locally based on the processing element's location and the function f. 25. The method of claim 24 additionally comprising maintaining a current count in each processing element, said current count being responsive to said initial count and the number of data shifts performed, said selecting being responsive to said current count. 26. A computer readable storage medium carrying a set of instructions which, when executed, perform a method comprising: receiving a command issued to a plurality of processing elements; maintaining a count in a processing element, said count being responsive to said processing element's location; receiving data from processing elements connected to said processing element in response to the execution of said command; selecting from among the received data, where each of the received data is a candidate for selection, data for output in response to said processing element's count; and saving said selected data.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.