JPH0644068A - Cpu速度制御装置 - Google Patents

Cpu速度制御装置

Info

Publication number
JPH0644068A
JPH0644068A JP4195606A JP19560692A JPH0644068A JP H0644068 A JPH0644068 A JP H0644068A JP 4195606 A JP4195606 A JP 4195606A JP 19560692 A JP19560692 A JP 19560692A JP H0644068 A JPH0644068 A JP H0644068A
Authority
JP
Japan
Prior art keywords
cpu
loop
access
execution
flip
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
JP4195606A
Other languages
English (en)
Inventor
Kenichi Naka
健一 中
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.)
PFU Ltd
Original Assignee
PFU 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 PFU Ltd filed Critical PFU Ltd
Priority to JP4195606A priority Critical patent/JPH0644068A/ja
Publication of JPH0644068A publication Critical patent/JPH0644068A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 ソフトタイマの処理を含むプログラムの実行
のためCPUの命令実行速度を制御するCPU速度制御
装置に関し、ハードウェアの命令実行速度が変わっても
プログラムを変更することなくソフトタイマによる待ち
時間が変わらないようにCPUの命令実行速度を制御す
ることの可能なCPU速度制御装置を提供すること。 【構成】 CPU10が少なくとも特定の一部のI/O
アドレスをアクセスしたことを検出するI/Oアクセス
検出部12と、CPUが命令をフェッチすべく出力した
アドレスを順次格納するアドレス格納部16と、該アド
レス格納部に格納されたアドレスの値にもとづき、CP
Uがループ処理を実行中であることを検出するループ検
出部18と、前記I/Oアクセス検出部がI/Oアクセ
スを検出した後、該ループ検出部がループ処理の実行を
検出した時、該ループ検出部がループ処理の実行を検出
しなくなるまでCPUの実行速度を変更する実行速度変
更部20とを具備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトタイマの処理を
含むプログラムの実行のためCPUの命令実行速度を制
御するCPU速度制御装置に関する。
【0002】
【従来の技術】近年の半導体技術の進歩とともに、CP
U素子の動作速度およびメモリ素子のアクセスタイムは
年々改善されている。従来機種のCPUの命令がすべて
実行可能で、かつ、従来機種よりも速い動作クロックの
もとで動作可能なCPU素子、或いは従来機種よりもア
クセスタイムの短かいメモリ素子が出現した場合、従来
機種のもとで開発されたソフトウェアをそれらが組み込
まれたコンピュータ機器上でそのまま実行させれば、ソ
フトウェアの処理時間・能力もそれに応じて著しく改善
される。
【0003】ところで、OS(オペレーティングシステ
ム)のように、ディスク制御等のI/Oアクセスを含む
プログラムにおいて、I/Oアクセス後の割り込みを所
定の待ち時間の間に時間監視するため、或いはI/Oア
クセス後所定の待ち時間をおいて次のI/Oアクセスを
するようにI/Oの仕様が定められているとき、待ち時
間の計測のため等にいわゆるソフトタイマが使用される
場合がある。このソフトタイマは、通常、レジスタ等に
定数をロードし、その後ループを回る毎にレジスタ内の
値を減少又は増加させ、レジスタ内の値が所定の値にな
ったらループを抜け出して次の処理へ進むように構成さ
れる。一重のループのみでは待ち時間が足りないとき
は、ループを2重、3重にすることが行なわれる。最初
にロードされる定数又は到達値は所望の待ち時間及びC
PUの命令実行速度から計算され、プログラム内に設定
される。
【0004】
【発明が解決しようとする課題】この様なソフトタイマ
を随所に含むソフトウェアプログラムを処理速度の速い
機種で実行させる場合、他のソフトウェア処理と同様
に、ソフトタイマの待ち時間も短縮される。待ち時間が
短かくなれば、本来充分な余裕をとって設計されていた
ものが余裕がなくなって動作が不確実になったり、正常
な動作をしなくなるという恐れがある。
【0005】したがって従来では、旧来の機種のマシン
上で開発されたソフトウェアを新規に設計されたマシン
上で使用する場合、所定の試験項目に従って動作確認を
し、必要に応じてプログラムを変更する必要があり、煩
雑な作業と多大な時間を必要としていた。また、動作確
認時には発見できず、後で問題が発覚することもある。
【0006】ハードウェアの動作速度を旧来の機種と同
一にすることも考えられるが、これでは素子の動作速度
の改善による利益を享受できず、その他の利益、例えば
素子の小型化・低価格化の利益の享受にとどまる。した
がって本発明の目的は、ハードウェアの命令実行速度が
変わってもプログラムを変更することなくソフトタイマ
による待ち時間が変わらないようにCPUの命令実行速
度を制御することの可能なCPU速度制御装置を提供す
ることにある。
【0007】
【課題を解決するための手段】図1は本発明の原理構成
を表わすブロック図である。図において、本発明のCP
U速度制御装置は、CPU10が少なくとも特定の一部
のI/Oアドレスをアクセスしたことを検出するI/O
アクセス検出部12と、CPUが命令をフェッチすべく
出力したアドレスを順次格納するアドレス格納部16
と、該アドレス格納部に格納されたアドレスの値にもと
づき、CPUがループ処理を実行中であることを検出す
るループ検出部18と、前記I/Oアクセス検出部がI
/Oアクセスを検出した後、該ループ検出部がループ処
理の実行を検出した時、該ループ検出部がループ処理の
実行を検出しなくなるまでCPUの実行速度を変更する
実行速度変更部20とを具備することを特徴とするもの
である。
【0008】
【作用】I/Oに関する待ち時間制御のためのソフトタ
イマは、通常、CPUがI/Oアクセス後ループ処理に
入る構成がとられている。したがって、I/Oアクセス
検出部12がI/Oアクセスを検出した後にループ検出
部18がループ処理を検出したら、ループ処理が終るま
で実行速度変更部20がCPU10の実行速度を変更す
ることにより、ソフトタイマの部分のみの実行速度を遅
くする制御が可能となる。
【0009】
【実施例】図2は本発明の一実施例を表わす回路図であ
る。ウェイト信号生成回路22は所定のタイミングでコ
ントロールバス22上にウェイト信号を出力することに
よってCPU10の実行速度を変更するものであるが、
本来は、CPUの動作をメモリ(図示せず)等の周辺デ
バイスのアクセス時間に合わせるために備えられてい
る、命令フェッチ信号検出回路23は、コントロールバ
ス24上の信号からCPU10がメモリから命令をフェ
ッチする毎に出力されるパルスを生成し出力する。その
様な信号がコントロールバス24上に出力されている場
合は、単にそれを引き出すのみで良い。
【0010】図1のI/Oアクセス検出部12はI/O
アクセス検出回路26、カウンタ28、およびフリップ
フロップ30により実現される。I/Oアクセス検出回
路26は、コントロールバス24上に出力される信号か
ら、CPU10がI/Oに対してアクセスしたことを表
わすパルスを生成する。その様な信号がコントロールバ
ス24上に出力されている場合は、その信号を単に引き
出すのみで良い。また、一部の特定のI/Oアドレスの
みを対象とする場合は、アドレスバス32上のアドレス
信号をデコードしてアドレス信号がその領域を指してい
ることを示す信号を生成し、それとANDをとって出力
するように構成する。I/Oアクセス検出回路26から
パルスが出力されると、フリップフロップ30はセット
され、同時にカウンタ28には予め定められた定数がロ
ードされる。カウンタ28は命令フェッチ信号検出回路
23からのパルスをカウントし、そのキャリー信号によ
りフリップフロップ30がリセットされる。したがっ
て、フリップフロップ30の出力は、CPU10が(所
定のアドレスの)I/Oをアクセスした後Hレベルとな
り、カウンタ28へロードされる定数の補数に相当する
数だけ命令をフェッチするまでHレベルを保つ。
【0011】図1のアドレス格納部16は縦続接続され
て複数段のシフトレジスタを構成する複数のフリップフ
ロップ34−0〜34−nにより実現される。各フリッ
プフロップにはクロック信号として命令フェッチ信号検
出回路23からのパルスが供給されている。したがっ
て、n+1個のフリップフロップ34−0〜34−nは
CPUが最近に実行したn+1個の命令のアドレスを保
持するトレースメモリとして機能する。なお、フリップ
フロップ34の個数nは15個程度が好ましい。
【0012】図1のループ検出部18は複数個の比較器
36−1〜36−n、OR回路38、カウンタ40およ
びフリップフロップ42で実現される。比較回路36−
1〜36−nは第1段目のフリップフロップ34−0に
保持される現在実行中の命令のアドレスとその他のフリ
ップフロップ34−1〜34−nに保持されているアド
レスとを比較し、両者が一致した時出力信号のレベルを
“H”にする。OR回路38にはすべての比較回路36
−1〜36−nの出力が入力されているので、その出力
は比較回路36のいずれか1つにおいて一致が検出され
たとき“H”レベルとなる。このときフリップフロップ
42はセットされ、同時にカウンタ40に初期値がロー
ドされる。カウンタ40は命令フェッチ信号検出回路2
3からのパルスをカウントし、そのキャリー信号により
フリップフロップ42がリセットされる。したがって、
フリップフロップ34−0に保持される実行中の命令の
アドレスがフリップフロップ34−1〜34−nに保持
されているアドレスのいずれかに一致すればフリップフ
ロップ42の出力は“H”レベルとなり、その一致がカ
ウンタ40にロードされる数の補数に等しい数以上途切
れない限り、“H”レベルが維持される。すなわち、フ
リップフロップ42の出力は、CPUがループ処理を実
行中であることを示す信号となる。なお、カウンタ40
にロードされる数の補数としては、5程度が好ましい。
【0013】図1の実行速度変更部20はAND回路4
4、インバータ46、フリップフロップ48およびウェ
イト信号生成回路22によって実現される。AND回路
44にはI/Oアクセスを検出したことを示す信号であ
るフリップフロップ30の出力とループ処理を検出した
ことを示す信号であるフリップフロップ42の出力が入
力されているので、I/Oアクセスが検出され、さらに
ループ処理が検出されたときその出力は“H”レベルと
なり、それによってフリップフロップ48がセットされ
る。フリップフロップ48のリセットはループ検出信号
をインバータ46で反転した信号により行なわれる。フ
リップフロップ48の出力はウェイト信号生成回路22
に入力され、それが“H”レベルのときそこで生成され
るウェイト信号の幅が広くなるように制御される。した
がって、I/Oアクセスが検出されループ処理が検出さ
れるとループ処理が検出されなくなるまで幅の広いウェ
イト信号がコントロールバス24上に出力され、CPU
10の実行速度が従来装置の命令実行時間と同等となる
ように制御される。
【0014】図2の回路の動作を、CPUが図3で示す
ようにコーディングされたソフトタイマを実行する場合
を例にとって以下に説明する。最初に図3に示されたソ
フトタイマのプログラムについて説明する。“W,1
0,IO30”の命令を実行すると、I/OレジスタI
O30に10が書き込まれ、“ST 0,A”の実行に
より大ループの制御変数Aに0が書き込まれ、“ST
0,B”の実行により小ループの制御変数Bに0が書き
込まれる。アドレス13および14の命令で構成される
小ループでは1回通過する毎に制御変数Bに1が加えら
れ、符号ビットが1になるまでループが繰り返される。
大ループはアドレス12〜17の命令で構成され、小ル
ープを含むループを1回通過する毎にAに1が加えら
れ、20に等しくなるとアドレス18へジャンプしてソ
フトタイマ処理が終了し、“W,00,IO30”の実
行によりI/OレジスタIO30に0が書き込まれる。
【0015】図4は図3に示したソフトタイマのプログ
ラムをCPUが実行しているときの図2のA〜Jで示し
た個所の信号の状態をそれぞれ(A)〜(J)欄に示す
タイミングチャートである。アドレス10番地の“W,
10,IO30”の命令が実行されるとI/Oアクセス
検出回路26からパルスが出力され((B)欄)、その
後、命令フェッチパルス((A)欄)を7個カウントす
るまでフリップフロップ30の出力((C)欄)は
“H”レベルに保たれる。ループ処理に入り、フリップ
フロップ34−2に“13”が保持されたとき((F)
欄)フリップフロップ34−0に保持される値((D)
欄)と等しくなるので、比較器36−2の出力((G)
欄)は“H”レベルになり、OR回路38の出力
((H)欄)も“H”レベルになる。なお、(D)欄
中、他のフリップフロップに保持される値と等しいもの
を斜線で示し、(F)欄中、(D)欄の値と等しいもの
を斜線で示す。フリップフロップ42の出力((I)
欄)はOR回路38の出力((H)欄)の信号が命令フ
ェッチパルス5個分以上の期間“L”レベルにならない
限り“H”レベルに保たれるので、CPUが図3に示さ
れたアドレス12から17までのループ処理を実行中は
“H”レベルに保たれる。フリップフロップ42の出力
信号((I)欄)の立ち上がりエッジにおいてフリップ
フロップ30の出力((C)欄)は“H”レベルである
のでフリップフロップ48はセットされ((J)欄)、
フリップフロップ42の出力信号((I)欄)が“L”
レベルになるまで“H”レベルの出力を保つ。この期間
において、ウェイト信号生成回路22ではより広い幅の
ウェイト信号が生成され、CPUの実行速度が低下す
る。
【0016】なお、ソフトタイマ処理実行中にウェイト
信号の幅を広げる替わりに、ソフトタイマ処理実行期間
中にウェイト信号を発生し、その他の期間中はウェイト
信号を発生しない構成も考えられる。
【0017】
【発明の効果】以上述べたように本発明によれば、CP
Uがソフトタイマの処理を実行中であることを検出して
CPUの実行速度を変更するので、ソフトタイマを含む
プログラムを変更することなく処理速度の速い機種で実
行させても、ソフトタイマによる待ち時間が短縮され
ず、不具合の発生を防止することができる。
【図面の簡単な説明】
【図1】本発明の原理構成を表わすブロック図である。
【図2】本発明の一実施例を表わす回路図である。
【図3】ソフトタイマ処理を含むプログラムの一例を表
わす図である。
【図4】図2の回路の動作を説明するためのタイミング
チャートである。
【符号の説明】
28,40…カウンタ 30,34−0〜34−n,42,48…フリップフロ
ップ 36−1〜36−n…比較回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 CPU(10)が少なくとも特定の一部
    のI/Oアドレスをアクセスしたことを検出するI/O
    アクセス検出部(12)と、 CPUが命令をフェッチすべく出力したアドレスを順次
    格納するアドレス格納部(16)と、 該アドレス格納部に格納されたアドレスの値にもとづ
    き、CPUがループ処理を実行中であることを検出する
    ループ検出部(18)と、 前記I/Oアクセス検出部がI/Oアクセスを検出した
    後、該ループ検出部がループ処理の実行を検出した時、
    該ループ検出部がループ処理の実行を検出しなくなるま
    でCPUの実行速度を変更する実行速度変更部(20)
    とを具備することを特徴とするCPU速度制御装置。
JP4195606A 1992-07-22 1992-07-22 Cpu速度制御装置 Pending JPH0644068A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4195606A JPH0644068A (ja) 1992-07-22 1992-07-22 Cpu速度制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4195606A JPH0644068A (ja) 1992-07-22 1992-07-22 Cpu速度制御装置

Publications (1)

Publication Number Publication Date
JPH0644068A true JPH0644068A (ja) 1994-02-18

Family

ID=16343959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4195606A Pending JPH0644068A (ja) 1992-07-22 1992-07-22 Cpu速度制御装置

Country Status (1)

Country Link
JP (1) JPH0644068A (ja)

Similar Documents

Publication Publication Date Title
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
JPH1196755A (ja) Dram搭載の集積回路
JP3822568B2 (ja) イベント処理
US3618042A (en) Error detection and instruction reexecution device in a data-processing apparatus
JPH0644068A (ja) Cpu速度制御装置
JPS5840772B2 (ja) デ−タ比較一致表示方式
JPS6242301B2 (ja)
JP3152014B2 (ja) タイマ回路
JP3366235B2 (ja) データ読み出し制御装置
JPS6118045A (ja) プログラムの暴走検出方式
JP2764844B2 (ja) パイプライン処理装置
JPS5838437Y2 (ja) プログラム計算機の表示制御装置
JPH05120155A (ja) マイクロプログラム制御装置
JPH05225359A (ja) マイクロコンピュータ装置
JPH05108384A (ja) マイクロプロセツサ
JP2004171040A (ja) タイマ回路
JPH05120030A (ja) 割り込みコントローラ
JPH0850567A (ja) データ転送装置
JP2003050750A (ja) マイクロコンピュータ
JPH05346876A (ja) Cpu制御装置
JPH03131944A (ja) データ処理装置
JPH06295254A (ja) Cpuの暴走検出装置
JPS62271022A (ja) マイクロプログラム制御装置
JPS59123054A (ja) イニシアル検出方式
JPH03246603A (ja) 高速カウンタ