JP2015122094A5 - - Google Patents

Download PDF

Info

Publication number
JP2015122094A5
JP2015122094A5 JP2015018674A JP2015018674A JP2015122094A5 JP 2015122094 A5 JP2015122094 A5 JP 2015122094A5 JP 2015018674 A JP2015018674 A JP 2015018674A JP 2015018674 A JP2015018674 A JP 2015018674A JP 2015122094 A5 JP2015122094 A5 JP 2015122094A5
Authority
JP
Japan
Prior art keywords
instruction
line
fetch address
cache
address
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
JP2015018674A
Other languages
English (en)
Other versions
JP2015122094A (ja
JP6030160B2 (ja
Filing date
Publication date
Priority claimed from US11/608,309 external-priority patent/US8060701B2/en
Application filed filed Critical
Publication of JP2015122094A publication Critical patent/JP2015122094A/ja
Publication of JP2015122094A5 publication Critical patent/JP2015122094A5/ja
Application granted granted Critical
Publication of JP6030160B2 publication Critical patent/JP6030160B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (20)

  1. 命令のラインプリフェッチする方法であって、
    第1のキャッシュ内の第2の命令の第2のフェッチアドレスのミスを示すインジケーションを受け取ることを備え、前記第2のフェッチアドレスが、第1の命令の第1のアドレスに対して非連続的であるか連続的であるかが決定され、
    前記方法はさらに、
    前記インジケーションに応答して、
    前記第2のフェッチアドレスが非連続的であることを条件として、
    前記第2のフェッチアドレスに基づいて、第2のキャッシュから第1の命令のラインをフェッチし、前記第2のキャッシュから第2の命令のラインをプリフェッチし、
    ここで、前記第2の命令のラインは、前記第1の命令のラインの次の連続キャッシュラインか、または分岐履歴テーブルもしくは分岐予測ロジックからの情報にしたがった非連続キャッシュラインであり、
    前記第2のフェッチアドレスが連続的であることを条件として、
    記第2の命令のラインをプリフェッチすることなく、前記第2のフェッチアドレスに基づいて、前記第2のキャッシュから前記第1の命令のラインをフェッチする、
    方法。
  2. 前記第2のフェッチアドレスが非連続的であることを条件として、前記第2の命令のラインをプリフェッチすることは、前記第1の命令のラインをフェッチすることと、前記第2の命令のラインをプリフェッチすることを結合することによって長データ転送を可能にすることを備える請求項1に記載の方法。
  3. 前記第2の令は、前記第1の命令の後フェッチされる請求項1に記載の方法。
  4. 前記第2のフェッチアドレスは前記第1のキャッシュに結合されたプロセッサ内のロジックによって、または、前記第2のフェッチアドレスを前記第1のフェッチアドレスと比較することによって、非連続的であると識別される請求項1に記載の方法。
  5. 前記第2のフェッチアドレスに関連付けられた非連続動作は、分岐動作である請求項1に記載の方法。
  6. 前記第2の命令のラインは、前記第1の命令のライン内の既定の閾値位置に関係する前記第1の命令のライン内の前記第2の命令の位置をさらに条件としてプリフェッチされる請求項1に記載の方法。
  7. 前記第2の命令のラインは、前記第1の命令のラインに対して非連続的である請求項1に記載の方法。
  8. 前記第2のフェッチアドレスに関連付けられた動作は、非連続的であり、復帰動作またはサブルーチンコール動作を含む請求項1に記載の方法。
  9. 前記第2のフェッチアドレスは連続的である場合、前記第1のフェッチアドレスに対して連続的であるメモリアクセスのターゲットであり、
    前記第2のフェッチアドレスは、非連続的である場合、前記第1のフェッチアドレスに対して非連続的であるメモリアクセスのターゲットである請求項1に記載の方法。
  10. システムであって、
    第2の命令の第2のフェッチアドレスが命令キャッシュ内でミスしたという通知を生成するように構成された命令キャッシュを備え、前記第2のフェッチアドレスが、第1の命令の第2のアドレスとの関係において非連続的であるか連続的であるかが決定され、
    前記システムはさらに、
    前記通知に応答して、
    前記第2のフェッチアドレスが非連続的であることを条件として、
    前記第2のフェッチアドレスに基づいて、第2のキャッシュから第1の命令のラインをフェッチし、前記第2のキャッシュから第2の命令のラインをプリフェッチし、
    ここで、前記第2の命令のラインは、前記第1の命令のラインの次の連続キャッシュラインか、または分岐履歴テーブルもしくは分岐予測ロジックからの情報にしたがった非連続キャッシュラインであり、
    前記第2のフェッチアドレスが連続的であることを条件として、
    前記第2のキャッシュからの前記第2の命令のラインをプリフェッチすることなく、前記第2のフェッチアドレスに基づいて、前記第2のキャッシュからの前記第1の命令のラインをフェッチするように構成された
    ジックと、
    を備えるシステム。
  11. 前記第2のフェッチアドレスは、前記第1のアドレスに対して非連続的であるか否かを判定するように構成されたキャッシュ制御ユニットをさらに備え、前記第1のアドレスは、前記第2のフェッチアドレスの前の第1のフェッチアドレスを含んでいる請求項10に記載のシステム。
  12. 前記プリフェッチされた第2の命令のラインは、前記命令キャッシュへの長データ転送において提供される請求項10に記載のシステム。
  13. 前記第2の命令のラインは、前記第1の命令のラインに対して連続的である請求項10に記載のシステム。
  14. 前記第2の命令のラインは、前記第1の命令のラインに対して非連続的である請求項10に記載のシステム。
  15. 第2の命令の第2のフェッチアドレスが第1のキャッシュ内でミスしたという通知を受け取ることであって、前記第2のフェッチアドレスが、第1の命令の第1のフェッチアドレスとの関係が非連続的であるか否かが決定され、
    前記通知に応答して、
    前記第2のフェッチアドレスが非連続的であることに基づいて、第1の動作を実行することであって、
    前記第1の動作は、前記第2のフェッチアドレスに基づいて、第2のキャッシュから第1の命令のラインをフェッチし、前記第2のキャッシュからの第2の命令のラインをプリフェッチすることを備え
    ここで、前記第2の命令のラインは、前記第1の命令のラインの次の連続キャッシュラインか、または分岐履歴テーブルもしくは分岐予測ロジックからの情報にしたがった非連続キャッシュラインであり
    第2のフェッチアドレスが連続的であることに基づいて第2の動作を実行することであって、
    前記第2の動作は、前記第2の命令のラインをプリフェッチすることなく、前記第2のフェッチアドレスに基づいて、前記第2のキャッシュから前記第1の命令のラインをフェッチすること
    を備える方法。
  16. 前記第2の命令のラインは、前記第1の命令のラインに対して非連続的である請求項15に記載の方法。
  17. 前記第2の命令は、前記第1の命令に関して次の命令である請求項15に記載の方法。
  18. 前記第2のフェッチアドレスを前記第1のフェッチアドレスと比較することに基づいて、前記第2のフェッチアドレスが、非連続的な動作に関連付けられているか否かを決定することをさらに備える請求項15に記載の方法。
  19. 前記第2のフェッチアドレスが、前記第1のフェッチアドレスに関連付けられて、非連続的であるか連続的であるか、フェッチアドレスキャッシュライン位置が閾値キャッシュライン位置を越えているか否かを決定することをさらに備える請求項15に記載の方法。
  20. 前記第1の動作は、前記フェッチアドレスキャッシュライン位置が前記閾値キャッシュライン位置を越えていることを条件とし、
    前記第2の動作は、前記フェッチアドレスキャッシュライン位置が前記閾値キャッシュライン位置を越えていないことを条件とし、
    前記フェッチアドレスキャッシュライン位置は、前記第2のフェッチアドレスに関連し、前記閾値キャッシュライン位置は、前記第1の命令のラインに関連している、請求項19に記載の方法。
JP2015018674A 2006-12-08 2015-02-02 低複雑性命令プリフェッチシステム Expired - Fee Related JP6030160B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/608,309 2006-12-08
US11/608,309 US8060701B2 (en) 2006-12-08 2006-12-08 Apparatus and methods for low-complexity instruction prefetch system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009540408A Division JP5859185B2 (ja) 2006-12-08 2007-12-03 低複雑性命令プリフェッチシステム

Publications (3)

Publication Number Publication Date
JP2015122094A JP2015122094A (ja) 2015-07-02
JP2015122094A5 true JP2015122094A5 (ja) 2015-10-08
JP6030160B2 JP6030160B2 (ja) 2016-11-24

Family

ID=39226565

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009540408A Expired - Fee Related JP5859185B2 (ja) 2006-12-08 2007-12-03 低複雑性命令プリフェッチシステム
JP2015018674A Expired - Fee Related JP6030160B2 (ja) 2006-12-08 2015-02-02 低複雑性命令プリフェッチシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009540408A Expired - Fee Related JP5859185B2 (ja) 2006-12-08 2007-12-03 低複雑性命令プリフェッチシステム

Country Status (7)

Country Link
US (1) US8060701B2 (ja)
EP (1) EP2097809B1 (ja)
JP (2) JP5859185B2 (ja)
KR (1) KR101095204B1 (ja)
CN (2) CN101548266B (ja)
AT (1) ATE513261T1 (ja)
WO (1) WO2008073741A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917731B2 (en) * 2006-08-02 2011-03-29 Qualcomm Incorporated Method and apparatus for prefetching non-sequential instruction addresses
US20110231634A1 (en) * 2010-03-22 2011-09-22 Fishel Liran System and method for grouping alternative possibilities in an unknown instruction path
EP2798470A4 (en) * 2011-12-29 2015-07-15 Intel Corp PRE-ACQUISITION OF ANTEMOTE BY MANAGED INSTRUCTION
US10175987B2 (en) * 2016-03-17 2019-01-08 International Business Machines Corporation Instruction prefetching in a computer processor using a prefetch prediction vector
US20210081323A1 (en) * 2019-09-12 2021-03-18 Marvell International Ltd. Method of improving l1 icache performance with large programs
CN111399913B (zh) * 2020-06-05 2020-09-01 浙江大学 一种基于预取的处理器加速取指方法
US11561796B2 (en) 2020-07-15 2023-01-24 International Business Machines Corporation Linked miss-to-miss instruction prefetcher
CN112416438A (zh) * 2020-12-08 2021-02-26 王志平 一种流水线预分支的实现方法
US11822922B2 (en) 2021-12-31 2023-11-21 International Business Machines Corporation Miss-driven instruction prefetching
CN115480826B (zh) * 2022-09-21 2024-03-12 海光信息技术股份有限公司 分支预测器、分支预测方法、装置和计算设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS615357A (ja) * 1984-06-07 1986-01-11 Fujitsu Ltd デ−タ処理装置
JPS63146143A (ja) * 1986-12-10 1988-06-18 Hitachi Ltd 記憶装置の転送制御方式
JP2786886B2 (ja) * 1989-05-17 1998-08-13 富士通株式会社 プリフェッチ制御方法およびプリフェッチ制御装置
JPH0588891A (ja) * 1991-09-30 1993-04-09 Toshiba Corp キヤツシユメモリ制御装置
JP3590427B2 (ja) * 1994-08-30 2004-11-17 株式会社ルネサステクノロジ 先行読出機能付命令キャッシュメモリ
US5809529A (en) * 1995-08-23 1998-09-15 International Business Machines Corporation Prefetching of committed instructions from a memory to an instruction cache
US6119222A (en) * 1996-12-23 2000-09-12 Texas Instruments Incorporated Combined branch prediction and cache prefetch in a microprocessor
US6728839B1 (en) * 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
JP2000242557A (ja) * 1999-02-25 2000-09-08 Nec Corp キャッシュプリフェッチ装置
JP2000347934A (ja) * 1999-06-02 2000-12-15 Matsushita Electric Ind Co Ltd キャッシュメモリ装置
JP2001142698A (ja) * 1999-11-12 2001-05-25 Mitsubishi Electric Corp メモリアクセス方式
US6584549B2 (en) * 2000-12-29 2003-06-24 Intel Corporation System and method for prefetching data into a cache based on miss distance
US20030105926A1 (en) * 2001-12-03 2003-06-05 International Business Machies Corporation Variable size prefetch cache
US7032076B2 (en) * 2002-09-16 2006-04-18 Intel Corporation Prefetching data in a computer system

Similar Documents

Publication Publication Date Title
JP2015122094A5 (ja)
JP2016507836A5 (ja)
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
EP2602711B1 (en) Next fetch predictor training with hysteresis
EP2669807A3 (en) Processor resource and execution protection methods and apparatus
WO2006084288A3 (en) Instruction prefetch mechanism
JP2015043216A5 (ja)
EP2674856A3 (en) Zero cycle load instruction
WO2008042298A3 (en) Data cache virtual hint way prediction, and applications thereof
US9280351B2 (en) Second-level branch target buffer bulk transfer filtering
EP2936323B1 (en) Speculative addressing using a virtual address-to-physical address page crossing buffer
JP2019517689A5 (ja)
JP2015133126A5 (ja)
WO2008016849A3 (en) Method and apparatus for prefetching non-sequential instruction addresses
US9690707B2 (en) Correlation-based instruction prefetching
MY174573A (en) Controlling an order for processing data elements during vector processing
US20210173783A1 (en) Instruction cache prefetch throttle
KR102181802B1 (ko) 데이터 처리방법 및 프리페치 장치
EP2447829A3 (en) Prefetch instruction
DE60333483D1 (de) Seitendeskriptoren zur vorausholung und speicherverwaltung
JP2014115851A5 (ja)
TW200713033A (en) Handling cache miss in an instruction crossing a cache line boundary
JP2015534687A5 (ja)
JP2006338656A5 (ja)
GB201211273D0 (en) Multilevel cache system