JP4826973B2 - 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム - Google Patents
情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム Download PDFInfo
- Publication number
- JP4826973B2 JP4826973B2 JP2009226802A JP2009226802A JP4826973B2 JP 4826973 B2 JP4826973 B2 JP 4826973B2 JP 2009226802 A JP2009226802 A JP 2009226802A JP 2009226802 A JP2009226802 A JP 2009226802A JP 4826973 B2 JP4826973 B2 JP 4826973B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- information processing
- cache mechanism
- data
- main storage
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
このようなデータのキャッシングを行うキャッシュ機構にあっては、高速の記憶装置上でのヒット率を高めて、アクセス速度を向上させることが意図されるが、その他に、前記メモリ装置間のデータの一貫性(coherence)が配慮され、前記メモリ装置でデータの不一致が生じたり、前記メモリ装置への不要な格納処理や更新処理がなされないように工夫される。
また、このようなデータのキャッシングを行うキャッシュ機構を備えた複数のCPUが、メモリ装置を(主記憶装置)共有する構成となっている場合もある。
例えば、キャッシュと主記憶装置との間がバスで接続されている場合、主記憶装置にデータを書き込む際には、該書き込みの要求は該バスに接続された全構成要素にブロードキャスト(発信)され、各CPUのキャッシュは、該ブロードキャストされた要求をsnoop(監視)命令で監視し、書き込みデータのアドレス(一意名)が自分のキャッシュに有るものと同一である場合には、当該キャッシュ上のデータが乗っているラインを無効化する(無効化する理由は、該アドレスが示す当該キャッシュ上のデータは、一般に、前記書き込みデータとは異なるものとなるから)。
これにより、次回のアクセス時(より具体的には読み出し時)には当該キャッシュではミス・ヒットとなるので、主記憶装置の方から最新のデータを取得することができることになり、結果としてキャッシュの一貫性を維持することができることになる。ちなみに、このような機能を有するキャッシュを「snoop cache」と称している。
このプリフェッチ命令が出されるタイミングは、全体的な処理の流れから見て、本来ならば読み取り命令が出されても良い正当なタイミングであるが、もしもプロセッサ内のキャッシュに、該当するデータが存在しない場合には、主記憶装置から、該データを読み出すことになるので、アクセス時間が多大に掛かるため、このプリフェッチ命令を先行して発行することにより、まずは、先付け処理として、プロセッサ内のキャッシュに該データを読み出しておくものである。このプリフェッチ命令を発行した時点から以降、該データが本当に必要になるまでの間、または該データが読み出されるまでの間は、該プロセッサは、他のタスクを実行することができる。
なお、このプリフェッチ命令は、リード命令の結果が直ぐに欲しい場合に、該リード命令に先行して発行しておくことも有効な使用法である。
以下、周知の技術として、プリフェッチしたデータを一定期間キャッシュ内に保持して性能改善を図る方法を説明する。
図3は、プリフェッチしたデータを一定期間キャッシュ内に保持して性能改善を図る周知の方法が適用されるプロセッサの内部構成を示す構成図である。
同図に示すプロセッサ3は、リードやライト等の命令を発行するCore(演算処理装置)31と、プロセッサから発行したリード命令によりメモリ装置から読み出して持ってきたデータを保持するキャッシュ32と、アドレスバッファ34とSnoop命令のアドレスとが一致したことによりキャッシュにSnoop命令の実行抑止指示を出すSnoop抑止回路33と、リプライデータ(以下、「Reply Data」と書くこともある)の返却時に返却されたデータのアドレスを一定期間保持するアドレスバッファ34と、アドレスバッファ内のアドレスとSnoop命令やSwap-out対象のキャッシュ内データのアドレスとを比較するコンパレータ35と、を備える。
以下、図1及び図3を参照して、既成のプロセッサであるプロセッサ3の動作を説明する。
まず、メモリ装置13からReply Data(c2)(図1参照)を受信すると、プロセッサ3は、キャッシュ32にデータを登録すると共に、Reply Data(c2)のデータのアドレスをアドレスバッファ34に登録する。アドレスバッファ34内にはキャッシュ内に対象データを保持しておきたい時間だけ登録しておく。アドレスバッファ34内にアドレスが登録されている間に、メモリ装置13からのSnoop命令(以下、単に「Snoop」と略称する)(c4)を受信すると、キャッシュ32でSnoop(c4)を実行する前に、コンパレータ35によりアドレスバッファ34内のアドレスとSnoop(c4)のアドレスとを比較する。
また、Swap-out処理においても、吐き出す対象のエントリにおいて、コンパレータ35によりアドレスバッファ34内のアドレスとSwap-out対象のエントリ内の全データのアドレスとを比較して、該比較した結果をキャッシュ32に戻すことで、アドレスバッファ34内のアドレスと一致したデータについてはSwap-out対象外としてSwap-outするデータを決定する処理が行われる。この場合、キャッシュ32の構成がNウェイセットアソシアティブである場合は、コンパレータ35の比較回路もN個必要となる。
また、例えば、特許文献2には、「スヌープ・キャッシュ」なる用語が見られ、特許文献1と同様の技術が開示されている。
また、例えば、特許文献3には、メモリのプリフェッチ性能を改善する技術が開示されている。
さらに、例えば、特許文献4には、複数のキャッシュを使用する技術が開示されている。
第1の問題点は、比較回路付きのアドレスバッファを設けるなど、複雑な回路の追加が必要となってしまうことである。
第2の課題は、キャッシュに対して、Snoop命令のデータアドレスがアドレスバッファ(前述の比較回路付きバッファ)内のアドレスと一致した場合に、該Snoop命令の実行を抑止する機能が必要になるなど、複雑な論理回路の追加や、回路の変更が必要となってしまうことである。
第3の課題は、キャッシュに対して、Swap-outするエントリ内のデータに対して、そのアドレスが、アドレスバッファ内のアドレスと一致したデータについては該Swap-outの対象外とする機能を必要とするなど、複雑な論理回路の追加や、回路の変更が必要となってしまうことである。
(a) 通常のキャッシュ機構に加えて、該キャッシュ機構の前段にプリキャッシュ機構を設けること、
(b) 外部のメモリ装置に格納されている指定データを、プリキャッシュ機構に取り入れさせる効果を有する周知のプリフェッチ命令を使用すること、
(c) メモリ装置から受け付けるSnoop命令については、通常のキャッシュ機構に対してのみ実行可能とし、プリキャッシュ機構については実行対象外とすること、
(d) 外部のメモリ装置から返却されたリプライデータをプリキャッシュ機構に一定期間保持した後、プリキャッシュ機構からキャッシュ機構にデータを移動すること、
を骨子としている。
しかしながら、前述の特許文献1〜4には、前記の(a)項記載の技術と同様の技術は開示されているが、前記の(b)項、(c)項、及び(d)項記載の技術は開示されていない。
メモリ装置から受け付けるSnoop命令は、既成の情報処理装置と同じく、キャッシュに対してのみ実行可能として、プリキャッシュはSnoop命令実行の対象外とする。また、キャッシュのエントリフルによるSwap-out処理も、キャッシュからのみ実行されるものとして、プリキャッシュからはSwap-out処理を実行できないようにする。
また、プロセッサ内のCore部から発行される命令に対しては、プリキャッシュもキャッシュの一部としてリード及びライトを可能とする。これにより、プリキャッシュにおいて一定期間リプライデータを保持していることで、既成の情報処理装置による吐き出し抑止の方法と同様に、保持しておきたいデータは、Core部(演算処理装置)から見ると、キャッシュ内に一定期間は保持されていることになり、本来の性能向上効果が発揮される効果が得られる。
図1は、本発明の実施形態に係る情報処理装置を含むマルチプロセッサシステムの全体構成を示す構成図である。
同図において、本実施形態の情報処理装置は、プロセッサA(11)と、プロセッサB(12)である。プロセッサA(11)と、プロセッサB(12)は、メモリ装置13(主記憶装置)を共有する。
即ち、図1に示す情報処理システムは、マルチプロセッサシステムであり、プロセッサA(11)と、プロセッサB(12)と、メモリ装置13と、を備える。
プロセッサA(11)とメモリ装置13との間、及びプロセッサB(12)とメモリ装置13との間はインタフェースで接続される。メモリ装置13内には、複数のプロセッサ間のデータの一貫性(coherence)を制御するディレクトリ14が実装され、メモリ装置13上のデータをプロセッサがリードすると、ディレクトリ14内にデータを持っていったプロセッサのID(識別名)等の情報を設定する。
図2において、本発明の実施形態に係る情報処理装置はプロセッサ2であり、図1に示すプロセッサA(11)、及びプロセッサB(12)の主要な構成も、図2に示すプロセッサ2の構成と同じである。
図2に示すプロセッサ2は、リードやライト等の命令を発行するCore21(演算処理装置)と、プロセッサから発行したリード命令により、メモリ装置13(図1参照)から読み出して持ってきたデータを保持するキャッシュ22と、キャッシュ22の前段に置かれ、本発明の特徴的な処理として、メモリ装置13から読み出したリプライデータを一定期間保持するプリキャッシュ23と、を備えて構成される。
また、Core21から発行される命令として、メモリ装置13に格納されているデータをプリキャッシュ23に取り入れさせる効果を有する命令、即ち周知のプリフェッチ命令を含める。
また、本実施形態では、図1に示すメモリ装置13に接続されるプロセッサの台数をプロセッサA(11)とプロセッサB(12)との、計2台としているが、一般に、本発明では、メモリ装置13を共有するマルチプロセッサシステムとして配備可能なプロセッサの台数は任意の複数であってもよい。
まず、図1に示す情報処理システムの構成要素である情報処理装置(ここでは、図2に示すプロセッサ2)において、今、仮に、プリキャッシュ23が設置されておらず、また、Reply Data(c2)も、プリキャッシュ22に取り入れられる構成となっている場合に生じる問題点について総括的に述べる。
一般に、情報処理装置が前記構成のプロセッサA(11)であり、かつCore21からの命令処理において、該命令が完了しないと次の命令に進まないような処理が含まれている場合、このような命令の実行時間は該情報処理装置の性能に大きく影響する。
メモリ装置13においては、競合したプロセッサB(12)からのLoad命令(c3)を続いて処理するが、ディレクトリ14にプロセッサA(11)が対象データを持っていったことが記録されているため、メモリ装置13からプロセッサA(11)に対してReply Data(c2)を追いかけるように、Snoop命令(c4)が発行される。
これらの各ケースにおいて、キャッシュ22からデータを吐き出した後にCore21からのコンペア&スワップ命令が発行されると、キャッシュには既にプリフェッチ命令(c1)による対象データが無いため、再度リードを発行して、メモリ装置13またはプロセッサB(12)から対象データを読み出す必要が発生してしまい、プリフェッチ命令(c1)による先行リードの効果が無効になってしまう。
本実施形態では、上記の各問題点を解決する性能改善手段として、図2に示すとおり、キャッシュ22に加えて、キャッシュ22と並べて配置されたキャッシュ23を設けると共に、Reply Data(c2)は、最初にキャッシュ23の方に取り入れる構成とする。
このような構成において、プリフェッチ命令(c1)により先行して読み出した対象データを有効活用するために、プロセッサA(11)のキャッシュ23においては、Reply Data(c2)を受け付けてキャッシュに登録した時点から一定期間は、該キャッシュ23から対象データを吐き出さないように抑止を行う。これにより、Core21から発行されるコンペア&スワップ命令などの命令に対してキャッシュヒットさせることができるため、速度の速い処理が可能となり、プリフェッチ命令の効果が有効に維持される。
以下、図1,2を参照しながら、本実施形態に係る情報処理装置の動作を、上記の性能改善手段を中心にして説明する。
ここでは、キャッシュ22(図2)において、図1に示すSnoop 命令(c4)、及びSwap-out命令によるキャッシュ22からの吐き出しを、Reply Data(c2)が返却された後の一定期間抑止する動作について説明する。
この場合の、Reply Data(c2)未返却時のSnoop命令(c4)の処理は、メモリ装置13に一度リトライ指示を返却してメモリ装置13からSnoop 命令(c4)を再発行したり、プロセッサA(11)内においてReply Data(c2)が返却されるまでの間はSnoop命令(c4)を保持したりと、システムによって一貫性(coherence)を維持するための処理形態が異なるため、ここでは詳細な説明を省略する。
また、キャッシュ22においては、プリキャッシュ23からReply Dataを受け取るようにすること以外の機能変更は不要であり、よって、複雑な論理回路の追加や、回路変更無しで、プリフェッチ命令によるアクセス速度の改善効果を最大限に活かした性能改善方法をサポートできる効果がある。
12 プロセッサB
13 メモリ装置(主記憶装置)
14 ディレクトリ
21 Core(演算処理装置)
22 キャッシュ(キャッシュ機構)
23 プリキャッシュ
c1 プリフェッチ命令
c2,c5 Reply Data
c3 Load命令
c4 Snoop命令
Claims (6)
- 他の情報処理装置と共有される主記憶装置の動作速度を改善するためのデータキャッシュ機構として、
前記主記憶装置から返却されるリプライデータを保持するキャッシュ機構と、
前記キャッシュ機構の前段で前記主記憶装置から返却されるリプライデータを保持するプリキャッシュ機構とを備え、さらに、
前記主記憶装置から返却された前記リプライデータを、前記プリキャッシュ機構に、所定の一定期間だけ保持する手段と、
演算処理装置から発行される命令に対しては、前記プリキャッシュ機構も、前記キャッシュ機構の一部として、リード及びライトを可能にする手段と、
前記主記憶装置から受け付けるSnoop (監視)命令については、前記キャッシュ機構のみを対象として実行し、前記プリキャッシュ機構に対しては、該Snoop 命令の実行対象外とする手段と、
を備えたことを特徴とする情報処理装置。 - 前記プリキャッシュ機構に保持されたデータは、前記所定の一定時間の経過後に、前記キャッシュ機構に移動されることを特徴とする請求項1記載の情報処理装置。
- 前記主記憶装置は、他の情報処理装置と共有されている記憶装置であることを特徴とする請求項1又は2に記載の情報処理装置。
- 前記プリキャッシュ機構は、前記リプライデータ分のエントリに加えて、前記所定の一定時間内にさらに前記主記憶装置から返却されるリプライデータを保持できるエントリを備えていることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
- 主記憶装置を他の情報処理装置と共有する構成の情報処理装置の、データキャッシュ機構を制御するための情報処理装置のデータキャッシング方法であって、
他の情報処理装置と共有される前記主記憶装置の動作速度を改善するためのデータキャッシュ機構の一部として、
前記主記憶装置から返却されるリプライデータを保持するキャッシュ機構と、
前記キャッシュ機構の前段で前記主記憶装置から返却されるリプライデータを保持するプリキャッシュ機構と、を設けると共に、
前記主記憶装置から返却される前記リプライデータを、前記プリキャッシュ機構に、所定の一定期間だけ保持するステップと、
演算処理装置から発行される命令に対しては、前記プリキャッシュ機構も、前記キャッシュ機構の一部として、リード及びライトを可能にするステップと、
前記主記憶装置から受け付けるSnoop (監視)命令については、前記キャッシュ機構に対してのみ実行可能とし、前記プリキャッシュ機構については該Snoop 命令の実行対象外とするステップと、
を有することを特徴とする情報処理装置のデータキャッシング方法。 - 請求項1乃至4に記載の情報処理装置を構成要素に含むマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009226802A JP4826973B2 (ja) | 2009-09-30 | 2009-09-30 | 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009226802A JP4826973B2 (ja) | 2009-09-30 | 2009-09-30 | 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011076345A JP2011076345A (ja) | 2011-04-14 |
JP4826973B2 true JP4826973B2 (ja) | 2011-11-30 |
Family
ID=44020265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009226802A Expired - Fee Related JP4826973B2 (ja) | 2009-09-30 | 2009-09-30 | 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4826973B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53134335A (en) * | 1977-04-28 | 1978-11-22 | Fujitsu Ltd | Memory control system |
JPH04369061A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | キャッシュメモリの制御方式 |
TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
JP2003030046A (ja) * | 2001-07-11 | 2003-01-31 | Hitachi Ltd | 命令キャッシュのプリフェッチ機構を備えたキャッシュ制御装置 |
-
2009
- 2009-09-30 JP JP2009226802A patent/JP4826973B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011076345A (ja) | 2011-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022534892A (ja) | 書き込みミスエントリのドレインをサポートする犠牲キャッシュ | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
EP2839379B1 (en) | A write-only dataless state for maintaining cache coherency | |
US8271730B2 (en) | Handling of write access requests to shared memory in a data processing apparatus | |
US9323673B2 (en) | Hierarchical cache structure and handling thereof | |
US6546462B1 (en) | CLFLUSH micro-architectural implementation method and system | |
US9081687B2 (en) | Method and apparatus for MONITOR and MWAIT in a distributed cache architecture | |
US20120072674A1 (en) | Double-buffered data storage to reduce prefetch generation stalls | |
US20080195820A1 (en) | Prefetch miss indicator for cache coherence directory misses on external caches | |
JP2902976B2 (ja) | キャッシュフラッシュ装置 | |
US8051248B2 (en) | Transient transactional cache | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US20090106498A1 (en) | Coherent dram prefetcher | |
JP5852446B2 (ja) | 並列コンピュータ・システムの性能を改良するための装置、方法及びコンピュータ・プログラム | |
US10108464B2 (en) | Managing speculative memory access requests in the presence of transactional storage accesses | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
US20190391924A1 (en) | Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus | |
US20020042860A1 (en) | Cache system | |
JP4826973B2 (ja) | 情報処理装置及び情報処理装置のデータキャッシング方法並びにマルチプロセッサシステム | |
US10430343B2 (en) | Acceleration of cache-to-cache data transfers for producer-consumer communication | |
US20070180193A1 (en) | History based line install | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
US7380107B2 (en) | Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss | |
CN109643280A (zh) | 高速缓存保留数据管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20110816 |
|
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: 20110901 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140922 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 |