JP2000330785A - 実時間プロセッサおよび命令実行方法 - Google Patents

実時間プロセッサおよび命令実行方法

Info

Publication number
JP2000330785A
JP2000330785A JP11137638A JP13763899A JP2000330785A JP 2000330785 A JP2000330785 A JP 2000330785A JP 11137638 A JP11137638 A JP 11137638A JP 13763899 A JP13763899 A JP 13763899A JP 2000330785 A JP2000330785 A JP 2000330785A
Authority
JP
Japan
Prior art keywords
time
instruction
register
value
real
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
JP11137638A
Other languages
English (en)
Inventor
Masafumi Takahashi
雅史 高橋
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP11137638A priority Critical patent/JP2000330785A/ja
Priority to US09/573,258 priority patent/US7069425B1/en
Publication of JP2000330785A publication Critical patent/JP2000330785A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 種々の要因に影響を受けずに所定の時刻に所
定の動作が行なえる実時間プロセッサを提供すること。 【解決手段】 実時間プロセッサ1は、所定間隔で時刻
を更新するタイマレジスタ11と、任意の時刻を記憶す
る時刻レジスタ12と、タイマレジスタ11の時刻と時
刻レジスタ12に記憶される時刻とを比較する時刻比較
器13と、時刻比較器13の比較結果によって実行状況
が変化する命令を実行する命令実行機構10とを含む。
命令実行機構10は、時刻比較器13の比較結果によっ
て実行状況が変化する命令を実行するので、所定の時刻
に所定の動作を正確に行なうことが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムに従っ
て動作するマイクロプロセッサに関し、特に、プログラ
ムによって規定された所定の動作を定められた時刻に正
確に実行する実時間プロセッサに関する。
【0002】
【従来の技術】近年、マイクロプロセッサ技術の発達に
伴い、従来では専用回路で行なっていたハードウェアの
制御にも、マイクロプロセッサが用いられるようになっ
てきている。ハードウェアの制御を正確に行なうために
は、マイクロプロセッサが適切な制御信号を適切な時刻
に出力するように動作タイミングを調整することが重要
である。この動作タイミングは、所定の時刻よりも遅れ
てはならないだけでなく、所定の時刻より早くなること
も許されない。
【0003】マイクロプロセッサによる動作タイミング
の調整を行なうために、プログラムにNOP(No Oper
ation)命令や空ループを挿入して、プログラムの実行
を必要な時間だけ遅延させることが広く行なわれてい
る。しかし、マイクロプロセッサがプログラムの実行に
要する時間は、一般に、処理データの値、メモリの動作
時間(アクセス速度)またはクロック信号の周波数等の
種々の要因によって複雑に変化する。そのため、プログ
ラムがある程度以上複雑になると、適切な遅延時間をプ
ログラム作成時に算出することが非常に困難となる。
【0004】また、信頼性の高いシステムを実現するた
めには、所定の時刻に所定の動作が行なえないような異
常が発生した場合に、これを検出して適切な回復処理を
行なえるような機構を備えることが望ましい。
【0005】この問題を解決するための従来技術の1つ
として、特開平5−233277号公報に開示されたマ
イクロプロセッサがある。図40は、特開平5−233
277号公報に開示されたマイクロプロセッサの構成を
示すブロック図である。このマイクロプロセッサ901
は、命令コードを実行する処理ユニット902と、命令
コード間の時間を調整する時間調整手段903と、外部
バスに接続されるバッファ908とを含む。また、時間
調整手段903は、命令コード間の時間を計測する時間
計測手段904と、特定時間を設定する特定時間設定手
段905と、特定時間設定手段905に設定された時間
と時間計測手段904によって計測された時間との差分
を演算する差分演算手段906と、差分演算手段906
によって得られた差分に相当する時間だけアイドル状態
を挿入するアイドル状態挿入手段907とを含む。
【0006】処理ユニット902が第1の命令(測定開
始を示す命令)を実行すると、時間計測手段904の値
が“0”に初期化され、一定時間周期でその値がインク
リメントされる。ここで、第1の命令が実行された時刻
をt901とする。
【0007】次に、処理ユニット902が第2の命令
(測定終了を示す命令)を実行する。ここで、第2の命
令が実行された時刻をt902とする。差分演算手段9
06は、特定時間設定手段905に設定された値と、時
間計測手段904によって計測された時間(=t902
−t901)との差分を計算し、その値をアイドル状態
挿入手段907へ出力する。アイドル状態挿入手段90
7は、差分演算手段906によって算出された差分に相
当する時間が経過するまで処理ユニット902の動作を
停止させる。ここで、処理ユニット902が動作を再開
する時刻をt903とする。
【0008】以上の動作によって、t901からt90
2までの経過時間が長くなれば差分演算手段906によ
って算出される差分が小さくなり、処理ユニット902
の停止時間が短くなる。一方、t901からt902ま
での経過時間が短くなれば差分演算手段906によって
算出される差分が大きくなり、処理ユニット902の停
止時間が長くなる。このように、処理ユニット902の
停止時間は、t901からt902までの経過時間の変
動を補償するように変化する。そのため、t901から
t903までの経過時間は、特定時間設定手段905に
設定された値だけで決まるようになり、種々の要因によ
って複雑に変化する処理ユニット902の実行速度に左
右されることなく、t901からt903までの経過時
間は一定に保たれることになる。
【0009】
【発明が解決しようとする課題】しかし、上述した特開
平5−233277号公報に開示されたマイクロプロセ
ッサにおいては、2命令間の経過時間の調整のみしか考
慮されていない。そのため、プログラムの命令によって
時間計測手段904の値を変化させる方法として、処理
ユニット902が測定開始を指示する命令を実行したと
きに時間計測手段904の値を“0”に初期化する方法
しか開示されていない。したがって、このマイクロプロ
セッサは、測定開始を指示する命令の実行を挟んだ任意
の命令間の経過時間を調整することができない。
【0010】また、時間計測手段904によって計測で
きる時間は有限であるため、時間計測手段904がオー
バフローを起こさないようにするためには、処理ユニッ
ト902がある制限時間内に必ず1回以上、測定開始を
指示する命令を実行しなければならない。したがって、
このマイクロプロセッサは、ある命令を一定時間間隔で
無限に繰り返し実行するような用途には適していないと
いう問題点があった。
【0011】さらには、差分演算手段906によって算
出された差分が負の値となった場合、すなわちt901
からt902までの経過時間が予想外に長くなってt9
03を超えた場合が考慮されていない。したがって、差
分演算手段906によって算出された差分が負の値とな
った場合には、このマイクロプロセッサは回復処理が行
なえないという問題点もあった。
【0012】本発明は、上記問題点を解決するためにな
されたものであり、第1の目的は、種々の要因に影響を
受けずに所定の時刻に所定の動作が行なえる実時間プロ
セッサを提供することである。
【0013】第2の目的は、時刻を計測するタイマがオ
ーバフローを起こさずに処理を行なえる実時間プロセッ
サを提供することである。
【0014】第3の目的は、所定の時刻に所定の動作が
行なえなかった場合に、これを検出して回復処理を行な
うことが可能な実時間プロセッサを提供することであ
る。
【0015】第4の目的は、種々の要因に影響を受けず
に所定の時刻に所定の動作が行なえる命令実行方法を提
供することである。
【0016】第5の目的は、時刻を計測するタイマがオ
ーバフローを起こさずに処理を行なえる命令実行方法を
提供することである。
【0017】
【課題を解決するための手段】請求項1に記載の実時間
プロセッサは、所定間隔で時刻を更新するタイマレジス
タと、任意の時刻を記憶する時刻レジスタと、タイマレ
ジスタの時刻と時刻レジスタに記憶される時刻とを比較
する時刻比較器と、時刻比較器の比較結果によって実行
状況が変化する命令を実行する命令実行機構とを含む。
【0018】命令実行機構は、時刻比較器の比較結果に
よって実行状況が変化する命令を実行するので、所定の
時刻に所定の動作を正確に行なうことが可能となる。
【0019】請求項2に記載の実時間プロセッサは、請
求項1記載の実時間プロセッサであって、実時間プロセ
ッサはさらにタイマレジスタの時刻から所定値を減算し
てタイマレジスタに設定し、時刻レジスタに記憶される
時刻から所定値を減算して時刻レジスタに設定するため
の手段を含む。
【0020】タイマレジスタの時刻から所定値を減算し
てタイマレジスタに設定し、時刻レジスタに記憶される
時刻から所定値を減算して時刻レジスタに設定するの
で、タイマレジスタがオーバフローを起こすことを防止
することが可能となる。
【0021】請求項3に記載の実時間プロセッサは、請
求項1または2記載の実時間プロセッサであって、時刻
比較器はタイマレジスタの時刻と時刻レジスタに記憶さ
れる時刻とが一致していることを検出するための手段
と、タイマレジスタの時刻が時刻レジスタに記憶される
時刻よりも大きいことを検出するための手段とを含む。
【0022】時刻比較器は、タイマレジスタの時刻と時
刻レジスタに記憶される時刻とが一致していることを検
出するとともに、タイマレジスタの時刻が時刻レジスタ
に記憶される時刻よりも大きいことを検出するので、ス
ケジューリング成立およびスケジューリング違反を判別
することが可能となり、その状態に応じて命令を実行す
ることが可能となる。
【0023】請求項4に記載の実時間プロセッサは、請
求項1〜3のいずれかに記載の実時間プロセッサであっ
て、命令実行機構は時刻比較器の比較結果に依存して分
岐するか否かが変化する時刻依存命令を実行する手段を
含む。
【0024】命令実行機構は、時刻比較器の比較結果に
依存して分岐するか否かが変化する時刻依存命令を実行
するので、スケジューリングの状態によって異なる処理
を行なうことが可能となる。
【0025】請求項5に記載の実時間プロセッサは、請
求項1〜4のいずれかに記載の実時間プロセッサであっ
て、命令実行機構は時刻比較器の比較結果に依存して命
令実行を遅延する時刻依存命令を実行する手段を含む。
【0026】命令実行機構は、時刻比較器の比較結果に
依存して命令実行を遅延する時刻依存命令を実行するの
で、所定の時刻まで処理を遅延させることが可能とな
る。
【0027】請求項6に記載の実時間プロセッサは、請
求項5記載の実時間プロセッサであって、時刻依存命令
は時刻比較器の比較結果に依存して実行が一時的に遅延
されるメモリ参照命令である。
【0028】時刻依存命令は、時刻比較器の比較結果に
依存して実行が一時的に遅延されるメモリ参照命令であ
るので、所定の時刻までメモリの参照を遅延させること
が可能となる。
【0029】請求項7に記載の実時間プロセッサは、請
求項5記載の実時間プロセッサであって、時刻依存命令
は時刻比較器の比較結果に依存して実行が一時的に遅延
される入出力ポート参照命令である。
【0030】時刻依存命令は、時刻比較器の比較結果に
依存して実行が一時的に遅延される入出力ポート参照命
令であるので、所定の時刻まで入出力ポートの参照を遅
延させることが可能となる。
【0031】請求項8に記載の実時間プロセッサは、請
求項5記載の実時間プロセッサであって、時刻依存命令
は次に実行される命令が時刻比較器の比較結果に依存し
て一時的に実行が遅延される命令であることを指定する
修飾命令である。
【0032】時刻依存命令は、次に実行される命令が時
刻比較器の比較結果に依存して一時的に実行が遅延され
る命令であることを指定する修飾命令であるので、所定
の時刻まで次に実行される命令の実行を遅延させること
が可能となる。
【0033】請求項9に記載の実時間プロセッサは、請
求項4〜8のいずれかに記載の実時間プロセッサであっ
て、実時間プロセッサはさらに命令実行機構によって参
照され、命令実行機構によって時刻依存命令が実行され
た時刻を保存する実行時刻レジスタを含む。
【0034】実時間プロセッサは、命令実行機構によっ
て時刻依存命令が実行された時刻を保存する実行時刻レ
ジスタを含むので、時刻依存命令が実行された状況をプ
ログラムによって詳細に把握することが可能となる。
【0035】請求項10に記載の実時間プロセッサは、
請求項4〜8のいずれかに記載の実時間プロセッサであ
って、実時間プロセッサはさらに命令実行機構によって
時刻依存命令が実行された時点における前記時刻比較器
の比較結果を保存するフラグレジスタを含み、命令実行
機構はさらにフラグレジスタの値によって実行状況が変
化する実行時刻依存命令を実行するための手段を含む。
【0036】命令実行機構は、フラグレジスタの値によ
って実行状況が変化する実行時刻依存命令を実行するの
で、保存されたスケジューリング状況に応じた処理を行
なうことが可能となる。
【0037】請求項11に記載の実時間プロセッサは、
請求項10記載の実時間プロセッサであって、実行時刻
依存命令はフラグレジスタの値に依存して分岐するか否
かが変化する条件分岐命令である。
【0038】実行時刻依存命令は、フラグレジスタの値
に依存して分岐するか否かが変化する条件分岐命令であ
るので、保存されたスケジューリングの状況によって異
なる処理を行なうことが可能となる。
【0039】請求項12に記載の実時間プロセッサは、
請求項1記載の実時間プロセッサであって、実時間プロ
セッサはさらにタイマレジスタの時刻から時刻レジスタ
に記憶される時刻を減算し、減算結果をタイマレジスタ
に設定し、時刻レジスタに所定時刻を設定するための手
段を含む。
【0040】実時間プロセッサは、タイマレジスタの時
刻から時刻レジスタに記憶される時刻を減算し、減算結
果をタイマレジスタに設定し、時刻レジスタに所定時刻
を設定するので、タイマレジスタのオーバフローを防止
することが可能となる。また、タイマレジスタの減算処
理と時刻レジスタの設定処理とを同時に行なえるので、
タイマレジスタと時刻レジスタとの関係が不正となる期
間が発生することを防止することが可能となる。
【0041】請求項13に記載の実時間プロセッサは、
請求項1記載の実時間プロセッサであって、実時間プロ
セッサはさらに時刻レジスタに記憶される時刻からタイ
マレジスタの時刻を減算し、減算結果を時刻レジスタに
設定し、タイマレジスタに所定時刻を設定するための手
段を含む。
【0042】実時間プロセッサはさらに時刻レジスタに
記憶される時刻からタイマレジスタの時刻を減算し、減
算結果を時刻レジスタに設定し、タイマレジスタに所定
時刻を設定するので、タイマレジスタのオーバフローを
防止することが可能となる。また、時刻レジスタの減算
処理とタイマレジスタの設定処理とを同時に行なえるの
で、タイマレジスタと時刻レジスタとの関係が不正とな
る期間が発生することを防止することが可能となる。
【0043】請求項14に記載の実時間プロセッサは、
請求項1記載の実時間プロセッサであって、命令実行機
構は汎用レジスタと、タイマレジスタ、時刻レジスタお
よび汎用レジスタに保持される値を任意の組み合わせで
演算し、演算結果をタイマレジスタ、時刻レジスタおよ
び汎用レジスタの中のいずれかに記憶させる演算回路と
を含む。
【0044】演算回路は、各レジスタに保持される値を
任意の組み合わせで演算し、演算結果を任意のレジスタ
に記憶させるので、実時間プロセッサにおける演算回路
を削減することが可能となる。
【0045】請求項15に記載の実時間プロセッサは、
請求項1記載の実時間プロセッサであって、実時間プロ
セッサはさらに命令実行機構に入力されるクロック周波
数を制御するクロック制御器を含む。
【0046】クロック制御器は、命令実行機構に入力さ
れるクロック周波数を制御するので、実時間プロセッサ
による命令の実行に応じてクロック周波数を変更するこ
とが可能となる。
【0047】請求項16に記載の実時間プロセッサは、
請求項15記載の実時間プロセッサであって、クロック
制御器は時刻比較器の比較結果に依存して命令実行を遅
延する時刻依存命令が命令実行機構によって実行されて
いる場合は、クロックの出力を停止するための手段を含
む。
【0048】クロック制御器は、時刻比較器の比較結果
に依存して命令実行を遅延する時刻依存命令が命令実行
機構によって実行されている場合は、クロックの出力を
停止するので、消費電力を削減することが可能となる。
【0049】請求項17に記載の実時間プロセッサは、
請求項1記載の実時間プロセッサであって、命令実行機
構は外部に接続される入出力装置から入力する値を汎用
レジスタとして参照する命令を実行するための手段を含
む。
【0050】命令実行機構は、外部に接続される入出力
装置から入力する値を汎用レジスタとして参照する命令
を実行するので、外部バスの利用状況等の外部要因に影
響を受けずに命令を実行することが可能となる。
【0051】請求項18に記載の実時間プロセッサは、
請求項1または17に記載の実時間プロセッサであっ
て、命令実行機構は汎用レジスタに値を書き込むことに
より、外部に接続される入出力装置へ値を出力する命令
を実行するための手段を含む。
【0052】命令実行機構は、汎用レジスタに値を書き
込むことにより、外部に接続される入出力装置へ値を出
力する命令を実行するので、外部バスの利用状況等の外
部要因に影響を受けずに命令を実行することが可能とな
る。
【0053】請求項19に記載の命令実行方法は、プロ
セッサにおける命令実行方法であって、所定間隔で時刻
を更新するステップと、任意の時刻を記憶するステップ
と、更新された時刻と前記記憶される任意の時刻とを比
較するステップと、比較結果によって実行状況が変化す
る命令を実行するステップとを含む。
【0054】比較結果によって実行状況が変化する命令
を実行するので、所定の時刻に所定の動作を正確に行な
うことが可能となる。
【0055】請求項20に記載の命令実行方法は、請求
項19記載の命令実行方法であって、命令実行方法はさ
らに更新された時刻から所定値を減算するステップと、
記憶される任意の時刻から所定値を減算するステップと
を含む。
【0056】更新された時刻から所定値を減算し、記憶
される任意の時刻から所定値を減算するので、オーバフ
ローを起こすことを防止することが可能となる。
【0057】
【発明の実施の形態】最初に、本発明の実時間プロセッ
サにおけるタイマの動作について説明する。
【0058】以下の説明では、格納値の大きさに制限の
ない理想的なタイマレジスタを想定し、この値を論理タ
イマ値と表記する。また、実装上の制限を考慮に入れた
現実的なタイマレジスタの値を実タイマ値と表記する。
簡単のため、システム起動時の論理タイマ値は“0”と
仮定する。同様に、理想的な時刻レジスタの値を論理時
刻値、現実的な時刻レジスタの値を実時刻値と表記す
る。
【0059】論理タイマ値は単位時間当たりの増加率が
一定で増加し、これ以外の原因による変化は起こらな
い。図34は、論理タイマ値の変化を示すグラフであ
る。このグラフから明らかなように、1つの論理タイマ
値が与えられれば対応する時刻は一意に定まる。
【0060】論理時刻値もまた時刻を指定する。論理時
刻値が指定する時刻は、同じ値の論値タイマ値が指定す
る時刻と同じである。したがって、1つの論理時刻値が
与えられれば対応する時刻は一意に定まる。さらに、2
つの論理タイマ値または論理時刻値が与えられれば、対
応する2時刻間の前後関係および時間間隔もそれぞれ一
意に定まる。
【0061】以下、論理タイマ値が論理時刻値よりも小
さい状態をスケジューリング待ち状態、論理タイマ値と
論理時刻値とが同じ状態をスケジューリング成立状態、
論理タイマ値が論理時刻値よりも大きい状態をスケジュ
ーリング違反状態と呼ぶことにする。図35は、論理時
刻値を一定に保った場合の論理タイマ値と論理時刻値と
の関係を示すグラフである。この図から明らかなよう
に、スケジューリング待ち、スケジューリング成立、ス
ケジューリング違反の各状態は、それぞれ論理時刻値が
未来の時刻、現在の時刻、および過去の時刻を指定して
いる状態と表現することもできる。したがって、論理時
刻値を更新しない限り、スケジューリングの状態は、ス
ケジューリング待ち→スケジューリング成立、またはス
ケジューリング成立→スケジューリング違反の方向にの
み遷移し、スケジューリング違反から他の状態に遷移す
ることはない。
【0062】回路規模は有限であるため、理想的なタイ
マレジスタや理想的な時刻レジスタを実装することはで
きない。以下では、現実的なタイマレジスタや現実的な
時刻レジスタを用いて、理想的なタイマレジスタや理想
的な時刻レジスタに近い動作を実現する方法を説明す
る。
【0063】図36は、論理時刻値を一定に保った場合
の論理タイマ値、論理時刻値、実タイマ値、および実時
刻値の関係を示すグラフである。実タイマ上限値は現実
的なタイマレジスタの実装上の制限により定まる値であ
り、実タイマ値および実時刻値は“0”以上実タイマ上
限値未満の範囲でのみ変化できるとする。
【0064】論理タイマ値と同様に、実タイマ値は単位
時間当たりの増加率が一定で増加する。ただし、時刻t
1および時刻t2において、それぞれs1、s2だけ減
算されている。その結果、論理タイマ値が実タイマ上限
値以上となった時刻t3以降も、実タイマ値は実タイマ
上限値未満に収まっている。以下、この減算を補正、減
算する値を補正値と記述する。論理時刻値が一定であれ
ば、実時刻値も一定である。ただし、時刻t1および時
刻t2において、実タイマ値と同様にそれぞれs1、s
2だけ補正されている。
【0065】実タイマ値と実時刻値とが、同時に同じ補
正値で補正される結果、実タイマ値と実時刻値との大小
関係は、論理タイマ値と論理時刻値との大小関係と完全
に一致する。したがって、スケジューリング待ち、スケ
ジューリング成立、スケジューリング違反の各状態は、
それぞれ実タイマ値が実時刻値よりも小さい、実タイマ
値と実時刻値とが同じ、実タイマ値が実時刻値よりも大
きい状態であるということもできる。また、実タイマ値
と実時刻値との差分より、ある時刻からスケジューリン
グ成立までの時間、またはスケジューリング成立からの
経過時間を求めることができる。
【0066】補正値は、以下のようにして定める。すな
わち、スケジューリング待ち状態、またはスケジューリ
ング成立状態であれば、実タイマ値以下の値を補正値と
する。また、スケジューリング成立状態、またはスケジ
ューリング違反状態であれば、実時刻値以下の値を補正
値とする。また、補正は実タイマ値が実タイマ上限値未
満である期間、すなわち現実的なタイマレジスタがオー
バフローを起こす以前に行なわなければならない。
【0067】実タイマ値を論理タイマ値に変換するに
は、その時点までの補正値の合計を実タイマ値に加算す
ればよい。たとえば、図36においてスケジューリング
成立時の論理タイマ値を得るには、実タイマ値にs1を
加算すればよい。実時刻値から論理時刻値への変換も同
様に行なうことができる。一般に、実タイマ上限値を大
きくすることはハードウェアの複雑化を招き、コストの
増加にもつながる。これに比べて、実タイマ値から論理
タイマ値への変換はソフトウェアで実現できるため、コ
ストの増加は小さい。
【0068】現実的なタイマレジスタの大きさが32ビ
ットであり、5ナノ秒ごとに1ずつインクリメントされ
るとすると、実タイマ上限値は約4.2×109とな
り、最長約21秒でオーバフローが発生する。一般的
に、この期間内に1回以上の補正を行なうことは容易で
ある。同じ条件で、論理タイマレジスタの値を64ビッ
ト精度で計算すると、約2900年でオーバフローが発
生する。実用上十分な時間である。
【0069】同様に、現実的なタイマレジスタの大きさ
が16ビットであり、100マイクロ秒ごとに1ずつイ
ンクリメントされるとすると、実タイマ上限値は65,
536となり、最長約6.6秒でオーバフローが発生す
る。また、論理タイマレジスタの値を32ビット精度で
計算すると、約5日でオーバフローが発生する。応用に
よっては、実用上十分な時間である。
【0070】図37〜図39は、本発明のタイマの使用
例におけるタイマ値と時刻値との変化を示すグラフであ
る。タイマは何らかのイベントを発生させるために用い
られ、そのイベントはスケジューリング成立状態になっ
た時刻に発生させられるものとする。簡単のため、グラ
フには論理タイマ値と論理時刻値とを示している。
【0071】図37は、一定時間間隔でイベントを起こ
す場合のグラフである。この例では、論理時刻値を更新
する際、それまでの設定値に一定増加量s11を加えて
いる。その結果、一定時間間隔の時刻t11〜t16に
おいてスケジューリング成立状態になり、イベントは一
定時間間隔で発生することになる。
【0072】図38は、一定増加率で長くなる時間間隔
でイベントを起こす場合のグラフである。この例では、
論理時刻値を更新する際、それまでの設定値に一定増加
率で増加する増加量s2n(n=1,2,3…)を加え
ている。ここで、s2(n+1)=s2n+d(dは定
数)である。その結果、一定増加率で長くなる時間間隔
t21〜t26においてスケジューリング成立状態にな
り、イベントは一定増加率で長くなる時間間隔で発生す
ることになる。
【0073】図39は、あるイベントが発生してから一
定時間経過後に別のイベントを起こす場合のグラフであ
る。この例では、論理時刻値を更新する際、基準となる
イベント発生時の論理タイマ値に一定増加率s31を加
えた値を設定している。その結果、基準となるイベント
の発生時刻t31、t33、t35から一定時間経過後
の時刻t32、t34、t36に別のイベントが発生す
ることになる。
【0074】以下の説明においては、特に必要がない限
り、現実的なタイマレジスタを単にタイマレジスタ、現
実的な時刻レジスタを単に時刻レジスタと記述する。
【0075】(実施の形態1)図1は、実施の形態1に
おける実時間プロセッサを利用したシステムの一例を示
すブロック図である。このシステムは、実時間プロセッ
サ1と、実時間プロセッサ1が実行するプログラムおよ
びデータが格納されるメモリ装置2と、外部との間でデ
ータを入出力する入出力装置3とを含む。実時間プロセ
ッサ1、メモリ装置2および入出力装置3は、メモリア
ドレスバス(MAB)およびメモリデータバス(MD
B)に接続されている。なお、実時間プロセッサ1は、
入出力装置3に入力されるタイミング信号を生成して、
入出力装置3を制御するものとする。
【0076】実時間プロセッサ1が入出力装置3を制御
する方法として、入出力装置3を制御する制御レジスタ
をメモリ空間に割り当てる方法、I/O(Input/Outpu
t)空間に割り当てる方法または特定の内部レジスタに
割り当てる方法等が考えられる。以下、制御レジスタを
メモリ空間に割り当てる方法を採用したシステムについ
て説明するが、本発明はこれに限定されるものではな
く、いずれの方法を採用するシステムにおいても適用で
きる。
【0077】図2は、本発明の実施の形態1における実
時間プロセッサの概略構成を示すブロック図である。こ
の実時間プロセッサは、メモリ装置2に格納されたプロ
グラムを実行する命令実行機構10と、タイマレジスタ
11と、時刻レジスタ12と、タイマレジスタ11の値
と時刻レジスタ12の値とを比較する時刻比較器13
と、タイマレジスタ11に入力される値を選択するセレ
クタ14と、タイマレジスタ11の値から所定の値を減
算する減算器15と、タイマレジスタ11の値をインク
リメントするインクリメンタ16とを含む。
【0078】タイマレジスタ11のデータ入力端子には
TRD信号が、クロック入力端子にはTRCK信号が、
出力端子にはTRQ信号がそれぞれ接続されている。T
RDの値は、TRCK信号の立ち上がりエッジでタイマ
レジスタ11に取り込まれ、TRQ信号として出力され
る。
【0079】時刻レジスタ12のデータ入力端子にはU
RD信号が、クロック入力端子にはURCK信号が、出
力端子にはURQ信号がそれぞれ接続されている。UR
Dの値は、URCK信号の立ち上がりエッジで時刻レジ
スタ12に取り込まれ、URQ信号として出力される。
【0080】時刻比較器13のA入力端子にはTRQ信
号が、B入力端子にはURQ信号が、一方の比較結果出
力端子(A=B)にはTEQU信号が、他方の比較結果
出力端子(A>B)にはTGTU信号がそれぞれ接続さ
れている。時刻比較器13は、2つの入力信号TRQと
URQとの値を比較し、TRQの値がURQの値と同じ
であればTEQU信号にハイレベル(以下、Hレベルと
記す)を出力し、異なればTEQU信号にロウレベル
(以下、Lレベルと記す)を出力する。また、TRQの
値がURQの値より大きければTGTU信号にHレベル
を出力し、TRQの値がURQの値以下であればTGT
U信号にLレベルを出力する。
【0081】セレクタ14の一方の入力端子にはITR
D信号が、他方の入力端子にはMTRD信号が、一方の
選択信号入力端子にはTRRST信号が、他方の選択信
号入力端子にはTRSUB信号がそれぞれ接続されてい
る。TRRST信号がHレベルであれば、他の入力信号
に関係なくTRD信号に“1”が出力される。また、T
RRST信号がLレベルであり、TRSUB信号がLレ
ベルであれば、ITRDの値がTRD信号として出力さ
れる。また、TRRST信号がLレベルであり、TRS
UB信号がHレベルであれば、MTRDの値がTRD信
号として出力される。TRRST信号は、タイマレジス
タ11をリセットするための信号であるが、TRDの値
がタイマレジスタ11に取り込まれるタイミングがTR
CK信号に同期しているために、TRQの値がTRCK
信号の1クロック分遅延することを考慮して、TRRS
T信号がHレベルの場合にセレクタ14が出力する値を
“1”としている。
【0082】減算器15の一方の入力端子にはITRD
信号が、他方の入力端子にはMTRSD信号が、出力端
子にはMTRD信号がそれぞれ接続されている。減算器
15は、ITRDの値からMTRSDの値を減算し、そ
の結果をMTRD信号として出力する。この減算器15
は、タイマレジスタ11の値から所定の値MTRSDを
減算するものであるが、減算結果がタイマレジスタ11
に取り込まれるタイミングがTRCK信号に同期してい
るために、TRQの値がTRCK信号の1クロック分遅
延することを考慮して、TRQ信号ではなくITRD信
号が減算器15の一方の入力端子に接続されている。
【0083】インクリメンタ16の入力端子にはTRQ
信号が、出力端子にはITRD信号がそれぞれ接続され
ている。インクリメンタ16は、TRQの値に“1”を
加算した値をITRD信号として出力する。
【0084】命令実行機構10のメモリアドレス出力端
子にはMAB信号が、メモリデータ入出力端子にはMD
B信号が、一方のデータ出力端子にはMTRSD信号
が、他方のデータ出力端子にはURD信号が、タイマレ
ジスタ初期化出力端子にはTRRST信号が、タイマレ
ジスタ減算出力端子にはTRSUB信号が、タイマレジ
スタタイミング信号出力端子にはTRCK信号が、時刻
レジスタタイミング信号出力端子にはURCK信号が、
一方の時刻比較結果入力端子にはTEQU信号が、他方
の時刻比較結果入力端子にはTGTU信号がそれぞれ接
続されている。命令実行機構10は、命令やデータをメ
モリ装置2または入出力装置3との間で入出力するため
に、メモリアドレスをMAB信号として出力し、読み出
しデータまたは書き込みデータをMDB信号によって入
出力する。命令実行機構10がMAB信号およびMDB
信号を用いてメモリアクセスまたはI/Oアクセスをす
るためには、図示しない複数の制御信号線が必要である
が、これらの信号は本発明の本質と直接関係しないので
省略している。なお、MAB信号およびMDB信号以外
の信号の詳細については後述する。
【0085】命令実行機構10は、一般的なマイクロプ
ロセッサが備える命令セットに加えて、追加命令群を解
釈し実行する機能を有している。以下の説明において
は、ARM(Advanced RISC Machines)社によって開
発されたRISC(Reduced Instruction Set Compu
ter)型プロセッサであるARM−7が備える命令セッ
トを基本とし、この命令セットにいくつかの追加命令を
付加したプロセッサを想定して説明する。以下の説明で
用いるプログラムリストの表記は、ARM社のアセンブ
ラフォーマットに従うが、本発明のアセンブラフォーマ
ットはこれらに限られるものではない。また、追加命令
を付加することなく、既存の命令セット群で本発明の特
有の構成であるタイマレジスタ11および時刻レジスタ
12等を制御する方法も考えられる。たとえば、特定の
メモリアドレスにデータを書き込むことによって、時刻
レジスタ12に値を設定するような構成にしても良い。
【0086】図3は、本実施の形態における命令実行機
構10に付加された追加命令の一覧を示す図である。な
お、ETRはタイマレジスタ11を示しており、EUR
は時刻レジスタ12を示している。それぞれの命令の動
作は図3に説明されているので、ここでの詳細な説明は
繰り返さない。
【0087】図4は、図2に示す命令実行機構10の概
略構成を示すブロック図である。この命令実行機構10
は、メモリ装置2から出力された命令を取り込む命令取
り込みステージ70と、命令取り込みステージ70によ
って取り込まれた命令をデコードして解釈する命令解釈
ステージ71と、命令解釈ステージ71によって解釈さ
れた内容に従って命令を実行する命令実行ステージ72
と、各ステージ70〜72によるパイプライン処理を遅
延させる実行遅延回路73とを含む。なお、図4は、W
AIT命令、BTHIU命令、BTEQU命令およびB
TLOU命令を処理する際の命令実行機構10の論理的
動作を説明するための図であり、回路の遅延等の実装上
の各種条件を考慮したものではない。また、図4に示す
命令実行機構10は、3つのステージ70〜72によっ
てパイプライン処理を行なっているが、本発明はパイプ
ラインの構成に依存するものではなく、ステージ数や演
算器の数等はシステムの要求に応じて任意に設定するこ
とが可能である。
【0088】命令実行ステージ72は、命令解釈ステー
ジ71から出力されるBADRの値およびインクリメン
タ76の値のいずれかを選択して出力するセレクタ74
と、次に命令パイプラインに取り込む命令の格納アドレ
ス(メモリ装置2における格納アドレス)を記憶するプ
ログラムカウンタ75と、プログラムカウンタ75が記
憶する値をインクリメントするインクリメンタ76と、
論理ゲート77〜81とを含む。セレクタ74は、PC
SEL信号がLレベルであればインクリメンタ76の値
を出力し、PCSEL信号がHレベルであれば命令解釈
ステージ71が出力するBADRの値を出力する。
【0089】命令解釈ステージ71から出力されるID
WAIT信号、IDBTHIU信号、IDBTEQU信
号、およびIDBTLOU信号は、それぞれWAIT命
令、BTHIU命令、BTEQU命令およびBTLOU
命令が命令解釈ステージ71に到達したときにHレベル
となる信号である。それ以外のときには、それぞれの信
号はLレベルとなる。また、BTAKEN信号は、無条
件分岐命令および分岐条件が成立した条件分岐命令が命
令解釈ステージ71に到達したときにHレベルとなる信
号である。また、BADR信号は、命令取り込みステー
ジ70が無条件分岐命令または条件分岐命令を取り込む
際に、一緒に取り込んだ分岐先アドレスを出力する信号
である。
【0090】実行遅延回路73から出力されるMCK信
号は、命令パイプライン(各ステージ70〜72)を駆
動するとともに、プログラムカウンタ75の値を更新す
るためのクロック信号である。
【0091】TGTU信号とTEQU信号とがともにL
レベルである状態、すなわちスケジューリング待ち状態
のときにWAIT命令が命令解釈ステージ71に到達す
ると、実行遅延回路73のOR回路82の出力がLレベ
ルとなり、AND回路83がTRCK信号をマスクす
る。その結果、命令パイプラインへのMCK信号の供給
が停止され、スケジューリング待ちの期間WAIT命令
の実行が遅延される。
【0092】また、TGTU信号とTEQU信号とがと
もにLレベルである状態、すなわちスケジューリング待
ち状態のときにBTLOU命令が命令解釈ステージ71
に到達すると、IDBTLOU信号がHレベルとなるた
めAND回路79がHレベルとなり、PCSEL信号が
Hレベルとなってプログラムカウンタ75に分岐先アド
レスが入力され、MCK信号の立ち上がりエッジでプロ
グラムカウンタ75に取り込まれる。その結果、スケジ
ューリング待ち状態のときにBTLOU命令が実行され
ると分岐が行われる。
【0093】また、TEQU信号がHレベルである状
態、すなわちスケジューリング成立状態でBTEQU命
令が命令解釈ステージ71に到達すると、IDBTEQ
U信号がHレベルとなりAND回路78がHレベルとな
り、PCSEL信号がHレベルとなってプログラムカウ
ンタ75に分岐先アドレスが入力され、MCK信号の立
ち上がりエッジでプログラムカウンタ75に取り込まれ
る。その結果、スケジューリング成立状態のときにBT
EQU命令が実行されると分岐が行われる。
【0094】また、TGTU信号がHレベルである状
態、すなわちスケジューリング違反状態でBTHIU命
令が命令解釈ステージ71に到達すると、IDBTHI
U信号がHレベルとなりAND回路77がHレベルとな
り、PCSEL信号がHレベルとなってプログラムカウ
ンタ75に分岐先アドレスが入力され、MCK信号の立
ち上がりエッジでプログラムカウンタ75に取り込まれ
る。その結果、スケジューリング違反状態のときにBT
HIU命令が実行されると分岐が行われる。
【0095】以上説明した構成によって、WAIT命
令、BTHIU命令、BTEQU命令およびBTLOU
命令を処理する命令実行機構10を実現することができ
る。なお、WLD命令、WSTR命令、WINR命令お
よびWOUTR命令についても、WAIT命令と同様の
方法によって実行を遅延させることが可能である。ま
た、WPREFIX命令が命令実行ステージ72にある
場合に、IDWAIT信号がHレベルとなるように命令
実行機構を構成すれば、修飾された命令の実行を遅延さ
せることができる。
【0096】図5は、図3に示す追加命令を用いたプロ
グラムの一例を示す図である。このプログラムは、出力
ポートに所定の時間(t3〜t5の時間)Hレベルを出
力して入出力装置3を制御するものである。なお、*を
付した行番号の命令は、追加命令を示している。また、
図6は命令実行機構10が図5に示すプログラムを実行
した場合の動作タイミングを示すタイミングチャートで
ある。
【0097】まず、出力ポートにアクセスするための準
備を行なう(行1〜行3)。すなわち、レジスタR0に
出力ポートアドレスportが設定され(行1)、レジ
スタR1に出力ポートに出力する値on(オンにする
値)が設定され(行2)、レジスタR2に出力ポートに
出力する値off(オフにする値)が設定される(行
3)。
【0098】次に、タイマレジスタETRが“1”に初
期化される(行4、この時の時刻をt1とする)。命令
実行機構10がこの命令を実行することによって、図6
に示すようにTRRST信号にHレベルが出力され、セ
レクタ14によってTRD信号に“1”が出力される。
その結果、t1のタイミングでタイマレジスタ11が初
期化され、時間の計測が開始される。このタイマレジス
タの初期化は、システムの初期化の際に一度だけ行なえ
ば良い。なお、タイマレジスタのオーバフローを防止す
る処理については後述する。
【0099】次に、時刻レジスタEURに“6”が設定
される(行5、この時の時刻をt2とする)。図6に示
すように、t2のタイミングでURDの値“6”が時刻
レジスタ12に設定される。行4および行5において、
タイマレジスタETRおよび時刻レジスタEURに値が
設定されると、時刻比較器13から出力されるTEQU
信号およびTGTU信号がLレベルに確定する。
【0100】次に、WAIT命令が実行される(行
6)。命令解釈ステージ71にこのWAIT命令が到達
すると、プログラムカウンタ75の更新が停止されて、
スケジューリング待ち状態の間、すなわち、タイマレジ
スタ11の値が“6”となるまで命令パイプラインの処
理が停止される。タイマレジスタ11の値が“6”にな
ると(この時の時刻をt3とする)、TEQU信号にH
レベルが出力され、プログラムカウンタ75の更新なら
びに命令の取り込み、解釈および実行が再開されて、出
力ポートがオン(Hレベル)になる(行7)。そして、
時刻レジスタ12に“13”が設定され(行8、この時
の時刻をt4とする)、再びWAIT命令が実行される
(行9)。
【0101】タイマレジスタ11の値が“13”となる
と(この時の時刻をt5とする)、プログラムカウンタ
75の更新が再開されて、出力ポートをオフ(Lレベ
ル)にする(行10)。時間t3:5(以下、tmから
tnまでの時間をtm:nと表記する)は、タイマレジ
スタ11が7カウントする時間に正確に一致しており、
このカウント数は時刻レジスタ11に設定された値の差
分(13−6)によって決定される。時刻t3から行7
の命令によって実際に出力ポートがオンされるまでの遅
れ時間と、時刻t5から行10の命令によって実際に出
力ポートがオフされるまでの遅れ時間とが同じであれ
ば、出力ポートがオンとなっている時間、すなわちパル
スの長さはタイマレジスタが7カウントを進める時間に
正確に一致する(図6の出力ポートのタイミングを参
照)。
【0102】図5に示すプログラム例のように、WAI
T命令の次にSTR命令を記述した場合、WAIT命令
の実行が完了してからSTR命令によってメモリ(出力
ポート)への書き込みが行われるまでにある時間が経過
する。したがって、メモリ(出力ポート)への書き込み
タイミングは時刻レジスタ12に設定された時刻よりも
遅れることになる。以下、WAIT命令の実行終了から
次の命令の実行までの時間を遅れ時間と表記する。
【0103】同じ理由によって、WAIT命令の次にL
DR命令を記述した場合も、WAIT命令の実行が終了
してからLDR命令によってメモリ(入力ポート)から
読み出しが行われるまでに遅れ時間が発生する。したが
って、メモリ(入力ポート)からの読み出しタイミング
も時刻レジスタ12に設定された時刻よりも遅れること
になる。
【0104】本実施の形態における実時間プロセッサが
組み込まれたシステムに、キャッシュメモリ等のメモリ
アクセス時間の変化の要因となる機構が組み込まれてい
る場合には、遅れ時間が複雑に変化する。そのため、メ
モリ(入出力ポート)への入出力を所定の時刻に正確に
行なうことが困難となる。また、遅れ時間が一定であっ
たとしても、遅れ時間を考慮して時刻レジスタ12に設
定する値を決定しなければならないという問題がある。
【0105】図3に示すWLDR命令およびWSTR命
令は、これらの問題を解決するための命令であり、所定
の時刻にメモリへアクセスするための追加命令である。
命令実行機構10がこれらの命令の実行を開始すると、
MAB信号にメモリアドレスを出力した後、一旦処理を
停止してメモリへのデータ入出力が遅延される。そし
て、スケジューリング成立またはスケジューリング違反
の状態になると、命令実行機構10は、処理を再開して
メモリへのデータ入出力を行なう。したがって、このW
LDR命令およびWSTR命令を用いることによって、
遅れ時間の影響を受けずに、所定の時刻にメモリへのデ
ータ入出力を正確に行なうことが可能となる。また、W
INR命令およびWOUTR命令は、メモリへのデータ
入出力ではなくI/Oへのデータ入出力命令である点の
み、WLDR命令およびWSTR命令と異なる。したが
って、詳細な説明は繰り返さない。
【0106】メモリアクセス命令やI/Oへの入出力命
令以外にも、プロセッサが外部の影響を受ける、または
外部に影響を与えるような命令を同様に遅延させること
も考えられる。このような命令の一例としては、コ・プ
ロセッサ制御命令が挙げられる。
【0107】図7は、図3に示す追加命令を用いたプロ
グラムの他の一例を示す図である。このプログラムは、
出力ポートに所定の時間間隔でパルスを出力して入出力
装置3を制御するものである。このプログラムは無限に
ループが継続するため、タイマレジスタ11のオーバフ
ローを考慮したものである。また、図8は命令実行機構
10が、図7に示すプログラムを実行した場合の動作タ
イミングを示すタイミングチャートである。
【0108】まず、出力ポートにアクセスするための準
備を行なう(行1〜行3)。すなわち、レジスタR0に
出力ポートアドレスportが設定され(行1)、レジ
スタR1に出力ポートに出力する値on(オンにする
値)が設定され(行2)、レジスタR2に出力ポートに
出力する値off(オフにする値)が設定される(行
3)。
【0109】次に、レジスタR3に最初のパルスの出力
時刻“4”が設定され(行4)、タイマレジスタETR
が“1”に初期化され(行5)、時刻レジスタEURに
レジスタR3の値“4”が設定される(行6)。レジス
タR3は、次にパルスを出力する時刻を計算するための
ワークレジスタとして利用される。より複雑なプログラ
ムにおいては、このレジスタの役割をメモリ装置2内の
ワークエリアに割り当てることが望ましい。
【0110】行7〜行18は、無限ループを構成してお
り、時刻レジスタ12には最初に“4”が設定され、以
降“15”、“26”、“37”と11ずつ増加した値
が設定される。図8に示すタイミングチャートはパルス
が11回出力された後に時刻レジスタ12に“125”
が設定され、タイマレジスタ11が“123”までカウ
ントした後の各信号のタイミングを示している。
【0111】次に、WAIT命令が実行される(行
7)。命令解釈ステージ71にこのWAIT命令が到達
すると、プログラムカウンタ75の更新が停止されて、
スケジューリング待ち状態となり、タイマレジスタ11
の値が“125”となるまで命令パイプラインの処理が
停止される。タイマレジスタ11の値が“125”にな
ると(この時の時刻をt11とする)、TEQU信号に
Hレベルが出力され、プログラムカウンタ75の更新が
再開されて、出力ポートがオン(Hレベル)になり(行
8)、出力ポートがオフ(Lレベル)になって(行
9)、パルスが出力される。
【0112】次に、レジスタR3に“11”を加算し
て、つぎのパルス出力時刻“136”を算出する(行1
0)。そして、時刻レジスタ12に“136”が再設定
され(行11、この時の時刻をt12とする)、レジス
タR3の値(時刻レジスタ12に設定した値)と“12
8”とが比較される(行12)。この処理は、時刻レジ
スタ12に設定された値が規定値未満であることを確認
するための処理である。時刻レジスタ12に設定された
値が規定値未満であれば、ラベルL1へ分岐して行7以
降の処理を実行する。
【0113】時刻レジスタ12に設定された値が規定値
以上であれば、レジスタR3の値から“11”を減算し
てレジスタR4に代入し、この値を補正値とする(行1
4)。この処理は、補正された結果が負の値とならない
ように適切な補正値を求めるための処理であり、前回時
刻レジスタ12に設定されていた値を補正値としてい
る。
【0114】そして、タイマレジスタETRからレジス
タR4の値(補正値)を減算し(行15、この時の時刻
をt13とする)、次のパルス出力時刻が格納されたレ
ジスタR3からレジスタR4の値(補正値)を減算して
レジスタR3に代入し(行16)、時刻レジスタEUR
にレジスタR3の値(補正した時刻)を代入して(行1
7、この時の時刻をt14とする)、ラベルL1へ分岐
する(行18)。命令実行機構10が行15の減算命令
を実行する際、MTRSDに補正値“125”を出力
し、減算器15がITRDの値からMTRSDの値を減
算することによって、補正した値をタイマレジスタ11
に設定している。なお、このときTRSUB信号がHレ
ベルとなり、セレクタ14によってMTRDの値が選択
される。
【0115】このように、t13のタイミングでタイマ
レジスタ11の値から補正値が減算され、t14のタイ
ミングで時刻レジスタ12の値から同じ補正値が減算さ
れるので、この補正処理がある場合でも時間間隔t1
1:15は、タイマレジスタ11が11カウントを進め
る時間に正確に一致する。
【0116】以上説明したように、補正処理によってタ
イマレジスタ11のオーバフローを防止することが可能
となる。ただし、タイマレジスタ11が補正されてから
時刻レジスタ12が補正されるまでの期間、すなわち図
8のt13:14に相当する期間は両レジスタの関係が
不正になることに留意しなければならない。したがっ
て、時刻レジスタ12に設定されている時刻までに補正
処理が完了するよう処理を速やかに行なう必要がある。
【0117】補正処理が必要になる時間間隔は、タイマ
レジスタ11によって計測可能な時間に依存する。タイ
マレジスタ11が32ビットであり、TRCK信号の周
波数を200MHzとすると、約21secに1回補正
を行なえば良いことになる。この約21secという時
間は、補正が実質上不要であるほど長い時間ではない
が、この間に1回以上補正処理を行なわなければならな
いという制約があったとしても、ほとんどの場合におい
て問題とはならない。また、上述したようにTRCK信
号の周波数を200MHzにした場合、5nsec単位
で出力ポートを制御できることとなり、専用ハードウェ
アによる制御と遜色がない。
【0118】上述したように、BTLOU命令、BTE
QU命令およびBTHIU命令は、それぞれスケジュー
リング待ち時、スケジューリング成立時およびスケジュ
ーリング違反時に分岐を行なう命令であるが、これらの
命令はWAIT命令とは異なり、命令実行が停止せずに
速やかに実行が完了する。したがって、これらの命令は
命令実行が停止することが望ましくないような状況での
使用が有効である。
【0119】図9は、BTHIU命令を用いたプログラ
ムの一例である。このプログラムは、所定の時刻に出力
ポートにHレベルを出力するものである。
【0120】まず、出力ポートにアクセスするための準
備を行なう(行1〜行2)。すなわち、レジスタR0に
出力ポートアドレスportが設定され(行1)、レジ
スタR1に出力ポートに出力する値on(オンにする
値)が設定される(行2)。
【0121】次に、レジスタR2に出力ポートをオンに
する時刻が設定され(行3)、タイマレジスタETRが
“1”に初期化される(行4)。そして、レジスタR2
から“100”を減算してレジスタR3に設定すること
によって準備開始時刻を求め(行5)、その値を時刻レ
ジスタ12に設定する(行6)。
【0122】次に、タイマレジスタ11の値が時刻レジ
スタ12に設定された準備開始時刻を過ぎているか否か
を判定し(行7)、タイマレジスタの値が準備開始時刻
を過ぎていなければサブルーチンbackgroundへ処理が移
行する(行8)。このサブルーチンbackgroundは余裕時
間内に完了する処理であり、現在時刻が準備開始時刻よ
りも前であれば出力ポートをオンにするまでに時間的な
余裕があるとみなされて実行される処理である。サブル
ーチンbackgroundから処理が戻ると、ラベルL1へ分岐
する(行9)。
【0123】行7において、タイマレジスタの値が準備
開始時刻を過ぎていればラベルL2へ分岐し、時刻レジ
スタにレジスタR2に値、すなわち出力ポートをオンに
する時刻を設定し(行10)、出力ポートをオンにする
時刻まで実行を停止する(行11)。そして、タイマレ
ジスタの値が出力ポートをオンにする時刻になれば、出
力ポートをオンにする(行12)。
【0124】以上説明したように、所定時刻までに十分
な余裕がある場合には、命令実行機構10を停止させる
ことなく別の処理を行なわせることができるとともに、
所定の時刻に所定の動作を行なわせることが可能にな
る。
【0125】WPREFIX命令は、次の命令が時刻依
存命令であることを示す時刻修飾命令であり、次の命令
の実行をスケジューリング待ちの時間遅延させることを
指定する命令である。たとえば、WPREFIX命令の
次にSTR命令が記述されていれば、STR命令による
メモリへの書き込みはスケジューリング待ちの期間遅延
される。したがって、このWPREFIX命令を用いる
ことによって、命令実行機構10に上述したWSTR命
令等の命令を追加することなく、同等の動作を行なわせ
ることが可能となる。このように、1つの時刻修飾命令
を追加するだけで、複数の時刻依存命令を追加した場合
と同等の効果が得られるので、基本となる命令セットに
多くの命令を追加して、それぞれに独自のコードを割り
当てるだけの余裕がない場合に有効である。
【0126】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、タイマレジスタ11は継
続的に一定時間間隔で更新され、初期化等の時刻の前後
関係が不明となる操作が不要となるため、任意の時刻間
における経過時間を指定することが可能になった。ま
た、タイマレジスタ11から所定時間を減算することが
できるため、タイマレジスタ11がオーバフローする前
にタイマレジスタ11の値を補正することが可能となっ
た。
【0127】また、時刻比較器13がタイマレジスタ1
1の値と時刻レジスタ12の値との一致および大小比較
を行なうようにしたので、スケジューリング待ち、スケ
ジューリング成立またはスケジューリング違反の発生を
検出することが可能となった。また、命令実行機構10
は、時刻比較器13による比較結果に依存して分岐を行
なう命令、および命令実行を遅延する命令を実行するよ
うにしたので、スケジューリング待ち、スケジューリン
グ成立およびスケジューリング違反の3つの状態にあわ
せてプログラム処理の流れを制御することが可能となっ
た。
【0128】(実施の形態2)図10は、本発明の実施
の形態2における実時間プロセッサの概略構成を示すブ
ロック図である。図2に示す実施の形態1における実時
間プロセッサと比較して、実行時間レジスタ21、TF
レジスタ22および組合わせ論理回路23が追加され、
命令実行機構にこれらの追加された回路を制御する機能
を付加した点のみが異なる。したがって、重複する構成
および機能の詳細な説明は繰り返さない。なお、実時間
プロセッサの参照符号を1aとし、命令実行機構の参照
符号を10aとして説明する。
【0129】実行時刻レジスタ21のデータ入力端子に
はTRQ信号が、クロック入力端子にはERCK信号
が、出力端子にはERQ信号がそれぞれ接続されてい
る。TRQの値は、ERCK信号の立ち上がりエッジで
実行時刻レジスタ21に取り込まれ、ERQ信号として
出力される。
【0130】TFレジスタ22のデータ入力端子にはT
FD信号が、クロック入力端子にはTFCK信号が、出
力端子にはTFQ信号がそれぞれ接続されている。TF
Dの値は、TFCK信号の立ち上がりエッジでTFレジ
スタ22に取り込まれ、TFQ信号として出力される。
【0131】組合わせ論理回路23の入力端子にはTF
Q信号、TFLD信号、TFRST信号、TGTU信号
およびTFSET信号が、出力端子にはTFD信号がそ
れぞれ接続されている。TFLD信号、TFRST信号
およびTFSET信号は、2つ以上の信号がHレベルと
ならないように制御される。
【0132】TFRST信号がHレベルであればTFD
信号がLレベルとなり、TFCK信号の立ち上がりエッ
ジでTFレジスタ22がクリアされる。また、TFSE
T信号がHレベルであればTFD信号がHレベルとな
り、TFCK信号の立ち上がりエッジでTFレジスタ2
2がセットされる。また、TFLD信号がHレベルであ
ればTGTUの値がTFD信号として出力され、TFC
K信号の立ち上がりエッジでTFレジスタ22に設定さ
れる。また、TFCK信号の立ち上がり時にTFLD信
号がLレベルであれば、一度設定されたTFレジスタ2
2の値が保存される。なお、TFレジスタ22の値は、
命令実行機構10aによりTフラグとして参照される。
【0133】図11は、本実施の形態における実時間プ
ロセッサに追加された命令の一覧を示す図である。それ
ぞれの命令の動作は図11に説明されているので、ここ
での詳細な説明は行なわない。
【0134】図12は、図11に示す追加命令を用いた
プログラムの一例を示す図である。このプログラムは、
実行時刻レジスタ21を用いてスケジューリング違反を
検出して回復処理を行なうものである。また、図13は
命令実行機構10aが図12に示すプログラムを実行し
た場合の動作タイミングを示すタイミングチャートであ
る。
【0135】まず、時刻レジスタ12に“2”が設定さ
れ(行1)、タイマレジスタ11の値が時刻レジスタ1
2の値以上となるまで、すなわち、スケジューリング待
ち状態にある期間、命令実行完了が遅延される(行
2)。タイマレジスタ11の値が“2”となってスケジ
ューリングが成立すると、実行完了時のタイマレジスタ
11の値、すなわち、“2”が実行時刻レジスタ21に
設定される。図13に示すように、命令実行機構10a
がスケジューリング成立を検出すると、t22に示すタ
イミングで命令実行機構10aがERCK信号にパルス
を出力する。その立ち上がりエッジで、実行時刻レジス
タ21にタイマレジスタ11から出力されるTRQの値
が取り込まれ、ERQ信号に“2”が出力される。
【0136】次に、時刻レジスタ12に“7”が設定さ
れ(行3)、実行時間が不定であるサブルーチンsubrou
tineへ処理が移行する(行4)。そして、このサブルー
チンから処理が戻ると、再びWMOV命令が実行される
(行5)。サブルーチンsubroutineの実行が予想外に長
くなったために、指定時刻“7”(図13のt23に示
すタイミング)よりも遅れてWMOV命令が実行された
とする。この時スケジューリング違反が発生しており
(図13のt24に示すタイミング)、時刻レジスタ1
2に“7”が設定されているにもかかわらず、実行時刻
レジスタ21には“8”が設定されている。実行時刻レ
ジスタ21の値を設定値“7”と比較すると(行6)、
実行時刻レジスタ21の値の方が設定値よりも大きいの
で、回復処理ルーチンrecoverへ処理が移行する(行
7)。
【0137】回復処理ルーチンrecoverから処理が戻る
と、時刻レジスタ12に“13”を設定し(行8)、再
びWMOV命令を実行する(行9)。このWMOV命令
の実行完了時(図13のt25に示すタイミング)に、
タイマレジスタ11の値が“13”となり、t26に示
すタイミングで実行時刻レジスタ21に値“13”が設
定される。そして、実行時刻レジスタ21と指定時刻
“13”とが比較される(行10)。この比較によって
は、スケジューリング違反が検出されないので、回復処
理ルーチンrecoverへ処理が移行せず(行11)、次の
命令の実行を行なう。このように、実行時刻レジスタ2
1の値と指定時刻とを比較することによって、スケジュ
ーリング違反を検出することが可能となり、その回復処
理を行なうことが可能となる。
【0138】図14は、図11に示す追加命令を用いた
プログラムの他の一例を示している。このプログラム
は、図11に示すWAIT2命令とTフラグとを用いて
スケジューリング違反を検出するものである。Tフラグ
は、WAIT2命令またはWAIT3命令によって変化
する条件フラグであって、図10に示すTFレジスタ2
2に設定された値と一致する。また、図15は、命令実
行機構10aが図14に示すプログラムを実行した場合
の動作タイミングを示すタイミングチャートである。
【0139】まず、時刻レジスタ12に指定時刻“2”
が設定される(行1)。そして、指定時刻まで実行を停
止した後、Tフラグを設定する(行2)。図15のt3
1に示すタイミングまで命令の実行完了が遅延され、t
32に示すタイミングでTフラグの設定が行なわれる。
t32においては、スケジューリングが成立した状態
(TGTU信号がLレベル)であるので、Tフラグはク
リアされる。
【0140】次に、時刻レジスタ12に指定時刻“7”
が設定される(行3)。そして、実行時間が不定である
サブルーチンsubroutineへ処理が移行する(行4)。サ
ブルーチンsubroutineから処理が戻ると、指定時刻まで
実行を停止した後、Tフラグを設定する(行5)。サブ
ルーチンsubroutineの実行が予想外に長くなったため
に、指定時刻“7”(図15のt33に示すタイミン
グ)よりも遅れてWAIT2命令が実行されたとする。
この時スケジューリング違反が発生しており(図15の
t34に示すタイミング)、TFレジスタ22から出力
されるTFQ信号がHレベルとなる。
【0141】Tフラグがセットされているため、ラベル
OK1への分岐は行なわれず(行6)、回復処理ルーチ
ンrecoverへ処理が移行する(行7)。回復処理ルーチ
ンrecoverから処理が戻ると、時刻レジスタ12に指定
時刻“13”を設定する(行8)。そして、指定時刻ま
で実行を停止した後(図15のt35に示すタイミン
グ)、Tフラグが設定される(行9)。この時、スケジ
ューリング成立状態(TGTU信号がLレベル)にある
ため、図15のt36に示すタイミングでTフラグがク
リアされる。
【0142】再びスケジューリング違反であるか否かの
判定を行なうが(行10)、Tフラグがクリアされてい
るのでラベルOK2へ分岐して、回復処理ルーチンreco
verの処理は行なわれない。
【0143】図16は、図11に示す追加命令を用いた
プログラムのさらに他の一例を示している。このプログ
ラムは、図11に示すWAIT3命令とTフラグとを用
いてスケジューリング違反を検出するものである。Tフ
ラグは、WAIT3命令の実行完了時点でTGTU信号
がHレベルである場合、すなわち、スケジューリング違
反が発生している場合にセットされる。しかし、Tフラ
グが一度セットされると、次にWAIT3命令の実行終
了時点でTGTU信号がLレベルであり、TEQU信号
がHレベルの場合、すなわち、スケジューリング成立状
態の場合であっても、Tフラグがクリアされない点がW
AIT2命令と異なる。また、図17は、命令実行機構
10aが図16に示すプログラムを実行した場合の動作
タイミングを示すタイミングチャートである。
【0144】まず、時刻レジスタ12に指定時刻“2”
が設定される(行1)。そして、指定時刻まで実行を停
止した後、Tフラグが設定される(行2)。図17のt
41に示すタイミングまで命令の実行完了が遅延され、
t42に示すタイミングでTフラグの設定が行なわれ
る。t42においては、スケジューリングが成立した状
態(TGTU信号がLレベル)であるので、Tフラグは
クリアされる。
【0145】次に、時刻レジスタ12に指定時刻“7”
が設定される(行3)。そして、実行時間が不定である
サブルーチンsubroutineへ処理が移行する(行4)。サ
ブルーチンsubroutineから処理が戻ると、指定時刻まで
実行を停止した後、Tフラグを設定する(行5)。サブ
ルーチンsubroutineの実行が予想外に長くなったため
に、指定時刻“7”(図17のt43に示すタイミン
グ)よりも遅れてWAIT3命令が実行されたとする。
この時スケジューリング違反が発生しており(図17の
t44に示すタイミング)、TFレジスタ22から出力
されるTFQ信号がHレベルとなる。
【0146】次に、時刻レジスタ12に指定時刻“1
3”が設定される(行6)。そして、指定時刻まで実行
を停止した後(図17のt44に示すタイミング)、T
フラグが設定される(行9)。この時、TGTU信号が
LレベルでありTEQU信号がHレベルである状態、す
なわち、スケジューリング成立状態にあるが、図17の
t46のタイミングに示すようにTフラグがセットされ
た状態が保存される。
【0147】次に、スケジューリング違反であるか否か
の判定を行なうが(行8)、Tフラグがセットされてい
るのでラベルOKへ分岐せず、回復処理ルーチンrecove
rへ処理が移行する(行9)。このように、WAIT3
命令を用いてプログラムを作成することによって、スケ
ジューリング違反の検出と回復とを行なうことが可能と
なる。上述したWAIT2命令と比較して、WAIT3
命令を用いたプログラムにおいては、複数箇所のいずれ
かでスケジューリング違反が発生したことを、一箇所の
チェックで検出することが可能となる。
【0148】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、実行時刻レジスタ21が
時刻依存命令を実行した時の時刻を保存するようにした
ので、たとえば、スケジューリング違反が発生した場合
に時刻依存命令の実行時刻が指定時刻にどれだけ遅れて
いるかを知ることができ、スケジューリング違反の回復
処理を行なうことが容易になった。
【0149】また、TFレジスタ22はスケジューリン
グ違反があったことを保存するようにしたので、その後
で実行されるプログラムによってスケジューリング違反
があったことを容易に知ることができるようになった。
また、命令実行機構10aはTFレジスタ22の値に依
存して分岐を行なう命令を実行するようにしたので、ス
ケジューリング違反が発生した場合におけるプログラム
処理の流れを制御することが可能となった。
【0150】(実施の形態3)図18は、本発明の実施
の形態3における実時間プロセッサの概略構成を示すブ
ロック図である。図2に示す実施の形態1における実時
間プロセッサと比較して、減算器15に入力する値を選
択するセレクタ30と、時刻レジスタ12に入力する値
を選択するセレクタ31と、時刻レジスタ12に記憶さ
れる値からタイマレジスタ11の値を減算する減算器3
2が追加され、命令実行機構にこれらの追加された回路
を制御する機能を付加した点のみが異なる。したがっ
て、重複する構成および機能の詳細な説明は繰り返さな
い。なお、実時間プロセッサの参照符号を1bとし、命
令実行機構の参照符号を10bとして説明する。
【0151】セレクタ30の一方の入力端子にはMTR
SD信号が、他方の入力端子にはURQ信号が、選択信
号入力端子にはTRSDS信号が、出力端子にはTRS
D信号がそれぞれ接続されている。TRSDS信号がL
レベルの場合には、MTRSDの値がTRSD信号とし
て出力され、TRSDS信号がHレベルの場合には、U
RQの値がTRSD信号として出力される。
【0152】セレクタ31の一方の入力端子にはMUR
D信号が、他方の入力端子にはMURSD信号が、一方
の選択信号入力端子にはURRST信号が、他方の選択
信号入力端子にはURSUB信号が、出力端子にはUR
D信号がそれぞれ接続されている。URRST信号がH
レベルであれば、他の入力信号に関係なくURD信号に
“0”が出力される。また、URRST信号がLレベル
であり、URSUB信号がLレベルであれば、MURD
の値がURD信号として出力される。また、URRST
信号がLレベルであり、URSUB信号がHレベルであ
れば、MURSDの値がURD信号として出力される。
【0153】減算器32の一方の入力端子にはURQ信
号が、他方の入力端子にはTRQ信号が、出力端子には
MURSD信号がそれぞれ接続されている。減算器32
は、URQの値からTRQの値を減算し、その結果をM
URSD信号として出力する。
【0154】図19は、本実施の形態における実時間プ
ロセッサに追加された命令の一覧を示す図である。NO
RM1命令、NORM2命令およびNORM3命令は、
時刻を補正する命令であり、それぞれの命令の動作は図
19に説明されているので、ここでの詳細な説明は行な
わない。
【0155】図20は、図19に示す追加命令を用いた
プログラムの一例を示す図である。このプログラムは、
NORM1命令、NORM2命令およびNORM3命令
を用いて時刻を補正しているが、それぞれの命令を説明
するためのものであり、特に意味のある動作ではない。
また、図21は命令実行機構10bが図20に示すプロ
グラムを実行した場合の動作タイミングを示すタイミン
グチャートである。
【0156】まず、NORM2命令によって時刻の補正
を行なう(行1)。NORM2命令は、時刻レジスタ1
2の値がタイマレジスタ11の値より大きい場合、すな
わち、スケジューリング待ち状態の場合に利用可能な時
刻補正命令である。したがって、NORM2命令はWA
IT命令等の命令実行の遅延を伴う時刻依存命令の実行
完了後、さらに時刻レジスタ12の値を更新した後での
利用が望ましい。
【0157】図21のt51のタイミングに示すよう
に、NORM2命令が実行されると時刻レジスタ12の
値URQからタイマレジスタ11の値TRQが減算さ
れ、タイマレジスタ11に値“1”が設定される。この
ように、時刻レジスタ12の値とタイマレジスタ11の
値との差分を一定に保ったまま、各レジスタの値の絶対
値が小さくなるように補正される。
【0158】NORM2命令の実行前には時刻レジスタ
12の値からタイマレジスタ11の値を減算した値が3
(=120−117)であり、NORM2命令の実行後
にはその減算した値が2(=3−1)となっている。各
レジスタの補正の間にTRCK信号の立ち上がりエッジ
が1つあるため、タイマレジスタ11の値がインクリメ
ントされていることを考慮すれば、時刻レジスタ11の
値とタイマレジスタ11の値との差分は保存されている
と言える。
【0159】次に、サブルーチンsubroutineへ処理が移
行する(行2)。そして、サブルーチンsubroutineから
処理が戻ると、NORM1命令によって時刻の補正を行
なう(行3)。NORM1命令は、タイマレジスタ11
の値が時刻レジスタ12の値より大きい場合、すなわ
ち、スケジューリング違反の場合に利用可能な時刻補正
命令である。したがって、NORM1命令はWAIT命
令等の命令実行の遅延を伴う時刻依存命令の実行完了後
での利用が望ましい。
【0160】図21のt52のタイミングに示すよう
に、NORM1命令が実行されるとタイマレジスタ11
の値TRQから時刻レジスタ12の値URQが減算さ
れ、時刻レジスタ12に値“0”が設定される。このよ
うに、タイマレジスタ11と時刻レジスタ12の値との
差分を一定に保ったまま、各レジスタの値の絶対値が小
さくなるように補正される。
【0161】NORM1命令の実行前にはタイマレジス
タ11の値から時刻レジスタ12の値を減算した値が1
(=4−3)であり、NORM1命令の実行後にはその
減算した値が2(=2−0)となっている。各レジスタ
の補正の間にTRCK信号の立ち上がりエッジが1つあ
るため、タイマレジスタ11の値がインクリメントされ
ていることを考慮すれば、タイマレジスタ11の値と時
刻レジスタ12の値との差分は保存されていると言え
る。
【0162】次に、時刻レジスタ12に指定時刻“6”
が設定される(行4)。そして、実行時間が不定である
サブルーチンsubroutineへ処理が移行する(行5)。サ
ブルーチンsubroutineから処理が戻ると、NORM3命
令によって時刻の補正を行なう(行6)。NORM3命
令は、タイマレジスタ11の値と時刻レジスタ12の値
との関係にかかわらず利用可能な時刻補正命令である。
したがって、NORM2命令(行1)またはNORM1
命令(行3)の代わりにNORM3命令を用いることも
可能である。
【0163】図21のt54のタイミングに示すよう
に、タイマレジスタ11の値と時刻レジスタ12の値と
が等しいため、タイマレジスタ11に“1”が設定さ
れ、時刻レジスタ12に“0”が設定される。このよう
に、タイマレジスタ11の値と時刻レジスタ12の値と
の差分を一定に保ったまま、各レジスタの値の絶対値が
小さくなるように補正される。なお、図19に示すよう
に、NORM3命令は、スケジューリング違反の場合に
はNORM1命令と同じ動作を行ない、スケジューリン
グ待ち状態の場合にはNORM2命令と同じ動作を行な
う。
【0164】NORM3命令の実行前にはタイマレジス
タ11の値から時刻レジスタ12の値を減算した値が0
(=6−6)であり、NORM3命令の実行後にはその
減算した値が1(=1−0)となっている。各レジスタ
の補正の間にTRCK信号の立ち上がりエッジが1つあ
るため、タイマレジスタ11の値がインクリメントされ
ていることを考慮すれば、タイマレジスタ11の値と時
刻レジスタ12の値との差分は保存されていると言え
る。
【0165】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、命令実行機構10bが時
刻補正命令を解釈して実行するようにしたので、容易に
タイマレジスタ11のオーバフローを防止することが可
能となった。また、タイマレジスタ11の補正と時刻レ
ジスタ12の補正とが同時に行なわれるため、タイマレ
ジスタ11の値と時刻レジスタ12の値との大小関係の
不整合となる期間の発生を抑制することが可能となっ
た。
【0166】(実施の形態4)図22は、本発明の実施
の形態4における実時間プロセッサの概略構成を示すブ
ロック図である。実施の形態3における実時間プロセッ
サは、図18に示すように2つの減算器15および32
が用意されている。また、命令実行機構10bも算術演
算命令を実行するため、減算機能を含んだ図示しないA
LU(Arithmetic and Logical Unit)を有してい
る。したがって、3つの減算回路が用意されていること
になる。
【0167】しかし、図19に示す時刻補正命令を実行
する場合、その動作から明らかなように2つの減算器が
同時に動作することはない。また、命令実行機構10b
がスーパースカラになっていない場合、すなわち、複数
命令を同時に実行する構造になっていない場合には、時
刻補正命令と同時に算術演算命令が実行されることもな
い。したがって、3つの減算回路は常に最大でも1つし
か使用されていないことになるので、これら3つの減算
回路を1つにすることが可能である。
【0168】本実施の形態における実時間プロセッサ
は、図18に示す実施の形態3における実時間プロセッ
サを再構成したものである。実施の形態3における実時
間プロセッサ1bと比較して、減算器15および32と
セレクタ30とを削除して、命令実行機構内の内部バス
42、43、44およびALU41にその機能を持たせ
た点のみが異なる。したがって、重複する構成および機
能の詳細な説明は繰り返さない。なお、実時間プロセッ
サの参照符号を1cとし、命令実行機構の参照符号を1
0cとして説明する。
【0169】レジスタファイル40の入力ポートにはR
BUS42が、一方の出力ポートにはABUS43が、
他方の出力ポートにはBBUS44がそれぞれ接続され
ている。また、ALU41の一方の入力ポートにはAB
US43が、他方の入力ポートにはBBUS44が、出
力ポートにはRBUS42が接続されている。命令実行
機構10cは、レジスタファイル40の値に基づいてA
LU41に演算を行なわせ、その結果をレジスタファイ
ル40に書き込んで命令実行を行なう。なお、ALU4
1は、各種論理演算および算術演算を行なう機能を有し
ており、その1つとして減算機能を有している。
【0170】RBUS42には、レジスタファイル40
の入力ポートおよびALU41の出力ポート以外に、セ
レクタ14の一方の入力端子に接続されるMTRD信号
と、時刻レジスタ12のデータ入力端子に接続されるM
URD信号とが接続されている。したがって、ALU4
1の演算結果をタイマレジスタ11または時刻レジスタ
12に設定することが可能になる。
【0171】また、ABUS43およびBBUS44に
は、レジスタファイル40の出力ポートおよびALU4
1の入力ポート以外に、タイマレジスタ11の出力端子
に接続されるTRQ信号、時刻レジスタ12の出力端子
に接続されるURQ信号およびインクリメンタ16の出
力端子に接続されるITRD信号が接続されている。し
たがって、ALU41の演算入力としてタイマレジスタ
11または時刻レジスタ12の値を用いることができ
る。このようにして、命令実行機構10c内のALU4
1に、時刻補正に必要な演算処理を行なわせることが可
能になる。
【0172】また、図22に示すように、ALU41は
汎用レジスタ(レジスタファイル40)の値、タイマレ
ジスタ11の値および時刻レジスタ12の値のうち任意
の組み合わせで演算を行なうことができ、その演算結果
を汎用レジスタ、タイマレジスタ11または時刻レジス
タ12のいずれに書き込むことも可能となる。
【0173】図23は、本実施の形態における実時間プ
ロセッサによって実現可能になる追加命令の一例を示す
図である。このように、タイマレジスタ11または時刻
レジスタ12と、汎用レジスタとの間の転送や演算が可
能になる。それぞれの命令の動作は図23に説明されて
いるので、ここでの詳細な説明は繰り返さない。
【0174】図24は、本実施の形態において追加され
た命令“SUB Rd,ETR,EUR”を実行したときのデータの
流れを示す図である。タイマレジスタ11からのTRQ
信号がABUS43を経由して、時刻レジスタ12から
のURQ信号がBBUS44を経由してそれぞれALU
41に入力される。ALU41は、タイマレジスタ11
の値TRQから時刻レジスタ12の値URQを減算し、
その結果をRBUS42へ出力する。レジスタファイル
40は、RBUS42を介して演算結果を入力してレジ
スタRdに格納する。
【0175】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、命令実行機構10c内の
ALU41が汎用レジスタの値、タイマレジスタ11の
値および時刻レジスタ12の値のうち任意の組み合わせ
で演算を行なうようにしたので、減算器の数を減らすこ
とができコストを削減することが可能となった。また、
その演算結果を汎用レジスタ、タイマレジスタ11また
は時刻レジスタ12のいずれに書き込むこともできるた
め、命令実行機構が持つ命令体系の柔軟性を増すことが
可能となった。また、タイマレジスタ11および時刻レ
ジスタ12を汎用レジスタとして扱うようにすれば、直
行性の高い命令体系を実現することも可能となる。その
結果、プログラミング上の制約が緩和されて、プログラ
ム作成が容易になるとともに、命令実行機構10c内の
命令デコーダの構成を簡略化することができコストを削
減することが可能となった。
【0176】(実施の形態5)図25は、本発明の実施
の形態5における実時間プロセッサの概略構成を示すブ
ロック図である。図2に示す実施の形態1における実時
間プロセッサと比較して、クロック制御器50が付加さ
れた点のみが異なる。したがって、重複する構成および
機能の詳細な説明は繰り返さない。なお、実時間プロセ
ッサの参照符号を1dとし、命令実行機構の参照符号を
10dとして説明する。
【0177】クロック制御器50のクロックモード選択
入力端子にはCKMD信号が、クロック出力端子にはM
CK信号が、タイマクロック出力端子にはTRCK信号
がそれぞれ接続されている。
【0178】命令実行機構10dには、MCK信号に接
続される入力端子とCKMD信号に接続される出力端子
とが付加されており、クロック制御器50へCKMD信
号を出力してクロック制御器50を制御する。命令実行
機構10dがCKMD信号に出力する値は命令実行機構
10dの命令実行速度を変更するために用いられる。ク
ロック制御器50は、CKMDの値が“0”であればM
CK信号の出力を停止し、CKMDの値が“1”であれ
ば標準的な周波数でMCK信号を出力し、CKMDの値
が“2”であれば標準よりも低い周波数でMCK信号を
出力し、CKMDの値が“3”であれば標準よりも高い
周波数でMCK信号を出力する。
【0179】図26は、本実施の形態における命令実行
機構10dおよびクロック制御器50の概略構成を示す
ブロック図である。命令実行機構10dは、組合せ回路
90と、OR回路94とを含む。また、クロック発生回
路91は、クロック発生回路91と、分周器92と、組
合せ回路93とを含む。
【0180】組合せ回路90は、図27に示すように、
入力値C0およびC1がともにLレベル、すなわち、I
DWAIT信号、TEQU信号およびTGTU信号が全
てLレベルであれば、DCKMDの値をCKMD信号に
出力する。このDCKMD信号はプログラムによって値
が設定される信号であり、スケジューリング待ち状態で
あり、かつWAIT命令等の命令実行を遅延する命令が
命令解釈ステージにない場合における命令実行機構10
dの処理速度を指定する信号である。また、入力値C1
がHレベル、すなわち、TEQU信号またはTGTU信
号のいずれかがHレベルであれば、IDWAIT信号に
関係なく“1”を出力する。また、入力値C0がHレベ
ルでありC1がLレベル、すなわち、TEQU信号およ
びTGTU信号のいずれもLレベルであり、IDWAI
T信号がHレベルであれば“0”を出力する。
【0181】クロック発生回路91は、発振子または外
部からのクロック供給によってクロックを発生する回路
である。また、分周器92は、クロック発生回路91か
ら出力されるクロック信号を分周して、1/1、1/2
および1/4のクロックを出力する回路である。また、
組合せ回路93は、図28に示すように、命令実行機構
10dからのCKMD信号が“0”の場合にはLレベル
を出力し、CKMD信号が“1”の場合には1/2のク
ロックを出力し、CMKD信号が“2”の場合には1/
4のクロックを出力し、CMKD信号が“3”の場合に
は1/1のクロックを出力する。
【0182】TEQU信号とTGTU信号とがともにL
レベルの状態、すなわち、スケジューリング待ち状態で
WAIT命令等の命令実行を遅延する命令が命令解釈ス
テージに到達すると、組合せ回路90がCKMD信号に
“0”を出力し、組合せ回路93がMCK信号にLレベ
ルを出力する。その結果、命令実行機構10dへのクロ
ック供給が停止され、命令の実行が遅延される。
【0183】また、TEQU信号またはTGTU信号の
いずれかがHレベルの状態、すなわち、スケジューリン
グ成立状態またはスケジューリング違反状態であれば、
組合せ回路90がCKMD信号に“1”を出力し、組合
せ回路93がMCK信号に1/2のクロック(標準的な
クロック)を出力する。その結果、命令実行機構10d
は標準的な命令実行速度でプログラムの実行を行なう。
【0184】また、TEQU信号とTGTU信号とがと
もにLレベルの状態、すなわち、スケジューリング待ち
状態であり、かつWAIT命令等の命令実行を遅延する
命令が命令解釈ステージになければ、組合せ回路90が
CKMD信号にDSKMDの値を出力し、組合せ回路9
3が設定された周波数のクロックを出力する。その結
果、命令実行機構10dは設定された命令実行速度でプ
ログラムの実行を行なう。
【0185】図29は、クロック制御器50によるクロ
ックの制御を示すタイミングチャートの一例である。ク
ロック制御器50は、タイミングt61までクロックの
出力を停止しており、スケジューリング成立と同時にT
EQU信号がHレベルとなり、CKMDの値が“1”と
なってクロックの供給が再開される。なお、DCKMD
の値は“1”に設定されている。
【0186】命令実行機構10dが一連の処理を完了
し、タイミングt62においてWAIT命令を実行する
と、IDWAIT信号が“1”となってCKMDに値
“0”が出力される。その結果、クロックの供給が再び
停止される。タイミングt63においてスケジューリン
グが成立すると、クロック制御器50は再び命令実行機
構10dへのクロックの供給を開始する。
【0187】このように、命令実行が一時的に遅延され
るWAIT命令等を実行する際、スケジューリングが成
立するまで命令実行機構10dは動作を停止するため、
クロックを供給する必要がない。したがって、その間命
令実行機構10dへのクロックを停止させて消費電力を
削減することが可能となる。なお、図26に示す実時間
プロセッサ1dの構成において、クロック供給の制御対
象が命令実行機構10dのみとなっているが、図1に示
すシステムの構成要素である入出力装置3へ供給される
クロックも制御するようにしても良い。
【0188】図30は、クロック制御器50によるクロ
ックの制御を示すタイミングチャートの他の一例であ
る。クロック制御器50は、タイミングt71までクロ
ックの出力を停止しており、スケジューリング成立と同
時にTEQU信号がHレベルとなり、CKMDの値が
“1”となってクロックの供給が再開される。なお、D
CKMDの値は“1”に設定されているものとする。し
たがって、t71:72の期間のクロックMCKには、
標準的な周波数のクロック(1/2のクロック)が出力
されるため、実行されるそれぞれの命令の実行タイミン
グを予測することが容易であり、実行速度に依存したプ
ログラム部分を実行する際にこのモードが適している。
【0189】タイミングt72において、命令の実行速
度に依存したプログラム部分の実行を終了すると、プロ
グラムによって時刻レジスタ12が更新され、またDC
KMDに“2”が設定され、標準よりも低い周波数のク
ロック(1/4のクロック)が出力される。その結果、
命令実行機構10dは低速な実行速度で処理を行なう。
クロックの周波数を標準よりも低くすることによって、
命令実行機構10dの消費電力を削減することが可能で
あるが、同時に命令実行機構10dへ供給する電源電圧
等を変更するようにすれば、さらに消費電力を削減する
ことが可能となる。
【0190】タイミングt73において、WAIT命令
が実行されるとクロックの供給が再び停止される。その
後、タイミングt74でスケジューリングが成立する
と、CKMDに“1”が出力されてクロックの供給が再
開される。なお、t72:73の期間にCKMD信号に
“2”が設定されているが、“3”が設定されてより周
波数の高いクロックが供給されるようにしても良い。
【0191】図31は、クロック制御器50によるクロ
ックの制御を示すタイミングチャートのさらに他の一例
である。クロック制御器50は、タイミングt81まで
クロックの出力を停止しており、スケジューリング成立
と同時にTEQU信号がHレベルとなり、CKMDの値
が“1”となってクロックの供給が再開される。TEQ
U信号がHレベルとなった後、スケジューリング違反が
発生してTGTU信号がHレベルとなる。TGTU信号
がHレベルの状態を維持するタイミングt82まで、D
CKMD信号の値にかかわらずCKMD信号に“1”が
出力されるため、標準的な周波数のクロックが出力され
る。なお、DCKMDの値は“2”に設定されているも
のとする。
【0192】タイミングt82において、時刻レジスタ
12に値が再設定される等によってTGTU信号がLレ
ベルになると、DCKMDの値“2”がCKMD信号に
出力されて、標準よりも低い周波数のクロックが出力さ
れて、命令実行機構10dは低速な実行速度で処理を行
なう。このように、以前プログラムによって設定したD
CKMDの値が保存されているため、プログラムによっ
てDCKMDの値を変更する必要がなくなる。
【0193】タイミングt83において、WAIT命令
が実行されるとクロックの供給が再び停止される。その
後、タイミングt84でスケジューリングが成立する
と、CKMD信号に“1”が出力されてクロックの供給
が再開される。
【0194】図29〜図31に示すタイミングチャート
において、タイミングt61、t71およびt81の直
後にクロックの供給が再開されているが、TEQU信号
の立ち上がりから一定時間後にクロックが立ち上がるよ
うに制御されている。タイマレジスタの更新周期と命令
実行機構10dの動作周期とが独立している回路構成で
あっても、タイマレジスタ11の更新に同期して、命令
実行機構10dが命令の解釈実行を行なうことが可能と
なる。
【0195】また、図25に示す本実施の形態における
実時間プロセッサでは、命令実行機構10dの動作がク
ロックMCKによって規定される同期回路によって構成
されているが、命令実行機構を非同期回路で構成するよ
うにしても良い。命令実行機構を非同期回路で構成した
場合、構成要素である非同期回路間のデータハンドシェ
ーク信号を遅延させることで、非同期回路間の動作速度
を制御することができる。このように、命令実行機構を
命令実行のタイミング予測が困難な非同期回路で構成し
た場合であっても、命令実行のタイミングを正確に制御
することが可能となる。
【0196】また、図25に示す本実施の形態における
実時間プロセッサでは、クロックの周波数を制御するこ
とによって命令実行機構の動作速度を制御しているが、
命令実行機構がスーパースカラ処理を行なっているもの
であれば、標準的な命令実行速度で処理を行なわせる期
間はスーパースカラ動作を抑制し、並列処理ではなく逐
次処理で命令を解釈実行させるようにする。このように
して、各種ハザードによる命令実行速度の変化がなくな
り、命令実行タイミングの予測が容易となる。また、最
新のプロセッサにおいては、スーパースカラの他に分岐
予測機構、アドレス変換機構またはキャッシュメモリ等
の命令実行速度を変化させる要素が組み込まれている。
したがって、これらの機構の動作を一時的に抑制するこ
とは、標準的な命令実行速度を得るために有効である。
【0197】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、クロック制御器50がク
ロック周波数を制御して命令実行機構10dの命令実行
速度を調整するようにしたので、たとえば、高速にプロ
グラムを実行して実行時間を短縮する、または低速でプ
ログラムを実行して消費電力を削減する等の選択が行な
えるようになった。また、命令実行機構10dが命令実
行を遅延している場合には、クロック制御器50が命令
実行機構10dへのクロックの供給を停止するようにし
たので、さらに消費電力を削減することが可能となっ
た。
【0198】(実施の形態6)図32は、本発明の実施
の形態6における実時間プロセッサの概略構成を示すブ
ロック図である。図2に示す実施の形態1における実時
間プロセッサと比較して、出力レジスタ60および入力
バッファ61が付加された点のみが異なる。したがっ
て、重複する構成および機能の詳細な説明は繰り返さな
い。なお、実時間プロセッサの参照符号を1eとし、命
令実行機構の参照符号を10eとして説明する。
【0199】出力レジスタ60の命令実行機構側入出力
端子にはMOUT信号が、外部側出力端子にはOUT信
号が接続されている。MOUT信号は、命令実行機構1
0eが出力レジスタ60に値を書き込むとき、または出
力レジスタ60に設定された値を読み出すときに使用さ
れる信号であって、双方向信号となっている。このよう
な構成にすることによって、OUT信号の中の特定の1
ビットだけを選択して反転させる等の処理が可能とな
る。
【0200】入力バッファ61の出力端子にはMIN信
号が、入力端子にはIN信号が接続されている。MIN
信号は、入力バッファ61に入力されている値を読み出
すための信号である。また、IN信号は入出力装置3に
接続される信号である。
【0201】図33は、本実施の形態における命令実行
機構10eに付加された追加命令の一覧を示す図であ
る。INRおよびOUTRはそれぞれ、入力バッファ6
1および出力レジスタ60を示している。このように、
メモリ参照命令やI/O参照命令を用いることなく、入
力バッファ61または出力レジスタ60から値を参照す
ることが可能となる。
【0202】通常、メモリ参照命令やI/O参照命令の
実行タイミングは、命令実行機構10eに接続されるM
ABおよびMDBの使用状況に依存する。たとえば、入
出力装置3がMABおよびMDB等の外部バスを介して
メモリ装置に直接アクセスするDMA(Direct Memory
Access)処理中であれば、命令実行機構10eは外部
バスの利用権を獲得するまで実行が遅延されることにな
る。したがって、命令実行機構10eは、所定の動作を
所定時刻までに行なえない場合が発生する。上述した命
令を利用すれば、外部バスを使用せずに入力バッファ6
1または出力レジスタ60の値を参照することができる
ため、外的要因による遅延を防止でき、所定の動作を所
定時刻までに正確に行なえるようになる。
【0203】以上説明したように、本実施の形態におけ
る実時間プロセッサによれば、出力レジスタ60および
入力バッファ61を付加することにより外部要因による
遅延を防止できるため、所定の入出力動作を所定の時刻
に正確に行なわせることが可能となった。
【0204】今回開示された実施の形態は、すべての点
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における実時間プロセッ
サを利用したシステムの一例を示すブロック図である。
【図2】本発明の実施の形態1における実時間プロセッ
サの概略構成を示すブロック図である。
【図3】本発明の実施の形態1における命令実行機構1
0に付加された追加命令の一覧を示す図である。
【図4】本発明の実施の形態1における命令実行機構1
0の概略構成を示すブロック図である。
【図5】図3に示す追加命令を用いたプログラムの一例
を示す図である。
【図6】本発明の実施の形態1における命令実行機構1
0が、図5に示すプログラムを実行した場合の動作タイ
ミングを示すタイミングチャートである。
【図7】図3に示す追加命令を用いたプログラムの他の
一例を示す図である。
【図8】本発明の実施の形態1における命令実行機構1
0が、図7に示すプログラムを実行した場合の動作タイ
ミングを示すタイミングチャートである。
【図9】BTHIU命令を用いたプログラムの一例であ
る。
【図10】本発明の実施の形態2における実時間プロセ
ッサの概略構成を示すブロック図である。
【図11】本発明の実施の形態2における命令実行機構
10aに付加された追加命令の一覧を示す図である。
【図12】図11に示す追加命令を用いたプログラムの
一例を示す図である。
【図13】本発明の実施の形態2における命令実行機構
10aが、図12に示すプログラムを実行した場合の動
作タイミングを示すタイミングチャートである。
【図14】図11に示す追加命令を用いたプログラムの
他の一例を示す図である。
【図15】本発明の実施の形態2における命令実行機構
10aが、図14に示すプログラムを実行した場合の動
作タイミングを示すタイミングチャートである。
【図16】図11に示す追加命令を用いたプログラムの
さらに他の一例を示す図である。
【図17】本発明の実施の形態2における命令実行機構
10aが、図16に示すプログラムを実行した場合の動
作タイミングを示すタイミングチャートである。
【図18】本発明の実施の形態3における実時間プロセ
ッサの概略構成を示すブロック図である。
【図19】本発明の実施の形態3における命令実行機構
10bに付加された追加命令の一覧を示す図である。
【図20】図19に示す追加命令を用いたプログラムの
一例を示す図である。
【図21】本発明の実施の形態3における命令実行機構
10bが、図20に示すプログラムを実行した場合の動
作タイミングを示すタイミングチャートである。
【図22】本発明の実施の形態4における実時間プロセ
ッサの概略構成を示すブロック図である。
【図23】本発明の実施の形態4における命令実行機構
10cに付加された追加命令の一覧を示す図である。
【図24】図23に示す追加命令を用いたプログラムの
一例を示す図である。
【図25】本発明の実施の形態5における実時間プロセ
ッサの概略構成を示すブロック図である。
【図26】本発明の実施の形態5における実時間プロセ
ッサ1dおよびクロック制御器50の概略構成を示すブ
ロック図である。
【図27】組合せ回路90の動作を説明するための図で
ある。
【図28】組合せ回路93の動作を説明するための図で
ある。
【図29】クロック制御器50によるクロックの制御を
説明するためのタイミングチャートの一例である。
【図30】クロック制御器50によるクロックの制御を
説明するためのタイミングチャートの他の一例である。
【図31】クロック制御器50によるクロックの制御を
説明するためのタイミングチャートのさらに他の一例で
ある。
【図32】本発明の実施の形態6における実時間プロセ
ッサの概略構成を示すブロック図である。
【図33】本発明の実施の形態6における命令実行機構
10eに付加された追加命令の一覧を示す図である。
【図34】論理タイマ値の変化を示すグラフである。
【図35】論理時刻値を一定に保った場合の論理タイマ
値と論理時刻値との関係を示すグラフである。
【図36】論理時刻値を一定に保った場合の論理タイマ
値、論理時刻値、実タイマ値および実時刻値の関係を示
すグラフである。
【図37】一定時間間隔でイベントを起こす場合のグラ
フである。
【図38】一定増加率で長くなる時間間隔でイベントを
起こす場合のグラフである。
【図39】あるイベントが発生してから一定時間経過後
に別のイベントを起こす場合のグラフである。
【図40】従来のマイクロプロセッサの概略構成を示す
ブロック図である。
【符号の説明】 1,1a,1b,1c,1d,1e 実時間プロセッサ 2 メモリ装置 3 入出力装置 10,10a,10b,10c,10d,10e 命令
実行機構 11 タイマレジスタ 12 時刻レジスタ 13 時刻比較器 14,30,31,74 セレクタ 15,32 減算器 16,76 インクリメンタ 21 実行時間レジスタ 22 TFレジスタ 23,90,93 組合せ回路 40 レジスタファイル 41 ALU 42 RBUS 43 ABUS 44 BBUS 50 クロック制御器 60 出力レジスタ 61 入力バッファ 70 命令取り込みステージ 71 命令解釈ステージ 72 命令実行ステージ 73 実行遅延回路 75 プログラムカウンタ 77,78,79,83 AND回路 80,81,82,94 OR回路 91 クロック発生回路 92 分周器
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/78 510 G06F 1/04 351A

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 所定間隔で時刻を更新するタイマレジス
    タと、 任意の時刻を記憶する時刻レジスタと、 前記タイマレジスタの時刻と前記時刻レジスタに記憶さ
    れる時刻とを比較する時刻比較器と、 前記時刻比較器の比較結果によって実行状況が変化する
    命令を実行する命令実行機構とを含む実時間プロセッ
    サ。
  2. 【請求項2】 前記実時間プロセッサはさらに、前記タ
    イマレジスタの時刻から所定値を減算して前記タイマレ
    ジスタに設定し、前記時刻レジスタに記憶される時刻か
    ら前記所定値を減算して前記時刻レジスタに設定するた
    めの手段を含む、請求項1記載の実時間プロセッサ。
  3. 【請求項3】 前記時刻比較器は、前記タイマレジスタ
    の時刻と前記時刻レジスタに記憶される時刻とが一致し
    ていることを検出するための手段と、 前記タイマレジスタの時刻が前記時刻レジスタに記憶さ
    れる時刻よりも大きいことを検出するための手段とを含
    む、請求項1または2記載の実時間プロセッサ。
  4. 【請求項4】 前記命令実行機構は、前記時刻比較器の
    比較結果に依存して分岐するか否かが変化する時刻依存
    命令を実行する手段を含む、請求項1〜3のいずれかに
    記載の実時間プロセッサ。
  5. 【請求項5】 前記命令実行機構は、前記時刻比較器の
    比較結果に依存して命令実行を遅延する時刻依存命令を
    実行する手段を含む、請求項1〜4のいずれかに記載の
    実時間プロセッサ。
  6. 【請求項6】 前記時刻依存命令は、前記時刻比較器の
    比較結果に依存して実行が一時的に遅延されるメモリ参
    照命令である、請求項5記載の実時間プロセッサ。
  7. 【請求項7】 前記時刻依存命令は、前記時刻比較器の
    比較結果に依存して実行が一時的に遅延される入出力ポ
    ート参照命令である、請求項5記載の実時間プロセッ
    サ。
  8. 【請求項8】 前記時刻依存命令は、次に実行される命
    令が前記時刻比較器の比較結果に依存して一時的に実行
    が遅延される命令であることを指定する修飾命令であ
    る、請求項5記載の実時間プロセッサ。
  9. 【請求項9】 前記実時間プロセッサはさらに、前記命
    令実行機構によって参照され、前記命令実行機構によっ
    て前記時刻依存命令が実行された時刻を保存する実行時
    刻レジスタを含む、請求項4〜8のいずれかに記載の実
    時間プロセッサ。
  10. 【請求項10】 前記実時間プロセッサはさらに、前記
    命令実行機構によって前記時刻依存命令が実行された時
    点における前記時刻比較器の比較結果を保存するフラグ
    レジスタを含み、 前記命令実行機構はさらに、前記フラグレジスタの値に
    よって実行状況が変化する実行時刻依存命令を実行する
    ための手段を含む、請求項4〜8のいずれかに記載の実
    時間プロセッサ。
  11. 【請求項11】 前記実行時刻依存命令は、前記フラグ
    レジスタの値に依存して分岐するか否かが変化する条件
    分岐命令である、請求項10記載の実時間プロセッサ。
  12. 【請求項12】 前記実時間プロセッサはさらに、前記
    タイマレジスタの時刻から前記時刻レジスタに記憶され
    る時刻を減算し、該減算結果を前記タイマレジスタに設
    定し、前記時刻レジスタに所定時刻を設定するための手
    段を含む、請求項1記載の実時間プロセッサ。
  13. 【請求項13】 前記実時間プロセッサはさらに、前記
    時刻レジスタに記憶される時刻から前記タイマレジスタ
    の時刻を減算し、該減算結果を前記時刻レジスタに設定
    し、前記タイマレジスタに所定時刻を設定するための手
    段を含む、請求項1記載の実時間プロセッサ。
  14. 【請求項14】 前記命令実行機構は、汎用レジスタ
    と、 前記タイマレジスタ、前記時刻レジスタおよび前記汎用
    レジスタに保持される値を任意の組み合わせで演算し、
    該演算結果を前記タイマレジスタ、前記時刻レジスタお
    よび前記汎用レジスタの中のいずれかに記憶させる演算
    回路とを含む、請求項1記載の実時間プロセッサ。
  15. 【請求項15】 前記実時間プロセッサはさらに、前記
    命令実行機構に入力されるクロック周波数を制御するク
    ロック制御器を含む、請求項1記載の実時間プロセッ
    サ。
  16. 【請求項16】 前記クロック制御器は、前記時刻比較
    器の比較結果に依存して命令実行を遅延する時刻依存命
    令が前記命令実行機構によって実行されている場合は、
    前記クロックの出力を停止するための手段を含む、請求
    項15記載の実時間プロセッサ。
  17. 【請求項17】 前記命令実行機構は、外部に接続され
    る入出力装置から入力する値を汎用レジスタとして参照
    する命令を実行するための手段を含む、請求項1記載の
    実時間プロセッサ。
  18. 【請求項18】 前記命令実行機構は、汎用レジスタに
    値を書き込むことにより、外部に接続される入出力装置
    へ値を出力する命令を実行するための手段を含む、請求
    項1または17記載の実時間プロセッサ。
  19. 【請求項19】 プロセッサにおける命令実行方法であ
    って、 所定間隔で時刻を更新するステップと、 任意の時刻を記憶するステップと、 前記更新された時刻と前記記憶される任意の時刻とを比
    較するステップと、 前記比較結果によって実行状況が変化する命令を実行す
    るステップとを含む命令実行方法。
  20. 【請求項20】 前記命令実行方法はさらに、前記更新
    された時刻から所定値を減算するステップと、 前記記憶される任意の時刻から所定値を減算するステッ
    プとを含む、請求項19記載の命令実行方法。
JP11137638A 1999-05-18 1999-05-18 実時間プロセッサおよび命令実行方法 Withdrawn JP2000330785A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11137638A JP2000330785A (ja) 1999-05-18 1999-05-18 実時間プロセッサおよび命令実行方法
US09/573,258 US7069425B1 (en) 1999-05-18 2000-05-18 Real-time processor executing predetermined operation defined by program correctly at predetermined time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11137638A JP2000330785A (ja) 1999-05-18 1999-05-18 実時間プロセッサおよび命令実行方法

Publications (1)

Publication Number Publication Date
JP2000330785A true JP2000330785A (ja) 2000-11-30

Family

ID=15203330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11137638A Withdrawn JP2000330785A (ja) 1999-05-18 1999-05-18 実時間プロセッサおよび命令実行方法

Country Status (2)

Country Link
US (1) US7069425B1 (ja)
JP (1) JP2000330785A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004719A (ja) * 2005-06-27 2007-01-11 Sony Computer Entertainment Inc エミュレート装置及びエミュレート方法
JP2009507299A (ja) * 2005-09-02 2009-02-19 アステリオン・インコーポレイテッド 決定性処理を遂行するシステム及び方法
US7991986B2 (en) 2006-09-20 2011-08-02 Denso Corporation Microprocessor starting to execute a computer program at a predetermined interval

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260907A1 (en) * 2006-05-02 2007-11-08 Dixon Martin G Technique to modify a timer
US9983905B2 (en) 2012-12-06 2018-05-29 White Eagle Sonic Technologies, Inc. Apparatus and system for real-time execution of ultrasound system actions
US9773496B2 (en) 2012-12-06 2017-09-26 White Eagle Sonic Technologies, Inc. Apparatus and system for adaptively scheduling ultrasound system actions
US10076313B2 (en) 2012-12-06 2018-09-18 White Eagle Sonic Technologies, Inc. System and method for automatically adjusting beams to scan an object in a body
US10499884B2 (en) 2012-12-06 2019-12-10 White Eagle Sonic Technologies, Inc. System and method for scanning for a second object within a first object using an adaptive scheduler
US9529080B2 (en) 2012-12-06 2016-12-27 White Eagle Sonic Technologies, Inc. System and apparatus having an application programming interface for flexible control of execution ultrasound actions
CN104317685A (zh) * 2014-10-14 2015-01-28 英业达科技有限公司 计算器系统的启动方法
US11829187B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions
US11829767B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Register scoreboard for a microprocessor with a time counter for statically dispatching instructions
US11954491B2 (en) 2022-01-30 2024-04-09 Simplex Micro, Inc. Multi-threading microprocessor with a time counter for statically dispatching instructions
US12001848B2 (en) 2022-01-30 2024-06-04 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions with phantom registers
US11829762B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Time-resource matrix for a microprocessor with time counter for statically dispatching instructions
US20230315474A1 (en) * 2022-04-05 2023-10-05 Simplex Micro, Inc. Microprocessor with apparatus and method for replaying instructions

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040021A (en) * 1975-10-30 1977-08-02 Bell Telephone Laboratories, Incorporated Circuit for increasing the apparent occupancy of a processor
US4101761A (en) * 1976-11-26 1978-07-18 Pacific Western Systems Timing pulse generator
US4497023A (en) * 1982-11-04 1985-01-29 Lucasfilm Ltd. Linked list of timed and untimed commands
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4887279A (en) * 1988-09-19 1989-12-12 Tektronix, Inc. Timing measurement for jitter display
JPH05233277A (ja) 1992-02-21 1993-09-10 Fujitsu Ltd マイクロプロセッサ
US5546037A (en) * 1993-11-15 1996-08-13 Cirrus Logic, Inc. NAPNOP circuit for conserving power in computer systems
JPH07248958A (ja) * 1994-03-14 1995-09-26 Fujitsu Ltd メモリ制御方式
JP2836552B2 (ja) * 1995-11-20 1998-12-14 日本電気株式会社 分散型ネットワーク障害回復装置
JP3463460B2 (ja) * 1996-05-20 2003-11-05 ヤマハ株式会社 データ伝送方式
US6115083A (en) * 1996-11-08 2000-09-05 Texas Instruments Incorporated Load/reset sequence controller for spatial light modulator
US5966544A (en) * 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture
US5958044A (en) * 1997-01-24 1999-09-28 Texas Instruments Incorporated Multicycle NOP
JPH1117528A (ja) * 1997-06-23 1999-01-22 Mitsubishi Electric Corp 出力タイマ
US6000029A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for affecting subsequent instruction processing in a data processor
US6370638B1 (en) * 1997-11-21 2002-04-09 Matsushita Electric Industrial Co., Ltd. Apparatus and method of computer program control in computer systems using pipeline processing
US6230263B1 (en) * 1998-09-17 2001-05-08 Charles P. Ryan Data processing system processor delay instruction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004719A (ja) * 2005-06-27 2007-01-11 Sony Computer Entertainment Inc エミュレート装置及びエミュレート方法
JP2009507299A (ja) * 2005-09-02 2009-02-19 アステリオン・インコーポレイテッド 決定性処理を遂行するシステム及び方法
US8719556B2 (en) 2005-09-02 2014-05-06 Bini Ate Llc System and method for performing deterministic processing
US9189239B2 (en) 2005-09-02 2015-11-17 Bin1 Ate, Llc System and method for performing deterministic processing
US7991986B2 (en) 2006-09-20 2011-08-02 Denso Corporation Microprocessor starting to execute a computer program at a predetermined interval

Also Published As

Publication number Publication date
US7069425B1 (en) 2006-06-27

Similar Documents

Publication Publication Date Title
JP2000330785A (ja) 実時間プロセッサおよび命令実行方法
Hamann et al. Communication centric design in complex automotive embedded systems
TWI481993B (zh) 用於多核心及執行緒的時間戳記計數器偏移的控制設備、方法及系統與處理器
US5987620A (en) Method and apparatus for a self-timed and self-enabled distributed clock
US7921317B2 (en) Method and apparatus for synchronizing central processing units in a multiprocessor apparatus
EP0365188A2 (en) Central processor condition code method and apparatus
JP4749431B2 (ja) パイプラインスループットを促進するための方法及び装置
KR20170001568A (ko) 영구 커밋 프로세서들, 방법들, 시스템들 및 명령어들
US20170329877A1 (en) Method for creating an fpga netlist
WO2018149495A1 (en) A method and system to fetch multicore instruction traces from a virtual platform emulator to a performance simulation model
WO2017088456A1 (zh) 多输入多输出处理器流水线数据同步装置及方法
JPH08221272A (ja) 命令キャッシュに命令をロードする方法
US11379242B2 (en) Methods and apparatus for using load and store addresses to resolve memory dependencies
JPH1078887A (ja) デバッグシステム及びデバッグ方法
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
KR100321745B1 (ko) 외부메모리액세스를위한마이크로컨트롤러유닛
JPH07182170A (ja) マイクロプロセッサ
EP1121630A1 (en) Calendar clock caching in a multiprocessor system
US7861067B1 (en) Adjustable cycle pipeline system and method
US6920547B2 (en) Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor
JP2001014161A (ja) プログラマブルコントローラ
US6427205B1 (en) Digital signal processor and processor reducing the number of instructions upon processing condition execution instructions
JP5501074B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法
US20230244955A1 (en) Decision Diagram-Based Management of a Computer System or its Part
JP2002082813A (ja) プログラムロジック装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060801