JP5884037B2 - データ処理装置、データ処理方法及びデータ共有システム - Google Patents

データ処理装置、データ処理方法及びデータ共有システム Download PDF

Info

Publication number
JP5884037B2
JP5884037B2 JP2012534484A JP2012534484A JP5884037B2 JP 5884037 B2 JP5884037 B2 JP 5884037B2 JP 2012534484 A JP2012534484 A JP 2012534484A JP 2012534484 A JP2012534484 A JP 2012534484A JP 5884037 B2 JP5884037 B2 JP 5884037B2
Authority
JP
Japan
Prior art keywords
address
data
memory
arrangement
access
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.)
Expired - Fee Related
Application number
JP2012534484A
Other languages
English (en)
Other versions
JPWO2012124251A1 (ja
Inventor
浅井 幸治
幸治 浅井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2012534484A priority Critical patent/JP5884037B2/ja
Publication of JPWO2012124251A1 publication Critical patent/JPWO2012124251A1/ja
Application granted granted Critical
Publication of JP5884037B2 publication Critical patent/JP5884037B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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)
  • General Engineering & Computer Science (AREA)
  • Image Input (AREA)

Description

本発明は、動画、静止画等のデータを処理するデータ処理装置に関し、特にメモリのアクセス効率の改善に関する。
メモリの大容量化やプロセッサの処理性能の向上を背景として、近年、画像処理で扱われる画像は高解像度化しており、例えば水平1920画素×垂直1080画素のHD(High Definition)動画を扱うアプリケーションソフトウェアも増加しており、現在から将来にかけて、水平4000画素×垂直2000画素前後の所謂4K2Kの動画やそれ以上の画素数の動画が扱われるようになる。
このような高解像度の画像処理は高負荷なため、マルチプロセッサシステムにおいて各プロセッサに並列処理させる手法を始めとして、画像処理性能の向上のために各種手法が利用及び開発されている。その手法には、メモリアクセス効率を高めることに注目したものもある。
例えば、従来、マルチプロセッサシステムにおいて、各プロセッサがプロセッサ間で共有するデータのうち自プロセッサに必要なものを選択して自プロセッサ専用メモリに複製する方式により、メモリ利用効率の向上を実現する技術が知られている(例えば、特許文献1参照)。
ところで、一般に画像処理アプリケーションソフトウェアは、画像データをSDRAM(Synchronous DRAM)に格納して、画像を構成する各画素データを順次読み出して表示する等の処理を行う。
ここで、SDRAMを構成する各バンクにはロウアドレス及びカラムアドレスの指定によりアクセスできる。バースト転送機能により、同一バンクの同一ロウアドレスを指定して、各カラムアドレスで指定されるメモリ領域の各データに連続してアクセスすることができるが、連続して同一バンクの異なるロウアドレスへのアクセスが必要となる場合には、その都度必要となる所謂プリチャージコマンド及びアクティベートコマンドについて各コマンドには一定期間待って発行しなければならないというインターバル制約があるため、メモリアクセス効率が低下する。
なお、上述の特許文献1記載の技術を用いても、データを複数のSDRAMそれぞれに複製するだけにすぎないため、個々のSDRAMに対する連続アクセスに由来する上述したようなメモリアクセス効率の低下は防ぐことができない。
このメモリアクセス効率の低下を防ぐ技術として、複数のSDRAMに2次元配置された複数の描画ブロックからなるフレームバッファ領域を割り付け、特に、隣り合う描画ブロックに異なるSDRAMを割り付ける技術が知られている(例えば、特許文献2参照)。
国際公開第2009/116279号パンフレット 特開2005−196485号公報
しかしながら、例えば画像処理であるH.264/MPEG AVCのMPEGエンコード処理の過程での所謂動き探索(動き補償)処理では、マクロブロック又はサブマクロブロック毎についてフレーム画像中の各位置の部分画像を逐次読み出して処理する必要があり、このような任意の位置の部分画像への連続的なアクセスは、必ずしも隣接する描画ブロックに対するものとはならないため、上述の特許文献2記載の技術では対応できず、同一バンクで異なるロウアドレスで指定されるメモリ領域に対してなされ得るので、メモリアクセス効率の低下を招き得る。なお、このようなメモリにおける同一バンクで異なるロウアドレスで指定される各メモリ領域に連続してアクセスすることで生じる問題は、必ずしも画像データに係る処理のみの問題ではない。
そこで、本発明は上記問題に鑑みてなされたものであり、画像或いは文字その他のデータを処理する過程で、具体的には例えば画像における任意の各位置の各部分画像に逐次アクセスする、或いは文字列中における任意の各位置の各文字に逐次アクセスする過程等において、連続的なアクセスの対象となる各メモリ領域が、メモリにおける同一バンクで互いに異なるロウアドレスで指定される領域となる頻度を低減させるようにして、効率のよいメモリアクセスを実現し得るデータ処理装置、及び当該装置に関連する技術を提供することを目的とする。
上記課題を解決するために本発明に係るデータ処理装置は、複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、 前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであることを特徴とする。
上述の構成により、本発明に係るデータ処理装置は、同じデータが2つの配置様式によりそれぞれ配置された各メモリ領域のうち、データの一部の読み出しの都度、アクセス効率のよい方を選択してアクセスすることで、全体としてメモリアクセス効率の向上を達成し得る。
本発明の実施形態に係るデータ共有装置100の機能ブロック図 アクセス管理部の機能ブロック図 メモリ1000に対する第1の配置様式によるアドレスマッピングを示す図 描画ブロックの構成を示す図 メモリ2000に対する第2の配置様式によるアドレスマッピングを示す図 データ共有装置100の計算機の動作を示すフローチャート 他の計算機からアクセス要求を受けた計算機の動作を示すフローチャート 選定処理を示すフローチャート メモリ2000への制御信号等のタイムチャート メモリ1000へのアクセスを仮定した場合のタイムチャート 3台の計算機を有するデータ共有装置の機能ブロック図 配置様式のバリエーションを示す図 データ処理装置の機能ブロック図 データ共有システムの機能ブロック図
<実施形態>
以下、本発明の一実施形態に係るデータ共有装置100について説明する。
<全体概要>
データ共有装置100は、マルチプロセッサ(ここでは2つのプロセッサとする。)で構成されH.264/MPEG AVCのMPEGエンコード処理に用いられる装置である。
MPEGエンコード処理の過程では、撮像により得られるHD(High Definition)動画の各フレーム画像、つまり水平1920画素、垂直1080画素からなる2次元画像のデータを、メモリに逐次格納し、処理対象のフレーム画像中の各部分画像(マクロブロック、サブマクロブロック等)毎について参照用のフレーム画像中における各位置の部分画像を読み出して類似内容の部分を探すための所謂動き探索(動き補償)が行われる。
このデータ共有装置100では、連続アクセス可能なメモリ単位に対応付けたアドレス空間における描画ブロック(後に詳しく説明する。)についてのアドレス境界との関係において、互いに異なる2つの位置のメモリ領域にフレーム画像が配置されるようにアドレスマッピングを行い、フレーム画像中の任意の位置の部分画像が読み出される必要のある都度、その部分画像の位置に応じて、アドレスマッピングされた2つのアドレス範囲に基づいてメモリアクセス効率が良くなる方のメモリ領域を選択してアクセスする。
<メモリアクセス制御>
まず、データ共有装置100の特徴となるメモリアクセス制御について簡単に説明する。
データ共有装置100(図1参照)におけるメモリ1000及びメモリ2000は、2つのプロセッサ210及び310それぞれに接続されたSDRAM(Synchronous DRAM)群であり、2つのSDRAM(メモリ0、メモリ1)で構成する。これらのSDRAMは、4バンク構成であり、チップセレクト信号でメモリを、バンクアドレスによりバンクを指定でき、各バンク内にはロウアドレス及びカラムアドレスの指定でアクセスできる。バースト転送機能により、同一ロウアドレスを指定して、512個のカラムアドレスで指定される各8バイトデータに連続してアクセスすることができるが、異なるロウアドレスへのアクセスが発生した場合には、プリチャージコマンド及びアクティベートコマンドの発行の際に各コマンドは一定期間待って発行しなければならなくなるため、同一バンクの異なるロウアドレスへのアクセスが頻発するとメモリアクセス効率が低下する。
このデータ共有装置100では、HD動画のフレーム画像をメモリに格納する場合に用いるアドレスマッピングとして2つの配置様式を用いることで、同じフレーム画像を2つのメモリ領域へと格納する。
2つの配置様式は、共に、X方向のアドレス(Xアドレス)とY方向のアドレス(Yアドレス)とで定まる2次元アドレス空間(XY2次元アドレス空間)に、メモリの同一バンク同一ロウアドレスで定まるブロックに対応付けた描画ブロックを、2次元的に配置するものであり、2次元画像(画像データを構成する各画素データ)をメモリに格納するためのアドレスマッピングに際して、その2次元画像における各画素の2次元座標(水平方向のx座標及び垂直方向のy座標)に基づいてXアドレスとYアドレスとを定める。但し2つの配置様式は、互いに、2次元アドレス空間における描画ブロック間の境界となるアドレスと2次元画像との相対位置関係を異ならせるような配置様式である。
本実施形態では具体的には、論理的なXY2次元アドレス空間においてX方向のアドレスは8バイトに相当するカラム単位で、Y方向のアドレスは、X方向のカラムが何列となるかというライン単位で表す。2次元に配置された各描画ブロックのX方向の境界アドレスは16×N(Nは0以上の整数)で表され、各描画ブロックのY方向の境界アドレスは32×M(Mは0以上の整数)で表される。また、1カラムにおいて水平8画素分、垂直1画素分の画像データを表すものとする。各描画ブロック毎に、物理アドレスとして同一バンク同一ロウアドレスで定まるSDRAMのメモリセル群の1ブロックを対応付けることで、アクセスすべきデータの論理的なXY2次元アドレス空間におけるアドレスが定まれば、SDRAM中のデータに実際にアクセスする際の物理アドレス(メモリ、バンク、ロウアドレス、カラムアドレス)が定まるようにしている。なお、XY2次元アドレス空間における近接する描画ブロック同士は、互いに異なるバンクに対応付けている。
また、第1の配置様式によりアドレスマッピングした画素データのYアドレスがY0であるとすれば、第2の配置様式によりアドレスマッピングした同じ画素データのYアドレスはY0+16となる。なお、1つの描画ブロック内にアドレスマッピングされた画素データ群は、同一バンク同一ロウアドレスに対応付けられているため、連続的にアクセスできる。
そして、このデータ共有装置100では、動き探索処理等においてフレーム画像内の各位置の部分画像を逐次読み出す際において、部分画像毎に、フレーム画像内でのその部分画像の位置に応じて、2つの配置様式のうちどちらによりアドレスマッピングされたメモリ領域にアクセスした方が効率的かを判断するための判断基準に照らして一方を選択して、選択結果に従ってアクセスする。この判断基準は、部分画像がマッピングされたアドレス範囲が跨る描画ブロックの数が少ない方が効率的と判断するというものである。
従って、各プロセッサによりMPEGエンコード処理を並列的に実行するデータ共有装置100において、フレーム画像中における任意位置の部分画像についての1回の読み出しに際して描画ブロックへのアクセス数を抑えることが、アクセス性能の向上に繋がり、また、総合的には、連続して同一バンクで異なるロウアドレスへのアクセスが生じる頻度を抑えることで無駄なメモリ帯域の浪費を防止できることに繋がるので、効率的となる。
<構成>
以下、本実施形態に係るデータ共有装置100について、特に画像データに係るアクセスに関連する構成を詳細に説明する。
図1に示すように、データ共有装置100は、計算機200及び計算機300により構成され、計算機200及び計算機300は、インタフェース270及びインタフェース370を介して接続されており、計算機200はSDRAMチップ群であるメモリ1000と、計算機300はSDRAMチップ群であるメモリ2000とそれぞれ接続されている。
以下、計算機200の構成について説明する。
図1に示すように、計算機200はプロセッサ210及び各種回路群で構成され、各種回路群を機能面で区別すれば、アクセス管理部220、調停部240、調停部241、入力管理部250、出力管理部260、インタフェース270、メモリ制御部280及びアクセス置換部290となる。
プロセッサ210は、メモリに格納されたプログラムを実行することにより例えばMPEGエンコーディング処理の各種段階の処理の制御を行い、その処理に際して画像データを書き込み又は読み出すため、メモリ1000又はメモリ2000へのアクセス要求を出し、メモリアクセスを行う。即ち、プロセッサ210は、各フレーム画像に係るデータの書き込み要求、及び各マクロブロックに対応する部分画像を探すための動き探索処理のための部分画像に係るデータの読み出し要求等のアクセス要求を出力する機能を有する。なお、読み出し要求出力後、プロセッサ210は、アクセス効率のよいと判断された方のメモリからデータを読み出すことになる。ここで、アクセス要求(書き込み要求或いは読み出し要求)は、書き込み要求か読み出し要求かを識別するための属性を伴うものであり、また、アクセス対象となる画像データの左上の画像アドレス(x座標、y座標)及びサイズ(x方向の幅及びy方向の幅)を伴うものである。
アクセス管理部220は、プロセッサ210からのアクセス要求を管理する機能、即ちアクセス要求を解析して送り先を特定してその送り先にアクセス要求を送る機能を有し、図2に示すように、アクセス解析部230、アクセス制御部221、アクセス置換部222及びアドレス特定部223を含む。
アドレス特定部223は、2次元画像データに関して画像アドレス(x座標、y座標)に基づいて、メモリ1000用の第1の配置様式に従ってXY2次元アドレス空間におけるアドレスを特定するとともに、メモリ2000用の第2の配置様式に従ってXY2次元アドレス空間におけるアドレスを特定する機能を有する。画像フレームの左上位置を、第1の配置様式では、XY2次元アドレス空間におけるXアドレスの値16×N(Nは0以上の整数、例えば0)、Yアドレスの値32×M(Mは0以上の整数、例えば0)に対応付け、第2の配置様式では、Xアドレスの値16×N、Yアドレスの値32×M+16に対応付ける。
アクセス置換部222は、XY2次元アドレス空間におけるアドレスを、メモリ1000における物理アドレスに変換する機能を有する。なお、このアクセス置換部222及びアドレス特定部223によるアドレスマッピングについては、後に更に詳しく説明する。
アクセス解析部230は、プロセッサ210からのアクセス要求を解析する機能を有し、アクセス属性判定部231、アクセス分割部232及び選定部233を含む。アクセス解析部230に入力されるアクセス要求は、2次元画像データに関しては矩形画像の左上及び右下の画像アドレス(x座標、y座標)を伴うものであり、またアクセス解析部230から出力されるアクセス要求は、同一バンク同一ロウアドレスのメモリセル群に対応する描画ブロックを2次元に配置してなる論理的なXY2次元アドレス空間におけるアドレスを伴うものである。ここでは、x座標及びy座標で各画素位置が指定されるxy2次元画像データにおいて、x座標の増加する方向を右、y座標の増加する方向を下と表現する。従って矩形画像の左上は、矩形画像を構成する各画素の座標のうち最小のx座標、y座標で示される。
アクセス属性判定部231は、アクセス要求が書き込み要求か読み出し要求かを判定する機能を有する。
アクセス分割部232は、データの書き込みに際してメモリ1000及びメモリ2000の両方に同じデータを書き込ませるために、メモリ1000に対するアクセス要求(書き込み要求)とメモリ2000に対するアクセス要求(書き込み要求)とに分けて出力する機能を有する。
選定部233は、読み出し要求の対象となる部分画像データを、メモリ1000とメモリ2000とのいずれから読み出す方が、アクセス効率がよいかを判断して、アクセス効率のよい方を選定する機能を有する。この判断において、アドレス特定部223により、その部分画像の第1の配置様式におけるアドレス範囲と、第2の配置様式におけるアドレス範囲とを求め、各アドレス範囲がXY2次元アドレス空間における描画ブロック境界を何個跨いでいるか、即ち、各アドレス範囲が何個の描画ブロックに跨っているかを算定し、その個数が少ない方の配置様式に対応するメモリを、アクセス効率のよいものとして選定する。
アクセス制御部221は、アクセス解析部230の解析結果に基づき、アクセスするメモリを選択し、選択したメモリにアクセスするように制御する機能を有する。アクセス解析部230が解析した結果、アクセス要求が書き込み要求であった場合は、メモリ1000及びメモリ2000の両方へのデータの書き込みを実現すべくアクセス分割部232により2つに分けられたアクセス要求をそれぞれアクセス置換部222と出力管理部260に伝える。また、アクセス要求が読み出し要求であった場合は、アクセス要求を選定部233の選定結果に基づき、メモリ1000から読み出す場合にはアクセス置換部222に伝え、メモリ2000からデータを取得する場合には出力管理部260に伝える。
アクセス置換部222は、メモリ1000に対する書き込み及び読み出しを行うためにXY2次元アドレス空間の論理アドレスに基づいて、従来同様の、近接する描画ブロック同士を互いに異なるバンク(SDRAMチップを異ならせることも含む)に対応付けるためのアルゴリズムにより、SDRAMに対し指定するための物理アドレスを生成する機能を有する(特許文献2参照)。
入力管理部250は、計算機300からメモリ1000へのアクセス要求を管理する機能を有する。入力管理部250は、インタフェース270を介して送られてきたアクセス要求を受け取り、アクセス置換部290に送る。なお、アクセス置換部290はアクセス置換部222と同一の機能を有し、計算機300からのXY2次元アドレスを伴うアクセス要求に基づいて、メモリ1000に指定するための物理アドレスを生成する。
出力管理部260は、計算機200からの計算機300へのアクセス要求を、計算機間のインタフェース整合を図るためのインタフェース270を介して計算機300に送る機能を有する。
調停部240は、プロセッサ210からのメモリ1000に対するアクセスと計算機300からのメモリ1000に対するアクセスとの競合を調停する機能を有する。また、調停部241は、計算機300からのインタフェース270を介するアクセス要求の入力と計算機300へのインタフェース270を介するアクセス要求の出力との競合を調停する機能を有する。
メモリ制御部280は、アクセス要求に従ってメモリ1000へのデータの書き込み又はメモリ1000からのデータの読み出しを行うために、書き込みか読み出しかの区別や物理アドレスに応じた制御信号(コマンド等)を出力することで、メモリ1000を制御する機能を有する。
また、計算機300は、プロセッサ310、アクセス管理部320、調停部340、調停部341、入力管理部350、出力管理部360、インタフェース370、メモリ制御部380及びアクセス置換部390を備え、これらの構成要素は、上述した計算機200における対応する各部と同様の機能を有する。
<アドレスマッピング>
図3は、メモリ1000用の第1の配置様式によるHDフレーム画像のXY2次元アドレス空間への対応付けと、XY2次元アドレス空間とSDRAMのアドレス指定との対応付けとを表した図である。
XY2次元アドレス空間は、同一SDRAMにおける同一バンク同一ロウアドレスで指定されるブロック(メモリセル群)に対応付けた描画ブロックを2次元に配置したものである。図3では、描画ブロックの境界を破線で示しており、また、1つのフレーム画像が割りつけられた範囲だけを示している。ここでは、水平1920画素×垂直1080画素からなるHDフレーム画像の左上がXY2次元アドレス空間のXアドレスが0でYアドレスが0の位置に対応付けられたものとしている。このとき、フレーム画像は、X方向に15個の描画ブロック、Y方向に34個の描画ブロックに割り付けられている。
図3に破線で示した描画ブロックのうち左上のものを例にして、描画ブロック内と画素との関係を図4に示す。
図4に示すように描画ブロックは、Xアドレスの幅が16(つまり128バイト分)、Yアドレスの幅が32であり、同一ロウアドレスでアクセスできる範囲つまり512カラムアドレスでアクセスできるものである。1カラムアドレスあたり8バイト記憶されるため、1画素1バイトというデータ構成においては、1カラムが8画素分のデータに対応する。この1つの描画ブロックに、水平128画素分、垂直32画素分のデータを配置することができる。
図5は、メモリ2000用の第2の配置様式によるHDフレーム画像のXY2次元アドレス空間への対応付けと、XY2次元アドレス空間とSDRAMのアドレス指定との対応付けとを表した図である。この図5でも、描画ブロックの境界を破線で示しており、また、1つのフレーム画像が割りつけられた範囲だけを示している。ここでは、Y方向に16ラインのオフセットを付けて、水平1920画素×垂直1080画素からなるHDフレーム画像の左上がXY2次元アドレス空間のXアドレスが0でYアドレスが16の位置に対応付けられたものとしている。
図3及び図5から明らかなように、第1の配置様式によりフレーム画像が割り付けられたXY2次元アドレス空間におけるアドレス範囲は、第2の配置様式によりフレーム画像が割り付けられたアドレス範囲とY方向に16つまり描画ブロックの半分だけずれている。
フレーム画像中のある画素のデータについて、第1の配置様式で定まるXアドレスをX1、YアドレスをY1とし、第2の配置様式で定まるXアドレスをX2、YアドレスをY2とした場合、それぞれの関係は以下の式で表される。
(数式1)X2=X1
(数式2)Y2=Y1+16
なお、画素データの2次元座標を(x0,y0)とすると、第1の配置様式で定まるXアドレスの値X1、Yアドレスの値Y1は、以下の式で表される。
(数式3)X1=int(x0/8)
(数式4)Y1=y0
ここで、数式中のintは小数部を切り捨てて整数化することを示す。
なお、図3及び図5には、動き探索処理の対象としてあるときに連続的にアクセスすることとなる矩形画像の例である矩形0、矩形1に対して第1の配置様式と第2の配置様式とでは異なるアドレスが対応付けられていることが表れている。
また、図3及び図5では、XY2次元アドレス空間における各描画ブロックがアクセス置換部によってメモリのどのブロックと対応付けられるかも表している。図3及び図5における「メモリ0」、「メモリ1」は、メモリ1000及びメモリ2000の各々を構成するSDRAMチップ群の個体を区別したものである。
<動作>
以下、上述の構成を備えるデータ共有装置100の動作について説明する。
図6は、計算機200のプロセッサ210による画像データのアクセスに係る動作を示すフローチャートである。
同図に示すように、計算機200のプロセッサ210からのアクセス要求を受けてアクセス属性判定部231は、アクセス要求の属性に基づいて書き込み要求であるか読み出し要求であるかを判定する(ステップS1、S2)。
アクセス要求が書き込み要求であった場合は、アクセス要求に係るアクセス対象となる画像データの左上の画像アドレス(x座標、y座標)及びサイズ(x方向の幅及びy方向の幅)に基づきアドレス特定部223により、第1の配置様式及び第2の配置様式により画像データのXY2次元アドレス空間における各アドレス範囲を特定し、その結果に基づいてアクセス分割部232により、第1の配置様式で定められたアドレス範囲を伴わせたメモリ1000宛てのアクセス要求と、第2の配置様式で定められたアドレス範囲を伴わせたメモリ2000(計算機300)宛てのアクセス要求とを生成してアクセス制御部221に伝達する(ステップS3)。アクセス制御部221は、メモリ1000に対するアクセス要求を、アクセス置換部222に送り、アクセス置換部222は、アクセス要求に係るXY2次元アドレス空間のアドレス範囲に基づいてメモリ1000にアクセスするための物理アドレスに変換し、調停部240及びメモリ制御部280を介してメモリ1000へのデータ書き込みの制御を行う(ステップS4)。
また、アクセス制御部221は、メモリ2000に対するアクセス要求を、出力管理部260に送り、出力管理部260は、調停部241、インタフェース270を経由させて、計算機300にアクセス要求(書き込み要求)を送る(ステップS5)。
ここで、ステップS5により計算機200からアクセス要求を受け取った計算機300の動作を図7に即して説明する。
インタフェース370、調停部341を経由して送られてきたアクセス要求を受け取った計算機300の入力管理部350は(ステップS21)、アクセス要求に付随する、第2の配置様式に基づいて定められたXY2次元アドレス空間におけるアドレス範囲をアクセス置換部390に送り、アクセス置換部390はXY2次元アドレス空間におけるアドレスをメモリ2000にアクセスするための物理アドレスに変換し、調停部340及びメモリ制御部380を介して、書き込み要求か読み出し要求かの属性に応じて、メモリ2000へのデータ書き込み又はメモリ2000からのデータ読み出しの制御を行う(ステップS22)。
また、図6のステップS2において、アクセス属性判定部231により、アクセス要求が読み出し要求であると判定された場合には、選定部233がアクセス対象のデータをメモリ1000及びメモリ2000のいずれから読み出すとアクセス効率がよいかを判断してアクセス効率がよい方を選定する選定処理を行う(ステップS6)。この選定処理については後に詳細に説明する。
ステップS6においてアクセス効率がよいのは自機(計算機200)に接続されたメモリ1000の方、つまり第1の配置様式で配置された方であると選定された場合には(ステップS7)、アクセス解析部230は、第1の配置様式で定められたアドレス範囲を伴わせたメモリ1000宛てのアクセス要求をアクセス制御部221に伝達する。アクセス制御部221は、メモリ1000に対するアクセス要求を、アクセス置換部222に送り、アクセス置換部222は、アクセス要求に係るXY2次元アドレス空間のアドレス範囲に基づいてメモリ1000にアクセスするための物理アドレスに変換し、調停部240及びメモリ制御部280を介してメモリ1000からのデータ読み出しの制御を行う(ステップS8)。また、ステップS6において、アクセス効率がよいのは他機(計算機300)に接続されたメモリ2000の方、つまり第2の配置様式で配置された方であると選定された場合には(ステップS7)、アクセス解析部230は、第2の配置様式で定められたアドレス範囲を伴わせたメモリ2000(計算機300)宛てのアクセス要求をアクセス制御部221に伝達し、アクセス制御部221は、メモリ2000に対するアクセス要求を、出力管理部260に送り、出力管理部260は、調停部241、インタフェース270を経由させて、計算機300にアクセス要求(読み出し要求)を送る(ステップS9)。
以下、選定処理の詳細について、図8に即して説明する。
選定部233は、アクセス要求に付随するアクセス対象となる画像データ(以下、「部分画像」という。)の左上の画像アドレス(x座標、y座標)及びサイズを得て(ステップS31)、左上の画像アドレスとサイズとに基づいて右下の画像アドレスを算定した上で(ステップS32)、部分画像についての第1の配置様式によるXY2次元アドレス空間のXアドレス及びYアドレスの範囲を算定し、そのアドレスの範囲が跨る描画ブロックの数を算定する(ステップS33)。
メモリ1000に対応する第1の配置様式による部分画像の左上のXY2次元アドレス空間におけるXアドレスをXaと置き、左上のYアドレスをYaと置き、右下のXアドレスをXbと置き、右下のYアドレスをYbと置くと、部分画像の左上の属する描画ブロック(BXa,BYa)、右下の属する描画ブロック(BXb,BYb)、及び、部分画像が跨る描画ブロックの数Bnは以下の数式5〜9により特定することができる。
(数式5)BXa=int(Xa/16)
(数式6)BYa=int(Ya/32)
(数式7)BXb=int(Xb/16)
(数式8)BYb=int(Yb/32)
(数式9)Bn=(BXb−BXa+1)×(BYb−BYa+1)
次に、その部分画像についての第2の配置様式によるXY2次元アドレス空間のXアドレス及びYアドレスの範囲を算定し、そのアドレス範囲が跨る描画ブロックの数を算定する(ステップS34)。この算定されるXアドレス及びYアドレスの範囲はY方向の16のオフセットによって、第1の配置様式によるものとは異なる。但し、この算定された第2の配置様式による部分画像の左上のXY2次元アドレス空間におけるXアドレスをXaと置き、左上のYアドレスをYaと置き、右下のXアドレスをXbと置き、右下のYアドレスをYbと置くと、部分画像の左上の属する描画ブロック(BXa,BYa)、右下の属する描画ブロック(BXb,BYb)、及び、部分画像が跨る描画ブロックの数Bnは、同じ数式5〜9により特定することができる。
選定部233は、ステップS33及びステップS34でそれぞれ算定した描画ブロックの数を比較して、第1の配置様式に係る描画ブロックの数の方が多かった場合は(ステップS35:YES)、第2の配置様式に対応するメモリ2000をアクセス効率のよいメモリとして選定し(ステップS37)、第1の配置様式に係る描画ブロックの数の方が多くなかった場合は(ステップS35:NO)、第1の配置様式に対応するメモリ1000をアクセス効率のよいメモリとして選定する(ステップS36)。
<メモリアクセス動作の考察>
データ共有装置100においては、図3及び図5に示すようにフレーム画像が記録されている場合において、計算機200或いは計算機300が、矩形0や矩形1を読み出そうとするときには、矩形の跨る描画ブロックの数が小さい方である図5の第2の配置様式で配置されたメモリ2000の方から読み出す。
図9は、メモリ2000に対応する第2の配置様式により定まるXY2次元アドレス空間に、図5に示すように矩形0及び矩形1が配置されていた場合において、矩形0と矩形1とを連続して読み出そうとするときの、計算機300のメモリ制御部380によるメモリ2000に対する制御信号及びメモリ2000から出力されるデータ信号を示すタイムチャートである。
計算機300のメモリ制御部380は、矩形0が含む2つのブロック(メモリセル群)、即ちメモリ0のバンク3のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックとに対して、アクティベートコマンドを発行する。次に、その2つのブロックに対してリードコマンドを発行し、画像データの読み出しを行う。なお、図9では、1カラムあたり4バイトの構成として、2バンク一組で同じブロックとして2面にアクセスして、2倍のデータを読み出す例を示している。その後、続けて、矩形0の含む2つのブロックに対してプリチャージコマンドを発行し、また、矩形1が含む2つのブロック、即ちメモリ0のバンク2のロウアドレス2のブロックと、メモリ1のバンク3のロウアドレス2のブロックとに対して、アクティベートコマンド及びリードコマンドを発行する。このように矩形0と矩形1とへの連続的なアクセスが実現される。
ここで、上述の例と対比するために、仮に、第1の配置様式により定まるXY2次元アドレス空間に図3に示すように配置された矩形0及び矩形1を連続して読み出そうとしたとき、つまりメモリ1000の方から矩形0及び矩形1を連続して読み出そうとしたときを想定する。図10は、そのときにメモリ1000に対して出されるはずの制御信号及びメモリ1000から出力されるはずのデータ信号を示すタイムチャートである。
計算機200におけるメモリ制御部280は、矩形0が含む4つのブロック(メモリセル群)、即ちメモリ0のバンク2のロウアドレス0のブロックと、メモリ1のバンク1のロウアドレス0のブロックと、メモリ0のバンク3のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックとに対して、アクティベートコマンドを発行する。次に、その4つのブロックに対してリードコマンドを発行し、画像データの読み出しを行う。その後、矩形0の含む4つのブロックに対してプリチャージコマンドを発行し、また、矩形1が含む4つのブロック、即ちメモリ0のバンク1のロウアドレス1のブロックと、メモリ1のバンク0のロウアドレス1のブロックと、メモリ0のバンク2のロウアドレス2のブロックと、メモリ1のバンク3のロウアドレス2のブロックに対して、アクティベートコマンドを発行したいが、このとき、矩形0は、メモリ0、バンク2、ロウ0のブロックを含んでおり、矩形1はメモリ0、バンク2、ロウ2のブロックを含んでいるため、同一バンク異なるロウアドレスの描画ブロックへのアクセスとなり、SDRAMの特性(インターバル制約)により一定期間待たなければコマンドを発行できない。そのため、一定期間経過後に、矩形0に係る各ブロックに対してプリチャージコマンド、矩形1に含まれる各ブロックに対してアクティベートコマンド及びリードコマンドを発行することになり、一定期間の間は、他のプロセッサからのアクセス要求であっても、メモリ0、バンク2のどのブロックにもアクセスできず、アクセス効率の悪い状態になる。
データ共有装置100においては、仮定した図10に示す制御信号ではなく、図9に示すように制御信号を発行しているため、無駄なメモリ帯域が生じることが抑制され、アクセス効率を向上させることができる。
<補足>
以上、本発明に係るデータ処理装置の一例としてデータ共有装置の実施形態を説明したが、例示した装置を以下のように変形することも可能であり、本発明に係るデータ処理装置が上述の実施形態で示した通りのデータ共有装置に限られないことは勿論である。
(1)上記実施形態では、データ共有装置が、計算機2台で構成され、画像データを共有している例を示したが、計算機の数は3台以上であってもよく、画像データ以外に文字その他のデータを共有してもよい。また、例えば、それぞれが専用メモリを有しバスで接続された3台の計算機A、B、Cのうち計算機Aと計算機BとはデータDを共有し、計算機Aと計算機CとはデータEを共有するような構成であってもよく、この場合、各計算機は他の計算機と共有しているデータを更新する場合にそのデータの識別子及び更新データをバスを通じて他の計算機に伝え、また、バスを通じて伝えられたデータの識別子が自計算機の共有するものであればその更新データを自計算機の専用メモリに取り込むようにしてもよい。なお、3台の計算機で構成されるデータ共有装置の例を図11に示す。図11中、アクセス管理部400は、上述したアクセス管理部220と同様の機能を有し、また調停部410は、アクセス管理部220とアクセス管理部400とから出力されるアクセス要求の競合を調停するものである。アクセス管理部400を有することで、計算機は、他の計算機から例えば画像アドレスの指定を受けて、メモリ中の画像データへのアクセスを実現することができる。更に、各計算機は、画像処理等の特定処理を専門に行うデコーダー等の処理エンジン回路を備え、アクセス管理部が、メモリの他にアクセス要求の送出先として処理エンジン回路を選択することとしてもよい。
なお、各計算機は、自計算機の専用メモリにおけるデータの配置についての1つの配置様式のみに係るアリゴリズムや処理機構のみを実装し、他計算機からデータの指定或いはその論理アドレスや画像座標等の指定を受信して、その指定に基づいて自計算機における配置様式でメモリに配置した場合にアクセスすべきメモリのブロック数を返信することとし、また、他計算機から返信されたブロック数と自計算機における配置様式でのブロック数との比較からどちらの計算機の専用メモリにアクセスすると効率がよいかを判断することとしてもよい。なお、このためには、各計算機が定める配置様式は計算機毎に、メモリのブロック境界からのずれ量の点で異なる必要がある。
(2)上記実施形態では、データ処理装置の一例として、プロセッサを含み1つのメモリと接続される計算機2台で構成されるデータ共有装置を示したが、プロセッサ及びメモリの数は、これ以外でもよい。データ処理装置は、少なくとも1つのプロセッサと複数のメモリ領域とがあればよく、同一データを配置する場合にメモリのブロック(同一バンク同一ロウアドレスに対応するメモリセル群)の境界との相対位置関係を配置様式間で相互に異ならせるような複数の配置様式でデータを配置する複数のメモリ領域を定めてもよい。例えば、1つのプロセッサが、フレーム画像等のデータを、あるメモリ領域に配置し、それと同一のフレーム画像等の同一のデータを、メモリのブロック境界との位置関係を変えて別のメモリ領域に配置し、読み出すべき一部のデータについてブロック境界を跨ぐ数の少ない方のメモリ領域から読み出すようにしてもよい。
(3)上記実施形態で示したメモリ数、バンク数、カラム数、ライン数等の値は、例示であり、他の値であってもよい。また、上記実施形態では描画ブロックのサイズは水平16カラム(128バイト)×垂直32ラインとしたが、メモリのカラムアドレスの数、データ信号線の数等に応じて変更してよい。また、上記実施形態では、1画素データが1バイトであることとしたが、これに限られない。この1画素データは、輝度(Y)成分、或いは色差(Cb、Cr)成分それぞれであってもよい。
(4)上記実施形態では、2つの互いに異なる配置様式として、2次元アドレス空間に一方はオフセットを付加せずデータを配置し、他方はY方向にオフセットを16付加してデータを配置したが、これに限らない。あるフレーム画像データの各部分への連続アクセスを効率的にする必要がある場合においては、そのフレーム画像データのうちの1つの部分的な画像データにアクセスするために2つの互いに異なる配置様式のうち一方で配置されたメモリ領域にアクセスすることが、より効率的であるときに、その2つの互いに異なる配置様式のうち他方で配置されたメモリ領域にアクセスすることがより効率的となるところの1以上の部分的な画像データも存在し得るように、これらの配置様式は定められる必要がある。なお、連続してアクセスする部分的な画像データのY方向の幅が定まっている場合にはその幅より大きいY方向オフセットであることが好ましい。X方向についても同様である。
また、アクセス対象のデータのアドレス範囲が含むブロック数が互いに異なるように複数の配置様式を定めればよく、例えば、2次元アドレス空間において配置様式毎のオフセットの差が水平方向(X方向)にのみ現れるようにしてもよいし(図11(a)及び(b)参照)、垂直方向(Y方向)及び水平方向(X方向)の両方に現れるようにしてもよい(図11(c)及び(d)参照)。
また、配置様式毎に、描画ブロックの水平方向及び垂直方向の幅を異ならせることとしてもよい(図11(e)及び(f)参照)。例えば、2つの配置様式における一方の配置様式において図4で示した水平16カラム(128バイト)×垂直32ラインの描画ブロックを用いて、他方では水平8カラム(64バイト)×垂直64ラインの描画ブロックを用いることとしてもよい。
(5)上記実施形態では、MPEGエンコーディング処理の一過程におけるメモリアクセスについて説明したが、メモリアクセスのための処理内容はこれに限定されることはなく、エンコードであってもデコードであっても、H.264/MPEG AVCの処理であってもその他のデータ暗号化、復号等の処理であってもよい。
(6)上記実施形態では、フレーム画像をマッピングするアドレスは2次元アドレス空間としたが、一次元の一般的なアドレス空間としてもよい。但し、2次元画像の配置に2次元アドレス空間を用いることは有用である。なお、文字列その他のデータ、或いは画像データの配置に、一次元のアドレスで定まるアドレス空間を用いることとした場合においては、SDRAMの同一バンクの同一ロウアドレスでアクセスできるメモリセル群に格納できるデータ量を単位としたその単位毎の境界アドレスからのオフセット(相対位置)が、第1の配置様式と第2の配置様式とで異なるようにすればよい。例えば、その単位が4キロバイトであり、第1の配置様式と第2の配置様式とが同じ論理アドレス空間の異なるアドレス範囲のメモリ領域へのデータの配置(論理アドレス)を定めるものとすれば、同じデータが配置される2つの領域の先頭アドレスの差が4000Hの倍数以外であればよい。
なお、上記実施形態で示したメモリ1000及びメモリ2000に1つの論理アドレス空間における異なるアドレス範囲を対応付けることとしてもよい。
(7)上記実施形態で図5により示した第2の配置様式によるアドレスマッピングにおいて、フレーム画像中で垂直方向最下段の描画ブロック(0,34)〜(14,34)に割り付けられた部分は、垂直方向最上段の描画ブロック(0,0)〜(14,0)における空き領域に割り付けることとしてもよい。
(8)上記実施形態では、画像アドレス(画像座標)から、メモリのブロックと対応付けて定められたところの2次元アドレス空間のアドレスを定める段階で相互に異なる2つの配置様式を用いることとしたが、例えば、データの論理アドレスから、直接メモリのバンク、ロウアドレス、カラムアドレス等のアドレス指定を定める段階において、論理アドレスとロウアドレスとの関係が配置様式の相互で異なるように2つの配置様式を定めることとしてもよい。
(9)1つのプロセッサが、計算機200の機能の全部又は一部を制御プログラムの実行により実現してもよい。この制御プログラムは、機械語或いは高級言語のプログラムコードからなり、記録媒体に記録され、又は各種通信路等を介して流通させ頒布されるものであってもよい。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより上記実施形態で示したような機能が実現されるようになる。なお、プロセッサは、制御プログラムを直接実行する他、コンパイルして実行或いはインタプリタにより実行してもよい。
(10)上記実施形態で示したデータ共有装置100、その一部の計算機を、IC、LSIその他の集積回路のパッケージとして構成してもよい。また、メモリもこの集積回路のパッケージに含ませてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、上記実施形態で示したような各機能を実現するようになる。
(11)上述の各変形例を組み合せて適用してもよい。
以下、更に本発明の一実施形態としてのデータ処理装置の構成及びその変形例、並びにデータ処理システムと、これらの効果とについて説明する。
(a)本発明の一実施形態に係るデータ処理装置は、図13に示すように、複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであることを特徴とする。ここで、連続アクセス可能なブロックは、例えばSDRAMにおいてコマンド発行制約によって一定時間待たされることなく連続的にアクセスできる、同一バンクの同一ロウアドレスを有するメモリセル群のような、メモリにおいてバースト転送機能等によって連続的にアクセスし得る単位領域である。アクセス効率については、例えば、各配置様式でアドレスマッピングされた結果として、連続してアクセスできる何個のメモリ領域に跨って配置されたかというメモリ領域数の少ない方が、アクセス効率のよい配置様式になる。また、マッピング手段11は例えば上述のアドレス特定部223等に相当し、選定手段12は例えば上述の選定部233等に相当し、アクセス制御手段13は例えば上述のアクセス制御部221、アクセス置換部222、メモリ制御部280等に相当する。なお、このデータ処理装置をLSIその他の集積回路として構成してもよい。
このデータ処理装置によれば、同一のアドレスマッピングで重複的に記録されているのではなく、複数の異なるアドレスマッピングに基づき重複的に記録されている画像或いは文字その他のデータを逐次読出し処理する過程で、アクセス効率のよい1つのアドレスマッピングの方で配置されたデータの方を選択してアクセスするので、全体としても効率のよいメモリアクセスを実現し得るようになる。
(b)前記処理対象データはx座標及びy座標で表される2次元画像データであり、前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものであるとしてもよい。これにより、MPEGエンコーディング処理のような、フレーム画像群について部分画像であるマクロブロック単位に類似するものを探索する所謂動き探索処理を行う場合におけるメモリアクセス効率を高めることができるようになる。
(c)前記描画ブロックに対応するメモリにおける前記ブロックは、同一バンクで同一ロウアドレスを有するメモリセル群であるとしてもよい。このデータ処理装置によれば、同一バンクの異なるロウアドレスで示される領域への連続的なアクセスを低減することができる。
(d)前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定するとしてもよい。これにより、簡単な構成でアクセス効率を判断することができる。
(e)前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってy座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたYアドレスとの差が、前記y座標の幅に対応するYアドレスの幅より大きくなるようにYアドレスを定めるものであることとしてもよい。これにより、部分画像の逐次読出し処理に際して、いずれかの配置様式を選択すれば部分画像がアドレス空間における描画ブロックのY方向のアドレス境界を跨がないでアドレスマッピングされることになるため、その選択した配置様式によってアクセスすることで、アクセス効率を高めることができるようになる。
(f)前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってx座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたXアドレスとの差が、前記x座標の幅に対応するXアドレスの幅より大きくなるようにXアドレスを定めるものであることとしてもよい。これにより、部分画像の逐次読出し処理に際して、いずれかの配置様式を選択すれば部分画像がアドレス空間における描画ブロックのX方向のアドレス境界を跨がないでアドレスマッピングされることになるため、その選択した配置様式によってアクセスすることで、アクセス効率を高めることができるようになる。
(g)前記第1及び第2の配置様式は、メモリにおける同一バンクで同一ロウアドレスを有する全てのメモリセル群に1対1に前記描画ブロックを対応付けており、第2の配置様式は、XY2次元アドレス空間における描画ブロックのX方向の幅及びY方向の幅のいずれもが、第1の配置様式とは異なるように対応付けていることとしてもよい。メモリにおける連続アクセス可能なブロックに対応付けたアドレス空間における矩形の描画ブロックの形状が異なるため、メモリのそのブロックに対する2次元画像のメモリ配置がそれぞれの配置様式で異なるものとなり、アクセス効率がよい一方を選択できるため、全体として効率のよいメモリアクセスを実現できるようになる。
(h)データ処理装置は、前記メモリと、前記処理対象データを、前記第1及び第2の配置様式により前記マッピング手段により定められた各アドレスに対応した、前記メモリ中の、別々のメモリ領域に書き込む記録手段とを、更に備えることとしてもよい。この構成により、データ処理装置内でデータの読み書きの両方が実現されるようになる。
(i)前記処理対象データは、フレーム画像であり、前記データ処理装置は、前記フレーム画像中の複数の位置それぞれに存在する複数の部分データを逐次読み出す処理を行うものであり、前記フレーム画像における、読み出し対象となる部分データの位置に応じて、前記第1及び第2の配置様式のうち、前記第1の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データと、前記第2の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データとが存在することになるように、前記第1及び第2の配置様式が定められていることとしてもよい。これにより、例えば、所謂動き探索処理等によりフレーム画像中の様々な位置の部分画像(部分データ)に逐次アクセスする必要がある場合において、アクセス効率の良い方のメモリ領域にアクセスすることができる。なお、この結果として、同一内容のフレーム画像が記録された2つのメモリ領域のうち一方だけにしかアクセスがなされないのではなく、その2つのメモリ領域に対して逐次選択的にアクセスがなされることとなる。
(j)本発明の一実施形態に係るデータ共有システムは、図14に示すように、第1メモリ及び第2メモリと、各メモリに格納された処理対象データにアクセスする第1のデータ処理装置31及び第2のデータ処理装置41とを含むデータ共有システム30であって、前記各データ処理装置は、前記処理対象データを、前記第1メモリ35に配置するためのアドレスを前記第1の配置様式を用いて定め、前記第2メモリ45に配置するためのアドレスを前記第2の配置様式を用いて定めるマッピング手段32(42)と、処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段33(43)と、前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段34(44)とを備え、前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、前記アクセス制御手段は、自己以外の他のデータ処理装置に接続されたメモリにアクセスするときは当該他のデータ処理装置を介してそのアクセスを実現するよう制御することを特徴とする。プロセッサ毎にメモリが接続されたマルチプロセッサで構成されたデータ共有システムにおいて、効率のよいメモリアクセスが実現できるようになる。
本発明に係るデータ処理装置は、効率のよいメモリアクセスを実現し得るので、SDRAMを用いて動画、静止画等のデータを処理する装置等として有用である。
10、31、41 データ処理装置
11、32、42 マッピング手段
12、33、43 選定手段
13、34、44 アクセス制御手段
20、1000、2000 メモリ
30 データ共有システム
35 第1メモリ
45 第2メモリ
100 データ共有装置
200、300 計算機
210、310 プロセッサ
220、320、400 アクセス管理部
221 アクセス制御部
222 アクセス置換部
223 アドレス特定部
230 アクセス解析部
231 アクセス属性判定部
232 アクセス分割部
233 選定部
240、241、340、341、410 調停部
250、350 入力管理部
260、360 出力管理部
270、370 インタフェース
280、380 メモリ制御部
290、390 アクセス置換部

Claims (15)

  1. 複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、
    前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング手段と、
    処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、
    前記部分データへのアクセスを、前記第1及び第2の配置様式により前記マッピング手段によりそれぞれ定められるべき各アドレスに対応した別々のメモリ領域それぞれに同一内容のものとして処理対象データが記録されている前記メモリにおける、前記選定手段の選定した配置様式により対応付けられたメモリの領域に、アクセスすることで実現するよう制御するアクセス制御手段とを備え、
    前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものである
    ことを特徴とするデータ処理装置。
  2. 前記処理対象データはx座標及びy座標で表される2次元画像データであり、
    前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものである
    ことを特徴とする請求項1記載のデータ処理装置。
  3. 前記描画ブロックに対応するメモリにおける前記ブロックは、同一バンクで同一ロウアドレスを有するメモリセル群である
    ことを特徴とする請求項2記載のデータ処理装置。
  4. 前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定する
    ことを特徴とする請求項3記載のデータ処理装置。
  5. 前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってy座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、
    前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたYアドレスとの差が、前記y座標の幅に対応するYアドレスの幅より大きくなるようにYアドレスを定めるものである
    ことを特徴とする請求項4記載のデータ処理装置。
  6. 前記データ処理装置は、フレーム画像における複数の位置それぞれの部分画像であってx座標の幅が所定サイズである部分画像を、逐次読み出す処理を行うものであり、
    前記第2の配置様式は、前記第1の配置様式により同じ部分画像に係る同じ部分データについて定めたXアドレスとの差が、前記x座標の幅に対応するXアドレスの幅より大きくなるようにXアドレスを定めるものである
    ことを特徴とする請求項4記載のデータ処理装置。
  7. 前記第1及び第2の配置様式は、メモリにおける同一バンクで同一ロウアドレスを有する全てのメモリセル群に1対1に前記描画ブロックを対応付けており、第2の配置様式は、XY2次元アドレス空間における描画ブロックのX方向の幅及びY方向の幅のいずれもが、第1の配置様式とは異なるように対応付けている
    ことを特徴とする請求項4記載のデータ処理装置。
  8. 前記メモリと、
    前記処理対象データを、前記第1及び第2の配置様式により前記マッピング手段により定められた各アドレスに対応した、前記メモリ中の、別々のメモリ領域に書き込む記録手段とを、更に備える
    ことを特徴とする請求項4記載のデータ処理装置。
  9. 前記処理対象データは、フレーム画像であり、
    前記データ処理装置は、前記フレーム画像中の複数の位置それぞれに存在する複数の部分データを逐次読み出す処理を行うものであり、
    前記フレーム画像における、読み出し対象となる部分データの位置に応じて、前記第1及び第2の配置様式のうち、前記第1の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データと、前記第2の配置様式を用いて前記マッピング手段により定められるアドレスに対応したメモリ領域から読み出す方がアクセス効率のよい部分データとが存在することになるように、前記第1及び第2の配置様式が定められている
    ことを特徴とする請求項1記載のデータ処理装置。
  10. 複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置であって、
    前記処理対象データは、複数の配置様式それぞれにより、アドレス空間において当該処理対象データの配置されるアドレス範囲と前記ブロック各々の境界アドレスとの相対位置関係が配置様式毎に互い異なるようにアドレスマッピングされており、
    前記メモリにおいて、前記処理対象データは、各配置様式に対応した別々の領域それぞれに同一内容のものとして記録され、
    前記データ処理装置は、処理対象データ中の部分データを読み出すときに、アドレスマッピングされた当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段とを備える
    ことを特徴とするデータ処理装置。
  11. 第1メモリ及び第2メモリと、各メモリに格納された処理対象データにアクセスする第1及び第2のデータ処理装置とを含むデータ共有システムであって、
    前記各データ処理装置は、
    前記処理対象データを、前記第1メモリに配置するためのアドレスを前記第1の配置様式を用いて定め、前記第2メモリに配置するためのアドレスを前記第2の配置様式を用いて定めるマッピング手段と、
    処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定手段と、
    前記部分データへのアクセスを、前記選定手段の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御手段とを備え、
    前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、
    前記アクセス制御手段は、自装置以外の他のデータ処理装置に接続されたメモリにアクセスするときは当該他のデータ処理装置を介してそのアクセスを実現するよう制御し、
    前記処理対象データは、前記第1の配置様式及び前記第2の配置様式に対応した前記第1メモリ及び前記第2メモリそれぞれに同一内容のものとして記録されている
    ことを特徴とするデータ共有システム。
  12. 前記処理対象データはx座標及びy座標で表される2次元画像データであり、
    前記第1及び第2の配置様式は、前記アドレス空間をXY2次元アドレス空間とし、メモリにおける前記ブロック毎に対応付けた描画ブロックを当該XY2次元アドレス空間に2次元に複数配置するものであり、前記第2の配置様式は、XY2次元アドレス空間における描画ブロック境界に対する相対位置の点で、前記第1の配置様式により2次元画像データの配置されるXアドレス及びYアドレスとは異なる位置となるように、2次元画像データのx座標及びy座標に応じてXY2次元アドレス空間におけるXアドレス及びYアドレスを定めるものである
    ことを特徴とする請求項11記載のデータ共有システム。
  13. 前記選定手段は、前記第1及び第2の配置様式のうち、前記部分データに係るアドレス範囲に含まれる描画ブロックの数が最も少ないようにアドレスを定める1つの配置様式を選定する
    ことを特徴とする請求項12記載のデータ共有システム。
  14. 複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスするデータ処理装置におけるデータ処理方法であって、
    前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピングステップと、
    処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定ステップと、
    前記部分データへのアクセスを、前記選定ステップにより選定された配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御ステップとを含み、
    前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、
    前記メモリにおいて、前記処理対象データは、各配置様式に対応した別々の領域それぞれに同一内容のものとして記録されている
    ことを特徴とするデータ処理方法。
  15. 複数の連続アクセス可能なブロックにより構成されるメモリに格納された処理対象データにアクセスする機能を有する集積回路であって、
    前記処理対象データを、メモリの複数の領域それぞれに配置するためのアドレスを、第1及び第2の配置様式を用いて定めるマッピング部と、
    処理対象データ中の部分データを読み出すときに、各配置様式に基づく当該部分データに係るアドレス範囲に基づき、当該部分データへのアクセス効率のよい方の配置様式を選定する選定部と、
    前記部分データへのアクセスを、前記選定部の選定した配置様式により対応付けられたメモリの領域にアクセスすることで実現するよう制御するアクセス制御部とを含み、
    前記第2の配置様式は、アドレス空間における前記ブロックの境界アドレスに対する相対位置の点で、前記第1の配置様式により当該処理対象データの配置されるアドレスとは異なる位置に、当該処理対象データのアドレスを定めるものであり、
    前記メモリにおいて、前記処理対象データは、各配置様式に対応した別々の領域それぞれに同一内容のものとして記録されている
    ことを特徴とする集積回路。
JP2012534484A 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム Expired - Fee Related JP5884037B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012534484A JP5884037B2 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011057643 2011-03-16
JP2011057643 2011-03-16
PCT/JP2012/000898 WO2012124251A1 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム
JP2012534484A JP5884037B2 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム

Publications (2)

Publication Number Publication Date
JPWO2012124251A1 JPWO2012124251A1 (ja) 2014-07-17
JP5884037B2 true JP5884037B2 (ja) 2016-03-15

Family

ID=46830346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012534484A Expired - Fee Related JP5884037B2 (ja) 2011-03-16 2012-02-10 データ処理装置、データ処理方法及びデータ共有システム

Country Status (4)

Country Link
US (1) US9201781B2 (ja)
JP (1) JP5884037B2 (ja)
CN (1) CN102804150B (ja)
WO (1) WO2012124251A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037835B1 (en) * 2013-10-24 2015-05-19 Arm Limited Data processing method and apparatus for prefetching
WO2016063716A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
EP3693861B1 (en) * 2019-02-06 2022-08-24 Advanced Digital Broadcast S.A. System and method for reducing memory fragmentation in a device lacking graphics memory management unit
US11210221B2 (en) * 2019-12-10 2021-12-28 Pony Ai Inc. Memory architecture for efficient spatial-temporal data storage and access

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965751A (en) * 1987-08-18 1990-10-23 Hewlett-Packard Company Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size
JPH05128241A (ja) * 1991-11-05 1993-05-25 Matsushita Electric Ind Co Ltd 画像処理装置
US6215507B1 (en) * 1998-06-01 2001-04-10 Texas Instruments Incorporated Display system with interleaved pixel address
US6674443B1 (en) * 1999-12-30 2004-01-06 Stmicroelectronics, Inc. Memory system for accelerating graphics operations within an electronic device
US6816165B1 (en) * 2000-12-13 2004-11-09 Micron Technology, Inc. Memory system having multiple address allocation formats and method for use thereof
DE60238519D1 (de) * 2001-01-12 2011-01-20 Nxp Bv Einheit und verfahren zur speicheradressenübersetzung und bildverarbeitungsvorrichtung mit einer solchen einheit
US6956579B1 (en) * 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
JP4069078B2 (ja) 2004-01-07 2008-03-26 松下電器産業株式会社 Dram制御装置およびdram制御方法
US7930439B2 (en) * 2006-03-31 2011-04-19 Panasonic Corporation Command output control apparatus
US9176891B2 (en) 2008-03-19 2015-11-03 Panasonic Intellectual Property Management Co., Ltd. Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing
WO2010086919A1 (ja) * 2009-01-27 2010-08-05 パナソニック株式会社 メモリアクセス装置およびその関連技術
JP5556082B2 (ja) * 2009-08-07 2014-07-23 富士通株式会社 メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법

Also Published As

Publication number Publication date
CN102804150A (zh) 2012-11-28
WO2012124251A1 (ja) 2012-09-20
US9201781B2 (en) 2015-12-01
JPWO2012124251A1 (ja) 2014-07-17
US20130057770A1 (en) 2013-03-07
CN102804150B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
JP5884037B2 (ja) データ処理装置、データ処理方法及びデータ共有システム
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
KR101639574B1 (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
JP5039334B2 (ja) キャッシュメモリ制御方法、及び装置
JP3639464B2 (ja) 情報処理システム
US20080147980A1 (en) Enhancing Performance of a Memory Unit of a Data Processing Device By Separating Reading and Fetching Functionalities
US7554874B2 (en) Method and apparatus for mapping memory
CN101084493A (zh) 在帧缓冲器内读取和写入像素分配子帧的方法和装置
CN116010299B (zh) 一种数据处理方法、装置、设备及可读存储介质
JP3619565B2 (ja) データ処理装置、及びそれを用いたシステム
EP2204740A1 (en) Memory management process and apparatus for the same
US10692171B2 (en) Method of operating virtual address generator and method of operating system including the same
JP3955862B2 (ja) データ処理装置、及びそれを用いたシステム
JP5865696B2 (ja) 画像処理装置
JP6210742B2 (ja) データ処理装置およびデータ転送制御装置
US8264496B2 (en) Data management for image processing
JPH09120371A (ja) メモリ制御装置
KR101335367B1 (ko) 메모리 제어 장치 및 방법
US20140306977A1 (en) Image processing apparatus, image processing method, image processing system, and computer readable storage medium
JP2008278442A (ja) 画像処理装置
US20120288205A1 (en) Image processing apparatus, image processing system, and method for having computer process image
KR20240008487A (ko) 메모리 부하 밸런싱을 고려한 적응형 이미지 사이즈 패딩 장치 및 방법
JP2007299211A (ja) メモリ制御装置
JP5605225B2 (ja) メモリ制御装置、メモリマッピング方法、及び、プログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140905

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150727

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: 20150915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151008

R151 Written notification of patent or utility model registration

Ref document number: 5884037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees