JP2011103017A - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP2011103017A
JP2011103017A JP2009256799A JP2009256799A JP2011103017A JP 2011103017 A JP2011103017 A JP 2011103017A JP 2009256799 A JP2009256799 A JP 2009256799A JP 2009256799 A JP2009256799 A JP 2009256799A JP 2011103017 A JP2011103017 A JP 2011103017A
Authority
JP
Japan
Prior art keywords
data
bit
output
register
cpu
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
JP2009256799A
Other languages
English (en)
Inventor
Hironori Miyazaki
裕規 宮崎
Toshifumi Hamaguchi
敏文 浜口
Shinya Muramatsu
伸哉 村松
Hiroyuki Odawara
裕幸 小田原
Takashi Nishihara
高志 西原
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009256799A priority Critical patent/JP2011103017A/ja
Publication of JP2011103017A publication Critical patent/JP2011103017A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

【課題】従来の出力回路において、出力バッファの貫通電流に起因するノイズを低減するための遅延回路を出力回路に挿入しているので、出力回路の数が増加するほど回路面積が増加するという課題がある。
【解決手段】制御部2は、CPU1からの書き込み要求Qを受け付けて出力回路5に対するイネーブル信号Siを生成するとともに書き込みデータDwを一時的に保持し出力回路5へ転送する機能を有し、出力回路5は、複数の1ビット出力部51〜54をもち、個々の1ビット出力部は、制御部2から送られてくる書き込みデータDwをイネーブル信号Siのタイミングで書き込むためのレジスタRとレジスタのデータを外部へ出力するための出力バッファBとを備え、さらに、複数の1ビット出力部51〜54におけるデータ書き込みの実効的なタイミングをずらす機能を制御部2またはCPU1に持たせた構成としている。
【選択図】図1

Description

本発明は、出力回路を持つマイクロコントローラにかかわり、特には、出力バッファの貫通電流に起因するノイズの抑制において出力回路の数が増加しても回路面積の増加を抑えるようにするための技術に関する。
図15は従来のマイクロコントローラに備わっている出力回路の構成を示す回路図である。出力回路とは、マイクロコントローラの外部にデータを出力するための回路である。出力回路は複数の1ビット出力部からなり、各1ビット出力部は1ビットのデータを出力するものである。図15において、7は内部バス、8は出力回路、81,82,83,84は出力回路8を構成する1ビット出力部である。1ビット出力部81〜84のそれぞれは、マスターラッチ信号S11でラッチされるマスターラッチ91と、スレーブラッチ信号S12でラッチされるスレーブラッチ92と、スレーブラッチ92からの出力データを入力した上でマイクロコントローラ外部へ出力する出力バッファ93とを備えている。出力回路8には、さらに、スレーブラッチ信号S12を順次に遅延させる遅延回路94,95,96が設けられている。
書き込みデータが内部バス7を介して1ビット出力部81,82,83,84に到達し、マスターラッチ信号S11により全ビット同時にマスターラッチ91にラッチされ、1ビット目の1ビット出力部81においては、マスターラッチ91にラッチされた書き込みデータがスレーブラッチ信号S12によってスレーブラッチ92にラッチされる。次いで、スレーブラッチ信号S12が遅延回路94,95,96により順次遅れた互いに異なるタイミングで各スレーブラッチ92に到達する。したがって、1ビット目ないし3ビット目の1ビット出力部82,83,84の各スレーブラッチ92では、1ビットずつ順番に異なるタイミングで書き込みデータがラッチされ、出力バッファ93を通って外部に出力される。
1ビット出力部81〜84における各出力バッファ93の状態が“0”→“1”または“1”→“0”のように遷移するときに出力バッファ93に貫通電流が流れるが、その状態遷移が1ビットずつタイミングがずれているため、貫通電流は時間的に分散される。その結果、多大な貫通電流が流れることに起因して発生する電源・GNDノイズは、これを抑えることができる。
特開平5−100778号公報
図16を用いて従来技術の課題を説明する。図15の構成の出力回路8が多数、内部バス7に並列に接続されている。個々の出力回路8にはそれぞれ3つの遅延回路94,95,96が設けられている。したがって、従来技術にあっては、遅延回路94,95,96の数と出力回路8の数とは比例するので、出力回路8の接続数が多いほど、遅延回路94,95,96の数が増加し、マイクロコントローラの面積が増加するといった問題がある。
本発明は、このような事情に鑑みて創作したものであり、出力バッファの貫通電流に起因するノイズの抑制を実現しながら、出力回路数が増加しても回路面積の増加を抑えることができるようにすることを目的としている。
本発明は、次のような手段を講じることにより上記の課題を解決する。
(1)本発明のマイクロコントローラは、その構成要素として、CPU(中央演算処理装置)と制御部と出力回路とを含んでいる。制御部は、CPUからの書き込み要求を受け付けて出力回路に対するイネーブル信号を生成するとともに、CPUから送られてくる書き込みデータを一時的に保持し、出力回路へ転送する機能を有している。出力回路は、複数の1ビット出力部の組み合わせで構成されている。個々の1ビット出力部は、制御部から送られてくる書き込みデータを、同じく制御部からのイネーブル信号のタイミングで書き込むためのレジスタと、レジスタのデータを外部へ出力するための出力バッファを備えている。このような構成を前提として、出力回路における複数の1ビット出力部の出力バッファで貫通電流が大きくならないようにするために、本発明では、複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を、従来技術の場合のように出力回路側に持たせるのではなく、制御部またはCPUの側に持たせている。この項には後述する図1を参照することが可能である。この項でのキーワードは、「複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を、制御部またはCPUの側に持たせる」である。
すなわち、複数の遅延回路を出力回路内に設ける代わりに、複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を制御部かCPUに持たせているのである。このようにすることにより、複数の1ビット出力部でのデータ出力のタイミングは互いにずれたものとなって、各出力バッファで貫通電流の発生が生じてもそのタイミングは分散することになるので、貫通電流に起因するノイズの発生を抑制することが可能となる。加えて、制御部またはCPUでのデータ書き込みの実効的なタイミングをずらす機能は出力回路の数が増えても共用化されるものであるので、出力回路の増加に対して回路規模を増加させる必要はない。
(2)複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を制御部に持たせる1つの態様として、CPUからの書き込み要求を受け取る制御部の構成として、その書き込み要求に基づいて書き込みタイミングを制御するイネーブル信号を生成するにおいて、タイミングが相互にずれた複数のイネーブル信号を生成するものとして構成しておけばよい。この項には後述する図2を参照することが可能である。この項でのキーワードは、「タイミングが相互にずれた複数のイネーブル信号」である。
こうすれば、出力回路における複数の1ビット出力部にとっては、制御部から送られてくるイネーブル信号が1ビット出力部ごとにすでにタイミングがずれたものとなっていることになる。よって、複数の1ビット出力部でのデータ出力のタイミングは互いにずれたものとなり、貫通電流の発生タイミングは分散することになるので、貫通電流に起因するノイズの発生を抑制することが可能となる。複数の1ビット出力部それぞれに遅延回路は必要なく、代わりに制御部側でイネーブル信号を遅延させるための遅延回路が必要であるが、この制御部での遅延回路は出力回路の数が増えても共用化されるものであるので、出力回路の増加に対して制御部での遅延回路を増加させる必要はない。
(3)複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能をCPUに持たせる態様として、制御部に送り込む複数ビットの書き込みデータについて、1ビットずつ変化させて順に送り出すようにCPUを構成し、制御部が出力回路に出力するイネーブル信号としては複数の1ビット出力部に共通単一のイネーブル信号としておけばよい。この項には後述する図3を参照することが可能である。この項でのキーワードは、「複数ビットの書き込みデータについて、1ビットずつ変化させて順に送り出す」である。
こうすれば、出力回路における複数の1ビット出力部にとっては、イネーブル信号が複数サイクル分アクティブになっている期間において、制御部から各1ビット出力部に送り込まれてくる複数ビットの書き込みデータは、どのサイクルでも変化するビットは高々1ビットであり、複数ビットが同時に変化することはない。なお、書き込みデータによってはどのビットも変化しない場合もあり得る。結果として、複数の1ビット出力部でのデータ出力のタイミングは互いにずれたものとなり、出力バッファでの貫通電流の発生タイミングは分散することになるので、貫通電流に起因するノイズの発生を抑制することが可能となる。(2)の場合と同様に、複数の1ビット出力部それぞれに遅延回路は必要なく、しかも(2)の場合とは異なり、制御部にはイネーブル信号を遅延させるための遅延回路も不要である。
上記の(2)のより具体的な態様が次の(4)である。
(4)マイクロコントローラは、その構成要素として、CPU(中央演算処理装置)と制御部と出力回路を含んでいる。制御部は、CPUからの書き込み要求を受け付けて出力回路に対するイネーブル信号を生成するとともに、CPUから送られてくる書き込みデータを一時的に保持し、出力回路へ転送する機能を有している。出力回路は、複数の1ビット出力部の組み合わせで構成されている。個々の1ビット出力部は、制御部から送られてくる書き込みデータを、同じく制御部からのイネーブル信号のタイミングで書き込むためのレジスタと、レジスタのデータを外部へ出力するための出力バッファを備えている。
出力回路における複数の1ビット出力部の出力バッファで貫通電流が大きくならないようにするため、各1ビット出力部での書き込みのタイミングをずらすための対策として、従来技術の場合は、出力回路の内部に複数の遅延回路を設けることで対応している。これに対して当該構成では、各1ビット出力部に入力するイネーブル信号をあらかじめ互いにタイミングがずれたものとして制御部で生成し、各1ビット出力部に供給するように構成している。この項には後述する図4を参照することが可能である。
各1ビット出力部でのデータ書き込みは互いにタイミングのずれたものとなり、データ出力のタイミングも互いにずれたものとなる。結果、貫通電流の発生タイミングは分散することになるので、貫通電流に起因するノイズの発生は抑制される。すなわち、書き込みタイミングをずらすための複数の遅延回路を出力回路内に設ける代わりに、制御部において書き込みタイミングを制御する複数のイネーブル信号のタイミングをあらかじめずらしておき、それぞれを各1ビット出力部に与える。出力回路に入力されてくるイネーブル信号がすでにタイミングがずれているので、出力回路内部には遅延回路は必要ない。制御部側でイネーブル信号を遅延させるための複数の遅延回路が必要であるが、この遅延回路は出力回路の数が増えても共用化されるものであるので、出力回路の増加に対して遅延回路を増加させる必要はない。
この項でのキーワードは、「あらかじめ互いにタイミングがずれた複数のイネーブル信号」と「イネーブル信号を遅延させるための制御部側の複数の遅延回路」である。
以上を要するに、本発明当該態様のマイクロコントローラは、
書き込み要求と書き込みデータとを出力するCPU(中央演算処理装置)と、
前記CPUからの書き込み要求を受け付けてイネーブル信号を生成するとともに前記CPUから送られてくる書き込みデータを一時的に保持し転送する機能を有する制御部と、
前記制御部から送られてくる書き込みデータを前記制御部からのイネーブル信号のタイミングで書き込み一時的に保持するレジスタおよび前記レジスタのデータを外部へ出力する出力バッファとを有する1ビット出力部を複数ビット分備えた出力回路とを含み、
前記制御部は、前記CPUから送られてくる書き込みデータを一時的に保持し転送するための複数ビット分のレジスタおよび前記CPUからの前記書き込み要求に基づいて互いにタイミングのずれた複数ビット分のイネーブル信号を生成し前記各1ビット出力部に出力するための複数の遅延回路とを備えたものとして構成されている。
この構成によれば、出力回路における各1ビット出力部には互いにタイミングのずれたイネーブル信号が入力され、出力バッファの状態遷移による貫通電流がタイミング的に分散されるので貫通電流に起因するノイズの低減効果は確保されることになる。加えて、制御部においてタイミングをずらしたイネーブル信号を生成するのに、制御部に遅延回路を設けることになるが、この遅延回路は出力回路の数が増えても共用化されるものであるので、出力回路の増加に対して遅延回路を増加させる必要はなく、出力回路は遅延回路なしでよいため、出力回路数増加による回路面積の増加を抑制することが可能となる。
上記の(3)のより具体的な態様が次の(5)である。
(5)上記の(4)の場合は制御部において複数の遅延回路を設け、複数の1ビット出力部に与えるイネーブル信号にタイミングのずれを与えているが、それとは別の方式もある。それは、1ビット出力部ごとの複数のイネーブル信号を用いるのではなく、イネーブル信号を複数の1ビット出力部に共通の単一のイネーブル信号とするものである。この場合のマイクロコントローラも、その構成要素として、(4)の場合と同様に、CPUと制御部と出力回路を含んでいる。制御部は、CPUからの書き込み要求を受け付けて出力回路に対する共通単一のイネーブル信号を生成するとともにCPUから送られてくる書き込みデータを一時的に保持し、出力回路へ転送する機能を有している。出力回路は、複数の1ビット出力部の組み合わせで構成されている。個々の1ビット出力部は、制御部から送られてくる書き込みデータを、同じく制御部からのイネーブル信号のタイミングで書き込むためのレジスタと、レジスタのデータを外部へ出力するための出力バッファを備えている。ここで当該構成はCPU側に工夫を凝らしている。CPUは、出力回路内のレジスタのデータと同じデータを保持する出力データレジスタと、書き込みのために出力回路に送り出す送り出しデータを格納しておく送り出しデータレジスタと、出力データレジスタと送り出しデータレジスタのデータを入力して演算を行う論理演算器とを備えている。そして、論理演算器で1ビットずつデータを変化させながら、その1ビットずつ変わるデータを複数の1ビット出力部に書き込むように構成されている。この場合に、出力データレジスタには論理演算器による演算結果が上書き格納されるようになっている。この項には後述する図7を参照することが可能である。
本構成では、出力回路における複数の1ビット出力部の出力バッファで貫通電流が大きくならないようにするため、タイミングが互いにずれた複数のイネーブル信号を用いることに代えて、複数の1ビット出力部における書き込みデータの変化のタイミングをずらすようにしている。すなわち、あるタイミングでは書き込みデータのうちの0ビット目1つのみ変化させたデータを対応する1ビット出力部に書き込み、別のタイミングでは書き込みデータのうちの1ビット目1つのみ変化させたデータを対応する1ビット出力部に書き込み、さらに別のタイミングでは書き込みデータのうちの2ビット目1つのみ変化させたデータを対応する1ビット出力部に書き込み、さらに別のタイミングでは書き込みデータのうちの3ビット目1つのみ変化させたデータを対応する1ビット出力部に書き込むといった具合である。このような1ビットずつデータを変化させながら書き込む形態をとるために、CPUに論理演算器と送り出しデータレジスタと出力データレジスタとを設けてある。例えば、送り出しデータレジスタにある送り出しデータ(書き込みデータ)のあるビットのデータが“0”であれば、そのビットに対応した1ビット出力部は、元のデータが“1”であれ“0”であれ、結果的に“0”になっていればよいのであるから、送り出しデータの“0”の論理(論理積で“0”を結果する)を利用して、出力データレジスタにおける該当ビットに対して送り出しデータレジスタの“0”との論理積をとり、その論理積の結果を書き込みデータとすればよい。逆に、送り出しデータのあるビットのデータが“1”であれば、そのビットに対応した1ビット出力部は、元のデータが“1”であれ“0”であれ、結果的に“1”になっていればよいのであるから、送り出しデータの“1”の論理(論理和で“1”を結果する)を利用して、出力データレジスタにおける該当ビットに対して送り出しデータレジスタの“1”との論理和をとり、その論理和の結果を書き込みデータとすればよい。
この方式の場合は、書き込みデータの各ビットデータ自体にタイミングのずれをもたせるので、イネーブル信号は共通単一でよい。複数の1ビット出力部におけるデータ変化のタイミングをずらしているので、出力バッファの状態遷移による貫通電流がタイミング的に分散されることにより、貫通電流に起因するノイズの低減効果は確保されることになる。しかも、制御部には(4)の場合のような複数の遅延回路は不要となり、さらなる回路構成の簡略化が図られる。これは、出力回路の増加に対して強力な手法となる。
この項でのキーワードは、「イネーブル信号を複数の1ビット出力部に共通の単一のイネーブル信号とする」と「送り出しデータレジスタ、出力データレジスタ、送り出しデータレジスタおよび出力データレジスタのデータを入力して演算を行う論理演算器」と「複数の1ビット出力部における書き込みデータの変化のタイミングをずらす」である。
以上を要するに、本発明当該態様のマイクロコントローラは、
書き込み要求と書き込みデータとを出力するCPU(中央演算処理装置)と、
前記CPUからの書き込み要求を受け付けてイネーブル信号を生成するとともに前記CPUから送られてくる書き込みデータを一時的に保持し転送する機能を有する制御部と、
前記制御部から送られてくる書き込みデータを前記制御部からのイネーブル信号のタイミングで書き込み一時的に保持するレジスタおよび前記レジスタのデータを外部へ出力する出力バッファとを有する1ビット出力部を複数ビット分備えた出力回路とを含み、
前記CPUは、前記出力回路内のレジスタのデータと同じデータを保持する出力データレジスタと、前記書き込みのために前記出力回路に送り出す送り出しデータを格納しておく送り出しデータレジスタと、前記出力データレジスタと前記送り出しデータレジスタのデータを入力して演算を行う論理演算器とを備え、前記論理演算器による演算結果を前記出力データレジスタに再格納することにより、前記論理演算器で1ビットずつデータを変化させながら書き込みデータを出力するものとして構成され、
前記制御部は、前記CPUから送られてくる書き込みデータを一時的に保持し転送するための複数ビット分のレジスタを備え、前記CPUからの前記書き込み要求に基づくイネーブル信号として前記複数の1ビット出力部に共通の単一のイネーブル信号を出力するものとして構成されている。
この構成によれば、書き込みデータの各ビットデータ自体にタイミングのずれをもたせ、複数の1ビット出力部におけるデータ変化のタイミングをずらすために、出力バッファの状態遷移による貫通電流がタイミング的に分散され、貫通電流に起因するノイズの低減効果は確保されることになる。しかも、イネーブル信号は共通単一でよく、制御部には(4)の場合のような複数の遅延回路は不要となり、さらなる回路構成の簡略化が図られる。
なお、(4),(5)の場合には、複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能をハードウェアで実現していて、一連の動作をハードウェアで自動的に行うものであるので設計の安全性が高いとともに、マイクロコントローラを使用するソフトのソース量が少なくなるというメリットもある。
本発明によれば、複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を制御部またはCPUの側に持たせているので、複数の1ビット出力部の各出力バッファでの貫通電流の発生タイミングは分散し貫通電流に起因するノイズの発生を抑制できるのはもちろんのこと、制御部またはCPUでのデータ書き込みの実効的なタイミングをずらす機能は出力回路の数が増えても共用化されるものであることから、出力回路数が増加しても回路面積の増加を抑えることができる。
本発明の実施の形態1におけるマイクロコントローラの基本的構成を示すブロック図 本発明の実施の形態2におけるマイクロコントローラの構成を示すブロック図 本発明の実施の形態3におけるマイクロコントローラの構成を示すブロック図 本発明の実施例1におけるマイクロコントローラの構成を示す回路図 本発明の実施例1におけるマイクロコントローラの動作を示すタイミングチャート 本発明の実施例2におけるマイクロコントローラの構成を示す回路図 本発明の実施例3におけるマイクロコントローラの構成を示す回路図 本発明の実施例3におけるマイクロコントローラの動作を示すタイミングチャート 本発明の実施例3におけるマイクロコントローラの動作を示す状態遷移図 本発明の実施例4におけるマイクロコントローラの構成を示す回路図 本発明の実施例4におけるマイクロコントローラの動作を示すタイミングチャート 本発明の実施例5におけるマイクロコントローラの構成を示す回路図 本発明の実施例5におけるマイクロコントローラの動作を示すタイミングチャート 本発明の実施例6におけるマイクロコントローラの構成を示す回路図 従来のマイクロコントローラに備わっている出力回路の構成を示す回路図 従来技術の構成での課題を示す回路図
上記の〔課題を解決するための手段〕の項で述べた構成の本発明のマイクロコントローラは、次のような実施の形態においてさらに有利に展開することが可能である。
(6)「互いにタイミングがずれた複数のイネーブル信号」をキーワードとする上記(4)の構成のマイクロコントローラにおいて、さらに、前記遅延回路による前記互いにタイミングがずれた複数ビット分のイネーブル信号のそれぞれといずれか1つのタイミングのイネーブル信号とを切り替えるセレクタと、前記セレクタの切り替えを制御するセレクタ制御手段とを備えているという態様がある。この項には後述する図6を参照することが可能である。この項でのキーワードは、「セレクタ制御手段」である。
このように構成すれば、貫通電流に起因するノイズを抑えたいデータを出力する出力回路では互いにタイミングがずれた複数ビット分のイネーブル信号を選択し、貫通電流に起因するノイズを抑える必要がなく、タイミングを揃えて出力する必要があるデータを出力する出力回路では共通単一のタイミングのイネーブル信号を選択するといった具合に、出力回路の態様に応じてイネーブル信号の態様を適切に切り替えて書き込み制御を行うことが可能となる。すなわち、貫通電流が生じやすい態様の出力回路に対しては個別のイネーブル信号を選択し、貫通電流の生じにくい態様の出力回路に対しては共通のイネーブル信号を選択することにすれば、いずれの場合もノイズの発生を抑制することが可能である。
(7)「共通単一のイネーブル信号」「送り出しデータレジスタ、出力データレジスタ、論理演算器」「複数の1ビット出力部における書き込みデータの変化のタイミングをずらす」をキーワードとする上記(5)の構成のマイクロコントローラにおいて、さらに、前記送り出しデータレジスタのデータと前記出力データレジスタのデータを比較する比較器を備え、前記CPUは、前記比較器による比較の結果が不一致となるビットのみに前記論理演算器で1ビットずつデータを変化させながら書き込みデータを出力し、比較の結果が一致するビットには、前記論理演算器による処理を行わず、書き込み処理も行わないように構成されているという態様がある。この項には後述する図10を参照することが可能である。この項でのキーワードは、「比較器」である。
このように構成すれば、データが変化しないビットでの動作を省略することが可能となり、必要サイクル数を削減することが可能となる。
(8)上記(5)の構成のマイクロコントローラにおいて、さらに、1サイクルで変化するビット幅を指定するビット幅指定レジスタを備え、前記CPUは、1サイクル内で、前記ビット幅指定レジスタで指定されるビット幅ずつデータを変化させながら前記出力回路に書き込む命令を発するように構成されているという態様がある。この項には後述する図12を参照することが可能である。この項でのキーワードは、「ビット幅指定レジスタ」である。
このように構成すれば、1サイクルにデータを変化させるビット幅を変更できるので、貫通電流に起因するノイズを抑えたいデータを出力する出力回路ではビット幅を減らし、貫通電流に起因するノイズを抑える必要があるが、タイミングをなるべく揃えてデータを出力する必要がある出力回路ではビット幅を増やすといった具合に、出力回路の態様に応じて1サイクルにデータを変化させるビット幅を適切に切り替えて書き込み制御を行うことが可能となる。
(9)上記(5)の構成のマイクロコントローラにおいて、前記CPUは、前記論理演算器をもって1ビットずつデータを変えさせながら前記書き込みデータを前記出力回路に書き込む命令を、前記出力回路に前記書き込みデータを全ビット同時に変化させて一時に書き込む命令とは異なる命令コードで実行するように構成されているという態様がある。この構成の場合には、1ビットずつデータを変化させながら順次に出力回路に書き込む命令を追加することで対応することが可能である。この項でのキーワードは、「異なる命令コード」である。
(10)上記(5)の構成のマイクロコントローラにおいて、前記CPUは、前記論理演算器をもって1ビットずつデータを変えさせながら前記書き込みデータを前記出力回路に書き込む命令を、前記出力回路に前記書き込みデータを全ビット同時に変化させて一時に書き込む命令と同じ命令コードで実行するように構成されているという態様がある。この構成の場合は、単に、全ビット同時に変化させて一時に書き込む命令を実行すればよい。この項でのキーワードは、「同じ命令コード」である。
(11)上記(5)の構成のマイクロコントローラにおいて、さらに、前記論理演算器をもって1ビットずつデータを変化させながら順次に前記出力回路に前記書き込みデータを書き込む命令と、全ビットのデータを同時に変化させて一時に前記出力回路に前記書き込みデータを書き込む命令とを切り替えを行う命令切り替えレジスタを備えているという態様がある。この項には後述する図14を参照することが可能である。この項でのキーワードは、「命令切り替えレジスタ」である。
このように構成すれば、1ビットずつデータを変化させながら書き込む動作と全ビット同時に変化させて一時に書き込む動作を切り替えることができるので、出力回路の態様に応じて命令の動作を適切に切り替えることが可能となる。すなわち、貫通電流に起因するノイズを抑えたいデータを出力する出力回路に対しては1ビットずつデータを変化させながら順次に書き込む命令を実行し、貫通電流に起因するノイズを抑える必要がなく、タイミングを揃えて出力する必要があるデータを出力する出力回路に対しては全ビット同時に変化させて一時に書き込む命令を実行することにすれば、いずれの場合もノイズの発生を抑制することが可能となる。
以上で、本発明の概要を説明した。以下では、上記の(1),(2),(3)に対応して実施の形態1、実施の形態2、実施の形態3を説明する。
[実施の形態1]
図1は上記の(1)のマイクロコントローラにおける構成を示す。制御部2は、CPU1からの書き込み要求Qを受け付けて出力回路5に対するイネーブル信号Siを生成するとともに、CPU1から送られてくる書き込みデータDwを一時的に保持し、出力回路5へ転送する。出力回路5における個々の1ビット出力部51〜54は、制御部2からの書き込みデータDwを、同じく制御部2からのイネーブル信号Siのタイミングで書き込むレジスタRと、レジスタRのデータを外部へ出力する出力バッファBを備えている。そして、複数の1ビット出力部51〜54の出力バッファBで貫通電流が大きくならないようにするため、制御部2またはCPU1に、複数の1ビット出力部51〜54におけるデータ書き込みの実効的なタイミングをずらす機能を持たせている。図1で「データ書き込みの実効的なタイミングをずらす機能」の一方を実線で囲み、他方を破線で囲んでいるのは、「制御部2またはCPU1のいずれか一方に」の意である。出力回路5内には遅延回路はない。
この構成によれば、複数の1ビット出力部51〜54でのデータ出力のタイミングは互いにずれたものとなって、各出力バッファBで貫通電流の発生が生じてもそのタイミングは分散することになり、貫通電流に起因するノイズの発生が抑制される。併せて、出力回路5内には遅延回路はなく、制御部2またはCPU1でのデータ書き込みの実効的なタイミングをずらす機能は出力回路5の数が増えても共用化されるものであるので、出力回路5の増加に対して回路規模を増加させる必要はない。
[実施の形態2]
図2は上記の(2)のマイクロコントローラの構成を示す。これは、制御部2に、「複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能」を持たせた態様である。すなわち、制御部2には、CPU1からの書き込み要求Qを順次に送らせて複数の1ビット出力部51〜54に対するタイミングを異にするイネーブル信号Si(S1,S2,S3,S4)を生成するための遅延回路31〜34が設けられている。書き込みデータDwは、制御部2から各1ビット出力部51〜54に対して同時的に供給されるようになっている。
複数の1ビット出力部51〜54にとって制御部2からのイネーブル信号S1,S2,S3,S4が互いにタイミングがずれたものとなっているので、1ビット出力部51〜54のそれぞれのレジスタRにデータが書き込まれるタイミングは複数の1ビット出力部51〜54で互いにずれたものとなり、出力バッファBでの貫通電流の発生タイミングは分散し、ノイズの発生を抑制することができる。
出力回路5の数が増えても、遅延回路31〜34は共用化されるので、出力回路5の増加に対して制御部2での遅延回路を増加させる必要はない。
[実施の形態3]
図3は上記の(3)のマイクロコントローラの構成を示す。これは、CPU1に、「複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能」を持たせた態様である。すなわち、CPU1は、制御部2に送り込む複数ビットの書き込みデータDwについて、1ビットずつ変化させて順に送り出すように構成されている。書き込みデータDwについて、「*」のビットデータは、それが前回書き込んだデータと同じである(不変である)ことを意味し、CPU1は、第1のタイミングでは書き込みデータDwの0ビット目の“1”または“0”を1ビット目ないし3ビット目の前回データとともに送り出し、第2のタイミングでは書き込みデータDwの1ビット目の“1”または“0”を0ビット目、2ビット目及び3ビット目の前回データとともに送り出し、第3のタイミングでは書き込みデータDwの2ビット目の“1”または“0”を0ビット目、1ビット目及び3ビット目の前回データとともに送り出し、第4のタイミングでは書き込みデータDwの3ビット目の“1”または“0”を0ビット目ないし2ビット目の前回データとともに送り出す。複数ビットの書き込みデータDwは、どのサイクルでも変化するビットは高々1ビットであり、複数ビットが同時に変化することはない。制御部2が出力回路5に出力するイネーブル信号Siとしては複数の1ビット出力部51〜54に共通単一のイネーブル信号S0である。
この構成によれば、イネーブル信号S0が共通であるが、書き込みデータDwが1ビットずつ順次に変化するものなので、複数の1ビット出力部51〜54でのデータ出力のタイミングは互いにずれたものとなり、出力バッファBでの貫通電流の発生タイミングは分散し、ノイズの発生を抑制することができる。実施の形態2の場合とは異なり、制御部2にはイネーブル信号Siを遅延させるための遅延回路は不要である。出力回路5の数が増えても、CPU1の「複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能」は共用化されるので、出力回路5の増加に対してCPU2で回路要素を増加させる必要はない。
以下、本発明の実施例にかかわるマイクロコントローラを実施例1〜実施例6として説明する。
本発明の実施例1のマイクロコントローラは、上述の実施の形態2(図2)や(4)に該当するものであって、制御部内の遅延回路によって1サイクルずつタイミングのずれた複数のイネーブル信号を生成するように構成したものである。
図4は本発明の実施例1におけるマイクロコントローラの構成を示す回路図である。
マイクロコントローラは、CPU1と、制御部2と、データの伝送路である内部バス4と、出力回路5とを備えている。出力回路5は第1ないし第4の1ビット出力部51〜54から構成されている。第1ないし第4の1ビット出力部51〜54のそれぞれはセレクタSとレジスタRと出力バッファBを有している。各セレクタSは、イネーブル信号Si(i=1,2…)がアクティブにされたとき書き込みデータ(1ビット)を選択し、それをレジスタRに送り込む。それ以外のときは、レジスタRの出力を選択することにより、データを保持する。
CPU1は、第1ないし第4の1ビット出力部51〜54に対して、書き込み要求Qを送出するとともに、書き込みデータDwを出力する機能を備えている。制御部2は、CPU1から受け取った第1ないし第4の1ビット出力部51〜54への書き込みデータDwを一時的に保持する書き込みデータレジスタ21〜24と、CPU1から受け取った書き込み要求Qを1サイクルずつずらして第1ないし第4の1ビット出力部51〜54へのデータ書き込み制御のための第1ないし第4のイネーブル信号S1〜S4を生成する第1ないし第4の遅延回路31〜34とを有している。ここでは、これらの遅延回路31〜34はフリップフロップとANDゲートで構成されている。書き込みデータレジスタ21〜24のそれぞれは内部バス4を介して第1ないし第4の1ビット出力部51〜54の各セレクタSと接続されている。第1ないし第4の1ビット出力部51〜54のそれぞれは、第1ないし第4のイネーブル信号S1〜S4がアクティブにされたときにセレクタSが内部バス4を選択し、書き込みデータDwがレジスタRに書き込まれるようになっている。
次に、上記のように構成された実施例1のマイクロコントローラの動作を図5のタイミングチャートを用いて説明する。ここでは、当初“0000”が格納されている第1ないし第4の1ビット出力部51〜54に“1111”を書き込む場合の動作を説明する。「4’b」は4ビットのバイナリデータの意である。
データをマイクロコントローラの外部に出力するに際しては、CPU1から制御部2に対して、第1ないし第4の1ビット出力部51〜54への書き込み要求Qと、第1ないし第4の1ビット出力部51〜54に書き込む書き込みデータDw(“1111”)とが出力される。
制御部2はCPU1からの書き込みデータDwを1ビットずつ書き込みデータレジスタ21〜24に格納し、書き込み要求Qを第1の遅延回路(フリップフロップ)31に格納する。その結果、第1のイネーブル信号S1が出力され、第1の1ビット出力部51内のレジスタRに0ビット目のデータが書き込まれる。
次のサイクルで第1のイネーブル信号S1が第2の遅延回路32に格納され、第2のイネーブル信号S2が出力される。第2のイネーブル信号S2は第1のイネーブル信号S1より1サイクル遅れて第2の1ビット出力部52に入力され、第2の1ビット出力部52では第1の1ビット出力部51より1サイクル遅れて1ビット目のデータが書き込まれる。
さらに次のサイクルで第2のイネーブル信号S2が第3の遅延回路33に格納され、第3のイネーブル信号S3が出力される。第3のイネーブル信号S3は第2のイネーブル信号S2より1サイクル遅れて第3の1ビット出力部53に入力され、第3の1ビット出力部53では第2の1ビット出力部52より1サイクル遅れて2ビット目のデータが書き込まれる。
さらに次のサイクルで第3のイネーブル信号S3が第4の遅延回路34に格納され、第4のイネーブル信号S4が出力される。第4のイネーブル信号S4は第3のイネーブル信号S3より1サイクル遅れて第4の1ビット出力部54に入力され、第4の1ビット出力部54では第3の1ビット出力部53より1サイクル遅れて3ビット目のデータが書き込まれる。
すなわち、制御部2の働きにより、1サイクルずつ遅延した第1ないし第4のイネーブル信号S1〜S4が順次に生成され、第1ないし第4の1ビット出力部51〜54に1サイクルずつ遅延してデータが書き込まれる。
第1ないし第4の1ビット出力部51〜54へのデータの書き込みは制御部2で制御しているため、CPU1は書き込み要求Qを出力した後は他の処理を行うことができる。
以上のように、本実施例によれば、制御部2から出力される第1ないし第4のイネーブル信号S1〜S4を1サイクルずつずらすことにより、第1ないし第4の1ビット出力部51〜54内のレジスタRに書き込むタイミングをずらし、各出力バッファBの状態が遷移するときに流れる貫通電流を分散させることができるので、ノイズが低減される。また、出力回路5の数が増加しても制御部2内の遅延回路31〜34を増加させる必要はないので、出力回路5の増加による面積の増加を抑えることができる。
なお、本実施例では、第1ないし第4の遅延回路31〜34をフリップフロップとしたが、フリップフロップの代わりに遅延用バッファなどの組み合わせ回路を用いてもよい。
本発明の実施例2のマイクロコントローラは、実施例1の変形版で、1サイクルずつタイミングをずらした1ビット出力部ごとに個別のイネーブル信号に加えて、すべての1ビット出力部に共通単一のすべて同じタイミングのイネーブル信号を用いるようにし、これら個別のイネーブル信号と共通のイネーブル信号とを必要に応じて切り替えるように構成したものである。これは、上記の(6)に該当する。
図6は本発明の実施例2におけるマイクロコントローラの構成を示す回路図である。
本実施例においては、実施例1のマイクロコントローラの構成に加えて、セレクタ制御レジスタ61と、イネーブル信号を切り替えるセレクタ62,63,64とを備えた構成となっている。セレクタ62は遅延回路31から出力されるイネーブル信号S1と遅延回路32から出力されるイネーブル信号S2との選択を行うものであり、セレクタ63は遅延回路31から出力されるイネーブル信号S1と遅延回路33から出力されるイネーブル信号S3との選択を行うものであり、セレクタ64は遅延回路31から出力されるイネーブル信号S1と遅延回路34から出力されるイネーブル信号S4との選択を行うものである。いずれのセレクタ62,63,64も、その選択肢の1つがイネーブル信号S1となっている。セレクタ制御レジスタ61は、そこにCPU1から“1”または“0”を設定することにより、セレクタ62,63,64を制御するものである。この構成により、1サイクルずつタイミングをずらした個別のイネーブル信号S1,S2,S3,S4と、同じタイミングの共通のイネーブル信号S0(=S1)との切り替えが可能となっている。その他の構成については、実施例1の場合と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された実施例2のマイクロコントローラの動作を説明する。
セレクタ制御レジスタ61に“1”(=“H”)が設定されているときは、セレクタ62〜64は第2ないし第4の遅延回路32〜34からのイネーブル信号S2〜S4を選択するため、出力回路5に送られるイネーブル信号は、1サイクルずつタイミングのずれた第1ないし第4のイネーブル信号S1〜S4となる。このイネーブル信号S1〜S4が第1ないし第4の1ビット出力部51〜54に入力されるので、動作は実施例1と同様になる。
一方、セレクタ制御レジスタ61に“0”(=“L”)が設定されているときは、セレクタ62〜64は第1の遅延回路31からのイネーブル信号S1を共通のイネーブル信号S0として選択する。この共通のイネーブル信号S0が第1ないし第4の1ビット出力部51〜54に入力され、データが全ビット同時に書き込まれる。
以上のように、本実施例によれば、1サイクルずつタイミングがずれた個別のイネーブル信号S1〜S4と、全ビット同時に変化させて一時に書き込む共通のイネーブル信号S0とを切り替えられるので、出力回路5の態様に応じてイネーブル信号の態様を適切に切り替えて書き込み制御を行うことができる。すなわち、貫通電流に起因するノイズを抑えたいデータを出力する出力回路5に対しては個別のイネーブル信号S1〜S4を選択し、貫通電流に起因するノイズを抑える必要がなく、タイミングを揃えて出力する必要があるデータを出力する出力回路5に対しては共通のイネーブル信号S0を選択することにすれば、いずれの場合もノイズの発生を抑制することができる。
なお、セレクタ制御レジスタ61については、複数ある出力回路5ごとに個別にセレクタ制御レジスタ61を備え、それぞれの設定値の“1”,“0”の違いに応じて、出力回路5単位で、個別のイネーブル信号S1〜S4と共通のイネーブル信号S0との切り替えを行うように構成してもよい。
なお、個々の出力回路5にアドレスが割り当てられており、アドレスを指定することで出力回路5を指定できる場合には、セレクタ制御レジスタ61に代えてアドレス判定回路を利用し、アドレス判定回路が指定するアドレスの出力回路にデータを書き込むときに、個別のイネーブル信号S1〜S4を選択し、それ以外のときは共通のイネーブル信号S0を選択するように構成してもよい。
本発明の実施例3のマイクロコントローラは、上述の実施の形態3(図3)や(5)に該当するものであって、制御部が出力するイネーブル信号は共通のイネーブル信号とし、CPUにおいて論理演算器を用いて書き込みデータを1ビットずつ順次に変化させながら送り出すように構成したものである。
図7は本発明の実施例3におけるマイクロコントローラの構成を示す回路図である。本実施例では、CPU1a、制御部2aの構成が実施例1とは相違している。
図7において、11は命令コードのデコーダ、12は第1ないし第4の1ビット出力部51〜54に対する書き込みデータDwを内部バス4から取り込んで送り出しデータとして保持する送り出しデータレジスタ、13は第1ないし第4の1ビット出力部51〜54内のレジスタRのデータと同じデータを保持するための出力データレジスタ、14は送り出しデータレジスタ12の0ビット目ないし3ビット目につき順次に“1”か“0”かの判定を行う判定回路、15は送り出しデータレジスタ12の各ビットと出力データレジスタ13の各ビットとの間で論理演算を行う論理演算器である。この論理演算器15は送り出しデータレジスタ12と出力データレジスタ13から同一ビットのデータを順次に読み出し、判定回路14による送り出しデータレジスタ12のビットデータが“1”のときは論理和の演算を行い、“0”のときは論理積の演算を行って、その演算結果を他のビットとともに制御部2aの書き込みデータレジスタ21〜24に出力するように構成されている。16は出力回路5における1ビット出力部51〜54に保持されているデータと論理演算器15から出力される書き込みデータDwをデコーダ11からの指示によって切り替えて選択し、出力データレジスタ13に出力するセレクタである。セレクタ16が論理演算器15の方を選択した状態では、論理演算器15の演算結果である書き込みデータDwが出力データレジスタ13に再格納可能となっている。制御部2aは、実施例1のような第1ないし第4の遅延回路31〜34は有しておらず、CPU1aからの書き込み要求Qを保持した上で第1ないし第4の1ビット出力部51〜54に共通のイネーブル信号S0として出力するレジスタ25を備えている。その他の構成については、実施例1の場合と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された実施例3のマイクロコントローラの動作を図8のタイミングチャートと図9の状態遷移図を用いて説明する。ここでは、第1ないし第4の1ビット出力部51〜54に“1101”が格納されている状態から“1010”を書き込む場合の動作について説明する。
タイミングT1において、デコーダ11からセレクタ16を制御して1ビット出力部51〜54の側を選択させるとともに、デコーダ11から送り出しデータレジスタ12を制御して書き込み状態にすることにより、内部バス4を介して1ビット出力部51〜54内のレジスタRに書き込まれている4ビットのデータを送り出しデータレジスタ12に格納する。また、デコーダ11から出力データレジスタ13を制御して書き込み状態にすることにより、第1ないし第4の1ビット出力部51〜54内のレジスタRに書き込まれている4ビットのデータをCPU1a内の出力データレジスタ13に格納する。これで、タイミングT2の状態で、送り出しデータレジスタ12に“1010”が格納され、出力データレジスタ13に“1101”が格納されたことになる。
タイミングT2では、送り出しデータレジスタ12の0ビット目の値に応じて演算を行い、演算結果の書き込みデータDwを制御部2aの書き込みデータレジスタ21〜24に出力するとともに、セレクタ16を介して出力データレジスタ13に返す。このとき、判定回路14は送り出しデータレジスタ12の0ビット目が“1”か“0”かの判定を行い、“1”の場合は、論理演算器15に対して出力データレジスタ13の0ビット目と送り出しデータレジスタ12の0ビット目で論理和を行うように制御信号を送り、送り出しデータレジスタ12の0ビット目が“0”の場合は、論理演算器15に対して出力データレジスタ13の0ビット目と送り出しデータレジスタ12の0ビット目で論理積を行うように制御信号を送る。図8のデータ例の場合では、図9の(a)に示すように、送り出しデータレジスタ12に“1010”が格納され、出力データレジスタ13に“1101”が書き込まれている。送り出しデータレジスタ12のビット列“1010”の0ビット目すなわち右から1つ目のビットの“0”を根拠に論理積が選択され、「0*1」(“1”は出力データレジスタ13のビット列“1101”の0ビット目すなわち右から1つ目のビットの“1”)の演算結果として“0”が得られる。これで、論理演算器15から出力される書き込みデータDwは、その0ビット目が演算結果の“0”、1〜3ビット目が出力データレジスタ13のデータの1〜3ビット目“110”とする4ビットのデータ“1100”となる。このデータ“1100”はセレクタ16を介して出力データレジスタ13に反映される(上向き矢印参照)。これで、出力データレジスタ13は、“1101”から“1100”に変化する。
制御部2aでは、CPU1aから出力された書き込み要求Qをレジスタ25に格納し、第1ないし第4の1ビット出力部51〜54に共通のイネーブル信号S0として出力する。同様にCPU1aの論理演算器15から出力された書き込みデータDw(“1100”)を書き込みデータレジスタ21〜24に格納し、内部バス4を介して第1ないし第4の1ビット出力部51〜54へ出力し、それぞれのレジスタRへ書き込む。第1ないし第4の1ビット出力部51〜54には、イネーブル信号S0がすべて同じタイミングで入力されるため、第1ないし第4の1ビット出力部51〜54にはすべて同時にデータが書き込まれる。第1ないし第4の1ビット出力部51〜54に書き込むデータは、0ビット目のみ演算で変更したデータが格納されるので、0ビット目のみデータが変化することになる。図8のデータ例の場合では、“1100”が第1ないし第4の1ビット出力部51〜54に書き込まれる。元の書き込みデータDwは“1101”であり、0ビット目の“1”が“0”に変化している。
タイミングT3では、図9の(b)に示すように、判定回路14は送り出しデータレジスタ12の1ビット目が“1”か“0”かの判定を行い、“1”の場合は、論理演算器15に対して論理和の制御信号を送り、“0”の場合は、論理演算器15に対して論理積の制御信号を送る。図8のデータ例の場合では、送り出しデータレジスタ12のビット列は上記と同じの“1010”で、その1ビット目すなわち右から2つ目のビットの“1”を根拠に論理和が選択される。このとき、図9(a)での動作の結果、出力データレジスタ13は“1100”となっていて、その1ビット目は“0”である。論理和は、「1+0」の演算結果として“1”が得られる。0、2、3ビット目を出力データレジスタ13のデータの0、2、3ビット目とし、1ビット目を演算結果“1”にしたデータを、出力データレジスタ13に格納すると同時に制御部2aへ出力する。イネーブル信号S0はアクティブ状態を保っている。図8のデータ例の場合では、“1110”が書き込みデータDwとして出力される。タイミングT2での第1ないし第4の1ビット出力部51〜54の書き込みデータDwは“1100”であったのに対して、今度は“1110”が書き込まれるので、1ビット目のみデータが変化することになる。
タイミングT4では、図9の(c)に示すように、判定回路14は送り出しデータレジスタ12の2ビット目が“1”か“0”かの判定を行い、図8のデータ例の場合では、送り出しデータレジスタ12のビット列は上記と同じの“1010”で、その2ビット目すなわち右から3つ目のビットの“0”を根拠に論理積が選択される。このとき、図9(b)での動作の結果、出力データレジスタ13は“1110”となっていて、その2ビット目は“1”である。論理積は、「0*1」の演算結果として“0”が得られる。0、1、3ビット目を出力データレジスタ13のデータの0、1、3ビット目とし、2ビット目を演算結果“0”にしたデータを、出力データレジスタ13に格納すると同時に制御部2aへ出力する。イネーブル信号S0はアクティブ状態を保っている。図8のデータ例の場合では、“1010”が書き込みデータDwとして出力される。タイミングT3での第1ないし第4の1ビット出力部51〜54の書き込みデータDwは“1110”であったのに対して、今度は“1010”が書き込まれるので、2ビット目のみデータが変化することになる。
タイミングT5においても同様に、図9の(d)に示すように、判定回路14は送り出しデータレジスタ12の3ビット目が“1”か“0”かの判定を行い、図8のデータ例の場合では、送り出しデータレジスタ12のビット列は上記と同じの“1010”で、その3ビット目すなわち右から4つ目のビットの“1”を根拠に論理和が選択される。このとき、図9(c)での動作の結果、出力データレジスタ13は“1010”となっていて、その3ビット目は“1”である。論理和は、「1+1」の演算結果として“1”が得られる。0、1、2ビット目を出力データレジスタ13のデータの0、1、2ビット目とし、3ビット目を演算結果“1”にしたデータを、出力データレジスタ13に格納すると同時に制御部2aへ出力する。イネーブル信号S0はアクティブ状態を保っている。図8のデータ例の場合では、“1010”が書き込みデータDwとして出力される。タイミングT4での第1ないし第4の1ビット出力部51〜54の書き込みデータDwは“1010”であったのに対して、今度も“1010”が書き込まれることになる。
この構成により、第1ないし第4の1ビット出力部51〜54に格納されているデータは、図8に示すように、“1101”→“1100”→“1110”→“1010”と1ビットずつ変化していく。以上の結果として、最終的に第1ないし第4の1ビット出力部51〜54に書き込まれるデータは、最初に送り出しデータレジスタ12にセットしたデータ“1010”と同じになる。
以上のように、本実施例によれば、イネーブル信号を共通のイネーブル信号S0とし、全ビットを同時に第1ないし第4の1ビット出力部51〜54に書き込むが、そのデータ書き込みは4サイクルにわたっており、1サイクルごとに演算で1ビットずつ変化させているので、第1ないし第4の1ビット出力部51〜54のレジスタRにおいてはデータ変化は1ビットずつの変化となる。これにより、出力バッファBが同時に遷移することにより発生するノイズを低減することができる。また、本実施例は、従来のマイクロコントローラの資源を流用して、マイクロコードを少し追加するだけで実現可能で、貫通電流に起因するノイズの抑制のための回路の増加を最小限に抑えることができる。
本発明の実施例4のマイクロコントローラは、実施例3の変形版で、データが変化するビットだけ1ビットずつデータを変化させながら順次に出力回路に書き込むことにより、実行サイクル数を減らすように工夫したものである。これは、上記の(7)に該当する。
図10は本発明の実施例4におけるマイクロコントローラの構成を示す回路図である。
本実施例のマイクロコントローラにあっては、そのCPU1bは、実施例3のCPU1aの構成に、送り出しデータレジスタ12のデータと出力データレジスタ13のデータを比較する比較器17を追加し、比較器17による比較結果を論理演算器15に入力するようになっている。論理演算器15は、比較器17による比較結果が不一致を示しているときは実施例3と同様に該当ビットのみを変える動作を行い、一致を示しているときはその動作をスキップするように構成されている。その他の構成については、実施例3の場合と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された実施例4のマイクロコントローラの動作を図11のタイミングチャートを用いて説明する。ここでは、実施例1の場合と同様に、第1ないし第4の1ビット出力部51〜54に“1101”が格納されている状態から“1010”を書き込む場合の動作について説明する。
比較器17によって該当ビットの送り出しデータレジスタ12のデータと出力データレジスタ13のデータとを比較する。図9(a)の場合は、0ビット目が“0”と“1”で不一致であるから、実施例3と同様に動作し、図9(b)へ移る。図9(b)の場合は、1ビット目が“1”と“0”で不一致であるから、実施例3と同様に動作し、図9(c)へ移る。図9(c)の場合は、2ビット目が“0”と“1”で不一致であるから、実施例3と同様に動作し、図9(d)へ移る。図9(d)の場合は、3ビット目が“1”と“1”で一致しているから、今度は動作をスキップする。その他の動作については、実施例3と同様であるので説明を省略する。
以上のように本実施例によれば、データが変化するビットのみ演算を実施するもので、データが変化しないビットの動作を省くことができるので、最小限のサイクル数で命令を実行することができる。
本発明の実施例5のマイクロコントローラは、実施例3の変形版で、一度に変化させるビット幅を指定し、指定したビット幅ずつ論理演算器でデータを変化させながら順次に出力回路に書き込むことにより、実行サイクル数を減らすように工夫したものである。これは、上記の(8)に該当する。
図12は本発明の実施例5におけるマイクロコントローラの構成を示す回路図である。
本実施例のマイクロコントローラにあっては、実施例3の構成に、1サイクルでデータを変化させるビット幅を論理演算器15に指定するためのビット幅指定レジスタ65と、セレクタ66を追加したもので、ビット幅指定レジスタ65はCPUからのビット幅変更要求があった時のみデータが格納される。その他の構成については、実施例3の場合と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された実施例5のマイクロコントローラの動作を図13のタイミングチャートを用いて説明する。ここでは、データを2ビット単位で変化させながら第1ないし第4の1ビット出力部51〜54に書き込む動作を説明する。
あらかじめ、ビット幅指定レジスタ65に1サイクルで演算、書き込みを行うビット幅を格納しておく。ここでは、ビット幅指定レジスタ65に“2”が格納されている。
第1ないし第4の1ビット出力部51〜54に格納されているデータを出力データレジスタ13に格納する。
ビット幅指定レジスタ65のデータ“2”に基づいて、データを2ビットずつ変化させることになる。したがって、判定回路14において、送り出しデータレジスタ12の0ビット目、1ビット目のデータをそれぞれ“1”か“0”か判定し、“1”のときは論理和を選択し、“0”のときは論理積を選択し、送り出しデータレジスタ12の0ビット目と出力データレジスタ13の0ビット目との演算と、送り出しデータレジスタ12の1ビット目と出力データレジスタ13の1ビット目との演算を行い、第1ないし第4の1ビット出力部51〜54に書き込む。
2ビット目、3ビット目についても同様に、送り出しデータレジスタ12の2ビット目、3ビット目のデータをそれぞれ判定し、出力データレジスタ13の2ビット目、3ビット目に演算を行い、第1ないし第4の1ビット出力部51〜54に書き込む。
その他の動作については、実施例3と同様であるので説明を省略する。
以上のように、本実施例によれば、1サイクルに演算、書き込みを行うビット幅を任意の数に設定できるので、出力回路5の態様に応じてビット幅を適切に切り替えて書き込み制御を行うことができる。すなわち、貫通電流に起因するノイズを抑えたいデータを出力する出力回路5ではビット幅を減らし、貫通電流に起因するノイズを抑える必要があるが、タイミングをなるべく揃えてデータを出力する必要がある出力回路5ではビット幅を増やすことにすれば、いずれの場合もノイズの発生を抑制することができる。
なお、ビット幅指定レジスタ65については、複数ある出力回路5ごとに個別にビット幅指定レジスタ65を備え、それぞれの設定値の違いに応じて、出力回路5ごとに個別のビット幅でデータを変化させながら書き込むように構成してもよい。
本発明の実施例6のマイクロコントローラは、実施例3の変形版で、論理演算器をもって1ビットずつデータを変化させながら書き込みデータを出力回路に書き込む命令と、書き込みデータを全ビット同時に出力回路に書き込む命令との切り替えを行うように工夫したものである。これは、上記の(11)に該当する。
図14は本発明の実施例6におけるマイクロコントローラの構成を示す回路図である。
本実施例のマイクロコントローラにあっては、実施例3の構成に、1ビットずつデータを変化させながら順次に出力回路に書き込む命令と、全ビットのデータを同時に変化させて一時に出力回路に書き込む命令とを切り替えるための命令切り替えレジスタ67と、セレクタ68を追加したもので、命令切り替えレジスタ67はCPUからの命令切り替え要求があったときのみデータが格納される。その他の構成については、実施例3の場合と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された実施例6のマイクロコントローラの動作を説明する。
命令切り替えレジスタ67に“1”(=“H”)が設定されているときに、実施例3に記載の命令を実行すると、論理演算器15での演算によって1ビットずつデータを変化させながら第1ないし第4の1ビット出力部51〜54にデータを書き込む。
一方、命令切り替えレジスタ67に“0”(=“L”)が設定されているときに、実施例3に記載の命令を実行すると、送り出しデータレジスタ12のデータが全ビット同時に第1ないし第4の1ビット出力部51〜54に書き込まれる。
以上のように、本実施例によれば、1ビットずつデータを変化させながら順次に出力回路に書き込む命令と、全ビット同時に変化させて一時に書き込む命令の切り替えが可能であるので、出力回路の態様に応じて命令の態様を適切に切り替えて書き込み制御を行うことができる。すなわち、貫通電流に起因するノイズを抑えたいデータを出力する出力回路5に対しては1ビットずつデータを変化させながら順次に書き込む命令を実行し、貫通電流に起因するノイズを抑える必要がなく、タイミングを揃えて出力する必要があるデータを出力する出力回路5に対しては全ビット同時に変化させて一時に書き込む命令を実行することにすれば、出力回路5から出力するデータの用途に応じてノイズを抑制する機構の切り替えが可能である。
なお、命令切り替えレジスタ67については、複数ある出力回路5ごとに個別に命令切り替えレジスタ67を備え、それぞれの設定値の“1”,“0”の違いに応じて、出力回路5単位で、書き込み制御の命令を選択するように構成してもよい。
なお、個々の出力回路5にアドレスが割り当てられており、アドレスを指定することで出力回路5を指定できる場合には、命令切り替えレジスタ67に代えてアドレス判定回路を利用し、アドレス判定回路が指定するアドレスの出力回路にデータを書き込むときに、1ビットずつデータを変化させながら順次に書き込む命令を選択し、それ以外のときは全ビット同時に変化させて一時に書き込む命令を選択するように構成してもよい。
これまで実施例1〜6を説明してきたが、これら実施例はあくまで一例に過ぎず、様々な改変が可能であることは言うまでもない。
1つの出力回路を構成する1ビット出力部の数は4つ以外、任意である。
なお、上記において複数の実施の形態、実施例について説明したが、本発明の趣旨を逸脱しない範囲で、複数の実施の形態、実施例における各構成要素を任意に組み合わせてもよい。
本発明の技術は、マイクロコントローラにおいて各出力バッファでの貫通電流に起因するノイズの発生を抑制できるとともに出力回路数が増加しても回路面積の増加を抑えることができ、特に車載系マイコンや表示系マイコンの小規模化、低コスト化に有用である。
1,1a,1b CPU
2,2a 制御部
4 内部バス
5 出力回路
11 デコーダ
12 送り出しデータレジスタ
13 出力データレジスタ
14 判定回路
15 論理演算器
16 セレクタ
17 比較器
21,22,23,24 書き込みデータレジスタ
25 レジスタ
31,32,33,34 遅延回路
51,52,53,54 1ビット出力部
61 セレクタ制御レジスタ
62,63,64 セレクタ
65 ビット幅指定レジスタ
67 命令切り替えレジスタ
Dw 書き込みデータ
S0,S1,S2,S3,S4,Si イネーブル信号
Q 書き込み要求

Claims (11)

  1. CPU(中央演算処理装置)と制御部と出力回路を含み、
    前記制御部は、前記CPUからの書き込み要求を受け付けて前記出力回路に対するイネーブル信号を生成するとともに、前記CPUから送られてくる書き込みデータを一時的に保持し、前記出力回路へ転送する機能を有し、
    前記出力回路は、複数の1ビット出力部の組み合わせで構成され、個々の前記1ビット出力部は、前記制御部から送られてくる書き込みデータを、同じく前記制御部からのイネーブル信号のタイミングで書き込むためのレジスタと、前記レジスタのデータを外部へ出力するための出力バッファとを備え、
    さらに、前記複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を前記制御部または前記CPUに持たせた構成としているマイクロコントローラ。
  2. 前記制御部は、前記複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を持ち、前記CPUからの書き込み要求に基づいて書き込みタイミングを制御するイネーブル信号を生成するにおいて、タイミングが相互にずれた複数のイネーブル信号を生成するものとして構成されている請求項1に記載のマイクロコントローラ。
  3. 前記CPUは、前記複数の1ビット出力部におけるデータ書き込みの実効的なタイミングをずらす機能を持ち、前記制御部に送り込む複数ビットの書き込みデータについて、1ビットずつ変化させて順に送り出すように構成され、前記制御部は前記出力回路に出力するイネーブル信号として複数の1ビット出力部に共通単一のイネーブル信号を出力するように構成されている請求項1に記載のマイクロコントローラ。
  4. 書き込み要求と書き込みデータとを出力するCPU(中央演算処理装置)と、
    前記CPUからの書き込み要求を受け付けてイネーブル信号を生成するとともに前記CPUから送られてくる書き込みデータを一時的に保持し転送する機能を有する制御部と、
    前記制御部から送られてくる書き込みデータを前記制御部からのイネーブル信号のタイミングで書き込み一時的に保持するレジスタおよび前記レジスタのデータを外部へ出力する出力バッファとを有する1ビット出力部を複数ビット分備えた出力回路とを含み、
    前記制御部は、前記CPUから送られてくる書き込みデータを一時的に保持し転送するための複数ビット分のレジスタおよび前記CPUからの前記書き込み要求に基づいて互いにタイミングのずれた複数ビット分のイネーブル信号を生成し前記各1ビット出力部に出力するための複数の遅延回路とを備えたものとして構成されているマイクロコントローラ。
  5. 書き込み要求と書き込みデータとを出力するCPU(中央演算処理装置)と、
    前記CPUからの書き込み要求を受け付けてイネーブル信号を生成するとともに前記CPUから送られてくる書き込みデータを一時的に保持し転送する機能を有する制御部と、
    前記制御部から送られてくる書き込みデータを前記制御部からのイネーブル信号のタイミングで書き込み一時的に保持するレジスタおよび前記レジスタのデータを外部へ出力する出力バッファとを有する1ビット出力部を複数ビット分備えた出力回路とを含み、
    前記CPUは、前記出力回路内のレジスタのデータと同じデータを保持する出力データレジスタと、前記書き込みのために前記出力回路に送り出す送り出しデータを格納しておく送り出しデータレジスタと、前記出力データレジスタと前記送り出しデータレジスタのデータを入力して演算を行う論理演算器とを備え、前記論理演算器による演算結果を前記出力データレジスタに再格納することにより、前記論理演算器で1ビットずつデータを変化させながら書き込みデータを出力するものとして構成され、
    前記制御部は、前記CPUから送られてくる書き込みデータを一時的に保持し転送するための複数ビット分のレジスタを備え、前記CPUからの前記書き込み要求に基づくイネーブル信号として前記複数の1ビット出力部に共通の単一のイネーブル信号を出力するものとして構成されているマイクロコントローラ。
  6. さらに、前記遅延回路による前記互いにタイミングがずれた複数ビット分のイネーブル信号のそれぞれといずれか1つのタイミングのイネーブル信号とを切り替えるセレクタと、前記セレクタの切り替えを制御するセレクタ制御手段とを備えている請求項4に記載のマイクロコントローラ。
  7. さらに、前記送り出しデータレジスタのデータと前記出力データレジスタのデータを比較する比較器を備え、
    前記CPUは、前記比較器による比較の結果が不一致となるビットのみに前記論理演算器で1ビットずつデータを変化させながら書き込みデータを出力し、比較の結果が一致するビットには、前記論理演算器による処理を行わず、書き込み処理も行わないように構成されている請求項5に記載のマイクロコントローラ。
  8. さらに、1サイクルで変化するビット幅を指定するビット幅指定レジスタを備え、
    前記CPUは、1サイクル内で、前記ビット幅指定レジスタで指定されるビット幅ずつデータを変化させながら前記出力回路に書き込む命令を発するように構成されている請求項5に記載のマイクロコントローラ。
  9. 前記CPUは、前記論理演算器をもって1ビットずつデータを変えさせながら前記書き込みデータを前記出力回路に書き込む命令を、前記出力回路に前記書き込みデータを全ビット同時に変化させて一時に書き込む命令とは異なる命令コードで実行するように構成されている請求項5に記載のマイクロコントローラ。
  10. 前記CPUは、前記論理演算器をもって1ビットずつデータを変えさせながら前記書き込みデータを前記出力回路に書き込む命令を、前記出力回路に前記書き込みデータを全ビット同時に変化させて一時に書き込む命令と同じ命令コードで実行するように構成されている請求項5に記載のマイクロコントローラ。
  11. さらに、前記論理演算器をもって1ビットずつデータを変化させながら順次に前記出力回路に前記書き込みデータを書き込む命令と、全ビットのデータを同時に変化させて一時に前記出力回路に前記書き込みデータを書き込む命令とを切り替えを行う命令切り替えレジスタを備えている請求項5に記載のマイクロコントローラ。
JP2009256799A 2009-11-10 2009-11-10 マイクロコントローラ Pending JP2011103017A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009256799A JP2011103017A (ja) 2009-11-10 2009-11-10 マイクロコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009256799A JP2011103017A (ja) 2009-11-10 2009-11-10 マイクロコントローラ

Publications (1)

Publication Number Publication Date
JP2011103017A true JP2011103017A (ja) 2011-05-26

Family

ID=44193331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009256799A Pending JP2011103017A (ja) 2009-11-10 2009-11-10 マイクロコントローラ

Country Status (1)

Country Link
JP (1) JP2011103017A (ja)

Similar Documents

Publication Publication Date Title
EP3966693A1 (en) Control flow barrier and reconfigurable data processor
JP4699927B2 (ja) 入出力共用端子制御回路
US10310994B2 (en) Asynchronous finite state machines
JP2005018626A (ja) 並列処理システムの生成方法
US20080040700A1 (en) Behavioral synthesizer, debugger, writing device and computer aided design system and method
JP5163306B2 (ja) 動的再構成回路およびデータ送信制御方法
JP4753895B2 (ja) 遅延調整回路を有するアレイ型プロセッサ
JP2014049891A (ja) 中央処理装置および演算装置
US9552328B2 (en) Reconfigurable integrated circuit device
US20060150135A1 (en) Circuit information generating apparatus and circuit information generating method
JP2010117806A (ja) 半導体装置、および、半導体装置によるデータ処理方法
JP5455249B2 (ja) 多数決回路を使用した半導体集積回路及び多数決方法
JP2011103017A (ja) マイクロコントローラ
JP2008198003A (ja) アレイ型プロセッサ
JP2006018411A (ja) プロセッサ
JP2008242947A (ja) 半導体装置
JP5447511B2 (ja) 通信回路および通信方法
JP2000231488A (ja) プロセッサ
JPWO2008026273A1 (ja) Dmaコントローラ
JP2009187075A (ja) デジタル回路
JP6553694B2 (ja) プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
KR100631495B1 (ko) 마이크로 프로세서
JP5071655B2 (ja) 制御回路
JP4703735B2 (ja) コンパイラ、コード生成方法、コード生成プログラム
JP5382503B2 (ja) ブランチング・プログラム・マシン及び並列プロセッサ