(57)【特許請求の範囲】
【請求項１】
ブロックアクセスモードでのブロックアクセスおよび行アクセスモードでの行アクセスを可能にするマルチモードアクセス可能な記憶装置(10)であって、
各々がそれぞれのバンクインデックス(0、…、F)を有する複数のメモリバンク(20.0、…、20.F)を備えるメモリユニット(20)と、
前記メモリバンクの各々について入力アドレスおよびシフトパラメータの関数として回転されたバンクアドレスを生成するアドレス発生器(30)と、
入力ベクトルを回転させ、前記回転された入力ベクトルのベクトル要素を前記メモリユニットのそれぞれのバンクに供給する入力ベクトルデータ回転器(40)と、
前記メモリユニットのそれぞれのバンクから取得されるベクトル要素を含むベクトルを逆に回転させ、該回転された出力ベクトルを供給する出力ベクトル回転器(50)と、
前記メモリユニット内にそれぞれの基準アドレスを有し、それぞれのブロックサイズに従ってアクセスを可能にする複数のプレーンと、
各々のプレーンについて、前記メモリユニット内の基準アドレスと、適用可能なブロックサイズとを示す値を含む少なくとも１つのレジスタ(217)を有するアクセスモードコントローラ(216)と、
前記マルチモードアクセス可能な記憶装置内のアドレス(ADDR1)を特定するアドレスラインの第１のセットと、前記アクセスモードコントローラ(216)にコマンド(CMND)を供給するアドレスラインの第２のセットとを有するアドレスポートと、
を備え、
前記アドレスラインの第２のセットは、動作モード指示ラインおよびアクセスモード指示ラインのうちの少なくとも１つを含み、前記アドレスラインの第２のセットはプレーン識別ラインを含むマルチモードアクセス可能な記憶装置。
【請求項２】
前記アドレス発生器(130)は、座標X,Yを有する第１の座標系からの座標を座標X*,Y*を有する第２の座標系にマッピングするマッピングユニット(134)を備え、前記第１の座標系のX座標はビットXnx1-1,…,X0によって定義され、前記第１の座標系のY座標はビットYny1-1,…,Y0によって定義され、前記第２の座標系のX*座標はビットX*nx2-1,…,X*0によって定義され、前記第２の座標系の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*座標を有する出力アドレスを生成する請求項１に記載のマルチモードアクセス可能な記憶装置。
【請求項３】
請求項１に記載のマルチモードアクセス可能な記憶装置(10)と、前記マルチモードアクセス可能な記憶装置に結合されたベクトル処理ユニット(74)とを有するデータ処理装置。
【請求項４】
前記複数のメモリバンクによって定義される総データ幅より大きい幅を有する画像の画像データを供給するデータ供給ユニット(90)をさらに有し、前記アドレス発生器は、前記データ供給ユニットからの画像データを一次セルとして編成し、各一次セルは前記総データ幅に対応する幅を有する請求項３に記載のデータ処理装置。
【請求項５】
前記一次セルは、前記データ供給ユニットによって供給される画像の高さより低い高さを有する請求項４に記載のデータ処理装置。
【請求項６】
マルチバンクメモリ内にデータ要素の行を格納する方法であって、
前記データ要素の行を受け取るステップと、
前記行の記憶位置を示す入力アドレスを受け取るステップと、
を含み、
前記入力アドレスは、モードが書き込みモードであることと、格納されるデータがデータ要素の行として配置されることと、データ要素の行が書き込まれる前記マルチバンクメモリのプレーンとを示すコマンド(CMND)を含み、
前記方法は、
前記示されたプレーンについて、前記マルチバンクメモリ内のプレーンの基準アドレスを示す値と、ブロック単位のデータアクセスに適用可能なブロックサイズを示す値とを取得するステップと、
前記行の記憶位置と、前記示されたプレーンについての前記示されたブロックサイズとに応じた量だけ前記行内のデータ要素を回転させるステップと、
各データ要素について、前記入力アドレスと、前記示されたプレーンについての前記示されたブロックサイズとの関数としてバンクアドレスを割り当てるステップと、
前記マルチバンクメモリの前記示されたプレーンに前記データ要素の行を書き込むステップと、
をさらに含み、
前記データ要素の行のそれぞれのデータ要素はそれぞれのバンクのそれぞれのバンクアドレスに格納される方法。
【請求項７】
マルチバンクメモリからデータ要素のブロックを取得する方法であって、
前記データ要素のブロックの記憶位置を示す入力アドレスを受け取るステップを含み、
前記入力アドレスは、モードが読み出しモードであることと、読み出されるデータがデータ要素のブロックとして配置されることと、データ要素のブロックが格納される前記マルチバンクメモリのプレーンとを示すコマンド(CMND)を含み、
前記方法は、
前記示されたプレーンについて、前記マルチバンクメモリ内のプレーンの基準アドレスを示す値と、ブロック単位のデータアクセスに適用可能なブロックサイズを示す値とを取得するステップと、
複数のメモリバンクについて、前記入力アドレスと、前記示されたブロックサイズとの関数としてバンクアドレスを計算するステップと、
前記マルチバンクメモリのうち前記示されたブロックサイズに基づいて前記メモリバンクについて計算されたバンクアドレスからそれぞれのデータ要素を有する行を取得するステップと、
前記行の記憶位置と、前記示されたブロックサイズとに応じた量だけ前記行内のデータ要素を回転させ、前記回転されたデータ要素を有する行をブロックとして供給するステップと、
を含む方法。
【請求項８】
前記バンクアドレスを割り当てるステップは、
画像におけるx位置を示す第１のデータとy位置を示す第２のデータとを含む入力アドレスを受け取るステップと、
前記第１のデータを最上位部分および最下位部分に区分するステップと、
前記第１のデータの最上位部分および前記第２のデータに基づき前記バンクアドレスを割り当てるステップと、
を含む請求項６に記載の方法。
【請求項９】
マルチバンクメモリに２次元データを格納する方法であって、
前記２次元データは少なくとも第１および第２の相互に独立した座標の関数としての値を含み、
前記方法は、
第１の座標(x)および第２の座標(y)についての値を受け取るステップと、
モードが書き込みモードであることと、書き込まれるデータがデータ要素のブロックとして配置されることと、データ要素のブロックが格納される前記マルチバンクメモリのプレーンとを示すコマンド(CMND)を取得するステップと、
前記示されたプレーンについて、前記マルチバンクメモリ内のプレーンの基準アドレスを示す値と、ブロック単位のデータアクセスに適用可能なブロックサイズを示す値とを取得するステップと、
前記示されたプレーンに応じて、前記取得された基準アドレスを用いて、バンクインデックスIBおよびバンク内のアドレスAを割り当てて前記値を格納するステップと、
を含み、
前記バンクインデックスIBはIB=(WB・y+x>>np) mod NBによる前記第１および第２の座標の両方の関数であり、WBは前記示されたプレーンについてのバンク数でのブロック幅であり、2npはバンクアドレス毎のデータ要素の数であり、NBは前記マルチバンクメモリ内のバンク数であり、前記アドレスABはAB=yである方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチモードアクセス可能な記憶装置に関する。
本発明は、さらに、データ要素の行を格納する方法に関する。
本発明は、さらに、データ要素のブロックを取得する方法に関する。
【背景技術】
【０００２】
多くの画像処理アルゴリズムでは、画像データの任意のブロックが迅速に利用できることが必要である。したがって、これらのアルゴリズムに対し、ブロック毎にアクセスが可能な記憶装置が必須である。一方、これらのアルゴリズムのための入力データは、通常、ラスタスキャン方式で線状に供給される。同様に、処理されたデータを再びラスタスキャン方式で供給することが必要な場合もある。リアルタイムの現実的なシーンレンダリングを可能とするように、処理速度およびラスタサイズに関するユーザ要件が急速に増大していることがさらに留意される。
【０００３】
特許文献１は、ブロックアクセス可能なバッファメモリを備えた画像処理回路について記載している。バッファメモリは、ウィンドウからのピクセル値を格納する複数行のメモリ回路を備えている。メモリ回路は、各々それぞれの行に対してシフト回路として設けられ、それぞれの行からグループへのピクセル値の割当てをシフトするように設けられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００６／１２０６２０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
標準的なマルチバンクメモリにおいて、ラスタスキャン方式でのアクセスとブロック単位のアクセスとをともに効率的にサポートする記憶装置を提供する必要がある。
【課題を解決するための手段】
【０００６】
本発明の第1の態様によれば、ブロックアクセスモードでのブロックアクセスおよび行アクセスモードでの行アクセスを可能にするマルチモードアクセス可能な記憶装置が提供され、この装置は、
各々がそれぞれのバンクインデックスを有する複数のメモリバンクを備えるメモリユニットと、
前記メモリバンクの各々につい入力アドレスおよびシフトパラメータの関数として回転されたバンクアドレスを生成するアドレス発生器と、
入力行を回転させ、回転された入力行のデータ要素をメモリユニットのそれぞれのバンクに供給する入力データ回転器と、
メモリユニットのそれぞれのバンクから取得されるデータ要素を含む行を逆回転させ、回転された出力行を供給する出力回転器と、
を備える。
【０００７】
本発明の第2の態様によれば、データ要素の行を格納する方法が提供され、この方法は、
行を受け取るステップと、
行の記憶位置を示す入力アドレスを受け取るステップと、
行の記憶位置に応じた量だけ行内のデータ要素を回転させるステップと、
各要素について入力アドレスの関数としてバンクアドレスを割り当てるステップと、
マルチバンクメモリに行を格納するステップと、を含み、それぞれのデータ要素はそれぞれのバンクのそれぞれのバンクアドレスに格納される。
【０００８】
本発明の第3の態様によれば、マルチバンクメモリからデータ要素のブロックを取得する方法が提供され、この方法は、
データ要素のブロックの記憶位置を示す入力アドレスを受け取るステップと、
複数のメモリバンクについて入力アドレスの関数としてバンクアドレスを計算するステップと、
前記メモリのうち前記メモリバンクに対して計算されたバンクアドレスからそれぞれのデータ要素を含む行を取得するステップと、
ブロックの記憶位置に応じた量だけ行内のデータ要素を回転させ、回転されたデータ要素を含む行をブロックとして供給するステップと、
を含む。
【０００９】
行アクセスモードでは、受け取られた行は、行の記憶位置、すなわちバンクにおけるアドレスに応じた量だけ回転される。したがって、後続するアドレスに格納される行は、相互に異なるように回転して格納される。回転は、循環シフトであるように理解される。したがって、NRだけ回転するということは、本来はインデックスIBのメモリバンクに割り当てられるデータが、代りに、NBがメモリバンクの数である場合、メモリバンクIB+NR mod NBに割り当てられることを示す。したがって、ブロックの異なる行のデータは、異なるメモリバンクに割り当てられる。これにより、ブロックアクセスモードにおいて前記データを同時に取得することが可能になる。ブロックアクセスモードでは、アドレス発生器は、メモリバンクの各々に対し、ブロックの適切なラインを取得するために、入力アドレスおよびシフトパラメータの関数として、回転されたバンクアドレスを生成する。
【００１０】
これらの態様および他の態様について、図面を参照してより詳細に説明する。
【図面の簡単な説明】
【００１１】
【図１】データ処理装置を概略的に示す図である。
【図２】複数のアクセスモードを示す図である。
【図３】本発明による記憶装置の実施形態を示す図である。
【図４】図３の実施形態の一部をより詳細に示す図である。
【図５】記憶装置の代替実施形態における前記部分を示す図である。
【図６Ａ】データ要素のマッピングを示す図である。
【図６Ｂ】データ要素のマッピングを示す図である。
【図７】実施形態に適したアドレス発生器の例示的な実施態様を示す図である。
【図８Ａ】データ要素のブロックの配置の第1の例を示す図である。
【図８Ｂ】データ要素のブロックの配置の第2の例を示す図である。
【図９】本発明による記憶装置のさらなる実施形態を示す図である。
【図１０】前記実施形態の一部をより詳細に示す図である。
【図１１Ａ】記憶装置の実施形態の2つの動作モードのうちの1つを示す図である。
【図１１Ｂ】記憶装置の実施形態の2つの動作モードのうちの1つを示す図である。
【図１２】記憶装置の実施形態におけるプレーンの内容を概略的に示す図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、本発明が十分に理解されるようにするために、多数の特定の詳細を示す。しかしながら、当業者には、本発明をこれらの特定の詳細なしに実施してもよいことが理解されよう。他の場合では、周知の方法、手続きおよび構成要素については、本発明の態様を不明瞭にしないように詳細には説明していない。
【００１３】
本発明を、本発明の実施形態が示されている添付図面を参照して以下により十分に説明する。しかしながら、この発明は、多くの異なる形態で具現化することができるものであり、本明細書に示す実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの実施形態を、この開示が綿密にかつ十分となるように、かつ当業者に本発明の範囲を十分に伝えるように提供する。1つの要素が別の要素に「接続されて」いるかまたは「結合されて」いると言及される場合、それは、他方の要素に直接接続されまたは結合されていてもよく、または介在する要素が存在してもよいことが理解されよう。一方、1つの要素が別の要素に「直接接続されて」いるかまたは「直接結合されて」いると言及される場合、介在する要素は存在していない。全体を通して、同様の番号は同様の要素を指す。本明細書で、「および/または」という用語は、関連する列挙された項目のうちの1つまたは複数のありとあらゆる組合せを含む。
【００１４】
本明細書において、さまざまな要素、構成要素および/または部分について述べるために第1の、第2の、第3の等という用語を用いる場合があるが、これら要素、構成要素および/または部分は、これらの用語によって限定されるべきではないことが理解されよう。これらの用語は、1つの要素、構成要素または部分を別の要素、構成要素および/または部分から識別するためにのみ用いられている。したがって、後述する第1の要素、構成要素および/または部分を、本発明の教示から逸脱することなく、第2の要素、構成要素および/または部分と呼ぶことができる。
【００１５】
特に定義しない限り、本明細書で用いるすべての用語(技術的用語および科学的用語を含む)は、本発明が属する技術分野における当業者が一般に理解する意味と同じ意味を有している。一般に用いられる辞書で定義される用語等の用語は、関連技術との関連におけるそれらの意味と一致する意味を有しているものと解釈されるべきであり、本明細書において明示的に定義しない限り、理想化されたまたは過度に形式的な意味で解釈されないことがさらに理解されよう。本明細書で言及するすべての出版物、特許出願、特許および他の参考文献は、開示内容がすべて参照により本明細書に組み込まれる。矛盾する場合、定義を含めて本明細書が優先する。さらに、材料、方法および例は、単に例示するものであって、限定するものであるようには意図されていない。
【００１６】
図１は、概して、データ処理装置を示す。装置は、ベクトルデータVload/Storeを記憶装置10と交換するベクトル処理ユニット74を有するVLIWプロセッサ70を備えている。VLIWプロセッサ70は、プログラムカウンタPCを生成し、プログラムカウンタが示すプログラムメモリ80のアドレスからVLIW命令IVLIWを取得する。この場合、VLIWプロセッサ70は、データSLSをスカラデータメモリ60と交換するスカラ処理ユニット72を有している。この実施形態では、スカラプロセッサ72は、プログラムカウンタPCを生成する役割を有している。データ処理装置は、特にさまざまな特性の画像データのような２次元データを処理するのに適している。
【００１７】
図２は、記憶装置用の複数のアクセスモードを示す。行アクセスモード10Aによれば、記憶装置は行単位でアクセスされる。そのアクセスモードでは、一行の要素が同時にアクセスされ、すなわちメモリに書き込まれるかまたはメモリから読み出される。これは、記憶装置が他の装置とデータを交換する時、たとえばデータがスキャナまたはカメラから取得される時か、またはデータがフレームバッファに供給される時のデータアクセスの一般的な方法である。しかしながら、画像処理タスクに対し、他のアクセスモード、たとえば列アクセスモード10Bまたはブロックアクセスモードも必要である。画像処理アルゴリズムのタイプに応じて、たとえばアクセスモード10Cによる4×4ブロック、アクセスモード10Dによる8×2ブロック、またはアクセスモード10Eによる2×8ブロックへのアクセスが必要な場合がある。列(10B)を、1×16ブロックとみなすことができる。
【００１８】
図３は本発明による記憶装置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)を生成する。
【００２３】
図４は、アドレス発生器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はブロックアクセスモードを示す。
【００２４】
図５において、図４のものに対応する部分は、100を足した参照数字を有している。図５は、本発明による記憶装置の別の実施形態のアドレス発生器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
このアドレスマッピングの例を、図６Ａ、図６Ｂを参照して説明する。図６Ａは、幅Wが2048ピクセルであり高さHが2048ピクセルである画像を概略的に示す。したがって、この実施形態では、nx1=11、ny1=11である。画像は、幅64ピクセルおよび高さ8ピクセルの一次セルに分割される。一次セルは、左から右へかつ上から下へ順序付けられている。これらの一次セルのうちの4つを、それらの番号0、31、32、63によって示す。マッピングユニット134によるアドレスマッピング後、画像データは、図６Ｂに概略的に示すように配置される。この第2の座標系X*,Y*は、以下のように入力座標系X,Yに関係する。
X*=X5,…,X0
Y*=Y10,…,Y3,X10,…,X6,Y2,…,Y0
ここで、nx2=6、ny2=16、n=5、m=3である。
【００２５】
図７は、アドレス発生器30の例示的な実施態様を示す。図７では、ブロック座標発生器302において、アドレス指定されるブロックの１つの要素の座標(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は、以下に従って計算される。
【００３４】
【数１】
0005552692.tif 000002
【００３５】
したがって、ブロック幅WBが2バンクである例では、計算は
【００３６】
【数２】
0005552692.tif 000003
【００３７】
となり、以下のオフセットのシーケンスが得られる。
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から導出される。
【００４０】
【数３】
0005552692.tif 000004
【００４１】
ここで、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はバンクアドレス毎のデータ要素の数である。
【００４５】
図８Ａは、ブロック幅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ピクセルに等価であることを意味する。しかしながら、他のブロックサイズを選択してもよい。図８Ｂは、たとえば、同じ記憶装置において、幅が16ピクセルであって高さが4ピクセルであるブロックの形態の取得に適しているデータをいかに格納し得るかを示す。この場合、後続する行の各々は、4バンク回転する。たとえば図９に関して示すように、記憶装置は、異なるプレーンを有することができる。第1のプレーンは、たとえば、16×4ブロックとしてアクセスされるデータを格納することができ、別のプレーンはたとえば8×8ブロックとしてデータを格納することができる。
【００４９】
行を、行番号の単純な関数である量だけ回転させることは不要である。ブロックの別個の行が別個のバンクに格納されることで十分である。たとえば、出力回転器により逆関数が既知であれば、入力回転器により疑似乱数関数を用いてもよい。
【００５０】
行読出しアクセスモード中、行yを読み出している時、出力回転器50により、SL個のバンクの量の逆回転が適用される。ここで、SL=WB・yである。
【００５１】
ブロック書込みアクセスモード中、アドレス発生器30は、メモリバンク20.0、…、20.Fの各々に対し、以下のように入力アドレスおよびシフトパラメータの関数として、回転したバンクアドレスを生成する。
【００５２】
【数４】
0005552692.tif 000005
【００５３】
ここで、NROWはブロックの行の許容可能な最大数であり、IBはバンクインデックスであり、x0、y0は取得されるブロックの基準座標、たとえば左上隅を示す。ブロックの水平位置は、ブロックの左上データ要素のバンクインデックスIBに対応する。
【００５４】
ブロックの行の許容可能な最大数NROWは、バンクの数NBをブロックの幅WBで割った数である。
【００５５】
例として、図８Ａでは第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)である。
【００５６】
図１に示すデータ処理装置は、任意に、(破線で示す)データ供給ユニット90を有し、それは、記憶装置10の複数のメモリバンクによって定義される総データ幅より大きい幅の画像の画像データを供給する。したがって、図５に関して説明したように別のアドレス発生器130が供給される。画像供給ユニット90はカメラまたは別のメモリであってもよい。
【００５７】
図９は、本発明によるマルチモードアクセス可能な記憶装置210のさらなる実施形態を示す。ここで図３のものに対応する部分は、100を足した参照数字を有している。図９に示す実施形態では、記憶装置210はアドレス解析器214を備えており、それは、アドレスポートに供給されるアドレスADDRを、記憶装置210内のアドレスADDR1を特定するアドレスラインの第1のセットと、コマンドCMNDをアクセスモードコントローラ216に供給するアドレスラインの第2のセットとに分離する。
【００５８】
実施形態では、アドレスADDRの最上位部分がコマンドCMNDを形成する。例として、コマンドは以下のフィールドから構成される。
<モード(2)>|<R/B(2)>|<プレーンID(4)>  →  ニブル(4ビット)に位置合わせされる8ビット
これらのフィールドは以下の意味を有する。
【００５９】
【表１】
0005552692.tif 000006
【００６０】
第1のコマンドビットはアクセスモードを確定する。第1のアクセスモード(ベクトル単一アドレス指定)では、記憶装置210は、従来のメモリとしてアクセス可能である。したがって、アドレス発生器230はアドレス回転を行わず、入力回転器240および出力回転器250は非アクティブ状態である。２次元(2D)アクセスモードでは、記憶装置210は、行アクセスR/B=00とともにブロックアクセスR/B=01を可能にする。
【００６１】
この実施形態による記憶装置210では、記憶空間を、一意の特性を有するさまざまな部分(ここではプレーンとして示す)に細分することができる。これらのプレーンに対する設定を定義するために、記憶装置210は、プレーンアクセスモード(モード=11)として示すさらなるアドレス指定モードを有する。アクセスされるプレーンは、プレーンIDフィールドによって示される。この場合、16の異なるプレーンを定義することができるが、他の実施形態では、数がより多いか少ないプレーンを可能とすることができる。
【００６２】
図１０に示すように、アクセスモードコントローラ216は、制御ロジック218およびプレーンレジスタファイル217を備えている。
【００６３】
各プレーンに対する設定を、プレーンレジスタファイル217においてそれぞれのレジスタによって定義することができる。これらのレジスタは以下のフィールドを有することができる。
【００６４】
【表２】
0005552692.tif 000007
【００６５】
図１１Ａは、標準プレーンアクセスの例を示す。図１１Ｂは、インタリーブプレーンアクセスの例を示す。後者のアクセスモードは、各ベクトル要素がLUMAおよびCHROMA成分を有する場合に適している。その場合、データは、インタリーブ方式でプレーン幅が2倍(2048×2=4096)であるものとして表すことができる。このインタリーブ方式では、各奇数ラインは、LUMA成分を含み、(グレーで示す)後続する偶数ラインは対応するCHROMA成分を含む。このインタリーブは、LUMA/CHROMA成分ベクトルの各々に対して別個の基準アドレスを生成しないストリーミングインタフェースに対して必要である場合がある。各成分タイプのブロックを、奇数ラインまたは偶数ラインのいずれかをアドレス指定することにより別個に取得することができる。
【００６６】
図１２は、第1の座標系において、幅が2048ピクセルであり高さが16ピクセルである記憶装置のプレーンの内容を概略的に示す。ピクセルはそれらのアドレスAによって示され、A=X+2048×Yである。図示する実施形態では、記憶装置は、16バンクを有するメモリを備えている。各メモリ要素は、16ビットの4ベクトル要素を有している。すべてのビットを必ずしも使用する必要はない。実施形態では、たとえば、ベクトル要素毎に9ビットが使用される。プレーンは、長さが64ビットである1024ベクトルの記憶容量を有している。左上隅において、いくつかのベクトルが白およびグレーで示されている。すなわち、第1のベクトルはアドレス0〜63を占有する。第2のベクトルは、64〜127を占有する、等である。図１２は、さらに、この記憶装置内のピクセルのブロックのアドレス指定可能性を概略的に示す。開始アドレス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  プレーンレジスタファイル
【図１】
0005552692.tif 000008
【図２】
0005552692.tif 000009
【図３】
0005552692.tif 000010
【図４】
0005552692.tif 000011
【図５】
0005552692.tif 000012
【図６Ａ−６Ｂ】
0005552692.tif 000013
【図７】
0005552692.tif 000014
【図８Ａ】
0005552692.tif 000015
【図８Ｂ】
0005552692.tif 000016
【図９】
0005552692.tif 000017
【図１０】
0005552692.tif 000018
【図１２】
0005552692.tif 000019
【図１１Ａ】
0005552692.tif 000020
【図１１Ｂ】
0005552692.tif 000021