JP2003114864A - データ転送制御回路 - Google Patents
データ転送制御回路Info
- Publication number
- JP2003114864A JP2003114864A JP2001308691A JP2001308691A JP2003114864A JP 2003114864 A JP2003114864 A JP 2003114864A JP 2001308691 A JP2001308691 A JP 2001308691A JP 2001308691 A JP2001308691 A JP 2001308691A JP 2003114864 A JP2003114864 A JP 2003114864A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- queue
- control circuit
- transfer
- request
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
を備えたDMAコントローラにおいて、不要なDMA転
送を実行しなくてもリクエストキューのみをクリアした
りキューの状態を知ることができるDMAコントローラ
を実現する。 【解決手段】 複数のチャネルに関してデータの転送制
御が可能に構成され、複数のデータ転送要求に係るチャ
ネルの識別情報を保持可能なキュー(RQ10)を備え
たDMAコントローラ(130)において、キューの状
態を出力可能に構成するとともに、キューに保持されて
いる情報をクリア可能に構成した。
Description
ータシステムにおけるDMA(ダイレクト・メモリ・アク
セス)データ転送技術さらにはDMA転送要求を一時的
に保管するキューの制御方式に適用して有効な技術に関
し、例えばマイクロプロセッサもしくはマイクロコンピ
ュータに内蔵されるDMAコントローラに利用して有効
な技術に関する。
る)と、タイマ回路やシリアルコミュニケーションイン
タフェース回路等の周辺モジュールを含むワンチップの
マイクロコンピュータを用いたシステムにおいて、メモ
リや周辺装置間でCPUを介さずに直接データの転送を
行なえるようにするため、DMAコントローラが用いら
れる。DMAコントローラは、マイクロコンピュータと
は別個のLSIとして構成されることもあるが、最近で
はマイクロコンピュータやマイクロプロセッサに内蔵さ
れることが多くなっている。かかるDMAコントローラ
には、DMA転送を実行中に次のDMA転送要求を受け
付けることができるようにするため、リクエストキュー
と呼ばれるFIFO(ファーストイン・ファーストアウ
ト)メモリが設けられることがある。
ーラにおいては、リクエストキューをクリアする機能が
設けられていないため、リクエストキューに転送要求が
残ったままDMA転送が終了するアンダーランを起こす
ことがある。この場合、リクエストキューに残っている
DMA転送要求を消化するには本来必要でないDMA転
送を実行しなければならないため、システムのスループ
ットが低下してしまう。また、従来のDMAコントロー
ラにおいては、リクエストキューの内容を読み出す機能
が設けられていないため、キューに保持されているDM
A転送要求以上のDMA転送を周辺装置が行なおうとす
るオーバーランを起こすことがあった。このようなアン
ダーランやオーバーランを防止するには、例えばDMA
転送要求を行なう周辺装置にDMA転送要求の出力回数
を確認できるカウンタなどの回路を設ける必要があるた
め、ユーザの設計負担が大きくなると共に周辺ロジック
の規模が大きくなってシステムが複雑かつコスト高にな
るという不具合が生じる。
部のレジスタ等をリセットする機能が設けられており、
このリセット機能を利用することで複数の転送チャネル
に対応して設けられている全てのリクエストキューをク
リアすることができるが、このクリアを行なうと、DM
Aコントローラの制御レジスタ等もリセットされてしま
う。そのため、連続してDMA転送を実行したい場合に
もリクエストキューをクリアすると制御レジスタの設定
を再度やり直さなくてはならないので、DMA転送処理
が遅くなってしまうという課題があった。
クリアすることができるようにして制御レジスタの設定
をやり直さなくてもDMA転送処理を実行できるデータ
転送制御回路(DMAコントローラ)もしくはそれを内
蔵したマイクロプロセッサのようなデータ処理装置を提
供することにある。本発明の他の目的は、不要なDMA
転送を実行しなくてもリクエストキューをクリアするこ
とができるようにしてシステムのスループットを向上で
きるデータ転送制御回路もしくはそれを内蔵したデータ
処理装置を提供することにある。
求元である周辺装置にDMA転送要求の出力回数を確認
できるようにするためカウンタなどの回路を設けること
なく、リクエストキューに転送要求が残ったままDMA
転送が終了するのを回避することができるようにして、
ユーザの設計負担が大きくなったりシステムが複雑にな
るのを防止できるデータ転送制御回路もしくはそれを内
蔵したデータ処理装置を提供することにある。本発明の
さらに他の目的は、DMA転送要求インタフェースに関
し新しい仕様を備えていない外部装置からのDMA転送
要求も受け付けることができる汎用性の高いデータ転送
制御回路もしくはそれを内蔵したデータ処理装置を提供
することにある。
新規な特徴については、本明細書の記述および添附図面
から明らかになるであろう。
発明のうち代表的なものの概要を説明すれば、下記のと
おりである。すなわち、中央処理ユニットを介さずにメ
モリと周辺回路もしくは周辺装置との間のデータ転送を
制御するデータ転送制御回路において、複数のチャネル
に関してデータの転送制御が可能に構成され、複数のデ
ータ転送要求を保持可能なキューを備えるとともに、上
記キューの状態を出力可能に構成したものである。
行なう周辺装置は前もってリクエストキューの状態を知
ることができ、DMA転送要求の出力回数を計数するカ
ウンタなどの回路を設けなくてもアンダーランやオーバ
ーランを回避することができる。上記キューの状態の出
力は、例えばキューの各段の状態を示す信号をエンコー
ドした信号で上記外部端子より出力されるように構成し
たり、さらにチャネルの識別情報を出力する外部端子と
共通の外部端子を使用して時分割で出力されるように構
成することで、端子数の節約することができる。
ニットを介さずにメモリと周辺回路もしくは周辺装置と
の間のデータ転送を制御するデータ転送制御回路におい
て、複数のチャネルに関してデータの転送制御が可能に
構成され、データ転送要求に係る複数のチャネルの識別
情報を保持可能なキューを備えるとともに、上記キュー
の内容をクリア可能に構成した。
定をやり直さなくてもDMA転送処理を実行できるとと
もに、不要なDMA転送を実行しなくてもキューをクリ
アできるため、システムのスループットが向上するよう
になる。また、DMA転送要求元である周辺装置にDM
A転送要求の出力回数を確認できるようにするためカウ
ンタなどの回路を設けることなく、キューに転送要求が
残ったままDMA転送が終了するのを回避することがで
きるようになり、これによってユーザの設計負担が大き
くなったりシステムが複雑になるのを防止することがで
きる。
えばキューの内容をクリアするための信号が入力される
外部端子を設ける方式がある。この場合、キューの内容
をクリアするための信号は、データ転送を要求する信号
を入力する外部端子と共通の外部端子を使用して時分割
で入力されるように構成することで、端子数の節約が可
能である。また、キューをクリアする手段としては、キ
ューからクリアしたいチャネルの識別情報をプログラム
に従って設定可能なレジスタを設ける方式もある。これ
により、ソフトウェアまたはハードウェアのいずれでも
キューをクリアできるようになる。
面に基づいて説明する。図1には、本発明を、DMAコ
ントローラを備えたマイクロプロセッサに適用した場合
の一実施例の概略構成が示されている。特に制限されな
いが、図1に示されている各回路ブロックは、公知の半
導体集積回路の製造技術により、単結晶シリコンのよう
な1個の半導体チップ上に形成されている。
マイクロプロセッサは、プログラムの命令を解読してデ
ータの演算処理を行なったりチップ全体の制御を行なう
プログラム制御方式の中央処理ユニット(CPU)11
1と、CPUに代わって浮動小数点演算などの演算処理
を行なう演算ユニット(FPU)112と、CPUが実
行するプログラムなどのデータの一時記憶領域を提供す
るキャッシュメモリおよびメモリの管理を行なうキャッ
シャ&メモリ管理ユニット113などからなる制御部1
10、ユーザプログラムのエミュレーション機能を有す
るデバッグ回路120、CPU111を介さずに外部の
ハードディスク装置のような外部周辺装置と外部メモリ
等との間でDMA方式のデータ転送制御を行なうDMA
コントローラ(DMAC)130、シンクロナスDRA
Mなどの外部メモリが接続されるメモリ専用外部バスと
の間の信号の入出力を行なう外部メモリインタフェース
回路(EMI)150、ハードディスク装置などの外部
装置が接続されるPCIバスとの間の信号の入出力を行
なうPCIインタフェース回路(PCI)160、フラ
ッシュメモリなどが接続される外部バスとの間の信号の
入出力を行なうフラッシュ外部メモリインタフェース回
路(FEMI)170などを備えており、これらの回路
は、64ビットのような高速の内部CPUバスICBを
介して互いに接続されている。DMAコントローラ(D
MAC)130は、上記の3つの外部バスに接続されて
いる外部メモリや外部デバイスとの間のデータ転送を、
CPUが関与することなく実行する機能を備えている。
は、所定の割込み要因の発生に基づいてCPUに対して
割込み要求を行なう割込みコントローラ(INTC)2
10、クロック生成回路を備え所定の動作モードでチッ
プ内の一部の回路ブロックの動作を停止させて低消費電
力化を図るパワーマネージメントユニット(PMU)2
20、時間管理用のタイマユニット(TMU)230、
外部装置との間でシリアル通信を行なうシリアルコミュ
ニケーションインタフェース(SCIF)240、内部
動作に必要なクロックを形成したりカレンダ機能を有す
るリアルタイムクロック回路(RTC)250などの周
辺回路が設けられている。これらの周辺回路は、周辺ア
ドレスバスPABおよび周辺データバスPDBを介して
接続されている。また、この実施例のマイクロプロセッ
サには、上記CPUバスICBと周辺バスPABおよび
PDBとの間に、2つのバス上の信号のタイミングを調
整してCPUと周辺モジュールとの間の信号の橋渡しを
するバスステートコントローラBSCなどからなる周辺
ブリッジ回路180が設けられている。
C)130の概略構成が示されている。図に示されてい
るように、この実施例におけるDMAコントローラ(D
MAC)130は、チャネル毎に要求を受けて通常のD
MA転送制御を行なう第1のDMACモジュール350
と、チャネルを指定した要求を受けてDMA転送制御を
行なう第2のDMACモジュール370と、2つのDM
ACモジュール350と370においてほぼ同時に発生
した転送要求のうち実行するDMA転送の順序を決定す
るモジュール間優先順位判定回路380とから構成され
ている。このうち、第1のDMACモジュール350の
機能は従来のDMACコントローラに設けられている機
能である。第1のDMACモジュール350があること
によって、DMA転送要求インタフェースに関し新しい
仕様を備えていない外部装置からのDMA転送要求も受
け付けることができるシステムを構成することができ
る。
は後述のようにチャネル間の優先順位を設定するレジス
タが設けられており、複数のチャネルから同時期に転送
要求が入った場合には各モジュールから設定された優先
順位に従って転送要求がモジュール間優先順位判定回路
380に供給され、モジュール間優先順位判定回路38
0は、2つのDMACモジュール350,370から同
時に転送要求を受け取るとモジュール間の優先順位を判
定してその順位に従ってDMA転送を開始するように構
成されている。なお、モジュール間の優先順位は、例え
ばモジュール間優先順位判定回路380内に優先順位を
設定可能なレジスタを設け、CPU111が予め優先順
位を設定するようにすることができる。
路380の制御下にDMACモジュール350,370
を置いて、複数のチャネルのDMA転送を優先順位の順
番に実行する構成にすることにより、チャネル数を増や
したマイクロプロセッサを新たに開発する場合には、D
MACモジュールの数を増やすとともにモジュール間優
先順位判定回路380の論理を若干変更もしくは追加す
るだけで容易に全部のチャネルのDMA転送の順位を制
御することができるようになる。上記各DMACモジュ
ール350,370は、それぞれDMACコア部COR
E0,CORE1と、入出力コントロール部I/O0,
I/O1とから構成されており、このうち第2のDMA
Cモジュール370の入出力コントロール部I/O1
に、リクエストキューRQ10が設けられている。この
リクエストキューRQ10には、転送要求があったチャ
ネルの識別情報としてのチャネル番号が順次格納され
る。
MAC1は、各々IP(Intellectual Property)デー
タとして構成される。IPデータとは、ひとつのまとま
りのある回路として設計されてデータベース等に保存さ
れて、同一機能の回路を必要するLSIを開発する際
に、既に設計されているデータをデータベースから読み
出して他の回路と組み合わせることで所望の機能を実現
できるようにされたデータである。
AC1を各々IP化することにより、例えば図12に示
すように、コンピュータ本体92とCRTのようなモニ
タ装置93とキーボードのような入力装置94とMOド
ライブ装置のような外部記憶装置95などから構成され
ているコンピュータシステムの外部記憶装置95にIP
データが記録されている光磁気ディスクのような記憶メ
ディア91を装着してデータを読出し、ローカルエリア
ネットワークLANを介してエリア内の他のコンピュー
タP1や公衆通信網P−NETを介してエリア外の他の
コンピュータP2,P3にデータを送信して、LSIの
設計の容易化を図ることができるとともに、IPデータ
を希望する第3者に有償で提供して対価を受け取るサー
ビスを行なうことができるようになる。
0のより具体的な構成例が示されている。この第1のD
MACモジュール350は、互いに独立したDMA転送
が行なえる複数(n個)のチャネルを備えるとともに、
各チャネル毎にDMA転送要求を受け付けることができ
るようにするため、入出力コントロール部I/O0に
は、n個のDMA転送要求信号/DREQ1〜/DRE
Qn(/はロウレベルが有効レベルであることを意味す
る)を受け付ける入力端子と、各チャネルに対応して要
求を受け付けたことを外部へ知らせるn個の確認信号D
RAK1〜nを出力する出力端子と、要求のあったチャ
ネルについてDMA転送が終了した時にその終了を外部
装置へ知らせる完了信号を出力するn個の確認信号出力
端子DACK1〜nとが設けられている。
Cコア部CORE0には、全チャネルの転送要求を有効
にしたり無効にしたりするマスタイネーブルの設定や各
チャネル間の優先順位など全チャネルに共通の設定を行
なう共通レジスタ(COMMON)351と、各チャネ
ルに対応して転送元アドレスが入るソースアドレスレジ
スタ(SAR1〜n)352や転送先アドレスが入るデ
ィスティネーションアドレスレジスタ(DAR1〜n)
353、チャネル毎に転送回数を保持する回数レジスタ
(COUNT1〜n)354、チャネル毎にリードまた
はライトのいずれであるかや転送方法、転送サイズ、動
作モードなどを指定するコントロールレジスタ(CTR
L1〜n)355、各チャネルの状態を反映するステー
タスレジスタ(STATUS1〜n)356、DMA転
送完了信号DACKnをソースアドレスからのデータの
転送(リード)でアサートするかディスティネーション
アドレスへのデータの転送(ライト)でアサートするか
を指定するビットなどを有する外部の信号の入出力に関
する設定を行う全チャネルに共通のI/Oコントロール
レジスタ(DMAEXG)357が設けられている。
ACコア部CORE0には、これらのレジスタの制御を
行なうレジスタ制御回路358や、レジスタ制御回路3
58にDMA転送制御の起動をかける起動制御回路35
9、DMA転送の際に入出力されるデータを一時的に保
持する例えば32バイトのような記憶容量を有するデー
タバッファ360、上記コントロールレジスタ355内
の転送サイズを参照して回数レジスタ354の値を更新
する回数制御回路361、いずれのチャネルのデータ転
送を優先させるか制御する優先順位制御回路362、コ
ア内部の回路全体を制御するリクエストコントローラ3
63、上記各レジスタと内部CPUバスICBとを接続
するバスインタフェース回路364などが設けられてい
る。これらのレジスタは、内部バスICBを介してCP
U11から設定できるとともに、外部バスを介して外部
装置からも設定が行えるように構成されている。
0のより具体的な構成例が示されている。第2のDMA
Cモジュール370のDMACコア部CORE1は、第
1のDMACモジュール350のDMACコア部COR
E0と比較的類似の構成を有する。異なる点は、コント
ロールレジスタ375に転送制御中のチャネル番号が入
る領域が設けられている点と、I/Oコントロールレジ
スタ(DMAEXG)377にチャネル毎にクリア転送
要求をクリアするためのクリアビットが設けられている
点にある。一方、第2のDMACモジュール370の入
出力コントロール部I/O1は第1のDMACモジュー
ル350の入出力コントロール部I/O0とかなり異な
る構成を有する。
370の入出力コントロール部I/O1には転送要求が
あったチャネル番号を入力順に保持するFIFOメモリ
からなるリクエストキューRQ10と、外部端子より入
力されるDMA転送要求信号/TRとチャネル識別コー
ドTRIDとに基づいてリクエストキューRQ10のク
リア信号を生成したりDMA転送完了時にDMA転送完
了信号/TDACKを生成するコントロールロジック回
路390が設けられている。第1のDMACモジュール
350の入出力コントロール部I/O0にはこのような
リクエストキューは設けられていない。
の入出力コントロール部I/O0では、各チャネルに対
応してDMA転送要求信号DREQを入力する端子が設
けられているのに対し、第2のDMACモジュール37
0の入出力コントロール部I/O1では、n個のチャネ
ルに対して共通のDMA転送要求信号/TRを入力する
端子401と、転送を要求するチャネルを指定するチャ
ネル識別コードTRIDを入力する端子402が設けら
れている。この端子402の数はnが「4」の場合には
2個、nが「8」の場合には3個とすることができる。
入出力コントロール部I/O1においては、DMA転送
完了信号/TDACKを出力する端子に関してもn個の
チャネルに対して共通の端子403とされているととも
に、転送が完了したチャネルを知らせるチャネル識別コ
ードTAIDを出力する端子404が設けられている。
この端子404の数もnが「4」の場合には2個、nが
「8」の場合には3個とされる。
A転送要求信号/TRの入力端子401が、リクエスト
キューRQ10のクリアの要求を受け付ける端子として
も機能するように構成されている。そして、この端子が
リクエストキューRQ10のクリア要求を受け付ける場
合には、そのとき端子402に入力されているチャネル
識別コードTRIDは転送要求をクリアしたいチャネル
とみなされるように構成されている。また、上記DMA
転送完了信号/TDACKの出力端子403は、リクエ
ストキューRQ10の状態の読出し要求を受け付ける端
子としても機能するように構成されている。そして、こ
の端子403がリクエストキューRQ10の読出し要求
を受け付ける場合には、そのとき端子404より出力さ
れるコードはリクエストキューRQ10に保持されてい
る転送要求チャネルの数とみなされるように構成されて
いる。
Q10のクリア要求が入力されたときにリクエストキュ
ーRQ10をクリアさせるため、入出力コントロール部
I/O1のコントロールロジック回路390には、図5
に示すように、入力信号TRとTRIDに基づいてリク
エストキューRQ10のクリア信号を生成するキューク
リア回路391と、リクエストキューRQ10の状態に
基づいてキューに幾つの転送要求チャネルが残っている
か出力するキュー状態出力回路392が設けられてい
る。このキュー状態出力回路392としては、例えばリ
クエストキューRQ10の各キュー毎にそのキューに有
効なチャネル番号が入っているか否か示すフラグの状態
をエンコードして出力するエンコーダが考えられる。
リア回路391が、I/Oコントロールレジスタ(DM
AEXG)377に設けられているクリアビットに基づ
いてリクエストキューRQ10に保持されている当該チ
ャネルに対するDMA転送要求をクリアする信号を生成
可能に構成されている。上記I/Oコントロールレジス
タ(DMAEXG)377は、CPU111が内部バス
ICBを介してリード・ライトできるレジスタであるた
め、CPUがプログラムに従ってI/Oコントロールレ
ジスタ(DMAEXG)377のクリアビットに“1”
を書き込むことによってもリクエストキューRQ10に
保持されている転送要求をクリアすることができる。
(DMAEXG)377のビット構成が示されている。
図において、QCEはキュークリア指定フィールドで、
転送チャネル数に応じたビット数で構成され、各ビット
はそれぞれいずれかの転送チャネルに対応されており、
これらのビットに“1”がセットされると対応するチャ
ネルの転送要求のクリアが指定される。TSAはDMA
転送完了信号TDACKをハイレベル有効とするかロウ
レベル有効とするか指定するビットからなるフィール
ド、TRWはDMA転送完了信号TDACKをソースア
ドレスからのデータの転送(リード)でアサートするか
ディスティネーションアドレスへのデータの転送(ライ
ト)でアサートするかを指定するビットからなるフィー
ルドで、それぞれ転送チャネル数に応じたビット数で構
成されている。なお、ハッチングが付されている部分は
無効なビットからなるリザーブ領域である。
けるコントロールロジック回路390によるリクエスト
キューRQ10の制御手順を、図7の処理フローチャー
トおよび図8の状態フローチャートを用いて説明する。
コントロールロジック回路390は、外部からDMA転
送要求信号TRによるDMA転送要求が入っているか監
視し、DMA転送要求が入るとリクエストキューRQ1
0にそのとき端子402に入力されているチャネル識別
コードTRIDを格納する(図7のルーチンR1→R
2,図8のステージS1→S2)。リクエストキューR
Q10に要求が入ると、コントロールロジック回路39
0はDMAコア部CORE1に要求されたチャネルに対
するDMA転送要求を行なう(図7のルーチンR3,図
8のステージS2)。
号が返ってきたか判定する(図7のR4)。そして、応
答信号がなければリクエストキューRQ10が一杯か判
定し、一杯でなければ次のDMA転送要求が入っている
か判定する(図7のルーチンR5,R6)。ルーチンR
5でリクエストキューRQ10が一杯であったときやル
ーチンR6で次の転送要求がなかったときは、ルーチン
R4へ戻って応答信号が返って来るのを待つ。ルーチン
R6で次の転送要求かあったときは、リクエストキュー
RQ10にそのとき端子402に入力されているチャネ
ル識別コードTRIDを格納する(図7のルーチンR
7,図8のステージS3)。そして、再びルーチンR4
へ戻って上記手順を繰り返す。応答信号が返ってくる前
にさらに第3、第4の転送要求が入ると、その転送要求
もリクエストキューRQ10に格納される(図8のステ
ージS4,S5)。
RE1からの応答信号を受け取ると、ルーチンR8へ移
行してリクエストキューRQ10に保持されている最初
の転送要求を削除する。それから、次のルーチンR9で
リクエストキューRQ10が空になったか判定し、空の
ときはルーチンへ戻るが、転送要求が残っているときは
ルーチンR3へ戻って、リクエストキューRQ10に保
持されている次の転送要求に応じてDMAコア部COR
E1に要求されたチャネルに対するDMA転送要求を行
なう(図8のステージS6)。
おけるDMA転送要求の受付けとリクエストキューRQ
10の状態の出力の手順を、図9のタイミングチャート
を用いて説明する。なお、図9には、一例としてDMA
転送中でなくかつリクエストキューRQ10が空の状態
でDMA転送要求を受け付ける場合のタイミングが示さ
れている。
ル部I/O1はDMA転送完了信号/TDACKをハイ
レベルにネゲートしている。また、リクエストキューR
Q10が空であるので、入出力コントロール部I/O1
はキューが空であることを示すコード“00”を信号T
AIDとして出力する。外部装置が本実施例のマイクロ
プロセッサの第2のDMACモジュール370にDMA
転送要求をする場合、前のサイクルT1でチャネル識別
コード(チャネル番号)TRIDとして“00”を入力
してからDMA転送要求信号TRをロウレベルにアサー
トする(タイミングt1)。また、外部装置は、DMA
転送要求信号TRのアサートに合わせて転送を要求した
いチャネルの識別コードTRIDを入力する(期間T
2)。なお、サイクルT1でチャネル番号TRIDとし
て“00”を入力してもDMA転送要求信号TRがハイ
レベルであるため、TRIDは取り込まれない。
このチャネル識別コードTRIDをクロックCK0の立
ち上がりに同期してリクエストキューRQ10に取り込
む(タイミングt2)。その後、入出力コントロール部
I/O1はキューの状態として要求が1つあることを示
すコード“01”を信号TAIDとして出力する(タイ
ミングt3)。なお、リクエストキューRQ10に取り
込まれたチャネル番号は、リクエストコントローラ38
3に渡され、対応するチャネルのコントロールレジスタ
375に転送要求があったことが設定される。
たい場合には、DMA転送要求信号/TRを一旦ハイレ
ベルにネゲートして、再びチャネル識別コードTRID
として“00”を入力してからDMA転送要求信号TR
をロウレベルにアサートする(タイミングt4)。ま
た、外部装置は、これに合わせて転送を要求したいチャ
ネルの識別コードTRIDを入力する(期間T3)。す
ると、入出力コントロール部I/O1はこのチャネル識
別コードTRIDをリクエストキューRQ10に取り込
む(タイミングt5)。その後、入出力コントロール部
I/O1はキューの状態として要求が2つあることを示
すコード“10”を信号TAIDとして出力する(タイ
ミングt6)。
RE1では、最初のDMA転送要求に応じてDMA転送
制御を開始しており、準備が整うと入出力コントロール
部I/O1に転送開始を知らせてくるので、入出力コン
トロール部I/O1は転送完了信号/TDACKをロウ
レベルにアサートするとともに転送処理中のチャネルを
示すコード“00”を信号TAIDとして出力する(タ
イミングt7)。また、このときDMAコア部CORE
1はバス上にソースアドレスを出力する。そして、転送
元のデバイスからデータバス上に出力されるリードデー
タをDMAコア部CORE1内のバッファ380に取り
込む(タイミングt8)。なお、ソースアドレスやディ
スティネーションアドレス、転送回数、転送データサイ
ズ等は、DMA転送要求信号/TRをロウレベルにアサ
ートして転送要求を入力する前にCPU111によって
各レジスタ371〜378に設定される。
イズに相当するデータのリードが終了した時点で、DM
Aコア部CORE1がディスティネーションアドレスを
出力し(タイミングt9)、1サイクル遅れでバッファ
380内のデータをデーバス上へ出力して転送先のデバ
イスにデータを書き込む(タイミングt10)。なお、
転送中に転送チャネルを示すコードが出力されるのは、
DMAEXGレジスタ377のTRWフィールドで設定
されたアクセスサイクル(DMAC1によるリードアク
セスまたはライトアクセス)間のみであり、それが過ぎ
ると入出力コントロール部I/O1は転送完了信号/T
DACKをハイレベルにネゲートし、これに合わせてキ
ューの状態を示すコードを信号TAIDとして出力す
る。
であり、キューの状態を示すコードは2ビットであっ
て、“00”は4つのキュー全てが空であることを意味
する。キューの状態を示すコードが“01”の場合は要
求が入っているキューが1つ、“10”の場合は要求が
入っているキューが2つ、であることを意味している。
要求が入っているキューが3つまたは4つの場合には、
キューの状態を示すコードとして“11”を割り当てて
いる。これにより、キューの状態を出力するための外部
端子数を減らすことができる。一般に、転送要求する側
ではキューに余裕を持たせるため、リクエストキューR
Q10のキューが一杯にならないような使い方をするの
で、要求が入っているキューが3つまたは4つの場合に
キューの状態を示すコードとして“11”を割り当てて
も大きな支障はない。
おける外部からの信号の入力によりリクエストキューR
Q10に残っている転送要求をクリアする場合の動作手
順を、図10のタイミングチャートを用いて説明する。
この動作に先だって、リクエストキューRQ10に転送
要求が残っているか否かは、前記入出力コントロール部
I/O1から出力されキュー状態を示す信号TAIDを
チェックすれば知ることができる。なお、図10には、
一例としてDMA転送中でなく、リクエストキューRQ
10には転送要求チャネルを示すコードとして01,0
0,00,11が保持されている場合のタイミングが示
されている。
ル部I/O1はDMA転送完了信号/TDACKをハイ
レベルにネゲートしている。外部装置が本実施例のマイ
クロプロセッサの第2のDMACモジュール370にリ
クエストキューRQ10に保持されているチャネルのク
リアを要求する場合、前のサイクルT11でチャネル識
別コードTRIDとして“11”を入力してからDMA
転送要求信号TRをロウレベルにアサートする(タイミ
ングt11)。また、外部装置は、DMA転送要求信号
/TRのアサートに合わせて転送要求をクリアしたいチ
ャネルの識別コードTRID(例えば“00”)を入力
する(期間T12)。なお、サイクルT11でチャネル
識別コードTRIDとして“11”を入力してもDMA
転送要求信号TRがハイレベルであるため、TRIDは
取り込まれない。
このチャネル識別コードTRIDをクロックCK0の立
ち上がりに同期してキュークリア回路391に取り込む
(タイミングt12)。これによって、リクエストキュ
ーRQ10内の指定されたチャネル(例えば“00”)
の転送要求がクリアされる。図においては、4つのキュ
ーのうちを2番目と3番目のキューに入っていたチャネ
ル番号がクリアされて「空き」状態となる。
アしたいチャネルがある時は、DMA転送要求信号TR
を一旦ハイレベルにネゲートして、再びチャネル識別コ
ードTRIDとして“11”を入力してからDMA転送
要求信号TRをロウレベルにアサートする(タイミング
t13)。また、外部装置は、これに合わせて転送要求
をクリアしたいチャネルの識別コードTRID(例えば
“11”)を入力する(期間T13)。すると、入出力
コントロール部I/O1はこのチャネル識別コードTR
IDをキュークリア回路391に取り込む(タイミング
t14)。これによって、リクエストキューRQ10内
の指定されたチャネル(例えば“11”)の転送要求が
クリアされる。図においては、4つのキューのうちを4
番目のキューに入っていたチャネル番号がクリアされて
「空き」状態となる。
ーに保持されていた転送要求(チャネル“01”)はク
リア要求されていないので、上記クリア動作と並行し
て、DMAコア部CORE1では、チャネル“01”の
DMA転送要求に応じたDMA転送制御を開始してお
り、準備が整うと入出力コントロール部I/O1に転送
開始を知らせてくるので、入出力コントロール部I/O
1は転送完了信号/TDACKをロウレベルにアサート
するとともに転送処理中のチャネルを示すコード“0
0”を信号TAIDとして出力する(タイミングt1
5)。また、このときDMAコア部CORE1はバス上
にソースアドレスを出力する。そして、転送元のデバイ
スからデータバス上に出力されるリードデータをDMA
コア部CORE1内のバッファ380に取り込む(タイ
ミングt16)。
イズに相当するデータのリードが終了した時点で、DM
Aコア部CORE1がディスティネーションアドレスを
出力し(タイミングt17)、1サイクル遅れでバッフ
ァ380内のデータをデーバス上へ出力して転送先のデ
バイスにデータを書き込む(タイミングt18)。な
お、データ転送中に転送チャネルを示すコードが出力さ
れるのは、DMAEXGレジスタ377のTRWフィー
ルドで設定されたアクセスサイクル(DMAC1による
リードアクセスまたはライトアクセス)間のみであり、
それが過ぎると入出力コントロール部I/O1は転送完
了信号/TDACKをハイレベルにネゲートし、これに
合わせてキューの状態を示すコードを信号TAIDとし
て出力する。図10においては、タイミングt18以降
はキューがすべて空になるので、キューの状態を示すコ
ードは“00”になっている。
ーラ130を内蔵したマイクロプロセッサの応用システ
ムの構成例が示されている。図11において、符号10
0で示されているのが、CPU111やDMAコントロ
ーラ130等を内蔵したマイクロプロセッサLSIであ
り、このマイクロプロセッサ100には外部メモリイン
タフェースおよび外部バス400を介して、外部デバイ
ス510,520,530,540とDMA転送対象の
回路を内蔵したASICのようなシステムLSI550
が接続されている。特に制限されるものでないが、この
システムでは、外部デバイス510,520,530,
540はDMAコントローラ130の第1のDMACモ
ジュール350に接続され、ASIC550は第2のD
MACモジュール350に接続されている。さらに、こ
の実施例のシステムでは、マイクロプロセッサ100に
は外部メモリバス410を介してシンクロナスDRAM
などの外部メモリ600が接続されている。DMAコン
トローラ130は、外部デバイス510〜540相互間
はもちろんのこと外部デバイス510,520,53
0,540とASIC550との間や外部デバイス51
0,520,530,540と外部メモリ600との
間、ASIC550との外部メモリ600との間におい
てもDMA転送を行なうことができる。
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば上記
実施例では、DMA転送要求を保持するリクエストキュ
ーRQ10をハードウェアとソフトウェアのいずれでも
クリアできるように構成されているが、ハードウェアに
よるクリアまたはソフトウェアによるクリアのいずれか
一方のみ行なえるように構成しても良い。
ル370に対してのみDMA転送要求を保持するリクエ
ストキューRQ10を設けているが、他方のDMACモ
ジュール350内に、各チャネルに対応した転送要求を
保持するリクエストキューを設け、かつこのリクエスト
キューをハードウェアとソフトウェアあるいはハードウ
ェアまたはソフトウェアでクリアできるようにしたり、
各リクエストキューの状態を外部へ出力できるように構
成しても良い。この場合、各リクエストキューに要求が
入っているか入っていないかを示す信号をそれぞれ出力
するようにしてもよいが、これらの信号をエンコードし
て外部へ出力するようにしてもよい。
をクリアする場合、クリア信号をチップ外部から直接入
力するための外部端子を設けるようにしても良い。この
場合、入力端子は各チャネルと1対1で設けても良い
し、チップ内部にデコーダを設けておいて外部でエンコ
ードした信号を入力するように構成しても良い。
ューの状態として転送要求が幾つ残っているかを外部へ
出力するようにしているが、リクエストキューの内容す
なわち転送要求が残っているチャネルの情報を外部へ出
力できるように構成しても良い。この場合、リクエスト
キューの内容はシリアルデータとして出力するようにす
るのが望ましい。
なされた発明をその背景となった利用分野であるDMA
コントローラを備えたマイクロプロセッサに適用した場
合について説明した、本発明はそれに限定されるもので
なく、マイクロプロセッサとは別のLSIとして構成さ
れたDMAコントローラにも適用することができる。
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、本発明に従うと、制御レジ
スタの設定をやり直さなくてもDMA転送処理を実行で
きるとともに、不要なDMA転送を実行しなくてもリク
エストキューをクリアできるため、システムのスループ
ットが向上するようになる。また、DMA転送要求元で
ある周辺装置にDMA転送要求の出力回数を確認できる
ようにするためのカウンタなどの回路を設けることな
く、リクエストキューに転送要求が残ったままDMA転
送が終了するのを回避することができるようになり、こ
れによってユーザの設計負担が大きくなったりシステム
が複雑になるのを防止することができる。
ロプロセッサに適用した場合の一実施例の概略構成を示
すブロック図である。
ク図である。
DMACモジュールのより具体的な構成例を示すブロッ
ク図である。
DMACモジュールのより具体的な構成例を示すブロッ
ク図である。
入出力コントロール部の概略構成を示すブロック図であ
る。
スタのビット構成例を示す説明図である。
おけるリクエストキューの制御手順を示す処理フローチ
ャートである。
エストキューの変化の様子を示す状態フローチャートで
ある。
状態の出力の手順を示すタイミングチャートである。
ーに残っている転送要求をクリアする場合の動作手順を
示すタイミングチャートである。
セッサの応用システムの構成例を示すブロック図であ
る。
部を各々IP化してLSIの設計に利用する場合のデー
タの提供の仕方の一例を示す説明図である。
ラ) 350 第1のDMACモジュール 370 第2のDMACモジュール 351,371 共通レジスタ 352,372 ソースアドレスレジスタ 353,573 ディスティネーションアドレスレジス
タ 354,574 転送回数レジスタ 355,375 コントロールレジスタ 356,376 ステータスレジスタ 357,377 I/Oコントロールレジスタ RQ10 リクエストキュー CORE0,CORE2 DMACモジュールのコア部
Claims (10)
- 【請求項1】 中央処理ユニットを介さずにメモリと周
辺回路もしくは周辺装置との間のデータ転送を制御する
データ転送制御回路であって、 複数のチャネルに関してデータの転送制御が可能に構成
され、複数のデータ転送要求を保持可能なキューを備え
るとともに、 上記キューの状態を出力可能に構成されていることを特
徴とするデータ転送制御回路。 - 【請求項2】 上記キューの状態は、当該キュー内に残
っているデータ転送要求の数に関する情報であることを
特徴とする請求項1に記載のデータ転送制御回路。 - 【請求項3】 上記キューの状態は、外部端子より出力
されるように構成されていることを特徴とする請求項1
または2に記載のデータ転送制御回路。 - 【請求項4】 上記キューの状態は、キューの各段の状
態を示す信号をエンコードした信号で上記外部端子より
出力されるように構成されていることを特徴とする請求
項3に記載のデータ転送制御回路。 - 【請求項5】 実行されたデータ転送に係るチャネルの
識別情報を出力する外部端子を備え、上記キューの状態
は、上記チャネルの識別情報を出力する外部端子と共通
の外部端子を使用して時分割で出力されるように構成さ
れていることを特徴とする請求項3または4に記載のデ
ータ転送制御回路。 - 【請求項6】 中央処理ユニットを介さずにメモリと周
辺回路もしくは周辺装置との間のデータ転送を制御する
データ転送制御回路であって、 複数のチャネルに関してデータの転送制御が可能に構成
され、データ転送要求に係る複数のチャネルの識別情報
を保持可能なキューを備えるとともに、 上記キューの内容がクリア可能に構成されていることを
特徴とするデータ転送制御回路。 - 【請求項7】 上記キューの内容をクリアするための信
号が入力される外部端子が設けられていることを特徴と
する請求項6に記載のデータ転送制御回路。 - 【請求項8】 データ転送を要求する信号を入力する外
部端子を備え、上記キューの内容をクリアするための信
号は、上記データ転送を要求する信号を入力する外部端
子と共通の外部端子を使用して時分割で入力されるよう
に構成されていることを特徴とする請求項7に記載のデ
ータ転送制御回路。 - 【請求項9】 データ転送要求に係るチャネルの識別情
報を入力する外部端子を備え、上記キューの内容をクリ
アするための信号の入力の際に、上記データ転送要求に
係るチャネルの識別情報を入力する外部端子と共通の外
部端子を使用してクリアするチャネルの識別情報が入力
可能に構成されていることを特徴とする請求項6〜8に
記載のデータ転送制御回路。 - 【請求項10】 上記キューからクリアするチャネルの
識別情報をプログラムに従って設定可能なレジスタを備
え、前記レジスタにチャネルの識別情報が設定されると
設定されたチャネルの識別情報が上記キューから消去も
しくは無効にされるように構成されていることを特徴と
する請求項6〜9に記載のデータ転送制御回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001308691A JP2003114864A (ja) | 2001-10-04 | 2001-10-04 | データ転送制御回路 |
US10/255,024 US6944686B2 (en) | 2001-10-04 | 2002-09-26 | Data transfer control circuit with terminal sharing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001308691A JP2003114864A (ja) | 2001-10-04 | 2001-10-04 | データ転送制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003114864A true JP2003114864A (ja) | 2003-04-18 |
JP2003114864A5 JP2003114864A5 (ja) | 2005-06-16 |
Family
ID=19127961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001308691A Pending JP2003114864A (ja) | 2001-10-04 | 2001-10-04 | データ転送制御回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6944686B2 (ja) |
JP (1) | JP2003114864A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350782A (ja) * | 2005-06-17 | 2006-12-28 | Fujitsu Ltd | プロセッサ及びシステム |
JP2010049718A (ja) * | 2009-12-03 | 2010-03-04 | Hitachi Ltd | 半導体装置 |
JP2012198904A (ja) * | 2012-04-25 | 2012-10-18 | Renesas Electronics Corp | 半導体装置 |
US9798679B2 (en) | 2003-05-06 | 2017-10-24 | Renesas Electronics Corporation | Information processing device and processor |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120765B2 (en) * | 2002-10-30 | 2006-10-10 | Intel Corporation | Memory transaction ordering |
US6874054B2 (en) * | 2002-12-19 | 2005-03-29 | Emulex Design & Manufacturing Corporation | Direct memory access controller system with message-based programming |
US7793005B1 (en) * | 2003-04-11 | 2010-09-07 | Zilker Labs, Inc. | Power management system using a multi-master multi-slave bus and multi-function point-of-load regulators |
US7685320B1 (en) * | 2003-04-11 | 2010-03-23 | Zilker Labs, Inc. | Autonomous sequencing and fault spreading |
JP2006065697A (ja) * | 2004-08-27 | 2006-03-09 | Hitachi Ltd | 記憶デバイス制御装置 |
US8041851B2 (en) * | 2005-11-30 | 2011-10-18 | International Business Machines Corporation | Generic DMA memory space mapping |
US7707324B1 (en) * | 2006-06-28 | 2010-04-27 | Marvell International Ltd. | DMA controller executing multiple transactions at non-contiguous system locations |
US7433977B2 (en) * | 2006-11-28 | 2008-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | DMAC to handle transfers of unknown lengths |
US7512723B2 (en) * | 2006-12-29 | 2009-03-31 | Freescale Semiconductor, Inc. | Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system |
US8237423B2 (en) | 2008-07-18 | 2012-08-07 | Intersil Americas Inc. | Active droop current sharing |
US8239597B2 (en) * | 2008-07-18 | 2012-08-07 | Intersil Americas Inc. | Device-to-device communication bus for distributed power management |
US8120203B2 (en) * | 2008-07-18 | 2012-02-21 | Intersil Americas Inc. | Intelligent management of current sharing group |
US8120205B2 (en) * | 2008-07-18 | 2012-02-21 | Zilker Labs, Inc. | Adding and dropping phases in current sharing |
KR101202738B1 (ko) * | 2008-12-22 | 2012-11-20 | 한국전자통신연구원 | 멀티 채널 데이터 전송 장치 |
GB2497525A (en) | 2011-12-12 | 2013-06-19 | St Microelectronics Ltd | Controlling shared memory data flow |
US8862794B2 (en) * | 2012-08-21 | 2014-10-14 | Lsi Corporation | Non-disruptive selective traffic blocking in a SAS domain |
US9704355B2 (en) * | 2014-10-29 | 2017-07-11 | Clover Network, Inc. | Secure point of sale terminal and associated methods |
US11620246B1 (en) * | 2022-05-24 | 2023-04-04 | Ambiq Micro, Inc. | Enhanced peripheral processing system to optimize power consumption |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4270167A (en) * | 1978-06-30 | 1981-05-26 | Intel Corporation | Apparatus and method for cooperative and concurrent coprocessing of digital information |
US5781799A (en) * | 1995-09-29 | 1998-07-14 | Cirrus Logic, Inc. | DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers |
US5828901A (en) * | 1995-12-21 | 1998-10-27 | Cirrus Logic, Inc. | Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer |
US6049842A (en) * | 1997-05-01 | 2000-04-11 | International Business Machines Corporation | Efficient data transfer mechanism for input/output devices |
-
2001
- 2001-10-04 JP JP2001308691A patent/JP2003114864A/ja active Pending
-
2002
- 2002-09-26 US US10/255,024 patent/US6944686B2/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798679B2 (en) | 2003-05-06 | 2017-10-24 | Renesas Electronics Corporation | Information processing device and processor |
US10289569B2 (en) | 2003-05-06 | 2019-05-14 | Renesas Electronics Corporation | Information processing device and processor |
US10983924B2 (en) | 2003-05-06 | 2021-04-20 | Renesas Electronics Corporation | Information processing device and processor |
JP2006350782A (ja) * | 2005-06-17 | 2006-12-28 | Fujitsu Ltd | プロセッサ及びシステム |
JP4738068B2 (ja) * | 2005-06-17 | 2011-08-03 | 富士通セミコンダクター株式会社 | プロセッサ及びシステム |
JP2010049718A (ja) * | 2009-12-03 | 2010-03-04 | Hitachi Ltd | 半導体装置 |
JP2012198904A (ja) * | 2012-04-25 | 2012-10-18 | Renesas Electronics Corp | 半導体装置 |
Also Published As
Publication number | Publication date |
---|---|
US20030070011A1 (en) | 2003-04-10 |
US6944686B2 (en) | 2005-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003114864A (ja) | データ転送制御回路 | |
US6748507B2 (en) | Single-chip microcomputer with integral clock generating unit providing clock signals to CPU, internal circuit modules and synchronously controlling external dynamic memory | |
US5826106A (en) | High performance multifunction direct memory access (DMA) controller | |
US6701405B1 (en) | DMA handshake protocol | |
US6513089B1 (en) | Dual burst latency timers for overlapped read and write data transfers | |
JP5977094B2 (ja) | フレキシブルフラッシュコマンド | |
WO1996000940A1 (en) | Pci to isa interrupt protocol converter and selection mechanism | |
CN100464319C (zh) | 实现处理器之间进行通讯的装置和方法 | |
US9201821B2 (en) | Interrupt timestamping | |
US10255218B1 (en) | Systems and methods for maintaining specific ordering in bus traffic | |
JP2013025794A (ja) | フラッシュインタフェースの有効利用 | |
JP2002073527A (ja) | Dmaコントローラ | |
US6735683B2 (en) | Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements | |
EP1207457A1 (en) | External bus arbitration technique for multicore DSP device | |
US20040064748A1 (en) | Methods and apparatus for clock domain conversion in digital processing systems | |
US6647450B1 (en) | Multiprocessor computer systems with command FIFO buffer at each target device | |
JP2003281077A (ja) | 半導体集積回路装置 | |
JP4176920B2 (ja) | データ処理装置 | |
JP2002342266A (ja) | データプロセッサ | |
JP3491588B2 (ja) | 外部バス制御装置 | |
JP2002278753A (ja) | データ処理システム | |
JPH03141454A (ja) | ローカルバス制御装置 | |
JP2003114865A (ja) | データ転送制御回路およびデータ処理装置 | |
JPH11242647A (ja) | 情報処理装置 | |
JP2004054344A (ja) | データ転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040916 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040916 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070305 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071016 |