Patent ID: 7913062

Claim:
A method of rotating data in a plurality of processing elements connected in an array, comprising: a first shifting of a plurality of data in a first direction along one of a row or a column until each processing element in each row or column has received data originally held by every other processing elements in that row or column, respectively; a first selection of data from said received data, where each of the received data is a candidate for selection, in response to said first shifting and the positions of said plurality of processing elements; a second shifting of said plurality of data in a second direction perpendicular to said first direction along one of a row or a column until each processing element in each row or column has received data originally held by every other processing elements in that row or column, respectively; a second selection of data from said received data, where each of the received data is a candidate for selection, in response to said second shifting and the positions of said plurality of processing elements; a third shifting of said plurality of data in a third direction opposite to said first direction along one of a row or a column until each processing element in each row or column has received data originally held by every other processing elements in that row or column, respectively; and a third selection of data from said received data, where each of the received data is a candidate for selection, in response to said third shifting and the positions of said plurality of processing elements.