(57)【要約】【課題】ソフトウェアなどを用いることなく、ＤＭＡコントローラにより効率よく奇数バイトのデータ転送を行う。【解決手段】ＤＭＡコントローラ５は、内蔵メモリ３から２バイト毎にデータが読み出され、その２バイト毎のデータをデータ通信インタフェース４に転送する。データ通信インタフェース４は、その２バイト毎のデータを周辺機器に転送する。最後の２バイトのデータ（たとえば、５１１バイトと５１２バイト）転送後、ＤＭＡコントローラ５は、最後の転送データであることを示すＤＭＡ転送終了信号ＤＥをデータ通信インタフェース４に出力する。転送制御部４ａは、予め奇数バイトのデータを転送することを示すフラグが設定されており、ＤＭＡコントローラ５から入力された２バイトのデータのうち、下位バイト（５１１バイト）のデータのみを周辺機器に転送する制御を行う。【選択図】  図１
2007334600.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタとなる中央処理装置と、
バスマスタとなるＤＭＡコントローラと、
前記バスマスタのアクセス対象となる複数のスレーブモジュールと、
前記ＤＭＡコントローラと前記スレーブモジュールとのデータ通信のインタフェースとなるデータ通信インタフェースとを有し、
前記ＤＭＡコントローラは、
偶数バイトのデータ転送を行い、
前記データ通信インタフェースは、
前記スレーブモジュールへのデータ転送の総バイト数が奇数バイトとなる際に、前記スレーブモジュールに最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送制御部を備えたことを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記転送制御部は、
前記中央処理装置にアクセスされ、データ転送の総バイト数が奇数バイトとなることを示すフラグが設定されるレジスタと、
前記レジスタに奇数バイトとなるフラグが設定され、制御信号が入力された際に、最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送部とよりなることを特徴とする半導体集積回路装置。
【請求項３】
請求項２記載の半導体集積回路装置において、
前記転送部に入力される制御信号は、前記ＤＭＡコントローラから出力される転送データが最後であることを示すＤＭＡ転送終了信号であることを特徴とする半導体集積回路装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体集積回路装置において、
前記ＤＭＡコントローラは、
２バイト毎のデータ転送を行い、
前記転送制御部は、
データ転送の総バイト数が奇数バイトとなる際に、前記スレーブモジュールに最終転送される２バイトのデータのうち、下位バイトのデータを転送するように制御を行うことを特徴とする半導体集積回路装置。
【請求項５】
請求項１〜４のいずれか１項に記載の半導体集積回路装置において、
前記バスマスタのアクセス対象となる複数のスレーブモジュールは、前記半導体集積回路装置に外部接続されたスレーブモジュールを含むことを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置のデータ転送技術に関し、特に、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラによるスレーブモジュールへの奇数バイトのデータ転送に有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路装置においては、外部接続された半導体メモリや内部メモリなどに対して中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を介することなく直接アクセスしてデータの書き込み／読み出し制御を行うＤＭＡ転送を行うＤＭＡコントローラが広く用いられている。
【０００３】
この種のＤＭＡコントローラでは、予めデータビット幅が決められているので、通常、偶数バイトのデータ転送となる。それにより、奇数バイトのデータ転送ができなくなってしまう。
【０００４】
その問題を回避する技術として、たとえば、データ転送を偶数バイトではなく、１バイト毎に行うもの、ＤＭＡコントローラの転送バイト数の設定を「総バイト−１バイト」とし、ＤＭＡコントローラによる偶数バイトのデータ転送が終了した後、ＣＰＵにより残りの１バイトを転送するもの、および転送先のモジュールにバイトカウンタを備えて転送されるバイト数をカウントし、転送された任意のバイトのみを有効とするものなどがある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、上記のようなＤＭＡコントローラにおける奇数バイトのデータ転送技術では、次のような問題点があることが本発明者により見い出された。
【０００６】
すなわち、データ転送を１バイトで行う場合には、転送データのバイト数が大幅に縮小されるので、データ転送の速度が著しく低下してしまうという問題がある。
【０００７】
また、ＤＭＡコントローラによる偶数バイトのデータ転送が終了した後、ＣＰＵにより残りの１バイトを転送する技術では、ＣＰＵによる転送においてソフトウェアが介在することになり、この場合もデータの転送速度が低下してしまうという問題がある。
【０００８】
さらに、転送先のメモリなどのモジュールにバイトカウンタを備える場合には、バイトカウンタの論理部が必要となるので、ハードウェア構成の増大による半導体集積回路装置の大型化やコストアップなどが懸念されることになる。
【０００９】
本発明の目的は、ソフトウェアなどを用いることなく、ＤＭＡコントローラにより効率よく奇数バイトのデータ転送を行うことのできる技術を提供することにある。
【００１０】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
本発明による半導体集積回路装置は、バスマスタとなる中央処理装置と、バスマスタとなるＤＭＡコントローラと、該バスマスタのアクセス対象となる複数のスレーブモジュールと、ＤＭＡコントローラとスレーブモジュールとのデータ通信のインタフェースとなるデータ通信インタフェースとを有し、該ＤＭＡコントローラは、偶数バイトのデータ転送を行い、データ通信インタフェースは、スレーブモジュールへのデータ転送の総バイト数が奇数バイトとなる際に、スレーブモジュールに最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送制御部を備えたものである。
【００１３】
また、本願のその他の発明の概要を簡単に示す。
【００１４】
本発明による半導体集積回路装置は、前記転送制御部が、中央処理装置にアクセスされ、データ転送の総バイト数が奇数バイトとなることを示すフラグが設定されるレジスタと、該レジスタに奇数バイトとなるフラグが設定され、制御信号が入力された際に、最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送部とよりなるものである。
【００１５】
また、本発明による半導体集積回路装置は、前記転送部に入力される制御信号が、ＤＭＡコントローラから出力される転送データが最後であることを示すＤＭＡ転送終了信号よりなるものである。
【００１６】
さらに、本発明による半導体集積回路装置は、前記ＤＭＡコントローラが、２バイト毎のデータ転送を行い、前記転送制御部は、データ転送の総バイト数が奇数バイトとなる際に、スレーブモジュールに最終転送される２バイトのデータのうち、下位バイトのデータを転送するように制御を行うものである。
【００１７】
また、本発明による半導体集積回路装置は、前記バスマスタのアクセス対象となる複数のスレーブモジュールは、半導体集積回路装置に外部接続されたスレーブモジュールを含むものである。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１９】
（１）ＤＭＡコントローラによる転送データが総バイト数が奇数バイトとなるデータ転送を容易に、かつ高速に行うことができる。
【００２０】
（２）上記（１）により、半導体集積回路装置の処理性能を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
（実施の形態１）
図１は、本発明の実施の形態１による半導体集積回路装置のブロック図、図２は、図１の半導体集積回路装置に設けられたＣＰＵのデータ転送における処理例を示すフローチャート、図３は、図１の半導体集積回路装置に設けられたＤＭＡコントローラから出力される各種の信号のタイミングチャートである。
【００２３】
本実施の形態１において、半導体集積回路装置１は、図１に示すように、ＣＰＵ２、内蔵メモリ３、データ通信インタフェース４、およびＤＭＡコントローラ５から構成されている。これら内蔵メモリ３、データ通信インタフェース４、ならびにＤＭＡコントローラ５は、ＣＰＵバス６を介して相互に接続されている。
【００２４】
ＣＰＵ２は、中央処理装置として機能し、半導体集積回路装置１におけるすべての制御を司る。内蔵メモリ３は、たとえば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性半導体メモリからなり、プログラムやデータなどを一時的に格納する。また、内蔵メモリ３は、揮発性半導体メモリ以外であってもよく、たとえば、フラッシュメモリに例示される不揮発性半導体メモリなどの半導体メモリであればよい。
【００２５】
データ通信インタフェース４には、データ通信を行う周辺機器が外部接続されている。このデータ通信インタフェース４は、周辺機器と半導体集積回路装置１とのデータ通信におけるインタフェースである。
【００２６】
内蔵メモリ３、および周辺機器は、ＣＰＵ２やＤＭＡコントローラ５などのバスマスタのアクセス対象となるスレーブモジュールである。
【００２７】
また、データ通信インタフェース４は、一例として、シリアルインタフェースモジュールからなり、シリアルポートを介して接続されたプリンタやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、あるいはデジタルカメラなどのシリアル接続される様々な周辺機器のデータ入出力制御などを行う。
【００２８】
データ通信インタフェース４には、転送制御部４ａが設けられている。転送制御部４ａは、転送データが奇数バイトの際に、ＤＭＡコントローラ５から出力されたＤＭＡ転送終了信号ＤＥを受けて、任意の（たとえば、下位バイト）データのみ転送するように制御する。このＤＭＡ転送終了信号ＤＥは、転送データが最後であることを示す信号である。
【００２９】
ＤＭＡコントローラ５は、バスマスタとしてＣＰＵバス６を使用することができ、周辺機器と内蔵メモリ３との間におけるデータ転送をＣＰＵ２を介することなく直接アクセスして制御を行う。
【００３０】
次に、本実施の形態における半導体集積回路装置１のデータ転送制御について説明する。
【００３１】
図２は、ＤＭＡコントローラ５により、内蔵メモリ３から外部接続された周辺機器にデータ転送する際のＣＰＵ２における処理例を示すフローチャートである。
【００３２】
まず、ＣＰＵ２は、ＤＭＡコントローラ５に対してデータ転送要求を出力する（ステップＳ１０１）。ここでは、データ転送要求が、たとえば、内蔵メモリ３からデータ通信インタフェース４に５１１バイトのデータを転送する要求とする。
【００３３】
続いて、ＣＰＵ２は、転送制御部４ａに対してデータ通信インタフェース４に対して奇数バイトのデータを転送することを示すフラグを設定する制御を行う（ステップＳ１０２）。このフラグは、たとえば、転送制御部４ａに設けられたレジスタなどに格納される。
【００３４】
そして、ＣＰＵ２は、ＤＭＡコントローラ５に対して転送バイトの総数、および各データの転送バイト数の設定を行う（ステップＳ１０３）。この場合、転送バイトの総数は５１２バイトであり、各データの２バイト毎に順次転送とする。よって、５１２バイトを２バイト毎に分割して転送するので、ＤＭＡコントローラ５は、２５６回の転送回数によって５１２バイトのデータを転送することになる。
【００３５】
ＤＭＡコントローラ５の設定が終了すると、ＣＰＵ２は、ＤＭＡコントローラ５に転送開始許可を発行し（ステップＳ１０４）、該ＤＭＡコントローラ５によるデータ転送が開始される。
【００３６】
続いて、ＤＭＡコントローラ５によるデータ転送処理について説明する。
【００３７】
図３は、ＤＭＡコントローラ５から出力される各種の信号のタイミングチャートである。
【００３８】
この図３においては、上方から下方にかけて、動作クロックとなるクロック信号、内蔵メモリ３の読み出しを許可するリードイネーブル信号、内蔵メモリ３からデータ通信インタフェース４に入力されるリードデータ、周辺機器への書き込みを許可するライトイネーブル信号、ＤＭＡコントローラ５からデータ通信インタフェース４に出力されるライトデータ、ならびにＤＭＡ転送終了信号ＤＥの信号タイミングをそれぞれ示している。
【００３９】
まず、ＤＭＡコントローラ５からリードイネーブル信号が出力され、内蔵メモリ３から任意のデータ（２バイト）が読み出される。続いて、ＤＭＡコントローラ５は、データ通信インタフェース４に対してライトイネーブル信号を出力し、内蔵メモリ３から読み出した２バイトのデータをデータ通信インタフェース４に転送する。そして、データ通信インタフェース４を介して周辺機器にデータが転送される。
【００４０】
以下、この処理を２５５回繰り返し、５１０バイトのデータをデータ通信インタフェース４に転送する。
【００４１】
そして、最後の２バイトのデータ（５１１バイトと５１２バイト）転送では、５１０バイトまでのデータ転送と同様に、ＤＭＡコントローラ５からリードイネーブル信号が出力された後、内蔵メモリ３から任意のデータ（２バイト）が読み出される。
【００４２】
続いて、ＤＭＡコントローラ５が、データ通信インタフェース４に対してライトイネーブル信号を出力した際に、該ＤＭＡコントローラ５は、最後の転送データであることを示すＤＭＡ転送終了信号ＤＥを出力する。
【００４３】
転送制御部４ａは、前述したように、ＣＰＵ２によって奇数バイトのデータを転送することを示すフラグが設定されているので、ＤＭＡ転送終了信号ＤＥが入力されると、ＤＭＡコントローラ５から入力された２バイト（５１１バイトと５１２バイト）のデータのうち、下位バイト（５１１バイト）のデータのみを周辺機器に転送する制御を行う。
【００４４】
また、データ転送の総バイト数が偶数バイトの場合には、ＣＰＵ２による転送制御部４ａへのフラグ設定が行われない。よって、ＤＭＡコントローラ５からＤＭＡ転送終了信号ＤＥが出力されても、最終の２バイト（５１１バイトと５１２バイト）のデータをすべて周辺機器に転送する制御を行う。
【００４５】
それにより、本実施の形態１によれば、ＤＭＡコントローラ５による奇数バイトのデータ転送を容易に、かつ高速に行うことができる。
【００４６】
また、本実施の形態１においては、２バイト毎にデータ転送を行う場合について説明したが、このデータ転送は、たとえば、４バイト（またはそれ以上のバイト数）を順次転送する構成としてもよい。
【００４７】
たとえば、４バイト毎のデータ転送の場合には、ＣＰＵ２がデータ通信インタフェース４に対して設定するフラグを２バイトとし、この２バイトのフラグの状態により、最終データの転送バイト数を判断する。
【００４８】
この場合、たとえば、フラグが’００’の際には、最終データの４バイトすべてを転送し、フラグが’０１’の際には、最終データの４バイトのうち、下位３バイトを転送する制御を行う。
【００４９】
また、フラグが’１０’の際には、最終データの４バイトのうち、下位２バイトを転送し、フラグが’１１’の際には、最終データの４バイトのうち、下位１バイトを転送する制御を行う。これにより、１回に転送されるバイト数を増やすことが可能となるので、より高速に奇数バイトのデータ転送を行うことが可能となる。
【００５０】
さらに、前記実施の形態１では、ＣＰＵ２がデータ通信インタフェース４に対して奇数バイトのデータを転送することを示すフラグを設定する場合について記載したが、このフラグの代わりに、ＤＭＡ転送終了信号ＤＥを用いるようにしてもよい。
【００５１】
（実施の形態２）
図４は、本発明の実施の形態２による半導体集積回路装置のブロック図、図５は、図４の半導体集積回路装置に設けられたＤＭＡコントローラから出力される各種の信号のタイミングチャートである。
【００５２】
本実施の形態２において、半導体集積回路装置１は、図３に示すように、ＣＰＵ２、内蔵メモリ３、データ通信インタフェース４、およびＤＭＡコントローラ５からなる前記実施の形態１の構成に、割り込み制御回路７が新たに追加されている。
【００５３】
割り込み制御回路７には、ＤＭＡコントローラ５から出力されるＤＭＡ転送が終了したことを示すＤＭＡ転送終了割り込み信号や、その他の様々な割り込み信号が入力され、ＣＰＵ２に割り込み要求信号を与える。
【００５４】
また、ＤＭＡコントローラ５から出力されるＤＭＡ転送終了割り込み信号は、データ通信インタフェース４にも入力されるように接続されている。そして、データ通信インタフェース４は、ＤＭＡコントローラ５から出力されるＤＭＡ転送終了割り込み信号を用いて奇数バイトの転送制御を行う。
【００５５】
次に、本実施の形態２における半導体集積回路装置１のデータ転送制御について説明する。ここで、ＣＰＵ２におけるデータ転送前の設定処理は、前記実施の形態１の図２と同様であるので説明は省略する。また、この場合も、ＤＭＡコントローラ５は、２５６回の転送回数によって５１２バイトのデータを転送するものとする。
【００５６】
図５は、ＤＭＡコントローラ５から出力される各種の信号のタイミングチャートである。
【００５７】
この図５においては、上方から下方にかけて、動作クロックとなるクロック信号、内蔵メモリ３の読み出しを許可するリードイネーブル信号、内蔵メモリ３からデータ通信インタフェース４に入力されるリードデータ、周辺機器への書き込みを許可するライトイネーブル信号、ＤＭＡコントローラ５からデータ通信インタフェース４に出力されるライトデータ、ならびにＤＭＡ転送終了割り込み信号の信号タイミングをそれぞれ示している。
【００５８】
図５において、最初の２バイトのデータ転送から、２５５回目の５１０バイトのデータ転送までの処理は、前記実施の形態１の図３と同様であるので説明を省略する。
【００５９】
そして、最後の２バイトのデータ（５１１バイトと５１２バイト）転送では、５１０バイトまでのデータ転送と同様に、ＤＭＡコントローラ５からリードイネーブル信号が出力された後、内蔵メモリ３から任意のデータ（２バイト）が読み出される。
【００６０】
続いて、ＤＭＡコントローラ５は、データ通信インタフェース４に対してライトイネーブル信号を出力して、最後のデータ転送を行う。その後、ＤＭＡコントローラ５は、データ転送が終了したことを示すＤＭＡ転送終了割り込み信号を割り込み制御回路７、およびデータ通信インタフェース４にそれぞれ出力する。
【００６１】
データ通信インタフェース４は、ＤＭＡ転送終了割り込み信号が入力されると、ＤＭＡコントローラ５から入力された２バイト（５１１バイトと５１２バイト）のデータのうち、下位バイト（５１１バイト）のデータのみを周辺機器に転送する制御を行う。
【００６２】
それにより、本実施の形態２においても、ＤＭＡコントローラ５による奇数バイトのデータ転送を容易に、かつ高速に行うことができる。
【００６３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６４】
本発明は、ＤＭＡコントローラによる転送データの総バイト数が奇数バイトの場合のデータ転送技術に適している。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態１による半導体集積回路装置のブロック図である。
【図２】図１の半導体集積回路装置に設けられたＣＰＵのデータ転送における処理例を示すフローチャートである。
【図３】図１の半導体集積回路装置に設けられたＤＭＡコントローラから出力される各種の信号のタイミングチャートである。
【図４】本発明の実施の形態２による半導体集積回路装置のブロック図である。
【図５】図４の半導体集積回路装置に設けられたＤＭＡコントローラから出力される各種の信号のタイミングチャートである。
【符号の説明】
【００６６】
１  半導体集積回路装置
２  ＣＰＵ
３  内蔵メモリ
４  データ通信インタフェース
４ａ  転送制御部
５  ＤＭＡコントローラ
６  ＣＰＵバス
７  割り込み制御回路
【図１】
2007334600.tif 000003
【図２】
2007334600.tif 000004
【図３】
2007334600.tif 000005
【図４】
2007334600.tif 000006
【図５】
2007334600.tif 000007