JP3588368B2 - Timer update assist method and timer device - Google Patents
Timer update assist method and timer device Download PDFInfo
- Publication number
- JP3588368B2 JP3588368B2 JP29160093A JP29160093A JP3588368B2 JP 3588368 B2 JP3588368 B2 JP 3588368B2 JP 29160093 A JP29160093 A JP 29160093A JP 29160093 A JP29160093 A JP 29160093A JP 3588368 B2 JP3588368 B2 JP 3588368B2
- Authority
- JP
- Japan
- Prior art keywords
- timer
- microprogram
- bits
- update request
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】
本発明は,CPUの実行時間や待ち時間を制御する各種タイマー機構を装備し,かつ各種タイマー機構の任意のビットより上位に位置するビットをハードウェアで持たずに,マイクロプログラム等のファームウェアの作業領域を利用してマイクロプログラム等のファームウェアが制御を行う計算機におけるタイマー更新アシスト方法およびタイマー装置に関するものである。
【0002】
一般に計算機システムでは,処理の高速化および装置の小型化が望まれており,タイマー機構についても同様に高速化,小型化が望まれている。
【0003】
【従来の技術】
図5は従来のタイマーの例を示す。
従来の計算機システムでは,図5(イ)に示すように,CPUの実行時間や待ち時間を制御するタイマー機構のすべてのビットを,すべてハードウェア・ロジック50として持つ方式と,図5(ロ)に示すように,すべてのビットをハードウェアで持つのではなく,あるビットより上位のビットをマイクロプログラムの作業領域51に置き,下位ビットだけをハードウェア・ロジック53として持ち,マイクロプログラムがハードウェアの状態を監視して,ハードウェア・ロジック53の桁溢れによる更新要求フラグ52が“1”(ON)になったときに,上位のビットを制御する方式がある。
【0004】
大型の計算機では前者の方法が用いられるが,一般に中小型の計算機では,ハードウェア量がかなり制限されるため,すべてのビットをハードウェアで持つ方式は,あまり用いられていない。図5(ロ)に示す例では,0から55までの56ビットのうち,上位の32ビットをマイクロプログラムの作業領域51に置き,下位の24ビットをハードウェア・ロジック53として持っている。以下の例では,減算方式のタイマーの例について説明する。
【0005】
図6は,タイマー機構の上位ビットをマイクロプログラムの作業領域に持つ場合のマイクロプログラムの処理フローチャートであって,(イ)はタイマー更新要求の処理,(ロ)はタイマー読み出し命令の処理を示す。
【0006】
図5(ロ)に示すハードウェア・ロジック53のカウント値が(000000)16から(FFFFFF)16に変化すると,更新要求フラグ52が“1”になり,マイクロプログラムに対してタイマー更新要求が出される。なお,(XX…)16は16進数を表す。以下の説明における(a) 〜(c) は,図6(イ)に示す(a) 〜(c) に対応する。
【0007】
(a) 更新要求フラグ52が“1”になると,マイクロプログラムは,マイクロプログラムの作業領域51にあるタイマー上位ビットを読み出す。
(b) 読み出した上位ビットのデータから1を減算する。
【0008】
(c) 減算した結果をマイクロプログラムの作業領域51に書き込む。
オペレーティング・システム等によりタイマー読み出し命令が発行されると,マイクロプログラムは,図6(ロ)に示す処理(d) 〜(k) を実行する。
【0009】
(d) マイクロプログラムの作業領域51の上位ビットを読み出す。
(e) 次に,ハードウェア・ロジック53の下位ビットを読み出す。
(f) また,ハードウェア・ロジックの更新要求フラグ52を読み出す。
【0010】
(g) 更新要求フラグ52が“1”であるか否かを判定し,“1”でなければ処理(i) へ進む。
(h) 更新要求フラグ52が“1”であれば,作業領域51から読み出した上位ビットから1を引く。
【0011】
(i) 次に,上位ビットと下位ビットの加算処理を行う。
(j) マイクロプログラムの作業領域51に上位ビットを書き込む。
(k) タイマー読み出し命令で指定されたオペランド領域に,(i) の処理結果を書き込む。
【0012】
【発明が解決しようとする課題】
従来の計算機では,図6に示すように,マイクロプログラムがタイマー読み出し命令を実行する場合に,ハードウェア・ロジック53が持っている最上位のビットからのタイマー更新要求信号である更新要求フラグ52を読み出し,それを判定してマイクロプログラムの作業領域51に保持する上位ビットの減算処理を行う必要があった。これは,タイマー読み出し命令の実行中に,タイミングによっては更新要求フラグ52が“1”になることがあり,下位ビットからの桁溢れが上位ビットに反映されないことがあるためである。そのため,マイクロプログラムのスタティックな命令ステップ数およびダイナミックステップ数を増加させることになった。
【0013】
本発明は上記問題点の解決を図り,マイクロプログラムの命令格納領域を小さくするとともに,マイクロプログラムのダイナミックステップ数を削減することを目的する。
【0014】
【課題を解決するための手段】
本発明では,例えば図1に示すように,タイマーの更新要求フラグ13の値を拡張するデータ拡張回路14を設け,ハードウェアが持つCPUタイマー(下位ビット)10を読み出すときに,マイクロプログラム作業レジスタ(A)15の上位に,更新要求フラグ13の値を上位ビット数分展開したデータを付加する。また,マイクロプログラム作業レジスタ(B)16にマイクロプログラム作業領域11のCPUタイマー(上位ビット)12の値を読み出し,この値と,先のマイクロプログラム作業レジスタ(A)15の値とを,加算演算器(ADDER)17により加算する。加算結果をマイクロプログラム作業レジスタ(C)18に格納し,この値をタイマー読み出し命令の発行元へ通知する。
【0015】
【作用】
データ拡張回路14により,更新要求フラグ13が“0”のときには,上位ビットに(00000000)16を載せ,更新要求フラグ13が“1”のときには,上位ビットに(FFFFFFFF)16を載せるので,更新要求フラグ13の値によらずに,一律に処理することができる。
【0016】
【実施例】
図1は本発明の構成例を示す。
本実施例のタイマーは減算方式のCPUタイマーであり,56ビットで構成され,そのうちの上位32ビットがマイクロプログラム作業領域11にCPUタイマー(上位ビット)12として設けられ,下位の24ビットがハードウェア・ロジックによるCPUタイマー(下位ビット)10として設けられている。更新要求フラグ13は,CPUタイマー(下位ビット)10の最上位のビットからの更新要求信号を保持する回路である。CPUタイマー(下位ビット)10の値が(000000)16から(FFFFFF)16の値に変化するときに“1”にセットされる。
【0017】
データ拡張回路14は,更新要求フラグ13の値を32ビットに拡張する回路である。CPUタイマー(下位ビット)10をマイクロプログラム作業レジスタ(A)15に読み出すとき,CPUタイマー(下位ビット)10の値を,マイクロプログラム作業レジスタ(A)15の第32ビットから第55ビットにロードするとともに,更新要求フラグ13をデータ拡張回路14に拡張して,マイクロプログラム作業レジスタ(A)15の第0ビットから第31ビットにロードする。このデータの拡張は,更新要求フラグ13が“0”のときには,(00000000)16とし,更新要求フラグ13が“1”のときには,(FFFFFFFF)16とする。
【0018】
マイクロプログラム作業領域11に設けられたCPUタイマー(上位ビット)12は,マイクロプログラム作業レジスタ(B)16の第0ビットから第31ビットにロードされる。
【0019】
加算演算器17は,マイクロプログラム作業レジスタ(A)15とマイクロプログラム作業レジスタ(B)16の値を加算し,結果をマイクロプログラム作業レジスタ(C)18に出力する。
【0020】
図2は,本発明の実施例によるマイクロプログラムの処理フローチャートである。
タイマー更新要求時,すなわち更新要求フラグ13が“1”になると,割込み等によりマイクロプログラムのタイマー更新処理が起動される。ここでは,図2(イ)に示す処理(a) 〜(d) を実行する。
【0021】
(a) マイクロプログラム作業領域11に設けたCPUタイマー(上位ビット)12をマイクロプログラム作業レジスタ(B)16に読み出す。
(b) また,ハードウェア・ロジックのCPUタイマー(下位ビット)10を,拡張した更新要求フラグ13のデータとともにマイクロプログラム作業レジスタ(A)15に読み出す。
【0022】
(c) マイクロプログラム作業レジスタ(A)15の値と,マイクロプログラム作業レジスタ(B)16の値とを加算し,マイクロプログラム作業レジスタ(C)18に結果を格納する。
【0023】
(d) マイクロプログラム作業レジスタ(C)18の上位32ビットを,CPUタイマー(上位ビット)12の領域に書き込む。
タイマー読み出し命令に対しては,マイクロプログラムは図2(ロ)に示す処理(e) 〜(i) を実行する。
【0024】
(e) マイクロプログラム作業領域11に設けたCPUタイマー(上位ビット)12をマイクロプログラム作業レジスタ(B)16に読み出す。
(f) また,ハードウェア・ロジックのCPUタイマー(下位ビット)10を,拡張した更新要求フラグ13のデータとともにマイクロプログラム作業レジスタ(A)15に読み出す。
【0025】
(g) マイクロプログラム作業レジスタ(A)15の値と,マイクロプログラム作業レジスタ(B)16の値とを加算し,マイクロプログラム作業レジスタ(C)18に結果を格納する。
【0026】
(h) マイクロプログラム作業レジスタ(C)18の上位32ビットを,CPUタイマー(上位ビット)12の領域に書き込む。
(i) マイクロプログラム作業レジスタ(C)18の上位32ビットを,タイマー読み出し命令で指定されたオペランド領域に書き込む。
【0027】
上記処理から明らかなように,(a) 〜(d) の処理と(e) 〜(h) の処理とは共通化可能である。
図3は,本発明の実施例におけるタイマー更新要求なしのときの実行例を示す。
【0028】
今,CPUタイマー(上位ビット)12のカウント値が(AAAAAAAA)16であり,CPUタイマー(下位ビット)10のカウント値が(012345)16であったとする。タイマー読み出し命令に対して,更新要求フラグ13が“0”のときには,マイクロプログラム作業レジスタ(A)15には,(0000000001234500)16のデータが載る。この値と,上位ビットのデータ(AAAAAAAA00000000)16が載っているマイクロプログラム作業レジスタ(B)16の値とを,加算演算器17により加算すると,マイクロプログラム作業レジスタ(C)18に求めるタイマー値(AAAAAAAA01234500)16が得られる。
【0029】
図4は,本発明の実施例におけるタイマー更新要求ありのときの実行例を示す。CPUタイマー(上位ビット)12およびCPUタイマー(下位ビット)10の値は,図3の例と同じである。
【0030】
更新要求フラグ13が“1”の場合,タイマー読み出し命令に対して,マイクロプログラム作業レジスタ(A)15には,(FFFFFFFF01234500)16のデータが載る。この値と,上位ビットのデータ(AAAAAAAA00000000)16が載っているマイクロプログラム作業レジスタ(B)16の値とを,加算演算器17により加算する。マイクロプログラム作業レジスタ(C)18に出力される結果は,(AAAAAAA901234500)16となる。この結果の上位32ビットは,(AAAAAAAA)16から1を引いた結果と同じであり,更新要求フラグ13が“1”のとき,自動的に上位ビットの減算が行われることになる。
【0031】
【発明の効果】
以上説明したように,本発明によれば,わずかなハードウェアの追加により,マイクロプログラムのダイナミックステップ数(実行ステップ数)を削減することが可能になる。また,タイマー更新要求時の実行ステップとタイマー読み出し命令の実行ステップの共通化が可能になる。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の実施例によるマイクロプログラムの処理フローチャートである。
【図3】本発明の実施例におけるタイマー更新要求なしのときの実行例を示す図である。
【図4】本発明の実施例におけるタイマー更新要求ありのときの実行例を示す図である。
【図5】従来のタイマーの例を示す図である。
【図6】従来技術の処理フローチャートである。
【符号の説明】
10 CPUタイマー(下位ビット)
11 マイクロプログラム作業領域
12 CPUタイマー(上位ビット)
13 更新要求フラグ
14 データ拡張回路
15 マイクロプログラム作業レジスタ(A)
16 マイクロプログラム作業レジスタ(B)
17 加算演算器
18 マイクロプログラム作業レジスタ(C)[0001]
[Industrial applications]
The present invention is provided with various timer mechanisms for controlling the execution time and the waiting time of the CPU, and does not have hardware bits higher than any bits of the various timer mechanisms. The present invention relates to a timer update assist method and a timer device in a computer in which firmware such as a microprogram controls using an area.
[0002]
Generally, in computer systems, high-speed processing and miniaturization of devices are desired, and similarly, high-speed and miniaturization of timer mechanisms are also desired.
[0003]
[Prior art]
FIG. 5 shows an example of a conventional timer.
In the conventional computer system, as shown in FIG. 5 (a), all bits of a timer mechanism for controlling the execution time and the waiting time of the CPU are provided as hardware logic 50. As shown in FIG. 7, instead of having all bits in hardware, bits higher than a certain bit are placed in the work area 51 of the microprogram, and only lower bits are provided as
[0004]
The former method is used for a large computer, but generally, for a small computer, the amount of hardware is considerably limited. Therefore, a method in which all bits are implemented by hardware is not often used. In the example shown in FIG. 5B, of the 56 bits from 0 to 55, the upper 32 bits are placed in the work area 51 of the microprogram, and the lower 24 bits are provided as the
[0005]
FIG. 6 is a flowchart of the microprogram processing when the upper bits of the timer mechanism are included in the work area of the microprogram. FIG. 6A shows processing of a timer update request, and FIG. 6B shows processing of a timer read command.
[0006]
When the count value of the
[0007]
(A) When the
(B) 1 is subtracted from the read upper bit data.
[0008]
(C) The result of the subtraction is written in the work area 51 of the microprogram.
When a timer read command is issued by the operating system or the like, the microprogram executes the processes (d) to (k) shown in FIG.
[0009]
(D) Read the upper bits of the work area 51 of the microprogram.
(E) Next, the lower bits of the
(F) Read the
[0010]
(G) It is determined whether or not the
(H) If the
[0011]
(I) Next, an addition process of the upper bit and the lower bit is performed.
(J) Write the upper bits to the work area 51 of the microprogram.
(K) Write the processing result of (i) to the operand area specified by the timer read instruction.
[0012]
[Problems to be solved by the invention]
In a conventional computer, as shown in FIG. 6, when a microprogram executes a timer read instruction, an
[0013]
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems, to reduce the instruction storage area of a microprogram, and to reduce the number of dynamic steps of the microprogram.
[0014]
[Means for Solving the Problems]
In the present invention, for example, as shown in FIG. 1, a
[0015]
[Action]
When the
[0016]
【Example】
FIG. 1 shows a configuration example of the present invention.
The timer of the present embodiment is a subtraction type CPU timer, which is composed of 56 bits, of which the upper 32 bits are provided in the microprogram work area 11 as the CPU timer (upper bit) 12, and the lower 24 bits are hardware. Provided as a CPU timer (low order bit) 10 by logic. The
[0017]
The
[0018]
The CPU timer (high-order bit) 12 provided in the microprogram work area 11 is loaded from the 0th bit to the 31st bit of the microprogram work register (B) 16.
[0019]
The
[0020]
FIG. 2 is a processing flowchart of the microprogram according to the embodiment of the present invention.
When a timer update request is made, that is, when the
[0021]
(A) The CPU timer (upper bit) 12 provided in the microprogram work area 11 is read into the microprogram work register (B) 16.
(B) The CPU timer (lower-order bit) 10 of the hardware logic is read out to the microprogram work register (A) 15 together with the extended
[0022]
(C) Add the value of the microprogram work register (A) 15 to the value of the microprogram work register (B) 16 and store the result in the microprogram work register (C) 18.
[0023]
(D) Write the upper 32 bits of the microprogram work register (C) 18 to the area of the CPU timer (upper bits) 12.
In response to the timer read command, the microprogram executes the processes (e) to (i) shown in FIG.
[0024]
(E) Read the CPU timer (upper bit) 12 provided in the microprogram work area 11 into the microprogram work register (B) 16.
(F) The CPU timer (lower-order bit) 10 of the hardware logic is read out to the microprogram work register (A) 15 together with the data of the extended
[0025]
(G) Add the value of the microprogram work register (A) 15 to the value of the microprogram work register (B) 16 and store the result in the microprogram work register (C) 18.
[0026]
(H) Write the upper 32 bits of the microprogram work register (C) 18 to the area of the CPU timer (upper bits) 12.
(I) Write the upper 32 bits of the microprogram work register (C) 18 to the operand area specified by the timer read instruction.
[0027]
As is clear from the above processing, the processing of (a) to (d) and the processing of (e) to (h) can be shared.
FIG. 3 shows an execution example when there is no timer update request in the embodiment of the present invention.
[0028]
Now, it is assumed that the count value of the CPU timer (upper bit) 12 is (AAAAAAAAA) 16 and the count value of the CPU timer (lower bit) 10 is (012345) 16 . When the
[0029]
FIG. 4 shows an execution example when there is a timer update request in the embodiment of the present invention. The values of the CPU timer (upper bit) 12 and the CPU timer (lower bit) 10 are the same as in the example of FIG.
[0030]
When the
[0031]
【The invention's effect】
As described above, according to the present invention, the number of dynamic steps (the number of execution steps) of a microprogram can be reduced by adding a small amount of hardware. Further, the execution step at the time of the timer update request and the execution step of the timer read command can be shared.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of the present invention.
FIG. 2 is a processing flowchart of a microprogram according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an execution example when there is no timer update request in the embodiment of the present invention.
FIG. 4 is a diagram illustrating an execution example when a timer update request is issued in the embodiment of the present invention.
FIG. 5 is a diagram illustrating an example of a conventional timer.
FIG. 6 is a processing flowchart of a conventional technique.
[Explanation of symbols]
10 CPU timer (lower bit)
11 Micro
13
16 Microprogram work register (B)
17
Claims (2)
前記更新要求信号を上位(n−m)ビット分拡張した信号を用いて,前記ファームウェアの作業領域に保持するタイマー値との演算を行い,ファームウェアの作業領域を更新することを特徴とするタイマー更新アシスト方法。A timer comprising an n-bit counter used in a computer, wherein the lower m (m <n) bits of the n bits are constituted by a hardware counter, and the upper (nm) bits use a firmware work area. A timer update assist method for generating an update request signal when the hardware counter of the lower m bits reaches a predetermined value and updating the upper (nm) bits by firmware.
A timer update operation is performed by calculating a timer value held in a work area of the firmware by using a signal obtained by expanding the update request signal by upper (nm) bits, thereby updating the work area of the firmware. Assist method.
前記ハードウェアカウンタが所定の値に変化したときに発生する更新要求信号を保持する回路(13)と,
前記更新要求信号を(n−m)ビットに拡張するデータ拡張回路(14)と,
前記データ拡張回路により拡張したデータを付加したタイマー値と,前記ファームウェアの作業領域のデータを含むタイマー値とを加算する回路(17)とを備えたことを特徴とするタイマー装置。A timer device comprising an n-bit timer is constituted by an m-bit hardware counter (10) and a (nm) -bit firmware work area (11).
A circuit (13) for holding an update request signal generated when the hardware counter changes to a predetermined value;
A data extension circuit (14) for extending the update request signal to (nm) bits;
A timer device comprising: a circuit (17) for adding a timer value to which data expanded by the data expansion circuit is added and a timer value including data of a work area of the firmware.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29160093A JP3588368B2 (en) | 1993-11-22 | 1993-11-22 | Timer update assist method and timer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29160093A JP3588368B2 (en) | 1993-11-22 | 1993-11-22 | Timer update assist method and timer device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07146789A JPH07146789A (en) | 1995-06-06 |
JP3588368B2 true JP3588368B2 (en) | 2004-11-10 |
Family
ID=17771048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29160093A Expired - Fee Related JP3588368B2 (en) | 1993-11-22 | 1993-11-22 | Timer update assist method and timer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3588368B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260907A1 (en) * | 2006-05-02 | 2007-11-08 | Dixon Martin G | Technique to modify a timer |
-
1993
- 1993-11-22 JP JP29160093A patent/JP3588368B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07146789A (en) | 1995-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2678183B2 (en) | Digital processor controller and method for runtime memory allocation | |
JP2883784B2 (en) | Microcomputer | |
US4961161A (en) | Arithmetic processor performing mask and trap operations for exceptions | |
JP2970821B2 (en) | Data processing device | |
JP3588368B2 (en) | Timer update assist method and timer device | |
JP2559868B2 (en) | Information processing device | |
JPH034936B2 (en) | ||
JPS6343773B2 (en) | ||
JPH0560629B2 (en) | ||
JP6332091B2 (en) | Electronic control unit | |
JPH0973407A (en) | Data management device | |
JPH06162067A (en) | Device and method for controlling vector instruction | |
JPS615348A (en) | Information processor | |
JPH0831033B2 (en) | Data processing device | |
JP2562838B2 (en) | Processor and store buffer control method | |
JP2832900B2 (en) | Data processing device and data processing method | |
JPS6148174B2 (en) | ||
JP2574918B2 (en) | Interrupt return processing method | |
KR900015005A (en) | Ring Reduction Logic Mechanism | |
JPH01236327A (en) | Interruption mask control method | |
JPH05250156A (en) | Risc processor | |
JP2847729B2 (en) | Information processing device | |
JPH04211826A (en) | Programmed arithmetic unit | |
JPH01269130A (en) | Address calculation control system | |
JPS61223947A (en) | Undefined instruction detecting method for processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040810 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040813 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |