JP2004029898A - データプロセッサ - Google Patents

データプロセッサ Download PDF

Info

Publication number
JP2004029898A
JP2004029898A JP2002181073A JP2002181073A JP2004029898A JP 2004029898 A JP2004029898 A JP 2004029898A JP 2002181073 A JP2002181073 A JP 2002181073A JP 2002181073 A JP2002181073 A JP 2002181073A JP 2004029898 A JP2004029898 A JP 2004029898A
Authority
JP
Japan
Prior art keywords
data
transfer
address
bus
access memory
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
JP2002181073A
Other languages
English (en)
Inventor
Tatsuro Nishino
西野 辰郎
Toru Ichien
一圓 亨
Takeshi Tejima
手嶋 剛
Hiromichi Ishikura
石倉 裕道
Junji Ishikawa
石川 淳二
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
Hitachi Engineering Co Ltd
Renesas Semiconductor Package and Test Solutions Co Ltd
Original Assignee
Renesas Technology Corp
Hitachi Engineering Co Ltd
Renesas Northern Japan Semiconductor Inc
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, Hitachi Engineering Co Ltd, Renesas Northern Japan Semiconductor Inc filed Critical Renesas Technology Corp
Priority to JP2002181073A priority Critical patent/JP2004029898A/ja
Priority to US10/453,545 priority patent/US7310717B2/en
Priority to KR10-2003-0039772A priority patent/KR20030097700A/ko
Publication of JP2004029898A publication Critical patent/JP2004029898A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling 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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させる。
【解決手段】データ転送制御装置(10)は、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置(3)によってもアクセス可能なランダムアクセスメモリ(6)を用いるから、データ転送制御装置はそれ自体で専用のFIFOバッファなどを持たなくてもよい。ランダムアクセスメモリに割当てるバッファ領域のエリアもしくはサイズは中央処理装置によってプログラマブルであるから、システム上必要に応じた容量を、また中央処理装置によるワーク領域との競合を避けて、バッファに割くことができる。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、中央処理装置とデータ転送制御装置を有するデータプロセッサに関し、特にデータのブロック転送(バースト転送)に適用して有効な技術に関する。
【0002】
【従来の技術】
特開2001−154977には、デュアルアドレスモードを有するデータ転送コントローラについて記載がある。これに記載されたデータ転送コントローラは、複数段のバッファとカウンタを有し、前記カウンタの計数動作に呼応してデータバスに対して先入れ・先出し形式でデータを入出力可能なデータバッファ回路を有する。データバッファ回路はバッファを複数段有するから、デュアルアドレスモードにおいて、バッファ段数を上限として、転送元アドレスから連続してデータを読み出してデータバッファ回路に蓄え、蓄えたデータを連続的に転送先アドレスにライトすることができる。デュアルアドレスモードにおいて読み出しと書き込みを交互に行わなくてもよい。したがって、SDRAM(シンクロナスDRAM)に代表されるようにロウアドレス共通のメモリセルをカラムアドレスを順番に切換えて連続アクセスするバーストアクセスのように連続的なデータ入出力動作が可能なデバイスに対するデータ転送効率を向上させることができる。
【0003】
特開平3−134750にはDRAMコントローラに複数ワードデータを保持できるメモリを設け、シングルモードとページモードに対応可能にする技術が記載される。特開平11−85670にはバスコントローラの前段にDMACを設け、DMACのバッファを不要にしたマイクロコンピュータについて記載がある。
【0004】
【発明が解決しようとする課題】
しかしながら、上記従来技術ではデータバッファ回路を特別に持たなければならないから、その分だけデータプロセッサの物理的な回路規模が増大する。データバッファに必要な記憶容量も適用システムに応じて相違され、汎用データプロセッサの場合には、無駄になる場合もあれば、足りない場合もある。SDRAMにおける最大バースト長のようなデータ入出力の連続データ数が多いデバイスを用いるシステムではデータ転送効率が左程上がらず、そのような連続データ数の少ないデバイスを用いるシステムではデータバッファ回路の一部の記憶領域が利用されずに無駄になる事態を生ずる。
【0005】
本発明者はDMACに対して更に検討を加えたところ、以下の問題点を見出した。第1に、USB(ユニバーサル・シリアル・バス)インタフェースをデータ転送対象とするとき、そのFIFOバッファのエンプティー状態を超えてDMACがリードしようとすると、FIFOバッファのアドレスポインタの値が破壊する虞のあることが明らかにされた。
【0006】
第2に、転送対象アドレスが奇数アドレスのとき、或は転送すべきデータ数が奇数個であるとき、全てのデータ転送を最小単位であるバイト単位で行なうと、データ転送効率が悪化する、ということである。
【0007】
本発明の目的は、物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させることができるデータプロセッサを提供することにある。
【0008】
本発明の別の目的は、DMACによる連続データ転送回数と周辺回路が許容する連続データ転送回数との矛盾を解消させることができるデータプロセッサを提供することにある。
【0009】
本発明のその他の目的は、転送すべきデータ数と転送単位との間の矛盾への対応、更には奇数アドレスを転送先とするデータ転送への対応が可能なデータプロセッサを提供することにある。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0011】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0012】
〔1−1〕本発明に係るデータプロセッサは、中央処理装置(3)、データ転送制御装置(10)、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリ(6)を1個の半導体チップに含む。前記データ転送制御装置は、転送元からのデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能とされる。前記中央処理装置は前記データ転送制御に利用するランダムアクセスメモリのエリアをプログラマブルに指定可能である。
【0013】
上記より、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置によってもアクセス可能なランダムアクセスメモリを用いるから、データ転送制御装置はそれ自体で専用のFIFOバッファなどを持たなくてもよい。そして、ランダムアクセスメモリに割当てるバッファ領域のエリアもしくはサイズは中央処理装置によってプログラマブルであるから、システム上必要に応じた容量を、また中央処理装置によるワーク領域との競合を避けて、バッファに割くことができる。
【0014】
〔1−2〕異なった観点による本発明のデータプロセッサは、中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを1個の半導体チップに含む。前記データ転送制御装置は、転送元及び転送先アドレスを指定したデータ転送制御において、転送元に対するリードアドレスの指定に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトするバッファライトアドレスを指定し、転送先に対するライトアドレスの指定に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバッファリードアドレスを指定する。
【0015】
上記より、デュアルアドレス転送においてリードデータを一時的に蓄えるバッファ領域として中央処理装置によってもアクセス可能なランダムアクセスメモリを用いるから、データ転送制御装置はそれ自体で専用のFIFOバッファなどを持たなくてもよい。
【0016】
転送元又は転送先に対するアドレス指定とランダムアクセスメモリに対するバッファライトアドレス又はバッファリードアドレスの指定とを並行することは、双方のアドレス競合が回避されるということであり、例えば、前記転送元に対するリードアドレスのアドレス信号と前記転送先に対するライトアドレスのアドレス信号の伝達に用いる第1アドレス信号線と、前記バッファライトアドレスのアドレス信号と前記バッファリードアドレスのアドレス信号の伝達に用いる第2アドレス信号線とを別々に持つ。その第1の具体的な態様として、前記第1アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるバス(2A)であり、前記第2アドレス信号線は前記ランダムアクセスメモリに接続するバッファ用アドレスバス(50)である。この場合には、転送元アドレスと転送先アドレスはデータプロセッサの内外何れの組み合わせであってもよい。第2の具体的な態様として、前記第1アドレス信号線はデータ転送制御装置用アドレスバス(26)であり、前記第2アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるアドレスバス(2A)である。この場合には共通内部バス以外のバスに接続されている回路を転送元及び転送先の回路としなければならない。転送元又は転送先に対するアクセスアドレス信号とランダムアクセスメモリに対するバッファアクセスアドレス信号が共通内部バス上で競合するからである。
【0017】
前記データ転送制御装置は、転送元から転送先へ複数回データ転送を行なうとき、転送元からデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能である。転送元や転送先の回路がバースト動作によるメモリ動作可能であれば、リードとライトを交互に行なわなくてもよく、データのブロック転送を効率化することができる。
【0018】
前記データ転送制御装置は、前記データ転送制御におけるデータ転送の繰返し回数を中央処理装置によりプログラマブルに指定可能とする第1制御レジスタ手段(40)、前記データ転送制御に利用するランダムアクセスメモリのエリアを中央処理装置によりプログラマブルに指定可能とする第2制御レジスタ手段(41)を有することにより、データブロック転送の自由度が増す。
【0019】
〔1−3〕更に具体的な一態様による本発明のデータプロセッサは、中央処理装置(3)と、データ転送制御装置(10)と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリ(6)と、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路(9)と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バス(2)と、前記内部バスとは独立して前記バス制御回路と前記ランダムアクセスメモリを接続するバッファアドレスバス(50)と、を1個の半導体チップに含む。前記データ転送制御装置は、カウンタ手段(33)と、転送元及び転送先のアドレス信号を前記内部バスに出力する転送制御チャネル(34)と、制御回路(35)とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路にバッファアドレスバスを介するランダムアクセスメモリに対するアクセスを指示する。前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて前記バッファアドレスバスにバッファアドレス信号を出力して、転送元に対する前記内部バスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記内部バスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう。
【0020】
更に具体的な他の態様による本発明のデータプロセッサは、中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バス(2)と、前記内部バスとは独立して前記バス制御回路と前記データ転送制御装置を接続するDMA用アドレスバス(26)と、を1個の半導体チップに含む。前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記DMA用アドレスバスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路に内部バスを介するランダムアクセスメモリに対するアクセスを指示する。前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて内部バスにバッファアドレス信号を出力して、転送元に対する前記DMA用アドレスバスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記DMA用アドレスバスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう。
【0021】
〔2〕本発明の別の観点によるデータプロセッサは、中央処理装置、データバッファを持つ周辺回路(15)、及びデータ転送制御装置を有する。前記データ転送制御装置は前記周辺回路をデータ転送元とするデータ転送制御を行なうとき、前記周辺回路のバッファが保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なう。
【0022】
USBインタフェースモジュールのように、そのFIFOバッファのエンプティー状態を超えてリードしようとすると、FIFOバッファのアドレスポインタの値が破壊する虞のあるような周辺回路に着目したとき、上記手段を採用することにより、アドレスポインタ値が破壊する虞等を未然に防止することができる。
【0023】
〔3〕本発明の更に別の観点によるデータプロセッサは、中央処理装置、及びデータ転送制御装置を有する。前記データ転送制御装置は、転送対象アドレスが奇数アドレスのとき、転送単位を最小のデータ数とし、転送対象アドレスが偶数アドレスのとき、転送対象アドレスが転送単位のアドレスインターバルに一致しない状態に応答して転送単位のデータ数を小さくする。更に同様の観点によるデータプロセッサは、中央処理装置、及びデータ転送制御装置を有し、前記データ転送制御装置は転送すべきデータ数を確認し、そのデータ数が転送単位のデータ数よりも小さくなったとき、データ転送の途中で、転送単位のデータ数の小さな転送単位に切換え制御する。
【0024】
上記観点によるデータプロセッサによれば、転送対象アドレスが奇数アドレスのような中途半端なアドレスから始るとき、或は、転送すべきデータ個数が例えば奇数バイトのようなとき、全てのデータ転送を最小単位であるバイト単位で行なうことによってデータ転送効率が悪化する事態を阻止することができる。
【0025】
〔4〕転送すべきデータ数が奇数個などのような半端に数になったときの別の対応とし、中央処理装置及びデータ転送制御装置を有するデータプロセッサにおいて、前記データ転送制御装置は転送すべき残りのデータ数が転送単位のデータ数よりも少ないことを判別して割り込みを要求し、前記中央処理装置はその割り込み要求に応答して、残りのデータ転送を、転送単位のデータ数が少ない転送単位に切換え制御する、という構成を採用してもよい。転送単位の切換え制御対象はデータ転送制御装置であってもよく、また、転送単位を切換えて中央処理装置が残りのデータ転送を制御してもよい。
【0026】
【発明の実施の形態】
図2には本発明に係るデータプロセッサ1の全体が概略的に示される。同図に示されるデータプロセッサ1は、例えばCMOS集積回路製造技術により単結晶シリコンのような1個の半導体基板(半導体チップ)に形成される。
【0027】
データプロセッサ1は、内部バス2に接続された中央処理装置(CPU)3、データトランスファコントローラ(DTC)4、データ転送制御装置(DMAC)5、CPU3の処理プログラムなどを格納するプログラムメモリであるリードオンリメモリ(ROM)7、CPU3の作業領域並びにデータの一時記憶に利用されるランダムアクセスメモリ(RAM)6、除算器8、ダイナミックシフトユニット11、及びバスコントローラ9を備える。前記バスコントローラ9には更に別のデータ転送制御装置(EXDMAC)10接続される。
【0028】
前記内部バス2はバスコントローラ9を介して周辺バス12にインタフェースされ、周辺バス12には、周辺回路として、前記割込みコントローラ13、ウォッチドッグタイマ(WDT)14、USBインタフェース回路15、入出力ポート(PRT)16a〜16n、及びタイマカウンタ(TMR)やシリアルコミュニケーションインタフェースコントローラ(SCI)等のその他の周辺回路17が接続される。データプロセッサ1はその他にクロック発生回路(CPG)20及びPLL回路等21を有する。
【0029】
前記内部バス2及び周辺バス12は夫々、データバス、アドレスバス及びコントロールバス(制御信号バス)を含んでいる。前記周辺バス2は入出力ポート16a〜16cを介して外部バス25とインタフェースされ、内部バス2はバスコントローラ9を介して周辺バス12、更には前記入出力ポート16a〜16cを介して前記外部バス25とインタフェース可能にされる。その他の入出力ポート16d〜16nは周辺回路のための外部インタフェースバッファ等として機能される。
【0030】
データプロセッサ1においてバスマスタモジュールは、前記CPU3、DTC4、DMAC5及びEXDMAC10である。前記CPU3は、例えばROM5から命令をフェッチし、取り込んだ命令を解読する命令制御部と、命令制御部による命令解読結果に従って汎用レジスタや算術論理演算器などを用いて演算処理を行なう実行部とを有する。DMAC5はCPU3により内部バス2を介してデータ転送条件が初期設定され、内蔵周辺回路などからのデータ転送要求に応答して、データ転送制御を行う。DTC4は内蔵周辺回路などからのデータ転送要求に応答してデータ転送制御を行い、データ転送制御条件はRAM6などに格納されたポインタ構造の転送制御データを参照して取得する。前記EXDMAC10は、特に制限されないが、データプロセッサ1の内外でメモリ間又はメモリと入出力回路間に行なうデータ転送、或はデータプロセッサ1の外部でメモリ間又はメモリと入出力回路間に行なうデータ転送を制御する回路として位置付けられる。データ転送制御条件はCPU3により内部バス2及び周辺バス12を介して設定される。詳細は後述するが、EXDMAC10によるデュアルアドレス転送制御にいおいて、転送元からのリードデータを一時的に蓄えるデータバッファとして前記RAM6の一部が用いられる。要するに、EXDMAC10は転送元からリードしたデータを内部に読み込むことを要しない。EXDMAC10はデータ転送制御における転送元及び転送先を指定する為のアドレス信号はDMA専用アドレスバスとしてのアドレスバス26からバスコントローラ9を経由して周辺バス12や外部バス25に伝達される。
【0031】
データプロセッサ1にリセット信号が与えられると、CPU3等のオンチップ回路モジュールはリセット状態とされる。このリセット信号によるリセット状態が解除されると、CPU3は所定のスタートアドレスから命令をリードし、プログラムの実行を開始し、それに従って、例えば、RAM6からデータをフェッチし、フェッチしたデータの演算処理を行い、処理結果に基づいて、USBインタフェース回路15を使用して外部との間のデータ入出力等を行って、各種の機器制御を行う。
【0032】
図1にはEXDMAC10とバスコントローラ9の詳細が例示される。前記内部バス2として内部アドレスバス2A及び内部データバス2Dが例示される。前記外部バス25として外部アドレスバス25A及び外部データバス25Dが例示され、そこには代表的に示された2個のSDRAM45,46が接続される。同図において周辺バス12、入出力ポート16a〜16n及びその他の一部の回路モジュールは図示が省略されている。
【0033】
前記バスコントローラ9は、バスアービタ30によりバスマスタモジュールであるCPU3、DMAC5、DTC4、EXDMAC10及び外部バスマスタとの間のバス権要求の競合に対する調停を行う。BREQ1、BREQ2、BREQ3はバス権要求信号、BACK1,BACK2,BACK3,BACK4はバス権承認信号である。外部バスマスタからのバス権要求信号及び承認信号は図示が省略されている。
【0034】
前記バスアービタ30は、CPU3以外のバスマスタモジュール(DTC4,DMAC5,EXDMAC10)からのバス権要求信号(BREQ1、BREQ2,BREQ3)に対してバス権を選択的に与えるための調停を行う。バス権要求信号を出力したバスマスタモジュールは、バスアービタ30からバス権承認信号(BACK1、BACK2,BACK3の内の1つ)を受け、そして、バス権を取得してバスの使用を開始する。バスを使用していたバスマスタモジュールがバスの使用を終了した場合、上記バスアービタ30は、それを監視して、上記CPU3へバス権承認信号BACK4を出力する。それによって、CPU3がバス権を取得して、バスを利用したデータの処理を行う。このような制御は、バスアービタ30が、CPU3に優先的にバス権を与えることになるので、CPU3による高速なデータ処理が可能となる。
【0035】
一方、図示はされないが、バスーアービタ30からCPU3に対してバス権要求信号を出力するように構成できる。この場合、チップ内に、CPU3以外に他の中央処理装置(CPU)が存在するようなマルチCPU構成の場合に有効である。すなわち、他の中央処理装置がバスアービタ30に対してバス権要求信号を出力した場合、上記バスアービタ30がCPU3にバス要求信号を出力して、CPU3からバス権を解放させる。その後、上記バスアービタ30が他の中央処理装置にバス権承認信号を出力してバス権を与える。他の中央処理装置のデータ処理が完了した場合、バスーアービタ30はCPU3にバス権承認信号BACK4を出力する。それによって、バス権がCPU3に戻される。この場合、他の中央処理装置にも選択的にバス権を与えることができるので、CPU3のデータ処理と他の中央処理装置のデータ処理とを効率よく制御することができる。
【0036】
調停により、バス権が与えられたバスマスタモジュールはアドレス信号やアクセス制御信号などのバスコマンドを出力する。バスコントローラ9はそのバスコマンドの内容に基づいて、アクセスサイクル数及びデータ幅等を決定してバスアクセス制御及びメモリアクセス制御等を行なう。前記バスアクセス制御及びメモリアクセス制御等のために、アドレスエリア毎にマッピングされるデバイスのアクセスデータサイズ及びアクセス速度の情報等がパワーオンリセット直後にCPU3により初期設定されており、内部アドレスバス2A等から供給されるアクセスアドレスのエリアに応じて外部バス等に対するバス制御(デバイスアドレスの出力、データアクセスサイズ、ウェイトステート挿入等)を行う。
【0037】
図1ではメモリアクセス制御を行なう回路として前記RAM6に対するメモリアクセス制御回路31が代表的に示される。メモリアクセス制御回路31はバス権が承認された回路からのアクセス要求に応答して、RAMをアクセス制御する制御信号として、モジュール選択信号MSr、アクセスサイズ信号ASZr、リード信号RDr、及びライト信号WTrをRAM6に出力する。アドレス信号はアドレスバス2Aを介して供給され、データはデータバス2Dに伝達される。
【0038】
前記EXDMAC10は、カウンタ33、転送元と転送先のアドレス信号を前記DMA専用アドレスバス26に出力する転送制御チャネル34、転送制御回路35、及び制御レジスタ部36とを有する。
【0039】
制御レジスタ部36は各種データ転送制御条件がCPU3によってプログラマブルに指定可能にされ、データブロック転送における転送回数が指定される転送回数レジスタ40、RAMの複数エリアをエリア毎に内蔵メモリとして或はEXDMACのデータバッファの何れとして利用するかが指定されるRAMエリアコントロールレジスタ(RAMACR)41、ソーススタートアドレスレジスタ42、及びディスティネーションスタートアドレスレジスタ43等を有する。前記RAMエリアコントロールレジスタ41は図3のレジスタフォーマットを有し、8ビットの制御情報RAM0SEL〜RAM7SELを有する。RAMの記憶容量が8Kバイトのとき、8ビットの制御情報RAM0SEL〜RAM7SELの夫々は、図4に例示されるように論理値“0”で対応するRAMの1Kバイトエリアを内蔵RAMとして利用し、論理値“1”で対応するRAMの1KバイトエリアをEXDMACのデータバッファとして利用することを意味する。これにより、EXDMACのデータバッファとして利用可能なRAMエリアの容量と配置はプログラマブルになる。
【0040】
前記転送制御チャンネル34は、夫々図示を省略する転送元アドレス(ソースアドレス)を指定するソースアドレスレジスタ、転送先アドレス(ディスティネーションアドレス)を指定するディスティネーションアドレスレジスタ、転送回数を計数する転送回数レジスタ、及びアドレス加算器等を有する。ソースアドレス(ディスティネーションアドレス)の初期値は周辺バス12を介してCPU3により初期設定され、初期値のインクリメントは、前記加算器で直前のソースアドレス(又はディスティネーションアドレス)に前記カウンタ30の計数値を加算することによって行われる。ソースアドレス(ディスティネーションアドレス)の初期値はCPU3によって制御レジスタ部36のスタートアドレスレジスタに設定されてからソースアドレスレジスタ(ディスティネーションアドレスレジスタ)にロードされてもよい。
【0041】
前記転送制御回路35は、バスアービタ30にバス権要求信号BREQ1をアサートし、それに応答してバス権承認信号BACK1がアサートされることにより、バス権を獲得して、データ転送制御を開始する。これによりデータのブロック転送を行なうとき、前記転送制御回路35は、転送制御チャネル34に転送元及び転送先に対するアクセスアドレスを指定させ、これに並行してメモリアクセス制御回路31にRAM6をデータバッファとして動作させ、転送元に対するデータリードに並行してそのリードデータを順次RAM6にライトさせ、RAM6にライトされたデータを順次リードして転送先に対するデータライトを実行させる。
【0042】
即ち、上記データのブロック転送を制御するとき、転送制御回路35は、転送制御チャネル34によるアクセス動作に並行して、メモリアクセス制御回路31にデータバッファイネーブル信号BENをアサートして、内部バス2を経由してRAM6をバッファ動作させる指示を与える。RAM6をどれだけバッファとして使用するかはバッファエリア情報BERで指定される。バッファエリア情報BERは、特に制限されないが、RAMエリアコントロールレジスタ41の制御情報RAM0SEL〜RAM7SELとされる。バッファエリア情報BERで指定されるエリアに対するアドレス指定はカウンタ33の出力がバッファアドレスBADRSとしてメモリアクセス制御回路31に与えられる。バッファとしてのRAMアクセスに対するアクセスの種類は、バッファリード信号BRD、バッファライト信号BWT、バッファアクセスサイズ信号BASZによりメモリアクセス制御回路31に与えられる。メモリアクセス制御回路31は、転送制御回路35から入力された前記バッファ制御信号BER,BEN,BWT,BRDを認識し、其れに応答してRAM6に前記メモリ制御信号MSr,ASZr,RDr,WTrを出力し、転送元及び転送先に対するアクセス制御に並行してRAM6をデータバッファとして動作させる。
【0043】
例えば、転送制御チャネル34を介して転送制御回路35が転送元に対するリード動作を行なうとき、これに並行して転送制御回路35は、転送元から内部データバス2Dを介してデータをリードする毎に、RAM6をデータバッファとしてライと動作させる指示をメモリアクセス制御回路31に与えて、繰返しリードデータをRAM6に格納させる。RAM6に対するアドレス指定は、転送元に対するソースアドレスを更新するときに加算されるカウンタ33のインクリメント又はディクリメントによる計数値をバッファアドレス信号BADRSとして用いることにより同期される。メモリアクセス制御回路31は、バッファエリア情報BERで指定されるエリアの先頭アドレスを起点に、バッファアドレス信号BADRSの値を順次加算することで、RAM6に指定されたバッファエリアに対するアクセスアドレス信号をアドレスバス2Aに出力させることができる。転送元に対するリード動作を所定回数行なった後、転送制御チャネル34を介して転送制御回路35が転送先に対するライト動作を行なうとき、これに並行して転送制御回路35は、RAM6のバッファ領域に格納されたデータを順次リードし、ライトすべきデータをデータバス2Dに出力させる。RAM6に対するアクセスをリードからライトアクセスに切換えるときは、カウンタ33は初期値に戻される。RAM6に対するアドレス指定は、転送先に対するディスティネーションアドレスを更新するときに加算されるカウンタ33のインクリメント又はディクリメントによる計数値をバッファアドレス信号BADRSとして用いることにより同期される。メモリアクセス制御回路31は、バッファエリア情報BERで指定されるエリアの先頭アドレスを起点に、バッファアドレス信号BADRSの値を順次加算することで、RAM6に指定されたバッファエリアに対するアクセスアドレス信号をアドレスバス2Aに出力させる。
【0044】
図5にはEXDMAC10によるデータブロック転送制御によるアドレス信号とデータの流れが例示される。ここでは転送元をSDRAM45、転送先をSDRAM46とする。SDRAM45の転送元データはD0〜Dnとされる。SDRAM45に対するソースリードアドレス信号はSA0〜SAnであり、SDRAM46に対するディスティネーションアドレス信号はDA0〜DAnである。RAM6のデータバッファエリア6BUFに対するバッファアクセスアドレス信号はbuf0〜bufnであり、リードとライトで共通である。
【0045】
前記RAM6上におけるデータバッファエリア6BUFの大きさと配置は前記制御情報RAM0SEL〜RAM7SELの値によってプログラマブルに決定される。CPU3のワーク領域と競合しない範囲でそのエリアと大きさを決定すればよい。データバッファが比較的大きければ、ブロックデータの転送に際して、転送元に対するリードの繰返し回数と転送先に対するライトの繰返し回数を最大限に多くすることができる。
【0046】
図6には図5に例示されるデータブロック転送の動作タイミングが例示される。転送元に対するリード動作においてアドレスバス2Aへのソースアドレス信号SA0〜SAnの出力とアドレスバス26へのデータバッファエリア6BUFのライトアドレス信号buf0〜bufnの出力が並列化され、順次連続的にRAM6のデータバッファエリア6BUFに転送元からのリードデータD0〜Dnが格納される。このとき、先頭のソースアドレスSA0はSDRAM45に対して実質的にローアドレスとカラムアドレスを指定し、後続のソースアドレスSA1〜SAnはSDRAM45に対して先頭と同一のローアドレスに対して実質的にカラムアドレスが相違されたアドレス信号とされる。したがって、SDRAM45は第2番目以降のソースアドレスに対するソースデータのリードアクセスではワード線選択の為の動作を要せず、先頭よりも短いサイクルで順次データのリードを繰返し行なうことができる。書き込みも同様であり、先頭のディスティネーションアドレスDA0はSDRAM46に対して実質的にローアドレスとカラムアドレスを指定し、後続のディスティネーションアドレスDA1〜DAnはSDRAM46に対して先頭と同一のローアドレスに対して実質的にカラムアドレスが相違されたアドレス信号とされる。したがって、SDRAM46は第2番目以降のディスティネーションアドレスに対するデータのライトアクセスではワード線選択の為の動作を要せず、先頭よりも短いサイクルで順次データのライトを繰返し行なうことができる。そのような短いサイクルによる転送元のリード動作と転送先のライト動作は、データバッファエリア6BUFの記憶容量が許す範囲で、転送回数を上限に連続させるのが、最も効率的である。この意味において、データバッファエリア6BUFの記憶容量はプログラマブルであるから、データプロセッサの適用システムに応じてデータバッファエリアに最適な記憶容量を設定することができるという、自由度が保証される。
【0047】
図7には本発明に係るデータプロセッサの第2の例が示される。同図に示されるデータプロセッサ1Aは、図1及び図2の構成に対し、転送制御チャネル34はアクセスアドレス信号を内部バス2Aに出力し、RAM6のデータバッファエリア6BUFに対するアクセスアドレス信号はメモリ制御回路31からバッファアクセス専用のアドレスバス(バッファアドレスバス)50を介してRAM6に供給するように構成される点が相違される。要するに、ソースアドレス信号及びディスティネーションアドレス信号、更にはバッファアドレス信号の生成手法は図1の場合と同じであり、アドレス信号をRAM6に供給する経路が相違される。この例では、RAM6はアドレス入力ポートを2個持っており、双方のアドレス入力ポートを並列に用いることはないから、排他的に何れか一方のアドレス入力ポートを内部に接続する入力選択回路を持てば良い。前記モジュール選択信号を2ビット用意し、その1ビットにアドレス入力ポートの選択機能を割当てればよい。データバッファイネーブル信号BENによりバッファイネーブルが指示されたときメモリアクセス制御回路31はアドレスバス50からのアドレス入力を選択すればよい。その他の構成は図1と同様でありその詳細な説明は省略する。
【0048】
図7のデータプロセッサ1Aによれば、転送制御回路35はデータのブロック転送を制御するとき、前記カウンタ33の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バスコントローラ9にバッファアドレスバス50を介するRAMに対するアクセスを指示する。この指示を受けるバスコントローラ9のメモリ制御回路31は、前記カウンタ33の計数値を用いて前記バッファアドレスバス50にバッファアドレス信号を出力して、転送元に対する前記内部バス2を用いたリード転送制御に並行して転送元からのリードデータを前記RAM6のデータバッファエリア6BUFにライトする。更に、転送先に対する前記内部バス2を用いたライト転送制御に並行して転送先にライトすべきデータを前記データバッファエリア6BUFからデータバス2Dに出力させるバス制御を行なう。これにより、データブロック転送に際して図1のデータプロセッサ1と同様の効果を得ることができる。
【0049】
図8には図1のデータプロセッサにおけるEXDMAC10とUSBインタフェース回路15との関係に着目した詳細が例示される。
【0050】
前記USBインタフェース回路15はFIFOバッファ60、ホストインタフェース回路61、制御レジスタ62、及びインタフェース制御回路63を有する。ホストインタフェース回路61はホスト装置65との間におけるシリアルデータ入出力を制御する。入出力すべきデータはFIFOバッファ60に一時的に蓄える。FIFOバッファ60のアクセス制御はバッファポインタ66で行なう。バッファポインタ66はリングカウンタとしてのリードアドレスポインタ及びライトアドレスポインタを有し、FIFO形式でデータリードとライトを行なう。インタフェース制御回路63は内部バス63とEXDMAC10に接続され、アドレスバス2Aからのバスコマンドに応答して内部バス2との間でデータを入出力する際に、EXDMAC10にデータ転送リクエスト信号DREQによりデータ転送を要求し、転送アクノリッジ信号DACKによる転送リクエストの承認を待って、入出力すべきデータをデータバス2Dに出力し又はデータバス2Dから入力する。EXDMAC10はデータ転送リクエスト信号DREQによるデータ転送要求があると、バスコントローラ9にバス権用要求信号BREQ1によりバス権を要求し、バス権承認信号BACK1にてバス権が与えられるのを待って、前記転送アクノリッジ信号DACKにより転送リクエストに対して承認する。EXDMAC10はUSBインタフェース回路15に転送リクエストを承認すると、その転送リクエストに応答する転送アドレス信号を転送制御チャネル34からバスコントローラ9に出力し、例えばSDRAM45からUSBインタフェース回路15へ、或はその逆のデータ転送が開始される。このとき前述の如く、RAM6の一部(データバッファエリア6BUF)はEXDMAC10のデータバッファとして利用されることは前述の通りであり、その詳細についての説明は省略する。
【0051】
ここで、前記EXDMAC10は、USBインタフェース回路15をデータ転送元とするデータ転送制御を行なうとき、USBインタフェース回路15のFIFOバッファ60が保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なう。ここでデータ数とは、FIFOバッファにおいてはデータのアクセス最小単位の倍数を意味し、EXDMAC10においてはデータ転送最小単位に対する倍数即ち転送回数を意味する。以下の説明ではEXDMAC10におけるデータ転送単位はFIFOバッファにおけるデータのアクセス単位に等しいものとする。例えば前記転送単位とアクセス単位を転送最小単位及びアクセス最小単位であるバイト単位で把握し、前記データ数と転送回数は等しいものとして説明を行なう。例えば、転送制御回路35の比較選択回路67は、バッファポインタ66により管理されているFIFOバッファ60の記憶データ数と転送回数レジスタ40の設定値を比較し、後者が前者を超える場合には前者を、それ以外の場合には後者をカウンタ33の初期値としてプリセットする。転送制御回路35はプリセットされた回数だけデータ転送を繰返すように制御する。
【0052】
図9にはUSBインタフェース回路からSDRAMへのデータブロック転送の動作タイミングが例示される。バッファポインタ66から得られるバッファ記憶データ数は“n”、レジスタ40に設定された転送回数の初期値は“n+α”とされる。比較選択回路67が双方を比較し、カウンタ33への初期値として“n”をロードする。EXDMAC10は転送元であるUSBインタフェース回路15に当該モジュールの選択を意味するアドレス信号EP1を供給し、それによってデータバス2Dに、FIFOバッファ60から順次データを出力させる。出力されたn個のデータD0〜Dn−1は前述のようにしてRAM6のデータバッファエリア6BUFに一時的に蓄えられる。結果として、FIFOバッファに対するリード動作は其れが保持するデータ数を超えない。従って、USBインタフェースモジュールのように、そのFIFOバッファのエンプティー状態を超えてリードしようとすると、FIFOバッファのアドレスポインタの値が破壊する虞のあるような周辺回路において、アドレスポインタ値が破壊する虞等を未然に防止することができる。次に、EXDMAC10は転送先であるSDRAM45にディスティネーションアドレス信号DA0〜DAn−1を供給するのと並行してRAM6のデータバッファエリア6BUFから前記データD0〜Dn−1をリードてデータバス2Dに乗せ、これによってデータD0〜Dn−1がSDRAM45に格納される。
【0053】
また、図8のEXDMAC10において、転送制御回路35は、FIFOバッファ60が保有するデータ数に代表される転送すべきデータ数を確認して、そのデータ数がデータ転送単位よりも少なくなったとき、データ転送の途中で、転送単位のデータ数の少ない方の転送単位に切換え制御する。データ数の確認はバッファポインタ66の値から、或はカウンタ33の計数値に基づいて行なえばよい。転送単位は例えばロングワード(32ビット)、ワード(16ビット)、バイト(8ビット)である。転送単位を切換えると、カウンタ33のインクリメント数、転送データのサイズ、RAM6のデータバッファエリア6BUFに対するアクセスサイズなどが変更になる。
【0054】
図10には転送途中で転送単位を切換えてUSBインタフェース回路からSDRAMへデータブロック転送を行なうときの動作タイミングが例示される。バッファポインタ66から得られるバッファ記憶データ数は“9”、レジスタ40に設定された転送回数の初期値は“12”とされる。比較選択回路67が双方を比較し、カウンタ33への初期値として“9”をロードする。EXDMAC10は転送元であるUSBインタフェース回路15に当該モジュールの選択を意味するアドレス信号EP1を供給し、それによってデータバス2Dに、FIFOバッファ60から順次データを出力させる。転送サイズの初期値はロングワードである。転送制御回路35は最初にロングワードデータD0123、次にロングワードデータD4567をデータバス2Dに出力させる。この時点でのFIFOバッファ60の残りデータはD8の1個であり、転送制御回路35がFIFOバッファ60が保有するデータが転送単位(ロングワード)よりも小さくなったことを検出すると、其れに応じて、最後の転送単位のデータ数をバイトとして、当該データD8をデータバス2Dに出力する。順次出力されたデータD0123、D4567、D8は前述の通り順次RAM6のデータバッファエリア6BUFに格納される。
【0055】
転送先へのデータ転送制御では、最初の転送先アドレスは偶数アドレスDA0である。従って、データ転送サイズは初期値のロングワードとされ、RAM6から順次ロングワードデータD0123,D4567がデータバス2Dに出力され、転送先にライトされる。転送制御回路35は転送すべきデータ数が転送単位であるロングワードよりも小さくなったことを検出すると、それに応じて、最後の転送単位のデータ数をバイトとして、当該データD8をRAM6からデータバス2Dに出力する。上述の如く、上記データ転送では転送元はメモリではなくUSBのような入出力回路であるから転送元アドレスに対する偶奇の制御は不意用であるが、転送先はSDRAMのようなメモリであるから転送先アドレスに対する偶奇を考慮している。
【0056】
これにより、転送すべきデータ個数が例えば奇数バイトのようなとき、全てのデータ転送を最小単位であるバイト単位で行なうことを要せず、データ転送効率が悪化する事態を阻止することができる。
【0057】
図11には転送途中で転送単位を切換えてUSBインタフェース回路からSDRAMへデータブロック転送を行なうときの別の動作タイミングが例示される。図11の例は、図10に対して転送先アドレスが奇数アドレスから始っている点が相違する。転送元であるUSBからのリード動作は図10と同様であり、ロングワード、ロングワード、バイトの順にデータ転送単位が切換えられて、データD9〜D17がRAM6のデータバッファエリア6BUFに一時的に蓄積される。
【0058】
転送先へのデータ転送制御では、最初の転送先アドレスは奇数アドレスDA9である。転送単位の初期値はロングワードである。データ転送制御回路35は、転送対象アドレスが奇数アドレスであるから転送単位を最小のデータ数とし、転送先への最初の転送はバイトデータD9に対して行なう。この時点で次の転送先アドレスはDA10で偶数アドレスであるが、転送単位であるロングワードのアドレスインターバルに一致していない。即ち、そのアドレスインターバルに一致するアドレスはDA0,DA4,DA8,DA12等の4の倍数のアドレスである。これにより、データ転送制御回路35は、その転送先アドレスに応じて転送単位のデータ数をワードに変更して、次の転送先アドレスDA10にワードデータをD10−11(D10、D11)を転送する。この次の転送先アドレスはDA12となり、偶数アドレスで且つ転送単位であるロングワードのアドレスインターバルに一致する。よって、データ転送制御回路35は、今度は、転送単位のデータ数をロングワードに変更して、当該次の転送先アドレスDA12にロングワードデータをD12−15を転送する。最後はデータ数が“2”であるから、転送単位のデータ数をワードに変更し、最後の転送先アドレスDA16にワードデータをD16−17を転送する。
【0059】
これにより、転送すべきデータ個数が例えば奇数バイトであって、転送先アドレスも奇数アドレスから始るようなときでも、全てのデータ転送を最小単位であるバイト単位で行なわずに済み、高いデータ転送効率を実現することが可能になる。
【0060】
図12にはブロックデータのメモリ間転送の例が示される。転送サイズ初期値はロングワードである。転送回数初期値は7、データブロックサイズは8であり、例えば転送回数初期値が優先され、カウンタ33の初期値とされる。転送元アドドレスは偶数アドレスSA0を起点とし、転送制御回路35により、最初はロングワードでリードが行われ、残りデータ数に応じて、転送単位が順次ワード、バイトに変化される。転送元からのリードデータは前述と同様に準じRAM6のデータバッファエリア6BUFに一時的に蓄積される。転送先の先頭アドレスも偶数アドレスDA0であり、転送制御回路35により、RAM6が一時的に保有する転送すべきデータは、最初はロングワードで転送先に転送され、残りデータ数に応じて、転送単位が順次ワード、バイトに変化される。
【0061】
特にこの例では、データ転送単位を変更するとき、データ転送制御回路35はCPU3に割込み信号IRQを出力することが可能である。前記制御レジスタ36に割込みイネーブルビット(図示せず)が設けられ、セット状態のときに、前記割込み信号IRQを出力することができる。実際には割り込み信号IRQは割り込みコントローラ13を介する。これによってCPU3は、割り込み処理プログラムで規定される処理を行なうことができる。例えば、データ転送単位を変更する為に、EXDMAC10に対するデータ転送制御条件を設定変更する必要がある場合には、CPU3がそれを行なうことができる。今までの説明ではそのような設定変更は転送制御回路35の制御論理で行なっていた。このような制御をCPU3に任せることも可能であるということである。その場合には、バス権の移動、CPU3の命令実行順序変更に伴う状態保存などの付帯処理が必要になることから、図12に示すタイミングチャートにおいて、リードサイクル及びライトサイクルに前記付帯処理のためのサイクル(図示せず)が介在されることになる。更に、図示は省略するが、転送単位を変更するときCPU3が割り込みを受付けたとき、それ以降のデータ転送をCPU3が制御する選択も可能である。例えば、CPU3は、必要なデータ転送制御情報をEXDMAC10等から取得し、続きのデータ転送をバイト単位で継続する。途中でデータ転送単位を変更すべき事象の発生が例外的であると位置付ける処理もしくはシステムにおいては、そのような事象の発生に応答してCPU3がエラー処理若しくは例外処理を行なうことを要する場合も想定される。このような場合にも対応可能になる。
【0062】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0063】
例えば、データプロセッサが内蔵する回路モジュールは図2に限定されず適宜変更可能である。また、データプロセッサは複数のデータ転送制御装置を内蔵する構成に制限されない。本発明に係るデータ転送制御装置はデータプロセッサ内部の回路モジュール間のデータ転送も制御する機能を備えることは妨げられない。
【0064】
本発明に係るデータプロセッサが備えるデータ転送制御装置は上記EXDMACと称した構成及びその称呼に限定されず適宜変更可能である。また、図3及び図4に基づいて説明したRAMの容量及びRAMエリアコントロールレジスタ41のサイズは一例であり適宜変更可能である。
【0065】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータのようなデータプロセッサに適用した場合について説明したが本発明はそれに限定されず、CPUやデータ転送制御装置等を含むシステムオンチップ形態の特定用途向けのデータプロセッサなどにも広く適用することができる。データプロセッサの語はマイクロコンピュータ、マイクロプロセッサ、或はデータ処理装置等と同義である。
【0066】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0067】
すなわち、物理的な回路規模を殆ど増やすこと無くブロックデータの転送効率を向上させることができる。
【0068】
DMACによる連続データ転送回数と周辺回路が許容する連続データ転送回数との矛盾を解消させることができる。
【0069】
転送すべきデータ数と転送単位との間の矛盾への対応、更には奇数アドレスを転送先とするデータ転送への対応が可能になる。
【図面の簡単な説明】
【図1】本発明に係るデータプロセッサのEXDMACとバスコントローラの詳細がを例示するブロック図である。
【図2】本発明に係るデータプロセッサの全体を概略的に例示するブロック図である。
【図3】RAMエリアコントロールレジスタのレジスタフォーマット図である。
【図4】EXDMACのデータバッファとして利用可能なRAMエリアの容量と配置を例示する説明図である。
【図5】EXDMACによるデータブロック転送制御によるアドレス信号とデータの流れを例示するブロック図である。
【図6】図5に例示されるデータブロック転送の動作タイミングを例示するタイミングチャートである。
【図7】本発明に係るデータプロセッサの第2の例を示すブロック図である。
【図8】図1のデータプロセッサにおけるEXDMACとUSBインタフェース回路との関係に着目した詳細を例示するブロック図である。
【図9】USBインタフェース回路からSDRAMへのデータブロック転送の動作タイミングを例示するタイミングチャートである。
【図10】転送途中で転送単位を切換えてUSBインタフェース回路からSDRAMへデータブロック転送を行なうときの動作タイミングを例示するタイミングチャートである。
【図11】転送途中で転送単位を切換えてUSBインタフェース回路からSDRAMへデータブロック転送を行なうときの別の動作タイミングを例示するタイミングチャートである。
【図12】ブロックデータのメモリ間転送を動作を例示するタイミングチャートである。
【符号の説明】
1,1A データプロセッサ
2 内部バス
2A アドレスバス
2D データバス
3 中央処理装置(CPU)
6 ランダムアクセスメモリ(RAM)
9 バスコントローラ
10 データ転送制御装置(EXDMAC)
12 周辺バス
15 USBインタフェース回路
25 外部バス
26 DMA専用アドレスバス
30 バスアービタ
31 メモリアクセス制御回路
33 カウンタ
34 転送制御チャネル
35 転送制御回路
36 制御レジスタ部
40 転送回数レジスタ
41 RAMエリアコントロールレジスタ
BEN データバッファイネーブル信号
BER バッファエリア情報
BADRS バッファアドレス
SA0〜SAn ソースアドレス信号
DA0〜DAn ディスティネーションアドレス信号
D0〜Dn 転送データ
buf0〜bufn バッファアクセスアドレス信号
50 バッファアドレスバス
60 FIFOバッファ
61 ホストインタフェース回路
63 インタフェース制御回路
66 バッファポインタ
67 比較選択回路
IRQ 割り込み信号

Claims (16)

  1. 中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを1個の半導体チップに含むデータプロセッサであって、
    前記データ転送制御装置は、転送元からのデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能とされ、
    前記中央処理装置は前記データ転送制御に利用するランダムアクセスメモリのエリアをプログラマブルに指定可能であることを特徴とするデータプロセッサ。
  2. 中央処理装置、データ転送制御装置、及び前記中央処理装置とデータ転送制御装置によりアクセス可能なランダムアクセスメモリを1個の半導体チップに含むデータプロセッサであって、
    前記データ転送制御装置は、転送元及び転送先アドレスを指定したデータ転送制御において、転送元に対するリードアドレスの指定に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトするバッファライトアドレスを指定し、転送先に対するライトアドレスの指定に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバッファリードアドレスを指定する、ことを特徴とするデータプロセッサ。
  3. 前記転送元に対するリードアドレスのアドレス信号と前記転送先に対するライトアドレスのアドレス信号の伝達に用いる第1アドレス信号線と、前記バッファライトアドレスのアドレス信号と前記バッファリードアドレスのアドレス信号の伝達に用いる第2アドレス信号線とを別々に有することを特徴とする請求項2記載のデータプロセッサ。
  4. 前記第1アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるバスであり、前記第2アドレス信号線は前記ランダムアクセスメモリに接続するバッファ用アドレスバスであることを特徴とする請求項3記載のデータプロセッサ。
  5. 前記第1アドレス信号線はデータ転送制御装置用アドレスバスであり、前記第2アドレス信号線は前記ランダムアクセスメモリ及び中央処理装置が接続する共通内部バスに含まれるアドレスバスであることを特徴とする請求項3記載のデータプロセッサ。
  6. 前記データ転送制御装置は、転送元から転送先へ複数回データ転送を行なうとき、転送元からデータリードを複数回繰返してリードデータを前記ランダムアクセスメモリにライトし、前記ランダムアクセスメモリにライトされたデータを順次リードして転送先アドレスにライトするデータ転送制御が可能であることを特徴とする請求項2記載のデータプロセッサ。
  7. 前記データ転送制御装置は、前記データ転送制御におけるデータ転送の繰返し回数を中央処理装置によりプログラマブルに指定可能とする第1制御レジスタ手段を有することを特徴とする請求項6記載のデータプロセッサ。
  8. 前記データ転送制御装置は、前記データ転送制御に利用するランダムアクセスメモリのエリアを中央処理装置によりプログラマブルに指定可能とする第2制御レジスタ手段を有することを特徴とする請求項6又は7記載のデータプロセッサ。
  9. 中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バスと、前記内部バスとは独立して前記バス制御回路と前記ランダムアクセスメモリを接続するバッファアドレスバスと、を1個の半導体チップに含むデータプロセッサであって、
    前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記内部バスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路にバッファアドレスバスを介するランダムアクセスメモリに対するアクセスを指示し、
    前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて前記バッファアドレスバスにバッファアドレス信号を出力して、転送元に対する前記内部バスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記内部バスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう、ことを特徴とするデータプロセッサ。
  10. 中央処理装置と、データ転送制御装置と、前記中央処理装置及びデータ転送制御装置によりアクセス可能なランダムアクセスメモリと、前記中央処理装置及びデータ転送制御装置からのアクセス指示に応答して内外のバス制御を行なうバス制御回路と、前記中央処理装置、データ転送制御装置、ランダムアクセスメモリ、及びバス制御回路が共有する内部バスと、前記内部バスとは独立して前記バス制御回路と前記データ転送制御装置を接続するDMA用アドレスバスと、を1個の半導体チップに含むデータプロセッサであって、
    前記データ転送制御装置は、カウンタ手段と、転送元及び転送先のアドレス信号を前記DMA用アドレスバスに出力する転送制御チャネルと、制御回路とを有し、前記制御回路はデータのブロック転送を制御するとき、前記カウンタ手段の計数値を用いて転送元及び転送先のアドレスを更新すると共に、前記バス制御回路に内部バスを介するランダムアクセスメモリに対するアクセスを指示し、
    前記バス制御回路は、前記ランダムアクセスメモリに対するアクセスの指示を受けたとき、前記カウンタ手段の計数値を用いて内部バスにバッファアドレス信号を出力して、転送元に対する前記DMA用アドレスバスを用いたリード転送制御に並行して転送元からのリードデータを前記ランダムアクセスメモリにライトし、転送先に対する前記DMA用アドレスバスを用いたライト転送制御に並行して転送先にライトすべきデータを前記ランダムアクセスメモリからリードするバス制御を行なう、ことを特徴とするデータプロセッサ。
  11. 中央処理装置、データバッファを持つ周辺回路、及びデータ転送制御装置を有し、
    前記データ転送制御装置は前記周辺回路をデータ転送元とするデータ転送制御を行なうとき、前記周辺回路のバッファが保有するデータ数を確認して、そのデータ数を超えない範囲でデータ転送制御を行なうことを特徴とするデータプロセッサ。
  12. 中央処理装置、及びデータ転送制御装置を有し、
    前記データ転送制御装置は、転送対象アドレスが奇数アドレスのとき、転送単位を最小のデータ数とし、
    転送対象アドレスが偶数アドレスのとき、転送対象アドレスが転送単位のアドレスインターバルに一致しない状態に応答して転送単位のデータ数を小さくすることを特徴とするデータプロセッサ。
  13. 中央処理装置、及びデータ転送制御装置を有し、
    前記データ転送制御装置は転送すべきデータ数を確認し、そのデータ数が転送単位のデータ数よりも小さくなったとき、データ転送の途中で、転送単位のデータ数の小さな転送単位に切換え制御することを特徴とするデータプロセッサ。
  14. 中央処理装置、及びデータ転送制御装置を有し、
    前記データ転送制御装置は転送すべき残りのデータ数が転送単位のデータ数よりも少ないことを判別して割り込みを要求し、
    前記中央処理装置はその割り込み要求に応答して、残りのデータ転送を、転送単位のデータ数の小さな転送単位に切換え制御することを特徴とするデータプロセッサ。
  15. 転送単位の切換え制御対象はデータ転送制御装置であることを特徴とする請求項14記載のデータプロセッサ。
  16. 転送単位を切換えて中央処理装置が残りのデータ転送を制御することを特徴とする請求項14記載のデータプロセッサ。
JP2002181073A 2002-06-21 2002-06-21 データプロセッサ Pending JP2004029898A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002181073A JP2004029898A (ja) 2002-06-21 2002-06-21 データプロセッサ
US10/453,545 US7310717B2 (en) 2002-06-21 2003-06-04 Data transfer control unit with selectable transfer unit size
KR10-2003-0039772A KR20030097700A (ko) 2002-06-21 2003-06-19 데이터 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002181073A JP2004029898A (ja) 2002-06-21 2002-06-21 データプロセッサ

Publications (1)

Publication Number Publication Date
JP2004029898A true JP2004029898A (ja) 2004-01-29

Family

ID=29728278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002181073A Pending JP2004029898A (ja) 2002-06-21 2002-06-21 データプロセッサ

Country Status (3)

Country Link
US (1) US7310717B2 (ja)
JP (1) JP2004029898A (ja)
KR (1) KR20030097700A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288112A (ja) * 2001-03-27 2002-10-04 Hitachi Ltd 通信制御用半導体装置およびインタフェースシステム
JP2006031227A (ja) * 2004-07-14 2006-02-02 Oki Electric Ind Co Ltd Dma転送を用いたコンピュータシステム
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7904614B1 (en) * 2006-06-27 2011-03-08 Marvell International Ltd. Direct memory access controller with multiple transaction functionality
JP2008192264A (ja) * 2007-02-07 2008-08-21 Nec Electronics Corp 半導体記憶装置
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
WO2009037798A1 (ja) * 2007-09-21 2009-03-26 Mitsubishi Electric Corporation データ転送装置及びデータ転送方法
US8904062B2 (en) * 2011-06-30 2014-12-02 Mcci Corporation Network control model driver
CN114328311A (zh) * 2021-12-15 2022-04-12 珠海一微半导体股份有限公司 一种存储控制器架构、数据处理电路及数据处理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61125641A (ja) * 1984-11-22 1986-06-13 Hitachi Ltd デ−タ圧縮制御方式
JPH03134750A (ja) 1989-10-20 1991-06-07 Tokyo Electric Co Ltd Dmaデータ転送装置
JPH1185670A (ja) 1997-09-09 1999-03-30 Hitachi Ltd マイクロコンピュータ及びデータ処理システム
JP3494041B2 (ja) * 1998-10-27 2004-02-03 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2001154977A (ja) 1999-11-30 2001-06-08 Hitachi Ltd データプロセッサ及びデータ処理システム
JP3870717B2 (ja) * 2001-05-14 2007-01-24 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4686104B2 (ja) * 2002-04-22 2011-05-18 富士通セミコンダクター株式会社 Dmaコントローラ

Also Published As

Publication number Publication date
US20030236941A1 (en) 2003-12-25
KR20030097700A (ko) 2003-12-31
US7310717B2 (en) 2007-12-18

Similar Documents

Publication Publication Date Title
US5655151A (en) DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5805927A (en) Direct memory access channel architecture and method for reception of network information
US20050210221A1 (en) Microcomputer and microcomputer system
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
US7260667B2 (en) Data transfer device, semiconductor integrated circuit, and microcomputer
JP4499008B2 (ja) Dma転送システム
JP2004029898A (ja) データプロセッサ
JP2004118252A (ja) 半導体データ処理装置
JP7468112B2 (ja) インタフェース回路およびインタフェース回路の制御方法
JP2005165508A (ja) ダイレクトメモリアクセスコントローラ
EP0426156B1 (en) Floppy disk controller with DMA verify operations
WO2000025205A1 (en) Controlling access to a primary memory
WO2002093392A1 (fr) Processeur de donnees
JP3708902B2 (ja) 半導体装置
JP3206656B2 (ja) バス上でのプリフェッチ装置およびプリフェッチ方法
JPH06131294A (ja) データ転送装置
JP2003345649A (ja) データ処理装置及びデータ記録媒体
JP4642398B2 (ja) 共有バス調停システム
JP2004213142A (ja) 半導体集積回路装置
JP2004145593A (ja) ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法
JP2002073533A (ja) データ処理装置
JP2002073534A (ja) データ転送装置
JPH04109351A (ja) Dmaコントローラ
JP2004110742A (ja) Dmaコントローラ
JP2000047930A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090707