(57)【特許請求の範囲】
【請求項１】
外部より入力された入力データを格納する書込みバッファ、及び、当該書込みバッファを制御する書込み制御部、を有する書込みバッファ部と、
前記書込みバッファ部から転送されたメモリ転送データを格納するメモリ部と、
前記書込みバッファ部から転送されたバッファ転送データ及び前記メモリ部から転送された前記メモリ転送データを格納する読出しバッファ、及び、当該読出しバッファを制御し、前記読出しバッファより前記入力データを取得して、取得した前記入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
前記メモリ部に前記メモリ転送データが格納されているか否かを示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
前記書込み制御部は、前記書込みバッファに格納された前記入力データの総データ量を示す書込みバッファ蓄積量を前記転送制御切替部に通知し、
前記読出し制御部は、前記読出しバッファの空きデータ量を示す読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、
前記書込みバッファ蓄積量及び前記読出しバッファ蓄積可能量が第１条件を満たす場合には、前記書込みバッファ部から、予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第２条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第３条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第４条件を満たす場合には、前記書込みバッファ部に格納されている前記入力データの全てを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第５条件を満たす場合には、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するものであり、
前記第１条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
前記第２条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とし、
前記第３条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第４条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記読出しバッファ蓄積可能量が前記書込みバッファ蓄積量以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第５条件は、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とする
ことを特徴とするメモリ装置。
【請求項２】
前記転送制御切替部は、
前記第１条件、前記第２条件、前記第３条件及び前記第４条件の何れもが満たされない場合には、前記書込みバッファ部からのデータ転送を行わないこと
を特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記転送制御切替部は、
前記第５条件が満たされない場合には、前記メモリ部からのデータ転送を行わないこと
を特徴とする請求項１又は２に記載のメモリ装置。
【請求項４】
前記転送制御切替部は、
前記書込みバッファ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記メモリ部に転送し、また、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するメモリ転送制御部と、
前記書込みバッファ部から前記バッファ転送データを取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送するバッファ転送制御部と、
前記書込みバッファ部からのデータの出力先を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第１切替部と、
前記読出しバッファ部に出力するデータの入力元を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第２切替部と、
前記第１から第５条件が満たされるか否かを判断し、当該判断の結果に応じて、前記メモリ転送制御部、前記バッファ転送制御部、前記第１切替部及び前記第２切替部を制御してデータ転送を行わせる切替制御部とを備える
ことを特徴とする請求項１から３の何れか一項に記載のメモリ装置。
【請求項５】
前記予め定められたデータ長は、前記メモリ部のページサイズと等しいデータ長である
ことを特徴とする請求項１から４の何れか一項に記載のメモリ装置。
【請求項６】
前記入力データのデータ長を記憶する演算単位長記憶部をさらに備え、
前記読出し制御部は、前記演算単位長記憶部に記憶されている前記入力データのデータ長に基づいて、前記読出しバッファより前記入力データを取得する
ことを特徴とする請求項１から５の何れか一項に記載のメモリ装置。
【請求項７】
請求項１から６の何れか一項に記載のメモリ装置と、
前記メモリ装置に前記入力データを入力する入力処理部と、
前記メモリ装置から出力された前記入力データに所定の処理を行い出力データとする出力処理部とを備える
ことを特徴とする信号処理装置。
【請求項８】
複数の処理系統に対して、処理系統毎に設けられた書込みバッファ、及び、当該処理系統毎の書込みバッファを制御し、外部より入力された処理系統毎の入力データを前記処理系統毎の書込みバッファに格納する書込みバッファ制御部、を有する書込みバッファ部と、
処理系統毎の領域を有し、前記書込みバッファ部から転送された処理系統毎のメモリ転送データを前記処理系統毎の領域に格納するメモリ部と、
処理系統毎の読出しバッファ、並びに、当該処理系統毎の読出しバッファを制御し、前記書込みバッファ部から転送された処理系統毎のバッファ転送データ及び前記メモリ部から転送された前記処理系統毎のメモリ転送データを前記処理系統毎の読出しバッファに格納し、前記処理系統毎の入力データを前記処理系統毎の読出しバッファより取得し、取得した前記処理系統毎の入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
前記メモリ部に前記処理系統毎のバッファ転送データが格納されているか否かを、前記処理系統毎に示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
前記書込み制御部は、前記処理系統毎の書込みバッファに格納された前記処理系統毎の入力データの総データ量を示す処理系統毎の書込みバッファ蓄積量を前記転送制御切替部に通知し、
前記読出し制御部は、前記処理系統毎の読出しバッファの空きデータ量を示す処理系統毎の読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、
前記処理系統毎の書込みバッファ蓄積量及び前記処理系統毎の読出しバッファ蓄積可能量が、前記処理系統毎に第１条件を満たす場合には、当該第１条件を満たす処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送し、
前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第２条件を満たす場合には、当該第２条件を満たす処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送し、
前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第３条件を満たす場合には、当該第３条件を満たす処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送し、
前記処理系統毎の書込みバッファ蓄積量、前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第４条件を満たす場合には、当該第４条件を満たす処理系統において、前記書込みバッファ部に格納されている前記処理系統毎の入力データの全てを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送し、
前記処理系統毎のメモリ使用状態及び前記処理系統毎の読出しバッファ蓄積可能量が、第５条件を満たす場合には、当該第５条件を満たす処理系統において、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、取得した前記処理系統毎のメモリ転送データを前記読出しバッファ部に転送するものであり、
前記第１条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
前記第２条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていることを示すものであることを条件とし、
前記第３条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていないことを示すものであることを条件とし、
前記第４条件は、前記処理系統毎の書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記処理系統毎の読出しバッファ蓄積可能量が前記処理系統毎の書込みバッファ蓄積量以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていないことを示すものであることを条件とし、
前記第５条件は、前記処理系統毎の読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記処理系統毎のメモリ使用状態が、前記処理系統毎のバッファ転送データが格納されていることを示すものであることを条件とする
ことを特徴とするメモリ装置。
【請求項９】
前記書込み制御部は、前記処理系統毎の書込みバッファの空きデータ量を示す処理系統毎の書込みバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、前記第１条件を満たす処理系統が複数ある場合には、前記処理系統毎の書込みバッファ蓄積可能量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送する
ことを特徴とする請求項８に記載のメモリ装置。
【請求項１０】
前記書込み制御部は、前記処理系統毎の書込みバッファの空きデータ量を示す処理系統毎の書込みバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、前記第２条件を満たす処理系統が複数ある場合には、前記処理系統毎の書込みバッファ蓄積可能量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、予め定められたデータ長のデータを前記処理系統毎のメモリ転送データとして取得して、取得した前記処理系統毎のメモリ転送データを前記メモリ部に転送する
ことを特徴とする請求項８に記載のメモリ装置。
【請求項１１】
前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎のバッファ蓄積量を前記転送制御切替部に通知し、
前記転送制御切替部は、前記第３条件を満たす処理系統が複数ある場合には、前記処理系統毎のバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送する
ことを特徴とする請求項８に記載のメモリ装置。
【請求項１２】
前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎の読出しバッファ蓄積量を前記転送制御切替部に通知し、
前記転送制御切替部は、前記第４条件を満たす処理系統が複数ある場合には、前記処理系統毎の読出しバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記処理系統毎のバッファ転送データとして取得して、取得した前記処理系統毎のバッファ転送データを前記読出しバッファ部に転送する
ことを特徴とする請求項８に記載のメモリ装置。
【請求項１３】
前記読出し制御部は、前記処理系統毎の読出しバッファに格納されたデータの総データ量を示す処理系統毎の読出しバッファ蓄積量を前記転送制御切替部に通知し、
前記転送制御切替部は、前記第５条件を満たす処理系統が複数ある場合には、前記処理系統毎の読出しバッファ蓄積量が最も小さい処理系統を選択して、前記選択した処理系統において、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、取得した前記処理系統毎のメモリ転送データを前記読出しバッファ部に転送する
ことを特徴とする請求項８に記載のメモリ装置。
【請求項１４】
前記転送制御切替部は、
前記第１条件、前記第２条件、前記第３条件及び前記第４条件の何れもが満たされない場合には、前記第１条件、前記第２条件、前記第３条件及び前記第４条件の何れもが満たされない処理系統において、前記書込みバッファ部からのデータ転送を行わないこと
を特徴とする請求項８から１３の何れか一項に記載のメモリ装置。
【請求項１５】
前記転送制御切替部は、
前記第５条件が満たされない場合には、第５条件が満たされない処理系統において、前記メモリ部からのデータ転送を行わないこと
を特徴とする請求項８から１４の何れか一項に記載のメモリ装置。
【請求項１６】
前記転送制御切替部は、
前記書込みバッファ部から前記処理系統毎のメモリ転送データを取得して、前記メモリ部に転送し、また、前記メモリ部から前記処理系統毎のメモリ転送データを取得して、前記読出しバッファ部に転送するメモリ転送制御部と、
前記書込みバッファ部から前記処理系統毎のバッファ転送データを取得して、前記読出しバッファ部に転送するバッファ転送制御部と、
前記書込みバッファ部からのデータの出力先を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第１切替部と、
前記読出しバッファ部に出力するデータの入力元を前記メモリ転送制御部及び前記バッファ転送制御部の間で切り替える第２切替部と、
前記処理系統毎に、前記第１から第５条件が満たされるか否かを判断し、当該判断の結果に応じて、前記メモリ転送制御部、前記バッファ転送制御部、前記第１切替部及び前記第２切替部を制御してデータ転送を行わせる切替制御部とを備える
ことを特徴とする請求項８から１５の何れか一項に記載のメモリ装置。
【請求項１７】
前記予め定められたデータ長は、前記メモリ部のページサイズと等しいデータ長である
ことを特徴とする請求項８から１６の何れか一項に記載のメモリ装置。
【請求項１８】
前記処理系統毎の入力データのデータ長を前記処理系統毎に記憶する演算単位長記憶部をさらに備え、
前記読出し制御部は、前記演算単位長記憶部に記憶されている前記処理系統毎の入力データのデータ長に基づいて、前記読出しバッファより前記処理系統毎の入力データを取得する
ことを特徴とする請求項８から１７の何れか一項に記載のメモリ装置。
【請求項１９】
請求項８から１８の何れか一項に記載のメモリ装置と、
前記メモリ装置に前記処理系統毎の入力データを入力する処理系統毎の入力処理部と、
前記メモリ装置から出力された前記入力データに所定の処理を行い出力データとする処理系統毎の出力処理部とを備える
ことを特徴とする信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置及びこのメモリ装置を備える信号処理装置に関する。
【背景技術】
【０００２】
一般に、信号処理装置は、信号の入力から出力までの間に種々の演算処理を行う。例えば、信号処理装置が通信処理装置である場合には、通信処理装置は、外部装置（例えば、ＰＣ等のユーザ機器）より通信信号の入力を受け、この通信信号を通信網に対応したフォーマットに変換して出力信号とし、この出力信号を通信網のプロトコルに従って出力する。また、複数の外部装置が一つの通信網を共有する場合には、通信処理装置は、予め定められている期間に出力信号を出力し、又は、他の制御装置より受け取った出力可能期間情報に基づいて出力信号を出力する。
ここで、通信処理装置は、通信信号の入力を受けてから、出力信号を出力するまでの演算処理の過程で生成される情報を、装置内又は装置外のメモリに記憶させておく必要がある。そして、近年の大容量通信及び高速通信を可能にするため、通信処理装置が使用するメモリは、大容量であり、かつ、高速アクセス可能なものであることが求められている。
近年では、大容量かつ高速アクセス可能なメモリとして、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）−ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられている。特許文献１には、ＤＤＲ−ＳＤＲＡＭの記憶領域を、一定容量毎、例えば、２キロバイト毎の領域に分割して、通信処理単位であるフレーム１つに１つの領域を割り当てて、当該フレームを当該領域に記憶させるデータ処理装置が記載されている。
【０００３】
ＤＤＲ−ＳＤＲＡＭからデータを読み出す方法には、単一アクセス（シングルアクセスともいう）及び連続アクセス（バーストアクセスともいう）がある。連続アクセスは、メモリ部に連続して記憶された複数ワードを一回の要求で連続して読み出すことができるため、メモリ部へのアクセス時間を短縮することができる。
図１は、ＤＤＲ−ＳＤＲＡＭからデータの読み出しが行われる際のタイミングチャートである。図１は、ワード数が８であるデータに連続してアクセスするタイミングを示している。一回の要求で読み出すことのできる連続ワード数を、バースト長ともいう。ＤＤＲ-ＳＤＲＡＭの制御を行うコントローラ部（図示せず）は、時刻Ｔ０において、ＡＣＴ（ＡＣＴＩＶＥ）コマンドを発行して、アクセスしたいアドレスの上位値をＤＤＲ−ＳＤＲＡＭに設定する。次に、コントローラ部は、時刻Ｔ０から上位アドレス設定期間ＴＴ０が経過した時刻Ｔ１にて、ＲＥＡＤコマンドを発行して、アドレスの下位値を設定する。そして、時刻Ｔ１から下位アドレス設定期間ＴＴ１が経過した時刻Ｔ２より、時刻Ｔ３までの期間ＴＴ２に、データＤ０〜Ｄ７が、ＤＤＲ−ＳＤＲＡＭクロックの立ち上がり及び立ち下がりのタイミングに合せて連続して読み出される。上位アドレス設定期間ＴＴ０及び下位アドレス設定期間ＴＴ１は、ＤＤＲ−ＳＤＲＡＭの種別や動作速度により定まる。コントローラ部がＤＤＲ−ＳＤＲＡＭにアクセスする度に、これらのアドレス設定期間ＴＴ０、ＴＴ１が必要となり、これらのアドレス設定期間ＴＴ０、ＴＴ１が経過するまで、コントローラ部は、データの読み出し及び書き込みを行うことができない。
【０００４】
ここで、コントローラ部が、ＤＤＲ−ＳＤＲＡＭにアクセスする際に、同じ上位値のアドレスに複数回連続してアクセスする場合には、コントローラ部は、ＡＣＴコマンドの発行を省略して、アドレスの下位値を設定するだけでデータの連続読み出し又は連続書き込みを行うことができる。
図２は、同じ上位アドレスに格納されているデータが連続して読み出される際のタイミングチャートである。図２に示すように、時刻Ｔ０においてＡＣＴコマンドが発行され、この時刻Ｔ０から上位アドレス設定期間ＴＴ０が経過した時刻Ｔ１において、コントローラ部（図示せず）は、最初のＲＥＡＤコマンドを発行する。次のＲＥＡＤコマンドが発行されてから、下位アドレス設定期間ＴＴ１が経過した時刻Ｔ２より、データＤ０〜Ｄ７の読出しが開始される。そして、次のＲＥＡＤコマンドにより読み出されるデータＤ０〜Ｄ７の読出し完了時刻Ｔ３から下位アドレス設定期間ＴＴ３前の時刻Ｔ２において、コントローラ部が、時刻Ｔ０で発行したＡＣＴコマンドで設定された上位アドレスに含まれる下位アドレスのＲＥＡＤコマンドを発行することにより、コントローラ部は、時刻Ｔ３より、データＤ０〜Ｄ７の後に続いて、データＤ８〜Ｄ１５を読み出すことができる。図２は、データＤ０〜Ｄ７が読み出される連続データ読出し期間ＴＴ２と、下位アドレス設定期間ＴＴ３とが等しい場合を示している。
【０００５】
コントローラ部は、このように一度のＡＣＴコマンドに対して、複数のＲＥＡＤコマンドを発行することで、ＤＤＲ−ＳＤＲＡＭへのアクセス効率を向上させることができる。例えば、特許文献２には、複数の回路が共有する外部メモリにおいて、各々の回路がアクセスするメモリ空間の上位アドレスが最大限一致するように、各々の回路が使用するメモリ領域の割り振りを行うメモリ制御装置が記載されている。
【０００６】
また、特許文献３には、外部装置からのデータを一旦仲介バッファに蓄積してからＳＤＲＡＭへの連続書込み又はＳＤＲＡＭからの連続読出しを行うことにより、ＳＤＲＡＭへのアクセス時間を短くするメモリ制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４３５０７１３号公報（段落００１９）
【特許文献２】国際公開第２００７／０６９５０６号（段落００３５〜００３６、図１）
【特許文献３】特開２００４−１９２０４３号公報（段落００１５〜００２４、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１〜３に記載されているように、ＤＤＲ−ＳＤＲＡＭにおいては、ＡＣＴコマンドの発行回数を減らすことにより、メモリ部との間のデータ転送を効率よく行うことができる。ＤＤＲ−ＳＤＲＡＭの上位アドレスは、ＤＤＲ−ＳＤＲＡＭの種別や記憶容量により異なるが、一般的に１ＫＢ（Ｋｉｌｏ  Ｂｙｔｅ）又は２ＫＢ毎に変化する。従って、コントローラ部は、メモリ部の最大１ＫＢ又は２ＫＢの連続した領域に、１回のＡＣＴコマンドで連続してアクセスすることができる。このため、１回のＡＣＴコマンドで連続してアクセスすることができるデータ長のデータを１つの単位として、ＤＤＲ−ＳＤＲＡＭにアクセスすることにより、ＤＤＲ−ＳＤＲＡＭとの間のデータ転送は、最も効率的になる。１回のＡＣＴコマンドで連続してアクセスできるデータ長の最大値をページサイズという。
【０００９】
図３は、ＤＤＲ−ＳＤＲＡＭで構成されるメモリ部を使用する信号処理装置１のデータの流れを概略的に示す図である。入力処理部２は、入力された信号を演算処理して入力データを生成する。書込み制御部３は、この入力データをメモリ部４に格納するアドレスを決定し、メモリコントローラ部５へ書込み指示を行う。読出し制御部６は、出力処理部７にて演算処理するタイミングに合わせて、メモリ部４より読み出す入力データのアドレスを決定し、メモリコントローラ部５へ読出し指示を行う。メモリコントローラ部５は、メモリ部４の同じ上位アドレス領域に対する書込み指示又は読出し指示が連続した場合には、ＡＣＴコマンドの発行を省略して、メモリ部４との間のデータ転送を行うことができる。メモリ部４に形成された各々の領域ＭＥ０〜ＭＥ４に格納することができるデータのデータ長の最大値が、ページサイズとなる。入力処理部２及び出力処理部７は、それぞれ少なくとも１種類以上の演算処理を行う。また、信号処理装置１は、入力処理部２と出力処理部７を１対とする処理系統を複数備え、複数の処理系統でメモリ部４を共有する場合もある。
【００１０】
メモリコントローラ部５がメモリ部４との間で最も効率よくデータ転送を行うためには、書込み制御部３は、入力データを、ページサイズと等しいデータ長（以下、メモリ転送単位長という）毎にパッキングする必要がある。しかし、入力処理部２及び出力処理部７において演算処理を行う単位となる入力データのデータ長（以下、演算単位長という）が小さく、メモリ転送単位長に満たない場合、メモリ転送単位長を演算単位長で除した回数分の演算が完了するまで、書込み制御部３は、入力データをメモリ部４に転送することができず、メモリ部４へのデータ転送に時間がかかる。
【００１１】
図４は、信号処理装置１が、メモリ転送単位長毎に入力データをパッキングして、メモリ部４にアクセスする際の動作を示す概略図である。図４では、入力処理部２にて処理された演算単位長ＣＵＬの入力データＤ０〜Ｄ３までがパッキングされると、これらの入力データＤ０〜Ｄ３をパッキングしたパッキングデータは、ページサイズと等しいメモリ転送単位長ＭＵＬとなる。入力処理部２によるデータＤ３への処理が完了すると、書込み制御部３は、入力データＤ０〜Ｄ３までをパッキングする。メモリコントローラ部５は、このようなパッキングデータを、１回のＡＣＴコマンドと連続する複数回のＷＲＩＴＥコマンドを発行することにより、メモリ部４に連続して書込むことができる。ＷＲＩＴＥコマンドの発行回数は、ページサイズをバースト長で除した値となる。メモリ部４からパッキングデータを読み出すには、メモリコントローラ部５は、１回のＡＣＴコマンドと連続する複数回のＲＥＡＤコマンドとを発行する。ＲＥＡＤコマンドの発行回数は、ＷＲＩＴＥコマンドの発行回数と等しい。
【００１２】
ここで、最初に処理された入力データＤ０は、パッキングされた入力データの全体のデータ長がメモリ転送単位長ＭＵＬに達するまで、メモリ部４に書き込まれず、書込み制御部３に滞留する。外部から入力処理部２に入力されるデータの時間当たりの入力量が一定ではない場合には、例えば、入力データＤ２が入力されたあと、入力データＤ３が続けて入力されない等、パッキングされた入力データがメモリ転送単位長ＭＵＬに満たない状態が続くときもある。このようなときには、パッキングされた入力データが、書込み制御部３に長い時間滞留することとなる。
【００１３】
この点、演算単位長ＣＵＬを大きくすることにより、入力データが長い時間滞留されてしまうことを防止できる。しかしながら、演算単位長ＣＵＬがメモリ転送単位長ＭＵＬよりも大きく、パッキングする時間が不要となるようにしても、メモリ転送単位長ＭＵＬを大きくするほど、メモリ部４との間の書込み転送時間及び読出し転送時間が長くなり、入力処理部２で処理された入力データが、出力処理部７に与えられるまでの時間が長くなる。
【００１４】
そこで、本発明は、入力されたデータを効率的に記憶して出力することのできる装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るメモリ装置は、
外部より入力された入力データを格納する書込みバッファ、及び、当該書込みバッファを制御する書込み制御部、を有する書込みバッファ部と、
前記書込みバッファ部から転送されたメモリ転送データを格納するメモリ部と、
前記書込みバッファ部から転送されたバッファ転送データ及び前記メモリ部から転送された前記メモリ転送データを格納する読出しバッファ、及び、当該読出しバッファを制御し、前記読出しバッファより前記入力データを取得して、取得した前記入力データを外部に出力する読出し制御部、を有する読出しバッファ部と、
前記メモリ部に前記メモリ転送データが格納されているか否かを示すメモリ使用状態を記憶するメモリ使用状態記憶部と、
前記書込みバッファ部、前記メモリ部及び前記読出しバッファ部の間でデータ転送を行う転送制御切替部と、を備え、
前記書込み制御部は、前記書込みバッファに格納された前記入力データの総データ量を示す書込みバッファ蓄積量を前記転送制御切替部に通知し、
前記読出し制御部は、前記読出しバッファの空きデータ量を示す読出しバッファ蓄積可能量を前記転送制御切替部に通知し、
前記転送制御切替部は、
前記書込みバッファ蓄積量及び前記読出しバッファ蓄積可能量が第１条件を満たす場合には、前記書込みバッファ部から、予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第２条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記メモリ転送データとして取得して、取得した前記メモリ転送データを前記メモリ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第３条件を満たす場合には、前記書込みバッファ部から、前記予め定められたデータ長のデータを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記書込みバッファ蓄積量、前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第４条件を満たす場合には、前記書込みバッファ部に格納されている前記入力データの全てを前記バッファ転送データとして取得して、取得した前記バッファ転送データを前記読出しバッファ部に転送し、
前記メモリ使用状態及び前記読出しバッファ蓄積可能量が第５条件を満たす場合には、前記メモリ部から前記メモリ転送データを取得して、取得した前記メモリ転送データを前記読出しバッファ部に転送するものであり、
前記第１条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、かつ、前記読出しバッファ蓄積可能量が前記予め定められたデータ長未満であることを条件とし、
前記第２条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とし、
前記第３条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長以上であり、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第４条件は、前記書込みバッファ蓄積量が前記予め定められたデータ長未満であり、前記読出しバッファ蓄積可能量が前記書込みバッファ蓄積量以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていないことを示すものであることを条件とし、
前記第５条件は、前記読出しバッファ蓄積可能量が前記予め定められたデータ長以上であり、かつ、前記メモリ使用状態が、前記バッファ転送データが格納されていることを示すものであることを条件とする
ことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、入力されたデータを効率的に記憶して出力することのできる装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】ＤＤＲ−ＳＤＲＡＭからデータの読み出しが行われる際のタイミングチャートである。
【図２】同じ上位アドレスに格納されているデータが連続して読み出される際のタイミングチャートである。
【図３】ＤＤＲ−ＳＤＲＡＭで構成されるメモリ部を使用する信号処理装置のデータの流れを概略的に示す図である。
【図４】信号処理装置が、メモリ転送単位長毎にデータをパッキングして、メモリ部４にアクセスする際の動作を示す概略図である。
【図５】実施の形態１に係る信号処理装置の構成を示すブロック図である。
【図６】実施の形態１において、切替制御部が書込みバッファに記憶されたデータを制御する際の処理を示すフローチャートである。
【図７】実施の形態１において、切替制御部がメモリ部に記憶されたメモリ転送データを制御する際の処理を示すフローチャートである。
【図８】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その１）である。
【図９】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その２）である。
【図１０】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その３）である。
【図１１】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その４）である。
【図１２】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その５）である。
【図１３】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その６）である。
【図１４】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その７）である。
【図１５】実施の形態１において、ページサイズに等しい長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その８）である。
【図１６】実施の形態１において、図８〜図１５の状態における、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置から出力処理部への入力データの出力タイミングを示す概略図である。
【図１７】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その１）である。
【図１８】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その２）である。
【図１９】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その３）である。
【図２０】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その４）である。
【図２１】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その５）である。
【図２２】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その６）である。
【図２３】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その７）である。
【図２４】実施の形態１において、ページサイズとは異なる長さのパケットが、連続してメモリ装置に入力される際の動作の一例を示す概略図（その８）である。
【図２５】実施の形態１において、図１７〜図２４の状態における、入力処理部からメモリ装置へのデータの入力タイミング、書込みバッファ蓄積量の変化、メモリ部に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置から出力処理部へのデータの出力タイミングを示す概略図である。
【図２６】実施の形態２に係る信号処理装置の構成を示すブロック図である。
【図２７】実施の形態２における切替制御部の構成を示すブロック図である。
【図２８】実施の形態２において、転送要求発行部が、メモリ書込み要求又はバッファ転送要求を出力する際の処理を示すフローチャートである。
【図２９】実施の形態２において、転送要求発行部がメモリ読出し要求を出力する際の処理を示すフローチャートである。
【図３０】実施の形態２において、書込みバッファに格納されたデータをメモリ部に転送する際の、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、書込みバッファ蓄積可能量の変化、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、及び、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミングを示す概略図である。
【図３１】実施の形態２において、書込みバッファに格納されたデータをメモリ部又は読出しバッファに転送する際の、入力処理部からメモリ装置への入力データの入力タイミング、書込みバッファ蓄積量の変化、読出しバッファ蓄積可能量の変化、読出しバッファ蓄積量の変化、バッファ転送要求の出力タイミング、バッファ転送選択結果の出力タイミング、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置から出力処理部２４０への入力データの出力タイミングを示す概略図である。
【発明を実施するための形態】
【００１８】
実施の形態１．
図５は、本発明における実施の形態１に係る信号処理装置１００の構成を示すブロック図である。信号処理装置１００は、メモリ転送単位長を大きくして転送効率の高いメモリアクセスを実現する場合に、メモリ部を経由することにより発生する装置内遅延を少なくする。
【００１９】
信号処理装置１００は、入力処理部１１０と、メモリ装置１２０と、出力処理部１４０とを備える。
【００２０】
入力処理部１１０は、Ｅｔｈｅｒｎｅｔパケットを演算単位とする。このパケットは、例えば０．０６ＫＢ（Ｋｉｌｏ  Ｂｙｔｅ）〜２ＫＢの間のデータ長となっている。そして、入力処理部１１０からメモリ装置１２０には、このような可変長のパケットが不定期に入力される。また、メモリ装置１２０から出力処理部１４０に出力されるパケットは、出力処理部１４０で所定の処理が施されて、出力データとされる。出力処理部１４０は、出力データを通信網に出力する。
【００２１】
メモリ装置１２０は、書込みバッファ部１２１と、演算単位長記憶部１２７と、読出しバッファ部１２４と、メモリコントローラ部１２８と、メモリ部１２９と、メモリ使用状態記憶部１３０と、転送制御切替部１３１とを備える。
【００２２】
書込みバッファ部１２１は、書込みバッファ１２２と、書込み制御部１２３とを備え、入力処理部１１０から与えられた入力データを一時的に記憶して、この入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを転送制御切替部１３１に与える。
書込みバッファ１２２は、入力処理部１１０から与えられた入力データを一時的に記憶する。
書込み制御部１２３は、書込みバッファ１２２を制御する。また、書込み制御部１２３は、書込みバッファ１２２に格納されている入力データの総データ量を示す書込みバッファ蓄積量を転送制御切替部１３１に通知する。また、書込み制御部１２３は、入力処理部１１０から与えられた各々の入力データのデータ長を演算単位長として、演算単位長記憶部１２７に記憶させる。例えば、書込み制御部１２３は、入力処理部１１０から入力データが入力された順番に従って、当該入力データの演算単位長を演算単位長記憶部１２７に記憶させる。さらに、書込み制御部１２３は、書込みバッファ１２２に１つの入力データの格納が完了すると、転送制御切替部１３１に演算単位蓄積通知を行う。
【００２３】
読出しバッファ部１２４は、読出しバッファ１２５と、読出し制御部１２６とを備え、転送制御切替部１３１から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶し、これらのデータから入力データを抽出して出力処理部１４０に与える。
読出しバッファ１２５は、転送制御切替部１３１から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶する。
読出し制御部１２６は、読出しバッファ１２５を制御する。例えば、読出しバッファ制御部１２６は、演算単位長記憶部１２７から入力データの演算単位長を取得して、この演算単位長の入力データを読出しバッファ１２５より読み出して、出力処理部１４０に与える。また、読出し制御部１２６は、読出しバッファ１２５にデータを格納することのできる空きデータ量を示す読出しバッファ蓄積可能量を転送制御切替部１３１に通知する。読出しバッファ蓄積可能量は、読出しバッファ１２５の容量から、読出しバッファ１２５に記憶されているデータの総データ量を減算することにより算出される。
【００２４】
演算単位長記憶部１２７は、書込みバッファ１２２に格納された各々の入力データのデータ長を演算単位長として記憶する。また、演算単位長記憶部１２７は、読出し制御部１２６からの問い合わせに応じて、読出し制御部１２６に入力データの演算単位長を与える。例えば、演算単位長記憶部１２７は、書込み制御部１２３から演算単位長が与えられた順番に従って、読出し制御部１２６に演算単位長を与える。このようにすることで、入力処理部１１０から入力データが入力された順番で、この入力データを出力処理部１４０に出力することができるようになる。
【００２５】
メモリコントローラ部１２８は、メモリ部１２９の制御を行う。例えば、メモリコントローラ部１２８は、転送制御切替部１３１から与えられたメモリ転送データをメモリ部１２９に記憶させる。また、メモリコントローラ部１２８は、転送制御切替部１３１からの指示に応じて、メモリ部１２９に記憶されているメモリ転送データを読み出して、転送制御切替部１３１に与える。
メモリ部１２９は、メモリコントローラ部１２８の指示に応じて、メモリ転送データを記憶する。例えば、メモリ部１２９は、ＤＤＲ−ＳＤＲＡＭである。このＤＤＲ−ＳＤＲＡＭのページサイズは、例えば、１ＫＢとする。このため、メモリコントローラ部１２８は、メモリ部１２９に１回のＡＣＴコマンドを発行するだけで、上位アドレスが同じである１ＫＢの連続した領域にアクセスすることができる。従って、本実施の形態では、メモリ転送単位長を１ＫＢとし、メモリ部１２９に記憶される各々のメモリ転送データのデータ長は、１ＫＢとなる。
【００２６】
メモリ使用状態記憶部１３０には、メモリ部１２９にメモリ転送データが記憶されているか否かを示すメモリ使用状態が記憶される。本実施の形態においては、メモリ使用状態として、メモリ部１２９に記憶されているメモリ転送データの総データ量であるメモリ使用量が用いられる。従って、メモリ使用量が「０」であれば、メモリ転送データが記憶されていないことを示し、メモリ使用量が「０」ではなければ、メモリ転送データが記憶されていることを示す。
【００２７】
転送制御切替部１３１は、メモリ転送制御部１３２と、バッファ転送制御部１３３と、第１切替部１３４と、第２切替部１３５と、切替制御部１３６と、を備え、書込みバッファ部１２１、メモリ部１２９及び読出しバッファ部１２４に記憶されるデータの流れを制御する。
【００２８】
メモリ転送制御部１３２は、切替制御部１３６からの指示に応じて、書込みバッファ部１２１よりメモリ転送単位長のデータをメモリ転送データとして取得して、メモリコントローラ部１２８を介して、このメモリ転送データをメモリ部１２９に記憶させる。また、メモリ転送制御部１３２は、切替制御部１３６からの指示に応じて、メモリコントローラ部１２８を介して、メモリ部１２９よりメモリ転送データを読み出して、このメモリ転送データを読出しバッファ部１３０に記憶させる。
バッファ転送制御部１３３は、切替制御部１３６からの指示に応じて、書込みバッファ部１２１に格納されている全ての入力データをバッファ転送データとして取得して、このバッファ転送データを読出しバッファ部１２４に記憶させる。ここで、バッファ転送制御部１３３がバッファ転送データとして取得する入力データは、書込みバッファ部１２１に格納が完了しているものであって、バッファ転送制御部１３３は、まだ格納途中の入力データについては、バッファ転送データとして取得しない。
【００２９】
第１切替部１３４は、切替制御部１３６からの指示に応じて、書込みバッファ部１２１からのデータの出力先を、メモリ転送制御部１３２及びバッファ転送制御部１３３の間で切り替える。
第２切替部１３５は、切替制御部１３６からの指示に応じて、読出しバッファ部１２４に与えるデータの入力元を、メモリ転送制御部１３２及びバッファ転送制御部１３３の間で切り替える。
【００３０】
切替制御部１３６は、メモリ転送制御部１３２、バッファ転送制御部１３３、第１切替部１３４及び第２切替部１３５を制御することにより、メモリ装置１２０内におけるデータ転送を制御する。ここで、切替制御部１３６は、書込みバッファ１２２の書込みバッファ蓄積量と、読出しバッファ１２５の読出しバッファ蓄積可能量と、メモリ部１２９のメモリ使用状態と、が予め定められた条件を満たすか否かに応じて、メモリ装置１２０内におけるデータ転送を制御する。また、切替制御部１３６は、メモリ使用状態記憶部１３０に記憶されているメモリ使用状態（メモリ使用量）を管理する。
【００３１】
図６は、切替制御部１３６が書込みバッファ１２２に記憶されたデータを制御する際の処理を示すフローチャートである。
【００３２】
切替制御部１３６は、書込みバッファ蓄積量がメモリ転送単位長（１ＫＢ）以上であるか判断する（Ｓ１０）。そして、切替制御部１３６は、書込みバッファ蓄積量がメモリ転送単位長以上である場合（ステップＳ１０でＹｅｓ）には、ステップＳ１１の処理に進み、書込みバッファ蓄積量がメモリ転送単位長未満である場合（ステップＳ１０でＮｏ）には、ステップＳ１４の処理に進む。
【００３３】
ステップＳ１１では、切替制御部１３６は、読出しバッファ蓄積可能量がメモリ転送単位長以上であるか否かを判断する。そして、切替制御部１３６は、読出しバッファ蓄積可能量がメモリ転送単位長以上である場合（ステップＳ１１でＹｅｓ）には、ステップＳ１２の処理に進み、読出しバッファ蓄積可能量がメモリ転送単位長未満である場合（ステップＳ１１でＮｏ）には、ステップＳ１３の処理に進む。
【００３４】
ステップＳ１２では、切替制御部１３６は、メモリ使用状態記憶部１３０よりメモリ部１２９に記憶されているメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。切替制御部１３６は、メモリ使用量が「０」である場合（ステップＳ１２でＹｅｓ）、言い換えれば、メモリ部１２９にメモリ転送データが記憶されていない場合には、ステップＳ１７の処理に進み、メモリ使用量が「０」ではない場合（ステップＳ１２でＮｏ）、言い換えれば、メモリ部１２９にメモリ転送データが記憶されている場合には、ステップＳ１３の処理に進む。
【００３５】
ステップＳ１３では、切替制御部１３６は、メモリ転送制御部１３２及び第１切替部１３４にメモリ書込み指示を与える。このような指示を受けた第１切替部１３４は、書込みバッファ部１２１からのデータの出力先をメモリ転送制御部１３２に切り替える。また、このような指示を受けたメモリ転送制御部１３２は、書込みバッファ部１２２からメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。
【００３６】
一方、ステップＳ１０で、書込みバッファ蓄積量がメモリ転送単位長未満である場合（ステップＳ１０でＮｏ）には、ステップＳ１４の処理に進み、ステップＳ１４では、切替制御部１３６は、書込みバッファ１２２におけるデータの蓄積量が演算単位長以上であるか否かを判断する。言い換えると、切替制御部１３６は、書込みバッファ１２２に格納が完了した入力データが１つ以上あるか否かを判断する。例えば、切替制御部１３６は、書込み制御部１２３から送られてくる演算単位蓄積通知により、書込みバッファ１２２に格納が完了した入力データが１つ以上あるか否かを判断することができる。そして、切替制御部１３６は、書込みバッファ１２２におけるデータの蓄積量が演算単位長以上である場合（ステップＳ１４でＹｅｓ）には、ステップＳ１５の処理に進み、書込みバッファ１２２におけるデータの蓄積量が演算単位長未満である場合（ステップＳ１４でＮｏ）には、書込みバッファ１２２に記憶されているデータの転送を行わずに、ステップＳ１０の処理に戻る。
【００３７】
ステップＳ１５では、切替制御部１３６は、読出しバッファ蓄積可能量が書込みバッファ蓄積量以上であるか否かを判断する。そして、切替制御部１３６は、読出しバッファ蓄積可能量が書込みバッファ蓄積量以上である場合（ステップＳ１５でＹｅｓ）には、ステップＳ１６の処理に進み、読出しバッファ蓄積可能量が書込みバッファ蓄積量未満である場合（ステップＳ１５でＮｏ）には、書込みバッファ１２２に記憶されているデータの転送を行わずに、ステップＳ１０の処理に戻る。
【００３８】
ステップＳ１６では、切替制御部１３６は、メモリ使用状態記憶部１３０よりメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。切替制御部１３６は、メモリ使用量が「０」である場合（ステップＳ１６でＹｅｓ）には、ステップＳ１７の処理に進み、メモリ使用量が「０」ではない場合（ステップＳ１６でＮｏ）には、書込みバッファ１２２に記憶されているデータの転送を行わずに、ステップＳ１０の処理に戻る。
【００３９】
ステップＳ１７では、切替制御部１３６は、バッファ転送制御部１３３、第１切替部１３４及び第２切替部１３５にバッファ転送指示を与える。このような指示を受けた第１切替部１３４は、書込みバッファ部１２１からのデータの出力先をバッファ転送制御部１３３に切り替える。また、このような指示を受けた第２切替部１３５は、読出しバッファ部１２４に出力するデータの入力元をバッファ転送制御部１３３に切り替える。さらに、このような指示を受けたバッファ転送制御部１３３は、書込みバッファ部１２２から読み出したデータを、バッファ転送データとして、読出しバッファ部１２４に転送する。ここで、バッファ転送制御部１３３は、書込みバッファ蓄積量がメモリ転送単位長以上である場合には、書込みバッファ１２５よりメモリ転送単位長のデータ部分を読み出して、このデータ部分をバッファ転送データとして読出しバッファ部１２４に転送する。一方、バッファ転送制御部１３３は、書込みバッファ蓄積量がメモリ転送単位長未満である場合には、書込みバッファ１２５から格納が完了している全ての入力データを読み出して、読み出した全ての入力データをバッファ転送データとして、読出しバッファ部１２４に転送する。
【００４０】
図６のフローチャートで示されるように、本実施の形態においては、書込みバッファ蓄積量がメモリ転送単位長以上となる場合（ステップＳ１０でＹｅｓ）には、ステップＳ１１又はステップＳ１２を経て、メモリ転送制御部１３２又はバッファ転送制御部１３３の何れかにより、書込みバッファ１２２に格納されたメモリ転送単位長のデータは、メモリ部１２９又は読出しバッファ部１２４のいずれかに転送される。一方、書込みバッファ蓄積量がメモリ転送単位長未満となる場合（ステップＳ１０でＮｏ）には、ステップＳ１４〜Ｓ１６を経て、書込みバッファ１２２に記憶されたデータは、書込みバッファ１２２に記憶されたままとなるか、バッファ転送制御部１３３により読出しバッファ部１２４に転送される。このため、本実施の形態では、メモリ部１２９に転送されるデータは、必ずメモリ転送単位長となり、メモリ部１２９との間で最も効率よくデータ転送を行うことができるとともに、メモリ転送単位長に満たないデータも、書込みバッファ１２２から読出しバッファ１２５に転送され、メモリ転送単位長に満たないデータがメモリ装置１２０内に滞留してしまうことを防止できる。
【００４１】
図７は、切替制御部１３６がメモリ部１２９に記憶されたメモリ転送データを制御する際の処理を示すフローチャートである。
【００４２】
まず、切替制御部１３６は、読出しバッファ蓄積可能量がメモリ転送単位長以上であるか否かを判断する（Ｓ２０）。そして、切替制御部１３６は、読出しバッファ蓄積可能量がメモリ転送単位長以上である場合（ステップＳ２０でＹｅｓ）には、ステップＳ２１の処理に進む。
【００４３】
ステップＳ２１では、切替制御部１３６は、メモリ使用状態記憶部１３０よりメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。切替制御部１３６は、メモリ使用量が「０」である場合（ステップＳ２１でＹｅｓ）には、メモリ部１２９に記憶されているメモリ転送データの転送を行わずに、ステップＳ２０の処理に戻る。一方、切替制御部１３６は、メモリ使用量が「０」ではない場合（ステップＳ２１でＮｏ）には、ステップＳ２２の処理に進む。
【００４４】
ステップＳ２２では、切替制御部１３６は、メモリ転送制御部１３２及び第２切替部１３５にメモリ読出し指示を与える。このような指示を受けた第２切替部１３５は、読出しバッファ部１２４に出力するデータの入力元をメモリ転送制御部１３２に切り替える。また、このような指示を受けたメモリ転送制御部１３２は、メモリ部１２９からメモリ転送データを読み出して、読出しバッファ部１２４に転送する。
【００４５】
図７のフローチャートで示されるように、本実施の形態においては、読出しバッファ蓄積可能量がメモリ転送単位長以上となる場合（ステップＳ２０でＹｅｓ）には、ステップＳ２１を経て、メモリ転送制御部１３２により、メモリ部１２９に記憶されたメモリ転送データは、読出しバッファ部１２４に転送される。一方、読出しバッファ蓄積可能量がメモリ転送単位長未満となる場合（ステップＳ２０でＮｏ）には、メモリ部１２９に記憶されたメモリ転送データは、メモリ部１２９に記憶されたままとなる。このため、本実施の形態では、メモリ部１２９から読出されるデータは、必ずメモリ転送単位長となり、メモリ部１２９との間で最も効率よくデータ転送を行うことができる。
【００４６】
［動作例１］
次に、ページサイズに等しい長さのパケットが、連続してメモリ装置１２０に入力される際の動作の一例を、図８〜図１５を用いて説明する。ここでは、メモリ装置１２０に入力されるパケットの入力タイミングと、メモリ装置１２０から出力されるパケットの出力タイミングとが互いに独立しているものとする。なお、図８〜図１５では、データの流れを簡略化して説明するために、書込みバッファ部１２１については書込みバッファ１２２のみ、読出しバッファ部１２４については読出しバッファ１２５のみが示されており、また、演算単位長記憶部１２７、メモリ使用状態記憶部１３０及び切替制御部１３６は、示されていない。さらに、書込みバッファ部１２２及び読出しバッファ部１３１に蓄積できるデータの最大長は、メモリ部１２９のページサイズの２倍、ここでは、２ＫＢとする。また、メモリ部１２９には、ページサイズ毎の領域１２９Ａ〜１２９Ｅが示されている。
【００４７】
図８は、時刻Ｔ１０において、メモリ装置１２０にデータが入力される前の初期状態を示している。この初期状態においては、書込みバッファ１２２、メモリ部１２９及び読出しバッファ１２５には、データが記憶されていない。
図８の状態から、入力処理部１１０で処理された、長さ１ＫＢのパケットＰ１が書込みバッファ１２２に格納されると、図９で示される状態になる。
【００４８】
図９は、時刻Ｔ１１において、書込みバッファ１２２に長さ１ＫＢのパケットＰ１が格納された状態を示している。図９において、ハッチングされたＰ１の部分が、格納されたパケットを示す。以下、同様に、書込みバッファ１２２、メモリ部１２９及び読出しバッファ１２５に格納されたパケットには、ハッチングを施す。
書込みバッファ１２２にパケットＰ１が格納されると、書込み制御部１２３は、パケットＰ１のデータ長を演算単位長として、演算単位長記憶部１２７に記憶させる。
ここで、図９の状態では、書込みバッファ蓄積量が１ＫＢであり、読出しバッファ蓄積可能量が１ＫＢ以上であり、かつ、メモリ使用量が「０」であるため、書込みバッファ１２２に記憶されたパケットＰ１は、バッファ転送データとして読出しバッファ１２５に転送される。これは、図６のフローチャートに従って、ステップＳ１０でＹｅｓ、ステップＳ１１でＹｅｓ及びステップＳ１２でＹｅｓとなり、ステップＳ１７の処理が行われることに相当する。
図９の状態から、長さ１ＫＢのパケットＰ１が書込みバッファ１２２から読出しバッファ１２５に転送されると、図１０で示される状態となる。
【００４９】
図１０は、時刻Ｔ１２において、読出しバッファ１２５に長さ１ＫＢのパケットＰ１が格納された状態を示している。図１０においては、パケットＰ１の転送を行ったバッファ転送制御部１３３にクロスハッチングが施されている。以下、同様に、パケットの転送を行ったメモリ転送制御部１３２又はバッファ転送制御部１３３には、クロスハッチングを施す。
読出し制御部１２６は、パケットＰ１を読出しバッファ１２５に格納すると、演算単位長記憶部１２７に演算単位長を問い合わせることで、パケットＰ１を出力処理部１４０に出力する際の演算単位長を取得する。
ここで、図１０の状態から、入力処理部１１０で処理された、長さ１ＫＢのパケットＰ２が書込みバッファ１２２に格納されると、図９の状態と同様に、切替制御部１３６は、第１切替部１３４、バッファ転送制御部１３３及び第２切替部１３５を制御して、書込み一時バッファ１２２に記憶されているパケットＰ２を読み出し、バッファ転送データとして読出しバッファ１２５に転送させる。
図１０の状態から、長さ１ＫＢのパケットＰ２が読出しバッファ１２５に転送されると、図１１で示される状態となる。
【００５０】
図１１は、時刻Ｔ１３において、読出しバッファ１２５に長さ１ＫＢのパケットＰ１及びＰ２が格納された状態を示している。読出し制御部１２６は、パケットＰ２を読出しバッファ１２５に格納すると、演算単位長記憶部１２７に演算単位長を問い合わせることで、パケットＰ２を出力処理部１４０に出力する際の演算単位長を取得する。
図１１の状態から、入力処理部１１０で処理された、長さ１ＫＢのパケットＰ３が書込みバッファ１２２に格納されると、図１２で示される状態になる。
【００５１】
図１２は、時刻Ｔ１４において、書込みバッファ１２２に長さ１ＫＢのパケットＰ３が格納され、かつ、読出しバッファ１２５に長さ１ＫＢのパケットＰ１及びＰ２が格納された状態を示している。書込みバッファ１２２にパケットＰ３が格納されると、書込み制御部１２３は、パケットＰ３のデータ長を演算単位長として、演算単位長記憶部１２７に記憶させる。
ここで、図１２の状態では、書込みバッファ蓄積量が１ＫＢであり、かつ、読出しバッファ蓄積可能量が１ＫＢ未満であるため、書込み一時バッファ１２２に記憶されているパケットＰ３は、メモリ転送データとしてメモリ部１２９に転送される。これは、図６のフローチャートに従って、ステップＳ１０でＹｅｓ及びステップＳ１１でＮｏとなり、ステップＳ１３の処理が行われることに相当する。例えば、メモリ転送制御部１３２は、メモリ部１２９に対して、連続する１ＫＢの書込み転送を実施する。メモリ転送制御部１３２は、メモリコントローラ部１２８を介して、メモリ部１２９へ１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドを発行して、メモリ部１２９に１ＫＢのパケットＰ３を書き込む。ＷＲＩＴＥコマンドの発行回数は、書込むデータのデータ長である１ＫＢを、ＤＤＲ−ＳＤＲＡＭであるメモリ部１２９の「メモリ幅×バースト長÷８ビット」で除した値で求められる。例えば、バースト長を８、メモリビット幅（メモリのビット幅）を１６ビットとすると、１回のＷＲＩＴＥコマンドにより１６Ｂ（＝１６ビット×８ワード÷８）のデータがメモリ部１２９に記憶され、６４回（＝１ＫＢ÷１６Ｂ）のＷＲＩＴＥコマンドによりメモリ部１２９への書込みが完了する。
図１２の状態から、長さ１ＫＢのパケットＰ３が書込みバッファ１２２からメモリ部１２９に転送されると、図１３で示される状態となる。
【００５２】
図１３は、時刻Ｔ１５において、メモリ部１２９に長さ１ＫＢのパケットＰ３が格納され、かつ、読出しバッファ１２５に長さ１ＫＢのパケットＰ１及びＰ２が格納された状態を示している。切替制御部１３６は、メモリ部１２９に長さ１ＫＢのパケットＰ３が格納されると、メモリ使用状態記憶部１３０に記憶されているメモリ使用量を「１」増加させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。なお、本実施の形態では、メモリ部１２９に記憶されるデータのデータ長は、常に１ＫＢの自然数倍となる。
図１３の状態から、長さ１ＫＢのパケットＰ１が読出しバッファ１２５から出力処理部１４０に出力されると、図１４で示される状態となる。読出し制御部１２６は、時刻Ｔ１２において、演算単位長記憶部１２７から取得した演算単位長に基づいて、パケットＰ１を読出しバッファ１２５から読み出して、出力処理部１４０に出力する。
【００５３】
図１４は、時刻Ｔ１６において、メモリ部１２９に長さ１ＫＢのパケットＰ３が格納され、かつ、読出しバッファ１２５に長さ１ＫＢのパケットＰ２が格納された状態を示している。ここで、図１４の状態では、読出しバッファ蓄積可能量が１ＫＢであり、かつ、メモリ部１２９のメモリ使用量が「０」ではないため、メモリ部１２９に記憶されているパケットＰ３は、読出しバッファ１２５に転送させる。これは、図７のフローチャートに従って、ステップＳ２０でＹｅｓ及びステップＳ２１でＮｏとなり、ステップＳ２２の処理が行われることに相当する。例えば、メモリ転送制御部１３２は、メモリ部１２９に対して、連続する１ＫＢの読出し転送を実施する。メモリ転送制御部１３２は、メモリコントローラ部１２８を介して、メモリ部１２９へ１回のＡＣＴコマンドと、複数回のＲＥＡＤコマンドを発行して、メモリ部１２９から１ＫＢのパケットＰ３を読み出す。
図１４の状態から、長さ１ＫＢのパケットＰ３がメモリ部１２９から読出しバッファ１２５に転送されると、図１５で示される状態となる。
【００５４】
図１５は、時刻Ｔ１７において、読出しバッファ１２５に長さ１ＫＢのパケットＰ２及びＰ３が格納された状態を示している。切替制御部１３６は、メモリ部１２９から長さ１ＫＢのパケットＰ３が読出しバッファ１２５に転送されたので、メモリ使用状態記憶部１３０に記憶されているメモリ使用量を「１」減算させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。
【００５５】
図１６は、図８〜図１５で示される状態における、入力処理部１１０からメモリ装置１２０への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部１２９に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置１２０から出力処理部１４０への入力データの出力タイミングを示す概略図である。図１６に示されている時刻Ｔ１０〜Ｔ１７は、図８〜図１５に示されている時刻Ｔ１０〜Ｔ１７と同じ時刻である。なお、図１６は、ＷＲＩＴＥコマンド及びＲＥＡＤコマンドの発行回数を簡略化して示している。また、図１６では、パケットの演算単位長ＣＵＬは、１ＫＢであり、また、メモリ装置１２０におけるメモリ転送単位長ＭＵＬも、１ＫＢである。
【００５６】
時刻Ｔ１０において、入力処理部１１０よりメモリ装置１２０へのパケットＰ１の入力が開始されると、入力されたパケットＰ１は書込みバッファ１２２に格納されるため、書込みバッファ蓄積量は、時刻Ｔ１０以降増加する。このとき、メモリ部１２９及び読出しバッファ１２５にはデータが記憶されておらず、メモリ蓄積量は「０」であり、読出しバッファ蓄積可能量は、最大値である２ＫＢである。
【００５７】
時刻Ｔ１１において、パケットＰ１が全て書込みバッファ１２２に格納されると、書込みバッファ蓄積量は１ＫＢとなる。そして、パケットＰ１は、書込みバッファ１２２より、読出しバッファ１２５に転送される。従って、時刻Ｔ１１以降、書込みバッファ蓄積量は減少する。また、時刻Ｔ１１以降、書込みバッファ１２２から転送されたパケットＰ１が読出しバッファ１２５に格納されるため、読出しバッファ蓄積可能量は減少する。
【００５８】
時刻Ｔ１２において、パケットＰ１が全て読出しバッファ１２５に格納されると、書込みバッファ蓄積量は「０」となる。また、読出しバッファ蓄積可能量は、最大値の２ＫＢから格納されたパケットＰ１の１ＫＢを減算した１ＫＢとなる。
【００５９】
時刻Ｔ１２以降において、入力処理部１１０よりメモリ装置１２０へのパケットＰ２の入力が開始されると、書込みバッファ蓄積量は増加する。このとき、メモリ蓄積量は「０」であり、読出しバッファ蓄積可能量は１ＫＢである。
【００６０】
時刻Ｔ１２−１において、パケットＰ２が全て書込みバッファ１２２に格納されると、書込みバッファ蓄積量は１ＫＢとなる。そして、パケットＰ２は、書込みバッファ１２２より、読出しバッファ１２５に転送される。従って、時刻Ｔ１２−１以降、書込みバッファ蓄積量は減少する。また、時刻Ｔ１２−１以降、書込みバッファ１２２から転送されたパケットＰ２が読出しバッファ１２５に格納されるため、読出しバッファ蓄積可能量は減少する。
【００６１】
時刻Ｔ１３において、パケットＰ２が全て読出しバッファ１２５に格納されると、書込みバッファ蓄積量は「０」となる。また、読出しバッファ１２５の蓄積量は２ＫＢとなり、読出しバッファ蓄積可能量は「０」となる。
【００６２】
時刻Ｔ１３以降において、入力処理部１１０よりメモリ装置１２０へのパケットＰ３の入力が開始されると、書込みバッファ蓄積量は増加する。このとき、メモリ蓄積量及び読出しバッファ蓄積可能量は、ともに「０」である。
【００６３】
時刻Ｔ１４において、パケットＰ３が全て書込みバッファ１２２に格納されると、書込みバッファ蓄積量は１ＫＢとなり、読出しバッファ蓄積可能量が「０」、かつ、メモリ部１２９のメモリ蓄積量が「０」であることから、パケットＰ３は、メモリ部１２９に転送される。このとき、メモリ転送制御部１３２は、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドをメモリ部１２９に発行する。パケットＰ３がメモリ部１２９に転送されることから、時刻Ｔ１４以降、書込みバッファ蓄積量は減少し、メモリ部１２９のメモリ蓄積量は増加する。
【００６４】
時刻Ｔ１５において、パケットＰ３が全てメモリ部１２９に格納されると、書込みバッファ蓄積量は「０」となり、メモリ蓄積量は１ＫＢとなる。
【００６５】
時刻Ｔ１５以降において、メモリ装置１２０から出力処理部１４０にパケットＰ１の出力が開始されると、パケットＰ３は読出しバッファ１２５から出力されるので、読出しバッファ１２５の蓄積量は減少し、読出しバッファ蓄積可能量は増加する。
【００６６】
時刻Ｔ１６において、パケットＰ１が全て出力されると、読出しバッファ蓄積可能量は１ＫＢとなる。そして、パケットＰ３は、メモリ部１２９から読出しバッファ１２５に転送される。このとき、メモリ転送制御部１３２は、１回のＡＣＴコマンドと、複数回のＲＥＡＤコマンドをメモリ部１２９に発行する。パケットＰ３が読出しバッファ１２５に転送されるため、時刻Ｔ１６以降、メモリ蓄積量は減少する。一方、時刻Ｔ１６以降、読出しバッファ１２５の蓄積量は増加して、読出しバッファ蓄積可能量は減少する。
【００６７】
時刻Ｔ１７において、パケットＰ３が全て読出しバッファ１２５に格納されると、メモリ蓄積量は「０」となり、また、読出しバッファ蓄積可能量も「０」となる。
【００６８】
以上のように、信号処理装置１００は、書込みバッファ１２２、読出しバッファ１２５及びメモリ部１２９のデータ量に応じて、書込みバッファ１２２に格納されたデータをメモリ部１２９に記憶せずに読出しバッファ１２５に転送するため、メモリ部１２９を経由する時間を省略し、装置内での遅延を少なくすることができる。また、信号処理装置１００は、メモリ部１２９との間のデータ転送回数を減らすことができため、メモリ部１２９との入出力信号が変化する回数及びメモリ部１２９の動作時間を減らすことができ、装置の消費電力を低下させることができる。
【００６９】
［動作例２］
次に、ページサイズとは異なる長さのパケットが、連続してメモリ装置１２０に入力される際の動作の一例を、図１７〜図２４を用いて説明する。ここでは、メモリ装置１２０に入力されるパケットの入力タイミングと、メモリ装置１２０から出力されるパケットの出力タイミングとが互いに独立しているものとする。なお、図１７〜図２４においても、図８〜図１５と同様に、データの流れを簡略化して説明するために、書込みバッファ部１２１については書込みバッファ１２２のみ、読出しバッファ部１２４については読出しバッファ１２５のみが示されており、また、切替制御部１３６及びメモリ使用状態記憶部１３０は、示されていない。さらに、書込みバッファ部１２２及び読出しバッファ部１３１に蓄積できるデータの最大長は、ページサイズの２倍、ここでは、２ＫＢとする。また、メモリ部１２９には、ページサイズ毎の領域１２９Ａ〜１２９Ｅが示されている。なお、図１７〜図２４でも、書込みバッファ１２２、メモリ部１２９及び読出しバッファ１２５に格納されたパケットには、ハッチングを施し、パケットの転送を行ったメモリ転送制御部１３２又はバッファ転送制御部１３３には、クロスハッチングを施す。
ここで、図１７〜図２４では、メモリ装置１２０に、ページサイズよりも大きい１．５ＫＢのパケットＰ６と、ページサイズよりも小さい０．０６ＫＢのパケットＰ７とが、順に入力される際の動作を説明する。
【００７０】
図１７は、時刻Ｔ２０において、メモリ装置１２０にパケットＰ６が入力される前の状態を示している。この状態においては、書込みバッファ１２２及びメモリ部１２９には、データが格納されていないが、読出しバッファ１２５には、それぞれ１ＫＢのパケットＰ４及びＰ５が格納されている。
図１７の状態から、入力処理部１１０で処理された、長さ１．５ＫＢのパケットＰ６の内、先頭から１ＫＢまでの部分Ｐ６ａが書込みバッファ１２２に格納されると、図１８で示される状態になる。
【００７１】
図１８は、時刻Ｔ２１において、書込みバッファ１２２に長さ１．５ＫＢのパケットＰ６の内、先頭から１ＫＢまでの部分Ｐ６ａが格納され、読出しバッファ１２５にパケットＰ４及びＰ５が格納された状態を示している。ここで、図１８の状態では、書込みバッファ蓄積量が１ＫＢであり、かつ、読出しバッファ蓄積可能量が「０」であるため、書込み一時バッファ１２２に記憶されている部分Ｐ６ａは、メモリ部１２９に転送させる。これは、図６のフローチャートに従って、ステップＳ１０でＹｅｓ及びステップＳ１１でＮｏとなり、ステップＳ１３の処理が行われることに相当する。
図１８の状態から、部分Ｐ６ａが書込みバッファ１２２からメモリ部１２９に転送され、また、パケットＰ６の内、部分Ｐ６ａを除いた部分Ｐ６ｂが書込みバッファ１２２に格納されると、図１９で示される状態となる。
【００７２】
図１９は、時刻Ｔ２２において、書込みバッファ１２２に部分Ｐ６ｂが格納され、メモリ部１２９に部分Ｐ６ａが格納され、かつ、読出しバッファ１２５にパケットＰ４及びＰ５が格納された状態を示している。切替制御部１３６は、メモリ部１２９に長さ１ＫＢの部分Ｐ６ａが格納されると、メモリ使用状態記憶部１３０に記憶されているメモリ使用量を「１」増加させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。また、書込み制御部１２３は、書込みバッファ１２２に部分Ｐ６ｂが格納されると、パケットＰ６全体のデータ長を演算単位長として、演算単位長記憶部１２７に記憶させる。
時刻Ｔ２２では、書込みバッファ蓄積量は０．５ＫＢ（＝１．５ＫＢ−１ＫＢ）、メモリ使用量は１ＫＢ、読出しバッファ蓄積可能量は「０」であるため、図６のフローチャートに従って、ステップＳ１０でＮｏ、ステップＳ１４でＹｅｓ及びステップＳ１５でＮｏとなり、書込みバッファ１２２からのデータ転送は行われず、部分Ｐ６ｂは書込みバッファ１２２に格納されたままとなる。さらに、読出しバッファ蓄積可能量は、「０」であるため、図７のフローチャートに従って、ステップＳ２０でＮｏとなり、メモリ部１２９からのデータ転送も行われず、部分Ｐ６ａはメモリ部１２９に記憶されたままとなる。
図１９の状態から、入力処理部１１０で処理された、長さ０．０６ＫＢのパケットＰ７が書込みバッファ１２２に格納されると、図２０で示される状態となる。
【００７３】
図２０は、時刻Ｔ２３において、書込みバッファ１２２に部分Ｐ６ｂ及びパケットＰ７が格納され、メモリ部１２９に部分Ｐ６ａが格納され、かつ、読出しバッファ１２５にパケットＰ４及びＰ５が格納された状態を示している。時刻Ｔ２３では、書込みバッファ蓄積量は、０．５６ＫＢ（＝１．５ＫＢ−１ＫＢ＋０．０６ＫＢ）、メモリ使用量は１ＫＢ、読出しバッファ蓄積可能量は「０」であるため、図６のフローチャートに従って、ステップＳ１０でＮｏ、ステップＳ１４でＹｅｓ及びステップＳ１５でＮｏとなり、書込みバッファ１２２からのデータ転送は行われず、部分Ｐ６ｂ及びパケットＰ７は書込みバッファ１２２に記憶されたままとなる。さらに、読出しバッファ蓄積可能量は「０」であるため、図７のフローチャートに従って、ステップＳ２０でＮｏとなり、メモリ部１２９からのデータ転送も行われず、部分Ｐ６ａはメモリ部１２９に格納されたままとなる。
図２０の状態から、長さ１ＫＢのパケットＰ４が読出しバッファ１２５から出力処理部１４０に出力されると、図２１で示される状態となる。
【００７４】
図２１は、時刻Ｔ２４において、書込みバッファ１２２に部分Ｐ６ｂ及びパケットＰ７が格納され、メモリ部１２９に部分Ｐ６ａが格納され、かつ、読出しバッファ１２５にパケットＰ５が格納された状態を示している。書込み制御部１２３は、書込みバッファ１２２に部分Ｐ６ｂが格納されると、パケットＰ６全体のデータ長を演算単位長として、演算単位長記憶部１２７に記憶させる。
時刻Ｔ２４では、書込みバッファ蓄積量が０．５６ＫＢ、メモリ部１２９のメモリ使用量が１ＫＢ、読出しバッファ蓄積可能量が１ＫＢであるため、図６のフローチャートに従って、ステップＳ１０でＮｏ、ステップＳ１４でＹｅｓ、ステップＳ１５でＹｅｓ及びステップＳ１６でＮｏとなり、書込みバッファ１２２からのデータ転送は行われず、部分Ｐ６ｂ及びパケットＰ７は書込みバッファ１２２に記憶されたままとなる。一方、読出しバッファ蓄積可能量が１ＫＢであるため、図７のフローチャートに従って、ステップＳ２０でＹｅｓ及びステップＳ２１でＮｏとなり、メモリ部１２９に格納されている部分Ｐ６ａは、読出しバッファ１２５に転送させる。例えば、メモリ転送制御部１３２は、メモリ部１２９に対して、連続する１ＫＢの読出し転送を実施する。メモリ転送制御部１３２は、メモリコントローラ部１２８を介して、メモリ部１２９へ１回のＡＣＴコマンドと、複数回のＲＥＡＤコマンドを発行して、メモリ部１２９から１ＫＢの部分Ｐ６ａを読み出す。ＲＥＡＤコマンド発行回数は、ＷＲＩＴＥコマンド発行回数と同様に求められる。例えば、バースト長が８、メモリのビット幅が１６ビットとすると、６４回のＲＥＡＤコマンドによりメモリ部１２９から部分Ｐ６ａが読み出される。
図２１の状態から、長さ１ＫＢの部分Ｐ６ａがメモリ部１２９から読出しバッファ１２５に転送されると、図２２で示される状態となる。
【００７５】
図２２は、時刻Ｔ２５において、書込みバッファ１２２に部分Ｐ６ｂ及びパケットＰ７が格納され、読出しバッファ１２５に部分Ｐ６ａ及びパケットＰ５が格納された状態を示している。切替制御部１３６は、メモリ部１２９から長さ１ＫＢの部分Ｐ６ａが読出しバッファ１２５に転送されたので、メモリ使用状態記憶部１３０に記憶されているメモリ使用量を「１」減算させる。これにより、メモリ使用量により示される状態は、「メモリ転送データが記憶されていない」状態から「メモリ転送データが記憶されている」状態に遷移する。また、読出し制御部１２６は、部分Ｐ６ａを読出しバッファ１２５に格納すると、演算単位長記憶部１２７に演算単位長を問い合わせることで、パケットＰ６を出力処理部１４０に出力する際の演算単位長を取得する。
時刻Ｔ２５では、書込みバッファ蓄積量が０．５６ＫＢ、読出しバッファ蓄積可能量が「０」であるため、図６のフローチャートにおいて、ステップＳ１０でＮｏ、ステップＳ１４でＹｅｓ、ステップＳ１５でＮｏとなり、書込みバッファ１２２からのデータ転送は行われず、部分Ｐ６ｂ及びパケットＰ７は書込みバッファ１２２に記憶されたままとなる。
図２２の状態から、長さ１ＫＢのパケットＰ５が読出しバッファ１２５から出力処理部１４０に出力されると、図２３で示される状態となる。
【００７６】
図２３は、時刻Ｔ２６において、書込みバッファ１２２に部分Ｐ６ｂ及びパケットＰ７が格納され、かつ、読出しバッファ１２５に部分Ｐ６ａが格納された状態を示している。時刻Ｔ２６では、書込みバッファ蓄積量が０．５６ＫＢ、メモリ使用量が「０」、読出しバッファ蓄積可能量が１ＫＢであるため、書込み一時バッファ１２２に格納されている部分Ｐ６ｂ及びパケットＰ７は、読出しバッファ１２５に転送させる。これは、図６のフローチャートにおいて、ステップＳ１０でＮｏ、ステップＳ１４でＹｅｓ、ステップＳ１５でＹｅｓ及びステップＳ１６でＹＥＳとなり、ステップＳ１７の処理が実行されることに相当する。
図２３の状態から、部分Ｐ６ｂ及びパケットＰ７が書込みバッファ１２２から読出しバッファ１２５に転送されると、図２４で示される状態となる。
【００７７】
図２４は、時刻Ｔ２７において、読出しバッファ１２５に長さ１．５ＫＢのパケットＰ６及び長さ０．０６ＫＢのパケットＰ７が格納された状態を示している。読出し制御部１２６は、パケットＰ７を読出しバッファ１２５に格納すると、演算単位長記憶部１２７に演算単位長を問い合わせることで、パケットＰ７を出力処理部１４０に出力する際の演算単位長を取得する。
【００７８】
図２５は、図１７〜図２４で示される状態における、入力処理部１１０からメモリ装置１２０への入力データの入力タイミング、書込みバッファ蓄積量の変化、メモリ部１２９に記憶されたデータ量であるメモリ蓄積量の変化、読出しバッファ蓄積可能量の変化、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置１２０から出力処理部１４０への入力データの出力タイミングを示す概略図である。図２５に示されている時刻Ｔ２０〜Ｔ２７は、図１７〜図２４に示されている時刻Ｔ２０〜Ｔ２７と同じ時刻である。なお、図２５は、ＷＲＩＴＥコマンド及びＲＥＡＤコマンドの発行回数を簡略化して示している。
【００７９】
時刻Ｔ２０において、入力処理部１１０よりメモリ装置１２０へのパケットＰ６の入力が開始されると、入力されたパケットＰ６は書込みバッファ１２２に格納されるため、時刻Ｔ２０以降、書込みバッファ蓄積量は増加する。このとき、メモリ部１２９にはデータが記憶されておらず、メモリ蓄積量は「０」である。また、読出しバッファ１２５には、それぞれ１ＫＢのパケットＰ４及びＰ５が記憶されているため、読出しバッファ蓄積可能量は「０」である。なお、パケットＰ６の演算単位長ＣＵＬは１．５ＫＢであり、また、メモリ装置１２０におけるメモリ転送単位長ＭＵＬは１ＫＢである。
【００８０】
時刻Ｔ２１において、パケットＰ６の内、先頭から１ＫＢまでの部分Ｐ６ａが書込みバッファ１２２に格納されると、書込みバッファ蓄積量は、１ＫＢとなる。そして、部分Ｐ６ａは、書込みバッファ１２２よりメモリ部１２９に転送される。このとき、メモリ転送制御部１３２は、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドをメモリ部１２９に発行する。従って、時刻Ｔ２１以降、書込みバッファ蓄積量は減少するが、パケットＰ６の残りの部分Ｐ６ｂが格納されるため、書込みバッファ蓄積量は「０」にはならない。さらに、時刻Ｔ２１以降、メモリ蓄積量は増加する。
【００８１】
時刻Ｔ２２において、部分Ｐ６ａが全てメモリ部１２９に格納されると、書込みバッファ蓄積量は、パケットＰ６のデータ長から部分Ｐ６ａのデータ長を減算したもの（１．５−１＝０．５ＫＢ）となる。また、メモリ蓄積量は１ＫＢとなる。
【００８２】
そして、時刻Ｔ２２以降において、入力処理部１１０よりメモリ装置１２０へのパケットＰ７の入力が開始されると、入力されたパケットＰ７は書込みバッファ１２２に格納されるため、書込みバッファ蓄積量は増加する。
【００８３】
時刻Ｔ２３において、パケットＰ７が全て書込みバッファ１２２に格納されると、書込みバッファ蓄積量は、部分Ｐ６ｂのデータ長にパケットＰ７のデータ長を加算したもの（０．５＋０．０６＝０．５６ＫＢ）となる。
そして、時刻Ｔ２３以降において、メモリ装置１２０から出力処理部１４０にパケットＰ４の出力が開始されると、パケットＰ４は読出しバッファ１２５から出力されるので、読出しバッファ１２５の蓄積量は減少して、読出しバッファ蓄積可能量は増加する。
【００８４】
時刻Ｔ２４において、パケットＰ４が全て出力されると、読出しバッファ蓄積可能量は１ＫＢとなる。そして、部分Ｐ６ａは、メモリ部１２９から読出しバッファ１２５に転送される。このとき、メモリ転送制御部１３２は、１回のＡＣＴコマンドと、複数回のＲＥＡＤコマンドをメモリ部１２９に発行する。このため、時刻Ｔ２４以降、メモリ蓄積量は減少する。一方、時刻Ｔ２４以降、メモリ部１２９から転送された部分Ｐ６ａが読出しバッファ１２５に格納されるため、読出しバッファ１２５の蓄積量が増加して、読出しバッファ蓄積可能量は減少する。
【００８５】
時刻Ｔ２５において、部分Ｐ６ａが全て読出しバッファ１２５に格納されると、メモリ蓄積量は「０」となり、また、読出しバッファ蓄積可能量も「０」となる。
そして、時刻Ｔ２５以降において、メモリ装置１２０から出力処理部１４０にパケットＰ５の出力が開始されると、パケットＰ５は読出しバッファ１２５から出力されるので、読出しバッファ蓄積可能量は増加する。
【００８６】
時刻Ｔ２６において、パケットＰ５が全て出力されると、読出しバッファ蓄積可能量は１ＫＢとなる。そして、部分Ｐ６ｂ及びパケットＰ７は、書込みバッファ１２２から読出しバッファ１２５に転送される。このため、時刻Ｔ２６以降、書込みバッファ蓄積量は減少し、読出しバッファ蓄積量が増加して、読出しバッファ蓄積可能量は減少する。
【００８７】
時刻Ｔ２７において、部分Ｐ６ｂ及びパケットＰ７が全て読出しバッファ１２５に格納されると、書込みバッファ蓄積量及びメモリ使用量は、ともに「０」となる。また、読出しバッファ蓄積可能量は、読出しバッファ１２５の蓄積最大値から、パケットＰ６及びパケットＰ７のデータ長を減算したもの｛２−（１．５＋０．０６）＝０．４４ＫＢ｝となる。
【００８８】
以上のように、本実施の形態によれば、信号処理装置１００が処理するデータの演算単位長に拘わらず、メモリ部１２９に転送するデータのメモリ転送単位長をページサイズと等しい長さに固定することができるため、メモリ部１２９に書き込みを行う際及びメモリ部１２９から読出しを行う際のアドレス設定回数を減らすことができる。これにより、メモリ部１２９へのデータ転送効率が向上するため、より低い動作周波数のＤＤＲ−ＳＤＲＡＭをメモリ部１２９として使用することができ、メモリ部１２９にかかるコスト及び消費電力を下げることができる。例えば、処理するデータ毎にメモリ部１２９にアクセスする場合には、最も小さい演算単位長（０．０６ＫＢ）のパケットが入力されるたびにＡＣＴコマンドが発行されるとすると、１７パケット、即ち、約１ＫＢのデータを処理する際に、本実施の形態に比べて、（１ＫＢ÷０．０６ＫＢ−１）＝１６回分の上位アドレス設定期間が余分に必要となる。
【００８９】
また、本実施の形態によれば、メモリ転送単位長を大きくしても、メモリ部１２９を経由せずに、書込みバッファ１２２から読出しバッファ１２５にデータを転送することができるため、メモリ転送単位長となるまでデータを保持しておくことにより発生する遅延をなくし、データの装置内遅延を少なくすることができる。
【００９０】
本実施の形態における入力処理部１１０及び出力処理部１４０で施される処理は、パケットのヘッダの削除、追加、付替え、エラー訂正等であるが、これらの処理に限定されない。また、メモリ部１２９のメモリ転送単位長は、ＤＤＲ−ＳＤＲＡＭの転送効率を最も高くするため、ページサイズと等しくするのが望ましい。一方、書込みバッファ１２２及び読出しバッファ１２５は、ＳＲＡＭやフリップフロップなどのランダムアクセス可能なメモリにより構成することで、その最大蓄積量は、メモリ転送単位長の自然数倍である必要はなくなる。また、メモリ部１２９へのデータの書き込み及び読み出しを行うかどうかを判断するには、メモリ使用量の他に、書込みバッファ蓄積量及び読出しバッファ蓄積可能量も判断されるので、書込みバッファ１２２と読出しバッファ１２５の最大蓄積量を等しくする必要はない。
【００９１】
実施の形態１においては、動作例１のように、演算単位長が予め決まっている場合には、読出し制御部１２６は、読出しバッファ１２５から読み出す入力データのデータ長を固定のものとすることができるため、演算単位長記憶部１２７を設ける必要はない。また、切換制御部１３６も、書込みバッファ蓄積量により入力データの格納が完了したか否かを認識することができるため、書込み制御部１２３は演算単位蓄積通知を行う必要はない。
【００９２】
実施の形態２．
図２６は、本発明における実施の形態２に係る信号処理装置２００の構成を示すブロック図である。信号処理装置２００は、複数の処理系統のそれぞれについて、転送効率の高いメモリアクセスを実現する場合に、メモリ部を経由することにより発生する装置内遅延を少なくする。さらに、信号処理装置２００は、複数の処理系統間でメモリ装置２２０を共有することにより、装置規模が小さくなる。
【００９３】
信号処理装置２００は、複数の入力処理部２１０Ａ、２１０Ｂ、２１０Ｃ（各々を特に区別しない場合には、入力処理部２１０という）と、メモリ装置２２０と、複数の出力処理部２４０Ａ、２４０Ｂ、２４０Ｃ（各々を特に区別しない場合には、出力処理部２４０という）とを備える。メモリ装置２２０は、複数の処理系統、例えば、入力処理部２１０Ａ及び出力処理部２４０Ａを含む処理系統Ａ、入力処理部２１０Ｂ及び出力処理部２４０Ｂを含む処理系統Ｂ、並びに、入力処理部２１０Ｃ及び出力処理部２４０Ｃを含む処理系統Ｃで使用される。例えば、入力処理部２１０Ａからメモリ装置２２０に入力された入力データは、メモリ装置２２０から出力処理部２４０Ａに出力され、入力処理部２１０Ｂからメモリ装置２２０に入力された入力データは、メモリ装置２２０から出力処理部２４０Ｂに出力され、入力処理部２１０Ｃからメモリ装置２２０に入力された入力データは、メモリ装置２２０から出力処理部２４０Ｃに出力される。
【００９４】
入力処理部２１０は、データに対して所定の処理を施し、処理後のデータを固定長又は可変長の入力データとして、メモリ装置２２０に入力する。ここで、各々の入力処理部２１０Ａ、２１０Ｂ、２１０Ｃが行う処理は、同じ処理であってもよく、また、異なる処理であってもよい。
また、メモリ装置２２０から出力処理部２４０に出力される入力データは、出力処理部２４０で所定の処理が施されて出力データとされる。出力処理部２４０は、出力データを出力する。ここで、各々の出力処理部２４０Ａ、２４０Ｂ、２４０Ｃが行う処理は、同じ処理であってもよく、また、異なる処理であってもよい。また、出力処理部２４０の出力が、別の処理系統の入力処理部２１０に入力されて、続けて別系統の処理が施される構成であってもよい。
【００９５】
メモリ装置２２０は、書込みバッファ部２２１と、読出しバッファ部２２４と、演算単位長記憶部２２７と、メモリコントローラ部１２８と、メモリ部１２９と、メモリ使用状態記憶部２３０と、転送制御切替部２３１とを備える。メモリ装置２２０は、書込みバッファ部２２１、読出しバッファ部２２４、演算単位長記憶部２２７、メモリ使用状態記憶部２３０及び転送制御切替部２３１において、実施の形態１におけるメモリ装置１２０と異なっている。なお、本実施の形態においても、メモリ転送単位長は、１ＫＢである。また、本実施の形態においては、メモリ部１２９の記憶領域を、処理系統毎に分けておき、処理系統毎に分けられた領域に、処理系統毎のメモリ転送データを記憶することで、処理系統毎のメモリ転送データを分けて管理するようにしてもよい。
【００９６】
書込みバッファ部２２１は、書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃ（各々を特に区別しない場合には、書込みバッファ２２２という）と、書込み制御部２２３とを備え、入力処理部２１０から与えられた入力データを一時的に記憶して、この入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを転送制御切替部２３１に与える。
本実施の形態では、メモリ装置２２０が複数の処理系統で使用されるため、書込みバッファ２２２Ａは、入力処理部２１０Ａから入力された入力データを一時的に記憶し、書込みバッファ２２２Ｂは、入力処理部２１０Ｂから入力された入力データを一時的に記憶し、書込みバッファ２２２Ｃは、入力処理部２１０Ｃから入力された入力データを一時的に記憶する。
【００９７】
書込み制御部２２３は、書込みバッファ２２２を制御する。また、書込み制御部２２３は、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃに記憶されている入力データの各々の総データ量を各々示す書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｂ、ＷＳＭ−Ｃを転送制御切替部２３１に通知する。また、書込み制御部２２３は、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃにデータを格納することのできる各々の空きデータ量を各々示す書込みバッファ蓄積可能量ＷＰＭ−Ａ、ＷＰＭ−Ｂ、ＷＰＭ−Ｃを転送制御切替部２３１に与える。さらに、書込み制御部２２３は、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃに１つの入力データの格納が完了すると、転送制御切替部２３１に演算単位蓄積通知ＣＵＮ−Ａ、ＣＵＮ−Ｂ、ＣＵＮ−Ｃを行う。そして、書込み制御部２２３は、処理系統毎に、入力処理部２１０から与えられた各々の入力データのデータ長を演算単位長として、演算単位長記憶部２２７に記憶させる。
【００９８】
読出しバッファ部２２４は、読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃ（各々を特に区別しない場合には、読出しバッファ２２５という）と、読出し制御部２２６とを備え、転送制御切替部２３１から与えられたメモリ転送データ及びバッファ転送データを一時的に記憶し、これらのデータから入力データを抽出して出力処理部１４０に与える。
本実施の形態では、メモリ装置２２０が複数の処理系統で使用されるため、読出しバッファ２２５Ａは、入力処理部２１０Ａから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶する。同様に、読出しバッファ２２５Ｂは、入力処理部２１０Ｂから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶し、読出しバッファ２２５Ｃは、入力処理部２１０Ｃから入力された入力データの少なくとも一部を含むメモリ転送データ及びバッファ転送データを一時的に記憶する。
【００９９】
読出し制御部２２６は、読出しバッファ２２５を制御する。例えば、読出しバッファ制御部２２６は、演算単位長記憶部２２７から、処理系統毎に入力データの演算単位長を取得して、この演算単位長の入力データを各々の読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃより読み出して、各々の出力処理部２４０Ａ、２４０Ｂ、２４０Ｃに出力する。また、読出し制御部２２６は、各々の読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃにデータを格納することのできる空きデータ量を各々示す読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃを転送制御切替部２３１に与える。さらに、読出し制御部２２６は、各々の読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃに格納されているデータの総データ量を各々示す読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃを転送制御切替部２３１に与える。
【０１００】
演算単位長記憶部２２４は、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃに格納された各々の入力データのデータ長を演算単位長として、処理系統毎に記憶する。また、演算単位長記憶部２２４は、読出し制御部２２６からの問い合わせに応じて、読出し制御部２２６に処理系統毎の入力データの演算単位長を与える。例えば、演算単位長記憶部２２４は、処理系統毎に、書込み制御部２２３から演算単位長が与えられた順番に従って、読出し制御部２２６にこの演算単位長を与える。このようにすることで、各々の入力処理部２１０Ａ、２１０Ｂ、２１０Ｃから入力データが入力された順番で、この入力データを各々の出力処理部２４０Ａ、２４０Ｂ、２４０Ｃに出力することができるようになる。
【０１０１】
メモリ使用状態記憶部２３０は、処理系統毎に、メモリ部１２９に各々の処理系統におけるメモリ転送データが記憶されているか否かを示すメモリ使用状態を記憶する。本実施の形態においては、メモリ使用状態として、各々の処理系統におけるメモリ使用量が用いられる。従って、特定の処理系統におけるメモリ使用量が「０」である場合には、この処理系統におけるメモリ転送データが記憶されていないことを示す。また、特定の処理形態におけるメモリ使用量が「０」ではない場合には、この処理系統におけるメモリ転送データが記憶されていることを示す。なお、メモリ使用量については、転送制御切替部２３１により更新される。
【０１０２】
転送制御切替部２３１は、メモリ転送制御部２３２と、バッファ転送制御部２３３と、第１切替部２３４と、第２切替部２３５と、切替制御部２３６とを備え、書込みバッファ部２２１、メモリ部１２９及び読出しバッファ部２２４に記憶されるデータの流れを制御する。
【０１０３】
メモリ転送制御部２３２は、切替制御部２３６からの指示に応じて、書込みバッファ部２２１よりメモリ転送単位長のデータをメモリ転送データとして取得して、メモリコントローラ部１２８を介して、このメモリ転送データをメモリ部１２９に記憶させる。そして、メモリ転送制御部２３２は、メモリ転送データのメモリ部１２９への転送が完了した場合には、切替制御部２３６にメモリ書込み完了通知ＭＷＥを与える。また、メモリ転送制御部２３２は、切替制御部２３６からの指示に応じて、メモリコントローラ部１２８を介して、メモリ部１２９よりメモリ転送データを読み出して、このメモリ転送データを読出しバッファ部２３０に記憶させる。そして、メモリ転送制御部２３２は、メモリ転送データの読出しバッファ部２３０への転送が完了した場合には、切替制御部２３６にメモリ読出し完了通知ＭＲＥを与える。
バッファ転送制御部２３３は、切替制御部２３６からの指示に応じて、書込みバッファ部２２１に格納されている全ての入力データをバッファ転送データとして取得して、このバッファ転送データを読出しバッファ部２２４に記憶させる。ここで、バッファ転送制御部２３３がバッファ転送データとして取得する入力データは、書込みバッファ部２２１に格納が完了しているものであって、バッファ転送制御部１３３は、まだ格納途中の入力データについては、バッファ転送データとして取得しない。そして、バッファ転送制御部２３３は、バッファ転送データの読出しバッファ部２２４への転送が完了した場合には、バッファ転送完了通知ＢＴＥを切替制御部２３６に与える。
【０１０４】
第１切替部２３４は、切替制御部２３６からの指示に応じて、書込みバッファ部２２１から入力されるデータの出力先を、メモリ転送制御部２３２及びバッファ転送制御部２３３の間で切り替える。
第２切替部２３５は、切替制御部２３６からの指示に応じて、読出しバッファ部２２４に出力するデータの入力元を、メモリ転送制御部２３２及びバッファ転送制御部２３３の間で切り替える。
【０１０５】
切替制御部２３６は、メモリ転送制御部２３２、バッファ転送制御部２３３、第１切替部２３４及び第２切替部２３５を制御することにより、メモリ装置２２０内におけるデータ転送を制御する。ここで、切替制御部２３６は、書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｂ、ＷＳＭ−Ｃと、書込みバッファ蓄積可能量ＷＰＭ−Ａ、ＷＰＭ−Ｂ、ＷＰＭ−Ｃと、読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃと、読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃと、メモリ使用量ＭＵＭ−Ａ、ＭＵＭ−Ｂ、ＭＵＭ−Ｃと、メモリ書込み完了通知ＭＷＥと、メモリ読出し完了通知ＭＲＥと、バッファ転送完了通知ＢＴＥと、に基づいて、メモリ装置２２０内におけるデータの流れを制御する。また、切替制御部２３６は、メモリ使用状態記憶部２３０に記憶されているメモリ使用量ＭＵＭ−Ａ、ＭＵＭ−Ｂ、ＭＵＭ−Ｃを管理する。
【０１０６】
図２７は、切替制御部２３６の構成を示すブロック図である。切替制御部２３６は、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃ（各々を特に区別しない場合には、転送要求発行部２５０という）と、メモリ書込み転送選択部２５１と、メモリ読出し転送選択部２５２と、バッファ転送選択部２５３と、転送処理部２５４とを備える。ここで、転送要求発行部２５０Ａは、処理系統Ａの処理を行い、転送要求発行部２５０Ｂは、処理系統Ｂの処理を行い、転送要求発行部２５０Ｃは、処理系統Ｃの処理を行う。
【０１０７】
各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、書込み制御部２２３より、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃにおける書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｂ、ＷＳＭ−Ｃ及び演算単位蓄積通知ＣＵＮ−Ａ、ＣＵＮ−Ｂ、ＣＵＮ−Ｃを取得する。また、各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、読出し制御部２２６より、各々の読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃにおける読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃを取得する。さらに、各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、メモリ使用状態記憶部２３０より、各々の処理系統におけるメモリ使用量ＭＵＭ−Ａ、ＭＵＭ−Ｂ、ＭＵＭ−Ｃを取得する。
そして、各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、取得したこれらの情報により、各々の書き込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃに記憶されている入力データをメモリ部１２９に転送する条件が満たされると判断した場合には、メモリ書込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃをメモリ書込み要求選択部２５１に出力する。また、各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、取得したこれらの情報により、各々の書き込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃに記憶されている入力データを読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃに転送する条件が満たされると判断した場合には、バッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃをバッファ転送選択部２５３に出力する。さらに、各々の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、取得したこれらの情報により、メモリ部１２９に記憶されている処理系統毎のメモリ転送データを読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃに転送する条件が満たされると判断した場合には、メモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃをメモリ読出し転送選択部２５２に出力する。
【０１０８】
メモリ書込み転送選択部２５１は、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃより、メモリ書込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃを受けると、これらの要求から１つの要求を選択して、選択した要求に対応する処理系統を特定したメモリ書込み選択結果ＷＳＲ−Ａ、ＷＳＲ−Ｂ、ＷＳＲ−Ｃを転送処理部２５４に与える。例えば、メモリ書込み転送選択部２５１は、メモリ転送制御部２３２が書込みバッファ２２２からメモリ部１２９にメモリ転送データの転送を行っていない場合には、最初に受けたメモリ書込み要求を選択する。一方、メモリ書込み転送選択部２５１は、メモリ転送制御部２３２が書込みバッファ２２２からメモリ部１２９にメモリ転送データの転送を行っている場合には、メモリ転送制御部２３２からメモリ転送完了通知ＭＷＥを受けた際に、メモリ書き込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃを１つ受けているときは、この要求を選択する。また、この際に、メモリ書き込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃを複数受けているときは、メモリ書込み転送選択部２５１は、書込みバッファ蓄積可能量ＷＰＭ−Ａ、ＷＰＭ−Ｂ、ＷＰＭ−Ｃが最も小さい処理系統の要求を選択する。
【０１０９】
メモリ書込み選択結果ＷＳＲ−Ａ、ＷＳＲ−Ｂ、ＷＳＲ−Ｃを受けた転送処理部２５４は、この結果で特定される処理系統の書込みバッファ２２２からデータを読み出して、メモリ部１２９に転送する指示であるメモリ書込み指示を、第１切替部２３４及びメモリ転送制御部２３２に与える。
メモリ書込み選択結果ＷＳＲ−Ａ、ＷＳＲ−Ｂ、ＷＳＲ−Ｃは、転送処理部２５４に与えられるとともに、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃにフィードバックされる。メモリ書込み選択結果ＷＳＲ−Ａ、ＷＳＲ−Ｂ、ＷＳＲ−Ｃで特定されている処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、要求を出す条件が満たされなくなると、出力中のメモリ書込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃを取り下げる。メモリ書込み選択結果ＷＳＲ−Ａ、ＷＳＲ−Ｂ、ＷＳＲ−Ｃで特定されていない処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、メモリ書込み要求ＷＴＲ−Ａ、ＷＴＲ−Ｂ、ＷＴＲ−Ｃを出力し続ける。
【０１１０】
メモリ読出し転送選択部２５２は、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃより、メモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを受けると、これらの要求から１つの要求を選択して、選択した要求に対応する処理系統を特定したメモリ読出し選択結果ＲＳＲ−Ａ、ＲＳＲ−Ｂ、ＲＳＲ−Ｃを転送処理部２５４に与える。例えば、メモリ読出し転送選択部２５２は、メモリ転送制御部２３２が、メモリ部１２９から読出しバッファ２２５にメモリ転送データの転送を行っていない場合には、最初に受けたメモリ読出し要求を選択する。一方、メモリ読出し転送選択部２５２は、メモリ転送制御部２３２がメモリ部１２９から読出しバッファ２２５にメモリ転送データの転送を行っている場合には、メモリ転送制御部２３２からメモリ読出し完了通知ＭＲＥを受けた際に、メモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを１つ受けているときは、この要求を選択する。また、この際に、メモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを複数受けているときは、メモリ読出し転送選択部２５２は、読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃが最も小さい処理系統の要求を選択する。
【０１１１】
メモリ読出し選択結果ＲＳＲ−Ａ、ＲＳＲ−Ｂ、ＲＳＲ−Ｃを受けた転送処理部２５４は、メモリ部１２９からデータを読み出して、この結果で特定される処理系統の読出しバッファ２２５にデータを転送する指示であるメモリ読出し指示を、メモリ転送制御部２３２及び第２切替部２３５に与える。
メモリ読出し選択結果ＲＳＲ−Ａ、ＲＳＲ−Ｂ、ＲＳＲ−Ｃは、転送処理部２５４に与えられるとともに、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃにフィードバックされる。メモリ読出し選択結果ＲＳＲ−Ａ、ＲＳＲ−Ｂ、ＲＳＲ−Ｃで特定された処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、要求を出す条件が満たされなくなると、出力中のメモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを取り下げる。メモリ読出し選択結果ＲＳＲ−Ａ、ＲＳＲ−Ｂ、ＲＳＲ−Ｃで特定されていない処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、メモリ読出し要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを出力し続ける。
【０１１２】
バッファ転送選択部２５３は、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃより、バッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃを受けると、これらの要求から１つの要求を選択して、選択した要求に対応する処理系統を特定したバッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃを転送処理部２５４に与える。例えば、バッファ転送選択部２５３は、バッファ転送制御部２３３が書込みバッファ２２２から読出しバッファ２２５にバッファ転送データの転送を行っていない場合には、最初に受けたバッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃを選択する。一方、バッファ転送選択部２５３は、バッファ転送制御部２３３が書込みバッファ２２２から読出しバッファ２２５にバッファ転送データの転送を行っている場合には、バッファ転送制御部２３３からバッファ転送完了通知ＢＴＥを受けた際に、バッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃを１つ受けているときは、この要求を選択する。また、この際に、バッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃを複数受けているときは、バッファ転送選択部２５３は、読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃが最も小さい処理系統の要求を選択する。
【０１１３】
バッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃを受けた転送処理部２５４は、この結果で特定される処理系統の書込みバッファ２２２からデータを読み出して、この結果で特定される処理系統の読出しバッファにデータを転送する指示であるバッファ転送指示を、バッファ転送制御部２３３、第１切替部２３４及び第２切替部２３５に与える。
バッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃは、転送処理部２５４に与えられるとともに、転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃにフィードバックされる。バッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃで特定された処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、要求を出す条件が満たされなくなると、出力中のバッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃを取り下げる。バッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃで特定されていない処理系統の転送要求発行部２５０Ａ、２５０Ｂ、２５０Ｃは、バッファ転送選択結果ＢＳＲ−Ａ、ＢＳＲ−Ｂ、ＢＳＲ−Ｃを出力し続ける。
【０１１４】
図２８は、転送要求発行部２５０Ａが、メモリ書込み要求又はバッファ転送要求を出力する際の処理を示すフローチャートである。なお、図２８では、転送要求発行部２５０Ａが行う処理を説明するが、転送要求発行部２５０Ｂ、２５０Ｃも、それぞれ書込みバッファ２２２Ｂ、２２２Ｃ、読出しバッファ２２５Ｂ、２２５Ｃを用いて、同様の処理を行う。
【０１１５】
転送要求発行部２５０Ａは、書込みバッファ２２２Ａの書込みバッファ蓄積量ＷＳＭ−Ａがメモリ転送単位長以上であるか判断する（Ｓ３０）。そして、転送要求発行部２５０Ａは、書込みバッファ蓄積量ＷＳＭ−Ａがメモリ転送単位長以上である場合（ステップＳ３０でＹｅｓ）には、ステップＳ３１の処理に進み、書込みバッファ蓄積量ＷＳＭ−Ａがメモリ転送単位長未満である場合（ステップＳ３０でＮｏ）には、ステップＳ３４の処理に進む。
【０１１６】
ステップＳ３１では、転送要求発行部２５０Ａは、読出しバッファ２２５Ａの読出しバッファ蓄積可能量ＲＰＭ−Ａがメモリ転送単位長以上であるか否かを判断する。そして、転送要求発行部２５０Ａは、読出しバッファ蓄積可能量ＲＰＭ−Ａがメモリ転送単位長以上である場合（ステップＳ３１でＹｅｓ）には、ステップＳ３２の処理に進み、読出しバッファ蓄積可能量ＲＰＭ−Ａがメモリ転送単位長未満である場合（ステップＳ３１でＮｏ）には、ステップＳ３３の処理に進む。
【０１１７】
ステップＳ３２では、転送要求発行部２５０Ａは、メモリ使用状態記憶部２３０より処理系統Ａのメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。転送要求発行部２５０Ａは、メモリ使用量が「０」である場合（ステップＳ３２でＹｅｓ）、言い換えれば、メモリ部１２９に処理系統Ａのメモリ転送データが記憶されていない場合には、ステップＳ３７の処理に進み、メモリ使用量が「０」ではない場合（ステップＳ３２でＮｏ）、言い換えれば、メモリ部１２９に処理系統Ａのメモリ転送データが記憶されている場合には、ステップＳ３３の処理に進む。
【０１１８】
ステップＳ３３では、転送要求発行部２５０Ａは、メモリ書込み転送選択部２５１に対して、メモリ書込み要求ＷＴＲ−Ａを与える。
【０１１９】
一方、ステップＳ３０で、書込みバッファ蓄積量ＷＳＭ−Ａがメモリ転送単位長未満である場合（ステップＳ３０でＮｏ）には、ステップＳ３４の処理に進み、ステップＳ３４では、転送要求発行部２５０Ａは、書込みバッファ２２２Ａにおける書き込みバッファ蓄積量ＷＳＭ−Ａが演算単位長以上であるか否かを判断する。言い換えると、転送要求発行部２５０Ａは、書込みバッファ２２２Ａに格納が完了した入力データが１つ以上あるか否かを判断する。例えば、転送要求発行部２５０Ａは、書込み制御部２２３から送られてくる演算単位蓄積通知ＣＵＮ−Ａにより、書込みバッファ２２２Ａに格納が完了した入力データが１つ以上あるか否かを判断することができる。そして、転送要求発行部２５０Ａは、書き込みバッファ蓄積量ＷＳＭ−Ａが演算単位長以上である場合（ステップＳ３４でＹｅｓ）には、ステップＳ３５の処理に進み、書き込みバッファ蓄積量ＷＳＭ−Ａが演算単位長未満である場合（ステップＳ３４でＮｏ）には、書込みバッファ２２２Ａからのデータ転送を行わずに、ステップＳ３０の処理に戻る。
【０１２０】
ステップＳ３５では、転送要求発行部２５０Ａは、読出しバッファ２２５Ａの読出しバッファ蓄積可能量ＲＰＭ−Ａが書込みバッファ２２２Ａの書込みバッファ蓄積量ＷＳＭ−Ａ以上であるか否かを判断する。そして、転送要求発行部２５０Ａは、読出しバッファ蓄積可能量ＲＰＭ−Ａが書込みバッファ蓄積量ＷＳＭ−Ａ以上である場合（ステップＳ３５でＹｅｓ）には、ステップＳ３６の処理に進み、読出しバッファ蓄積可能量ＲＰＭ−Ａが書込みバッファ蓄積量ＷＳＭ−Ａ未満である場合（ステップＳ３５でＮｏ）には、書込みバッファ２２２Ａからのデータ転送を行わずに、ステップＳ３０の処理に戻る。
【０１２１】
ステップＳ３６では、転送要求発行部２５０Ａは、メモリ使用状態記憶部２３０より処理系統Ａのメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。転送要求発行部２５０Ａは、メモリ使用量が「０」である場合（ステップＳ３６でＹｅｓ）には、ステップＳ３７の処理に進み、メモリ使用量が「０」ではない場合（ステップＳ３６でＮｏ）には、書込みバッファ２２２Ａからのデータ転送を行わずに、ステップＳ３０の処理に戻る。
【０１２２】
ステップＳ３７では、転送要求発行部２５０Ａは、バッファ転送選択部２５３にバッファ転送要求ＢＴＲ−Ａを与える。
【０１２３】
図２９は、転送要求発行部２５０Ａがメモリ読出し要求を出力する際の処理を示すフローチャートである。なお、図２９では、転送要求発行部２５０Ａが行う処理を説明するが、転送要求発行部２５０Ｂ、２５０Ｃも、それぞれ読出しバッファ２２５Ｂ、２３１Ｃを用いて、同様の処理を行う。
【０１２４】
まず、転送要求発行部２５０Ａは、読出しバッファ２２５Ａの読出しバッファ蓄積可能量ＲＰＭ−Ａがメモリ転送単位長以上であるか否かを判断する（Ｓ４０）。そして、転送要求発行部２５０Ａは、読出しバッファ蓄積可能量ＲＰＭ−Ａがメモリ転送単位長以上である場合（ステップＳ４０でＹｅｓ）には、ステップＳ４１の処理に進む。
【０１２５】
ステップＳ４１では、転送要求発行部２５０Ａは、メモリ使用状態記憶部２３０より処理系統Ａのメモリ使用量を取得して、メモリ使用量が「０」であるか否かを判断する。転送要求発行部２５０Ａは、メモリ使用量が「０」である場合（ステップＳ４１でＹｅｓ）、言い換えれば、メモリ部１２９に処理系統Ａのメモリ転送データが記憶されていない場合には、ステップＳ４０の処理に戻り、メモリ使用量が「０」ではない場合（ステップＳ４１でＮｏ）、言い換えれば、メモリ部１２９に処理系統Ａのメモリ転送データが記憶されている場合には、ステップＳ４２の処理に進む。
【０１２６】
ステップＳ４２では、転送要求発行部２５０Ａは、メモリ読出し転送選択部２５２にメモリ読出し要求ＲＴＲ−Ａを与える。
【０１２７】
図３０は、書込みバッファ２２２に格納されたデータをメモリ部１２９に転送する際の、入力処理部２１０からメモリ装置２２０への入力データの入力タイミング、書込みバッファ蓄積量の変化、書込みバッファ蓄積可能量の変化、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、及び、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミングを示す概略図である。なお、図３０は、ＷＲＩＴＥコマンド及びＲＥＡＤコマンドの発行回数を簡略化して示している。また、図３０では、時刻Ｔ３０において、書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｂ、ＷＳＭ−Ｃ及び図示していない読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃは、何れも「０」、言い換えると、書込みバッファ２２２にはデータがなく、読出しバッファ２２５には空きがない状態であるとする。また、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃの最大データ蓄積量は同一ではなく、時刻Ｔ３０における書込みバッファ蓄積可能量ＷＰＭ−Ａ、ＷＰＭ−Ｂ、ＷＰＭ−Ｃは、各々の書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃの最大データ蓄積量に等しいものとする。
【０１２８】
時刻Ｔ３０において、入力処理部２１０Ａで処理された入力データＤＡ１が、メモリ装置２２０に入力され、書込みバッファ２２２Ａに格納され始める。このため、時刻Ｔ３０以降、書込みバッファ２２２Ａの書込みバッファ蓄積量ＷＳＭ−Ａは、増加し、その書込みバッファ蓄積可能量ＷＰＭ−Ａは、減少する。
時刻Ｔ３１において、書込みバッファ２２２Ａの書込みバッファ蓄積量ＷＳＭ−Ａが、メモリ転送単位長である１ＫＢに達すると、転送要求発行部２５０Ａは、メモリ書込み転送選択部２５１にメモリ書込み要求ＷＴＲ−Ａを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＹｅｓ及びステップＳ３１でＮｏと判断され、ステップＳ３３の処理が実行されることに相当する。
ここで、時刻Ｔ３１における書込みバッファ２２２Ｂ、２２２Ｃの書込みバッファ蓄積量ＷＳＭ−Ｂ、ＷＳＭ−Ｃは、ともに「０」であり、転送要求発行部２５０Ｂ、２５０Ｃからメモリ書込み転送要求ＷＴＲ−Ｂ、ＷＴＲ−Ｃは、出力されないので、このようなメモリ書込み要求ＷＴＲ−Ａを受けたメモリ書込み転送選択部２５１は、処理系統Ａのメモリ書込み要求ＷＴＲ−Ａを選択して、処理系統Ａのメモリ書込み選択結果ＷＳＲ−Ａを転送処理部２５４に出力する。このようなメモリ書込み選択結果ＷＳＲ−Ａを受けた転送処理部２５４は、第１切替部２３４及びメモリ転送制御部２３２に、処理系統Ａのメモリ書込み指示を出す。このような指示を受けた第１切替部２３４は、書込みバッファ部２２１からのデータの出力先をメモリ転送制御部２３２に切り替える。さらに、このような指示を受けたメモリ転送制御部２３２は、書込みバッファ２２２Ａからメモリ転送単位長のデータをメモリ転送データとして読み出して、読み出したメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。ここで、メモリ部１２９には、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドが発行される。
【０１２９】
また、時刻Ｔ３１よりも後に、入力処理部２１０Ｂで処理された入力データＤＢ１が、メモリ装置２２０に入力され、書込みバッファ２２２Ｂに格納され始める。このため、書込みバッファ２２２Ｂの書込みバッファ蓄積量ＷＳＭ−Ｂは増加し、その書込みバッファ蓄積可能量ＷＰＭ−Ｂは減少する。
【０１３０】
時刻Ｔ３２において、書込みバッファ２２２Ｂの書込みバッファ蓄積量ＷＳＭ−Ｂが、１ＫＢに達すると、転送要求発行部２５０Ｂは、メモリ書込み転送選択部２５１にメモリ書込み要求ＷＴＲ−Ｂを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＹｅｓ及びステップＳ３１でＮｏと判断され、ステップＳ３３の処理が実行されることに相当する。このようなメモリ書込み要求ＷＴＲ−Ｂを受けたメモリ書込み転送選択部２５１は、処理系統Ａのメモリ転送データの転送が終了していないので、処理系統Ｂのメモリ書込み要求ＷＴＲ−Ｂの選択を行わない。
また、時刻Ｔ３２よりも後に、入力処理部２１０Ｃで処理された入力データＤＣ１が、メモリ装置２２０に入力され、書込みバッファ２２２Ｃに格納され始める。このため、書込みバッファ２２２Ｃの書込みバッファ蓄積量ＷＳＭ−Ｃは増加し、その書込みバッファ蓄積可能量ＷＰＭ−Ｃは減少する。
【０１３１】
時刻Ｔ３３において、書込みバッファ２２２Ａよりメモリ部１２９に１ＫＢのデータの転送が完了すると、書込みバッファ蓄積量ＷＳＭ−Ａは、１ＫＢ減少して、時刻Ｔ３１〜Ｔ３３の間に書込みバッファ２２２Ａに新たに格納されたデータ量となる。転送要求発行部２５０Ａは、時刻Ｔ３３において、書込みバッファ蓄積量ＷＳＭ−Ａが１ＫＢを下回ると、メモリ書込み要求ＷＴＲ−Ａを取り下げる。このとき、転送要求発行部２５０Ａは、メモリ使用状態記憶部２３０に記憶されている処理系統Ａのメモリ使用量に「１」を加算する。
【０１３２】
時刻Ｔ３３において、書込みバッファ２２２Ｃの書込みバッファ蓄積量ＷＳＭ−Ｃが、１ＫＢに達すると、転送要求発行部２５０Ｃは、メモリ書込み転送選択部２５１にメモリ書込み要求ＷＴＲ−Ｃを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＹｅｓ及びステップＳ３１でＮｏと判断され、ステップＳ３３の処理が実行されることに相当する。
時刻Ｔ３３では、書込みバッファ２２２Ａよりメモリ部１２９に１ＫＢのデータの転送が完了するため、メモリ転送制御部２３２からメモリ転送完了通知ＭＷＥがメモリ転送選択部２５１に与えられる。そして、メモリ書込み転送選択部２５１は、メモリ書込み要求ＷＴＲ−Ｃと、メモリ書込み要求ＷＴＲ-Ｂとの間で選択を行う。時刻Ｔ３３においては、処理系統Ｃの書込みバッファ蓄積可能量ＷＰＭ−Ｃの方が、処理系統Ｂの書込みバッファ蓄積可能量ＷＰＭ−Ｂよりも小さいため、メモリ書込み転送選択部２５１は、メモリ書込み要求ＷＴＲ−Ｃを選択する。この選択結果に基づいて、メモリ書込み転送選択部２５１は、処理系統Ｃのメモリ書込み選択結果ＷＳＲ−Ｃを転送処理部２５４に出力する。このようなメモリ書込み選択結果ＷＳＲ−Ｃを受けた転送処理部２５４は、第１切替部２３４及びメモリ転送制御部２３２に、処理系統Ｃのメモリ書込み指示を出す。このような指示を受けた第１切替部２３４は、書込みバッファ部２２１からのデータの出力先をメモリ転送制御部２３２に切り替える。さらに、このような指示を受けたメモリ転送制御部２３２は、書込みバッファ２２２Ｃからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。ここで、メモリ部１２９には、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドとが発行される。
【０１３３】
時刻Ｔ３４において、書込みバッファ２２２Ｃよりメモリ部１２９に１ＫＢのメモリ転送データの転送が完了すると、書込みバッファ蓄積量ＷＳＭ−Ｃは、１ＫＢ減少して、時刻Ｔ３３〜Ｔ３４の間に書込みバッファ２２２Ｃに新たに格納されたデータ量となる。転送要求発行部２５０Ｃは、時刻Ｔ３４において、書込みバッファ蓄積量ＷＳＭ−Ｃが１ＫＢを下回ると、メモリ書込み要求ＷＴＲ−Ｃを取り下げる。このとき、転送要求発行部２５０Ｃは、メモリ使用状態記憶部２３０に記憶されている処理系統Ｃのメモリ使用量に「１」を加算する。
【０１３４】
時刻Ｔ３４では、書込みバッファ２２２Ｃよりメモリ部１２９に１ＫＢのデータの転送が完了するため、メモリ転送制御部２３２からメモリ転送完了通知ＭＷＥがメモリ転送選択部２５１に与えられる。ここで、時刻Ｔ３４においては、書込みバッファ２２２Ｂの書込みバッファ蓄積量ＷＳＭ−Ｂだけが、１ＫＢ以上となっているので、メモリ書込み転送選択部２５１は、メモリ書込み要求ＷＴＲ-Ｂを選択する。この選択結果に基づいて、メモリ書込み転送選択部２５１は、処理系統Ｂのメモリ書込み選択結果ＷＳＲ−Ｂを転送処理部２５４に出力する。このようなメモリ書込み選択結果ＷＳＲ−Ｂを受けた転送処理部２５４は、第１切替部２３４及びメモリ転送制御部２３２に、処理系統Ｂのメモリ書込み指示を出す。このような指示を受けた第１切替部２３４は、書込みバッファ部２２１からのデータの出力先をメモリ転送制御部２３２に切り替える。さらに、このような指示を受けたメモリ転送制御部２３２は、書込みバッファ２２２Ｂからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。ここで、メモリ部１２９には、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドとが発行される。
【０１３５】
時刻Ｔ３５において、書込みバッファ２２２Ｂよりメモリ部１２９に１ＫＢのデータの転送が完了すると、書込みバッファ蓄積量ＷＳＭ−Ｂは、１ＫＢ減少する。このとき、転送要求発行部２５０Ｂは、メモリ使用状態記憶部２３０に記憶されている処理系統Ｂのメモリ使用量に「１」を加算する。転送要求発行部２５０Ｂは、書込みバッファ蓄積量ＷＳＭ−Ｂが１ＫＢ以上であるので、メモリ書込み要求ＷＴＲ−Ｂを出力し続ける。
時刻Ｔ３５では、書込みバッファ２２２Ｂよりメモリ部１２９に１ＫＢのデータの転送が完了するため、メモリ転送制御部２３２からメモリ転送完了通知ＭＷＥがメモリ転送選択部２５１に与えられる。ここで、時刻Ｔ３５においては、書込みバッファ２２２Ｂの書込みバッファ蓄積量ＷＳＭ−Ｂだけが、１ＫＢ以上となっているので、メモリ書込み転送選択部２５１は、メモリ書込み要求ＷＴＲ-Ｂを選択する。この選択結果に基づいて、メモリ書込み転送選択部２５１は、処理系統Ｂのメモリ書込み選択結果ＷＳＲ−Ｂを転送処理部２５４に出力する。このようなメモリ書込み選択結果ＷＳＲ−Ｂを受けた転送処理部２５４は、第１切替部２３４及びメモリ転送制御部２３２に、処理系統Ｂのメモリ書込み指示を出す。このような指示を受けた第１切替部２３４は、書込みバッファ部２２１からのデータの出力先をメモリ転送制御部２３２に切り替える。さらに、このような指示を受けたメモリ転送制御部２３２は、書込みバッファ２２２Ｂからメモリ転送単位長のデータをメモリ転送データとして読み出して、このメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。ここで、メモリ部１２９には、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドとが発行される。
【０１３６】
このように書込みバッファ２２２からメモリ部１２９へのメモリ書込み要求が複数発生した場合に、書込みバッファ２２２に格納することのできる空きデータ量が最も小さい処理系統の書込みバッファ２２２のデータを優先してメモリ部１２９に転送することにより、書き込みバッファ２２２に格納するデータのデータ量が、書込みバッファ２２２の容量を超えてしまうことを防止することができる。このため、メモリ装置２２０に必要な書込みバッファ２２２の容量を小さくすることができる。また、メモリ装置２２０を複数の処理系統で共有することにより、信号処理装置２００の規模を小さくすることができる。
【０１３７】
入力処理部２１０Ａ、２１０Ｂ、２１０Ｃからメモリ装置２２０へのデータの書込み速度がそれぞれ均等ではない場合には、メモリ書込み転送選択部２５１は、書込みバッファ蓄積可能量ＷＰＭ−Ａ、ＷＰＭ−Ｂ、ＷＰＭ−Ｃにそれぞれ異なる重み付けを行って、重み付けが行われた後の値が最小となる処理系統の要求を選択するように構成してもよい。このような重み付けは、例えば、書込み速度が速いほど、重み付けした後の値が小さなものとなるようにすればよい。
【０１３８】
図３０は、読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃが「０」であり、バッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｂ、ＢＴＲ−Ｃが出力されない例を示している。次に、出力処理部２４０Ａ、２４０Ｂ、２４０Ｃにデータを出力することにより、読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃの読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃが変動する場合の例を、図３１に示す。
【０１３９】
図３１は、書込みバッファ２２２に格納されたデータをメモリ部１２９又は読出しバッファ２２５に転送する際の、入力処理部２１０からメモリ装置２２０への入力データの入力タイミング、書込みバッファ蓄積量の変化、読出しバッファ蓄積可能量の変化、読出しバッファ蓄積量の変化、バッファ転送要求の出力タイミング、バッファ転送選択結果の出力タイミング、メモリ書込み要求の出力タイミング、メモリ書込み選択結果の出力タイミング、ＤＤＲ−ＳＤＲＡＭコマンドの発行タイミング、及び、メモリ装置２２０から出力処理部２４０への入力データの出力タイミングを示す概略図である。なお、図３１は、ＷＲＩＴＥコマンド及びＲＥＡＤコマンドの発行回数を簡略化して示している。また、図３１では、時刻Ｔ４０において、メモリ部１２９に記憶されている全ての処理系統のメモリ使用量は、「０」である。さらに、図３１では、時刻Ｔ４０において、書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｂ、ＷＳＭ−Ｃ、読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｃ、及び、読出しバッファ蓄積量ＲＳＭ−Ｂは、何れも「０」、言い換えると、書込みバッファ２２２Ａ、２２２Ｂ、２２２Ｃ及び読出しバッファ２２５Ｂには、データがなく、読出しバッファ２２５Ａ、２３１Ｃには空き容量がない状態である。
なお、各々の読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃの最大データ蓄積量（容量）は同一である必要はなく、時刻Ｔ４０における読出しバッファ蓄積量ＲＳＭ−Ａ、読出しバッファ蓄積可能量ＲＰＭ−Ｂ、読出しバッファ蓄積量ＲＳＭ−Ｃは、それぞれ読出しバッファ２２５Ａ、２２５Ｂ、２２５Ｃの最大データ蓄積量に等しい。
【０１４０】
時刻Ｔ４０において、入力処理部２１０Ａで処理された入力データＤＡ２が、メモリ装置２２０に入力され、書込みバッファ２２２Ａに格納され始める。このため、時刻Ｔ４０以降、書込みバッファ蓄積量ＷＳＭ−Ａは増加する。
【０１４１】
時刻Ｔ４１において、書込みバッファ２２２Ａの書込みバッファ蓄積量ＷＳＭ−Ａが、１ＫＢに達すると、転送要求発行部２５０Ａは、メモリ書込み転送選択部２５１にメモリ書込み要求ＷＴＲ−Ａを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＹｅｓ及びステップＳ３１でＮｏと判断され、ステップＳ３３の処理が実行されることに相当する。
ここで、時刻Ｔ４１における書込みバッファ２２２Ｂ、２２２Ｃの書込みバッファ蓄積量ＷＳＭ−Ｂ、ＷＳＭ−Ｃは、ともに１ＫＢ以下であり、転送要求発行部２５０Ｂ、２５０Ｃから書込み転送要求ＷＴＲ−Ｂ、ＷＴＲ−Ｃは、出力されないので、このようなメモリ書込み要求ＷＴＲ−Ａを受けたメモリ書込み転送選択部２５１は、処理系統Ａのメモリ書込み要求ＷＴＲ−Ａを選択して、処理系統Ａのメモリ書込み選択結果ＷＳＲ−Ａを転送処理部２５４に出力する。このようなメモリ書込み選択結果ＷＳＲ−Ａを受けた転送処理部２５４は、第１切替部２３４及びメモリ転送制御部２３２に、処理系統Ａのメモリ書込み指示を出す。このような指示を受けた第１切替部２３４は、データの出力先をメモリ転送制御部２３２に切り替える。さらに、このような指示を受けたメモリ転送制御部２３２は、書込みバッファ２２２Ａからメモリ転送データを読み出して、このメモリ転送データを、メモリコントローラ部１２８を介して、メモリ部１２９に記憶させる。ここで、メモリ部１２９には、１回のＡＣＴコマンドと、複数回のＷＲＩＴＥコマンドとが発行される。
【０１４２】
また、時刻Ｔ４１以降において、入力処理部２１０Ｂで処理された入力データＤＢ２が、メモリ装置２２０に入力され、書込みバッファ２２２Ｂに格納され始める。このため、書込みバッファ蓄積量ＷＳＭ−Ｂは、増加する。
【０１４３】
時刻Ｔ４２において、出力処理部２４０Ｃは、読出しバッファ２２５Ｃより入力データＤＣ４の取得を開始する。このため、読出しバッファ蓄積量ＲＳＭ−Ｃは減少して、読出しバッファ蓄積可能量ＲＰＭ−Ｃは増加する。
【０１４４】
時刻Ｔ４３において、書込みバッファ２２２Ｂの書込みバッファ蓄積量ＷＳＭ−Ｂが、１ＫＢに達すると、転送要求発行部２５０Ｂは、バッファ転送選択部２５３にバッファ転送要求ＢＴＲ−Ｂを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＹｅｓ及びステップＳ３１でＹＥＳと判断され、ステップＳ３７の処理が実行されることに相当する。
ここで、時刻Ｔ４３における書込みバッファ蓄積量ＷＳＭ−Ａ、ＷＳＭ−Ｃは、ともに１ＫＢ以下であり、転送要求発行部２５０Ａ、２５０Ｃからバッファ転送要求ＢＴＲ−Ａ、ＢＴＲ−Ｃは、出力されないので、バッファ転送要求ＢＴＲ−Ｂを受けたバッファ転送選択部２５３は、処理系統Ｂのバッファ転送要求ＢＴＲ−Ｂを選択して、処理系統Ｂのバッファ転送選択結果ＢＳＲ−Ｂを転送処理部２５４に出力する。このようなバッファ転送選択結果ＢＳＲ−Ｂを受けた転送処理部２５４は、第１切替部２３４、バッファ転送制御部２３３及び第２切替部２３５に、処理系統Ｂのバッファ転送指示を出す。このような指示を受けた第１切替部２３４は、データの出力先をバッファ転送制御部２３３に切り替える。また、このような指示を受けた第２切替部２３５は、データの入力元をバッファ転送制御部２３３に切り替える。さらに、このような指示を受けたバッファ転送制御部２３３は、書込みバッファ２２２Ｂからバッファ転送データを読み出して、このバッファ転送データを、読出し制御部２２６を介して、読出しバッファ２２５Ｂに記憶させる。このため、読出しバッファ蓄積量ＲＳＭ−Ｂは増加し、読出しバッファ蓄積可能量ＲＰＭ−Ｂは減少する。
【０１４５】
また、時刻Ｔ４３以降において、入力処理部２１０Ｃで処理された入力データＤＣ３が、メモリ装置２２０に入力され、書込みバッファ２２２Ｃに格納され始める。このため、書込みバッファ蓄積量ＷＳＭ−Ｃは増加する。
【０１４６】
時刻Ｔ４４において、書込みバッファ２２２Ａよりメモリ部１２９に１ＫＢのデータの転送が完了すると、書込みバッファ蓄積量ＷＳＭ−Ａは、１ＫＢ減少して、時刻Ｔ４１〜Ｔ４４の間に書込みバッファ２２２Ａに新たに格納されたデータ量となる。転送要求発行部２５０Ａは、時刻Ｔ４４において、書込みバッファ蓄積量ＷＳＭ−Ａが１ＫＢを下回ると、メモリ書込み要求ＷＴＲ−Ａを取り下げる。このとき、転送要求発行部２５０Ａは、メモリ使用状態記憶部２３０に記憶されている処理系統Ａのメモリ使用量に「１」を加算する。
【０１４７】
時刻Ｔ４５において、入力処理部２１０Ｃで処理された、入力データＤＣ３の書込みバッファ２２２Ｃへの格納が完了する。言い換えると、１つの演算単位長分のデータの格納が完了する。転送要求発行部２５０Ｃは、読出しバッファ蓄積可能量ＲＰＭ−Ｃが、書込みバッファ蓄積量ＷＳＭ−Ｃよりも大きいことを確認して、バッファ転送選択部２５３に、バッファ転送要求ＢＴＲ−Ｃを出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＮｏ、ステップＳ３４でＹＥＳ、ステップＳ３５でＹｅｓ及びステップＳ３６でＹｅｓと判断され、ステップＳ３７の処理が実行されることに相当する。
【０１４８】
時刻Ｔ４６において、書込みバッファ２２２Ｂより読出しバッファ２２５Ｂに１ＫＢのデータの転送が完了すると、書込みバッファ蓄積量ＷＳＭ−Ｂは、１ＫＢ減少し、時刻Ｔ４３〜Ｔ４６の間に書込みバッファ２２２Ｂに新たに格納されたデータ量となる。転送要求発行部２５０Ｂは、時刻Ｔ４４において、入力処理部２１０Ｂで処理された、１つの演算単位分の入力データＤＢ２の書込みバッファ２２２Ｂへの格納が完了しているので、時刻Ｔ４６において、読出しバッファ蓄積可能量ＲＰＭ−Ｂが、書込みバッファ蓄積量ＷＳＭ−Ｂよりも大きいことを確認して、バッファ転送要求ＢＴＲ−Ｂを継続して出力する。これは、図２８のフローチャートにおいて、ステップＳ３０でＮｏ、ステップＳ３４でＹＥＳ、ステップＳ３５でＹｅｓ及びステップＳ３６でＹｅｓと判断され、ステップＳ３７の処理が実行されることに相当する。
時刻Ｔ４６では、書込みバッファ２２２Ｂより読出しバッファ２２５Ｂにデータの転送が完了するため、バッファ転送制御部２３３からバッファ転送完了通知ＢＴＥがバッファ転送選択部２５３に与えられる。そして、バッファ転送選択部２５３は、バッファ転送要求ＢＴＲ−Ｂとバッファ転送要求ＢＴＲ−Ｃとの間で選択を行う。時刻Ｔ４６においては、読出しバッファ蓄積量ＲＳＭ−Ｃが、読出しバッファ蓄積量ＲＳＭ−Ｂよりも小さいため、バッファ転送選択部２５３は、処理系統Ｃのバッファ転送要求ＢＴＲ−Ｃを選択して、処理系統Ｃのバッファ転送選択結果ＢＳＲ−Ｃを転送処理部２５４に出力する。このようなバッファ転送選択結果ＢＳＲ−Ｃを受けた転送処理部２５４は、第１切替部２３４、バッファ転送制御部２３３及び第２切替部２３５に、処理系統Ｃのバッファ転送指示を出す。このような指示を受けた第１切替部２３４は、データの出力先をバッファ転送制御部２３３に切り替える。また、このような指示を受けた第２切替部２３５は、データの入力元をバッファ転送制御部２３３に切り替える。さらに、このような指示を受けたバッファ転送制御部２３３は、書込みバッファ２２２Ｃに格納されている全ての入力データをバッファ転送データとして読み出して、このバッファ転送データを、読出し制御部２２６を介して、読出しバッファ２２５Ｃに記憶させる。
【０１４９】
時刻Ｔ４７において、書込みバッファ２２２Ｃより読出しバッファ２２５Ｃに全てのデータの転送が完了すると、書込みバッファ２２２Ｃの書込みバッファ蓄積量ＷＳＭ−Ｃは「０」になるので、転送要求発行部２５０Ｃは、バッファ転送要求ＢＴＲ−Ｃを取り下げる。
時刻Ｔ４７では、書込みバッファ２２２Ｃより読出しバッファ２２５Ｃにデータの転送が完了するため、バッファ転送制御部２３３からバッファ転送完了通知ＢＴＥがバッファ転送選択部２５３に与えられる。そして、時刻Ｔ４７では、処理系統Ｂのバッファ転送要求ＢＴＲ−Ｂだけが出力されているため、バッファ転送選択部２５３は、バッファ転送要求ＢＴＲ−Ｂを選択して、処理系統Ｂのバッファ転送選択結果ＢＳＲ−Ｂを転送処理部２５４に出力する。このようなバッファ転送選択結果ＢＳＲ−Ｂを受けた転送処理部２５４は、第１切替部２３４、バッファ転送制御部２３３及び第２切替部２３５に、処理系統Ｂのバッファ転送指示を出す。このような指示を受けた第１切替部２３４は、データの出力先をバッファ転送制御部２３３に切り替える。また、このような指示を受けた第２切替部２３５は、データの入力元をバッファ転送制御部２３３に切り替える。さらに、このような指示を受けたバッファ転送制御部２３３は、書込みバッファ２２２Ｂに格納されている全ての入力データをバッファ転送データとして読み出して、このバッファ転送データを、読出し制御部２２６を介して、読出しバッファ２２５Ｂに記憶させる。
【０１５０】
図３０及び図３１には示されていないが、転送要求発行部２５０は、メモリ使用量ＭＵＭ−Ａ、ＭＵＭ−Ｂ、ＭＵＭ−Ｃが「０」ではなく、読出しバッファ蓄積可能量ＲＰＭ−Ａ、ＲＰＭ−Ｂ、ＲＰＭ−Ｃが１ＫＢ以上であれば、メモリ読出し転送要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃを、メモリ読出し転送選択部２５２に出力する。
【０１５１】
メモリ読出し転送選択部２５２は、メモリ読出し転送要求ＲＴＲ−Ａ、ＲＴＲ−Ｂ、ＲＴＲ−Ｃが２つ以上入力された場合は、バッファ転送選択部２５３と同様に、読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃが最も小さい処理系統を選択して、メモリ部１２９からメモリ転送データを読出しバッファ部２２４に転送する。ここで、転送要求発行部２５０は、メモリ読出し転送選択部２５２で選択されると、メモリ使用量ＭＵＭ−Ａ、ＭＵＭ−Ｂ、ＭＵＭ−Ｃを「１」減算する。
【０１５２】
以上のように、書込みバッファ２２２から読出しバッファ２２５へのバッファ転送要求が複数発生する場合、又は、メモリ部１２９から読出しバッファ２２５への読出し要求が複数発生する場合には、読出しバッファ２２５の読出しバッファ蓄積量が最も小さい読出しバッファ２２５へのデータ転送を優先して実行することにより、出力処理部２４０が、途切れることなく読出しバッファ２２５に格納された入力データを取得することができる。
【０１５３】
出力処理部２４０の読出しバッファ２２５からの読出し速度がそれぞれ均等ではない場合には、バッファ転送選択部２５３は、読出しバッファ蓄積量ＲＳＭ−Ａ、ＲＳＭ−Ｂ、ＲＳＭ−Ｃのそれぞれに異なる重み付けを行って、重み付けが行われた後の値が最小となる処理系統の要求を選択するように構成してもよい。このような重み付けは、例えば、読出し速度が速いほど、重み付けした後の値が小さなものとなるようにすればよい。
【０１５４】
実施の形態２によれば、複数の処理系統が、メモリ装置２２０のメモリ部１２９を共有することができるので、メモリ部１２９を処理系統毎に設ける必要がなくなり、メモリ部１２９の使用数を少なくすることができる。また、実施の形態２によれば、複数の処理系統が、メモリ装置２２０を共有することができるので、信号処理装置２００の規模を小さくすることができる。
【０１５５】
実施の形態２では、入力処理部２１０及び出力処理部２４０の処理系統を３系統としたが、２系統以上の任意の系統数に置き換えてもよい。また、実施の形態２では、メモリ部１２９は、ページサイズ１ＫＢのＤＤＲ−ＳＤＲＡＭとしたが、ページサイズを固定長の任意の長さにしてもよい。
【符号の説明】
【０１５６】
１００，２００：信号処理装置、  １１０，２１０：入力処理部、  １２０，２２０：メモリ装置、  １２１，２２１：書込みバッファ部、  １２２，２２２：書込みバッファ、  １２３，２２３：書込み制御部、  １２４，２２４：読出しバッファ部、  １２５，２２５：読出しバッファ、  １２６，２２６：読出し制御部、  １２７，２２７：演算単位長記憶部、  １２８：メモリコントローラ部、  １２９：メモリ部、  １３０，２３０：メモリ使用状態記憶部、  １３１，２３１：転送制御切替部、  １３２，２３２：メモリ転送制御部、  １３３，２３３：バッファ転送制御部、  １３４，２３４：第１切替部、  １３５，２３５：第２切替部、  １３６，２３６：切替制御部、  １４０，２４０：出力処理部、  ２５０：転送要求発行部、  ２５１：メモリ書込み転送選択部、  ２５２：メモリ読出し転送選択部、  ２５３：バッファ転送選択部、  ２５４：転送処理部。
【図１】
0005546356.tif 000002
【図２】
0005546356.tif 000003
【図３】
0005546356.tif 000004
【図４】
0005546356.tif 000005
【図５】
0005546356.tif 000006
【図６】
0005546356.tif 000007
【図７】
0005546356.tif 000008
【図８】
0005546356.tif 000009
【図９】
0005546356.tif 000010
【図１０】
0005546356.tif 000011
【図１１】
0005546356.tif 000012
【図１２】
0005546356.tif 000013
【図１３】
0005546356.tif 000014
【図１４】
0005546356.tif 000015
【図１５】
0005546356.tif 000016
【図１６】
0005546356.tif 000017
【図１７】
0005546356.tif 000018
【図１８】
0005546356.tif 000019
【図１９】
0005546356.tif 000020
【図２０】
0005546356.tif 000021
【図２１】
0005546356.tif 000022
【図２２】
0005546356.tif 000023
【図２３】
0005546356.tif 000024
【図２４】
0005546356.tif 000025
【図２５】
0005546356.tif 000026
【図２６】
0005546356.tif 000027
【図２７】
0005546356.tif 000028
【図２８】
0005546356.tif 000029
【図２９】
0005546356.tif 000030
【図３０】
0005546356.tif 000031
【図３１】
0005546356.tif 000032