(57)【特許請求の範囲】
【請求項１】
第１メモリ及び第２メモリを再構成可能回路上に構成し、前記第１メモリ及び第２メモリを交互にそれぞれ読み出しメモリと書き込みメモリとして再構成して動作させる制御を行う再構成制御手段と、
前記読み出しメモリからデータを読み出す読み出し手段と、
データの読み出しと並行して前記書き込みメモリにデータを書き込む書き込み手段と、
前記読み出し手段によるデータの読み出し量をＸ、読み出しの並列度をｎ、前記書き込み手段によるデータの書き込み量をＬとすると、
Ｘ／ｎ≧Ｌ／ｎ’
となるように、前記書き込み手段の並列度ｎ’を制御する並列度制御手段と、
を備えるデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関する。
【背景技術】
【０００２】
特許文献１には、回路規模を増大させることなく、読み出し動作及び書き込み動作を高速で行うことのできるラインバッファ回路が記載されている。
【０００３】
すなわち、所定画素分のデータを一括して１個のメモリ（シングルポートメモリ）に一括して書き込み、書き込み処理を行った後に、当該メモリに書き込むための次の所定画素分のデータが入力される前に、当該メモリから所定画素分のデータを一括して読み出すことで、メモリ使用量を削減している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２４６４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリへのデータの書き込みと、メモリからのデータの読み出しを交互に実施する構成では、書き込み時間と読み出し時間、及び切替制御時間がそれぞれ個別に必要となるため、トータルの処理時間が増大してしまう。すなわち、データの書き込みに要する時間をＴβ、メモリからのデータの読み出しに要する時間をＴα、書き込み／読み出し切替制御時間をＴｄとすると、まず書き込みにＴβを要し、次に切替制御時間Ｔｄを要し、次に読み出しにＴαを要し、次に切替制御時間Ｔｄを要することになるから、合計
Ｔβ＋Ｔｄ＋Ｔα＋Ｔｄ＝Ｔβ＋Ｔα＋２Ｔｄ
を要することになる。
【０００６】
本発明の目的は、回路規模を増大させることなく、かつ、読み出し動作と書き込み動作を交互に切り替えて行う場合に比べてさらに高速でデータの読み出し／書き込みを行うことのできるデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、第１メモリ及び第２メモリを再構成可能回路上に構成し、前記第１メモリ及び第２メモリを交互にそれぞれ読み出しメモリと書き込みメモリとして再構成して動作させる制御を行う再構成制御手段と、前記読み出しメモリからデータを読み出す読み出し手段と、データの読み出しと並行して前記書き込みメモリにデータを書き込む書き込み手段と、前記読み出し手段によるデータの読み出し量をＸ、読み出しの並列度をｎ、前記書き込み手段によるデータの書き込み量をＬとすると、
Ｘ／ｎ≧Ｌ／ｎ’
となるように、前記書き込み手段の並列度ｎ’を制御する並列度制御手段とを備えるデータ処理装置である。
【発明の効果】
【０００９】
請求項１記載の発明によれば、回路規模を増大させることなく、かつ、読み出し動作と書き込み動作を交互に切り替えて行う場合に比べて高速でデータの読み出し／書き込みを行うことができ、さらに、書き込み時間を読み出し時間以内に抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の概念構成図である。
【図２】従来装置の構成図である。
【図３】実施形態の構成ブロック図である。
【図４】実施形態のタイミングチャート（その１）である。
【図５】実施形態のタイミングチャート（その２）である
【図６】実施形態の処理フローチャートである。
【図７】実施形態のタイミングチャート（その３）である。
【図８】実施形態のタイミングチャート（その４）である。
【図９】第２実施形態の概念構成図である。
【図１０】第２実施形態のタイミングチャートである。
【図１１】第２実施形態の構成ブロック図である
【図１２】第２実施形態の処理フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に基づき実施形態について、印刷データを処理する場合を例にとり説明する。
【００１３】
＜第１実施形態＞
図１は、本実施形態におけるデータ処理装置の概念構成図である。本実施形態のデータ処理装置は、バッファメモリのデータ保持量を処理単位に必要な分だけに限定してメモリ容量を削減するとともに、内部の論理回路構成を高速に（１クロックサイクルで）再構成可能な動的再構成可能プロセッサ（ＤＲＰ：Dynamically Reconfigurable Processor）を用いることで、データの書き込みとデータの読み出しを並行して行う。
【００１４】
すなわち、バッファメモリとして、メモリ(第１メモリ)１８ａとメモリ(第２メモリ)１８ｂが設けられ、これらのメモリ１８ａ及びメモリ１８ｂをＤＲＰにより切り替えて使用する。あるタイミングではメモリ１８ａを読み出し用メモリ、メモリ１８ｂを書き込み用メモリとして構成して、入力画素データ及び書き込みデータを用いてメモリ１８ａからデータを読み出すと共にメモリ１８ｂにデータを書き込む。また、次のタイミングでは、メモリ１８ａを書き込みメモリ、メモリ１８ｂを読み出しメモリとして構成して、メモリ１８ａにデータを書き込むと共にメモリ１８ｂからデータを読み出す。さらに、次のタイミングでは、メモリ１８ａを読み出しメモリ、メモリ１８ｂを書き込み用メモリとして構成し、メモリ１８ａからデータを読み出すと共にメモリ１８ｂにデータを書き込む。すなわち、第１メモリと第２メモリを交互にそれぞれ読み出しメモリと書き込みメモリとして機能させる。このような切替処理を繰り返す。
【００１５】
メモリ１８ａ及びメモリ１８ｂの容量は、処理単位のデータを保持するために必要な容量とすればよく、処理単位が１ページのライン毎である場合、１ライン分のデータを保持するために必要な容量でよい。ＤＲＰにより読み出し用メモリと書き込み用メモリを交互に再構成することで読み出しと書き込みを同時並行で実施することができ、書き込みと読み出しを交互に切り替えてシーケンシャルに実行する場合に比べて処理が高速化する。
【００１６】
メモリ１８ａ及びメモリ１８ｂは、ＤＲＰコアで実現し得る。ＤＲＰコアは公知であり、簡単に説明すると、論理回路を構成するための複数の回路要素（ＰＥ：プロセッサエレメント）とこれらＰＥ間の接続を構成するための配線リソースを備え、ＰＥの設定やＰＥ間の接続を変更することで種々の構成の論理回路として動作するものである。記憶部に記憶された複数のコンフィグデータのうちのいずれかを有効（アクティブ）とすることで、そのコンフィグデータに従ってＰＥの設定やＰＥ間の配線の組み替えが行われ、所望の処理回路が構成される。コンフィグデータをコンフィグデータＡ及びコンフィグデータＢとし、コンフィグデータＡを有効とすることでメモリ１８ａを用いた読み出し回路とメモリ１８ｂを用いた書き込み回路が構成され、コンフィグデータＢを有効とすることでメモリ１８ａを用いた書き込み回路とメモリ１８ｂを用いた読み出し回路が構成される。
【００１７】
メモリ１８ａ及びメモリ１８ｂは、あるタイミングではメモリ１８ａが第ｎラインの読み出しメモリ、メモリ１８ｂが第（ｎ＋１）ラインの書き込みメモリとなり、次のタイミングではメモリ１８ｂが第（ｎ＋１）ラインの読み出しメモリ、メモリ１８ａが第（ｎ＋２)ラインの書き込みメモリとなるため、基本的には同一容量とすることが望ましいが、必ずしもこれに限定されるものではない。
【００１８】
図２は、参考のため従来装置の概念構成図、すなわち１個のメモリに対して読み出しと書き込みを交互に行う場合の構成図である。書き込み／読み出し切替制御部１１、及び書き込み／読み出しメモリ１８が設けられる。書き込み／読み出し切替制御部１１は、所定画素分のデータを一括してメモリ１８に書き込み、書き込み処理を行った後に、読み出しに切り替えて、当該メモリ１８から所定画素分のデータを一括して読み出す。
【００１９】
図３（ａ），（ｂ）は、本実施形態のデータ処理装置の構成ブロック図である。データ処理装置は、読み出し側の入力制御部１０と、書き込み側の入力制御部１２と、読み出しアドレス生成部１４と、書き込みアドレス生成部１６と、データ記憶部（１）と、データ記憶部（２）と、出力制御部２０と、再構成制御部２２を備える。データ記憶部（１）及びデータ記憶部（２）は、図１におけるメモリ１８ａ及びメモリ１８ｂとして機能し、図３（ａ）ではデータ記憶部（１）が読み出しメモリのデータ記憶部（１）１８ａとして機能し、データ記憶部（２）が書き込みメモリのデータ記憶部（２）１８ｂとして機能する。また、図３（ｂ）ではデータ記憶部（２）が読み出しメモリのデータ記憶部（２）１８ｂとして機能し、データ記憶部（１）が書き込みメモリのデータ記憶部（１）１８ａとして機能する。各部は、上記のようにＤＲＰコア、あるいはＣＰＵとＤＲＰの混載チップで実現し得る。
【００２０】
図３（ａ）において、入力制御部１０は、読み出しデータを読み出しアドレス生成部１４及びデータ記憶部（１）１８ａに出力する。
【００２１】
入力制御部１２は、書き込みデータを書き込みアドレス生成部１６及びデータ記憶部（２）１８ｂに出力する。
【００２２】
読み出しアドレス生成部１４は、読み出しデータに応じて読み出しアドレスを生成してデータ記憶部（１）１８ａからデータを読み出し、出力制御部２０に出力する。
【００２３】
書き込みアドレス生成部１６は、書き込みデータに応じて書き込みアドレスを生成してデータ記憶部（２）１８ｂに入力データを書き込む。
【００２４】
他方、図３（ｂ）において、入力制御部１０は、読み出しデータを読み出しアドレス生成部１４及びデータ記憶部（２）１８ｂに出力する。
【００２５】
入力制御部１２は、書き込みデータを書き込みアドレス生成部１６及びデータ記憶部（１）１８ａに出力する。
【００２６】
読み出しアドレス生成部１４は、読み出しデータに応じて読み出しアドレスを生成してデータ記憶部（２）１８ｂからデータを読み出し、出力制御部２０に出力する。
【００２７】
書き込みアドレス生成部１６は、書き込みデータに応じて書き込みアドレスを生成してデータ記憶部（１）１８ａに入力データを書き込む。
【００２８】
再構成制御部２２は、コンフィグデータを切り替えることでデータ記憶部（１）とデータ記憶部（２）を再構成し、図３（ａ）と図３（ｂ）を交互に変更する。すなわち、あるタイミングでは図３（ａ）の構成としてデータ記憶部（１）１８ａからデータを読み出すとともにデータ記憶部（２）１８ｂにデータを書き込み、次のタイミングでは図３（ｂ）の構成に変更してデータ記憶部（２）１８ｂからデータを読み出すとともにデータ記憶部（１）１８ａにデータを書き込む。図３（ａ）において、データ記憶部（１）１８ａからのデータ読み出しと、データ記憶部（２）１８ｂへのデータの書き込みは並行して行われる。また、図３（ｂ）においても、データ記憶部（２）１８ｂからのデータの読み出しと、データ記憶部（１）１８ａへのデータの書き込みは並行して行われる。具体的には、第１ラインのデータは入力制御部１２からデータ記憶部（２）１８ｂに供給され、第１ラインのデータはデータ記憶部（２）１８ｂに記憶される。次に、再構成制御部２２がコンフィグデータを変更し、図３（ａ）の構成から図３（ｂ）の構成に再構成し、読み出しアドレス生成部１４から読み出しアドレスが生成され、データ記憶部（２）１８ｂから第１ラインのデータが読み出される。また、読み出しと並行して、第２ラインのデータは入力制御部１２からデータ記憶部（１）１８ａに供給され、第２ラインのデータはデータ記憶部（１）１８ａに記憶される。次に、再構成制御部２２がコンフィグデータを変更し、図３（ｂ）の構成から図３（ａ）の構成に再構成し、読み出しアドレス生成部１４から読み出しアドレスが生成され、データ記憶部（１）１８ａから第２ラインのデータが読み出される。また、読み出しと並行して、第３ラインのデータは入力制御部１２からデータ記憶部（２）１８ｂに供給され、第３ラインのデータはデータ記憶部（２）１８ｂに記憶される。以下、同様にして最終ラインまで繰り返される。勿論、１ライン分のデータを複数回に分割して書き込み／読み出しを行ってもよい。図において、矢印２４は、一つのデータ処理装置の機能が動的再構成により交互に切り替わる様子を示す。
【００２９】
次に、本実施形態の書き込み／読み出しタイミングをより具体的に説明する。
【００３０】
図４は、本実施形態の書き込み／読み出しタイミングを模式的に示す。また、比較のため、図２に示す従来構成（つまり、１個の書き込み／読み出しメモリ１８に対して書き込みと読み出しを交互にシーケンシャルに実行する構成）における書き込み／読み出しタイミングも併せて示す。図４（ａ）は従来構成のタイミングであり、図４（ｂ）は本実施形態のタイミングである。一例として、書き込み／読み出しメモリ１８の容量を１００バイトとし、データ記憶部（１）及びデータ記憶部（２）の容量をともに２５バイトとした場合である。簡略化のため、処理単位である１つのラインのデータ量は１００クロック分であるとする。
【００３１】
図４（ａ）に示すように、従来では、まず１００クロック（ｃｌｋ）で書き込み／読み出しメモリ１８に１ライン分のデータを書き込み、次に、１００クロック（ｃｌｋ）で書き込み／読み出しメモリ１８から１ライン分のデータを読み出す。１ライン分のデータの書き込み／読み出し処理は合計２００クロックで行われる。なお、実際には書き込み処理と読み出し処理の間に有限の切替時間が存在するが、ここでは省略する。
【００３２】
他方、図４（ｂ）に示すように、本実施形態では、図３（ａ）の構成により２５クロックで１ライン分のデータの１／４をデータ記憶部（２）に書き込む。次に、図３（ｂ）の構成に変更し、２５クロックでデータ記憶部（２）からデータを読み出すともに、これと並行して２５クロックでデータ記憶部（１）にデータを書き込む。次に、再び図３（ａ）の構成に変更し、２５クロックでデータ記憶部（１）からデータを読み出すとともに、これと並行して２５クロックでデータ記憶部（２）にデータを書き込む。１ライン分のデータの書き込み／読み出し処理は、１２５クロックで行われる。なお、実際には再構成のための有限の切替時間が存在するが、ここでは省略する。
【００３３】
従って、書き込み及び読み出しに要する時間は、従来では２００クロックのところ、本実施形態では１２５クロックで済むことになり、メモリ使用量は１／２に低減されるとともに、処理時間も１２５／２００＝５／８に短縮される。
【００３４】
図５は、本実施形態の書き込み／読み出しタイミングを模式的に示す。データ記憶部（１）及びデータ記憶部（２）の容量をともに５０バイトとした場合である。
【００３５】
図５（ａ）は従来のタイミングチャートであり、図４（ａ）と同様に１００クロック（ｃｌｋ）で書き込み／読み出しメモリ１８にデータを書き込み、次に、１００クロック（ｃｌｋ）で書き込み／読み出しメモリ１８からデータを読み出す。
【００３６】
他方、図５（ｂ）に示すように、本実施形態では、図３（ａ）の構成により５０クロックで１ライン分のデータの１／２をデータ記憶部（２）に書き込む。次に、図３（ｂ）の構成に変更し、５０クロックでデータ記憶部（２）からデータを読み出すともに、これと並行して５０クロックでデータ記憶部（１）にデータを書き込む。次に、再び図３（ａ）の構成に変更し、５０クロックでデータ記憶部（１）からデータを読み出すとともに、これと並行して５０クロックでデータ記憶部（２）にデータを書き込む。１ライン分のデータの書き込み／読み出し処理は、１５０クロックで行われる。
【００３７】
従って、書き込み及び読み出しに要する時間は、従来では２００クロックのところ、本実施形態では１５０クロックで済むことになり、メモリ使用量は同一で、処理時間が１５０／２００＝３／４に短縮される。
【００３８】
図６は、本実施形態の処理フローチャートである。まず、画素値を入力するとともに、メモリデータを入力する（Ｓ１０１ａ，Ｓ１０１ｂ）。なお、Ｓ１０１ａ及びＳ１０１ｂにおいて、ステップ番号（Ｓ１０１）に続くアルファベット（ａ、ｂ）は、これらの処理が並行して実行されることを意味する。つまり、Ｓ１０１ａとＳ１０１ｂは、並行して実行される。以後のステップにおいても同様である。
【００３９】
次に、読み出しアドレス生成部１４で読み出しアドレスを生成するとともに、書き込みアドレス生成部１６で書き込みアドレスを生成する（Ｓ１０２ａ，Ｓ１０２ｂ）。生成された読み出しアドレスを用いてメモリからデータを読み出し、かつ、生成された書き込みアドレスを用いてメモリにデータを書き込む（Ｓ１０３ａ，Ｓ１０３ｂ）。図３（ａ）の構成では、データ記憶部（１）１８ａからデータを読み出し、データ記憶部（２）１８ｂにデータを書き込む。
【００４０】
そして、データの読み出し及びデータの書き込みが完了したか否かを判定し（Ｓ１０４ａ，Ｓ１０４ｂ）、さらに、データの読み出しとデータの書き込みがともに完了したか否かを判定する（Ｓ１０５）。データの読み出し及び書き込みは、互いに独立して行われるからである。通常は、両者はほぼ同時に完了するが、まず書き込みが完了し、その後に読み出しが完了することになる。なお、読み出しが完了した後に書き込みが完了する場合もあり得るが、この場合についてはさらに後述する。
【００４１】
両方完了した場合に、印刷すべきページの全ラインが完了したか否かを判定し（Ｓ１０６）、全ラインが完了していない場合には、コンフィグデータを変更して動的再構成を行う（Ｓ１０７）。すなわち、図３（ａ）と図３（ｂ）の構成を交互に入れ替える。そして、全ラインの処理が完了するまでＳ１０１ａ，Ｓ１０１ｂ〜Ｓ１０５の処理を繰り返す。
【００４２】
本実施形態では、以上のように、データの読み出しと書き込みが並行して実行されるため、データの書き込み時間がデータの読み出し時間以内であれば、データの書き込み処理を、データの読み出し処理に隠蔽することが可能である。すなわち、見かけ上、データを出力制御部２０から連続的に順次出力することができる。
【００４３】
図７は、データの書き込み時間がデータの読み出し時間以内である典型的な場合のタイミングチャートである。
【００４４】
第ｎラインのデータの読み出しと第（ｎ＋１）ラインのデータの書き込みを並行して実行する場合、読み出し時間Ｔαと書き込み時間Ｔβの間に、
Ｔα≧Ｔβ
の関係があれば、書き込み処理が読み出し処理に隠蔽され、動的再構成のための切替時間をＴｄとすると、全ライン（Ｎラインとする）の処理を完了するのに要する時間Ｔは、
Ｔ＝（Ｔα＋Ｔｄ）×Ｎ
となる。当然ながら、ＴはＴβに影響されない。
【００４５】
ところが、図８に示すように、何らかの理由で（ｎ＋１）ラインの書き込みに時間を要し、
Ｔα＜Ｔβ
の関係になると、書き込み処理を読み出し処理に隠蔽できず、書き込み時間に律速されるようになり、トータルの処理時間が増大する。すなわち、全ラインの処理を完了するのに要する時間Ｔは、
Ｔ＝（Ｔα＋Ｔｄ）×Ｎ＋（Ｔβ−Ｔα）×Ｎ
となり、右辺第２項の分だけオーバヘッドとなってデータ処理装置の性能を低下させる。
このような関係は、具体的には、
（ｉ）１回当たりの読み出しデータサイズが書き込みデータサイズよりも小さい
（ｉｉ）読み出し側の並列度が書き込み側の並列度よりも高い
（ｉｉｉ）入力データのフォーマットがオブジェクト（ベクタ）形式である
場合等に生じ得る。
【００４６】
そこで、Ｔα＜Ｔβとなる場合には、データ書き込み側の並列度を可変制御することで、Ｔα≧Ｔβとなるように制御することが望ましい。以下では、この場合の実施形態について説明する。
【００４７】
＜第２実施形態＞
図９は、データ書き込み側の並列度を制御する模式図である。読み出し側回路５０の並列度がｎであるとすると、ｎ並列のデータが一括して読み出され出力される。読み出し側のデータ量をＸとすると、読み出し時間はＸ／ｎで規定される。他方、書き込み側回路６０の並列度がｎ’であるとすると、ｎ’並列のデータが一括して書き込まれる。書き込み側のデータ量をＬとすると、書き込み時間はＬ／ｎ’で規定される。従って、１回当たりの書き込み側データ量Ｌが与えられた場合、読み出し側のデータ量Ｘと、読み出し側の並列度ｎを用いて、
Ｘ／ｎ≧Ｌ／ｎ’
が成立するように、書き込み側回路６０の並列度ｎ’を制御すればよい。すなわち、デフォルトの読み出し側回路５０と書き込み側回路６０の並列度をｎとすると、読み出し側のデータ量Ｘ及び読み出し側の並列度ｎ並びに書き込み側のデータ量Ｌを用いて、書き込み側回路６０の並列度をｎからｎ’に変更するように動的再構成を行う。具体的には、図３に示すように、入力制御部１２が並列度を含む書き込み側のデータを制御するから、入力制御部１２の並列度に関するコンフィグデータを、読み出し側のデータ量Ｘ及び読み出し側の並列度ｎ並びに書き込み側のデータ量Ｌに応じて変更して再構成すればよい。図において、並列度ｎ’のデータを書き込み処理する場合のコンフィグデータを、Ｎｅｘｔ１ｓｔＬＵＴ（ルックアップテーブル）、Ｎｅｘｔ２ｎｄＬＵＴ、・・・と表している。
【００４８】
図１０は、書き込み側の並列度を動的再構成した場合のタイミングチャートである。読み出し側の並列度をｎとすると、読み出し時間はＴα＝Ｘ／ｎとなる。これに対し、１回当たりの書き込みデータ量をＬとすると、並列度がｎのままでは書き込み時間はＴβ＝Ｌ／ｎとなり、Ｔα＜Ｔβとなって全体の処理速度が書き込み時間によって制限されてしまうが、読み出し側データ量Ｘ、読み出し側並列度ｎ、書き込み側データ量Ｌを用いて、
Ｘ／ｎ≧Ｌ／ｎ’
が成立するように書き込み側の並列度をｎからｎ’に再構成する。これにより、書き込み時間を読み出し時間以下として書き込み処理を読み出し処理に隠蔽し、全体の処理速度の低下が抑制される。すなわち、まず、Ｔβ＝Ｌ／ｎ’でデータの書き込みが行われ、切替制御時間Ｔｄで再構成が行われ、次にＴα＝Ｘ／ｎでデータの読み出しが行われるとともに、Ｔβ＝Ｌ／ｎ’でデータの書き込みが行われ、再び切替制御時間Ｔｄで再構成が行われ、Ｔα＝Ｘ／ｎでデータの読み出しが行われるとともに、Ｔβ＝Ｌ／ｎ’でデータの書き込みが行われる。全ライン（Ｎラインとする）の処理を完了するのに要する時間Ｔは、
Ｔ＝（Ｔα＋Ｔｄ）×Ｎ
に抑制され、オーバヘッド（Ｔβ−Ｔα）×Ｎが削減される。
【００４９】
図１１は、本実施形態の構成ブロック図である。図３の構成に加え、外部メモリ３０から供給される入力データを用いて書き込み側の並列度（並列数）を演算する計算部３２を備える。
【００５０】
外部メモリ３０には書き込みデータが記憶されており、計算部３２は、書き込み側データ量Ｌ、読み出し側データ量Ｘ、読み出し側並列度ｎを用いて書き込み側並列度ｎ’を算出し、書き込み側入力ビット数として入力制御部１２に出力する。なお、デフォルトの並列度は、読み出し側及び書き込み側ともに同一値に設定する。
【００５１】
入力制御部１２は、書き込みデータを出力するが、そのビット数は計算部３２からのビット数に応じて再構成される。入力制御部１２のコンフィグデータとして複数のビット数がメモリ（ルックアップテーブル）に記憶されており、例えば、１６ビット、３２ビット、４８ビット等と記憶される。一般的に、１６ビット×Ｎと表し得る。これらのいずれかのビット数を有効とし、他を無効とすることで、入力制御部１２のビット数が再構成される。１６ビットが有効とされた場合、入力制御部１２は、書き込みデータの並列度を１６、つまり１６ビットのデータで出力する。
【００５２】
図１１において、データ処理装置の構成を構成Ａとし、データ記憶部（１）１８ａを読み出しメモリとして構成しつつ、データ記憶部（２）１８ｂを書き込みメモリとして構成する。入力制御部１２は、計算部３２からの入力ビット数データを用いて書き込み側のビット数を例えば３２ビットとしてデータ記憶部（２）１８ｂに供給する。このとき、データ記憶部（１）１８ａから並行してデータが読み出される。
【００５３】
次に、データ処理装置の構成を構成Ｂとし、データ記憶部（２）１８ｂを読み出しメモリとして構成しつつ、データ記憶部（１）１８ａを書き込みメモリとして構成する。入力制御部１２は、計算部３２からの入力ビット数データを用いて書き込み側のビット数を例えば４８ビットとしてデータ記憶部（１）１８ａに供給する。このとき、データ記憶部（２）１８ｂから並行してデータが読み出される。
【００５４】
本実施形態では、データ処理装置のメモリ機能が動的再構成されると同時に、入力制御部１２の機能も動的再構成される。なお、本実施形態において、計算部３２は再構成制御部２２と別個の構成とする他、再構成制御部２２が計算部３２の機能を備え、再構成制御部２２がメモリ機能を動的再構成するとともに入力制御部１２の機能を再構成してもよい。
【００５５】
図１２は、本実施形態の処理フローチャートである。図６の処理フローチャートに対し、さらにＳ２０１の処理が付加されたものである。
【００５６】
すなわち、計算部３２は、読み出し側パラメータを分析して読み出し側のデータ量Ｘと読み出し側の並列度ｎを決定する。次に、書き込み側データ量Ｌを用いて書き込み側データ入力ビット数を決定する。すなわち、
Ｘ／ｎ≧Ｌ／ｎ’
が成り立つように並列度ｎ’、つまり入力ビット数を決定する。上記の不等式から明らかなように、入力ビット数は、読み出し側データ量Ｘあるいは書き込みデータ量が変動すればこれに応じて適応的に変化する。入力ビット数を決定した後、入力制御部１２の出力ビット数を再構成する（Ｓ２０１）。
【００５７】
Ｓ２０１以降は、図３のＳ１０１ａ，Ｓ１０１ｂ〜Ｓ１０７の処理と同一であり、データ記憶部（１）とデータ記憶部（２）を交互に入れ替えてデータの読み出し及びデータの書き込みを並列して実行する。
【００５８】
以上説明したように、本実施形態では、読み出し側のデータ量、並列度、書き込み側のデータ量によらずに常に書き込み処理時間を読み出し処理時間以下に抑制することができるので、データの読み出しとデータの書き込みを並行して実行しても書き込みのオーバヘッドを除去できる。
【００５９】
本実施形態では、読み出し側の並列度ｎを固定しているが、必要に応じて読み出し側の並列度ｎも可変制御してもよい。すなわち、本実施形態は、書き込み側の並列度と読み出し側の並列度をともに可変とする態様を排除するものではない。
【符号の説明】
【００６０】
１０  入力制御部（読み出し側）、１２  入力制御部（書き込み側）、１４  読み出しアドレス生成部、１６  書き込みアドレス生成部、１８ａ  データ記憶部（１）、１８ｂ  データ記憶部（２）、２０  出力制御部、２２  再構成制御部。
【図１】
0006349995.tif 000002
【図２】
0006349995.tif 000003
【図３】
0006349995.tif 000004
【図４】
0006349995.tif 000005
【図５】
0006349995.tif 000006
【図６】
0006349995.tif 000007
【図７】
0006349995.tif 000008
【図８】
0006349995.tif 000009
【図９】
0006349995.tif 000010
【図１０】
0006349995.tif 000011
【図１１】
0006349995.tif 000012
【図１２】
0006349995.tif 000013