JP2762797B2 - 命令キャッシュを有するパイプライン構成の情報処理装置 - Google Patents

命令キャッシュを有するパイプライン構成の情報処理装置

Info

Publication number
JP2762797B2
JP2762797B2 JP3281000A JP28100091A JP2762797B2 JP 2762797 B2 JP2762797 B2 JP 2762797B2 JP 3281000 A JP3281000 A JP 3281000A JP 28100091 A JP28100091 A JP 28100091A JP 2762797 B2 JP2762797 B2 JP 2762797B2
Authority
JP
Japan
Prior art keywords
instruction
buffer
instruction cache
register
word
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 - Lifetime
Application number
JP3281000A
Other languages
English (en)
Other versions
JPH05120010A (ja
Inventor
真一 名児耶
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP3281000A priority Critical patent/JP2762797B2/ja
Publication of JPH05120010A publication Critical patent/JPH05120010A/ja
Application granted granted Critical
Publication of JP2762797B2 publication Critical patent/JP2762797B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令キャッシュを有す
るパイプライン構成の情報処理装置に関する。
【0002】
【従来の技術】従来、この種の命令キャッシュを有する
情報処理装置の命令先取り方式には、命令キャッシュミ
スヒット時に、主記憶より読み出された命令語を命令キ
ャッシュの1エントリ分蓄えるバッファを有し、命令キ
ャッシュミスヒット中は、このバッファより命令の供給
を行い、さらに、次の命令キャッシュのミスヒット時に
バッファの内容を命令キャッシュに格納する第1の方式
や、命令キャッシュより読み出した命令語を蓄えるバッ
ファを有し、このバッファより命令の供給を行う第2の
方式等がある。また、第1、第2の両方式を備える装置
もある。
【0003】
【発明が解決しようとする課題】上述した従来の第1、
第2の方式のうち第1の方式のみ備える場合は、命令キ
ャッシュミスヒット時に、次命令を供給する迄空いてし
まう時間が、主記憶より命令語を読み出して来る迄の最
短時間より縮まることはない。また、バッファから、命
令キャッシュに命令語を格納している間、命令キャッシ
ュを索引することが出来ないため、既に取り出した命令
語が分岐命令であり、分岐先アドレスより命令語を先取
りする場合に待ち時間が生じ性能上の問題がある。
【0004】次に、第2の方式のみ備える場合は、命令
キャッシュミスヒット時に、命令キャッシュの1エント
リ分の主記憶領域の途中のアドレスより次命令を読み出
す場合、主記憶より読み出した1エントリ分の命令語を
命令キャッシュに格納し終わる迄の間、命令キャッシュ
を索引することが出来ない為、1エントリ分の主記憶領
域の境界内の命令語を供給後、その次の命令語の供給迄
に待ち時間が生じてしまい、やはり性能上の問題があ
る。
【0005】また、第1、第2の両方式を備える場合に
は、性能上の問題は生じないものの、一方の方式のみ備
える場合に比べて、著しくハードウェア量が増大してし
まうという問題がある。
【0006】
【課題を解決するための手段】本発明のパイプライン構
成の情報処理装置は、命令キャッシュを有し、命令キャ
ッシュのミスヒット時に、主記憶より命令キャッシュの
1エントリ分の命令語を一度に読み出すパイプライン構
成の情報処理装置において、命令キャッシュの1エント
リ分の命令語を格納するバッファと、命令キャッシュが
ミスヒットした場合に、主記憶より読み出す命令キャッ
シュの1エントリ分の命令語を、前記バッファが空であ
る場合には、前記バッファに、また、前記バッファが空
でない場合には、命令キャッシュに格納する第1の格納
手段と、命令キャッシュを索引しないタイミングで、前
記第1の格納手段により格納されたバッファの内容を命
令キャッシュに格納する第2の格納手段と、命令キャッ
シュがヒットし、前記バッファに空がある場合に、命令
キャッシュより読み出した命令語を前記バッファの空領
域に格納する第3の格納手段と、命令キャッシュがミス
ヒットして前記第1の格納手段により前記バッファに命
令語を格納した場合、または、前記バッファに前記第3
の格納手段により格納した命令語がある場合に、前記バ
ッファより命令語を供給する命令語供給手段とを有す
る。
【0007】
【作用】命令キャッシュがミスヒットした場合、バッフ
ァに空きがあれば第1の格納手段が主記憶より読み出す
命令語をバッファに格納し、格納した命令語を第2の格
納手段が命令キャッシュに格納する。また、すでにバッ
ファに必要な命令語がある場合は、命令語供給手段がバ
ッファより命令語を供給する。さらに命令キャッシュが
ヒットし、バッファに空領域がある場合は、命令キャッ
シュより読み出した命令語を第3の格納手段がバッファ
の空領域に格納する。
【0008】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。図1は本発明の命令先取りシステムの一実
施例を示すブロック図、第2は図1の実施例の論理回路
を詳細に示すブロック図である。命令取出しアドレスA
A(以降、アドレスAAと記す)の上位は、上位アドレ
スレジスタ102(以降、UAレジスタ102と記す)
に格納され、アドレスAAの下位は、セレクタ106の
一方の入力端に供給される。セレクタ106は選択信号
SAに基づいて、アドレスAAの下位またはカウンタ1
05の出力を選択し出力する。下位アドレスレジスタ1
03(以降、LAレジスタ103と記す)はセレクタ1
06からのアドレスを格納する。ライトアドレスレジス
タ120(以降、WAレジスタ120と記す)はライト
アドレスを格納する。
【0009】セレクタ107は選択信号SBに基づい
て、LAレジスタ103またはWAレジスタ120が格
納しているアドレスを選択し、命令キャッシュ101お
よびカウンタ105に出力する。カウンタ105は、セ
レクタ107が出力したアドレスをインクリメントす
る。セレクタ119は、選択信号SWに基づいて、主記
憶からのデータDDまたはセレクタ114の出力を選択
してライトデータレジスタ117(以降、WDレジスタ
117と記す)に出力する。WDレジスタ117は、セ
レクタ119からのデータを格納する。命令キャッシュ
101は、制御信号CCに基づいて、セレクタ107の
出力するアドレスに格納された内容を出力するか、WD
レジスタ117の内容をセレクタ107の出力するアド
レスに格納する。リードデータレジスタ108(以降、
RDレジスタ108と記す)は、命令キャッシュ101
の出力したデータを格納する。比較器109は、UAレ
ジスタ102が格納した内容と、RDレジスタ108が
格納した内容とを比較し、一致したときヒット信号HT
をハイレベル(以降、“1”と記す)にする。
【0010】セレクタ112は、選択信号SCに基づい
て、RDレジスタ108またはRDレジスタ117を選
択し、格納している内容を命令バッファ113に出力す
る。命令バッファ113は、制御信号ENに基づき、セ
レクタ112の出力を格納する。セレクタ114は、選
択信号SEに基づき、命令バッファ113からの出力を
セレクタ119およびセレクタ111に出力する。セレ
クタ111は、制御信号SDに基づき、RDレジスタ1
08が格納している内容またはセレクタ114の出力を
選択して、パイプラインの下位ステージへ出力する。
【0011】論理回路200は上述した各信号SA,S
B,SC,SD,SE,CC,EE,SWを生成して各
部を制御する回路であり、図2を参照してさらに詳述す
る。ライトアドレスレジスタ201(以降、WAAレジ
スタ201と記す)とリードアドレスレジスタ202
(以降、RAAレジスタ202と記す)とは、命令キャ
ッシュ101より読出した命令語を命令バッファ113
に格納するとき、または命令供給のために命令バッファ
113から読出すときにそれぞれライトアドレスまたは
リードアドレスを保持する。ライトアドレスレジスタ2
03(以降、WABレジスタ203と記す)とリードア
ドレスレジスタ204(以降、RABレジスタ204と
記す)とは、主記憶から読出した命令語を命令バッファ
113に格納するとき、または命令バッファ113に格
納された命令語を命令キャッシュ101に格納するとき
に、それぞれライトアドレスまたはリードアドレスを保
持する。
【0012】カウンタ205,206,207,208
は、それぞれWAAレジスタ201,RAAレジスタ2
02,WABレジスタ203,RABレジスタ204の
保持内容を+1だけインクリメントする。
【0013】比較器209は、WAAレジスタ201と
RAAレジスタ202の保持内容が一致すると、出力S
Dをロウレベル(以降、“0”と記す)にする。比較器
210は、WABレジスタ203とRABレジスタ20
4の保持内容が一致すると、出力SXを“0”とする。
インバータ211は、ヒット信号HTの論理レベルを反
転する。インバータ212は、パイプラインの下位ステ
ージより命令語の供給を要求することを示す信号RDY
の論理レベルを反転する。なお信号DRPYは、命令キ
ャッシュ101がミスヒットし、主記憶より命令語を読
み出す場合に、主記憶より1エントリ分の命令語の内、
1ワードの命令語が返って来たことを示すタイミング信
号である。
【0014】フリップフロップ223は、命令バッファ
113が空でない場合“1”を保持し、空である場合
“0”を保持する。セレクタ218は、インバータ21
2の出力に基づいて、RAAレジスタ202またはRA
Bレジスタ204を選択し、その保持内容を出力する。
セレクタ219は、アンド回路220の出力に基づき、
アンド回路213またはアンド回路214を選択し、そ
の出力を出力する。オア回路217は、アンド回路21
5,216の出力のオアをとり、選択信号SBおよび制
御信号CCを出力する。デコーダ221,222はそれ
ぞれセレクタ218,219の出力を選択信号SEおよ
びイネーブル信号ENにデコードする。
【0015】次に本実施例の動作について図1、図2を
参照して順次説明する。まず、命令キャッシュ101が
ミスヒットし、命令バッファ113に空きがない場合
(フリップフロップ223の保持内容が“1”、信号S
Dが“1”)について説明する。命令キャッシュ101
がミスヒットすると、ヒット信号HTが“0”となる
と、インバータ211により選択信号SCが“1”とな
り、命令バッファ113の入力としてWDレジスタ11
7の内容が選択出力される。命令バッファ113の空き
の有無は、比較器209によってWAAレジスタ201
とRAAレジスタ202の内容が異なることによって検
出される(信号SDが“1”)。命令バッファ113に
空きがない場合、主記憶より1ワードの命令語が返って
来たことを示す信号DRPYが“1”となり、アンド回
路215を介してオア回路217の出力が’“1”とな
る。したがって、命令キャッシュ101のライトイネー
ブル信号CCおよび選択信号SBが“1”となる。信号
SBが“1”となるとWAレジスタ120からライトア
ドレスが命令キャッシュに与えられ、主記憶から読出さ
れた命令語がセレクタ119を介して、WDレジスタ1
17にセットされ、1ワードずつ命令キャッシュ101
に格納される。この際、アンド回路220の出力は
“0”となるから、アンド回路214の出力も“0”と
なるために、デコーダ222のイネーブル信号ENも
“1”とはならず、命令バッファ113にWDレジスタ
117の内容は格納されない。
【0016】命令バッファ113が空である場合には、
WAAレジスタ201とRAAレジスタ202の内容が
一致するので、ライトイネーブル信号CCは“1”とな
らず、命令キャッシュへの格納は行われない。一方、ア
ンド回路220の出力が“1”となり、セレクタ219
を介してデコーダ222の出力すなわちイネーブル信号
ENが“1”となって、WABレジスタ203の示す命
令バッファ113のワードに、主記憶からの命令語が1
ワードずつ格納される。この際、WABレジスタ203
の保持内容は、カウンタ208によって+1ずつインク
リメントされる。
【0017】次に、命令キャッシュ101がヒットした
場合について説明する。まず、命令バッファ113
である場合(フリップフロップ223の保持内容が
“0”、信号SDが“0”)について説明する。アンド
回路213の出力が“1”となり、セレクタ219を介
してデコーダ222の出力であるイネーブル信号ENが
“1”となり、命令バッファ113へ供給される。この
際、選択信号SCは“0”となるため、命令バッファ1
13への入力はRDレジスタ108の保持内容が選択さ
る。このとき、命令キャッシュ101から読出された
命令語の1ワードは、パイプラインの下位ステージが受
け付け可能な場合には、セレクタ111を経由してパイ
プラインの下位ステージに直接に供給されるが、パイプ
ラインの下位ステージが受け付け不能な場合には、WA
Aレジスタ201が指示する命令バッファ113のワー
ドに格納される。この際、WAAレジスタ201の保持
内容はカウンタ205によって+1ずつインクリメント
される。
【0018】命令バッファ113に空でない場合(フリ
ップフロップ223の保持内容が“1”、信号SDが
“1”)について説明する。命令バッファ113には命
令キャッシュ101より先取りした命令語が存在するた
めに、命令バッファ113内の命令語が、RAAレジス
タ202の保持内容に従ってパイプラインの下位ステー
ジに供給され、あるいはRABレジスタ204の保持内
容に従って命令バッファ113に空きができるまで命令
キャッシュ101に格納される。
【0019】命令バッファ113に空領域ができるまで
は、命令キャッシュ101からの読出し動作は停止す
る。また、WAAレジスタ201とRAAレジスタ20
2の保持内容が一致していれば、命令バッファ113に
は命令キャッシュ101より先取りした命令語はなく、
セレクタ111をRDレジスタ108に読出された命令
語は命令バッファ113を経由せず、セレクタ111を
経由してパイプラインの下位ステージに供給される。
【0020】次に命令バッファに格納された命令語の読
出し動作について説明する。命令キャッシュ101ミス
ヒット中に、WABレジスタ203に従って命令バッフ
ァ113に格納された命令語は、パイプラインの下位ス
テージからの命令供給要求信号RDYが“0”の場合、
即ち、命令キャッシュ101を索引しないタイミング
で、セレクタ218、デコーダ221、セレクタ114
を経由してRABレジスタ204に対応した命令バッフ
ァ113のワード内の命令語が読出される。また、この
ときWABレジスタ203とRABレジスタ204の保
持内容は、等しくないので、アンド回路216の出力、
オア回路217の出力は“1”となり、命令バッファ1
01から読み出された命令語はWDレジスタ117にセ
ットされ、WAレジスタ120からのアドレスに従って
命令キャッシュ101に格納される。尚、このとき、R
ABレジスタ204の内容は、カウンタ207によりイ
リクリメントされる。
【0021】命令キャッシュ101ヒット中に、WAA
レジスタ201に従って命令バッファ101に格納され
た命令語は、信号RDY=“1”のタイミングで、セレ
クタ218、デコーダ221、セレクタ114を経由し
てRAAレジスタ202の内容に対応した命令バッファ
113のワード内の命令語が読み出され、このとき、W
AAレジスタ201とRAAレジスタ202の内容が一
致していないので、選択信号SDが“1”となり、命令
バッファ113から読み出された命令語が、パイプライ
ンの下位ステージに供給される。
【0022】尚、このときRAAレジスタ202は、カ
ウンタ206によりインクリメントされる。
【0023】以上説明した様な制御を行うことにより、
命令キャッシュ101がミスヒットした場合、命令バッ
ファ113より命令キャッシュ101から、先取りした
命令語を供給でき、また、命令キャッシュ101への格
納時間を短縮することにより、性能を向上することが出
来る。
【0024】
【発明の効果】以上説明したように本発明は、命令語を
蓄えるバッファを、命令キャッシュがヒットした場合の
命令先取り用のバッファとして用いるとともに、命令キ
ャッシュがミスヒットした場合の命令キャッシュへ命令
語を格納するためのバッファとしても用いることによ
り、少量のハードウェアで、命令キャッシュがミスヒッ
トした場合の性能を大幅に向上できる効果がある。
【図面の簡単な説明】
【図1】本発明のパイプライン構成の情報処理装置の一
実施例を示すブロック図である。
【図2】図1の実施例の論理回路を詳細に示すブロック
図である。
【符号の説明】
101 命令キャッシュ 102 上位アドレスレジスタ 103 下位アドレスレジスタ 105,205,206,207,208 カウンタ 106,107,111,112,114,119,2
18,219 セレクタ 108 ワードデータレジスタ 109 比較器 113 命令バッファ 117 ライトデータレジスタ 120,201,203 ライトアドレスレジスタ 200 論理回路 202,204 リードアドレスレジスタ 209,210 比較器 211,212 インバータ 213,214,215,216,220 アンド回路 217 オア回路 221,222 デコーダ 223 フリップフロップ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令キャッシュを有し、命令キャッシュ
    のミスヒット時に、主記憶より命令キャッシュの1エン
    トリ分の命令語を一度に読み出すパイプライン構成の情
    報処理装置において、 命令キャッシュの1エントリ分の命令語を格納するバッ
    ファと、 命令キャッシュがミスヒットした場合に、主記憶より読
    み出す命令キャッシュの1エントリ分の命令語を、前記
    バッファが空である場合には、前記バッファに、また、
    前記バッファが空でない場合には、命令キャッシュに格
    納する第1の格納手段と、 命令キャッシュを索引しないタイミングで、前記第1の
    格納手段により格納されたバッファの内容を命令キャッ
    シュに格納する第2の格納手段と、 命令キャッシュがヒットし、前記バッファに空がある場
    合に、命令キャッシュより読み出した命令語を前記バッ
    ファの空領域に格納する第3の格納手段と、 命令キャッシュがミスヒットして前記第1の格納手段に
    より前記バッファに命令語を格納した場合、または、前
    記バッファに前記第3の格納手段により格納した命令語
    がある場合に、前記バッファより命令語を供給する命令
    語供給手段とを有することを特徴とするパイプライン構
    成の情報処理装置。
JP3281000A 1991-10-28 1991-10-28 命令キャッシュを有するパイプライン構成の情報処理装置 Expired - Lifetime JP2762797B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3281000A JP2762797B2 (ja) 1991-10-28 1991-10-28 命令キャッシュを有するパイプライン構成の情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3281000A JP2762797B2 (ja) 1991-10-28 1991-10-28 命令キャッシュを有するパイプライン構成の情報処理装置

Publications (2)

Publication Number Publication Date
JPH05120010A JPH05120010A (ja) 1993-05-18
JP2762797B2 true JP2762797B2 (ja) 1998-06-04

Family

ID=17632875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3281000A Expired - Lifetime JP2762797B2 (ja) 1991-10-28 1991-10-28 命令キャッシュを有するパイプライン構成の情報処理装置

Country Status (1)

Country Link
JP (1) JP2762797B2 (ja)

Also Published As

Publication number Publication date
JPH05120010A (ja) 1993-05-18

Similar Documents

Publication Publication Date Title
US5493666A (en) Memory architecture using page mode writes and single level write buffering
US6021471A (en) Multiple level cache control system with address and data pipelines
US5371870A (en) Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5809280A (en) Adaptive ahead FIFO with LRU replacement
JP3729545B2 (ja) キャッシュメモリへのアクセス
US6507899B1 (en) Interface for a memory unit
JPH0836491A (ja) パイプライン・ストア命令を実行する装置及びその方法
US6363460B1 (en) Memory paging control method
US5452418A (en) Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation
EP0730228B1 (en) ECC protected memory organization with pipelined read-modify-write accesses
US5854943A (en) Speed efficient cache output selector circuitry based on tag compare and data organization
US8117400B2 (en) System and method for fetching an information unit
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US5724548A (en) System including processor and cache memory and method of controlling the cache memory
JP2762797B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JP2762798B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
EP0488566A2 (en) Method and apparatus for fast page mode selection
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
US5960456A (en) Method and apparatus for providing a readable and writable cache tag memory
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
US6836828B2 (en) Instruction cache apparatus and method capable of increasing a instruction hit rate and improving instruction access efficiency
JP3729832B2 (ja) キャッシュメモリ装置
US20040103267A1 (en) Data processor having cache memory
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式
JPH06301600A (ja) 記憶装置