JP4837305B2 - マイクロプロセッサ及びマイクロプロセッサの制御方法 - Google Patents
マイクロプロセッサ及びマイクロプロセッサの制御方法 Download PDFInfo
- Publication number
- JP4837305B2 JP4837305B2 JP2005137750A JP2005137750A JP4837305B2 JP 4837305 B2 JP4837305 B2 JP 4837305B2 JP 2005137750 A JP2005137750 A JP 2005137750A JP 2005137750 A JP2005137750 A JP 2005137750A JP 4837305 B2 JP4837305 B2 JP 4837305B2
- Authority
- JP
- Japan
- Prior art keywords
- load
- instruction
- data
- register
- microprocessor
- 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
- 238000000034 method Methods 0.000 title description 12
- 230000000903 blocking effect Effects 0.000 claims description 9
- 238000009434 installation Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
John Paul Shen、Mikko H.Lipasti著、「Modern Processor Design : Fundamentals of Superscalar Processors : Beta Edition」、(米国)、McGraw-Hill、2002年7月22日、p.201-204
本実施の形態にかかるマイクロプロセッサ1の構成を図1及び図2を用いて説明する。図1は、マイクロプロセッサ1の全体構成を示す図である。マイクロプロセッサ1は、非整列ロード命令においてキャッシュミスがあった場合にパイプラインストールの発生を回避するよう構成されたロード・ストア・ユニット(LSU)22を備えていることを特徴としている。なお、ロード・ストア・ユニット22を除くその他の部分は、従来のマイクロプロセッサ8が備える構成と同様であるため、図8のマイクロプロセッサ8と同一の記号を付して説明を省略する。
本実施の形態にかかるマイクロプロセッサと前述したマイクロプロセッサ1との差分は、マージ用データを格納する退避用レジスタに、少なくともフェッチキュー109に退避可能な命令数分のマージ用データを退避可能とした点である。
11 命令キャッシュ
12 命令フェッチ部
13 命令デコード部
14 レジスタファイル
15〜18 リザベーションステーション
19 分岐ユニット
20 整数演算ユニット
21 浮動小数点演算ユニット
22 ロード・ストア・ユニット(LSU)
23 データキャッシュ
24 メインメモリ
101 Sopレジスタ
102 オフセットレジスタ
103 Topレジスタ
104 非整列命令判定部
105 退避レジスタ監視部
106、206 退避レジスタ
107 アドレス生成部
108 キャッシュ制御部
109 フェッチキュー
110 データマージ部
Claims (4)
- ロード命令を発行する命令発行部と、前記命令発行部より発行されるロード命令に基づいてメモリからロード先レジスタへのデータ読み出しを実行するロードユニットを備え、ノンブロッキング・ロードを行うマイクロプロセッサであって、
前記ロードユニットは、
前記ロード先レジスタのロード前の値を格納する第1の入力レジスタと、
前記命令発行部より発行されたロード命令が、前記メモリから読み出したデータと前記ロード前の値とをマージしたデータを前記ロード先レジスタに格納する非整列ロード命令であるか否かを判定する判定部と、
前記第1の入力レジスタに保持されたデータを格納可能な退避レジスタとを備え、
前記判定部が非整列ロード命令と判定した場合に、前記第1の入力レジスタの格納データを前記退避レジスタに格納し、前記第1の入力レジスタを前記命令発行部が発行する後続命令に使用可能とすることを特徴とし、
前記メモリは、前記マイクロプロセッサ外部のメインメモリであるか、又は前記マイクロプロセッサと前記メインメモリの間に設けられたデータキャッシュであり、
前記データキャッシュへのアクセス時にキャッシュミスが生じたロード命令を退避するフェッチキューをさらに備え、
前記退避レジスタに退避可能なデータ数は、前記フェッチキューに退避可能な命令数以上であり、
前記命令発行部に対して新たなロード命令の発行を停止するためのビジー信号を、前記フェッチキューに新たにロード命令を退避する空き領域が無いことを条件として生成し、前記退避レジスタに新たにデータを退避する空き領域がないことを条件としては生成しないよう構成されている、マイクロプロセッサ。 - ロード命令を発行する命令発行部と、前記命令発行部より発行されるロード命令に基づいてメモリからロード先レジスタへのデータ読み出しを実行するロードユニットを備え、ノンブロッキング・ロードを行うマイクロプロセッサであって、
前記ロードユニットは、
前記ロード命令のオペランドで指定された前記ロード先レジスタのロード前の値を格納する第1の入力レジスタと、
前記ロード命令のオペランドで指定された前記メモリの実効アドレスの生成情報を格納する第2の入力レジスタと、
前記命令発行部より発行されたロード命令が、前記メモリから読み出したデータと前記ロード前の値とをマージしたデータを前記ロード先レジスタに格納する非整列ロード命令であるか否かを判定する判定部と、
前記第1の入力レジスタに保持されたデータを格納可能な退避レジスタと、
前記第2の入力レジスタに格納された入力値に基づいて実効アドレスを生成するアドレス生成部と、
前記実効アドレスに基づいて前記メモリから取得したデータと、前記退避レジスタに格納されたデータとをマージするデータマージ部とを備え、
前記メモリは、前記マイクロプロセッサ外部のメインメモリであるか、又は前記マイクロプロセッサと前記メインメモリの間に設けられたデータキャッシュであり、
前記データキャッシュへのアクセス時にキャッシュミスが生じたロード命令を退避するフェッチキューをさらに備え、
前記退避レジスタに退避可能なデータ数は、前記フェッチキューに退避可能な命令数以上であり、
前記命令発行部に対して新たなロード命令の発行を停止するためのビジー信号を、前記フェッチキューに新たにロード命令を退避する空き領域が無いことを条件として生成し、前記退避レジスタに新たにデータを退避する空き領域がないことを条件としては生成しないよう構成されている、マイクロプロセッサ。 - 前記判定部が非整列ロード命令と判定した場合に、前記第1の入力レジスタの格納データを前記退避レジスタに退避し、前記第1の入力レジスタを前記命令発行部が発行する後続命令に使用可能とすることを特徴とする請求項2に記載のマイクロプロセッサ。
- 前記退避レジスタに退避可能なデータ数は1データであることを特徴とする請求項1又は2に記載のマイクロプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005137750A JP4837305B2 (ja) | 2005-05-10 | 2005-05-10 | マイクロプロセッサ及びマイクロプロセッサの制御方法 |
US11/409,996 US7565510B2 (en) | 2005-05-10 | 2006-04-25 | Microprocessor with a register selectively storing unaligned load instructions and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005137750A JP4837305B2 (ja) | 2005-05-10 | 2005-05-10 | マイクロプロセッサ及びマイクロプロセッサの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006318051A JP2006318051A (ja) | 2006-11-24 |
JP4837305B2 true JP4837305B2 (ja) | 2011-12-14 |
Family
ID=37420566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005137750A Expired - Fee Related JP4837305B2 (ja) | 2005-05-10 | 2005-05-10 | マイクロプロセッサ及びマイクロプロセッサの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7565510B2 (ja) |
JP (1) | JP4837305B2 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219785B1 (en) * | 2006-09-25 | 2012-07-10 | Altera Corporation | Adapter allowing unaligned access to memory |
US8505824B2 (en) * | 2007-06-28 | 2013-08-13 | Symbol Technologies, Inc. | Bar code readers having multifold mirrors |
JP4629750B2 (ja) * | 2008-03-31 | 2011-02-09 | 日立オートモティブシステムズ株式会社 | 組み込み制御装置 |
US8639886B2 (en) | 2009-02-03 | 2014-01-28 | International Business Machines Corporation | Store-to-load forwarding mechanism for processor runahead mode operation |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9454367B2 (en) * | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US8819342B2 (en) * | 2012-09-26 | 2014-08-26 | Qualcomm Incorporated | Methods and apparatus for managing page crossing instructions with different cacheability |
US10083038B2 (en) | 2014-12-14 | 2018-09-25 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on page walks in an out-of-order processor |
US10146546B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd | Load replay precluding mechanism |
KR101819314B1 (ko) | 2014-12-14 | 2018-01-16 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 비순차 프로세서에서 오프다이 제어 부재 접근에 따라 로드 리플레이를 억제하는 장치 |
US9703359B2 (en) | 2014-12-14 | 2017-07-11 | Via Alliance Semiconductor Co., Ltd. | Power saving mechanism to reduce load replays in out-of-order processor |
WO2016097814A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude shared ram-dependent load replays in out-of-order processor |
US10114646B2 (en) | 2014-12-14 | 2018-10-30 | Via Alliance Semiconductor Co., Ltd | Programmable load replay precluding mechanism |
WO2016097792A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude load replays dependent on write combining memory space access in out-of-order processor |
US10127046B2 (en) | 2014-12-14 | 2018-11-13 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
US10175984B2 (en) | 2014-12-14 | 2019-01-08 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor |
WO2016097791A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
US10088881B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude I/O-dependent load replays in an out-of-order processor |
WO2016097811A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude load replays dependent on fuse array access in out-of-order processor |
WO2016097790A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude non-core cache-dependent load replays in out-of-order processor |
US10108421B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude shared ram-dependent load replays in an out-of-order processor |
US10146540B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor |
US9804845B2 (en) | 2014-12-14 | 2017-10-31 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor |
KR101837816B1 (ko) | 2014-12-14 | 2018-03-12 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 비순차 프로세서에서 i/o의존 로드 리플레이를 불가능하게 하는 메커니즘 |
US10089112B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor |
WO2016097804A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Programmable load replay precluding mechanism |
US10120689B2 (en) | 2014-12-14 | 2018-11-06 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor |
US10108420B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor |
US10133579B2 (en) | 2014-12-14 | 2018-11-20 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
JP6286067B2 (ja) * | 2014-12-14 | 2018-02-28 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アウトオブオーダープロセッサでの長いロードサイクルに依存するロードリプレイを除外するメカニズム |
US10146539B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd. | Load replay precluding mechanism |
US10228944B2 (en) | 2014-12-14 | 2019-03-12 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
EP3376371A1 (en) | 2017-03-16 | 2018-09-19 | Nxp B.V. | Microprocessor system and method for load and unpack and store and pack instructions |
CN107066238A (zh) * | 2017-04-18 | 2017-08-18 | 上海兆芯集成电路有限公司 | 执行高速缓存行未对齐加载指令的***和方法 |
EP3676710A4 (en) * | 2017-08-31 | 2021-07-28 | Rail Vision Ltd | SYSTEM AND METHOD FOR IMPROVING THE FLOW RATE IN MANY CALCULATIONS |
US20190138308A1 (en) * | 2017-09-15 | 2019-05-09 | MIPS Tech, LLC | Unaligned memory accesses |
CN111142941A (zh) * | 2019-11-27 | 2020-05-12 | 核芯互联科技(青岛)有限公司 | 一种非阻塞高速缓存缺失处理方法及装置 |
US11755324B2 (en) * | 2021-08-31 | 2023-09-12 | International Business Machines Corporation | Gather buffer management for unaligned and gather load operations |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69130138T2 (de) * | 1990-06-29 | 1999-05-06 | Digital Equipment Corp., Maynard, Mass. | Sprungvorhersageeinheit für hochleistungsfähigen Prozessor |
US5835745A (en) * | 1992-11-12 | 1998-11-10 | Sager; David J. | Hardware instruction scheduler for short execution unit latencies |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
US5649136A (en) * | 1995-02-14 | 1997-07-15 | Hal Computer Systems, Inc. | Processor structure and method for maintaining and restoring precise state at any instruction boundary |
US6085289A (en) * | 1997-07-18 | 2000-07-04 | International Business Machines Corporation | Method and system for load data formatting and improved method for cache line organization |
US6202126B1 (en) * | 1997-10-24 | 2001-03-13 | Compaq Computer Corporation | Victimization of clean data blocks |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
US6336168B1 (en) * | 1999-02-26 | 2002-01-01 | International Business Machines Corporation | System and method for merging multiple outstanding load miss instructions |
JP3776732B2 (ja) * | 2001-02-02 | 2006-05-17 | 株式会社東芝 | プロセッサ装置 |
US7340495B2 (en) * | 2001-10-29 | 2008-03-04 | Intel Corporation | Superior misaligned memory load and copy using merge hardware |
US6721866B2 (en) * | 2001-12-21 | 2004-04-13 | Intel Corporation | Unaligned memory operands |
US7293160B2 (en) * | 2004-06-14 | 2007-11-06 | Sun Microsystems, Inc. | Mechanism for eliminating the restart penalty when reissuing deferred instructions |
JP5068597B2 (ja) * | 2007-08-01 | 2012-11-07 | ルネサスエレクトロニクス株式会社 | プロセッサ及びプロセッサによるデータ読み出し方法 |
-
2005
- 2005-05-10 JP JP2005137750A patent/JP4837305B2/ja not_active Expired - Fee Related
-
2006
- 2006-04-25 US US11/409,996 patent/US7565510B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7565510B2 (en) | 2009-07-21 |
JP2006318051A (ja) | 2006-11-24 |
US20060259746A1 (en) | 2006-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4837305B2 (ja) | マイクロプロセッサ及びマイクロプロセッサの制御方法 | |
JP6143306B2 (ja) | アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア比較ハザードの予測及び回避 | |
EP2674856B1 (en) | Zero cycle load instruction | |
JP3815507B2 (ja) | コンピュータシステム | |
JP3820261B2 (ja) | データ処理システムの外部および内部命令セット | |
US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
US9317285B2 (en) | Instruction set architecture mode dependent sub-size access of register with associated status indication | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US6772317B2 (en) | Method and apparatus for optimizing load memory accesses | |
JPH0496825A (ja) | データ・プロセッサ | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
CN113568663A (zh) | 代码预取指令 | |
EP1235139B1 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
GB2580426A (en) | Controlling use of data determined by a resolve-pending speculative operation | |
US11347506B1 (en) | Memory copy size determining instruction and data transfer instruction | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP4528993B2 (ja) | マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
US9164761B2 (en) | Obtaining data in a pipelined processor | |
JP2023500604A (ja) | スレッドを格納するためのシャドウラッチ構成レジスタファイル内のシャドウラッチ | |
JPWO2004036416A1 (ja) | マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110825 |
|
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: 20110927 |
|
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: 20110928 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141007 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |