KR20110117582A - System and device for succesive matrix transposes - Google Patents

System and device for succesive matrix transposes Download PDF

Info

Publication number
KR20110117582A
KR20110117582A KR1020100063690A KR20100063690A KR20110117582A KR 20110117582 A KR20110117582 A KR 20110117582A KR 1020100063690 A KR1020100063690 A KR 1020100063690A KR 20100063690 A KR20100063690 A KR 20100063690A KR 20110117582 A KR20110117582 A KR 20110117582A
Authority
KR
South Korea
Prior art keywords
data
virtual
dimensional
rows
read
Prior art date
Application number
KR1020100063690A
Other languages
Korean (ko)
Inventor
야게인 쉬리드하 하리쉬
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US13/085,975 priority Critical patent/US20110264723A1/en
Publication of KR20110117582A publication Critical patent/KR20110117582A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 매트릭스를 연속적으로 트랜스포즈하기 위한 시스템 및 장치에 관한 것이다. 본 발명은 X 행들과 Y 열들을 구비한 2차원 구조로 정렬된 복수의 데이터 저장부를 포함한다. 본 발명은 또한 적어도 하나의 가상 행에 데이터를 기록하기 위한 복수의 데이터 저장부의 입력에 연결된 기록 제어부를 포함한다. 또한 본 발명은 적어도 하나의 가상 열로부터 데이터를 판독하기 위해 상기 복수의 데이터 저장부의 출력에 연결된 판독 제어부를 포함하고, 상기 적어도 하나의 가상 행에 기록된 데이터 및 상기 적어도 하나의 가상 열로부터 판독된 데이터는 각 동작 사이클 동안 실질적으로 동시에 수행되어 상기 2차원 구조는 연속적인 트랜스포즈들 사이의 제로 사이클 딜레이에서 연속적으로 트랜스포즈 된다.The present invention relates to a system and apparatus for continuously transposing a matrix. The present invention includes a plurality of data storage units arranged in a two-dimensional structure with X rows and Y columns. The invention also includes a recording control connected to the input of the plurality of data storages for recording data in the at least one virtual row. The invention also includes a read control coupled to the output of the plurality of data storages for reading data from at least one virtual column, the data being written into the at least one virtual row and read from the at least one virtual column. Data is performed substantially simultaneously during each operating cycle such that the two-dimensional structure is continuously transposed in zero cycle delays between successive transposes.

Description

연속적인 매트릭스 트랜스포즈 시스템 및 장치{SYSTEM AND DEVICE FOR SUCCESIVE MATRIX TRANSPOSES}Continuous Matrix Transpose Systems and Devices {SYSTEM AND DEVICE FOR SUCCESIVE MATRIX TRANSPOSES}

본 발명은 매트릭스 트랜스포즈(Matrix Transpose)분야에 관한 것으로, 특히 매트릭스를 연속적으로 트랜스포즈 하기 위한 시스템 및 장치에 관한 것이다. TECHNICAL FIELD The present invention relates to the field of Matrix Transpose, and more particularly, to a system and apparatus for continuously transposing a matrix.

수 배열 시스템에 대한 연구는 다양한 매트릭스 연산에 대한 발전을 가져왔다. 이러한 매트릭스 연산 중 하나는 MT 로 표현되는 트랜스포즈이다. 여기서M은 매트릭스, T는 트랜스포즈 연산을 의미한다. 매트릭스 트랜스포즈는 선형대수에서 자주 사용되는 변경연산이고, 특히 복잡한 미분방정식의 해를 구하는데 유용하다.Research on numerical array systems has led to advances in various matrix operations. One such matrix operation is the transpose, represented by M T. Where M is the matrix and T is the transpose operation. Matrix transposes are frequently used alterations in linear algebra and are particularly useful for solving complex differential equations.

현재, 매트릭스를 트랜스포즈하기 위한 방법에는 다양한 구조가 알려져 있다. 그 중 하나가 메모리 기반 구조이다. 이 구조에서, 전체 N x N 매트릭스는 행에서 행방향으로 순차적인 어드레스를 제공함으로써 메모리에 기록된다. 또한, 전체 N x N 매트릭스는 메모리로부터 열에서 열방향으로 판독된다. 이것은 적절한 어드레싱에 의한 판독을 수행하여, 원하는 칼럼 엘리먼트(column element)를 한번에 판독할 수 있게 한다. Currently, various structures are known for methods for transposing the matrix. One of them is memory infrastructure. In this structure, the entire N x N matrix is written to memory by providing sequential addresses from row to row. In addition, the entire N x N matrix is read in columns in the column direction from the memory. This allows reading by appropriate addressing, allowing the desired column element to be read at once.

한편, 상기 N x N 매트릭스는 데이터 폭의 허용치 내에서 일 시점의 전체 열을 읽는 것에 의해 판독될 수 있다. 그러나, N x N 매트릭스의 기록 및 판독을 위한 소프트웨어적 부담은 높다. 이것은 메모리 기반 구조가 각 행과 열의 데이터를 엑세스하기 위해서 적절한 어드레스를 발생할 필요가 있다는 것에 기인한다. 나아가, 상기 구조에서, N x N 매트릭스의 기록과 판독에 이용되는 메모리가 공유메모리인 경우, 전체 메모리 기반 구조의 효율에 영향을 미친다.On the other hand, the N × N matrix can be read by reading the entire column at a point in time within the tolerance of the data width. However, the software burden for writing and reading the N × N matrix is high. This is due to the fact that the memory infrastructure needs to generate an appropriate address in order to access the data in each row and column. Further, in the above structure, when the memory used for writing and reading the N × N matrix is shared memory, it affects the efficiency of the entire memory infrastructure.

또 다른 구조는 화이트 트랜스포즈 버퍼 레지스터(white transpose buffer register) 및 다크 트랜스포즈 버퍼 레지스터(dark transpose buffer register)와 같은 레지스터 쌍의 N x N 매트릭스를 이용한 트랜스포즈 버퍼 기반 구조이다. 이 구조에서 데이터는, N2 화이트 트랜스포즈 버퍼 레지스터가 로드될 때 까지, 행의 방향 순으로 화이트 트랜스포즈 버퍼 레지스터로 입력된다. 로딩이 완료되면, 화이트 트랜스포즈 버퍼 레지스터의 데이터는 열 방향 순으로 연결된 해당 다크 트랜스포즈 버퍼 레지스터에 복사된다. 데이터가 다크 트랜스포즈 버퍼 레지스터로부터 리드아웃되고, 화이트 트랜스포즈 버퍼 레지스터에 기록된, 다음 차례의 데이터 세트가 다크 트랜스포즈 버퍼 레지스터로 트랜스포즈된다. 그러나, 트랜스포즈 버퍼 구조는, 제1 매트릭스에 대해 (N2 + 1)클록 사이클의 레이턴시(latency)를 포함하고, 연속적인 매트릭스 트랜스포즈들 사이에서는 한 클록 사이클이다. 예컨대, 데이터를 기록 및 판독할 때 한 클록 사이클이다. 또한, 트랜스포즈 버퍼 구조는 한 블록의 N2 데이터를 트랜스포즈하기 위해 2 세트의 N2 레지스터를 이용하기 때문에 요구되는 면적이 크다.Another structure is a transpose buffer infrastructure using an N × N matrix of register pairs, such as a white transpose buffer register and a dark transpose buffer register. The data in this structure is N 2 Until the white transpose buffer register is loaded, it is entered into the white transpose buffer register in the row direction. When loading is complete, the data in the white transpose buffer register is copied to the corresponding dark transpose buffer register in column direction. Data is read out from the dark transpose buffer register and the next set of data, written to the white transpose buffer register, is transposed to the dark transpose buffer register. However, the transpose buffer structure includes a latency of (N 2 + 1) clock cycles with respect to the first matrix, and is one clock cycle between successive matrix transposes. For example, one clock cycle when writing and reading data. In addition, the transpose buffer structure requires a large area because two sets of N 2 registers are used to transpose a block of N 2 data.

듀얼 독립 트랜스포즈 버퍼 기반 구조(dual independent transpose buffer based architecture)는 매트릭스 트랜스포즈에 현재 이용되는 또 다른 구조이다. 듀얼 독립 트랜스포즈 버퍼 기반 구조는 2개의 독립적인 버퍼들을 구비하며, 양 버퍼들은 매트릭스를 연속적으로 트랜스포즈하기 위해 교대로 사용된다. 이 구조에서 제1 데이터 세트는 행 방향 순으로 제1버퍼에 기록된다. 상기 제1 데이터 세트는 상기 제1버퍼로부터 열 방향 순으로 판독된다. 또한, 제2 데이터 세트는 제1버퍼로부터의 제1 데이터 세트의 판독과 동시에 제2 버퍼에 기록된다.Dual independent transpose buffer based architecture is another structure currently used for matrix transpose. The dual independent transpose buffer infrastructure has two independent buffers, both buffers being used alternately to successively transpose the matrix. In this structure, the first data set is written to the first buffer in row direction order. The first data set is read in column direction from the first buffer. Also, the second data set is written to the second buffer at the same time as reading the first data set from the first buffer.

유사하게, 다음의 동작 사이클 동안, 제3 데이터 세트는 상기 제1 버퍼에 기록되고, 상기 제2 데이터 세트는 상기 제2 버퍼로부터 판독된다. 듀얼 트랜스포즈 버퍼 구조의 레이턴시(latency)는 제1 매트릭스에 대해 N2 클록 사이클이고 연속적인 매트릭스 트랜스포즈에 대해서는 "0"이다. 예를 들면, 데이터를 기록 및 판독할 때는 한 클록 사이클이다. 비록, 듀얼 독립 트랜스포즈 버퍼에서, 다른 종래의 구조와 비교하여 연속적인 매트릭스 트랜스포즈들 사이의 레이턴시가 "0" 이지만 요구 면적은 2개의 독립 버퍼를 사용하는 것에 비해 두 배이다.Similarly, during the next operating cycle, a third data set is written to the first buffer and the second data set is read from the second buffer. The latency of the dual transpose buffer structure is N 2 clock cycles for the first matrix and " 0 " for continuous matrix transposes. For example, one clock cycle when writing and reading data. Although in dual independent transpose buffers, the latency between successive matrix transposes is " 0 " compared to other conventional structures, but the required area is twice that of using two independent buffers.

따라서 본 발명이 이루고자 하는 기술적인 과제는 매트릭스의 연속적인 트랜스포즈가 가능한 트랜스포즈 장치를 제공하는 것이다.Therefore, the technical problem to be achieved by the present invention is to provide a transpose device capable of continuous transpose of the matrix.

본 발명인 연속적인 매트릭스 트랜스포즈를 위한 시스템 및 장치에 대해 설명한다.A system and apparatus for continuous matrix transpose of the present invention is described.

본 발명의 일 측면으로서, 본 장치는 2차원 구조로서 정렬된 데이터 저장부를 포함하고, 이 2차원 구조는 X행 및 Y열을 포함하며, X행 및 Y열 각각은 데이터를 저장하도록 구성된 데이터 저장부를 포함한다. 본 장치는, 적어도 하나의 가상 행(virtual row) 내에서 데이터를 기록하기 위한, 데이터 저장부의 입력에 연결된 기록 제어부를 포함한다. In one aspect of the present invention, the apparatus includes a data storage arranged as a two-dimensional structure, the two-dimensional structure comprising X rows and Y columns, each of which is configured to store data. Contains wealth. The apparatus includes a recording control unit connected to an input of a data storage unit for recording data in at least one virtual row.

또한 본 장치는, 적어도 하나의 가상 열(virtual column)로부터 데이터를 판독하기 위한, 데이터 저장부의 출력에 연결된 판독 제어부를 포함한다. 적어도 하나의 가상 열은 데이터가 기록된 데이터 저장부와 연관된 X행들 및 Y열들 중 하나에 대응한다. 적어도 하나의 가상 행(virtual row)은 데이터가 판독된 데이터 저장부와 연관된 X행들 및 Y열들 중 하나에 대응한다. 본 장치에서, 적어도 하나의 가상 열로의 데이터 기록과 적어도 하나의 가상 행으로부터의 데이터 판독은 각 동작 사이클 동안 실질적으로 동시에 수행된다. 이에 의해 2차원 구조는 연속적인 트랜스포즈 사이의 제로 사이클 딜레이에서 연속적으로 트랜스포즈된다. The apparatus also includes a read control connected to the output of the data store for reading data from the at least one virtual column. The at least one virtual column corresponds to one of the X rows and Y columns associated with the data store in which data is recorded. At least one virtual row corresponds to one of the X rows and the Y columns associated with the data store from which data was read. In the apparatus, data writing to at least one virtual column and reading data from at least one virtual row are performed substantially simultaneously during each operation cycle. The two-dimensional structure is thereby continuously transposed at zero cycle delay between successive transposes.

본 발명의 또 다른 측면으로서, 2차원 DCT(Discrete Cosine Transform) 프로세서는 N x M 중간 트랜스폼 매트릭스(intermediate transform matrix)를 생성하는 N x M 매트릭스의 1차원 트랜스폼을 수행하는 제1 1차원 DCT를 포함한다. 상기 2차원 DCT 프로세서는 연속적인 매트릭스 트랜스포즈 사이의 제로 사이클 딜레이에서 상기 중간 트랜스폼 매트릭스를 연속적으로 트랜스포즈하기 위한 상기 제1 1차원 DCT 프로세서에 연결된 N x M 매트릭스 트랜스포즈 회로를 더 포함한다. 2차원 DCT 프로세서는 원하는 2차원 DCT를 생성하는 상기 N x M 중간 트랜스폼 매트릭스의 트랜스포즈에 대한 1차원 트랜스폼을 수행하기 위한 제2 1차원 DCT 프로세서를 포함한다.In another aspect of the present invention, a two-dimensional Discrete Cosine Transform (DCT) processor includes a first one-dimensional DCT performing a one-dimensional transform of an N x M matrix generating an N x M intermediate transform matrix. It includes. The two-dimensional DCT processor further includes an N × M matrix transpose circuit coupled to the first one-dimensional DCT processor for continuously transposing the intermediate transform matrix in zero cycle delay between successive matrix transposes. The two-dimensional DCT processor includes a second one-dimensional DCT processor for performing one-dimensional transform on the transform of the N × M intermediate transform matrix to produce the desired two-dimensional DCT.

본 발명의 실시 예에 따른 트랜스포즈 장치는 연속적인 매트릭스 트랜스포즈 사이의 제로 사이클 딜레이에서 매트릭스의 연속적인 트랜스포즈를 가능하게 하는 효과가 있다.The transpose apparatus according to the embodiment of the present invention has the effect of enabling the continuous transpose of the matrix at zero cycle delay between the continuous matrix transposes.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도1은 본 발명의 일 실시 예에 따른 2차원 구조를 연속적으로 트랜스포즈하기 위한 장치의 블록도이다.
도2는 도1에 도시된 장치에 의해 수행되는 4 X 4 매트릭스의 연속적인 매트릭스 트랜스포즈를 보여주기 위한 예시도이다.
도3은 본 발명의 일 실시 예에 따른, 4 X 4 매트릭스의 연속적인 4개의 트랜스포즈를 위한 타이밍도이다.
도4는 본 발명의 일 실시 예에 따른 N X M 매트릭스 트랜스포즈 회로를 가진 2차원 DCT의 블록도이다.
The detailed description of each drawing is provided in order to provide a thorough understanding of the drawings cited in the detailed description of the invention.
1 is a block diagram of an apparatus for continuously transposing a two-dimensional structure according to an embodiment of the present invention.
FIG. 2 is an exemplary diagram for illustrating a continuous matrix transpose of a 4 × 4 matrix performed by the apparatus shown in FIG. 1.
3 is a timing diagram for four consecutive transposes of a 4 × 4 matrix, according to one embodiment of the invention.
4 is a block diagram of a two-dimensional DCT with an NXM matrix transpose circuit in accordance with an embodiment of the present invention.

본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.Specific structural and functional descriptions of embodiments according to the concepts of the present invention disclosed in this specification or application are merely illustrative for the purpose of illustrating embodiments in accordance with the concepts of the present invention, The examples may be embodied in various forms and should not be construed as limited to the embodiments set forth herein or in the application.

본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Embodiments in accordance with the concepts of the present invention can make various changes and have various forms, so that specific embodiments are illustrated in the drawings and described in detail in this specification or application. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to specific forms of disclosure, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention.

제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first and / or second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another, for example, without departing from the scope of rights in accordance with the inventive concept, and the first component may be called a second component and similarly The second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. As used herein, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and are not construed in ideal or excessively formal meanings unless expressly defined herein. Do not.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 2차원 구조를 연속적으로 트랜스포즈하는 장치에 대한 블록도이다. 본 장치(100)는 데이터 저장부(102), 기록 제어부(104) 및 판독 제어부(106)를 포함한다. 데이터 저장부(102)는 메모리 소자 또는 레지스터일 수 있다. 데이터 저장부(102)는 메모리 및 레지스터의 조합으로 구성될 수 있다. 각 데이터 저장부(102)는, 예를 들면, 이미지 또는 동영상 데이터와 같은 단일 비트의 데이터 또는 복수 비트의 데이터를 저장한다. 기록 제어부(104)와 판독 제어부(106)는 조합 논리게이트 및/또는 순차 논리소자를 포함할 수 있다.1 is a block diagram of an apparatus for continuously transposing a two-dimensional structure according to an embodiment of the present invention. The apparatus 100 includes a data storage unit 102, a recording control unit 104, and a read control unit 106. The data store 102 may be a memory device or a register. The data store 102 may be composed of a combination of a memory and a register. Each data storage unit 102 stores, for example, a single bit of data or a plurality of bits of data such as image or video data. The write control unit 104 and read control unit 106 may include combinational logic gates and / or sequential logic elements.

도시된 바와 같이, 기록 제어부(104)는 데이터 저장부(102)의 입력에 연결된다. 판독 제어부(106)는 데이터 저장부(102)의 출력에 연결된다. 또한, 본 장치(100)에서, 데이터 저장부(102)는 매트릭스와 같은 2차원 구조로 정렬된다. 예를 들면, 2차원 구조는 X개의 행들과 Y개의 열들을 포함한다. 본 발명의 다른 실시 예들에 따르면, 본 장치(100)는 데이터(108)를 연속적으로 트랜스포즈하는 외부 수단으로부터 데이터(108), 예컨대 동영상 또는 이미지 픽셀을 수신한다. 예를 들면, 본 장치(100)가 2차원 DCT(Discrete Cosine Transform) 프로세서에 구현되는 경우, 본 장치(100)는 2차원 DCT 프로세서의 1차원 DCT 프로세서로부터 데이터(108)를 수신할 수 있다.As shown, the recording control unit 104 is connected to an input of the data storage unit 102. The read control unit 106 is connected to the output of the data storage unit 102. In addition, in the present device 100, the data storage 102 is arranged in a two-dimensional structure such as a matrix. For example, a two-dimensional structure includes X rows and Y columns. According to other embodiments of the present invention, the apparatus 100 receives data 108, for example moving image or image pixels, from external means for continuously transposing the data 108. For example, when the apparatus 100 is implemented in a two-dimensional Discrete Cosine Transform (DCT) processor, the apparatus 100 may receive data 108 from a one-dimensional DCT processor of the two-dimensional DCT processor.

바람직하게, 본 장치(100)의 기록 제어부(104)는, 2차원 구조에서 가상의 행들을 선택하기 위해, 가상 행 선택신호(110)를 생성한다. 본 실시 예에서, 상기 가상의 행들은 데이터 저장부(102)들의 세트를 가진 2차원 구조에서 행들 또는 열들 일 수 있다. 또한, 기록 제어부(104)는 행 방향 순으로(row wise order) 선택된 가상 행들과 연관된 데이터 저장부(102)들에 데이터(108)를 기록한다. 다른 실시 예로서, 기록 제어부(104)는 열 선택신호에 기초한 첫번째 X 클록 사이클 동안, 2차원 구조의 X1-XN 행들에 데이터(108)를 행 방향 순으로 기록한다.Preferably, the recording control unit 104 of the apparatus 100 generates a virtual row selection signal 110 to select virtual rows in a two-dimensional structure. In this embodiment, the virtual rows may be rows or columns in a two-dimensional structure with a set of data stores 102. The recording control unit 104 also records the data 108 in the data stores 102 associated with the selected virtual rows in row wise order. As another embodiment, the write control unit 104 writes the data 108 in the row direction in the X 1 -X N rows of the two-dimensional structure during the first X clock cycle based on the column selection signal.

순차적으로, 판독 제어부(106)는, 판독되어야 할 데이터를 갖는 저장부(102) 세트에 대응하는 가상 열들을 선택하기 위한 가상 열 선택신호(114)를 생성한다. 본 실시 예에서, 상기 가상 열들은 데이터 저장부(102) 세트를 가진 2차원 구조에서 열들 또는 행들일 수 있다. 예를 들면, 첫번째 X 클록 사이클의 완료 후, 즉, 제1 트랜스포즈 동안, 가상의 열 선택신호(114)는 가상의 열들로서 Y1-YN 열들의 선택을 인에이블 할 수 있다. 따라서, 판독 제어부(106)는 Y1-YN 열들과 연관된 데이터 저장부(102)로부터 열 방향 순으로(column wise order) 데이터(108)를 판독한다. 결과적으로, Y1-YN 열들의 데이터(108)는 트랜스포즈 데이터(112)를 발생하기 위하여 트랜스포즈 된다.In turn, the read control section 106 generates a virtual column select signal 114 for selecting virtual columns corresponding to the set of storage 102 having data to be read. In the present embodiment, the virtual columns may be columns or rows in a two-dimensional structure having a data storage 102 set. For example, after completion of the first X clock cycle, ie, during the first transpose, the virtual column selection signal 114 may enable selection of Y 1 -Y N columns as virtual columns. Thus, read control 106 reads data 108 in column wise order from data store 102 associated with the Y 1 -Y N columns. As a result, data 108 of Y 1 -Y N columns is transposed to generate transpose data 112.

제2 트랜스포즈 동안, 기록 제어부(104)는 새로운 데이터(108) 세트를 기록하기 위한 가상 열들을 선택하기 위하여 가상의 열 선택신호(110)를 생성한다. 이 경우, 가상 열들은 Y1-YN의 열일 수 있다. 예를 들면, Y1-YN의 열로부터, 데이터(108)는 동일 동작 사이클 동안 실질적으로 동시에 판독된다. 따라서, 기록 제어부(104)는, 행 방향 순으로 제1 트랜스포즈 동안의 판독 동작과 실질적으로 동시에, 가상 행들과 연관된 데이터 저장부(102)로 새로운 데이터(108) 세트를 기록한다.During the second transpose, the write control 104 generates a virtual column select signal 110 to select virtual columns for recording a new set of data 108. In this case, the virtual columns may be columns of Y 1 -Y N. For example, from the columns of Y 1 -Y N , data 108 is read substantially simultaneously during the same operating cycle. Thus, the write control unit 104 writes a new set of data 108 to the data storage unit 102 associated with the virtual rows substantially simultaneously with the read operation during the first transpose in row direction order.

또한, 제2 트랜스포즈 동안, 판독 제어부(106)는 가상 열들로부터 데이터를 판독하기 위한 가상의 열 선택신호(114)를 생성한다. 따라서 판독 제어부(106)는 가상의 열 선택신호(114)에 의한 가상의 열들로서 XN-X1행들을 선택한다. 또한, 판독 제어부(106)는 상기 가상의 열들과 연관된 데이터 저장부(102)로부터 열 방향 순으로 새로운 데이터(108) 세트를 판독한다. 결과적으로, XN-X1 행들의 데이터(108)는 트랜스포즈 데이터(112)를 생성하기 위해 트랜스포즈 된다.Also, during the second transpose, the read control section 106 generates a virtual column select signal 114 for reading data from the virtual columns. Therefore, the read control section 106 selects X N- X 1 rows as virtual columns by the virtual column selection signal 114. The read control 106 also reads the new set of data 108 in column direction order from the data store 102 associated with the virtual columns. As a result, data 108 of X N -X 1 rows is transposed to produce transpose data 112.

유사하게, 제3 트랜스포즈 동안, 기록 제어부(104)는 가상의 행 선택신호(110)에 근거한 가상의 행들로서 XN-X1행들을 선택한다. 그리고 기록 제어부(104)는 제2 트랜스포즈 동안의 판독 동작과 실질적으로 동시에 행 방향 순으로, 가상의 행들과 연관된 데이터 저장부(102)에 새로운 데이터(108) 세트를 기록한다. 또한, 제3 트랜스포즈 동안 기록 제어부(104)는 가상 열들로서 YN-Y1열을 선택하고 가상 열들과 연관된 데이터 저장부(102)로부터 열 방향 순으로 데이터(108)를 판독한다. 결과적으로, YN-Y1열의 데이터(108)는 트랜스포즈 데이터(112)를 생성하기 위해 트랜스포즈된다.Similarly, during the third transpose, the recording control unit 104 selects X N -X 1 rows as virtual rows based on the virtual row selection signal 110. The write control unit 104 then writes a new set of data 108 to the data storage unit 102 associated with the virtual rows in row direction substantially simultaneously with the read operation during the second transpose. In addition, during the third transpose, the recording controller 104 selects the Y N -Y 1 columns as the virtual columns and reads the data 108 in the column direction from the data storage 102 associated with the virtual columns. As a result, data 108 in columns Y N -Y 1 is transposed to generate transpose data 112.

제4 트랜스포즈 동안, 판독 제어부(106)는 가상 열들로서 YN-Y1열을 선택하고 가상 열들과 연관된 데이터 저장부(102)로, 제3 트랜스포즈의 판독 동작과 동시에 열방향 순으로, 새로운 데이터(108) 셋을 기록한다. 이와 같이 본 장치(100)에서 다음의 연속적인 트랜스포즈의 사이클이 계속된다. 본 장치(100)는 행들과 열들을 임의의 사이클 형태로 시프팅하는 것에 의해 임의의 사이클 순서로 데이터의 판독 및 기록을 수행할 수 있다. 본 장치(100)는, 연속적인 트랜스포즈들 사이의 제로 사이클 딜레이에서, 2차원 구조로 정렬된 데이터 저장부(102)를 연속적으로 트랜스포즈하며, 이에 의해 본 장치(100)의 효율은 향상된다. 판독 및 기록 동작을 위해 행과 열을 변경시키는 사이클 방향은 2차원 구조의 연속적인 트랜스포즈 사이의 제로 사이클 딜레이를 완성하는 데 기여할 수 있다. During the fourth transpose, the read control unit 106 selects the Y N -Y 1 column as the virtual columns and connects to the data storage unit 102 associated with the virtual columns in the column order simultaneously with the read operation of the third transpose. Write a new set of data 108. As such, the next continuous transpose cycle in the apparatus 100 continues. The apparatus 100 may perform reading and writing of data in any cycle order by shifting rows and columns in any cycle form. The apparatus 100 successively transposes the data storage 102 arranged in a two-dimensional structure in a zero cycle delay between successive transposes, thereby improving the efficiency of the apparatus 100. . The cycle direction of changing rows and columns for read and write operations can contribute to completing a zero cycle delay between successive transposes of a two-dimensional structure.

도2는, 도1에 도시된 본 장치(100)에 의해 수행되는, 4 X 4 매트릭스의 연속적인 매트릭스 트랜스포즈를 보여주기 위한 예시도 이다. 특히, 도2는 연속적인 매트릭스 트랜스포즈 동안 발생하는 데이터의 판독 및 기록 순서를 보여준다. 예를 들면, 트랜스포즈된 매트릭스는 4개의 행 및 4개의 열을 포함하며, 행들 및 열들 각각은 4개의 데이터 저장부를 포함한다.FIG. 2 is an exemplary diagram for showing a continuous matrix transpose of a 4 × 4 matrix, performed by the apparatus 100 shown in FIG. In particular, Figure 2 shows the order of reading and writing data that occurs during successive matrix transposes. For example, the transposed matrix includes four rows and four columns, each of the rows and columns including four data stores.

도2에 도시된 바와 같이, 제1의 4개 클럭 사이클 동안, 데이터는 4개의 행들에서 행방향 순으로 기록된다. 바람직한 실시 예로서, 매트릭스는 제5 클록 사이클로부터 연속적으로 트랜스포즈된다. 즉, 4개 행에서 기록이 완료된 경우가 이에 해당한다. 데이터는, 제1 트랜스포즈 동안, 열 ‘C1’으로부터 판독된다. 제2 트랜스포즈 동안, 새로운 데이터는 가상 열에 기록된다. 즉, 열 ‘C1’ 및 데이터는 행 ‘R4’와 같은 가상 열로부터 판독된다.As shown in Figure 2, during the first four clock cycles, data is written in four rows in row order. In a preferred embodiment, the matrix is continuously transposed from the fifth clock cycle. In other words, this is the case where the recording is completed in four rows. Data is read from the column 'C1' during the first transpose. During the second transpose, new data is written to the virtual column. That is, column 'C1' and data are read from a virtual column such as row 'R4'.

제3 트랜스포즈 동안, 새로운 데이터는 가상 행에 기록된다. 즉, ‘R4’행 및 데이터는 ‘C4’와 같은 가상 열로부터 판독된다. 제4 트랜스포즈 동안, 새 데이터는 열 ‘C4’와 같은 가상 행에 기록되며, 데이터는 행 ‘R1’과 같은 가상 열로부터 판독된다. 상기 사이클은 추가적인 매트릭스 트랜스포즈를 연속적으로 수행시킨다. 연속적인 매트릭스 트랜스포즈는 행과 열을 변경시키는 사이클 방향에 의해 수행될 수 있다. During the third transpose, new data is written to the virtual row. That is, the 'R4' row and data are read from a virtual column such as 'C4'. During the fourth transpose, new data is written to a virtual row, such as column 'C4', and data is read from the virtual column, such as row 'R1'. The cycle continuously performs additional matrix transposes. Continuous matrix transpose can be performed by cycle direction changing rows and columns.

이것은 연속적인 매트릭스 트랜스포즈 사이의 제로 사이클 딜레이의 완성을 돕는다. 비록 위에서 언급한 내용이 클록 사이클 당 한번 행과 열에 포함된 모든 데이터 저장부로부터 기록 또는 판독된 데이터에 대한 것이지만, 이것은 사이클 마다 각 데이터 저장부로부터 기록 또는 판독될 수 있는 데이터를 보여 줄 수 있다.This helps to complete the zero cycle delay between successive matrix transposes. Although the above is for data written or read from all data stores contained in rows and columns once per clock cycle, this can show data that can be written or read from each data store every cycle.

도3은, 본 발명의 일 실시 예 따른, 4 x 4 매트릭스의 4개의 연속적인 트랜스포즈를 위한 타이밍도이다. 도3은, 제1 트랜스포즈 동안, 데이터가 행 방향 순으로 매트릭스의 4개의 행(R1-R4)에 기록되는 것을 보여 준다. 기록 동작이 완료되면, 데이터는, 다음 4개 클록 사이클 동안 열 방향 순으로, 가상 열(열 C1-C4)로부터 판독된다. 제2 트랜스포즈 동안, 새로운 데이터는, 제1 트랜스포즈와 연관된 판독 동작과 동시에 행방향 순으로, 가상 행(열 C1-C4)에 기록된다.3 is a timing diagram for four consecutive transposes of a 4 × 4 matrix, in accordance with an embodiment of the invention. FIG. 3 shows that during the first transpose, data is written to four rows R1-R4 of the matrix in row direction order. When the write operation is completed, data is read from the virtual columns (Columns C1-C4) in column direction order for the next four clock cycles. During the second transpose, new data is written to the virtual rows (columns C1-C4) in row order simultaneously with the read operation associated with the first transpose.

제2 트랜스포즈 동안 기록 동작이 완료되면, 데이터는, 다음 4 클럭 사이클 동안 열 방향 순으로, 가상 열(행 R4-R1)로부터 판독된다. 제3 트랜스포즈 동안, 새로운 데이터는, 제2 트랜스포즈와 연관된 판독 동작과 동시에 행 방향 순으로, 가상 행(행 R4-R1)에 기록된다. When the write operation is completed during the second transpose, data is read from the virtual columns (rows R4-R1) in column direction order for the next four clock cycles. During the third transpose, new data is written to the virtual rows (rows R4-R1) in row direction order simultaneously with the read operation associated with the second transpose.

제3 트랜스포즈 동안 기록 동작이 완료되면, 데이터는, 다음 4 클록 사이클 동안 열 방향 순으로, 가상 열(열 C4-C1)로부터 판독된다. 제4 트랜스포즈 동안, 새로운 데이터는, 제3 트랜스포즈와 연관된 판독 동작과 동시에 행 방향 순으로 가상 행(열 C4-C1)에 기록되고, 사이클은 매트릭스 트랜스포즈를 위해 계속 진행된다.When the write operation is completed during the third transpose, the data is read out from the virtual columns (columns C4-C1) in column direction order for the next 4 clock cycles. During the fourth transpose, new data is written to the virtual rows (columns C4-C1) in row direction concurrent with the read operation associated with the third transpose, and the cycle continues for matrix transpose.

도4는 본 발명의 일 실시 예에 따른, N X M 매트릭스 트랜스포즈 회로(404)를 가진 2차원 DCT 프로세서의 블록도이다. 도4를 참조하면, 2차원 DCT 프로세서(400)는 제1 1차원 DCT 프로세서(402) (또한, 행 DCT 프로세서로 언급)를 포함한다. 그리고, 2차원 DCT 프로세서(400)는 N x M 매트릭스 트랜스포즈 회로(404)와 제2 1차원 DCT 프로세서(406)(또한, 열 DCT 프로세서로 언급)를 포함한다. N x M 매트릭스 트랜스포즈 회로(404)는 도1에 도시된 장치(100)에 따른 바람직한 실시 예다. 이것은, 본 장치(100)가 매트릭스의 연속적인 트랜스포즈를 요구하는 2차원 DCT 와 다른 데이터 프로세싱 시스템에 구현될 수 있음을 보여 준다.4 is a block diagram of a two-dimensional DCT processor with an N X M matrix transpose circuit 404, in accordance with an embodiment of the present invention. 4, the two-dimensional DCT processor 400 includes a first one-dimensional DCT processor 402 (also referred to as a row DCT processor). And, the two-dimensional DCT processor 400 includes an N × M matrix transpose circuit 404 and a second one-dimensional DCT processor 406 (also referred to as a column DCT processor). The N × M matrix transpose circuit 404 is a preferred embodiment according to the device 100 shown in FIG. This shows that the apparatus 100 can be implemented in two-dimensional DCT and other data processing systems that require continuous transpose of the matrix.

바람직한 동작으로서, 제1 1차원 DCT 프로세서(402)는 N x M 매트릭스(408)(예컨대, 8 비트 이진 워드로 인코딩된 동영상 및 그림 픽셀을 가진 입력 데이터 매트릭스)의 1차원 트랜스폼을 수행하여 N x M 중간 트랜스폼 매트릭스(410)을 생성한다. 제1 1차원 DCT 프로세서(402)는 행 방향 순으로 1차원 N x M 중간 트랜스폼 매트릭스(410)를 공급한다. 제1 1차원 DCT 프로세서와 연결된 N x M 매트릭스 트랜스포즈 회로(404)는, 연속적인 매트릭스 트랜스포즈들 사이의 제로 사이클 딜레이에서, 중간 트랜스폼 매트릭스(410)를 연속적으로 트랜스포즈한다.As a preferred operation, the first one-dimensional DCT processor 402 performs a one-dimensional transform of the N x M matrix 408 (e.g., an input data matrix having video and picture pixels encoded with 8-bit binary words), where N Create an x M intermediate transform matrix 410. The first one-dimensional DCT processor 402 supplies the one-dimensional N × M intermediate transform matrix 410 in row direction order. An N × M matrix transform circuit 404 coupled with the first one-dimensional DCT processor continuously transposes the intermediate transform matrix 410 at zero cycle delay between successive matrix transposes.

또한, 제2 1차원 DCT 프로세서(406)는 원하는 2차원 DCT(414)를 생성하기 위해 N x M 중간 트랜스폼 매트릭스(412)의 트랜스포즈에 대한 1차원 트랜스폼을 수행한다. N x M 매트릭스 트랜스포즈 회로(404)의 동작은 도1 내지 3에 도시된 장치(100)의 동작과 유사하므로, 따라서, 이에 대한 설명은 생략한다. 2차원 DCT(400)는 이미지 및 영상 프로세싱 시스템으로 구현될 수 있다. 예를 들면, 이것은 JPEG(Joint Photographic Experts Group) 시스템, MPEG(Moving Picture Experts Group) 시스템, H.264 시스템 등으로 구현될 수 있다. 또한, 2차원 DCT 프로세서(400)은 싱글 칩 상에 구현될 수 있다.The second one-dimensional DCT processor 406 also performs one-dimensional transform on the transform of the N × M intermediate transform matrix 412 to produce the desired two-dimensional DCT 414. The operation of the N × M matrix transpose circuit 404 is similar to the operation of the device 100 shown in Figs. 1 to 3, and therefore description thereof will be omitted. The two-dimensional DCT 400 may be implemented as an image and image processing system. For example, this may be implemented with a Joint Photographic Experts Group (JPEG) system, a Moving Picture Experts Group (MPEG) system, an H.264 system, or the like. In addition, the two-dimensional DCT processor 400 may be implemented on a single chip.

도1 내지 도4에서 도시된 본 장치(100)는 연속적인 매트릭스 트랜스포즈 사이의 제로 사이클 딜레이에서 매트릭스의 연속적인 트랜스포즈를 가능하게 한다.The apparatus 100 shown in FIGS. 1-4 enables continuous transpose of the matrix at zero cycle delay between successive matrix transposes.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

100 : 2차원 트랜스포즈 장치 102 : 데이터 저장부
104 : 기록 제어부 106 : 판독 제어부
100: two-dimensional transpose device 102: data storage unit
104: recording control unit 106: reading control unit

Claims (18)

2차원 구조로 정렬되고, 상기 2차원 구조는 X 행들과 Y 열들을 구비하며, 상기 X 행들 및 Y행들 각각은 데이터를 저장하는 데이터 저장부 세트를 포함하는 복수의 데이터 저장부들;
적어도 하나의 가상 행(virtual row)에 데이터를 기록하기 위한 상기 복수의 데이터 저장부의 입력에 연결된 기록 제어부; 및
적어도 하나의 가상 열(virtual column)로부터 데이터를 판독하기 위한 상기 복수의 데이터 저장부의 출력에 연결되고, 상기 적어도 하나의 가상 행은 데이터가 기록된 상기 데이터 저장부 세트와 연관된 상기 X 행들 및 Y 열들 중 하나에 대응하며, 상기 적어도 하나의 가상 열은 상기 기록된 데이터가 판독된 상기 데이터 저장부 세트와 연관된 상기 X 행들 및 Y 열들 중 하나에 대응하고, 상기 적어도 하나의 가상 행에 기록된 데이터 및 상기 적어도 하나의 가상 열로부터 판독된 데이터는 각 동작 사이클 동안 실질적으로 동시에 수행되어 상기 2차원 구조가 연속적인 트랜스포즈들 사이의 제로 사이클 딜레이(zero cycle delay)에서 연속적으로 트랜스포즈(transpose) 되는 판독 제어부를 포함하는 2차원 구조의 트랜스포즈 장치.
A plurality of data storage units arranged in a two-dimensional structure, the two-dimensional structure having X rows and Y columns, each of the X rows and Y rows including a data storage set for storing data;
A recording control unit connected to an input of the plurality of data storage units for recording data in at least one virtual row; And
Coupled to an output of the plurality of data stores for reading data from at least one virtual column, wherein the at least one virtual row is associated with the X rows and Y columns associated with the set of data stores in which data is written. Wherein the at least one virtual column corresponds to one of the X rows and Y columns associated with the set of data stores from which the written data has been read, the data written to the at least one virtual row and Data read from the at least one virtual column is performed substantially simultaneously during each operating cycle so that the two-dimensional structure is continuously transposed at zero cycle delay between successive transposes. Transpose apparatus of a two-dimensional structure including a control unit.
제1항에 있어서, 상기 기록 제어부는,
데이터의 기록을 위한 상기 2차원 구조에서 상기 X 행들을 선택하여, 상기 2차원 구조를 연속적으로 트랜스포즈 하기 전 첫번째 X 동작 사이클 동안 행 방향 순으로 상기 데이터를 상기 X 행들에 기록하는 2차원 구조의 트랜스포즈 장치.
The recording apparatus of claim 1, wherein the recording controller comprises:
Selecting the X rows in the two-dimensional structure for recording data, and writing the data to the X rows in row direction during the first X operating cycle before successively transposing the two-dimensional structure. Transpose device.
제1항에 있어서,
상기 적어도 하나의 가상 열로의 데이터 기록 및 상기 적어도 하나의 가상 열로부터의 데이터 판독은 주기적 순서로 수행되는 2차원 구조의 트랜스포즈 장치.
The method of claim 1,
And write data into the at least one virtual column and read data from the at least one virtual column are performed in a cyclic order.
제1항에 있어서, 상기 판독 제어부는,
상기 2차원 구조를 연속적으로 트랜스포즈함에 있어, 첫번째 X 클록 사이클들이 완료된 경우 가상 열들 Y1-YN 로부터 열 방향 순으로 상기 데이터를 판독하는 2차원 구조의 트랜스포즈 장치.
The method of claim 1, wherein the read control unit,
In the continuous transposing of the two-dimensional structure, when the first X clock cycles are completed, the transposing device of the two-dimensional structure to read the data from the virtual columns Y 1 -Y N in column direction order.
제1항에 있어서, 상기 판독 제어부는,
상기 2차원 구조를 연속적으로 트랜스포즈함에 있어, 첫번째 X 클록 사이클들이 완료된 경우 가상 열들 Y1-YN 로부터 열 방향 순으로 상기 데이터를 판독하는 2차원 구조의 트랜스포즈 장치.
The method of claim 1, wherein the read control unit,
In the continuous transposing of the two-dimensional structure, when the first X clock cycles are completed, the transposing device of the two-dimensional structure to read the data from the virtual columns Y 1 -Y N in column direction order.
제5항에 있어서, 상기 판독 제어부는,
상기 2차원 구조를 연속적으로 트랜스포즈함에 있어, 열 방향 순으로 상기 가상 열들 XN-X1로부터 상기 데이터를 판독하고, 상기 기록 제어부는 실질적으로 동시에 상기 가상 행들 XN-X1 에 행 방향 순으로 데이터를 기록하는 2차원 구조의 트랜스포즈 장치.
The method of claim 5, wherein the read control unit,
In continuously transposing the two-dimensional structure, the data is read from the virtual columns X N -X 1 in column direction order, and the write control section is in a row direction order to the virtual rows X N -X 1 substantially simultaneously. Two-dimensional transpose device for recording data.
제6항에 있어서, 상기 판독 제어부는,
상기 2차원 구조를 연속적으로 트랜스포즈함에 있어, 상기 가상 열들 YN-Y1로부터 열 방향 순으로 데이터를 판독하고, 상기 기록 제어부는 실질적으로 동시에 가상 행들 YN-Y1에 상기 데이터를 행 방향 순으로 기록하는 2차원 구조의 트랜스포즈 장치.
The method of claim 6, wherein the read control unit,
In continuously transposing the two-dimensional structure, data is read from the virtual columns Y N -Y 1 in column direction order, and the recording control unit substantially simultaneously rows the data in the virtual rows Y N -Y 1 . Transpose device of two-dimensional structure to record sequentially.
제1항에 있어서, 상기 기록 제어부는,
적어도 하나의 조합 논리회로 및 순차 논리회로를 포함하는 2차원 구조의 트랜스포즈 장치.
The recording apparatus of claim 1, wherein the recording controller comprises:
A two-dimensional transpose device including at least one combinational logic circuit and a sequential logic circuit.
제1항에 있어서, 상기 판독 제어부는,
적어도 하나의 조합 논리회로 및 순차 논리회로를 포함하는 2차원 구조의 트랜스포즈 장치.
The method of claim 1, wherein the read control unit,
A two-dimensional transpose device including at least one combinational logic circuit and a sequential logic circuit.
제1항에 있어서, 상기 복수의 데이터 저장부들 각각은,
적어도 하나의 비트 데이터를 포함하는 2차원 구조의 트랜스포즈 장치.
The method of claim 1, wherein each of the plurality of data storage units,
A two-dimensional transpose device including at least one bit data.
N x M 중간 트랜스폼 매트릭스(intermediate transform matrix)를 생성하기 위해 N x M 매트릭스의 1차원 트랜스폼을 수행하는 제1 1차원 DCT(Discrete Cosine Transform) 프로세서;
계속적인 매트릭스 트랜스포즈들 사이의 제로 사이클 딜레이에서 상기 중간 트랜스폼 매트릭스를 순서적으로 트랜스포즈하며, 상기 제1 1차원 DCT 프로세서에 연결된 상기 N x M 매트릭스 트랜스포즈 회로; 및
원하는 2차원 DCT를 생성하기 위해 상기 N x M 중간 트랜스폼 매트릭스의 트랜스포즈에 대한 1차원 트랜스폼을 수행하는 제2 1차원 DCT 프로세서를 포함하는 2차원 DCT 프로세서.
A first one-dimensional Discrete Cosine Transform (DCT) processor performing a one-dimensional transform of the N x M matrix to generate an N x M intermediate transform matrix;
The N × M matrix transpose circuit, in sequential transposition of the intermediate transform matrix, in a zero cycle delay between successive matrix transposes, coupled to the first one-dimensional DCT processor; And
And a second one-dimensional DCT processor performing a one-dimensional transform on the transform of the N × M intermediate transform matrix to produce a desired two-dimensional DCT.
제11항에 있어서, 상기 N x M 매트릭스 트랜스포즈 회로는,
2차원 구조로 정렬되고, 상기 2차원 구조는 X 행들과 Y 열들을 구비하며, 상기 X 행들 및 Y행들 각각은 상기 중간 트랜스폼 매트릭스와 연관된 데이터를 저장하는 복수의 데이터 저장부들;
상기 중간 트랜스폼 매트릭스와 연관된 데이터를 기록하기 위한 적어도 하나의 가상 행(virtual row)을 선택하는 상기 복수의 데이터 저장부의 입력에 연결된 기록 제어부; 및
상기 기록된 데이터를 판독하기 위한 적어도 하나의 가상 열(virtual column)을 선택하는 상기 복수의 데이터 저장부의 출력에 연결되고, 상기 적어도 하나의 가상 행은 상기 데이터가 기록된 상기 2차원 구조의 하나의 행 또는 하나의 열에 대응하며, 상기 적어도 하나의 가상 열은 상기 기록된 데이터가 판독된 상기 2차원 구조의 하나의 행 또는 열에 대응하고, 상기 적어도 하나의 가상 행에 기록된 데이터 및 상기 적어도 하나의 가상 열로부터 판독된 데이터는 각 동작 사이클 동안 실질적으로 동시에 수행되어 상기 중간 트랜스폼 매트릭스는 연속적인 매트릭스 트랜스포즈들 사이의 제로 사이클 딜레이(zero cycle delay)에서 연속적으로 트랜스포즈(transpose) 되는 판독 제어부를 포함하는 2차원 DCT 프로세서.
The circuit of claim 11, wherein the N × M matrix transpose circuit comprises:
A plurality of data stores arranged in a two-dimensional structure, the two-dimensional structure having X rows and Y columns, each of the X rows and Y rows storing data associated with the intermediate transform matrix;
A recording control unit connected to an input of the plurality of data storage units for selecting at least one virtual row for recording data associated with the intermediate transform matrix; And
Is connected to an output of the plurality of data storages for selecting at least one virtual column for reading the written data, the at least one virtual row being one of the two-dimensional structures in which the data is written; Corresponds to a row or one column, wherein the at least one virtual column corresponds to one row or column of the two-dimensional structure from which the written data is read, and the data written to the at least one virtual row and the at least one Data read from the virtual column is performed substantially simultaneously during each operating cycle such that the intermediate transform matrix has a read control that is continuously transposed at zero cycle delay between successive matrix transposes. Including two-dimensional DCT processor.
제12항에 있어서, 상기 기록 제어부는,
적어도 하나의 조합 논리회로와 순차 논리회로를 포함하는 2차원 DCT 프로세서.
The method of claim 12, wherein the recording control unit,
A two-dimensional DCT processor comprising at least one combinational logic and sequential logic.
제12항에 있어서, 상기 판독 제어부는,
적어도 하나의 조합 논리회로와 순차 논리회로를 포함하는 2차원 DCT 프로세서.
The method of claim 12, wherein the read control unit,
A two-dimensional DCT processor comprising at least one combinational logic and sequential logic.
제12항에 있어서, 상기 기록 제어부는,
데이터를 기록하기 위한 2차원 구조에서 상기 X행을 선택하여, 2차원 구조를 연속적으로 트랜스포즈 하기 전 첫번째 X 동작 사이클 동안 상기 데이터를 행 방향 순으로 상기 X 행들에 기록하는 2차원 DCT 프로세서.
The method of claim 12, wherein the recording control unit,
Selecting the X rows in a two-dimensional structure for recording data, and writing the data to the X rows in row direction order during the first X operation cycle before successively transposing the two-dimensional structure.
제12항에 있어서, 상기 기록 제어부는,
데이터를 기록하기 위한 2차원 구조에서 임의의 행을 선택하여, Z 동작 사이클에 상기 선택된 행의 상기 데이터 저장부에 상기 데이터를 기록하고, 상기 Z의 값이 상기 선택된 행의 데이터 저장부의 수와 일치하는 2차원 DCT 프로세서.
The method of claim 12, wherein the recording control unit,
Selecting an arbitrary row in a two-dimensional structure for recording data, writing the data to the data storage of the selected row in a Z operation cycle, and the value of Z matches the number of data storage of the selected row 2D DCT processor.
제12항에 있어서,
상기 적어도 하나의 가상 행에 기록된 데이터 및 상기 적어도 하나의 가상 열로부터 판독된 데이터는 주기적 순서로 수행되는 2차원 DCT 프로세서.
The method of claim 12,
And the data written to the at least one virtual row and the data read from the at least one virtual column are performed in a periodic order.
제11항에 있어서,
상기 N x M 매트릭스는 8비트 이진 워드로 인코딩된 동영상 또는 이미지 픽셀을 포함하고, 상기 2차원 DCT 프로세서는 싱글 칩(single chip)에 구현되는 2차원 DCT 프로세서.
The method of claim 11,
Wherein the N × M matrix comprises video or image pixels encoded with an 8-bit binary word, wherein the two-dimensional DCT processor is implemented on a single chip.
KR1020100063690A 2010-04-21 2010-07-02 System and device for succesive matrix transposes KR20110117582A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/085,975 US20110264723A1 (en) 2010-04-21 2011-04-13 System and method for successive matrix transposes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1126/CHE/2010 2010-04-21
IN1126CH2010 2010-04-21

Publications (1)

Publication Number Publication Date
KR20110117582A true KR20110117582A (en) 2011-10-27

Family

ID=45031484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100063690A KR20110117582A (en) 2010-04-21 2010-07-02 System and device for succesive matrix transposes

Country Status (1)

Country Link
KR (1) KR20110117582A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542770A (en) * 2021-06-15 2021-10-22 杭州未名信科科技有限公司 DCT (discrete cosine transform) conversion method and DCT conversion circuit system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542770A (en) * 2021-06-15 2021-10-22 杭州未名信科科技有限公司 DCT (discrete cosine transform) conversion method and DCT conversion circuit system
CN113542770B (en) * 2021-06-15 2023-11-03 杭州未名信科科技有限公司 DCT conversion method and DCT conversion circuit system

Similar Documents

Publication Publication Date Title
US20110264723A1 (en) System and method for successive matrix transposes
US7505352B2 (en) Parallel operational processing device
TWI675372B (en) Systems and methods involving multi-bank, dual-pipe memory circuitry
US7593016B2 (en) Method and apparatus for high density storage and handling of bit-plane data
US8320690B2 (en) System, data structure, and method for simultaneously retrieving multi-dimensional data with zero contention
US9104526B2 (en) Transaction splitting apparatus and method
CN111324294B (en) Method and device for accessing tensor data
US20100034045A1 (en) Semiconductor memory and memory system
JP5359569B2 (en) Memory access method
JP5302507B2 (en) Processor architecture
US20100328330A1 (en) Memory controller and memory system using the same
CN100485817C (en) Two-dimensional data memory
JP2007213055A (en) Method of transferring frame data using synchronous dynamic random access memory, method of transferring frame data to source driver, and timing control module
JP5532132B2 (en) Apparatus and method enabling efficient time and area access to square matrix distributed and stored in internal memory of processing element operating in SIMD mode and its transpose matrix
JPH0798980A (en) Multi-port field memory
US7525577B2 (en) Image processing apparatus and image processing method
US10452356B2 (en) Arithmetic processing apparatus and control method for arithmetic processing apparatus
KR20110117582A (en) System and device for succesive matrix transposes
JPH09198862A (en) Semiconductor memory
KR100571435B1 (en) Synchronous dynamic random access memory architecture for sequential burst mode
US20070030535A1 (en) Data scan system and data scan method using ddr
US7928987B2 (en) Method and apparatus for decoding video data
JP5196946B2 (en) Parallel processing unit
JP3291070B2 (en) Data transposition equipment
CN118245110A (en) Software and hardware collaborative design method and framework for sparse matrix vector multiplication computation

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination