JP2008269018A - バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 - Google Patents
バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 Download PDFInfo
- Publication number
- JP2008269018A JP2008269018A JP2007107335A JP2007107335A JP2008269018A JP 2008269018 A JP2008269018 A JP 2008269018A JP 2007107335 A JP2007107335 A JP 2007107335A JP 2007107335 A JP2007107335 A JP 2007107335A JP 2008269018 A JP2008269018 A JP 2008269018A
- Authority
- JP
- Japan
- Prior art keywords
- data
- port memory
- memory
- read
- mode
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】大容量のデータに対しても信頼性の高いバッファリングを低コストで実現するバッファ装置を提供すること。
【解決手段】バッファ装置10は、受信回路110と、受信したデータ112を記憶するためのメモリ1(120)及びメモリ2(130)と、メモリ1及びメモリ2に対するデータの書き込み及び読み出しを制御する制御回路200と、送信回路150と、を含む。制御回路は、メモリ1及びメモリ2を、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定し、書き込みモードに設定されたメモリに対するデータ書き込みと読み出しモードに設定されたメモリに対するデータ読み出しがともに終了すると、書き込みモードに設定されたメモリを読み出しモードの設定に切り替えるとともに読み出しモードに設定されたメモリを書き込みモードの設定に切り替えるように制御する。
【選択図】図1
【解決手段】バッファ装置10は、受信回路110と、受信したデータ112を記憶するためのメモリ1(120)及びメモリ2(130)と、メモリ1及びメモリ2に対するデータの書き込み及び読み出しを制御する制御回路200と、送信回路150と、を含む。制御回路は、メモリ1及びメモリ2を、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定し、書き込みモードに設定されたメモリに対するデータ書き込みと読み出しモードに設定されたメモリに対するデータ読み出しがともに終了すると、書き込みモードに設定されたメモリを読み出しモードの設定に切り替えるとともに読み出しモードに設定されたメモリを書き込みモードの設定に切り替えるように制御する。
【選択図】図1
Description
本発明は、バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法に関する。
ストリーム形式で供給される圧縮音楽データ等をデコードする際は、データの連続性を損なわないようにするため、デコーダ回路の前段において、データのバッファリングを行う必要がある。バッファリングの手法としては、フリップフロップやデュアルポートメモリ等で構成されたFIFOを用いたものが提案されている。
特開平6−195301号公報
特開平5−136827号公報
しかし、ストリーミングデータ等の大容量のデータを連続性を損なわずに処理するためにはFIFOの容量を大きくする必要があり、フリップフロップやデュアルポートメモリで大容量のFIFOを実現すると低コスト化を達成することができないという問題があった。また、FIFOでは読み出し用のアドレスが書き込み用のアドレスを超えてはいけないため、読み出し用のアドレスカウンタと書き込み用のアドレスカウンタを必要とし、制御も複雑になるという問題があった。
本発明は、以上のような問題点に鑑みてなされたものであり、大容量のデータに対しても信頼性の高いバッファリングを低コストで実現するバッファ装置を提供することを目的とする。
(1)本発明に係るバッファ装置は、
時系列に入力される一群のデータを一旦保持し、入力された順に送信するバッファ装置であって、
前記一群のデータを受信するデータ受信部と、
前記データ受信部が受信したデータを記憶するための第1のシングルポートメモリと、
前記データ受信部が受信したデータを記憶するための第2のシングルポートメモリと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリに対するデータの書き込み及び読み出しを制御する制御部と、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するデータ送信部と、を含み、
前記制御部は、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定し、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了し、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了し、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるように制御することを特徴とする。
時系列に入力される一群のデータを一旦保持し、入力された順に送信するバッファ装置であって、
前記一群のデータを受信するデータ受信部と、
前記データ受信部が受信したデータを記憶するための第1のシングルポートメモリと、
前記データ受信部が受信したデータを記憶するための第2のシングルポートメモリと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリに対するデータの書き込み及び読み出しを制御する制御部と、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するデータ送信部と、を含み、
前記制御部は、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定し、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了し、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了し、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるように制御することを特徴とする。
時系列に入力される一群のデータは、音楽や映像等のストリーミング配信において送信されるストリーミングデータであってもよいし、ROM等に記憶されたデータであってもよい。
書き込みモード又は読み出しモードのいずれかに排他的に設定するとは、一方のシングルポートメモリを書き込みモードに設定する場合は、他方のシングルポートメモリを書き込みモードに設定しなければよく、また、一方のシングルポートメモリを読み出しモードに設定する場合は、他方のシングルポートメモリを読み出しモードに設定しなければよい。すなわち、一方のシングルポートメモリを書き込みモードに設定する場合は、他方のシングルポートメモリを読み出しモードに設定してもよいし、書き込み及び読み出しを禁止するモードに設定してもよい。同様に、一方のシングルポートメモリを読み出しモードに設定する場合は、他方のシングルポートメモリを書き込みモードに設定してもよいし、書き込み及び読み出しを禁止するモードに設定してもよい。
所定のアドレスは、最終アドレスであってもよい。すなわち、書き込みモードに設定されたシングルポートメモリの最終アドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了し、読み出しモードに設定されたシングルポートメモリの最終アドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了するようにしてもよい。
本発明によれば、一群のデータのサイズが各シングルポートメモリの容量を超えない限り、書き込みモードに設定されたシングルポートメモリに一群のデータをすべて書き込むまで、当該シングルポートメモリを読み出しモードの設定に切り替えないようにすることができる。また、本発明によれば、一群のデータのサイズが各シングルポートメモリの容量を超えない限り、読み出しモードに設定されたシングルポートメモリから一群のデータをすべて読み出すまで、当該シングルポートメモリを書き込みモードの設定に切り替えないようにすることができる。従って、一群のデータを途中で途切れることなく最後まで読み出して送信することができる。
また、本発明によれば、一群のデータの書き込みが読み出しよりも早く終了するように処理速度を調整することにより、一群のデータの読み出しと次の一群のデータの読み出しの間の待ち時間をなくすことができる。従って、ストリーミング配信される音楽データ等のストリーミングデータを、後段のデコーダ等に切れ目なく送信することができる。
さらに、本発明によれば、第1のバッファ及び第2のバッファをフリップフロップによるシフトレジスタで構成する場合やデュアルポートメモリで構成する場合と比較して、面積コストを削減することができ、かつ、第1のバッファ及び第2のバッファに対する書き込み及び読み出しの制御をより簡単にすることができる。従って、大容量のデータに対しても信頼性の高いバッファリングを低コストで実現することができる。
(2)本発明に係るバッファ装置は、
前記データ受信部は、
前記一群のデータの最後のデータに関連づけて入力されるデータ終了信号を受信し、
前記制御部は、
前記データ終了信号に基づいて、前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みを終了することを特徴とする。
前記データ受信部は、
前記一群のデータの最後のデータに関連づけて入力されるデータ終了信号を受信し、
前記制御部は、
前記データ終了信号に基づいて、前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みを終了することを特徴とする。
データ終了信号は、例えば、ホストインターフェース回路が、ホスト(音楽データの配信サーバ等)から送信されるコマンドを解読して、一群のデータの最後のデータであると判断した時に、本発明に係るバッファ装置に送出してもよい。
本発明によれば、データ終了信号の検出の有無を判断することによって、書き込みの終了タイミングを簡単に制御することができる。
(3)本発明に係るバッファ装置は、
前記制御部は、
前記第1のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第1の書き込み終了アドレスレジスタと、
前記第2のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第2の書き込み終了アドレスレジスタと、を含み、
前記一群のデータの最後のデータを書き込んだ、前記第1のシングルポートメモリのアドレスを、前記第1の書き込み終了アドレスレジスタに記憶させ、
前記一群のデータの最後のデータを書き込んだ、前記第2のシングルポートメモリのアドレスを、前記第2の書き込み終了アドレスレジスタに記憶させ、
前記第1のシングルポートメモリの、前記第1の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第1のシングルポートメモリに対するデータ読み出しを終了し、
前記第2のシングルポートメモリの、前記第2の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第2のシングルポートメモリに対するデータ読み出しを終了するように制御することを特徴とする。
前記制御部は、
前記第1のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第1の書き込み終了アドレスレジスタと、
前記第2のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第2の書き込み終了アドレスレジスタと、を含み、
前記一群のデータの最後のデータを書き込んだ、前記第1のシングルポートメモリのアドレスを、前記第1の書き込み終了アドレスレジスタに記憶させ、
前記一群のデータの最後のデータを書き込んだ、前記第2のシングルポートメモリのアドレスを、前記第2の書き込み終了アドレスレジスタに記憶させ、
前記第1のシングルポートメモリの、前記第1の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第1のシングルポートメモリに対するデータ読み出しを終了し、
前記第2のシングルポートメモリの、前記第2の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第2のシングルポートメモリに対するデータ読み出しを終了するように制御することを特徴とする。
本発明によれば、読み出しモードに設定されたシングルポートメモリから読み出しを行う場合に、当該シングルポートメモリが直近に書き込みモードに設定された時に書き込んだ最後のデータを読み出したらすぐに読み出し処理を終了することができる。従って、書き込みモードに迅速に切り替えることができる。また、書き込みモードに設定する毎に、シングルポートメモリのデータを消去する必要がない。
(4)本発明に係るバッファ装置は、
前記第1のシングルポートメモリは、
異なるアドレスが割り当てられた2n(nは0以上の整数)個の記憶領域を含み、
前記第2のシングルポートメモリは、
異なるアドレスが割り当てられた2m(mは0以上の整数)個の記憶領域を含み、
前記制御部は、
前記第1のシングルポートメモリのアドレスを生成する、n+i(iは1以上の整数)ビットの第1のアドレスカウンタと、
前記第2のシングルポートメモリのアドレスを生成する、m+j(jは1以上の整数)ビットの第2のアドレスカウンタと、を含み、
前記第1のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第1のアドレスカウンタの下位nビットをすべて0に、上位iビットの少なくとも一部を反転した値に初期化し、前記第1のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第1のアドレスカウンタを1ずつインクリメントし、前記第1のアドレスカウンタの上位iビットの少なくとも一部に基づいて、前記第1のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断し、
前記第2のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第2のアドレスカウンタの下位mビットをすべて0に、上位jビットの少なくとも一部を反転した値に初期化し、前記第2のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第2のアドレスカウンタを1ずつインクリメントし、前記第2のアドレスカウンタの上位jビットの少なくとも一部に基づいて、前記第2のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断するように制御するすることを特徴とする。
前記第1のシングルポートメモリは、
異なるアドレスが割り当てられた2n(nは0以上の整数)個の記憶領域を含み、
前記第2のシングルポートメモリは、
異なるアドレスが割り当てられた2m(mは0以上の整数)個の記憶領域を含み、
前記制御部は、
前記第1のシングルポートメモリのアドレスを生成する、n+i(iは1以上の整数)ビットの第1のアドレスカウンタと、
前記第2のシングルポートメモリのアドレスを生成する、m+j(jは1以上の整数)ビットの第2のアドレスカウンタと、を含み、
前記第1のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第1のアドレスカウンタの下位nビットをすべて0に、上位iビットの少なくとも一部を反転した値に初期化し、前記第1のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第1のアドレスカウンタを1ずつインクリメントし、前記第1のアドレスカウンタの上位iビットの少なくとも一部に基づいて、前記第1のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断し、
前記第2のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第2のアドレスカウンタの下位mビットをすべて0に、上位jビットの少なくとも一部を反転した値に初期化し、前記第2のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第2のアドレスカウンタを1ずつインクリメントし、前記第2のアドレスカウンタの上位jビットの少なくとも一部に基づいて、前記第2のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断するように制御するすることを特徴とする。
制御を簡単にするためには、第1のシングルポートメモリと第2のシングルポートメモリの容量は同じである(すなわち、n=m)のが好ましい。また、書き込みモードか読み出しモードかを最も簡単に判断するためには、i=j=1であるのが好ましい。
本発明によれば、一群のデータのサイズがシングルポートメモリの容量と等しい場合には、アドレスカウンタをインクリメントし続けるだけで、シングルポートメモリに対する適切な書き込み処理及び読み出し処理を簡単に実現することができる。すなわち、各シングルポートメモリに対して1つのアドレスカウンタで読み出し用のアドレスカウンタと書き込み用のアドレスカウンタを兼用することができる。また、アドレスカウンタの上位iビット又は上位jビットの少なくとも一部から書き込みモードか読み出しモードかを簡単に判断することができる。
(5)本発明に係るバッファ装置は、
前記制御部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ読み出しが終了するまで、データ書き込み及びデータ読み出しを禁止するウェイトモードに設定し、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ書き込みが終了するまで、前記ウェイトモードに設定することを特徴とする。
前記制御部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ読み出しが終了するまで、データ書き込み及びデータ読み出しを禁止するウェイトモードに設定し、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ書き込みが終了するまで、前記ウェイトモードに設定することを特徴とする。
本発明によれば、書き込み又は読み出しが終了した一方のシングルポートメモリに対して、他方のシングルポートメモリの読み出し又は書き込みが終了するまで書き込み及び読み出しが禁止される。従って、誤った書き込みや読み出しを確実に防止することができる。
(6)本発明に係るバッファ装置は、
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが可能である時は、入力データの供給を要求するリクエスト信号を送出し、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を検出した場合のみデータを受信し、
前記データ送信部は、
データ送信を要求するリクエスト信号を検出した時は、前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが可能である場合のみ、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を送出するとともに当該シングルポートメモリから読み出したデータを送信することを特徴とする。
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが可能である時は、入力データの供給を要求するリクエスト信号を送出し、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を検出した場合のみデータを受信し、
前記データ送信部は、
データ送信を要求するリクエスト信号を検出した時は、前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが可能である場合のみ、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を送出するとともに当該シングルポートメモリから読み出したデータを送信することを特徴とする。
本発明によれば、ハンドシェイク通信によってデータの送受信を行うので、不要なデータの送受信を確実に防止することができる。また、本発明によれば、受信元の処理速度と送信先の処理速度の差を吸収して信頼性の高いバッファリングを実現することができる。
(7)本発明に係るバッファ装置は、
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了し、他方のシングルポートメモリに対するデータ読み出しが終了していない時は、前記リクエスト信号を送出せず、
前記データ送信部は、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了し、他方のシングルポートメモリに対するデータ書き込みが終了していない時は、前記アクノリッジ信号を送出しないことを特徴とする。
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了し、他方のシングルポートメモリに対するデータ読み出しが終了していない時は、前記リクエスト信号を送出せず、
前記データ送信部は、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了し、他方のシングルポートメモリに対するデータ書き込みが終了していない時は、前記アクノリッジ信号を送出しないことを特徴とする。
本発明によれば、書き込み処理が終了した場合はリクエスト信号を送出せず、読み出し処理が終了した場合はアクノリッジ信号を送出しないので、不要なデータの送受信を確実に防止することができる。また、本発明によれば、受信元の処理速度と送信先の処理速度の差を吸収して信頼性の高いバッファリングを実現することができる。
(8)本発明は、
上記に記載のバッファ装置を含むことを特徴とする半導体集積回路装置である。
上記に記載のバッファ装置を含むことを特徴とする半導体集積回路装置である。
(9)本発明は、
上記に記載の半導体集積回路装置を含むことを特徴とするマイクロコンピュータである。
上記に記載の半導体集積回路装置を含むことを特徴とするマイクロコンピュータである。
(10)本発明は、
上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器である。
上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器である。
(11)本発明は、
第1のシングルポートメモリ及び第2のシングルポートメモリを含み、時系列に入力される一群のデータを前記第1のシングルポートメモリ又は前記第2のシングルポートメモリのいずれかに一旦保持し、入力された順に送信するバッファ装置の制御方法であって、
前記一群のデータを受信するステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定するステップと、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了するステップと、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了するステップと、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するステップと、を含むことを特徴とするバッファ装置の制御方法である。
第1のシングルポートメモリ及び第2のシングルポートメモリを含み、時系列に入力される一群のデータを前記第1のシングルポートメモリ又は前記第2のシングルポートメモリのいずれかに一旦保持し、入力された順に送信するバッファ装置の制御方法であって、
前記一群のデータを受信するステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定するステップと、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了するステップと、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了するステップと、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するステップと、を含むことを特徴とするバッファ装置の制御方法である。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.バッファ装置、半導体集積回路装置
図1は、本実施形態に係るバッファ装置の構成例を説明するための図である。
図1は、本実施形態に係るバッファ装置の構成例を説明するための図である。
バッファ装置10は、ホストインターフェース回路20から時系列に入力される一群のデータ22を一旦保持し、入力された順にデコーダ30に送信する。ホストインターフェース回路20は、ホスト40との間でコマンドデータ通信を行う。ホスト40は、例えば、音楽データのストリーミング配信サーバであり、ホストインターフェース回路20に対してストリーミングデータを送信する。ホストインターフェース回路20は、ストリーミングデータを受信し、例えば、1バイトのデータに分割して時系列に並べ、バッファ装置10にデータ22として順番に供給する。ホスト40は、ストリーミングデータを送信する前に、ストリーミングデータのサイズを示すコマンドを送信する。ホストインターフェース回路20は当該コマンドを解読し、バッファ装置10にストリーミングデータの最後のデータを供給する時にデータ終了信号26を一緒に供給する。デコーダ30は、MP3、AAC、Vorbis等の圧縮方式でエンコードされたデータ14をデコードして再生する。バッファ装置10は、ホスト40のデータ送信速度とデコーダ30の再生処理速度の差を吸収して、データ転送を行う役割を果たす。
バッファ装置10は、受信回路110を含む。受信回路110は、一群のデータ22を受信するデータ受信部として機能する。受信回路110は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みが可能である時は、ホストインターフェース回路20に対して、データ22の供給を要求するリクエスト信号12を送出する。ホストインターフェース回路20は、リクエスト信号12を受けて、受信回路110に入力データ22とともにリクエスト信号12に対する応答を確認するためのアクノリッジ信号24を供給する。受信回路110は、アクノリッジ信号24を検出した場合のみデータ22を受信する。受信回路110は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みが終了し、他方のメモリに対するデータ読み出しが終了していない時は、リクエスト信号12を送出しない。従って、ホストインターフェース回路20は、他方のメモリに対するデータ読み出しが終了するまで、受信回路110に次のデータを供給しない。また、受信回路110は、最後のデータとともに入力されるデータ終了信号26を受信する。
バッファ装置10は、メモリ1(120)及びメモリ2(130)を含む。メモリ1(120)及びメモリ2(130)はシングルポートメモリで構成されている。従って、フリップフロップによるシフトレジスタやデュアルポートメモリでFIFOを構成する場合と比較して、面積コストを削減することができる。メモリ1(120)及びメモリ2(130)は、データ受信回路110が受信したデータ112を記憶する。メモリ1(120)及びメモリ2(130)は、それぞれ、異なるアドレスが割り当てられた2n個及び2m個(n、mは0以上の整数)の記憶領域を含む。例えば、メモリ1(120)及びメモリ2(130)はともに0x000〜0x7FFまでの異なるアドレスが割り当てられた2048(n=m=11の場合)個の記憶領域を含むようにしてもよい(例えば、1つの記憶領域を1バイトとすると、メモリ1及びメモリ2は2048バイトの記憶容量を有する)。メモリ1及びメモリ2は、ホスト20から送信されるストリーミングデータの最大容量以上の記憶容量を有することが望ましい。
バッファ装置10は、制御回路200を含む。制御回路200は、メモリ1(120)及びメモリ2(130)に対するデータ112の書き込み及び読み出しを制御する制御部として機能する。制御回路200は、メモリ1(120)及びメモリ2(130)を、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定するように制御する。また、制御回路200は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に最後に受信したデータを書き込むか、または、所定のアドレス(例えば、最終アドレス)にデータを書き込むと、データ書き込みを終了するように制御する。例えば、制御回路200は、データ終了信号26に基づいて、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みを終了する。また、制御回路200は、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)から最後に受信したデータを読み出すか、または、所定のアドレス(例えば、最終アドレス)からデータを読み出すと、メモリ1(120)又はメモリ2(130)に対するデータ読み出しを終了するように制御する。また、制御回路200は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みと読み出しモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ読み出しがともに終了すると、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)を読み出しモードの設定に切り替えるとともに読み出しモードに設定されたメモリ1(120)又はメモリ2(130)を書き込みモードの設定に切り替えるように制御する。
制御回路200は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みが終了した時は、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)を、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ読み出しが終了するまで、データ書き込み及びデータ読み出しを禁止するウェイトモードに設定するように制御してもよい。さらに、制御回路200は、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ読み出しが終了した時は、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)を、書き込みモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ書き込みが終了するまで、ウェイトモードに設定するように制御してもよい。
制御回路200は、メモリ1(120)に対するデータ書き込みの終了アドレスを記憶する終了アドレスレジスタ1(240)及びメモリ2(130)に対するデータ書き込みの終了アドレスを記憶する終了アドレスレジスタ2(250)を含んでもよい。例えば、メモリ1(120)及びメモリ2(130)が0x000〜0x7FFまでの異なるアドレスが割り当てられた2048バイトの記憶容量を有する場合、終了アドレスレジスタ1(240)及び終了アドレスレジスタ2(250)は、11ビットのレジスタであればよい。制御回路200は、一群のデータ22の最後のデータを書き込んだ、メモリ1(120)及びメモリ2(130)のアドレスを、それぞれ、終了アドレスレジスタ1(240)及び終了アドレスレジスタ2(250)に記憶させる。制御回路200は、メモリ1(120)又はメモリ2(130)の、終了アドレスレジスタ1(240)又は終了アドレスレジスタ2(250)が記憶するアドレスからデータを読み出すと、メモリ1(120)又はメモリ2(130)に対するデータ読み出しを終了する。
制御回路200は、アドレスカウンタ1(220)及びアドレスカウンタ2(230)を含んでもよい。アドレスカウンタ1(220)及びアドレスカウンタ2(230)は、それぞれ、n+i(iは1以上の整数)ビットの第1のアドレスカウンタ及びn+j(jは1以上の整数)ビットの第2のアドレスカウンタとして機能する。例えば、メモリ1(120)及びメモリ2(130)が0x000〜0x7FFまでの異なるアドレスが割り当てられた2048バイトの記憶容量を有する場合(n=m=11の場合)、アドレスカウンタ1(220)及びアドレスカウンタ2(230)は、12ビット以上のレジスタであればよい。メモリ1(120)及びメモリ2(130)が、それぞれ、書き込みモードか読み出しモードかを最も簡単に判断するためには、アドレスカウンタ1(220)及びアドレスカウンタ2(230)は、12ビットであるのが好ましい(i=j=1の場合)。アドレスカウンタ1(220)又はアドレスカウンタ2(230)の最上位1ビットに基づいて、メモリ1(120)又はメモリ2(130)が読み出しモード又は書き込みモードのいずれに設定されているかを判断するようにできるからである。この場合、制御回路200は、メモリ1(120)又はメモリ2(130)を読み出しモード又は書き込みモードの設定に切り替える時に、アドレスカウンタ1(220)又はアドレスカウンタ2(230)の下位11ビットをすべて0に、最上位ビットを反転した値に初期化し、メモリ1(120)又はメモリ2(130)に対してデータ書き込み又はデータ読み出しをする毎に、アドレスカウンタ1(220)又はアドレスカウンタ2(230)を1ずつインクリメントするようにすればよい。
制御回路200は、シーケンサ210を含んでもよい。シーケンサ210は、メモリ1(120)及びメモリ2(130)のモード設定(書き込みモード、読み出しモード、ウェイトモード等)の状態を管理する。制御回路200は、シーケンサ210が管理するモード設定の状態に応じて、メモリ1(120)及びメモリ2(130)に対する書き込み及び読み出しの制御を行う。また、制御回路200は、シーケンサ210が管理するモード設定の状態に応じて、受信回路110によるリクエスト信号12の送出を制御する。
制御回路200は、メモリ制御信号生成回路260を含んでもよい。メモリ制御信号生成回路260は、シーケンサ260の状態をデコードし、メモリ1(120)及びメモリ2(130)に対するチップセレクト信号、ライトイネーブル信号、リードイネーブル信号等の制御信号(262、264)を生成してもよい。また、メモリ制御信号生成回路260は、アドレスカウンタ1(220)及びアドレスカウンタ2(230)の最上位ビットに基づいて、メモリ1(120)及びメモリ2(130)に対するライトイネーブル信号やリードイネーブル信号を生成してもよい。
バッファ装置10は、セレクタ140を含んでもよい。セレクタ140は、メモリ1(120)から読み出したデータ122又はメモリ2(130)から読み出したデータ132のいずれかを選択し、選択したデータ142を送信回路150に供給する。制御回路200は、読み出しモードに設定されているメモリの出力を選択するようにデコーダ140を制御する。
バッファ装置10は、送信回路150を含む。送信回路150は、メモリ1(120)及びメモリ2(130)のいずれか一方から読み出したデータ14を送信するデータ送信部として機能する。デコーダ30は、バッファ装置10に対してデータ送信を要求するリクエスト信号32を送信する。送信回路150は、リクエスト信号32を検出した時は、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ読み出しが可能である場合のみ、リクエスト信号32に対する応答を確認するためのアクノリッジ信号16を送出するとともにメモリ1(120)又はメモリ2(130)から読み出したデータ14を送信する。送信回路150は、読み出しモードに設定されたメモリ1(120)又はメモリ2(130)に対するデータ読み出しが終了し、他方のメモリ1(120)又はメモリ2(130)に対するデータ書き込みが終了していない時は、アクノリッジ信号16を送出しない。制御回路200は、シーケンサ210が管理するモード設定の状態に応じて、送信回路150によるアクノリッジ信号16の送出及びデータ14を制御する。
なお、バッファ装置10、ホストインターフェース回路20及びデコーダ30を含んで半導体集積回路装置を構成してもよい。例えば、半導体集積回路装置として、ホストインターフェース回路20が圧縮音声データを受信し、デコーダ30が圧縮音声データをデコードして音声データを再生する音声再生装置を考えることができる。
図2は、本実施形態に係るバッファ装置の状態遷移図である。以下、図1を参照しながら、バッファ装置10(シーケンサ210)の状態遷移について説明する。なお、以下では、メモリ1(120)及びメモリ2(130)は、0x000〜0x7FFのアドレスを有する2048バイトの記憶容量を有し、アドレスカウンタ1(220)及びアドレスカウンタ2(230)は12ビットとして説明する。
リセット信号が入力されると、バッファ装置10(シーケンサ210)はステートST0に遷移する。ステートST0は初期状態であり、ステートST0において、メモリ1(120)は書き込みモードに設定され、メモリ2(130)はウェイトモードに設定される。図3は、バッファ装置のステートST0における処理のフローチャートの例である。まず、制御回路200は、アドレスカウンタ1(220)及びアドレスカウンタ2(230)を0x000に初期化する(ステップS10、S12)。ここで、メモリ1(120)に対して先頭アドレスから書き込みを行うために、アドレスカウンタ1(220)の下位11ビットを0x000に設定し、最上位ビットを0に設定している。また、制御回路200は、終了アドレスレジスタ1(240)及び終了アドレスレジスタ2(250)を0x7FFに初期化する(ステップS14、S16)。ここで、メモリ1(120)の最終アドレス(0x7FF)に対して書き込みが行われた時に終了アドレスレジスタ1(240)を更新する制御を不要にするために、終了アドレスレジスタ1(240)をメモリ1(120)の最終アドレスである0x7FFに初期化している。さらに、制御回路200は、メモリ1(120)を書き込みモードに設定(初期化)し(ステップS18)、メモリ2(130)をウェイトモードに設定(初期化)する(ステップS20)。すなわち、初期状態では、メモリ1(120)に対する書き込みが可能な状態になる。一方、メモリ2(130)には有効なデータが存在していないので、読み出しが可能な状態にせずにメモリ1(120)に対する書き込みが終了するまでウェイト状態になる(ステップS22)。メモリ1(120)に対する書き込みが終了すると、バッファ装置10(シーケンサ210)はステートST0からST1に遷移する。
図2のステートST1において、メモリ1(120)は読み出しモードに設定され、メモリ2(130)は書き込みモードに設定される。図4は、バッファ装置10のステートST1における処理のフローチャートの例である。まず、制御回路200は、アドレスカウンタ1(220)を0x800に設定し(ステップS30)、アドレスカウンタ2(230)を0x000に設定する(ステップS32)。ここで、メモリ1(120)に対して先頭アドレスから読み出しを行うために、アドレスカウンタ1(220)の下位11ビットを0x000に設定し、最上位ビットを1に設定している。同様に、メモリ2(130)に対して先頭アドレスから書き込みを行うために、アドレスカウンタ2(230)の下位11ビットを0x000に設定し、最上位ビットを0に設定している。また、制御回路200は、終了アドレスレジスタ2(250)を0x7FFに設定する(ステップS34)。ここで、メモリ2(130)の最終アドレス(0x7FF)に対して書き込みが行われた時に終了アドレスレジスタ2(250)を更新する制御を不要にするために、終了アドレスレジスタ2(250)をメモリ2(130)の最終アドレスである0x7FFに設定している。さらに、制御回路200は、メモリ1(120)を読み出しモードに設定し(ステップS36)、メモリ2(130)を書き込みモードに設定する(ステップS38)。すなわち、メモリ1(120)に対する読み出しが可能な状態になり、メモリ2(130)に対する書き込みが可能な状態になる。次に、制御回路200は、メモリ1(120)に対する読み出し又はメモリ2(130)に対する書き込みが終了したか否か判断する。すなわち、制御回路200は、メモリ1(120)に対する読み出しが終了したか否か判断し(ステップS40)、メモリ1(120)に対する読み出しが終了していない場合は、メモリ2(130)に対する書き込みが終了しているか否か判断する(ステップS42)。メモリ2(130)に対する書き込みが終了している場合は、バッファ装置10(シーケンサ210)はステートST1からST2に遷移する。一方、ステップS40において、メモリ1(120)に対する読み出しが終了した場合は、メモリ2(130)に対する書き込みが終了しているか否か判断する(ステップS44)。メモリ2(130)に対する書き込みが終了していない場合は、バッファ装置10(シーケンサ210)はステートST1からST3に遷移する。メモリ2(130)に対する書き込みが終了している場合は、バッファ装置10(シーケンサ210)はステートST1からST4に遷移する。
図2のステートST2において、メモリ1(120)は読み出しモードに設定されたままであり、メモリ2(130)はウェイトモードに設定される。図5は、バッファ装置10のステートST2における処理のフローチャートの例である。制御回路200は、メモリ2(130)をウェイトモードに設定する(ステップS50)。すなわち、メモリ2(130)に対する読み出し及び書き込みが禁止される。メモリ1(120)は読み出しモードに設定されたままである。次に、制御回路200は、メモリ1(120)に対する読み出しが終了したか否か判断する(ステップS52)。メモリ1(120)に対する読み出しが終了すると、バッファ装置10(シーケンサ210)はステートST2からST4に遷移する。
図2のステートST3において、メモリ1(120)はウェイトモードに設定され、メモリ2(130)は書き込みモードに設定されたままである。図6は、バッファ装置10のステートST3における処理のフローチャートの例である。制御回路200は、メモリ1(120)をウェイトモードに設定する(ステップS70)。すなわち、メモリ1(120)に対する読み出し及び書き込みが禁止される。メモリ2(130)は書き込みモードに設定されたままである。次に、制御回路200は、メモリ2(130)に対する書き込みが終了したか否か判断する(ステップS72)。メモリ2(130)に対する書き込みが終了すると、バッファ装置10(シーケンサ210)はステートST3からST4に遷移する。
図2のステートST4において、メモリ1(120)は書き込みモードに設定され、メモリ2(130)は読み出しモードに設定される。図7は、バッファ装置10のステートST4における処理のフローチャートの例である。まず、制御回路200は、アドレスカウンタ1(220)を0x000に設定し(ステップS90)、アドレスカウンタ2(230)を0x800に設定する(ステップS92)。ここで、メモリ1(120)に対して先頭アドレスから書き込みを行うために、アドレスカウンタ1(220)の下位11ビットを0x000に設定し、最上位ビットを0に設定している。同様に、メモリ2(130)に対して先頭アドレスから読み出しを行うために、アドレスカウンタ2(230)の下位11ビットを0x000に設定し、最上位ビットを1に設定している。また、制御回路200は、終了アドレスレジスタ1(240)を0x7FFに設定する(ステップS94)。ここで、メモリ1(120)の最終アドレス(0x7FF)に対して書き込みが行われた時に終了アドレスレジスタ1(240)を更新する制御を不要にするために、終了アドレスレジスタ1(240)をメモリ1(120)の最終アドレスである0x7FFに設定している。さらに、制御回路200は、メモリ1(120)を書き込みモードに設定し(ステップS96)、メモリ2(130)を読み出しモードに設定する(ステップS98)。すなわち、メモリ1(120)に対する書き込みが可能な状態になり、メモリ2(130)に対する読み出しが可能な状態になる。次に、制御回路200は、メモリ1(120)に対する書き込み又はメモリ2(130)に対する読み出しが終了したか否か判断する。すなわち、制御回路200は、メモリ1(120)に対する書き込みが終了したか否か判断し(ステップS100)、メモリ1(120)に対する書き込みが終了していない場合は、メモリ2(130)に対する読み出しが終了しているか否か判断する(ステップS102)。メモリ2(130)に対する読み出しが終了している場合は、バッファ装置10(シーケンサ210)はステートST4からST5に遷移する。一方、ステップS100において、メモリ1(120)に対する書き込みが終了した場合は、メモリ2(130)に対する読み出しが終了しているか否か判断する(ステップS104)。メモリ2(130)に対する読み出しが終了していない場合は、バッファ装置10(シーケンサ210)はステートST4からST6に遷移する。メモリ2(130)に対する読み出しが終了している場合は、バッファ装置10(シーケンサ210)はステートST4からST1に遷移する。
図2のステートST5において、メモリ1(120)はウェイトモードに設定され、メモリ2(130)は読み出しモードに設定されたままである。図8は、バッファ装置10のステートST5における処理のフローチャートの例である。制御回路200は、メモリ1(120)をウェイトモードに設定する(ステップS110)。すなわち、メモリ1(120)に対する読み出し及び書き込みが禁止される。メモリ2(130)は読み出しモードに設定されたままである。次に、制御回路200は、メモリ2(130)に対する読み出しが終了したか否か判断する(ステップS112)。メモリ2(130)に対する読み出しが終了すると、バッファ装置10(シーケンサ210)はステートST5からST1に遷移する。
図2のステートST6において、メモリ1(120)は書き込みモードに設定されたままであり、メモリ2(130)はウェイトモードに設定される。図9は、バッファ装置10のステートST6における処理のフローチャートの例である。制御回路200は、メモリ2(130)をウェイトモードに設定する(ステップS130)。すなわち、メモリ2(130)に対する読み出し及び書き込みが禁止される。メモリ1(120)は書き込みモードに設定されたままである。次に、制御回路200は、メモリ1(120)に対する書き込みが終了したか否か判断する(ステップS132)。メモリ1(120)に対する書き込みが終了すると、バッファ装置10(シーケンサ210)はステートST6からST1に遷移する。
図10は、本実施形態に係るバッファ装置がメモリ1又はメモリ2を書き込みモードに設定した時の書き込み処理のフローチャートの例である。すなわち、図10のフローチャートは、図2で説明した状態遷移図のステートST0、ST4、ST6におけるメモリ1に対する書き込み処理及びステートST1、ST3におけるメモリ2に対する書き込み処理のフローに対応する。以下、図1を参照しながら、メモリ1を書き込みモードに設定した場合を例にとり、図10のフローチャートについて説明する。メモリ2を書き込みモードに設定した場合も、メモリ2に対する書き込み処理に図10のフローチャートを同様に適用することができる。
図10のフローチャートの初期状態において、メモリ1(120)が書き込みモードに設定されており、アドレスカウンタ1(220)は0x000に設定されている。また、終了アドレスレジスタ1(240)は、0x7FFに設定されている。
まず、制御回路200は、書き込みモードに設定されたメモリ1(120)の最終アドレス(0x7FF)に書き込みが行われたか否か判断する(ステップS200)。ステップS200において、メモリ1(120)の最終アドレス(0x7FF)に書き込みが行われた場合は、制御回路200は、メモリ1(120)に対する書き込み処理を終了する。一方、メモリ1(120)の最終アドレス(0x7FF)に書き込みが行われなければ、受信回路110は、ホストインターフェース回路20に対してリクエスト信号12を送出する(ステップS202)。
次に、受信回路110は、ホストインターフェース回路20がアクノリッジ信号24を送信してきたか否か判断する(ステップS204)。受信回路110は、アクノリッジ信号24を検出することができなかった場合は、ホストインターフェース回路20に対して再度リクエスト信号12を送出する(ステップS202)。ステップS204において、アクノリッジ信号24を検出した場合は、受信回路110はホストインターフェース回路20が送信するデータ22を受信し、制御回路200は、メモリ1(120)に対して、アドレスカウンタ1(220)で示されるアドレスに受信したデータ112を書き込む(ステップS206)。例えば、アドレスカウンタ1(220)は最初は0x000に設定されているので、制御回路200は、メモリ1(120)の0x000アドレス(アドレスカウンタ1(220)の下位11ビットの値)に書き込みを行う。
次に、受信回路110は、ホストインターフェース回路20がデータ112とともにデータ終了信号26を送信してきたか否か判断する(ステップS208)。受信回路110がデータ終了信号26を検出しなかった場合は、制御回路200は、アドレスカウンタ1(220)をインクリメントする(ステップS210)。例えば、制御回路200は、アドレスカウンタ1(220)を0x000から0x001にインクリメントする。以後、バッファ装置10は、メモリ1(120)の0x001以降のアドレスに対して、ステップS200〜S210の処理を繰り返す。ステップS208において、受信回路110がデータ終了信号26を検出した場合は、制御回路200は、終了アドレスレジスタ1(240)にアドレスカウンタ1(220)の値をコピーし(ステップS212)、メモリ1(120)に対する対する書き込み処理を終了する。
なお、メモリ1(120)の最終アドレス(0x7FF)に書き込みが行われた場合(ステップS200のYESの場合)は、ステップS212の処理を行わずに書き込み処理を終了するフローになっているのは、最初に終了アドレスレジスタ1(240)が0x7FFに設定されているため、ステップS212の処理が不要だからである。メモリ1(120)の最終アドレス(0x7FF)に書き込みが行われた場合も、ステップS212の処理を行ってから書き込み処理を終了するようにしてもよい。
図11は、本実施形態に係るバッファ装置がメモリ1又はメモリ2を読み出しモードに設定した時の読み出し処理のフローチャートの例である。すなわち、図11のフローチャートは、図2で説明した状態遷移図のステートST1、ST2におけるメモリ1に対する読み出し処理及びステートST4、ST5におけるメモリ2に対する読み出し処理のフローに対応する。以下、図1を参照しながら、メモリ1を読み出しモードに設定した場合を例にとり、図11のフローチャートについて説明する。メモリ2を読み出しモードに設定した場合も、メモリ2に対する読み出し処理に図11のフローチャートを同様に適用することができる。
図11のフローチャートの初期状態において、メモリ1(120)が読み出しモードに設定されており、アドレスカウンタ1(220)は0x800に設定されている。また、終了アドレスレジスタ1(240)には、メモリ1(120)に対する直前の書き込み処理において最後に書き込みが行われたアドレスが記憶されており、例えば、0x3FFに設定されている。
まず、制御回路200は、読み出しモードに設定されたメモリ1(120)の最終アドレス(0x7FF)から読み出しが行われたか否か判断する(ステップS220)。ステップS220において、メモリ1(120)の最終アドレス(0x7FF)から読み出しが行われた場合は、制御回路200は、メモリ1(120)に対する読み出し処理を終了する。一方、メモリ1(120)の最終アドレス(0x7FF)から読み出しが行われなければ、送信回路150は、デコーダ30がリクエスト信号32を送信してきたか否か判断する(ステップS222)。送信回路150は、リクエスト信号32を検出するまでメモリ1(120)に対する読み出しを行わない。ステップS222において、リクエスト信号32を検出した場合は、制御回路200は、メモリ1(120)に対して、アドレスカウンタ1(220)で示されるアドレスからデータを読み出す(ステップS224)。例えば、アドレスカウンタ1(220)は最初は0x800に設定されているので、制御回路200は、メモリ1(120)の0x000アドレス(アドレスカウンタ1(220)の下位11ビットの値)から読み出しを行う。
次に、送信回路150は、制御回路200がメモリ1(120)から読み出したデータ122を送信データ14としてアクノリッジ信号16とともにデコーダ30に送信する(ステップS226)。ここで、制御回路200は、セレクタ140がメモリ1(120)から読み出したデータ122を選択するように制御する。
次に、制御回路200は、メモリ1(120)の、データ終了アドレスレジスタ1(240)で示されるアドレス(例えば、0x3FF)から読み出しを行ったか否か判断する(ステップS228)。データ終了アドレスレジスタ1(240)で示されるアドレスからまだ読み出しを行っていない場合は、制御回路200は、アドレスカウンタ1(220)をインクリメントする(ステップS230)。例えば、制御回路200は、アドレスカウンタ1(220)を0x000から0x001にインクリメントする。以後、バッファ装置10は、メモリ1(120)の0x001以降のアドレスに対して、ステップS220〜S230の処理を繰り返す。制御回路200が、ステップS224において、メモリ1(120)の、データ終了アドレスレジスタ1(240)で示されるアドレスから読み出しを行った場合(ステップS228のYESの場合)は、制御回路200は、メモリ1(120)に対する対する読み出し処理を終了する。
2.マイクロコンピュータ
図12は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
図12は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
本マイクロコンピュータ700は、CPU510、キャッシュメモリ520、ROM710、RAM720、MMU730、LCDコントローラ530、リセット回路540、プログラマブルタイマ550、リアルタイムクロック(RTC)560、DMAコントローラ570、割り込みコントローラ580、通信制御回路590、バスコントローラ600、A/D変換器610、D/A変換器620、入力ポート630、出力ポート640、I/Oポート650、クロック発生装置660、プリスケーラ670、クロック停止制御回路740及びそれらを接続する汎用バス680、専用バス750等、各種ピン690等を含む。
3.電子機器
図13に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、メモリ830、電源生成部840、LCD850、音出力部860を含む。
図13に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、メモリ830、電源生成部840、LCD850、音出力部860を含む。
ここで、入力部820は、種々のデータを入力するためのものである。マイクロコンピュータ810は、この入力部820により入力されたデータに基づいて種々の処理を行うことになる。メモリ830は、マイクロコンピュータ810などの作業領域となるものである。電源生成部840は、電子機器800で使用される各種電源を生成するためのものである。LCD850は、電子機器が表示する各種の画像(文字、アイコン、グラフィック等)を出力するためのものである。
音出力部860は、電子機器800が出力する各種の音(音声、ゲーム音等)を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
図14(A)に、電子機器の1つである携帯電話950の外観図の例を示す。この携帯電話950は、入力部として機能するダイヤルボタン952や、電話番号や名前やアイコンなどを表示するLCD954や、音出力部として機能し音声を出力するスピーカ956を備える。
図14(B)に、電子機器の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、入力部として機能する操作ボタン962、十字キー964や、ゲーム画像を表示するLCD966や、音出力部として機能しゲーム音を出力するスピーカ968を備える。
図14(C)に、電子機器の1つであるパーソナルコンピュータ970の外観図の例を示す。このパーソナルコンピュータ970は、入力部として機能するキーボード972や、文字、数字、グラフィックなどを表示するLCD974、音出力部976を備える。
本実施の形態のマイクロコンピュータを図14(A)〜図14(C)の電子機器に組みむことにより、低価格でコストパフォーマンスの高い電子機器を短期間で提供することができる。
なお、本実施形態を利用できる電子機器としては、図14(A)、(B)、(C)に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のLCDを使用する種々の電子機器を考えることができる
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
例えば、図10で説明した書き込み処理のフローチャートでは、ステップS210において、アドレスカウンタをインクリメントしているが、アドレスカウンタ1、2をダウンカウンタとして構成し、ステップS210においてアドレスカウンタをデクリメントする構成にしてもよい。同様に、図11で説明した読み出し処理のフローチャートでは、ステップS230において、アドレスカウンタをインクリメントしているが、アドレスカウンタ1、2をダウンカウンタとして構成し、ステップS230においてアドレスカウンタをデクリメントする構成にしてもよい。アドレスカウンタ1、2をダウンカウンタとして構成した場合、図3において、ステップS10、S12、S14、S16の初期値をそれぞれ、0x7FF、0x7FF、0x000、0x000に変更すればよい。同様に、図4において、ステップS30、S32、S34の設定値をそれぞれ、0xFFF、0x7FF、0x000に変更すればよい。同様に、図7において、ステップS90、S92、S94の設定値をそれぞれ、0x7FF、0xFFF、0x000に変更すればよい。
また、例えば、図1〜図11では、メモリ1(120)又はメモリ2(130)の書き込みモードの設定及び読み出しモードの設定を、12ビットのアドレスカウンタ1(220)又は12ビットのアドレスカウンタ2(230)の最上位ビットがそれぞれ0の時及び1の時に対応させているが、これに限られない。メモリ1(120)又はメモリ2(130)の書き込みモードの設定及び読み出しモードの設定を、12ビットのアドレスカウンタ1(220)又は12ビットのアドレスカウンタ2(230)の最上位ビットがそれぞれ1の時及び0の時に対応させてもよい。
また、例えば、図2で説明した状態遷移図のステートST1における処理のフローを示す図4において、ステップS34で終了アドレスレジスタ2の設定を行っているが、メモリ2に対する読み出し処理が終了した時に設定してもよい。すなわち、図2のステートST4からST1又はST6に遷移する時及びST5からST1に遷移する時に終了アドレスレジスタ2を初期化してもよい。同様に、図2のステートST1からST4又はST3に遷移する時及びST2からST4に遷移する時に終了アドレスレジスタ1を初期化してもよい。
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
10 バッファ装置、12 リクエスト信号、14 送信データ、16 アクノリッジ信号、20 ホストインターフェース回路、22 入力データ、24 アクノリッジ信号、26 データ終了信号、30 デコーダ、32 リクエスト信号、40 ホスト、110 受信回路、112 受信データ、120 メモリ1、122 読み出しデータ、130 メモリ2、132 読み出しデータ、140 セレクタ、142 選択データ、150 送信回路、200 制御回路、210 シーケンサ、220 アドレスカウンタ1、222 アドレス信号、230 アドレスカウンタ2、232 アドレス信号、240 終了アドレスレジスタ1、250 終了アドレスレジスタ2、260 メモリ制御信号生成回路、262 制御信号、264 制御信号、510 CPU、520 キャッシュメモリ、530 LCDコントローラ、540 リセット回路、550 プログラマブルタイマ、560 リアルタイムクロック(RTC)、570 DMAコントローラ兼バスI/F、580 割り込みコントローラ、590 通信制御回路(シリアルインターフェース)、600 バスコントローラ、610 A/D変換器、620 D/A変換器、630 入力ポート、640 出力ポート、650 I/Oポート、660 クロック発生装置(PLL)、670 プリスケーラ、680 汎用バス、690 各種ピン、700 マイクロコンピュータ、710 ROM、720 RAM、730 MMU、740 クロック停止制御回路、750 専用バス、800 電子機器、810 マイクロコンピュータ(ASIC)、820 入力部、830 メモリ、840 電源生成部、850 LCD、860 音出力部、950 携帯電話、952 ダイヤルボタン、954 LCD、956 スピーカ、960 携帯型ゲーム装置、962 操作ボタン、964 十字キー、966 LCD、968 スピーカ、970 パーソナルコンピュータ、972 キーボード、974 LCD、976 音出力部
Claims (11)
- 時系列に入力される一群のデータを一旦保持し、入力された順に送信するバッファ装置であって、
前記一群のデータを受信するデータ受信部と、
前記データ受信部が受信したデータを記憶するための第1のシングルポートメモリと、
前記データ受信部が受信したデータを記憶するための第2のシングルポートメモリと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリに対するデータの書き込み及び読み出しを制御する制御部と、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するデータ送信部と、を含み、
前記制御部は、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定し、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了し、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了し、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるように制御することを特徴とするバッファ装置。 - 請求項1において、
前記データ受信部は、
前記一群のデータの最後のデータに関連づけて入力されるデータ終了信号を受信し、
前記制御部は、
前記データ終了信号に基づいて、前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みを終了することを特徴とするバッファ装置。 - 請求項1又は2において、
前記制御部は、
前記第1のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第1の書き込み終了アドレスレジスタと、
前記第2のシングルポートメモリに対するデータ書き込みの終了アドレスを記憶する第2の書き込み終了アドレスレジスタと、を含み、
前記一群のデータの最後のデータを書き込んだ、前記第1のシングルポートメモリのアドレスを、前記第1の書き込み終了アドレスレジスタに記憶させ、
前記一群のデータの最後のデータを書き込んだ、前記第2のシングルポートメモリのアドレスを、前記第2の書き込み終了アドレスレジスタに記憶させ、
前記第1のシングルポートメモリの、前記第1の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第1のシングルポートメモリに対するデータ読み出しを終了し、
前記第2のシングルポートメモリの、前記第2の書き込み終了アドレスレジスタが記憶するアドレスからデータを読み出すと、前記第2のシングルポートメモリに対するデータ読み出しを終了するように制御することを特徴とするバッファ装置。 - 請求項1乃至3のいずれかにおいて、
前記第1のシングルポートメモリは、
異なるアドレスが割り当てられた2n(nは0以上の整数)個の記憶領域を含み、
前記第2のシングルポートメモリは、
異なるアドレスが割り当てられた2m(mは0以上の整数)個の記憶領域を含み、
前記制御部は、
前記第1のシングルポートメモリのアドレスを生成する、n+i(iは1以上の整数)ビットの第1のアドレスカウンタと、
前記第2のシングルポートメモリのアドレスを生成する、m+j(jは1以上の整数)ビットの第2のアドレスカウンタと、を含み、
前記第1のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第1のアドレスカウンタの下位nビットをすべて0に、上位iビットの少なくとも一部を反転した値に初期化し、前記第1のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第1のアドレスカウンタを1ずつインクリメントし、前記第1のアドレスカウンタの上位iビットの少なくとも一部に基づいて、前記第1のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断し、
前記第2のシングルポートメモリを前記読み出しモード又は前記書き込みモードの設定に切り替える時に、前記第2のアドレスカウンタの下位mビットをすべて0に、上位jビットの少なくとも一部を反転した値に初期化し、前記第2のシングルポートメモリに対してデータ書き込み又はデータ読み出しをする毎に、前記第2のアドレスカウンタを1ずつインクリメントし、前記第2のアドレスカウンタの上位jビットの少なくとも一部に基づいて、前記第2のシングルポートメモリが読み出しモード又は書き込みモードのいずれに設定されているかを判断するように制御するすることを特徴とするバッファ装置。 - 請求項1乃至4のいずれかにおいて、
前記制御部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ読み出しが終了するまで、データ書き込み及びデータ読み出しを禁止するウェイトモードに設定し、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了した時は、当該シングルポートメモリを、他方のシングルポートメモリに対するデータ書き込みが終了するまで、前記ウェイトモードに設定することを特徴とするバッファ装置。 - 請求項1乃至5のいずれかにおいて、
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが可能である時は、入力データの供給を要求するリクエスト信号を送出し、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を検出した場合のみデータを受信し、
前記データ送信部は、
データ送信を要求するリクエスト信号を検出した時は、前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが可能である場合のみ、前記リクエスト信号に対する応答を確認するためのアクノリッジ信号を送出するとともに当該シングルポートメモリから読み出したデータを送信することを特徴とするバッファ装置。 - 請求項6において、
前記データ受信部は、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みが終了し、他方のシングルポートメモリに対するデータ読み出しが終了していない時は、前記リクエスト信号を送出せず、
前記データ送信部は、
前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しが終了し、他方のシングルポートメモリに対するデータ書き込みが終了していない時は、前記アクノリッジ信号を送出しないことを特徴とするバッファ装置。 - 請求項1乃至7のいずれかに記載されたバッファ装置を含むことを特徴とする半導体集積回路装置。
- 請求項8に記載の半導体集積回路装置を含むことを特徴とするマイクロコンピュータ。
- 請求項9に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器。 - 第1のシングルポートメモリ及び第2のシングルポートメモリを含み、時系列に入力される一群のデータを前記第1のシングルポートメモリ又は前記第2のシングルポートメモリのいずれかに一旦保持し、入力された順に送信するバッファ装置の制御方法であって、
前記一群のデータを受信するステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリを、データ書き込みを可能にする書き込みモード又はデータ読み出しを可能にする読み出しモードのいずれかに排他的に設定するステップと、
前記書き込みモードに設定されたシングルポートメモリに前記一群のデータの最後のデータを書き込むか、または、当該シングルポートメモリの所定のアドレスにデータを書き込むと、当該シングルポートメモリに対するデータ書き込みを終了するステップと、
前記読み出しモードに設定されたシングルポートメモリから前記一群のデータの最後のデータを読み出すか、または、当該シングルポートメモリの前記所定のアドレスからデータを読み出すと、当該シングルポートメモリに対するデータ読み出しを終了するステップと、
前記書き込みモードに設定されたシングルポートメモリに対するデータ書き込みと前記読み出しモードに設定されたシングルポートメモリに対するデータ読み出しがともに終了すると、前記書き込みモードに設定されたシングルポートメモリを前記読み出しモードの設定に切り替えるとともに前記読み出しモードに設定されたシングルポートメモリを前記書き込みモードの設定に切り替えるステップと、
前記第1のシングルポートメモリ及び前記第2のシングルポートメモリのいずれか一方から読み出したデータを送信するステップと、を含むことを特徴とするバッファ装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007107335A JP2008269018A (ja) | 2007-04-16 | 2007-04-16 | バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007107335A JP2008269018A (ja) | 2007-04-16 | 2007-04-16 | バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008269018A true JP2008269018A (ja) | 2008-11-06 |
Family
ID=40048476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007107335A Withdrawn JP2008269018A (ja) | 2007-04-16 | 2007-04-16 | バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008269018A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021019291A (ja) * | 2019-07-19 | 2021-02-15 | 株式会社リコー | シリアル通信装置、通信制御方法、及びプログラム |
-
2007
- 2007-04-16 JP JP2007107335A patent/JP2008269018A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021019291A (ja) * | 2019-07-19 | 2021-02-15 | 株式会社リコー | シリアル通信装置、通信制御方法、及びプログラム |
JP7334519B2 (ja) | 2019-07-19 | 2023-08-29 | 株式会社リコー | シリアル通信装置、通信制御方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9501964B2 (en) | Semiconductor device and data processing system selectively operating as one of a big endian or little endian system | |
CN115858431B (zh) | 数据传输控制方法、控制器及电子设备 | |
CN108780420B (zh) | 在基于处理器的***中的存储器中的经压缩存储器线的基于优先级的存取 | |
CN107864140B (zh) | 多媒体处理***及其操作方法 | |
JP2006277332A (ja) | 集積回路装置、マイクロコンピュータ及び電子機器 | |
CN113238977A (zh) | 数据传输方法、装置、***、电子设备及存储介质 | |
JP2006268727A (ja) | 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器 | |
US6654839B1 (en) | Interrupt controller, asic, and electronic equipment | |
JP2006252006A (ja) | デバッグシステム、半導体集積回路装置、マイクロコンピュータ及び電子機器 | |
JP2008269018A (ja) | バッファ装置、半導体集積回路装置、マイクロコンピュータ、電子機器、バッファ装置の制御方法 | |
KR100731969B1 (ko) | 복수 경로를 통한 메모리 공유 방법 및 장치 | |
KR100736902B1 (ko) | 복수의 프로세서에 의한 메모리 공유 방법 및 장치 | |
KR100710626B1 (ko) | 데이터 버스 확장 구조를 갖는 디지털 처리 장치 및 그방법 | |
JP4346506B2 (ja) | 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置 | |
US7363465B2 (en) | Semiconductor device, microcomputer, and electronic equipment | |
KR100634008B1 (ko) | 이미지 데이터의 디코딩장치 및 방법 | |
JP2008065549A (ja) | マイクロコンピュータ、情報処理システム、電子機器及びマイクロコンピュータの起動制御方法 | |
US7831740B2 (en) | Method and circuit for programming electronic devices | |
EP1126466A1 (en) | Electronic device for the recording/reproduction of voice data | |
JP2006148232A (ja) | 集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器 | |
KR100719808B1 (ko) | 메모리 공유 방법 및 메모리 공유 구조를 가지는 휴대용단말기 | |
JP2001265303A (ja) | 半導体集積回路装置、マイクロコンピュータ及び電子機器 | |
JP2006209303A (ja) | 集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器 | |
KR20220113180A (ko) | 복수의 디스플레이를 포함하는 디스플레이 시스템 및 그 영상 출력 방법 | |
KR101101867B1 (ko) | 모바일 스토리지 제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100706 |