JP3573980B2 - 情報処理装置及び情報処理システム - Google Patents
情報処理装置及び情報処理システム Download PDFInfo
- Publication number
- JP3573980B2 JP3573980B2 JP32412698A JP32412698A JP3573980B2 JP 3573980 B2 JP3573980 B2 JP 3573980B2 JP 32412698 A JP32412698 A JP 32412698A JP 32412698 A JP32412698 A JP 32412698A JP 3573980 B2 JP3573980 B2 JP 3573980B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- reading
- instruction
- function
- read
- 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
- 230000010365 information processing Effects 0.000 title claims description 12
- 238000000034 method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 20
- 239000002699 waste material Substances 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理システムに係り、特に、プリフェッチ機能を有する情報処理装置及び情報処理システムに関する。
【0002】
【従来の技術】
中央処理装置(Central Processing unit:以下、CPUという)は、主記憶装置から命令及びデータを読み出して、制御及び演算等を行う装置である。一般に、CPUは主記憶装置に比べて処理速度が高速であり、主記憶装置から命令及びデータを読み出す時間が処理時間に大きく影響することになる。そこで、CPUと主記憶装置との間に少容量の高速記憶装置を置き、処理時間の短縮化を図っている。
【0003】
このような小容量の高速記憶装置には、過去に参照された命令を一定数格納しておく命令キャッシュがある。また、CPUが読込んだ命令より先のアドレスの命令を一定数自動的に読込んでおくプリフェッチキューがある。このような、命令キャッシュ及びプリフェッチキューは、多くのプログラムにおける主記憶装置参照の局地性の原理に基づいている。
【0004】
すなわち、ある期間をとって見ると、CPUは記憶装置のある限られた小範囲を集中して参照する傾向が認められる。言い換えれば、頻繁に使用される情報はお互いに近いところに存在する確率が高い。したがって、このような頻繁に参照されると思われる小範囲を主記憶装置から読み出して格納しておくのが命令キャッシュ,プリフェッチキューである。
【0005】
以下、図1を利用して、CPUと主記憶装置との間に小容量の高速記憶装置を置いた場合の処理について説明する。図1は、従来のプリフェッチ機能を有する中央処理システムの一例のブロック図を示す。
中央処理システム1は、CPU10,命令キャッシュ12,BUS−CONTROL14,主記憶装置16を含む構成である。また、CPU10は、プリフェッチキュー18,命令デコ−ダ20,バスアクセス制御部22を含む。
【0006】
プリフェッチキュー18は、CPU10が読み出しをおこなった命令の次のアドレスの命令を自動的に読み出して格納しておく。また、命令キャッシュ12は、過去に主記憶装置16から読み出された命令を、一定数格納しておく。
例えば、図2を利用して、2命令分を自動的に読み出して格納するプリフェッチキュー18の動作を説明する。図2は、プリフェッチキューの動作の一例の説明図を示す。CPU10がアドレス”08”の命令を命令デコーダ20に読込むと、プリフェッチキュー18は次のアドレス”0A”の命令と二つ先のアドレス”0C”の命令とを格納する。次に、CPU10がアドレス”0A”の命令を命令デコーダ20に読込むと、プリフェッチキュー18は既に次のアドレス”0C”の命令が格納されているので、二つ先のアドレス”0E”の命令を格納する。
【0007】
このように、プリフェッチキュー18は、次にCPU10が実行すると予想されるアドレスの命令を命令キャッシュ12又は主記憶装置16から予め読み出して格納しておくことにより、CPU10の命令の読み出し開始から命令が命令デコーダ20に読込まれるまでの時間が短縮される。プリフェッチキュー18は、命令実行が直線的で、分岐命令が少ない場合に有効である。
【0008】
次に、図3を利用して、命令キャッシュ12の動作を説明する。図3は、命令キャッシュの動作の一例の説明図を示す。尚、図3において、CPU実行命令のアドレスは上位の16ビットアドレス”0000”を省略している。また、図3のキャッシュ格納命令は、一番左にアドレスの上位16ビットが表示され、そこから右側に向かって4つのアドレスの下位8ビットが表示されている。それぞれのアドレスは、32ビットのデータを有し、16ビットで表される命令を二つ格納している。
【0009】
CPU10又はプリフェッチキュー18がアドレス”08”の命令を読み込む場合、そのアドレス”08”の命令が命令キャッシュ12に格納されているか否かにより処理が異なる。そのアドレス”08”の命令が命令キャッシュ12に格納されている場合、命令キャッシュ12は、その格納されている命令をCPU10又はプリフェッチキュー18に供給する。例えば、図3の場合は、命令キャッシュ12からアドレス”000008”の命令を読み出してCPU10又はプリフェッチキュー18に供給する。
【0010】
一方、そのアドレス”08”の命令が命令キャッシュ12に格納されていない場合、命令キャッシュ12は主記憶装置16からアドレス”08”の命令を読み出してCPU10又はプリフェッチキュー18に供給すると共に、対応するアドレスにアドレス”08”の命令を格納する。なお、命令キャッシュ12は、アドレスの下位8ビットが固定であり、アドレスの上位16ビットを変更してアドレスを対応させる。例えば、アドレス”000008”の命令を格納する場合、アドレスの上位16ビットを”0000”に変更してアドレスの下位8ビットが”08”の場所に命令を格納する。
【0011】
上記のような処理をアドレス”0A”,”0C”,”0E”,”10”,及び”12”の命令毎に処理を行う。そして、アドレス”12”の命令が分岐命令であり、処理がアドレス”08”の命令に戻ると、既に命令キャッシュ12にアドレス”08”,”0A”,”0C”,”0E”,”10”,及び”12”の命令が格納されているため、CPU10の命令の読み出し開始から命令が命令デコーダ20に読込まれるまでの時間が短縮される。命令キャッシュ12は、命令実行に繰り返し処理が多い場合に有効である。
【0012】
以上のように、命令キャッシュ12及びプリフェッチキュー18を設けることにより中央処理システム1の処理時間の短縮を図っている。
【0013】
【発明が解決しようとする課題】
しかしながら、図1に示すブロック図のように、プリフェッチキュー18が命令キャッシュ12よりCPU側にある場合、プリフェッチキュー18の処理により命令キャッシュ12の処理効率が低下する場合がある。
以下、図4及び図5を利用して、プリフェッチキュー18の処理により命令キャッシュ12の処理効率が低下する場合について説明する。図4は、プリフェッチキューの動作の一例の説明図を示す。また、図5は命令キャッシュの動作の一例の説明図を示す。
【0014】
図4のプリフェッチキュー18は、アドレス”0C”の命令を実行した後、分岐命令によりアドレス”80”の命令を実行する。ところが、アドレス”0C”の命令を実行している間に、プリフェッチキュー18は、次のアドレス”0E”の命令と二つ先のアドレス”10”の命令とを命令キャッシュ12又は主記憶装置16から読み込んで格納する。したがって、プリフェッチキュー18は、CPU10が実行しないアドレスの命令を格納してしまうことになる。
【0015】
一方、命令キャッシュ12はCPU10の読み出しであるのか、又はプリフェッチキュー18の読み出しであるのか判断することができない。したがって、プリフェッチキュー18がCPU10の実行しないアドレスの命令を読込んだ場合、その読込みにより命令キャッシュ12にもCPU10の実行しないアドレスの命令が読込まれて格納されることになる。
【0016】
例えば,図5の例の場合、アドレス”0C”の命令を実行している間にプリフェッチキュー18に読込まれた次のアドレス”0E”の命令と二つ先のアドレス”10”の命令とが命令キャッシュ12に書き込まれて格納されるのであるが、アドレス”10”に対応する部分にはアドレス”020010〜02001E”の命令が格納されている。したがって、命令キャッシュ12は、CPU10の実行しないアドレス”00000E”,”000010”の命令が読込まれて格納されるために、アドレス”020010〜02001E”の命令が消去されることになる。もし、消去されたアドレス”020010〜02001E”の命令が実行率の高い命令であると効率が悪いことになる。
【0017】
続いて、図6を利用して、ブロック転送機能により命令キャッシュ12の処理効率が低下する場合について説明する。図6は、命令キャッシュの動作の一例の説明図を示す。ここで、ブロック転送機能とは、命令キャッシュ12に格納されている情報を書き換える場合、1ブロック単位で書き換える機能をいう。なお、1ブロックとは図6の例の場合4ワード分(例えば、アドレス”00”,”04”,”08”,”0C”)をいう。
【0018】
CPU10は、アドレス”1E”の命令を読込むとき、命令キャッシュ12にそのアドレス”1E”の命令が格納されているか否かを判定する。図6の例の場合、下位8ビットが”10〜1C”の場所に上位ビット”0200”のアドレスの命令が格納されているため、上位ビット”0000”の命令を主記憶装置16から読み出して格納する必要がある。
【0019】
ブロック転送機能の下では、命令キャッシュ12はアドレス”000010〜00001E”を自動的に書き込むが、ブロック転送が終了するまで次の命令が読み出せない。この場合、アドレス”000010〜00001A”の命令は実行されないものであり、CPU10の実行しないアドレス”000010〜00001A”の命令を命令キャッシュ12に書き込んでいる間、CPU10は次のアドレス”000020”の命令を読み出せず効率が悪いことになる。
【0020】
上記のように、プログラムの動作によって、命令キャッシュ12及びプリフェッチキュー18が効率良く動作しない場合があり問題であった。
本発明は、上記の点に鑑みなされたもので、命令キャッシュ及びプリフェッチキューの機能のON/OFFの組み合わせが設定できる情報処理装置及び情報処理システムを提供することを目的とする。
【0021】
【課題を解決するための手段】
そこで、上記課題を解決するため、請求項1記載の本発明は、次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、記憶装置から情報を読み出して所定の処理を行う中央処理装置と、前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第1の制御信号を出力する先行読み出し手段制御部とを有し、前記先行読み出し手段制御部は前記第1の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン/オフを示す第2の制御信号を受け、前記レジスタの値と第2の制御信号の内容に基づいて前記第1の制御信号を生成し、前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第1の制御信号を制御することを特徴とする。
【0023】
また、請求項2記載の本発明は、前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする。
また、請求項3記載の本発明は、前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能のオン/オフが制御されることを特徴とする。
【0024】
また、請求項4記載の本発明は、前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする。
また、請求項5記載の本発明は、情報を格納する記憶装置と、次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、前記記憶装置から情報を読み出して所定の処理を行う中央処理装置と、過去に読み出された情報を格納しておく格納手段と、前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第1の制御信号を出力する先行読み出し手段制御部とを有し、前記先行読み出し手段制御部は前記第1の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン/オフを示す第2の制御信号を受け、前記レジスタの値と第2の制御信号の内容に基づいて前記第1の制御信号を生成し、前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第1の制御信号を制御することを特徴とする。
【0026】
また、請求項6記載の本発明は、前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする。
また、請求項7記載の本発明は、前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能のオン/オフが制御されることを特徴とする。
【0027】
また、請求項8記載の本発明は、前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする。
また、請求項9記載の本発明は、前記格納手段は、前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン/オフが制御されることを特徴とする。
【0028】
また、請求項10記載の本発明は、前記先行読み出し手段で行う情報を先行して読み出しておく機能と、前記格納手段で行う所定のブロック毎に情報を格納する機能とは、中央処理装置で行う処理に基づいて、その機能のオン/オフが制御されることを特徴とする。
【0029】
このように、先行読み出し手段は制御信号により機能を制御されることで、実行するプログラムに基づいて適切に機能がオン/オフされ、効率のよい情報の読み出しが可能となる。例えば、分岐処理の多いプログラムの実行時においては、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合があるので、その場合に先行読み出し手段の機能を制御して、効率のよい情報の読み出しを可能にする。
また、先行読み出し手段は既に読み出されている情報のアドレスに基づいて、次に読み出される可能性の高い情報を先行して読み出しておくことにより、中央処理装置と記憶装置との処理速度の差を緩和し、効率のよい情報の読み出しを可能にしている。
【0030】
また、先行読み出し手段は第1の制御信号により機能がオン/オフされることで、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合に先行読み出し手段の機能をオフして、効率のよい情報の読み出しが可能となる。
また、先行読み出し手段は機能がオンからオフに移行した場合、既に読み出し済みの情報を破棄することなく、順次出力することができる。したがって、同じ情報を再度読み出す無駄を省き、効率のよい情報の読み出しが可能となる。
【0031】
また、格納手段は前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン/オフを制御することができるので、格納手段から読み出された情報を所定のブロック毎に格納する機能が効率のよい情報の読み出しを妨げる場合にこの機能をオフして、効率のよい情報の読み出しが可能となる。
【0032】
また、先行読み出し手段で行う情報を先行して読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とを、中央処理装置で行うプログラムの処理に基づいて、自由にオン/オフすることが可能となる。
したがって、ユーザはプログラムの処理を考慮して、自由に先行読み出し手段で行う情報を先行して読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とをオン/オフすることにより、効率のよい情報の読み出しが選択できる。
【0033】
【発明の実施の形態】
以下に、情報処理装置及び情報処理システムに関する本発明の実施例を図面に基づいて説明する。
図7は、本発明のプリフェッチ機能を有する情報処理システムの一実施例のブロック図を示す。情報処理システム1は、CPU10,命令キャッシュ12,BUS−CONTROL14,主記憶装置16,プリフェッチキュー制御部24を含む構成である。また、CPU10は、プリフェッチキュー18,命令デコ−ダ20,バスアクセス制御部22を含む。
【0034】
プリフェッチキュー18は、CPU10が読み出しをおこなった命令の次のアドレスの命令を自動的に読み出して格納しておく。また、命令キャッシュ12は、過去に主記憶装置16から読み出された命令を、一定数格納しておく。なお、プリフェッチキュー18及び命令キャッシュ12の動作については、図2及び図3を利用して前述したので説明を省略する。
【0035】
プリフェッチキュー18は、プリフェッチキュー制御部24に含まれるQCNTLレジスタに所定の値を書き込むことにより制御される。例えば、QCNTLレジスタが”00”のとき命令キャッシュ12に依らずプリフェッチ機能OFF,QCNTLレジスタが”01”のとき命令キャッシュ12に依らずプリフェッチ機能ON,QCNTLレジスタが”10”のとき命令キャッシュ12のON/OFFの反転,QCNTLレジスタが”11”のとき命令キャッシュ12のON/OFFと同じ,というようにプリフェッチ機能を制御する。
【0036】
プリフェッチキュー制御部24は、命令キャッシュ12の機能のON/OFFを示す信号IENBLが供給されることにより、命令キャッシュ12の機能のON/OFF状態を判別できる。そして、プリフェッチキュー制御部24は、QCNTLレジスタの値および命令キャッシュ12から供給される信号IENBLに基づいてプリフェッチキュー18の機能のON/OFF動作を制御する信号QENBLをプリフェッチキュー18に供給する。
【0037】
上記のような処理は、最後のST命令実行時にCPU10のバスアクセス制御部22からQCNTALレジスタのアドレスと書き込む値とをデータバスに出力し、BUS−CONTROL14経由でQCNTLレジスタに値を書き込むことにより、制御することが可能となる。
なお、プリフェッチキュー18の動作がONからOFFに移行した場合、既にプリフェッチキュー18に格納されたアドレスの命令を破棄することなく有効に利用するため、図8に示すようなが動作が行われる。図8はプリフェッチキューがON/OFFの時の一例の動作図を示し、図8(A)がプリフェッチキューがONの時の動作であり、図8(B)がプリフェッチキューがOFFの時の動作である。
【0038】
図8(A)に示すプリフェッチキュー18がONの時の動作は、プリフェッチキュー18に空きができると次のアドレスの命令を読み出し格納する。一方、図8(B)に示すプリフェッチキュー18がONからOFFに移行した場合の動作は、既にプリフェッチキュー18に格納されたアドレスの命令を順次読み出す。そして、格納されたアドレスの命令が無くなった時点で、新しいアドレスの命令を一つ格納する動作と、格納されたアドレスの命令を読み出す動作とを繰り返す。
【0039】
このように、プリフェッチキュー18がOFFの時の動作を、格納しているアドレスの命令が全て無くなった時点で新しいアドレスの命令を読み出すという動作で実現すると、既にプリフェッチキュー18に格納されたアドレスの命令を破棄することなく有効に利用することができるため、処理効率が低下しない。
以下、プリフェッチキュー18がOFF,命令キャッシュ12がONの方が効率が良い場合について、図9を利用して説明する。図9は、プリフェッチキューがON/OFFの時の一例のタイミング図を示す。なお、図9(A)〜(D)はプリフェッチキュー18がOFF,図9(E)〜(H)はプリフェッチキュー18がONのときのタイミング図である。
【0040】
プリフェッチキュー18がOFFのとき、CPU10は実行を行うアドレスの命令を命令キャッシュ12又は主記憶装置16から読み出して実行する。このとき、命令キャッシュ12に目的のアドレスの命令がない場合、主記憶装置16から目的のアドレスの命令を読み出すために待ち時間が発生する。
図9の(A)〜(D)の場合、アドレス”0008”,”000C”,”0080”の命令は、命令キャッシュ12になかったため、主記憶装置16から読み出しを行っている。したがって、主記憶装置16から目的のアドレスの命令を読み出すために待ち時間が発生している。続いて、アドレス”2010”,”2014”の命令は、命令キャッシュ12にあったため、命令キャッシュ12から読み出しが行われている。したがって、主記憶装置16から読み出すほどの待ち時間は発生しない。
【0041】
一方、プリフェッチキュー18がONのとき、プリフェッチキュー18は次のアドレスの命令を格納している。アドレス”0008”の命令がCPU10で実行されるとき、プリフェッチキュー18は次のアドレス”000C”の命令を主記憶装置16から読み込んで格納する。したがって、図9に示すように主記憶装置16から読み込んで格納するための待ち時間が発生する。
【0042】
続いて、アドレス”000C”の命令がCPU10で実行されるとき、プリフェッチキュー18は次のアドレス”0010”の命令を主記憶装置16から読み込んで格納する。したがって、図9に示すように主記憶装置16から読み込んで格納するための待ち時間が発生する。
ところで、アドレス”0C”の命令が分岐命令である場合、アドレス”000C”の命令の後に実行される命令は、アドレス”0010”の命令でなくアドレス”0080”の命令である。したがって、アドレス”0010”の命令を実行せずに、アドレス”0080”の命令を主記憶装置16から読み込んで格納する。したがって、図9に示すように主記憶装置16から読み込んで格納するための待ち時間が発生する。
【0043】
続いて、アドレス”2010”の命令がCPU10で実行されるのであるが、アドレス”2010”の命令は命令キャッシュ12に格納されていたものの、プリフェッチキュー18によるアドレス”0010”の命令の読み出しにより消去されている。したがって、図9に示すように主記憶装置16から読み込んで格納するための待ち時間が発生する。
【0044】
もし、プリフェッチキュー18がOFFであれば、命令キャッシュ12からアドレス”2010”の命令は消去されず、無駄な待ち時間を発生させることがない。以上のように、プログラムの動作内容によっては、プリフェッチキュー18をOFF,命令キャッシュ12をONにする方が効率が良い。
次に、プリフェッチキュー18がON,命令キャッシュ12のブロック転送がOFFの方が効率が良い場合について、図10を利用して説明する。図10は、ブロック転送がON/OFFの時の一例のタイミング図を示す。なお、図10(A)〜(D)はブロック転送がON,図10(E)〜(H)はブロック転送がOFFのときのタイミング図である。
【0045】
ブロック転送がONのとき、CPU10は実行を行うアドレスの命令を命令キャッシュ12又は主記憶装置16から読み出して実行する。このとき、命令キャッシュ12に目的のアドレスの命令がない場合、主記憶装置16から目的のアドレスの命令を読み出すために待ち時間が発生する。ブロック転送がONの下、命令キャッシュ12に目的のアドレスの命令がない場合、ブロック単位で主記憶装置16から目的のアドレスの命令を読み出す。
【0046】
例えば、図10(A)〜(D)のタイミングチャートでは、CPU10が実行を行うアドレス”00C”の命令を主記憶装置16から読み出して命令キャッシュ12に格納する際、ブロック転送によりアドレス”000”,”004”,”008”の命令が引き続き主記憶装置16から読み出されて命令キャッシュ12に格納される。
【0047】
したがって、CPU10が実行しないアドレス”000”,”004”,”008”の命令が終了するまで、次のアドレス”010”の命令が読み出されず、無駄な待ち時間が発生する。
一方、ブロック転送がOFFのとき、CPU10は実行を行うアドレスの命令を命令キャッシュ12又は主記憶装置16から読み出して実行する。このとき、命令キャッシュ12に目的のアドレスの命令がない場合、主記憶装置16から目的のアドレスの命令を読み出すために待ち時間が発生する。しかし、ブロック転送がOFFであるため、必要なアドレスの命令のみが主記憶装置16から読み出される。
【0048】
例えば、図10(E)〜(H)のタイミングチャートでは、CPU10が実行を行うアドレスの命令が主記憶装置16から順番に読み出されて実行されるため、ブロック転送がONのときに生じる無駄な読み込み時間が発生することがない。したがって、CPU10が実行する命令のみが主記憶装置16から読み出されるために無駄な待ち時間が発生せず、効率の良い処理が可能となる。
【0049】
次に、プリフェッチキュー18の動作がONからOFFに移行した場合の動作について、図11を利用して説明する。図11は、プリフェッチキューの動作がONからOFFに移行する場合の一例のタイミング図を示す。また、図11(B)〜(E)はプリフェッチキュー18の動作がONからOFFに移行した場合の従来のタイミング図であり、図10(F)〜(I)はプリフェッチキュー18の動作がONからOFFに移行した場合の本願発明のタイミング図である。
【0050】
プリフェッチキュー制御部24から供給される信号QENBLがハイレベルからロウレベルに変化し、プリフェッチキュー18の動作がONからOFFに移行した場合、図11(B)〜(E)に示す従来の動作では、既にプリフェッチキュー18に格納されたアドレス”100”〜”10E”の命令を破棄し、新たに、主記憶装置16からアドレス”100”〜”10E”の命令を読み出す。このように、プリフェッチキュー18から破棄されたアドレス”100”〜”10E”の命令が再度主記憶装置16から読み出されることになるため、無駄な待ち時間が発生し、効率が悪い。
【0051】
一方、図11(F)〜(I)に示す本願発明の動作では、既にプリフェッチキュー18に格納されたアドレス”100”〜”10E”の命令を順次読み出し、格納されたアドレスの命令が無くなった時点で、新しいアドレスの命令を一つ格納する動作と、格納されたアドレスの命令を読み出す動作とを繰り返す。
このように、プリフェッチキューがOFFの時の動作を、格納しているアドレスの命令が全て無くなった時点で新しいアドレスの命令を読み出すという動作で実現すると、既にプリフェッチキューに格納されたアドレスの命令を破棄することなく有効に利用することができるため、処理効率が低下しない。なお、図11のタイミング図では、プリフェッチキュー18は32bit(16ビット命令が二つ入る)のバッファが4段ある場合を示している。
【0052】
以上のように、CPU10が実行する命令に応じて、プリフェッチキュー18及び命令キャッシュ12の機能を適切にON/OFFできるようにしたことにより、主記憶装置16からの無駄な読み出しを減少し、処理効率を上げることが可能である。
なお、本願発明は、プリフェッチキュー18及び命令キャッシュ12のブロック転送のON/OFFをハードウエア・ソフトウエア的に切り換えることも可能であり、また、予めプログラムに切り換えの命令を組み込んでおくことも可能である。
【0053】
また、上記例において、図7に示すプリフェッチキュー18が先行読み出し手段に対応し、命令キャッシュ12が格納手段に対応し、主記憶装置16が記憶装置に対応し、プリフェッチキュー制御部24が先行読み出し手段制御部に対応する。
【0054】
【発明の効果】
上述の如く、本発明によれば、先行読み出し手段は第1の制御信号により機能を制御されることで、実行するプログラムに基づいて適切に機能がオン/オフされ、効率のよい情報の読み出しが可能となる。例えば、分岐処理の多いプログラムの実行時においては、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合があるので、その場合に先行読み出し手段の機能を制御して、効率のよい情報の読み出しを可能にする。
【0055】
また、本発明によれば、先行読み出し手段は既に読み出されている情報のアドレスに基づいて、次に読み出される可能性の高い情報を先行して読み出しておくことにより、中央処理装置と記憶装置との処理速度の差を緩和し、効率のよい情報の読み出しを可能にしている。
また、本発明によれば、先行読み出し手段は第1の制御信号により機能がオン/オフされることで、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合に先行読み出し手段の機能をオフして、効率のよい情報の読み出しが可能となる。
【0056】
また、本発明によれば、先行読み出し手段は機能がオンからオフに移行した場合、既に読み出し済みの情報を破棄することなく、順次出力することができる。したがって、同じ情報を再度読み出す無駄を省き、効率のよい情報の読み出しが可能となる。
【0057】
また、本発明によれば、格納手段は前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン/オフを制御することができるので、格納手段の読み出された情報を所定のブロック毎に格納する機能が効率のよい情報の読み出しを妨げる場合にこの機能をオフして、効率のよい情報の読み出しが可能となる。
【0058】
また、本発明によれば、先行読み出し手段で行う先行して情報を読み出しておく機能と格納手段で行う所定のブロック毎に情報を格納する機能とを、中央処理装置で行うプログラムの処理に基づいて、自由にオン/オフすることが可能となる。したがって、ユーザはプログラムの処理を考慮して、自由に先行読み出し手段で行う先行して情報を読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とをオン/オフすることにより、効率のよい情報の読み出しが選択できる。
【図面の簡単な説明】
【図1】従来のプリフェッチ機能を有する情報処理システムの一例のブロック図である。
【図2】プリフェッチキューの動作の一例の説明図である。
【図3】命令キャッシュの動作の一例の説明図である。
【図4】プリフェッチキューの動作の一例の説明図である。
【図5】命令キャッシュの動作の一例の説明図である。
【図6】命令キャッシュの動作の一例の説明図である。
【図7】本願発明のプリフェッチ機能を有する情報処理システムの一実施例のブロック図である。
【図8】プリフェッチキューがON/OFFの時の一例の動作図である。
【図9】プリフェッチキューがON/OFFの時の一例のタイミング図である。
【図10】ブロック転送がON/OFFの時の一例のタイミング図である。
【図11】プリフェッチキューの動作がONからOFFに移行する場合の一例のタイミング図である。
【符号の説明】
1 情報処理システム
10 CPU
12 命令キャッシュ
14 BUS−CONTROL
16 主記憶装置
18 プリフェッチキュー
20 命令デコーダ
22 バスアクセス制御部
24 プリフェッチキュー制御部
Claims (10)
- 次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、記憶装置から情報を読み出して所定の処理を行う中央処理装置と、
前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第1の制御信号を出力する先行読み出し手段制御部とを有し、
前記先行読み出し手段制御部は前記第1の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン/オフを示す第2の制御信号を受け、前記レジスタの値と第2の制御信号の内容に基づいて前記第1の制御信号を生成し、
前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第1の制御信号を制御する
ことを特徴とする情報処理装置。 - 前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする請求項1記載の情報処理装置。
- 前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能のオン/オフが制御されることを特徴とする請求項2記載の情報処理装置。
- 前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする請求項3記載の情報処理装置。
- 情報を格納する記憶装置と、
次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、前記記憶装置から情報を読み出して所定の処理を行う中央処理装置と、
過去に読み出された情報を格納しておく格納手段と、
前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第1の制御信号を出力する先行読み出し手段制御部とを有し、
前記先行読み出し手段制御部は前記第1の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン/オフを示す第2の制御信号を受け、前記レジスタの値と第2の制御信号の内容に基づいて前記第1の制御信号を生成し、
前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第1の制御信号を制御する
ことを特徴とする情報処理システム。 - 前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする請求項5記載の情報処理システム。
- 前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能のオン/オフが制御されることを特徴とする請求項6記載の情報処理システム。
- 前記先行読み出し手段は、前記第1の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする請求項7記載の情報処理システム。
- 前記格納手段は、前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン/オフが制御されることを特徴とする請求項8記載の情報処理システム。
- 前記先行読み出し手段で行う情報を先行して読み出しておく機能と、前記格納手段で行う所定のブロック毎に情報を格納する機能とは、中央処理装置で行う処理に基づいて、その機能のオン/オフが制御されることを特徴とする請求項9記載の 情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32412698A JP3573980B2 (ja) | 1998-11-13 | 1998-11-13 | 情報処理装置及び情報処理システム |
US09/421,008 US6880066B2 (en) | 1998-11-13 | 1999-10-20 | Central processing unit and system having a prefetch queue and a command cache to perform an efficient information reading operation |
DE19951878A DE19951878A1 (de) | 1998-11-13 | 1999-10-28 | Zentrale Verarbeitungseinheit und System mit einer Vorabruf-Warteschlange und einem Befehls-Cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32412698A JP3573980B2 (ja) | 1998-11-13 | 1998-11-13 | 情報処理装置及び情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148478A JP2000148478A (ja) | 2000-05-30 |
JP3573980B2 true JP3573980B2 (ja) | 2004-10-06 |
Family
ID=18162447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32412698A Expired - Fee Related JP3573980B2 (ja) | 1998-11-13 | 1998-11-13 | 情報処理装置及び情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6880066B2 (ja) |
JP (1) | JP3573980B2 (ja) |
DE (1) | DE19951878A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3838405B2 (ja) | 2000-02-01 | 2006-10-25 | 富士通株式会社 | 中央処理装置および中央処理システム |
US7783869B2 (en) * | 2006-12-19 | 2010-08-24 | Arm Limited | Accessing branch predictions ahead of instruction fetching |
KR20150127914A (ko) | 2014-05-07 | 2015-11-18 | 에스케이하이닉스 주식회사 | 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법 |
US10296463B2 (en) * | 2016-01-07 | 2019-05-21 | Samsung Electronics Co., Ltd. | Instruction prefetcher dynamically controlled by readily available prefetcher accuracy |
US11106466B2 (en) | 2018-06-18 | 2021-08-31 | International Business Machines Corporation | Decoupling of conditional branches |
WO2024049859A1 (en) * | 2022-08-31 | 2024-03-07 | Ascenium, Inc. | Parallel processing architecture with memory block transfers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5860482A (ja) | 1981-10-05 | 1983-04-09 | Nec Corp | 情報処理装置 |
JPH01112429A (ja) | 1987-10-27 | 1989-05-01 | Mitsubishi Electric Corp | マイクロコンピュータ |
JPH0766326B2 (ja) | 1987-11-12 | 1995-07-19 | 松下電器産業株式会社 | 情報処理装置 |
US5357618A (en) | 1991-04-15 | 1994-10-18 | International Business Machines Corporation | Cache prefetch and bypass using stride registers |
US5835967A (en) | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
US5623615A (en) | 1994-08-04 | 1997-04-22 | International Business Machines Corporation | Circuit and method for reducing prefetch cycles on microprocessors |
US5649137A (en) * | 1994-10-20 | 1997-07-15 | Advanced Micro Devices, Inc. | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5829042A (en) | 1996-02-15 | 1998-10-27 | Hewlett-Packard Company | Prefetch operation for network peripheral device having shared memory |
US5854911A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
US6195735B1 (en) * | 1996-12-31 | 2001-02-27 | Texas Instruments Incorporated | Prefetch circuity for prefetching variable size data |
US6233645B1 (en) * | 1998-11-02 | 2001-05-15 | Compaq Computer Corporation | Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high |
-
1998
- 1998-11-13 JP JP32412698A patent/JP3573980B2/ja not_active Expired - Fee Related
-
1999
- 1999-10-20 US US09/421,008 patent/US6880066B2/en not_active Expired - Fee Related
- 1999-10-28 DE DE19951878A patent/DE19951878A1/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US6880066B2 (en) | 2005-04-12 |
DE19951878A1 (de) | 2000-05-31 |
JP2000148478A (ja) | 2000-05-30 |
US20030110365A1 (en) | 2003-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3289661B2 (ja) | キャッシュメモリシステム | |
US6233641B1 (en) | Apparatus and method of PCI routing in a bridge configuration | |
US20050086435A1 (en) | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory | |
US7659904B2 (en) | System and method for processing high priority data elements | |
JP2001216194A (ja) | 演算処理装置 | |
JP2006079623A (ja) | ハードウェア装置、コンピュータシステム、並びにハードウェア装置における命令の非順次的実行方法及び条件生成命令処理方法 | |
JP3573980B2 (ja) | 情報処理装置及び情報処理システム | |
US20080184010A1 (en) | Method and apparatus for controlling instruction cache prefetch | |
JP2008310693A (ja) | 情報処理装置 | |
JP4266900B2 (ja) | 画像処理システム | |
US7107407B2 (en) | Arithmetic unit with reduced startup time and method of loading data | |
JP2007206924A (ja) | 演算処理システム | |
JPH06103169A (ja) | 中央演算処理装置のリードデータプリフェッチ機構 | |
JPH05143330A (ja) | スタツクキヤツシユの制御方式及びスタツクキヤツシユ | |
JP2003030046A (ja) | 命令キャッシュのプリフェッチ機構を備えたキャッシュ制御装置 | |
JP3039391B2 (ja) | メモリシステム | |
JPS60103454A (ja) | 命令先読み制御装置 | |
JP2778623B2 (ja) | プリフェッチ制御装置 | |
JPH10111798A (ja) | 情報処理装置 | |
US8085275B1 (en) | System and method for low-overhead push buffer jumps | |
JPH10283185A (ja) | プロセッサ | |
JP2924708B2 (ja) | 情報処理装置 | |
JPH08286914A (ja) | メモリ制御装置 | |
JPH1040165A (ja) | データ読み出し方法およびリードバッファ | |
JPH04195563A (ja) | メモリシステムの制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040311 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040604 |
|
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: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
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 |