JP4376692B2 - 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ - Google Patents
情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ Download PDFInfo
- Publication number
- JP4376692B2 JP4376692B2 JP2004135875A JP2004135875A JP4376692B2 JP 4376692 B2 JP4376692 B2 JP 4376692B2 JP 2004135875 A JP2004135875 A JP 2004135875A JP 2004135875 A JP2004135875 A JP 2004135875A JP 4376692 B2 JP4376692 B2 JP 4376692B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- arithmetic processing
- unit
- information
- control unit
- 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
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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
最も単純なスピンループの例としては、図22のような命令列とすることが考えられる。なお、図22において各命令の作用はその右側にコメントとして記載されている。ところで、この図22の構成の命令列では、cas命令にはストアの可能性が常にあるために常にキャッシュブロックの排他権を獲得するよう動作する。このため、同一ロック変数を複数のプロセッサで取り合う状況になると、キャッシュ間競合が激しくなる。
すなわち、特許文献1では、主記憶上に共有変数を格納して当該主記憶上で集中監視することで排他制御を実現する機構が開示されている。近年のようなキャッシュメモリを持つプロセッサでは、キャッシュ内での書き換えが主記憶上に即座に反映されるわけではない。特にライトバックキャッシュ方式においては、書き換え事象が反映されるにはかなりの時間が掛るのが普通である。また、ライトスルーキャッシュであっても現代のプロセッサではメモリレイテンシが非常に長く、反映ロスが長くなり性能が低下する。
本発明の他の目的は、一つの物理プロセッサコアに複数のハードウェアスレッドを持ち、論理的に複数のプロセッサがあるかのように動作可能なマルチプロセッサシステムにおいて、一つの論理プロセッサのスピンループに起因する他の論理プロセッサの性能低下を防止することにある。
また、一つの物理プロセッサコアに複数のハードウェアスレッドを持ち、論理的に複数のプロセッサがあるかのように動作可能なマルチプロセッサシステムにおいて、一つの論理プロセッサのスピンループに起因する他の論理プロセッサの性能低下を防止することができる。
図11は、本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理装置の構成の一例を示す概念図である。
キャッシュタグ上で実現する方法を図12に示す。通常、上述のように、キャッシュタグ部22はデータと対になっており、ステータス22aで示されるキャッシュ状態(前述のM,C,I等)、アドレス22cとその他の管理情報22d(特権フラグやコンテキストなど)がある。ここに、LOOKフラグ情報を設ける。すなわち、本実施の形態の場合、キャッシュタグ部22には、各データ格納単位毎に、上述のllkup命令54のためのLOOKフラグ22bが設けられている。
キャッシュメモリを介して記憶装置の情報にアクセスするプロセッサの制御方法であって、
前記記憶装置の目的のアドレスまたはアドレス範囲に格納された情報を読み出すとともに、前記アドレスまたはアドレス範囲への他のプロセッサからの更新アクセスの有無の監視を開始させる第1ステップと、
前記プロセッサを休止状態に移行させる第2ステップと、
前記更新アクセスの発生を契機として前記休止状態を解除する第3ステップと、
を含むことを特徴とするプロセッサの制御方法。
前記第1ステップと前記第2ステップとの間に前記更新アクセスの発生が検出された場合には、前記第2ステップの実行を抑止することを特徴とする付記1記載のプロセッサの制御方法。
前記キャッシュメモリを管理するキャッシュ管理情報の一部に、前記記憶装置の前記特定記憶領域に対応した前記キャッシュメモリ上の記憶領域を識別する識別情報を設け、前記第1ステップでアクセスされた前記記憶装置の前記アドレスまたはアドレス範囲に対応した前記キャッシュメモリ上の前記記憶領域に前記識別情報を付与して監視対象とし、前記第3ステップでは、前記識別情報が付与された前記キャッシュメモリ上の前記記憶領域の情報の無効化または書き換えが発生したことを契機として前記休止状態を解除することを特徴とする付記1記載のプロセッサの制御方法。
前記第2ステップでは、前記プロセッサへのクロック供給を停止し、前記第3ステップでは、前記クロック供給を再開することを特徴とする付記1記載のプロセッサの制御方法。
キャッシュメモリを介して記憶装置の情報にアクセスするプロセッサの制御方法であって、
前記記憶装置の目的のアドレスまたはアドレス範囲に格納された情報の読み出しおよび更新を一括して行う第1命令および前記アドレスまたはアドレス範囲の情報の読み出しを行う第2命令の少なくとも一方からなる命令列を検出する第1ステップと、
前記命令列の検出を契機に、前記アドレスまたはアドレス範囲への他のプロセッサからの更新アクセスの有無の監視を開始させるとともに、前記プロセッサを休止状態に移行させる第2ステップと、
前記アドレスまたはアドレス範囲への他のプロセッサからの前記更新アクセスの発生を契機として前記休止状態を解除する第3ステップと、
を含むことを特徴とするプロセッサの制御方法。
前記キャッシュメモリを管理するキャッシュ管理情報の一部に、前記記憶装置の前記特定記憶領域に対応した前記キャッシュメモリ上の記憶領域を識別する識別情報を設け、前記第1ステップでアクセスされた前記記憶装置の前記アドレスまたはアドレス範囲に対応した前記キャッシュメモリ上の前記記憶領域に前記識別情報を付与して監視対象とし、前記第3ステップでは、前記識別情報が付与された前記キャッシュメモリ上の前記記憶領域の情報の無効化または書き換えが発生したことを契機として前記休止状態を解除することを特徴とする付記5記載のプロセッサの制御方法。
前記第2ステップでは、前記プロセッサへのクロック供給を停止し、前記第3ステップでは、前記クロック供給を再開することを特徴とする付記5記載のプロセッサの制御方法。
命令制御部と、前記命令制御部と記憶装置との間に介在するキャッシュメモリと、前記記憶装置から前記命令制御部への情報の読み出しを行うロード命令と、前記ロード命令によるアクセス対象領域を含む前記記憶装置上の特定記憶領域の監視開始契機を設定する監視契機設定機能と、を含むことを特徴とする情報処理装置。
命令制御部と、前記命令制御部と記憶装置との間に介在するキャッシュメモリと、前記記憶装置から前記命令制御部への情報の読み出しを行うロード命令と、前記ロード命令によるアクセス対象領域を含む前記記憶装置上の特定記憶領域を監視し前記特定記憶領域への情報の書き込みが生じる可能性を検出する書き込み事象検出機能と、を含むことを特徴とする情報処理装置。
前記キャッシュメモリを管理するキャッシュ管理情報の一部に、前記記憶装置の前記特定記憶領域に対応した前記キャッシュメモリ上の記憶領域を識別する識別情報を備え、前記識別情報が付与された前記キャッシュメモリ上の前記記憶領域を前記書き込み事象検出機能による監視対象とすることを特徴とする付記9記載の情報処理装置。
前記書き込み事象検出機能は、少なくとも一つのレジスタを備え、前記レジスタに前記特定記憶領域内を指す監視アドレスを設定し、前記監視アドレスと、全キャッシュメモリへのアクセスアドレスとを比較することで、前記特定記憶領域の監視を行うことを特徴とする付記9記載の情報処理装置。
前記キャッシュメモリ上の前記特定記憶領域に対応して格納された情報の無効化指示または前記情報の書き換え指示が発生した場合に、前記特定記憶領域へ書き込みが生じる可能性有りと判定することを特徴とする付記9から付記11のいずれか1項記載の情報処理装置。
命令制御部と、前記命令制御部と記憶装置との間に介在するキャッシュメモリと、前記記憶装置から前記命令制御部への情報の読み出しを行うロード命令と、前記命令制御部を休止状態に移行させるとともに前記ロード命令によるアクセス対象領域を含む前記記憶装置上の特定記憶領域への前記情報の書き込み可能性の検出を契機として前記休止状態を解除する休止命令と、を含むことを特徴とする情報処理装置。
前記休止命令による前記休止状態への移行および前記休止状態の解除に同期して、前記命令制御部に対するクロック供給停止およびクロック供給再開を行うクロック供給制御機能をさらに含むことを特徴とする付記13記載の情報処理装置。
共有メモリ上の特定領域の特定情報の書き換えによって、前記共有メモリに対する複数の命令制御部のアクセスの排他制御を行う排他制御機構を備えた情報処理装置であって、
一つの前記命令制御部が他の前記命令制御部による前記特定情報の書き換え契機を待つ間に当該命令制御部に対するクロック供給を停止するクロック供給制御機能を含むことを特徴とする情報処理装置。
論理的または物理的な複数の命令制御部と、前記命令制御部と記憶装置との間に介在し、複数の前記命令制御部にて共有されるキャッシュメモリと、一つの前記命令制御部による前記記憶装置の特定記憶領域への情報の書き込みが行われたことを他の前記命令制御部に通知する書き込み事象検出機能と、を含むことを特徴とする情報処理装置。
個々の前記命令制御部は、当該命令制御部を休止状態に移行させ、前記書き込み事象検出機能からの通知を契機として前記休止状態を解除する休止命令を備えたことを特徴とする付記16記載の情報処理装置。
キャッシュメモリを介して記憶装置にアクセスし前記記憶装置からの情報の読み出しを行うロード命令と、前記ロード命令によるアクセス対象領域を含む前記記憶装置の特定記憶領域の書き換えの有無の監視開始契機を設定する特定命令とを含む命令セットを具備したことを特徴とするプロセッサ。
キャッシュメモリを介して記憶装置の情報にアクセスする情報処理装置であって、
前記記憶装置の目的のアドレスまたはアドレス範囲に格納された情報の読み出しおよび更新を一括して行う第1命令、および前記アドレスまたはアドレス範囲の情報の読み出しを行う第2命令の少なくとも一方からなる命令列を検出する第1機能と、
前記命令列の検出を契機に、前記アドレスまたはアドレス範囲への他の情報処理装置からの更新アクセスの有無の監視を行うとともに前記情報処理装置を休止状態に移行させる第2機能と、
前記アドレスまたはアドレス範囲への他の情報処理装置からの前記更新アクセスの発生を契機として前記休止状態を解除する第3機能と、
を含むことを特徴とする情報処理装置。
命令制御部と記憶装置との間に介在し、前記記憶装置と前記命令制御部との間で授受される情報が一時的に格納されるキャッシュメモリであって、
前記記憶装置から前記命令制御へ前記情報の読み出しを行うロード命令によるアクセス対象領域を含む前記記憶装置上の特定記憶領域における前記情報の書き込みが生じる可能性を検出する書き込み事象検出機能を備えたことを特徴とするキャッシュメモリ。
前記キャッシュメモリに一時的に格納された情報を管理するキャッシュ管理情報の一部に、前記記憶装置の前記特定記憶領域に対応した前記キャッシュメモリ上の記憶領域を識別する識別情報を備え、前記識別情報が付与された前記キャッシュメモリ上の前記記憶領域を前記書き込み事象検出機能による監視対象とすることを特徴とする付記20記載のキャッシュメモリ。
前記書き込み事象検出機能は、少なくとも一つのレジスタを備え、前記レジスタに前記特定記憶領域内を指す監視アドレスを設定し、前記監視アドレスと、全キャッシュメモリへのアクセスアドレスとを比較することで、前記特定記憶領域の監視を行うことを特徴とする付記21記載のキャッシュメモリ。
キャッシュメモリを持つ情報処理装置上に実装される、(主記憶から値を読み出す)ロード命令を持つ命令セットアーキテクチャにおいて、ロード対象メモリブロックを含む範囲のメモリブロックを監視開始する機能を持つ方式およびアーキテクチャ。
ロード対象メモリブロックを含む範囲のメモリブロックを監視開始する機能を持つロード命令(LOAD-WITH-LOOKUP命令)を持つ方式およびアーキテクチャ。
付記24記載の該メモリブロック監視範囲に(他の論理プロセッサやI/Oデバイスなどからの)ストア事象が生じた可能性を検出する手段を持つ処理方式および情報処理装置。
付記25記載の検出手段に関して、特にキャッシュタグ上に監視中であることを識別するフラグを設け、該フラグが設定されているキャッシュラインについて監視対象とする方式および装置。
付記25記載の検出手段に関して、特にレジスタを一つ以上設けて監視アドレスを設定し、この設定アドレスに基づいてアドレス範囲チェックすることで監視対象とする方式および装置。
キャッシュメモリを持つ処理方式および装置で、付記25記載の該検出手段として、キャッシュの監視対象アドレスに対して、キャッシュにデータを保持し、キャッシュライン無効化指示(Buffer InvalidateまたはCopyback and Invalidate)が来た場合にストア可能性が生じたと判断する方式および装置。
キャッシュメモリを持つ処理方式および装置で、付記25記載の該検出手段として、キャッシュの監視対象アドレスに対して、キャッシュにデータを保持し、リプレースが発生した場合に、ストア可能性が生じたと判断する方式および装置。
論理プロセッサ(論理CPU)を休止させる命令(以下SUSPEND 命令と呼ぶ)を備え、該休止から回復する手段として、付記25記載のストア可能性検出手段により、回復可能とする方式、アーキテクチャ。
付記30において、アドレス監視が不要な一時休止を行う場合のために、該SUSPEND命令にアドレス監視不要であることを指示する手段を設けることで、アドレス監視による再開をしないようにする方式および装置。
suspendするよりも前にストア可能性を検出した場合にはsuspend遷移後すぐ回復するか、もしくはsuspendをno−operation扱いで動作する方式および装置。
共有キャッシュ(GBS方式)、一つの物理チップに複数のプロセッサコアが含まれるもの(CMP方式)、一つの物理プロセッサコアに複数のハードウェアスレッド(ストランド)を持ち論理的に複数のプロセッサがあるように動作可能なもの(MT方式、HMT,SMT,VMTなどの複数の実装がある)のように、一つのキャッシュを複数の論理プロセッサで共有可能な構成において、ある論理プロセッサが該共有キャッシュの付記24記載の該メモリブロック監視範囲に書き込みを行った場合を検出する機構を持つ付記25記載のストア可能性検出手段。
付記23記載の方式および装置において、付記24記載のようなLOAD-WITH-LOOKUP/SUSPEND命令のかわりに(あっても良いが)、同一アドレスブロックを操作するfetch & store命令(cas命令など、メモリからのロードとメモリへのストアをアトミックに行う命令)とload命令の組を、該当監視/休止するものと見做して動作する方式および装置。
付記23記載の方式および装置において、付記30記載のSUSPEND命令のかわりに(あっても良いが)、付記34記載の組のfetch & store命令の実行をLOAD-WITH-LOOKUP相当と見做す方式および装置。
付記23記載の方式および装置において、付記30記載のSUSPEND命令のかわりに(あっても良いが)、付記34記載の組のload命令の実行をSUSPEND相当と見做す方式および装置。
付記23記載の方式および装置において、付記24記載のようなLOAD-WITH-LOOKUP/SUSPEND命令のかわりに(あっても良いが)、同一アドレスブロックを操作する複数の近接したfetch & store命令(cas命令など)がメモリブロックの監視/休止に該当するものと見做して動作する方式および装置。
付記23記載の方式および装置において、付記30記載のSUSPEND命令のかわりに(あっても良いが)、付記37記載の組の1つめのfetch & store命令の実行をLOAD-WITH-LOOKUP相当と見做す方式および装置。
付記23記載の方式および装置において、付記30記載のSUSPEND命令のかわりに(あっても良いが)、付記37記載の組の2つめのfetch & store命令の実行をSUSPEND相当と見做す方式および装置。
10A 命令制御部
10B 命令制御部
11 デコード部
12 命令セット
20 キャッシュメモリ
21 キャッシュデータ部
22 キャッシュタグ部
22a ステータス
22b LOOKフラグ
22c アドレス
22d その他の管理情報
30 記憶装置
40 ストア監視論理
41 レジスタ
42 比較器
43 論理制御回路
51 メモリアクセス命令
51a アドレス
51b データ要求
52 ストアデータ
52a ライトバック/コピーバックデータ
53 フェッチデータ
53a データ
54 LOAD-WITH-LOOKUP命令
55 無効化要求
56 ストア可能性検出信号
57 サスペンド実行信号
57a SUSPEND実行中信号
58a ロード命令検出信号
58b ストア命令検出信号
58c コンペア&スワップ命令検出信号
60 省電力制御部
60A 省電力制御部
61 フリップフロップ回路
62 論理反転回路
63 論理積回路
64 論理反転回路
65 論理積回路
66 フリップフロップ回路
67 論理反転回路
68 早期ストア検出信号
70 クロック供給源
71 動作クロック
71a 動作クロック
80 スピンループ判別部
81 レジスタ
82 論理和回路
83 比較器
84 論理反転回路
85 論理積回路
86 論理和回路
86a スピン解除信号
87 論理積回路
87a スピン検出信号
88 カウンタ
Claims (16)
- 演算を行う演算処理装置において、
情報を格納するキャッシュメモリと、
前記キャッシュメモリに格納される情報の読み出し及び更新を行う命令を検出する命令検出部と、
前記命令検出部が前記命令を検出した場合に、前記キャッシュメモリに格納される情報に対する他の演算処理装置からの更新アクセスの監視を開始する監視部と、
前記監視部が、前記キャッシュメモリに格納される情報に対する他の演算処理装置からの更新アクセスの監視を開始した後、前記演算処理装置を休止状態に移行させると共に、前記監視部が、前記キャッシュメモリに格納される情報に対する他の演算処理装置からの更新アクセスを検出した場合に、前記演算処理装置の休止状態を解除させる制御部を有することを特徴とする演算処理装置。 - 前記演算処理装置において、
前記更新アクセスは、前記キャッシュメモリにおいて前記情報を含むキャッシュラインを無効にする更新アクセスであることを特徴とする請求項1に記載の演算処理装置。 - 前記演算処理装置において、
前記更新アクセスは、前記キャッシュメモリにおいて前記情報を他の情報に変更する更新アクセスであることを特徴とする請求項1に記載の演算処理装置。 - 前記演算処理装置において、
前記制御部は、前記演算処理装置を動作させるクロックを供給すると共に、前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスの監視を開始した後、前記演算処理装置に対するクロックの供給を停止することにより、前記演算処理装置を休止状態に移行させると共に、前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスを検出した場合に、前記演算処理装置に対するクロックの供給を開始することにより、前記演算処理装置の休止状態を解除させることを特徴とする請求項1から3のうちのいずれか一項に記載の演算処理装置。 - 演算を行う演算処理装置において、
情報の読み出し及び更新を行う命令を発行する第一及び第二の命令制御部と、
前記第一及び前記第二の命令制御部から共有されると共に、前記情報を格納する共有キャッシュメモリと、
前記第一又は前記第二の命令制御部のうち、いずれか一の命令制御部から発行される前記命令を検出する命令検出部と、
前記命令検出部が、前記一の命令制御部から発行される命令を検出した場合に、前記情報に対する他の命令制御部からの更新アクセスの監視を開始する監視部と、
前記監視部が、前記他の命令制御部からの更新アクセスの監視を開始した後、前記一の命令制御部を休止状態に移行させると共に、前記監視部が、前記共有キャッシュメモリに格納される情報に対する他の命令制御部からの更新アクセスを検出した場合に、前記一の命令制御部の休止状態を解除させる制御部を有することを特徴とする演算処理装置。 - 前記演算処理装置において、
前記更新アクセスは、前記共有キャッシュメモリにおいて前記情報を含むキャッシュラインを無効にする更新アクセスであることを特徴とする請求項5に記載の演算処理装置。 - 前記演算処理装置において、
前記更新アクセスは、前記共有キャッシュメモリにおいて前記情報を他の情報に変更する更新アクセスであることを特徴とする請求項5に記載の演算処理装置。 - 前記演算処理装置において、
前記制御部は、前記演算処理装置を動作させるクロックを供給すると共に、前記監視部が、前記情報に対する他の命令制御部からの更新アクセスの監視を開始した後、前記一の命令制御部に対するクロックの供給を停止することにより、前記一の命令制御部を休止状態に移行させると共に、前記監視部が、前記情報に対する他の命令制御部からの更新アクセスを検出した場合に、前記一の命令制御部に対するクロックの供給を開始することにより、前記一の命令制御部の休止状態を解除させることを特徴とする請求項5から7のうちのいずれか一項に記載の演算処理装置。 - 演算を行う演算処理装置の制御方法において、
前記演算処理装置が有する命令検出部が、キャッシュメモリに格納される情報の読み出し及び更新を行う命令を検出するステップと、
前記命令検出部が前記命令を検出した場合に、前記演算処理装置が有する監視部が、前記情報に対する他の演算処理装置からの更新アクセスの監視を開始するステップと、
前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスの監視を開始した後、前記演算処理装置が有する制御部が、前記演算処理装置を休止状態に移行させると共に、前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスを検出した場合に、前記制御部が、前記演算処理装置の休止状態を解除させるステップを有することを特徴とする制御方法。 - 前記制御方法において、
前記更新アクセスは、前記キャッシュメモリにおいて前記情報を含むキャッシュラインを無効にする更新アクセスであることを特徴とする請求項9に記載の制御方法。 - 前記制御方法において、
前記更新アクセスは、前記キャッシュメモリにおいて前記情報を他の情報に変更する更新アクセスであることを特徴とする請求項9に記載の制御方法。 - 前記制御方法において、
前記制御部は、前記演算処理装置を動作させるクロックを供給すると共に、前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスの監視を開始した後、前記演算処理装置に対するクロックの供給を停止することにより、前記演算処理装置を休止状態に移行させると共に、前記監視部が、前記情報に対する他の演算処理装置からの更新アクセスを検出した場合に、前記演算処理装置に対するクロックの供給を開始することにより、前記演算処理装置の休止状態を解除させることを特徴とする請求項9から11のうちのいずれか一項に記載の制御方法。 - 第一及び第二の命令制御部と前記第一及び第二の命令制御部から共有される共有キャッシュメモリを有すると共に、演算を行う演算処理装置の制御方法において、
前記第一又は第二の命令制御部が、前記共有キャッシュメモリに格納される情報の読み出し及び更新を行う命令を発行するステップと、
前記演算処理装置が有する命令検出部が、前記第一又は前記第二の命令制御部のうち、いずれか一の命令制御部から発行される前記命令を検出するステップと、
前記命令検出部が、一の命令制御部から発行される前記命令を検出した場合に、前記演算処理装置が有する監視部が、前記情報に対する他の命令制御部からの更新アクセスの監視を開始するステップと、
前記監視部が、前記他の命令制御部からの更新アクセスの監視を開始した後、前記演算処理装置が有する制御部が、前記一の命令制御部を休止状態に移行させると共に、前記監視部が、前記情報に対する他の命令制御部からの更新アクセスを検出した場合に、前記制御部が、前記一の命令制御部の休止状態を解除させるステップを有することを特徴とする制御方法。 - 前記制御方法において、
前記更新アクセスは、前記共有キャッシュメモリにおいて前記情報を含むキャッシュラインを無効にする更新アクセスであることを特徴とする請求項13に記載の制御方法。 - 前記制御方法において、
前記更新アクセスは、前記共有キャッシュメモリにおいて前記情報を他の情報に変更する更新アクセスであることを特徴とする請求項13に記載の制御方法。 - 前記制御方法において、
前記制御部は、前記演算処理装置を動作させるクロックを供給すると共に、前記監視部が、前記他の命令制御部からの更新アクセスの監視を開始した後、前記一の命令制御部に対するクロックの供給を停止することにより、前記一の命令制御部を休止状態に移行させると共に、前記監視部が、前記情報に対する他の命令制御部からの更新アクセスを検出した場合に、前記一の命令制御部に対するクロックの供給を開始することにより、前記一の命令制御部の休止状態を解除させることを特徴とする請求項13から15のうちのいずれか一項に記載の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004135875A JP4376692B2 (ja) | 2004-04-30 | 2004-04-30 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
US10/937,253 US7853756B2 (en) | 2004-04-30 | 2004-09-10 | Information processing device, processor, processor control method, information processing device control method and cache memory |
EP04255531A EP1594059A3 (en) | 2004-04-30 | 2004-09-13 | Information processing devices and control methods therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004135875A JP4376692B2 (ja) | 2004-04-30 | 2004-04-30 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005316854A JP2005316854A (ja) | 2005-11-10 |
JP4376692B2 true JP4376692B2 (ja) | 2009-12-02 |
Family
ID=34930647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004135875A Expired - Fee Related JP4376692B2 (ja) | 2004-04-30 | 2004-04-30 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
Country Status (3)
Country | Link |
---|---|
US (1) | US7853756B2 (ja) |
EP (1) | EP1594059A3 (ja) |
JP (1) | JP4376692B2 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US7302543B2 (en) * | 2004-06-16 | 2007-11-27 | Nec Laboratories America, Inc. | Compressed memory architecture for embedded systems |
US8607241B2 (en) | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
JP4287799B2 (ja) * | 2004-07-29 | 2009-07-01 | 富士通株式会社 | プロセッサシステムおよびスレッド切り替え制御方法 |
US8936057B2 (en) * | 2005-08-30 | 2015-01-20 | Rockwell Collins, Inc. | Substrate lamination system and method |
US7395418B1 (en) * | 2005-09-22 | 2008-07-01 | Sun Microsystems, Inc. | Using a transactional execution mechanism to free up processor resources used by a busy-waiting thread |
US20070271450A1 (en) * | 2006-05-17 | 2007-11-22 | Doshi Kshitij A | Method and system for enhanced thread synchronization and coordination |
US7487279B2 (en) * | 2007-01-23 | 2009-02-03 | International Business Machines Corporation | Achieving both locking fairness and locking performance with spin locks |
JP5270924B2 (ja) * | 2008-01-30 | 2013-08-21 | 株式会社東芝 | 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 |
CN101661438B (zh) * | 2008-08-29 | 2013-08-28 | 鸿富锦精密工业(深圳)有限公司 | 电子装置及中央处理器寻址空间扩展方法 |
US8156275B2 (en) | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
JP5590032B2 (ja) * | 2009-06-30 | 2014-09-17 | 富士通株式会社 | 計算装置および並列計算機システム |
US8464035B2 (en) * | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
JP2011150422A (ja) * | 2010-01-19 | 2011-08-04 | Renesas Electronics Corp | データ処理装置 |
KR101641541B1 (ko) * | 2010-03-31 | 2016-07-22 | 삼성전자주식회사 | 다중 코어에서 동적으로 부하를 분배하는 장치 및 방법 |
KR101664108B1 (ko) * | 2010-04-13 | 2016-10-11 | 삼성전자주식회사 | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 |
US8713262B2 (en) * | 2011-09-02 | 2014-04-29 | Nvidia Corporation | Managing a spinlock indicative of exclusive access to a system resource |
KR101959567B1 (ko) * | 2012-05-14 | 2019-03-18 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
CN103885892A (zh) * | 2012-12-20 | 2014-06-25 | 株式会社东芝 | 存储器控制器 |
DE112013005628B4 (de) * | 2013-01-30 | 2018-06-28 | Mitsubishi Electric Corporation | Numerische Steuervorrichtung |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
JP6221792B2 (ja) * | 2014-02-05 | 2017-11-01 | 富士通株式会社 | 情報処理装置、情報処理システム、および情報処理システムの制御方法 |
US9619386B2 (en) | 2015-01-29 | 2017-04-11 | Kabushiki Kaisha Toshiba | Synchronization variable monitoring device, processor, and semiconductor apparatus |
US10185564B2 (en) * | 2016-04-28 | 2019-01-22 | Oracle International Corporation | Method for managing software threads dependent on condition variables |
JPWO2018150524A1 (ja) * | 2017-02-16 | 2020-02-20 | オスカーテクノロジー株式会社 | プロセッサシステム及びマルチプロセッサシステム |
US11086672B2 (en) * | 2019-05-07 | 2021-08-10 | International Business Machines Corporation | Low latency management of processor core wait state |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4513367A (en) | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
US4780843A (en) | 1983-11-07 | 1988-10-25 | Motorola, Inc. | Wait mode power reduction system and method for data processor |
JPS61229150A (ja) | 1985-04-04 | 1986-10-13 | Mitsubishi Electric Corp | 共有メモリのアクセス制御方式 |
JPH0381859A (ja) | 1989-08-25 | 1991-04-08 | Nec Corp | マルチプロセッサシステム |
JPH03164964A (ja) | 1989-11-24 | 1991-07-16 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置における排他制御処理装置 |
JP2708943B2 (ja) * | 1990-08-08 | 1998-02-04 | 三菱電機株式会社 | キャッシュメモリ制御装置 |
JP2963257B2 (ja) | 1991-11-01 | 1999-10-18 | 富士通株式会社 | 処理装置 |
JPH05225149A (ja) | 1992-02-13 | 1993-09-03 | Toshiba Corp | ロック方式 |
JPH0659982A (ja) * | 1992-08-10 | 1994-03-04 | Hitachi Ltd | 仮想記憶制御方法および装置 |
JP3546694B2 (ja) | 1998-03-31 | 2004-07-28 | 日本電気株式会社 | マルチスレッド計算機システム及びマルチスレッド実行制御方法 |
US6189088B1 (en) * | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6360364B1 (en) * | 1999-03-17 | 2002-03-19 | Microsoft Corporation | System and method for installing an application on a portable computer |
US6493741B1 (en) | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US6802039B1 (en) * | 2000-06-30 | 2004-10-05 | Intel Corporation | Using hardware or firmware for cache tag and data ECC soft error correction |
JP2002041489A (ja) | 2000-07-25 | 2002-02-08 | Mitsubishi Electric Corp | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 |
US6836824B1 (en) * | 2000-09-26 | 2004-12-28 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption in a cache memory system |
US6877088B2 (en) * | 2001-08-08 | 2005-04-05 | Sun Microsystems, Inc. | Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition |
WO2003040948A1 (fr) | 2001-11-08 | 2003-05-15 | Fujitsu Limited | Ordinateur et procede de commande |
US6986015B2 (en) * | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
US7363474B2 (en) | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
JP4252301B2 (ja) * | 2002-12-26 | 2009-04-08 | 株式会社日立製作所 | 記憶システム及びそのデータバックアップ方法 |
US7120775B2 (en) * | 2003-12-29 | 2006-10-10 | Intel Corporation | Inter-procedural allocation of stacked registers for a processor |
US7349999B2 (en) * | 2003-12-29 | 2008-03-25 | Intel Corporation | Method, system, and program for managing data read operations on network controller with offloading functions |
-
2004
- 2004-04-30 JP JP2004135875A patent/JP4376692B2/ja not_active Expired - Fee Related
- 2004-09-10 US US10/937,253 patent/US7853756B2/en not_active Expired - Fee Related
- 2004-09-13 EP EP04255531A patent/EP1594059A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1594059A2 (en) | 2005-11-09 |
EP1594059A3 (en) | 2007-09-05 |
US7853756B2 (en) | 2010-12-14 |
US20050246506A1 (en) | 2005-11-03 |
JP2005316854A (ja) | 2005-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4376692B2 (ja) | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ | |
US7500087B2 (en) | Synchronization of parallel processes using speculative execution of synchronization instructions | |
KR101524446B1 (ko) | 하드웨어 제한에 기초한 조절가능한 트랜잭션 크기를 이용하여 코드를 동적으로 최적화하는 장치, 방법 및 시스템 | |
US10235201B2 (en) | Dynamic releasing of cache lines | |
US9971690B2 (en) | Transactional memory operations with write-only atomicity | |
US7529914B2 (en) | Method and apparatus for speculative execution of uncontended lock instructions | |
US9727370B2 (en) | Collecting memory operand access characteristics during transactional execution | |
US20180365156A1 (en) | Instruction to cancel outstanding cache prefetches | |
US9311178B2 (en) | Salvaging hardware transactions with instructions | |
US9514006B1 (en) | Transaction tracking within a microprocessor | |
JP4487744B2 (ja) | マルチスレッド制御装置及び制御方法 | |
KR20140091779A (ko) | 원자 영역에서 조건부 커미트를 위한 결정 메카니즘 제공 장치, 방법, 및 시스템 | |
US20040123078A1 (en) | Method and apparatus for processing a load-lock instruction using a scoreboard mechanism | |
US9563468B1 (en) | Interprocessor memory status communication | |
US10996982B2 (en) | Regulating hardware speculative processing around a transaction | |
US20170177338A1 (en) | Management of asynchronous interrupts in a transactional memory multiprocessor environment | |
WO2022053774A1 (en) | Draining operation for draining dirty cache lines to persistent memory | |
US10671400B2 (en) | Enhanced managed runtime environments that support deterministic record and replay | |
US20170123846A1 (en) | Interprocessor memory status communication | |
US20170123841A1 (en) | Interprocessor memory status communication | |
US7975129B2 (en) | Selective hardware lock disabling | |
Lai et al. | A Cache Coherence Protocol Using Distributed Data Dependence Violation Checking in TLS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090616 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090814 |
|
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: 20090908 |
|
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: 20090909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4376692 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120918 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120918 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130918 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |