JP2012518831A - マルチモードアクセス可能な記憶装置 - Google Patents

マルチモードアクセス可能な記憶装置 Download PDF

Info

Publication number
JP2012518831A
JP2012518831A JP2011551027A JP2011551027A JP2012518831A JP 2012518831 A JP2012518831 A JP 2012518831A JP 2011551027 A JP2011551027 A JP 2011551027A JP 2011551027 A JP2011551027 A JP 2011551027A JP 2012518831 A JP2012518831 A JP 2012518831A
Authority
JP
Japan
Prior art keywords
address
data
bank
storage device
row
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2011551027A
Other languages
English (en)
Other versions
JP5552692B2 (ja
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 シリコン・ハイヴ・ベー・フェー
Publication of JP2012518831A publication Critical patent/JP2012518831A/ja
Application granted granted Critical
Publication of JP5552692B2 publication Critical patent/JP5552692B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

ブロックアクセスモードでのブロックアクセスおよび行アクセスモードでの行アクセスを可能にするマルチモードアクセス可能な記憶装置(10)を開示する。記憶装置は、各々がそれぞれのバンクインデックス(0、…、F)を有する複数のメモリバンク(20.0、…、20.F)を備えるメモリユニット(20)と、前記メモリバンクの各々について入力アドレスおよびシフトパラメータの関数として回転されたバンクアドレスを生成するアドレス発生器(30)と、入力ベクトルを回転させ、回転された入力ベクトルのベクトル要素をメモリユニットのそれぞれのバンクに供給する入力ベクトルデータ回転器(40)と、メモリユニットのそれぞれのバンクから取得されるベクトル要素を含むベクトルを逆回転させ、回転した出力ベクトルを供給する出力ベクトル回転器(50)と、を備える。

Description

本発明は、マルチモードアクセス可能な記憶装置に関する。
本発明は、さらに、データ要素の行を格納する方法に関する。
本発明は、さらに、データ要素のブロックを取得する方法に関する。
多くの画像処理アルゴリズムでは、画像データの任意のブロックが迅速に利用できることが必要である。したがって、これらのアルゴリズムに対し、ブロック毎にアクセスが可能な記憶装置が必須である。一方、これらのアルゴリズムのための入力データは、通常、ラスタスキャン方式で線状に供給される。同様に、処理されたデータを再びラスタスキャン方式で供給することが必要な場合もある。リアルタイムの現実的なシーンレンダリングを可能とするように、処理速度およびラスタサイズに関するユーザ要件が急速に増大していることがさらに留意される。
特許文献1は、ブロックアクセス可能なバッファメモリを備えた画像処理回路について記載している。バッファメモリは、ウィンドウからのピクセル値を格納する複数行のメモリ回路を備えている。メモリ回路は、各々それぞれの行に対してシフト回路として設けられ、それぞれの行からグループへのピクセル値の割当てをシフトするように設けられている。
国際公開第2006/120620号
標準的なマルチバンクメモリにおいて、ラスタスキャン方式でのアクセスとブロック単位のアクセスとをともに効率的にサポートする記憶装置を提供する必要がある。
本発明の第1の態様によれば、ブロックアクセスモードでのブロックアクセスおよび行アクセスモードでの行アクセスを可能にするマルチモードアクセス可能な記憶装置が提供され、この装置は、
各々がそれぞれのバンクインデックスを有する複数のメモリバンクを備えるメモリユニットと、
前記メモリバンクの各々につい入力アドレスおよびシフトパラメータの関数として回転されたバンクアドレスを生成するアドレス発生器と、
入力行を回転させ、回転された入力行のデータ要素をメモリユニットのそれぞれのバンクに供給する入力データ回転器と、
メモリユニットのそれぞれのバンクから取得されるデータ要素を含む行を逆回転させ、回転された出力行を供給する出力回転器と、
を備える。
本発明の第2の態様によれば、データ要素の行を格納する方法が提供され、この方法は、
行を受け取るステップと、
行の記憶位置を示す入力アドレスを受け取るステップと、
行の記憶位置に応じた量だけ行内のデータ要素を回転させるステップと、
各要素について入力アドレスの関数としてバンクアドレスを割り当てるステップと、
マルチバンクメモリに行を格納するステップと、を含み、それぞれのデータ要素はそれぞれのバンクのそれぞれのバンクアドレスに格納される。
本発明の第3の態様によれば、マルチバンクメモリからデータ要素のブロックを取得する方法が提供され、この方法は、
データ要素のブロックの記憶位置を示す入力アドレスを受け取るステップと、
複数のメモリバンクについて入力アドレスの関数としてバンクアドレスを計算するステップと、
前記メモリのうち前記メモリバンクに対して計算されたバンクアドレスからそれぞれのデータ要素を含む行を取得するステップと、
ブロックの記憶位置に応じた量だけ行内のデータ要素を回転させ、回転されたデータ要素を含む行をブロックとして供給するステップと、
を含む。
行アクセスモードでは、受け取られた行は、行の記憶位置、すなわちバンクにおけるアドレスに応じた量だけ回転される。したがって、後続するアドレスに格納される行は、相互に異なるように回転して格納される。回転は、循環シフトであるように理解される。したがって、NRだけ回転するということは、本来はインデックスIBのメモリバンクに割り当てられるデータが、代りに、NBがメモリバンクの数である場合、メモリバンクIB+NR mod NBに割り当てられることを示す。したがって、ブロックの異なる行のデータは、異なるメモリバンクに割り当てられる。これにより、ブロックアクセスモードにおいて前記データを同時に取得することが可能になる。ブロックアクセスモードでは、アドレス発生器は、メモリバンクの各々に対し、ブロックの適切なラインを取得するために、入力アドレスおよびシフトパラメータの関数として、回転されたバンクアドレスを生成する。
これらの態様および他の態様について、図面を参照してより詳細に説明する。
データ処理装置を概略的に示す図である。 複数のアクセスモードを示す図である。 本発明による記憶装置の実施形態を示す図である。 図3の実施形態の一部をより詳細に示す図である。 記憶装置の代替実施形態における前記部分を示す図である。 データ要素のマッピングを示す図である。 データ要素のマッピングを示す図である。 実施形態に適したアドレス発生器の例示的な実施態様を示す図である。 データ要素のブロックの配置の第1の例を示す図である。 データ要素のブロックの配置の第2の例を示す図である。 本発明による記憶装置のさらなる実施形態を示す図である。 前記実施形態の一部をより詳細に示す図である。 記憶装置の実施形態の2つの動作モードのうちの1つを示す図である。 記憶装置の実施形態の2つの動作モードのうちの1つを示す図である。 記憶装置の実施形態におけるプレーンの内容を概略的に示す図である。
以下の詳細な説明では、本発明が十分に理解されるようにするために、多数の特定の詳細を示す。しかしながら、当業者には、本発明をこれらの特定の詳細なしに実施してもよいことが理解されよう。他の場合では、周知の方法、手続きおよび構成要素については、本発明の態様を不明瞭にしないように詳細には説明していない。
本発明を、本発明の実施形態が示されている添付図面を参照して以下により十分に説明する。しかしながら、この発明は、多くの異なる形態で具現化することができるものであり、本明細書に示す実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの実施形態を、この開示が綿密にかつ十分となるように、かつ当業者に本発明の範囲を十分に伝えるように提供する。1つの要素が別の要素に「接続されて」いるかまたは「結合されて」いると言及される場合、それは、他方の要素に直接接続されまたは結合されていてもよく、または介在する要素が存在してもよいことが理解されよう。一方、1つの要素が別の要素に「直接接続されて」いるかまたは「直接結合されて」いると言及される場合、介在する要素は存在していない。全体を通して、同様の番号は同様の要素を指す。本明細書で、「および/または」という用語は、関連する列挙された項目のうちの1つまたは複数のありとあらゆる組合せを含む。
本明細書において、さまざまな要素、構成要素および/または部分について述べるために第1の、第2の、第3の等という用語を用いる場合があるが、これら要素、構成要素および/または部分は、これらの用語によって限定されるべきではないことが理解されよう。これらの用語は、1つの要素、構成要素または部分を別の要素、構成要素および/または部分から識別するためにのみ用いられている。したがって、後述する第1の要素、構成要素および/または部分を、本発明の教示から逸脱することなく、第2の要素、構成要素および/または部分と呼ぶことができる。
特に定義しない限り、本明細書で用いるすべての用語(技術的用語および科学的用語を含む)は、本発明が属する技術分野における当業者が一般に理解する意味と同じ意味を有している。一般に用いられる辞書で定義される用語等の用語は、関連技術との関連におけるそれらの意味と一致する意味を有しているものと解釈されるべきであり、本明細書において明示的に定義しない限り、理想化されたまたは過度に形式的な意味で解釈されないことがさらに理解されよう。本明細書で言及するすべての出版物、特許出願、特許および他の参考文献は、開示内容がすべて参照により本明細書に組み込まれる。矛盾する場合、定義を含めて本明細書が優先する。さらに、材料、方法および例は、単に例示するものであって、限定するものであるようには意図されていない。
図1は、概して、データ処理装置を示す。装置は、ベクトルデータVload/Storeを記憶装置10と交換するベクトル処理ユニット74を有するVLIWプロセッサ70を備えている。VLIWプロセッサ70は、プログラムカウンタPCを生成し、プログラムカウンタが示すプログラムメモリ80のアドレスからVLIW命令IVLIWを取得する。この場合、VLIWプロセッサ70は、データSLSをスカラデータメモリ60と交換するスカラ処理ユニット72を有している。この実施形態では、スカラプロセッサ72は、プログラムカウンタPCを生成する役割を有している。データ処理装置は、特にさまざまな特性の画像データのような2次元データを処理するのに適している。
図2は、記憶装置用の複数のアクセスモードを示す。行アクセスモード10Aによれば、記憶装置は行単位でアクセスされる。そのアクセスモードでは、一行の要素が同時にアクセスされ、すなわちメモリに書き込まれるかまたはメモリから読み出される。これは、記憶装置が他の装置とデータを交換する時、たとえばデータがスキャナまたはカメラから取得される時か、またはデータがフレームバッファに供給される時のデータアクセスの一般的な方法である。しかしながら、画像処理タスクに対し、他のアクセスモード、たとえば列アクセスモード10Bまたはブロックアクセスモードも必要である。画像処理アルゴリズムのタイプに応じて、たとえばアクセスモード10Cによる4×4ブロック、アクセスモード10Dによる8×2ブロック、またはアクセスモード10Eによる2×8ブロックへのアクセスが必要な場合がある。列(10B)を、1×16ブロックとみなすことができる。
図3は本発明による記憶装置10の実施形態をより詳細に示す。記憶装置10は、行アクセスモードおよびブロックアクセスモードの両方を可能にするという点でマルチモードアクセス可能な記憶装置である。記憶装置10は、各々がそれぞれのバンクインデックス0、…、Fを有する複数のメモリバンク20.0、…、20.Fを有するメモリユニット20を備えている。明確にするために、最初のバンクおよび最後のバンクのみを参照符号で示す。例として、メモリユニットは16のバンクを備えるものと仮定する。しかしながら、いかなる数NBのバンクも可能であることが理解されよう。
記憶装置10は、メモリバンク20.0、…、20.Fの各々に対して、入力アドレスおよびシフトパラメータSの関数として回転したバンクアドレスを生成するアドレス発生器30をさらに備えている。
記憶装置10は、入力行を量SRだけ回転させ、その回転した入力行をメモリユニット20に供給する入力データ回転器40をさらに備えている。
記憶装置10は、メモリユニット20から取得した行を量SLだけ逆回転させ、その回転した出力行を供給する出力回転器50もまた備えている。
アドレス発生器30は、メモリバンク20.0、…、20.Fの各々に対し、入力アドレスAddressおよびシフトパラメータSRの関数として、回転したバンクアドレスBA(0)、…、BA(F)を生成する。
図4は、アドレス発生器30の実施形態をより詳細に概略的に示す。この実施形態では、アドレス発生器30は、選択されたブロック幅WBに応じてそれぞれのバンク20.0〜20.Fに対して回転したバンクアドレスを生成するセクション30.0〜30.Fと、それぞれのセクション30.0〜30.Fによって供給される回転したバンクアドレスかまたは元のアドレスy0のいずれかを選択する、信号S1によって制御される多重化素子32.0〜32.Fとを備えている。明確にするために、最初のセクションおよび最後のセクションとそれらの対応する多重化素子のみを示す。アドレス発生器は、入力パラメータWBおよびモード選択指示信号S1によって制御可能である。この実施形態では、S1=0は行アクセスモードを示し、S1=1はブロックアクセスモードを示す。
図5において、図4のものに対応する部分は、100を足した参照数字を有している。図5は、本発明による記憶装置の別の実施形態のアドレス発生器130を示し、それは、座標X,Yを有する第1の座標系からの座標を、座標X*,Y*を有する第2の座標系にマッピングする第1のマッピングユニット134を備えている。第1の座標系のX座標は、ビットXnx1-1,…,X0によって定義され、第1の座標系のY座標は、ビットYny1-1,…,Y0によって定義され、第2の座標系のX*座標は、ビットX* nx2-1,…,X* 0によって定義され、第2の座標系のY*座標は、ビットY* ny2-1,…,Y* 0によって定義される。インデックス0は最下位ビットを示し、nx1-nx2=ny2-ny1=nである。マッピングユニット134は、以下に従って、X*およびY*座標を有する出力アドレスを生成する。
X*=Xnx1-n-1,…,X0
Y*=Yny1-1,…,Ym,Xnx1-1,…,Xnx1-n,Ym-1,…,Y0
このアドレスマッピングの例を、図6A、図6Bを参照して説明する。図6Aは、幅Wが2048ピクセルであり高さHが2048ピクセルである画像を概略的に示す。したがって、この実施形態では、nx1=11、ny1=11である。画像は、幅64ピクセルおよび高さ8ピクセルの一次セルに分割される。一次セルは、左から右へかつ上から下へ順序付けられている。これらの一次セルのうちの4つを、それらの番号0、31、32、63によって示す。マッピングユニット134によるアドレスマッピング後、画像データは、図6Bに概略的に示すように配置される。この第2の座標系X*,Y*は、以下のように入力座標系X,Yに関係する。
X*=X5,…,X0
Y*=Y10,…,Y3,X10,…,X6,Y2,…,Y0
ここで、nx2=6、ny2=16、n=5、m=3である。
図7は、アドレス発生器30の例示的な実施態様を示す。図7では、ブロック座標発生器302において、アドレス指定されるブロックの1つの要素の座標(x0,y0)から開始して、ブロックの各要素(x0+1,y0)、…(x0+1,y0+7)のアドレスA0、…、AFが計算される。ブロックの要素の数は、記憶装置のバンクの数に対応する。ブロック要素は、複数のピクセルを含むことができる。たとえば、8ビットの4ピクセルを、32ビットの単一メモリバンク要素に格納してもよい。その場合、x座標の最下位ビット部分を用いて、メモリバンク要素内の特定のピクセルを特定することができる。
生成されたアドレスAを、以下のようにビット群から構成されているものとみなすことができる。
A=<SN><CLN><CN><CW>
ここで、SNおよびCLNは、それぞれ、y座標の最上位ビット部分および最下位ビット部分を示す。CNおよびCWは、x座標の最上位ビット部分および最下位ビット部分を示す。
画像を、複数の一次セルとして構成されているものとみなすことができ、ここで、x座標およびy座標の最上位ビット部分は座標の一次セルを特定し、x座標およびy座標の最下位ビット部分はその一次セル内の座標の相対位置を示す。
次いで、生成されたアドレスAの各々は、アドレス順序変更ユニット304により、以下によって定義される、順序変更されたアドレスA*に順序変更される。
A*=<SN><CN><CLN><CW>
次いで、順序変更されたアドレスのセットA* 0,…,A* Fは、回転ユニット306により、SRYを用いて以下のように回転される。
A** I=A* I-SRY mod NB
ここで、SRY=(WB)・y0であり、NBはバンクの数である。WBはバンク数でのブロック幅である。ブロック幅が整数個のバンクに等しい場合、SRYの計算は極めて簡略化される。たとえば、ブロック幅WBが2である場合、SRYの値は単に2×y0であり、それはy0<<2に等しい。
SRYによるアドレスのセットの回転を、それ自体既知である回転器306により、たとえばバレルシフタにより、効率的に行うことができる。
回転がNBを法(modulo)として行われるという事実を考慮して、計算にはy0のnly個の最下位ビットのみが必要である。ここで、
nly=log2(NB)-log2(WB)
である。ここで、NB=16、WB=2である場合、nlyの値=3である。アドレス順序変更ユニット304および回転ユニット306の順序を逆にしてもよいということに留意されたい。
次いで、オフセット加算モジュール308が、オフセットOIを計算し、以下に従ってアドレスA** Iの各々に加算する。
A*** I=A** I+OI
オフセットOIは、以下に従って計算される。
したがって、ブロック幅WBが2バンクである例では、計算は
となり、以下のオフセットのシーケンスが得られる。
OI=0,0,1,1,…,7,7
バンクアドレスBIは、第2の回転ユニット310により、アドレスA*** Iから、量SRXだけ回転させることによって計算される。
したがって、バンクIのアドレスBIは、
BI=A*** I-SRX mod NB
となる。SRXは、一次セル内のブロックのx0座標から導出される。回転操作がNBを法とする演算であるという事実を考慮して、x位置のnx個の最下位ビットのみが関係し、ここでnx=log2NBである。バンク要素毎にND>1ピクセルがある場合、ブロックのx0座標は、以下の式により、x0ピクセル座標x'0から導出される。
ここで、npはlog2NDである。
ここで、本発明による記憶装置10のさまざまなアクセスモードについて説明する。
本発明による記憶装置の行アクセスモードで行を書き込む時、入力データ回転器40は、入力行を量SRだけ回転させ、回転させた入力行をメモリユニット20に供給する。ここで、SR=WB・yであり、yは行のy座標である。
この回転により、座標x,yを有するデータ要素は、以下のようにバンクインデックスIBにマッピングされる。
IB=(WB・y+x>>np)mod NB
行の要素は、各バンクにおいてバンクアドレスAB=yにマッピングされる。ここで、WBはブロック幅である。ブロックアクセスモード中、データを、記憶装置のこの幅のブロックから取得することができる。NBはバンクの数であり、2npはバンクアドレス毎のデータ要素の数である。
図8Aは、ブロック幅WBが2バンクに等しく、バンクNBの数が16である一例を、概略的に示す。すべてのバンクアドレスが4個のデータ要素を含むものとさらに仮定する。この例では、バンクアドレス0を有するデータ要素の第1の行0〜0Fは、回転なしに格納され、バンクアドレス1を有する第2の行は2だけ回転し、バンクアドレス2を有する第3の行は4だけ回転する。
この実施形態では、読み出されるブロックを、4ピクセルのステップで位置合わせすることができる。
この実施形態では、次の行は各々、ブロック幅WBに対応する量だけ回転する。したがって、バンクアドレスABに格納されている行は、WB×AB mod NBだけ回転する。
各メモリバンクの幅が4ピクセルであるため、これは、後続する行の各々が2バンク回転し、それが8ピクセルに等価であることを意味する。しかしながら、他のブロックサイズを選択してもよい。図8Bは、たとえば、同じ記憶装置において、幅が16ピクセルであって高さが4ピクセルであるブロックの形態の取得に適しているデータをいかに格納し得るかを示す。この場合、後続する行の各々は、4バンク回転する。たとえば図9に関して示すように、記憶装置は、異なるプレーンを有することができる。第1のプレーンは、たとえば、16×4ブロックとしてアクセスされるデータを格納することができ、別のプレーンはたとえば8×8ブロックとしてデータを格納することができる。
行を、行番号の単純な関数である量だけ回転させることは不要である。ブロックの別個の行が別個のバンクに格納されることで十分である。たとえば、出力回転器により逆関数が既知であれば、入力回転器により疑似乱数関数を用いてもよい。
行読出しアクセスモード中、行yを読み出している時、出力回転器50により、SL個のバンクの量の逆回転が適用される。ここで、SL=WB・yである。
ブロック書込みアクセスモード中、アドレス発生器30は、メモリバンク20.0、…、20.Fの各々に対し、以下のように入力アドレスおよびシフトパラメータの関数として、回転したバンクアドレスを生成する。
ここで、NROWはブロックの行の許容可能な最大数であり、IBはバンクインデックスであり、x0、y0は取得されるブロックの基準座標、たとえば左上隅を示す。ブロックの水平位置は、ブロックの左上データ要素のバンクインデックスIBに対応する。
ブロックの行の許容可能な最大数NROWは、バンクの数NBをブロックの幅WBで割った数である。
例として、図8Aでは第1のブロックを明るいグレーで示す。このブロックは水平位置x0=0を有している。したがって、生成されるバンクアドレスBA(IB)は、(y0,y0,y0+1,y0+1,…,y0+7,y0+7)である。バンクインデックス2に等価である水平位置x0=8を有するブロックの場合、生成されるバンクアドレスBA(IB)は、(y0+7,y0+7,y0,y0,…,y0+6,y0+6)である。
図1に示すデータ処理装置は、任意に、(破線で示す)データ供給ユニット90を有し、それは、記憶装置10の複数のメモリバンクによって定義される総データ幅より大きい幅の画像の画像データを供給する。したがって、図5に関して説明したように別のアドレス発生器130が供給される。画像供給ユニット90はカメラまたは別のメモリであってもよい。
図9は、本発明によるマルチモードアクセス可能な記憶装置210のさらなる実施形態を示す。ここで図3のものに対応する部分は、100を足した参照数字を有している。図9に示す実施形態では、記憶装置210はアドレス解析器214を備えており、それは、アドレスポートに供給されるアドレスADDRを、記憶装置210内のアドレスADDR1を特定するアドレスラインの第1のセットと、コマンドCMNDをアクセスモードコントローラ216に供給するアドレスラインの第2のセットとに分離する。
実施形態では、アドレスADDRの最上位部分がコマンドCMNDを形成する。例として、コマンドは以下のフィールドから構成される。
<モード(2)>|<R/B(2)>|<プレーンID(4)> → ニブル(4ビット)に位置合わせされる8ビット
これらのフィールドは以下の意味を有する。
第1のコマンドビットはアクセスモードを確定する。第1のアクセスモード(ベクトル単一アドレス指定)では、記憶装置210は、従来のメモリとしてアクセス可能である。したがって、アドレス発生器230はアドレス回転を行わず、入力回転器240および出力回転器250は非アクティブ状態である。2次元(2D)アクセスモードでは、記憶装置210は、行アクセスR/B=00とともにブロックアクセスR/B=01を可能にする。
この実施形態による記憶装置210では、記憶空間を、一意の特性を有するさまざまな部分(ここではプレーンとして示す)に細分することができる。これらのプレーンに対する設定を定義するために、記憶装置210は、プレーンアクセスモード(モード=11)として示すさらなるアドレス指定モードを有する。アクセスされるプレーンは、プレーンIDフィールドによって示される。この場合、16の異なるプレーンを定義することができるが、他の実施形態では、数がより多いか少ないプレーンを可能とすることができる。
図10に示すように、アクセスモードコントローラ216は、制御ロジック218およびプレーンレジスタファイル217を備えている。
各プレーンに対する設定を、プレーンレジスタファイル217においてそれぞれのレジスタによって定義することができる。これらのレジスタは以下のフィールドを有することができる。
図11Aは、標準プレーンアクセスの例を示す。図11Bは、インタリーブプレーンアクセスの例を示す。後者のアクセスモードは、各ベクトル要素がLUMAおよびCHROMA成分を有する場合に適している。その場合、データは、インタリーブ方式でプレーン幅が2倍(2048×2=4096)であるものとして表すことができる。このインタリーブ方式では、各奇数ラインは、LUMA成分を含み、(グレーで示す)後続する偶数ラインは対応するCHROMA成分を含む。このインタリーブは、LUMA/CHROMA成分ベクトルの各々に対して別個の基準アドレスを生成しないストリーミングインタフェースに対して必要である場合がある。各成分タイプのブロックを、奇数ラインまたは偶数ラインのいずれかをアドレス指定することにより別個に取得することができる。
図12は、第1の座標系において、幅が2048ピクセルであり高さが16ピクセルである記憶装置のプレーンの内容を概略的に示す。ピクセルはそれらのアドレスAによって示され、A=X+2048×Yである。図示する実施形態では、記憶装置は、16バンクを有するメモリを備えている。各メモリ要素は、16ビットの4ベクトル要素を有している。すべてのビットを必ずしも使用する必要はない。実施形態では、たとえば、ベクトル要素毎に9ビットが使用される。プレーンは、長さが64ビットである1024ベクトルの記憶容量を有している。左上隅において、いくつかのベクトルが白およびグレーで示されている。すなわち、第1のベクトルはアドレス0〜63を占有する。第2のベクトルは、64〜127を占有する、等である。図12は、さらに、この記憶装置内のピクセルのブロックのアドレス指定可能性を概略的に示す。開始アドレスA=0を有する第1のブロックB1は、ベクトル境界に位置合わせされる。しかしながら、原点A=0に対してオフセットX=4×m、y=nである任意のブロック(m、nは0以上の整数である)を、ブロックB2、B3、B4によって示すようにアドレス指定することができる。モジュロ式アドレス計算が適用され、すなわち、開始アドレス22648を有するブロックB5は、Y=15まで広がる第1の部分B5aを含む。ブロックB5の次のラインは15+1 mod 16=0であり、それにより、そのブロックは、プレーンの最上部において第2の部分B5bを有する。同様に、開始アドレス18428を有するブロックB6は、X=2044からX=2047まで広がる第1の部分B6aと、プレーンの左側においてX=0からX=3まで広がる第2の部分とを有する。
本発明によれば、画像ラインは、画像メモリに回転方式で格納される。一次セルの後続する画像ラインの各々は、フェッチされるブロックの幅Bxに対応するバンクの数だけ回転(循環的にシフト)する。後続するラインの各々がメモリバンクの異なるセットに格納されるという事実のために、それらを、メモリから同時に取得することができる。
特許請求の範囲において、「具備する、備える」という語は、他の要素またはステップを排除するものではなく、不定冠詞「1つの(a、an)」は複数を排除するものではない。単一の構成要素または他のユニットが、特許請求の範囲に列挙するいくつかの項目の機能を達成する場合もある。いくつかの手段が相互に異なる請求項に列挙されているという単なる事実は、これらの手段の組合せを用いて利益を得ることができないことを示すものではない。特許請求におけるいかなる参照符号も、その範囲を限定するものと解釈されるべきではない。さらに、反対の意味で明示的に述べない限り、「または(or)」は、包括的論理和を指し、排他的論理和を指すものではない。たとえば、条件AまたはBは、以下のうちのいずれによっても満足される。すなわち、Aは真であり(または存在し)かつBは偽である(または存在しない)、Aは偽であり(または存在せず)かつBは真である(または存在する)、ならびにAおよびBはともに真である(または存在する)。
記憶装置のさまざまな機能を、専用のハードウェアで、または適当なプログラムされたプロセッサにより、またはそれらの組合せによって実施することができる。
10 記憶装置
20 メモリユニット
20.0、…、20.F メモリバンク
30 アドレス発生器
40 入力データ回転器
50 出力回転器
74 ベクトル処理ユニット
90 データ供給ユニット
130 アドレス発生器
134 マッピングユニット
210 記憶装置
216 アクセスモードコントローラ
217 プレーンレジスタファイル

Claims (14)

  1. ブロックアクセスモードでのブロックアクセスおよび行アクセスモードでの行アクセスを可能にするマルチモードアクセス可能な記憶装置(10)であって、
    各々がそれぞれのバンクインデックス(0、…、F)を有する複数のメモリバンク(20.0、…、20.F)を備えるメモリユニット(20)と、
    前記メモリバンクの各々について入力アドレスおよびシフトパラメータの関数として回転されたバンクアドレスを生成するアドレス発生器(30)と、
    入力ベクトルを回転させ、前記回転された入力ベクトルのベクトル要素を前記メモリユニットのそれぞれのバンクに供給する入力ベクトルデータ回転器(40)と、
    前記メモリユニットのそれぞれのバンクから取得されるベクトル要素を含むベクトルを逆回転させ、前記回転された出力ベクトルを供給する出力ベクトル回転器(50)と、
    を備えるマルチモードアクセス可能な記憶装置。
  2. 前記アドレス発生器(130)は、座標X,Yを有する第1座標系からの座標を座標X*,Y*を有する第2の座標系にマッピングするマッピングユニット(134)を備え、前記第1の座標系のX座標はビットXnx1-1,…,X0によって定義され、前記第1の座標系のY座標はビットYny1-1,…,Y0によって定義され、前記第2の座標系のX*座標はビットX* nx2-1,…,X* 0によって定義され、前記第2の座標系のY*座標はビットY* ny2-1,…,Y* 0によって定義され、インデックス0は最下位ビットを示し、nx1-nx2=ny2-ny1=nであり、前記マッピングユニットは、
    X*=Xnx1-n-1,…,X0
    Y*=Yny1-1,…,Ym,Xnx1-1,…,Xnx1-n,Ym-1,…,Y0
    に従ってX*およびY*座標を有する出力アドレスを生成する請求項1に記載のマルチモードアクセス可能な記憶装置。
  3. アクセスモードコントローラ(216)をさらに備える請求項1に記載のマルチモードアクセス可能な記憶装置。
  4. 前記アクセスモードコントローラ(216)は、ブロック単位のデータアクセスに適用可能なブロックサイズを示す値を含む少なくとも1つのレジスタ(217)を有する請求項3に記載のマルチモードアクセス可能な記憶装置。
  5. 前記マルチモードアクセス可能記憶装置内のアドレス(ADDR1)を特定するアドレスラインの第1のセットと、前記アクセスモードコントローラ(216)にコマンド(CMND)を供給するアドレスラインの第2のセットとを有するアドレスポートを有する請求項1に記載のマルチモードアクセス可能な記憶装置。
  6. 前記アドレスラインの第2のセットは、動作モード指示ラインおよびアクセスモード指示ラインのうちの少なくとも1つを含む請求項5に記載のマルチモードアクセス可能な記憶装置。
  7. マルチモードアクセス可能な記憶装置(210)は複数のプレーンを有し、前記アドレスラインの第2のセットはプレーン識別ラインを含む請求項6に記載のマルチモードアクセス可能な記憶装置。
  8. 請求項1に記載のマルチモードアクセス可能な記憶装置(10)と、前記マルチモードアクセス可能な記憶装置に結合されたベクトル処理ユニット(74)とを有するデータ処理装置。
  9. 前記複数のメモリバンクによって定義される総データ幅より大きい幅を有する画像の画像データを供給するデータ供給ユニット(90)をさらに有し、前記アドレス発生器は、前記データ供給ユニットからの画像データを一次セルとして編成し、各一次セルは前記総データ幅に対応する幅を有する請求項8に記載のデータ処理装置。
  10. 前記一次セルは、前記画像データ供給ユニットによって供給される画像の高さより低い高さを有する請求項9に記載のデータ処理装置。
  11. データ要素の行を格納する方法であって、
    前記データ要素の行を受け取るステップと、
    前記行の記憶位置を示す入力アドレスを受け取るステップと、
    前記行の記憶位置に応じた量だけ前記行内のデータ要素を回転させるステップと、
    各データ要素について前記入力アドレスの関数としてバンクアドレスを割り当てるステップと、
    マルチバンクメモリに前記行を格納するステップと、
    を含み、
    それぞれのデータ要素はそれぞれのバンクのそれぞれのバンクアドレスに格納される方法。
  12. マルチバンクメモリからデータ要素のブロックを取得する方法であって、
    前記データ要素のブロックの記憶位置を示す入力アドレスを受け取るステップと、
    複数のメモリバンクについて前記入力アドレスの関数としてバンクアドレスを計算するステップと、
    前記メモリのうち前記メモリバンクについて計算されたバンクアドレスからそれぞれのデータ要素を有する行を取得するステップと、
    前記行の記憶位置に応じた量だけ前記行内のデータ要素を回転させ、前記回転されたデータ要素を有する行をブロックとして供給するステップと、
    を含む方法。
  13. 前記バンクアドレスを割り当てるステップは、
    画像におけるx位置を示す第1のデータとy位置を示す第2のデータとを含む入力アドレスを受け取るステップと、
    前記第1のデータを最上位部分および最下位部分に区分するステップと、
    前記第1のデータの最上位部分および前記第2のデータに基づき前記バンクアドレスを割り当てるステップと、
    を含む請求項11に記載の方法。
  14. マルチバンクメモリに2次元データを格納する方法であって、
    前記2次元データは少なくとも第1および第2の相互に独立した座標の関数としての値を含み、
    前記方法は、
    第1の座標(x)および第2の座標(y)についての値を受け取るステップと、
    バンクインデックスIBおよびバンク内のアドレスAを割り当てて前記値を格納するステップと、
    を含み、
    前記バンクインデックスIBはIB=Nb・yによる前記第1および第2の座標の両方の関数である方法。
JP2011551027A 2009-02-20 2010-02-22 マルチモードアクセス可能な記憶装置 Expired - Fee Related JP5552692B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15416809P 2009-02-20 2009-02-20
US61/154,168 2009-02-20
PCT/NL2010/050086 WO2010095944A1 (en) 2009-02-20 2010-02-22 Multimode accessible storage facility

Publications (2)

Publication Number Publication Date
JP2012518831A true JP2012518831A (ja) 2012-08-16
JP5552692B2 JP5552692B2 (ja) 2014-07-16

Family

ID=42124540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011551027A Expired - Fee Related JP5552692B2 (ja) 2009-02-20 2010-02-22 マルチモードアクセス可能な記憶装置

Country Status (5)

Country Link
US (1) US8762686B2 (ja)
EP (1) EP2399258B1 (ja)
JP (1) JP5552692B2 (ja)
KR (1) KR101412392B1 (ja)
WO (1) WO2010095944A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021053948A1 (ja) * 2019-09-20 2021-03-25 ソニー株式会社 画像処理装置と画像処理方法およびプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2399258B1 (en) 2009-02-20 2016-04-06 Intel Corporation Multimode accessible storage facility
WO2013106210A1 (en) 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
US11080183B2 (en) * 2019-08-13 2021-08-03 Elite Semiconductor Memory Technology Inc. Memory chip, memory module and method for pseudo-accessing memory bank thereof
US11782871B2 (en) 2021-04-27 2023-10-10 Microchip Technology Inc. Method and apparatus for desynchronizing execution in a vector processor
WO2022231683A1 (en) * 2021-04-27 2022-11-03 Microchip Technology Inc. Method and apparatus for gather/scatter operations in a vector processor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845640A (en) * 1987-03-11 1989-07-04 Megascan Technology, Inc. High-speed dual mode graphics memory
JPH0520183A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd メモリアクセス制御方式
JPH06333058A (ja) * 1993-05-21 1994-12-02 Ricoh Co Ltd 立体表現画像描画装置
JP2000090660A (ja) * 1998-09-11 2000-03-31 Sony Corp 記憶装置
JP2001022638A (ja) * 1999-07-05 2001-01-26 Hitachi Ltd 情報処理システム
JP2003084751A (ja) * 2001-07-02 2003-03-19 Hitachi Ltd 表示制御装置およびマイクロコンピュータならびにグラフィックシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2123998B (en) 1982-07-21 1986-10-22 Marconi Avionics Data memory arrangment
US6031546A (en) 1995-06-19 2000-02-29 Canon Kabushiki Kaisha Image processing apparatus and method
WO2000016260A1 (fr) 1998-09-11 2000-03-23 Sony Corporation Processeur de donnees et procede de conversion de sequences de donnees
US7694078B2 (en) * 2004-04-22 2010-04-06 Silicon Hive B.V. Data processing apparatus that provides parallel access to multi-dimensional array of data values
WO2006120620A2 (en) 2005-05-10 2006-11-16 Nxp B.V. Image processing circuit with block accessible buffer memory
JP2009538464A (ja) 2006-05-24 2009-11-05 エヌエックスピー ビー ヴィ 画像データのブロック及びラインベースの処理を実行する集積回路装置
EP2399258B1 (en) 2009-02-20 2016-04-06 Intel Corporation Multimode accessible storage facility

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845640A (en) * 1987-03-11 1989-07-04 Megascan Technology, Inc. High-speed dual mode graphics memory
JPH0520183A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd メモリアクセス制御方式
JPH06333058A (ja) * 1993-05-21 1994-12-02 Ricoh Co Ltd 立体表現画像描画装置
JP2000090660A (ja) * 1998-09-11 2000-03-31 Sony Corp 記憶装置
JP2001022638A (ja) * 1999-07-05 2001-01-26 Hitachi Ltd 情報処理システム
JP2003084751A (ja) * 2001-07-02 2003-03-19 Hitachi Ltd 表示制御装置およびマイクロコンピュータならびにグラフィックシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021053948A1 (ja) * 2019-09-20 2021-03-25 ソニー株式会社 画像処理装置と画像処理方法およびプログラム
JP7513032B2 (ja) 2019-09-20 2024-07-09 ソニーグループ株式会社 画像処理装置と画像処理方法およびプログラム

Also Published As

Publication number Publication date
JP5552692B2 (ja) 2014-07-16
US20120042149A1 (en) 2012-02-16
EP2399258A1 (en) 2011-12-28
KR20110121641A (ko) 2011-11-07
EP2399258B1 (en) 2016-04-06
WO2010095944A1 (en) 2010-08-26
US8762686B2 (en) 2014-06-24
KR101412392B1 (ko) 2014-06-25

Similar Documents

Publication Publication Date Title
JP5552692B2 (ja) マルチモードアクセス可能な記憶装置
KR101386767B1 (ko) 소스 이미지의 뒤틀린 버전을 표시하는 장치 및 방법
KR100804898B1 (ko) 이미지 회전을 위한 방법 및 장치
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
JPH06138856A (ja) 出力ディスプレイ・システム
JP5623494B2 (ja) ビデオデータのインターリーブされた記憶用のシステム
WO2008038204A2 (en) Data processing with a plurality of memory banks
JP2010108084A (ja) 画像処理装置
US10019349B2 (en) Cache memory and method of managing the same
KR101525874B1 (ko) 회전 이미지용 버퍼 메모리, 이를 포함하는 이미지 촬상 장치 및 디스플레이 장치
EP2024928B1 (en) Programmable data processing circuit
US20100011170A1 (en) Cache memory device
US20070030535A1 (en) Data scan system and data scan method using ddr
US8416252B2 (en) Image processing apparatus and memory access method thereof
JP2008278442A (ja) 画像処理装置
US7457937B1 (en) Method and system for implementing low overhead memory access in transpose operations
JP4735008B2 (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
JP4696515B2 (ja) メモリマッピング方法及びメモリインターフェイス回路
JP2005196361A (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
JP2005196360A (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
JP2006139666A (ja) 変換装置、画像形成装置
JP2010231425A (ja) データ入出力制御装置
KR20080044713A (ko) 데이터 처리장치 및 데이터 처리방법
JP2006309776A (ja) 画像データ記憶装置
JP2014099190A (ja) 画像表示システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140407

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140502

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140502

R150 Certificate of patent or registration of utility model

Ref document number: 5552692

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees