JP5546356B2 - メモリ装置及び信号処理装置 - Google Patents

メモリ装置及び信号処理装置 Download PDF

Info

Publication number
JP5546356B2
JP5546356B2 JP2010124421A JP2010124421A JP5546356B2 JP 5546356 B2 JP5546356 B2 JP 5546356B2 JP 2010124421 A JP2010124421 A JP 2010124421A JP 2010124421 A JP2010124421 A JP 2010124421A JP 5546356 B2 JP5546356 B2 JP 5546356B2
Authority
JP
Japan
Prior art keywords
unit
memory
buffer
data
processing system
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.)
Active
Application number
JP2010124421A
Other languages
English (en)
Other versions
JP2011248846A (ja
JP2011248846A5 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010124421A priority Critical patent/JP5546356B2/ja
Publication of JP2011248846A publication Critical patent/JP2011248846A/ja
Publication of JP2011248846A5 publication Critical patent/JP2011248846A5/ja
Application granted granted Critical
Publication of JP5546356B2 publication Critical patent/JP5546356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Description

本発明は、メモリ装置及びこのメモリ装置を備える信号処理装置に関する。
一般に、信号処理装置は、信号の入力から出力までの間に種々の演算処理を行う。例えば、信号処理装置が通信処理装置である場合には、通信処理装置は、外部装置(例えば、PC等のユーザ機器)より通信信号の入力を受け、この通信信号を通信網に対応したフォーマットに変換して出力信号とし、この出力信号を通信網のプロトコルに従って出力する。また、複数の外部装置が一つの通信網を共有する場合には、通信処理装置は、予め定められている期間に出力信号を出力し、又は、他の制御装置より受け取った出力可能期間情報に基づいて出力信号を出力する。
ここで、通信処理装置は、通信信号の入力を受けてから、出力信号を出力するまでの演算処理の過程で生成される情報を、装置内又は装置外のメモリに記憶させておく必要がある。そして、近年の大容量通信及び高速通信を可能にするため、通信処理装置が使用するメモリは、大容量であり、かつ、高速アクセス可能なものであることが求められている。
近年では、大容量かつ高速アクセス可能なメモリとして、DDR(Double Data Rate)−SDRAM(Synchronous Dynamic Random Access Memory)が用いられている。特許文献1には、DDR−SDRAMの記憶領域を、一定容量毎、例えば、2キロバイト毎の領域に分割して、通信処理単位であるフレーム1つに1つの領域を割り当てて、当該フレームを当該領域に記憶させるデータ処理装置が記載されている。
DDR−SDRAMからデータを読み出す方法には、単一アクセス(シングルアクセスともいう)及び連続アクセス(バーストアクセスともいう)がある。連続アクセスは、メモリ部に連続して記憶された複数ワードを一回の要求で連続して読み出すことができるため、メモリ部へのアクセス時間を短縮することができる。
図1は、DDR−SDRAMからデータの読み出しが行われる際のタイミングチャートである。図1は、ワード数が8であるデータに連続してアクセスするタイミングを示している。一回の要求で読み出すことのできる連続ワード数を、バースト長ともいう。DDR-SDRAMの制御を行うコントローラ部(図示せず)は、時刻T0において、ACT(ACTIVE)コマンドを発行して、アクセスしたいアドレスの上位値をDDR−SDRAMに設定する。次に、コントローラ部は、時刻T0から上位アドレス設定期間TT0が経過した時刻T1にて、READコマンドを発行して、アドレスの下位値を設定する。そして、時刻T1から下位アドレス設定期間TT1が経過した時刻T2より、時刻T3までの期間TT2に、データD0〜D7が、DDR−SDRAMクロックの立ち上がり及び立ち下がりのタイミングに合せて連続して読み出される。上位アドレス設定期間TT0及び下位アドレス設定期間TT1は、DDR−SDRAMの種別や動作速度により定まる。コントローラ部がDDR−SDRAMにアクセスする度に、これらのアドレス設定期間TT0、TT1が必要となり、これらのアドレス設定期間TT0、TT1が経過するまで、コントローラ部は、データの読み出し及び書き込みを行うことができない。
ここで、コントローラ部が、DDR−SDRAMにアクセスする際に、同じ上位値のアドレスに複数回連続してアクセスする場合には、コントローラ部は、ACTコマンドの発行を省略して、アドレスの下位値を設定するだけでデータの連続読み出し又は連続書き込みを行うことができる。
図2は、同じ上位アドレスに格納されているデータが連続して読み出される際のタイミングチャートである。図2に示すように、時刻T0においてACTコマンドが発行され、この時刻T0から上位アドレス設定期間TT0が経過した時刻T1において、コントローラ部(図示せず)は、最初のREADコマンドを発行する。次のREADコマンドが発行されてから、下位アドレス設定期間TT1が経過した時刻T2より、データD0〜D7の読出しが開始される。そして、次のREADコマンドにより読み出されるデータD0〜D7の読出し完了時刻T3から下位アドレス設定期間TT3前の時刻T2において、コントローラ部が、時刻T0で発行したACTコマンドで設定された上位アドレスに含まれる下位アドレスのREADコマンドを発行することにより、コントローラ部は、時刻T3より、データD0〜D7の後に続いて、データD8〜D15を読み出すことができる。図2は、データD0〜D7が読み出される連続データ読出し期間TT2と、下位アドレス設定期間TT3とが等しい場合を示している。
コントローラ部は、このように一度のACTコマンドに対して、複数のREADコマンドを発行することで、DDR−SDRAMへのアクセス効率を向上させることができる。例えば、特許文献2には、複数の回路が共有する外部メモリにおいて、各々の回路がアクセスするメモリ空間の上位アドレスが最大限一致するように、各々の回路が使用するメモリ領域の割り振りを行うメモリ制御装置が記載されている。
また、特許文献3には、外部装置からのデータを一旦仲介バッファに蓄積してからSDRAMへの連続書込み又はSDRAMからの連続読出しを行うことにより、SDRAMへのアクセス時間を短くするメモリ制御装置が記載されている。
特許第4350713号公報(段落0019) 国際公開第2007/069506号(段落0035〜0036、図1) 特開2004−192043号公報(段落0015〜0024、図1)
特許文献1〜3に記載されているように、DDR−SDRAMにおいては、ACTコマンドの発行回数を減らすことにより、メモリ部との間のデータ転送を効率よく行うことができる。DDR−SDRAMの上位アドレスは、DDR−SDRAMの種別や記憶容量により異なるが、一般的に1KB(Kilo Byte)又は2KB毎に変化する。従って、コントローラ部は、メモリ部の最大1KB又は2KBの連続した領域に、1回のACTコマンドで連続してアクセスすることができる。このため、1回のACTコマンドで連続してアクセスすることができるデータ長のデータを1つの単位として、DDR−SDRAMにアクセスすることにより、DDR−SDRAMとの間のデータ転送は、最も効率的になる。1回のACTコマンドで連続してアクセスできるデータ長の最大値をページサイズという。
図3は、DDR−SDRAMで構成されるメモリ部を使用する信号処理装置1のデータの流れを概略的に示す図である。入力処理部2は、入力された信号を演算処理して入力データを生成する。書込み制御部3は、この入力データをメモリ部4に格納するアドレスを決定し、メモリコントローラ部5へ書込み指示を行う。読出し制御部6は、出力処理部7にて演算処理するタイミングに合わせて、メモリ部4より読み出す入力データのアドレスを決定し、メモリコントローラ部5へ読出し指示を行う。メモリコントローラ部5は、メモリ部4の同じ上位アドレス領域に対する書込み指示又は読出し指示が連続した場合には、ACTコマンドの発行を省略して、メモリ部4との間のデータ転送を行うことができる。メモリ部4に形成された各々の領域ME0〜ME4に格納することができるデータのデータ長の最大値が、ページサイズとなる。入力処理部2及び出力処理部7は、それぞれ少なくとも1種類以上の演算処理を行う。また、信号処理装置1は、入力処理部2と出力処理部7を1対とする処理系統を複数備え、複数の処理系統でメモリ部4を共有する場合もある。
メモリコントローラ部5がメモリ部4との間で最も効率よくデータ転送を行うためには、書込み制御部3は、入力データを、ページサイズと等しいデータ長(以下、メモリ転送単位長という)毎にパッキングする必要がある。しかし、入力処理部2及び出力処理部7において演算処理を行う単位となる入力データのデータ長(以下、演算単位長という)が小さく、メモリ転送単位長に満たない場合、メモリ転送単位長を演算単位長で除した回数分の演算が完了するまで、書込み制御部3は、入力データをメモリ部4に転送することができず、メモリ部4へのデータ転送に時間がかかる。
図4は、信号処理装置1が、メモリ転送単位長毎に入力データをパッキングして、メモリ部4にアクセスする際の動作を示す概略図である。図4では、入力処理部2にて処理された演算単位長CULの入力データD0〜D3までがパッキングされると、これらの入力データD0〜D3をパッキングしたパッキングデータは、ページサイズと等しいメモリ転送単位長MULとなる。入力処理部2によるデータD3への処理が完了すると、書込み制御部3は、入力データD0〜D3までをパッキングする。メモリコントローラ部5は、このようなパッキングデータを、1回のACTコマンドと連続する複数回のWRITEコマンドを発行することにより、メモリ部4に連続して書込むことができる。WRITEコマンドの発行回数は、ページサイズをバースト長で除した値となる。メモリ部4からパッキングデータを読み出すには、メモリコントローラ部5は、1回のACTコマンドと連続する複数回のREADコマンドとを発行する。READコマンドの発行回数は、WRITEコマンドの発行回数と等しい。
ここで、最初に処理された入力データD0は、パッキングされた入力データの全体のデータ長がメモリ転送単位長MULに達するまで、メモリ部4に書き込まれず、書込み制御部3に滞留する。外部から入力処理部2に入力されるデータの時間当たりの入力量が一定ではない場合には、例えば、入力データD2が入力されたあと、入力データD3が続けて入力されない等、パッキングされた入力データがメモリ転送単位長MULに満たない状態が続くときもある。このようなときには、パッキングされた入力データが、書込み制御部3に長い時間滞留することとなる。
この点、演算単位長CULを大きくすることにより、入力データが長い時間滞留されてしまうことを防止できる。しかしながら、演算単位長CULがメモリ転送単位長MULよりも大きく、パッキングする時間が不要となるようにしても、メモリ転送単位長MULを大きくするほど、メモリ部4との間の書込み転送時間及び読出し転送時間が長くなり、入力処理部2で処理された入力データが、出力処理部7に与えられるまでの時間が長くなる。
そこで、本発明は、入力されたデータを効率的に記憶して出力することのできる装置を提供することを目的とする。
本発明に係るメモリ装置は、
外部より入力された入力データを格納する書込みバッファ、及び、当該書込みバッファを制御する書込み制御部、を有する書込みバッファ部と、
前記書込みバッファ部から転送されたメモリ転送データを格納するメモリ部と、
前記書込みバッファ部から転送されたバッファ転送データ及び前記メモリ部から転送された前記メモリ転送データを格納する読出しバッファ、及び、当該読出しバッファを制御し、前記読出しバッファより前記入力データを取得して、取得した前記入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
前記メモリ部に前記メモリ転送データが格納されているか否かを示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
前記書込み制御部は、前記書込みバッファに格納された前記入力データの総データ量を示す書込みバッファ蓄積量を前記転送制御切替部に通知し、
前記読出し制御部は、前記読出しバッファの空きデータ量を示す読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、
前記書込みバッファ蓄積量及び前記読出しバッファ蓄積可能量が第1条件を満たす場合には、前記書込みバッファ部から、予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第2条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第3条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第4条件を満たす場合には、前記書込みバッファ部に格納されている前記入力データの全てを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第5条件を満たす場合には、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するものであり、
前記第1条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
前記第2条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とし、
前記第3条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第4条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記読出しバッファ蓄積可能量が前記書込みバッファ蓄積量以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第5条件は、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とする
ことを特徴とする。
本発明によれば、入力されたデータを効率的に記憶して出力することのできる装置を提供することができる。
DDR−SDRAMからデータの読み出しが行われる際のタイミングチャートである。 同じ上位アドレスに格納されているデータが連続して読み出される際のタイミングチャートである。 DDR−SDRAMで構成されるメモリ部を使用する信号処理装置のデータの流れを概略的に示す図である。 信号処理装置が、メモリ転送単位長毎にデータをパッキングして、メモリ部4にアクセスする際の動作を示す概略図である。 実施の形態1に係る信号処理装置の構成を示すブロック図である。 実施の形態1において、切替制御部が書込みバッファに記憶されたデータを制御する際の処理を示すフローチャートである。 実施の形態1において、切替制御部がメモリ部に記憶されたメモリ転送データを制御する際の処理を示すフローチャートである。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その1)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その2)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その3)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その4)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その5)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その6)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その7)である。 実施の形態1において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その8)である。 実施の形態1において、図8〜図15の状態における、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置から出力処理部への入力データの出力タイミングを示す概略図である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その1)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その2)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その3)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その4)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その5)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その6)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その7)である。 実施の形態1において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図(その8)である。 実施の形態1において、図17〜図24の状態における、入力処理部からメモリ装置へのデータの入力タイミング、書込みバッファ蓄積量の変化、メモリ部に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置から出力処理部へのデータの出力タイミングを示す概略図である。 実施の形態2に係る信号処理装置の構成を示すブロック図である。 実施の形態2における切替制御部の構成を示すブロック図である。 実施の形態2において、転送要求発行部が、メモリ書込み要求又はバッファ転送要求を出力する際の処理を示すフローチャートである。 実施の形態2において、転送要求発行部がメモリ読出し要求を出力する際の処理を示すフローチャートである。 実施の形態2において、書込みバッファに格納されたデータをメモリ部に転送する際の、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、書込みバッファ蓄積可能量の変化、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、及び、DDR−SDRAMコマンドの発行タイミングを示す概略図である。 実施の形態2において、書込みバッファに格納されたデータをメモリ部又は読出しバッファに転送する際の、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、読出しバッファ蓄積可能量の変化、読出しバッファ蓄積量の変化、バッファ転送要求の出力タイミング、バッファ転送選択結果の出力タイミング、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置から出力処理部240への入力データの出力タイミングを示す概略図である。
実施の形態1.
図5は、本発明における実施の形態1に係る信号処理装置100の構成を示すブロック図である。信号処理装置100は、メモリ転送単位長を大きくして転送効率の高いメモリアクセスを実現する場合に、メモリ部を経由することにより発生する装置内遅延を少なくする。
信号処理装置100は、入力処理部110と、メモリ装置120と、出力処理部140とを備える。
入力処理部110は、Ethernetパケットを演算単位とする。このパケットは、例えば0.06KB(Kilo Byte)〜2KBの間のデータ長となっている。そして、入力処理部110からメモリ装置120には、このような可変長のパケットが不定期に入力される。また、メモリ装置120から出力処理部140に出力されるパケットは、出力処理部140で所定の処理が施されて、出力データとされる。出力処理部140は、出力データを通信網に出力する。
メモリ装置120は、書込みバッファ部121と、演算単位長記憶部127と、読出しバッファ部124と、メモリコントローラ部128と、メモリ部129と、メモリ使用状態記憶部130と、転送制御切替部131とを備える。
書込みバッファ部121は、書込みバッファ122と、書込み制御部123とを備え、入力処理部110から与えられた入力データを一時的に記憶して、この入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを転送制御切替部131に与える。
書込みバッファ122は、入力処理部110から与えられた入力データを一時的に記憶する。
書込み制御部123は、書込みバッファ122を制御する。また、書込み制御部123は、書込みバッファ122に格納されている入力データの総データ量を示す書込みバッファ蓄積量を転送制御切替部131に通知する。また、書込み制御部123は、入力処理部110から与えられた各々の入力データのデータ長を演算単位長として、演算単位長記憶部127に記憶させる。例えば、書込み制御部123は、入力処理部110から入力データが入力された順番に従って、当該入力データの演算単位長を演算単位長記憶部127に記憶させる。さらに、書込み制御部123は、書込みバッファ122に1つの入力データの格納が完了すると、転送制御切替部131に演算単位蓄積通知を行う。
読出しバッファ部124は、読出しバッファ125と、読出し制御部126とを備え、転送制御切替部131から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶し、これらのデータから入力データを抽出して出力処理部140に与える。
読出しバッファ125は、転送制御切替部131から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶する。
読出し制御部126は、読出しバッファ125を制御する。例えば、読出しバッファ制御部126は、演算単位長記憶部127から入力データの演算単位長を取得して、この演算単位長の入力データを読出しバッファ125より読み出して、出力処理部140に与える。また、読出し制御部126は、読出しバッファ125にデータを格納することのできる空きデータ量を示す読出しバッファ蓄積可能量を転送制御切替部131に通知する。読出しバッファ蓄積可能量は、読出しバッファ125の容量から、読出しバッファ125に記憶されているデータの総データ量を減算することにより算出される。
演算単位長記憶部127は、書込みバッファ122に格納された各々の入力データのデータ長を演算単位長として記憶する。また、演算単位長記憶部127は、読出し制御部126からの問い合わせに応じて、読出し制御部126に入力データの演算単位長を与える。例えば、演算単位長記憶部127は、書込み制御部123から演算単位長が与えられた順番に従って、読出し制御部126に演算単位長を与える。このようにすることで、入力処理部110から入力データが入力された順番で、この入力データを出力処理部140に出力することができるようになる。
メモリコントローラ部128は、メモリ部129の制御を行う。例えば、メモリコントローラ部128は、転送制御切替部131から与えられたメモリ転送データをメモリ部129に記憶させる。また、メモリコントローラ部128は、転送制御切替部131からの指示に応じて、メモリ部129に記憶されているメモリ転送データを読み出して、転送制御切替部131に与える。
メモリ部129は、メモリコントローラ部128の指示に応じて、メモリ転送データを記憶する。例えば、メモリ部129は、DDR−SDRAMである。このDDR−SDRAMのページサイズは、例えば、1KBとする。このため、メモリコントローラ部128は、メモリ部129に1回のACTコマンドを発行するだけで、上位アドレスが同じである1KBの連続した領域にアクセスすることができる。従って、本実施の形態では、メモリ転送単位長を1KBとし、メモリ部129に記憶される各々のメモリ転送データのデータ長は、1KBとなる。
メモリ使用状態記憶部130には、メモリ部129にメモリ転送データが記憶されているか否かを示すメモリ使用状態が記憶される。本実施の形態においては、メモリ使用状態として、メモリ部129に記憶されているメモリ転送データの総データ量であるメモリ使用量が用いられる。従って、メモリ使用量が「0」であれば、メモリ転送データが記憶されていないことを示し、メモリ使用量が「0」ではなければ、メモリ転送データが記憶されていることを示す。
転送制御切替部131は、メモリ転送制御部132と、バッファ転送制御部133と、第1切替部134と、第2切替部135と、切替制御部136と、を備え、書込みバッファ部121、メモリ部129及び読出しバッファ部124に記憶されるデータの流れを制御する。
メモリ転送制御部132は、切替制御部136からの指示に応じて、書込みバッファ部121よりメモリ転送単位長のデータをメモリ転送データとして取得して、メモリコントローラ部128を介して、このメモリ転送データをメモリ部129に記憶させる。また、メモリ転送制御部132は、切替制御部136からの指示に応じて、メモリコントローラ部128を介して、メモリ部129よりメモリ転送データを読み出して、このメモリ転送データを読出しバッファ部130に記憶させる。
バッファ転送制御部133は、切替制御部136からの指示に応じて、書込みバッファ部121に格納されている全ての入力データをバッファ転送データとして取得して、このバッファ転送データを読出しバッファ部124に記憶させる。ここで、バッファ転送制御部133がバッファ転送データとして取得する入力データは、書込みバッファ部121に格納が完了しているものであって、バッファ転送制御部133は、まだ格納途中の入力データについては、バッファ転送データとして取得しない。
第1切替部134は、切替制御部136からの指示に応じて、書込みバッファ部121からのデータの出力先を、メモリ転送制御部132及びバッファ転送制御部133の間で切り替える。
第2切替部135は、切替制御部136からの指示に応じて、読出しバッファ部124に与えるデータの入力元を、メモリ転送制御部132及びバッファ転送制御部133の間で切り替える。
切替制御部136は、メモリ転送制御部132、バッファ転送制御部133、第1切替部134及び第2切替部135を制御することにより、メモリ装置120内におけるデータ転送を制御する。ここで、切替制御部136は、書込みバッファ122の書込みバッファ蓄積量と、読出しバッファ125の読出しバッファ蓄積可能量と、メモリ部129のメモリ使用状態と、が予め定められた条件を満たすか否かに応じて、メモリ装置120内におけるデータ転送を制御する。また、切替制御部136は、メモリ使用状態記憶部130に記憶されているメモリ使用状態(メモリ使用量)を管理する。
図6は、切替制御部136が書込みバッファ122に記憶されたデータを制御する際の処理を示すフローチャートである。
切替制御部136は、書込みバッファ蓄積量がメモリ転送単位長(1KB)以上であるか判断する(S10)。そして、切替制御部136は、書込みバッファ蓄積量がメモリ転送単位長以上である場合(ステップS10でYes)には、ステップS11の処理に進み、書込みバッファ蓄積量がメモリ転送単位長未満である場合(ステップS10でNo)には、ステップS14の処理に進む。
ステップS11では、切替制御部136は、読出しバッファ蓄積可能量がメモリ転送単位長以上であるか否かを判断する。そして、切替制御部136は、読出しバッファ蓄積可能量がメモリ転送単位長以上である場合(ステップS11でYes)には、ステップS12の処理に進み、読出しバッファ蓄積可能量がメモリ転送単位長未満である場合(ステップS11でNo)には、ステップS13の処理に進む。
ステップS12では、切替制御部136は、メモリ使用状態記憶部130よりメモリ部129に記憶されているメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。切替制御部136は、メモリ使用量が「0」である場合(ステップS12でYes)、言い換えれば、メモリ部129にメモリ転送データが記憶されていない場合には、ステップS17の処理に進み、メモリ使用量が「0」ではない場合(ステップS12でNo)、言い換えれば、メモリ部129にメモリ転送データが記憶されている場合には、ステップS13の処理に進む。
ステップS13では、切替制御部136は、メモリ転送制御部132及び第1切替部134にメモリ書込み指示を与える。このような指示を受けた第1切替部134は、書込みバッファ部121からのデータの出力先をメモリ転送制御部132に切り替える。また、このような指示を受けたメモリ転送制御部132は、書込みバッファ部122からメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。
一方、ステップS10で、書込みバッファ蓄積量がメモリ転送単位長未満である場合(ステップS10でNo)には、ステップS14の処理に進み、ステップS14では、切替制御部136は、書込みバッファ122におけるデータの蓄積量が演算単位長以上であるか否かを判断する。言い換えると、切替制御部136は、書込みバッファ122に格納が完了した入力データが1つ以上あるか否かを判断する。例えば、切替制御部136は、書込み制御部123から送られてくる演算単位蓄積通知により、書込みバッファ122に格納が完了した入力データが1つ以上あるか否かを判断することができる。そして、切替制御部136は、書込みバッファ122におけるデータの蓄積量が演算単位長以上である場合(ステップS14でYes)には、ステップS15の処理に進み、書込みバッファ122におけるデータの蓄積量が演算単位長未満である場合(ステップS14でNo)には、書込みバッファ122に記憶されているデータの転送を行わずに、ステップS10の処理に戻る。
ステップS15では、切替制御部136は、読出しバッファ蓄積可能量が書込みバッファ蓄積量以上であるか否かを判断する。そして、切替制御部136は、読出しバッファ蓄積可能量が書込みバッファ蓄積量以上である場合(ステップS15でYes)には、ステップS16の処理に進み、読出しバッファ蓄積可能量が書込みバッファ蓄積量未満である場合(ステップS15でNo)には、書込みバッファ122に記憶されているデータの転送を行わずに、ステップS10の処理に戻る。
ステップS16では、切替制御部136は、メモリ使用状態記憶部130よりメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。切替制御部136は、メモリ使用量が「0」である場合(ステップS16でYes)には、ステップS17の処理に進み、メモリ使用量が「0」ではない場合(ステップS16でNo)には、書込みバッファ122に記憶されているデータの転送を行わずに、ステップS10の処理に戻る。
ステップS17では、切替制御部136は、バッファ転送制御部133、第1切替部134及び第2切替部135にバッファ転送指示を与える。このような指示を受けた第1切替部134は、書込みバッファ部121からのデータの出力先をバッファ転送制御部133に切り替える。また、このような指示を受けた第2切替部135は、読出しバッファ部124に出力するデータの入力元をバッファ転送制御部133に切り替える。さらに、このような指示を受けたバッファ転送制御部133は、書込みバッファ部122から読み出したデータを、バッファ転送データとして、読出しバッファ部124に転送する。ここで、バッファ転送制御部133は、書込みバッファ蓄積量がメモリ転送単位長以上である場合には、書込みバッファ125よりメモリ転送単位長のデータ部分を読み出して、このデータ部分をバッファ転送データとして読出しバッファ部124に転送する。一方、バッファ転送制御部133は、書込みバッファ蓄積量がメモリ転送単位長未満である場合には、書込みバッファ125から格納が完了している全ての入力データを読み出して、読み出した全ての入力データをバッファ転送データとして、読出しバッファ部124に転送する。
図6のフローチャートで示されるように、本実施の形態においては、書込みバッファ蓄積量がメモリ転送単位長以上となる場合(ステップS10でYes)には、ステップS11又はステップS12を経て、メモリ転送制御部132又はバッファ転送制御部133の何れかにより、書込みバッファ122に格納されたメモリ転送単位長のデータは、メモリ部129又は読出しバッファ部124のいずれかに転送される。一方、書込みバッファ蓄積量がメモリ転送単位長未満となる場合(ステップS10でNo)には、ステップS14〜S16を経て、書込みバッファ122に記憶されたデータは、書込みバッファ122に記憶されたままとなるか、バッファ転送制御部133により読出しバッファ部124に転送される。このため、本実施の形態では、メモリ部129に転送されるデータは、必ずメモリ転送単位長となり、メモリ部129との間で最も効率よくデータ転送を行うことができるとともに、メモリ転送単位長に満たないデータも、書込みバッファ122から読出しバッファ125に転送され、メモリ転送単位長に満たないデータがメモリ装置120内に滞留してしまうことを防止できる。
図7は、切替制御部136がメモリ部129に記憶されたメモリ転送データを制御する際の処理を示すフローチャートである。
まず、切替制御部136は、読出しバッファ蓄積可能量がメモリ転送単位長以上であるか否かを判断する(S20)。そして、切替制御部136は、読出しバッファ蓄積可能量がメモリ転送単位長以上である場合(ステップS20でYes)には、ステップS21の処理に進む。
ステップS21では、切替制御部136は、メモリ使用状態記憶部130よりメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。切替制御部136は、メモリ使用量が「0」である場合(ステップS21でYes)には、メモリ部129に記憶されているメモリ転送データの転送を行わずに、ステップS20の処理に戻る。一方、切替制御部136は、メモリ使用量が「0」ではない場合(ステップS21でNo)には、ステップS22の処理に進む。
ステップS22では、切替制御部136は、メモリ転送制御部132及び第2切替部135にメモリ読出し指示を与える。このような指示を受けた第2切替部135は、読出しバッファ部124に出力するデータの入力元をメモリ転送制御部132に切り替える。また、このような指示を受けたメモリ転送制御部132は、メモリ部129からメモリ転送データを読み出して、読出しバッファ部124に転送する。
図7のフローチャートで示されるように、本実施の形態においては、読出しバッファ蓄積可能量がメモリ転送単位長以上となる場合(ステップS20でYes)には、ステップS21を経て、メモリ転送制御部132により、メモリ部129に記憶されたメモリ転送データは、読出しバッファ部124に転送される。一方、読出しバッファ蓄積可能量がメモリ転送単位長未満となる場合(ステップS20でNo)には、メモリ部129に記憶されたメモリ転送データは、メモリ部129に記憶されたままとなる。このため、本実施の形態では、メモリ部129から読出されるデータは、必ずメモリ転送単位長となり、メモリ部129との間で最も効率よくデータ転送を行うことができる。
[動作例1]
次に、ページサイズに等しい長さのパケットが、連続してメモリ装置120に入力される際の動作の一例を、図8〜図15を用いて説明する。ここでは、メモリ装置120に入力されるパケットの入力タイミングと、メモリ装置120から出力されるパケットの出力タイミングとが互いに独立しているものとする。なお、図8〜図15では、データの流れを簡略化して説明するために、書込みバッファ部121については書込みバッファ122のみ、読出しバッファ部124については読出しバッファ125のみが示されており、また、演算単位長記憶部127、メモリ使用状態記憶部130及び切替制御部136は、示されていない。さらに、書込みバッファ部122及び読出しバッファ部131に蓄積できるデータの最大長は、メモリ部129のページサイズの2倍、ここでは、2KBとする。また、メモリ部129には、ページサイズ毎の領域129A〜129Eが示されている。
図8は、時刻T10において、メモリ装置120にデータが入力される前の初期状態を示している。この初期状態においては、書込みバッファ122、メモリ部129及び読出しバッファ125には、データが記憶されていない。
図8の状態から、入力処理部110で処理された、長さ1KBのパケットP1が書込みバッファ122に格納されると、図9で示される状態になる。
図9は、時刻T11において、書込みバッファ122に長さ1KBのパケットP1が格納された状態を示している。図9において、ハッチングされたP1の部分が、格納されたパケットを示す。以下、同様に、書込みバッファ122、メモリ部129及び読出しバッファ125に格納されたパケットには、ハッチングを施す。
書込みバッファ122にパケットP1が格納されると、書込み制御部123は、パケットP1のデータ長を演算単位長として、演算単位長記憶部127に記憶させる。
ここで、図9の状態では、書込みバッファ蓄積量が1KBであり、読出しバッファ蓄積可能量が1KB以上であり、かつ、メモリ使用量が「0」であるため、書込みバッファ122に記憶されたパケットP1は、バッファ転送データとして読出しバッファ125に転送される。これは、図6のフローチャートに従って、ステップS10でYes、ステップS11でYes及びステップS12でYesとなり、ステップS17の処理が行われることに相当する。
図9の状態から、長さ1KBのパケットP1が書込みバッファ122から読出しバッファ125に転送されると、図10で示される状態となる。
図10は、時刻T12において、読出しバッファ125に長さ1KBのパケットP1が格納された状態を示している。図10においては、パケットP1の転送を行ったバッファ転送制御部133にクロスハッチングが施されている。以下、同様に、パケットの転送を行ったメモリ転送制御部132又はバッファ転送制御部133には、クロスハッチングを施す。
読出し制御部126は、パケットP1を読出しバッファ125に格納すると、演算単位長記憶部127に演算単位長を問い合わせることで、パケットP1を出力処理部140に出力する際の演算単位長を取得する。
ここで、図10の状態から、入力処理部110で処理された、長さ1KBのパケットP2が書込みバッファ122に格納されると、図9の状態と同様に、切替制御部136は、第1切替部134、バッファ転送制御部133及び第2切替部135を制御して、書込み一時バッファ122に記憶されているパケットP2を読み出し、バッファ転送データとして読出しバッファ125に転送させる。
図10の状態から、長さ1KBのパケットP2が読出しバッファ125に転送されると、図11で示される状態となる。
図11は、時刻T13において、読出しバッファ125に長さ1KBのパケットP1及びP2が格納された状態を示している。読出し制御部126は、パケットP2を読出しバッファ125に格納すると、演算単位長記憶部127に演算単位長を問い合わせることで、パケットP2を出力処理部140に出力する際の演算単位長を取得する。
図11の状態から、入力処理部110で処理された、長さ1KBのパケットP3が書込みバッファ122に格納されると、図12で示される状態になる。
図12は、時刻T14において、書込みバッファ122に長さ1KBのパケットP3が格納され、かつ、読出しバッファ125に長さ1KBのパケットP1及びP2が格納された状態を示している。書込みバッファ122にパケットP3が格納されると、書込み制御部123は、パケットP3のデータ長を演算単位長として、演算単位長記憶部127に記憶させる。
ここで、図12の状態では、書込みバッファ蓄積量が1KBであり、かつ、読出しバッファ蓄積可能量が1KB未満であるため、書込み一時バッファ122に記憶されているパケットP3は、メモリ転送データとしてメモリ部129に転送される。これは、図6のフローチャートに従って、ステップS10でYes及びステップS11でNoとなり、ステップS13の処理が行われることに相当する。例えば、メモリ転送制御部132は、メモリ部129に対して、連続する1KBの書込み転送を実施する。メモリ転送制御部132は、メモリコントローラ部128を介して、メモリ部129へ1回のACTコマンドと、複数回のWRITEコマンドを発行して、メモリ部129に1KBのパケットP3を書き込む。WRITEコマンドの発行回数は、書込むデータのデータ長である1KBを、DDR−SDRAMであるメモリ部129の「メモリ幅×バースト長÷8ビット」で除した値で求められる。例えば、バースト長を8、メモリビット幅(メモリのビット幅)を16ビットとすると、1回のWRITEコマンドにより16B(=16ビット×8ワード÷8)のデータがメモリ部129に記憶され、64回(=1KB÷16B)のWRITEコマンドによりメモリ部129への書込みが完了する。
図12の状態から、長さ1KBのパケットP3が書込みバッファ122からメモリ部129に転送されると、図13で示される状態となる。
図13は、時刻T15において、メモリ部129に長さ1KBのパケットP3が格納され、かつ、読出しバッファ125に長さ1KBのパケットP1及びP2が格納された状態を示している。切替制御部136は、メモリ部129に長さ1KBのパケットP3が格納されると、メモリ使用状態記憶部130に記憶されているメモリ使用量を「1」増加させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。なお、本実施の形態では、メモリ部129に記憶されるデータのデータ長は、常に1KBの自然数倍となる。
図13の状態から、長さ1KBのパケットP1が読出しバッファ125から出力処理部140に出力されると、図14で示される状態となる。読出し制御部126は、時刻T12において、演算単位長記憶部127から取得した演算単位長に基づいて、パケットP1を読出しバッファ125から読み出して、出力処理部140に出力する。
図14は、時刻T16において、メモリ部129に長さ1KBのパケットP3が格納され、かつ、読出しバッファ125に長さ1KBのパケットP2が格納された状態を示している。ここで、図14の状態では、読出しバッファ蓄積可能量が1KBであり、かつ、メモリ部129のメモリ使用量が「0」ではないため、メモリ部129に記憶されているパケットP3は、読出しバッファ125に転送させる。これは、図7のフローチャートに従って、ステップS20でYes及びステップS21でNoとなり、ステップS22の処理が行われることに相当する。例えば、メモリ転送制御部132は、メモリ部129に対して、連続する1KBの読出し転送を実施する。メモリ転送制御部132は、メモリコントローラ部128を介して、メモリ部129へ1回のACTコマンドと、複数回のREADコマンドを発行して、メモリ部129から1KBのパケットP3を読み出す。
図14の状態から、長さ1KBのパケットP3がメモリ部129から読出しバッファ125に転送されると、図15で示される状態となる。
図15は、時刻T17において、読出しバッファ125に長さ1KBのパケットP2及びP3が格納された状態を示している。切替制御部136は、メモリ部129から長さ1KBのパケットP3が読出しバッファ125に転送されたので、メモリ使用状態記憶部130に記憶されているメモリ使用量を「1」減算させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。
図16は、図8〜図15で示される状態における、入力処理部110からメモリ装置120への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部129に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置120から出力処理部140への入力データの出力タイミングを示す概略図である。図16に示されている時刻T10〜T17は、図8〜図15に示されている時刻T10〜T17と同じ時刻である。なお、図16は、WRITEコマンド及びREADコマンドの発行回数を簡略化して示している。また、図16では、パケットの演算単位長CULは、1KBであり、また、メモリ装置120におけるメモリ転送単位長MULも、1KBである。
時刻T10において、入力処理部110よりメモリ装置120へのパケットP1の入力が開始されると、入力されたパケットP1は書込みバッファ122に格納されるため、書込みバッファ蓄積量は、時刻T10以降増加する。このとき、メモリ部129及び読出しバッファ125にはデータが記憶されておらず、メモリ蓄積量は「0」であり、読出しバッファ蓄積可能量は、最大値である2KBである。
時刻T11において、パケットP1が全て書込みバッファ122に格納されると、書込みバッファ蓄積量は1KBとなる。そして、パケットP1は、書込みバッファ122より、読出しバッファ125に転送される。従って、時刻T11以降、書込みバッファ蓄積量は減少する。また、時刻T11以降、書込みバッファ122から転送されたパケットP1が読出しバッファ125に格納されるため、読出しバッファ蓄積可能量は減少する。
時刻T12において、パケットP1が全て読出しバッファ125に格納されると、書込みバッファ蓄積量は「0」となる。また、読出しバッファ蓄積可能量は、最大値の2KBから格納されたパケットP1の1KBを減算した1KBとなる。
時刻T12以降において、入力処理部110よりメモリ装置120へのパケットP2の入力が開始されると、書込みバッファ蓄積量は増加する。このとき、メモリ蓄積量は「0」であり、読出しバッファ蓄積可能量は1KBである。
時刻T12−1において、パケットP2が全て書込みバッファ122に格納されると、書込みバッファ蓄積量は1KBとなる。そして、パケットP2は、書込みバッファ122より、読出しバッファ125に転送される。従って、時刻T12−1以降、書込みバッファ蓄積量は減少する。また、時刻T12−1以降、書込みバッファ122から転送されたパケットP2が読出しバッファ125に格納されるため、読出しバッファ蓄積可能量は減少する。
時刻T13において、パケットP2が全て読出しバッファ125に格納されると、書込みバッファ蓄積量は「0」となる。また、読出しバッファ125の蓄積量は2KBとなり、読出しバッファ蓄積可能量は「0」となる。
時刻T13以降において、入力処理部110よりメモリ装置120へのパケットP3の入力が開始されると、書込みバッファ蓄積量は増加する。このとき、メモリ蓄積量及び読出しバッファ蓄積可能量は、ともに「0」である。
時刻T14において、パケットP3が全て書込みバッファ122に格納されると、書込みバッファ蓄積量は1KBとなり、読出しバッファ蓄積可能量が「0」、かつ、メモリ部129のメモリ蓄積量が「0」であることから、パケットP3は、メモリ部129に転送される。このとき、メモリ転送制御部132は、1回のACTコマンドと、複数回のWRITEコマンドをメモリ部129に発行する。パケットP3がメモリ部129に転送されることから、時刻T14以降、書込みバッファ蓄積量は減少し、メモリ部129のメモリ蓄積量は増加する。
時刻T15において、パケットP3が全てメモリ部129に格納されると、書込みバッファ蓄積量は「0」となり、メモリ蓄積量は1KBとなる。
時刻T15以降において、メモリ装置120から出力処理部140にパケットP1の出力が開始されると、パケットP3は読出しバッファ125から出力されるので、読出しバッファ125の蓄積量は減少し、読出しバッファ蓄積可能量は増加する。
時刻T16において、パケットP1が全て出力されると、読出しバッファ蓄積可能量は1KBとなる。そして、パケットP3は、メモリ部129から読出しバッファ125に転送される。このとき、メモリ転送制御部132は、1回のACTコマンドと、複数回のREADコマンドをメモリ部129に発行する。パケットP3が読出しバッファ125に転送されるため、時刻T16以降、メモリ蓄積量は減少する。一方、時刻T16以降、読出しバッファ125の蓄積量は増加して、読出しバッファ蓄積可能量は減少する。
時刻T17において、パケットP3が全て読出しバッファ125に格納されると、メモリ蓄積量は「0」となり、また、読出しバッファ蓄積可能量も「0」となる。
以上のように、信号処理装置100は、書込みバッファ122、読出しバッファ125及びメモリ部129のデータ量に応じて、書込みバッファ122に格納されたデータをメモリ部129に記憶せずに読出しバッファ125に転送するため、メモリ部129を経由する時間を省略し、装置内での遅延を少なくすることができる。また、信号処理装置100は、メモリ部129との間のデータ転送回数を減らすことができため、メモリ部129との入出力信号が変化する回数及びメモリ部129の動作時間を減らすことができ、装置の消費電力を低下させることができる。
[動作例2]
次に、ページサイズとは異なる長さのパケットが、連続してメモリ装置120に入力される際の動作の一例を、図17〜図24を用いて説明する。ここでは、メモリ装置120に入力されるパケットの入力タイミングと、メモリ装置120から出力されるパケットの出力タイミングとが互いに独立しているものとする。なお、図17〜図24においても、図8〜図15と同様に、データの流れを簡略化して説明するために、書込みバッファ部121については書込みバッファ122のみ、読出しバッファ部124については読出しバッファ125のみが示されており、また、切替制御部136及びメモリ使用状態記憶部130は、示されていない。さらに、書込みバッファ部122及び読出しバッファ部131に蓄積できるデータの最大長は、ページサイズの2倍、ここでは、2KBとする。また、メモリ部129には、ページサイズ毎の領域129A〜129Eが示されている。なお、図17〜図24でも、書込みバッファ122、メモリ部129及び読出しバッファ125に格納されたパケットには、ハッチングを施し、パケットの転送を行ったメモリ転送制御部132又はバッファ転送制御部133には、クロスハッチングを施す。
ここで、図17〜図24では、メモリ装置120に、ページサイズよりも大きい1.5KBのパケットP6と、ページサイズよりも小さい0.06KBのパケットP7とが、順に入力される際の動作を説明する。
図17は、時刻T20において、メモリ装置120にパケットP6が入力される前の状態を示している。この状態においては、書込みバッファ122及びメモリ部129には、データが格納されていないが、読出しバッファ125には、それぞれ1KBのパケットP4及びP5が格納されている。
図17の状態から、入力処理部110で処理された、長さ1.5KBのパケットP6の内、先頭から1KBまでの部分P6aが書込みバッファ122に格納されると、図18で示される状態になる。
図18は、時刻T21において、書込みバッファ122に長さ1.5KBのパケットP6の内、先頭から1KBまでの部分P6aが格納され、読出しバッファ125にパケットP4及びP5が格納された状態を示している。ここで、図18の状態では、書込みバッファ蓄積量が1KBであり、かつ、読出しバッファ蓄積可能量が「0」であるため、書込み一時バッファ122に記憶されている部分P6aは、メモリ部129に転送させる。これは、図6のフローチャートに従って、ステップS10でYes及びステップS11でNoとなり、ステップS13の処理が行われることに相当する。
図18の状態から、部分P6aが書込みバッファ122からメモリ部129に転送され、また、パケットP6の内、部分P6aを除いた部分P6bが書込みバッファ122に格納されると、図19で示される状態となる。
図19は、時刻T22において、書込みバッファ122に部分P6bが格納され、メモリ部129に部分P6aが格納され、かつ、読出しバッファ125にパケットP4及びP5が格納された状態を示している。切替制御部136は、メモリ部129に長さ1KBの部分P6aが格納されると、メモリ使用状態記憶部130に記憶されているメモリ使用量を「1」増加させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。また、書込み制御部123は、書込みバッファ122に部分P6bが格納されると、パケットP6全体のデータ長を演算単位長として、演算単位長記憶部127に記憶させる。
時刻T22では、書込みバッファ蓄積量は0.5KB(=1.5KB−1KB)、メモリ使用量は1KB、読出しバッファ蓄積可能量は「0」であるため、図6のフローチャートに従って、ステップS10でNo、ステップS14でYes及びステップS15でNoとなり、書込みバッファ122からのデータ転送は行われず、部分P6bは書込みバッファ122に格納されたままとなる。さらに、読出しバッファ蓄積可能量は、「0」であるため、図7のフローチャートに従って、ステップS20でNoとなり、メモリ部129からのデータ転送も行われず、部分P6aはメモリ部129に記憶されたままとなる。
図19の状態から、入力処理部110で処理された、長さ0.06KBのパケットP7が書込みバッファ122に格納されると、図20で示される状態となる。
図20は、時刻T23において、書込みバッファ122に部分P6b及びパケットP7が格納され、メモリ部129に部分P6aが格納され、かつ、読出しバッファ125にパケットP4及びP5が格納された状態を示している。時刻T23では、書込みバッファ蓄積量は、0.56KB(=1.5KB−1KB+0.06KB)、メモリ使用量は1KB、読出しバッファ蓄積可能量は「0」であるため、図6のフローチャートに従って、ステップS10でNo、ステップS14でYes及びステップS15でNoとなり、書込みバッファ122からのデータ転送は行われず、部分P6b及びパケットP7は書込みバッファ122に記憶されたままとなる。さらに、読出しバッファ蓄積可能量は「0」であるため、図7のフローチャートに従って、ステップS20でNoとなり、メモリ部129からのデータ転送も行われず、部分P6aはメモリ部129に格納されたままとなる。
図20の状態から、長さ1KBのパケットP4が読出しバッファ125から出力処理部140に出力されると、図21で示される状態となる。
図21は、時刻T24において、書込みバッファ122に部分P6b及びパケットP7が格納され、メモリ部129に部分P6aが格納され、かつ、読出しバッファ125にパケットP5が格納された状態を示している。書込み制御部123は、書込みバッファ122に部分P6bが格納されると、パケットP6全体のデータ長を演算単位長として、演算単位長記憶部127に記憶させる。
時刻T24では、書込みバッファ蓄積量が0.56KB、メモリ部129のメモリ使用量が1KB、読出しバッファ蓄積可能量が1KBであるため、図6のフローチャートに従って、ステップS10でNo、ステップS14でYes、ステップS15でYes及びステップS16でNoとなり、書込みバッファ122からのデータ転送は行われず、部分P6b及びパケットP7は書込みバッファ122に記憶されたままとなる。一方、読出しバッファ蓄積可能量が1KBであるため、図7のフローチャートに従って、ステップS20でYes及びステップS21でNoとなり、メモリ部129に格納されている部分P6aは、読出しバッファ125に転送させる。例えば、メモリ転送制御部132は、メモリ部129に対して、連続する1KBの読出し転送を実施する。メモリ転送制御部132は、メモリコントローラ部128を介して、メモリ部129へ1回のACTコマンドと、複数回のREADコマンドを発行して、メモリ部129から1KBの部分P6aを読み出す。READコマンド発行回数は、WRITEコマンド発行回数と同様に求められる。例えば、バースト長が8、メモリのビット幅が16ビットとすると、64回のREADコマンドによりメモリ部129から部分P6aが読み出される。
図21の状態から、長さ1KBの部分P6aがメモリ部129から読出しバッファ125に転送されると、図22で示される状態となる。
図22は、時刻T25において、書込みバッファ122に部分P6b及びパケットP7が格納され、読出しバッファ125に部分P6a及びパケットP5が格納された状態を示している。切替制御部136は、メモリ部129から長さ1KBの部分P6aが読出しバッファ125に転送されたので、メモリ使用状態記憶部130に記憶されているメモリ使用量を「1」減算させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。また、読出し制御部126は、部分P6aを読出しバッファ125に格納すると、演算単位長記憶部127に演算単位長を問い合わせることで、パケットP6を出力処理部140に出力する際の演算単位長を取得する。
時刻T25では、書込みバッファ蓄積量が0.56KB、読出しバッファ蓄積可能量が「0」であるため、図6のフローチャートにおいて、ステップS10でNo、ステップS14でYes、ステップS15でNoとなり、書込みバッファ122からのデータ転送は行われず、部分P6b及びパケットP7は書込みバッファ122に記憶されたままとなる。
図22の状態から、長さ1KBのパケットP5が読出しバッファ125から出力処理部140に出力されると、図23で示される状態となる。
図23は、時刻T26において、書込みバッファ122に部分P6b及びパケットP7が格納され、かつ、読出しバッファ125に部分P6aが格納された状態を示している。時刻T26では、書込みバッファ蓄積量が0.56KB、メモリ使用量が「0」、読出しバッファ蓄積可能量が1KBであるため、書込み一時バッファ122に格納されている部分P6b及びパケットP7は、読出しバッファ125に転送させる。これは、図6のフローチャートにおいて、ステップS10でNo、ステップS14でYes、ステップS15でYes及びステップS16でYESとなり、ステップS17の処理が実行されることに相当する。
図23の状態から、部分P6b及びパケットP7が書込みバッファ122から読出しバッファ125に転送されると、図24で示される状態となる。
図24は、時刻T27において、読出しバッファ125に長さ1.5KBのパケットP6及び長さ0.06KBのパケットP7が格納された状態を示している。読出し制御部126は、パケットP7を読出しバッファ125に格納すると、演算単位長記憶部127に演算単位長を問い合わせることで、パケットP7を出力処理部140に出力する際の演算単位長を取得する。
図25は、図17〜図24で示される状態における、入力処理部110からメモリ装置120への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部129に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置120から出力処理部140への入力データの出力タイミングを示す概略図である。図25に示されている時刻T20〜T27は、図17〜図24に示されている時刻T20〜T27と同じ時刻である。なお、図25は、WRITEコマンド及びREADコマンドの発行回数を簡略化して示している。
時刻T20において、入力処理部110よりメモリ装置120へのパケットP6の入力が開始されると、入力されたパケットP6は書込みバッファ122に格納されるため、時刻T20以降、書込みバッファ蓄積量は増加する。このとき、メモリ部129にはデータが記憶されておらず、メモリ蓄積量は「0」である。また、読出しバッファ125には、それぞれ1KBのパケットP4及びP5が記憶されているため、読出しバッファ蓄積可能量は「0」である。なお、パケットP6の演算単位長CULは1.5KBであり、また、メモリ装置120におけるメモリ転送単位長MULは1KBである。
時刻T21において、パケットP6の内、先頭から1KBまでの部分P6aが書込みバッファ122に格納されると、書込みバッファ蓄積量は、1KBとなる。そして、部分P6aは、書込みバッファ122よりメモリ部129に転送される。このとき、メモリ転送制御部132は、1回のACTコマンドと、複数回のWRITEコマンドをメモリ部129に発行する。従って、時刻T21以降、書込みバッファ蓄積量は減少するが、パケットP6の残りの部分P6bが格納されるため、書込みバッファ蓄積量は「0」にはならない。さらに、時刻T21以降、メモリ蓄積量は増加する。
時刻T22において、部分P6aが全てメモリ部129に格納されると、書込みバッファ蓄積量は、パケットP6のデータ長から部分P6aのデータ長を減算したもの(1.5−1=0.5KB)となる。また、メモリ蓄積量は1KBとなる。
そして、時刻T22以降において、入力処理部110よりメモリ装置120へのパケットP7の入力が開始されると、入力されたパケットP7は書込みバッファ122に格納されるため、書込みバッファ蓄積量は増加する。
時刻T23において、パケットP7が全て書込みバッファ122に格納されると、書込みバッファ蓄積量は、部分P6bのデータ長にパケットP7のデータ長を加算したもの(0.5+0.06=0.56KB)となる。
そして、時刻T23以降において、メモリ装置120から出力処理部140にパケットP4の出力が開始されると、パケットP4は読出しバッファ125から出力されるので、読出しバッファ125の蓄積量は減少して、読出しバッファ蓄積可能量は増加する。
時刻T24において、パケットP4が全て出力されると、読出しバッファ蓄積可能量は1KBとなる。そして、部分P6aは、メモリ部129から読出しバッファ125に転送される。このとき、メモリ転送制御部132は、1回のACTコマンドと、複数回のREADコマンドをメモリ部129に発行する。このため、時刻T24以降、メモリ蓄積量は減少する。一方、時刻T24以降、メモリ部129から転送された部分P6aが読出しバッファ125に格納されるため、読出しバッファ125の蓄積量が増加して、読出しバッファ蓄積可能量は減少する。
時刻T25において、部分P6aが全て読出しバッファ125に格納されると、メモリ蓄積量は「0」となり、また、読出しバッファ蓄積可能量も「0」となる。
そして、時刻T25以降において、メモリ装置120から出力処理部140にパケットP5の出力が開始されると、パケットP5は読出しバッファ125から出力されるので、読出しバッファ蓄積可能量は増加する。
時刻T26において、パケットP5が全て出力されると、読出しバッファ蓄積可能量は1KBとなる。そして、部分P6b及びパケットP7は、書込みバッファ122から読出しバッファ125に転送される。このため、時刻T26以降、書込みバッファ蓄積量は減少し、読出しバッファ蓄積量が増加して、読出しバッファ蓄積可能量は減少する。
時刻T27において、部分P6b及びパケットP7が全て読出しバッファ125に格納されると、書込みバッファ蓄積量及びメモリ使用量は、ともに「0」となる。また、読出しバッファ蓄積可能量は、読出しバッファ125の蓄積最大値から、パケットP6及びパケットP7のデータ長を減算したもの{2−(1.5+0.06)=0.44KB}となる。
以上のように、本実施の形態によれば、信号処理装置100が処理するデータの演算単位長に拘わらず、メモリ部129に転送するデータのメモリ転送単位長をページサイズと等しい長さに固定することができるため、メモリ部129に書き込みを行う際及びメモリ部129から読出しを行う際のアドレス設定回数を減らすことができる。これにより、メモリ部129へのデータ転送効率が向上するため、より低い動作周波数のDDR−SDRAMをメモリ部129として使用することができ、メモリ部129にかかるコスト及び消費電力を下げることができる。例えば、処理するデータ毎にメモリ部129にアクセスする場合には、最も小さい演算単位長(0.06KB)のパケットが入力されるたびにACTコマンドが発行されるとすると、17パケット、即ち、約1KBのデータを処理する際に、本実施の形態に比べて、(1KB÷0.06KB−1)=16回分の上位アドレス設定期間が余分に必要となる。
また、本実施の形態によれば、メモリ転送単位長を大きくしても、メモリ部129を経由せずに、書込みバッファ122から読出しバッファ125にデータを転送することができるため、メモリ転送単位長となるまでデータを保持しておくことにより発生する遅延をなくし、データの装置内遅延を少なくすることができる。
本実施の形態における入力処理部110及び出力処理部140で施される処理は、パケットのヘッダの削除、追加、付替え、エラー訂正等であるが、これらの処理に限定されない。また、メモリ部129のメモリ転送単位長は、DDR−SDRAMの転送効率を最も高くするため、ページサイズと等しくするのが望ましい。一方、書込みバッファ122及び読出しバッファ125は、SRAMやフリップフロップなどのランダムアクセス可能なメモリにより構成することで、その最大蓄積量は、メモリ転送単位長の自然数倍である必要はなくなる。また、メモリ部129へのデータの書き込み及び読み出しを行うかどうかを判断するには、メモリ使用量の他に、書込みバッファ蓄積量及び読出しバッファ蓄積可能量も判断されるので、書込みバッファ122と読出しバッファ125の最大蓄積量を等しくする必要はない。
実施の形態1においては、動作例1のように、演算単位長が予め決まっている場合には、読出し制御部126は、読出しバッファ125から読み出す入力データのデータ長を固定のものとすることができるため、演算単位長記憶部127を設ける必要はない。また、切換制御部136も、書込みバッファ蓄積量により入力データの格納が完了したか否かを認識することができるため、書込み制御部123は演算単位蓄積通知を行う必要はない。
実施の形態2.
図26は、本発明における実施の形態2に係る信号処理装置200の構成を示すブロック図である。信号処理装置200は、複数の処理系統のそれぞれについて、転送効率の高いメモリアクセスを実現する場合に、メモリ部を経由することにより発生する装置内遅延を少なくする。さらに、信号処理装置200は、複数の処理系統間でメモリ装置220を共有することにより、装置規模が小さくなる。
信号処理装置200は、複数の入力処理部210A、210B、210C(各々を特に区別しない場合には、入力処理部210という)と、メモリ装置220と、複数の出力処理部240A、240B、240C(各々を特に区別しない場合には、出力処理部240という)とを備える。メモリ装置220は、複数の処理系統、例えば、入力処理部210A及び出力処理部240Aを含む処理系統A、入力処理部210B及び出力処理部240Bを含む処理系統B、並びに、入力処理部210C及び出力処理部240Cを含む処理系統Cで使用される。例えば、入力処理部210Aからメモリ装置220に入力された入力データは、メモリ装置220から出力処理部240Aに出力され、入力処理部210Bからメモリ装置220に入力された入力データは、メモリ装置220から出力処理部240Bに出力され、入力処理部210Cからメモリ装置220に入力された入力データは、メモリ装置220から出力処理部240Cに出力される。
入力処理部210は、データに対して所定の処理を施し、処理後のデータを固定長又は可変長の入力データとして、メモリ装置220に入力する。ここで、各々の入力処理部210A、210B、210Cが行う処理は、同じ処理であってもよく、また、異なる処理であってもよい。
また、メモリ装置220から出力処理部240に出力される入力データは、出力処理部240で所定の処理が施されて出力データとされる。出力処理部240は、出力データを出力する。ここで、各々の出力処理部240A、240B、240Cが行う処理は、同じ処理であってもよく、また、異なる処理であってもよい。また、出力処理部240の出力が、別の処理系統の入力処理部210に入力されて、続けて別系統の処理が施される構成であってもよい。
メモリ装置220は、書込みバッファ部221と、読出しバッファ部224と、演算単位長記憶部227と、メモリコントローラ部128と、メモリ部129と、メモリ使用状態記憶部230と、転送制御切替部231とを備える。メモリ装置220は、書込みバッファ部221、読出しバッファ部224、演算単位長記憶部227、メモリ使用状態記憶部230及び転送制御切替部231において、実施の形態1におけるメモリ装置120と異なっている。なお、本実施の形態においても、メモリ転送単位長は、1KBである。また、本実施の形態においては、メモリ部129の記憶領域を、処理系統毎に分けておき、処理系統毎に分けられた領域に、処理系統毎のメモリ転送データを記憶することで、処理系統毎のメモリ転送データを分けて管理するようにしてもよい。
書込みバッファ部221は、書込みバッファ222A、222B、222C(各々を特に区別しない場合には、書込みバッファ222という)と、書込み制御部223とを備え、入力処理部210から与えられた入力データを一時的に記憶して、この入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを転送制御切替部231に与える。
本実施の形態では、メモリ装置220が複数の処理系統で使用されるため、書込みバッファ222Aは、入力処理部210Aから入力された入力データを一時的に記憶し、書込みバッファ222Bは、入力処理部210Bから入力された入力データを一時的に記憶し、書込みバッファ222Cは、入力処理部210Cから入力された入力データを一時的に記憶する。
書込み制御部223は、書込みバッファ222を制御する。また、書込み制御部223は、各々の書込みバッファ222A、222B、222Cに記憶されている入力データの各々の総データ量を各々示す書込みバッファ蓄積量WSM−A、WSM−B、WSM−Cを転送制御切替部231に通知する。また、書込み制御部223は、各々の書込みバッファ222A、222B、222Cにデータを格納することのできる各々の空きデータ量を各々示す書込みバッファ蓄積可能量WPM−A、WPM−B、WPM−Cを転送制御切替部231に与える。さらに、書込み制御部223は、各々の書込みバッファ222A、222B、222Cに1つの入力データの格納が完了すると、転送制御切替部231に演算単位蓄積通知CUN−A、CUN−B、CUN−Cを行う。そして、書込み制御部223は、処理系統毎に、入力処理部210から与えられた各々の入力データのデータ長を演算単位長として、演算単位長記憶部227に記憶させる。
読出しバッファ部224は、読出しバッファ225A、225B、225C(各々を特に区別しない場合には、読出しバッファ225という)と、読出し制御部226とを備え、転送制御切替部231から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶し、これらのデータから入力データを抽出して出力処理部140に与える。
本実施の形態では、メモリ装置220が複数の処理系統で使用されるため、読出しバッファ225Aは、入力処理部210Aから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶する。同様に、読出しバッファ225Bは、入力処理部210Bから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶し、読出しバッファ225Cは、入力処理部210Cから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶する。
読出し制御部226は、読出しバッファ225を制御する。例えば、読出しバッファ制御部226は、演算単位長記憶部227から、処理系統毎に入力データの演算単位長を取得して、この演算単位長の入力データを各々の読出しバッファ225A、225B、225Cより読み出して、各々の出力処理部240A、240B、240Cに出力する。また、読出し制御部226は、各々の読出しバッファ225A、225B、225Cにデータを格納することのできる空きデータ量を各々示す読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cを転送制御切替部231に与える。さらに、読出し制御部226は、各々の読出しバッファ225A、225B、225Cに格納されているデータの総データ量を各々示す読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cを転送制御切替部231に与える。
演算単位長記憶部224は、各々の書込みバッファ222A、222B、222Cに格納された各々の入力データのデータ長を演算単位長として、処理系統毎に記憶する。また、演算単位長記憶部224は、読出し制御部226からの問い合わせに応じて、読出し制御部226に処理系統毎の入力データの演算単位長を与える。例えば、演算単位長記憶部224は、処理系統毎に、書込み制御部223から演算単位長が与えられた順番に従って、読出し制御部226にこの演算単位長を与える。このようにすることで、各々の入力処理部210A、210B、210Cから入力データが入力された順番で、この入力データを各々の出力処理部240A、240B、240Cに出力することができるようになる。
メモリ使用状態記憶部230は、処理系統毎に、メモリ部129に各々の処理系統におけるメモリ転送データが記憶されているか否かを示すメモリ使用状態を記憶する。本実施の形態においては、メモリ使用状態として、各々の処理系統におけるメモリ使用量が用いられる。従って、特定の処理系統におけるメモリ使用量が「0」である場合には、この処理系統におけるメモリ転送データが記憶されていないことを示す。また、特定の処理形態におけるメモリ使用量が「0」ではない場合には、この処理系統におけるメモリ転送データが記憶されていることを示す。なお、メモリ使用量については、転送制御切替部231により更新される。
転送制御切替部231は、メモリ転送制御部232と、バッファ転送制御部233と、第1切替部234と、第2切替部235と、切替制御部236とを備え、書込みバッファ部221、メモリ部129及び読出しバッファ部224に記憶されるデータの流れを制御する。
メモリ転送制御部232は、切替制御部236からの指示に応じて、書込みバッファ部221よりメモリ転送単位長のデータをメモリ転送データとして取得して、メモリコントローラ部128を介して、このメモリ転送データをメモリ部129に記憶させる。そして、メモリ転送制御部232は、メモリ転送データのメモリ部129への転送が完了した場合には、切替制御部236にメモリ書込み完了通知MWEを与える。また、メモリ転送制御部232は、切替制御部236からの指示に応じて、メモリコントローラ部128を介して、メモリ部129よりメモリ転送データを読み出して、このメモリ転送データを読出しバッファ部230に記憶させる。そして、メモリ転送制御部232は、メモリ転送データの読出しバッファ部230への転送が完了した場合には、切替制御部236にメモリ読出し完了通知MREを与える。
バッファ転送制御部233は、切替制御部236からの指示に応じて、書込みバッファ部221に格納されている全ての入力データをバッファ転送データとして取得して、このバッファ転送データを読出しバッファ部224に記憶させる。ここで、バッファ転送制御部233がバッファ転送データとして取得する入力データは、書込みバッファ部221に格納が完了しているものであって、バッファ転送制御部133は、まだ格納途中の入力データについては、バッファ転送データとして取得しない。そして、バッファ転送制御部233は、バッファ転送データの読出しバッファ部224への転送が完了した場合には、バッファ転送完了通知BTEを切替制御部236に与える。
第1切替部234は、切替制御部236からの指示に応じて、書込みバッファ部221から入力されるデータの出力先を、メモリ転送制御部232及びバッファ転送制御部233の間で切り替える。
第2切替部235は、切替制御部236からの指示に応じて、読出しバッファ部224に出力するデータの入力元を、メモリ転送制御部232及びバッファ転送制御部233の間で切り替える。
切替制御部236は、メモリ転送制御部232、バッファ転送制御部233、第1切替部234及び第2切替部235を制御することにより、メモリ装置220内におけるデータ転送を制御する。ここで、切替制御部236は、書込みバッファ蓄積量WSM−A、WSM−B、WSM−Cと、書込みバッファ蓄積可能量WPM−A、WPM−B、WPM−Cと、読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cと、読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cと、メモリ使用量MUM−A、MUM−B、MUM−Cと、メモリ書込み完了通知MWEと、メモリ読出し完了通知MREと、バッファ転送完了通知BTEと、に基づいて、メモリ装置220内におけるデータの流れを制御する。また、切替制御部236は、メモリ使用状態記憶部230に記憶されているメモリ使用量MUM−A、MUM−B、MUM−Cを管理する。
図27は、切替制御部236の構成を示すブロック図である。切替制御部236は、転送要求発行部250A、250B、250C(各々を特に区別しない場合には、転送要求発行部250という)と、メモリ書込み転送選択部251と、メモリ読出し転送選択部252と、バッファ転送選択部253と、転送処理部254とを備える。ここで、転送要求発行部250Aは、処理系統Aの処理を行い、転送要求発行部250Bは、処理系統Bの処理を行い、転送要求発行部250Cは、処理系統Cの処理を行う。
各々の転送要求発行部250A、250B、250Cは、書込み制御部223より、各々の書込みバッファ222A、222B、222Cにおける書込みバッファ蓄積量WSM−A、WSM−B、WSM−C及び演算単位蓄積通知CUN−A、CUN−B、CUN−Cを取得する。また、各々の転送要求発行部250A、250B、250Cは、読出し制御部226より、各々の読出しバッファ225A、225B、225Cにおける読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cを取得する。さらに、各々の転送要求発行部250A、250B、250Cは、メモリ使用状態記憶部230より、各々の処理系統におけるメモリ使用量MUM−A、MUM−B、MUM−Cを取得する。
そして、各々の転送要求発行部250A、250B、250Cは、取得したこれらの情報により、各々の書き込みバッファ222A、222B、222Cに記憶されている入力データをメモリ部129に転送する条件が満たされると判断した場合には、メモリ書込み要求WTR−A、WTR−B、WTR−Cをメモリ書込み要求選択部251に出力する。また、各々の転送要求発行部250A、250B、250Cは、取得したこれらの情報により、各々の書き込みバッファ222A、222B、222Cに記憶されている入力データを読出しバッファ225A、225B、225Cに転送する条件が満たされると判断した場合には、バッファ転送要求BTR−A、BTR−B、BTR−Cをバッファ転送選択部253に出力する。さらに、各々の転送要求発行部250A、250B、250Cは、取得したこれらの情報により、メモリ部129に記憶されている処理系統毎のメモリ転送データを読出しバッファ225A、225B、225Cに転送する条件が満たされると判断した場合には、メモリ読出し要求RTR−A、RTR−B、RTR−Cをメモリ読出し転送選択部252に出力する。
メモリ書込み転送選択部251は、転送要求発行部250A、250B、250Cより、メモリ書込み要求WTR−A、WTR−B、WTR−Cを受けると、これらの要求から1つの要求を選択して、選択した要求に対応する処理系統を特定したメモリ書込み選択結果WSR−A、WSR−B、WSR−Cを転送処理部254に与える。例えば、メモリ書込み転送選択部251は、メモリ転送制御部232が書込みバッファ222からメモリ部129にメモリ転送データの転送を行っていない場合には、最初に受けたメモリ書込み要求を選択する。一方、メモリ書込み転送選択部251は、メモリ転送制御部232が書込みバッファ222からメモリ部129にメモリ転送データの転送を行っている場合には、メモリ転送制御部232からメモリ転送完了通知MWEを受けた際に、メモリ書き込み要求WTR−A、WTR−B、WTR−Cを1つ受けているときは、この要求を選択する。また、この際に、メモリ書き込み要求WTR−A、WTR−B、WTR−Cを複数受けているときは、メモリ書込み転送選択部251は、書込みバッファ蓄積可能量WPM−A、WPM−B、WPM−Cが最も小さい処理系統の要求を選択する。
メモリ書込み選択結果WSR−A、WSR−B、WSR−Cを受けた転送処理部254は、この結果で特定される処理系統の書込みバッファ222からデータを読み出して、メモリ部129に転送する指示であるメモリ書込み指示を、第1切替部234及びメモリ転送制御部232に与える。
メモリ書込み選択結果WSR−A、WSR−B、WSR−Cは、転送処理部254に与えられるとともに、転送要求発行部250A、250B、250Cにフィードバックされる。メモリ書込み選択結果WSR−A、WSR−B、WSR−Cで特定されている処理系統の転送要求発行部250A、250B、250Cは、要求を出す条件が満たされなくなると、出力中のメモリ書込み要求WTR−A、WTR−B、WTR−Cを取り下げる。メモリ書込み選択結果WSR−A、WSR−B、WSR−Cで特定されていない処理系統の転送要求発行部250A、250B、250Cは、メモリ書込み要求WTR−A、WTR−B、WTR−Cを出力し続ける。
メモリ読出し転送選択部252は、転送要求発行部250A、250B、250Cより、メモリ読出し要求RTR−A、RTR−B、RTR−Cを受けると、これらの要求から1つの要求を選択して、選択した要求に対応する処理系統を特定したメモリ読出し選択結果RSR−A、RSR−B、RSR−Cを転送処理部254に与える。例えば、メモリ読出し転送選択部252は、メモリ転送制御部232が、メモリ部129から読出しバッファ225にメモリ転送データの転送を行っていない場合には、最初に受けたメモリ読出し要求を選択する。一方、メモリ読出し転送選択部252は、メモリ転送制御部232がメモリ部129から読出しバッファ225にメモリ転送データの転送を行っている場合には、メモリ転送制御部232からメモリ読出し完了通知MREを受けた際に、メモリ読出し要求RTR−A、RTR−B、RTR−Cを1つ受けているときは、この要求を選択する。また、この際に、メモリ読出し要求RTR−A、RTR−B、RTR−Cを複数受けているときは、メモリ読出し転送選択部252は、読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cが最も小さい処理系統の要求を選択する。
メモリ読出し選択結果RSR−A、RSR−B、RSR−Cを受けた転送処理部254は、メモリ部129からデータを読み出して、この結果で特定される処理系統の読出しバッファ225にデータを転送する指示であるメモリ読出し指示を、メモリ転送制御部232及び第2切替部235に与える。
メモリ読出し選択結果RSR−A、RSR−B、RSR−Cは、転送処理部254に与えられるとともに、転送要求発行部250A、250B、250Cにフィードバックされる。メモリ読出し選択結果RSR−A、RSR−B、RSR−Cで特定された処理系統の転送要求発行部250A、250B、250Cは、要求を出す条件が満たされなくなると、出力中のメモリ読出し要求RTR−A、RTR−B、RTR−Cを取り下げる。メモリ読出し選択結果RSR−A、RSR−B、RSR−Cで特定されていない処理系統の転送要求発行部250A、250B、250Cは、メモリ読出し要求RTR−A、RTR−B、RTR−Cを出力し続ける。
バッファ転送選択部253は、転送要求発行部250A、250B、250Cより、バッファ転送要求BTR−A、BTR−B、BTR−Cを受けると、これらの要求から1つの要求を選択して、選択した要求に対応する処理系統を特定したバッファ転送選択結果BSR−A、BSR−B、BSR−Cを転送処理部254に与える。例えば、バッファ転送選択部253は、バッファ転送制御部233が書込みバッファ222から読出しバッファ225にバッファ転送データの転送を行っていない場合には、最初に受けたバッファ転送要求BTR−A、BTR−B、BTR−Cを選択する。一方、バッファ転送選択部253は、バッファ転送制御部233が書込みバッファ222から読出しバッファ225にバッファ転送データの転送を行っている場合には、バッファ転送制御部233からバッファ転送完了通知BTEを受けた際に、バッファ転送要求BTR−A、BTR−B、BTR−Cを1つ受けているときは、この要求を選択する。また、この際に、バッファ転送要求BTR−A、BTR−B、BTR−Cを複数受けているときは、バッファ転送選択部253は、読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cが最も小さい処理系統の要求を選択する。
バッファ転送選択結果BSR−A、BSR−B、BSR−Cを受けた転送処理部254は、この結果で特定される処理系統の書込みバッファ222からデータを読み出して、この結果で特定される処理系統の読出しバッファにデータを転送する指示であるバッファ転送指示を、バッファ転送制御部233、第1切替部234及び第2切替部235に与える。
バッファ転送選択結果BSR−A、BSR−B、BSR−Cは、転送処理部254に与えられるとともに、転送要求発行部250A、250B、250Cにフィードバックされる。バッファ転送選択結果BSR−A、BSR−B、BSR−Cで特定された処理系統の転送要求発行部250A、250B、250Cは、要求を出す条件が満たされなくなると、出力中のバッファ転送選択結果BSR−A、BSR−B、BSR−Cを取り下げる。バッファ転送選択結果BSR−A、BSR−B、BSR−Cで特定されていない処理系統の転送要求発行部250A、250B、250Cは、バッファ転送選択結果BSR−A、BSR−B、BSR−Cを出力し続ける。
図28は、転送要求発行部250Aが、メモリ書込み要求又はバッファ転送要求を出力する際の処理を示すフローチャートである。なお、図28では、転送要求発行部250Aが行う処理を説明するが、転送要求発行部250B、250Cも、それぞれ書込みバッファ222B、222C、読出しバッファ225B、225Cを用いて、同様の処理を行う。
転送要求発行部250Aは、書込みバッファ222Aの書込みバッファ蓄積量WSM−Aがメモリ転送単位長以上であるか判断する(S30)。そして、転送要求発行部250Aは、書込みバッファ蓄積量WSM−Aがメモリ転送単位長以上である場合(ステップS30でYes)には、ステップS31の処理に進み、書込みバッファ蓄積量WSM−Aがメモリ転送単位長未満である場合(ステップS30でNo)には、ステップS34の処理に進む。
ステップS31では、転送要求発行部250Aは、読出しバッファ225Aの読出しバッファ蓄積可能量RPM−Aがメモリ転送単位長以上であるか否かを判断する。そして、転送要求発行部250Aは、読出しバッファ蓄積可能量RPM−Aがメモリ転送単位長以上である場合(ステップS31でYes)には、ステップS32の処理に進み、読出しバッファ蓄積可能量RPM−Aがメモリ転送単位長未満である場合(ステップS31でNo)には、ステップS33の処理に進む。
ステップS32では、転送要求発行部250Aは、メモリ使用状態記憶部230より処理系統Aのメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。転送要求発行部250Aは、メモリ使用量が「0」である場合(ステップS32でYes)、言い換えれば、メモリ部129に処理系統Aのメモリ転送データが記憶されていない場合には、ステップS37の処理に進み、メモリ使用量が「0」ではない場合(ステップS32でNo)、言い換えれば、メモリ部129に処理系統Aのメモリ転送データが記憶されている場合には、ステップS33の処理に進む。
ステップS33では、転送要求発行部250Aは、メモリ書込み転送選択部251に対して、メモリ書込み要求WTR−Aを与える。
一方、ステップS30で、書込みバッファ蓄積量WSM−Aがメモリ転送単位長未満である場合(ステップS30でNo)には、ステップS34の処理に進み、ステップS34では、転送要求発行部250Aは、書込みバッファ222Aにおける書き込みバッファ蓄積量WSM−Aが演算単位長以上であるか否かを判断する。言い換えると、転送要求発行部250Aは、書込みバッファ222Aに格納が完了した入力データが1つ以上あるか否かを判断する。例えば、転送要求発行部250Aは、書込み制御部223から送られてくる演算単位蓄積通知CUN−Aにより、書込みバッファ222Aに格納が完了した入力データが1つ以上あるか否かを判断することができる。そして、転送要求発行部250Aは、書き込みバッファ蓄積量WSM−Aが演算単位長以上である場合(ステップS34でYes)には、ステップS35の処理に進み、書き込みバッファ蓄積量WSM−Aが演算単位長未満である場合(ステップS34でNo)には、書込みバッファ222Aからのデータ転送を行わずに、ステップS30の処理に戻る。
ステップS35では、転送要求発行部250Aは、読出しバッファ225Aの読出しバッファ蓄積可能量RPM−Aが書込みバッファ222Aの書込みバッファ蓄積量WSM−A以上であるか否かを判断する。そして、転送要求発行部250Aは、読出しバッファ蓄積可能量RPM−Aが書込みバッファ蓄積量WSM−A以上である場合(ステップS35でYes)には、ステップS36の処理に進み、読出しバッファ蓄積可能量RPM−Aが書込みバッファ蓄積量WSM−A未満である場合(ステップS35でNo)には、書込みバッファ222Aからのデータ転送を行わずに、ステップS30の処理に戻る。
ステップS36では、転送要求発行部250Aは、メモリ使用状態記憶部230より処理系統Aのメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。転送要求発行部250Aは、メモリ使用量が「0」である場合(ステップS36でYes)には、ステップS37の処理に進み、メモリ使用量が「0」ではない場合(ステップS36でNo)には、書込みバッファ222Aからのデータ転送を行わずに、ステップS30の処理に戻る。
ステップS37では、転送要求発行部250Aは、バッファ転送選択部253にバッファ転送要求BTR−Aを与える。
図29は、転送要求発行部250Aがメモリ読出し要求を出力する際の処理を示すフローチャートである。なお、図29では、転送要求発行部250Aが行う処理を説明するが、転送要求発行部250B、250Cも、それぞれ読出しバッファ225B、231Cを用いて、同様の処理を行う。
まず、転送要求発行部250Aは、読出しバッファ225Aの読出しバッファ蓄積可能量RPM−Aがメモリ転送単位長以上であるか否かを判断する(S40)。そして、転送要求発行部250Aは、読出しバッファ蓄積可能量RPM−Aがメモリ転送単位長以上である場合(ステップS40でYes)には、ステップS41の処理に進む。
ステップS41では、転送要求発行部250Aは、メモリ使用状態記憶部230より処理系統Aのメモリ使用量を取得して、メモリ使用量が「0」であるか否かを判断する。転送要求発行部250Aは、メモリ使用量が「0」である場合(ステップS41でYes)、言い換えれば、メモリ部129に処理系統Aのメモリ転送データが記憶されていない場合には、ステップS40の処理に戻り、メモリ使用量が「0」ではない場合(ステップS41でNo)、言い換えれば、メモリ部129に処理系統Aのメモリ転送データが記憶されている場合には、ステップS42の処理に進む。
ステップS42では、転送要求発行部250Aは、メモリ読出し転送選択部252にメモリ読出し要求RTR−Aを与える。
図30は、書込みバッファ222に格納されたデータをメモリ部129に転送する際の、入力処理部210からメモリ装置220への入力データの入力タイミング、書込みバッファ蓄積量の変化、書込みバッファ蓄積可能量の変化、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、及び、DDR−SDRAMコマンドの発行タイミングを示す概略図である。なお、図30は、WRITEコマンド及びREADコマンドの発行回数を簡略化して示している。また、図30では、時刻T30において、書込みバッファ蓄積量WSM−A、WSM−B、WSM−C及び図示していない読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cは、何れも「0」、言い換えると、書込みバッファ222にはデータがなく、読出しバッファ225には空きがない状態であるとする。また、各々の書込みバッファ222A、222B、222Cの最大データ蓄積量は同一ではなく、時刻T30における書込みバッファ蓄積可能量WPM−A、WPM−B、WPM−Cは、各々の書込みバッファ222A、222B、222Cの最大データ蓄積量に等しいものとする。
時刻T30において、入力処理部210Aで処理された入力データDA1が、メモリ装置220に入力され、書込みバッファ222Aに格納され始める。このため、時刻T30以降、書込みバッファ222Aの書込みバッファ蓄積量WSM−Aは、増加し、その書込みバッファ蓄積可能量WPM−Aは、減少する。
時刻T31において、書込みバッファ222Aの書込みバッファ蓄積量WSM−Aが、メモリ転送単位長である1KBに達すると、転送要求発行部250Aは、メモリ書込み転送選択部251にメモリ書込み要求WTR−Aを出力する。これは、図28のフローチャートにおいて、ステップS30でYes及びステップS31でNoと判断され、ステップS33の処理が実行されることに相当する。
ここで、時刻T31における書込みバッファ222B、222Cの書込みバッファ蓄積量WSM−B、WSM−Cは、ともに「0」であり、転送要求発行部250B、250Cからメモリ書込み転送要求WTR−B、WTR−Cは、出力されないので、このようなメモリ書込み要求WTR−Aを受けたメモリ書込み転送選択部251は、処理系統Aのメモリ書込み要求WTR−Aを選択して、処理系統Aのメモリ書込み選択結果WSR−Aを転送処理部254に出力する。このようなメモリ書込み選択結果WSR−Aを受けた転送処理部254は、第1切替部234及びメモリ転送制御部232に、処理系統Aのメモリ書込み指示を出す。このような指示を受けた第1切替部234は、書込みバッファ部221からのデータの出力先をメモリ転送制御部232に切り替える。さらに、このような指示を受けたメモリ転送制御部232は、書込みバッファ222Aからメモリ転送単位長のデータをメモリ転送データとして読み出して、読み出したメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。ここで、メモリ部129には、1回のACTコマンドと、複数回のWRITEコマンドが発行される。
また、時刻T31よりも後に、入力処理部210Bで処理された入力データDB1が、メモリ装置220に入力され、書込みバッファ222Bに格納され始める。このため、書込みバッファ222Bの書込みバッファ蓄積量WSM−Bは増加し、その書込みバッファ蓄積可能量WPM−Bは減少する。
時刻T32において、書込みバッファ222Bの書込みバッファ蓄積量WSM−Bが、1KBに達すると、転送要求発行部250Bは、メモリ書込み転送選択部251にメモリ書込み要求WTR−Bを出力する。これは、図28のフローチャートにおいて、ステップS30でYes及びステップS31でNoと判断され、ステップS33の処理が実行されることに相当する。このようなメモリ書込み要求WTR−Bを受けたメモリ書込み転送選択部251は、処理系統Aのメモリ転送データの転送が終了していないので、処理系統Bのメモリ書込み要求WTR−Bの選択を行わない。
また、時刻T32よりも後に、入力処理部210Cで処理された入力データDC1が、メモリ装置220に入力され、書込みバッファ222Cに格納され始める。このため、書込みバッファ222Cの書込みバッファ蓄積量WSM−Cは増加し、その書込みバッファ蓄積可能量WPM−Cは減少する。
時刻T33において、書込みバッファ222Aよりメモリ部129に1KBのデータの転送が完了すると、書込みバッファ蓄積量WSM−Aは、1KB減少して、時刻T31〜T33の間に書込みバッファ222Aに新たに格納されたデータ量となる。転送要求発行部250Aは、時刻T33において、書込みバッファ蓄積量WSM−Aが1KBを下回ると、メモリ書込み要求WTR−Aを取り下げる。このとき、転送要求発行部250Aは、メモリ使用状態記憶部230に記憶されている処理系統Aのメモリ使用量に「1」を加算する。
時刻T33において、書込みバッファ222Cの書込みバッファ蓄積量WSM−Cが、1KBに達すると、転送要求発行部250Cは、メモリ書込み転送選択部251にメモリ書込み要求WTR−Cを出力する。これは、図28のフローチャートにおいて、ステップS30でYes及びステップS31でNoと判断され、ステップS33の処理が実行されることに相当する。
時刻T33では、書込みバッファ222Aよりメモリ部129に1KBのデータの転送が完了するため、メモリ転送制御部232からメモリ転送完了通知MWEがメモリ転送選択部251に与えられる。そして、メモリ書込み転送選択部251は、メモリ書込み要求WTR−Cと、メモリ書込み要求WTR-Bとの間で選択を行う。時刻T33においては、処理系統Cの書込みバッファ蓄積可能量WPM−Cの方が、処理系統Bの書込みバッファ蓄積可能量WPM−Bよりも小さいため、メモリ書込み転送選択部251は、メモリ書込み要求WTR−Cを選択する。この選択結果に基づいて、メモリ書込み転送選択部251は、処理系統Cのメモリ書込み選択結果WSR−Cを転送処理部254に出力する。このようなメモリ書込み選択結果WSR−Cを受けた転送処理部254は、第1切替部234及びメモリ転送制御部232に、処理系統Cのメモリ書込み指示を出す。このような指示を受けた第1切替部234は、書込みバッファ部221からのデータの出力先をメモリ転送制御部232に切り替える。さらに、このような指示を受けたメモリ転送制御部232は、書込みバッファ222Cからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。ここで、メモリ部129には、1回のACTコマンドと、複数回のWRITEコマンドとが発行される。
時刻T34において、書込みバッファ222Cよりメモリ部129に1KBのメモリ転送データの転送が完了すると、書込みバッファ蓄積量WSM−Cは、1KB減少して、時刻T33〜T34の間に書込みバッファ222Cに新たに格納されたデータ量となる。転送要求発行部250Cは、時刻T34において、書込みバッファ蓄積量WSM−Cが1KBを下回ると、メモリ書込み要求WTR−Cを取り下げる。このとき、転送要求発行部250Cは、メモリ使用状態記憶部230に記憶されている処理系統Cのメモリ使用量に「1」を加算する。
時刻T34では、書込みバッファ222Cよりメモリ部129に1KBのデータの転送が完了するため、メモリ転送制御部232からメモリ転送完了通知MWEがメモリ転送選択部251に与えられる。ここで、時刻T34においては、書込みバッファ222Bの書込みバッファ蓄積量WSM−Bだけが、1KB以上となっているので、メモリ書込み転送選択部251は、メモリ書込み要求WTR-Bを選択する。この選択結果に基づいて、メモリ書込み転送選択部251は、処理系統Bのメモリ書込み選択結果WSR−Bを転送処理部254に出力する。このようなメモリ書込み選択結果WSR−Bを受けた転送処理部254は、第1切替部234及びメモリ転送制御部232に、処理系統Bのメモリ書込み指示を出す。このような指示を受けた第1切替部234は、書込みバッファ部221からのデータの出力先をメモリ転送制御部232に切り替える。さらに、このような指示を受けたメモリ転送制御部232は、書込みバッファ222Bからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。ここで、メモリ部129には、1回のACTコマンドと、複数回のWRITEコマンドとが発行される。
時刻T35において、書込みバッファ222Bよりメモリ部129に1KBのデータの転送が完了すると、書込みバッファ蓄積量WSM−Bは、1KB減少する。このとき、転送要求発行部250Bは、メモリ使用状態記憶部230に記憶されている処理系統Bのメモリ使用量に「1」を加算する。転送要求発行部250Bは、書込みバッファ蓄積量WSM−Bが1KB以上であるので、メモリ書込み要求WTR−Bを出力し続ける。
時刻T35では、書込みバッファ222Bよりメモリ部129に1KBのデータの転送が完了するため、メモリ転送制御部232からメモリ転送完了通知MWEがメモリ転送選択部251に与えられる。ここで、時刻T35においては、書込みバッファ222Bの書込みバッファ蓄積量WSM−Bだけが、1KB以上となっているので、メモリ書込み転送選択部251は、メモリ書込み要求WTR-Bを選択する。この選択結果に基づいて、メモリ書込み転送選択部251は、処理系統Bのメモリ書込み選択結果WSR−Bを転送処理部254に出力する。このようなメモリ書込み選択結果WSR−Bを受けた転送処理部254は、第1切替部234及びメモリ転送制御部232に、処理系統Bのメモリ書込み指示を出す。このような指示を受けた第1切替部234は、書込みバッファ部221からのデータの出力先をメモリ転送制御部232に切り替える。さらに、このような指示を受けたメモリ転送制御部232は、書込みバッファ222Bからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。ここで、メモリ部129には、1回のACTコマンドと、複数回のWRITEコマンドとが発行される。
このように書込みバッファ222からメモリ部129へのメモリ書込み要求が複数発生した場合に、書込みバッファ222に格納することのできる空きデータ量が最も小さい処理系統の書込みバッファ222のデータを優先してメモリ部129に転送することにより、書き込みバッファ222に格納するデータのデータ量が、書込みバッファ222の容量を超えてしまうことを防止することができる。このため、メモリ装置220に必要な書込みバッファ222の容量を小さくすることができる。また、メモリ装置220を複数の処理系統で共有することにより、信号処理装置200の規模を小さくすることができる。
入力処理部210A、210B、210Cからメモリ装置220へのデータの書込み速度がそれぞれ均等ではない場合には、メモリ書込み転送選択部251は、書込みバッファ蓄積可能量WPM−A、WPM−B、WPM−Cにそれぞれ異なる重み付けを行って、重み付けが行われた後の値が最小となる処理系統の要求を選択するように構成してもよい。このような重み付けは、例えば、書込み速度が速いほど、重み付けした後の値が小さなものとなるようにすればよい。
図30は、読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cが「0」であり、バッファ転送要求BTR−A、BTR−B、BTR−Cが出力されない例を示している。次に、出力処理部240A、240B、240Cにデータを出力することにより、読出しバッファ225A、225B、225Cの読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cが変動する場合の例を、図31に示す。
図31は、書込みバッファ222に格納されたデータをメモリ部129又は読出しバッファ225に転送する際の、入力処理部210からメモリ装置220への入力データの入力タイミング、書込みバッファ蓄積量の変化、読出しバッファ蓄積可能量の変化、読出しバッファ蓄積量の変化、バッファ転送要求の出力タイミング、バッファ転送選択結果の出力タイミング、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、DDR−SDRAMコマンドの発行タイミング、及び、メモリ装置220から出力処理部240への入力データの出力タイミングを示す概略図である。なお、図31は、WRITEコマンド及びREADコマンドの発行回数を簡略化して示している。また、図31では、時刻T40において、メモリ部129に記憶されている全ての処理系統のメモリ使用量は、「0」である。さらに、図31では、時刻T40において、書込みバッファ蓄積量WSM−A、WSM−B、WSM−C、読出しバッファ蓄積可能量RPM−A、RPM−C、及び、読出しバッファ蓄積量RSM−Bは、何れも「0」、言い換えると、書込みバッファ222A、222B、222C及び読出しバッファ225Bには、データがなく、読出しバッファ225A、231Cには空き容量がない状態である。
なお、各々の読出しバッファ225A、225B、225Cの最大データ蓄積量(容量)は同一である必要はなく、時刻T40における読出しバッファ蓄積量RSM−A、読出しバッファ蓄積可能量RPM−B、読出しバッファ蓄積量RSM−Cは、それぞれ読出しバッファ225A、225B、225Cの最大データ蓄積量に等しい。
時刻T40において、入力処理部210Aで処理された入力データDA2が、メモリ装置220に入力され、書込みバッファ222Aに格納され始める。このため、時刻T40以降、書込みバッファ蓄積量WSM−Aは増加する。
時刻T41において、書込みバッファ222Aの書込みバッファ蓄積量WSM−Aが、1KBに達すると、転送要求発行部250Aは、メモリ書込み転送選択部251にメモリ書込み要求WTR−Aを出力する。これは、図28のフローチャートにおいて、ステップS30でYes及びステップS31でNoと判断され、ステップS33の処理が実行されることに相当する。
ここで、時刻T41における書込みバッファ222B、222Cの書込みバッファ蓄積量WSM−B、WSM−Cは、ともに1KB以下であり、転送要求発行部250B、250Cから書込み転送要求WTR−B、WTR−Cは、出力されないので、このようなメモリ書込み要求WTR−Aを受けたメモリ書込み転送選択部251は、処理系統Aのメモリ書込み要求WTR−Aを選択して、処理系統Aのメモリ書込み選択結果WSR−Aを転送処理部254に出力する。このようなメモリ書込み選択結果WSR−Aを受けた転送処理部254は、第1切替部234及びメモリ転送制御部232に、処理系統Aのメモリ書込み指示を出す。このような指示を受けた第1切替部234は、データの出力先をメモリ転送制御部232に切り替える。さらに、このような指示を受けたメモリ転送制御部232は、書込みバッファ222Aからメモリ転送データを読み出して、このメモリ転送データを、メモリコントローラ部128を介して、メモリ部129に記憶させる。ここで、メモリ部129には、1回のACTコマンドと、複数回のWRITEコマンドとが発行される。
また、時刻T41以降において、入力処理部210Bで処理された入力データDB2が、メモリ装置220に入力され、書込みバッファ222Bに格納され始める。このため、書込みバッファ蓄積量WSM−Bは、増加する。
時刻T42において、出力処理部240Cは、読出しバッファ225Cより入力データDC4の取得を開始する。このため、読出しバッファ蓄積量RSM−Cは減少して、読出しバッファ蓄積可能量RPM−Cは増加する。
時刻T43において、書込みバッファ222Bの書込みバッファ蓄積量WSM−Bが、1KBに達すると、転送要求発行部250Bは、バッファ転送選択部253にバッファ転送要求BTR−Bを出力する。これは、図28のフローチャートにおいて、ステップS30でYes及びステップS31でYESと判断され、ステップS37の処理が実行されることに相当する。
ここで、時刻T43における書込みバッファ蓄積量WSM−A、WSM−Cは、ともに1KB以下であり、転送要求発行部250A、250Cからバッファ転送要求BTR−A、BTR−Cは、出力されないので、バッファ転送要求BTR−Bを受けたバッファ転送選択部253は、処理系統Bのバッファ転送要求BTR−Bを選択して、処理系統Bのバッファ転送選択結果BSR−Bを転送処理部254に出力する。このようなバッファ転送選択結果BSR−Bを受けた転送処理部254は、第1切替部234、バッファ転送制御部233及び第2切替部235に、処理系統Bのバッファ転送指示を出す。このような指示を受けた第1切替部234は、データの出力先をバッファ転送制御部233に切り替える。また、このような指示を受けた第2切替部235は、データの入力元をバッファ転送制御部233に切り替える。さらに、このような指示を受けたバッファ転送制御部233は、書込みバッファ222Bからバッファ転送データを読み出して、このバッファ転送データを、読出し制御部226を介して、読出しバッファ225Bに記憶させる。このため、読出しバッファ蓄積量RSM−Bは増加し、読出しバッファ蓄積可能量RPM−Bは減少する。
また、時刻T43以降において、入力処理部210Cで処理された入力データDC3が、メモリ装置220に入力され、書込みバッファ222Cに格納され始める。このため、書込みバッファ蓄積量WSM−Cは増加する。
時刻T44において、書込みバッファ222Aよりメモリ部129に1KBのデータの転送が完了すると、書込みバッファ蓄積量WSM−Aは、1KB減少して、時刻T41〜T44の間に書込みバッファ222Aに新たに格納されたデータ量となる。転送要求発行部250Aは、時刻T44において、書込みバッファ蓄積量WSM−Aが1KBを下回ると、メモリ書込み要求WTR−Aを取り下げる。このとき、転送要求発行部250Aは、メモリ使用状態記憶部230に記憶されている処理系統Aのメモリ使用量に「1」を加算する。
時刻T45において、入力処理部210Cで処理された、入力データDC3の書込みバッファ222Cへの格納が完了する。言い換えると、1つの演算単位長分のデータの格納が完了する。転送要求発行部250Cは、読出しバッファ蓄積可能量RPM−Cが、書込みバッファ蓄積量WSM−Cよりも大きいことを確認して、バッファ転送選択部253に、バッファ転送要求BTR−Cを出力する。これは、図28のフローチャートにおいて、ステップS30でNo、ステップS34でYES、ステップS35でYes及びステップS36でYesと判断され、ステップS37の処理が実行されることに相当する。
時刻T46において、書込みバッファ222Bより読出しバッファ225Bに1KBのデータの転送が完了すると、書込みバッファ蓄積量WSM−Bは、1KB減少し、時刻T43〜T46の間に書込みバッファ222Bに新たに格納されたデータ量となる。転送要求発行部250Bは、時刻T44において、入力処理部210Bで処理された、1つの演算単位分の入力データDB2の書込みバッファ222Bへの格納が完了しているので、時刻T46において、読出しバッファ蓄積可能量RPM−Bが、書込みバッファ蓄積量WSM−Bよりも大きいことを確認して、バッファ転送要求BTR−Bを継続して出力する。これは、図28のフローチャートにおいて、ステップS30でNo、ステップS34でYES、ステップS35でYes及びステップS36でYesと判断され、ステップS37の処理が実行されることに相当する。
時刻T46では、書込みバッファ222Bより読出しバッファ225Bにデータの転送が完了するため、バッファ転送制御部233からバッファ転送完了通知BTEがバッファ転送選択部253に与えられる。そして、バッファ転送選択部253は、バッファ転送要求BTR−Bとバッファ転送要求BTR−Cとの間で選択を行う。時刻T46においては、読出しバッファ蓄積量RSM−Cが、読出しバッファ蓄積量RSM−Bよりも小さいため、バッファ転送選択部253は、処理系統Cのバッファ転送要求BTR−Cを選択して、処理系統Cのバッファ転送選択結果BSR−Cを転送処理部254に出力する。このようなバッファ転送選択結果BSR−Cを受けた転送処理部254は、第1切替部234、バッファ転送制御部233及び第2切替部235に、処理系統Cのバッファ転送指示を出す。このような指示を受けた第1切替部234は、データの出力先をバッファ転送制御部233に切り替える。また、このような指示を受けた第2切替部235は、データの入力元をバッファ転送制御部233に切り替える。さらに、このような指示を受けたバッファ転送制御部233は、書込みバッファ222Cに格納されている全ての入力データをバッファ転送データとして読み出して、このバッファ転送データを、読出し制御部226を介して、読出しバッファ225Cに記憶させる。
時刻T47において、書込みバッファ222Cより読出しバッファ225Cに全てのデータの転送が完了すると、書込みバッファ222Cの書込みバッファ蓄積量WSM−Cは「0」になるので、転送要求発行部250Cは、バッファ転送要求BTR−Cを取り下げる。
時刻T47では、書込みバッファ222Cより読出しバッファ225Cにデータの転送が完了するため、バッファ転送制御部233からバッファ転送完了通知BTEがバッファ転送選択部253に与えられる。そして、時刻T47では、処理系統Bのバッファ転送要求BTR−Bだけが出力されているため、バッファ転送選択部253は、バッファ転送要求BTR−Bを選択して、処理系統Bのバッファ転送選択結果BSR−Bを転送処理部254に出力する。このようなバッファ転送選択結果BSR−Bを受けた転送処理部254は、第1切替部234、バッファ転送制御部233及び第2切替部235に、処理系統Bのバッファ転送指示を出す。このような指示を受けた第1切替部234は、データの出力先をバッファ転送制御部233に切り替える。また、このような指示を受けた第2切替部235は、データの入力元をバッファ転送制御部233に切り替える。さらに、このような指示を受けたバッファ転送制御部233は、書込みバッファ222Bに格納されている全ての入力データをバッファ転送データとして読み出して、このバッファ転送データを、読出し制御部226を介して、読出しバッファ225Bに記憶させる。
図30及び図31には示されていないが、転送要求発行部250は、メモリ使用量MUM−A、MUM−B、MUM−Cが「0」ではなく、読出しバッファ蓄積可能量RPM−A、RPM−B、RPM−Cが1KB以上であれば、メモリ読出し転送要求RTR−A、RTR−B、RTR−Cを、メモリ読出し転送選択部252に出力する。
メモリ読出し転送選択部252は、メモリ読出し転送要求RTR−A、RTR−B、RTR−Cが2つ以上入力された場合は、バッファ転送選択部253と同様に、読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cが最も小さい処理系統を選択して、メモリ部129からメモリ転送データを読出しバッファ部224に転送する。ここで、転送要求発行部250は、メモリ読出し転送選択部252で選択されると、メモリ使用量MUM−A、MUM−B、MUM−Cを「1」減算する。
以上のように、書込みバッファ222から読出しバッファ225へのバッファ転送要求が複数発生する場合、又は、メモリ部129から読出しバッファ225への読出し要求が複数発生する場合には、読出しバッファ225の読出しバッファ蓄積量が最も小さい読出しバッファ225へのデータ転送を優先して実行することにより、出力処理部240が、途切れることなく読出しバッファ225に格納された入力データを取得することができる。
出力処理部240の読出しバッファ225からの読出し速度がそれぞれ均等ではない場合には、バッファ転送選択部253は、読出しバッファ蓄積量RSM−A、RSM−B、RSM−Cのそれぞれに異なる重み付けを行って、重み付けが行われた後の値が最小となる処理系統の要求を選択するように構成してもよい。このような重み付けは、例えば、読出し速度が速いほど、重み付けした後の値が小さなものとなるようにすればよい。
実施の形態2によれば、複数の処理系統が、メモリ装置220のメモリ部129を共有することができるので、メモリ部129を処理系統毎に設ける必要がなくなり、メモリ部129の使用数を少なくすることができる。また、実施の形態2によれば、複数の処理系統が、メモリ装置220を共有することができるので、信号処理装置200の規模を小さくすることができる。
実施の形態2では、入力処理部210及び出力処理部240の処理系統を3系統としたが、2系統以上の任意の系統数に置き換えてもよい。また、実施の形態2では、メモリ部129は、ページサイズ1KBのDDR−SDRAMとしたが、ページサイズを固定長の任意の長さにしてもよい。
100,200:信号処理装置、 110,210:入力処理部、 120,220:メモリ装置、 121,221:書込みバッファ部、 122,222:書込みバッファ、 123,223:書込み制御部、 124,224:読出しバッファ部、 125,225:読出しバッファ、 126,226:読出し制御部、 127,227:演算単位長記憶部、 128:メモリコントローラ部、 129:メモリ部、 130,230:メモリ使用状態記憶部、 131,231:転送制御切替部、 132,232:メモリ転送制御部、 133,233:バッファ転送制御部、 134,234:第1切替部、 135,235:第2切替部、 136,236:切替制御部、 140,240:出力処理部、 250:転送要求発行部、 251:メモリ書込み転送選択部、 252:メモリ読出し転送選択部、 253:バッファ転送選択部、 254:転送処理部。

Claims (19)

  1. 外部より入力された入力データを格納する書込みバッファ、及び、当該書込みバッファを制御する書込み制御部、を有する書込みバッファ部と、
    前記書込みバッファ部から転送されたメモリ転送データを格納するメモリ部と、
    前記書込みバッファ部から転送されたバッファ転送データ及び前記メモリ部から転送された前記メモリ転送データを格納する読出しバッファ、及び、当該読出しバッファを制御し、前記読出しバッファより前記入力データを取得して、取得した前記入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
    前記メモリ部に前記メモリ転送データが格納されているか否かを示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
    前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
    前記書込み制御部は、前記書込みバッファに格納された前記入力データの総データ量を示す書込みバッファ蓄積量を前記転送制御切替部に通知し、
    前記読出し制御部は、前記読出しバッファの空きデータ量を示す読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
    前記転送制御切替部は、
    前記書込みバッファ蓄積量及び前記読出しバッファ蓄積可能量が第1条件を満たす場合には、前記書込みバッファ部から、予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
    前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第2条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
    前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第3条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
    前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第4条件を満たす場合には、前記書込みバッファ部に格納されている前記入力データの全てを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
    前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第5条件を満たす場合には、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するものであり、
    前記第1条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
    前記第2条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とし、
    前記第3条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
    前記第4条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記読出しバッファ蓄積可能量が前記書込みバッファ蓄積量以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
    前記第5条件は、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とする
    ことを特徴とするメモリ装置。
  2. 前記転送制御切替部は、
    前記第1条件、前記第2条件、前記第3条件及び前記第4条件の何れもが満たされない場合には、前記書込みバッファ部からのデータ転送を行わないこと
    を特徴とする請求項に記載のメモリ装置。
  3. 前記転送制御切替部は、
    前記第5条件が満たされない場合には、前記メモリ部からのデータ転送を行わないこと
    を特徴とする請求項1又は2に記載のメモリ装置。
  4. 前記転送制御切替部は、
    前記書込みバッファ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記メモリ部に転送し、また、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するメモリ転送制御部と、
    前記書込みバッファ部から前記バッファ転送データを取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送するバッファ転送制御部と、
    前記書込みバッファ部からのデータの出力先を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第1切替部と、
    前記読出しバッファ部に出力するデータの入力元を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第2切替部と、
    前記第1から第5条件が満たされるか否かを判断し、当該判断の結果に応じて、前記メモリ転送制御部、前記バッファ転送制御部、前記第1切替部及び前記第2切替部を制御してデータ転送を行わせる切替制御部とを備える
    ことを特徴とする請求項1からの何れか一項に記載のメモリ装置。
  5. 前記予め定められたデータ長は、前記メモリ部のページサイズと等しいデータ長である
    ことを特徴とする請求項1からの何れか一項に記載のメモリ装置。
  6. 前記入力データのデータ長を記憶する演算単位長記憶部をさらに備え、
    前記読出し制御部は、前記演算単位長記憶部に記憶されている前記入力データのデータ長に基づいて、前記読出しバッファより前記入力データを取得する
    ことを特徴とする請求項1からの何れか一項に記載のメモリ装置。
  7. 請求項1からの何れか一項に記載のメモリ装置と、
    前記メモリ装置に前記入力データを入力する入力処理部と、
    前記メモリ装置から出力された前記入力データに所定の処理を行い出力データとする出力処理部とを備える
    ことを特徴とする信号処理装置。
  8. 複数の処理系統に対して、処理系統毎に設けられた書込みバッファ、及び、当該処理系統毎の書込みバッファを制御し、外部より入力された処理系統毎の入力データを前記処理系統毎の書込みバッファに格納する書込みバッファ制御部、を有する書込みバッファ部と、
    処理系統毎の領域を有し、前記書込みバッファ部から転送された処理系統毎のメモリ転送データを前記処理系統毎の領域に格納するメモリ部と、
    処理系統毎の読出しバッファ、並びに、当該処理系統毎の読出しバッファを制御し、前記書込みバッファ部から転送された処理系統毎のバッファ転送データ及び前記メモリ部から転送された前記処理系統毎のメモリ転送データを前記処理系統毎の読出しバッファに格納し、前記処理系統毎の入力データを前記処理系統毎の読出しバッファより取得し、取得した前記処理系統毎の入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
    前記メモリ部に前記処理系統毎のバッファ転送データが格納されているか否かを、前記処理系統毎に示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
    前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
    前記書込み制御部は、前記処理系統毎の書込みバッファに格納された前記処理系統毎の入力データの総データ量を示す処理系統毎の書込みバッファ蓄積量を前記転送制御切替部に通知し、
    前記読出し制御部は、前記処理系統毎の読出しバッファの空きデータ量を示す処理系統毎の読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
    前記転送制御切替部は、
    前記処理系統毎の書込みバッファ蓄積量及び前記処理系統毎の読出しバッファ蓄積可能量が、前記処理系統毎に第1条件を満たす場合には、当該第1条件を満たす処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送し、
    前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第2条件を満たす場合には、当該第2条件を満たす処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送し、
    前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第3条件を満たす場合には、当該第3条件を満たす処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送し、
    前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第4条件を満たす場合には、当該第4条件を満たす処理系統において、前記書込みバッファ部に格納されている前記処理系統毎の入力データの全てを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送し、
    前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第5条件を満たす場合には、当該第5条件を満たす処理系統において、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、取得した前記処理系統毎のメモリ転送データを前記読出しバッファ部に転送するものであり、
    前記第1条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
    前記第2条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていることを示すものであることを条件とし、
    前記第3条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていないことを示すものであることを条件とし、
    前記第4条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記処理系統毎の読出しバッファ蓄積可能量が前記処理系統毎の書込みバッファ蓄積量以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていないことを示すものであることを条件とし、
    前記第5条件は、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていることを示すものであることを条件とする
    ことを特徴とするメモリ装置。
  9. 前記書込み制御部は、前記処理系統毎の書込みバッファの空きデータ量を示す処理系統毎の書込みバッファ蓄積可能量を前記転送制御切替部に通知し、
    前記転送制御切替部は、前記第1条件を満たす処理系統が複数ある場合には、前記処理系統毎の書込みバッファ蓄積可能量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送する
    ことを特徴とする請求項に記載のメモリ装置。
  10. 前記書込み制御部は、前記処理系統毎の書込みバッファの空きデータ量を示す処理系統毎の書込みバッファ蓄積可能量を前記転送制御切替部に通知し、
    前記転送制御切替部は、前記第2条件を満たす処理系統が複数ある場合には、前記処理系統毎の書込みバッファ蓄積可能量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送する
    ことを特徴とする請求項に記載のメモリ装置。
  11. 前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎のバッファ蓄積量を前記転送制御切替部に通知し、
    前記転送制御切替部は、前記第3条件を満たす処理系統が複数ある場合には、前記処理系統毎のバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送する
    ことを特徴とする請求項に記載のメモリ装置。
  12. 前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎の読出しバッファ蓄積量を前記転送制御切替部に通知し、
    前記転送制御切替部は、前記第4条件を満たす処理系統が複数ある場合には、前記処理系統毎の読出しバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送する
    ことを特徴とする請求項に記載のメモリ装置。
  13. 前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎の読出しバッファ蓄積量を前記転送制御切替部に通知し、
    前記転送制御切替部は、前記第5条件を満たす処理系統が複数ある場合には、前記処理系統毎の読出しバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、取得した前記処理系統毎のメモリ転送データを前記読出しバッファ部に転送する
    ことを特徴とする請求項に記載のメモリ装置。
  14. 前記転送制御切替部は、
    前記第1条件、前記第2条件、前記第3条件及び前記第4条件の何れもが満たされない場合には、前記第1条件、前記第2条件、前記第3条件及び前記第4条件の何れもが満たされない処理系統において、前記書込みバッファ部からのデータ転送を行わないこと
    を特徴とする請求項から13の何れか一項に記載のメモリ装置。
  15. 前記転送制御切替部は、
    前記第5条件が満たされない場合には、第5条件が満たされない処理系統において、前記メモリ部からのデータ転送を行わないこと
    を特徴とする請求項から14の何れか一項に記載のメモリ装置。
  16. 前記転送制御切替部は、
    前記書込みバッファ部から前記処理系統毎のメモリ転送データを取得して、前記メモリ部に転送し、また、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、前記読出しバッファ部に転送するメモリ転送制御部と、
    前記書込みバッファ部から前記処理系統毎のバッファ転送データを取得して、前記読出しバッファ部に転送するバッファ転送制御部と、
    前記書込みバッファ部からのデータの出力先を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第1切替部と、
    前記読出しバッファ部に出力するデータの入力元を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第2切替部と、
    前記処理系統毎に、前記第1から第5条件が満たされるか否かを判断し、当該判断の結果に応じて、前記メモリ転送制御部、前記バッファ転送制御部、前記第1切替部及び前記第2切替部を制御してデータ転送を行わせる切替制御部とを備える
    ことを特徴とする請求項から15の何れか一項に記載のメモリ装置。
  17. 前記予め定められたデータ長は、前記メモリ部のページサイズと等しいデータ長である
    ことを特徴とする請求項から16の何れか一項に記載のメモリ装置。
  18. 前記処理系統毎の入力データのデータ長を前記処理系統毎に記憶する演算単位長記憶部をさらに備え、
    前記読出し制御部は、前記演算単位長記憶部に記憶されている前記処理系統毎の入力データのデータ長に基づいて、前記読出しバッファより前記処理系統毎の入力データを取得する
    ことを特徴とする請求項から17の何れか一項に記載のメモリ装置。
  19. 請求項から18の何れか一項に記載のメモリ装置と、
    前記メモリ装置に前記処理系統毎の入力データを入力する処理系統毎の入力処理部と、
    前記メモリ装置から出力された前記入力データに所定の処理を行い出力データとする処理系統毎の出力処理部とを備える
    ことを特徴とする信号処理装置。
JP2010124421A 2010-05-31 2010-05-31 メモリ装置及び信号処理装置 Active JP5546356B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010124421A JP5546356B2 (ja) 2010-05-31 2010-05-31 メモリ装置及び信号処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010124421A JP5546356B2 (ja) 2010-05-31 2010-05-31 メモリ装置及び信号処理装置

Publications (3)

Publication Number Publication Date
JP2011248846A JP2011248846A (ja) 2011-12-08
JP2011248846A5 JP2011248846A5 (ja) 2013-06-27
JP5546356B2 true JP5546356B2 (ja) 2014-07-09

Family

ID=45413980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010124421A Active JP5546356B2 (ja) 2010-05-31 2010-05-31 メモリ装置及び信号処理装置

Country Status (1)

Country Link
JP (1) JP5546356B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117373501B (zh) * 2023-12-08 2024-04-09 深圳星云智联科技有限公司 统计业务执行速率提升方法及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4254932B2 (ja) * 2005-08-31 2009-04-15 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
JP2010026584A (ja) * 2008-07-15 2010-02-04 Panasonic Corp メモリコントローラおよび不揮発性記憶装置

Also Published As

Publication number Publication date
JP2011248846A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
KR100908760B1 (ko) 다중 내부 데이터 버스 및 메모리 뱅크 인터리빙을 갖는방법 및 메모리 장치
JP4820566B2 (ja) メモリアクセス制御回路
EP1546885B1 (en) Memory hub and access method having internal row caching
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
JPH05173932A (ja) データ転送装置
JP2011060162A (ja) メモリ制御装置
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
EP2998867B1 (en) Data writing method and memory system
JP5034551B2 (ja) メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
JP2006236239A (ja) データ処理システム及びデータ伸長方法
JP2010146084A (ja) キャッシュメモリ制御部を備えるデータ処理装置
JP5546356B2 (ja) メモリ装置及び信号処理装置
JP2007018222A (ja) メモリアクセス制御回路
JP5204777B2 (ja) メモリ装置及びその制御方法
US11308010B2 (en) Memory system having memories of different capacities
JP4019757B2 (ja) 記憶装置
JP2005182538A (ja) データ転送装置
US20100211704A1 (en) Data Processing Apparatus
CN102073604B (zh) 一种同步动态存储器读写控制方法、装置和系统
JP7346883B2 (ja) ベクトルプロセッサ装置及び生成方法
JP6828961B2 (ja) データ転送装置、及びデータ転送方法
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
JP4769936B2 (ja) メモリコントローラを備えた情報処理システム
JP2009088622A (ja) バッファメモリを有するパケット転送装置および方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130515

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140513

R150 Certificate of patent or registration of utility model

Ref document number: 5546356

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

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