JP2004213142A - Semiconductor integrated circuit device - Google Patents

Semiconductor integrated circuit device Download PDF

Info

Publication number
JP2004213142A
JP2004213142A JP2002379200A JP2002379200A JP2004213142A JP 2004213142 A JP2004213142 A JP 2004213142A JP 2002379200 A JP2002379200 A JP 2002379200A JP 2002379200 A JP2002379200 A JP 2002379200A JP 2004213142 A JP2004213142 A JP 2004213142A
Authority
JP
Japan
Prior art keywords
bus
dmac
integrated circuit
semiconductor integrated
circuit device
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
Application number
JP2002379200A
Other languages
Japanese (ja)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002379200A priority Critical patent/JP2004213142A/en
Publication of JP2004213142A publication Critical patent/JP2004213142A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a means for keeping the high processing efficiency as a whole to arbitrate bus use right, among a plurality of bus masters in a semiconductor integrated circuit device, such as microcomputers. <P>SOLUTION: The means has a first bus 19, a second bus 20 or a third bus 21 which are divided to enable parallel operations, includes a bus arbiter 23 for arbitrating the bus use right of a plurality of bus masters on the first bus 19, e.g., a CPU 11 and a DMAC 12, and enables the arbitration of the priority order of bus use right to be changed, depending on whether the second bus 20 or the third bus 21 is in an operation. During a period where the operation of the second bus 20 is conducted in parallel with the first bus 19, by not giving bus use right to the DMAC 12, and giving bus use right to the CPU 11, reading instructions etc. from a ROM 13 on the first bus 19 become possible, the frequency of the occurrence of undesired standby statuses is reduced. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、半導体集積回路装置に関し、特に中央処理装置とデータ転送装置を内蔵したマイクロコンピュータなどに適用して有効な技術に関する。
【0002】
【従来の技術】
例えば、本発明者が検討した技術として、マイクロコンピュータなどの半導体集積回路装置においては、以下の技術が考えられる。
【0003】
シングルチップマイクロコンピュータは、中央処理装置(CPU)を中心にしてプログラム保持用のROM(リードオンリメモリ)、データ保持用のRAM(ランダムアクセスメモリ)、及びデータの入出力を行うための入出力回路などの機能ブロックが一つの半導体基板上に形成されてなり、機器制御などに用いられる(例えば、非特許文献1参照)。
【0004】
かかるマイクロコンピュータに、データ転送装置としてダイレクトメモリアクセスコントローラ(DMAC)を内蔵し、CPUとは独立にデータ転送を行うものがある(例えば、特許文献1参照)。
【0005】
かかるDMACは、割込要求によって起動でき、リピートモード、ブロック転送モードなどを行うことができる。プリンタなどのシステムにおいて、ステッピングモータの制御やプリンタの印字データ制御、さらには、受信データのメモリへの蓄積に好適である。
【0006】
かかる例では、最大8チャネルの転送を行うことができる。DMACの転送はCPUと独立しているが、バスを共有しているために、バス使用権調停手段としてのバスアービタによって調停され、バス使用権を与えられたときにデータ転送動作を行う。
【0007】
バス使用権調停においては、通常、DMACはCPUよりバス使用権の優先順位が高く設定されている。あるいは、ラウンドロビンなどのように、優先順位が予め決められた順序で変更される場合もある。
【0008】
機器制御を行う場合、DMACは、タイマなどの、いわゆる周辺機能の内部I/Oレジスタとメモリ間のデータ転送を行うことが多い。
【0009】
マイクロコンピュータのバスを、CPUやDMACが接続されるIバスと、周辺機能ブロックが接続されるPバスと、さらには外部バスとに分割して構成し、Pバスないし外部バスに対するライト動作を行う場合、その完了を待たずに、IバスすなわちCPUやDMACは動作を先に進める、いわゆるライトバッファ機能が知られている。近年、CPUの高速化が図られる一方、低消費電力化のために、前記Iバスは速いクロックで動作し、Pバスないし外部バスは遅いクロックで動作する場合が増えているから、ライトバッファ機能は重要になる。
【0010】
【特許文献1】
特開平5−307516号公報(第4頁、図1)
【0011】
【非特許文献1】
電子通信学会編、「LSIハンドブック」、第1版、株式会社オーム社、昭和59年11月30日、P.540−541
【0012】
【発明が解決しようとする課題】
ところで、前記のようなマイクロコンピュータなどの半導体集積回路装置の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0013】
CPUは、Iバスに接続されたROMなどのメモリからの命令リードの頻度が高く、次いで、RAMなどのメモリに対するリード/ライトが多い。前記の通り、DMACは、Iバスに接続されたRAMなどのメモリと周辺機能ブロックとの間のデータ転送が多い。
【0014】
例えば、DMACにバス使用権を与えたときに、Pバス上のライトバッファ機能を実行中であれば、DMACは当該ライトバッファ機能が終了後でなければ、メモリと周辺機能ブロックとの間のデータ転送を完了できず、待機状態になる場合がある。一方、このとき、CPUにバス使用権を与えれば、CPUはIバス上のメモリからの命令リードやデータのリード/ライトを行うことができる。
【0015】
そこで、本発明の目的は、マイクロコンピュータなどの半導体集積回路装置において、複数のバスマスタ間のバス使用権調停にあたって、全体として処理効率を高く保つことが可能な手段を提供するものである。
【0016】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【0017】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0018】
すなわち、本発明による半導体集積回路装置は、分割された第1のバス(第1バス)、第2のバス(第2バス又は第3バス)を持ち、これらは並行して動作が可能であって、第1のバス上の複数のバスマスタ、例えば中央処理装置(CPU)とデータ転送装置としてのダイレクトメモリアクセスコントローラ(DMAC)、のバス使用権調停を行うバス使用権調停手段を有し、バス使用権調停において、第2のバスが動作中であるか否かによって、バス使用権調停の優先順位を変えることができるものである。
【0019】
またさらに、少なくとも一方のバスマスタは、バス使用権を要求するときに、使用するバスを示すようにするとよい。
【0020】
よって、前記半導体集積回路装置によれば、第2のバスが、ライトバッファ機能のように、第1のバスと並行した動作を行っている期間に、データ転送装置にバス使用権を与えることにより発生する不所望の待機状態を回避することができる。このとき、中央処理装置にバス使用権を与えることによって、第1のバス上のメモリからの命令リードなどが可能となるので、不所望の待機状態の発生頻度が低減される。
【0021】
また、データ転送装置が、バス使用権を要求するときに、第2のバスを使用するか否かを示すことにより、不所望の待機状態の発生頻度が、一層低減される。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【0023】
(実施の形態1)
図1は本発明の実施の形態1の半導体集積回路装置の構成を示すブロック図、図2は本実施の形態1の半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図、図3は本実施の形態1の半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【0024】
まず、図1により、本実施の形態1の半導体集積回路装置(マイクロコンピュータ)の構成を説明する。
【0025】
本実施の形態1の半導体集積回路装置は、例えば、マイクロコンピュータとされ、中央処理装置(CPU)11、データ転送装置としてのDMAコントローラ(DMAC)12、リードオンリメモリ(ROM)13、ランダムアクセスメモリ(RAM)14、タイマ,パルス出力回路,シリアルコミュニケーションインタフェース(SCI),A/D変換器(A/D)などを含む周辺機能ブロック15、入出力ポート(IOP)16、バスコントローラ(BSC)17、クロック発振器(CPG)18などの機能ブロックもしくはモジュールから構成されている。
【0026】
バスを使用してリード/ライトを行うバスマスタとして、CPU11とDMAC12がある。動作の主体となるのはCPU11であり、主にROM13から命令を読込んで動作する。DMAC12はCPU11とバスを共有し、CPU11に代ってデータ転送を行う。
【0027】
次に、バスの構成について説明する。前記マイクロコンピュータの各機能ブロックは、内部バスによって相互に接続されている。内部バスにはアドレスバス、データバスのほか、図示はされない、バス使用権要求信号、バスアクノレッジ信号、バスコマンド(リード信号、ライト信号、バスサイズ信号)が含まれている。
【0028】
内部バスには、第1バス(Iバス)19、第2バス(Pバス)20、第3バス(外部バス)21が存在する。これらのバスは、バスコントローラ(BSC)17によってインタフェースされている。
【0029】
第1バス(IAB、IDB)19は、CPU11、DMAC12、ROM13、RAM14、バスコントローラ17に接続され、さらに、IABは外部バスのアドレスバスとするために、また、IDBは外部バスのデータバスとするために、IOP16内のBUF22に接続される。第1バス19は、バスマスタと内蔵メモリ(ROM13、RAM14)間を高速に接続するために、負荷を小さくするようにし、バス幅を広くし(例えば32ビット)、単位ステートでの動作が可能とされている。
【0030】
第2バス(PAB、PDB)20は、バスコントローラ(BSC)17、DMAC12、タイマ、パルス出力回路、SCI、A/D変換器、割込コントローラ、IOP(A〜F、1〜5)16に接続されている。第2バス20は、接続される機能ブロック数が多く、使用頻度も第1バス19ほど高くないから、バス幅を制限し(例えば16ビット)、複数ステート(例えば2ステート)を基本とする動作を行う。
【0031】
第3バス(EXAB、EXDB)21は、バスコントローラ17とIOP(A〜C)16に接続されている。第3バスも、第2バスと同様に、バス幅を制限し(例えば16ビット)、複数ステート(例えば2ステート)を基本とする動作を行い、さらに所定のウェイトステートの挿入も可能とする。バスアクセスのステート数やウェイトの有無は、アドレス空間を分割したエリアに応じて指定可能とする。
【0032】
バスコントローラ17は、バスアービタ23、第1バスコントローラ(図示せず)、第2バスコントローラ24、第3バスコントローラ25、リフレッシュタイマ(図示せず)などから構成される。
【0033】
DMAC12は、第1バス19のバス使用権を要求でき、第1バス19を介して、リード/ライトを行う。第2バス20はバススレーブとして接続され、CPU11からリード/ライトされる。
【0034】
CPU11は、第1バス19のバス使用権を要求できる。これらのCPU11、DMAC12は、第1バス19を介して、第2バス20、第3バス21を利用できる。
【0035】
CPU11は、通常バス使用権が与えられる。バスアービタ23は、CPU11にバス使用権を与えていることを、cpuack信号によって知らせる。
【0036】
DMAC12は、dmareq信号によって、バスアービタ23に対してバス使用権を要求し、バスアービタ23は、dmaack信号によって、DMAC12にバス使用権を与えたことを知らせる。このとき同時に、cpuack信号を非活性化する。
【0037】
ROM13、RAM14、タイマ、パルス出力回路、SCI、A/D変換器、IOP(A〜F、1〜5)16、割込コントローラの各機能ブロック及びDMAC12はスレーブとして、CPU11又はDMAC12によってリード/ライトされる。
【0038】
第2バス20、第3バス21に対するリード/ライトは、前記の通り、CPU11及びDMAC12により第1バス19を介して行われる。ライトの場合、第1バス19に、CPU11及びDMAC12が、バスコマンド,アドレス,データを出力し、指定されたアドレスに対応する第2バスコントローラ24又は第3バスコントローラ25が、バス幅や、当該バスのアクセス仕様に対応したライト動作の実行を行う。このとき、第1バス19上のステートは先に進むことができる。これをライトバッファ機能と呼ぶ。
【0039】
その他の本実施の形態1であるマイクロコンピュータの機能の概略は以下の通りである。
【0040】
入出力ポートは、外部バス信号、入出力回路の入出力信号と兼用とされている。外部アドレス(EXAB)、外部データ(EXDB)は、これらの入出力ポートに含まれるバッファ回路(BUF)22を介して、第1バス19のIAB,IDBと接続されている。第2バス20のPAB、PDBは入出力ポートのレジスタをリード/ライトするために使用し、外部バスとは直接の関係はない。バス制御信号出力は、アドレスストローブ、ハイ/ロウデータストローブ、リードストローブ、ライトストローブ、バスアクノリッジ信号などがある。バス制御入力信号にはウェイト信号、外部バスリクエスト信号などがある。これらの入出力信号は図示されない。外部バス拡張を行うことは、動作モードなどで選択され、これらの入出力ポートの機能も選択される。
【0041】
また、IOP(1)はタイマ入出力、IOP(2)はパルス出力、IOP(3)はSCI入出力、IOP(4)はアナログ入力、IOP(5)はDMAC入出力と兼用されている。DMAC12、タイマ、SCI、パルス出力、A/D変換器とIOP(1〜5)との入出力信号や内部割込み要求信号などは図示されない。
【0042】
CPG18は、バスマスタ用のクロックφI、第2バス(Pバス)20に接続された機能ブロック用のクロックφP、第3バス(外部バス)21用のクロックφEを出力し、図示はされないが、クロックφIとクロックφPの同期タイミングを示すSYNCP信号、クロックφIとクロックφEの同期タイミングを示すSYNCE信号を出力する。クロックφPとクロックφEは、クロックφIの周波数以下の条件で、周波数を選択できる。
【0043】
さらに、図示はされないが、割込みコントローラを有し、タイマ、SCI、A/D変換器、入出力ポートの出力する割込信号を入力し、CPU11に割込要求信号を、DMAC12に起動要求信号を出力する。また、DMAC12の出力するクリア信号を入力して、割込クリア信号を出力する。これらの割込み信号などは図示されていない。また、図示はされないが、電源端子Vcc,Vss、アナログ電源端子AVcc,AVss、リセット入力RES、スタンバイ入力STBY、割込入力NMI、クロック入力EXTAL,XTAL、動作モード入力MD0,MD1,MD2などの入力端子がある。
【0044】
次に、図2により、本実施の形態1において、バス使用権調停手段としてのバスアービタ23の機能を説明する。前記の通り、バスアービタ23は、dmareq信号を入力し、cpuack信号、dmaack信号を出力する。また、第2バスコントローラ24、第3バスコントローラ25のライトバッファ動作を示すpwrbf、ewrbf信号を入力する。
【0045】
DMAC12へのバス使用権は、DMAC12がバス使用権を要求し(dmareq=1)、第2バス20、第3バス21上でライトバッファ動作が行われていないとき(pwrbf=0,ewrbf=0)に与えられる(dmaack=1)。CPU11へのバス使用権は、DMAC12へのバス使用権の論理反転として与えられる。
【0046】
次に、図3により、本実施の形態1であるマイクロコンピュータのバス動作のタイミングの一例を説明する。以下は、第1バス19、第2バス20において、φPがφIの2分周となっている場合の一例である。
【0047】
バス使用権調停、第1バス19のIAB出力,IDB入出力は、パイプライン化しており、この状態は、レディ信号readyが活性状態のときに遷移する。すなわち、ready=1のときに、dmaack又はcpuack信号によってバス使用権を与えられたバスマスタが、次のクロックからIABを使用して、アドレスを出力する。アドレスはready=1となったときに使用され、アドレスを出力していたバスマスタは、次のクロックからIDBを使用してデータを入出力する。
【0048】
クロックφIにおけるタイミングT1で、CPU11が第2バス20に相当するアドレスwa1にライトを行うと、タイミングT2でライトデータwd1が出力され、これらは第2バス20のPAB、PDBに出力されて、第2バス20上のライト動作が実行される。ライトバッファ動作を行うため、第2バスコントローラ24は、pwrbf信号を活性状態(pwrbf=1)にする。
【0049】
一方、CPU11はタイミングT2で、次のアドレス出力(例えば、ROM13からの命令リード)を行う。DMAC12は、dmareqを活性状態(dmareq=1)にしてバス使用権を要求するが、ライトバッファ動作中であるため、バスアービタ23はDMAC12に対してバス使用権を与えない。
【0050】
その後、タイミングT4で第2バスコントローラ24は、pwrbf信号を非活性状態(pwrbf=0)にし、バスアービタ23はdmaack信号を活性状態(dmaack=1)にし、DMAC12にバス使用権を与える。
【0051】
タイミングT5で、DMAC12は第2バス20に相当するアドレスraに対するリードを開始する。
【0052】
タイミングT6で、DMAC12は、dmareq信号を非活性状態(dmareq=0)にしてバス使用権要求を取り下げる。バスアービタ23はdmaack信号を非活性状態(dmaack=0)にし、cpuackを活性状態(cpuack=1)にして、バス使用権をCPU11に戻す。
【0053】
なお、pwrbf信号やdmareq信号は、第2バスコントローラ24やDMAC12のステートの遷移に応じて、所定のタイミングで変化させるようにすればよい。前記の通り、バス使用権調停、IAB出力、IDB入出力は、パイプライン化しているから、実際使用するタイミングより、事前に変化させる必要がある。
【0054】
したがって、本実施の形態1の半導体集積回路装置によれば、ライトバッファ機能のように第2バス又は第3バスが第1バスと並行動作している期間に、DMACにバス使用権を与えず、CPUにバス使用権を与えることにより、マイクロコンピュータなどの処理性能を向上させることができる。
【0055】
(実施の形態2)
図4は本発明の実施の形態2である半導体集積回路装置において、DMACのレジスタ構成を示す図、図5は本実施の形態2である半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図、図6は本実施の形態2である半導体集積回路装置において、DMACのバス使用権要求の論理記述を示す図、図7は本実施の形態2である半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【0056】
本実施の形態2の半導体集積回路装置は、例えば、マイクロコンピュータとされ、基本的な構成は、前記実施の形態1で示した図1と同じである。異なる点は、DMAC12のレジスタ構成とバスアービタ23の構成である。
【0057】
まず、図4により、本実施の形態2において、DMAC12のレジスタ構成を説明する。図4は、1チャネル分のレジスタ構成を示す。
【0058】
DMAC12のレジスタ群は、ソースアドレスレジスタ(SAR)41、デスティネーションアドレスレジスタ(DAR)42、転送カウンタ(TCR)43、DMAコントロールレジスタ(DMCR)44などから構成される。
【0059】
ソースアドレスレジスタ(SAR)41とデスティネーションアドレスレジスタ(DAR)42は、それぞれ、転送元と転送先のアドレスを指定する。1回のデータ転送を行うと、例えば、インクリメントが行われる。
【0060】
転送カウンタ(TCR)43は、転送回数を指定する。1回のデータ転送を行うと、デクリメントが行われ、カウンタの内容が0になると、DMAコントロールレジスタ(DMCR)44のDTEビットを0にクリアして、割込み要求を発生する。
【0061】
DMAコントロールレジスタ(DMCR)44は、DTEビット、DMAPビット、DMAEビット、SZ1〜0ビット、DTS2〜0ビットから構成される。DTEビットは、当該チャネルのデータ転送を許可する。DMAPビットは、転送先又は転送元のアドレスが第2バスに相当するときに1にセットされる。同様に、DMAEビットは、転送先又は転送元のアドレスが第3バスに相当するときに1にセットされる。SZ1〜0ビットはデータ転送サイズ(バイト、ワード、ロングワード)を指定する。DTS2〜0ビットは転送要求発生元を指定する。
【0062】
そのほか、DMAC共通に制御レジスタを持つが、詳細な説明は省略する。
【0063】
次に、図5により、本実施の形態2におけるバスアービタ23の機能を説明する。
【0064】
バスアービタ23は、DMAC12から、dmareq信号とともに、前記DMAコントロールレジスタ(DMCR)44のDMAPビット,DMAEビットの内容に対応したdmap,dmae信号を入力する。これらは、バス使用権を与えられた後実行すべき、DMAC12のデータ転送において、第2バス、第3バスを使用することを示す。
【0065】
DMAC12へのバス使用権は、DMAC12がバス使用権を要求し(dmareq=1)、DMAC12が第2バスを使用しない(dmap=0)か、第2バス上でライトバッファ動作が行われていないとき(pwrbf=0)、かつ、DMAC12が第3バスを使用しない(dmae=0)か、第3バス上でライトバッファ動作が行われていないとき(ewrbf=0)に、与えられる(dmaack=1)。CPU11へのバス使用権は、DMAC12へのバス使用権の論理反転として与えられる。
【0066】
次に、図6により、DMAC12のバス使用権要求の機能を説明する。本例では、DMAC12は2チャネル(チャネル0及びチャネル1)を有するものとする。
【0067】
従来と同様に、DMAC12において、転送要求信号の受付けと、複数の転送要求が発生した場合のチャネル間の優先順位の判定が行われる。
【0068】
DMAC12のバス使用権要求は、チャネル0,1の転送要求信号treq0,treq1の論理和とされる。
【0069】
2チャネルに同時に転送要求が行われた場合は、チャネル0を優先する。前記信号dmap、dmaeはチャネルの優先順位に従って、選択されたチャネルの制御ビットdmap0又はdmap1、dmae0又はdmae1が、DMAC12からバスアービタ23へ出力される。例えば、dmap0は、チャネル0に対応する図4に示したDMAPビットから出力される。
【0070】
次に、図7により、本実施の形態2であるマイクロコンピュータにおけるバス動作のタイミングの一例を説明する。
【0071】
以下は、第1バス、第3バスについて、φEが、φIの2分周となっている場合の例である。
【0072】
クロックφIにおけるタイミングT1で、CPU11が第3バス21に相当するアドレスwa2にライトを行うと、タイミングT2でライトデータwd2が出力され、これらは第3バス21のEXAB,EXDBに出力されて、第3バス上のライト動作が実行される。ライトバッファ動作を行うため、第3バスコントローラ25は、ewrbf信号を活性状態(ewrbf=1)にする。このライトはクロックφEの3クロックで実行するものとする。
【0073】
一方、DMAC12は既に、チャネル0に従って、dmareqを活性状態(dmareq=1)にし、バス使用権を要求し、第3バスを使用しないことを、dmaeを非活性状態(dmae=0)にして示す。バスアービタ23は、第3バス上でライトバッファ実行中であるが、DMAC12は第3バス21を使用しないので、dmaackを活性状態(dmaack=1)にしてバス使用権を与える。
【0074】
DMAC12はタイミングT2,T3で、データ転送(例えば、RAM14から、第2バス20上の周辺機能ブロック15への転送)のアドレスを出力し、タイミングT3,T4でデータ入出力を行う。
【0075】
タイミングT3では、DMAC12がバス使用権要求を取り下げる。バスアービタ23はdmaack信号を非活性状態(dmaack=0)にし、cpuackを活性状態(cpuack=1)にして、バス使用権をCPU11に戻す。
【0076】
DMAC12は、引続き、チャネル1に従って、タイミングT5でdmareqを活性状態(dmareq=1)にし、バス使用権を要求し、第3バス21を使用することを、dmaeを活性状態(dmae=1)にして示す。バスアービタ23は、タイミングT6でewrbf信号が非活性状態(ewrbf=0)になったときに、dmaackを活性状態(dmaack=1)にしてバス使用権を与える。
【0077】
タイミングT7で、DMAC12は第3バス21に相当するアドレスraに対するリードを開始する。
【0078】
タイミングT8で、DMAC12は、dmareq信号を非活性状態(dmareq=0)にしてバス使用権要求を取り下げる。バスアービタ23はdmaack信号を非活性状態(dmaack=0)にし、cpuack信号を活性状態(cpuack=1)にして、バス使用権をCPU11に戻す。
【0079】
したがって、本実施の形態2の半導体集積回路装置によれば、DMACの制御ビットに指定を行うことにより、バスアービタのバス使用権調停を制御し、マイクロコンピュータなどの処理性能を向上させることができる。
【0080】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0081】
例えば、前記実施の形態においては、データ転送装置として、DMACについて説明したが、これに限定されるものではなく、データトランスファコントローラと称されるものであってもよいし、データ転送のみならず、演算機能などを有するものであってもよい。
【0082】
また、CPUに代って、バス使用権を獲得して、バスを利用できるものであればよい。
【0083】
また、第1バス上に複数のデータ転送装置を設けることも可能であり、バスアービタの論理記述は容易に変形可能である。
【0084】
また、バス使用権調停時に参照する情報としては、ライトバッファ機能に限らず、第2,第3バス上でバスサイクルが実行中であることを示す情報とすればよい。例えば、第2バス上に、別のデータ転送装置が存在して、前記別のデータ転送装置のデータ転送が行われていることを示す情報を含むことができる。第3バスにおいては、外部バス使用権解放なども含むことができる。
【0085】
また、DMACが、使用するバスを示す方法も種々変形が可能である。制御レジスタで設定するほか、ソースアドレスレジスタ、デスティネーションアドレスレジスタのアドレス情報から使用するバスを判定してもよい。バスアービタに通知する信号線やタイミングも変形可能である。
【0086】
また、バスは3つに分割されているほか、4以上であってもよい。第1,第2バスを一体に構成することもできる。第2,第3バスの一方のみ、ライトバッファ機能を持つようにしてもよい。
【0087】
また、バスの動作タイミングや、制御信号なども種々変更可能である。
【0088】
また、マイクロコンピュータの構成についても限定されない。そのほか、機能ブロックなども種々変更できる。
【0089】
以上の説明では、主として本発明者によってなされた発明をその属する技術分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、これに限定されるものではなく、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ(DSP)を中心にした半導体集積回路装置などに適用することも可能である。本発明は少なくとも、データ処理装置に接続可能なデータ転送装置を内蔵した半導体集積回路装置に適用することができる。
【0090】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【0091】
(1)第2のバスが、ライトバッファ機能のように、第1のバスと並行した動作を行っている期間に、データ転送装置にバス使用権を与えず、中央処理装置にバス使用権を与えることによって、第1のバス上のメモリからの命令リードなどが可能となるため、不所望の待機状態の発生頻度が低減される。
【0092】
(2)データ転送装置が、バス使用権を要求するときに、第2のバスを使用するか否かを示すことにより、不所望の待機状態の発生頻度が、一層低減される。
【0093】
【発明の効果】
不所望の待機状態の発生頻度が低減され、半導体集積回路装置の処理性能の向上が可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態1の半導体集積回路装置の構成を示すブロック図である。
【図2】本発明の実施の形態1の半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図である。
【図3】本発明の実施の形態1の半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【図4】本発明の実施の形態2である半導体集積回路装置において、DMACのレジスタ構成を示す図である。
【図5】本発明の実施の形態2である半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図である。
【図6】本発明の実施の形態2である半導体集積回路装置において、DMACのバス使用権要求の論理記述を示す図である。
【図7】本発明の実施の形態2である半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【符号の説明】
11 中央処理装置(CPU)
12 DMAコントローラ(DMAC)
13 リードオンリメモリ(ROM)
14 ランダムアクセスメモリ(RAM)
15 周辺機能ブロック
16 入出力ポート(IOP)
17 バスコントローラ(BSC)
18 クロック発振器(CPG)
19 第1バス
20 第2バス
21 第3バス
22 バッファ回路(BUF)
23 バスアービタ
24 第2バスコントローラ
25 第3バスコントローラ
41 ソースアドレスレジスタ(SAR)
42 デスティネーションアドレスレジスタ(DAR)
43 転送カウンタ(TCR)
44 DMAコントロールレジスタ(DMCR)
dmareq DMACバス使用権要求信号
dmaack DMACバス使用権承認信号
dmap,dmap0,dmap DMAC第2バス使用信号
dmae,dmae0,dmae1 DMAC第3バス使用信号
cpuack CPUバス使用権承認信号
ready レディ信号
treq0,treq1 転送要求信号
pwrbf 第2バスライトバッファ信号
ewrbf 第3バスライトバッファ信号
ra,wa1,wa2 アドレス
wd1,wd2,r,rd データ
φI,φP,φE クロック
IAB 第1バスアドレス
IDB 第1バスデータ
PAB 第2バスアドレス
PDB 第2バスデータ
EXAB 第3バスアドレス
EXDB 第3バスデータ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a semiconductor integrated circuit device, and more particularly, to a technology effective when applied to a microcomputer or the like having a central processing unit and a data transfer device built therein.
[0002]
[Prior art]
For example, as a technique studied by the present inventor, the following technique can be considered in a semiconductor integrated circuit device such as a microcomputer.
[0003]
The single-chip microcomputer mainly includes a central processing unit (CPU), a ROM (read only memory) for holding a program, a RAM (random access memory) for holding data, and an input / output circuit for inputting and outputting data. Are formed on one semiconductor substrate, and are used for device control and the like (for example, see Non-Patent Document 1).
[0004]
Some of such microcomputers incorporate a direct memory access controller (DMAC) as a data transfer device and perform data transfer independently of a CPU (for example, see Patent Document 1).
[0005]
Such a DMAC can be started by an interrupt request, and can perform a repeat mode, a block transfer mode, and the like. In a system such as a printer, it is suitable for controlling a stepping motor, controlling print data of a printer, and storing received data in a memory.
[0006]
In such an example, transfer of up to eight channels can be performed. The DMAC transfer is independent of the CPU, but is arbitrated by a bus arbiter as bus arbitration means because the bus is shared, and performs a data transfer operation when the bus usage right is given.
[0007]
In the bus arbitration, usually, the DMAC is set to have a higher bus precedence than the CPU. Alternatively, the priority order may be changed in a predetermined order, such as round robin.
[0008]
When performing device control, the DMAC often performs data transfer between a memory and an internal I / O register of a so-called peripheral function such as a timer.
[0009]
The microcomputer bus is divided into an I bus to which a CPU or a DMAC is connected, a P bus to which peripheral function blocks are connected, and an external bus, and performs a write operation to the P bus or the external bus. In this case, a so-called write buffer function is known in which the I bus, that is, the CPU or the DMAC advances the operation without waiting for its completion. In recent years, while the speed of the CPU has been increased, the I bus operates with a faster clock and the P bus or external bus operates with a slower clock in order to reduce power consumption. Becomes important.
[0010]
[Patent Document 1]
JP-A-5-307516 (page 4, FIG. 1)
[0011]
[Non-patent document 1]
Ed., The Institute of Electronics, Information and Communication Engineers, "LSI Handbook", 1st edition, Ohmsha Co., Ltd., November 30, 1984, p. 540-541
[0012]
[Problems to be solved by the invention]
By the way, as a result of studying the technology of the semiconductor integrated circuit device such as the microcomputer as described above by the present inventor, the following became clear.
[0013]
The CPU frequently reads instructions from a memory such as a ROM connected to the I bus, and then reads / writes to a memory such as a RAM. As described above, the DMAC often transfers data between a memory such as a RAM connected to the I bus and peripheral function blocks.
[0014]
For example, if the write buffer function on the P bus is being executed when the DMAC is given the right to use the bus, the DMAC may transfer data between the memory and the peripheral function block unless the write buffer function is completed. In some cases, the transfer cannot be completed and a standby state is set. On the other hand, at this time, if the CPU is given a bus use right, the CPU can read an instruction from a memory on the I bus and read / write data.
[0015]
Accordingly, an object of the present invention is to provide means capable of maintaining high processing efficiency as a whole in arbitrating bus use rights among a plurality of bus masters in a semiconductor integrated circuit device such as a microcomputer.
[0016]
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0017]
[Means for Solving the Problems]
The following is a brief description of an outline of typical inventions disclosed in the present application.
[0018]
That is, the semiconductor integrated circuit device according to the present invention has a divided first bus (first bus) and second bus (second bus or third bus), which can operate in parallel. Bus arbitration means for arbitrating bus usage rights of a plurality of bus masters on the first bus, for example, a central processing unit (CPU) and a direct memory access controller (DMAC) as a data transfer device; In use right arbitration, the priority of bus right arbitration can be changed depending on whether or not the second bus is operating.
[0019]
Further, at least one of the bus masters may indicate the bus to be used when requesting the bus use right.
[0020]
Therefore, according to the semiconductor integrated circuit device, the right to use the bus is given to the data transfer device while the second bus is operating in parallel with the first bus as in the write buffer function. An undesired waiting state that occurs can be avoided. At this time, by giving the right to use the bus to the central processing unit, it becomes possible to read an instruction from the memory on the first bus, and the frequency of occurrence of an undesired standby state is reduced.
[0021]
Further, when the data transfer device requests the right to use the bus, it indicates whether or not to use the second bus, so that the frequency of occurrence of an undesired standby state is further reduced.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all the drawings for describing the embodiments, the same members are denoted by the same reference numerals, and a repeated description thereof will be omitted.
[0023]
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of a semiconductor integrated circuit device according to a first embodiment of the present invention. FIG. 2 shows a logical description of a bus arbiter as a bus arbiter in the semiconductor integrated circuit device of the first embodiment. FIG. 3 and FIG. 3 are timing charts showing an example of bus operation in the semiconductor integrated circuit device according to the first embodiment.
[0024]
First, the configuration of the semiconductor integrated circuit device (microcomputer) according to the first embodiment will be described with reference to FIG.
[0025]
The semiconductor integrated circuit device according to the first embodiment is, for example, a microcomputer, and includes a central processing unit (CPU) 11, a DMA controller (DMAC) 12 as a data transfer device, a read-only memory (ROM) 13, a random access memory. (RAM) 14, peripheral function block 15 including a timer, a pulse output circuit, a serial communication interface (SCI), an A / D converter (A / D), an input / output port (IOP) 16, a bus controller (BSC) 17 , A clock oscillator (CPG) 18 and other functional blocks or modules.
[0026]
There are a CPU 11 and a DMAC 12 as bus masters that perform read / write using a bus. The operation is mainly performed by the CPU 11, which mainly reads instructions from the ROM 13 and operates. The DMAC 12 shares a bus with the CPU 11 and performs data transfer on behalf of the CPU 11.
[0027]
Next, the configuration of the bus will be described. Each functional block of the microcomputer is interconnected by an internal bus. The internal bus includes an address bus, a data bus, a bus use right request signal, a bus acknowledge signal, and a bus command (read signal, write signal, bus size signal), not shown.
[0028]
The internal bus includes a first bus (I bus) 19, a second bus (P bus) 20, and a third bus (external bus) 21. These buses are interfaced by a bus controller (BSC) 17.
[0029]
The first bus (IAB, IDB) 19 is connected to the CPU 11, the DMAC 12, the ROM 13, the RAM 14, and the bus controller 17, and the IAB is used as an address bus of an external bus, and the IDB is used as a data bus of the external bus. To be connected to the BUF 22 in the IOP 16. The first bus 19 is designed to reduce the load, widen the bus width (for example, 32 bits), and operate in a unit state in order to connect the bus master and the built-in memories (ROM 13 and RAM 14) at high speed. Have been.
[0030]
The second bus (PAB, PDB) 20 is connected to a bus controller (BSC) 17, a DMAC 12, a timer, a pulse output circuit, an SCI, an A / D converter, an interrupt controller, and an IOP (A to F, 1 to 5) 16. It is connected. Since the second bus 20 has a large number of connected functional blocks and is not used as frequently as the first bus 19, the bus width is limited (for example, 16 bits) and an operation based on a plurality of states (for example, two states) is performed. I do.
[0031]
The third bus (EXAB, EXDB) 21 is connected to the bus controller 17 and the IOPs (AC) 16. Similarly to the second bus, the third bus limits the bus width (for example, 16 bits), performs an operation based on a plurality of states (for example, two states), and can insert a predetermined wait state. The number of bus access states and the presence or absence of a wait can be specified according to the area into which the address space is divided.
[0032]
The bus controller 17 includes a bus arbiter 23, a first bus controller (not shown), a second bus controller 24, a third bus controller 25, a refresh timer (not shown), and the like.
[0033]
The DMAC 12 can request the right to use the first bus 19, and performs read / write via the first bus 19. The second bus 20 is connected as a bus slave, and is read / written by the CPU 11.
[0034]
The CPU 11 can request the right to use the first bus 19. The CPU 11 and the DMAC 12 can use the second bus 20 and the third bus 21 via the first bus 19.
[0035]
The CPU 11 is normally given the right to use the bus. The bus arbiter 23 notifies the CPU 11 of granting the right to use the bus by a puack signal.
[0036]
The DMAC 12 requests a bus use right to the bus arbiter 23 by a dmareq signal, and the bus arbiter 23 informs the DMAC 12 that the bus use right is given by a dmaack signal. At the same time, the cpuack signal is deactivated.
[0037]
ROM 13, RAM 14, timer, pulse output circuit, SCI, A / D converter, IOP (A to F, 1 to 5) 16, each functional block of interrupt controller, and DMAC 12 are read / write by CPU 11 or DMAC 12 as slaves. Is done.
[0038]
Read / write to the second bus 20 and the third bus 21 is performed by the CPU 11 and the DMAC 12 via the first bus 19 as described above. In the case of writing, the CPU 11 and the DMAC 12 output a bus command, an address, and data to the first bus 19, and the second bus controller 24 or the third bus controller 25 corresponding to the specified address transmits the bus width and the bus width. The write operation corresponding to the bus access specification is executed. At this time, the state on the first bus 19 can proceed. This is called a write buffer function.
[0039]
Other functions of the microcomputer according to the first embodiment are outlined below.
[0040]
The input / output port is also used as an external bus signal and an input / output signal of an input / output circuit. The external address (EXAB) and the external data (EXDB) are connected to IAB and IDB of the first bus 19 via a buffer circuit (BUF) 22 included in these input / output ports. PAB and PDB of the second bus 20 are used to read / write the register of the input / output port, and have no direct relation to the external bus. The bus control signal output includes an address strobe, a high / low data strobe, a read strobe, a write strobe, a bus acknowledge signal, and the like. The bus control input signal includes a wait signal, an external bus request signal, and the like. These input / output signals are not shown. The extension of the external bus is selected depending on the operation mode and the like, and the functions of these input / output ports are also selected.
[0041]
IOP (1) is used for timer input / output, IOP (2) is used for pulse output, IOP (3) is used for SCI input / output, IOP (4) is used for analog input, and IOP (5) is also used for DMAC input / output. The DMAC 12, timer, SCI, pulse output, input / output signals between the A / D converter and IOPs (1 to 5), internal interrupt request signals, and the like are not shown.
[0042]
The CPG 18 outputs a clock φI for the bus master, a clock φP for the functional block connected to the second bus (P bus) 20, and a clock φE for the third bus (external bus) 21. It outputs a SYNC signal indicating the synchronization timing of φI and clock φP, and a SYNC signal indicating the synchronization timing of clock φI and clock φE. The frequency of the clock φP and the clock φE can be selected under the condition of the frequency of the clock φI or less.
[0043]
Further, although not shown, it has an interrupt controller, inputs a timer, an SCI, an A / D converter, an interrupt signal output from an input / output port, sends an interrupt request signal to the CPU 11, and a start request signal to the DMAC 12. Output. Also, it inputs a clear signal output from the DMAC 12 and outputs an interrupt clear signal. These interrupt signals and the like are not shown. Although not shown, inputs such as power supply terminals Vcc and Vss, analog power supply terminals AVcc and AVss, reset input RES, standby input STBY, interrupt input NMI, clock inputs EXTAL and XTAL, and operation mode inputs MD0, MD1, and MD2. There are terminals.
[0044]
Next, the function of the bus arbiter 23 as bus arbitration means in the first embodiment will be described with reference to FIG. As described above, the bus arbiter 23 receives the dmareq signal, and outputs the cpuack signal and the dmaack signal. Also, pwrbf and ewrbf signals indicating the write buffer operation of the second bus controller 24 and the third bus controller 25 are input.
[0045]
The right to use the bus to the DMAC 12 is determined when the DMAC 12 requests the right to use the bus (dmareq = 1) and the write buffer operation is not performed on the second bus 20 and the third bus 21 (pwrbf = 0, ewrbf = 0). ) (Dmaack = 1). The right to use the bus to the CPU 11 is given as a logical inversion of the right to use the bus to the DMAC 12.
[0046]
Next, an example of the timing of the bus operation of the microcomputer according to the first embodiment will be described with reference to FIG. The following is an example of a case where φP is φI divided by 2 in the first bus 19 and the second bus 20.
[0047]
The bus arbitration, the IAB output and the IDB input / output of the first bus 19 are pipelined, and this state transits when the ready signal ready is active. That is, when ready = 1, the bus master granted the right to use the bus by the dmark or cpuack signal outputs an address using the IAB from the next clock. The address is used when ready = 1, and the bus master that has output the address inputs and outputs data using the IDB from the next clock.
[0048]
When the CPU 11 performs writing to the address wa1 corresponding to the second bus 20 at the timing T1 in the clock φI, the write data wd1 is output at the timing T2, and these are output to the PAB and PDB of the second bus 20 and The write operation on the second bus 20 is executed. To perform the write buffer operation, the second bus controller 24 sets the pwrbf signal to an active state (pwrbf = 1).
[0049]
On the other hand, the CPU 11 performs the next address output (for example, the instruction read from the ROM 13) at the timing T2. The DMAC 12 makes the dmareq active (dmareq = 1) and requests the right to use the bus. However, the bus arbiter 23 does not give the right to use the bus to the DMAC 12 because the write buffer is in operation.
[0050]
Thereafter, at a timing T4, the second bus controller 24 sets the pwrbf signal to an inactive state (pwrbf = 0), the bus arbiter 23 sets the dmaack signal to an active state (dmaack = 1), and gives the DMAC 12 a right to use the bus.
[0051]
At timing T5, the DMAC 12 starts reading the address ra corresponding to the second bus 20.
[0052]
At timing T6, the DMAC 12 sets the dmareq signal to an inactive state (dmareq = 0) and cancels the bus use request. The bus arbiter 23 sets the dmaack signal to the inactive state (dmaack = 0), sets the cpuack to the active state (cpuack = 1), and returns the bus use right to the CPU 11.
[0053]
Note that the pwrbf signal and the dmareq signal may be changed at a predetermined timing according to the state transition of the second bus controller 24 or the DMAC 12. As described above, the bus arbitration, IAB output, and IDB input / output are pipelined, and therefore need to be changed in advance of the actual use timing.
[0054]
Therefore, according to the semiconductor integrated circuit device of the first embodiment, while the second bus or the third bus is operating in parallel with the first bus as in the write buffer function, the DMAC is not given a bus use right. By giving the right to use the bus to the CPU, the processing performance of the microcomputer or the like can be improved.
[0055]
(Embodiment 2)
FIG. 4 is a diagram showing a register configuration of a DMAC in a semiconductor integrated circuit device according to a second embodiment of the present invention, and FIG. 5 is a bus arbiter as a bus arbiter in the semiconductor integrated circuit device according to the second embodiment. FIG. 6 is a diagram showing a logical description of a DMAC bus use right request in the semiconductor integrated circuit device of the second embodiment, and FIG. 7 is a semiconductor integrated circuit device of the second embodiment. 3 is a timing chart showing an example of a bus operation.
[0056]
The semiconductor integrated circuit device of the second embodiment is, for example, a microcomputer, and has the same basic configuration as that of the first embodiment shown in FIG. The difference is in the register configuration of the DMAC 12 and the configuration of the bus arbiter 23.
[0057]
First, the register configuration of the DMAC 12 in the second embodiment will be described with reference to FIG. FIG. 4 shows a register configuration for one channel.
[0058]
The register group of the DMAC 12 includes a source address register (SAR) 41, a destination address register (DAR) 42, a transfer counter (TCR) 43, a DMA control register (DMCR) 44, and the like.
[0059]
The source address register (SAR) 41 and the destination address register (DAR) 42 specify the source and destination addresses, respectively. When one data transfer is performed, for example, increment is performed.
[0060]
The transfer counter (TCR) 43 specifies the number of transfers. When the data transfer is performed once, decrement is performed. When the content of the counter becomes 0, the DTE bit of the DMA control register (DMCR) 44 is cleared to 0 and an interrupt request is generated.
[0061]
The DMA control register (DMCR) 44 includes DTE bits, DMAP bits, DMAE bits, SZ1-0 bits, and DTS2-0 bits. The DTE bit permits data transfer of the channel. The DMAP bit is set to 1 when the destination or source address corresponds to the second bus. Similarly, the DMAE bit is set to 1 when the transfer destination or transfer source address corresponds to the third bus. The SZ1-0 bits specify the data transfer size (byte, word, longword). DTS2-0 bits specify the source of the transfer request.
[0062]
In addition, a control register is provided in common to the DMAC, but a detailed description is omitted.
[0063]
Next, the function of the bus arbiter 23 according to the second embodiment will be described with reference to FIG.
[0064]
The bus arbiter 23 inputs the dmap and dmae signals corresponding to the contents of the DMAP bit and the DMAE bit of the DMA control register (DMCR) 44 together with the dmareq signal from the DMAC 12. These indicate that the second bus and the third bus are used in the data transfer of the DMAC 12 to be executed after the bus use right is given.
[0065]
Regarding the bus use right to the DMAC 12, the DMAC 12 requests the bus use right (dmareq = 1) and the DMAC 12 does not use the second bus (dmap = 0), or the write buffer operation is not performed on the second bus. At the time (pwrbf = 0) and when the DMAC 12 does not use the third bus (dmae = 0), or when the write buffer operation is not performed on the third bus (ewrbf = 0), the signal is given (dmaack = 1). The right to use the bus to the CPU 11 is given as a logical inversion of the right to use the bus to the DMAC 12.
[0066]
Next, the function of the DMAC 12 for requesting the right to use the bus will be described with reference to FIG. In this example, it is assumed that the DMAC 12 has two channels (channel 0 and channel 1).
[0067]
As in the conventional case, the DMAC 12 accepts a transfer request signal and determines the priority order between channels when a plurality of transfer requests occur.
[0068]
The bus use right request of the DMAC 12 is the logical sum of the transfer request signals treq0 and treq1 of the channels 0 and 1.
[0069]
If a transfer request is made to two channels at the same time, channel 0 has priority. The signals dmap and dmae output control bits dmap0 or dmap1, dmap0 or dmap1 of the selected channel from the DMAC 12 to the bus arbiter 23 in accordance with the priority of the channel. For example, dmap0 is output from the DMAP bit shown in FIG.
[0070]
Next, an example of the timing of the bus operation in the microcomputer according to the second embodiment will be described with reference to FIG.
[0071]
The following is an example of a case where φE is the 分 frequency division of φI for the first and third buses.
[0072]
When the CPU 11 performs writing to the address wa2 corresponding to the third bus 21 at the timing T1 in the clock φI, the write data wd2 is output at the timing T2, and these are output to EXAB and EXDB of the third bus 21 and A write operation on three buses is performed. In order to perform the write buffer operation, the third bus controller 25 sets the ewrbf signal to an active state (ewrbf = 1). This writing is executed by three clocks φE.
[0073]
On the other hand, the DMAC 12 has already set dmareq to the active state (dmareq = 1) according to channel 0, requests the right to use the bus, and indicates that dmae is inactive (dmae = 0) to indicate that the third bus is not used. . The bus arbiter 23 is executing the write buffer on the third bus, but since the DMAC 12 does not use the third bus 21, the bus arbiter 23 activates dmaack (dmaack = 1) to give the bus use right.
[0074]
The DMAC 12 outputs an address for data transfer (for example, transfer from the RAM 14 to the peripheral function block 15 on the second bus 20) at timings T2 and T3, and performs data input / output at timings T3 and T4.
[0075]
At the timing T3, the DMAC 12 cancels the bus use right request. The bus arbiter 23 sets the dmaack signal to the inactive state (dmaack = 0), sets the cpuack to the active state (cpuack = 1), and returns the bus use right to the CPU 11.
[0076]
The DMAC 12 subsequently sets dmareq to the active state (dmareq = 1) at timing T5 according to channel 1, requests the right to use the bus, and sets dmae to the active state (dmae = 1) to use the third bus 21. Shown. When the ewrbf signal becomes inactive (ewrbf = 0) at the timing T6, the bus arbiter 23 sets dmaack to the active state (dmaack = 1) and gives the right to use the bus.
[0077]
At timing T7, the DMAC 12 starts reading the address ra corresponding to the third bus 21.
[0078]
At timing T8, the DMAC 12 sets the dmareq signal to the inactive state (dmareq = 0) and cancels the bus use right request. The bus arbiter 23 sets the dmaack signal to an inactive state (dmaack = 0), sets the cpuack signal to an active state (cpuack = 1), and returns the bus use right to the CPU 11.
[0079]
Therefore, according to the semiconductor integrated circuit device of the second embodiment, by specifying the control bit of the DMAC, the arbitration of the bus usage right of the bus arbiter can be controlled, and the processing performance of the microcomputer or the like can be improved.
[0080]
As described above, the invention made by the inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and can be variously modified without departing from the gist thereof. Needless to say.
[0081]
For example, in the above-described embodiment, the DMAC has been described as a data transfer device. However, the present invention is not limited to this, and may be a device called a data transfer controller. It may have an arithmetic function or the like.
[0082]
Also, any device that can acquire the bus use right and use the bus instead of the CPU may be used.
[0083]
Also, a plurality of data transfer devices can be provided on the first bus, and the logical description of the bus arbiter can be easily modified.
[0084]
The information referred to at the time of arbitration of the right to use the bus is not limited to the write buffer function, and may be information indicating that a bus cycle is being executed on the second and third buses. For example, it may include information indicating that another data transfer device is present on the second bus and data transfer of the another data transfer device is being performed. The third bus may also include the release of the right to use the external bus.
[0085]
Also, the method by which the DMAC indicates the bus to be used can be variously modified. In addition to the setting by the control register, the bus to be used may be determined from the address information of the source address register and the destination address register. The signal line and timing for notifying the bus arbiter can also be modified.
[0086]
The bus is divided into three, and may be four or more. The first and second buses may be integrally configured. Only one of the second and third buses may have a write buffer function.
[0087]
Further, the operation timing of the bus, the control signal, and the like can be variously changed.
[0088]
Further, the configuration of the microcomputer is not limited. In addition, various functional blocks and the like can be changed.
[0089]
In the above description, the case where the invention made by the present inventors is mainly applied to a single-chip microcomputer as a technical field to which the invention belongs has been described. However, the present invention is not limited to this, and other semiconductor integrated circuit devices, for example, It is also possible to apply the present invention to a semiconductor integrated circuit device mainly using a digital signal processor (DSP). The present invention can be applied at least to a semiconductor integrated circuit device having a built-in data transfer device connectable to a data processing device.
[0090]
The effects obtained by typical aspects of the invention disclosed in the present application will be briefly described as follows.
[0091]
(1) While the second bus is performing an operation in parallel with the first bus, such as a write buffer function, the right to use the bus is not given to the data transfer device but to the central processing unit. By giving the instruction, an instruction can be read from the memory on the first bus, and the frequency of occurrence of an undesired standby state is reduced.
[0092]
(2) The frequency of occurrence of an undesired standby state is further reduced by indicating whether or not to use the second bus when the data transfer device requests the bus use right.
[0093]
【The invention's effect】
The frequency of occurrence of an undesired standby state is reduced, and the processing performance of the semiconductor integrated circuit device can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a semiconductor integrated circuit device according to a first embodiment of the present invention.
FIG. 2 is a diagram illustrating a logical description of a bus arbiter as bus arbitration means in the semiconductor integrated circuit device according to the first embodiment of the present invention;
FIG. 3 is a timing chart illustrating an example of a bus operation in the semiconductor integrated circuit device according to the first embodiment of the present invention;
FIG. 4 is a diagram showing a register configuration of a DMAC in a semiconductor integrated circuit device according to a second embodiment of the present invention;
FIG. 5 is a diagram showing a logical description of a bus arbiter as bus arbitration means in the semiconductor integrated circuit device according to the second embodiment of the present invention;
FIG. 6 is a diagram showing a logical description of a bus use right request of a DMAC in the semiconductor integrated circuit device according to the second embodiment of the present invention;
FIG. 7 is a timing chart illustrating an example of a bus operation in the semiconductor integrated circuit device according to the second embodiment of the present invention;
[Explanation of symbols]
11 Central processing unit (CPU)
12 DMA controller (DMAC)
13 Read-only memory (ROM)
14. Random access memory (RAM)
15 Peripheral function blocks
16 I / O port (IOP)
17 Bus Controller (BSC)
18 Clock Oscillator (CPG)
19 First bus
20 Second bus
21 Third bus
22 Buffer circuit (BUF)
23 Bus Arbiter
24 Second bus controller
25 Third bus controller
41 Source Address Register (SAR)
42 Destination address register (DAR)
43 Transfer Counter (TCR)
44 DMA control register (DMCR)
dmareq DMAC bus use right request signal
dmack DMAC bus use right approval signal
dmap, dmap0, dmap DMAC second bus use signal
dmae, dmae0, dmae1 DMAC third bus use signal
cpuack CPU bus use right approval signal
ready Ready signal
treq0, treq1 transfer request signal
pwrbf second bus write buffer signal
ewrbf Third bus write buffer signal
ra, wa1, wa2 address
wd1, wd2, r, rd data
φI, φP, φE clock
IAB first bus address
IDB 1st bus data
PAB second bus address
PDB 2nd bus data
EXAB 3rd bus address
EXDB third bus data

Claims (5)

装置間の信号の伝送を行う第1のバスと、
前記第1のバスに接続された中央処理装置と、
前記第1のバスに接続されたデータ転送装置と、
前記第1のバスのバス使用権を調停するバス使用権調停手段と、
前記第1のバスを介してリード又はライトされる第2のバスとを有し、
前記バス使用権調停手段は、前記第2のバスの状態に応じて、バス使用権の調停方法を変更することを特徴とする半導体集積回路装置。
A first bus for transmitting signals between devices;
A central processing unit connected to the first bus;
A data transfer device connected to the first bus;
Bus use right arbitration means for arbitrating the bus use right of the first bus;
A second bus read or written via the first bus,
The semiconductor integrated circuit device according to claim 1, wherein the bus use right arbitrating means changes a bus use right arbitration method according to a state of the second bus.
請求項1記載の半導体集積回路装置であって、
前記第1のバスと前記第2のバスは、並行してバス動作を行うことが可能であり、前記第2のバスがバス動作を実行しているときは、前記中央処理装置にバス使用権を与えることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 1,
The first bus and the second bus can perform a bus operation in parallel, and when the second bus is executing a bus operation, the central processing unit gives a bus access right to the central processing unit. A semiconductor integrated circuit device.
請求項1又は2記載の半導体集積回路装置であって、
前記第1のバスには、前記中央処理装置のプログラムを格納するメモリが接続されていることを特徴とする半導体集積回路装置。
The semiconductor integrated circuit device according to claim 1, wherein:
A semiconductor integrated circuit device, wherein a memory for storing a program of the central processing unit is connected to the first bus.
請求項1、2又は3記載の半導体集積回路装置であって、
前記データ転送装置は、バス使用権の要求をするときに、前記第2のバスを使用するか否かを前記バス使用権調停手段に知らせることを特徴とする半導体集積回路装置。
4. The semiconductor integrated circuit device according to claim 1, 2 or 3,
The semiconductor integrated circuit device according to claim 1, wherein the data transfer device notifies the bus use right arbitration unit whether or not to use the second bus when requesting a bus use right.
請求項1、2、3又は4記載の半導体集積回路装置であって、
前記第2のバス、又は前記第2のバスに接続される機能ブロックは、前記第1のバスよりも遅いクロックで動作することを特徴とする半導体集積回路装置。
5. The semiconductor integrated circuit device according to claim 1, 2, 3, or 4,
2. The semiconductor integrated circuit device according to claim 1, wherein the second bus or a functional block connected to the second bus operates with a clock slower than the first bus.
JP2002379200A 2002-12-27 2002-12-27 Semiconductor integrated circuit device Pending JP2004213142A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002379200A JP2004213142A (en) 2002-12-27 2002-12-27 Semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002379200A JP2004213142A (en) 2002-12-27 2002-12-27 Semiconductor integrated circuit device

Publications (1)

Publication Number Publication Date
JP2004213142A true JP2004213142A (en) 2004-07-29

Family

ID=32815769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002379200A Pending JP2004213142A (en) 2002-12-27 2002-12-27 Semiconductor integrated circuit device

Country Status (1)

Country Link
JP (1) JP2004213142A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813878B1 (en) 2006-05-16 2008-03-18 전자부품연구원 Device and method of controlling amba bus without arbitration and amba bus interface system using the same
JP2015222487A (en) * 2014-05-22 2015-12-10 ヤマハ株式会社 DMA controller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366507A (en) * 2001-06-12 2002-12-20 Fujitsu Ltd Multichannel dma(direct memory access) controller, and processor system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366507A (en) * 2001-06-12 2002-12-20 Fujitsu Ltd Multichannel dma(direct memory access) controller, and processor system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813878B1 (en) 2006-05-16 2008-03-18 전자부품연구원 Device and method of controlling amba bus without arbitration and amba bus interface system using the same
JP2015222487A (en) * 2014-05-22 2015-12-10 ヤマハ株式会社 DMA controller

Similar Documents

Publication Publication Date Title
US6151651A (en) Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system
US6272582B1 (en) PCI-PCI bridge allowing controlling of a plurality of PCI agents including a VGA device
US6148357A (en) Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
JP3573614B2 (en) Image processing apparatus and image processing system
US20050210221A1 (en) Microcomputer and microcomputer system
US7581054B2 (en) Data processing system
US20040022107A1 (en) Unidirectional bus architecture for SoC applications
US6356963B1 (en) Long latency interrupt handling and input/output write posting
EP1730643A2 (en) Pvdm (packet voice data module) generic bus protocol
JP2004171209A (en) Shared memory data transfer device
US7260667B2 (en) Data transfer device, semiconductor integrated circuit, and microcomputer
JP4198376B2 (en) Bus system and information processing system including bus system
JP2007058716A (en) Data transfer bus system
JP2004118252A (en) Semiconductor data processor
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
US6026455A (en) Architecture and method for providing guaranteed access for a retrying bus master to a data transfer bridge connecting two buses in a computer system
JP2004213142A (en) Semiconductor integrated circuit device
JP2005165508A (en) Direct memory access controller
JPH09153009A (en) Arbitration method for hierarchical constitution bus
JP2005346513A (en) Semiconductor device
JP2002342266A (en) Data processor
JPS63175964A (en) Shared memory
JP4190969B2 (en) Bus arbitration system in bus system and AMBA
JP3905660B2 (en) Microcomputer and microcomputer system
JP2002073533A (en) Data processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090224