JP3619532B2 - 半導体集積回路装置 - Google Patents
半導体集積回路装置 Download PDFInfo
- Publication number
- JP3619532B2 JP3619532B2 JP27801193A JP27801193A JP3619532B2 JP 3619532 B2 JP3619532 B2 JP 3619532B2 JP 27801193 A JP27801193 A JP 27801193A JP 27801193 A JP27801193 A JP 27801193A JP 3619532 B2 JP3619532 B2 JP 3619532B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- address
- data transfer
- output
- 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.)
- Expired - Fee Related
Links
Images
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/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
Description
【産業上の利用分野】
本発明は、半導体集積回路装置に関し、特に中央処理装置とデータ転送装置を内蔵したシングルチップマイクロコンピュータに利用して良好な半導体集積回路装置に適用して有効な技術に関する。
【0002】
【従来の技術】
たとえば、シングルチップマイクロコンピュータは、昭和59年11月30日、(株)オーム社発行の「LSIハンドブック」P540〜541に記載されるように、中央処理装置(CPU)を中心にしてプログラム保持用のROM(リードオンリメモリ)、データ保持用のRAM(ランダムアクセスメモリ)、およびデータの入出力を行うための入出力回路などの機能ブロックが一つの半導体基板上に形成されている。
【0003】
このようなシングルチップマイクロコンピュータに、ダイレクトメモリアクセスコントローラ(DMAC)を内蔵し、CPUとは独立にデータ転送を内蔵したものに、平成5年3月、(株)日立製作所発行の「H8/3003 ハードウェアマニュアル」などがある。
【0004】
このDMACは、割り込み要求によって起動でき、リピートモード、ブロック転送モードなどを行うことができ、ステッピングモータの制御やプリンタの印字データ制御に好適であり、この例では最大8チャネルの転送を行うことができる。このDMACの転送はCPUと独立しているために、データ転送に必要なバスサイクルのみCPUを停止すればよく、CPUは、前記バスサイクル以外は実行中の処理を継続できる。
【0005】
たとえば、RAMから入出力回路にバイトデータの転送で転送元・転送先アドレスをインクリメントする場合、RAMのアクセスを2ステート、入出力回路のアクセスを3ステートとして、前記の例では、デッドサイクル1ステートを含めて、データ転送6ステートである。なお、シングルチップマイクロコンピュータまたは半導体集積回路装置の基準クロックの1周期をステートとする。
【0006】
しかしながら、このようなDMACは、転送元アドレス、転送先アドレス、転送カウンタ、制御レジスタを各チャネルに持つために、多数のチャネルのデータ転送を行おうとすれば、前記レジスタを多数組設けなければならず、DMACの、ひいては半導体集積回路装置全体の論理的・物理的規模を増大させてしまう。さらに、規模の増大は製造費用を増大させてしまう。換言すれば、適当な規模あるいは製造費用で、割り込み要因の全て、あるいは大多数のデータ転送を行うことは困難である。
【0007】
また、アドレス指定レジスタのビット数を制限することによって、チャネル数を増加することを可能にしているが、これは転送に必要なメモリまたはレジスタを局所的に配置する必要があり、使い勝手を低下させ、あるいは十分な入出力回路を内蔵してデータ転送を行うことを困難にしてしまう。
【0008】
一方、このようなレジスタを、記憶密度が高い汎用のRAM上に配置し、論理的、物理的規模の増大を防いだデータ転送装置、いわゆるデータトランスファコントローラ(DTC)を内蔵したものに、昭和63年12月、(株)日立製作所発行の「H8/532 ハードウェアマニュアル」などがある。このDTCでは、実質的に全ての割り込み要因によってデータ転送を行うことができる。
【0009】
【発明が解決しようとする課題】
ところが、前記のようなDTCを内蔵した技術においても、転送情報を保持するレジスタを汎用のRAM上に配置したために、データ転送に先だって、このレジスタをDTCに読み込み、この読み込んだ内容に従ってデータ転送を行い、さらにデータ転送によって更新されたレジスタ情報をRAMに退避する必要があり、データ転送に比較して大きな時間をレジスタの読み込み、退避に費やしてしまうという問題が生じる。
【0010】
従って、この期間はCPUを停止しなければならず、このためにシングルチップマイクロコンピュータまたは半導体集積回路装置全体の処理効率を低下させてしまう。たとえば、バイトデータの転送で転送元、転送先アドレスをインクリメントする場合、前記の例ではデータ転送5ステートに対して、レジスタの読み込み、退避に30ステートを要し、合計35ステートの期間CPUは停止することになる。
【0011】
そこで、本発明の目的は、物理的、論理的規模の増大を最小限とし、多数の割り込みによるデータ転送を可能とし、かつ処理効率を向上させることができる半導体集積回路装置、特に中央処理装置とデータ転送装置を内蔵したシングルチップマイクロコンピュータを提供することにある。
【0012】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【0013】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
【0014】
すなわち、本発明における請求項1記載の半導体集積回路装置は、データ処理装置、データ転送装置、バス制御手段およびデータ入出力手段を有する半導体集積回路装置であって、第1、第2の記憶手段が接続可能とされ、データ処理装置、バス制御手段および第1の記憶手段が第1のバスにより相互に接続され、かつデータ転送装置、バス制御手段、第2の記憶手段およびデータ入出力手段が第2のバスにより相互に接続され、バス制御手段は第1のバスと第2のバスとを接続するか否かを選択するものである。
【0015】
また、請求項6記載の半導体集積回路装置は、データ処理装置と、このデータ処理装置の実行するプログラムを内蔵した第3の記憶手段と、データ処理装置の作業領域となる第1の記憶手段と、データ処理装置、第3の記憶手段および第1の記憶手段を接続する第1のバスと、データ転送装置と、このデータ転送装置のデータ転送情報を格納する第2の記憶手段と、データ転送装置の起動を要求することができるデータ入出力手段と、データ転送装置、第2の記憶手段およびデータ入出力手段を接続する第2のバスと、この第1のバスと第2のバスとを接続可能とするバス制御手段とを有するものである。
【0016】
さらに、請求項8記載の半導体集積回路装置は、データ処理装置を有する半導体集積回路装置であって、データ処理装置のアドレス空間上に、複数の記憶手段と、データ入出力手段とを配置可能とし、さらにデータ転送装置を有し、複数の記憶手段およびデータ入出力手段の内の少なくとも1つ以上を、データ処理装置とデータ転送装置とが並列して読み出しまたは書き込むことを可能とし、データ転送装置が複数の記憶手段を読み出しまたは書き込む第2のバスを有し、データ処理装置は、第2のバスを利用せずに、複数の記憶手段とは別の記憶手段を読み出しまたは書き込むための第1のバスを有するものである。
【0017】
また、請求項9記載の半導体集積回路装置は、データ転送装置を有する半導体集積回路装置であって、データ転送装置が行うデータ転送のアドレス、データ、転送データ数または転送方法の内の少なくとも1つ以上の情報を記憶手段に格納可能とし、この少なくとも1つ以上の情報には、データ転送装置の1回の動作で複数組の少なくとも1つ以上の情報によるデータ転送を指定可能な情報を含むものである。
【0018】
【作用】
前記した請求項1記載の半導体集積回路装置によれば、第1のバスによってデータ処理装置、バス制御手段および第1の記憶手段が接続され、かつ第2のバスによってデータ転送装置、バス制御手段、第2の記憶手段およびデータ入出力手段が接続される場合に、この第1のバスと第2のバスとの接続がバス制御手段によって選択されることにより、接続を行なわないときには、データ処理装置の第1のバスを使用した読み出しまたは書き込みと、データ転送装置の第2のバスを使用した読み出しまたは書き込みとを並行して行うことができる。
【0019】
すなわち、データ処理装置の使用するバスとデータ転送装置の使用するバスを分離可能とし、データ処理装置のバス使用とデータ処理装置のバス使用を同時に行うことを可能とし、さらにデータ処理装置とデータ転送装置のそれぞれの動作に必要な機能ブロックまたはモジュールをそれぞれのバスによって接続するデータ転送装置の転送情報を記憶手段に設け、データ転送装置と記憶手段をバスで直接接続し、この記憶手段から転送情報を取り出してデータ転送装置が動作するようにしたものである。
【0020】
従って、データ転送装置の転送情報を記憶密度の高い記憶手段に設けることによって、物理的規模を縮小し、シングルチップマイクロコンピュータまたは半導体集積回路の製造費用を削減し、あるいは適正な規模または製造費用で転送チャネル数を増大することができる。さらに、アドレス指定レジスタのビット数を十分に大きくすることができ、またデータ処理装置とデータ転送装置が同時に動作することにより、シングルチップマイクロコンピュータまたは半導体集積回路の処理速度を向上させることができる。プログラム格納用の第3の記憶手段を有することにより、シングルチップマイクロコンピュータまたは半導体集積回路の小型化を図ることができる。
【0021】
また、請求項6記載の半導体集積回路装置においては、データ処理装置、第3の記憶手段および第1の記憶手段が第1のバスによって接続され、データ転送装置、第2の記憶手段およびデータ入出力手段が第2のバスによって接続され、この第1のバスと第2のバスとがバス制御手段によって接続可能とされることにより、前記と同様に物理的規模を縮小して製造費用を削減し、またアドレス指定レジスタのビット数を十分に大きくし、さらにシングルチップマイクロコンピュータまたは半導体集積回路の処理速度を向上させることができる。
【0022】
同様に、請求項8記載の半導体集積回路装置においても、データ転送装置が複数の記憶手段を読み出しまたは書き込む第2のバスと、データ処理装置は、この複数の記憶手段とは別の記憶手段を読み出しまたは書き込むための第1のバスとが含まれ、また請求項9記載の半導体集積回路装置においても、データ転送装置の1回の動作で、少なくとも1つ以上の情報によるデータ転送が指定可能とされることにより、物理的規模の縮小による製造費用の削減、アドレス指定レジスタのビット数の増大、さらにシングルチップマイクロコンピュータまたは半導体集積回路における処理速度の向上を図ることができる。
【0023】
【実施例】
以下、本発明の実施例を図面に基づいて詳細に説明する。
【0024】
図1は本発明の一実施例の半導体集積回路装置であるシングルチップマイクロコンピュータの主要部を示すブロック図、図2は本実施例のシングルチップマイクロコンピュータの割り込み要因を示す説明図、図3はアドレスマップの説明図、図4はアドレスバス、データバスの構成図、図5〜図15は各機能ブロックまたはモジュールの説明図、図16〜図22はデータトランスファコントローラの動作フローチャート、図23〜図24は内部バスの動作タイミング図、図25はブロック転送モードの動作例を示す説明図、図26〜図28は本実施例のシングルチップマイクロコンピュータを用いたプリンタ制御装置の主要部を示すブロック図とその使用方法および動作例を示す説明図、図29は本実施例の変形例であるシングルチップマイクロコンピュータの主要部を示すブロック図である。
【0025】
まず、図1により本実施例のシングルチップマイクロコンピュータの主要部の構成を説明する。
【0026】
本実施例のシングルチップマイクロコンピュータは、たとえばデータ処理装置、データ転送装置、バス制御手段およびデータ入出力手段を有するシングルチップマイクロコンピュータに適用され、中央処理装置(データ処理装置:CPU)、データトランスファコントローラ(データ転送装置:DTC)、リードオンリメモリ(第3の記憶手段:ROM)、ランダムアクセスメモリ(第1の記憶手段:RAMI)、ランダムアクセスメモリ(第2の記憶手段:RAMP)、タイマ、パルス出力回路、シリアルコミュニケーションインタフェース(SCI)、A/D変換器(A/D)、入出力ポート(IOP0〜11)、割り込みコントローラ(割り込み制御手段)、バスコントローラ(バス制御手段:BSC)、クロック発振器(CPG)の機能ブロックまたはモジュールからなり、タイマはタイマAおよびタイマBの2つの部分から構成されている。
【0027】
これらの機能ブロックは、内部バスによって相互に接続され、この内部バスはアドレスバス、データバスの他、図示はされないリード信号、ライト信号、さらにバスサイズ信号、システムクロックを含み、内部アドレスバスにはIAB、DTAB、PABが存在し、一方内部データバスにはIDB(第1のバス)、PDB(第2のバス)が存在し、これらのバスはBSCによってインタフェースされている。
【0028】
IAB、IDBは、CPU、ROM、RAMI、BSCに接続され、さらにIABは外部バスのアドレスバスとするためにIOP0〜3に接続され、IDBは外部バスのデータバスとするためにIOP4、5に接続される。
【0029】
PAB、PDBは、BSC、RAMP、タイマ、パルス出力回路、SCI、A/D変換器、割り込みコントローラ、IOP0〜11に接続され、さらにPDBはDTCに接続される。また、DTABは、DTCとBSCを接続する。なお、RAMIはIAB、IDBに接続され、RAMPはPAB、PDBに接続されている点で相違される。
【0030】
CPUとDTCが、いわゆるバスマスタとして内部バスを使用することができる。ROM、RAMI、RAMPおよびタイマ、パルス出力回路、SCI、A/D変換器、IOP0〜11、割り込みコントローラの各機能ブロックは、バススレーブとしてCPUまたはDTCによってリード/ライトされる。
【0031】
割り込みコントローラは、タイマ、SCI、A/D変換器、入出力ポート(IOP11)の出力する割り込み信号を入力し、CPUに割り込み要求信号を、DTCに起動要求信号を出力する。また、DTCの出力するクリア信号を入力して割り込みクリア信号を出力する。
【0032】
入出力ポートは、外部バス信号、入出力回路の入出力信号と兼用とされている。IOP0〜3はアドレスバス出力、IOP4、5はデータバス入出力、IOP6はバス制御信号入出力信号と兼用されている。外部アドレス、外部データは、それぞれこれらの入出力ポートに含まれるバッファ回路を介してIAB、IDBと接続されている。PAB、PDBは入出力ポートのレジスタをリード/ライトするために使用し、外部バスとは直接の関係はない。
【0033】
バス制御信号出力は、アドレスストローブ、ハイ/ロウデータストローブ、リードストローブ、ライトストローブ、バスアクノリッジ信号などがある。バス制御入力信号にはウェイト信号、バスリクエスト信号などがある。これらの入出力信号は図示はされない。外部バス拡張を行うことは、動作モードなどで選択され、これらの入出力ポートの機能も選択される。
【0034】
また、IOP7はタイマ入出力、IOP8はパルス出力、IOP9はSCI入出力、IOP10はアナログ入力、IOP11は外部割り込み要求(IRQ)入力と兼用されている。タイマ、SCI、A/D変換器とIOP7、IOP9、IOP10との入出力信号は図示はされない。
【0035】
そのほか、電源端子Vcc、Vss、アナログ電源端子AVcc、AVss、リセット入力RES、スタンバイ入力STBY、割り込み入力NMI、クロック入力EXTAL、XTAL、動作モード入力MD0、MD1、MD2などの入力端子がある。
【0036】
続いて、図2によりシングルチップマイクロコンピュータの例外処理要因の一覧を説明する。この例外処理には、リセット、割り込み、トラップ命令があり、リセット、トラップ命令については、本発明に直接の関係はないので詳細な説明は省略する。
【0037】
割り込み要因には、外部割り込み9要因、タイマA、B割り込み10要因、SCI3要因、A/D変換器1要因が含まれる。この割り込み要因は、CPUに割り込みを要求するほか、DTCの起動要因となる。ただし、NMI割り込み、タイマのオーバフロー割り込み、SCIの受信エラー割り込みなどは例外的な要因であり、ソフトウェアで処理するものであるため、CPUの割り込み要求のみである。このような割り込みのDTCベクタアドレスには「−」が記入されている。
【0038】
DTCの起動要因となる割り込みには、DTC許可レジスタA、B、C、Dに、DTC許可ビットが設けられている。たとえば、IRQ0はDTC許可レジスタAのビット7(DTEA7)を“1”にセットすると、IRQ0はDTC起動要因とされ、割り込み要因が発生するとDTCが起動される。このとき、CPUに対する割り込みは要求されない。
【0039】
割り込み要因は、CPUの割り込み要因として、およびDTCの起動要因としてそれぞれ固有のベクタアドレスを有する。CPUのベクタアドレスとしては、H’00000000以降のROMのアドレス、DTCのベクタアドレスとしてはH’FFFFFC00以降のRAMPのアドレスに配置されている。
【0040】
なお、各機能ブロックの割り込みが4要因を単位とし、4または8要因に不足する部分が予約となっているが、これは4要因単位で割り込み優先順位を設定可能としたことに対応するものであり、本発明には直接の関係はない。予約とされた割り込みは、このシングルチップマイクロコンピュータでは発生しない。
【0041】
続いて、図3によりシングルチップマイクロコンピュータのアドレスマップを説明する。
【0042】
このシングルチップマイクロコンピュータにおいては、アドレス空間は4Gバイトとし、1バイト毎にアドレスが割り当てられ、各機能ブロックは接続するバスに拘らず、CPUのアドレス空間上で固有のアドレスを有する。なお、データ入出力回路(データ入出力手段:I/O)は、図1のタイマ、パルス出力回路、SCI、A/D変換器、入出力ポート、割り込みコントローラのレジスタを含む。
【0043】
ROMは、特に制限はされないものの、32kバイトとし、アドレスH’00000000〜H’00007FFF、RAMIは1kバイトとし、H’FFFFF780〜H’FFFFFB7F、RAMPは1kバイトとし、アドレスH’FFFFFB80〜H’FFFFFF7F、I/OはアドレスH’FFFFFF80〜H’FFFFFFFFに配置されている。なお、H’は16進数を示す。また、前記CPUのベクタアドレスはROMの領域、DTCのベクタアドレスはRAMPの領域に配置している。
【0044】
続いて、図4によりシングルチップマイクロコンピュータのアドレスバス、データバスの接続状態を説明する。
【0045】
前記の通り、I/Oには、図1のタイマ、パルス出力回路、SCI、A/D変換器、入出力ポート、割り込みコントローラのレジスタを含み、CPGなどのバスと接続されていない機能ブロックあるいはモジュールは省略する。
【0046】
アドレスバスとしては、CPU、ROM、RAMI、外部を接続するIAB、DTCの出力するDTAB、RAMP、I/Oを接続するPABがある。このアドレスバスは、BSCでインタフェースされている。
【0047】
データバスとしては、CPU、ROM、RAMI、外部を接続するIDB、DTC、RAMP、I/Oを接続するPDBがある。このデータバスIDB、PDBは、BSCでインタフェースされている。必要に応じて、IDBとPDBは接続され、データの入出力が行われる。なお、IAB、IDBはバッファ回路(BUF)を介して、外部バスに接続される。このバッファ回路(BUF)はIOP0〜5に含まれる。
【0048】
続いて、図5〜図15により、DTC、DTCモードレジスタ、割り込みコントローラ、BSCなどの各機能ブロックまたはモジュールの構成、機能などを順に説明する。
【0049】
まず、図5によりDTCのレジスタ構成を説明する。
【0050】
DTCのレジスタは、32ビット構成のベクタアドレスレジスタ(VAR)、ソースアドレスレジスタ(SAR)、デスティネーションレジスタ(DAR)、16ビット構成のブロック転送カウントレジスタ(BTCR)、転送カウントレジスタ(TCR)、モードレジスタ(DTMR)からなり、転送カウントレジスタは8ビットずつ上位(TCRH)、下位(TCRL)に分割されている。
【0051】
VAR、SAR、DARは32ビット長であり、4Gバイトのアドレス空間全領域を指定できる。BTCR、TCRは16ビット長であり、最大64k回の転送を指定できる。最大値はH’0000とされ、65536と見なされる。
【0052】
これらのレジスタは、1組分の回路がDTCの内部に存在し、特に制限はされないものの、CPUのアドレス空間上には存在しない。これらに格納されるべき転送情報は、VARについてはDTCベクタアドレスに、そのほかのレジスタは、必要組数がCPUのアドレス空間上のVARの内容で示されるアドレス、たとえばRAMPに配置される。なお、RAMP以外のメモリに配置することも可能である。
【0053】
続いて、図6によりDTMRのビット構成を説明する。
【0054】
ビット15、ビット14は、SM1、SM0ビットであり、データ転送後にSARをインクリメントするか、デクリメントするか、固定にするかを指定する。SM1ビットを“0”にクリアすると、SARは固定とされる。SM1ビットを“1”にセットした状態で、SM0ビットを“0”にクリアするとインクリメント、SM0ビットを“1”にセットするとデクリメントが行われる。
【0055】
ビット13、ビット12は、DM1、DM0ビットであり、データ転送後にDARをインクリメントするか、デクリメントするか、固定にするかを指定する。DM1ビットを“0”にクリアすると、DARは固定とされる。DM1ビットを“1”にセットした状態で、DM0ビットを“0”にクリアするとインクリメント、DM0ビットを“1”にセットするとデクリメントが行われる。
【0056】
ビット11、ビット10は、MD1、MD0ビットであり、データ転送モードを選択する。MD1、MD0ビットを“0”にクリアするとノーマルモードとなる。このノーマルモードでは、1回の起動で、SARで示されるアドレスからDARで示されるアドレスへ1回のデータ転送を行う。
【0057】
この後、SM1、SM0、DM1、DM0ビットの指定に基づいてSAR、DARの操作が行われ、TCRがデクリメントされる。これを起動要因が発生する毎に、TCRで指定された回数だけ繰り返す。そして、TCRで指定された回数のデータ転送が終了するとDTC動作が禁止され、起動要因となった割り込みがCPUに要求される。
【0058】
MD1を“0”にクリア、MD0ビットを“1”にセットするとリピートモードとなる。このリピートモードでは、1回の起動で、SARで示されるアドレスからDARで示されるアドレスへ1回のデータ転送を行う。転送回数は8ビットのTCRH、TCRLで指定する。
【0059】
データ転送後、SM1、SM0、DM1、DM0ビットの指定に基づいてSAR、DARの操作が行われ、TCRHがデクリメントされる。これを起動要因が発生する毎に、TCRHで指定された回数だけ繰り返す。そして、TCRHで指定された回数のデータ転送が終了すると、TCRLに保持した内容に基づいてSARまたはDAR、TCRHの初期設定値が回復される。CPUによって起動要因となる割り込みを禁止するか、DTCを禁止するまで転送を繰り返す。
【0060】
MD1を“1”にセット、MD0ビットを“0”にクリアするとブロック転送モードとなる。このブロック転送モードでは、1回の起動で、SARで示されるアドレスからDARで示されるアドレスへ複数回のデータ転送を行う。
【0061】
その後、BTCRがデクリメントされる。1回の起動で行うデータ転送の回数は8ビットのTCRH、TCRLで指定する。これを起動要因が発生する毎に、BTCRで指定された回数だけ繰り返す。そして、BTCRで指定された回数のデータ転送が終了するとDTC動作が禁止され、起動要因となった割り込みがCPUに要求される。なお、MD1、MD0ビットを“1”にセットすることはシステム予約とされ、禁止されている。
【0062】
ビット9はDTSビットであり、リピートモードまたはブロック転送モードのとき、ソース側、デスティネーション側のいずれをリピート領域またはブロック領域とするかを選択する。
【0063】
ビット8はSzビットであり、1回のデータ転送をバイトサイズで行うか、ワードサイズで行うかを選択する。このSzビットを“0”にクリアするとバイトサイズ、“1”にセットするとワードサイズのデータ転送が行われる。なお、ワードサイズは2バイトである。
【0064】
ビット7はNXTEビットであり、1つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを選択する。このNXTEビットを“0”にクリアするとレジスタファイルのリードおよびデータ転送後、レジスタファイルをライトしてDTCの動作をを終了する。
【0065】
また、このNXTEビットを“1”にセットした状態では、レジスタファイルのリードおよびデータ転送後、レジスタファイルをライトして、さらに連続したアドレスからレジスタファイルをリードして、このレジスタファイルに指定したデータ転送を行い、レジスタファイルをライトする。
【0066】
続いて、図7によりDTCのレジスタの機能を説明する。
【0067】
ノーマルモードでは、SARを転送元アドレス指定レジスタ、DARを転送先アドレス指定レジスタ、TCR16ビットを転送カウントレジスタとして使用し、BTCRは使用しない。このTCRが0になるまで、転送要求を受け付ける。
【0068】
リピートモードでは、SARを転送元アドレス指定レジスタ、DARを転送先アドレス指定レジスタとして使用する。このとき、DTSビットが“1”にセットされていれば転送先がリピート領域とされ、DTSビットが“0”にクリアされていれば転送元がリピート領域とされる。
【0069】
TCRH8ビットを転送カウントレジスタ、TCRLを転送回数保持レジスタとして使用し、TCRHとTCRLには、初期設定時に同じ値を設定する。このTCRHが“0”になると、TCRLの内容がTCRHに転送され、SARまたはDARの初期設定時の値が回復される。
【0070】
すなわち、DTSビットが“1”にセットされているとき、SAR+SM1・((−1)^SM0)・2^Sz・TCRLの演算が行われ、SARの初期設定時の値が回復される。また、DTSビットが“0”にクリアされているとき、DAR+DM1・((−1)^DM0)・2^Sz・TCRLの演算が行われ、DARの初期設定時の値が回復される。BTCRは使用しない。そして、CPUが割り込みを禁止するか、DTCを禁止するまで転送要求を受け付ける。なお、^はべき乗を示す。
【0071】
ブロック転送モードでは、SARを転送元アドレス指定レジスタ、DARを転送先アドレス指定レジスタ、TCRH8ビットをブロックサイズカウントレジスタ、TCRLをブロックサイズ保持レジスタ、BTCRをブロック転送カウントレジスタとして使用する。
【0072】
このとき、DTSビットが“1”にセットされていれば、転送先がブロック領域とされ、DTSビットが“0”にクリアされていれば、転送元がブロック領域とされる。1回の転送要求で、TCRHが“0”になるまで転送する。そして、TCRHが“0”になると、BTCRをデクリメントし、TCRLの内容がTCRHに転送され、SARまたはDARの初期設定時の値が回復される。
【0073】
DTSビットが“1”にセットされているとき、SAR+SM1・((−1)^SM0)・2^Sz・TCRLの演算が行われる。また、DTSビットが“0”にクリアされているとき、DAR+DM1・((−1)^DM0)・2^Sz・TCRLの演算が行われる。そして、BTCRが“0”になるまで転送要求を受け付ける。
【0074】
リピートモード、ブロック転送モードのデータ転送動作の内容については、前記平成5年3月、(株)日立製作所発行「H8/3003 ハードウェアマニュアル」などと概略同様である。ただし、本発明ではリピートモードのとき、アドレス指定レジスタ(SAR、DAR)のビット数を拡張してアドレス空間の全領域を使用可能としている。
【0075】
続いて、図8によりDTCのブロック構成を説明する。
【0076】
DTCは、制御回路、データバッファ(DB)、アドレスバッファ(AB)、バスインタフェース(MIF)、DTMR、BTCR、TCR、DAR、SAR、VAR、算術演算回路(AU)、セレクタ、シフタ、ベクタアドレス生成回路(VAG)の各ブロックからなり、これらのブロックは、Aバス、Bバス、Cバス、IFバスの4本の内部バスによって結合されている。
【0077】
制御回路は、割り込みコントローラの出力するDTC起動要求信号が活性状態になると動作を開始し、そのほかの各部の動作を制御する。また、バス権の要求を行って、BSCの出力するバス権アクノリッジ信号が活性状態であるのを確認してリード/ライト動作を行う。このリード/ライト動作を示すリード信号、ライト信号、サイズ信号を出力する。バスの動作状態に応じて、ウェイト信号、データストローブ信号を入力して動作する。
【0078】
また、転送動作は、DTMRの保持する内容に従って制御される。所定の動作終了時に転送終了信号、要因クリア信号、DTEクリア信号を割り込みコントローラに出力する。この転送終了信号とベクタ番号に応じて、割り込みコントローラは要因クリア信号などを出力する。特に制限はされないものの、割り込みコントローラは起動要求を活性状態にしてから転送終了信号が活性状態になるまでの期間、ベクタ番号を保持するようにされる。
【0079】
アドレスバッファは、アドレス空間が4Gバイトであるのに対応して、32ビット構成であり、Aバスからデータを入力し、DTCのリード/ライトするアドレスを保持してDTABに出力する。
【0080】
データバッファは16ビット構成であり、PDBと接続され、DTCのリード/ライトするデータを格納する。インタフェースバス、バスインタフェースを介して、DTCの内部回路と接続されている。
【0081】
バスインタフェースは32ビット構成であり、DTCのレジスタとデータバッファとのインタフェースを行う。このデータバッファは16ビット、DTC内部は32ビット構成のため、バスインタフェースでデータのアライメントを行う。
【0082】
DTMR、BTCR、TCR、DAR、SAR、VARの各レジスタの機能は前記の通りである。Bバスからデータを入力して、Aバスに出力する。TCRLは、さらにCバスにデータを出力し、TCRHは、さらにCバスからデータを入力する。
【0083】
算術演算回路(AU)は加減算処理を行い、一方の入力はAバス、他方の入力はシフタの出力である。ただし、上位ビットはシフタの出力は”0”とみなされる。結果はBバスに出力される。
【0084】
シフタは、セレクタの出力を入力し、1ビットの左(上位)方向へのシフトを可能とする。この1ビットのシフトは、×2の処理と等価であり、ワードサイズの転送を可能としていることに対応する。
【0085】
セレクタは、Cバスの内容を入力し、図示はされない定数値(1)との選択を行って出力する。また、+2の演算は、セレクタが1を出力し、シフタで×2とし、AUでAバスの内容と加算を行う。
【0086】
リピートモード、ブロック転送モードのとき、TCRHがH’00になると、TCRLの内容がCバスに出力され、TCRHに転送されるとともに、セレクタを経由してシフタに入力される。Szビットが“1”にセットされているとき、シフトが行われ、Szビットが“0”にクリアされているとき、そのまま算術演算器に入力される。この値は、(2^Sz)・TCRLで表現される。
【0087】
一方、算術演算器にはAバスを経由して、SARまたはDARの内容が入力される。DTSビットが“0”にクリアされているとき、DARが選択され、DTSビットが“1”にセットされているとき、SARが選択される。また、算術演算器の演算は、加算または減算またはAバスの内容出力とされる。
【0088】
これは、SM1、SM0、またはDM1、DM0ビットの内容によって選択される。DTSビットが“0”にクリアされているとき、DM1、DM0ビットが選択され、DTSビットが“1”にセットされているとき、SM1、SM0ビットが選択される。
【0089】
SM1またはDM1ビットが“0”にクリアされている場合、算術演算器はAバスの内容出力とされる。SM1ビットが“1”にセットされ、SM0ビットが“0”にクリアされている場合またはDM1ビットが“1”にセットされ、DM0ビットが“0”にクリアされている場合(インクリメントを指定した場合)、算術演算器は減算とされる。
【0090】
SM1、SM0ビットがいずれも“1”にセットされている場合、またはDM1、DM0ビットがいずれも“1”にセットされている場合(デクリメントを指定した場合)、算術演算器は加算とされる。この演算は、DTSビットが“0”にクリアされている場合、−DM1・((−1)^DM0)、DTSビットが“1”にセットされている場合、−SM1・((−1)^SM0)と表現される。
【0091】
すなわち、DTSビットが“0”にクリアされている場合、DAR−DM1・((−1)^DM0)・(2^Sz)・TCRL、の演算が行われ、DTSビットが“1”にセットされている場合、SAR−SM1・((−1)^SM0)・(2^Sz)・TCRLの演算が行われる。
【0092】
ベクタアドレス生成回路は、割り込みコントローラの出力するベクタ番号を入力してDTCベクタアドレスを生成する。上位24ビットはH’FFFFFCとし、下位8ビットには、ベクタ番号を2ビット左(上位)方向へシフトして入力するものである。最下位2ビットは“0”に固定されている。
【0093】
続いて、図9によりDTCのレジスタの1セット分のメモリ上での構成を説明する。
【0094】
ベクタアドレスレジスタ(VAR)は、起動要因毎に固有のDTCベクタアドレスに格納されている。このベクタアドレスレジスタの内容(m)は、モードレジスタ(DTMR)、ソースアドレスレジスタ(SAR)、デスティネーションレジスタ(DAR)、ブロック転送カウントレジスタ(BTCR)、転送カウントレジスタ(TCR)、ソースアドレスレジスタ(SAR)、デスティネーションレジスタ(DAR)の存在する領域の先頭アドレスとなる。これらのアドレスはアドレスm〜m+13の連続した領域とされる。
【0095】
たとえば、DTCが起動されると、起動要因に固有のDTCベクタアドレスからVARの内容を読み出す。次に、VARの内容をインクリメントしつつ、DTMRから順次読み出す。この読み出し終了時には、DTC内のVARは初期値(m)を保持している。
【0096】
データ転送後、VARの内容をインクリメントしつつ、DTMRから順次元のアドレスに書き込む。この書き込み終了時には、DTC内のVARは最後のアドレスの次のアドレス(m+14)を保持している。なお、各レジスタは16ビットを単位としており、内部バスは16ビット構成とされるために前記インクリメントは+2とされる。
【0097】
DTMRのNXTEビットを“1”にセットすると、1つの転送が終了後、同一の起動要因で次のデータ転送を行う。この次のデータ転送のレジスタは、前記レジスタに連続したアドレスに、前記同様にDTMR、BTCR、TCR、SAR、DARの順序でアドレスm+14〜m+27に配置される。
【0098】
第2のDTMRのNXTEビットを“1”にセットすると、さらに次のレジスタが配置される。同様に、DTMRのNXTEビットを“0”にクリアしたものまで次のレジスタが配置される。
【0099】
レジスタファイルには、14バイトの容量を必要とするため、このレジスタファイルをVARによらず、固定的なベクタアドレスで示すようにすると、DTCを使用しないベクタアドレスには14バイトのメモリが余ってしまう。あるいは、1つの起動要因に、複数のレジスタファイルを割り当てることが困難である。
【0100】
全起動要因に対して、一律に2組などとすると、多くの起動要因は1組で十分なので1組分のメモリが余ってしまう。また、使用しない起動要因には2組分のメモリが余ってしまう。これらの分散したアドレスに残されたメモリを、そのほかの用途に有効に利用することは困難である。任意組数は使用できなくなってしまい、使用上の制約が発生し、システム構成上の自由度が低下する。
【0101】
レジスタファイルをVARで示すようにしたことで、レジスタファイルを任意のアドレスに配置してメモリの利用効率を向上することができる。また、1つの起動要因に対応して、任意組数のレジスタを配置し、転送を行うことができる。使用しない起動要因に対しても、余るメモリはVARの4バイトである。多様な使い方を可能とし、メモリの利用効率を向上することができる。VARを読み出す手順が追加されるが、CPUの動作を停止しないことが可能なので、処理効率を低下することはない。
【0102】
続いて、図10によりDTC許可レジスタの構成を説明する。
【0103】
DTC許可レジスタは、DTERA、B、C、Dの4本があり、特に制限はされないものの、割り込みコントローラに含まれる。割り込み要因が発生した場合に、CPUに割り込みを要求するか、DTCに起動を要求するかを選択する。この割り込み要因に対応して1ビットが設けられており、これらのビットと割り込み要因との対応は図2の通りである。なお、図2に記載のないビット(DTEB1、0、DTEC5、4、1、0、DTED6、5、4、3、2、1、0ビット)はリザーブビットである。
【0104】
リセットによって“0”にクリアされ、CPUのライト動作によって“1”にセットされるとDTCが許可される。そして、DTCの転送が終了すると、対応するDTC許可ビットが“0”にクリアされる。このリザーブビットは、特に制限はされないものの、“0”に保持するものとし、CPUまたはDTCが“1”をライトすることは禁止されている。
【0105】
続いて、図11により割り込みコントローラの概略ブロックを説明する。
【0106】
割り込み要因には、内部割り込み、外部割り込みの2種類があり、それぞれ割り込み要因フラグを有し、内部割り込みの要因フラグは、タイマ、SCI、A/D変換器の入出力回路が所定の状態になったときに“1”にセットされる。
【0107】
外部割り込みの要因フラグは、外部割り込み入力端子が所定のレベルになったとき、または所定の信号変化が発生したときに“1”にセットされる。割り込み要因フラグは、CPUのライト動作によって“0”にクリアされるほか、DTCによる転送が終了したときに“0”にクリアされる。
【0108】
割り込み要因フラグの各ビットの出力は、割り込み許可回路に入力され、この割り込み許可回路には、さらに割り込み許可レジスタの内容、すなわち割り込み許可ビットが入力される。この割り込み許可レジスタは、CPUからリード/ライト可能なレジスタで、対応する割り込みを許可するか、禁止するかを選択する。
【0109】
たとえば、割り込み要因フラグが“1”にセットされ、割り込み許可ビットが“1”にセットされていると割り込みが要求される。すなわち、割り込み許可回路は、対応する割り込み要因フラグと割り込み許可ビットとを入力とした論理積回路で構成される。
【0110】
割り込み許可回路の出力は、割り込み/DTC判定回路に入力される。この割り込み許可回路には、さらにDTC許可レジスタの内容が入力され、前記の通り、DTC許可レジスタは、割り込みが要求されたとき、DTCを起動するか、CPUに割り込みを許可するかを選択する。
【0111】
たとえば、DTC許可レジスタのビットが“1”にセットされていると、DTCの起動が要求され、CPUの割り込みは要求されない。DTC許可レジスタのビットが“0”にクリアされていると、CPUの割り込みが要求され、DTCの起動は要求されない。
【0112】
すなわち、割り込み/DTC判定回路は、対応する割り込み信号とDTC許可ビットの論理積回路、および割り込み信号とDTC許可ビットの反転信号の論理積回路で構成され、前者の論理積回路の出力がDTC起動要求信号とされ、後者の論理積回路の出力がCPU割り込み要求信号とされる。
【0113】
DTC許可回路の出力は、CPU割り込み要求とDTC起動要求が独立に優先順位判定回路に入力される。この優先順位判定回路には、さらにプライオリティレジスタの出力が入力され、プライオリティレジスタは割り込み要因のグループ毎に、たとえば2レベルの優先順位を設定する。
【0114】
CPU割り込み要求、DTC起動要求のそれぞれについて優先順位を判定する。この判定の結果、優先順位の最高のものが選択され、ベクタ番号が生成され、CPU割り込み要求、DTC起動要求のそれぞれの要求信号とベクタ番号が出力される。
【0115】
CPU割り込み要求信号、ベクタ番号はマスクレベル判定回路に入力される。このマスクレベル判定回路には、さらにCPUの割り込みマスクビットが入力され、要求された割り込みがCPUの割り込みマスクレベル以下であれば保留される。
【0116】
CPUに対する割り込み要求信号が活性状態になると、CPUは実行中の命令の終了時点で割り込み例外処理を開始し、ベクタ番号に対応するベクタアドレスから分岐先アドレスを取り出し、割り込み処理ルーチンへ分岐する。
【0117】
このような優先順位判定や割り込みマスクレベルについては、前記平成5年3月、(株)日立製作所発行「H8/3003 ハードウェアマニュアル」などによって公知であるので、詳細な説明は省略する。
【0118】
DTC起動要求はDTCに入力され、またDTCベクタ番号はラッチ回路に入力される。DTC起動信号およびDTC転送終了信号がDTCから出力され、ラッチ回路に入力される。このDTCが動作を開始すると、DTC起動信号が活性状態になりラッチが行われる。そして、DTCのデータ転送が終了してDTC転送終了信号が活性状態になり、ラッチは解除される。従って、DTC動作中はラッチ回路の出力するDTCベクタ番号は保持される。
【0119】
また、DTCベクタ番号とDTC転送終了信号はデコーダ回路に入力され、対応する割り込み要因フラグに対して要因クリア信号が活性状態になって、要因フラグまたはDTEビットがクリアされる。特に制限はされないものの、割り込み要因フラグ、割り込み許可ビット、割り込み許可回路は、各入出力回路に内蔵されている。または、割り込みコントローラに有するようにしてもよい。
【0120】
続いて、図12によりBSCの概略ブロックを説明する。
【0121】
BSCは、データバスバッファ回路、アドレスバスバッファ回路、アドレス判定回路、バス権調停回路、シーケンサから構成され、データバスバッファ回路およびアドレスバスバッファ回路の制御はシーケンサにより行われる。
【0122】
CPUは、CPUバス権要求信号、CPUリード要求信号、CPUライト要求信号、およびIABを出力し、CPUバス権アクノリッジ信号、CPUウェイト要求信号、IAB解放信号を入力して動作する。
【0123】
同様に、DTCは、DTCバス権要求信号、DTCリード要求信号、DTCライト要求信号、およびDTABを出力し、DTCバス権アクノリッジ信号、DTCウェイト信号を入力して動作する。その他に、図示はされないCPUまたはDTCのデータストローブ信号またはデータバッファの制御信号なども出力する。
【0124】
CPUまたはDTCのいずれか一方がバス権を要求した場合、バス権アクノリッジ信号を活性状態にしてバス権を与える。また、CPUおよびDTCの両方がバス権を要求した場合には、アドレスの判定とバス権の調停を行い、CPUの出力するIAB、DTCの出力するDTABをアドレス判定回路に入力する。
【0125】
CPUがROM、RAMI、外部のIDBに接続されたメモリまたはレジスタ(IDB側)をリード/ライト、DTCがRAMP、I/OのPDBに接続されたメモリまたはレジスタ(PDB側)をリード/ライトする場合には、CPUおよびDTCの両方にバス権を与える。
【0126】
CPUがRAMP、I/OのPDBに接続されたメモリまたはレジスタ(PDB側)をリード/ライト、またはDTCがROM、RAMI、外部のIDBに接続されたメモリまたはレジスタ(IDB側)をリード/ライトする場合には、バス権の調停を行う。
【0127】
そして、IDB側、PDB側の両方のバスサイクルが終了した時点で、DTCまたはCPUのいずれか一方にバス権を与える。ここで、DTCがCPUよりバス権の優先順位を高く設定しているので、DTCがバスを要求していれば、DTCにバス権を与える。
【0128】
たとえば、DTCがPDB側をリード/ライトしている期間にCPUがPDB側のリード/ライトを要求すれば、DTCがリード/ライトを終了するまでバス権調停は保留される。さらに、DTCの方が優先順位が高いため、DTCがバス権を放棄するまでCPUは待機状態とされる。
【0129】
また、バス権が与えられると、IDB側、PDB側の一方または両方で、リードまたはライトのバスサイクルが起動される。
【0130】
たとえば、CPUがIDB側、DTCがPDB側をリード/ライトしている場合には、データバスバッファ回路は解放状態となり、IDBとPDBのデータは互いに独立している。また、アドレスバスバッファ回路はDTABの内容をPABに出力する。
【0131】
また、CPUがPDB側をリードしている場合には、PDBからIDBへのバッファがオン状態になり、またアドレスバスバッファ回路は、IABの内容をPABに出力する。
【0132】
一方、CPUがPDB側をライトしている場合には、IDBからPDBへのバッファがオン状態になり、またアドレスバスバッファ回路は、IABの内容をPABに出力する。
【0133】
さらに、DTCがIDB側をリードしている場合には、IDBからPDBへのバッファがオン状態になり、またアドレスバスバッファ回路は、DTABの内容をIABに出力し、CPUにはIAB解放信号が与えられ、CPUのIAB出力は解放状態とされる。
【0134】
一方、DTCがIDB側をライトしている場合には、PDBからIDBへのバッファがオン状態になり、またアドレスバスバッファ回路は、DTABの内容をIABに出力する。前記同様に、CPUにはIAB解放信号が与えられ、CPUのIAB出力は解放状態とされる。
【0135】
続いて、図13によりバスの動作状態の第1の状態を説明する。
【0136】
CPUが、ROMからプログラムをリードする場合、またはRAMIとのデータのリード/ライトする場合には、IAB、IDBを使用して動作が行われる。なお、外部バスは図示はされないが、バッファ回路を介して同様にリード/ライトできる。また、CPUはPAB、PDBを使用しない。
【0137】
このとき、DTCによるRAMPのリード/ライト、およびRAMPとI/O間のデータ転送は、DTAB、PAB、PDBを利用して行われ、PABにはDTABの内容が出力され、PDBとIDBは切り離され、さらにDTCはIAB、IDBを使用しない。すなわち、CPUの動作を停止せず、データ転送を行うことができる。
【0138】
CPUが、ROMまたはRAMIまたは外部をリード/ライトし、DTCがRAMPまたはI/Oをリード/ライトしている場合は、CPUとDTCが並列動作可能である。
【0139】
続いて、図14によりバスの動作状態の第2の状態を説明する。
【0140】
CPUが、ROMからプログラムをリードまたはRAMIとのデータのリード/ライトと、DTCによるROMまたはRAMIのリード/ライトまたはデータ転送が行われる場合、バス権調停が行われる。
【0141】
このとき、DTCによるバス権要求がCPUによるバス権要求より優先される。このバス権調停は、DTABに示されるアドレスによってBSCが行い、DTCが、IAB、IDBを使用したROMまたはRAMIのリード/ライトを行おうとすると、CPUのバスアクセスが終了した時点で、CPUに対するバス権アクノリッジ信号を非活性状態にし、IAB解放信号を活性状態にする。
【0142】
そして、DTABの内容をIABに出力し、IDBとPDBを接続する。これにより、DTCによるROMまたはRAMIのリード/ライトを行うことができる。しかしながら、CPUは停止状態になる。
【0143】
続いて、図15によりバスの動作状態の第3の状態を説明する。
【0144】
CPUが、RAMPとI/Oのリード/ライトを行う場合も、バス権調停が行われ、前記の通りDTCによるバス権要求が、CPUによるバス権要求より優先されるため、DTCがバスを使用していないときにのみ、RAMPとI/Oのリード/ライトを行うことができる。
【0145】
また、RAMPとI/Oのリード/ライト中にDTCがバス権を要求した場合には、CPUのバス使用が終了するまでDTCは待機状態とされる。一方、CPUによるRAMPとI/Oのリード/ライト時には、IABの内容がPABに出力され、IDBとPDBを接続する。
【0146】
次に、本実施例の作用について、図16によりDTCの動作フローの概略を説明する。
【0147】
まず、CPUは、予めRAMP上のDTCベクタアドレスに、レジスタファイルの先頭アドレス(m)をライトし、このアドレス(m)からレジスタファイルの初期値をライトする。その後、割り込み要因の許可ビットを“1”にセットし、DTC許可ビットを“1”にセットする。
【0148】
そして、DTC許可ビットが“1”にセットされた状態で、所定の割り込み要求が発生してDTCが起動されると、まず、ステップ1(S1)で、起動要因に対応したベクタアドレスから、ベクタアドレスレジスタ(VAR)の内容をリードし、DTC内部の所定のレジスタに格納する。このリード後、1ステートの待機状態または内部処理状態となる。
【0149】
ステップ2(S2)で、ベクタアドレスレジスタの内容で示されるアドレスから、モードレジスタ(DTMR)、ブロック転送カウントレジスタ(BTCR)、転送カウントレジスタ(TCR)、ソースアドレスレジスタ(SAR)、デスティネーションレジスタ(DAR)を順次リードし、DTC内部の所定のレジスタに格納する。このリード後、前記同様に1ステートの待機状態または内部処理状態となる。
【0150】
ステップ3(S3)で、リードしたレジスタの内容に従ってデータ転送が行われる。これに伴って、レジスタの内容が更新される。たとえば、ノーマルモードおよびリピートモードでは、1回のデータ転送が行われる。また、ブロック転送モードでは、TCRHおよびCRLで指定された回数の転送が行われる。そして、データ転送後、前記同様に1ステートの待機状態または内部処理状態となる。
【0151】
ステップ4(S4)で、レジスタの内容を、元のアドレスに格納する。このとき、NXTEビットが“1”にセットされていると、ステップ1(S1)に戻り、連続したアドレスから、DTMR、BTCR、TCR、SAR、DARを順次リードし、前記動作を繰り返す。
【0152】
一方、NXTEビットが“0”にクリアされていると、DTCの動作は停止する。そして、転送カウンタの内容が0でなければ、要因クリア信号を活性状態にし、割り込みコントローラを介して割り込み要因フラグを“0”にクリアする。
【0153】
また、転送カウンタの内容が0のとき、割り込み要因のクリアは行わず、DTC許可ビットを“0”にクリアする。なお、転送カウンタは、ノーマルモードのときTCR、リピートモードのときTCRH、ブロック転送モードのとき、BTCRが用いられる。
【0154】
そして、DTCの動作停止後、DTC許可ビットが“0”にクリアされ、割り込み要因が保持されているため、CPUの割り込み例外処理が実行され、割り込み処理ルーチンを実行する。このCPUの割り込み処理ルーチンで、割り込み要因フラグを“0”にクリアする必要がある。
【0155】
なお、CPUは、DTCによる転送が終了したことを、RAM上に配置されたレジスタ、特にBTCRまたはTCRをリードし、内容が0であることを確認することによっても知ることができる。
【0156】
また、DTCの動作中に、CPUがPDB側をリード/ライトする場合、CPUは一旦停止状態になるが、前記の通り、DTCの動作中でも、動作ステップの切れ目でバスを解放するので、CPUが長期間停止状態になることを回避できる。少なくとも、連続してPDB側をリード/ライトする場合以外は、DTCの動作ステップの切れ目でCPUが動作することができる。
【0157】
このような並列動作を有効に利用するためには、DTCによるデータ転送を、RAMPとI/O間で行うようにするとよい。また、CPUの命令をROMに配置し、作業領域をRAMIに配置するとよい。
【0158】
さらに、CPUのバスサイクルでは、命令のリードのほうがデータのリード/ライトよりも頻度が高いため、CPUによるDTCおよびI/Oの初期設定を除けば、DTCの転送終了後に、RAMPに蓄積したデータを処理する場合を含めて、CPUによるRAMPおよびI/Oのリード/ライトの頻度を小さくし、処理速度の低下を小さくし、ほぼCPUとDTCが並列動作したものと同等の処理速度とすることができ、従来技術に比較して処理速度を向上できる。
【0159】
続いて、図17に基づいて、図16のステップ1の詳細な動作フローを説明する。
【0160】
ステップ1(S1)では、まず、ステップ101(S101)で、バス権要求信号を活性状態にしてバス権を要求する。
【0161】
そして、割り込みコントローラの出力するベクタ番号に基づいて、起動要因に対応したベクタアドレスをベクタアドレス発生回路(VAG)が生成する。この内容が、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0162】
さらに、バス権アクノリッジ信号を参照して、バス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となり、同時に待機状態を示す信号として、DTCウェイト信号が活性状態とされる。
【0163】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ102(S102)でリードサイクルを開始する。また、インクリメントされた内容をBバス経由でDARに格納する。
【0164】
なお、この時点でDARには有効なデータがないため、一時的な作業用レジスタとしてDARを使用している。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0165】
ステップ103(S103)で、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。また、DARに格納されたDTCベクタアドレス+2の内容を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。
【0166】
ステップ104(S104)で、リードサイクルを開始し、DBの内容を、Bバスを経由してVARの上位16ビット(VARH)に格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0167】
ステップ105(S105)で、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込み、バス権要求信号を非活性状態にして、バス権を放棄する。
【0168】
ステップ106(S106)で、DBの内容を、Bバスを経由してVARの下位16ビット(VARL)に格納する。そして、次のレジスタファイルのリードのためにバス権を要求する。同時に、VARの内容(m)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。
【0169】
そして、Aバスの内容をAUに取り込み、インクリメント(+2)を行う。このとき、φに同期したDBのBバスからの入力が、φ#に同期したAバスへの出力に先行して行われる。このφ#はφの反転信号である。
【0170】
なお、データバッファ(DB)からBバスへは、IFバスおよびバスインタフェース(MIF)を介してデータ転送が行われるが、この記述は省略している。
【0171】
続いて、図18に基づいて、図16のステップ2の詳細な動作フローを説明する。
【0172】
ステップ2(S2)では、ステップ106(S106)に継続して動作が行われ、まず、バス権アクノリッジ信号を参照してバス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となる。同時に、待機状態を示す信号としてDTCウェイト信号が活性状態とされる。
【0173】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ201(S201)でリードサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0174】
ステップ202(S202)で、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。また、DARに格納されたVAR+2の内容(m+2)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0175】
ステップ203(S203)で、リードサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0176】
ステップ204(S204)で、DBの内容を、Bバスを経由してDTMRに格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。このとき、φに同期したDBのBバスへの出力が、φ#に同期したデータバスからDBへの入力に先行して行われる。
【0177】
また、DARに格納されたVAR+4の内容(m+4)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0178】
ステップ205(S205)で、リードサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0179】
ステップ206(S206)で、DBの内容を、Bバスを経由してBTCRに格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0180】
また、DARに格納されたVAR+6の内容(m+6)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0181】
ステップ207(S207)でリードサイクルを開始する。インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0182】
ステップ208(S208)で、DBの内容を、Bバスを経由してTCRに格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0183】
また、DARに格納されたVAR+8の内容(m+8)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0184】
ステップ209(S209)で、リードサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0185】
ステップ210(S210)で、DBの内容を、Bバスを経由してSARの上位16ビット(SARH)に格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0186】
また、DARに格納されたVAR+10の内容(m+10)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0187】
ステップ211(S211)で、リードサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0188】
ステップ212(S212)で、DBの内容を、Bバスを経由してSARの下位16ビット(SARL)に格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。また、DARに格納されたVAR+12の内容(m+12)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。
【0189】
ステップ213(S213)で、リードサイクルを開始し、このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0190】
ステップ214(S214)で、DBの内容を、Bバスを経由してDARの上位16ビット(DARH)に格納する。リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。そして、バス権要求信号を非活性状態にしてバス権を放棄する。
【0191】
ステップ215(S215)で、次のデータ転送のためにバス権を要求する。そして、SARの内容を、Aバスを経由してABに入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、処理の内容はSM1、SM0ビットに基づく。なお、DBに格納されているDARの下位16ビット(DARL)の内容は、ステップ3(S3)でDARに格納される。
【0192】
続いて、図19に基づいて、図16のステップ3のノーマルモードの詳細な動作フローを説明する。
【0193】
ステップ3(S3)では、ステップ215(S215)に継続して動作が行われ、まず、バス権アクノリッジ信号を参照して、バス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となる。同時に、待機状態を示す信号としてDTCウェイト信号が活性状態とされる。
【0194】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ301(S301)aでリードサイクルを開始する。このAUで処理された内容を、Bバス経由でSARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0195】
ステップ302(S302)aで、DBの内容を、Bバスを経由してDARの下位16ビット(DARL)に格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0196】
また、DARの内容を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、処理の内容は、DM1、DM0ビットに基づく。
【0197】
ステップ303(S303)aで、ライトサイクルを開始し、DBの内容をデータバスに出力する。このAUで処理された内容を、Bバス経由でDARに格納し、さらにTCRの内容をAUに取り込み、デクリメントを行う。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0198】
ステップ304(S304)aで、ライトサイクルを終了し、AUでデクリメントされた内容をBバス経由でTCRに格納する。このデクリメント結果がH’0000であるか、内部の状態フラグに保持する。そして、バス権要求信号を非活性状態にしてバス権を放棄する。
【0199】
ステップ305(S305)aで、次のレジスタファイルのライトのためにバス権を要求する。同時に、VARの内容(m)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0200】
続いて、図20に基づいて、図16のステップ3のリピートモードの詳細な動作フローを説明する。
【0201】
まず、バス権アクノリッジ信号を参照して、バス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となる。同時に、待機状態を示す信号としてDTCウェイト信号が活性状態とされる。
【0202】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ301(S301)bでリードサイクルを開始する。このAUで処理された内容を、Bバス経由でSARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0203】
ステップ302(S302)bで、DBの内容を、Bバスを経由してDARの下位16ビット(DARL)に格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0204】
また、DARの内容を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、処理の内容は、DM1、DM0ビットに基づく。
【0205】
ステップ303(S303)bで、ライトサイクルを開始し、DBの内容をデータバスに出力する。このAUで処理された内容を、Bバス経由でDARに格納し、さらにTCRHの内容をAバスを経由してAUに取り込み、デクリメントを行う。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0206】
ステップ304(S304)bで、ライトサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。そして、このAUでデクリメントされた内容を、Bバス経由でTCRHに格納する。
【0207】
このデクリメント結果がH’00であれば、SARまたはDAR、およびTCRHの初期設定値が復帰される。そして、前記の通り、DTSビットが“0”にクリアされていればDAR、またDTSビットが“1”にセットされていれば、SARの内容がAバスを経由してAUに入力される。
【0208】
そして、TCRLの内容がCバスに出力され、TCRHに格納されるとともに、セレクタ、シフタ経由でAUに入力される。このセレクタ、シフタ、AUの処理の内容は前記の通りである。そして、バス権要求信号を非活性状態にして、バス権を放棄する。
【0209】
ステップ305(S305)bで、AUで処理された内容をBバス経由でSARまたはDARに格納し、次のレジスタファイルのライトのためにバス権を要求する。同時に、VARの内容(m)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0210】
続いて、図21に基づいて、図16のステップ3のブロック転送モードの詳細な動作フローを説明する。
【0211】
まず、バス権アクノリッジ信号を参照して、バス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となる。同時に、待機状態を示す信号としてDTCウェイト信号が活性状態とされる。
【0212】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ301(S301)cでリードサイクルを開始する。このAUで処理された内容を、Bバス経由でSARに格納する。このリードサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0213】
ステップ302(S302)cで、DBの内容を、Bバスを経由してDARの下位16ビット(DARL)に格納する。そして、リードサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。
【0214】
また、DARの内容を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、処理の内容は、DM1、DM0ビットに基づく。
【0215】
ステップ303(S303)cで、ライトサイクルを開始し、DBの内容をデータバスに出力する。このAUで処理された内容を、Bバス経由でDARに格納し、さらにTCRHの内容をAバスを経由してAUに取り込み、デクリメントを行う。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0216】
ステップ304(S304)cで、ライトサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。このAUでデクリメントされた内容を、Bバス経由でTCRHに格納する。
【0217】
このデクリメント結果がH’00でなければ、SARの内容を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、ステップ301(S301)cに分岐する。
【0218】
一方、デクリメント結果がH’00であれば、SARまたはDAR、およびTCRHの初期設定値が復帰され、前記の通り、DTSビットが“0”にクリアされていればDAR、またDTSビットが“1”にセットされていれば、SARの内容がAバスを経由してAUに入力される。
【0219】
そして、TCRLの内容がCバスに出力され、TCRHに格納されるとともに、セレクタ、シフタ経由でAUに入力される。このセレクタ、シフタ、AUの処理の内容は前記の通りである。そして、バス権要求信号を非活性状態にして、バス権を放棄する。
【0220】
ステップ305(S305)cで、AUで処理された内容をBバス経由でSARまたはDARに格納する。そして、BTCRの内容をAバス経由でAUに取り込み、デクリメントを行う。
【0221】
ステップ306(S306)cで、AUでデクリメントされた内容をBバス経由でBTCRに格納する。このデクリメント結果がH’0000であるか、内部の状態フラグに保持し、次のレジスタファイルのライトのためにバス権を要求する。
【0222】
同時に、VARの内容(m)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0223】
続いて、図22に基づいて、図16のステップ4の詳細な動作フローを説明する。
【0224】
ステップ4(S4)では、ステップ305(S305)a、bまたはステップ306(S306)cに継続して動作が行われ、まず、バス権アクノリッジ信号を参照して、バス権が獲得されたかを判定する。この判定が保留とされた場合には、バス権が許可されるまで待機状態となる。同時に待機状態を示す信号として、DTCウェイト信号が活性状態とされる。
【0225】
そして、バス権アクノリッジ信号が活性状態になり、DTCウェイト信号が非活性状態になると、ステップ401(S401)でライトサイクルを開始し、インクリメントされた内容をBバス経由でVARに格納する。そして、DTMRの内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0226】
ステップ402(S402)で、ライトサイクルを終了し、またVARの内容(m+2)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0227】
ステップ403(S403)で、ライトサイクルを開始し、インクリメントされた内容をBバス経由でVARに格納する。そして、BTCRの内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0228】
ステップ404(S404)で、ライトサイクルを終了し、またVARの内容(m+4)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0229】
ステップ405(S405)で、ライトサイクルを開始し、インクリメントされた内容をBバス経由でVARに格納する。そして、TCRの内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0230】
ステップ406(S406)でライトサイクルを終了し、またVARの内容(m+6)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0231】
ステップ407(S407)で、ライトサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。そして、SARの上位16ビット(SARH)の内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0232】
ステップ408(S408)で、ライトサイクルを終了し、またVARの内容(m+8)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0233】
ステップ409(S409)で、ライトサイクルを開始し、インクリメントされた内容をBバス経由でDARに格納する。そして、SARの下位16ビット(SARL)の内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0234】
ステップ410(S410)で、ライトサイクルを終了し、またVARの内容(m+10)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0235】
ステップ411(S411)で、ライトサイクルを開始し、インクリメントされた内容をBバス経由でVARに格納する。そして、DARの上位16ビット(DARH)の内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0236】
ステップ412(S412)で、ライトサイクルを終了し、データバスの内容をデータバッファ(DB)に取り込む。また、VARの内容(m+12)を、Aバスを経由してアドレスバッファ(AB)に入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行う。
【0237】
ステップ413(S413)でライトサイクルを開始し、インクリメントされた内容をBバス経由でVARに格納する。そして、DARの下位16ビット(DARL)の内容を、Aバスを経由してDBに入力し、データバスに出力する。このライトサイクルで、ウェイトが要求されれば、ウェイトが解除されるまで待機状態となる。
【0238】
ステップ414(S414)で、ライトサイクルを終了し、バス権要求信号を非活性状態にしてバス権を放棄する。
【0239】
ステップ415(S415)で、NXTEビットが“1”にセットされていれば、次のレジスタファイルのリードのためにバス権を要求し、VARの内容を、Aバスを経由してABに入力し、DTABに出力する。そして、このAバスの内容をAUに取り込み、インクリメント(+2)を行い、ステップ2(S2)に戻る。
【0240】
一方、NXTEビットが“0”にクリアされていれば、要因クリア信号またはDTC許可ビットクリア信号を活性状態とする。すなわち、転送カウンタが0でなく、前記内部状態フラグが“0”にクリアされていれば、要因クリア信号を活性状態とし、転送カウンタが0であり、内部状態フラグが“1”にセットされていれば、DTC許可ビットクリア信号を活性状態とする。
【0241】
なお、ステップ4では、更新されなかったレジスタを退避しないようにしてもよい。また、フローチャートのDTC内部の動作は同一とし、バス権を解放して、ライト動作を行わないようにすればよい。さらに、CPUをストールしなくてよく、あるいは内部の動作を変更して、ステップ数を削除してもよい。この場合には、削除される前のインクリメントを(+2)ではなく(+4)とするようにする。
【0242】
また、BTCRを使用しない場合には、ステップ1でのリードおよびステップ4でのライトの両方を行わないようにしてもよく、あるいはメモリ上の配置からも削除してもよい。さらに、1つの起動要因で複数のデータ転送を行う場合には、起動要因が発生してから最後のデータ転送を行うまでの時間を短縮できる。
【0243】
続いて、図23により内部バスの動作タイミングの第1の例を説明する。なお、図23では、RAMPからI/Oへのノーマルモードのデータ転送を行う例を示すものとし、図17〜図22の動作フローに対応するステップ番号を文末に記述する。
【0244】
IAB、DTABは、φの反転信号であるφ#に同期して出力され、またCPUのROMおよびRAMIに対するリードは、1ステートで行われる。そして、IABは、φ#に同期して1ステート出力され、特に制限はされないものの、ROMおよびRAMIの中でφに同期してラッチされる。これに対応するリードデータは、φ#に同期して出力され、φ#が活性状態の期間にCPUに取り込まれる。
【0245】
たとえば、T1のφ#に同期して、IABに出力されたアドレスに対するデータはT2のφ#が活性状態の期間にCPUに取り込まれる。一方、RAMPに対するリード/ライトは2ステート、I/Oに対するリード/ライトは3ステートで行われ、このφ#に同期したIABまたはDTABは、BSCでφに同期化される。
【0246】
まず、割り込みコントローラが、DTC起動要求信号を活性状態にしてDTCを起動する。このDTCは、起動されると起動信号を活性状態にし、これによって割り込みコントローラのDTCベクタ番号がラッチされる。
【0247】
T1では、CPUのROMからの命令フェッチが行われ、IABにアドレスが出力され、DTCが起動される。このとき、DTCはDTCバス権要求信号を活性状態にし、VAGで生成したDTCベクタアドレスを、Aバスを経由してDTABに出力する。そして、このAバスの内容をAUに取り込んで、インクリメントを行う(ステップ101(S101))。
【0248】
T2では、ROMからIDBに読み出された命令コードをCPUが取り込むとともに、次の命令フェッチのアドレスがIABに出力される。以下同様にして、T8までCPUによるROMのリードが繰り返される。このとき、DTCバス権アクノリッジ信号が活性状態になり、DTABの内容はφに同期化してPABに出力され、DTCによるRAMPのリードが行われる。そして、このAUのインクリメント結果をBバス経由でDARに格納される(ステップ102(S102))。
【0249】
T3では、RAMPからPDBに読み出されたVARの上位16ビットの内容(mH)が、DTCのデータバッファ(DB)に取り込まれる。そして、DARの内容(DTCベクタアドレス+2)を、Aバスを経由してDTABに出力する(ステップ103(S103))。
【0250】
T4では、DTABの内容はφに同期化してPABに出力され、DTCによるRAMPのリードが行われる。そして、データバッファ(DB)の内容を、Bバスを経由してVARの上位16ビットに格納する(ステップ104(S104))。
【0251】
T5では、RAMPからPDBに読み出されたVARの下位16ビットの内容(mL)が、DTCのデータバッファ(DB)に取り込まれる。そして、DTCバス権要求信号を非活性状態にし、一旦バス権を解放する(ステップ105(S105))。
【0252】
T6では、PAB・PDBは使用されず、PABには直前の状態を保持し、DTCは、DTCバス権要求信号を活性状態にし、データバッファ(DB)の内容をBバスを経由してVARの下位16ビットに格納する。このVARの内容(m)を、Aバスを経由してDTABに出力し、これがレジスタファイルの先頭アドレスとなる。そして、Aバスの内容がAUに取り込まれてインクリメント(+2)される(ステップ106(S106))。
【0253】
T7では、DTCバス権アクノリッジ信号が活性状態になり、DTABはφに同期化してPABに出力され、RAMPのリードが行われる。そして、インクリメント結果が、Bバスを経由してDARに格納される(ステップ201(S201))。
【0254】
T8では、RAMPからPDBに読み出されたDTMRの内容が、DTCのデータバッファ(DB)に取り込まれる(ステップ202(S202))。以下、T9〜T19において、レジスタファイルが順次読み出される。なお、図23では途中のT11〜T18の8ステートを省略している。
【0255】
T20で、DARHの内容が、DTCのデータバッファ(DB)に取り込まれる。そして、DTCバス権要求信号を非活性状態にし、一旦バス権を解放する(ステップ214(S214))。
【0256】
このとき、CPUがT10でIABに出力したアドレスがI/Oに相当し、バス権調停が行われるが、CPUはDTCに比べて優先順位が低く、CPUバス権アクノリッジ信号を非活性状態にし、ストールされている。
【0257】
従って、T20で、DTCがバス権を解放したため、CPUにバス権が与えられ、IABの内容が、φに同期化してPABに出力され、I/Oのリードが行われる。これに対応するデータは、T23でPDBに読み出され、IDBを経由してCPUに取り込まれる。
【0258】
T21では、DTCがDTCバス権要求信号を活性状態にし、バス権を要求するが、CPUがバスを使用中であるために、DTCバス権アクノリッジ信号を非活性状態にし、ストールされる。さらに、T22からDTCウェイト信号が活性状態になってDTCは待機状態とされる。
【0259】
T23では、CPUがROMのアドレスをIABに出力し、リードを開始する。そして、次のサイクルからCPUとDTCが並列動作を再開する。
【0260】
T24では、DTCバス権アクノリッジ信号を活性状態、DTCウェイト信号を非活性状態にし、データバッファ(DB)の内容をBバスを経由してDARHに格納する。そして、DTCによるRAMPのリードが行われ、DTABはφに同期化してPABに出力される(ステップ301(S301)a)。
【0261】
T25では、PDBの内容が、DTCのデータバッファ(DB)に取り込まれる。そして、DARの内容を、Aバスを経由してDTABに出力する(ステップ302(S302)a)。
【0262】
T26では、I/Oのライトサイクルを開始し、データバッファ(DB)の内容をPDBに出力する。ここで、I/Oは3ステートでリード/ライトするものとし、DTCウェイト信号が活性状態とされる(ステップ303(S303)a)。
【0263】
T27では、DTCは待機状態とされる。そして、DTCウェイト信号が非活性状態とされる。
【0264】
T28では、ライトサイクルを終了する。そして、DTCバス権要求信号を非活性状態にし、バス権を放棄する(ステップ304(S304)a)。
【0265】
T29では、DTCバス権要求信号を活性状態にし、バス権を要求する。そして、VARの内容(m)を、Aバスを経由してDTABに出力し、このAバスの内容をAUでインクリメント(+2)する(ステップ305(S305)a)。
【0266】
T30では、インクリメントした結果をVARに格納する。また、DTCバス権アクノリッジ信号が活性状態となって、ライトサイクルを開始する。そして、DTMRの内容をAバス、データバッファ(DB)を介してPDBに出力する(ステップ401(S401))。
【0267】
T31では、VARの内容(m+2)を、Aバスを経由してDTABに出力する。そして、Aバスの内容をAUでインクリメント(+2)する(ステップ402(S402))。
【0268】
T32では、インクリメントした結果をVARに格納する。また、ライトサイクルを開始し、BTCRの内容をAバス、データバッファ(DB)を介してPDBに出力する(ステップ403(S403))。
【0269】
T33では、VARの内容(m+2)を、Aバスを経由してDTABに出力する。そして、Aバスの内容をAUでインクリメント(+2)し、ライトサイクルを終了する(ステップ404(S404))。
【0270】
以下、T34〜T41において、レジスタファイルが順次書き込まれる。なお、図23ではT34〜T41の8ステートを省略しており、このステートにおいても同様にライトサイクルを繰り返す。
【0271】
T42では、インクリメントした結果をVARに格納し、またライトサイクルを開始する。そして、DARLの内容をAバス、データバッファ(DB)を介してPDBに出力する(ステップ413(S413))。
【0272】
T43では、ライトサイクルを終了する。そして、DTCバス権要求信号を非活性状態にし、バス権を放棄する(ステップ414(S414))。ここで、NXTEビットが“1”にセットされている場合、次のレジスタファイルのリード(ステップ2)を行う。
【0273】
T44では、PAB・PDBは使用されず、PABには直前の状態を保持し、DTCはDTCバス権要求信号を活性状態にし、データバッファ(DB)の内容をBバスを経由してVARに格納する。さらに、VARの内容(m+14)を、Aバスを経由してDTABに出力し、これがレジスタファイルの先頭アドレスとなる。そして、Aバスの内容が、AUに取り込まれてインクリメント(+2)される。
【0274】
以下、T7以降と同等の動作を行い、データ転送の内容はT45、T46でリードしたDTMRなどの内容に従う。また、DTC転送終了信号は、NXTEビットが“0”にクリアされたデータ転送が終了した時点で活性状態になる。
【0275】
この場合に、CPUの待機状態にする時間を、ベクタアドレスレジスタのリード、レジスタファイルのリード、データ転送、レジスタファイルのライトの時間、以下とすることができる。この時間は、レジスタファイルのリード/ライトは7ワード分であるので、レジスタファイルをRAMPに配置した場合、最大14ステートである。
【0276】
また、レジスタファイルのリード/ライトの途中でバスを解放するようにすれば、CPUの待機状態にする時間をさらに短縮することができる。
【0277】
続いて、図24により内部バスの動作タイミングの第2の例を説明する。なお、図24では、I/OからRAMIへのデータ転送を行う例を示し、前述した図23の説明と同様の部分は省略するものとする。
【0278】
CPUは、ROMからIAB、IDBを使用して命令を取り込みつつ動作し、また図24の期間は、IDB側のアクセスのみを連続して行う。
【0279】
T24で、DTCがDTABに出力したアドレスがRAMIに相当する。ここで、バス権調停が行われ、DTCにバス権が与えられる。そして、T25からCPUに対するIAB解放信号が活性状態になり、DTABの内容をIABに出力する。
【0280】
T26で、この内容が、ROMと同様にRAMIにラッチされる。そして、DTCがPDBに出力したデータがIDBに出力され、RAMIに書き込まれる。この期間、CPUバス権アクノリッジ信号が非活性状態とされ、CPUは停止状態とされる。そして、CPUに対するIAB解放信号が非活性状態になり、CPUの出力するアドレスをIABに出力する。
【0281】
T27で、CPUバス権アクノリッジ信号が活性状態とされ、CPUの動作が再開される。このとき、NXTEビットが“0”にクリアされているものとし、レジスタファイルのライト後、T42でDTCバス権要求信号を非活性状態にし、DTC転送終了信号を活性状態にしてDTCは動作を停止する。
【0282】
なお、図示はされないものの、DTC転送終了信号が活性状態となったとき、要因クリア信号またはDTEクリア信号のいずれかが活性状態になる。これは前記の通り、データ転送モードと転送カウンタの内容によって相違される。
【0283】
また、ノーマルモードでTCRがH’0000のとき、またはブロック転送モードでBTCRがH’0000のとき、DTEクリア信号が活性状態になり、その他のときは要因クリア信号が活性状態になる。
【0284】
このように、データ転送をI/OからRAMIとすることによって、蓄積されたデータをCPUが処理する場合に、IAB、IDBを使用するだけでよく、アクセスを高速化し、またDTCとの並列動作を可能とすることによって処理効率を向上させることができる。
【0285】
続いて、図25によりブロック転送モードの動作例を説明する。
【0286】
たとえば、図1のシングルチップマイクロコンピュータのA/D変換器は、前記平成5年3月、(株)日立製作所発行の「H8/3003 ハードウェアマニュアル」に記載のものと同様に、データレジスタを4本有し、4チャネルを連続的に変換し、結果をデータレジスタに保持することができる。そして、4チャネルの変換が終了すると、変換終了割り込みが発生する。なお、データレジスタはワードサイズとする。
【0287】
まず、変換終了割り込みに対応するDTC許可ビット(DTED7)を“1”にセットし、DTCを許可する。そして、DTMRのSM1、DM1ビットをいずれも“1”にセット、SM0、DM0ビットをいずれも“0”にクリアし、SAR、DARをインクリメントとする。
【0288】
さらに、MD1ビットを“1”にセット、MD0ビットを“0”にクリアしてブロック転送モードを選択、DTSを“1”にセットしてソース側をブロックエリアとする。そして、Szを“1”にセットしてワードサイズ転送とし、NXTEを“0”にクリアして1回のブロック転送で終了する。
【0289】
このとき、TCRH、TCRLには、ブロックサイズとして4を設定し、BTCRには、転送するブロック数としてNを指定する。このNは0〜65536の整数値である。なお。前記の通り、65536の場合はH’0000を設定する。また、SARにはA/D変換器のデータレジスタの先頭アドレス(TS)を設定し、DARは変換結果を格納するRAMPの先頭アドレス(TD)を設定する。
【0290】
そして、1回の変換終了割り込みでDTCが起動されると、DTCベクタアドレスをリードし、この内容からレジスタファイルをリードしてデータ転送を開始する。
【0291】
まず、SARで示されるA/D変換器の第1のデータレジスタから、DARで示されるRAMPのアドレス(TD)へデータ転送がワードサイズで行われる。そして、SARとDARをインクリメント(+2)し、TCRHをデクリメントする。
【0292】
さらに、A/D変換器の第2のデータレジスタから、RAMPのアドレス(TD+2)へデータ転送が行われ、SARとDARをインクリメント(+2)し、TCRHをデクリメントする。同様に、A/D変換器の第3のデータレジスタから、RAMPのアドレス(TD+4)へデータ転送が行われ、SARとDARをインクリメント(+2)し、TCRHをデクリメントする。
【0293】
そして、A/D変換器の第4のデータレジスタから、RAMPのアドレス(TD+6)へデータ転送が行われ、SARとDARをインクリメント(+2)し、TCRHをデクリメントする。このとき、SARとDARはそれぞれ、TS+8、TD+8であり、TCRHは0である。
【0294】
その後、SARでは、SAR−SM1・((−1)^SM0)・2^Sz・TCRLの演算が行われ、初期値TSが回復される。また、TCRHにはTCRLの内容が転送され、データ転送を終了する。
【0295】
さらに、レジスタファイルを退避し、転送終了信号を活性状態にして、割り込みコントローラが要因フラグをクリアしてDTCは動作を終了する。そして、割り込み要求が発生するまで待機する。
【0296】
そして、次の割り込み要求が発生すると、同様にしてA/D変換器の第1、第2、第3、第4のデータレジスタから、それぞれRAMPのアドレス(TD+8から始まる4ワード)へデータ転送が行われる。
【0297】
以後、これを繰り返し、N回めの割り込み要求が発生すると、A/D変換器の第1、第2、第3、第4のデータレジスタから、それぞれRAMPのアドレス(TD+DM1・((−1)^DM0)・(2^Sz)・TCRL・(N−1)から始まる4ワード)へデータ転送が行われる。ここで、要因フラグのクリアは行わず、DTC許可ビットをクリアして動作を終了する。
【0298】
そして、A/D変換終了割り込みがCPUに要求され、RAMPのデータに対して所望の処理を行う。この場合に、前記の通りRAMIを使用してもよい。
【0299】
続いて、図26により、具体的に本実施例の適用されたシングルチップマイクロコンピュータをプリンタ制御装置に用いた例を説明する。
【0300】
プリンタ制御装置は、シングルチップマイクロコンピュータおよびセントロニクスインタフェース回路、バッファRAM、キャラクタジェネレートROM(CGROM)、印字データバッファRAM、印字データヘッドを含み、これらがシングルチップマイクロコンピュータの外部バスを介して接続される。
【0301】
さらに、バッファ回路、ラインフィードモータ、キャリッジリターンモータを含み、これらのモータは、それぞれタイマの出力、パルス出力装置の出力によって制御される。なお、ラインフィードモータ、キャリッジリターンモータは、特に制限はされないものの、ここではステッピングモータとする。
【0302】
また、図示はされないものの、SCIはホストとの通信に使用し、A/D変換器は紙枚数などのセンサ情報を入力する。
【0303】
さらに、DTCは、セントロニクスインタフェースによるデータの受信、印字データの出力、ラインフィードモータ、キャリッジリターンモータを駆動するパルス出力を行い、またSCIの送信データ、受信データの転送を行う。
【0304】
続いて、図27により、図26のプリンタ制御装置のDTCの使用例を説明する。なお、この場合には5本の割り込み要因によって、合計8回のデータ転送を行うものとする。
【0305】
まず、セントロニクスインタフェースによるデータの受信では、DTCは、外部信号をIR0信号に入力して、IR0割り込みで起動され、セントロニクスインタフェースのデータレジスタからバッファRAMへのデータ転送を行う。そして、セントロニクスインタフェースの所定の信号、いわゆるインプットストローブ信号を外部割り込み入力端子IRQ0に入力する。
【0306】
さらに、IRQ0割り込みに対応する、割り込み許可ビットおよびDTC許可ビット(DTEA7)を“1”にセットし、DTCはSARをセントロニクスインタフェースのデータレジスタに相当するアドレスとし、SM1、SM0ビットをいずれも“0”にクリアしてSARを固定にする。
【0307】
また、DARは、たとえばバッファRAMの所定のアドレスとし、DM1ビットを“1”にセット、DM0ビットを“0”にクリアしてインクリメントを指定し、またTCRに所望のデータ転送回数を指定し、BTCRは使用しない。そして、動作モードは、MD1、MD0をいずれも“0”にクリアしてノーマルモードとし、SzビットおよびNXTEビットは“0”にクリアする。
【0308】
さらに、ホストから転送されるデータをインプットストローブ信号の所定の変化点で、セントロニクスインタフェースに取り込み、同時にシングルチップマイクロコンピュータにIRQ0割り込みが発生し、DTCを起動する。そして、DTCは、前記取り込まれたデータを、セントロニクスインタフェースのデータレジスタからバッファRAMへ転送する。
【0309】
さらに、バッファRAMのアドレスをインクリメントしつつ、インプットストローブ信号に所定の変化が発生する毎に、TCRに指定した回数だけ、前記転送を繰り返す。これにより、ホストから送られるデータをCPUの介在なく、DTCが転送する。ただし、IAB、IDBを経由して、外部バスに接続された、セントロニクスインタフェースのデータレジスタおよびバッファRAMのリード/ライトを行うために、CPUを転送毎にストールすることになる。
【0310】
また、ステッピングモータの駆動において、DTCはタイマAのコンペアマッチ0割り込みによるデータ転送で、第1のデータ転送はRAMPからパルス出力装置の出力バッファレジスタNDRへバイトサイズ・リピートモードで転送し、第2のデータ転送はRAMPからタイマAの比較レジスタTCMRへワードサイズ・ノーマルモードで転送する。
【0311】
さらに、印字データの転送において、DTCはタイマBのコンペアマッチ0割り込みによるデータ転送では、印字データバッファから印字ヘッドへ、バイトサイズ・ブロック転送モードで転送する。
【0312】
また、CPUは、前記バッファRAMに格納されたデータに基づいてキャラクタジェネレートROMを参照し、前記データをフォントデータに変換する。そして、データを、たとえば一行分変換し、印字データバッファRAMに格納する。
【0313】
その後、DTCおよびタイマ、パルス出力回路を用いて、キャリッジリターンモータを駆動し、このキャリッジリターンモータの回転によって印字ヘッドが移動する。この印字ヘッドの移動に合わせて、印字データバッファから印字ヘッドへのデータ転送を行う。
【0314】
そして、印字データは1フォントの各列のデータを1ブロックとして転送し、たとえば1フォントが24×24ドットとし、前記1ブロックは24ビット、すなわち3バイトである。
【0315】
また、タイマBは、コンペアマッチ0によってタイマ出力端子に0レベル(ロウレベル)を出力し、このときの割り込みによってDTCを起動して3回のデータ転送を行う。このとき、3つのフォントデータの1列ずつを3回のブロック転送として転送する。
【0316】
さらに、コンペアマッチ1によってタイマ出力端子に1レベル(ハイレベル)を出力し、印字データは、このタイマ出力端子の0レベルから1レベルへの変化時に24ドットずつの3列が一括して印字される。
【0317】
また、SCI受信完了割り込みによるデータ転送では、SCIの送信データレジスタからRAMPのデータ領域へ、バイトサイズ・ノーマルモードで転送する。このとき、DTMRはH’2000を設定し、SARは送信データレジスタのアドレスを設定して固定とする。また、DARはRAMPの先頭アドレスを設定し、インクリメントとする。
【0318】
さらに、SCI送信完了割り込みによるデータ転送では、RAMPに用意された送信データをSCIの送信データレジスタへ、バイトサイズ・ノーマルモードで転送する。このとき、DTMRはH’8000を設定し、SARはRAMPの先頭アドレスを設定し、インクリメントとする。また、DARは送信データレジスタのアドレスを設定して固定とする。なお、送信完了割り込みフラグと送信開始ビットは共通とされる。
【0319】
以上のように、本実施例では任意の数の複数のブロック転送を行うことができ、たとえば多色の印刷を行うのに好適である。たとえば、3原色に対応した印字データを用意し、3回のブロック転送で、1色ずつの印字データをそれぞれの印字ヘッドに転送することができる。
【0320】
あるいは、3回のブロック転送で3行同時印刷を行うことなどにも好適であり、3回のブロック転送は、同一の起動要因、たとえばタイマのコンペアマッチであってもよいし、または独立した起動要因、たとえばIRQ1、2、3などとしてもよい。
【0321】
このようなことは、従来技術、たとえば前記平成5年3月、(株)日立製作所発行の「H8/3003 ハードウェアマニュアル」に記載されているDMACでは、全体のチャネル数の選択が制限されているために、図27のようなデータ転送を実現することはできない。これは、複数のブロック転送を行おうとすれば、そのほかの用途に用いることができるチャネルが減少してしまうためである。
【0322】
たとえば、いわゆるフルアドレスモードで4チャネル、ショートアドレスモードで8チャネルの場合、ブロック転送モードで3チャネルを使用すれば、残りはフルアドレスモードで1チャネル、ショートアドレスモードで2チャネルとなってしまう。
【0323】
これで、モータの駆動にショートアドレスモードで2チャネルを使用すれば、セントロニクスインタフェースのデータ受信や、SCIによるホストとのデータの送信および受信に用いることができなくなってしまう。
【0324】
ところが、本実施例では、論理的・物理的規模を増加させることなく、チャネル数の制限をなくしているために、任意の用途に任意の数の転送を実現することができ、使用上の制約をなくし、装置構成上の自由度を向上して使い勝手を向上させることができる。
【0325】
また、セントロニクスインタフェースのデータ転送や、印字データのデータ転送においては、外部セントロニクスインタフェースのデータレジスタや、バッファRAM、印字ヘッドなどをリード/ライトし、この間はCPUをストールする。しかしながら、これはデータ転送のデータリードおよびデータライトの時間に限定され、処理効率の低下を最低限にすることができ、少なくとも従来のDMACによるデータ転送と同等の処理性能を実現できる。
【0326】
さらに、CPUのプログラムをROMに配置し、CPUの外部バスの使用頻度がDTCよりも低い場合には、PAB、PDBを経由して外部バスを利用するようにすることもできる。
【0327】
続いて、図28により、図26のプリンタ制御装置において、リピートモードを用いたモータ駆動の動作例を説明する。
【0328】
なお、本実施例では、タイマAのコンペアマッチ0割り込みによって、前記の通り、DTCは2回のデータ転送を行い、第2のデータ転送は、RAMPからタイマAの比較レジスタTCMRへノーマルモードで転送し、第1のデータ転送は、RAMPからパルス出力装置の出力バッファレジスタNDRへリピートモードで転送し、パルス出力装置の出力バッファレジスタNDRへの転送を行う。
【0329】
このパルス出力装置は、タイマAのコンペアマッチ0信号が発生すると、NDRの内容をパルス出力するものである。従って、タイマAのコンペアマッチ0毎に第2のデータ転送により、タイマAの比較レジスタTCMRを書き換え、コンペアマッチ周期、すなわちパルス出力の間隔を変化させることができる。
【0330】
これによって、ステッピングモータの加速または減速を行うことができる。このモータの加速時(位相1)には、比較レジスタの内容を次第に小さくしてパルス出力間隔を短くしていけば良い。また、定速時(位相2)には同じ値を保持する。
【0331】
一方、モータの減速時(位相3)には、比較レジスタの内容を次第に大きくしてパルス出力間隔を短くしていけば良い。なお、タイマAのカウンタは、比較レジスタの内容と一致すると0にクリアされるように設定する。また、カウンタおよび比較レジスタはワードサイズとする。
【0332】
たとえば、第1のデータ転送は、位相1〜3を通じてリピートモードで、RAMPに格納したパルス出力データ、すなわちステッピングモータの励磁データをNDRへ転送する。この励磁データは、アドレスTS1を先頭としてNバイト格納しておく。
【0333】
さらに、第1のデータ転送のTCRHおよびTCRLにN(=BS1−TS1+1)を設定し、SARに励磁データの先頭アドレスTS1を設定する。また、SM1ビットを“1”にセット、SM0、DM1、DM0、MD1ビットをいずれも“0”にクリア、MD0、DTSビットを“1”にセット、Szビットを“0”にクリア、NXTEビットを“1”にセットする。
【0334】
そして、コンペアマッチ割り込み毎に、RAMPからNDRへデータ転送を行い、SARをインクリメント、TCRHをデクリメントして、アドレスBS1(=TS1+N−1)からNDRへデータ転送を行った後、TCRHがH’00になると、SAR−SM1・((−1)^SM0)・(2^Sz)・TCRLの演算、TCRLの内容のTCRHへの転送を行って、初期値を回復してデータ転送を継続する。
【0335】
このとき、全体の回転数をM1、加速・減速時の回転数をM2とし、コンペアマッチ周期は、RAMPに、アドレスTS2を先頭としてM2+1ワードをコンペアマッチ周期の大きい順に格納しておく。
【0336】
また、第2のデータ転送は、位相1でノーマルモード、SARインクリメント、DAR固定とする。すなわち、SM1ビットを“1”にセット、SM0、DM1、DM0、MD1、MD0ビットをいずれも“0”にクリア、Szビットを“1”にセット、NXTEビットを“0”にクリアする。また、TCRにM2を設定し、SARにコンペアマッチ周期の先頭アドレスTS2+2を設定する。
【0337】
そして、CPUが、DTC許可ビット(DTEB7)を“1”にセットし、アドレスTS2の内容を比較レジスタに書き込んでタイマAを動作させ、コンペアマッチ0割り込みを発生させればよい。このコンペアマッチ毎に、1ワードずつRAMPの内容を比較レジスタに転送を行い、コンペアマッチがM2回発生するとTCRが“0”になって、DTEB7ビットを“0”にクリアし、CPUに割り込みを要求して、DTCは第1のデータ転送も含めて一旦停止状態になる。
【0338】
さらに、位相2では、第2のデータ転送は、ノーマルモードでSARを固定とする。すなわち、SM1、SM0、DM1、DM0、MD1、MD0ビットをいずれも“0”にクリア、Szビットを“1”にセット、NXTEビットを“0”にクリアする。
【0339】
そして、前記割り込み要求によって、CPUは割り込み処理ルーチンを実行してTCRにM1−M2×2を設定し、前記の通りDTMRを設定する。さらに、DTEB7を“1”にセットし、コンペアマッチが発生すると、BS2(=TS2+(M2−1)×2)番地の内容を比較レジスタに転送する。そして、コンペアマッチがM1−M2×2回発生するとTCRが“0”になって、DTEB7ビットを“0”にクリアし、CPUに割り込みを要求して、DTCは第1のデータ転送も含めて一旦停止状態になる。
【0340】
さらに、位相3では、第2のデータ転送は、SARデクリメントとする。すなわち、SM1、SM0ビットをいずれも“1”にセット、DM1、DM0、MD1、MD0ビットをいずれも“0”にクリア、Szビットを“1”にセット、NXTEビットを“0”にクリアし、いずれもRAMPに格納したコンペアマッチ周期を比較レジスタTCMRへ転送する。
【0341】
そして、前記割り込み要求によって、CPUは割り込み処理ルーチンを実行してTCRにM2を設定し、前記の通りDTMRを設定する。さらに、DTEB7を“1”にセットし、コンペアマッチ0が発生すると、BS2番地の内容からアドレスを順次減算しつつ、RAMPの内容を比較レジスタに転送する。そして、コンペアマッチがM2回発生するとTCRが0になって、DTEB7ビットを“0”にクリアしてCPUに割り込みを要求し、DTCは第2のデータ転送も含めて停止する。
【0342】
さらに、この割り込み処理ルーチンを実行してM1回のコンペアマッチが発生し、ステッピングモータが所定回数回転し、印字ヘッドが所定量移動したものとしてタイマAを停止して動作を終了する。また、パルス出力装置も最後の出力値を保持しつつ停止する。さらに、パルス出力装置の出力を“0”にクリア(ロウレベルを出力)するようにしてもよい。
【0343】
この後、ステッピングモータを逆回転する場合には、第1のデータ転送は、SARに励磁データの最後のアドレスを設定、SM0ビットを“1”にセットする。そして、第1のデータ転送は、上記動作を繰り返せばよい。また、タイマAの比較レジスタの内容は、アドレスTS2の内容となっているのでCPUが転送を行う必要はない。
【0344】
以上のように、RAMPに設定したパルス出力データやコンペアマッチ周期は、システムに従って固定的であり、動作中に変更する必要はないと考えられる。このような動作中に、CPUが処理しないデータをデータ転送元とする場合には、RAMIを使用するよりRAMPを使用することが得策である。
【0345】
続いて、図29により、本実施例の変形例であるシングルチップマイクロコンピュータのブロック図を説明する。
【0346】
図29のシングルチップマイクロコンピュータは、図1のシングルチップマイクロコンピュータに対してダイレクトメモリアクセスコントローラ(DMAC)が追加されている。このDMACは、CPUと同様にIAB、IDBに接続され、またCPUとDMACは、BSCのバス権調停に基づいて互いに排他的に動作する。
【0347】
DMACは、起動要因として、CPUが所定の制御ビットを“1”にセットすることによって、データ転送を行うオートリクエストや、DMA要求端子に所定の信号が与えられたときにデータ転送を行う外部リクエスト機能を持つ。
【0348】
また、転送モードとして、オートリクエストのとき、CPUを停止し、バスを専有してデータ転送を行うバーストモードや、1回の転送毎にバス権を解放してCPUと交互に動作しつつ、データ転送を行うサイクルスチールモードを持ち、これらの点でDTCと相違される。
【0349】
また、DMACは、大規模なデータを1回に転送することに好適であり、この大規模データは、ROM、RAMIまたは外部メモリに格納するために、IAB、IDBに接続し、かつこれらを介して外部バスを使用するのが適当である。さらに、割り込みのイベントによるデータ転送をDTCで実現し、大規模データの転送にはDMACで実現することができる。
【0350】
従って、本実施例のシングルチップマイクロコンピュータによれば、内部アドレスバスIAB、データバスIDBは、CPU、ROM、RAMI、BSCに接続され、一方内部アドレスバスPAB、データバスPDBは、BSC、RAMP、タイマ、パルス出力回路、SCI、A/D変換器、割り込みコントローラ、IOP0〜11、さらにPDBがDTCに接続されることにより、以下の作用効果を得ることができる。
【0351】
(1).DTCのデータ転送情報をRAM上に配置し、DTC起動時にRAMからDTCに格納してデータ転送を行い、データ転送終了後にデータ転送情報をRAM上に退避することにより、DTCの物理的・論理的規模の増加を防ぐことができ、あるいは多数の起動要求または転送要求に対応できる。
【0352】
これによって、アドレスレジスタのビット数を十分に大きくでき、かつCPUに接続されたバスとDTCに接続されたバスを分離して、CPUとDTCの同時動作を可能としたことにより、シングルチップマイクロコンピュータの処理速度を向上させることができる。
【0353】
(2).それぞれのバスに別々のRAMを接続したことにより、CPUとDTCが互いに動作を制約することを少なくし、同時動作を容易にして、さらにシングルチップマイクロコンピュータの処理速度を向上させることができる。
【0354】
(3).1つの起動要求または転送要求で複数のデータ転送を可能としたことにより、CPUの負荷をさらに軽減して、さらにシングルチップマイクロコンピュータの処理速度を向上でき、またプログラムの作成効率を向上できる。さらに、任意の起動要因で、任意の数の転送を可能としたことにより、任意の用途に任意のデータ転送を行うことができ、使用上の制約をなくし、システム構成上の自由度を向上し、使い勝手を向上させることができる。
【0355】
(4).DTCのバス権優先順位をCPUより高くし、DTCの動作にバスを使用しない状態を含めることによって、CPUが長期間に渡って動作を停止させられることを防ぐことができ、処理速度の低下を最小限とすることができる。
【0356】
(5).データ転送情報を間接的に指定可能とすることにより、任意組数の転送情報を配置し、任意組数の任意の転送モードの転送を実現することができる。また、メモリの利用効率を向上させることができる。
【0357】
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0358】
たとえば、アドレスレジスタのビット数は32ビットに限定されるものではなく、CPUまたはシングルチップマイクロコンピュータのアドレス空間に応じて変更でき、たとえば16Mバイトのアドレス空間であれば24ビットとすればよく、あるいは転送対象を、I/OとRAMP間を含むアドレスに限定すれば16ビットなどとすることができ、またSARとDARのビット数を相異なるようにしてもよい。
【0359】
この場合に、ビット数を小さくすれば、レジスタファイルの全体的なバイト数を縮小でき、レジスタファイルのリード/ライトに要する時間を短縮でき、これによって起動が要求されてからデータ転送を行うまでの時間を短縮することができる。
【0360】
さらに、1つの起動要因で複数のデータ転送を行う場合に、起動要求から最後のデータ転送を行うまでの時間を短縮でき、リアルタイム性を向上でき、あるいはDTCの起動頻度が高い場合に、処理効率を向上でき、CPUがストールされる最大の時間を短縮することができる。
【0361】
また、CPUのプログラムは、ROMに配置するほか、外部メモリとすることができ、外部アドレス・外部データバスの入出力タイミングは、たとえばPAB、PDBと同様にすることができる。
【0362】
同様に、CPUの作業領域であるメモリはRAMIに限らず、外部メモリとすることができ、またROMまたはRAMIは内蔵しなくてもよく、この場合に、DTCとは切り離し可能なバスを介してCPUがプログラムのリードを行うことができればよい。
【0363】
また、DTCのベクタアドレスはRAMPとするほか、ROMに配置してもよく、この場合にはベクタアドレスのリード時にCPUをストールすることになるが、シングルチップマイクロコンピュータの動作開始後に、RAMPに所望のアドレスをライトする手順を省くことができる。
【0364】
同様に、DTCのレジスタファイルについても、RAMPに配置するほか、外部メモリとすることができ、この場合にはPAB、PDBに接続された入出力ポートまたはバッファ回路を介して、外部アドレス入出力、データの入出力を行うようにすればよい。
【0365】
また、RAMPはリード/ライト可能なメモリであればよく、たとえばEEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブルROM)などとすることができる。
【0366】
さらに、RAMIとRAMPを1つのメモリモジュールで構成し、いわゆるデュアルポートRAMとしてもよく、この場合にCPUとDTCが同時にRAMをリード/ライトした場合には、一方がウェイトされるが、その他の場合には上記実施例の通り動作できる。
【0367】
また、DTC、割り込みコントローラ、BSCの具体的な回路構成についても種々変更可能である。
【0368】
以上の説明では、主として本発明者によってなされた発明をその利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、これに限定されるものではなく、その他の半導体集積回路装置、たとえばデジタルシグナルプロセッサ(DSP)を中心にした半導体集積回路装置にも適用可能であり、本発明は、少なくともデータ処理装置とデータ転送装置を内蔵した半導体集積回路装置について広く適用可能である。
【0369】
【発明の効果】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、下記のとおりである。
【0370】
(1).データ処理装置の使用する第1のバスとデータ転送装置の使用する第2のバスを分離可能とし、データ処理装置の第1のバス使用とデータ転送装置の第2のバス使用を同時に行うことを可能とし、さらにデータ処理装置とデータ転送装置のそれぞれの動作に必要な機能ブロックまたはモジュールをそれぞれのバスによって接続し、特にデータ転送装置の転送情報を第2の記憶手段に設け、データ転送装置と第2の記憶手段を第2のバスで直接接続し、この第2の記憶手段から転送情報を取り出してデータ転送装置が動作できるようにすることによって、データ転送装置の転送情報を記憶密度の高い第2の記憶手段に設けることができるので、物理的規模を縮小し、シングルチップマイクロコンピュータまたは半導体集積回路の製造費用を削減し、あるいは適正な規模または製造費用で転送チャネル数の増大が可能となる。
【0371】
(2).前記(1) により、システム構成上の自由度を向上させることができるので、使い勝手の向上が可能となる。
【0372】
(3).前記(1) により、データ処理装置とデータ転送装置を同時に動作させることができるので、シングルチップマイクロコンピュータまたは半導体集積回路の処理速度の向上が可能となる。
【0373】
(4).前記(1) 〜(3) により、物理的、論理的規模の増大を最小限とし、多数の割り込みによるデータ転送を可能とし、かつ処理効率を向上させることができる半導体集積回路装置、特に中央処理装置とデータ転送装置を内蔵したシングルチップマイクロコンピュータを得ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例の半導体集積回路装置であるシングルチップマイクロコンピュータの主要部を示すブロック図である。
【図2】本実施例のシングルチップマイクロコンピュータの割り込み要因を示す説明図である。
【図3】本実施例のシングルチップマイクロコンピュータにおけるアドレスマップの説明図である。
【図4】本実施例のシングルチップマイクロコンピュータにおけるアドレスバス、データバスの構成図である。
【図5】本実施例におけるデータトランスファコントローラ(DTC)のレジスタ構成図である。
【図6】本実施例におけるDTCモードレジスタ(DTMR)の構成図である。
【図7】本実施例におけるDTCのレジスタ機能の説明図である。
【図8】本実施例におけるDTCのブロック図である。
【図9】本実施例におけるDTCレジスタのメモリ上での構成図である。
【図10】本実施例におけるDTC許可レジスタの構成図である。
【図11】本実施例における割り込みコントローラのブロック図である。
【図12】本実施例におけるバスコントローラのブロック図である。
【図13】本実施例におけるバスの動作状態の第1の状態を示す説明図である。
【図14】本実施例におけるバスの動作状態の第2の状態を示す説明図である。
【図15】本実施例におけるバスの動作状態の第3の状態を示す説明図である。
【図16】本実施例におけるDTCの動作フローチャートである。
【図17】本実施例におけるDTCの図16におけるステップ1の動作フローチャートである。
【図18】本実施例におけるDTCの図16におけるステップ2の動作フローチャートである。
【図19】本実施例におけるDTCの図16におけるステップ3のノーマルモードの動作フローチャートである。
【図20】本実施例におけるDTCの図16におけるステップ3のリピートモードの動作フローチャートである。
【図21】本実施例におけるDTCの図16におけるステップ3のブロック転送モードの動作フローチャートである。
【図22】本実施例におけるDTCの図16におけるステップ4の動作フローチャートである。
【図23】本実施例における内部バスの動作タイミングの第一の例を示すタイミング図である。
【図24】本実施例における内部バスの動作タイミングの第二の例を示すタイミング図である。
【図25】本実施例におけるブロック転送モードの動作例を示す説明図である。
【図26】本実施例のシングルチップマイクロコンピュータを用いたプリンタ制御装置の主要部を示すブロック図である。
【図27】本実施例のシングルチップマイクロコンピュータを用いた図26のプリンタ制御装置におけるDTCの使用方法の一例を示す説明図である。
【図28】本実施例のシングルチップマイクロコンピュータを用いた図26のプリンタ制御装置におけるリピートモードを用いたモータ駆動の動作例を示す説明図である。
【図29】本実施例の変形例であるシングルチップマイクロコンピュータの主要部を示すブロック図である
【符号の説明】
CPU 中央処理装置(データ処理装置)
DTC データトランスファコントローラ(データ転送装置)
ROM リードオンリメモリ(第3の記憶手段)
RAMI ランダムアクセスメモリ(第1の記憶手段)
RAMP ランダムアクセスメモリ(第2の記憶手段)
SCI シリアルコミュニケーションインタフェース
A/D A/D変換器
IOP0〜11 入出力ポート
BSC バスコントローラ(バス制御手段)
CPG クロック発振器
IAB,PAB,DTAB 内部アドレスバス
IDB 内部データバス(第1のバス)
PDB 内部データバス(第2のバス)
I/O データ入出力回路(データ入出力手段)
VAR ベクタアドレスレジスタ
SAR ソースアドレスレジスタ
DAR デスティネーションレジスタ
BTCR ブロック転送カウントレジスタ
TCR 転送カウントレジスタ
DTMR モードレジスタ
DB データバッファ
AB アドレスバッファ
MIF バスインタフェース
AU 算術演算回路
VAG ベクタアドレス生成回路
DTERA〜D DTC許可レジスタ
CGROM キャラクタジェネレートROM
DMAC ダイレクトメモリアクセスコントローラ
Claims (17)
- データ処理装置とデータ転送装置とバス制御手段とデータ入出力手段と第1記憶手段と第2記憶手段とを有する半導体集積回路装置であって、
前記データ処理装置と前記バス制御手段と前記第1記憶手段とは第1のバスに接続されており、
前記バス制御手段と前記データ入出力手段と前記第2記憶手段とは第2のバスに接続されており、
前記第1のバスは第1のデータバスと第1のアドレスバスとを含み、
前記第2のバスは第2のデータバスと第2のアドレスバスとを含み、
前記データ転送装置のデータバッファは前記第2のデータバスに接続されるとともに、前記データ転送装置のアドレス出力は前記第1および第2のアドレスバスから独立した第3のアドレスバスにより前記バス制御手段に接続され、
前記データ転送装置は、転送開始信号に応じて、前記第2記憶手段に格納されている転送元アドレスと転送先アドレスとの間でデータ転送を行い、
前記データ入出力手段は、前記転送元アドレスあるいは前記転送先アドレスで指定されるアドレスを有し、
前記バス制御手段は、前記データ転送装置から前記第3のアドレスバスを介して転送元または転送先のアドレスを受け取り、前記受け取ったアドレスを用いて前記データ転送装置にバス権を与えるか否かを決定し、前記データ転送装置が前記第1記憶手段にアクセスする場合は前記第1のバスと前記第2のバスとを結合し、前記データ転送装置が前記第2記憶手段または前記データ入出力手段にアクセスする場合は前記第1のバスと前記第2のバスとを分離することを特徴とする半導体集積回路装置。 - 請求項1において、
前記第2記憶手段は、前記データ転送装置が行う転送の回数を指定する転送カウントデータおよび転送のモードを指定する転送モードデータとを格納していることを特徴とする半導体集積回路装置。 - 請求項1または2において、
前記バス制御手段は、前記第1のアドレスバスと接続するための第1ノードと、前記第2のアドレスバスと接続するための第2ノードと、前記第3のアドレスバスと接続するための第3ノードとを有し、
前記データ転送装置が前記第2記憶手段にアクセスする場合に、前記データ転送装置から出力されるアドレスは、前記第3のアドレスバス、前記バス制御手段、そして前記第2のアドレスバスを介して前記第2記憶手段に供給されることを特徴とする半導体集積回路装置。 - 請求項3において、
前記データ転送装置が前記第1記憶手段にアクセスする場合に、前記データ転送装置から出力されるアドレスは、前記第3のアドレスバス、前記バス制御手段、そして前記第1のアドレスバスを介して前記第1記憶手段に供給されることを特徴とする半導体集積回路装置。 - 請求項1乃至4のいずれかにおいて、
前記半導体集積回路装置は、さらに、割り込み制御手段を有し、
前記データ入出力手段は、前記割り込み制御手段に対して割り込み要求を出力し、
前記割り込み制御手段は、前記割り込み要求に応じて、前記データ処理装置に対して割り込み信号を出力し、前記データ転送装置に対して転送開始要求信号を出力することを特徴とする半導体集積回路装置。 - 請求項5において、
前記割り込み制御手段は割り込み制御情報を有しており、
前記割り込み制御情報は、前記データ転送装置のデータ転送の完了に応じて設定変更されることを特徴とする半導体集積回路装置。 - 請求項1乃至6のいずれかにおいて、
前記第2記憶手段は、前記データ処理装置および前記データ転送装置により、データの読み出しまたは書き込みが可能なランダムアクセスメモリであることを特徴とする半導体集積回路装置。 - 請求項1において、
前記半導体集積回路装置は、さらに、第3記憶手段とデータ入出力バッファとを有し、
前記第1記憶手段は、前記データ処理装置の作業領域として使用される領域を有し、
前記第2記憶手段は、前記データ転送装置がデータの転送に使用するデータ転送情報を有し、
前記第3記憶手段は、前記データ処理装置が実行するプログラム情報を有し、
前記データ入出力バッファは、前記第1のバスと外部バスとに接続され、
前記データ入出力手段は、前記データ転送装置に対して、前記データ転送情報に基づくデータ転送の要求を行うことを特徴とする半導体集積回路装置。 - 請求項8において、
前記第2記憶手段に格納された前記データ転送情報は、前記データ処理装置により更新されることを特徴とする半導体集積回路装置。 - データ処理装置とデータ転送装置とデータ入出力手段と割り込み制御手段と第1記憶手段と第2記憶手段と制御回路とを有する半導体集積回路装置であって、
前記データ処理装置と前記第1記憶手段とは第1のアドレスバスと第1のデータバスとに接続され、
前記データ入出力手段と前記第2記憶手段とは第2のアドレスバスに接続され、
前記データ入出力手段と前記データ転送装置のデータ入力端子と前記第2記憶手段とは第2のデータバスに接続され、
前記データ転送装置のアドレス出力は前記第1および第2のアドレスバスから独立した第3のアドレスバスにより前記制御回路に接続され、
前記割り込み制御手段は、割り込み要求信号に応じて、前記データ転送装置に対して転送開始信号を出力し、
前記制御回路は、前記第1のデータバスと前記第2のデータバスとに接続され前記第1のデータバスあるいは前記第2のデータバスにデータを供給するデータバスバッファと、前記第1のアドレスバスと前記第2のアドレスバスとに接続され前記第1のアドレスバスあるいは前記第2のアドレスバスにアドレスを供給するアドレスバスバッファとを有し、バス要求信号に応じて前記データ転送装置が前記第3のアドレスバスを介して出力するアドレスに基づき前記データバスバッファと前記アドレスバスバッファとの動作を制御するとともに、前記第3のアドレスバスを介して供給されたアドレスを用いて前記データ転送装置にバス権を与えるか否かを決定する回路であることを特徴とする半導体集積回路装置。 - 請求項10において、
前記半導体集積回路装置は、さらに、アドレス判定回路とバス権調停回路とシーケンス制御回路とを有し、
前記アドレス判定回路は、前記第1のアドレスバスと前記データ転送装置のアドレス出力端子とに接続され、前記アドレス出力端子が出力するアドレスが前記データ入出力手段のアドレスを示しているかもしくは前記第1のアドレスバス上のアドレスが前記データ入出力手段のアドレスを示しているかどうかを判定し、
前記バス権調停回路は、前記アドレス判定回路の判定信号と前記データ転送装置のバス要求信号と前記データ処理装置のバス要求信号とを受け、前記データ処理装置と前記データ転送装置からバス要求が行われた場合、前記データ転送装置にバス権を認めるバスの調停を行い、
前記シーケンス制御回路は、前記バス権調停回路の出力に接続され、前記アドレスバスバッファと前記データバスバッファとを制御することを特徴とする半導体集積回路装置。 - データ処理装置とデータ転送装置とバス制御手段とデータ入出力手段と第1記憶手段と第2記憶手段とを有する半導体集積回路装置であって、
前記データ処理装置と前記バス制御手段と前記第1記憶手段とは第1のバスに接続されており、
前記バス制御手段と前記データ入出力手段と前記第2記憶手段とは第2のバスに接続されており、
前記第1のバスは第1のデータバスと第1のアドレスバスとを含み、
前記第2のバスは第2のデータバスと第2のアドレスバスとを含み、
前記データ転送装置のデータバッファは前記第2のデータバスに接続されるとともに、前記データ転送装置のアドレス出力は前記第1および第2のアドレスバスから独立した第3のアドレスバスにより前記バス制御手段に接続され、
前記第2記憶手段は、第1のアドレスと第2のアドレスとを格納し、
前記データ転送装置は、転送開始信号に応じて、前記第1のアドレスまたは前記第2のアドレス間でのデータ転送を行い、
前記バス制御手段は、前記第3のアドレスバスを介して供給されたアドレスおよび前記データ処理装置からのバス権要求信号を使用して前記データ処理装置にバス権を与えるか否かを決定し、前記データ処理装置が前記第2記憶手段もしくは前記データ入出力手段にアクセスする場合、または前記データ転送装置が前記第1記憶手段にアクセスする場合、前記第1のバスと前記第2のバスとを結合し、前記データ処理装置が前記第1記憶手段にアクセスする場合、または前記データ転送装置が前記第2記憶手段もしくは前記データ入出力手段にアクセスする場合、前記第1のバスと前記第2のバスとを分離することを特徴とする半導体集積回路装置。 - 請求項12において、
前記バス制御手段は、前記第1のアドレスバスと接続するための第1ノードと、前記第2のアドレスバスと接続するための第2ノードと、前記第3のアドレスバスと接続するための第3ノードとを有し、
前記データ転送装置が前記第2記憶手段にアクセスする場合に、前記データ転送装置から出力されるアドレスは、前記第3のアドレスバス、前記バス制御手段、そして前記第2のアドレスバスを介して前記第2記憶手段に供給されることを特徴とする半導体集積回路装置。 - 請求項13において、
前記データ転送装置が前記第1記憶手段にアクセスする場合に、前記データ転送装置から出力されるアドレスは、前記第3のアドレスバス、前記バス制御手段、そして前記第1のアドレスバスを介して前記第1記憶手段に供給されることを特徴とする半導体集積回路装置。 - 請求項12乃至14のいずれかにおいて、
前記半導体集積回路装置は、さらに、割り込み制御手段を有し、
前記データ入出力手段は、前記割り込み制御手段に対して割り込み要求を出力し、
前記割り込み制御手段は、前記割り込み要求に応じて、前記データ処理装置に対して割り込み信号を出力し、前記データ転送装置に対して転送開始要求信号を出力することを特徴とする半導体集積回路装置。 - 請求項15において、
前記割り込み制御手段は割り込み制御情報を有しており、
前記割り込み制御情報は、前記データ転送装置のデータ転送の完了に応じて設定変更されることを特徴とする半導体集積回路装置。 - 請求項12乃至16のいずれかにおいて、
前記第2記憶手段は、前記データ処理装置および前記データ転送装置により、データが書き込まれるランダムアクセスメモリであることを特徴とする半導体集積回路装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27801193A JP3619532B2 (ja) | 1993-11-08 | 1993-11-08 | 半導体集積回路装置 |
KR1019940028709A KR100349791B1 (ko) | 1993-11-08 | 1994-11-03 | 반도체집적회로장치 |
US08/777,273 US5809259A (en) | 1993-11-08 | 1997-01-06 | Semiconductor integrated circuit device |
US08/822,026 US5930488A (en) | 1993-11-08 | 1997-03-24 | Semiconductor integrated circuit device with a central processing unit, a data transfer controller and a memory storing data transfer parameters |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27801193A JP3619532B2 (ja) | 1993-11-08 | 1993-11-08 | 半導体集積回路装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003386363A Division JP3936694B2 (ja) | 2003-11-17 | 2003-11-17 | 半導体集積回路装置および半導体集積回路装置のデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07129537A JPH07129537A (ja) | 1995-05-19 |
JP3619532B2 true JP3619532B2 (ja) | 2005-02-09 |
Family
ID=17591400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27801193A Expired - Fee Related JP3619532B2 (ja) | 1993-11-08 | 1993-11-08 | 半導体集積回路装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US5809259A (ja) |
JP (1) | JP3619532B2 (ja) |
KR (1) | KR100349791B1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW328195B (en) * | 1996-07-04 | 1998-03-11 | Seiko Denshi Kk | The semiconductor IC for communication and its electricity-economized method |
US6070205A (en) * | 1997-02-17 | 2000-05-30 | Ssd Company Limited | High-speed processor system having bus arbitration mechanism |
JPH11194995A (ja) * | 1997-12-26 | 1999-07-21 | Mitsubishi Electric Corp | Dram内蔵マイクロプロセッサ及びdram内蔵マイクロプロセッサのデータ転送方法 |
US6073200A (en) * | 1998-01-27 | 2000-06-06 | Vlsi Technology, Inc. | System having processor monitoring capability of an integrated circuits buried, internal bus for use with a plurality of internal masters and a method therefor |
US6763448B1 (en) | 1999-02-16 | 2004-07-13 | Renesas Technology Corp. | Microcomputer and microcomputer system |
US6995808B2 (en) * | 2002-01-24 | 2006-02-07 | Sige Semiconductor Inc. | Television tuner |
JP2002024166A (ja) * | 2000-07-05 | 2002-01-25 | Sharp Corp | 画像処理システム並びにそれを用いた半導体装置およびディジタルスチルカメラ装置 |
WO2005003945A1 (ja) * | 2003-07-02 | 2005-01-13 | Ssd Company Limited | 情報処理装置、情報処理システム、操作物、情報処理方法、情報処理プログラム、及び、ゲームシステム |
JP2006215812A (ja) * | 2005-02-03 | 2006-08-17 | Renesas Technology Corp | Dmaコントローラ |
US7822899B2 (en) | 2007-03-08 | 2010-10-26 | Renesas Electronics Corporation | Data processor and control system |
JP4994254B2 (ja) * | 2007-03-08 | 2012-08-08 | ルネサスエレクトロニクス株式会社 | データプロセッサ及び制御システム |
US20080273475A1 (en) * | 2007-05-03 | 2008-11-06 | Microsoft Corporation | Reconfigurable computer bus |
JP5441219B2 (ja) * | 2009-06-26 | 2014-03-12 | ルネサスエレクトロニクス株式会社 | 半導体装置及びシリアルインタフェース回路 |
JP6266308B2 (ja) * | 2013-11-07 | 2018-01-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP6275474B2 (ja) | 2013-12-25 | 2018-02-07 | ルネサスエレクトロニクス株式会社 | 半導体装置及びデータ転送装置 |
JP6316593B2 (ja) | 2014-01-07 | 2018-04-25 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP6433191B2 (ja) * | 2014-08-18 | 2018-12-05 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
JP2018085130A (ja) * | 2018-01-10 | 2018-05-31 | ルネサスエレクトロニクス株式会社 | データ転送装置及び半導体装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5427741A (en) * | 1977-08-03 | 1979-03-02 | Toshiba Corp | Information processing organization |
JPS5597625A (en) * | 1979-01-17 | 1980-07-25 | Fanuc Ltd | Bus connection system |
US4456965A (en) * | 1980-10-14 | 1984-06-26 | Texas Instruments Incorporated | Data processing system having multiple buses |
JP2886856B2 (ja) * | 1986-04-09 | 1999-04-26 | 株式会社日立製作所 | 二重化バス接続方式 |
US4912636A (en) * | 1987-03-13 | 1990-03-27 | Magar Surendar S | Data processing device with multiple on chip memory buses |
US5175841A (en) * | 1987-03-13 | 1992-12-29 | Texas Instruments Incorporated | Data processing device with multiple on-chip memory buses |
JPH0648461B2 (ja) * | 1987-07-09 | 1994-06-22 | 日本電気株式会社 | マイクロプログラムの転送レジスタ指定方式 |
US4947366A (en) * | 1987-10-02 | 1990-08-07 | Advanced Micro Devices, Inc. | Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities |
US5142672A (en) * | 1987-12-15 | 1992-08-25 | Advanced Micro Devices, Inc. | Data transfer controller incorporating direct memory access channels and address mapped input/output windows |
US5131081A (en) * | 1989-03-23 | 1992-07-14 | North American Philips Corp., Signetics Div. | System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers |
JPH0711793B2 (ja) * | 1989-07-13 | 1995-02-08 | 株式会社東芝 | マイクロプロセッサ |
US5125080A (en) * | 1989-11-13 | 1992-06-23 | Chips And Technologies, Incorporated | Logic support chip for AT-type computer with improved bus architecture |
JP2910303B2 (ja) * | 1990-06-04 | 1999-06-23 | 株式会社日立製作所 | 情報処理装置 |
KR960001273B1 (ko) * | 1991-04-30 | 1996-01-25 | 가부시키가이샤 도시바 | 단일칩 마이크로컴퓨터 |
JP3059520B2 (ja) * | 1991-05-24 | 2000-07-04 | キヤノン株式会社 | データ処理装置及びファクシミリ装置 |
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JPH0530516A (ja) * | 1991-07-19 | 1993-02-05 | Sony Corp | カラー撮像装置 |
JPH0561951A (ja) * | 1991-08-30 | 1993-03-12 | Fujitsu Ltd | イメージ処理装置 |
US5414866A (en) * | 1991-10-29 | 1995-05-09 | Rohm Co., Ltd. | One-chip microcomputer with parallel operating load and unload data buses |
JPH05307616A (ja) * | 1992-04-30 | 1993-11-19 | Hitachi Ltd | 半導体装置 |
-
1993
- 1993-11-08 JP JP27801193A patent/JP3619532B2/ja not_active Expired - Fee Related
-
1994
- 1994-11-03 KR KR1019940028709A patent/KR100349791B1/ko not_active IP Right Cessation
-
1997
- 1997-01-06 US US08/777,273 patent/US5809259A/en not_active Expired - Lifetime
- 1997-03-24 US US08/822,026 patent/US5930488A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5809259A (en) | 1998-09-15 |
KR100349791B1 (ko) | 2003-01-24 |
US5930488A (en) | 1999-07-27 |
JPH07129537A (ja) | 1995-05-19 |
KR950015100A (ko) | 1995-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3619532B2 (ja) | 半導体集積回路装置 | |
JPH0652102A (ja) | データ転送装置 | |
JPH08221353A (ja) | データ処理システムにおいてデータを多次元転送する方法 | |
JP2001216194A (ja) | 演算処理装置 | |
JP2845433B2 (ja) | 集積回路装置 | |
JPH10207717A (ja) | マイクロコンピュータ | |
JPH01120660A (ja) | マイクロコンピュータ装置 | |
EP0331487B1 (en) | Data transfer control system | |
JP3936694B2 (ja) | 半導体集積回路装置および半導体集積回路装置のデータ転送方法 | |
JP2004227049A (ja) | データ転送装置、半導体集積回路及びマイクロコンピュータ | |
JP3708979B2 (ja) | 半導体集積回路 | |
JP3490101B2 (ja) | データ転送制御装置、及び半導体集積回路装置 | |
JP2797760B2 (ja) | 並列処理コンピュータシステム | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
JP3704927B2 (ja) | プログラマブルコントローラ | |
JP3067253B2 (ja) | データ処理装置 | |
JP2001056793A (ja) | 情報処理装置 | |
JPH0736806A (ja) | Dma方式 | |
JPH08286999A (ja) | 半導体集積回路装置およびそれを用いたコンピュータシステム | |
JP2526644B2 (ja) | デ―タ処理装置 | |
JP3270149B2 (ja) | データ転送装置 | |
JP2002024157A (ja) | Dma処理方法およびdma処理装置 | |
JP2687716B2 (ja) | 情報処理装置 | |
JPH08137784A (ja) | 情報処理装置 | |
JP3474143B2 (ja) | 2ポートマイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041115 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071119 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091119 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |