JP2001092661A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2001092661A
JP2001092661A JP26795099A JP26795099A JP2001092661A JP 2001092661 A JP2001092661 A JP 2001092661A JP 26795099 A JP26795099 A JP 26795099A JP 26795099 A JP26795099 A JP 26795099A JP 2001092661 A JP2001092661 A JP 2001092661A
Authority
JP
Japan
Prior art keywords
processing
instruction
unit
parallel
execution
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.)
Withdrawn
Application number
JP26795099A
Other languages
English (en)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP26795099A priority Critical patent/JP2001092661A/ja
Publication of JP2001092661A publication Critical patent/JP2001092661A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 並列処理の並列度が制御可能であってその並
列度に応じた消費電力制御を、論理的規模を増大させ
ず、容易に行なえるデータ処理装置を提供する。 【解決手段】 読み込んだ命令を解読し複数の実行部
(EX0〜EX3)を用いて並列演算処理可能なCPU
(1)は、並列演算処理を行なう場合に、実行部の数よ
り、並列実行すべき演算処理が少ないとき、動作しない
実行部の動作クロック信号を停止すると共にデータ入出
力などを禁止する。実行部での演算処理内容を指定する
命令コードそれ自体に、並列実行すべき処理であるか否
かを示す情報を持たせる。これにより、不所望な電力消
費を、随時、抑制することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータ、マイクロコントローラ、データプロセッサ等のデ
ータ処理装置に関し、例えば、単一の半導体チップに形
成された、機器制御用(機器組込み用途)のデータ処理
装置に利用して有効な技術に関するものである。
【0002】
【従来の技術】機器制御用のマイクロコンピュータに
は、所謂リアルタイム性が要求される。即ち、制御対象
機器の制約から、所定のイベントに呼応した処理を、所
定の時間内に完了し、制御を行なう必要がある。また、
システム全体の時間的な制約の中で、所要の処理を完了
させる必要がある。更に、イベントは同時に発生する場
合もあるから、このような場合、各イベントに呼応した
処理に対して、夫々の制約を満足しなければならない。
データ処理全体の処理時間ではなく、イベント毎に、個
別の処理の時間を短縮する必要があるから、例えば、1
個のCPUによるような、単一の命令ストリームに対応
する処理性能を向上させる必要がある。
【0003】例えば、OS(オペレーティングシステ
ム)を使用する場合には、OSの処理プログラム実行中
には、割込みが禁止されることが一般的であるが、これ
は、イベントに対する処理開始を遅らせることになるか
ら、機器制御やリアルタイム処理においては好ましくな
い。このため、機器制御用のOSにはリアルタイムOS
などと呼ばれる、割込み禁止時間を短縮したり、所要の
優先順位の割込みは常に受け付けられるようにしたもの
が用いられる。
【0004】データ処理装置において、単一の命令スト
リームに対応するように、1個のCPUで、いわゆる並
列処理を行ない、実行時間を短縮可能にするものとし
て、平成7年1月(株)日経BP社発行『日経エレクト
ロニクス』pp68〜80「1998年に転機、ハード
ウェアを単純化してVLIWへ」などに記載されている
ように、スーパスカラやVLIW(Very Long Instruct
ion Word)などがある。いずれも演算処理ブロックを複
数持ち(例えば4個)、同時に実行できる処理の数を増
やして(例えば4並列)、全体的な処理性能を向上して
いる。
【0005】前記VLIWは、128ビットなどの長い
固定長の命令コードを持ち、演算処理ブロックに夫々対
応する各フィールドに、処理内容を指定するようになっ
ている。コンパイル時に、ソースプログラムを解析し
て、予め並列実行できる処理を、1つのVLIWの命令
に構成する。
【0006】一方、スーパスカラは、実行時に、リード
した個々の命令を解析して、並列実行可能な命令を選択
して、並列処理を行なう。この場合、コンパイル時に、
ソースプログラムを解析して、並列処理を制御する命令
を挿入し、この制御命令に基づいて、続く複数命令を並
列処理する例もある。
【0007】
【発明が解決しようとする課題】しかしながら、上記の
並列処理では、複数の処理を、常に実行可能であるとは
限らない。例えば、データの依存関係によるものがあ
り、所定のライトの後にリードを行なうべき場合に、並
列処理を行なうと、この順序を保てなくなることなどが
あるからである。並列処理を行なえない場合には、一部
の演算処理ブロックは使用されない。
【0008】また、データ処理装置の応用分野は広がっ
ているから、携帯型などバッテリで動作するようなもの
など、処理速度とともに、低消費電力が必要になるもの
もあり、実使用上、常に最大の処理速度が必要であると
は限らない。
【0009】消費電力を低減する為に、CPU内部の機
能ブロックのうち、当該命令で使用する或いは使用しな
い機能ブロックへのクロック信号供給を許可/禁止する
例が、特開平10−340127号公報に記載されてい
る。この例では、使用状態に応じて、処理速度を優先し
たり、消費電力を優先したりすることには対応できな
い。また、命令や処理速度などについては言及されてい
ない。
【0010】一方、特開平9−185589号公報に
は、複数のタスクを並列に処理可能な複数のプロセッサ
を有し、タスクを構成する処理単位毎のプロセッサ資源
の要求に応答してタスク管理手段が、休止状態のプロセ
ッサを発生させるように、複数のプロセッサの内の特定
のプロセッサにプロセッサ資源の不足が生じない範囲で
タスクを割り付け、電源供給制御手段により、休止状態
のプロセッサに対する電源供給を停止し、システム全体
の消費電力を節減可能にしたデータ処理システムが例示
されている。
【0011】この例では、各タスクが個別のプロセッサ
に割当てられるから、各タスクの処理時間は、プロセッ
サ全体の休止状態には依存せず、一定である。複数のプ
ロセッサは、所要の処理を高速化する為に用いられては
いない。
【0012】また、回路の一部に電源の供給を停止する
ような場合は、電源が供給されている部分と、供給され
ていない部分のインタフェース信号に、電気的に不都合
が生じないように、例えば、貫通電流が生じたり、トラ
ンジスタに不所望な電圧印加状態が生じたりしないよう
にする必要があり、そのために必要な回路構成によって
論理的規模の増加を招く。特に、リアルタイム性が必要
とされる場合には、必要に応じて、即座に動作可能でな
ければならない。
【0013】本発明の目的は、並列処理の並列度が制御
可能であって、その並列度に応じた消費電力制御を、論
理的規模を増大させず、容易に行なえるデータ処理装置
を提供することにある。
【0014】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0015】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0016】〔1〕読み込んだ命令を解読して複数の実
行部を用いて並列演算処理可能なCPU等のデータ処理
装置において、並列演算処理を行なう場合に、複数個の
実行部は命令を解読して制御信号を生成する制御部の指
示に応答して動作し、制御部の指示によって個別的に演
算動作の停止が指示されるようになっている。動作停止
が指示された実行部は、例えば、同期動作用のクロック
信号の変化が抑止されて、その演算動作が停止され、且
つデータ入出力が禁止される。
【0017】上記の如く、並列処理を行なう場合に、動
作しない実行部のクロック信号を停止すると共に、デー
タ入出力などを禁止することにより、不所望な電力消費
を抑制することができる。
【0018】その場合、実行部での演算処理内容を指定
する命令コードそれ自体に、並列実行すべき処理である
か否かを示す情報を持たせる。また、ハードウェアで、
並列処理可能な命令を検出している場合には、この検出
結果を利用して、並列実行すべき処理であるか否かを検
出する。
【0019】このように、並列実行すべき処理を検出す
るために、命令コード自体に、その情報を持たせ、ま
た、ハードウェアで、並列処理可能な命令を検出してい
る場合には、この検出結果を利用することにより、随
時、消費電力を抑制できる。
【0020】〔2〕更に、消費電力を制御するために、
動作許可する並列処理の数を指定可能にする。これによ
り、一部の実行部の動作を停止させて、消費電力を低減
することができる。
【0021】具体的には、コンパイラで、使用する並列
処理の数を指定可能にし、これに従って、コンパイラは
命令コードを生成するようにするとよい。即ち、指定さ
れた数より大きい並列処理を実行する命令コードを生成
しないようにする。これにより、容易に並列度を指定可
能にし、使い勝手を向上することができる。
【0022】また、ハードウェアで、並列処理可能な命
令を検出している場合には、制御レジスタによって使用
可能な並列処理の数を指定して、前記ハードウェアはこ
れを参照して、並列処理の制御を行なうとよい。これに
より、プログラムを変更することなく、随時、消費電力
の制御を可能にして、使い勝手を向上することができ
る。プログラムを不所望に変更しないことによって、プ
ログラムの開発効率を向上することができる。
【0023】〔3〕更には、動作クロック信号を可変に
し、少なくとも、並列処理を行なわない程度まで、動作
クロック信号を低下させるようにするとよい。
【0024】動作クロック信号を可変にする場合には、
周辺機能のクロック信号を固定にしつつ、データ処理装
置などのバスマスタのクロック信号を変更するようにす
る。これにより、クロック信号切替え時の処理を最小限
にすることができる。
【0025】
【発明の実施の形態】図1にはデータ処理装置の第1の
構成例が示される。同図に示されるデータ処理装置はた
とえばCPU(中央処理装置)1であり、命令リードブ
ロックFU、命令デコードブロックDB、4個の演算処
理ブロックEX0〜EX3、汎用レジスタなどのレジス
タブロックRB、バッファブロックBBから構成され
る。
【0026】命令コードISRは、例えば128ビット
などとされ、特に制限されないが、最大4つの処理フィ
ールドf0、f1、f2、f3に分割されている。図1
の例では、簡単のため、32ビットづつの均等の処理フ
ィールドf0、f1、f2、f3を持つものとする。
【0027】命令リードブロックFUは、前記128ビ
ットの命令を、図示されないROMやキャッシュメモリ
から、内部データバスIDBを介してリードして、格納
し、更に、所定のタイミングで、命令デコードブロック
DUに転送する。命令のリードアドレスは、プログラム
カウンタに基づき、内部アドレスバスIABに出力され
る。命令のリード後、プログラムカウンタは更新され
る。命令リードブロックFUは、命令をリードする命令
フェッチ部の一例である。
【0028】命令デコードブロックDUは、前記4つの
処理フィールドf0、f1、f2、f3に対応した部分
f0dec〜f3decを含んて構成され、前記命令コ
ードをデコードし、対応する演算処理ブロックEX0〜
EX3などに対応する制御信号CNT0〜CNT3等を
出力する。前記4つの処理フィールドf0、f1、f
2、f3に対応した部分f0dec〜f3decは、無
操作を検出する部分f0nop〜f3nopを含み、こ
の検出結果によって、制御信号としてストップ信号ST
P0〜STP3を出力する。また、レジスタブロックR
B、バッファブロックBBへも図示を省略する制御信号
を出力する。対応する処理フィールドf0〜f3に、有
効な処理の記述が含まれていない場合、或いは無操作を
指示する記述が含まれている場合には、命令デコードブ
ロックDUはストップ信号STP0〜STP3により、
対応する演算処理ブロックに動作停止の指示を与える。
前記制御信号CNT0〜CNT3は、ストップ信号ST
P0〜STP3以外に、各演算処理ブロックEX0〜E
X3に個別に与えられる制御信号を総称している。前記
命令デコードブロックDUは、前記命令フェッチ部がリ
ードした命令に基づいて前記複数個の実行部の動作を制
御する制御部の一例である。
【0029】演算処理ブロックEX0〜EX3は、算術
論理演算器(ALU)などを備え、命令デコードブロッ
クDUの制御信号に基づいて、動作し、レジスタブロッ
クRB、バッファブロックBBと内部バスDB0〜DB
3、WB0〜WB3を介して、データの入出力を行い、
所要のデータの演算処理を行なう。それぞれの演算処理
ブロックEXi(i=0〜3)は、命令デコードブロッ
クDUの個別の制御信号に基づいて、独立した演算処理
を行なう。前記演算処理ブロックEXiは、並列動作可
能であって夫々演算器を内蔵した複数の実行部の一例で
ある。
【0030】対応するストップ信号STPiがイネーブ
ルにされた演算処理ブロックEXiは、クロック信号が
停止され、データの入出力が禁止され、内部状態が保持
される。演算処理ブロックEXiがパイプライン動作を
行なう場合には、ストップ信号STPiは、パイプライ
ンの動作に合わせて、伝播されるように構成する。この
詳細な一例は図2に基いて詳述する。
【0031】レジスタブロックRBは、汎用レジスタ、
コンディションコードレジスタなどを有し、所用のデー
タを、内部バスDB0〜DB3、WB0〜WB3を介し
て、各演算処理ブロックEXiに出力したり、演算結果
を入力したりする。
【0032】バッファブロックBBは、アドレスバッフ
ァ、データバッファを備え、内部アドレスバスIAB、
内部データバスIDBを介して、図示はされないRAM
やキャッシュメモリとデータの入出力を行い、各演算処
理ブロックEX0〜EX3とのインタフェースを採る。
【0033】なお、命令コードのビット数、演算処理ブ
ロックの数は、データ処理装置の応用範囲、回路規模、
処理性能を勘案して最適な数値を選定すればよく、ここ
で示した数値は一例に過ぎない。例えば、内部バスは複
数にしてもよい。内部アドレスバス/内部データバス
は、命令コード用とデータ用を分離してもよい。
【0034】図1のCPU1によれば、命令コードに含
まれる並列演算処理の情報を元にして、命令デコードブ
ロックDUがストップ信号STPiによって、必要とさ
れる演算処理ブロックEXiのみを動作させ、必要とさ
れない演算処理ブロックEXiをストップ信号STPi
により自動的に停止することによって、不所望な電力消
費を抑止することができる。
【0035】図2には演算処理ブロックEX0〜EX3
に含まれる演算器10のブロック図の一例が示される。
同図に例示される演算器10は、セレクタ11、算術論
理演算器12、シフタ・結果バッファ13、ラッチ回路
LT1〜LT5、及びアンドゲートAND1〜AND5
から構成される。セレクタ11は、内部バスDB0〜D
B3から入力が可能とされ、結果バッファ13は内部バ
スWB0〜WB3に出力可能である。
【0036】演算器10は、後述の基準クロック信号φ
Bから生成されるノンオーバラップの2相クロック信号
φ1、φ2で動作する。
【0037】セレクタ11は、クロック信号φ1の立ち
上がりエッジに同期して、アンドゲートAND1を介し
て制御信号CNTiで指示されるデータを入力する。算
術論理演算器12は、クロック信号φ1の立ち上がりエ
ッジに同期して制御信号CNTiをラッチ回路LT1で
ラッチし、クロック信号φ1の1ステート(1サイク
ル)で演算を行なう。シフタ・結果バッファ13は、ク
ロック信号φ1の立ち上がりエッジに同期して制御信号
CNTiをラッチ回路LT2でラッチし、その出力をク
ロック信号φ2の立ち上がりエッジに同期してラッチ回
路LT3でラッチし、ラッチされた制御信号をアンドゲ
ートAND5を介して受けることにより、出力動作を行
なう。
【0038】演算器10に供給されるストップ信号ST
Pi(i=0〜3)は、クロック信号φ1、φ2の立ち
上がりエッジに同期して順次ラッチ回路LT4,LT5
にラッチされ、その伝播がクロック信号φ1、φ2に同
期して順次遅延される。したがって、ストップ信号ST
Piがイネーブルレベル(この例ではハイレベル)にさ
れると、先ず、クロック信号φ1の立ち上がりエッジに
同期したセレクタ11の入力動作が抑止され、次いで、
クロック信号φ1の1ステートに同期される算術論理演
算回路12の演算動作が抑止され、最後に、クロック信
号φ2の1ステートに同期される結果バッファ13の出
力動作が抑止される。
【0039】このように、制御信号CNTiの変化を抑
止し、データの変化を抑止することによって、消費電力
を抑止できる。CMOS半導体集積回路においては、実
質的に、当該部分の消費電力を0にできる。演算器は高
速で動作するように、消費電力が大きく、データの幅も
32ビットなどと大きくなっており、更に、複雑な演算
を行なうために、制御信号の本数も多くなっているか
ら、かかる演算器のデータ及び制御信号の変化を抑止す
ることによって、消費電力を低減することができる。
【0040】図2の構成より明らかなように、命令、即
ち処理プログラムに対応して、1ステート単位、即ち基
準クロック信号φBの単位で、低消費電力制御を行なう
ことができる。したがって、演算処理ブロックEXiが
パイプライン動作を行なう場合に、換言すれば、1命令
の演算実行ステージを1クロックサイクルで行なうと
き、ストップ信号STPiは、パイプラインの動作に合
わせて、伝播されるから、パイプラインを乱すこと無
く、若しくはパイプライン上の演算データを不所望に破
壊することなく、命令コード単位で演算処理ブロックの
並列度を制御して、低消費電力を図ることができる。
【0041】図3にはデータ処理装置の第2の構成例が
示される。同図に示されるデータ処理装置もCPUとさ
れる。図3に示されるCPU1Aは、命令リードブロッ
クFU、命令デコードブロックDU、4個の演算処理ブ
ロックEX0〜EX3、リオーダバッファROR、リオ
ーダバッファROM、汎用レジスタなどのレジスタブロ
ックRB、及びバッファブロックBBから構成される。
各演算処理ブロックEX0〜EX3は、リザベーション
ステーションRSV0〜RSV3を含む。
【0042】図3のCPU1Aでは、ハードウェアによ
って並列処理の実行が制御される。即ち、命令デコード
ブロックDUは命令リードブロックFUの命令を解析し
て、並列処理可能な命令を抽出するデコーダアライメン
トユニットDAを持つ。命令デコードブロックDUは、
デコーダアライメントユニットDAで抽出した命令を、
並列にデコードして、制御信号CNT0〜CNT3、ス
トップ信号STP0〜STP3を各演算処理ブロックE
X0〜EX3に与える。
【0043】各演算処理ブロックEX0〜EX3のリザ
ベーションステーションRSV0〜RSV3は、命令デ
コードブロックDUから出力された制御信号CNTi、
STPiを一旦保持し、演算処理ブロックEX0〜EX
3の実行状態を監視して、指示された処理の実行が可能
になった時点で、演算処理を開始させる。
【0044】リオーダバッファROR,ROMは、プロ
グラム上の命令の順序と整合性を保つように、並列実行
している各演算処理ブロックEXiの演算結果のレジス
タブロックRB、バッファブロックBBへの書込みタイ
ミングを調整している。
【0045】図3の例では、並列実行可能な命令が少な
い場合には、命令デコードブロックDUはストップ信号
STPiを、使用しない演算処理ブロックEXiに与え
る。このストップ信号STPiは、各演算処理ブロック
EXiのリザベーションステーションRSViで一旦保
持され、実行中の処理が終了した時点で有効化される。
ストップ信号STPiが有効化されると、演算処理ブロ
ックEXiのクロック信号が停止され、データの入出力
が禁止され、内部状態が保持される。演算処理ブロック
EXiがパイプライン動作を行なう場合には、ストップ
信号STPiが、パイプラインの動作に合わせて、伝播
されるように構成されている点は、図1及び図2の場合
と同様である。
【0046】このように、命令の実行状態に基づいて、
ハードウェアで解析した並列処理情報を元にして、並列
処理可能な数の演算処理ブロックEXiのみを動作さ
せ、その他の演算処理ブロックEXiをストップ信号S
TPiによって、自動的に停止することによって、不所
望な電力消費を抑止することができる。
【0047】更に、図3の例においては、並列度指定制
御信号PALCが、命令デコードブロックDUに入力さ
れている。かかる制御信号PALCに基づいて、命令デ
コードブロックDUは並列処理の制御時に、並列動作す
る演算処理ブロックEXiの数が前記制御信号PALC
によって指定される数を超えないようにする。前記制御
信号PALCは、CPU1Aを採用するマイクロコンピ
ュータ、マイクロプロセッサ、若しくはデータプロセッ
サ内の適宜のコントロールレジスタの設定値に従って生
成される。そのようなコントロールレジスタへのデータ
設定は例えばCPU1A自身がプログラムに従って行な
えばよい。
【0048】図4には図3のCPU1Aによる命令実行
手順を例示する。図3のCPU1Aは有意味の処理を行
なう実行命令と、並列処理の制御を行なう制御命令を持
つ。制御命令によって、続く命令列の並列実行の制御情
報を生成し、命令デコードブロックDUはこれを参照し
て、前記実行命令の並列実行を行なう。制御命令に従っ
て、並列処理する数が少ない場合には、命令デコードブ
ロックDUは、前記の通り、所要のストップ信号STP
iをイネーブルにする。
【0049】前記制御命令は、有意味の処理ではないの
で、ソースプログラム上には記述を必要とせず、コンパ
イラで自動的に生成すれば都合がよい。
【0050】図5には本発明に係るデータ処理装置の第
3の例であるシングルチップマイクロコンピュータが示
される。
【0051】シングルチップマイクロコンピュータMP
Uは、全体の制御を司るCPU20、データトランスフ
ァコントローラ(DTC)21、割込コントローラ(I
NT)22、バスコントローラ23、CPU20の処理
プログラムなどを格納するメモリであるROM24、C
PU20の作業領域並びにデータの一時記憶用のメモリ
であるRAM25、タイマ26、ウオッチドックタイマ
27、シリアルコミュニケーションインタフェース(S
CI)28、A/D変換器29、入出力ポートIOP1
〜IOP5、入出力ポートIOPA〜IOPF、クロッ
ク発振器(CPG)30、クロック制御回路31、及び
プリスケーラ32から構成され、公知の半導体製造技術
により1つの半導体基板(半導体チップ)上に形成され
る。CPU20には、特に制限されないが、前述のCP
U1又はCPU1Aが採用されている。
【0052】前記シングルチップマイクロコンピュータ
MPUは、電源端子として、グランドレベルVss、電
源電圧レベルVcc、アナロググランドレベルAVs
s、アナログ電源電圧レベルAVcc、アナログ基準電
圧Vrefの入力端子を有し、専用制御端子として、リ
セットRES、スタンバイSTBY、モード制御MD
0、MD1、クロック入力EXTAL、XTALの各端
子を有する。
【0053】CPG30の端子EXTAL、XTALに
接続される水晶発振子またはEXTAL端子に入力れる
外部クロック信号に基づいて、CPG30は基準クロッ
ク信号(システムクロック信号)を生成する。基準クロ
ック信号は、バスマスタの基準クロック信号φB、周辺
回路の基準クロック信号φSがある。シングルチップマ
イクロコンピュータMPUの各機能ブロックは基準クロ
ック信号φS、φBに同期して、動作を行う。
【0054】基準クロック信号φBは、バスマスタのク
ロック信号として、CPU20、DTC21、バスコン
トローラ23に、更に、外部バスのインタフェース用と
して入出力ポートIOPA〜IOPFに供給される。ク
ロック信号φBはクロック制御回路31によって分周比
が選択される。クロック信号φBの分周比が大きくなれ
ば、これに反比例して、それに同期動作する部分の動作
周波数は小さくなり、消費電力も低減される。
【0055】クロック信号φSは周辺クロック信号とし
て、タイマ26、SCI28、A/D変換器29、IO
PA〜IOPF、IOP1〜IOP5に供給される。ク
ロック信号φSは周波数が固定とされているから、バス
マスタの基準クロック信号φBが変更された場合も、不
所望なクロック信号切替え処理などを必要としない。
【0056】クロック制御回路31から、DTC21、
タイマ26、ウオッチドックタイマ27、SCI28、
A/D変換器29に対して、クロック停止信号すなわち
モジュールストップ信号MSTPが与えられる。かかる
モジュールストップ信号MSTPは、クロック制御回路
31から、各機能ブロックに独立した信号が与えられ
る。クロック停止時には、機能ブロックが内部状態を保
持するようにされる。
【0057】プリスケーラ32はクロック発振器30で
発生されたクロック信号を分周して所要の回路に供給す
る。
【0058】シングルチップマイクロコンピュータMP
Uの前記機能ブロックは、内部バスによって相互に接続
さる。内部バスは、アドレスバス、データバスの他に、
リード信号、ライト信号、バスサイズ信号或いはシステ
ムクロック信号などを伝達するコントロールバスを含
む。内部データバスは、特に制限されないが、128ビ
ット構成とされ、少なくともROM24とCPU20と
の間は、128ビットバスでインタフェースされる。特
に制限はされないものの、RAM25も同様に128ビ
ットバスでインタフェースされる。内部アドレスバスは
その位相によって、IAB、PABの2種類があり、内
部データバスもその位相によって、IDB、PDBが存
在する。例えば、リードの場合、IABの後、PABは
0.5ステート遅延する。PABとPDBは同期してい
る。PDBの後、IDBは0.5ステート遅延する。I
ABとPAB、IDBとPDBは、バスコントローラ2
3によってバッファリングされている。
【0059】前記機能ブロックやモジュールは内部バス
を介して、CPU20によってリード/ライトさる。内
蔵ROM24、ROM25は、IAB及びIDBでイン
タフェースされ、1ステートでリード/ライト可能とさ
れる。
【0060】前記シングルチップマイクロコンピュータ
MPUにリセット信号RESが与えられると、CPU2
0を始めとし、シングルチップマイクロコンピュータM
PUはリセット状態になる。このリセットが解除される
と、CPU20は所定のアドレスからスタートアドレス
をリードして、このスタートアドレスから命令のリード
を開始するリセット例外処理を行う。この後、CPU2
0は逐次、ROM24などから命令をリードし、解読し
て、その解読内容に基づいて演算処理を行う。
【0061】割込信号35は、A/D変換器29、タイ
マ26、ウオッチドックタイマ27、SCI28、入出
力ポートIOP5が出力し、割込コントローラ22はこ
れを入力して、所定のレジスタなどの指定に基づて、C
PU20に割込要求信号36を与える。これにより、C
PU20は実行中の処理を中断して、例外処理状態を経
て、割込み要因に応答する所定の処理ルーチンに分岐
し、所望の処理を行い、割込要因をクリアしたりする。
機器制御においては、かかる割込み(イベント)の発生
から、例外処理、所望の処理、割込み要因クリア等の処
理を、所定時間内に処理するようにする必要がある。更
に、考えられる複数のイベントの競合が発生した場合に
おいても、かかる処理を、所定の時間内に処理する。し
たがって、通常、割り込み処理ルーチンでは、並列処理
を最大にするような命令を配置するようにされる。所定
の処理ルーチンの最後には、通常復帰命令が置かれ、こ
の命令を実行することによって前記中断した処理を再開
する。
【0062】図6には前記クロック制御回路31の一例
が示される。クロック制御回路31は、分周器40、セ
レクタ41、クロック制御レジスタ42、モジュールス
トップ制御レジスタ43、並列度指定制御レジスタ4
4、スタイバイ制御回路45によって構成される。並列
度指定制御レジスタ44はCPU20に前記CPU1A
を採用する場合に必要になる。CPU20の前記CPU
1を採用する場合は不要である。
【0063】モジュールストップ制御レジスタ43はモ
ジュールストップを選択可能な機能ブロックに対応し
て、所定のビット数分だけ設けられている。並列度指定
制御レジスタ44は、少なくとも信号PALCによって
通知可能な並列度数分のビット数を有する。
【0064】クロック制御レジスタは、SSBY、MS
ME、CKS1、CKS0の4ビットを有する。SSB
Yビットはスタンバイ状態への遷移を制御する。SSB
Yビットが1にセットされた状態で、CPU20がSL
EEP命令を実行すると、スタンバイ状態に遷移し、S
SBYビットが0にクリアされた状態で、CPU20が
SLEEP命令を実行すると、スリープ状態に遷移す
る。スタンバイ状態では、シングルチップマイクロコン
ピュータMPU全体が停止するが、スリープ状態では、
CPU20のみが停止する。
【0065】MSMEビットは中速モードの許可ビット
であり、このビットが1にセットされている時にのみ、
CKS1、CKS0ビットが有効になる。
【0066】かかるMSME、CKS1、CKS0ビッ
トの出力がセレクタ41を制御し、φOSC、φOSC
/2、φOSC/4、φOSC/8から、バスマスタの
システムクロック信号φBを選択する。図7にはMSM
E、CKS1、CKS0によってシステムクロック信号
φBの選択態様が例示されている。なお、φOSC以外
のクロック信号が選択された状態を中速モードと呼ぶ。
【0067】クロック発振器30には、EXTAL、X
TAL端子が入力され、水晶振動子を接続するか、また
はEXTALに外部クロック信号を入力する。これらと
同一の周波数のクロック信号φOSCを生成する。スタ
ンバイ制御回路45から、発振器停止信号46が与えら
れ、スタンバイ状態ではクロック発振器30が停止し、
クロック信号φOSCはハイレベルで停止するようにさ
れる。
【0068】分周器40は、クロック信号φOSCを入
力して、順次2分周を行って、クロック信号φOSC/
2、φOSC/4、φOSC/8を生成する。
【0069】セレクタ41は、クロック信号φOSC、
φOSC/2、φOSC/4、φOSC/8を入力し
て、クロック制御レジスタ42のMSMEビット、CK
S1、CKS0ビットで選択されたクロック信号を、シ
ステムクロック信号φBとして出力し、シングルチップ
マイクロコンピュータMPUのCPU20等のバスマス
タに供給する。
【0070】クロック制御レジスタ42、モジュールス
トップ制御レジスタ43及び並列度指定制御レジスタ4
4は、内部データバスPDBに接続され、CPU20か
らリード/ライト可能にされている。
【0071】クロック制御レジスタ42は、MSMEビ
ット、CKS1、CKS0ビットを、セレクタ41に出
力するとともに、SSBYビットをスタンバイ制御回路
45に出力する。モジュールストップ制御レジスタ43
は、モジュールストップ信号MSTPを、各機能ブロッ
クに供給する。
【0072】スタンバイ制御回路45は、例えば、フリ
ップフロップで構成され、SSBYビットが1の状態
で、CPU20がSLEEP命令を実行すると、かかる
フリップフロップがセット状態にされ、発振器停止信号
46を活性状態とし、これによってマイクロコンピュー
タMPUをスタンバイ状態とする。スタンバイ状態で外
部割り込み要求が発生すると、例えば、割り込みコント
ローラ22の制御によって、スタンバイ解除信号S1が
活性状態になり、前記フリップフロップはリセット状態
になり、発振器停止信号46が非活性状態になり、スタ
ンバイ状態が解除される。
【0073】図8には前記シングルチップマイクロコン
ピュータMPU若しくはCPU1,CPU1Aの開発環
境の概略が示される。シングルチップマイクロコンピュ
ータMPUの使用者は、各種エディタなどを用いて、C
言語乃至アセンブリ言語でプログラムを作成する。これ
は通常、複数のモジュールに分割して作成される。
【0074】Cコンパイラ50は、使用者の作成したそ
れぞれのC言語ソースプログラムを入力し、アセンブリ
言語ソースプログラム乃至オブジェクトモジュールを出
力する。Cコンパイラ50の処理においては、図示はさ
れないプリプロセッサの処理が行われる。
【0075】アセンブラ51は、アセンブリ言語ソース
プログラムを入力し、オブジェクトモジュールを出力す
る。
【0076】リンケージエディタ52は、上記Cコンパ
イラ50やアセンブラ51の生成した、複数のオブジェ
クトモジュールを入力して、各モジュールの外部参照や
相対アドレスなどの解決を行い、1つのプログラムに結
合して、ロードモジュールを出力する。
【0077】ロードモジュールは、シミュレータデバッ
ガ53に入力され、図示を省略するパーソナルコンピュ
ータなどのシステム開発装置上で、シングルチップマイ
クロコンピュータMPUの動作をシミュレーションし、
実行結果を表示し、プログラムの解析や評価を行なうこ
とができる。また、エミュレータ54に入力して、実際
の応用システム上などで動作する、所謂インサーキット
エミュレーションを行ない、マイクロコンピュータ全体
としての、実動作の解析や評価を行なうことができる。
【0078】このほかに、ライブラリアンとして、汎用
的なサブルーチンなどを提供することもできる。
【0079】図9には前記シングルチップマイクロコン
ピュータMPUのシステム開発装置におけるCPU1
(CPU1A)の並列処理選択方法を示す。例えば、図
9の(a)に示される通り、パーソナルコンピュータな
どのシステム開発装置上のディスプレイでプロンプトが
表示された状態で、例えば、SET PARALLEL
=4と入力すればよいようにする。或いは、(b)に示
されるように、プロンプトが表示された状態で、SET
PARALLELとコマンドを入力し、これに対し
て、CPUの種類及び動作モードのメニューを、例えば
PARALLELNo.(1.PARALLEL:1、
2.PARALLEL:2、3.PARALLEL:
3、4.PARALLEL:4)と表示するとともに、
メニュー番号の入力を要求し、使用者がメニューの番号
1〜4のいずれかを入力すればよいようにする。この後
コンパイルされるファイルは上記で設定した並列数が使
用される。
【0080】また、(c)に例示されるように、Cコン
パイラを実行する場合のオプションとして、並列数を設
定してもよい。例えば、ccomp―PARALLEL
=4source.cと入力する。オプション「―PA
RALLEL=4」で4並列を指定し、C言語ソースプ
ログラムファイル「source.c」をコンパイルす
る。
【0081】このほか、ウィンドウのドロップダウンメ
ニューで選択可能にしてもよいし、ワークステーション
などであれば、Cシェルコマンドとして入力することも
できる。
【0082】更に、アセンブラやCコンパイラなどの、
ソースプログラムの制御命令として、CPU1の並列処
理の数及び動作モードを入力することができる。
【0083】並列数を少なくした場合には、図1のCP
U1に対応する開発環境では、命令コードの一部が常
に、演算処理を示さないようにされる。
【0084】図3のCPU1Aに対応する開発環境で
は、Cコンパイラなどで、並列処理しやすい命令の順序
を生成するが、並列数を少なくすれば、その分、Cコン
パイラの処理が少なくなるので、コンパイル時間の短縮
などに寄与できる。また、並列処理制御命令を生成する
場合にも同様である。
【0085】また、並列処理数の異なるCPU(データ
処理装置)を展開した場合にも、Cコンパイラなどの開
発装置を共通に利用可能にでき、開発環境の開発効率を
向上することができる。
【0086】図10にはCPU1,CPU1Aのソース
プログラムにおける並列処理選択方法を示す。
【0087】C言語のソースプログラムは、コンパイル
処理前に、プリプロセッサの処理を受ける。ソースプロ
グラムでは、「#」で示されるプリプロセッサ文によっ
て、プリプロセッサは処理を行い、コンパイラに指示が
行われる。
【0088】図10では、C言語で記述されたソースプ
ログラムであり、プリプロセッサ文(#pragma)
で、コンパイラの処理を指示することができる。(a)
の場合、 #pragma parallel4(kansu1) #pragma parallel2(kansu2) で、関数「kansu1」は4並列で、関数「kans
u2」は2並列でコンパイルすることが指示される。
【0089】また、(b)の場合、 #pragma parallel2 … #pragma parallel2end で、括られた記述(この場合は、whileループ)
が、2並列でコンパイルされる。
【0090】図1のCPU1のように、128ビットの
命令コードに、4つの処理内容が記述される場合、2並
列でコンパイルした場合には、所定の2つの演算処理ブ
ロックに対応するフィールドが無操作となる。無操作の
フィールドは、命令デコードブロックDUによって、対
応する演算処理ブロックにストップ信号STPiをアサ
ートさせ、その演算処理動作を停止状態にする。
【0091】また、図3のCPU1Aのように、並列処
理を制御する命令を生成する場合には、2並列でコンパ
イルすると、3以上の並列処理が指示されないようにさ
れる。
【0092】図11には前記シングルチップマイクロコ
ンピュータMPUをプリンタ制御に用いたマイクロコン
ピュータシステムが例示される。
【0093】プリンタ制御システムは、シングルチップ
マイクロコンピュータMPU、セントロニクスインタフ
ェース或いはユニバーサルシリアルバスなどの受信回路
60、バッファRAM(DRAM)61、キャラクタジ
ェネレートROM(CGROM)62、プログラムRO
M63を含み、これらがシングルチップマイクロコンピ
ュータMPUの外部バス64を介して接続される。
【0094】また、図11のプリンタシステムは、更
に、印字ヘッド65、バッファ回路66、ラインフィー
ドモータ67、及びキャリッジリターンモータ68を含
み、これらのモータ67,68は、それぞれタイマ26
の出力等によって制御される。ラインフィードモータ6
7及びキャリッジリターンモータ68は、特に制限はさ
れないものの、ステッピングモータである。
【0095】受信回路60から入力されたデータは、一
旦、バッファRAM61に格納された後、CPU20に
よって展開され、バッファRAM61から所定の順序で
印字ヘッド65に送られる。この処理量は、印刷するデ
ータによって相違される。例えば、テキストデータはデ
ータ量が比較的少なく、CPU20の処理量も比較的少
ない。一方、画像データは、データ量が多く、CPU2
0の処理量も多い。
【0096】従って、図11のシステムにおいて、テキ
ストデータを扱うCPU20の処理プログラム(関数)
は並列度を低くし、消費電力を低減し、画像データを扱
う処理プログラム(関数)は並列度を高くするようにす
るとよい。並列度を変更することによって、所望の処理
能力を維持しつつ、不所望な電力消費を抑止できる。
【0097】印字ヘッドデータを転送する場合、印字ヘ
ッド65は印刷精度を向上するため、不規則な形状をし
ていたり、種々の工夫が試みられ、変更される場合も多
いから、DTC21などの固定的なデータ転送では対応
が困難で、印字ヘッド65の仕様に合わせて、CPU2
0がデータを転送することが必用な場合がある。
【0098】この場合、CPU20の処理能力によっ
て、印字性能が決る可能性がある。換言すれば、所要の
印字性能を実現する為には、上記のデータ転送処理を、
所定時間内に終了する必要がある。本発明においては、
1つの処理プログラムを、並列の演算器を用いて、高速
化しているから、かかる制御に好適である。
【0099】図5のシングルチップマイクロコンピュー
タMPUを用いる場合には、CPU20の処理負荷を軽
減するために、受信回路60からバッファRAM61へ
のデータ転送を、CPU20の動作と並行して、DTC
21が行ったりすることができる。また、DTC21
は、ラインフィードモータ67及びキャリッジリターン
モータ68を駆動するパルス出力を行う。更に、SCI
28の送信データ、受信データの転送を行なう。
【0100】図11のプリンタシステムにおいて、図示
はされないものの、SCI28はホスト装置などとの通
信に使用され、A/D変換器29は紙枚数などのセンサ
情報を入力する。タイマ26は、上記モータ駆動の基準
タイミングを発生する。これらの基準クロック信号φS
は固定であるから、これらの動作状況に拘らず、CPU
20などのバスマスタの基準クロック信号φBを変更し
て、随時消費電力を低減することができる。モータの駆
動信号は、タイマ26の基準タイミングに従うから、D
TC21によるデータ転送に必要な時間が増えても、基
準タイミング周期内であれば問題ない。
【0101】周知のように、最近では、プリンタなどの
AC電源を使用するものにあっても、消費電力の低減が
望まれている。周辺機能の内、使用しないものは、モジ
ュールストップ信号MSTPによって、動作を停止さ
せ、消費電力を低減することができる。
【0102】半導体集積回路の集積度の向上によって、
受信回路60の一部をシングルチップマイクロコンピュ
ータMPUに搭載して1個の半導体集積回路化すること
ができる。集積度の向上により、配線容量が低減できる
から、消費電力の低減にも寄与できる。更に、バッファ
RAM61などの汎用的なメモリも1個の半導体集積回
路MPUに集積することができる。プログラムROM6
2やCGROM63などのように個別のプリンタの機種
に応じて変更になるものは、個別の半導体集積回路にす
る方が都合がよい。
【0103】図12には前記マイクロコンピュータMP
Uのためのエミュレータが例示される。図12において
70は図11のプリンタシステムのような応用システム
(ターゲットシステム又はユーザシステムとも称す
る)、71はエミュレータ、72はシステム開発装置で
ある。
【0104】エミュレータ71はエミュレーション用プ
ロセッサ73を有する。エミュレーション用プロセッサ
73は、応用システム70に用いられるマイクロコンピ
ュータMPUと同等のマイクロコンピュータ部分にエミ
ュレーション用インタフェースを加えて構成される。エ
ミュレーション用プロセッサ73の前記マイクロコンピ
ュータ部分はインタフェースケーブル74を介して、応
用システム70のマイクロコンピュータMPUの実装ソ
ケット75に結合され、これによってエミュレーション
用プロセッサは応用システムを代行制御することができ
る。
【0105】一方、エミュレーション用プロセッサ73
は前記エミュレーションインタフェースを用いてエミュ
レーションバス76に接続される。エミュレーションバ
ス76のデータバス幅は、IDBのバス幅に対して12
8ビット等とされる。エミュレーションバス76には図
示はされない状態信号・制御信号の信号線などを含む。
前記エミュレーションバス76を用いて、エミュレーシ
ョン用プロセッサ73から、応用システム70とエミュ
レーション用プロセッサ73の内部状態に応じた情報な
どが出力され、また、エミュレーション用プロセッサ7
3に対し、エミュレーションのための各種信号が入力さ
れる。
【0106】さらに、前記エミュレーションバス76に
は、エミュレーションメモリ81、ブレーク制御回路8
2、リアルタイムトレース回路83などが接続される。
前記エミュレーションメモリ81は、特に制限はされな
いものの、RAMなどによって構成され、前記のユーザ
プログラムを格納した領域と、エミュレーションのため
のプログラムを格納した領域とを持つ。前記ブレーク制
御回路82は、エミュレーション用プロセッサ73によ
る制御状態やエミュレーションバス76の状態を監視し
て、その状態が予め設定された状態に達した時に、ブレ
ーク割込み信号BRKをアサートして、エミュレーショ
ン用プロセッサ73のCPU20によるユーザプログラ
ムの実行を停止させ、エミュレーション用プログラム実
行状態に遷移させる(ブレークする)。前記リアルタイ
ムトレース回路83は、前記CPU20のリード動作ま
たはライト動作を示す信号、命令リード動作を示す信号
(CPUステータス信号)、エミュレーションバス76
に与えられるアドレスやデータさらには制御信号を逐次
蓄える。
【0107】前記エミュレーションメモリ81、ブレー
ク制御回路82、リアルタイムトレース回路83はコン
トロールバス84にも接続され、コントロールバス84
を介してコントロールプロセッサ85の制御を受けるよ
うになっている。前記コントロールバス84は、前記コ
ントロールプロセッサ85に接続されるとともに、ホス
トインタフェース回路86を介して、特に制限はされな
いものの、前記パーソナルコンピュータなどのシステム
開発装置72に接続される。
【0108】例えば、システム開発装置72から入力さ
れたプログラム(ロードモジュール)をエミュレーショ
ンメモリ81のユーザプログラム格納領域に転送し、内
蔵ROM上に配置されるべきかかるプログラムをCPU
20がリードすると、エミュレーションメモリ81上の
プログラムがリードされ、実行される。また、ブレーク
条件や、リアルタイムトレース条件などもシステム開発
装置72から与えることができる。
【0109】前記リアルタイムトレース回路83は、エ
ミュレーションバス76のアドレス、データ、制御信
号、CPUステータス信号などを蓄積し、この内容は、
所定のコマンドなどでシステム開発装置72の表示装置
に表示して、使用者は、この内容に基いて、プログラム
の動作解析を行なう。前記の通り、CPU20のフェッ
チした命令は、エミュレーションバス76上に現われ、
これを逆アセンブルした、アセンブリ言語でも表示する
ことができる。更に、C言語ソースプログラムも表示す
ることができる。
【0110】前述の通り、CPU20は単一の命令スト
リームを実行するようになっているから、ブレークの設
定や、トレース情報の取得など、エミュレータ71によ
る応用システム70上での動作確認が容易である。ま
た、図1に示されるCPU1のように、命令コード上
に、並列動作の情報が含まれる場合、その情報は、トレ
ース情報として、トレースできるから、動作解析に更に
好適である。
【0111】上記実施例によれば、以下の作用効果を得
るものである。
【0112】(1)実行する並列処理の数に対応して、
不必要な演算処理ブロックEXiを停止状態にすること
により、不所望な電力消費を抑止することができる。消
費電力を低減することにより、不要輻射即ち高周波ノイ
ズを低減することができる。
【0113】(2)Cコンパイラなどで、命令コードに
よって、並列度を指定可能にすることで、CPUの処理
状態に応じて、処理性能を優先するか、消費電力抑止を
優先するかの選択が可能になる。
【0114】(3)並列度指定制御レジスタ44のよう
な内部I/Oレジスタによって、並列度を指定可能にす
ることによって、データ処理装置の処理状態に応じて、
処理性能を優先するか、消費電力抑止を優先するかの選
択が可能になる。
【0115】(4)クロック制御レジスタ42のような
内部I/Oレジスタによって、クロック信号を変更する
ことにより、プログラムを変更することなく、CPUの
処理状態に応じて、処理性能を優先するか、消費電力抑
止を優先するかの選択が可能になる。これは、命令コー
ドで並列度が指定される場合にも利用できる。一つの関
数などが、処理速度が必要な場合と、低消費電力が必要
な場合の両方に使用される場合にも、呼び出し側で、ク
ロック信号を変更することによって、処理性能を優先す
るか、消費電力抑止を優先するかの選択が可能になる。
共通の関数とすることにより、プログラムの開発効率を
向上できる。周辺クロック信号とは独立に、CPUなど
のバスマスタクロック信号の分周比を可変にすることに
よって、周辺回路に対する不所望の処理を必要とせず、
使い勝手を向上することができる。
【0116】(5)Cコンパイラなどの開発環境におい
て、並列度を指定可能にすることによって、並列度が異
なるデータ処理装置についても開発環境を共通に利用可
能にできる。開発環境の開発効率を向上できる。並列度
の拡張を考慮して設計しておく、乃至、予め、上記拡張
に対応させておくことにより、更に、開発効率を向上す
ることができる。
【0117】(6)Cコンパイラにおいてステップ単
位、関数単位、ソースプログラムのファイル単位など
で、並列度を指定することによって、より使い勝手を向
上することができる。
【0118】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0119】例えば、並列処理の数は任意にできる。演
算処理ブロックは全て同じ機能である必要はない。1ス
テート演算用、ロード/ストア処理用など個別の処理機
能を持たせてもよい。並列処理の方法も、VLIWやス
ーパスカラなどのほか、MIMD(マルチプル・インス
トラクション・マルチプル・データ)などであってもよ
い。
【0120】データ処理装置の詳細、並列処理の制御の
方法や、演算処理ブロックの詳細も、任意に変更可能で
ある。
【0121】また、命令コードの基本単位128ビット
に限定する必要はなく、いわゆるVLIW型のデータ処
理装置にあっては、256ビットや64ビットでもよ
く、いわゆるスーパスカラ型のデータ処理装置にあって
は、16ビット或いは32ビットなど任意のビット幅と
できる。データバスの幅も任意にできる。
【0122】シングルチップマイクロコンピュータのそ
の他の機能ブロックについても何等制約されない。デー
タ処理装置の実現方法としては、シングルチップマイク
ロコンピュータや半導体集積回路には限定されない。
【0123】マイクロコンピュータシステムとしてもプ
リンタに限定されない。携帯型機器、例えばオートフォ
ーカスのカメラなどであってもよい。焦点を合わせるま
では並列度を高くし、一旦焦点が合った後の被写体の動
きに焦点を追従させるときには並列度を低くすることが
考えられる。
【0124】開発環境の詳細についても、任意にでき
る。少なくとも、ユーザがプログラムを作成する際に、
並列度を指定できるようにすればよい。
【0125】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるシング
ルチップマイクロコンピュータに適用した場合について
説明したが、それに限定されるものではなく、その他の
マイクロコンピュータやデータプロセッサなどその名称
の如何に拘わらずデータ処理装置に広く適用可能であ
る。
【0126】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0127】すなわち、並列処理を行なう場合に、演算
処理ブロックの数より、並列実行可能な処理が少ない場
合に、動作を要しない演算処理ブロックのクロック信号
を停止させると共に、データ入出力などを禁止すること
により、不所望な電力消費を抑止することができる。
【0128】動作許可する並列処理の数を、コンパイラ
や制御レジスタで、指定可能にすることによって、一部
の並列処理ブロックの動作を停止させて、消費電力を低
減することができる。
【0129】制御レジスタでクロック信号を変更するこ
とによって、プログラムを変更することなく、データ処
理装置の処理状態に応じて、処理性能を優先するか、消
費電力抑止を優先するかの選択が可能にできる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の第1の例として
CPUを例示するブロック図である。
【図2】図1のCPUに含まれる演算処理ブロックの演
算器を例示するブロック図である。
【図3】本発明に係るデータ処理装置の第2の例として
別のCPUを示すブロック図である。
【図4】図3のCPUによる命令実行手順を例示する説
明図である。
【図5】本発明に係るデータ処理装置の第3の例として
シングルチップマイクロコンピュータを例示するブロッ
ク図である。
【図6】シングルチップマイクロコンピュータに内蔵さ
れるクロック制御回路を例示するブロック図である。
【図7】MSME、CKS1、CKS0によるシステム
クロック信号φBの選択態様を例示する説明図である。
【図8】CPUの開発環境を概略的に示す説明図であ
る。
【図9】CPUのシステム開発装置における並列処理選
択方法を示す説明図である。
【図10】CPUのソースプログラムにおける並列処理
選択方法を示す説明図である。
【図11】図5のシングルチップマイクロコンピュータ
をプリンタ制御に用いたマイクロコンピュータシステム
のブロック図である。
【図12】図5のマイクロコンピュータのためのエミュ
レータを例示するブロック図である。
【符号の説明】
1,1A,20 CPU FU 命令リードブロック DU 命令デコードブロック DA デコーダアライメントユニット EX0〜EX3 演算処理ブロック RSV0〜RSV3 リザベーションステーション RB レジスタブロック BB バッファブロック STP0〜STP3(STPi) ストップ信号 CNT0〜CNT3(CNTi) 制御信号 φ1、φ2 ノンオーバラップ2相クロック信号 φB、φS 基準クロック信号 PALC 並列度指定制御信号 10 演算器 11 セレクタ 12 算術論理演算回路 13 シフト回路・結果バッファ 30 クロック発振回路 31 クロック制御回路 44 並列度指定制御レジスタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/45 G06F 9/44 322F Fターム(参考) 5B011 DA06 EA08 EA09 LL08 LL11 LL12 5B013 DD01 DD04 5B033 AA05 AA13 AA14 BC01 BD01 BE05 DD05 5B079 AA07 BA03 BA12 BA13 BB01 BC01 DD03 5B081 AA06 AA07 CC32

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 並列処理を行なうデータ処理装置であっ
    て、 命令をリードする命令フェッチ部と、並列動作可能であ
    って夫々演算器を内蔵した複数の実行部と、前記命令フ
    ェッチ部がリードした命令を解読して得られる制御信号
    に基づいて前記複数個の実行部の動作を制御する制御部
    と、を有し、 前記夫々の実行部は、前記制御部の出力する所定の制御
    信号に応答して個別的に動作停止状態を採り得るもので
    あることを特徴とするデータ処理装置。
  2. 【請求項2】 前記制御部は、命令コード中に含まれ、
    前記実行部の処理を指定する情報のフィールドに対し、
    前記処理の無操作を判定したとき、対応する実行部の動
    作を停止状態に制御する前記所定の制御信号を生成する
    ものであることを特徴とする請求項1記載のデータ処理
    装置。
  3. 【請求項3】 前記制御部は、所定の命令コードを解読
    したとき、これに続く命令の実行を並列させる所定の制
    御信号を複数の実行部に出力するものであることを特徴
    とする請求項1記載のデータ処理装置。
  4. 【請求項4】 演算動作停止させる一部の実行部を指定
    する手段を更に有し、前記制御部は、その手段で指定さ
    れた実行部を、命令の並列実行対象から除外するもので
    あることを特徴とする請求項3記載のデータ処理装置。
  5. 【請求項5】 前記指示する手段は前記実行部によって
    アクセスされるレジスタ手段であることを特徴とする請
    求項4記載のデータ処理装置。
  6. 【請求項6】 前記実行部は、第1のクロック信号に同
    期動作される演算器を有し、前記制御部からの所定の制
    御信号に応答して前記第1のクロック信号の変化を抑止
    して演算動作を停止させるゲート手段を有して成るもの
    であることを特徴とする請求項1乃至5の何れか1項に
    記載のデータ処理装置。
  7. 【請求項7】 異なる分周比のクロック信号を生成する
    分周器と、分周器の出力を選択するセレクタと、セレク
    タによる選択の制御情報が設定されるクロック選択レジ
    スタとを有し、 前記第1のクロック信号は前記セレクタで選択されたク
    ロック信号に基いて生成されるものであることを特徴と
    する請求項6記載のデータ処理装置。
  8. 【請求項8】 請求項1乃至7の何れか1項に記載のデ
    ータ処理装置が実行するオブジェクトプログラムを生成
    する開発装置であって、ソースプログラムのステップ関
    数またはファイルの少なくとも一つの単位で前記実行部
    の並列度数を指定する手段を有し、これによって指定さ
    れた並列度数を前記単位でオブジェクトプログラムに反
    映するものであることを特徴とする開発装置。
JP26795099A 1999-09-22 1999-09-22 データ処理装置 Withdrawn JP2001092661A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26795099A JP2001092661A (ja) 1999-09-22 1999-09-22 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26795099A JP2001092661A (ja) 1999-09-22 1999-09-22 データ処理装置

Publications (1)

Publication Number Publication Date
JP2001092661A true JP2001092661A (ja) 2001-04-06

Family

ID=17451860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26795099A Withdrawn JP2001092661A (ja) 1999-09-22 1999-09-22 データ処理装置

Country Status (1)

Country Link
JP (1) JP2001092661A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099148A (ja) * 2001-09-19 2003-04-04 Sanyo Electric Co Ltd データ処理装置とこれに利用可能なシステム制御装置およびデータ変換方法
JP2007299355A (ja) * 2006-05-08 2007-11-15 Oki Electric Ind Co Ltd マイクロプロセッサ
JP2008054911A (ja) * 2006-08-31 2008-03-13 Matsushita Electric Ind Co Ltd 洗濯乾燥機のモータ駆動装置
US7386844B2 (en) 2003-01-28 2008-06-10 Matsushita Electric Industrial Co., Ltd. Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions
JP2009003807A (ja) * 2007-06-22 2009-01-08 Fujitsu Ltd マイクロプロセッサ
US8489862B2 (en) 2007-06-12 2013-07-16 Panasonic Corporation Multiprocessor control apparatus for controlling a plurality of processors sharing a memory and an internal bus and multiprocessor control method and multiprocessor control circuit for performing the same
US9032407B2 (en) 2009-05-25 2015-05-12 Panasonic Intellectual Property Corporation Of America Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit
JP2018032190A (ja) * 2016-08-24 2018-03-01 キヤノン株式会社 演算回路、その制御方法及びプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099148A (ja) * 2001-09-19 2003-04-04 Sanyo Electric Co Ltd データ処理装置とこれに利用可能なシステム制御装置およびデータ変換方法
US7386844B2 (en) 2003-01-28 2008-06-10 Matsushita Electric Industrial Co., Ltd. Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions
JP2007299355A (ja) * 2006-05-08 2007-11-15 Oki Electric Ind Co Ltd マイクロプロセッサ
JP4747026B2 (ja) * 2006-05-08 2011-08-10 Okiセミコンダクタ株式会社 マイクロプロセッサ
JP2008054911A (ja) * 2006-08-31 2008-03-13 Matsushita Electric Ind Co Ltd 洗濯乾燥機のモータ駆動装置
JP4645560B2 (ja) * 2006-08-31 2011-03-09 パナソニック株式会社 洗濯乾燥機のモータ駆動装置
US8489862B2 (en) 2007-06-12 2013-07-16 Panasonic Corporation Multiprocessor control apparatus for controlling a plurality of processors sharing a memory and an internal bus and multiprocessor control method and multiprocessor control circuit for performing the same
JP2009003807A (ja) * 2007-06-22 2009-01-08 Fujitsu Ltd マイクロプロセッサ
US9032407B2 (en) 2009-05-25 2015-05-12 Panasonic Intellectual Property Corporation Of America Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit
JP2018032190A (ja) * 2016-08-24 2018-03-01 キヤノン株式会社 演算回路、その制御方法及びプログラム

Similar Documents

Publication Publication Date Title
Van Gageldonk et al. An asynchronous low-power 80C51 microcontroller
US6845445B2 (en) Methods and apparatus for power control in a scalable array of processor elements
US6965991B1 (en) Methods and apparatus for power control in a scalable array of processor elements
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
US10901492B1 (en) Power reduction in processor pipeline by detecting zeros
US7120810B2 (en) Instruction-initiated power management method for a pipelined data processor
US8341436B2 (en) Method and system for power-state transition controllers
US20040002823A1 (en) Method and apparatus for compiler assisted power management
JPH06149545A (ja) Cpuと乗算器とを有する半導体集積回路
JP2006509290A (ja) マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング
US20030070013A1 (en) Method and apparatus for reducing power consumption in a digital processor
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2000029700A (ja) 分岐制御を有するデ―タ処理システムおよびその方法
JP2001202155A (ja) 低消費電力処理装置
JP2001092661A (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
EP1237066B1 (en) Microprocessor with hardware controlled power management and selectable input/output control pins and method therfor
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP4800582B2 (ja) 演算処理装置
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
CN101790719A (zh) 低开销/省电处理器同步机制及其应用
EP1324191A1 (en) Processor architecture, related system and method of operation
EP1372065B1 (en) System large scale integrated circuit (LSI), method of designing the same, and program therefor
WO2002057893A2 (en) Method and apparatus for reducing power consuption in a digital processor
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061205