IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0689366
(2003-10-20)
|
등록번호 |
US-7676648
(2010-04-21)
|
우선권정보 |
GB-0309195.6(2003-04-23) |
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
37 |
초록
▼
A method for generating a reflection of data in a plurality of processing elements comprises shifting the data along, for example, each row in the array until each processing element in the row has received all the data held by every other processing element in that row. Each processing element stor
A method for generating a reflection of data in a plurality of processing elements comprises shifting the data along, for example, each row in the array until each processing element in the row has received all the data held by every other processing element in that row. Each processing element stores and outputs final data as a function of its position in the row. A similar reflection along a horizontal line can be achieved by shifting data along columns instead of rows. Also disclosed is a method for reflecting data in a matrix of processing elements about a vertical line comprising shifting data between processing elements arranged in rows. An initial count is set in each processing element according to the expression (2×Col_Index) MOD (array size). In one embodiment, a counter counts down from the initial count in each processing element as a function of the number of shifts that have peen performed. Output is selected as a function of the current count. A similar reflection about a horizontal line can be achieved by shifting data between processing elements arranged in columns and setting the initial count according to the expression (2×Row_Index) MOD (array size). The present invention represents an efficient method for obtaining the reflection of data.
대표청구항
▼
What is claimed is: 1. A method for generating a reflection of data in a plurality of processing elements, comprising: shifting the data along either the rows or columns of the plurality of processing elements arranged in an N×N array, where N is greater than three until each processing elemen
What is claimed is: 1. A method for generating a reflection of data in a plurality of processing elements, comprising: shifting the data along either the rows or columns of the plurality of processing elements arranged in an N×N array, where N is greater than three until each processing element in each row or column has received the data originally held by every other processing element in that row or column, respectively; and selecting from said received data, where each of the received data is a candidate for selection, a final output based on a processing element's position. 2. The method of claim 1 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, said selecting being responsive to said initial count. 3. The method of claim 2 wherein said plurality of processing elements is arranged in an array and said initial count is given by the expression (2×Col_Index) MOD (array size), where array size equals N. 4. The method of claim 2 wherein said plurality of processing elements is arranged in an array and said initial count is given by the expression (2×Row_Index) MOD (array size), where array size equals N. 5. The method of claim 2 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. 6. The method of claim 5 wherein said maintaining a current count includes altering said initial count at programmable intervals by a programmable amount. 7. The method of claim 5 wherein said initial count is decremented in response to said shifting of data to produce said current count. 8. The method of claim 6 wherein said selecting occurs when said current count is non-positive. 9. The method of claim 1 additionally comprising maintaining a local count including setting a counter to a first known value, and counting up from said first known value based on the number of shifts that have been performed, said selecting occurring when a current count equals a target count. 10. The method of claim 1 wherein said shifting includes a wrap shift. 11. The method of claim 10 wherein said wrap shift includes shifting data west to east and east to west along rows, or includes shifting data north to south and south to north along columns. 12. A method for generating a reflection of data in an array of processing elements, comprising: shifting originally held data along either the rows or columns in the array a number of times equal to N−1 where N equals the number of processing elements in the rows and columns, respectively, and N is greater than three, such that each processing element in each row or column receives the data originally held by every other processing element in that row or column, respectively; and outputting data from each processing element as a function of that element's position in one of the row and column, where each of the received data is a candidate for outputting. 13. The method of claim 12 additionally comprising one of loading an initial count into each processing element and calculating an initial count locally based on the processing element's position in one of the row and column, said outputting being responsive to said initial count. 14. The method of claim 13 wherein said initial count is given by the expression (2×Col_Index) MOD (array size), where array size equals N. 15. The method of claim 13 wherein said initial count is given by the expression (2×Row_Index) MOD (array size), where array size equals N. 16. The method of claim 13 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 outputting being responsive to said current count. 17. The method of claim 16 wherein said maintaining a current count includes altering said initial count at programmable intervals by a programmable amount. 18. The method of claim 16 wherein said initial count is decremented in response to said shifting of data to produce said current count. 19. The method of claim 18 wherein said outputting occurs when said current count is non-positive. 20. The method of claim 12 additionally comprising maintaining a local count including setting a counter to a first known value, and counting up from said first known value based on the number of shifts that have been performed, said outputting occurring when a current count equals a target count. 21. The method of claim 12 wherein said shifting includes a wrap shift. 22. The method of claim 21 wherein said wrap shift includes shifting data west to east and east to west along rows, or includes shifting data north to south and south to north along columns. 23. The method of claim 2 wherein said initial count is set in each processing element according to one of the expressions (2×Col_Index) MOD (array size) or (2×Row_Index) MOD (array size); where array size equals N; said method additionally comprising modifying said initial count by a programmable amount at programmable intervals to produce a current count; and wherein said selecting is responsive to said current count. 24. The method of claim 23 wherein said modifying includes counting down from said current count. 25. The method of claim 24 wherein said selecting occurs when said current count is a non-positive value. 26. The method of claim 23 wherein said shifting includes a wrap shift. 27. The method of claim 26 wherein said wrap shift includes shifting data one of east to west, west to east, north to south and south to north. 28. A memory device carrying a set of instructions which, when executed, perform a method comprising: shifting data along either rows or columns of a plurality of processing elements arranged in an N×N array, where N is greater than three until each processing element in each row or column has received all the data originally held by every other processing element in that row or column, respectively; and selecting from said received data, where each of the received data is a candidate for selection, a final output based on a processing element's position. 29. A memory device carrying a set of instructions which, when executed, perform a method comprising: shifting originally held data along either rows or columns in an array a number of times equal to N−1 where N equals the number of processing elements in the rows and columns, respectively, and N is greater than three, such that each processing element in each row or column receives the data originally held by every other processing element in that row or column, respectively; and outputting data from each processing element as a function of that element's position in one of the row and column, where each of the received data is a candidate for outputting.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.