(57)【要約】オーバーランの発生を防止し、効率的にＤＭＡ転送を行なうデータ処理装置。データ処理装置（２１）に設けられたＳＩＯ（２２）は、送信バッファ（２４）に送信データが格納されており且つ受信バッファ（２５）にデータ格納可能領域が存在する場合にのみ、送信データの送信を開始する。
2004107188.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
バスと、
前記バスに接続された中央処理装置と、
前記バスに接続されたメモリと、
前記バスに接続され、２進同期通信方式でデータの送受信を同時に行うシリアル入出力装置であって、第１起動要求信号及び第２起動要求信号を生成する前記シリアル入出力装置と、
前記バスに接続され、前記シリアル入出力装置からの前記第１起動要求信号に応答して、ダイレクトメモリアクセス処理により前記メモリから前記シリアル入出力装置に送信データを転送する送信ダイレクトメモリアクセス制御装置と、
前記バスに接続され、前記シリアル入出力装置からの前記第２起動要求信号に応答して、ダイレクトメモリアクセス処理により前記シリアル入出力装置から前記メモリに受信データを転送する受信ダイレクトメモリアクセス制御装置とを備え、
前記シリアル入出力装置は、
前記送信データを格納する送信バッファと、
前記受信データを格納する受信バッファと、
前記送信バッファ及び前記受信バッファに接続された制御手段とを含み、当該制御手段が、前記送信バッファに送信データが格納されており且つ前記受信バッファにデータ格納可能領域があるときに、前記送信バッファに格納されている送信データの送信を開始させることを特徴とするデータ処理装置。
【請求項２】
前記シリアル入出力装置は更に、前記受信バッファにデータが格納されたときに前記受信ダイレクトメモリアクセス制御装置に前記第２起動要求信号を供給する受信制御回路を含み、前記制御手段は、前記送信バッファにデータ格納可能領域があるときに前記送信ダイレクトメモリアクセス制御装置に前記第１起動要求信号を供給する送信制御回路を含み、当該送信制御回路は、前記受信バッファを参照して当該受信バッファにデータ格納可能領域があるかどうかを調べる請求項１に記載のデータ処理装置。
【請求項３】
前記シリアル入出力装置は、当該シリアル入出力装置の動作モードが登録される記憶手段を備え、前記受信制御回路及び前記送信制御回路の各々は、前記記憶手段の動作モードを参照することにより、前記送信及び受信ダイレクトメモリアクセス制御装置がデータの送受信を行なうのか、前記中央処理装置がデータの送受信を行なうのかを判断することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
データ処理装置を用いた通信方法であって、前記データ処理装置は、バスと、前記バスに接続された中央処理装置と、前記バスに接続されたメモリと、前記バスに接続され、２進同期通信方式でデータの送受信を同時に行うシリアル入出力装置と、前記バスに接続され、前記シリアル入出力装置からの第１起動要求信号に応答して、ダイレクトメモリアクセス処理により前記メモリから前記シリアル入出力装置に送信データを転送する送信ダイレクトメモリアクセス制御装置と、前記バスに接続され、前記シリアル入出力装置からの第２起動要求信号に応答して、ダイレクトメモリアクセス処理により前記シリアル入出力装置から前記メモリに受信データを転送する受信ダイレクトメモリアクセス制御装置とを備え、前記シリアル入出力装置は、前記送信データを格納する送信バッファと、前記受信データを格納する受信バッファとを含むものであり、前記通信方法は、
前記送信バッファに送信データが格納されており且つ前記受信バッファにデータ格納可能領域があることを含む開始条件が満たされているかどうかを確認する工程と、
前記開始条件が満たされているときに、前記送信データの送信を開始する工程とを備えることを特徴とする通信方法。
【請求項５】
前記送信バッファに送信データが格納されており且つ前記受信バッファにデータ格納可能領域がない場合、前記受信バッファに格納された受信データが前記受信ダイレクトメモリアクセス制御装置のダイレクトメモリアクセス処理により前記メモリに転送されて当該受信バッファにデータ格納可能領域が確保されるまで、前記送信データの送信を待機する工程を備えることを特徴とする請求項４に記載の通信方法。
【請求項６】
前記シリアル入出力装置の動作モードが登録される記憶手段を参照する工程と、
前記動作モードが前記送信及び受信ダイレクトメモリアクセス制御装置のダイレクトメモリアクセス処理により送受信データを転送するＤＭＡモードであるか、前記中央処理装置の処理により送受信データを転送するＣＰＵモードであるかを判定する工程とを更に備え、前記開始条件は更に、前記動作モードが前記ＤＭＡモードであることを含むことを特徴とする請求項４に記載の通信方法。
【請求項７】
前記動作モードが前記ＤＭＡモードである場合に前記開始条件を有効とする一方、前記動作モードが前記ＣＰＵモードである場合には前記開始条件を無効とする工程を更に備えることを特徴とする請求項６に記載の通信方法。
【請求項８】
前記シリアル入出力装置の記憶手段に動作モードを登録する工程を更に備えることを特徴とする請求項６に記載の通信方法。
【請求項９】
データ処理装置に設けられる２進同期シリアル入出力装置であって、前記データ処理装置は、ダイレクトメモリアクセス処理によりメモリに格納された送信データを読み出す送信ダイレクトメモリアクセス制御装置と、当該データ処理装置の外部の回路から供給された受信データをダイレクトメモリアクセス処理により前記メモリに格納させる受信ダイレクトメモリアクセス制御装置と、前記２進同期シリアル入出力装置、前記メモリ、前記送信ダイレクトメモリアクセス制御装置、及び前記受信ダイレクトメモリアクセス制御装置を相互接続するバスとを含むことと、前記２進同期シリアル入出力装置は、
前記バスに接続され、前記送信データを一旦格納するための送信バッファと、
前記バスに接続され、前記受信データを一旦格納するための受信バッファと、
前記送信バッファ、前記受信バッファ、及び前記レジスタと接続され、前記送信バッファに前記送信データが格納されていること及び前記受信バッファにデータ格納可能領域があることを含む開始条件が満たされたときに、前記送信ダイレクトメモリアクセス制御装置を起動させるための第１起動要求信号を当該送信ダイレクトメモリアクセス制御装置に供給する送信制御回路と、
前記送信バッファ、前記受信バッファ、及び前記レジスタと接続され、前記受信バッファにデータが格納されたときに、前記受信ダイレクトメモリアクセス制御装置を起動させるための第２起動要求信号を当該受信ダイレクトメモリアクセス制御装置に供給する受信制御回路とを備えることを特徴とするシリアル入出力装置。
【請求項１０】
前記シリアル入出力装置は更に、前記バスに接続された中央処理装置によって当該シリアル入出力装置の動作モードが登録されるレジスタを備え、前記動作モードは前記送信及び受信ダイレクトメモリアクセス制御装置のダイレクトメモリアクセス処理により前記送信用データ及び前記受信データを転送するＤＭＡモード、及び、前記中央処理装置の処理により前記送信用データ及び前記受信データを転送するＣＰＵモードのいずれかであり、前記送信制御回路は、前記動作モードが前記ＤＭＡモードであるか、前記ＣＰＵモードであるかを前記レジスタを参照して判定することと、前記開始条件は更に、前記動作モードが前記ＤＭＡモードであることを含むことを特徴とする請求項９に記載のシリアル入出力装置。
【発明の詳細な説明】
【技術分野】  本発明はデータ処理装置及びデータ通信方法に関し、詳しくは、ダイレクトメモリアクセス（ＤＭＡ）処理によりデータ転送を行うデータ処理装置及びデータ通信方法に関する。
【背景技術】  情報機器システム等に用いられるデータ処理装置には、中央処理装置（ＣＰＵ）の負荷を軽減してデータ転送の処理効率を向上させるため、ダイレクトメモリアクセス制御装置（ＤＭＡコントローラ）が搭載される。ＣＰＵはデータ転送を行っているとき他の演算処理を行うことができないが、ダイレクトメモリアクセス（ＤＭＡ）転送方式ではＣＰＵを介さずにデータ転送が行われるため、データ転送を高速に行うことができる。ＤＭＡコントローラを搭載したデータ処理装置において、データ転送を的確に行うための技術が要求されている。
図７は従来のデータ処理装置１のブロック回路図であり、図８はそのタイミングチャートである。データ処理装置１は、ＣＰＵ２、メモリ３、送信ＤＭＡコントローラ４、受信ＤＭＡコントローラ５、２進同期シリアル入出力装置（ＳＩＯ）６を含み、それらはシステムバス７を介して相互に接続されている。データ処理装置１におけるデータ転送や制御信号の授受はバス７を介して行われる。
データ処理装置１には、クロック信号出力端子ＳＣＫ、送信端子ＤＯＵＴ、及び受信端子ＤＩＮが設けられている。データ処理装置１において、ＳＩＯ６がクロック信号出力端子ＳＣＫ、送信端子ＤＯＵＴ、及び受信端子ＤＩＮを介して外部装置（図示略）に接続され、その外部装置とのシリアルデータの授受は、各端子ＳＣＫ，ＤＯＵＴ，ＤＩＮを介して行われる。なお、外部装置の回路構成はデータ処理装置１のものと同様である。
ＳＩＯ６は、送信バッファ８、受信バッファ９、送信シフト回路１０、受信シフト回路１１を含み、２進同期通信方式によりデータの入出力を行う。ＳＩＯ６は、送信バッファ８が空である場合、送信ＤＭＡコントローラ４に第１起動要求信号ＴＲＡを供給する。また、ＳＩＯ６は、受信バッファ９に受信データＲｘ（図８では、Ｒ１，Ｒ２，…）が格納されている場合、受信ＤＭＡコントローラ５に第２起動要求信号ＲＥＣを供給する。各起動要求信号ＴＲＡ，ＲＥＣはバス７とは異なる専用信号線Ｌ１，Ｌ２を介してＳＩＯ６からＤＭＡコントローラ４，５に通知される。
送信ＤＭＡコントローラ４は第１起動要求信号ＴＲＡに応答し、バス７の占有を要求する占有要求信号ＤＨＬＤをＣＰＵ２に対して発行する。ＣＰＵ２はバス７を開放した後、バス７の占有を許可する占有許可信号ＤＡＣＫを送信ＤＭＡコントローラ４に返す。占有要求信号ＤＨＬＤ及び占有許可信号ＤＡＣＫはバス７とは異なる専用信号線Ｌ３，Ｌ４を介して送られる。
送信ＤＭＡコントローラ４は、占有許可信号ＤＡＣＫが通知されたとき、メモリ３から送信データＴｘ（図８では、Ｔ１，Ｔ２，…）を読み出し、送信データＴｘをバス７を介してＳＩＯ６の送信バッファ８に転送する。その転送後に、送信バッファ８の送信データＴｘが送信シフト回路１０に送られ、クロック信号出力端子ＳＣＫから供給されるクロック信号ＣＬＫに同期して送信端子ＤＯＵＴから送信データＴｘが送信される。
ＳＩＯ６では、送信データＴｘの送信と同時に受信データＲｘの受信が行われる。受信データＲｘは受信端子ＤＩＮから入力され、受信シフト回路１１を介して受信バッファ９に格納される。ＳＩＯ６におけるデータの送受信が終了したときには受信バッファ９に受信データＲｘが格納されているため、ＳＩＯ６は、受信ＤＭＡコントローラ５に対して第２起動要求信号ＲＥＣを供給する。受信ＤＭＡコントローラ５は第２起動要求信号ＲＥＣに応答し、占有要求信号ＤＨＬＤをＣＰＵ２に対して発行する。ＣＰＵ２はバス７を開放した後に占有許可信号ＤＡＣＫを受信ＤＭＡコントローラ５に返す。受信ＤＭＡコントローラ５は、占有許可信号ＤＡＣＫが通知されたとき、受信バッファ９の受信データを読み出しメモリ３に転送する。
以上のように、ＤＭＡ転送による送受信の動作を繰り返し行うことで、ＳＩＯ６にて高速のデータ通信が実現される。因みに、ＤＭＡコントローラを内蔵した半導体装置において、ダイレクトメモリアクセス処理によりデータ転送を高速に行う技術が下記特許文献１に開示されている。
ところで、ＳＩＯ６の受信バッファ９に格納された受信データＲｘを転送する前に送信を行ってしまうと、該受信バッファ９においてオーバーランが発生してしまう。そこで、オーバーランを回避する目的で、データ処理装置１では、受信側のＤＭＡ転送を送信側のＤＭＡ転送よりも優先して行う必要がある。
しかし、データ処理装置１が適用されるシステムによっては、受信側のＤＭＡ転送よりもＣＰＵ２の処理を優先させる必要がある。このシステムにおいて、ＣＰＵ２が優先度の高い処理を実行しているときには、たとえ受信ＤＭＡコントローラ５からバス７の占有を要求する占有要求信号ＤＨＬＤが発行されたとしても、ＣＰＵ２はバス占有を許可せず、占有許可信号ＤＡＣＫを出力しない。そのため、受信側のＤＭＡ転送は停止される。この停止中にＳＩＯ６において送信バッファ８に格納された送信データが送信されてしまうと、それと同時に受信がなされるため、受信バッファ９においてオーバーランが発生してしまう。
図９はオーバーランが発生する場合のタイミングチャートである。図９に示すように、受信データＲ２が受信シフト回路１１から受信バッファ９に格納された後、ＳＩＯ６から第２起動要求信号ＲＥＣが出力されている。受信ＤＭＡコントローラ５は第２起動要求信号ＲＥＣに応答し、ＣＰＵ２に対して占有要求信号ＤＨＬＤを発行する。このとき、ＣＰＵ２が優先度の高い処理を実行していると、その処理の実行期間は受信ＤＭＡコントローラ５によるバス占有を許可しない。ＣＰＵ２はその処理の完了後に占有許可信号ＤＡＣＫを出力する。つまり、このＣＰＵ２の処理の実行期間は、占有許可信号ＤＡＣＫが出力されず、受信ＤＭＡコントローラ５による受信データの転送動作が停止される期間（受信ＤＭＡ停止期間）Ｘとなる。
受信ＤＭＡ停止期間Ｘにおいて、送信バッファ８に送信データＴ３が格納されている場合、その送信データＴ３が送信シフト回路１０に送られ、クロック信号ＣＬＫに同期して送信される。この場合、受信バッファ９には受信データＲ２が格納されているにもかかわらず次の受信データＲ３を受信してしまい、オーバーランが発生する。つまり、受信ＤＭＡコントローラ５により読み出される前の受信データＲ２が次の受信データＲ３により破壊されてしまう。
データ処理装置１には、１つのＳＩＯ６が搭載されているが、複数個のＳＩＯ６を搭載したデータ処理装置も実用化されている。そのようなデータ処理装置においては、ＣＰＵ２の優先度の高い処理に加えて、別のＳＩＯでのデータ転送よりＤＭＡ転送を停止させる場合があるため、オーバーランの発生がますます問題となる。つまり、ＳＩＯ６のＤＭＡ転送以外の別処理により、ＤＭＡ転送のためにバス７が開放されなかった場合には、図９に示すようなオーバーランの発生が問題となる。
因みに、ＣＰＵ２の優先度の高い処理を、ＤＭＡ転送の優先度よりも下げることで、オーバーランの発生を回避することが可能である。しかし、ＣＰＵ２の処理の優先度を下げると、ＣＰＵ２の処理が的確に実施できなくなり、処理効率が悪化してしまう。また、複数のＳＩＯ６が搭載される場合、各ＳＩＯ６のＤＭＡ転送に優先度をつけたとしても、いずれかのＤＭＡ転送においてオーバーランが発生してしまう。
【特許文献１】        特開２００２−２２２１６１号公報
【発明の開示】
本発明の目的は、オーバーランの発生を防止し、ＤＭＡ転送を効率よく実施することができるデータ処理装置、及びその通信方法を提供することにある。
本発明の一態様では、バスと、バスに接続された中央処理装置と、バスに接続されたメモリと、バスに接続され、２進同期通信方式でデータの送受信を同時に行うシリアル入出力装置と、バスに接続され、シリアル入出力装置からの第１起動要求信号に応答して、ダイレクトメモリアクセス処理によりメモリからシリアル入出力装置に送信データを転送する送信ダイレクトメモリアクセス制御装置と、バスに接続され、シリアル入出力装置からの第２起動要求信号に応答して、ダイレクトメモリアクセス処理によりシリアル入出力装置からメモリに受信データを転送する受信ダイレクトメモリアクセス制御装置とを備えるデータ処理装置が提供される。シリアル入出力装置は、送信データを格納する送信バッファと、受信データを格納する受信バッファと、送信バッファ及び受信バッファに接続された制御手段とを含む。制御手段は送信バッファに送信データが格納されており且つ受信バッファにデータ格納可能領域があるときに、送信バッファに格納されている送信データの送信を開始させる。
本発明の別の態様では、バスと、バスに接続された中央処理装置と、バスに接続されたメモリと、バスに接続され、２進同期通信方式でデータの送受信を同時に行うシリアル入出力装置と、バスに接続され、シリアル入出力装置からの第１起動要求信号に応答して、ダイレクトメモリアクセス処理によりメモリからシリアル入出力装置に送信データを転送する送信ダイレクトメモリアクセス制御装置と、バスに接続され、シリアル入出力装置からの第２起動要求信号に応答して、ダイレクトメモリアクセス処理によりシリアル入出力装置からメモリに受信データを転送する受信ダイレクトメモリアクセス制御装置とを備えるデータ処理装置を用いた通信方法が提供される。シリアル入出力装置は、送信データを格納する送信バッファと、受信データを格納する受信バッファとを含むものである。通信方法は、送信バッファに送信データが格納されており且つ受信バッファにデータ格納可能領域があることを含む開始条件が満たされているかどうかを確認する工程と、開始条件が満たされているときに、送信データの送信を開始する工程とを備える。
【図面の簡単な説明】  図１は本発明の一実施形態のデータ処理装置のブロック回路図である。
図２は図１のデータ処理装置のＳＩＯのブロック回路図である。
図３はＳＩＯの送信動作のフローチャートである。
図４はＤＭＡデータ送信処理のフローチャートである。
図５はＳＩＯの受信動作のフローチャートである。
図６はデータ処理装置のタイミングチャートである。
図７は従来のデータ処理装置のブロック回路図である。
図８は図７のデータ処理装置の正常通信時のタイミングチャートである。
図９はオーバーラン発生時のタイミングチャートである。
【発明を実施するための最良の形態】  以下、本発明の一実施形態のデータ処理装置について図面に従って説明する。
図１はデータ処理装置２１のブロック回路図である。データ処理装置２１は中央処理装置（ＣＰＵ）２、メモリ３、送信ＤＭＡコントローラ４、受信ＤＭＡコントローラ５、２進同期シリアル入出力装置（ＳＩＯ）２２を含み、それらは共通のシステムバス７を介して相互に接続されている。図１のデータ処理装置２１のＣＰＵ２、メモリ３、送信ＤＭＡコントローラ４、及び受信ＤＭＡコントローラ５は図７のデータ処理装置１のものと実質的に同じであるが、ＳＩＯ２２が異なっている。
図２はＳＩＯ２２のブロック回路図である。ＳＩＯ２２は送信バッファ２４、受信バッファ２５、送信シフト回路２６、受信シフト回路２７、送信制御回路２８、受信制御回路２９、クロック信号発生回路３０、レジスタ３１を含む。ＳＩＯ２２の動作モードとしては、ＣＰＵ２の割り込み処理によりデータの送受信を行うＣＰＵモードと、ＣＰＵ２を介さずにＤＭＡコントローラ４，５のダイレクトメモリアクセス処理によりデータの送受信を行うＤＭＡモードとがある。ＳＩＯ２２の動作モードに関する情報はレジスタ３１に登録される。動作モードに関する情報は、データ処理装置１の起動時にＣＰＵ２が実行する初期化処理によりバス７を介してレジスタ３１に登録される。
送信制御回路２８は、ＳＩＯ２２における送信動作を制御する回路であって、送信バッファ２４、受信バッファ２５、送信シフト回路２６、クロック信号発生回路３０、及びレジスタ３１に接続されている。受信制御回路２９は、ＳＩＯ２２における受信動作を制御する回路であって、受信バッファ２５、受信シフト回路２７、及びレジスタ３１に接続されている。
ＳＩＯ２２がＤＭＡモードで動作する場合、送信制御回路２８は、送信バッファ２４を参照して、送信バッファ２４が空であり、送信バッファ２４にデータ格納可能領域があると判定したときに、送信ＤＭＡコントローラ４に第１起動要求信号ＴＲＡを供給する。送信ＤＭＡコントローラ４は第１起動要求信号ＴＲＡに応答して起動し、送信データをメモリ３から読み出す。その送信データはバス７を介して送信バッファ２４に転送され、送信バッファ２４から送信シフト回路２６に送られる。送信制御回路２８はクロック信号発生回路３０を活性化させてクロック信号ＣＬＫを生成させる。送信シフト回路２６の送信データＴｘはクロック信号ＣＬＫに同期して、送信端子ＤＯＵＴから送信される。
ＳＩＯ２２では、データの送信と同時に受信が行われるため、受信端子ＤＩＮから入力される受信データＲｘが受信シフト回路２７を介して受信バッファ２５に格納される。このとき、受信制御回路２９は、受信ＤＭＡコントローラ５に第２起動要求信号ＲＥＣを供給する。受信ＤＭＡコントローラ５は第２起動要求信号ＲＥＣに応答して起動し、受信データを受信バッファ２５から読み出す。その受信データはバス７を介してメモリ３に転送される。
一実施形態において、送信制御回路２８は、受信バッファ２５を参照し、受信バッファ２５が空である、すなわち、受信バッファ２５にデータ格納可能領域があることを条件にデータの送信を行うことで、受信バッファ２５におけるオーバーランが防止される。
次に、データ処理装置２１による送信動作を説明する。図３は、ＳＩＯ２２の送信制御回路２８により実行される送信処理のフローチャートである。
データ処理装置２１の初期化処理として、ＣＰＵ２は、先ず送信ＤＭＡコントローラ４の転送元であるメモリ３と転送先であるＳＩＯ２２と転送データのデータ数等の情報を送信ＤＭＡコントローラ４のレジスタ（図示略）に登録するとともに、ＳＩＯ２２のレジスタ３１にＳＩＯ２２の動作モードを登録する。その後、ＣＰＵ２がＳＩＯ２２を起動することで、図３の処理が開始される。
図３のステップＳ１００において、送信制御回路２８はレジスタ３１を参照し動作モードを調べる。ステップＳ１１０において、送信制御回路２８は調べた動作モードがＤＭＡモードか否かを判定する。動作モードがＣＰＵモードである場合（ステップＳ１１０においてＮＯ）、送信制御回路２８は、ステップＳ１２０において、送信バッファ２４が空であるか否かを判定する。送信バッファ２４が空である場合（ステップＳ１２０においてＹＥＳ）、送信バッファ２４に送信データが格納されるまで待機する。このとき、ＣＰＵ２の割り込み処理によって、送信データが送信バッファ２４に転送されると、送信制御回路２８は、ステップＳ１３０において、データ送信を行う。つまり、送信制御回路２８は、送信バッファ２４の送信データを送信シフト回路２６に送るとともに、クロック信号発生回路３０にクロック信号ＣＬＫを出力させる。これにより、送信データが送信シフト回路２６から送信端子ＤＯＵＴを介して外部装置に送信される。そのデータ送信後に、送信制御回路２８はステップＳ１２０，Ｓ１３０の処理を繰り返す。
一方、動作モードがＤＭＡモードである場合（ステップＳ１１０においてＹＥＳ）、送信制御回路２８は、ステップＳ１４０において、ダイレクトメモリアクセス（ＤＭＡ）方式に従ってデータ送信処理を実施する。図４には、そのデータ送信処理が示されている。ＳＩＯ２２の起動直後においては送信バッファ２４が空であるため、図４のステップＳ１４２において、送信制御回路２８は送信ＤＭＡコントローラ４を起動するための第１起動要求信号ＴＲＡを出力する。送信ＤＭＡコントローラ４は第１起動要求信号ＴＲＡにより起動され、送信データをメモリ３から読み出し、その送信データを送信バッファ２４に転送する。
ステップＳ１４４において、送信制御回路２８は、受信バッファ２５を参照し、受信バッファ２５が空であるか否かを調べる。受信バッファ２５が空となる（データ格納可能領域が確保される）まで、処理はステップＳ１４４で待機される。受信バッファ２５が空である場合（ステップＳ１４４においてＹＥＳ）、ステップＳ１４６において、送信制御回路２８は送信データの送信を開始する。つまり、送信制御回路２８は、送信バッファ２４の送信データを送信シフト回路２６に送るとともに、クロック信号発生回路３０からクロック信号ＣＬＫを出力させる。これにより、送信シフト回路２６の送信データが送信端子ＤＯＵＴを介して外部装置に送信される。
ステップＳ１４８において、送信制御回路２８は、送信バッファ２４が空となったか否かを調べる。送信バッファ２４が空でない場合（ステップＳ１４８においてＮＯ）、処理はステップＳ１４６に戻り、送信制御回路２８はデータ送信を再度実行する。送信バッファ２４が空となると（ステップＳ１４８においてＹＥＳ）、送信制御回路２８はステップＳ１４２〜Ｓ１４８の処理を繰り返し実行する。
次に、一実施形態における受信動作を説明する。図５は、ＳＩＯ２２の受信制御回路２９により実行される受信処理のフローチャートである。なお、ＣＰＵ２の初期化処理により、受信ＤＭＡコントローラ５には、転送元である受信バッファ２５と転送先であるメモリ３と転送データのデータ数等の情報がレジスタ（図示略）に登録される。その登録後にＣＰＵ２がＳＩＯ２２を起動することで図５の処理が開始される。
図５に示すように、受信制御回路２９はステップＳ２００にてレジスタ３１を参照し動作モードを調べ、ステップＳ２１０において、動作モードがＤＭＡモードか否かを判定する。動作モードがＣＰＵモードである場合（ステップＳ２１０においてＮＯ）、ステップＳ２２０において、受信制御回路２９は、受信バッファ２５が空であるか否かを調べる。受信バッファ２５に受信データが格納されるまで、処理はステップＳ２２０で待機される。
上述したデータ送信と同時に受信が行われることで、受信端子ＤＩＮから入力された受信データが受信シフト回路２７を介して受信バッファ２５に格納される。このとき、受信制御回路２９は、ステップＳ２３０において、受信データの転送処理を行う。この転送処理ではＣＰＵ２への割り込み信号が発生される。ＣＰＵ２はその割り込み信号に応答し、バス７を介して受信バッファ２５の受信データを読み出してメモリ３に格納する。受信制御回路２９は、ステップＳ２３０の処理後にステップＳ２２０に戻り、ステップＳ２２０，Ｓ２３０の処理を繰り返し実行する。
一方、ステップＳ２１０において、動作モードがＤＭＡモードであると判定した場合（ステップＳ２１０においてＹＥＳ）、受信制御回路２９は、ステップＳ２４０において、ダイレクトメモリアクセス処理によりデータ受信処理を実施する。即ち、受信制御回路２９は、ステップＳ２４０において、受信バッファ２５が空であるか否かを判定し、受信バッファ２５に受信データが格納されるまで待機する。
そして、上述したデータ送信と同時にデータの受信が行われる。受信データが受信バッファ２５に格納されると、受信制御回路２９は、ステップＳ２５０において、受信ＤＭＡコントローラ５を起動するための第２起動要求信号ＲＥＣを出力する。第２起動要求信号ＲＥＣにより受信ＤＭＡコントローラ５が起動され、受信データが受信バッファ２５から読み出されてメモリ３に転送される。その後、受信制御回路２９は、ステップＳ２４０に戻り、ステップＳ２４０，Ｓ２５０の処理を繰り返し実行する。
一実施形態のデータ処理装置２１では、送信ＤＭＡコントローラ４により送信データが送信バッファ２４に転送されたとき、ＳＩＯ２２において直ぐに送信を開始するのではなく、受信バッファ２５に受信データが無いことを確認した後に送信が開始される。このように、送信バッファ２４に送信データが格納されており且つ受信バッファ２５にデータ格納可能領域があることを条件に、データ送信を開始することにより、従来技術のように受信バッファ２５でオーバーランが発生することが防止される。
図６にはその動作例を示している。図６の動作例でも、図９の動作例と同様に、受信データＲ２が受信シフト回路２７から受信バッファ２５に格納されたとき、ＳＩＯ２２から第２起動要求信号ＲＥＣが出力される。受信ＤＭＡコントローラ５は第２起動要求信号ＲＥＣに応答し、ＣＰＵ２に対して占有要求信号ＤＨＬＤを発行する。このとき、ＣＰＵ２は優先度の高い処理を実行しており、その処理の実行期間では受信ＤＭＡコントローラ５によるバス占有を許可することなく、処理完了後に占有許可信号ＤＡＣＫを出力する。つまり、このＣＰＵ２の処理の実行期間は、占有許可信号ＤＡＣＫが出力されないため、受信ＤＭＡコントローラ５による受信データの転送動作が停止される期間（受信ＤＭＡ停止期間）Ｘとなる。
一実施形態では、受信ＤＭＡ停止期間Ｘにおいて、受信バッファ２５に受信データＲ２が格納されているため、送信バッファ２４における送信データＴ３の送信が停止される。つまり、受信ＤＭＡ停止期間Ｘでは、送信データＴ３が送信シフト回路２６に送られることはなく、クロック信号発生回路３０のクロック信号ＣＬＫも出力されない。これにより、受信バッファ２５でのオーバーランの発生が防止される。
そして、ＣＰＵ２での優先度の高い処理が終了し、該ＣＰＵ２から占有許可信号ＤＡＣＫが出力されることにより、受信ＤＭＡコントローラ５が起動されて受信バッファ２５の受信データＲ２がメモリ３に転送される。その結果、受信バッファ２５が空となるので、送信バッファ２４における送信データＴ３の送信が開始される。
一方、ＣＰＵ２がバス７の開放を妨げなかった場合には、一実施形態のデータ処理装置２１は、従来技術のデータ処理装置１と同様に図８に示すタイミングチャートのように動作する。つまり、従来技術と同様のＤＭＡ転送によりデータ転送が高速に行われる。
一実施形態のデータ処理装置２１によれば、以下の利点が得られる。
（１）ＳＩＯ２２の動作モードがＤＭＡモードに設定されて、ＳＩＯ２２の送受信データをダイレクトメモリアクセス処理により転送する場合、送信バッファ２４に送信データが格納されており且つ受信バッファ２５が空である（データ格納可能領域がある）ことを条件にデータ送信が開始される。この条件によれば、受信バッファ２５の受信データが受信ＤＭＡコントローラ５により読み出されるまでＳＩＯ２２の送受信動作が一時停止されるため、受信バッファ２５でのオーバーランの発生が防止される。
（２）ＳＩＯ２２の動作モードがＣＰＵモードに設定されて、ＣＰＵ２の割り込み処理によりＳＩＯ２２の送受信データを転送する場合には、送信バッファ２４に送信データが格納されているときにデータ送信が開始される。つまり、送信バッファに送信データが格納され、且つ受信バッファにデータ格納可能領域があることを含むＤＭＡモードの開始条件は無効とされる。データ処理装置２１においてオーバーランが発生するのは、ダイレクトメモリアクセス処理によりＳＩＯ２２の送受信データを転送する場合である。従って、ＣＰＵ２の割り込み処理によりデータ転送をする場合、上記開始条件を無効とすることにより、そのデータ転送を的確に行うことが可能となる。
（３）ＳＩＯ２２にはレジスタ３１が設けられ、データ処理装置２１の初期化処理においてＣＰＵ２によりレジスタ３１に動作モードが登録される。この初期化処理により、データ処理装置２１が適用されるシステムに応じてＳＩＯ２２の動作モードを変更することができ、実用上好ましいものとなる。
一実施形態は以下のように変更してもよい。
複数のＳＩＯ２２がデータ処理装置２１に搭載されてもよい。
ＳＩＯ２２に設けられる送信バッファ２４と受信バッファ２５はそれぞれ１つに限定されず、複数の送信バッファ２４と複数の受信バッファ２５をＳＩＯ２２に設けてもよい。この場合、送信制御回路２８は、複数の送信バッファ２４のいずれかが空となるときにデータ格納可能領域があると判断して第１起動要求信号ＴＲＡを出力する。受信制御回路２９は、複数の受信バッファ２５のいずれかに受信データが格納されたときに第２起動要求信号ＲＥＣを出力する。送信制御回路２８は複数の受信バッファ２５のいずれかが空であるときにデータ格納可能領域があると判断して、送信バッファ２４のデータ送信を開始する。これにより、受信バッファ２５でのオーバーランの発生が防止される。
送信動作を制御する送信制御回路２８と受信動作を制御する受信制御回路２９の代わりに、送受信動作を制御する１つの制御回路を設けてもよい。
送信制御回路２８は、受信バッファ２５を参照し、受信バッファ２５に受信データが格納されている場合には、データ送信を停止するものであるがこれに限定されるものではない。例えば、データ処理装置２１において、受信ＤＭＡコントローラ５によるデータ転送よりもＣＰＵ２の処理が優先される場合（図６における受信ＤＭＡ停止期間Ｘ）では、受信ＤＭＡコントローラ５への第２起動要求信号ＲＥＣが出力されている。そして、その第２起動要求信号ＲＥＣが出力されているときには受信バッファ２５に受信データが存在する。従って、送信制御回路２８により、第２起動要求信号ＲＥＣに基づいてデータ格納可能領域がないと判断してデータ送信を停止する。このように構成しても、受信バッファ２５でのオーバーランの発生を防止できる。
【図１】
2004107188.tif 000003
【図２】
2004107188.tif 000004
【図３】
2004107188.tif 000005
【図４】
2004107188.tif 000006
【図５】
2004107188.tif 000007
【図６】
2004107188.tif 000008
【図７】
2004107188.tif 000009
【図８】
2004107188.tif 000010
【図９】
2004107188.tif 000011
【国際調査報告】
2004107188.tif 000012
2004107188.tif 000013