JPH10268968A - 計算機のタイマ - Google Patents

計算機のタイマ

Info

Publication number
JPH10268968A
JPH10268968A JP9071259A JP7125997A JPH10268968A JP H10268968 A JPH10268968 A JP H10268968A JP 9071259 A JP9071259 A JP 9071259A JP 7125997 A JP7125997 A JP 7125997A JP H10268968 A JPH10268968 A JP H10268968A
Authority
JP
Japan
Prior art keywords
timer
output
register
value
program
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
JP9071259A
Other languages
English (en)
Inventor
Kazuo Horikawa
和雄 堀川
Hiroshi Yashiro
寛 屋代
Hideki Murayama
秀樹 村山
Masahiko Yamauchi
雅彦 山内
Takehisa Hayashi
林  剛久
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 JP9071259A priority Critical patent/JPH10268968A/ja
Publication of JPH10268968A publication Critical patent/JPH10268968A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】プログラムの変更無しかつ操作者によるタイマ
速度変更無しにプログラムの処理結果の表示保持時間を
変化させることが可能とし、当該プログラムおよび当該
プログラムを実行する計算機のデバッグを容易にする。 【解決手段】計算機100は、表示装置103に表示を
行なった後にタイマ105の値が一定値以上変化するの
を待つプログラム200を実行する。タイマ105はタ
イマ速度を指定するレジスタ306を持つ。出力装置1
03中に、特定のパタンを出力データとして受け付けた
場合にレジスタ306をタイマ速度を遅くするように設
定する機構を持つ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機のタイマお
よびタイマ速度を操作する機構に関連する。
【0002】また、タイマを使用するプログラムおよ
び、このプログラムを実行する計算機ハードウェアのデ
バッグに関連する。
【0003】
【従来の技術】タイマとは値を保持するカウンタであ
り、時間の経過に比例して値が変化する。タイマはハー
ドウェアの場合例えばバイナリカウンタにより実現され
る。
【0004】タイマが取り得る最小の値を下限値と呼
び、タイマが取り得る最大の値を上限値と呼ぶ。16ビ
ットのバイナリカウンタの場合、下限値は0であり、上
限値は65535である。バイナリカウンタは、上限値
に対して1を加算すると下限値になり、下限値に対して
1を減算すると上限値になる。また、タイマが時間の経
過に比例して値が変化するという意味は、一定時間の経
過に対してタイマ値が一定値(例えば1秒あたり100
0)だけ増加する、もしくは一定時間の経過に対してタ
イマ値が一定値(例えば1秒あたり1000)だけ減少
することを言う。
【0005】このようなタイマには、例えばIntel
Corporationが提供する8254チップが
ある。
【0006】8254チップについてはSAMSの「I
nterfacing to the IBM Per
sonal Computer」,Second Ed
ition、ISBN0−672−22722−3の第
291ページから第292ページに記載されている。
【0007】ハードウェアのタイマは、メモリアドレス
にマップされているか処理装置のレジスタである。タイ
マがメモリアドレスにマップされている場合には、処理
装置はメモリリード命令もしくはI/O命令によりタイ
マ値を読みとることが出来る。
【0008】このようなタイマには、例えばPerso
nal Computer ATのリアルタイムクロッ
ク(RTC)がある。
【0009】Personal Computer A
TのリアルタイムクロックについてはCQ出版株式会社
の「Boot Strap Project−2 N
o.4」,ISBN4−7898−3499−9の第3
6ページに記載されている。
【0010】タイマが処理装置のレジスタである場合に
は、レジスタを参照する命令によりタイマ値を読みと
る。
【0011】このようなタイマには、例えばHewle
tt−Packard CompanyのPA−RIS
C1.1のインターバルタイマがある。PA−RISC
1.1のインターバルタイマについては、Prenti
ce Hall PTRの「PA−RISC 2.0
Architecture」ISBN0−13−182
734−0のページ2−5に記載されている。
【0012】また、タイマはソフトウェアで実現するこ
とも出来る。このようなタイマをタイマソフトウェアと
呼ぶ。タイマソフトウェアは例えば次のように実現され
る。タイマソフトウェアは、オペレーティングシステム
のタイマ割り込み機能を利用し、例えば1ミリ秒に1回
タイマ割り込みにより起動される。
【0013】オペレーティンギシステムは、前述のハー
ドウェアで実現されるタイマを利用してタイマ割り込み
機能を実現する。オペレーティングシステムのタイマ割
り込み機能については「Modern Operati
ng Systems」,Andrew S.Tane
nbaum,ISBN0−13−588187−0の第
222ページに記載されている。
【0014】タイマソフトウェアはタイマ割り込みのた
びに、タイマソフトウェアがソフトウェア的にもつカウ
ンタを一定値、例えば1増加させる。
【0015】以上のように1ミリ秒毎にタイマ値が1増
加するタイマソフトウェアを実現できる。タイマ値をプ
ログラム間で共有される共有メモリに保持することによ
り、タイマを利用するプログラムがタイマ値を読みとる
ことが出来る。
【0016】さて、以上示したタイマを使用するプログ
ラムとして、次のようなプログラムがある。すなわち、
処理Aが完了すると処理Aの結果を操作者に対して伝達
するために表示装置等の出力装置を介して出力を行い、
次の処理Bを行う前に操作者が出力を読みとる等の認知
を行なうために十分な時間だけ待つというプログラムで
ある。
【0017】処理Aの結果出力内容は、処理Aのプログ
ラム部分および処理Aが使用する計算機ハードウェア部
分に依存する。操作者が期待する出力内容が得られない
場合、処理Aのプログラム部分もしくは処理Aのプログ
ラム部分が使用する計算機ハードウェア部分にバグがあ
ることが分かる。
【0018】プログラムにおいて一定時間待つための方
法として一般的な方法がタイマを使用する方法、すなわ
ちタイマ待ちである。タイマ待ちには、一定値(例えば
10000)タイマ値が変化するまでタイマ値を読み続
けるポーリング方式、またはタイマ値が一定値(例えば
10000)変化した時に割り込みが発生する割り込み
方式がある。
【0019】ところで、操作者は、すでにデバッグが完
了したプログラムの部分に関する出力には、興味がない
場合が多い。このような場合には、すでにデバッグが完
了した部分の出力保持時間を短く出来れば、操作者にと
って不都合なく、デバッグに費やす時間が短縮できる。
例えば、処理A,Bの順に実行を行なうプログラムにお
いて、処理Aに関してデバッグが完了しており、処理B
のデバッグが未完の場合には、処理Aの結果出力保持時
間を短くできれば、処理Bのデバッグに費やす時間が短
縮される。
【0020】結果出力保持時間を短くするということ
は、出力を行なった後のタイマ待ちの長さを短くすると
いうことである。このようなタイマ待ちの長さの変更
は、従来の方法としては、プログラムを直接書き換える
ことにより実現した。プログラムの書き換えとは、例え
ば、タイマが10000変化するまで待つ処理をタイマ
が1000変化するまで待つ処理に書き換えることをい
う。このような変更を施した場合、1秒あたり1000
変化するタイマを使用している場合には、タイマ待ちの
時間は10秒から1秒に短縮される。
【0021】しかし、プログラム中にはタイマ待ちを行
なう箇所は複数ある。また、デバッグの進み具合に応じ
て操作者が変更したい箇所は変化し、そのたびにプログ
ラムを変更する必要がある。このため、プログラム変更
による任意のタイマ待ち箇所の待ち時間の長さ変更は困
難である。
【0022】またタイマ待ちが一つの手続きになってお
り、タイマ待ちはこの手続きを呼び出すことによって実
現するプログラムも従来存在する。このようなプログラ
ムの場合、タイマ待ちの手続きだけを変更することによ
りタイマ待ちの長さを変更できる。しかし、この手続き
を呼び出すことにより実現されるタイマ待ちの長さは全
て同じになり、任意の箇所のタイマ待ちの長さだけを変
更することは出来ない。
【0023】またプログラムの開始時にタイマ待ちの長
さを指定し、タイマ待ち部分でこの指定された長さだけ
タイマ待ちするプログラムも従来存在した。例えばプロ
グラム中の全てのタイマ待ちは、タイマ値が10000
変化するまで待つ処理である等の指定を行なうプログラ
ムである。このようなプログラムではプログラムの変更
は行なわずともタイマ待ちの長さを変更可能であるが、
やはりタイマ待ちの長さは全て同じになり、任意の箇所
のタイマ待ちの長さだけを変更することが出来ない。
【0024】また、プログラムが外部調達であり、プロ
グラムのソースコードを持っていない場合もある。この
ような場合にもプログラムの変更は困難である。
【0025】一方、プログラムを変更せずにタイマ待ち
の長さを変更することは、一定時間内に増加(減少)す
るタイマ値を可変とすることにより実現可能である。一
定時間内に増加(減少)するタイマ値を以下タイマ速度
と呼ぶ。タイマ速度はタイマに含まれる速度指定手段に
より指定する。タイマがハードウェアのみの場合、速度
指定手段は例えばクロック速度指定レジスタであり、タ
イマがソフトウェアの場合、速度指定手段は例えばタイ
マソフトウェアと他のプログラムとが共有する変数であ
る。タイマ速度指定手段は、従来操作者が操作してい
た。そのため、タイマ速度を変更したいタイミングに間
に合わない等の問題があった。
【0026】
【発明が解決しようとする課題】以上示したように、タ
イマを使用するプログラムおよびこのプログラムを実行
する計算機ハードウェアのデバッグを容易にするために
は、プログラムの任意のタイマ待ち箇所のタイマ待ちの
長さ変更が効果がある。しかし、工数大またはプログラ
ムのソースコードが無いという理由によりプログラムの
変更によるタイマ待ちの長さ変更は困難である。
【0027】また、タイマ速度を変更したいタイミング
に間に合わない等の操作ミスが避けられないという理由
により、可変速タイマの速度指定手段を操作者が変更す
ることも困難であった。
【0028】本発明は、プログラムの変更無しかつ操作
者によるタイマ速度変更無しにプログラムの処理結果の
出力保持時間を変化させることを可能とすることを目的
とする。
【0029】
【課題を解決するための手段】本発明の機構は(1)出
力装置に出力データのうちN個(Nは1以上の整数)の
最新出力データを保持するFIFOレジスタと、(2)
FIFOレジスタと同一の大きさのデータを保持するパ
タン保持レジスタと、(3)該FIFOレジスタと該パ
タン保持レジスタの内容が同一であると判定した場合に
クロック指定レジスタに設定するための値を保持するタ
イマ速度指定レジスタと、(4)該FIFOレジスタと
該パタン保持レジスタとの同一性を判定する装置と、
(5)クロック指定レジスタを操作する装置であって、
該同一性を判定する装置が同一でないと判定した場合に
は、何も行なわず、該同一性を判定する装置が同一であ
ると判定した場合には、該タイマ速度指定値を該クロッ
ク指定レジスタに設定する装置とから構成される。
【0030】本発明の機構が、結果出力パタンに対応し
てタイマ速度指定手段を操作する。
【0031】本発明の機構により、プログラムの変更無
しかつ操作者によるタイマ速度変更無しにプログラムの
処理結果の出力保持時間を変化させることが可能とな
る。
【0032】また、本発明の機構は計算機のシステムバ
スには影響を与えない。このため、プログラムの動作お
よび計算機ハードウェアの動作に影響を与えずに、タイ
マ速度変更を行なうことが可能となる。
【0033】
【発明の実施の形態】
(第1の実施形態)時間の経過に対して単調に値が増加
するタイマについてのみ言及するが、時間の経過に対し
て単調に値が減少するタイマについても本発明を適用す
ることが可能である。
【0034】また、タイマ値の下限値を0、上限値を6
5535とするが、下限値および上限値が他の値でも、
本発明を適用することは可能である。また、本発明をソ
フトウェアのタイマに適用することも可能である。
【0035】図1に本発明のタイマを実施する計算機を
示す。
【0036】計算機100は、演算処理を行なうための
処理装置101、プログラムおよびデータを格納するた
めの記憶装置102、操作者に計算機の状態を伝達する
ための表示装置103、外部記憶装置104、および処
理装置が時間経過を知るためのタイマ105から構成さ
れる。例えば、処理装置101はマイクロプロセッサで
あり、記憶装置102は半導体メモリであり、表示装置
103は文字表示端末であり、外部記憶装置104は磁
気ディスクである。処理装置101、記憶装置102、
表示装置103、外部記憶装置104、タイマ105
は、システムバス106により接続され、相互にデータ
を交換する。表示装置は出力装置の1実施形態である。
この場合、出力データは文字コードデータおよび画像フ
ォーマットデータであり、出力表現は、文字、画像、文
字および画像である。出力装置が音源装置であり、出力
データが音の高さと音の大きさの組等の時系列データで
あり、出力表現が音声である等の実施形態も可能であ
る。
【0037】この計算機上で動作するプログラムを図2
に示す。プログラム200はまず、先行処理201を行
なうことを指示する。
【0038】処理装置101は、先行処理201が完了
すると、処理A202、処理B204の順番に処理を行
なう。処理A202は例えば外部記憶装置104の初期
化処理であり、処理B204は外部記憶装置104から
データをロードする処理であるとする。処理Bが完了す
ると、後続処理208を行なう。
【0039】処理A202、処理B204のそれぞれの
完了時に、処理結果を操作者に知らせるために、表示装
置を介して処理結果を表示する。処理装置101はそれ
ぞれの表示を操作者が読みとることが出来るように、表
示後に、タイマ待ちもしくは入力待ちを行なうよう、プ
ログラム200により指示される。処理A202の結果
表示は、例えば外部記憶装置104の構成情報と、‘D
ISK OK’‘BOOT’の文字を表示するものであ
る。
【0040】タイマ待ちとはタイマ値がδ以上増加する
ことを待つことを言う。すなわち、タイマ待ちを開始し
た時のタイマ値s、現在のタイマ値をt、タイマの最小
値を0、タイマの最大値+1をMとした場合、
「(((t−s)+M)mod M)≧δ」の条件が真
となるまで待つことを言う。ただし(a mod b)
はaをbで割った剰余を意味する。
【0041】プログラム200では、処理Aとその処理
結果表示202の後にタイマ待ち203を行ない、処理
Bとその処理結果表示204の後にタイマ待ち205を
行なう。タイマ待ち203およびタイマ待ち205は、
ともにタイマ値が10000増加するまで待つことであ
るとする。
【0042】タイマ待ちの方法には、一定値だけタイマ
値が変化するまで処理装置101がタイマ値を読み続け
て待つポーリング方式と、一定値だけタイマ値が変化し
た時にタイマ105から処理装置101に割り込みが発
生し、割り込みを受け付けた処理装置101が後続処理
を続行する割り込み方式とがある。以降はポーリング方
式のみの説明を行なうが、割り込み方式でも本発明を適
用することは可能である。
【0043】ここで、外部記憶装置104の初期化処理
である処理A202のデバッグが完了しているため、そ
の結果表示には興味は無いが、データのロード処理であ
る処理Bの結果表示には興味がある場合がある。
【0044】タイマ速度が可変でない場合には、例えば
タイマ値が1秒間に増加する大きさが1000の場合、
タイマ待ち203およびタイマ待ち205は共に10秒
待つことを意味し、興味の無い処理Aの結果表示も興味
のある処理Bの結果表示も共に10秒保持される。しか
し、興味の無い処理Aの結果表示を10秒保持すること
は無駄である。
【0045】このような場合、処理Aと結果表示202
およびタイマ待ち203を行なう間は、タイマ速度(タ
イマ値が一定時間内に増加する大きさ)を大きく、例え
ば1秒あたり10000にし、処理Bと結果表示204
およびタイマ待ち205を行なう間は、タイマ速度を小
さく、例えば1秒あたり1000にする。この場合、興
味の無い処理Aの結果表示は1秒だけ保持され、興味の
ある処理Bの結果表示は10秒保持される。
【0046】タイマ速度は、以下のように変化させる。
ここでは、タイマ速度を2つの値の中から選択可能な実
施例のみを示す。しかし、タイマ速度を、2つより多く
の値の中から選択可能とすることも出来る。
【0047】図3はタイマ105の構成図である。タイ
マ105は、システムバスインタフェース301、16
ビットバイナリカウンタ302、選択回路303、10
00Hzクロック発生器304、10000Hzクロッ
ク発生器305、およびクロック指定レジスタ306に
より構成される。16ビットバイナリカウンタ302
は、0以上65535以下のカウンタ値を保持し、クロ
ック信号312から入力されるクロックごとにカウンタ
値を1増加させる。クロック入力前にカウンタ値が65
535である場合には、クロック入力後のカウンタ値は
0となる。16ビットバイナリカウンタ302のカウン
タ値は、カウンタ値信号311としてシステムバスイン
タフェース301に出力される。システムバスインター
フェース301は、処理装置101からタイマ105に
対して発行されるメモリリード命令に対応して、カウン
タ値信号311から得られるカウンタ値をタイマ値とし
て、処理装置101に伝達する。
【0048】1000Hzクロック発生器304は、1
秒あたり1000回のクロック信号を、1000Hzク
ロック信号313として選択回路303に出力する。1
0000Hzクロック発生器305は、1秒あたり10
000回のクロック信号を、10000Hzクロック信
号314として選択回路303に出力する。
【0049】クロック指定レジスタ306は1ビットレ
ジスタである。クロック指定レジスタ306の値が0の
場合クロック選択信号315の値は0となり、クロック
指定レジスタ306の値が1の場合クロック選択信号3
15の値は1となる。クロック指定レジスタ306の値
はリセット時には1であるものとする。
【0050】選択回路303は、1000Hzクロック
信号313、10000Hzクロック信号314、およ
びクロック選択信号315を入力とし、クロック信号3
12を出力する。クロック信号312は、クロック選択
信号315の値が0の場合は1000Hzクロック信号
313と同じ値となり、クロック選択信号315の値が
1の場合は10000Hzクロック信号314と同じ値
となる。
【0051】以上の構成により16ビットバイナリカウ
ンタ302の値は、クロック指定レジスタ306の値が
0の場合には1秒あたり1000だけ増加し、クロック
指定レジスタ306の値が1の場合には1秒あたり10
000だけ増加する。
【0052】このような構成のタイマ105を用いる
と、クロック指定レジスタ値を変化させることにより、
タイマ速度を変化させることが出来る。
【0053】図4は、本発明の特徴である、出力パタン
対応クロック指定レジスタ操作機構の構成を表す図であ
る。システムバスインタフェース401、文字端末装置
402、出力パタン対応クロック指定レジスタ操作機構
403から構成される。システムバスインタフェース4
01は、システムバス106から出力データを受け取
り、文字端末402と出力パタン対応クロック指定レジ
スタ操作機構403の両方に対し、受け取った出力デー
タを出力データ信号421を介して渡す。
【0054】文字端末402は、受け取った出力データ
を操作者が可読な文字情報に変換する。
【0055】出力パタン対応クロック指定レジスタ操作
機構403は、受け取った出力データのパタンに依存し
て、タイマ105中のクロック指定レジスタ306の値
を操作変更する。出力パタン対応クロック指定レジスタ
操作機構403は、FIFOレジスタ411、パタン保
持レジスタ412、タイマ速度指定レジスタ413、パ
タン比較回路414、タイマ速度指定回路415から構
成される。
【0056】FIFOレジスタ411は例えば出力デー
タが8ビットバイトの場合、8ビットバイトをN個保持
できるシフトレジスタで構成する。FIFOレジスタ4
11は、出力パタン対応クロック指定レジスタ操作機構
403が受け取った出力データをFIFO的に蓄える。
例えばNが10であり、16進数表記で0x44、0x
49、0x53、0x4B、0x20、0x4F、0x
4B、0x0A、0x42、0x4F、0x4Fの順に
11バイトの出力データを受け付けた場合、FIFOレ
ジスタ411は16進数表記で0x49534B204
F4B0A424F4Fというデータを保持する。これ
は‘ISK’スペース文字‘OK’改行文字‘BOO’
というASCII文字列を表す。この後、出力パタン対
応クロック指定レジスタ操作機構403が16進数表記
で0x54という出力データを受け取った場合、FIF
Oレジスタ411は16進数表記で0x534B204
F4B0A424F4F54というデータを保持する。
これは‘SK’スペース文字‘OK’改行文字‘BOO
T’というASCII文字列を表す。
【0057】パタン保持レジスタ412は8ビットバイ
トをN個保持できるレジスタで構成する。パタン保持レ
ジスタ412の内容は例えば16進数表記で0x000
000000000424F4F54というデータを保
持する。これは先頭6文字がヌル文字であり残り4文字
が‘BOOT’であるASCII文字列を意味する。こ
こでヌル文字はすべての文字に対応することを表す文字
であるとする。パタン保持レジスタ412は操作者によ
って書き換え可能であってよい。
【0058】パタン比較回路414はFIFOレジスタ
出力信号422からFIFOレジスタ411の内容を受
け取り、パタン保持レジスタ出力信号423からパタン
保持レジスタ412の内容を受け取る。また、FIFO
レジスタ411の内容とパタン保持レジスタ412の内
容との同一性を判定し、パタン比較回路出力信号424
を介して比較結果を出力する。同一であると判定した場
合はパタン比較回路出力信号424は1であり、同一で
ないと判定した場合はパタン比較回路出力信号424は
0である。FIFOレジスタ411の内容とパタン保持
レジスタ412の内容とが同一であると判定するとは、
1以上N以下のすべての整数nに対して、FIFOレジ
スタ411のn番目の8ビットレジスタの内容とパタン
保持レジスタ412のn番目の8ビットレジスタの内容
とが同一であると判定することを意味する。FIFOレ
ジスタ411のn番目の8ビットレジスタの内容とパタ
ン保持レジスタ412のn番目の8ビットレジスタの内
容とが同一であると判定するとは、パタン保持レジスタ
412のn番目の8ビットレジスタの内容が16進数表
記で0x00であるか、FIFOレジスタ411のn番
目の8ビットレジスタの内容とパタン保持レジスタ41
2のn番目の8ビットレジスタの内容とが同一であるこ
とを意味する。
【0059】パタン保持レジスタ412の内容が16進
数表記で0x000000000000424F4F5
4であり、FIFOレジスタ411の内容が16進数表
記で0x49534B204F4B0A424F4の場
合、パタン比較回路信号424は0である。また、パタ
ン保持レジスタ412の内容が16進数表記で0x00
0000000000424F4F54であり、FIF
Oレジスタ411の内容が16進数表記で0x534B
204F4B0A424F4F54の場合、パタン比較
回路出力信号424は1である。
【0060】タイマ速度指定レジスタ413は、クロッ
ク指定レジスタ306に設定可能な値を保持する。
【0061】タイマ速度指定回路415は、パタン比較
結果をパタン比較回路出力信号424を介して受け取
り、タイマ速度指定レジスタ413の内容をタイマ速度
指定レジスタ出力信号425を介して受け取る。パタン
比較回路出力信号424の値が0の場合、タイマ速度指
定回路415は何も行なわない。パタン比較回路出力信
号424の値が1の場合、タイマ速度指定回路415
は、タイマ速度指定信号426を介して、タイマ速度指
定レジスタ413の内容をクロック指定レジスタ306
に設定する。
【0062】パタン保持レジスタ412の内容が16進
数表記で0x000000000000424F4F5
4であり、タイマ速度指定レジスタ413の内容が0で
あり、クロック指定レジスタ306の内容が1であり、
FIFOレジスタ411の内容が16進数表記で0x4
9534B204F4B0A424F4の場合、システ
ムバスインタフェース401を介して次に16進数表記
で0x54という出力データを受け取るまではタイマ1
05の16ビットバイナリカウンタ302の値は、1秒
あたり10000だけ増加する。次に16進数表記で0
x54という出力データを受け取ると、タイマ105の
16ビットバイナリカウンタ302の値は、1秒あたり
1000だけ増加するようになる。ここでは、タイマ速
度を2つの値の中から選択可能な実施例のみを示した。
しかし、クロックの数を2以上のK個に増やし、クロッ
ク指定レジスタ306でK個の値を指定可能とし、選択
回路303をK個のクロックの中から1つのクロック信
号を選択する回路とすることにより、タイマ速度を2つ
より多くの値の中から選択可能とすることが出来る。こ
の場合、タイマ速度指定レジスタ413はK個の値を取
りうるレジスタである。
【0063】また、出力パタン対応クロック指定レジス
タ操作機構403を拡張して、パタン保持レジスタ41
2およびタイマ速度レジスタ413の組を複数個持ち、
FIFOレジスタ411と同一であると判定したパタン
保持レジスタ412と同じ組のタイマ速度レジスタ41
3の内容をクロック指定レジスタ306に設定する機構
にすることも出来る。
【0064】また、タイマ速度を変更する時にシステム
クロックを変更するように本機構を変更することも可能
である。
【0065】本発明の機構を備えた計算機上のデバッグ
の進め方を示す。まずデバッグを開始する時には、操作
者はプログラムおよびハードウェアの全体に興味があ
る。この場合、パタン保持レジスタ412に0x000
00000000000000000を、タイマ速度指
定レジスタ413に0を設定してプログラムの実行を開
始する。すると、実行開始前からクロック指定レジスタ
306の値は0になるため、処理A202の処理結果は
10秒間表示保持され、処理A202に間するデバッグ
を行なうことが出来る。
【0066】その後、処理A202に関するデバッグが
完了すると、操作者は処理A202に関する結果表示に
は興味が無くなる。プログラム実行開始時にはパタン保
持レジスタ412に16進数表記で0x0000000
00000424F4F54を、タイマ速度指定レジス
タ413に0を設定してからプログラムの実行を開始す
る。すると、処理A202の結果表示保持時間は1秒に
なり、処理B204の結果表示を早く得られ、デバッグ
の効率が向上する。また‘BOOT’の文字を表示した
後に処理Bを処理するため、処理B204の結果表示保
持時間は10秒になる。
【0067】以上のように、ある出力パタン(今回のデ
バッグの進め方の例の場合‘BOOT’)を境界として
操作者が興味無い処理の結果表示(本実施例の場合ディ
スク初期化処理の結果表示)の保持時間を短くし、操作
者が興味ある処理の結果表示(本実施例の場合データを
ロードする処理の結果表示)の保持時間を長くするとい
う、効率の良いデバッグを可能とする。
【0068】本実施形態では、タイマ値はメモリマップ
されており、メモリリード命令によってタイマ値を読み
とり可能であるものとしたが、I/O命令でタイマ値を
読みとり可能もしくはタイマが処理装置のレジスタであ
っても本発明を適用することは可能である。
【0069】(第2の実施形態)第2の実施形態は、出
力パタンに応じてソフトウェアタイマの速度を変更する
ソフトウェアの実施方法を示す。ソフトウェアタイマの
速度を変更するソフトウェアがデバッガである場合の実
現方法を示す。
【0070】図5はソフトウェアタイマ及びデバッガの
構成を表す図である。ソフトウェアタイマ501、デバ
ッガ502、オペレーティングシステム503は記憶装
置102中に存在する。
【0071】デバッグ対象のプログラム200はステッ
プ203およびステップ205において、ソフトウェア
タイマ501のカウンタ変数601を読みだし、タイマ
待ちを行なう。以下デバッグ対象のプログラム200は
端にプログラム200と呼ぶ。
【0072】また、プログラム200は、処理結果の出
力をデバッガ502に対して行なう。すなわち、デバッ
グを行なわない時には、出力データを直接オペレーティ
ングシステム503に渡していたが、デバッグを行なう
時には、出力データをデバッガ502に渡す。プログラ
ム200の出力をデバッガ502に渡す方法は、プログ
ラム200とデバッガ502とをパイプで連結すれば良
い。パイプに関しては「UNIX 4.3BSDの設計
と実装」,ISBN4−621−03607−6,第3
2ページに記載されている。
【0073】このような構成において、デバッガ502
はプログラム200から出力データを受け取ると、オペ
レーティングシステム503にその出力データを渡す。
オペレーティングシステム503は、出力データを受け
取ると、表示装置103を制御して表示を行なう。ま
た、デバッガ502は出力データのパタンに応じて、ソ
フトウェアタイマ501のタイマ速度を表すタイマ速度
変数602を制御する。これが本発明の特徴である。
【0074】まずソフトウェアタイマの構成を示す。
【0075】図6はソフトウェアタイマの構成を表す図
である。ソフトウェアタイマ手続き603は計算機10
0の記憶装置102に存在する。ソフトウェアタイマ手
続き603はカウンタ変数601、タイマ速度指定変数
602を持つ。カウンタ変数601は例えば0以上65
535以下の整数値を保持する。カウンタ変数601が
保持する値がタイマ値である。タイマ速度変数602は
タイマ速度を保持する。
【0076】カウンタ変数601は、プログラム200
およびソフトウェアタイマ手続き603が共有する。こ
のため、プログラム200およびソフトウェアタイマ手
続き603ともにカウンタ変数601を参照可能であ
る。
【0077】また、タイマ速度変数602はソフトウェ
アタイマ手続き603およびデバッガ出力制御部800
とが共有する。
【0078】ソフトウエアタイマ手続き603の動作を
図5に示す。
【0079】ステップ701でオペレーティングシステ
ムのタイマ割り込みによりソフトウェアタイマプログラ
ムが起動される。ここでは例えば1ミリ秒に1度起動さ
れるものとする。このような機能は例えば4.3BSD
のSIGALARMにより実現できる。SIGALAR
Mに関しては「UNIX 4.3BSDの設計と実
装」,ISBN4−621−03607−6,第57ペ
ージに記載されている。ステップ702でカウンタの更
新を行なう。カウンタの更新とは、カウンタ変数601
の現在の値に、タイマ速度指定変数602の値を足すこ
とをいう。ステップ603で処理を終了し処理装置を他
のプログラムに明け渡す。スリープはsleepライブ
ラリ関数により実現する。sleepライブラリ関数に
関しては「UNIX 4.3BSDの設計と実装」,I
SBN4−621−03607−6,第82ページに記
載されている。
【0080】図8はデバッガの構成を表す図である。デ
バッガ502は出力を司る出力制御部800を持つ。出
力制御部800は、出力制御手続き801、出力データ
キュー802、パタン保持変数803、タイマ速度指定
変数804から構成される。
【0081】出力データキュー802は表示装置103
が受け取った出力データをFIFO的に蓄える。このデ
ータ構造は8ビットバイトをN個保持できるリングバッ
ファにより構成する。
【0082】本実施例ではNは10であるとする。すな
わちデータキューは長さを10に固定されたキューであ
る。出力データキューは、8ビットバイトを10個保持
できる配列820と、キューの先頭を表すインデックス
821とから構成される。インデックス821の値をh
eadとする。キューを構成する配列をring_bu
fとし、配列のi番目の要素をring_buf[i]
と参照できるものとする。配列の先頭の要素はring
_buf[0]であり、配列の最後の要素はring_
buf[N]である。また、キューの先頭の要素はri
ng_buf[head]である。出力データXを受け
取った時には、ring_buf[head]の内容を
Xに設定し、headに1を加える。headがNを越
えた場合にはheadには0を設定する。リスト構造お
よびリストの操作方法の詳細は、岩波書店「アルゴリズ
ムとデータ構造」、岩畑清著、ISBN4−00−01
0343−1の44ページから48ページに記載されて
いる。
【0083】パタン保持変数803は8ビットバイトを
N個保持できる配列変数である。本実施例ではNは10
である。図中ではパタン保持変数803は16進数表記
で0x000000000000424F4F54とい
うパタンを保持している。配列のi番目の要素をpat
tern[i]と参照できるものとする。配列の先頭の
要素はpattern[0]であり、配列の最後の要素
はpattern[N]である。
【0084】また、タイマ速度指定変数804はタイマ
速度変数602に設定可能な値を保持する。
【0085】デバッガの出力手続き801は、出力デー
タキュー802の内容とパタン保持変数803の内容と
の同一性を判定し、同一であると判定した場合には、タ
イマ速度指定変数804の値をタイマ速度変数602に
設定する。
【0086】デバッガの出力制御手続き801のフロー
チャートを図6に示す。
【0087】ステップ901でデバッガ502がプログ
ラム200から出力データXを受け取り、ステップ90
2へ進。
【0088】ステップ902で出力データXをオペレー
ティングシステム503に渡す。オペレーティングシス
テム503は、出力データXを受け取ると、表示装置1
03を制御して表示を行なう。その後、ステップ903
へ進。
【0089】ステップ903で出力データキュー802
に出力データXをFIFO的に接続する。具体的には、
出力データキュー802の最後尾にXを接続し、出力デ
ータキュー802の先頭のデータを取り除く。その後、
ステップ904へ進。
【0090】ステップ904で出力データキュー802
の内容とパタン保持変数803の内容との同一性を判定
する。同一ではないと判定した場合には手続きを終了
し、呼出元に制御を戻す。同一であると判定した場合に
はステップ905へ進。
【0091】ステップ905でタイマ速度指定変数80
4の値をタイマ速度変数602に設定する。その後に手
続きを終了し、呼出元に制御を戻す。
【0092】ステップ904において、出力データキュ
ー802の内容とパタン保持変数803の内容とが同一
であると判定するとは、1以上N以下のすべての整数i
に対して、出力データキュー802のi番目のバイトと
パタン保持変数803のi番目のバイトとが同一である
と判定することを意味する。出力データキュー802の
i番目のバイトとパタン保持変数803のi番目のバイ
トとが同一であると判定するとは、パタン保持変数80
3のi番目のバイトが16進数表現で0x00である
か、出力データキュー802のi番目のバイトとパタン
保持変数803のi番目のバイトとが同一であることを
意味する。
【0093】同一性判定ステップ904の詳細を図9に
示した。まずステップ1001で一時変数iを0に設定
し、ステップ1002に進む。
【0094】ステップ1002では、「pattern
[i]が16進数表記で0x00であるが、またはpa
ttern[i]がring_buf[(head+
i)%N]と等しいか」を判定する。ただし、a%bは
aをbで割った剰余を意味する。条件が真の場合はステ
ップ1003へ進む。条件が偽の場合は非同一であると
判定し、判定を終了する。
【0095】ステップ1003ではiに1を加え、ステ
ップ1004へ進む。
【0096】ステップ1004では「iがNに等しい
か」を判定する。条件が真の場合はステップ1002へ
進む。条件が偽の場合は同一であると判定し、判定を終
了する。
【0097】出力制御部800を拡張して、パタン保持
変数503およびタイマ速度レジスタ504の組を複数
個持ち、出力制御手続き801を、出力データキュー8
02と同一であると判定したパタン保持レジスタ803
と同じ組のタイマ速度指定変数804の内容をタイマ速
度変数602に設定する手続きにすることも出来る。
【0098】
【発明の効果】タイマ待ちの長さの変更は従来、プログ
ラム中に複数存在するタイマ待ち箇所を変更する必要が
あった。また、プログラムが外部調達のため、プログラ
ムのソースコードを持っていない場合もあり、プログラ
ムの変更は困難であった。また、タイマ速度を変更した
いタイミングに間に合わない等の操作ミスが避けられな
いという理由により、可変速タイマの速度指定手段を操
作者が変更することも困難であった。
【0099】本発明のタイマを使用すると、プログラム
の変更無しに、結果出力パタンに対応して、タイマ待ち
の長さを変更することが可能となる。このため、操作者
の興味無い表示を行なうプログラム部分では表示保持時
間を短くし、操作者の興味ある表示を行なうプログラム
部分では表示保持時間を長くするというデバッグが可能
となる。そのため、タイマを使用するプログラムおよび
このプログラムを実行する計算機ハードウェアのデバッ
グの効率が向上する。
【0100】また、タイマ速度の変更処理は計算機のシ
ステムバスには影響を与えない。このため、プログラム
の動作および計算機ハードウェアの動作に影響を与えず
に、タイマ速度変更を行なうことが可能となる。
【図面の簡単な説明】
【図1】第1の実施形態の計算機の構成図である。
【図2】第1の実施形態のプログラムの流れを示すフロ
ーチャートである。
【図3】第1の実施形態のタイマの構成図である。
【図4】第1の実施形態の出力パタン対応クロック指定
レジスタ操作機構の構成図である。
【図5】第2の実施形態のソフトウェアタイマ及びデバ
ッガの関係を表す図である。
【図6】第2の実施形態のソフトウェアタイマ手続きの
構成図である。
【図7】第2の実施形態のソフトウェアタイマ手続きの
流れを示すフローチャートである。
【図8】第2の実施形態のデバッガの構成図である。
【図9】第2の実施形態のデバッガの出力制御手続きの
流れを示すフローチャートである。
【図10】第2の実施例の同一性判定処理の流れを示す
フローチャートである。
【符号の説明】
100…計算機、 101…処理装置、
102…記憶装置、103…表示装置、 104…
外部記憶装置、 105…タイマ、200…計算機1
00上で動作するプログラム、201〜208…プログ
ラム200の処理部分、301…システムバスインタフ
ェース、302…16ビットバイナリカウンタ、
303…選択回路、304…1000Hzクロ
ック発生器、305…10000Hzクロック発生器、
306…クロック指定スイッチ、 311…カウンタ
値信号、312…クロック信号、 313…
1000Hzクロック信号、314…10000Hzク
ロック信号、 315…クロック選択信号、401
…システムバスインタフェース、 402…文字端
末装置、403…出力パタン対応クロック指定レジスタ
操作機構、411…FIFOレジスタ、 41
2…パタン保持レジスタ、413…タイマ速度指定レジ
スタ、 414…パタン比較回路、415…タイマ速
度指定回路、 421…出力データ信号、422
…FIFOレジスタ出力信号、423…パタン保持レジ
スタ出力信号、424…パタン比較回路出力信号、42
5…タイマ速度指定レジスタ出力信号、426…タイマ
速度指定信号、 501…ソフトウェアタイマ、5
02…デバッガ、 503…オペレーテ
ィングシステム、601…カウンタ変数、
602…タイマ速度変数、603…ソフトウェアタイマ
手続き、701〜703…ソフトウェアタイマ手続きの
ステップ、800…デバッガの出力制御部、 801
…出力制御手続き、802…出力データキュー、
803…パタン保持変数、804…タイマ速度指定変
数、820…出力データキューを構成する配列、821
…出力データキューの先頭要素を指すインデックス、9
01〜905…出力手続きのステップ、1001〜10
04…同一性判定処理のステップ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山内 雅彦 神奈川県川崎市幸区鹿島田890番地株式会 社日立製作所情報・通信開発本部内 (72)発明者 林 剛久 神奈川県川崎市幸区鹿島田890番地株式会 社日立製作所情報・通信開発本部内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】(1)処理装置と出力装置と記憶装置とタ
    イマを持ち、該記憶装置に格納されるプログラムを該処
    理装置が実行する計算機であって、(1−1)該タイマ
    は、時間の経過とともに単調に増加または単調に減少す
    るタイマ値を保持し、(1−2)該タイマ値は該プログ
    ラムから参照可能であり、(1−3)該タイマは一定時
    間の経過に対するタイマ値の変化量をクロック指定レジ
    スタに保持し、(1−4)該プログラムは、該出力装置
    を介した出力データの出力処理および該出力処理に後続
    するタイマ待ち処理を複数個含むプログラムであり、
    (1−5)該タイマ待ち処理は現時点でのタイマ値と出
    力を開始した時点でのタイマ値との差がある閾値以上に
    なるまで待つ処理であり、(1−6)該出力装置は、
    (1−6−1)時系列順の複数の出力データの出力を受
    け付け、保持し、(1−6−2)該保持している出力デ
    ータを変換して操作者が認知可能な出力表現を行い、
    (1−6−3)最新の第1の有限個の出力データのみを
    出力表現可能な出力装置である、計算機において、
    (2)出力装置中の機構であって、(2−1)該出力デ
    ータのうち最新の第2の有限個の出力データを保持する
    出力データ保持レジスタと、(2−2)該第2の有限個
    と同数のデータを保持するパンタ保持レジスタと、(2
    −3)該出力データ保持レジスタと該パタン保持レジス
    タの内容が同一であると判定した場合にクロック指定レ
    ジスタに設定するための値を保持するタイマ速度指定レ
    ジスタと、(2−4)該出力データ保持レジスタと該パ
    タン保持レジスタとの同一性を判定する装置と、(2−
    5)該同一性を判定する装置が同一であると判定した場
    合には、該タイマ速度指定レジスタ値を該クロック指定
    レジスタに設定する装置とから構成される機構を持つこ
    とを特徴とする計算機。
  2. 【請求項2】請求項1の、パタン保持レジスタの内容を
    操作者が変更可能なインタフェースを持つことを特徴と
    する計算機。
  3. 【請求項3】請求項1または2の、タイマ速度指定レジ
    スタ値を操作者が変更可能なインタフェースを持つこと
    を特徴とする計算機。
  4. 【請求項4】請求項1または2または3のパタン保持レ
    ジスタとタイマ速度指定レジスタとの組を複数個持ち、
    出力データ保持レジスタと同一であると判定したパタン
    保持レジスタと同じ組のタイマ速度指定レジスタ値を、
    クロック指定レジスタに設定することを特徴とする計算
    機。
  5. 【請求項5】請求項1または2または3または4の出力
    装置が描画装置であり、出力表現が文字もしくは画像も
    しくは文字および画像の組合せであることを特徴とする
    計算機。
  6. 【請求項6】請求項1または2または3または4の出力
    装置が描画装置であり、出力表現が音の大きさおよび音
    の高さの組の時系列データで表現される音声であること
    を特徴とする計算機。
JP9071259A 1997-03-25 1997-03-25 計算機のタイマ Pending JPH10268968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9071259A JPH10268968A (ja) 1997-03-25 1997-03-25 計算機のタイマ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9071259A JPH10268968A (ja) 1997-03-25 1997-03-25 計算機のタイマ

Publications (1)

Publication Number Publication Date
JPH10268968A true JPH10268968A (ja) 1998-10-09

Family

ID=13455556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9071259A Pending JPH10268968A (ja) 1997-03-25 1997-03-25 計算機のタイマ

Country Status (1)

Country Link
JP (1) JPH10268968A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034672A (ja) * 2005-07-27 2007-02-08 Fujitsu Ten Ltd マイクロコンピュータにおけるタイマ調整機構

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034672A (ja) * 2005-07-27 2007-02-08 Fujitsu Ten Ltd マイクロコンピュータにおけるタイマ調整機構

Similar Documents

Publication Publication Date Title
US6029222A (en) Method and processor for selectively marking instructions as interruptible or uninterruptible and judging interrupt requests based on the marked instruction
JP2982875B2 (ja) スレーブ制御装置
US5363506A (en) Information processor with delayed interrupt device
JP2986104B2 (ja) 情報処理装置の自己試験回路
US5125095A (en) System using microprocessor address lines for coprocessor selection within a multi-coprocessor apparatus
JPH0728643A (ja) ディジタル信号プロセッサ操作方法及びその装置
US5499348A (en) Digital processor capable of concurrently executing external memory access and internal instructions
JPS62115542A (ja) 情報処理装置
JPH10268968A (ja) 計算機のタイマ
US5687380A (en) Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions
JPH10275092A (ja) マイクロプロセッサのトレース情報出力方法
JPH07219766A (ja) 演算処理装置
JP3972936B2 (ja) デジタルメッセージ伝送プロトコル
JP2758624B2 (ja) マイクロプログラムの調速方式
JP2585708B2 (ja) プログラマブルコントローラ
US5864691A (en) Central processing unit with a selector that bypasses circuits where processing is not required
JPS6230455B2 (ja)
JP3367949B2 (ja) 画像データ処理装置
JP2839499B2 (ja) ベクトル処理装置
JPS63141131A (ja) パイプライン制御方式
JPH0667896A (ja) シングルチップマイクロコンピュータ
JP2583614B2 (ja) ベクトル演算装置
JPH0425581B2 (ja)
JPS60250438A (ja) 情報処理装置
JPH03241432A (ja) 命令変換方式