JP4983919B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP4983919B2 JP4983919B2 JP2009520183A JP2009520183A JP4983919B2 JP 4983919 B2 JP4983919 B2 JP 4983919B2 JP 2009520183 A JP2009520183 A JP 2009520183A JP 2009520183 A JP2009520183 A JP 2009520183A JP 4983919 B2 JP4983919 B2 JP 4983919B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- thread
- load
- entry
- 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
- 238000012545 processing Methods 0.000 title claims description 65
- 238000000034 method Methods 0.000 title claims description 41
- 238000010586 diagram Methods 0.000 description 6
- 230000010365 information processing Effects 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/46—Multiprogramming arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
1.ロード命令は,先行するロード命令を追い越して処理してはいけない。
2.ストア命令は,先行するロード命令と先行するストア命令を追い越して処理してはいけない。
3.アトミックロードストア命令は,先行するロード命令と先行するストア命令を追い越して処理してはいけない。アトミックロードストア命令は,その命令により対象データがロードされてからストアされるまでの間,その対象データへの他からのアクセスを制限しなければならない命令である。
10 命令制御部
20 一次キャッシュ制御部
21 キャッシュRAM
22 FP
23 FP−TOQ
24 ストア制御部
25 アドレス一致判定回路
26 命令再実行要求回路
30 二次キャッシュ制御部
Claims (6)
- 一連の命令列であるスレッドに含まれ,メモリアクセスを行うストア命令とロード命令を,可能な場合に順不同で実行する演算処理装置において,
ストア命令を含む第1のスレッドを実行する第1のスレッド実行部と,
第1のロード命令と前記第1のロード命令に対して先行する第2のロード命令とを含む第2のスレッドを実行する第2のスレッド実行部と,
前記第1のスレッド実行部と前記第2のスレッド実行部から共有されるキャッシュメモリと,
前記第1のスレッド実行部と前記第2のスレッド実行部を制御する命令制御部と,
前記第1のスレッド実行部が,前記キャッシュメモリに対して前記ストア命令を実行した場合に,前記第2のスレッド実行部が,前記キャッシュメモリに対して前記第1のロード命令を前記第2のロード命令より先に実行し,前記第1のロード命令の対象データを前記ストア命令の実行より先に前記命令制御部に応答したか否かを判定する判定部と,
前記第2のスレッド実行部が,前記キャッシュメモリに対して前記第1のロード命令を前記第2のロード命令より先に実行し,前記第1のロード命令の対象データを前記ストア命令の実行より先に前記命令制御部に応答したと,前記判定部が判定した場合,前記第2のスレッド実行部が,前記第2のロード命令を実行するとき,前記第2のロード命令の次の命令から前記第1のロード命令までの前記第2のスレッド実行部による再実行を,前記命令制御部に要求する命令再実行要求部を有する
ことを特徴とする演算処理装置。 - 前記演算処理装置はさらに,
前記第2のスレッド実行部が実行する第2のスレッドに含まれる命令と前記第2のスレッドに含まれる命令の対象アドレスと前記第2のスレッドに含まれる命令の再実行を要求する旨を示す再実行要求フラグを格納するエントリを複数有する命令保持部と,
最も古い命令を格納する前記命令保持部のエントリを指定する先頭エントリ番号保持部を有し,
前記判定部は,前記第1のスレッド実行部が,前記キャッシュメモリに対して前記ストア命令を実行した場合に,前記実行されたストア命令の対象アドレスと同一のアドレスを対象とする第1のロード命令が前記命令保持部のいずれかのエントリから検索されたとき,前記先頭エントリ番号保持部が指定するエントリの次のエントリから前記検索されたエントリまで,再実行要求フラグを設定する
ことを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において,
前記命令再実行要求部は,前記第2のロード命令が,前記先頭エントリ番号保持部により指定されたエントリに格納されている場合,前記指定されたエントリの次のエントリに格納された命令から前記第1のロード命令までの再実行を,前記命令制御部に要求する
ことを特徴とする請求項2記載の演算処理装置。 - ストア命令を含む一連の命令列である第1のスレッドを実行する第1のスレッド実行部と,第1のロード命令と前記第1のロード命令に先行する第2のロード命令とを含む一連の命令列である第2のスレッドを実行する第2のスレッド実行部と,前記第1のスレッド実行部と前記第2のスレッド実行部から共有されるキャッシュメモリを有し,メモリアクセスを行うストア命令とロード命令を,可能な場合に順不同で実行する演算処理装置の制御方法において,
前記第1のスレッド実行部が,前記キャッシュメモリに対して前記ストア命令を実行するステップと,
前記第2のスレッド実行部が,前記キャッシュメモリに対して前記第1のロード命令を前記第2のロード命令より先に実行し,前記第1のロード命令の対象データを前記ストア命令の実行より先に,前記第1のスレッド実行部と前記第2のスレッド実行部を制御する前記演算処理装置に含まれる命令制御部に応答したか否かを,前記演算処理装置が有する判定部が判定するステップと,
前記第2のスレッド実行部が,前記キャッシュメモリに対して前記第1のロード命令を前記第2のロード命令より先に実行し,前記第1のロード命令の対象データを前記ストア命令の実行より先に前記命令制御部に応答したと,前記判定部が判定した場合,前記第2のスレッド実行部が,前記第2のロード命令を実行するとき,前記第2のロード命令の次の命令から前記第1のロード命令までの前記第2のスレッド実行部による再実行を,前記演算処理装置が有する命令再実行要求部が,前記命令制御部に要求するステップを有する
ことを特徴とする演算処理装置の制御方法。 - 前記演算処理装置はさらに,
前記第2のスレッド実行部が実行する第2のスレッドに含まれる命令と前記第2のスレッドに含まれる命令の対象アドレスと前記第2のスレッドに含まれる命令の再実行を要求する旨を示す再実行要求フラグを格納するエントリを複数有する命令保持部と,
最も古い命令を格納する前記命令保持部のエントリを指定する先頭エントリ番号保持部を有し,
前記判定部は,前記第1のスレッド実行部が,前記キャッシュメモリに対して前記ストア命令を実行した場合に,前記実行されたストア命令の対象アドレスと同一のアドレスを対象とする第1のロード命令が前記命令保持部のいずれかのエントリから検索されたとき,前記先頭エントリ番号保持部が指定するエントリの次のエントリから前記検索されたエントリまで,再実行要求フラグを設定する
ことを特徴とする請求項4記載の演算処理装置の制御方法。 - 前記演算処理装置の制御方法において,
前記命令再実行要求部は,前記第2のロード命令が,前記先頭エントリ番号保持部により指定されたエントリに格納されている場合,前記指定されたエントリの次のエントリに格納された命令から前記第1のロード命令までの再実行を,前記命令制御部に要求する
ことを特徴とする請求項5記載の演算処理装置の制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062389 WO2008155829A1 (ja) | 2007-06-20 | 2007-06-20 | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155829A1 JPWO2008155829A1 (ja) | 2010-08-26 |
JP4983919B2 true JP4983919B2 (ja) | 2012-07-25 |
Family
ID=40155995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520183A Expired - Fee Related JP4983919B2 (ja) | 2007-06-20 | 2007-06-20 | 演算処理装置および演算処理装置の制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8103859B2 (ja) |
EP (1) | EP2159703A4 (ja) |
JP (1) | JP4983919B2 (ja) |
KR (1) | KR101084228B1 (ja) |
CN (1) | CN101689142A (ja) |
WO (1) | WO2008155829A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5471428B2 (ja) * | 2009-12-25 | 2014-04-16 | 富士通株式会社 | 情報処理装置およびキャッシュメモリ制御装置 |
JP5966759B2 (ja) * | 2012-08-20 | 2016-08-10 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
KR101993258B1 (ko) | 2012-11-22 | 2019-09-27 | 삼성전자주식회사 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
JP6115394B2 (ja) * | 2013-08-13 | 2017-04-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9361176B2 (en) * | 2014-06-25 | 2016-06-07 | International Business Machines Corporation | Detecting the use of stale data values due to weak consistency |
US10489158B2 (en) * | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
JP6384380B2 (ja) * | 2015-03-27 | 2018-09-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN106527959B (zh) * | 2015-09-10 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 刷新磁盘输入输出请求的处理方法及设备 |
CN112445587A (zh) * | 2019-08-30 | 2021-03-05 | 上海华为技术有限公司 | 一种任务处理的方法以及任务处理装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004068361A1 (ja) * | 2003-01-27 | 2004-08-12 | Fujitsu Limited | 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699538A (en) * | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
US6665792B1 (en) * | 1996-11-13 | 2003-12-16 | Intel Corporation | Interface to a memory system for a processor having a replay system |
US6772324B2 (en) * | 1997-12-17 | 2004-08-03 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
US6591342B1 (en) * | 1999-12-14 | 2003-07-08 | Intel Corporation | Memory disambiguation for large instruction windows |
US6484254B1 (en) * | 1999-12-30 | 2002-11-19 | Intel Corporation | Method, apparatus, and system for maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses |
JP3661614B2 (ja) | 2001-07-12 | 2005-06-15 | 日本電気株式会社 | キャッシュメモリ制御方法及びマルチプロセッサシステム |
GB0215029D0 (en) * | 2002-06-28 | 2002-08-07 | Critical Blue Ltd | Strand based execution |
US20050210204A1 (en) | 2003-01-27 | 2005-09-22 | Fujitsu Limited | Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method |
US6938130B2 (en) * | 2003-02-13 | 2005-08-30 | Sun Microsystems Inc. | Method and apparatus for delaying interfering accesses from other threads during transactional program execution |
US20060026371A1 (en) | 2004-07-30 | 2006-02-02 | Chrysos George Z | Method and apparatus for implementing memory order models with order vectors |
US7516313B2 (en) * | 2004-12-29 | 2009-04-07 | Intel Corporation | Predicting contention in a processor |
-
2007
- 2007-06-20 JP JP2009520183A patent/JP4983919B2/ja not_active Expired - Fee Related
- 2007-06-20 WO PCT/JP2007/062389 patent/WO2008155829A1/ja active Application Filing
- 2007-06-20 EP EP07767228A patent/EP2159703A4/en not_active Withdrawn
- 2007-06-20 KR KR1020097025129A patent/KR101084228B1/ko not_active IP Right Cessation
- 2007-06-20 CN CN200780053369A patent/CN101689142A/zh active Pending
-
2009
- 2009-12-17 US US12/654,380 patent/US8103859B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004068361A1 (ja) * | 2003-01-27 | 2004-08-12 | Fujitsu Limited | 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2008155829A1 (ja) | 2010-08-26 |
WO2008155829A1 (ja) | 2008-12-24 |
KR20100006578A (ko) | 2010-01-19 |
US8103859B2 (en) | 2012-01-24 |
US20100100710A1 (en) | 2010-04-22 |
EP2159703A4 (en) | 2010-12-08 |
EP2159703A1 (en) | 2010-03-03 |
CN101689142A (zh) | 2010-03-31 |
KR101084228B1 (ko) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4983919B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
EP2159702B1 (en) | Cache control device and control method | |
US6466988B1 (en) | Multiprocessor synchronization and coherency control system | |
US7757044B2 (en) | Facilitating store reordering through cacheline marking | |
EP2641171B1 (en) | Preventing unintended loss of transactional data in hardware transactional memory systems | |
US8190825B2 (en) | Arithmetic processing apparatus and method of controlling the same | |
WO2008005687A2 (en) | Global overflow method for virtualized transactional memory | |
CN106663026B (zh) | 针对事务型数据处理执行模式的调用堆栈维护 | |
JP5499987B2 (ja) | 共有キャッシュメモリ装置 | |
US20110154000A1 (en) | Adaptive optimized compare-exchange operation | |
US20150149725A1 (en) | Multi-threaded system for performing atomic binary translations | |
US8549232B2 (en) | Information processing device and cache memory control device | |
US10067743B2 (en) | Arithmetic processing device and control method thereof | |
JP4990262B2 (ja) | バッファ装置 | |
US20150052306A1 (en) | Processor and control method of processor | |
US20090063773A1 (en) | Technique to enable store forwarding during long latency instruction execution | |
JP2004005710A (ja) | 情報処置装置 | |
JP2009199384A (ja) | データ処理装置 | |
WO2014064914A1 (ja) | データ格納装置、データ格納方法およびプログラム | |
US9384046B2 (en) | Information processing apparatus, computer product, and information processing method for multi-thread process | |
JP2006048163A (ja) | ストアデータ制御装置およびストアデータ制御方法 | |
US20240176616A1 (en) | Processor and method of controlling processor | |
EP2782015A1 (en) | Processor, information processing apparatus, and method for controlling cache write-back | |
JP2001202286A (ja) | キャッシュメモリのフラッシュ制御回路及びその制御方法 | |
JP2008234492A (ja) | コンパイラおよびコンパイル方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120227 |
|
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: 20120327 |
|
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: 20120409 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150511 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |