JP2000148478A - 中央処理装置及び中央処理システム - Google Patents

中央処理装置及び中央処理システム

Info

Publication number
JP2000148478A
JP2000148478A JP10324126A JP32412698A JP2000148478A JP 2000148478 A JP2000148478 A JP 2000148478A JP 10324126 A JP10324126 A JP 10324126A JP 32412698 A JP32412698 A JP 32412698A JP 2000148478 A JP2000148478 A JP 2000148478A
Authority
JP
Japan
Prior art keywords
information
instruction
read
function
central processing
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.)
Granted
Application number
JP10324126A
Other languages
English (en)
Other versions
JP3573980B2 (ja
Inventor
Seiji Suetake
清次 末武
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32412698A priority Critical patent/JP3573980B2/ja
Priority to US09/421,008 priority patent/US6880066B2/en
Priority to DE19951878A priority patent/DE19951878A1/de
Publication of JP2000148478A publication Critical patent/JP2000148478A/ja
Application granted granted Critical
Publication of JP3573980B2 publication Critical patent/JP3573980B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • 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/3802Instruction 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)

Abstract

(57)【要約】 【課題】 命令キャッシュ及びプリフェッチキューの機
能のON/OFFの組み合わせが設定できる中央処理装
置及び中央処理システムを提供することを目的とする。 【解決手段】 次に読み出される可能性の高い情報を先
行して読み出しておく先行読み出し手段18と、過去に
読み出された情報を格納しておく格納手段12と、情報
を格納している記憶装置16と、前記先行読み出し手段
の機能を制御する制御手段24とを有するように構成す
ることにより、記憶装置16からの無駄な読み出しを減
少し、処理効率を上げる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、中央処理装置及び
中央処理システムに係り、特に、プリフェッチ機能を有
する中央処理装置及び中央処理システムに関する。
【0002】
【従来の技術】中央処理装置(Central Pro
cessing unit:以下、CPUという)は、
主記憶装置から命令及びデータを読み出して、制御及び
演算等を行う装置である。一般に、CPUは主記憶装置
に比べて処理速度が高速であり、主記憶装置から命令及
びデータを読み出す時間が処理時間に大きく影響するこ
とになる。そこで、CPUと主記憶装置との間に少容量
の高速記憶装置を置き、処理時間の短縮化を図ってい
る。
【0003】このような小容量の高速記憶装置には、過
去に参照された命令を一定数格納しておく命令キャッシ
ュがある。また、CPUが読込んだ命令より先のアドレ
スの命令を一定数自動的に読込んでおくプリフェッチキ
ューがある。このような、命令キャッシュ及びプリフェ
ッチキューは、多くのプログラムにおける主記憶装置参
照の局地性の原理に基づいている。
【0004】すなわち、ある期間をとって見ると、CP
Uは記憶装置のある限られた小範囲を集中して参照する
傾向が認められる。言い換えれば、頻繁に使用される情
報はお互いに近いところに存在する確率が高い。したが
って、このような頻繁に参照されると思われる小範囲を
主記憶装置から読み出して格納しておくのが命令キャッ
シュ,プリフェッチキューである。
【0005】以下、図1を利用して、CPUと主記憶装
置との間に小容量の高速記憶装置を置いた場合の処理に
ついて説明する。図1は、従来のプリフェッチ機能を有
する中央処理システムの一例のブロック図を示す。中央
処理システム1は、CPU10,命令キャッシュ12,
BUS−CONTROL14,主記憶装置16を含む構
成である。また、CPU10は、プリフェッチキュー1
8,命令デコ−ダ20,バスアクセス制御部22を含
む。
【0006】プリフェッチキュー18は、CPU10が
読み出しをおこなった命令の次のアドレスの命令を自動
的に読み出して格納しておく。また、命令キャッシュ1
2は、過去に主記憶装置16から読み出された命令を、
一定数格納しておく。例えば、図2を利用して、2命令
分を自動的に読み出して格納するプリフェッチキュー1
8の動作を説明する。図2は、プリフェッチキューの動
作の一例の説明図を示す。CPU10がアドレス”0
8”の命令を命令デコーダ20に読込むと、プリフェッ
チキュー18は次のアドレス”0A”の命令と二つ先の
アドレス”0C”の命令とを格納する。次に、CPU1
0がアドレス”0A”の命令を命令デコーダ20に読込
むと、プリフェッチキュー18は既に次のアドレス”0
C”の命令が格納されているので、二つ先のアドレス”
0E”の命令を格納する。
【0007】このように、プリフェッチキュー18は、
次にCPU10が実行すると予想されるアドレスの命令
を命令キャッシュ12又は主記憶装置16から予め読み
出して格納しておくことにより、CPU10の命令の読
み出し開始から命令が命令デコーダ20に読込まれるま
での時間が短縮される。プリフェッチキュー18は、命
令実行が直線的で、分岐命令が少ない場合に有効であ
る。
【0008】次に、図3を利用して、命令キャッシュ1
2の動作を説明する。図3は、命令キャッシュの動作の
一例の説明図を示す。尚、図3において、CPU実行命
令のアドレスは上位の16ビットアドレス”0000”
を省略している。また、図3のキャッシュ格納命令は、
一番左にアドレスの上位16ビットが表示され、そこか
ら右側に向かって4つのアドレスの下位8ビットが表示
されている。それぞれのアドレスは、32ビットのデー
タを有し、16ビットで表される命令を二つ格納してい
る。
【0009】CPU10又はプリフェッチキュー18が
アドレス”08”の命令を読み込む場合、そのアドレ
ス”08”の命令が命令キャッシュ12に格納されてい
るか否かにより処理が異なる。そのアドレス”08”の
命令が命令キャッシュ12に格納されている場合、命令
キャッシュ12は、その格納されている命令をCPU1
0又はプリフェッチキュー18に供給する。例えば、図
3の場合は、命令キャッシュ12からアドレス”000
008”の命令を読み出して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”,”0
A”,”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”の命令を実行する。ところが、アドレス”0
C”の命令を実行している間に、プリフェッチキュー1
8は、次のアドレス”0E”の命令と二つ先のアドレ
ス”10”の命令とを命令キャッシュ12又は主記憶装
置16から読み込んで格納する。したがって、プリフェ
ッチキュー18は、CPU10が実行しないアドレスの
命令を格納してしまうことになる。
【0015】一方、命令キャッシュ12はCPU10の
読み出しであるのか、又はプリフェッチキュー18の読
み出しであるのか判断することができない。したがっ
て、プリフェッチキュー18がCPU10の実行しない
アドレスの命令を読込んだ場合、その読込みにより命令
キャッシュ12にもCPU10の実行しないアドレスの
命令が読込まれて格納されることになる。
【0016】例えば,図5の例の場合、アドレス”0
C”の命令を実行している間にプリフェッチキュー18
に読込まれた次のアドレス”0E”の命令と二つ先のア
ドレス”10”の命令とが命令キャッシュ12に書き込
まれて格納されるのであるが、アドレス”10”に対応
する部分にはアドレス”020010〜02001E”
の命令が格納されている。したがって、命令キャッシュ
12は、CPU10の実行しないアドレス”00000
E”,”000010”の命令が読込まれて格納される
ために、アドレス”020010〜02001E”の命
令が消去されることになる。もし、消去されたアドレ
ス”020010〜02001E”の命令が実行率の高
い命令であると効率が悪いことになる。
【0017】続いて、図6を利用して、ブロック転送機
能により命令キャッシュ12の処理効率が低下する場合
について説明する。図6は、命令キャッシュの動作の一
例の説明図を示す。ここで、ブロック転送機能とは、命
令キャッシュ12に格納されている情報を書き換える場
合、1ブロック単位で書き換える機能をいう。なお、1
ブロックとは図6の例の場合4ワード分(例えば、アド
レス”00”,”04”,”08”,”0C”)をい
う。
【0018】CPU10は、アドレス”1E”の命令を
読込むとき、命令キャッシュ12にそのアドレス”1
E”の命令が格納されているか否かを判定する。図6の
例の場合、下位8ビットが”10〜1C”の場所に上位
ビット”0200”のアドレスの命令が格納されている
ため、上位ビット”0000”の命令を主記憶装置16
から読み出して格納する必要がある。
【0019】ブロック転送機能の下では、命令キャッシ
ュ12はアドレス”000010〜00001E”を自
動的に書き込むが、ブロック転送が終了するまで次の命
令が読み出せない。この場合、アドレス”000010
〜00001A”の命令は実行されないものであり、C
PU10の実行しないアドレス”000010〜000
01A”の命令を命令キャッシュ12に書き込んでいる
間、CPU10は次のアドレス”000020”の命令
を読み出せず効率が悪いことになる。
【0020】上記のように、プログラムの動作によっ
て、命令キャッシュ12及びプリフェッチキュー18が
効率良く動作しない場合があり問題であった。本発明
は、上記の点に鑑みなされたもので、命令キャッシュ及
びプリフェッチキューの機能のON/OFFの組み合わ
せが設定できる中央処理装置及び中央処理システムを提
供することを目的とする。
【0021】
【課題を解決するための手段】そこで、上記課題を解決
するため、請求項1記載の本発明は、記憶装置から情報
を読み出して、処理を行う中央処理装置において、次に
読み出される可能性の高い情報を先行して読み出してお
く先行読み出し手段を有し、その先行読み出し手段は、
制御信号により機能を制御されることを特徴とする。
【0022】このように、先行読み出し手段は制御信号
により機能を制御されることで、実行するプログラムに
基づいて適切に機能がオン/オフされ、効率のよい情報
の読み出しが可能となる。例えば、分岐処理の多いプロ
グラムの実行時においては、先行読み出し手段の機能が
効率のよい情報の読み出しを妨げる場合があるので、そ
の場合に先行読み出し手段の機能を制御して、効率のよ
い情報の読み出しを可能にする。
【0023】また、請求項2記載の本発明は、前記先行
読み出し手段は、既に読み出されている情報のアドレス
に基づいて、前記次に読み出される可能性の高い情報を
先行して読み出しておくことを特徴とする。このよう
に、先行読み出し手段は既に読み出されている情報のア
ドレスに基づいて、次に読み出される可能性の高い情報
を先行して読み出しておくことにより、中央処理装置と
記憶装置との処理速度の差を緩和し、効率のよい情報の
読み出しを可能にしている。
【0024】また、請求項3記載の本発明は、前記先行
読み出し手段は、前記制御信号により機能のオン/オフ
が制御されることを特徴とする。このように、先行読み
出し手段は制御信号により機能がオン/オフされること
で、先行読み出し手段の機能が効率のよい情報の読み出
しを妨げる場合に先行読み出し手段の機能をオフして、
効率のよい情報の読み出しが可能となる。
【0025】また、請求項4記載の本発明は、前記先行
読み出し手段は、前記制御信号により情報を先行して読
み出しておく機能を停止された場合、既に読み出し済み
の情報を順次出力することを特徴とする。このように、
先行読み出し手段は機能がオンからオフに移行した場
合、既に読み出し済みの情報を破棄することなく、順次
出力することができる。したがって、同じ情報を再度読
み出す無駄を省き、効率のよい情報の読み出しが可能と
なる。
【0026】また、請求項5記載の本発明は、記憶装置
から情報を読み出して、処理を行う中央処理システムに
おいて、次に読み出される可能性の高い情報を先行して
読み出しておく先行読み出し手段と、過去に読み出され
た情報を格納しておく格納手段と、情報を格納している
記憶装置と、前記先行読み出し手段の機能を制御する制
御手段とを有することを特徴とする。
【0027】このように、先行読み出し手段は制御信号
により機能を制御されることで、実行するプログラム及
び格納手段の機能との関係に基づいて、適切に機能をオ
ン/オフすることが可能となる。したがって、効率のよ
い情報の読み出しが可能となる。また、請求項6記載の
本発明は、前記先行読み出し手段は、既に読み出されて
いる情報のアドレスに基づいて、前記次に読み出される
可能性の高い情報を先行して読み出しておくことを特徴
とする。
【0028】このように、先行読み出し手段は既に読み
出されている情報のアドレスに基づいて、次に読み出さ
れる可能性の高い情報を先行して読み出しておくことに
より、中央処理装置と記憶装置との処理速度の差を緩和
し、効率のよい情報の読み出しを可能にしている。ま
た、請求項7記載の本発明は、前記先行読み出し手段
は、前記制御信号により機能のオン/オフが制御される
ことを特徴とする。
【0029】このように、先行読み出し手段は制御信号
により機能がオン/オフされることにより、先行読み出
し手段の機能が効率のよい情報の読み出しを妨げる場合
に先行読み出し手段の機能をオフして、効率のよい情報
の読み出しが可能となる。また、請求項8記載の本発明
は、前記先行読み出し手段は、前記制御手段から供給さ
れる制御信号により前記情報を先行して読み出しておく
機能を停止された場合、既に読み出し済みの情報を順次
出力することを特徴とする。
【0030】このように、先行読み出し手段は機能がオ
ンからオフに移行した場合、既に読み出し済みの情報を
破棄することなく、順次出力することができる。したが
って、同じ情報を再度読み出す無駄を省き、効率のよい
情報の読み出しが可能となる。また、請求項9記載の本
発明は、前記格納手段は、前記記憶装置から読み出され
た情報を所定のブロック毎に格納する機能を有し、この
機能のオン/オフが制御されることを特徴とする請求項
8記載の中央処理システム。
【0031】このように、格納手段は前記記憶装置から
読み出された情報を所定のブロック毎に格納する機能を
有し、この機能のオン/オフを制御することができるの
で、格納手段の読み出された情報を所定のブロック毎に
格納する機能が効率のよい情報の読み出しを妨げる場合
にこの機能をオフして、効率のよい情報の読み出しが可
能となる。
【0032】また、請求項10記載の本発明は、前記先
行読み出し手段で行う先行して情報を読み出しておく機
能と、前記格納手段で行う所定のブロック毎に情報を格
納する機能とは、中央処理装置で行う処理に基づいて、
その機能のオン/オフが制御されることを特徴とする。
このように、先行読み出し手段で行う先行して情報を読
み出しておく機能と、格納手段で行う所定のブロック毎
に情報を格納する機能とを、中央処理装置で行うプログ
ラムの処理に基づいて、自由にオン/オフすることが可
能となる。したがって、ユーザはプログラムの処理を考
慮して、自由に先行読み出し手段で行う先行して情報を
読み出しておく機能と、格納手段で行う所定のブロック
毎に情報を格納する機能とをオン/オフすることによ
り、効率のよい情報の読み出しが選択できる。
【0033】
【発明の実施の形態】以下に、中央処理装置及び中央処
理システムに関する本発明の実施例を図面に基づいて説
明する。図7は、本発明のプリフェッチ機能を有する中
央処理システムの一実施例のブロック図を示す。中央処
理システム1は、CPU10,命令キャッシュ12,B
US−CONTROL14,主記憶装置16,プリフェ
ッチキュー制御部24を含む構成である。また、CPU
10は、プリフェッチキュー18,命令デコ−ダ20,
バスアクセス制御部22を含む。
【0034】プリフェッチキュー18は、CPU10が
読み出しをおこなった命令の次のアドレスの命令を自動
的に読み出して格納しておく。また、命令キャッシュ1
2は、過去に主記憶装置16から読み出された命令を、
一定数格納しておく。なお、プリフェッチキュー18及
び命令キャッシュ12の動作については、図2及び図3
を利用して前述したので説明を省略する。
【0035】プリフェッチキュー18は、プリフェッチ
キュー制御部24に含まれるQCNTLレジスタに所定
の値を書き込むことにより制御される。例えば、QCN
TLレジスタが”00”のとき命令キャッシュ12に依
らずプリフェッチ機能OFF,QCNTLレジスタが”
01”のとき命令キャッシュ12に依らずプリフェッチ
機能ON,QCNTLレジスタが”10”のとき命令キ
ャッシュ12のON/OFFの反転,QCNTLレジス
タが”11”のとき命令キャッシュ12のON/OFF
と同じ,というようにプリフェッチ機能を制御する。
【0036】プリフェッチキュー制御部24は、命令キ
ャッシュ12の機能のON/OFFを示す信号IENB
Lが供給されることにより、命令キャッシュ12の機能
のON/OFF状態を判別できる。そして、プリフェッ
チキュー制御部24は、QCNTLレジスタの値および
命令キャッシュ12から供給される信号IENBLに基
づいてプリフェッチキュー18の機能のON/OFF動
作を制御する信号QENBLをプリフェッチキュー18
に供給する。
【0037】上記のような処理は、最後のST命令実行
時にCPU10のバスアクセス制御部22からQCNT
ALレジスタのアドレスと書き込む値とをデータバスに
出力し、BUS−CONTROL14経由でQCNTL
レジスタに値を書き込むことにより、制御することが可
能となる。なお、プリフェッチキュー18の動作がON
からOFFに移行した場合、既にプリフェッチキュー1
8に格納されたアドレスの命令を破棄することなく有効
に利用するため、図8に示すようなが動作が行われる。
図8はプリフェッチキューがON/OFFの時の一例の
動作図を示し、図8(A)がプリフェッチキューがON
の時の動作であり、図8(B)がプリフェッチキューが
OFFの時の動作である。
【0038】図8(A)に示すプリフェッチキュー18
がONの時の動作は、プリフェッチキュー18に空きが
できると次のアドレスの命令を読み出し格納する。一
方、図8(B)に示すプリフェッチキュー18がONか
らOFFに移行した場合の動作は、既にプリフェッチキ
ュー18に格納されたアドレスの命令を順次読み出す。
そして、格納されたアドレスの命令が無くなった時点
で、新しいアドレスの命令を一つ格納する動作と、格納
されたアドレスの命令を読み出す動作とを繰り返す。
【0039】このように、プリフェッチキュー18がO
FFの時の動作を、格納しているアドレスの命令が全て
無くなった時点で新しいアドレスの命令を読み出すとい
う動作で実現すると、既にプリフェッチキュー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”,”000
C”,”0080”の命令は、命令キャッシュ12にな
かったため、主記憶装置16から読み出しを行ってい
る。したがって、主記憶装置16から目的のアドレスの
命令を読み出すために待ち時間が発生している。続い
て、アドレス”2010”,”2014”の命令は、命
令キャッシュ12にあったため、命令キャッシュ12か
ら読み出しが行われている。したがって、主記憶装置1
6から読み出すほどの待ち時間は発生しない。
【0041】一方、プリフェッチキュー18がONのと
き、プリフェッチキュー18は次のアドレスの命令を格
納している。アドレス”0008”の命令がCPU10
で実行されるとき、プリフェッチキュー18は次のアド
レス”000C”の命令を主記憶装置16から読み込ん
で格納する。したがって、図9に示すように主記憶装置
16から読み込んで格納するための待ち時間が発生す
る。
【0042】続いて、アドレス”000C”の命令がC
PU10で実行されるとき、プリフェッチキュー18は
次のアドレス”0010”の命令を主記憶装置16から
読み込んで格納する。したがって、図9に示すように主
記憶装置16から読み込んで格納するための待ち時間が
発生する。ところで、アドレス”0C”の命令が分岐命
令である場合、アドレス”000C”の命令の後に実行
される命令は、アドレス”0010”の命令でなくアド
レス”0080”の命令である。したがって、アドレ
ス”0010”の命令を実行せずに、アドレス”008
0”の命令を主記憶装置16から読み込んで格納する。
したがって、図9に示すように主記憶装置16から読み
込んで格納するための待ち時間が発生する。
【0043】続いて、アドレス”2010”の命令がC
PU10で実行されるのであるが、アドレス”201
0”の命令は命令キャッシュ12に格納されていたもの
の、プリフェッチキュー18によるアドレス”001
0”の命令の読み出しにより消去されている。したがっ
て、図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が実行を行うアドレス”0
0C”の命令を主記憶装置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の動作がO
Nから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】また、請求項2記載の本発明によれば、先
行読み出し手段は既に読み出されている情報のアドレス
に基づいて、次に読み出される可能性の高い情報を先行
して読み出しておくことにより、中央処理装置と記憶装
置との処理速度の差を緩和し、効率のよい情報の読み出
しを可能にしている。また、請求項3記載の本発明によ
れば、先行読み出し手段は制御信号により機能がオン/
オフされることで、先行読み出し手段の機能が効率のよ
い情報の読み出しを妨げる場合に先行読み出し手段の機
能をオフして、効率のよい情報の読み出しが可能とな
る。
【0056】また、請求項4記載の本発明によれば、先
行読み出し手段は機能がオンからオフに移行した場合、
既に読み出し済みの情報を破棄することなく、順次出力
することができる。したがって、同じ情報を再度読み出
す無駄を省き、効率のよい情報の読み出しが可能とな
る。また、請求項5記載の本発明によれば、先行読み出
し手段は制御信号により機能を制御されることで、実行
するプログラム及び格納手段の機能との関係に基づい
て、適切に機能をオン/オフすることが可能となる。し
たがって、効率のよい情報の読み出しが可能となる。
【0057】また、請求項6記載の本発明によれば、先
行読み出し手段は既に読み出されている情報のアドレス
に基づいて、次に読み出される可能性の高い情報を先行
して読み出しておくことにより、中央処理装置と記憶装
置との処理速度の差を緩和し、効率のよい情報の読み出
しを可能にしている。また、請求項7記載の本発明によ
れば、先行読み出し手段は制御信号により機能がオン/
オフされることで、先行読み出し手段の機能が効率のよ
い情報の読み出しを妨げる場合に先行読み出し手段の機
能をオフして、効率のよい情報の読み出しが可能とな
る。
【0058】また、請求項8記載の本発明によれば、先
行読み出し手段は機能がオンからオフに移行した場合、
既に読み出し済みの情報を破棄することなく、順次出力
することができる。したがって、同じ情報を再度読み出
す無駄を省き、効率のよい情報の読み出しが可能とな
る。また、請求項9記載の本発明によれば、格納手段は
前記記憶装置から読み出された情報を所定のブロック毎
に格納する機能を有し、この機能のオン/オフを制御す
ることができるので、格納手段の読み出された情報を所
定のブロック毎に格納する機能が効率のよい情報の読み
出しを妨げる場合にこの機能をオフして、効率のよい情
報の読み出しが可能となる。
【0059】また、請求項10記載の本発明によれば、
先行読み出し手段で行う先行して情報を読み出しておく
機能と、格納手段で行う所定のブロック毎に情報を格納
する機能とを、中央処理装置で行うプログラムの処理に
基づいて、自由にオン/オフすることが可能となる。し
たがって、ユーザはプログラムの処理を考慮して、自由
に先行読み出し手段で行う先行して情報を読み出してお
く機能と、格納手段で行う所定のブロック毎に情報を格
納する機能とをオン/オフすることにより、効率のよい
情報の読み出しが選択できる。
【図面の簡単な説明】
【図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記載の中央処理装置。
  3. 【請求項3】 前記先行読み出し手段は、前記制御信号
    により機能のオン/オフが制御されることを特徴とする
    請求項2記載の中央処理装置。
  4. 【請求項4】 前記先行読み出し手段は、前記制御信号
    により情報を先行して読み出しておく機能を停止された
    場合、既に読み出し済みの情報を順次出力することを特
    徴とする請求項3記載の中央処理装置。
  5. 【請求項5】 記憶装置から情報を読み出して、処理を
    行う中央処理システムにおいて、 次に読み出される可能性の高い情報を先行して読み出し
    ておく先行読み出し手段と、 過去に読み出された情報を格納しておく格納手段と、 情報を格納している記憶装置と、 前記先行読み出し手段の機能を制御する制御手段とを有
    することを特徴とする中央処理システム。
  6. 【請求項6】 前記先行読み出し手段は、既に読み出さ
    れている情報のアドレスに基づいて、前記次に読み出さ
    れる可能性の高い情報を先行して読み出しておくことを
    特徴とする請求項5記載の中央処理システム。
  7. 【請求項7】 前記先行読み出し手段は、前記制御信号
    により機能のオン/オフが制御されることを特徴とする
    請求項6記載の中央処理システム。
  8. 【請求項8】 前記先行読み出し手段は、前記制御手段
    から供給される制御信号により前記情報を先行して読み
    出しておく機能を停止された場合、既に読み出し済みの
    情報を順次出力することを特徴とする請求項7記載の中
    央処理システム。
  9. 【請求項9】 前記格納手段は、前記記憶装置から読み
    出された情報を所定のブロック毎に格納する機能を有
    し、この機能のオン/オフが制御されることを特徴とす
    る請求項8記載の中央処理システム。
  10. 【請求項10】 前記先行読み出し手段で行う先行して
    情報を読み出しておく機能と、前記格納手段で行う所定
    のブロック毎に情報を格納する機能とは、中央処理装置
    で行う処理に基づいて、その機能のオン/オフが制御さ
    れることを特徴とする請求項9記載の中央処理システ
    ム。
JP32412698A 1998-11-13 1998-11-13 情報処理装置及び情報処理システム Expired - Fee Related JP3573980B2 (ja)

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 true JP2000148478A (ja) 2000-05-30
JP3573980B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708266B2 (en) 2000-02-01 2004-03-16 Fujitsu Limited Central processing unit and system counting instructions in a queue storage and outputting a fetch request when the count value is 0 or 1 to produce a next instruction address output

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708266B2 (en) 2000-02-01 2004-03-16 Fujitsu Limited Central processing unit and system counting instructions in a queue storage and outputting a fetch request when the count value is 0 or 1 to produce a next instruction address output

Also Published As

Publication number Publication date
US20030110365A1 (en) 2003-06-12
US6880066B2 (en) 2005-04-12
DE19951878A1 (de) 2000-05-31
JP3573980B2 (ja) 2004-10-06

Similar Documents

Publication Publication Date Title
US6564313B1 (en) System and method for efficient instruction prefetching based on loop periods
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
JP3289661B2 (ja) キャッシュメモリシステム
US6321328B1 (en) Processor having data buffer for speculative loads
US20080140934A1 (en) Store-Through L2 Cache Mode
EP0676690B1 (en) Delayed write of store instruction in processor device
US20080184010A1 (en) Method and apparatus for controlling instruction cache prefetch
WO2001038970A2 (en) Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
JP2000148478A (ja) 中央処理装置及び中央処理システム
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
KR100618057B1 (ko) 전자 회로 및 전자 회로를 사용하여 정보를 처리하는 방법
US6278467B1 (en) Display memory control apparatus
US5765190A (en) Cache memory in a data processing system
US7107407B2 (en) Arithmetic unit with reduced startup time and method of loading data
US6192449B1 (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
JP2007206924A (ja) 演算処理システム
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
US20080250211A1 (en) Cache control method, cache device, and microcomputer
US20020174300A1 (en) Data processor and data processing method
US6742102B2 (en) Microprocessor and cache controlling method
JPH05143330A (ja) スタツクキヤツシユの制御方式及びスタツクキヤツシユ
JP3039391B2 (ja) メモリシステム
JPH10283185A (ja) プロセッサ
JP2003015957A (ja) キャッシュメモリ制御システム
JP2004038601A (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