JP3611049B2 - 内部レジスタ回路 - Google Patents
内部レジスタ回路 Download PDFInfo
- Publication number
- JP3611049B2 JP3611049B2 JP27796194A JP27796194A JP3611049B2 JP 3611049 B2 JP3611049 B2 JP 3611049B2 JP 27796194 A JP27796194 A JP 27796194A JP 27796194 A JP27796194 A JP 27796194A JP 3611049 B2 JP3611049 B2 JP 3611049B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- address
- access
- internal
- bit length
- 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
Landscapes
- Executing Machine-Instructions (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Description
【産業上の利用分野】
本発明は、外部データバスのビット長nに比べて長いビット長の内部レジスタを少なくとも1つ含む複数の内部レジスタを有し、複数のこれら内部レジスタのいずれか1つをアドレス指定して選択し、又、前記ビット長nより長いビット長の選択された前記内部レジスタに対しては前記ビット長n単位で部分毎にアクセスするようにした内部レジスタ回路に係り、特に、前記内部レジスタへの書き込みアクセスや読み出しアクセスをより容易に行えるようにした内部レジスタ回路に関する。
【0002】
【従来の技術】
コンピュータシステムの中心となるCPU(central processing unit )は、主な構成として、ALU(arithmetic logical unit )や、種々のレジスタ、又、全体のタイミングをコントロールする制御回路等を備える。又、前記レジスタには、例えば、前記ALUでの演算に用いられるアキュムレータや汎用レジスタ等と共に、プログラムカウンタがある。
【0003】
又、一般的なコンピュータは、通常、CPUが種々の周辺装置、例えば主記憶装置や入出力装置等にアクセスする際には、所定のシステムバスが用いられている。このようなシステムバスによれば、コンピュータ内のプログラム命令やデータの伝送路を共通化することができ、コンピュータ内の周辺装置のインタフェイスの統一を図ることができる。更に、このようなシステムバスによれば、コンピュータハードウエア全体に占める、インタフェイス部の規模を小さくすることができる。
【0004】
このようなシステムバスに接続される入出力装置は、動作や機能を設定するためのシステムバスを介してCPUからアクセスされる、コントロールレジスタ(CR:control resister)等のレジスタを備えるものである。
【0005】
例えば、MPU(micro processor unit)を中心として構成されるマイクロコンピュータのシステムのため、MPUの周辺チップとして、PIO(programmed input output)チップやUSART(universal synchronous asynchronous receiver transmitter)チップが用意されている。更に、DMA(direct memory access)コントローラチップ等も用意されている。
【0006】
このようなPIOチップ、USARTチップ、又DMAコントローラチップ等では、通常、動作パターンや機能を設定するための種々の内部レジスタを備えている。例えば、PIOチップでは、各I/O(input /output)ポートの信号の入出力方向やビット数等を設定するための内部レジスタを有する。又、USARTチップでは、シリアルデータからパラレルデータへ、あるいはパラレルデータからシリアルデータへ変換する際の、動作パターンや機能を設定するための内部レジスタを有している。例えばUSARTチップでは、シリアル通信を非同期式で行うかあるいは同期式で行うか、シリアル通信におけるデータ転送速度、又データ受信の際の割り込みの設定等を行うためのコントロールレジスタと称する一種の内部レジスタを備えている。
【0007】
更に、DMAコントローラチップでは、DMA転送の際の転送元アドレスを記憶するレジスタ(ソースアドレスレジスタ)や、転送先アドレスを記憶するレジスタ(デスティネーションアドレスレジスタ)等と共に、種々の動作パターンを設定するための内部レジスタを備えている。又、米国インテル社製「8237」チップ等のようにファースト・ラスト・フリップフロップと称するものを備えるものもある。
【0008】
図3は、従来からのファースト・ラスト・フリップフロップを有するDMAコントローラの内部レジスタ回路を中心としたブロック図である。
【0009】
この図3において、DMAコントローラの特に内部レジスタ回路は、ソースアドレスレジスタSRとデスティネーションアドレスレジスタDRと、コントロールレジスタCRと、ファースト・ラスト・フリップフロップ14Cと、上位/下位選択用セレクタ24A〜24Cと、内部レジスタ選択デコーダ18Cと、レジスタ選択用バッファ22A〜22Cとにより構成されている。
【0010】
まず16ビット長の前記ソースアドレスレジスタSRは、DMA転送の際の転送元のスタートアドレスを記憶する。該ソースアドレスレジスタSRは、それぞれ8ビット長のソースアドレスレジスタSR0及びSR1により構成される。前記ソースアドレスレジスタSR0がLSB(least significant bit )側となり、前記ソースアドレスレジスタSR1がMSB(most significant bit)側となる。
【0011】
又、16ビット長の前記デスティネーションアドレスレジスタDRは、DMA転送の際の、転送元のスタートアドレスを記憶する。該デスティネーションアドレスレジスタDRは、それぞれ8ビット長のデスティネーションアドレスレジスタDR0及びDR1によって構成される。前記デスティネーションアドレスレジスタDR0がLSB側となり、前記デスティネーションアドレスレジスタDR1がMSB側となる。
【0012】
16ビット長の前記コントロールレジスタCRは、DMA転送の際の動作パターンや機能を設定するためのレジスタである。又、該コントロールレジスタCRには、DMA転送の際の、転送されるデータの数(ワード数)も設定される。該コントロールレジスタCRについても、それぞれ8ビット長のコントロールレジスタCR0及びCR1によって構成される。
【0013】
前記内部レジスタ選択デコーダ18Cは、外部からのアドレスバスAの信号をデコードする。即ち、前記アドレスバスAの信号に従って、該内部レジスタ選択デコーダ18Cは、前記レジスタ選択用バッファ22A〜22C・・・のいずれか1つを選択する。
【0014】
前記ファースト・ラスト・フリップフロップ14Cには、この図3に示される内部レジスタのいずれか1つに対してアクセスする際にH状態となる、制御信号26Aが入力されている。該ファースト・ラスト・フリップフロップ14Cは、該制御信号26Aの論理状態の立下がりにおいて、記憶されていた論理状態を反転する。
【0015】
このようなDMAコントローラの内部レジスタ回路によれば、前記制御信号26Aを入力しながら入力する前記アドレスバスAからのアドレス信号によって、前記内部レジスタSR、BR、CR・・・のいずれか1つを選択しアクセスすることができる。この際、第1回目のアクセスの際、前記ファースト・ラスト・フリップフロップ14Cの出力はL状態とされ、前記内部レジスタSR、DR、CR・・・のいずれかのLSB側の8ビット、即ち、前記内部レジスタSR0、DR0、CR0・・・のいずれかを、制御信号27Aによって前記上位/下位選択用セレクタ24A〜24Cを切り替えることでアクセスすることができる。
【0016】
この後、2回目のアクセスの際は、前記制御信号26Aの直前の立下がりによって前記ファースト・ラスト・フリップフロップ14Cへ記憶されていたL状態の論理状態は反転され、H状態となる。このため、この2回目のアクセスでは、8ビット長の前記データバスDを介して、前記内部レジスタSR、DR、CR・・・のMSB側、即ち、前記内部レジスタSR1、DR1、CR1・・・のいずれかをアクセスすることができる。
【0017】
このような内部レジスタ回路によれば、8ビット長の前記データバスDにて、これよりも長い16ビット長の前記内部レジスタSR、DR、CR・・・へ容易にアクセスすることができる。
【0018】
又、このような内部レジスタ回路へ割り付けられるアドレスについては、前記内部レジスタSR、DR、CR・・・のLSB側の8ビットと、MSB側の8ビットとは共通となっている。例えば、前記ソースアドレスレジスタSR0のアドレスと、前記ソースアドレスレジスタSR1のアドレスとは共通となっている。従って、このような内部レジスタ回路によれば、8ビット単位でアクセスされる各内部レジスタSR0、DR0、CR0・・・SR1、DR1、CR1・・・へ割り付けられるアドレスの数を半分にすることができる。
【0019】
例えば、前記ソースアドレスレジスタSRや、前記デスティネーションアドレスレジスタDRのビット長が前記データバスDのビット長nに対してより長くされるものもあり、又内部レジスタの数がより増加されるものもある。例えば、前記ソースアドレスレジスタSRや前記デスティネーションアドレスレジスタDRとして、32ビット長のものを用いる場合もある。このような場合で8ビット長単位でアクセスする際には、各内部レジスタに対して4個のアドレスを設定すると、全体として非常に多くのアドレスを割り当てる必要が生じてしまう。しかしながら、前記図3に示したような内部レジスタ回路によれば、I/Oアドレスを各内部レジスタのLSB側の16ビットで1つ共用し、MSB側の16ビットで1つ共用するようにすれば、割り当てられるI/Oアドレスを削減することができる。又、連続してアクセスすることのある複数の内部レジスタを、同一のアドレス空間に割り付けることができる。
【0020】
【発明が達成しようとする課題】
ここで、DMAコントローラの内部レジスタ回路において、原則的には、前記ソースアドレスレジスタSRのLSB側の更新とMSB側の更新とは、一般に一対でなされるものである。又、前記デスティネーションアドレスレジスタDRや前記コントロールレジスタCRについても同様である。
【0021】
しかしながら、利用方法によっては、前記ソースアドレスレジスタSRや前記デスティネーションアドレスレジスタDRの、例えばLSB側の8ビットのみ更新すれば十分である場合もある。
【0022】
このような場合には、前記図3に示される内部レジスタ回路においては、前記ファースト・ラスト・フリップフロップ14Cに記憶される論理状態を初期化するための手順を行う必要があった。例えば、LSB側の前記ソースアドレスレジスタSR0へのみアクセスした後、やはりLSB側の前記デスティネーションアドレスレジスタDR0へアクセスする場合には、前記ソースアドレスレジスタSR1へのアクセスの後にH状態となった前記ファースト・ラスト・フリップフロップ14Cの論理状態をL状態へ初期設定するため、例えば前述の「8237」チップ等では、「クリア・ファースト・ラスト・フリップフロップ・コマンド」を実行する必要があった。
【0023】
このような「クリア・ファースト・ラスト・フリップフロップ・コマンド」を要するため、例えばDMA転送に先立って行うDMAコントローラの設定プログラムが長くなってしまい、繁雑になってしまう。又、このように「クリア・ファースト・ラスト・フリップフロップ・コマンド」を用いるようにしたものでは、本来このコマンドを必要とするのに、このコマンドを落してしまうというミスが起りうる。この場合、予期しない内部レジスタに対してアクセスされてしまい、誤った動作を行わせてしまう。このようにコマンドを誤って落してしまった場合、このことを見出すことは比較的困難な場合がある。
【0024】
本発明は、前記従来の問題点を解決するべくなされたもので、外部データバスのビット長nに比べて長いビット長の内部レジスタを少なくとも1つ含む複数の内部レジスタを有し、複数のこれら内部レジスタのいずれか1つをアドレス指定して選択し、又、前記ビット長nより長いビット長の選択された前記内部レジスタに対しては、前記ビット長n単位で部分毎にアクセスするようにした内部レジスタ回路において、前記内部レジスタへの書き込みアクセスや読み出しアクセスをより容易に行えるようにした内部レジスタ回路を提供することを目的とする。
【0025】
【課題を達成するための手段】
本発明は、外部データバスのビット長nに比べて長いビット長の内部レジスタを少なくとも1つ含む複数の内部レジスタを有し、複数のこれら内部レジスタのいずれか1つをアドレス指定して選択し、又、前記ビット長nより長いビット長の選択された前記内部レジスタに対しては前記ビット長n単位で部分毎にアクセスするようにした内部レジスタ回路において、複数の前記内部レジスタのいずれか1つに対して行った直前のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)を記憶する直前アドレスレジスタと、該直前アドレスレジスタへ記憶されるアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)と、複数の前記内部レジスタのいずれか1つに対して行う今回のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)との一致を判定するアドレス比較器と、前記ビット長nより長いビット長の選択された前記内部レジスタの1つに対して前記ビット長n単位で部分毎にアクセスする際に、アクセスする部分の位置を記憶し、且つ、アクセスする部分の位置を指定するインクリメンタリレジスタとを備え、前記比較器にて不一致と判定された場合、前記インクリメンタリレジスタをリセットするようにしたことにより、前記課題を達成したものである。
【0026】
又、前記内部レジスタ回路において、前記内部レジスタの少なくとも1つが、何らかのアドレスを記憶するものであって、更に、前記ビット長nより長いビット長の選択された前記内部レジスタの1つに対して前記ビット長n単位で部分毎にアクセスする際には、当該内部レジスタのLSB側から順にアクセスするようにされていることにより、前記課題を達成すると共に、例えばDMAコントローラ等のアドレス設定に構成をより適合させ、アクセスの容易化をより図っている。
【0027】
【作用】
前記図3に示した従来の内部レジスタ回路においては、LSB側の内部レジスタへのみアクセスし、このMSB側の内部レジスタへはアクセスしない場合には、前記ファースト・ラスト・フリップフロップ14Cを初期化する必要がある点に、本発明は着目し、なされている。
【0028】
従来については、前述のように例えば「クリア・ファースト・ラスト・フリップフロップ・コマンド」等を用いている。ここで、本発明においては、このようなコマンドを用いることなく、前記ファースト・ラスト・フリップフロップ14Cを自動的に初期化する構成を見出しなされたものである。
【0029】
ここで、内部レジスタ回路において今回行うアクセスのアドレスと、この直前のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)とが一致する場合、前回のアクセスはLSB側の内部レジスタに対するアクセスであって、今回のアクセスはこのMSB側の内部レジスタに対するアクセスとなるのが一般的である。一方、今回のアクセスのアドレスに対して、直前のアクセスのアドレス又はアクセスの種類(読み出しアクセスあるいは書き込みアクセス)が不一致の場合、前記ファースト・ラスト・フリップフロップ14Cへ記憶される論理状態の意味がなくなる。このため、このような不一致の場合、2回目のアクセスに先立って前記ファースト・ラスト・フリップフロップ14Cを初期化する必要があるのが一般的である。
【0030】
このような点に着目し、本発明においては、内部レジスタ回路中の複数の前記内部レジスタの1つに対して行った、直前のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)を、直前アドレスレジスタにて記憶するようにしている。又、今発明においては、該直前アドレスレジスタへ記憶されるアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)と、複数の前記内部レジスタの1つに対して行う今回のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)との一致を、比較器にて判定するようにしている。該比較器にて不一致と判定された場合、本発明においては前記ファースト・ラスト・フリップフロップ14Cをリセット(初期化)するようにしている。
【0031】
このように、本発明においては、直前にアクセスしたアドレスと異なる内部レジスタに対して今回アクセスを行う場合、あるいは直前のアクセスと異なる種類のアクセスを行う場合には、前記ファースト・ラスト・フリップフロップ14Cが自動的にリセット(初期化)される。この、直前のアクセスと異なる種類のアクセスを行う場合とは、前回に読み出しアクセスを行って今回には書き込みアクセスを行う場合、又は、前回に書き込みアクセスを行って今回には読み出しアクセスを行う場合である。従って、前述のように前記ファースト・ラスト・フリップフロップ14Cが自動的にリセットされるため、前記図3の従来のような「クリア・ファースト・ラスト・フリップフロップ・コマンド」の必要がなく、内部レジスタへの書き込みアクセスや読み出しアクセスをより容易に行うことが可能である。
【0032】
なお、前記図3の従来のものでは、16ビット長の前記ソースアドレスレジスタSR等は、8ビット単位で2回に分けてアクセスするようにされている。しかしながら、本発明はこのようなものに限定されるものではなく、2回以上に分けて順次アクセスするようなものであってもよい。例えば32ビット長の内部レジスタを、8ビット単位で4回に分け順次アクセスするようなものであってもよい。このような場合には、前記ファースト・ラスト・フリップフロップ14Cに対応するものとして、少なくとも、データバスのビット長単位で順次アクセスする回数以上の状態を区別して記憶することができるカウンタを備える必要がある。
【0033】
例えば後述する第2実施例の、部分アドレスレジスタ14aやインクリメンタ14bのようなものを備える必要がある。このようなものであっても、本発明を適用し、前記直前アドレスレジスタへ記憶されるアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)と、複数の前記内部レジスタの1つに対して行う今回のアクセスのアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)とが不一致の場合、このような部分アドレスレジスタ14aの初期化を行えばよい。
【0034】
【実施例】
以下、図を用いて本発明の実施例を詳細に説明する。
【0035】
図1は、DMAコントローラに用いられる本発明が適用された内部レジスタ回路の第1実施例のブロック図である。
【0036】
この図1に示される如く、本第1実施例の内部レジスタ回路は、内部レジスタ群3Aと、内部レジスタ選択デコーダ18Aと、アドレス比較器16とによって構成されている。又、前記内部レジスタ群3Aは、ソースアドレスレジスタSRと、デスティネーションアドレスレジスタDRと、コントロールレジスタCRと、I/Oアクセス数値化回路5と、直前アドレスレジスタ12と、ファースト・ラスト・フリップフロップ14Aとにより構成されている。
【0037】
まず、前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDR及び前記コントロールレジスタCRについては、それぞれ、前記図3の従来のものと同様に構成されている。
【0038】
前記I/Oアクセス数値化回路5には、IO読み出し信号IORD及びIO書き込み信号IOWRが入力されている。前記ソースアドレスレジスタSRや、前記デスティネーションアドレスレジスタDRや、前記コントロールレジスタCR等に対する読み出しアクセスの際には前記IO読み出し信号IORDがH状態となり、書き込みアクセスの際には前記IO書き込み信号IOWRがH状態となる。又、該I/Oアクセス数値化回路5は、読み出しアクセスの際には“0(L状態)”の信号Bを出力し、書き込みアクセスの際には“1(H状態)”の該信号Bを出力する。
【0039】
又、前記直前アドレスレジスタ12は、前記アドレスバスAを経て外部から入力される、前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDRあるいは前記コントロールレジスタCRのいずれか1つを選択する、直前のI/Oアクセスのアドレスを記憶すると共に、該直前のI/Oアクセスの種類を数値化する前記I/Oアクセス数値化回路5から入力される、前記信号Bの論理状態を記憶する。ここで、該信号Bの論理状態を記憶することで、直前のI/Oアクセスの種類を示す論理状態(ビットデータ)が記憶される。
【0040】
前記ファースト・ラスト・フリップフロップ14Aは、前記ファースト・ラスト・フリップフロップ14Cに相当するものである。該ファースト・ラスト・フリップフロップ14Aへ記憶される論理状態によって、前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDRあるいは前記コントロールレジスタCRのいずれか1つに対してアクセスする際、該アクセスがLSB側の8ビットに対してか、あるいはMSB側の8ビットに対してかを選択するものである。
【0041】
具体的には、前記ファースト・ラスト・フリップフロップ14AへL状態が記憶される初期状態では、前記アドレスバスAから入力されるアドレス信号に応じ、前記ソースアドレスレジスタSR0、前記デスティネーションアドレスレジスタDR0あるいは前記コントロールレジスタCR0のいずれか1つを、前記内部レジスタ選択デコーダ18Aによって選択する。一方、前記ファースト・ラスト・フリップフロップ14AへH状態が記憶される場合、前記ソースアドレスレジスタSR1、前記デスティネーションアドレスレジスタDR1あるいは前記コントロールレジスタCR1のいずれか1つを、前記内部レジスタ選択デコーダ18Aによって選択する。
【0042】
ここで、前記直前アドレスレジスタ12は、このように前記アドレスバスAから入力されるアドレス信号及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)を記憶する。該直前アドレスレジスタ12の記憶するアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)の更新のタイミングは、前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDRあるいは前記コントロールレジスタCRへのアクセスの直後で、且つ、次のアクセス以前のタイミングである。具体的には、前記制御信号26Aの立下がりのタイミングである。
【0043】
又、前記アドレス比較器16は、前記直前アドレスレジスタ12へ記憶されるアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)と、今回のアクセスに際して入力される、前記アドレスバスAのアドレス信号のアドレス及びアクセスの種類(読み出しアクセスあるいは書き込みアクセス)とを比較する。該比較の際、不一致と判定された場合、該アドレス比較器16は、制御信号26Bによって、前記ファースト・ラスト・フリップフロップ14Aに記憶される論理状態を初期化する。即ち、該ファースト・ラスト・フリップフロップ14Aへ記憶される論理状態をL状態に初期化する。このように不一致と判定される場合は、I/Oアクセスのアドレスの不一致、又はI/Oアクセスの種類(読み出しアクセスあるいは書き込みアクセスという、アクセスの種類)の不一致の、少なくともいずれか一方の不一致の場合である。
【0044】
このように、本第1実施例によれば、LSB側の前記ソースアドレスレジスタSR0、前記デスティネーションアドレスレジスタDR0あるいは前記コントロールレジスタCR0のいずれかの内部レジスタにアクセスした後、これとは異なる別の内部レジスタのLSB側の前記ソースアドレスレジスタSR0、前記デスティネーションアドレスレジスタDR0あるいは前記コントロールレジスタCR0へアクセスする場合、あるいは同一のアドレスへのアクセスながら前回と異なるアクセスの種類(読み出しアクセスの後の書き込みアクセス、又はその逆)でアクセスする場合、前記アドレス比較器16からの前記制御信号26Bによって、前記ファースト・ラスト・フリップフロップ14Aが自動的に初期化される。このため、前記図3に示した従来のもののように、例えば「クリア・ファースト・ラスト・フリップフロップ・コマンド」等は不必要となる。従って、本第1実施例によれば、本発明を適用し、内部レジスタへの書き込みアクセスや読み出しアクセスをより容易に行うことができる。
【0045】
図2は、DMAコントローラに用いられる本発明が適用された内部レジスタ回路の第2実施例のブロック図である。
【0046】
この図2に示されるように、本第2実施例については、前記ソースアドレスレジスタSRは、それぞれが8ビット長のソースアドレスレジスタSR0〜SR2によって構成されている。又、前記デスティネーションアドレスレジスタDRは、それぞれが8ビット長のデスティネーションアドレスレジスタDR0〜DR2によって構成される。又、前記図3の従来の前記ファースト・ラスト・フリップフロップ14Cに対応するものとして、あるいは前記第1実施例の前記ファースト・ラスト・フリップフロップ14Aに対応するものとして、部分アドレスレジスタ14a及びインクリメンタ14bにて構成されるインクリメンタリレジスタを備える。
【0047】
又、内部レジスタ選択デコーダ18Bは、前記第1実施例の前記内部レジスタ選択デコーダ18Aに相当するものである。該内部レジスタ選択デコーダ18Bは、前記アドレスバスAにて外部から入力されるアドレス信号と、前記部分アドレスレジスタ14aから入力される部分アドレスA3とに従って、前記ソースアドレスレジスタSR0〜SR2のいずれか1つ、前記デスティネーションアドレスレジスタDR0〜DR2のいずれか1つ、あるいは前記コントロールレジスタCR0、CR1のいずれか一方を選択する。
【0048】
このような本第2実施例において、前記内部レジスタ選択デコーダ18Bは、“0”〜“2”の値をとる前記アドレスバスAからの2本のアドレス線によるアドレス信号に応じて、前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDR、あるいは前記コントロールレジスタCRのいずれか1つを選択する。前記アドレスバスAから“0”のアドレスが入力される場合、前記内部レジスタ選択デコーダ18Bは、前記ソースアドレスレジスタSR0〜SR2のいずれか1つを選択する。“1”が前記アドレスバスAから入力される場合、該内部レジスタ選択デコーダ18Bは、前記デスティネーションアドレスレジスタDR0〜DR2のいずれか1つを選択する。更に、該内部レジスタ選択デコーダ18Bは、前記アドレスバスAから“2”が入力される場合、前記コントロールレジスタCR0あるいはCR1を選択する。
【0049】
ここで、前記部分アドレスレジスタ14aの初期値は“0”である。該部分アドレスレジスタ14aは、前記ソースアドレスレジスタSR0〜SR2いずれか、あるいは、前記デスティネーションアドレスレジスタDR0〜DR2のいずれか1つ、あるいは、前記コントロールレジスタCR0、CR1へアクセスする毎に、その値が順次インクリメント(値を“1”だけ増加)する。このインクリメントは、前記インクリメンタ14bによって行われる。
【0050】
ここで、前記内部レジスタ選択デコーダ18Bは、前記アドレスバスAにて外部から入力されるアドレス信号にて選択した前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDR、あるいは前記コントロールレジスタCRの、これら内部レジスタの選択されたものについて、LSB側部分、中央部分、あるいはMSB側部分のいずれか1つを選択する。
【0051】
例えば、前記アドレスバスAのアドレスが“1”で前記部分アドレスレジスタ14aへ記憶され出力されるアドレスA3が“1”の場合、前記デスティネーションアドレスレジスタDR1が選択される。あるいは、前記アドレスバスAのアドレスが“2”であって、且つ、前記アドレスA3が“0”の場合、前記コントロールレジスタCR0が選択される。又、前記アドレスA3が2であれば、前記アドレスバスAのアドレスに従って、前記レジスタSR2又はDR2が選択される。
【0052】
以下、具体例を用い、本第2実施例の作用を説明する。
【0053】
まず、前記ソースアドレスレジスタSR0〜SR2の3バイトに対して、1バイトずつ順次読み出しアクセスする場合を考える。
【0054】
ここで、前記部分アドレスレジスタ14Aに記憶される初期値は“0”とする。このとき、前記アドレスバスAへ“0”のアドレスを入力し読み出しアクセスを行うと、前記ソースアドレスレジスタSR0が選択され、読み出しアクセスすることができる。該アクセスの後に、前記部分アドレスレジスタ14aへ記憶されるアドレスは、前記インクリメンタ14bにてインクリメントされる。
【0055】
続いて前記アドレスバスAから“0”を入力しながら読み出しアクセスをすると、前記部分アドレスレジスタ14aの値は“1”であるため、今度は前記ソースアドレスレジスタSR1が選択され、読み出しアクセスできる。次に、前記アドレスバスAへ“2”を入力しながらアクセスすると、今度は前記部分アドレスレジスタ14aの値は“2”となっているため、前記ソースアドレスレジスタSR2の選択がなされ、読み出しアクセスができる。なお、この後、前記部分アドレスレジスタ14aの値は“0”へリセットされる。具体的には、該部分アドレスレジスタ14aは、記憶される値が“2”で且つ前記制御信号26Aが立下がると、このタイミングでリセットされ、この記憶する値が“0”となる。
【0056】
ここで、以上の前記ソースアドレスレジスタSR0〜SR2に対する説明は読み出しアクセスについてであるが、同ソースアドレスレジスタSR0〜SR2に対する書き込みアクセスについても同様である。即ち、以上のこの説明の「読み出しアクセス」を「書き込みアクセス」と読み換えたものとなる。
【0057】
次に、前記ソースアドレスレジスタSR0のアクセスの後に、前記デスティネーションアドレスレジスタDR0をアクセスする場合は次のとおりである。
【0058】
即ち、まず前記部分アドレスレジスタ14aの値が“0”であるとする。ここで、前記アドレスバスAから“0”のアドレスを入力すると、前記ソースアドレスレジスタSR0が前記内部レジスタ選択デコーダ18B等によって選択され、アクセスできる。
【0059】
この後、前記デスティネーションアドレスレジスタDR0をアクセスすべく、前記アドレスバスAから“1”のアドレスを入力する。このとき、この“1”のアドレスは、直前のアクセスのアドレス、即ち前記ソースアドレスレジスタSR0に対して行ったアクセスの際のアドレス“0”とは異なる。このため、前記アドレス比較器16は、このようなアドレスの不一致を検出し、前記制御信号26Bによって前記部分アドレスレジスタ14aの値を“0”にリセットする。
【0060】
このため、このような今回のアクセスの際には、前記アドレスバスAの“1”と前記部分アドレスレジスタ14aに記憶される“0”の部分アドレスA3に従って、前記内部レジスタ選択デコーダ18Bは前記デスティネーションアドレスレジスタDR0を選択する。この今回のアクセスの際には、前記部分アドレスレジスタ14a、即ち前記図3に示した従来の前記ファースト・ラスト・フリップフロップ14Cに対応するもののリセットは自動的に行われるため、従来のような「クリア・ファースト・ラスト・フリップフロップ・コマンド」の実行は不要となる。
【0061】
次に、前記ソースアドレスレジスタSR0の書き込みアクセスの後に、該ソースアドレスレジスタSR0を読み出しアクセスする場合は次のとおりである。
【0062】
即ち、まず前記部分アドレスレジスタ14aの値が“0”であるとする。ここで、前記アドレスバスAから“0”のアドレスを入力すると、前記ソースアドレスレジスタSR0が前記内部レジスタ選択デコーダ18B等によって選択され、書き込みアクセスできる。
【0063】
この後、該ソースアドレスレジスタSR0に対して読み出しアクセスすべく、前記アドレスバスAから“0”のアドレスを入力する。このとき、このアクセスの種類は読み出しアクセスであり、直前のアクセスの種類、即ち書き込みアクセスとは異なる。このため、前記アドレス比較器16は、このようなアクセスの種類の不一致を検出し、前記制御信号26Bによって前記部分アドレスレジスタ14aの値を“0”にリセットする。
【0064】
このため、このような今回のアクセスの際には、アクセスの種類の不一致の検出に従って、前記内部レジスタ選択デコーダ18Bは前記ソースアドレスレジスタSR0を選択する。この今回のアクセスの際には、前記部分アドレスレジスタ14a、即ち前記図3に示した従来の前記ファースト・ラスト・フリップフロップ14Cに対応するもののリセットは自動的に行われるため、従来のような「クリア・ファースト・ラスト・フリップフロップ・コマンド」の実行は不要となる。
【0065】
以上説明したとおり、本第2実施例についても、本発明を適用し、内部レジスタ、即ち前記ソースアドレスレジスタSR、前記デスティネーションアドレスレジスタDR又前記コントロールレジスタCRへの書き込みアクセスや読み出しアクセスをより容易に行えるようにすることができる。又、本第2実施例については、前記第1実施例と異なり、前記ソースアドレスレジスタSRや前記デスティネーションアドレスレジスタDRが特に3バイト構成となっている。このようなものに対しても、本第2実施例については、前記部分アドレスレジスタ14a及び前記インクリメンタ14bで構成される本発明を適用したインクリメンタリレジスタを用いて対応することができている。
【0066】
なお、本発明は、前記第1実施例や前記第2実施例の如く、DMAコントローラに用いられる内部レジスタ回路に限定されるものではない。しかしながら、このようなDMAコントローラに用いられる内部レジスタ回路や、あるいは、種々のタイマやカウンタ等に内蔵される内部レジスタ回路にはより有効である。これは、DMAコントローラやタイマ、又カウンタ等は、データバス等を介してアクセスするビット長よりも長い内部レジスタを備えているのが一般的であるためである。又、このような内部レジスタは、例えばアドレス等が記憶されるものであり、このようにビット長が長い内部レジスタについては、所定のビット長毎に、順次アクセスすることが多いためである。
【0067】
ここで、このように所定のビット長毎に1つの内部レジスタに対して順次アクセスする場合、当該内部レジスタのLSB側から順次アクセスするように構成することが好ましい。これは、所定のビット長単位でアクセスされる内部レジスタについては、例えばその一部分のみ更新する場合、MSB側のものよりもLSB側のものの方がより更新する頻度が高いためである。
【0068】
又、前記図3に示した従来の内部レジスタ回路等、前述のように「クリア・ファースト・ラスト・フリップフロップ・コマンド」を用いるようにしたものでは、本来このコマンドを必要とするのに、このコマンドを落してしまうというミスがある。この場合、予期しない内部レジスタに対してアクセスされていしまい、誤った動作を行わせてしまう。このようにコマンドを誤って落してしまった場合、このことを見出すことは比較的困難な場合がある。しかしながら、本発明にあってはこのようなコマンドを用いないため、プログラムの信頼性をより向上することができるという利点もある。
【0069】
更に、本発明によれば、このように「クリア・ファースト・ラスト・フリップフロップ・コマンド」がないため、内部レジスタへデータを設定するためのプログラムを短縮することもできる。例えば、前記ソースアドレスレジスタSRや前記デスティネーションアドレスレジスタDRのLSB側の、前記ソースアドレスレジスタSR0や前記デスティネーションアドレスレジスタDR0へのみアクセスすることを多数行うことも考えられる。この場合、本発明によれば、従来その都度行っていた「クリア・ファースト・ラスト・フリップフロップ・コマンド」が不要となるため、プログラムの長さを非常に短縮することが可能である。
【0070】
一般に、DMAコントローラでは、転送元あるいは転送先となるメモリ空間は、ある程度限られた範囲となっているものである。従って、転送元アドレスや転送先アドレスの変更範囲も限られている。即ち、MSB側の前記ソースアドレスレジスタSR1や前記デスティネーションアドレスレジスタDR1の更新の頻度は比較的少ないものである。従って、LSB側の前記ソースアドレスレジスタSR0や前記デスティネーションアドレスレジスタDR0へのみのアクセスが頻繁に生じると考えられる。このような場合には、本発明はより有効であり、内部レジスタへアクセスするためのプログラムをより容易に行うことが可能であり、又このようなプログラムがより一層短縮される。又、このような内部レジスタへのアクセスのプログラムの実行時間の短縮をも図ることが可能である。
【0071】
【発明の効果】
以上説明したとおり、本発明によれば、内部レジスタへの書き込みアクセスや読み出しアクセスをより容易に行うことができ、更に、このようなアクセスのためのプログラムの簡略化や、プログラム長の短縮、プログラム実行時間の短縮等を図ることができるという優れた効果を得ることができる。
【図面の簡単な説明】
【図1】DMAコントローラ等に用いられる本発明が適用された内部レジスタ回路の第1実施例のブロック図
【図2】DMAコントローラ等に用いられる本発明が適用された内部レジスタ回路の第2実施例のブロック図
【図3】DMAコントローラ等に用いられる従来の内部レジスタ回路のブロック図
【符号の説明】
3A、3B…内部レジスタ群
12…直前アドレスレジスタ
14A、14C…ファースト・ラスト・フリップフロップ
14a…部分アドレスレジスタ
14b…インクリメンタ
16…アドレス比較器
18A〜18C…内部レジスタ選択デコーダ
22A〜22C…レジスタ選択用バッファ
24A〜24C…上位/下位選択用セレクタ
26A、26B、27A…制御信号
A…アドレスバス
CR…コントロールレジスタ
D…データバス
DR…デスティネーションアドレスレジスタ
SR…ソースアドレスレジスタ
Claims (2)
- 外部データバスのビット長nに比べて長いビット長の内部レジスタを少なくとも1つ含む複数の内部レジスタを有し、複数のこれら内部レジスタのいずれか1つをアドレス指定して選択し、又、前記ビット長nより長いビット長の選択された前記内部レジスタに対しては前記ビット長n単位で部分毎にアクセスするようにした内部レジスタ回路において、
複数の前記内部レジスタのいずれか1つに対して行った直前のアクセスのアドレス及びアクセスの種類を記憶する直前アドレスレジスタと、
該直前アドレスレジスタへ記憶されるアドレス及びアクセスの種類と、複数の前記内部レジスタのいずれか1つに対して行う今回のアクセスのアドレス及びアクセスの種類との一致を判定するアドレス比較器と、
前記ビット長nより長いビット長の選択された前記内部レジスタの1つに対して前記ビット長n単位で部分毎にアクセスする際に、アクセスする部分の位置を記憶し、且つ、アクセスする部分の位置を指定するインクリメンタリレジスタとを備え、
前記比較器にて不一致と判定された場合、前記インクリメンタリレジスタをリセットするようにしたことを特徴とする内部レジスタ回路。 - 請求項1において、
前記内部レジスタの少なくとも1つが、何らかのアドレスを記憶するものであって、
更に、前記ビット長nより長いビット長の選択された前記内部レジスタの1つに対して前記ビット長n単位で部分毎にアクセスする際には、当該内部レジスタのLSB側から順にアクセスするようにされていることを特徴とする内部レジスタ回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27796194A JP3611049B2 (ja) | 1994-11-11 | 1994-11-11 | 内部レジスタ回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27796194A JP3611049B2 (ja) | 1994-11-11 | 1994-11-11 | 内部レジスタ回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08137747A JPH08137747A (ja) | 1996-05-31 |
JP3611049B2 true JP3611049B2 (ja) | 2005-01-19 |
Family
ID=17590692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27796194A Expired - Fee Related JP3611049B2 (ja) | 1994-11-11 | 1994-11-11 | 内部レジスタ回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3611049B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4514173B2 (ja) * | 2000-10-13 | 2010-07-28 | キヤノン株式会社 | データ処理方法および画像処理装置 |
-
1994
- 1994-11-11 JP JP27796194A patent/JP3611049B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08137747A (ja) | 1996-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4839797A (en) | Microprocessor compatible with any software represented by different types of instruction formats | |
JP2633331B2 (ja) | マイクロプロセッサ | |
US4716527A (en) | Bus converter | |
KR0160128B1 (ko) | 동적으로 버스제어를 실행하는 마이크로컴퓨터 및 그것을 이용한 데이터처리시스템 | |
US4271466A (en) | Direct memory access control system with byte/word control of data bus | |
US5642489A (en) | Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management | |
US5542053A (en) | Bridge interface between two buses of a computer system with a direct memory access controller programmed by a scatter/gather programmer | |
US5623697A (en) | Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension | |
US4631671A (en) | Data processing system capable of transferring single-byte and double-byte data under DMA control | |
JPH039492B2 (ja) | ||
US4583163A (en) | Data prefetch apparatus | |
JPS6259822B2 (ja) | ||
US5432943A (en) | Data processing apparatus having interruption control unit | |
KR920008448B1 (ko) | 데이터 프로세서 | |
US4188662A (en) | Address converter in a data processing apparatus | |
US5119487A (en) | Dma controller having programmable logic array for outputting control information required during a next transfer cycle during one transfer cycle | |
US5321400A (en) | Serial data interface circuit dealing with a plurality of receiving modes | |
EP0338564B1 (en) | Microprogram branching method and microsequencer employing the method | |
US4575796A (en) | Information processing unit | |
JP3611049B2 (ja) | 内部レジスタ回路 | |
US5742842A (en) | Data processing apparatus for executing a vector operation under control of a master processor | |
JP2011039964A (ja) | エンディアン変換回路、エンディアン変換方法及びマイクロコントローラ | |
JPH0443302B2 (ja) | ||
JPS62210559A (ja) | Dma回路 | |
JPH11120114A (ja) | データ受渡装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040720 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040909 |
|
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: 20041012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20041013 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20041013 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041013 |
|
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: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101029 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |