JP3628361B2 - デジタル処理装置 - Google Patents
デジタル処理装置 Download PDFInfo
- Publication number
- JP3628361B2 JP3628361B2 JP29401094A JP29401094A JP3628361B2 JP 3628361 B2 JP3628361 B2 JP 3628361B2 JP 29401094 A JP29401094 A JP 29401094A JP 29401094 A JP29401094 A JP 29401094A JP 3628361 B2 JP3628361 B2 JP 3628361B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- general
- output
- data
- purpose register
- 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)
- Microcomputers (AREA)
Description
【産業上の利用分野】
この発明はデジタル処理装置に関し、例えば、周辺装置をソフトウェアでエミュレートするためのインテリジェントサブプロセッサとして機能するマイクロプロセッサならびにこのようなマイクロプロセッサを搭載するシングルチップマイクロコンピュータに利用して特に有効な技術に関するものである。
【0002】
【従来の技術】
中央処理装置やリードオンリーメモリ及びランダムアクセスメモリ等の記憶装置ならびにダイレクトメモリアクセスコントローラ,シリアルコミュニケーションインタフェース及びタイマー回路等の周辺装置を1個のチップ(半導体基板)上に搭載したシングルチップマイクロコンピュータがある。これらのシングルチップマイクロコンピュータにおいて、各周辺装置は、それぞれ専用化されたハードウェアにより実現され、そのメーカは、複数の周辺装置を種々の組み合わせで搭載することにより、シングルチップマイクロコンピュータの品種展開を図ってきた。このため、シングルチップマイクロコンピュータのユーザは、限られた品種の中から最もその用途に近いものを選択せざるを得ず、選択した品種が必ずしもユーザのニーズに対応した最適品とはならないケースも多い。また、メーカがユーザの多様化された要求に応えようとしても、ハードウェアの変更を伴うために比較的長い開発期間を要し、製品の価格上昇を招く結果となる。
【0003】
これに対処するため、中央処理装置の他にサブプロセッサとなるマイクロプロセッサをシングルチップマイクロコンピュータに設け、各種の周辺装置の機能をソフトウェア的にエミュレートする方法が特開平4−195481号によって提案されている。このシングルチップマイクロコンピュータは、入出力ポート(外部ポート)に直結された多機能メモリを備え、マイクロプロセッサは、中央処理装置を介することなくしかもビットごとに多機能メモリをアクセスできるため、ソフトウェアの実行速度と入出力装置の処理速度との間のタイムラグを解消しつつ、複数の周辺装置の機能を並行してエミュレートできるものである。
【0004】
【発明が解決しようとする課題】
ところが、ユーザニーズがさらに多様化し高性能化するにしたがって、上記に記載されるシングルチップマイクロコンピュータにも次のような問題点が生じることが本願発明者等によって明らかとなった。すなわち、上記シングルチップマイクロコンピュータでは、マイクロプロセッサと多機能メモリとの間のデータ授受が1ビット又は2ビット単位で行われ、多機能メモリ自体も、マイクロプロセッサ又は入出力装置から与えられたデータをそのまま伝達するだけでいわゆるデータ加工機能を有さない。このため、マイクロプロセッサ及び入出力ポート間のデータ授受が充分に高速化されず、また並行処理に伴うマイクロプロセッサの処理負担が増大する結果となり、これによってシングルチップマイクロコンピュータの入出力処理に関する性能及び分解能が低下するものである。
【0005】
この発明の目的は、その入出力処理に関する性能及び分解能を低下させることなく、複数の周辺装置としての機能を時分割的にかつ効率的にエミュレートしうるマイクロプロセッサ等のデジタル処理装置を実現することにある。
【0006】
この発明の前記ならびにその他の目的と新規な特徴は、この明細書の記述及び添付図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。すなわち、シングルチップマイクロコンピュータ等に搭載され複数の周辺装置としての機能をソフトウェア的にかつ時分割的にエミュレートするマイクロプロセッサ等において、算術論理演算ユニットに結合される汎用レジスタの一部又は全部に、その保持データに所定の加工処理を施すためのデータ加工機能を持たせる。また、このようなデータ加工機能を持つ機能付き汎用レジスタを入出力ポートに直結するとともに、各機能付き汎用レジスタに対応して、その動作を制御するためのプログラムメモリ及び制御回路を設ける。
【0008】
【作用】
上記した手段によれば、算術論理演算ユニットと入出力ポートとの間を機能付き汎用レジスタを介して論理的に直結し、マイクロプロセッサ及び入出力ポート間のデータ授受を高速化できるとともに、入出力データに対するマスク処理やシフト処理を機能付き汎用レジスタにより算術論理演算ユニットを介することなく並行して行うことができる。この結果、その入出力処理に関する性能及び分解能を低下させることなく、複数の周辺装置としての機能を時分割的にかつ効率的にエミュレートしうるマイクロプロセッサ等を実現することができる。
【0009】
【実施例】
図1には、この発明が適用されたマイクロプロセッサMPUを含むシングルチップマイクロコンピュータMCの一実施例のシステム構成図が示されている。同図により、まずこの実施例のマイクロプロセッサMPUを含むシングルチップマイクロコンピュータMCの構成及び動作の概要について説明する。なお、図1の各ブロックを構成する回路素子は、公知の半導体集積回路の製造技術により、単結晶シリコンのような1個の半導体基板上に形成される。
【0010】
図1において、シングルチップマイクロコンピュータMCは、いわゆるストアドプログラム方式の中央処理装置CPUと、システムバスSBUSを介して中央処理装置CPUに結合されるリードオンリーメモリROM及びランダムアクセスメモリRAMとを備える。このうち、中央処理装置CPUは、いわゆるメインプロセッサとして機能し、リードオンリーメモリROMに格納された制御プログラムに従ってステップ動作して、所定の演算処理を実行するとともに、シングルチップマイクロコンピュータMCの各部の動作を制御・統轄する。
【0011】
シングルチップマイクロコンピュータMCのシステムバスSBUSには、さらにマイクロプログラム方式のマイクロプロセッサMPUが結合されるとともに、ダイレクトメモリアクセスコントローラDMAC,シリアルコミュニケーションインタフェースSCI及び入出力ポートIOPが結合される。このうち、マイクロプロセッサMPUは、m+1個の汎用レジスタGR0〜GRmと図示されない算術論理演算ユニットALUとを含み、複数の周辺装置としての機能をソフトウェア的にエミュレートするいわゆるサブプロセッサとして機能する。また、ダイレクトメモリアクセスコントローラDMACは、中央処理装置CPU又はマイクロプロセッサMPUを介することなくリードオンリーメモリROM又はランダムアクセスメモリRAMとシリアルコミュニケーションインタフェースSCI又は入出力ポートIOPとの間のデータ授受を仲介し、シリアルコミュニケーションインタフェースSCIは、データの直並列又は並直列変換機能を有し、外部のシリアル入出力装置との間で一連のデータのシリアル転送を行う。なお、マイクロプロセッサMPUは、前述のように、複数の周辺装置を時分割的にエミュレートするサブプロセッサとして機能するが、論理構成が複雑で相当な高速性を要求されることの多いダイレクトメモリアクセスコントローラDMAC及びシリアルコミュニケーションインタフェースSCIについては専用ハードウェアも搭載し、ユーザの高度なニーズに応えることができる構成とした。
【0012】
この実施例において、マイクロプロセッサMPUに含まれるm+1個の汎用レジスタGR0〜GRmのうち2個の汎用レジスタGR0及びGR1は、インタフェースバスIBUSを介して入出力ポートIOPのポートP0及びP1にそれぞれ直結される。また、これらの汎用レジスタGR0及びGR1は、後述するように、データ加工部DPをそれぞれ含み、その保持データに対して所定のデータ加工処理を独立に施しうるいわゆる機能付き汎用レジスタとされる。一方、入出力ポートIOPを起点とするインタフェースバスIBUSには、さらに中央処理装置CPUが結合されるとともに、ダイレクトメモリアクセスコントローラDMAC及びシリアルコミュニケーションインタフェースSCIが結合される。また、シリアルコミュニケーションインタフェースSCIは、入出力ポートIOPのポートP2に結合され、入出力ポートIOPのポートP1ないしP2には、対応する入出力装置IO0〜IO2がそれぞれ結合される。なお、インタフェースバスIBUSは、システムバスSBUSのような確固たる共通バス形態を採るものではなく、特定のブロック間に設けられた多くの専用信号線を含む。
【0013】
図2には、図1のシングルチップマイクロコンピュータMCに含まれるマイクロプロセッサMPUの一実施例のブロック図が示されている。また、図3には、図2のマイクロプロセッサMPUに含まれる機能付き汎用レジスタGR0の一実施例のブロック図が示され、図4には、図3の機能付き汎用レジスタGR0のビットB0の一実施例のブロック図が示されている。これらの図をもとに、マイクロプロセッサMPUの具体的構成及び動作ならびにその特徴について説明する。なお、機能付き汎用レジスタGR1については、図3の機能付き汎用レジスタGR0に関する説明から類推され、機能付き汎用レジスタGR0のビットB1〜BFについては、図4のビットB0に関する説明から類推されたい。
【0014】
図2において、マイクロプロセッサMPUは、前述のように、マイクロプログラム方式の処理装置とされ、プログラムメモリ部PM,制御回路部PCならびに演算回路部AEを含む。このうち、プログラムメモリ部PMは、それぞれ所定ビットからなるj+1個のプログラムメモリPM0〜PMjを含み、これらのプログラムメモリから出力される命令は一つのワードを構成する。プログラムメモリPM0〜PMjすなわちプログラムメモリ部PMは、特に制限されないが、512のアドレスを有し、そのアドレスは、図示されないプログラムカウンタによって所定の順序で択一的に指定される。マイクロプロセッサMPUは、所定のクロック信号に従って同期動作し、マイクロプロセッサMPUから読み出される各ワードの命令に沿った処理をクロック信号の1サイクル内に実行する。
【0015】
一方、制御回路部PCは、プログラムメモリ部PMのプログラムメモリPM0〜PMjに対応して設けられるj+1個の制御回路PC0〜PCjを含む。このうち、制御回路PC0及びPC1は、演算回路部AEの機能付き汎用レジスタGR0及びGR1の動作をそれぞれ制御し、制御回路PC2は、算術論理演算ユニット入力バスAIBUSに対する入力を制御する。また、制御回路PCiは、後述するPリード機能を制御し、制御回路PCjは、算術論理演算ユニットALUの動作を制御する。なお、図示されない制御回路PC3は、算術論理演算ユニット出力バスAOBUSに対する出力を制御し、制御回路PCi−1は、後述するOUT命令に供される。制御回路PC0〜PCjは、対応するプログラムメモリPM0〜PMjから読み出される命令をそれぞれデコードして、対応するブロックの動作制御に必要な制御信号を選択的に形成する。これにより、この実施例のマイクロプロセッサMPUは、プログラムメモリPM0〜PMjに格納された命令を制御回路PC0〜PCjつまりは複数の機能単位を使って同時にかつ並行して実行し、複数の機能を同時にかつ並行して実現する。
【0016】
次に、演算回路部AEは、算術論理演算ユニットALUと、算術論理演算ユニット入力バスAIBUS及び算術論理演算ユニット出力バスAOBUSを介して算術論理演算ユニットALUに結合されるm+1個の汎用レジスタGR0〜GRmとを含む。このうち、算術論理演算ユニットALUは、各種演算機能を有し、算術論理演算ユニット入力バスAIBUSを介して入力されるデータに所定の演算処理を施し、算術論理演算ユニット出力バスAOBUSに出力する。また、汎用レジスタGR0〜GRmは、算術論理演算ユニットALUから算術論理演算ユニット出力バスAOBUSを介して出力されるデータを取り込み、保持するとともに、必要に応じて算術論理演算ユニット出力バスAOBUSつまり算術論理演算ユニットALUに出力する。前述のように、汎用レジスタGR0〜GR1と算術論理演算ユニット入力バスAIBUS及び算術論理演算ユニット出力バスAOBUSとの間の接続は、制御回路PC2等つまりプログラムメモリPM2等に格納された命令に従って制御される。また、汎用レジスタGR0〜GRmから算術論理演算ユニットALUに出力されたデータは、クロック信号の同一サイクル内において算術論理演算ユニットALUで処理され、再び汎用レジスタGR0〜GRmに取り込まれる。この結果、汎用レジスタGR0〜GRmは、算術論理演算ユニットALUに直結された形となり、算術論理演算ユニットALUつまりはマイクロプロセッサMPUの演算処理に直接関与しうるものとなる。
【0017】
この実施例において、汎用レジスタGR0及びGR1は、データ加工部DPをそれぞれ含み、機能付き汎用レジスタとされる。また、汎用レジスタGR0及びGR1は、インタフェースバスIBUSを介して入出力ポートIOPの対応するポートP0及びP1に直結されるとともに、システムバスSBUSを介して中央処理装置CPU及びランダムアクセスメモリRAM等に結合される。上記のように、機能付き汎用レジスタGR0及びGR1は、算術論理演算ユニットALUつまりはマイクロプロセッサMPUの演算処理に直接関与しうるものとされる。このため、算術論理演算ユニットALUつまりマイクロプロセッサMPUは、機能付き汎用レジスタGR0又はGR1を介して入出力ポートIOPのポートP0及びP1に関する入力処理又は出力処理に直接関与できるものとなる。
【0018】
ところで、演算回路部AEの汎用レジスタGR0及びGR1は、図3の汎用レジスタGR0に代表されるように、16個のビットB0〜BF(ここで、16個設けられる汎用レジスタのビット等の追番を16進数により表す。以下同様)を含み、これらのビットB0〜BFは、第1相のクロック信号CLK1に従って動作するスタティックラッチSLと、第2相のクロック信号CLK2に従って動作するダイナミックラッチDLとをそれぞれ含む。また、ビットB0〜BFのダイナミックラッチDL及びスタティックラッチSL間に設けられる4個のライトセレクタWSa〜WSdを含み、スタティックラッチSLの出力信号を受けるリードセレクタRSを含む。このうち、ライトセレクタWSaのデータ入力端子(入力ノード)には、回路の接地電位に結合され、ライトセレクタWSb〜WSdのデータ入力端子は、それぞれインタフェースバスIBUS,算術論理演算ユニット出力バスAOBUS及びシステムバスSBUSに結合される。また、その制御端子には、制御回路部PCの制御回路PC0からセレクタ制御信号SCa〜SCdがそれぞれ供給される。なお、これらのセレクタ制御信号SCa〜SCdは、リードセレクタRSにも供給される。リードセレクタRSの第1の出力端子(出力ノード)は、システムバスSBUSに結合され、その第2〜第3の出力端子は、算術論理演算ユニット入力バスAIBUS及びインタフェースバスIBUSにそれぞれ結合される。また、その第4の出力端子は、Pリード用の出力端子とされ、システムバスSBUSの対応するビットに結合される。
【0019】
ここで、機能付き汎用レジスタGR0のビットB0〜BFを構成するライトセレクタWSa〜WSdは、図4に例示されるように、それぞれ2個のライトセレクタWSPa及びWSNaないしWSPd及びWSNdからなり、リードセレクタRSも、4個のリードセレクタRSa〜RSdからなる。このうち、ライトセレクタWSPaのデータ入力端子は、回路の接地電位に結合され、その制御端子には、セレクタ制御信号SCaが供給される。また、ライトセレクタWSNaのデータ入力端子は、ダイナミックラッチDLの出力端子に結合され、その制御端子には、セレクタ制御信号SCaの反転信号が供給される。これらのライトセレクタWSPa及びWSNaの出力端子は、共通結合された後、ライトセレクタWSNbのデータ入力端子に結合される。一方、ライトセレクタWSPbのデータ入力端子は、インタフェースバスIBUSの対応するビットB0に結合される。また、その制御端子には、セレクタ制御信号SCbが供給され、ライトセレクタWSNbの制御端子には、セレクタ制御信号SCbの反転信号が供給される。これらのライトセレクタWSPb及びWSNbの出力端子は、共通結合された後、ライトセレクタWSNcのデータ入力端子に結合される。
【0020】
同様に、ライトセレクタWSPcのデータ入力端子は、算術論理演算ユニット出力バスAOBUSの対応するビットB0に結合される。また、その制御端子には、セレクタ制御信号SCcが供給され、ライトセレクタWSNcの制御端子には、セレクタ制御信号SCcの反転信号が供給される。これらのライトセレクタWSPc及びWSNcの出力端子は、共通結合された後、ライトセレクタWSNdのデータ入力端子に結合される。一方、ライトセレクタWSPdのデータ入力端子は、システムバスSBUSの対応するビットB0に結合される。また、その制御端子には、セレクタ制御信号SCdが供給され、ライトセレクタWSNdの制御端子には、セレクタ制御信号SCdの反転信号が供給される。これらのライトセレクタWSPd及びWSNdの出力端子は、共通結合された後、スタティックラッチSLの入力端子に結合される。
【0021】
ライトセレクタWSPa〜WSPdは、対応するセレクタ制御信号SCa〜SCdのハイレベルを受けてそれぞれ選択的に伝達状態とされ、そのデータ入力端子に供給される回路の接地電位あるいはインタフェースバスIBUS,算術論理演算ユニット出力バスAOBUS又はシステムバスSBUSのビットB0を介して入力されるデータを次段のライトセレクタWSNb,WSNc又はWSNdのデータ入力端子あるいはスタティックラッチSLの入力端子にそれぞれ選択的に伝達する。また、ライトセレクタWSNa〜WSNdは、対応するセレクタ制御信号SCa〜SCdのロウレベルつまりはその反転信号のハイレベルを受けてそれぞれ選択的に伝達状態とされ、そのデータ入力端子に供給されるダイナミックラッチDLの出力信号あるいは前段の一対のライトセレクタWSPa及びWSNa,WSPb及びWSNbならびにWSPc及びWSNcの出力信号を次段のライトセレクタWSNb,WSNc又はWSNdのデータ入力端子あるいはスタティックラッチSLの入力端子にそれぞれ選択的に伝達する。
【0022】
これらのことから、スタティックラッチSLの入力端子には、セレクタ制御信号SCaがハイレベルとされかつセレクタ制御信号SCb〜SCdがすべてロウレベルであることを条件に、回路の接地電位つまり論理“0”が選択的に伝達される。また、セレクタ制御信号SCbがハイレベルとされかつセレクタ制御信号SCc及びSCdがともにロウレベルであることを条件に、インタフェースバスIBUSのビットB0を介して入力されるデータが選択的に伝達され、セレクタ制御信号SCcがハイレベルとされかつセレクタ制御信号SCdがロウレベルであることを条件に、算術論理演算ユニット出力バスAOBUSのビットB0を介して入力されるデータが選択的に伝達される。さらに、セレクタ制御信号SCdがハイレベルであることを条件に、システムバスSBUSのビットB0を介して入力されるデータが選択的に伝達され、セレクタ制御信号SCa〜SCdがすべてロウレベルである場合には、ダイナミックラッチDLの出力信号が選択的に伝達される。つまり、ライトセレクタWSPa〜WSPdならびにWSNa〜WSNdは、一つの優先順序回路を構成する訳であって、スタティックラッチSLの入力端子には、システムバスSBUSのビットB0を介して入力されるデータが最優先で伝達され、ついで算術論理演算ユニット出力バスAOBUS,インタフェースバスIBUSのビットB0を介して入力されるデータ又は回路の接地電位あるいはダイナミックラッチDLの出力信号の順序で伝達される。
【0023】
なお、この実施例におけるライトセレクタWSa〜WSdの優先順位は、マイクロプロセッサMPUつまりはシングルチップマイクロコンピュータMCの使い勝手が良くなるよう工夫される。すなわち、例えば、外部の入出力装置IO0〜IO2から入出力ポートIOPを介して入力される信号より、プログラマが人為的に書き込むデータの方が優先されるとともに、信号の伝達遅延時間の大きな出力回路をスタティックラッチSLの近くに配置し、マイクロプロセッサMPU全体としての高速化を図っている。また、中央処理装置CPU等からシステムバスSBUSを介して行われる書き込みやOUT命令による書き込みは、プログラムに直接関係のないリードクリア機能ならびに入出力ポートIOPを介する外部からの書き込みよりも優先され、プログラムに従って同期動作する中央処理装置CPUによる書き込みは、専用ハードウェア化されたダイレクトメモリアクセスコントローラDMACやシリアルコミュニケーションインタフェースSCI等の周辺装置からの書き込みよりも優先される。さらに、回路が複雑なために比較的伝達遅延時間の大きなOUT命令による書き込みは、算術論理演算ユニットALUからの書き込みよりも優先され、リードクリア機能による書き込みと入出力ポートIOPを介する外部からの書き込みとが競合した場合には、入出力処理の高速化に寄与する度合の大きな外部からの書き込みが優先される。
【0024】
スタティックラッチSLの入力端子に伝達されたデータは、クロック信号CLK1の立ち上がりエッジに同期してスタティックラッチSLに取り込まれ、保持される。また、このスタティックラッチSLの出力信号は、クロック信号CLK2の立ち上がりエッジに同期してダイナミックラッチDLに取り込まれ、保持される。これにより、汎用レジスタGR0は、セレクタ制御信号SCa〜SCdつまりは対応するプログラムメモリPM0から読み出された命令に従って、システムバスSBUS,算術論理演算ユニット出力バスAOBUS,インタフェースバスIBUSのビットB0を介して入力されるデータ又は回路の接地電位あるいはダイナミックラッチDLの出力信号を選択的に取り込み、保持する言わば入力選択機能を有し、対応するデータ加工機能を有するものとなる。
【0025】
言うまでもなく、システムバスSBUSを介して入力されるデータは、中央処理装置CPU又はランダムアクセスメモリRAM等から出力されるものであり、算術論理演算ユニット出力バスAOBUSを介して入力されるデータは、算術論理演算ユニットALUの演算結果である。また、インタフェースバスIBUSを介して入力されるデータは、対応する入出力装置IO0から入出力ポートIOPのポートP0を介して入力される外部入力データであり、回路の接地電位は、後述するPリードのリードクリア時におけるクリア信号となる。一方、クロック信号CLK1及びCLK2の周波数が高くされマイクロプロセッサMPUが高速動作を行うとき、各ライトセレクタに入力されるデータやセレクタ制御信号にはハザード発生の可能性があり、最終的にスタティックラッチSLが不定状態となるケースが生じるおそれもある。セレクタ制御信号SCa〜SCdがすべてロウレベルとされるときダイナミックラッチDLの出力信号がスタティックラッチSLにそのまま伝達されることは、このようなケースにダイナミックラッチDLの保持データをそのままスタティックラッチSLに伝達し、少なくとも前回値を回復して、ハザードによる障害を防止することをその目的としている。
【0026】
次に、リードセレクタRSを構成するリードセレクタRSa〜RSdのデータ入力端子には、スタティックラッチSLの出力信号が共通に供給され、その制御端子には、対応するセレクタ制御信号SCa〜SCdがそれぞれ供給される。また、リードセレクタRSa〜RScの出力端子は、システムバスSBUS,算術論理演算ユニット入力バスAIBUS及びインタフェースバスIBUSの対応するビットB0にそれぞれ結合され、リードセレクタRSdの出力端子は、システムバスSBUSの所定ビットBxに結合される。リードセレクタRSdによるデータ出力は、いわゆるPリードと呼ばれるものであって、このビットBxは、例えば図示されない信号経路を介して算術論理演算ユニットALUのシフタ命令の入力端子等に結合され、マイクロプロセッサMPUの判定動作に供される。
【0027】
リードセレクタRSa〜RSdは、対応するセレクタ制御信号SCa〜SCdのハイレベルを受けてそれぞれ選択的に伝達状態とされ、スタティックラッチSLの出力信号つまりは汎用レジスタGR0のビットB0により保持されるデータをシステムバスSBUS,算術論理演算ユニット入力バスAIBUS又はインタフェースバスIBUSの対応するビットB0あるいはシステムバスSBUSの所定ビットBxに選択的に伝達する。これにより、汎用レジスタGR0は、その保持データをシステムバスSBUS,算術論理演算ユニット入力バスAIBUS又はインタフェースバスIBUSに選択的に伝達する言わば出力選択機能を有するものとなり、言わばデータ出力に関するデータ加工機能を有するものとなる。なお、Pリード時、システムバスSBUSのビットBxに出力されるデータが論理“1”である場合には、前記セレクタ制御信号SCaが選択的にハイレベルとされ、これによって選択的にリードクリアが実現される。また、リードセレクタRSa〜RSdは、それぞれ独立してデータの出力機能を実現できるため、この実施例ではデータ出力に関する競合が発生することはない。
【0028】
ところで、この実施例のマイクロプロセッサMPUは、前述のように、OUT命令機能を有し、例えば機能付き汎用レジスタGR1は、算術論理演算ユニットALUの演算結果として得られるゼロフラグ又はキャリーフラグを条件とし又は無条件で、その指定されたビットに1ビット単位でデータを取り込み、入出力ポートIOPの対応するポートP1に伝達する機能を有する。言うまでもなく、ゼロフラグとは、算術論理演算ユニットALUの演算結果が“0”のとき選択的に論理“1”とされるフラグであり、キャリーフラグとは、算術論理演算ユニットALUによる演算が行われた結果、桁あふれや桁落ちが生じたとき選択的に論理“1”とされるフラグである。この実施例のマイクロプロセッサMPUは、OUT命令による出力と、例えば機能付き汎用レジスタGR0を介する16ビット単位の出力とを同時に実行できるため、データを16+1ビットつまり17ビット単位で外部の入出力装置に出力できるものとなる。
【0029】
ここで、機能付き汎用レジスタGR0を使用して入出力ポートIOPのポートP0から所定の出力信号を出力する場合のプログラムを例示しよう。まず、最初に、マイクロプロセッサMPUは、算術論理演算ユニットALUから算術論理演算ユニット出力バスAOBUSを介して16ビットの2進データ“0000000010000111”をイミディエイト値として機能付き汎用レジスタGR0に書き込む命令を実行させる。次に、s秒後に、2進データ“0000000011000011”を書き込む命令を実行させ、さらにs秒が経過するごとに、2進データ“0000000011100001”,“0000000011110000”,“0000000001111000”,“0000000000111100”,“0000000000011110”及び“0000000000001111”を書き込む命令を順次実行させ、これらの8個の命令をもってプログラムループを形成させる。
【0030】
これらのことから、ポートP0の上位8個の外部端子には、常に論理“0”の固定波形が出力されるが、下位8個の外部端子には、周期8s秒、デューティ50%とされ、かつ互いに45度の位相差を有する8相の出力信号波形を得ることができる。このとき、機能付き汎用レジスタGR0は、入出力ポートIOPのポートP0とともに信号発生回路となるタイマー回路等をエミュレートしている訳であって、データの入出力経路や組み合わせならびに命令を変えることで、各種の周辺装置をソフトウェア的にエミュレートできるものとなる。また、このようなエミュレーションは、機能付き汎用レジスタのそれぞれにおいて独立しかつ並行して実現できるものであって、1個のマイクロプロセッサMPUの時分割処理によって複数の周辺装置を同時にエミュレートできるものとなる。
【0031】
図5には、図2のマイクロプロセッサMPUの演算回路部AEに含まれる機能付き汎用レジスタGR0の第2の実施例のブロック図が示されている。なお、この実施例の機能付き汎用レジスタGR0は、前記図3の実施例を基本的に踏襲するものであるため、これと異なる部分についてのみ説明を追加する。
【0032】
図5において、機能付き汎用レジスタGR0のビットB0を構成するライトセレクタWSaの第1の入力端子には、所定のシフト入力端子を介してシフト入力信号Sinが供給され、第2の入力端子には、対応するダイナミックラッチDLの出力信号が供給される。また、その第1の制御端子には、セレクタ制御信号SCaが供給され、第2の制御端子には、前回値選択信号PSLが供給される。一方、機能付き汎用レジスタGR0のビットB1〜BFを構成するライトセレクタWSaの第1の入力端子には、前段のビットB0〜BEを構成するスタティックラッチSLの出力信号S0〜SEがそれぞれ供給され、第2の入力端子には、対応するダイナミックラッチDLの出力信号がそれぞれ供給される。また、その制御端子には、上記セレクタ制御信号SCaが共通に供給される。
【0033】
機能付き汎用レジスタGR0のビットB0〜BFを構成するライトセレクタWSaは、セレクタ制御信号SCaがロウレベルとされるとき、対応するダイナミックラッチDLの出力信号を選択し、ライトセレクタWSbに伝達する。また、セレクタ制御信号SCaがハイレベルとされるとき、シリアル入力信号Sin又は前段のビットB0〜BEを構成するスタティックラッチSLの出力信号S0〜SEを選択し、ライトセレクタWSbに伝達する。ライトセレクタWSbに伝達された信号は、セレクタ制御信号SCb〜SCdがロウレベルであることを条件に選択的にスタティックラッチSLに伝達され、さらに対応するダイナミックラッチDLに伝達される。これにより、機能付き汎用レジスタGR0のビットB0〜BFは、セレクタ制御信号SCaがハイレベルとされることを条件に選択的にシフタ構成とされて直並列又は並直列変換回路として機能し、ソフトウェア的にシリアルコミュニケーションインタフェースSCIあるいはパルスワイズモジレーションタイマ等をエミュレートしうるものとなる。なお、機能付き汎用レジスタGR0がシフタ構成とされるとき、最下位ビットのビットB0を構成するライトセレクタWSaは、前回値選択信号PSLがハイレベルであることを条件に、ダイナミックラッチDLの出力つまりはその前回値を繰り返し選択し、シフト入力信号Sinは無効となる。
【0034】
前記図3の実施例で示したように、機能付き汎用レジスタGR0は、セレクタ制御信号SCcがハイレベルとされることで、算術論理演算ユニット出力バスAOBUSを介して供給される算術論理演算ユニットALUの出力をパラレルに取り込み、またそのビットB0〜BFを構成するスタティックラッチSLの出力を算術論理演算ユニット出力バスAOBUSを介して算術論理演算ユニットALUにパラレルに出力する機能を持つ。したがって、まずセレクタ制御信号SCaをハイレベルとして機能付き汎用レジスタGR0をシフタ構成とし、16ビットのシフト入力信号Sinが入力された時点でセレクタ制御信号SCcをハイレベルとして機能付き汎用レジスタGR0の各スタティックラッチSLの出力を算術論理演算ユニット入力バスAIBUSつまり算術論理演算ユニットALUにパラレル出力することで、16ビットの直並列変換回路をエミュレートできる。また、まずセレクタ制御信号SCcをハイレベルとして機能付き汎用レジスタGR0に算術論理演算ユニットALUの出力をパラレル入力した後、セレクタ制御信号SCaをハイレベルとして機能付き汎用レジスタGR0をシフタ構成することで、やはり16ビットの並直列変換回路をエミュレートできる。このとき、ビットBFのスタティックラッチSLの出力信号SFは、シリアル出力信号Soutとして所定のシリアル出力端子からシリアルに出力することができる。
【0035】
ところで、この実施例のマイクロプロセッサMPUは、前述のように、専用ハードウェアとして構成されるシリアルコミュニケーションインタフェースSCIを備え、このシリアルコミュニケーションインタフェースSCIは、周知のように、上記機能付き汎用レジスタGR0がシフタ構成とされる場合と同様な直並列又は並直列変換機能を持つ。しかし、シフタ構成とされる機能付き汎用レジスタGR0の動作がプログラムメモリPM0に格納された命令に従って制御されるのに比べて、専用ハードウェアたるシリアルコミュニケーションインタフェースSCIの動作は、変換終了時における16ビットごとの割り込み処理を必要とし、これによって中央処理装置CPUの処理負担が増大する。言い換えるならば、マイクロプロセッサMPUによってエミュレートされるシリアルコミュニケーションインタフェースSCIは、中央処理装置CPUの介入を必要とすることなくしかも中央処理装置CPUによる他の処理と並行して実現できる訳であって、結果的に中央処理装置CPUの処理負担が著しく軽減されるものとなる。
【0036】
ここで、二つのプログラム例をあげ、シフタ構成とされる機能付き汎用レジスタの応用方法を説明する。まず、第1のプログラム例では、機能付き汎用レジスタGR0のシリアル出力端子Soutが結合される入出力ポートIOPのポートP0の外部端子Xと、機能付き汎用レジスタGR1のシリアル出力端子Soutが結合されるポートP1の外部端子Yに、位相差180度、デューティ20%、周波数が基本クロック信号の1/10とされる2相の出力信号を得る。
【0037】
マイクロプロセッサMPUは、最初に外部端子Xに対応する機能付き汎用レジスタGR0に2進データ“1100000000000000”を、また外部端子Yに対応する機能付き汎用レジスタGR1に2進データ“0000011000000000”を、算術論理演算ユニットALUから書き込むための命令を実行する。次に、機能付き汎用レジスタGR0及びGR1のビットB0のシフト入力信号Sinとして論理“0”又は“1”のデータを代入した後、セレクタ制御信号SCaをハイレベルとし、機能付き汎用レジスタGR0及びGR1をシフタ構成とする。そして、基本クロック信号の10サイクルが経過した時点で機能付き汎用レジスタGR0の上位8ビットに2進データ“11000000”を書き込み、さらに5サイクル後には機能付き汎用レジスタGR1の上位8ビットに同じ2進データ“11000000”を書き込む。以下、5サイクルが経過するごとに機能付き汎用レジスタGR0及びGR1の上位8ビットに2進データ“11000000”を交互に書き込み、これらの命令をループさせる。
【0038】
これらの結果、入出力ポートIOPのポートP0及びP1の外部端子X及びYには、位相差180度、デューティ20%、周波数がクロック信号の1/10とされる2相の出力波形が得られ、この出力信号によって例えばモータ等を駆動することが可能となる。このプログラム例の場合、マイクロプロセッサMPUの算術論理演算ユニットALUは、基本クロック信号の5サイクルおきに2進データ“11000000”を書き込む命令を実行すればよい訳であり、残りの4サイクルでは他の処理を実行し、その処理能力を高めることができる。
【0039】
次に、第2のプログラム例として、機能付き汎用レジスタGR0のシフト出力端子Soutが結合される入出力ポートIOPのポートP0の外部端子Zに、デューティ75%、周波数が基本クロック信号の1/40とされる出力波形を得る場合を掲げる。マイクロプロセッサMPUは、まず算術論理演算ユニットALUから機能付き汎用レジスタGR0に2進データ“1111111111111111”を書き込む命令を実行する。また、前回値選択信号PSLをハイレベルとした後、セレクタ制御信号SCaをハイレベルとし、機能付き汎用レジスタGR0をシフタ構成とする。そして、基本クロック信号の20サイクルが経過した時点で、算術論理演算ユニットALUから機能付き汎用レジスタGR0に2進データ“1111111111000000”を書き込む命令を実行した後、さらに基本クロック信号の20サイクルが経過するごとに、2進データ“1111111111111111”及び“1111111111000000”を交互に書き込むための命令を実行し、これらの命令をループさせる。
【0040】
これらの結果、入出力ポートIOPのポートP0の外部端子Zには、2進データ“1111111111111111111111111111110000000000”に対応するデューティ75%、周波数が基本クロック信号の1/40の出力波形が得られる。なお、シフタ構成とされる機能付き汎用レジスタGR0が16ビット構成とされその並直列変換処理が16ビットを単位として行われるにもかかわらず、上記一連の2進データを書き込むための命令は20サイクルごとに実行されるが、この実施例の場合、前回値選択信号PSLがハイレベルとされ機能付き汎用レジスタGR0のビットB0がその前回値を繰り返し入力するため、上記のような信号波形を得ることができるものとなる。このことは、比較的サイクルの長い各種の信号波形の生成に有効となり、これによってマイクロプロセッサMPUの利便性がさらに高められるものとなる。
【0041】
図6には、図2のマイクロプロセッサMPUに含まれる演算回路部AEの第3の実施例のブロック図が示されている。なお、この実施例の演算回路部AEは前記図2及び図3の実施例を基本的に踏襲するものであるため、これと異なる部分についてのみ説明を追加する。また、図6では、リードセレクタRS,スタティックラッチSL,ライトセレクタWS及び算術論理演算ユニットALUが、上位又は下位の8ビットを単位とするブロックにまとめて示される。
【0042】
図6において、機能付き汎用レジスタGR0は、上位又は下位の8ビットを単位として分割された二つのリードセレクタRSU及びRSLを含む。このうち、上位リードセレクタRSUの入力端子は、8ビットからなるスタティックラッチSLの出力端子に結合され、その出力端子は、上位算術論理演算ユニット入力バスAIBUSUならびにインタフェースバスIBUSの上位8ビットに結合される。一方、下位リードセレクタRSLの入力端子は、8ビットからなるグランド部GNDに結合され、その出力端子は、下位算術論理演算ユニット入力バスAIBUSLに結合される。なお、グランド部GNDの各ビットの出力端子には、常に回路の接地電位つまり論理“0”が出力される。リードセレクタRSLの制御端子には、算術論理演算ユニットALUからみて入力選択信号となるセレクタ制御信号SCaiが供給される。また、リードセレクタRSUの第1の制御端子には、上記セレクタ制御信号SCaiが供給され、その第2の入力端子には、外部データの入力選択信号となるセレクタ制御信号SCedが供給される。
【0043】
リードセレクタRSUは、セレクタ制御信号SCaiがハイレベルとされるとき、スタティックラッチSLによって保持される8ビットのデータを上位算術論理演算ユニット入力バスAIBUSUを介して算術論理演算ユニットALUの上位8ビットつまり上位算術論理演算ユニットACUに入力する。このとき、下位リードセレクタRSLは、グランド部GNDから供給される8ビットの論理“0”データを下位算術論理演算ユニット入力バスAIBUSLを介して算術論理演算ユニットALUの下位8ビットつまり下位算術論理演算ユニットACLに入力する。一方、リードセレクタRSUは、セレクタ制御信号SCedがハイレベルとされるとき、スタティックラッチSLによって保持される8ビットのデータをインタフェースバスIBUSの下位8ビットならびに入出力ポートIOPのポートP0を介して外部の入出力装置IO0に出力する。
【0044】
機能付き汎用レジスタGR0は、さらに8ビットからなるライトセレクタWSを含む。このライトセレクタWSの第1及び第2の入力端子は、下位算術論理演算ユニット出力バスAOBUSL及び上位算術論理演算ユニット出力バスAOBUSUにそれぞれ結合され、その第3の入力端子は、インタフェースバスIBUSに結合される。また、ライトセレクタWSの第1の制御端子には、算術論理演算ユニットALUからみて出力選択信号となるセレクタ制御信号SCaoが供給され、その第2の制御端子には、上記セレクタ制御信号SCedが供給される。ライトセレクタWSの出力端子は、スタティックラッチSLの入力端子に結合され、このスタティックラッチSLの出力端子は、図示されないダイナミックラッチDLを介してライトセレクタWSの第4の入力端子に結合される。
【0045】
この実施例において、ライトセレクタWSは、セレクタ制御信号SCedがハイレベルとされるとき、外部の入出力装置IO0から入出力ポートIOP及びインタフェースバスIBUSを介して入力される外部データを取り込み、スタティックラッチSLに伝達する。また、セレクタ制御信号SCaoがハイレベルとされるとき、上位算術論理演算ユニットACUから上位算術論理演算ユニット出力バスAOBUSUを介して入力される8ビットのデータを、下位算術論理演算ユニットACLから下位算術論理演算ユニット出力バスAOBUSLを介して入力される8ビットのデータをマスクとして選択的に取り込み、スタティックラッチSLに伝達する。すなわち、ライトセレクタWSは、上位算術論理演算ユニットACUから上位算術論理演算ユニット出力バスAOBUSUを介して入力される8ビットのデータを、対応するマスクデータが論理“0”であることを条件に選択的に取り込み、スタティックラッチSLの対応するビットに伝達する。対応するマスクデータが論理“1”とされるとき、上位算術論理演算ユニット出力バスAOBUSUを介して入力されるデータは無視され、スタティックラッチSLの対応するビットは変化しない。また、セレクタ制御信号SCed及びSCaoがともにロウレベルとされるとき、ライトセレクタWSは、スタティックラッチSLによって保持される前回値をそのまま再度取り込み、保持する。
【0046】
ここで、三つのプログラム例をあげて、この実施例の演算回路部AEの応用方法について説明する。まず、第1のプログラム例は、機能付き汎用レジスタGR0に対応する入出力ポートIOPのポートP0の8個の外部端子から、命令Aに含まれる3ビットのイミディエイトデータ“abc”と命令Bに含まれる5ビットのイミディエイトデータ“lmnop”とを組み合わせて出力するケースである。この実施例の場合、マイクロプロセッサMPUは、最初に“MOV abcdefgh00011111→GR0”なる命令Aを実行した後、引き続いて“MOV ijklmnop11100000→GR0”なる命令Bを実行する。なお、これらの命令A及びBに代表される“MOV X→Y”なるいわゆるムーブ命令は、“データXをYに出力せよ”を意味するものであり、Xは上記のようなイミディエイト値でも良いし指定されたレジスタの中身であってもよい。言うまでもなく、Yは機能付き汎用レジスタGR0を示し、あわせて入出力ポートIOPのポートP0の8個の外部端子をも示すものである。
【0047】
演算回路部AEの機能付き汎用レジスタGR0では、まず命令Aを受けてセレクタ制御信号SCaoがハイレベルとされ、算術論理演算ユニットALUの上位8ビットつまり2進データ“abcdefgh”が下位8ビットつまりマスクデータ“00011111”に従って選択的にスタティックラッチSLに取り込まれる。前述のように、2進データの各ビットは、対応するマスクデータが論理“0”であることを条件に選択的にスタティックラッチSLの対応するビットに伝達されるため、スタティックラッチSLには、2進データの上位3ビットつまり2進データ“abc”のみが選択的に取り込まれる。このとき、スタティックラッチSLの下位5ビットは、破壊されずにそのまま保持される。次に、この状態で命令Bが実行されると、機能付き汎用レジスタGR0では、セレクタ制御信号SCaoが再度ハイレベルとされ、算術論理演算ユニットALUの上位8ビットつまり2進データ“ijklmnop”が下位8ビットつまりマスクデータ“11100000”に従って選択的にスタティックラッチSLに取り込まれる。この結果、スタティックラッチSLには、2進データの下位5ビットつまり2進データ“lmnop”のみが選択的に取り込まれ、上位3ビットの2進データ“abc”は、そのまま破壊されずに保持される。
【0048】
前述のように、機能付き汎用レジスタGR0は、入出力ポートIOPのポートP0に直結され、スタティックラッチSLにおいて組み合わされた8ビットの2進データ“abclmnop“は、ポートP0の8個の外部端子を介して対応する入出力装置IO0に出力される。
【0049】
一方、第2のプログラム例は、例えば入出力ポートIOPのポートP0の8個の外部端子から8ビットの外部データを機能付き汎用レジスタGR0に入力した後、その上位4ビットを破壊することなく算術論理演算ユニットALUによって“1”を加算し、再度もとの8個の外部端子から出力するものである。マイクロプロセッサMPUでは、“ADD 0000000111110000→GR0”なる命令Cが実行される。この命令Cに代表される加算命令“ADD X→Y”は、“XのデータをYのデータに加算し、Yに出力せよ”を意味し、Xはイミディエイト値でもよく指定されたレジスタの中身であってもよい。
【0050】
マイクロプロセッサMPUの機能付き汎用レジスタGR0では、命令Cの実行によってまずセレクタ制御信号SCedがハイレベルとされ、入出力ポートIOPのポートP0からインタフェースバスIBUSの上位8ビットを介して伝達される8ビットの外部データがスタティックラッチSLに取り込まれる。これらの外部データは、セレクタ制御信号SCaiがハイレベルとされることで算術論理演算ユニットALUの上位8ビットつまり上位算術論理演算ユニットACUの一方の入力端子に伝達され、その下位8ビットつまり下位算術論理演算ユニットACLの一方の入力端子には、グランド部GNDを介して2進データ“00000000”が入力される。このとき、上位算術論理演算ユニットACUの他方の入力端子には、命令Cのイミディエイト値の上位8ビットつまり2進データ“00000001”が入力され、下位算術論理演算ユニットACLの他方の入力端子には、その下位8ビットつまり2進データ“11110000”が入力される。したがって、外部データの初期値を例えば“00001111”とした場合、算術論理演算ユニットALUは、“0000000111110000”+“0000111100000000”なる加算処理を実行し、その結果として桁上げ信号を含む2進データ“0001000011110000”を得る。
【0051】
算術論理演算ユニットALUの演算結果は、前述のように、その上位8ビットを意味のある2進データとしその下位8ビットをマスクデータとして機能付き汎用レジスタGR0に再書き込みされ、入出力ポートIOPのポートP0に伝達される。この結果、ポートP0の8個の外部端子には、2進データ“00000000”が出力され、加算結果の第12ビットに含まれる桁上げ信号は無視され、外部データの上位4ビットも破壊されることなく残される。つまり、この実施例の場合、算術論理演算ユニットALUの下位8ビットの一方の入力端子には、グランド部GNDから常に2進データ“00000000”が入力されるため、加算結果の下位8ビットつまりマスクデータには桁上げが発生せず、第7ビットから第4ビットは常に論理“1”となる。このため、加算結果の第11ビットから第8ビットのみが対応する下位4個の外部端子から出力されるとともに、加算結果の桁上げ信号は無視され、外部データの上位4ビットは保護される。
【0052】
最後に、第3のプログラム例として、上記加算命令においてキャリーフラグ及びゼロフラグを有効化する方法をあげる。このマイクロプロセッサMPUでは、前述のように、機能付き汎用レジスタGR0の上位8ビットに意味のある2進データを割り当て、下位8ビットにマスクデータを割り当てているため、マスクデータの全ビットを論理“0”とする加算命令Dつまり“ADD 1111111100000000→GR0”を実行すればよい。このとき、外部データの初期値を“00000001”とすると、算術論理演算ユニットALUは、“1111111100000000”+“0000000100000000”なる加算処理を実行し、その結果として桁上げを伴う2進データ“0000000000000000”を得る。このうち、上位8ビットは、マスクされることなく機能付き汎用レジスタGR0に再書き込みされ、ポートP0の8個の外部端子を介して入出力装置IO0に出力される。また、算術論理演算ユニットALUのゼロフラグ及びキャリーフラグには、演算結果に応じて有効なフラグがそれぞれ選択的に設定されるため、マイクロプロセッサMPUは、分岐命令によってこれらのフラグを活用し、あるいはOUT命令によって外部に出力できる。
【0053】
以上のように、この実施例のマイクロプロセッサMPUは、算術論理演算ユニット入力バスAIBUS及び算術論理演算ユニット出力バスAOBUSを介して算術論理演算ユニットALUに結合されるm+1個の汎用レジスタGR0〜GRmを備え、このうち2個の汎用レジスタGR0及びGR1は、機能付き汎用レジスタとされ、その保持データに対して所定の加工処理を施すためのデータ加工部DPをそれぞれ含む。また、機能付き汎用レジスタGR0及びGR1は、入出力ポートIOPのポートP0及びP1にそれぞれ直結されるため、その保持データを外部の入出力装置IO0及びIO1に直接出力し、またこれらの入出力装置から出力されるデータを直接入力することができる。さらに、この実施例のマイクロプロセッサMPUは、機能付き汎用レジスタGR0及びGR1に対応して設けられるプログラムメモリPM0及びPM1ならびに制御回路PC0及びPC1を備えるため、機能付き汎用レジスタGR0及びGR1は、算術論理演算ユニットALUとは独立にかつ並行して複数の処理を実行する。これらの結果、この実施例のマイクロプロセッサMPUは、同時に複数の周辺装置としての機能をエミュレートし、しかも効率的な入出力処理を実現しうるものとなる。
【0054】
以上の実施例から得られる作用効果は、下記の通りである。すなわち、
(1)シングルチップマイクロコンピュータに搭載され複数の周辺装置としての機能をソフトウェア的にかつ時分割的にエミュレートするマイクロプロセッサ等において、算術論理演算ユニットに結合される汎用レジスタの一部又は全部に、その保持データに所定の加工処理を施すデータ加工機能を持たせるとともに、このようなデータ加工機能を持つ機能付き汎用レジスタを入出力ポートに直結し、各機能付き汎用レジスタに対応してその動作を制御するためのプログラムメモリ及び制御回路を設けることで、算術論理演算ユニットと入出力ポートとの間を機能付き汎用レジスタを介して論理的に直結し、マイクロプロセッサ及び入出力ポート間のデータ授受を高速化できるという効果が得られる。
(2)上記(1)項により、入出力データに対するマスク処理やシフト処理を機能付き汎用レジスタにより算術論理演算ユニットを介することなく並行しかつ効率良く実現することができるという効果が得られる。
(3)上記(1)項及び(2)項により、その入出力処理に関する性能及び分解能を低下させることなく、複数の周辺装置としての機能を時分割的にかつ効率的にエミュレートしうるマイクロプロセッサ等のデジタル処理装置を実現することができるという効果が得られる。
【0055】
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、この発明は、上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。例えば、図1において、シングルチップマイクロコンピュータMCは、ダイレクトメモリアクセスコントローラDMAC及びシリアルコミュニケーションインタフェースSCI以外の専用ハードウェアを備えることができるし、このような専用ハードウェアを備えることを必須条件ともしない。また、入出力ポートIOPは、任意数のポートを備えることができるし、これらのポートとマイクロプロセッサMPUの機能付き汎用レジスタ又は入出力装置との間の組み合わせも、任意に設定できる。シングルチップマイクロコンピュータは、任意のブロック構成を採りうる。
【0056】
図2において、プログラムメモリ部PMを構成するプログラムメモリPM0〜PMjならびに制御回路部PCを構成する制御回路PC0〜PCjと汎用レジスタを含む機能単位との関係は、この実施例による制約を受けない。また、データ加工部DPは、任意数の汎用レジスタに設けることができるし、汎用レジスタGR0〜GRmのすべてに設けてもよい。プログラムメモリ部PMのアドレス構成は、任意に設定できるし、マイクロプロセッサMPUのブロック構成及びバス構成は、この実施例による制約を受けない。
【0057】
図3及び図4において、機能付き汎用レジスタGR0のビットB0〜BFに設けられるライトセレクタWSの数は、その用途及び機能に応じて任意に設定できるし、その優先順位も任意である。また、機能付き汎用レジスタGR0の最下位ビットに設けられるリードクリア機能は、その論理レベルを任意に設定できるいわゆるリードプリセット機能としてもよい。汎用レジスタGR0〜GRmのビット数は任意に設定できるし、各ビットのブロック構成も任意である。図6において、ライトセレクタWSは、下位算術論理演算ユニット出力バスAOBUSLを介して入力される8ビットの2進データを、上位算術論理演算ユニット出力バスAOBUSUを介して入力される8ビットのマスクデータに従って選択的にスタティックラッチSLに伝達するものであってもよい。
【0058】
以上の説明では、主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータならびにそのマイクロプロセッサに適用した場合について説明したが、それに限定されるものではなく、例えば、周辺プロセッサとして単体で形成されるマイクロプロセッサや、マイクロプロセッサを搭載するゲートアレイ集積回路等にも適用できる。汎用レジスタにデータ加工部を設けることで算術論理演算ユニットつまりプロセッサとしての処理能力を高める方法は、マイクロプロセッサに限らず各種のプロセッサに応用できる。この発明は、少なくとも汎用レジスタ及び算術論理演算ユニットを含みあるいは周辺装置としての機能をエミュレートするデジタル処理装置ならびにこのようなデジタル処理装置を含むシステムに広く適用できる。
【0059】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。すなわち、シングルチップマイクロコンピュータ等に搭載され複数の周辺装置としての機能をソフトウェア的にかつ時分割的にエミュレートするマイクロプロセッサ等において、算術論理演算ユニットに結合される汎用レジスタの一部又は全部に、その保持データに所定の加工処理を施すデータ加工機能を持たせるとともに、このようなデータ加工機能を持つ機能付き汎用レジスタを入出力ポートに直結し、各機能付き汎用レジスタに対応して、その動作を制御するためのプログラムメモリ及び制御回路を設けることで、算術論理演算ユニットと入出力ポートとの間を機能付き汎用レジスタを介して論理的に直結し、マイクロプロセッサ及び入出力ポート間のデータ授受を高速化できるとともに、入出力データに対するマスク処理やシフト処理を機能付き汎用レジスタによりしかも算術論理演算ユニットを介することなく並行して行うことができる。この結果、その入出力処理に関する性能及び分解能を低下させることなく、複数の周辺装置としての機能を時分割的にかつ効率的にエミュレートしうるマイクロプロセッサ等のデジタル処理装置を実現することができる。
【図面の簡単な説明】
【図1】この発明が適用されたマイクロプロセッサを含むシングルチップマイクロコンピュータの一実施例を示すシステム構成図である。
【図2】図1のシングルチップマイクロコンピュータに含まれるマイクロプロセッサの一実施例を示すブロック構成図である。
【図3】図2のマイクロプロセッサの演算回路部に含まれる機能付き汎用レジスタの第1の実施例を示すブロック構成図である。
【図4】図3の機能付き汎用レジスタの第0ビットの一実施例を示すブロック構成図である。
【図5】図2のマイクロプロセッサの演算回路部に含まれる機能付き汎用レジスタの第2の実施例を示すブロック構成図である。
【図6】図2のマイクロプロセッサに含まれる演算回路部の第3の実施例を示す部分的なブロック構成図である。
【符号の説明】
MC・・・シングルチップマイクロコンピュータ、CPU・・・中央処理装置(メインプロセッサ)、MPU・・・マイクロプロセッサ(サブプロセッサ)、GR0〜GRm・・・汎用レジスタ、SBUS・・・システムバス、IBUS・・インタフェースバス、ROM・・・リードオンリーメモリ、RAM・・・ランダムアクセスメモリ、DMAC・・・ダイレクトメモリアクセスコントローラ、SCI・・・シリアルコミュニケーションインタフェース、IOP・・・入出力ポート、P0〜P2・・・ポート、IO0〜IO2・・・入出力装置。
PM・・・プログラムメモリ部、PM0〜PMj・・・プログラムメモリ、PC・・・制御回路部、PC0〜PCj・・・制御回路、AE・・・演算回路部、GR0〜GR1・・・機能付き汎用レジスタ、DP・・・データ加工部、ALU・・・算術論理演算ユニット、AIBUS・・・・算術論理演算ユニット入力バス、AOBUS・・・算術論理演算ユニット出力バス。
B0〜BF・・・汎用レジスタ各ビット、SL・・・スタティックラッチ、DL・・・ダイナミックラッチ、WSa〜WSd・・・ライトセレクタ、RS・・・リードセレクタ、SCa〜SCd・・・セレクタ制御信号、CLK1〜CLK2・・・クロック信号。
RSa〜RSd・・・リードセレクタ、WSPa〜WSPd,WSNa〜WSNd・・・ライトセレクタ。
PSL・・・前回値選択信号、Sin・・・シリアル入力端子、Sout・・・シリアル出力端子、S0〜SF・・・スタティックラッチ出力信号。
ACU・・・上位算術論理演算ユニット、ACL・・・下位算術論理演算ユニット、RSU・・・上位リードセレクタ、RSL・・・下位リードセレクタ、GND・・グランド部、AIBUSU・・・上位算術論理演算ユニット入力バス、AIBUSL・・・下位算術論理演算ユニット入力バス、AOBUSU・・・上位算術論理演算ユニット出力バス、AOBUSL・・・下位算術論理演算ユニット出力バス、SCai,SCao,SCed・・・セレクタ制御信号、SAC・・・算術論理演算ユニット制御信号。
Claims (8)
- 所定の演算機能を有する算術論理演算ユニットと、所定のバスを介して上記算術論理演算ユニットに結合される汎用レジスタと、外部装置に結合される入出力ポートとを具備し、
上記算術論理演算ユニットと上記汎用レジスタとに対応して設けられるプログラムメモリと制御回路とをさらに具備し、
上記汎用レジスタは、上記入出力ポートの対応するポートに結合されるものであり、
上記汎用レジスタは、上記プログラムメモリに格納されたプログラムにもとづいて上記制御回路によって、上記算術論理演算ユニットの演算結果の格納先として指定され得るものであり、
上記汎用レジスタの一部又は全部がその保持データに対して所定の加工処理を施すデータ加工部を含むことを特徴とするデジタル処理装置。 - 上記制御回路は、上記汎用レジスタを上記算術論理演算ユニットの入力としてさらに指定し、
上記汎用レジスタを上記算術論理演算ユニットの入力および演算結果の格納先として指定された上記演算は、1サイクルで実行されることを特徴とする請求項1のデジタル処理装置。 - 上記データ加工部を含む汎用レジスタは、上記算術論理演算ユニットとは独立にかつ並行して動作し、実質的に対応する上記外部装置との間の入力処理又は出力処理を制御する周辺装置として機能しうるものであることを特徴とする請求項1又は請求項2のデジタル処理装置。
- 上記データ加工部は、複数の入力ノード及び出力ノードと、上記複数の入力ノードを介して入力される入力データを所定の優先順位で選択的に取り込むライトセレクタと、対応する上記汎用レジスタの保持データを対応する上記出力ノードに選択的に出力するリードセレクタとを含むものであることを特徴とする請求項1,請求項2又は請求項3のデジタル処理装置。
- 上記データ加工部は、対応する上記汎用レジスタの所定ビットを出力した後、選択的にクリアし又はプリセットしうるものであることを特徴とする請求項1,請求項2,請求項3又は請求項4のデジタル処理装置。
- 上記データ加工部は、対応する上記汎用レジスタの各ビットを選択的にシリアル結合し、シフタ構成としうるものであることを特徴とする請求項1,請求項2,請求項3又は請求項4のデジタル処理装置。
- 上記データ加工部は、対応する上記汎用レジスタがシフタ構成とされるとき、最下位ビットの出力信号を選択的に繰り返しその入力端子に入力しうるものであることを特徴とする請求項6のデジタル処理装置。
- 上記データ加工部は、算術論理演算ユニット又は入出力ポートからパラレルに入力されるデータの上位又は下位ビットを、その下位又は上位ビットをマスクとして選択的に取り込みうるものであることを特徴とする請求項1,請求項2,請求項3又は請求項4のデジタル処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29401094A JP3628361B2 (ja) | 1994-11-02 | 1994-11-02 | デジタル処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29401094A JP3628361B2 (ja) | 1994-11-02 | 1994-11-02 | デジタル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08137661A JPH08137661A (ja) | 1996-05-31 |
JP3628361B2 true JP3628361B2 (ja) | 2005-03-09 |
Family
ID=17802088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29401094A Expired - Fee Related JP3628361B2 (ja) | 1994-11-02 | 1994-11-02 | デジタル処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3628361B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI226015B (en) * | 1999-08-31 | 2005-01-01 | Matsushita Electric Ind Co Ltd | Digital signal processor and control method of the same |
JP4859176B2 (ja) * | 2005-08-22 | 2012-01-25 | キヤノン株式会社 | マイクロプロセッサ及びi/oポート置換方法 |
CN111859829B (zh) * | 2019-04-04 | 2024-04-16 | 北京比特大陆科技有限公司 | 控制算力板的方法、装置和设备以及介质、程序产品 |
CN113626364B (zh) * | 2021-06-30 | 2024-05-31 | 海光信息技术股份有限公司 | 一种高速串行接口以及用于高速串行接口的转换电路 |
-
1994
- 1994-11-02 JP JP29401094A patent/JP3628361B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08137661A (ja) | 1996-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0102242B1 (en) | Data processing apparatus | |
US4745544A (en) | Master/slave sequencing processor with forced I/O | |
US5036453A (en) | Master/slave sequencing processor | |
US5047922A (en) | Virtual I/O | |
US4378589A (en) | Undirectional looped bus microcomputer architecture | |
US4509120A (en) | Variable cycle-time microcomputer | |
EP1840742A2 (en) | Method and apparatus for operating a computer processor array | |
JPH06150023A (ja) | マイクロコンピュータ及びマイクロコンピュータシステム | |
US5623687A (en) | Reset configuration in a data processing system and method therefor | |
JPH0210592A (ja) | 出力端子または入力端子として選択的に構成可能なピンを有する集積回路 | |
CA2084420C (en) | Programmable signal processor architecture | |
KR100275059B1 (ko) | 확장가능한 중앙 처리 장치 | |
US5410721A (en) | System and method for incrementing a program counter | |
JP3628361B2 (ja) | デジタル処理装置 | |
JP7507304B2 (ja) | レジスタデータの消去 | |
US5734927A (en) | System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates | |
US5606715A (en) | Flexible reset configuration of a data processing system and method therefor | |
US6664833B1 (en) | Dual-edge function clock generator and method of deriving clocking signals for executing reduced instruction sequences in a re-programmable I/O interface | |
US7945718B2 (en) | Microcontroller waveform generation | |
WO2002042919A2 (en) | Sequencer method of selectively inhibiting clock signals in a re-programmable i/o interface | |
JP2937326B2 (ja) | 論理回路のテスト容易化回路 | |
JPH11307725A (ja) | 半導体集積回路 | |
JP3851008B2 (ja) | プロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法 | |
JPH04359323A (ja) | マイクロコンピュータ | |
JPS62171020A (ja) | マイクロコンピユ−タ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040803 |
|
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: 20041207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071217 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |