JP2007334600A - 半導体集積回路装置 - Google Patents
半導体集積回路装置 Download PDFInfo
- Publication number
- JP2007334600A JP2007334600A JP2006165205A JP2006165205A JP2007334600A JP 2007334600 A JP2007334600 A JP 2007334600A JP 2006165205 A JP2006165205 A JP 2006165205A JP 2006165205 A JP2006165205 A JP 2006165205A JP 2007334600 A JP2007334600 A JP 2007334600A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bytes
- transfer
- dma controller
- integrated circuit
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】ソフトウェアなどを用いることなく、DMAコントローラにより効率よく奇数バイトのデータ転送を行う。
【解決手段】DMAコントローラ5は、内蔵メモリ3から2バイト毎にデータが読み出され、その2バイト毎のデータをデータ通信インタフェース4に転送する。データ通信インタフェース4は、その2バイト毎のデータを周辺機器に転送する。最後の2バイトのデータ(たとえば、511バイトと512バイト)転送後、DMAコントローラ5は、最後の転送データであることを示すDMA転送終了信号DEをデータ通信インタフェース4に出力する。転送制御部4aは、予め奇数バイトのデータを転送することを示すフラグが設定されており、DMAコントローラ5から入力された2バイトのデータのうち、下位バイト(511バイト)のデータのみを周辺機器に転送する制御を行う。
【選択図】 図1
【解決手段】DMAコントローラ5は、内蔵メモリ3から2バイト毎にデータが読み出され、その2バイト毎のデータをデータ通信インタフェース4に転送する。データ通信インタフェース4は、その2バイト毎のデータを周辺機器に転送する。最後の2バイトのデータ(たとえば、511バイトと512バイト)転送後、DMAコントローラ5は、最後の転送データであることを示すDMA転送終了信号DEをデータ通信インタフェース4に出力する。転送制御部4aは、予め奇数バイトのデータを転送することを示すフラグが設定されており、DMAコントローラ5から入力された2バイトのデータのうち、下位バイト(511バイト)のデータのみを周辺機器に転送する制御を行う。
【選択図】 図1
Description
本発明は、半導体集積回路装置のデータ転送技術に関し、特に、DMA(Direct Memory Access)コントローラによるスレーブモジュールへの奇数バイトのデータ転送に有効な技術に関する。
半導体集積回路装置においては、外部接続された半導体メモリや内部メモリなどに対して中央処理装置(CPU:Central Processing Unit)を介することなく直接アクセスしてデータの書き込み/読み出し制御を行うDMA転送を行うDMAコントローラが広く用いられている。
この種のDMAコントローラでは、予めデータビット幅が決められているので、通常、偶数バイトのデータ転送となる。それにより、奇数バイトのデータ転送ができなくなってしまう。
その問題を回避する技術として、たとえば、データ転送を偶数バイトではなく、1バイト毎に行うもの、DMAコントローラの転送バイト数の設定を「総バイト−1バイト」とし、DMAコントローラによる偶数バイトのデータ転送が終了した後、CPUにより残りの1バイトを転送するもの、および転送先のモジュールにバイトカウンタを備えて転送されるバイト数をカウントし、転送された任意のバイトのみを有効とするものなどがある。
ところが、上記のようなDMAコントローラにおける奇数バイトのデータ転送技術では、次のような問題点があることが本発明者により見い出された。
すなわち、データ転送を1バイトで行う場合には、転送データのバイト数が大幅に縮小されるので、データ転送の速度が著しく低下してしまうという問題がある。
また、DMAコントローラによる偶数バイトのデータ転送が終了した後、CPUにより残りの1バイトを転送する技術では、CPUによる転送においてソフトウェアが介在することになり、この場合もデータの転送速度が低下してしまうという問題がある。
さらに、転送先のメモリなどのモジュールにバイトカウンタを備える場合には、バイトカウンタの論理部が必要となるので、ハードウェア構成の増大による半導体集積回路装置の大型化やコストアップなどが懸念されることになる。
本発明の目的は、ソフトウェアなどを用いることなく、DMAコントローラにより効率よく奇数バイトのデータ転送を行うことのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明による半導体集積回路装置は、バスマスタとなる中央処理装置と、バスマスタとなるDMAコントローラと、該バスマスタのアクセス対象となる複数のスレーブモジュールと、DMAコントローラとスレーブモジュールとのデータ通信のインタフェースとなるデータ通信インタフェースとを有し、該DMAコントローラは、偶数バイトのデータ転送を行い、データ通信インタフェースは、スレーブモジュールへのデータ転送の総バイト数が奇数バイトとなる際に、スレーブモジュールに最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送制御部を備えたものである。
また、本願のその他の発明の概要を簡単に示す。
本発明による半導体集積回路装置は、前記転送制御部が、中央処理装置にアクセスされ、データ転送の総バイト数が奇数バイトとなることを示すフラグが設定されるレジスタと、該レジスタに奇数バイトとなるフラグが設定され、制御信号が入力された際に、最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送部とよりなるものである。
また、本発明による半導体集積回路装置は、前記転送部に入力される制御信号が、DMAコントローラから出力される転送データが最後であることを示すDMA転送終了信号よりなるものである。
さらに、本発明による半導体集積回路装置は、前記DMAコントローラが、2バイト毎のデータ転送を行い、前記転送制御部は、データ転送の総バイト数が奇数バイトとなる際に、スレーブモジュールに最終転送される2バイトのデータのうち、下位バイトのデータを転送するように制御を行うものである。
また、本発明による半導体集積回路装置は、前記バスマスタのアクセス対象となる複数のスレーブモジュールは、半導体集積回路装置に外部接続されたスレーブモジュールを含むものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)DMAコントローラによる転送データが総バイト数が奇数バイトとなるデータ転送を容易に、かつ高速に行うことができる。
(2)上記(1)により、半導体集積回路装置の処理性能を向上させることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の実施の形態1による半導体集積回路装置のブロック図、図2は、図1の半導体集積回路装置に設けられたCPUのデータ転送における処理例を示すフローチャート、図3は、図1の半導体集積回路装置に設けられたDMAコントローラから出力される各種の信号のタイミングチャートである。
図1は、本発明の実施の形態1による半導体集積回路装置のブロック図、図2は、図1の半導体集積回路装置に設けられたCPUのデータ転送における処理例を示すフローチャート、図3は、図1の半導体集積回路装置に設けられたDMAコントローラから出力される各種の信号のタイミングチャートである。
本実施の形態1において、半導体集積回路装置1は、図1に示すように、CPU2、内蔵メモリ3、データ通信インタフェース4、およびDMAコントローラ5から構成されている。これら内蔵メモリ3、データ通信インタフェース4、ならびにDMAコントローラ5は、CPUバス6を介して相互に接続されている。
CPU2は、中央処理装置として機能し、半導体集積回路装置1におけるすべての制御を司る。内蔵メモリ3は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性半導体メモリからなり、プログラムやデータなどを一時的に格納する。また、内蔵メモリ3は、揮発性半導体メモリ以外であってもよく、たとえば、フラッシュメモリに例示される不揮発性半導体メモリなどの半導体メモリであればよい。
データ通信インタフェース4には、データ通信を行う周辺機器が外部接続されている。このデータ通信インタフェース4は、周辺機器と半導体集積回路装置1とのデータ通信におけるインタフェースである。
内蔵メモリ3、および周辺機器は、CPU2やDMAコントローラ5などのバスマスタのアクセス対象となるスレーブモジュールである。
また、データ通信インタフェース4は、一例として、シリアルインタフェースモジュールからなり、シリアルポートを介して接続されたプリンタやHDD(Hard Disc Drive)、あるいはデジタルカメラなどのシリアル接続される様々な周辺機器のデータ入出力制御などを行う。
データ通信インタフェース4には、転送制御部4aが設けられている。転送制御部4aは、転送データが奇数バイトの際に、DMAコントローラ5から出力されたDMA転送終了信号DEを受けて、任意の(たとえば、下位バイト)データのみ転送するように制御する。このDMA転送終了信号DEは、転送データが最後であることを示す信号である。
DMAコントローラ5は、バスマスタとしてCPUバス6を使用することができ、周辺機器と内蔵メモリ3との間におけるデータ転送をCPU2を介することなく直接アクセスして制御を行う。
次に、本実施の形態における半導体集積回路装置1のデータ転送制御について説明する。
図2は、DMAコントローラ5により、内蔵メモリ3から外部接続された周辺機器にデータ転送する際のCPU2における処理例を示すフローチャートである。
まず、CPU2は、DMAコントローラ5に対してデータ転送要求を出力する(ステップS101)。ここでは、データ転送要求が、たとえば、内蔵メモリ3からデータ通信インタフェース4に511バイトのデータを転送する要求とする。
続いて、CPU2は、転送制御部4aに対してデータ通信インタフェース4に対して奇数バイトのデータを転送することを示すフラグを設定する制御を行う(ステップS102)。このフラグは、たとえば、転送制御部4aに設けられたレジスタなどに格納される。
そして、CPU2は、DMAコントローラ5に対して転送バイトの総数、および各データの転送バイト数の設定を行う(ステップS103)。この場合、転送バイトの総数は512バイトであり、各データの2バイト毎に順次転送とする。よって、512バイトを2バイト毎に分割して転送するので、DMAコントローラ5は、256回の転送回数によって512バイトのデータを転送することになる。
DMAコントローラ5の設定が終了すると、CPU2は、DMAコントローラ5に転送開始許可を発行し(ステップS104)、該DMAコントローラ5によるデータ転送が開始される。
続いて、DMAコントローラ5によるデータ転送処理について説明する。
図3は、DMAコントローラ5から出力される各種の信号のタイミングチャートである。
この図3においては、上方から下方にかけて、動作クロックとなるクロック信号、内蔵メモリ3の読み出しを許可するリードイネーブル信号、内蔵メモリ3からデータ通信インタフェース4に入力されるリードデータ、周辺機器への書き込みを許可するライトイネーブル信号、DMAコントローラ5からデータ通信インタフェース4に出力されるライトデータ、ならびにDMA転送終了信号DEの信号タイミングをそれぞれ示している。
まず、DMAコントローラ5からリードイネーブル信号が出力され、内蔵メモリ3から任意のデータ(2バイト)が読み出される。続いて、DMAコントローラ5は、データ通信インタフェース4に対してライトイネーブル信号を出力し、内蔵メモリ3から読み出した2バイトのデータをデータ通信インタフェース4に転送する。そして、データ通信インタフェース4を介して周辺機器にデータが転送される。
以下、この処理を255回繰り返し、510バイトのデータをデータ通信インタフェース4に転送する。
そして、最後の2バイトのデータ(511バイトと512バイト)転送では、510バイトまでのデータ転送と同様に、DMAコントローラ5からリードイネーブル信号が出力された後、内蔵メモリ3から任意のデータ(2バイト)が読み出される。
続いて、DMAコントローラ5が、データ通信インタフェース4に対してライトイネーブル信号を出力した際に、該DMAコントローラ5は、最後の転送データであることを示すDMA転送終了信号DEを出力する。
転送制御部4aは、前述したように、CPU2によって奇数バイトのデータを転送することを示すフラグが設定されているので、DMA転送終了信号DEが入力されると、DMAコントローラ5から入力された2バイト(511バイトと512バイト)のデータのうち、下位バイト(511バイト)のデータのみを周辺機器に転送する制御を行う。
また、データ転送の総バイト数が偶数バイトの場合には、CPU2による転送制御部4aへのフラグ設定が行われない。よって、DMAコントローラ5からDMA転送終了信号DEが出力されても、最終の2バイト(511バイトと512バイト)のデータをすべて周辺機器に転送する制御を行う。
それにより、本実施の形態1によれば、DMAコントローラ5による奇数バイトのデータ転送を容易に、かつ高速に行うことができる。
また、本実施の形態1においては、2バイト毎にデータ転送を行う場合について説明したが、このデータ転送は、たとえば、4バイト(またはそれ以上のバイト数)を順次転送する構成としてもよい。
たとえば、4バイト毎のデータ転送の場合には、CPU2がデータ通信インタフェース4に対して設定するフラグを2バイトとし、この2バイトのフラグの状態により、最終データの転送バイト数を判断する。
この場合、たとえば、フラグが’00’の際には、最終データの4バイトすべてを転送し、フラグが’01’の際には、最終データの4バイトのうち、下位3バイトを転送する制御を行う。
また、フラグが’10’の際には、最終データの4バイトのうち、下位2バイトを転送し、フラグが’11’の際には、最終データの4バイトのうち、下位1バイトを転送する制御を行う。これにより、1回に転送されるバイト数を増やすことが可能となるので、より高速に奇数バイトのデータ転送を行うことが可能となる。
さらに、前記実施の形態1では、CPU2がデータ通信インタフェース4に対して奇数バイトのデータを転送することを示すフラグを設定する場合について記載したが、このフラグの代わりに、DMA転送終了信号DEを用いるようにしてもよい。
(実施の形態2)
図4は、本発明の実施の形態2による半導体集積回路装置のブロック図、図5は、図4の半導体集積回路装置に設けられたDMAコントローラから出力される各種の信号のタイミングチャートである。
図4は、本発明の実施の形態2による半導体集積回路装置のブロック図、図5は、図4の半導体集積回路装置に設けられたDMAコントローラから出力される各種の信号のタイミングチャートである。
本実施の形態2において、半導体集積回路装置1は、図3に示すように、CPU2、内蔵メモリ3、データ通信インタフェース4、およびDMAコントローラ5からなる前記実施の形態1の構成に、割り込み制御回路7が新たに追加されている。
割り込み制御回路7には、DMAコントローラ5から出力されるDMA転送が終了したことを示すDMA転送終了割り込み信号や、その他の様々な割り込み信号が入力され、CPU2に割り込み要求信号を与える。
また、DMAコントローラ5から出力されるDMA転送終了割り込み信号は、データ通信インタフェース4にも入力されるように接続されている。そして、データ通信インタフェース4は、DMAコントローラ5から出力されるDMA転送終了割り込み信号を用いて奇数バイトの転送制御を行う。
次に、本実施の形態2における半導体集積回路装置1のデータ転送制御について説明する。ここで、CPU2におけるデータ転送前の設定処理は、前記実施の形態1の図2と同様であるので説明は省略する。また、この場合も、DMAコントローラ5は、256回の転送回数によって512バイトのデータを転送するものとする。
図5は、DMAコントローラ5から出力される各種の信号のタイミングチャートである。
この図5においては、上方から下方にかけて、動作クロックとなるクロック信号、内蔵メモリ3の読み出しを許可するリードイネーブル信号、内蔵メモリ3からデータ通信インタフェース4に入力されるリードデータ、周辺機器への書き込みを許可するライトイネーブル信号、DMAコントローラ5からデータ通信インタフェース4に出力されるライトデータ、ならびにDMA転送終了割り込み信号の信号タイミングをそれぞれ示している。
図5において、最初の2バイトのデータ転送から、255回目の510バイトのデータ転送までの処理は、前記実施の形態1の図3と同様であるので説明を省略する。
そして、最後の2バイトのデータ(511バイトと512バイト)転送では、510バイトまでのデータ転送と同様に、DMAコントローラ5からリードイネーブル信号が出力された後、内蔵メモリ3から任意のデータ(2バイト)が読み出される。
続いて、DMAコントローラ5は、データ通信インタフェース4に対してライトイネーブル信号を出力して、最後のデータ転送を行う。その後、DMAコントローラ5は、データ転送が終了したことを示すDMA転送終了割り込み信号を割り込み制御回路7、およびデータ通信インタフェース4にそれぞれ出力する。
データ通信インタフェース4は、DMA転送終了割り込み信号が入力されると、DMAコントローラ5から入力された2バイト(511バイトと512バイト)のデータのうち、下位バイト(511バイト)のデータのみを周辺機器に転送する制御を行う。
それにより、本実施の形態2においても、DMAコントローラ5による奇数バイトのデータ転送を容易に、かつ高速に行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、DMAコントローラによる転送データの総バイト数が奇数バイトの場合のデータ転送技術に適している。
1 半導体集積回路装置
2 CPU
3 内蔵メモリ
4 データ通信インタフェース
4a 転送制御部
5 DMAコントローラ
6 CPUバス
7 割り込み制御回路
2 CPU
3 内蔵メモリ
4 データ通信インタフェース
4a 転送制御部
5 DMAコントローラ
6 CPUバス
7 割り込み制御回路
Claims (5)
- バスマスタとなる中央処理装置と、
バスマスタとなるDMAコントローラと、
前記バスマスタのアクセス対象となる複数のスレーブモジュールと、
前記DMAコントローラと前記スレーブモジュールとのデータ通信のインタフェースとなるデータ通信インタフェースとを有し、
前記DMAコントローラは、
偶数バイトのデータ転送を行い、
前記データ通信インタフェースは、
前記スレーブモジュールへのデータ転送の総バイト数が奇数バイトとなる際に、前記スレーブモジュールに最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送制御部を備えたことを特徴とする半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記転送制御部は、
前記中央処理装置にアクセスされ、データ転送の総バイト数が奇数バイトとなることを示すフラグが設定されるレジスタと、
前記レジスタに奇数バイトとなるフラグが設定され、制御信号が入力された際に、最終転送される複数のバイトのデータのうち、任意のバイトのデータを選択して転送する転送部とよりなることを特徴とする半導体集積回路装置。 - 請求項2記載の半導体集積回路装置において、
前記転送部に入力される制御信号は、前記DMAコントローラから出力される転送データが最後であることを示すDMA転送終了信号であることを特徴とする半導体集積回路装置。 - 請求項1〜3のいずれか1項に記載の半導体集積回路装置において、
前記DMAコントローラは、
2バイト毎のデータ転送を行い、
前記転送制御部は、
データ転送の総バイト数が奇数バイトとなる際に、前記スレーブモジュールに最終転送される2バイトのデータのうち、下位バイトのデータを転送するように制御を行うことを特徴とする半導体集積回路装置。 - 請求項1〜4のいずれか1項に記載の半導体集積回路装置において、
前記バスマスタのアクセス対象となる複数のスレーブモジュールは、前記半導体集積回路装置に外部接続されたスレーブモジュールを含むことを特徴とする半導体集積回路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006165205A JP2007334600A (ja) | 2006-06-14 | 2006-06-14 | 半導体集積回路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006165205A JP2007334600A (ja) | 2006-06-14 | 2006-06-14 | 半導体集積回路装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007334600A true JP2007334600A (ja) | 2007-12-27 |
Family
ID=38934031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006165205A Pending JP2007334600A (ja) | 2006-06-14 | 2006-06-14 | 半導体集積回路装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007334600A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257982A (ja) * | 2010-06-09 | 2011-12-22 | Fujitsu Semiconductor Ltd | データ転送装置およびデータ転送方法 |
-
2006
- 2006-06-14 JP JP2006165205A patent/JP2007334600A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257982A (ja) * | 2010-06-09 | 2011-12-22 | Fujitsu Semiconductor Ltd | データ転送装置およびデータ転送方法 |
US8296481B2 (en) | 2010-06-09 | 2012-10-23 | Fujitsu Semiconductor Limited | Device and method for improving transfer efficiency of odd number of data blocks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950910B2 (en) | Mobile wireless communication device architectures and methods therefor | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
EP1730643A2 (en) | Pvdm (packet voice data module) generic bus protocol | |
CN108304334B (zh) | 应用处理器和包括中断控制器的集成电路 | |
US20160140067A1 (en) | Slave side bus arbitration | |
JP4198376B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
JP5856434B2 (ja) | バス接続回路、半導体装置及びバス接続回路の動作方法 | |
KR102400104B1 (ko) | 이미지 처리 장치 및 이미지 처리 방법 | |
JP2006113689A (ja) | バスブリッジ装置およびデータ転送方法 | |
JP4855864B2 (ja) | ダイレクトメモリアクセスコントローラ | |
US9015272B2 (en) | Microcomputer | |
US8386725B2 (en) | USB host controller and controlling method for USB host controller | |
US20150177816A1 (en) | Semiconductor integrated circuit apparatus | |
TWI471731B (zh) | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 | |
WO2012081085A1 (ja) | 割込み要因管理装置及び割込み処理システム | |
JP2008198209A (ja) | バスマトリクスを含むシステム | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
JP2007334600A (ja) | 半導体集積回路装置 | |
CN105608033B (zh) | 半导体装置及其操作方法 | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
JP2006338533A (ja) | Ecc回路を有するマルチレイヤバスシステム | |
JP4249741B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
JP2007087086A (ja) | Dma転送システム | |
JP2010140440A (ja) | バス調停装置 | |
TWI427481B (zh) | 工業標準構造介面匯流排的橋接系統、裝置與其方法 |