JP4980751B2 - データ処理装置、およびメモリのリードアクティブ制御方法。 - Google Patents

データ処理装置、およびメモリのリードアクティブ制御方法。 Download PDF

Info

Publication number
JP4980751B2
JP4980751B2 JP2007053127A JP2007053127A JP4980751B2 JP 4980751 B2 JP4980751 B2 JP 4980751B2 JP 2007053127 A JP2007053127 A JP 2007053127A JP 2007053127 A JP2007053127 A JP 2007053127A JP 4980751 B2 JP4980751 B2 JP 4980751B2
Authority
JP
Japan
Prior art keywords
branch
instruction
taken
way
hit
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
Application number
JP2007053127A
Other languages
English (en)
Other versions
JP2008217353A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007053127A priority Critical patent/JP4980751B2/ja
Priority to US12/040,269 priority patent/US8667259B2/en
Priority to CN200810083121.1A priority patent/CN101256481B/zh
Publication of JP2008217353A publication Critical patent/JP2008217353A/ja
Application granted granted Critical
Publication of JP4980751B2 publication Critical patent/JP4980751B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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, 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
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、データ処理装置に係り、さらに詳しくは複数のWAYを持つ命令キャッシュを備えるマイクロプロセッサや、画像処理プロセッサなどのデータ処理装置と、そのようなデータ処理装置の消費電力削減を行うための複数のWAYに対するリードアクティブ制御方法に関する。
図12は、命令キャッシュを有するデータ処理システムの従来例の構成ブロック図である。同図においてマイクロプロセッサ100は、外部メモリとしての外部RAM101と接続されている。マイクロプロセッサ100は、命令を実行する実行ユニット102、命令データを一時的に格納するための命令キャッシュユニット103、実行すべき命令が分岐命令である時、分岐(条件)の成立/不成立を予測する分岐予測データを出力する動的分岐予測器104、外部RAM101からの命令データ、または命令キャッシュユニット103に格納されている命令データを選択して、実行ユニット102に与えるセレクタ105を備えている。
命令アドレスによって指定され、実行ユニット102から要求された命令データが命令キャッシュユニット103に格納されていない場合には、対応する命令データが外部RAM101から読み出され、実行ユニット102に供給されるとともに、命令キャッシュユニット103にも格納される。
実行ユニット102が同じ命令データを要求した場合には、命令キャッシュユニット103から対応する命令データが読み出され、セレクタ105を介して実行ユニット102に供給される。一般に外部RAM101にアクセスする時間より、命令キャッシュユニット103にアクセスする時間のほうが短いため、命令キャッシュユニットを備えることによって、命令を読み出し、実行するまでの時間を短縮することが可能となる。
図13は、図12の動的分岐予測器104による動的分岐予測方式の従来例の説明図である。この従来例は一般的にGShare方式と呼ばれている。図12において、分岐命令に対応して分岐(条件)の成立/不成立を予測する動的分岐予測器104は、図13においてプログラムカウンタ110、ブランチ・ヒストリー・レジスタ(BHR)111、排他的論理和演算器(XOR)112、およびパターン・ヒストリー・テーブル(PHT)113を備えている。この動的分岐予測器の動作については、非特許文献1に記載されている。なおPHT113は非特許文献1ではカウンタのテーブルと呼ばれている。
図13において、BHR111は分岐命令のアドレスに無関係に過去の分岐命令の実行結果を次々とシフトさせて、グローバル分岐履歴として格納するものであり、このBHR111からmビットのデータが出力され、プログラムカウンタ110の出力する命令アドレスn(≧m)ビットと、XOR112によって排他的論理和がとられ、結果としてのnビットがインデックスとしてPHT113の検索に用いられる。このようにPC110の出力nビットと、BHR111の出力mビットとの排他的論理和演算の結果をPHT113の検索のためのインデックスとして使用することによって、PHT113の複数のエントリの一部に分岐予測データ、すなわちプレディクションデータが偏ることなく、分岐命令のアドレスにほぼ1対1に近い形式で、分岐命令に対応する分岐予測データをPHT113に格納することが可能となる。
PHT113の各エントリに格納されるプレディクションデータはそれぞれ2ビットで
ある。このプレディクションデータは、分岐命令の実行のたびに分岐(条件)の成立/不成立、すなわちTaken/Not Takenに対応してその値が変化する。その値は、分岐が成立した時には“1”が加算され、不成立の時には“1”が減算されるカウンタのカウント値に相当する。
図13の右側は分岐予測データ(プレディクションデータ)の状態遷移の説明図である。非特許文献1では、PHT113の各エントリに格納される分岐予測データは、対応する分岐命令の直前の実行結果としての分岐成立/不成立に加えて、さらに前回の分岐予測の成功/失敗を反映するデータである。
例えばStrongly Takenの状態(エントリのデータ11)は前回の分岐命令の実行結果に対応してその分岐命令が成立と予測されることに加えて、前回の分岐予測が成功したことを示し、これに対してWeakly Takenの状態(10)はその分岐命令に対して分岐成立が予測されるが、前回の予測が失敗であったことを示している。Strongly Not Taken(00)、およびWeakly Not Taken(01)の状態も同様の意味を持っている。
図12の命令キャッシュユニット103が複数のキャッシュWAYを持つ場合には、実行ユニット102から要求された命令データがどのWAYに格納されているかを予測して、予測されたWAYだけをチップイネーブルとし、それ以外のWAYをチップディセーブルとすることによって、消費電力を削減し、低消費電力で動作可能な命令キャッシュユニットを持つデータ処理装置が提供される。
図14は、従来技術としての特許文献1に記載され、低消費電力で動作可能な命令キャッシュユニットの構成ブロック図である。同図の動作を図15の命令列の例を用いて説明する。図15には分岐命令を含む命令列の例が示されているが、ここでは連続する4つの命令を1つのブロックとして、この1つのブロックの内部の命令に対しては、対応する命令データが複数のキャッシュWAYのうちでいずれか1つのキャッシュWAYだけに格納されているものとして、図14の命令キャッシュユニットの動作を説明する。
図14において命令キャッシュユニットは、命令アドレスを格納する命令アドレスレジスタ120、複数のキャッシュWAYに対応する複数の、ここでは2個のキャッシュRAM121、121、2つのキャッシュRAM121、121にそれぞれ対応するタグRAM122、122、2つのタグRAMの出力と命令アドレスレジスタから出力されるタグアドレスとを比較する2つの比較器123、123、命令アドレスの一部としてのブロックオフセットを用いて、ブロックの先頭命令を検出するブロック先頭検出部124、2つの比較器123、123の出力、ブロック先頭検出部124の出力、および対応するキャッシュRAM121、121内でタグRAM122、122によって出力されるアドレスによって指定されるエントリに有効なデータが格納されていることを示し、タグRAM122、122から出力されるエントリ有効信号を受けて、2つのキャッシュRAM121、121のいずれかに要求された命令データが格納されている(ヒット)か、いずれにも格納されていない(ミス)かを判定するヒット/ミス判定論理回路125、ヒット/ミス判定論理回路125から出力される信号であって、各キャッシュRAM121、121をリードアクティブ、すなわちチップイネーブルにするためのキャッシュRAMリードアクティブ信号を反転させて、負論理(図では○印省略)のチップイネーブル(CE)端子に与える2つのインバータ126、126、および要求された命令データが格納されているキャッシュRAM121、121のいずれかから出力される命令データを選択して出力するためのセレクタ127を備えている。
図14の命令キャッシュユニットにおける電力削減効果についてさらに説明する。ヒット/ミス判定論理回路125は、ブロック先頭検出部124によって1つのブロックの先頭であることが検出された命令のアドレスが与えられたサイクルにおいては、2つのキャッシュRAM121、121に対するキャッシュRAMリードアクティブ信号をともに“H”とし、2つのキャッシュRAMをともにチップイネーブルとして、2つのキャッシュRAMからの命令データ読み出しを可能とする。
次の(命令のアドレスが与えられる)サイクルにおいて、ヒット/ミス判定論理回路125は比較器とタグRAMのセットのうちで比較器が“H”を出力し、またタグRAMがエントリ有効信号として“H”を出力したセットに対応するキャッシュRAMに対してのみ、キャッシュRAMリードアクティブ信号を“H”のままとし、他方のキャッシュRAMに対するキャッシュRAMリードアクティブ信号を“L”とする。1つのブロック内のさらに後続の2つの命令アドレスが与えられる2つのサイクルにおいては、同一のリードアクティブ制御状態が維持されることによって、消費電力を削減することが可能となる。なお2つのキャッシュRAM121、121のいずれにも要求された命令データが格納されていない場合には、ヒット/ミス判定論理回路125からキャッシュミス信号が出力され、前述のように外部RAM101からの命令データの読み込みが行われることになる。
しかしながらこの特許文献1においては、実行ユニットから出力された命令アドレスに対応する命令が分岐命令である時にも、ブロックの先頭命令の検出時と同様に2つのキャッシュRAMはともにチップイネーブル状態とされており、分岐命令検出時には消費電力削減が行われず、電力削減効果が十分でないという問題点があった。
このような複数の命令キャッシュWAYのうちで、要求された命令データが格納されているWAYを予測するための従来技術としての特許文献2では、アクセスされるセット連想メモリのセットに関するセット予測情報を、ブランチ・ターゲット・バッファ、命令キャッシュ、オペランド履歴テーブルなどの様々な位置に格納し、命令やデータのセット連想キャッシュへのアクセス遅延を減少させ、消費電力を削減する技術が開示されている。しかしながらこの技術を実現するために、タグアドレス、ターゲットアドレスなどを格納する容量の大きいブランチ・ターゲット・バッファが必要となり、このように物量の大きな記憶装置を追加することによって、逆に消費電力が増大してしまうという問題点があった。
さらにこのような命令キャッシュのWAY予測方式の従来技術としての特許文献3には、非シーケンシャル命令をキャッシュするのを容易にするために付加的なキャッシュWAY予測メモリが提供され、非シーケンシャル命令の処理を行う技術が開示されている。しかしながら特許文献3においては、キャッシュWAYの予測のために1番新しいWAYヒット/ミスの結果が保持されているだけであり、分岐予測やキャッシュWAY予測の精度として高い精度が期待できないという問題点があった。
S.McFarling:"Combining Branch Predictors",Technical Note TN−36,Western Research Laboratory(June 1993) 特開2002−196981号公報 「データ処理装置」 特開2000−222205号公報 「セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置」 特表2005−535955号公報 「ジャンプターゲットのための命令キャッシュウェイ予測」
本発明の課題は、上述の問題点に鑑み、分岐命令検出時にも消費電力削減を可能とし、またキャッシュWAYの予測精度をさらに向上させることができるデータ処理装置、およびメモリリードアクティブ制御方法を提供することである。
本発明のデータ処理装置は、複数のメモリ、例えば複数のキャッシュWAYを有する命令キャッシュメモリと、分岐命令の分岐条件成立/不成立の予測データを格納するとともに、成立予測の時に複数のメモリのうちで分岐命令のデータが格納されているメモリの予測データとを格納する分岐予測データ格納手段と、実行すべき命令が分岐命令である時、その分岐命令に対応するインデックスによって分岐予測データ格納手段から得られる前記分岐条件成立/不成立の予測データと、前記メモリの予測データとを用いて、複数のメモリに対してリードアクティブ制御信号を出力するリードアクティブ制御手段とを備える。
本発明においては、実行すべき分岐命令に対応して、その命令データが格納されているメモリ、すなわちキャッシュWAYの予測が行われ、その予測結果に対応して命令データが格納されているメモリ、例えばキャッシュWAYに対して、そのメモリをチップイネーブルとするリードアクティブ制御信号が与えられる。他のメモリ、例えばキャッシュWAYに対してはそのメモリをチップディセーブルとするリードアクティブ制御信号が与えられる。これによって分岐命令に対応してもキャッシュWAYの予測が行われ、その予測結果に対応してさらに消費電力削減を行うことが可能となる。
発明の実施の形態においては、実行すべき命令が分岐命令でない時、および分岐命令であっても分岐条件不成立と予測される時には、リードアクティブ制御手段が、図14で説明した従来方式によって出力されるキャッシュWAYの予測データを、そのままリードアクティブ制御信号として出力することによって、従来と同様の電力削減効果も得られる。
本発明のメモリのリードアクティブ制御方法においては、実行すべき命令が分岐命令である時、前述の分岐予測データ格納手段に格納されている分岐条件成立/不成立の予測データと、前述のメモリの予測データとを検索し、その検索結果に対応して複数の各メモリに対するリードアクティブ制御信号を出力する方法が用いられる。
本発明によれば、命令列へのシーケンシャルアクセスの場合の消費電力削減に加えて、分岐命令が検出された場合にも、命令データが格納されているキャッシュWAY以外のキャッシュWAYの電力消費を抑制することが可能となり、従来技術に比較して、さらにデータ処理装置の消費電力削減効果を大きくすることができる。
図1は、本実施形態におけるデータ処理装置の原理構成ブロック図である。同図においてデータ処理装置は、複数のメモリ1を有する命令キャッシュメモリ2、分岐予測データ格納手段3、リードアクティブ制御手段4、ヒット/ミス判定手段5、およびインデックス作成手段6を備え、さらに図示しない実行ユニットを備える。
分岐予測データ格納手段3は、例えばパターン・ヒストリー・テーブルであり、分岐命令の成立/不成立の予測データと、成立予測の時に複数のメモリ1のうちでその分岐命令のデータが格納されているメモリの予測データとを格納するものである。
リードアクティブ制御手段4は、例えばリードアクティブ制御回路であり、実行すべき命令が分岐命令である時、その分岐命令に対応するインデックス、すなわちインデックス
作成手段6から出力されるインデックスに対応して、分岐予測データ格納手段3から出力される分岐(条件)成立/不成立の予測データとメモリの予測データとを用いて、複数のメモリ1に対してリードアクティブ制御信号を出力するものである。
ヒット/ミス判定手段5は、実行すべき命令のアドレスに対応して、その命令のデータが格納されているメモリを示すデータを、リードアクティブ制御手段4に出力するものであり、リードアクティブ制御手段4は実行すべき命令が分岐命令でない時、および分岐命令であっても分岐が不成立と予測される時、メモリを示すデータをそのままリードアクティブ制御信号として複数のメモリ1に出力する。
以上のように本実施形態においては、リードアクティブ制御手段4によって、複数のメモリ1のうちで、分岐命令のデータが格納されていると予測されるメモリ1だけをアクティブとするためのリードアクティブ制御信号が出力されることによって、他のメモリ1の消費電力が抑制されることになる。
図2は、本実施形態におけるデータ処理システムの構成例である。同図においては、図12の従来例と同様に、マイクロプロセッサ10が外部RAM11と接続され、マイクロプロセッサ10の内部には実行ユニット12、命令キャッシュユニット13、および動的分岐予測器14が備えられている。図12と比較して、本実施形態における特徴として、動的分岐予測器14から命令キャッシュユニット13に対して命令キャッシュのWAY予測データが与えられる点が基本的に異なっている。
図3は、本実施形態における命令キャッシュユニット13と動的分岐予測器14の構成ブロック図である。命令キャッシュユニット13は、図14の従来例と同様に、命令アドレスレジスタ20、命令キャッシュの複数のWAYに対応する複数、ここでは2個のキャッシュRAM21、21、各キャッシュRAMに対応するタグRAM22、22、タグの比較器23、23、ブロック先頭検出部24、ヒット/ミス判定論理回路25、インバータ26、26、およびセレクタ27によって構成されているが、図14の従来例と異なり、動的分岐予測器14から出力される分岐予測データが命令キャッシュユニット13の内部のヒット/ミス判定論理回路25に与えられる点が基本的に異なっている。
図3において動的分岐予測器14では、図13の従来例におけるプログラムカウンタに代わって、命令アドレスレジスタ20から命令アドレスが与えられ、ブランチ・ヒストリー・レジスタ(BHR)28の出力とXOR29によって排他的論理和がとられ、その排他的論理和のデータをインデックスとしてパターン・ヒストリー・テーブル(PHT)30のエントリが検索され、そのエントリに格納されている分岐予測(プレディクション)データがヒット/ミス判定論理回路25に与えられるとともに、図2において実行ユニット12に対しても与えられる。図13の従来例ではパターン・ヒストリー・テーブル(PHT)の各エントリに格納されているデータは2ビットであるものとしたが、本実施形態においては後述するように3ビットのデータとなる。なお本発明の特許請求の範囲の請求項3のインデックス作成手段はBHR28とXOR29とに相当する。
図4は、図3の命令キャッシュユニット13の内部のヒット/ミス判定論理回路25の詳細構成ブロック図である。同図においてヒット/ミス判定論理回路25は2つのANDゲート32、32、NORゲート33、2つのORゲート34、34、およびリードアクティブ制御回路35によって構成されている。
ANDゲート32、32に対しては、図3の2つのキャッシュRAM21、21に対応するタグアドレスの比較器23、23の出力と、タグRAM22、22
から出力され、キャッシュRAM21、21の中でタグアドレスに対応するエントリに有効な命令データが格納されていることを示すエントリ有効信号とが入力され、これらの入力信号がともに“H”である時に“H”が出力される。
ANDゲート32の出力は、NORゲート33、2つのORゲート34、34に与えられるとともに、セレクタ27に対して選択制御信号として与えられる。セレクタ27は、例えばANDゲート32の出力が“H”である時にキャッシュRAM21から出力された命令データを選択し、また“L”である時にキャッシュRAM21から出力された命令データを選択する。
NORゲート33にはANDゲート32の出力も与えられ、2つのANDゲート32、32の出力がともに“L”である時にキャッシュミス検出信号、すなわち2つのキャッシュRAM21、21のいずれにも対応する命令データが格納されていないことを示す信号が出力され、このキャッシュミス検出信号に対応して図2の外部RAM11から命令データがリードされ、実行ユニット12に与えられるとともに、命令キャッシュユニット13にもその命令データが格納される。
2つのORゲート34、34に対しては、ともにANDゲート32の出力と、ブロック先頭検出部24の出力とが与えられる。ただし、ORゲート34の2つの入力端子のうちで、ANDゲート32の出力が与えられる入力端子は負論理となっている。
ORゲート34は、ANDゲート32の出力、またはブロック先頭検出部24の出力が“H”である時に、WAY0アクティブ信号を“H”としてリードアクティブ制御回路35に与える。またORゲート34は、ANDゲート32の出力が“L”であるか、ブロック先頭検出部24の出力が“H”である時に、WAY1アクティブ信号を“H”として、リードアクティブ制御回路35に出力する。
リードアクティブ制御回路35に与えられるWAY0アクティブ信号、WAY1アクティブ信号は、命令アドレスに対応する命令が、例えば分岐命令でない時に、そのままリードアクティブ制御回路35から図3のインバータ26、26に対してキャッシュRAM#0リードアクティブ信号、キャッシュRAM#1リードアクティブ信号として与えられ、それぞれ対応するキャッシュRAM21、21をチップイネーブル状態として、命令データの読み出しを可能とするものである。このためリードアクティブ制御回路35に対しては、例えば図2には図示しない中央処理装置(CPU)から出力される分岐命令検出信号が与えられる。またリードアクティブ制御回路35に対しては、図3の動的分岐予測器14の出力としての分岐予測(プレディクション)データも与えられる。リードアクティブ制御回路35の構成については後述する。なお本発明の請求項2のヒット/ミス判定手段はヒット/ミス判定論理回路25のうちでリードアクティブ制御回路35を除く部分に相当し、また命令のデータが格納されているメモリを示す信号はWAY0アクティブ信号、WAY1アクティブ信号に相当する。
図5は、本実施形態における分岐予測データ(プレディクションデータ)の動的分岐予測器からの出力方式の説明図である。同図において、プレディクションデータ出力方式は図13の従来例とほぼ同様であり、プログラムカウンタ37の出力としての命令アドレスnビットと、ブランチ・ヒストリー・レジスタ27の出力するブランチ・ヒストリー・データmビットとが、XOR28によって排他的論理和がとられ、その結果のnビットのデータがインデックスとしてパターン・ヒストリー・テーブル(PHT)に与えられ、そのインデックスによって検索されるエントリのデータ3ビットが分岐予測データとして出力される。
図6は、パターン・ヒストリー・テーブルの各エントリに格納される分岐予測データの状態遷移の説明図である。同図を図13で説明した状態遷移の従来例と比較すると、Strongly Takenの場合の予測データが、図3の2つのキャッシュRAM21、21、すなわちWAY0とWAY1のいずれかを予測する場合と、いずれのWAYをも予測しない、すなわちキャッシュミスの場合との3つの状態、すなわちWAY0を予測するプレディクションデータ“100”、WAY1を予測する“101”、キャッシュミスを予測する“011”の3つに分かれ、分岐命令の実行結果に対応して、各状態に対応するデータの間で状態遷移が行われる点が異なっている。
なお図6において3つのStrongly Takenの状態、およびWeakly Takenの状態との間の状態遷移の契機となるTaken/hitは分岐が成立し、キャッシュWAYの予測がヒットしたことを示し、またTaken/missは分岐が成立し、キャッシュミスが起こった場合も含め、キャッシュWAYの予測が失敗したことを示す。さらに例えばStrongly Taken/WAY1の状態でWAY予測が失敗し、WAY0をリードアクティブにすべきであった場合にもStrongly Taken
C−missの状態に遷移する。またWeakly Takenの状態で分岐が成立し、かつ分岐命令のデータがキャッシュから読み出された場合には、WAY0、WAY1のいずれにヒットしたかが判明するので、その結果に対応した状態遷移が行われる。
図7は、図6の分岐予測データの各状態に対応して、図3の2つのインバータ26、26に与えられるキャッシュRAMリードアクティブ信号の決定論理の説明図である。同図において分岐命令検出信号が“0”、すなわち命令アドレスレジスタ20に格納されている命令アドレスに対応する命令が分岐命令でない場合には、リードアクティブ制御回路35から出力される2つのキャッシュRAMに対するリードアクティブ信号は、リードアクティブ制御回路35への入力としてのWAY0アクティブ信号、WAY1アクティブ信号となる。
分岐命令検出信号が“1”であっても、分岐予測データが“000”、または“001”、すなわち分岐が不成立であることを予測するデータである場合には、分岐命令検出信号が“0”である場合と同様に、キャッシュリードアクティブ信号として、リードアクティブ制御回路35に入力されるWAY0アクティブ信号、WAY1アクティブ信号がそのまま用いられる。
分岐命令検出信号の値が“1”であり、分岐予測データがWeakly Takenであるか、Strongly Takenであってもキャッシュミスであった状態、すなわち“010”、または“011”の場合には、前回の分岐予測が失敗している状態であり、キャッシュWAYの予測も不安定となるため、2つのキャッシュRAM21、21に対応するリードアクティブ信号の値はともに“1”、すなわち“H”とされ、両方のキャッシュRAM21、21がチップイネーブル状態とされる。
最後に分岐命令検出信号の値が“1”であり、Strongly Taken/キャッシュWAY0、またはStrongly Taken/キャッシュWAY1を示す“100”、または“101”の予測データに対しては、それぞれ予測WAYに対応するキャッシュRAM21、21をチップイネーブルにするためのリードアクティブ信号が出力される。
図8は、リードアクティブ制御回路の構成例の回路図である。同図においてリードアクティブ制御回路は、7個のANDゲート40から46、4個のORゲート47から50、および2つのセレクタ51、52から構成されている。
5個のANDゲート40から44に対しては、図5のPHT29から出力されるプレディクションデータ、すなわち分岐予測データ3ビットが与えられる。ただしANDゲート40に対しては上位2ビットだけが与えられ、このANDゲートの2つの入力端子はともに負論理となっている。またANDゲート41の入力端子のうち、最上位ビットと最下位ビットとの入力端子、ANDゲート42の最上位ビットの入力端子、ANDゲート43の最下位ビットと中間位置ビットとの入力端子、ANDゲート44の中間位置ビットの入力端子はそれぞれ負論理となっている。
その結果、ANDゲート40からはNot Takenを示す信号が2つのANDゲート45、46に与えられる。これらのANDゲート45、46は分岐予測がNot Taken、すなわち不成立の場合に、それぞれ他方の入力端子に与えられるWAY0アクティブ信号、WAY1アクティブ信号をそれぞれORゲート49、50に出力する。
ORゲート47は、ANDゲート41、42、または43の出力が“H”である時、すなわち分岐予測データがWeakly Taken、またはStrongly Taken/キャッシュミス、またはStrongly Taken/キャッシュWAY0である時に、ORゲート49に“H”を出力する。
ORゲート48は、分岐予測データがWeakly Taken、またはStrongly Taken/キャッシュミス、またはStrongly Taken/キャッシュWAY1である時に、“H”をORゲート50に出力する。
ORゲート49は分岐予測データがNot Takenである時にWAY0アクティブ信号を、また分岐予測データがWeakly Taken、またはStrongly Taken/キャッシュミス、またはStrongly Taken/キャッシュWAY0を示す時に、“H”をセレクタ51の入力端子1に出力する。
ORゲート50は、分岐予測データがNot Takenである時にWAY1アクティブ信号を、また分岐予測データがWeakly Taken、またはStrongly Taken/キャッシュミス、またはStrongly Taken/キャッシュWAY1である時に、“H”をセレクタ52の入力端子1に出力する。
セレクタ51、52のそれぞれ他方の入力端子、すなわち入力端子0には、WAY0アクティブ信号、WAY1アクティブ信号がそれぞれ与えられ、セレクタ51、52は分岐命令検出信号の値が“0”であるか“1”であるかに対応して、入力端子0、または1からの信号を選択し、キャッシュRAMに対するリードアクティブ信号として出力する。
図9から図11は、本実施形態におけるデータ処理装置の動作例のタイムチャートである。本実施形態においても図15で説明したように、命令の1ブロックは4つの命令で構成されるものとし、命令列に対するシーケンシャルアクセスが行われる場合に1ブロック内の4つの命令に対するキャッシュWAYは変わらないものとして、これらのタイムチャートについて説明する。
図9においては、3サイクル目に分岐命令が検出される。本実施形態では分岐命令が検出された時には、ペナルティとして次の1サイクルにおいて命令データの読み込みは行われず、また2つのキャッシュWAYに対するリードアクティブ信号はともに“L”とされるものとする。なおこのペナルティを、例えば2サイクル以上とすることも可能である。
この分岐命令に対応してPHTから読み出されたプレディクションデータが“101”であり、分岐条件の成立が予測され、またキャッシュWAYとしてWAY1が予測された
ものとする。この分岐予測データは4サイクル目で出力され、その結果5サイクル目ではWAY1に対するリードアクティブ信号が“H”とされるが、WAY0に対するリードアクティブ信号は“L”のままとされる。
本実施形態では、アドレスが与えられたサイクルから3サイクル目に分岐命令の実行結果が判明し、分岐予測が失敗した時にはその失敗を示す信号が“H”となり、それに対応してPHTのエントリに格納された分岐予測データの更新が行われる。ここでは6サイクル目に分岐が不成立であったことを示す失敗信号が“H”となり、PHTのエントリに対しては図6の状態遷移図に対応してWeakly Takenを示す“010”が格納される。
図9の最下部に従来技術、すなわち特許文献1の技術による消費電力削減効果に加えて、本実施形態による消費電力削減効果が説明されている。すなわち従来技術でブロックの先頭の命令の次のサイクルでリードアクティブ状態が維持されたWAYは、そのブロック内の命令に対してはそのままリードアクティブとされる。すなわち2サイクル目と3サイクル目はWAY1に対するリードアクティブ信号が“L”とされることによって消費電力が削減されることになる。同様に6サイクル目から8サイクル目に対しても、リードアクティブとされたWAYだけがアクティブ状態に保たれるために電力の削減効果が実現される。
前述のように4サイクル目では、分岐命令に対するペナルティとして本実施形態では2つのWAYに対するリードアクティブ信号が“L”とされ、このサイクルで読み出されたプレディクションデータに対応して、5サイクル目でWAY1に対するリードアクティブ信号が“H”とされるのに対して、WAY0に対するリードアクティブ信号は“L”に保たれる。従来技術では前述のように、分岐命令が検出された場合には2つのWAYに対するリードアクティブ信号がともに“H”とされるために、従来技術ではWAY0に対するリードアクティブ信号も5サイクル目で“H”とされることになるが、本実施形態では5サイクル目でWAY0に対するリードアクティブ信号を“L”とすることによって、さらに電力削減効果が大きくなる。
図10は、動作例その2に対するタイムチャートである。同図において4サイクル目までの動作は図9におけると同様である。しかしながら5サイクル目において次の分岐命令が読み出され、これに対応して6サイクル目では命令の読み出しは行われず、また2つのWAYに対するリードアクティブ信号はともに“L”とされる。
この次の分岐命令に対応して、プレディクションデータとして“100”がPHTから読み出され、この分岐予測データを用いて7サイクル目でWAY0に対するリードアクティブ信号が“H”とされるが、WAY1に対するリードアクティブ信号は“L”のままとされ、従来技術に比較して本実施形態では7サイクル目においても消費電力削減効果が得られることになる。なおこの次の分岐命令の実行結果としての分岐条件は“成立”であり、キャッシュWAYの予測も成功であるために分岐予測失敗信号は出力されず、PHTの更新は行われていない。
図11の第3の動作例では3サイクル目で与えられた分岐命令に対応するプレディクションデータは“000”であり、分岐条件の不成立が予測されたため、図10、11と異なって4サイクル目での命令データ読み出しの中止と、2つのWAYに対するリードアクティブ信号のディアサートは行われない。これに対して従来技術では分岐命令が検出されると2つのWAYに対するリードアクティブ信号がともに“H”とされるために、本実施形態ではWAY1に対するリードアクティブ信号が4サイクル目で“L”とされる分だけ、さらに消費電力が削減される。
以上本発明の実施形態について詳細に説明したが、本発明の実施形態は以上の記述に限定されることなく、例えばキャッシュのWAY、すなわち図3のキャッシュRAMは2個でなく、3個以上であっても良いことは当然である。また例えば図8のリードアクティブ制御回路は図7で説明した制御論理を実現できるものであればどのような回路でも良いことは当然である。さらにパターン・ヒストリー・テーブルを検索するためのインデックスの決定方法も図5に説明した方式に限定されることなく、例えば非特許文献1に記載されている各種のインデックス決定方法を利用可能なことも当然である。
本発明のデータ処理装置の原理構成ブロック図である。 本実施形態におけるデータ処理システムの構成例のブロック図である。 本実施形態における命令キャッシュユニットと動的分岐予測器との構成例のブロック図である。 図3のヒット/ミス判定論理回路の構成例のブロック図である。 分岐予測データ出力方式の説明図である。 分岐予測データの状態遷移の説明図である。 キャッシュWAYに対するリードアクティブ信号の決定論理を説明する図である。 図4のリードアクティブ制御回路の構成例の回路図である。 データ処理装置の第1の動作例を示すタイムチャートである。 データ処理装置の第2の動作例を示すタイムチャートである。 データ処理装置の第3の動作例を示すタイムチャートである。 データ処理システムの従来例の構成ブロック図である。 動的分岐予測方式の従来例の説明図である。 命令キャッシュユニットの従来例の構成を示すブロック図である。 データ処理装置によって実行される命令列の例である。
符号の説明
1 メモリ
2 命令キャッシュメモリ
3 分岐予測データ格納手段
4 リードアクティブ制御手段
5 ヒット/ミス判定手段
6 インデックス作成手段
10 マイクロプロセッサ
11 外部ランダム・アクセス・メモリ
12 実行ユニット
13 命令キャッシュユニット
14 動的分岐予測器
20 命令アドレスレジスタ
21 キャッシュRAM
22 タグRAM
23 比較器
24 ブロック先頭検出部
25 ヒット/ミス判定論理回路
26 インバータ
27 セレクタ
28 ブランチ・ヒストリー・レジスタ(BHR)
29 排他的論理和演算器(XOR)
30 パターン・ヒストリー・テーブル(PHT)
35 リードアクティブ制御回路

Claims (2)

  1. nウェイの命令キャッシュメモリと、
    分岐命令に対応するインデックスによって参照する分岐予測テーブルであって、各エントリに、2レベル分岐方向予測データと、前回の命令キャッシュヒット/ミスの情報と、該命令キャッシュヒット時のヒットしたウェイの情報とを統合してエンコードした状態ビットを格納する分岐予測テーブルを備え、
    前記状態ビットは、2レベル分岐方向予測の「strongly taken」のステートを拡張して、「strongly takenであって前回C-miss」、「strongly takenであって前回WAY0でhit」、・・・「strongly takenであって前回WAYn-1でhit」のn+1個のステートとし、他のステート、即ち「strongly not taken」、「weakly not taken」、「weakly taken」と合わせて合計n+4個のステートに統合し、log2(n+4)ビット(整数に切り上げ)にエンコードして、分岐命令の実行結果(成立/不成立)と前記命令キャッシュのアクセス結果(ヒット/ミス、ヒット時のウェイ)によって状態遷移させるものであり、
    また、前記状態ビットは、分岐方向がstrongly takenと予測する場合に、リードを必要とする命令キャッシュのウェイを予測し、strongly taken以外のステートではリードが必要となるウェイを予め決められた規則によって指示するものであり、
    実行すべき命令が分岐命令である時、前記分岐予測テーブルの状態ビットに基づいて、必要とされるウェイに対してのみリード信号をアクティブに制御することを特徴とするデータ処理装置。
  2. nウェイの命令キャッシュメモリと、分岐命令に対応するインデックスによって参照する分岐予測テーブルであって、各エントリに、2レベル分岐方向予測データと、前回の命令キャッシュヒット/ミスの情報と、該命令キャッシュヒット時のヒットしたウェイの情報とを統合してエンコードした状態ビットを格納する分岐予測テーブルと、を備えるデータ処理装置のメモリのリードアクティブ制御方法であって、
    前記状態ビットは、2レベル分岐方向予測の「strongly taken」のステートを拡張して、「strongly takenであって前回C-miss」、「strongly takenであって前回WAY0でhit」、・・・「strongly takenであって前回WAYn-1でhit」のn+1個のステートとし、他のステート、即ち「strongly not taken」、「weakly not taken」、「weakly taken」と合わせて合計n+4個のステートに統合し、log2(n+4)ビット(整数に切り上げ)にエンコードして、分岐命令の実行結果(成立/不成立)と前記命令キャッシュのアクセス結果(ヒット/ミス、ヒット時のウェイ)によって状態遷移させるものであり、
    また、前記状態ビットは、分岐方向がstrongly takenと予測する場合に、リードを必要とする命令キャッシュのウェイを予測し、strongly taken以外のステートではリードが必要となるウェイを予め決められた規則によって指示するものであり、
    実行すべき命令が分岐命令である時、前記分岐予測テーブルの状態ビットに基づいて、必要とされるウェイに対してのみリード信号をアクティブに制御することを特徴とするメモリのリードアクティブ制御方法。
JP2007053127A 2007-03-02 2007-03-02 データ処理装置、およびメモリのリードアクティブ制御方法。 Expired - Fee Related JP4980751B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007053127A JP4980751B2 (ja) 2007-03-02 2007-03-02 データ処理装置、およびメモリのリードアクティブ制御方法。
US12/040,269 US8667259B2 (en) 2007-03-02 2008-02-29 Data processor and memory read active control method
CN200810083121.1A CN101256481B (zh) 2007-03-02 2008-03-03 数据处理器以及存储器读激活控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007053127A JP4980751B2 (ja) 2007-03-02 2007-03-02 データ処理装置、およびメモリのリードアクティブ制御方法。

Publications (2)

Publication Number Publication Date
JP2008217353A JP2008217353A (ja) 2008-09-18
JP4980751B2 true JP4980751B2 (ja) 2012-07-18

Family

ID=39733971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007053127A Expired - Fee Related JP4980751B2 (ja) 2007-03-02 2007-03-02 データ処理装置、およびメモリのリードアクティブ制御方法。

Country Status (3)

Country Link
US (1) US8667259B2 (ja)
JP (1) JP4980751B2 (ja)
CN (1) CN101256481B (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
CN105468334A (zh) * 2008-12-25 2016-04-06 世意法(北京)半导体研发有限责任公司 对非控制流指令减少分支检验
US8521996B2 (en) * 2009-02-12 2013-08-27 Via Technologies, Inc. Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
CN102053818B (zh) * 2009-11-05 2014-07-02 无锡江南计算技术研究所 分支预测方法及装置
EP3156896B1 (en) 2010-09-17 2020-04-08 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
US8635408B2 (en) * 2011-01-04 2014-01-21 International Business Machines Corporation Controlling power of a cache based on predicting the instruction cache way for high power applications
KR101826121B1 (ko) 2011-03-25 2018-02-06 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
US9766893B2 (en) 2011-03-25 2017-09-19 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
KR101703400B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 마이크로프로세서 가속 코드 최적화기
US10191746B2 (en) 2011-11-22 2019-01-29 Intel Corporation Accelerated code optimizer for a multiengine microprocessor
US9830272B2 (en) 2011-12-28 2017-11-28 Intel Corporation Cache memory staged reopen
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
JP5954112B2 (ja) * 2012-10-24 2016-07-20 富士通株式会社 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
CN103984525B (zh) * 2013-02-08 2017-10-20 上海芯豪微电子有限公司 指令处理系统及方法
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9904625B2 (en) * 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US10209992B2 (en) * 2014-04-25 2019-02-19 Avago Technologies International Sales Pte. Limited System and method for branch prediction using two branch history tables and presetting a global branch history register
CN108255517B (zh) * 2016-12-29 2020-05-05 展讯通信(上海)有限公司 处理器及请求指令缓存数据的方法
CN109308191B (zh) * 2017-07-28 2021-09-14 华为技术有限公司 分支预测方法及装置
US20230401063A1 (en) * 2022-06-08 2023-12-14 Ventana Micro Systems Inc. Folded instruction fetch pipeline
US11836498B1 (en) 2022-08-02 2023-12-05 Ventana Micro Systems Inc. Single cycle predictor
US11816489B1 (en) 2022-08-02 2023-11-14 Ventana Micro Systems Inc. Microprocessor with prediction unit pipeline that provides a next fetch address at a rate of one per clock cycle

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764946A (en) * 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5752259A (en) * 1996-03-26 1998-05-12 Advanced Micro Devices, Inc. Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
US5794028A (en) * 1996-10-17 1998-08-11 Advanced Micro Devices, Inc. Shared branch prediction structure
US5978906A (en) 1996-11-19 1999-11-02 Advanced Micro Devices, Inc. Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions
US5802602A (en) * 1997-01-17 1998-09-01 Intel Corporation Method and apparatus for performing reads of related data from a set-associative cache memory
US6073230A (en) * 1997-06-11 2000-06-06 Advanced Micro Devices, Inc. Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches
US5974542A (en) * 1997-10-30 1999-10-26 Advanced Micro Devices, Inc. Branch prediction unit which approximates a larger number of branch predictions using a smaller number of branch predictions and an alternate target indication
US6079005A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Microprocessor including virtual address branch prediction and current page register to provide page portion of virtual and physical fetch address
US6079003A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Reverse TLB for providing branch target address in a microprocessor having a physically-tagged cache
US6016545A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor
US6418525B1 (en) * 1999-01-29 2002-07-09 International Business Machines Corporation Method and apparatus for reducing latency in set-associative caches using set prediction
JP2002196981A (ja) * 2000-12-22 2002-07-12 Fujitsu Ltd データ処理装置
US7159097B2 (en) * 2002-04-26 2007-01-02 Ip-First, Llc Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US7406569B2 (en) * 2002-08-12 2008-07-29 Nxp B.V. Instruction cache way prediction for jump targets
US7380110B1 (en) * 2003-09-11 2008-05-27 Sun Microsystems, Inc. Branch prediction structure with branch direction entries that share branch prediction qualifier entries
KR100688503B1 (ko) * 2004-11-02 2007-03-02 삼성전자주식회사 브랜치 목적 어드레스를 이용하여 캐쉬 웨이를 예측하는프로세서 및 그 방법

Also Published As

Publication number Publication date
US8667259B2 (en) 2014-03-04
JP2008217353A (ja) 2008-09-18
CN101256481A (zh) 2008-09-03
US20080215865A1 (en) 2008-09-04
CN101256481B (zh) 2015-07-08

Similar Documents

Publication Publication Date Title
JP4980751B2 (ja) データ処理装置、およびメモリのリードアクティブ制御方法。
CN101156132B (zh) 用于预测不对准存储器存取的方法和设备
US7694077B2 (en) Multi-port integrated cache
US7594131B2 (en) Processing apparatus
EP0372865B1 (en) Cache device for supplying a fixed word length of a variable length instruction code and instruction fetch device
JP2006134331A (ja) ブランチ目的アドレスを利用してキャッシュウェイを予測するプロセッサ及びその方法
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
US20120166775A1 (en) Combined level 1 and level 2 branch predictor
CN112230992B (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
KR20190039290A (ko) 분기 타깃 버퍼 압축
JP4635063B2 (ja) キャッシュメモリ制御回路及びプロセッサ
US20110072215A1 (en) Cache system and control method of way prediction for cache memory
JP3590427B2 (ja) 先行読出機能付命令キャッシュメモリ
US20080162903A1 (en) Information processing apparatus
US7346737B2 (en) Cache system having branch target address cache
JP3890910B2 (ja) 命令の実行結果予測装置
KR100980076B1 (ko) 저전력 분기 예측 시스템 및 분기 예측 방법
KR100737741B1 (ko) 다차원 데이터 선인출 캐쉬를 이용한 메모리 장치 및 그제어 방법
US6694420B2 (en) Address range checking circuit and method of operation
KR100517765B1 (ko) 캐시 메모리 및 그 제어 방법
JP3593123B2 (ja) セットアソシアティブ方式のメモリ装置
JP2013097637A (ja) キャッシュ装置、メモリシステム及びデータ転送方法
JP2001195390A (ja) ベクトル処理装置のオペランドキャッシュ
JP2010191754A (ja) キャッシュ記憶装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

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: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees