(57)【要約】  【課題】  他の機能ユニットとの間で送受信データのやり取りを効率的に行うことができるシリアルデータ送受信装置を提供する。  【解決手段】  送受信シフトレジスタ９０２は、受信したシリアルデータＳＤＲをパラレルデータに変換するとともに、パラレルデータをシリアルデータＳＤＳに変換して送信する。送受信バッファレジスタ９０４は、メインＲＡＭ２５上に構成される送受信バッファＳＲＢに受信データを書き込み、送受信バッファＳＲＢから送信データを読み込む。送受信シフトレジスタ９０２は、受信開始の設定後の最初の受信データＳＤＲの変化点から受信データを有効な受信データＶＤＲとして送受信バッファレジスタ９０４に送出し、送信開始の設定後から送受信バッファレジスタ９０４から受領した送信データＳＤＳを有効な送信データとして送信する。【選択図】  図３
2007128189.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータの送受信を行うシリアルデータ送受信装置であって、
受信したシリアルデータをパラレルデータに変換するシリアル／パラレル変換手段と、
パラレルデータをシリアルデータに変換して送信するパラレル／シリアル変換手段と、
前記シリアルデータ送受信装置と他の機能ユニットとで共有される、前記シリアルデータ送受信装置の外部に設けられた共有メモリ上に構成される送受信バッファに受信データを書き込み、かつ、前記送受信バッファから送信データを読み込む送受信バッファアクセス手段と、を備え、
前記シリアル／パラレル変換手段は、受信データを監視し、受信開始の設定後の最初の受信データの変化点から受信データを有効な受信データとして前記送受信バッファアクセス手段に送出し、
前記パラレル／シリアル変換手段は、送信開始の設定後から前記送受信バッファアクセス手段から受領した送信データを有効な送信データとして送信する、シリアルデータ送受信装置。
【請求項２】
前記シリアル／パラレル変換手段は、受信開始の設定後の最初の受信データの変化点を検出した際、その変化前の１ビットを含めて有効な受信データとして前記送受信バッファアクセス手段に出力する、請求項１記載のシリアルデータ送受信装置。
【請求項３】
前記パラレル／シリアル変換手段は、既定のデータ量の送信が完了すると、指示を受けることなくデータ送信を停止する、請求項１又は２記載のシリアルデータ送受信装置。
【請求項４】
前記送受信バッファの領域の始端アドレス及び終端アドレスは、前記シリアルデータ送受信装置の外部の機能ユニットによって、前記共有メモリのアドレスにて設定される、請求項１から３記載のシリアルデータ送受信装置。
【請求項５】
前記送受信バッファの領域の前記始端アドレス及び前記終端アドレスは、前記外部の機能ユニットにより任意の値に設定可能である、請求項４記載のシリアルデータ送受信装置。
【請求項６】
前記送受信バッファアクセス手段は、前記送受信バッファからの送信データの読出し位置、または前記送受信バッファへの受信データの書き込み位置を指し示すポインタを備え、
前記ポインタの値はデータの送信または受信が行われる毎にインクリメントされ、前記ポインタの値が前記終端アドレスに一致すると前記始端アドレスに再設定される、請求項４又は５記載のシリアルデータ送受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルデータの送受信を行うシリアルデータ送受信装置及びその関連技術に関する。
【背景技術】
【０００２】
非特許文献１には、シリアルポートを持った入出力コントローラを備えるコンピュータシステムが紹介されている。
【０００３】
【非特許文献１】Ｄａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎ／Ｊｏｈｎ  Ｌ．Ｈｅｎｎｅｓｓｙ著，成田光彰訳，「コンピュータの構成と設計（下）」，第２版，日経ＢＰ社，１９９９年５月１７日，ｐ．６３９，６４０
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、非特許文献１には、入出力コントローラによる具体的な送受信の手順については開示がない。
【０００５】
そこで、本発明は、他の機能ユニットとの間で送受信データのやり取りを効率的に行うことができ、しかも、他の機能ユニットの処理軽減に貢献でき、かつ、共有資源を効率的に使用できるシリアルデータ送受信装置及びその関連技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の観点によれば、シリアルデータ送受信装置は、シリアルデータの送受信を行うシリアルデータ送受信装置であって、受信したシリアルデータをパラレルデータに変換するシリアル／パラレル変換手段と、パラレルデータをシリアルデータに変換して送信するパラレル／シリアル変換手段と、前記シリアルデータ送受信装置と他の機能ユニットとで共有される、前記シリアルデータ送受信装置の外部に設けられた共有メモリ上に構成される送受信バッファに受信データを書き込み、かつ、前記送受信バッファから送信データを読み込む送受信バッファアクセス手段と、を備え、前記シリアル／パラレル変換手段は、受信データを監視し、受信開始の設定後の最初の受信データの変化点から受信データを有効な受信データとして前記送受信バッファアクセス手段に送出し、前記パラレル／シリアル変換手段は、送信開始の設定後から前記送受信バッファアクセス手段から受領した送信データを有効な送信データとして送信する。
【０００７】
この構成によれば、シリアルデータ送受信用のバッファ、つまり、送受信バッファが、他の機能ユニットとの共有メモリ上に構成され、シリアルデータ送受信装置が、他の機能ユニット（例えばＣＰＵ等）を介さずに直接共有メモリへアクセスを行うことが可能であるので、大きなサイズの送受信を行いやすく、他の機能ユニットが受信データを取得したり送信データを設定したりするためには、単に共有メモリにアクセスを行えばよいため、送受信データを他の機能ユニット（例えばＣＰＵ等）とやり取りすることが効率的に行える。また、シリアルデータの送受信を行わない場合には、送受信バッファの領域を他の機能ユニットが他の用途に転用して用いることが可能である。さらに、受信開始の設定後、最初の受信データの変化点から送受信バッファへの受信データの格納が行われるため、最初の有効な受信データ前の無駄な受信データが共有メモリに格納されることがないため、他の機能ユニット（例えばＣＰＵ等）による受信データの処理を効率的に行うことが可能である。
【０００８】
このシリアルデータ送受信装置において、前記シリアル／パラレル変換手段は、受信開始の設定後の最初の受信データの変化点を検出した際、その変化前の１ビットを含めて有効な受信データとして前記送受信バッファアクセス手段に出力する。
【０００９】
この構成によれば、最初の受信データの変化点における変化前の１ビットも送受信バッファに格納されるため、他の機能ユニット（例えばＣＰＵ等）によるパケットのスタートビットの検出処理などを、より高い精度で行うことができる。
【００１０】
このシリアルデータ送受信装置において、前記パラレル／シリアル変換手段は、既定のデータ量の送信が完了すると、指示を受けることなくデータ送信を停止する。
【００１１】
この構成によれば、予め設定されたデータ量の送信が完了すると自動的に送信が停止するため、送受信バッファ上に格納された不当なデータが誤って送信されてしまうことがない。
【００１２】
上記シリアルデータ送受信装置において、前記送受信バッファの領域の始端アドレス及び終端アドレスは、前記シリアルデータ送受信装置の外部の機能ユニットによって、前記共有メモリのアドレスにて設定される。
【００１３】
この構成によれば、共有メモリ上における送受信バッファの領域の位置及びサイズを自由に設定できるため、必要十分な量の領域を送受信バッファ用に確保し、それ以外の領域を他の機能ユニットが使用することで、システム全体として効率的に共有メモリを使用することが可能になる。
【００１４】
このシリアルデータ送受信装置において、前記送受信バッファの領域の前記始端アドレス及び前記終端アドレスは、前記外部の機能ユニットにより任意の値に設定可能である。
【００１５】
このシリアルデータ送受信装置において、前記送受信バッファアクセス手段は、前記送受信バッファからの送信データの読出し位置、または前記送受信バッファへの受信データの書き込み位置を指し示すポインタを備え、前記ポインタの値はデータの送信または受信が行われる毎にインクリメントされ、前記ポインタの値が前記終端アドレスに一致すると前記始端アドレスに再設定される。
【００１６】
この構成によれば、共有メモリの一部、この場合は、送受信バッファをリングバッファとして使用することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、信号のどのビットかを示す必要があるときは、信号名の後に、［ａ：ｂ］あるいは［ａ］を付する。［ａ：ｂ］は、その信号の第ａ番目のビットから第ｂ番目のビットを意味し、［ａ］は、その信号の第ａ番目のビットを意味する。「０ｂ」は２進数を、「０ｘ」は１６進数を意味する。
【００１８】
図１は、本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。図１に示すように、このマルチメディアプロセッサは、外部メモリインタフェース３、ＤＭＡＣ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）４、中央演算処理装置（以下、「ＣＰＵ」と呼ぶ。）５、ＣＰＵローカルＲＡＭ７、レンダリングプロセッシングユニット（以下、「ＲＰＵ」と呼ぶ。）９、カラーパレットＲＡＭ１１、サウンドプロセシングユニット（以下、「ＳＰＵ」と呼ぶ。）１３、ＳＰＵローカルＲＡＭ１５、ジオメトリエンジン（以下、「ＧＥ」と呼ぶ。）１７、Ｙソーティングユニット（以下、「ＹＳＵ」と呼ぶ。）１９、外部インタフェースブロック２１、メインＲＡＭアクセスアービタ２３、メインＲＡＭ２５、Ｉ／Ｏバス２７、ビデオＤＡＣ（ｄｉｇｉｔａｌ  ｔｏ  ａｎａｌｏｇ  ｃｏｎｖｅｒｔｅｒ）２９、オーディオＤＡＣブロック３１、及びＡ／Ｄコンバータ（以下、「ＡＤＣ」と呼ぶ。）３３を具備する。メインＲＡＭ２５及び外部メモリ５０を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
【００１９】
ＣＰＵ５は、メモリＭＥＭに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、ＣＰＵ５は、ＤＭＡＣ４にプログラム及びデータの転送要求を行うこともできるし、ＤＭＡＣ４を介さずに、外部メモリ５０から直接プログラムコードをフェッチし、外部メモリ５０に直接データアクセスを行うこともできる。
【００２０】
Ｉ／Ｏバス２７は、ＣＰＵ５をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット（外部メモリインタフェース３、ＤＭＡＣ４、ＲＰＵ９、ＳＰＵ１３、ＧＥ１７、ＹＳＵ１９、及び外部インタフェースブロック２１）の制御レジスタ及びローカルＲＡＭ７，１１，１５へのアクセスに用いられる。このようにして、これらの機能ユニットは、Ｉ／Ｏバス２７を通じて、ＣＰＵ５により制御される。
【００２１】
ＣＰＵローカルＲＡＭ７は、ＣＰＵ５専用のＲＡＭであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びＣＰＵ５のみが扱う変数の格納領域等として使用される。
【００２２】
ＲＰＵ９は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、ＲＰＵ９は、ＹＳＵ１９によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインＲＡＭ２５から読み出し、所定の処理を実行して、スクリーン（表示領域）のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオＤＡＣ２９に出力される。また、ＲＰＵ９は、ＤＭＡＣ４に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
【００２３】
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる２次元の画素配列データであり、各画素データは、カラーパレットＲＡＭ１１のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。従って、テクスチャパターンデータは、テクセルデータの集合である。
【００２４】
ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。
【００２５】
ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報（スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関する情報及びグーローシェーディングモードでのカラーデータ（ＲＧＢのカラーコンポーネント）を含む。）であり、１つのポリゴン構造体インスタンスに１つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報（スクリーンにおける座標及びテクスチャパターンに関する情報を含む。）であり、１つのスプライト構造体インスタンスに１つのスプライトが対応している。
【００２６】
ビデオＤＡＣ２９は、アナログのビデオ信号を生成するためのデジタル／アナログ変換器である。ビデオＤＡＣ２９は、ＲＰＵ９から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）に出力する。
【００２７】
カラーパレットＲＡＭ１１は、本実施の形態では５１２色すなわち５１２エントリのカラーパレットからなる。ＲＰＵ９は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットＲＡＭ１１を参照し、テクスチャパターンデータを、カラーデータ（ＲＧＢのカラーコンポーネント）に変換する。
【００２８】
ＳＰＵ１３は、ＰＣＭ（ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ）波形データ（以下、「ウェーブデータ」と呼ぶ。）、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、ＳＰＵ１３は、最大６４チャンネル分のウェーブデータを生成して時分割多重化するとともに、最大６４チャンネル分のエンベロープデータを生成してチャンネルボリュームデータと乗算し、アンプリチュードデータを時分割多重化する。そして、ＳＰＵ１３は、メインボリュームデータ、時分割多重化されたウェーブデータ、及び時分割多重化されたアンプリチュードデータを、オーディオＤＡＣブロック３１に出力する。また、ＳＰＵ１３は、ＤＭＡＣ４に対して、ウェーブデータ及びエンベロープデータの取り込みのためのＤＭＡ転送要求を行う機能を有する。
【００２９】
オーディオＤＡＣブロック３１は、ＳＰＵ１３から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子（図示せず）からテレビジョンモニタ等（図示せず）のオーディオ入力端子（図示せず）に出力される。
【００３０】
ＳＰＵローカルＲＡＭ１５は、ＳＰＵ１３がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ（例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など）を格納する。
【００３１】
ＧＥ１７は、三次元イメージを表示するための幾何演算を実行する。具体的には、ＧＥ１７は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度／ポリゴン明度計算（ベクトル内積）、及びポリゴン裏面カリング処理（ベクトル外積）などの演算を実行する。
【００３２】
ＹＳＵ１９は、メインＲＡＭ２５に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール１〜４に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。
【００３３】
以下、ＹＳＵ１９によるソートルール１〜４について説明するが、その前に座標系について説明する。テレビジョンモニタ等のディスプレイ装置（図示せず）への実際の表示に用いられる二次元座標系をスクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向２０４８ピクセル×垂直方向１０２４ピクセルの２次元ピクセル配列から構成される。座標原点は左上にあり、右方向がＸ軸の正、下方向がＹ軸の正に相当する。ただし、実際に表示される領域は、スクリーン座標系の全空間ではなく一部の空間である。この表示領域をスクリーンと呼ぶことにする。
【００３４】
ソートルール１は、最小Ｙ座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Ｙ座標とは、ポリゴンの全頂点のＹ座標のうち、最も小さいＹ座標のことである。Ｙ座標はスクリーンの垂直座標であり、下向きが正方向である。ソートルール２は、最小Ｙ座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。
【００３５】
ただし、ＹＳＵ１９は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Ｙ座標が異なっている場合でも、それらが同一であるとみなして、ソートルール１ではなく、ソートルール２に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Ｙ座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール３である。
【００３６】
インタレーススキャンの場合でも、ソートルール１〜３が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその奇数ラインの１つ前の偶数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その１つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Ｙ座標及び／又はその偶数ラインの１つ前の奇数ラインに表示されるポリゴンの最小Ｙ座標が同一であるとみなして、ソートルール２によるソートを行う。これがソートルール４である。
【００３７】
スプライトに関するソートルール１〜４は、それぞれポリゴンに関するソートルール１〜４と同様である。
【００３８】
外部メモリインタフェース３は、外部バス５１を介して、外部メモリ５０からのデータの読み出し、及び外部メモリ５０へのデータの書き込みを司る。この場合、外部メモリインタフェース３は、図示しないＥＢＩ優先順位テーブルに従って、ＣＰＵ５及びＤＭＡＣ４からの外部バスアクセス要求要因（外部バス５１へのアクセスを要求する要因）を調停して、いずれか１つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス５１へのアクセスを許可する。ＥＢＩ優先順位テーブルは、ＣＰＵ５からの複数種類の外部バスアクセス要求要因及びＤＭＡＣ４からの外部バスアクセス要求要因の優先順位を定めたテーブルである。
【００３９】
外部バスアクセス要求要因として、ＣＰＵに含まれる図示しないＩＰＬ（ｉｎｉｔｉａｌ  ｐｒｏｇｒａｍ  ｌｏａｄｅｒ）によるブロック転送要求、ＣＰＵ５によるデータアクセス要求、ＣＰＵ５による命令フェッチ要求、及びＤＭＡＣ４によるＤＭＡ要求がある。
【００４０】
ＤＭＡＣ４は、メインＲＡＭ２５と、外部バス５１に接続された外部メモリ５０と、の間でＤＭＡ転送を行う。この場合、ＤＭＡＣ４は、図示しないＤＭＡ優先順位テーブルに従って、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ転送要求要因（ＤＭＡ転送を要求する要因）を調停して、いずれか１つのＤＭＡ転送要求要因を選択する。そして、外部メモリインタフェース３に対して、ＤＭＡ要求を行う。ＤＭＡ優先順位テーブルは、ＣＰＵ５、ＲＰＵ９、及びＳＰＵ１３からのＤＭＡ要求要因の優先順位を定めたテーブルである。
【００４１】
ＳＰＵ１３のＤＭＡ要求要因として、（１）ウェーブデータをウェーブバッファに転送すること、（２）エンベロープデータをエンベロープバッファに転送すること、がある。ウェーブバッファ及びエンベロープバッファは、それぞれメインＲＡＭ２５上に設定されるウェーブデータ及びエンベロープデータのテンポラリ格納領域である。なお、ＳＰＵ１３の２つのＤＭＡ要求要因間の調停は、ＳＰＵ１３内のハードウェア（図示せず）で行われ、ＤＭＡＣ４は関知しない。
【００４２】
ＲＰＵ９のＤＭＡ要求要因として、テクスチャパターンデータをテクスチャバッファに転送すること、がある。テクスチャバッファは、メインＲＡＭ２５上に設定されるテクスチャパターンデータのテンポラリ格納領域である。
【００４３】
ＣＰＵ５のＤＭＡ要求要因として、（１）仮想記憶管理においてページミスが発生した場合のページ転送、（２）アプリケーションプログラム等が要求するデータ転送、がある。なお、ＣＰＵ５内で複数のＤＭＡ転送要求が同時に発生した場合は、その調停はＣＰＵ５で実行されるソフトウェアにて行われ、ＤＭＡＣ４は関知しない。
【００４４】
本発明の特徴の１つである外部インタフェースブロック２１は、周辺装置５４とのインタフェースであり、２４チャンネルのプログラマブルなデジタル入出力ポートを含む。以下、これらの入出力ポートを総称して、「ＰＩＯ」と呼ぶ。また、各ＰＩＯを区別するときは、それぞれをＰＩＯ０〜ＰＩＯ２３と表記する。２４チャンネルのＰＩＯの各々は、４チャンネル分のマウスインタフェース機能、４チャンネル分のライトガンインタフェース機能、２チャンネル分の汎用タイマ／カウンタ、１チャンネル分の調歩同期式シリアルインタフェース機能、および１チャンネル分の汎用パラレル／シリアル変換ポート機能のうち１または複数に内部接続されている。
【００４５】
ＡＤＣ３３は、４チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置５２から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジタルデータに変換する。
【００４６】
メインＲＡＭアクセスアービタ２３は、機能ユニット（ＣＰＵ５、ＲＰＵ９、ＧＥ１７、ＹＳＵ１９、ＤＭＡＣ４、及び外部インタフェースブロック２１（汎用パラレル／シリアル変換ポート）からのメインＲＡＭ２５へのアクセス要求を調停して、いずれかの機能ユニットにアクセス許可を出す。
【００４７】
メインＲＡＭ２５は、ＣＰＵ５のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインＲＡＭ２５は、ＣＰＵ５が他の機能ユニットに受け渡すデータの格納領域、ＲＰＵ９及びＳＰＵ１３が外部メモリ５０からＤＭＡによって取得したデータの格納領域、ＧＥ１７及びＹＳＵ１９の入力データ及び出力データの格納領域等としても使用される。また、本発明の特徴である外部インタフェースブロック内の汎用パラレル／シリアル変換ポート９１（後述）の送受信データの格納領域としても使用される。
【００４８】
外部バス５１は、外部メモリ５０にアクセスするためのバスである。ＣＰＵ５およびＤＭＡＣ４から、外部メモリインタフェース３を介してアクセスされる。外部バス５１のアドレスバスは、３０ビットから成り、最大で１Ｇバイト（＝８Ｇビット）の外部メモリ５０を接続することができる。外部バス５１のデータバスは、１６ビットから成り、８ビット又は１６ビットのデータバス幅を持つ外部メモリ５０を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。
【００４９】
図２は、図１の外部インタフェースブロック２１の内部構成を示すブロック図である。図２を参照して、外部インタフェースブロック２１は、ＰＩＯ設定部５５、マウスインタフェース６０〜６３、ライトガンインタフェース７０〜７３、汎用タイマ／カウンタ８０、調歩同期式シリアルインタフェース９０、及び汎用パラレル／シリアル変換ポート９１を含む。
【００５０】
ＰＩＯ設定部５５は、周辺装置５４とマルチメディアプロセッサ１との間の入出力信号のポートであるＰＩＯ０〜ＰＩＯ２３の各種設定を行う機能ブロックである。具体的には、ＰＩＯ設定部５５は、入力ポートとして使用／出力ポートとして使用、内部プルアップ抵抗の有無、及び内部プルダウン抵抗の有無をＰＩＯ毎に設定する。また、ＰＩＯ設定部５５は、各ＰＩＯと各機能６０〜６３，７０〜７３，８０，９０及び９１との接続／非接続の設定を行う。これらの設定は、Ｉ／Ｏバス２７を通じて、ＣＰＵ５が、ＰＩＯ設定部５５内の制御レジスタ（図示せず）の値を書き換えることにより行われる。
【００５１】
マウスインタフェース６０〜６３の各々は、マウスやトラックボールなどのポインティングデバイスとの接続に用いられる機能ブロックである。４チャンネル分のマウスインタフェース６０〜６３が備えられており、最大４つのマウス等のデバイスを接続することが可能である。
【００５２】
マウスインタフェース６０〜６３の各々は、入力ポートとして設定された対応する４つのＰＩＯと接続され、４つのＰＩＯのうち、２つはＸ軸用であり、他の２つはＹ軸用である。そして、Ｘ軸用及びＹ軸用のそれぞれに、９０度位相のずれた２本のロータリーエンコーダ信号が入力される。マウスインタフェース６０〜６３の各々は、ロータリーエンコーダ信号の位相の変化を検出してＸ座標及びＹ座標のそれぞれのカウンタをインクリメント／デクリメントする。このカウンタのカウント値は、Ｉ／Ｏバス２７を通じて、ＣＰＵ５により読み出される。また、このカウンタのカウント値をＣＰＵ５がＩ／Ｏバス２７を通じて書き換えることも可能である。
【００５３】
ライトガンインタフェース７０〜７３の各々は、ライトペンやライトガンなどの、ＣＲＴ（ブラウン管）に対するポインティングデバイスとの接続に用いられる機能ブロックである。４チャンネル分のライトガンインタフェース７０〜７３が備えられており、最大４つのライトガン等のデバイスを接続することが可能である。
【００５４】
ライトガンインタフェースの７０〜７３の各々は、入力ポートとして設定された対応する１つのＰＩＯと接続される。そして、ライトガンインタフェースの７０〜７３が、対応するＰＩＯから入力される信号に立ち上がり（ロウレベルからハイレベルへの遷移）を検出すると、ＲＰＵ９内の水平カウンタの値がラッチされ、同時に、立ち上がりを検出したライトガンインタフェースの７０〜７３は、ＣＰＵ５に対する割り込み要求信号ＩＲＱ０〜ＩＲＱ３を発生する。
【００５５】
ＣＰＵ５は、ライトガンインタフェース７０〜７３から要求された割り込み処理の中で、ＲＰＵ９内の垂直カウンタの現在値をリードするとともに、ラッチされた水平カウンタの値をリードすることにより、入力信号に立ち上がりが検出された時の垂直カウンタ及び水平カウンタの値を知ることができる。つまり、ＣＰＵ５は、ＣＲＴ画面のどの位置をライトガン等のデバイスが指し示しているかを知ることができる。
【００５６】
この場合、立ち上がりでなく立ち下がり（ハイレベルからロウレベルへの遷移）での水平カウントのラッチ及び割り込み要求信号ＩＲＱ０〜ＩＲＱ３の発生を行うように変更することが可能である。立ち上がり／立ち下がりの設定、割り込み要求信号ＩＲＱ０〜ＩＲＱ３発生のイネーブル／ディセーブルの設定、及び水平カウンタの値の読み込みは、ＣＰＵ５が、Ｉ／Ｏバス２７を通じて、ライトガンインタフェース７０〜７３内の制御レジスタ（図示せず）にアクセスすることによって行われる。
【００５７】
汎用タイマ／カウンタ８０は、様々な用途で使用可能なプログラマブルな２チャンネルのタイマ／カウンタを含む。タイマ／カウンタの各々は、マルチメディアプロセッサ１内部のシステムクロックで駆動される場合はタイマとして、入力ポートとして設定されたＰＩＯ（例えばＰＩＯ６）からの入力信号で駆動される場合はカウンタとして機能する。
【００５８】
２チャンネルのタイマ／カウンタのそれぞれに対し個別の設定を行うことが可能である。このタイマ／カウンタのカウント値が既定の値に達すると、ＣＰＵ５に対する割り込み要求信号ＩＲＱ４を発生させることが可能である。
【００５９】
タイマまたはカウンタとしての設定、既定のカウント値の設定、及び割り込み要求信号ＩＲＱ４発生のイネーブル／ディセーブルの設定は、ＣＰＵ５が、Ｉ／Ｏバス２７を通じて、汎用タイマ／カウンタ８０内の制御レジスタ（図示せず）にアクセスすることによって行われる。
【００６０】
調歩同期式シリアルインタフェース９０は、全二重調歩同期式のシリアルデータ通信を行うシリアルインタフェースである。「全二重」とは、データの送信と受信とを同時に行うことのできる方式を指し、「調歩同期」とは、同期のためのクロック信号等を特に用いずに、スタートビット及びストップビットを用いて受信データの同期を取る方式を指す。調歩同期式シリアルインタフェース９０の通信方式は、パーソナルコンピュータのシリアル入出力ポート等に用いられているＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）と互換性がある。
【００６１】
外部への送信データは、Ｉ／Ｏバス２７を通じＣＰＵ５によって調歩同期式シリアルインタフェース９０内の送信バッファ（図示せず）に書き込まれる。送信バッファに書き込まれた送信データは、調歩同期式シリアルインタフェース９０によって、パラレルデータからシリアルデータ列に変換され、出力ポートとして設定されたＰＩＯ（例えばＰＩＯ２）から１ビットずつ出力される。
【００６２】
一方、入力ポートとして設定されたＰＩＯ（例えばＰＩＯ１）から１ビットずつ入力された外部からの受信データは、調歩同期式シリアルインタフェース９０によって、シリアルデータ列からパラレルデータに変換され、調歩同期式シリアルインタフェース９０内の受信バッファ（図示せず）に書き込まれる。受信バッファに書き込まれた受信データは、Ｉ／Ｏバス２７を通じＣＰＵ５によって読み出される。
【００６３】
また、調歩同期式シリアルインタフェース９０は、送信バッファに格納された全データの送信が完了した際、あるいは受信バッファに受信データがフルに格納された際に、ＣＰＵ５に割り込み要求信号ＩＲＱ５を発生することが可能である。送信バッファへのデータの書込み、受信バッファからのデータの読出し、通信ボーレート（ｂａｕｄｒａｔｅ）の設定、および割り込み要求信号ＩＲＱ５発生のイネーブル／ディセーブルの設定は、ＣＰＵ５が、Ｉ／Ｏバスを通じて、調歩同期式シリアルインタフェース９０内の制御レジスタ（図示せず）にアクセスすることによって行われる。なお、通信ボーレートは、データ変調回数／秒で表され、実質的には、ｂｐｓ（ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）に相当する。
【００６４】
汎用パラレル／シリアル変換ポート９１は、半二重のシリアルデータ通信を行うシリアルインタフェースである。「半二重」とは、データの送信と受信とが同時には行われず、送信または受信のどちらかに切り換えながら通信が行われる方式を指す。
【００６５】
メインＲＡＭ２５上に構成された送受信バッファＳＲＢから読み出された送信データは、汎用パラレル／シリアル変換ポート９１によって、パラレルデータからシリアルデータ列に変換され、出力ポートとして設定されたＰＩＯ（例えばＰＩＯ５）から１ビットずつ出力される。
【００６６】
一方、入力ポートとして設定されたＰＩＯ（例えばＰＩＯ４）から１ビットずつ入力された受信データは、汎用パラレル／シリアル変換ポート９１によって、シリアルデータ列からパラレルデータに変換され、メインＲＡＭ２５上の送受信バッファＳＲＢに書き込まれる。
【００６７】
以上のように、メインＲＡＭ２５上の送受信バッファＳＲＢは、送信および受信の両方に用いられるため、送受信を同時に行うことはできない。送受信バッファＳＲＢへの送信データの書込み、および送受信バッファＳＲＢからの受信データの読出しは、ＣＰＵ５が直接メインＲＡＭ２５にアクセスすることで行われる。
【００６８】
汎用パラレル／シリアル変換ポート９１は、送受信バッファＳＲＢからの既定のバイト数のデータ送信が完了した際、あるいは送受信バッファＳＲＢに既定バイト数の受信データが格納された際に、ＣＰＵ５に割り込み要求信号ＩＲＱ６を発生することが可能である。送信または受信の設定、送受信バッファＳＲＢ領域の設定、通信ボーレートの設定、および割り込み要求信号ＩＲＱ６発生のイネーブル／ディセーブルの設定は、ＣＰＵ５が、Ｉ／Ｏバスを通じて、汎用パラレル／シリアル変換ポート９１内の制御レジスタ（後述の図７参照）にアクセスすることによって行われる。
【００６９】
上記のように、汎用パラレル／シリアル変換ポート９１は、メインＲＡＭ２５上に構成された送受信バッファＳＲＢに対してアクセスする機能を有する。メインＲＡＭ２５へのアクセスを行う際、汎用パラレル／シリアル変換ポート９１は、メインＲＡＭアクセスアービタ２３にアクセス要求を発行する。メインＲＡＭアクセスアービタ２３からメインＲＡＭ２５へのアクセスが許可されると、汎用パラレル／シリアル変換ポート９１は、実際にメインＲＡＭ２５からのリードデータの受領、あるいはメインＲＡＭ２５へのライトデータの送出を行う。
【００７０】
なお、図２において、ＰＩＯ設定部５５と周辺装置５４との間の入出力信号ＰＩＯ［２３：０］は、それぞれ、同名のＰＩＯを介した入出力信号である。
【００７１】
図３は、図２の汎用パラレル／シリアル変換ポート９１の内部構成を示すブロック図である。図３を参照して、汎用パラレル／シリアル変換ポート９１は、コントローラ９００、送受信シフトレジスタ９０２、及び送受信バッファレジスタ９０４を含む。
【００７２】
コントローラ９００は、Ｉ／Ｏバス２７を通じてＣＰＵ５から制御レジスタ（後述の図７参照）に書き込まれた設定値に従い、送受信シフトレジスタ９０２および送受信バッファレジスタ９０４を制御し、データの送受信を司る。具体的には次の通りである。
【００７３】
コントローラ９００は、送受信バッファレジスタ９０４に格納されたデータをメインＲＡＭ２５上の送受信バッファＳＲＢに書き込むために、あるいはメインＲＡＭ２５上の送受信バッファＳＲＢから読み出したデータを送受信バッファレジスタ９０４に格納するために、メインＲＡＭアクセスアービタ２３へのアクセス要求の発行、およびアクセス許可の受領を行う。
【００７４】
また、コントローラ９００は、データの送受信が行われる際、制御レジスタ（後述の図７参照）に設定された通信ボーレートに従い、シリアルデータクロックＳＤＣＫを生成し、ＰＩＯ設定部５５に出力する。ＰＩＯ設定部５５は、コントローラ９００から出力されるシリアルデータクロックＳＤＣＫをＰＩＯ（例えばＰＩＯ３）から周辺装置５４に出力する。
【００７５】
さらに、コントローラ９００は、既定のバイト数の送信が完了した際、あるいは既定のバイト数の受信が完了した際に、ＣＰＵ５に対する割り込み要求信号ＩＲＱ６を発行する機能を有する。但し、割り込み要求信号ＩＲＱ６発生のイネーブル／ディセーブルは、Ｉ／Ｏバス２７を通じてＣＰＵ５から制御レジスタ（後述の図７参照）に設定される。
【００７６】
送受信バッファレジスタ９０４は、６４ビットの大きさを持つレジスタであり、コントローラ９００からの制御に従って動作する。具体的には次の通りである。
【００７７】
データ送信時は、送受信バッファレジスタ９０４は、メインＲＡＭアクセスアービタ２３から受領した６４ビットのデータを一時的に格納し、送受信シフトレジスタ９０２からのデータ送信が完了したタイミングで、格納したデータを送受信シフトレジスタ９０２に転送する。送受信シフトレジスタ９０２への入力データは、パラレルデータである。
【００７８】
一方、データ受信時は、送受信バッファレジスタ９０４は、送受信シフトレジスタ９０２から転送される６４ビット分の受信データを一時的に格納し、メインＲＡＭ２５への書き込みが許可されたタイミングで格納したデータをメインＲＡＭアクセスアービタ２３に出力する。送受信バッファレジスタ９０４への入力データは、パラレルデータである。
【００７９】
送受信シフトレジスタ９０２は、６４ビットの大きさを持つシフトレジスタであり、コントローラ９００からの制御に従って動作する。具体的には次の通りである。
【００８０】
データ送信時は、送受信シフトレジスタ９０２は、送受信バッファレジスタ９０４から受領した６４ビットのデータをシリアルデータクロックＳＤＣＫに同期して１ビットずつ出力する。つまり、送受信シフトレジスタ９０２は、６４ビットのパラレルデータをシリアルデータ列ＳＤＳに変換して出力する。
【００８１】
一方、データ受信時は、送受信シフトレジスタ９０２は、受信したシリアルデータ列ＳＤＲをシリアルデータクロックＳＤＣＫに同期してサンプリングして１ビットずつ格納し、６４ビット分の受信データが揃ったタイミングで送受信バッファレジスタ９０４に送出する。つまり、送受信シフトレジスタ９０２は、受信したシリアルデータ列ＳＤＲを６４ビットのパラレルデータに変換して出力する。
【００８２】
送信データ（送信シリアルデータ）ＳＤＳは、ＰＩＯ設定部５５を通じてＰＩＯ（例えばＰＩＯ５）から出力され、受信データ（受信シリアルデータ）ＳＤＲは、ＰＩＯ設定部５５を通じてＰＩＯ（例えばＰＩＯ４）から入力される。
【００８３】
図４は、図２の汎用パラレル／シリアル変換ポート９１で行われるデータ受信処理のタイミングチャートである。図４（ａ）に示すように、汎用パラレル／シリアル変換ポート９１は、受信シリアルデータＳＤＲを、図４（ｂ）のシリアルデータクロックＳＤＣＫに同期してサンプリングするが、汎用パラレル／シリアル変換ポート９１内の制御レジスタ（後述の図７参照）に受信イネーブルの設定がされていない期間（時刻ｔ０以前）では、サンプリングされたデータＳＤＲは、送受信シフトレジスタ９０２に格納されない。つまり、図４（ｃ）に示すように、受信イネーブルに設定される時刻ｔ０以前の受信データＳＤＲは、有効な受信データＶＤＲとして扱われない。
【００８４】
ただし、受信イネーブルに設定されても、受信シリアルデータＳＤＲが即座に有効な受信データＶＤＲとして送受信シフトレジスタ９０２に格納されるとは限らない。受信イネーブルに設定後、受信シリアルデータＳＤＲに信号レベルの変化（ハイレベルからロウレベル、またはロウレベルからハイレベル）が検出された時点から、有効な受信データＶＤＲとして送受信シフトレジスタ９０２へのデータ入力が開始される。
【００８５】
この場合、実際には、受信シリアルデータＳＤＲに信号レベルの変化が検出された際の変化前の１ビットを含む受信シリアルデータＳＤＲが、有効な受信データＶＤＲとして扱われる。図４（ａ）では、時刻ｔ１で受信シリアルデータＳＤＲのハイレベルからロウレベルへの信号レベルの変化が検出されているが、変化前のハイレベル（つまり「１」）の１ビットも、有効な受信データＶＤＲとして扱われる。
【００８６】
汎用パラレル／シリアル変換ポート９１は、予め制御レジスタ（後述の図７参照）に設定された受信バイト数ＲＢの有効データＶＤＲの受信が完了すると、ＣＰＵ５に割り込み要求信号ＩＲＱ６を発生することが可能である。但し、ＣＰＵ５への割り込み要求信号ＩＲＱ６発生後もデータ受信は継続されるため、ＣＰＵ５は、受信データがメインＲＡＭ２５の送受信バッファＳＲＢをオーバーフローする前に、送受信バッファＳＲＢから受信データを読み出す必要がある。また、ＣＰＵ５は、Ｉ／Ｏバス２７を通じて現在の受信バイト数を読み出すことができるため、割り込み要求信号ＩＲＱ６の発生がディセーブルに設定されている場合には、現在の受信バイト数を監視しながら、送受信バッファＳＲＢ上での受信データの書込みによるバッファのオーバーランが発生しないように送受信バッファＳＲＢからデータを読み出す必要がある。
【００８７】
図５は、図２の汎用パラレル／シリアル変換ポート９１で行われるデータ送信処理のタイミングチャートである。図５（ｂ）に示すように、汎用パラレル／シリアル変換ポート９１は、送信シリアルデータＳＤＳの送出を、図５（ａ）のシリアルデータクロックＳＤＣＫに同期して行うが、汎用パラレル／シリアル変換ポート９１内の制御レジスタ（後述の図７参照）に送信イネーブルの設定がされていない期間（時刻ｔ以前）では、出力ポートとしてのＰＩＯ（例えばＰＩＯ５）からのデータ送信は行われない。つまり、図５（ｂ）に示すように、送信イネーブルに設定される時刻ｔ以前の送信データは、同じレベル（値）を保持している。
【００８８】
送信イネーブルに設定された時刻ｔ以後、送受信シフトレジスタ９０２に格納された値が１ビットずつ出力ポートとしてのＰＩＯ（例えばＰＩＯ５）から出力される。設定された送信バイト数ＳＢの出力が完了すると、データ送信は自動的に（指示を受けることなく）停止する。また、ＣＰＵ５への割り込み要求信号ＩＲＱ６の発生がイネーブルに設定されている場合、送信完了のタイミングでＣＰＵ５に対する割り込み要求信号ＩＲＱ６が出力される。
【００８９】
図６は、図１のメインＲＡＭ２５上に構成される、汎用パラレル／シリアル変換ポート９１のための送受信バッファＳＲＢの説明図である。図６に示すように、メインＲＡＭ２５上に構成される上記した送受信バッファＳＲＢは、メインＲＡＭ２５の物理アドレス空間に配置される。送受信バッファＳＲＢの始端アドレスＳＡＤおよび終端アドレスＥＡＤは、汎用パラレル／シリアル変換ポート９１内の制御レジスタ（後述の図７参照）に設定される。始端アドレスＳＡＤおよび終端アドレスＥＡＤの値は、メインＲＡＭ２５の物理アドレスで示される。設定は、Ｉ／Ｏバス２７を通じて、ＣＰＵ５によって行われる。
【００９０】
この送受信バッファＳＲＢは、リングバッファとして扱われる。つまり、現在のリード位置／ライト位置を示すリードアドレス／ライトアドレスの値は順次インクリメントされ、終端アドレスＥＡＤに一致すると始端アドレスＳＡＤに再設定される。ＣＰＵ５は、Ｉ／Ｏバス２７を通じて、ポインタＲＷＰが指し示すリードアドレス／ライトアドレスの現在値を読み出すことができる。
【００９１】
図７は、図２の汎用パラレル／シリアル変換ポート９１に関連する制御レジスタの説明図である。汎用パラレル／シリアル変換ポート９１は、図７に示す制御レジスタを備える。なお、各制御レジスタは、図中対応するＩ／Ｏバスアドレスに配置される。
【００９２】
図７（ａ）の制御レジスタＳＩＯＢａｕｄｒａｔｅは、汎用パラレル／シリアル変換ポート９１で送受信に使用するシリアルデータクロックＳＤＣＫを作成するためのボーレートジェネレータ（図示せず）のカウンタの加算データを設定する。これは通信ボーレートの設定に相当する。図７（ｂ）の制御レジスタＳＩＯＩｎｔｅｒｒｕｐｔＣｌｅａｒは、ビット０に「１」を書き込むことにより、汎用パラレル／シリアル変換ポート９１の割り込み要因をクリアする。すなわち、割り込み要求信号ＩＲＱ６がアサートされている状態で、制御レジスタＳＩＯＩｎｔｅｒｒｕｐｔＣｌｅａｒのビット０に「１」を書き込むと、割り込み要求信号ＩＲＱ６がネゲートされる。
【００９３】
図７（ｃ）の制御レジスタＳＩＯＩｎｔｅｒｒｕｐｔＥｎａｂｌｅは、ビット０に「１」を設定することにより、汎用パラレル／シリアル変換ポート９１の送信完了割り込み又は汎用パラレル／シリアル変換ポート９１の既定バイト数受信完了割り込みを許可する。
【００９４】
図７（ｄ）の制御レジスタＳＩＯＳｔａｔｕｓは、ビット０が、既定バイト数受信完了割り込み発生の有無を示し、ビット１が「０」のときは、汎用パラレル／シリアル変換ポート９１が送信又は受信を行っていないことを示し、ビット１が「１」のときは、送信又は受信を実行中であることを示す。ビット２は、データ送信が未完了か完了かを示す。
【００９５】
図７（ｅ）の制御レジスタＳＩＯＣｏｎｔｒｏｌは、ビット０が、データ転送の方向（受信モード／送信モード）を示し、ビット１が、データ送受信のイネーブル／ディセーブルを示す。図７（ｆ）の制御レジスタＳＩＯＢｕｆｆｅｒＴｏｐＡｄｄｒｅｓｓは、送受信データを格納する送受信バッファＳＲＢの始端アドレスＳＡＤを設定する。図７（ｇ）の制御レジスタＳＩＯＢｕｆｆｅｒＥｎｄＡｄｄｒｅｓｓは、送受信データを格納する送受信バッファＳＲＢの終端アドレスＥＡＤを設定する。
【００９６】
図７（ｈ）の制御レジスタＳＩＯＢｙｔｅＣｏｕｎｔは、送信時には、送信データのバイト数を設定し、受信時には、何バイト受信する度に割り込みを発生させるか、そのバイト数を設定する。図７（ｉ）の制御レジスタＳＩＯＣｕｒｒｅｎｔＢｕｆｆｅｒＡｄｄｒｅｓｓは、現在の送受信バッファＳＲＢのポインタＲＷＰが指し示すリードアドレスあるいはライトアドレスを示す。
【００９７】
さて、以上のように、シリアルデータ送受信用のバッファ、つまり、送受信バッファＳＲＢが、ＣＰＵ５等の他の機能ユニットと共有されるメインＲＡＭ２５上に構成され、汎用パラレル／シリアル変換ポート９１が、ＣＰＵ５を介さずに直接メインＲＡＭ２５へアクセスを行うことが可能であるので、大きなサイズの送受信を行いやすく、ＣＰＵ５が受信データを取得したり送信データを設定したりするためには、単にメインＲＡＭ２５にアクセスを行えばよいため、送受信データをＣＰＵ５とやり取りすることが効率的に行える。また、シリアルデータの送受信を行わない場合には、送受信バッファＳＲＢの領域を他の機能ユニットが他の用途に転用して用いることが可能である。さらに、受信開始の設定後、最初の受信データの変化点から送受信バッファＳＲＢへの受信データの格納が行われるため、最初の有効な受信データ前の無駄な受信データがメインＲＡＭ２５に格納されることがないため、ＣＰＵ５による受信データの処理を効率的に行うことが可能である。
【００９８】
また、本実施の形態では、図４に示すように、最初の受信データＳＤＲの変化点における変化前の１ビットも送受信バッファＳＲＢに格納されるため、ＣＰＵ５によるパケットのスタートビットの検出処理などを、より高い精度で行うことができる。
【００９９】
さらに、本実施の形態では、汎用パラレル／シリアル変換ポート９１は、既定のデータ量の送信が完了すると、指示を受けることなく自動的にデータ送信を停止する。このため、送受信バッファＳＲＢ上に格納された不当なデータが誤って送信されてしまうことがない。
【０１００】
さらに、本実施の形態では、送受信バッファＳＲＢの領域の始端アドレスＳＡＤ及び終端アドレスＥＡＤは、ＣＰＵ５によって、メインＲＡＭ２５の物理アドレスにて任意の値に設定される。このように、送受信バッファＳＲＢの領域の位置及びサイズを自由に設定できるため、必要十分な量の領域を送受信バッファＳＲＢ用に確保し、それ以外の領域を他の機能ユニットが使用することで、システム全体として効率的にメインＲＡＭ２５を使用することが可能になる。
【０１０１】
さらに、本実施の形態では、ポインタＲＷＰの値はデータの送信または受信が行われる毎にインクリメントされ、ポインタＲＷＰの値が終端アドレスＥＡＤに一致すると始端アドレスＳＡＤに再設定される。このようにして、送受信バッファＳＲＢをリングバッファとして使用している。
【０１０２】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明の実施の形態によるマルチメディアプロセッサ１の内部構成を示すブロック図である。
【図２】図１の外部インタフェースブロック２１の内部構成を示すブロック図である。
【図３】図２の汎用パラレル／シリアル変換ポート９１の内部構成を示すブロック図である。
【図４】図２の汎用パラレル／シリアル変換ポート９１で行われるデータ受信処理のタイミングチャートである。
【図５】図２の汎用パラレル／シリアル変換ポート９１で行われるデータ送信処理のタイミングチャートである。
【図６】図１のメインＲＡＭ２５上に構成される、汎用パラレル／シリアル変換ポート９１のための送受信バッファＳＲＢの説明図である。
【図７】図２の汎用パラレル／シリアル変換ポート９１に関連する制御レジスタの説明図である。
【符号の説明】
【０１０４】
１…マルチメディアプロセッサ、３…外部メモリインタフェース、４…ＤＭＡＣ、５…ＣＰＵ、７…ＣＰＵローカルＲＡＭ、９…ＲＰＵ、１１…カラーパレットＲＡＭ、１３…ＳＰＵ、１５…ＳＰＵローカルＲＡＭ、１７…ＧＥ、１９…ＹＳＵ、２１…外部インタフェースブロック、２３…メインＲＡＭアクセスアービタ、２５…メインＲＡＭ、２７…Ｉ／Ｏバス、２９…ビデオＤＡＣ、３１…オーディオＤＡＣブロック、５１…外部バス、５０…外部メモリ、５５…ＰＩＯ設定部、９１…シリアル変換ポート、９００…コントローラ、９０２…送受信シフトレジスタ、９０４…送受信バッファレジスタ。
【図１】
2007128189.tif 000003
【図２】
2007128189.tif 000004
【図３】
2007128189.tif 000005
【図４】
2007128189.tif 000006
【図５】
2007128189.tif 000007
【図６】
2007128189.tif 000008
【図７】
2007128189.tif 000009