JP6975335B2 - ホームエージェントベースのキャッシュ転送アクセラレーションスキーム - Google Patents
ホームエージェントベースのキャッシュ転送アクセラレーションスキーム Download PDFInfo
- Publication number
- JP6975335B2 JP6975335B2 JP2020532672A JP2020532672A JP6975335B2 JP 6975335 B2 JP6975335 B2 JP 6975335B2 JP 2020532672 A JP2020532672 A JP 2020532672A JP 2020532672 A JP2020532672 A JP 2020532672A JP 6975335 B2 JP6975335 B2 JP 6975335B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- probe
- entry
- lookup
- processing node
- 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.)
- Active
Links
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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0826—Limited pointers directories; State-only directories without pointers
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
コンピュータシステムは、一般に、安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップによって形成されたメインメモリを使用する。しかしながら、DRAMチップは、比較的長いアクセス時間を必要とする。パフォーマンスを向上させるために、データプロセッサは、一般に、キャッシュとして知られている少なくとも1つのローカルな高速メモリを含む。マルチコアデータプロセッサでは、各データプロセッサコアは、独自の専用のレベル1(L1)キャッシュを含むことができ、他のキャッシュ(例えば、レベル2(L2)、レベル3(L3))は、データプロセッサコアによって共有される。
Claims (20)
- 複数の処理ノードと、
前記複数の処理ノードによってキャッシュされるキャッシュラインを追跡するように構成されたプローブフィルタと、
メモリコントローラと、
前記メモリコントローラに接続されたコヒーレントスレーブユニットであって、前記コヒーレントスレーブユニットは、前記プローブフィルタへの最近のルックアップをキャッシュするように構成された初期プローブキャッシュを含み、前記初期プローブキャッシュは、領域ベースでエントリを記憶し、領域は、複数のキャッシュラインを含む、コヒーレントスレーブユニットと、
を備えるシステムであって、
前記コヒーレントスレーブユニットは、
メモリ要求を受信したことに応じて、前記プローブフィルタ及び前記初期プローブキャッシュへの並列ルックアップを実行することと、
前記初期プローブキャッシュのルックアップが第1エントリに一致することに応じて、前記初期プローブキャッシュの前記第1エントリから第1処理ノードの識別子を取得することであって、前記第1エントリは、前記第1処理ノードを、前記メモリ要求によってターゲットとされた第1領域の所有者として識別する、ことと、
前記第1エントリの信頼度指標が閾値よりも大きいと判別したことに応じて、初期プローブを前記第1処理ノードに送信することであって、前記初期プローブは、前記プローブフィルタへのルックアップが完了する前に送信される、ことと、
を行うように構成されている、
システム。 - 前記コヒーレントスレーブユニットは、前記プローブフィルタへの前記ルックアップが、前記第1処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を増加させるように構成されている、
請求項1のシステム。 - 前記コヒーレントスレーブユニットは、前記プローブフィルタへの前記ルックアップが、異なる処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を低下させるように構成定されている、
請求項2のシステム。 - 前記コヒーレントスレーブユニットは、前記初期プローブキャッシュへの前記ルックアップが失敗し、前記プローブフィルタへの前記ルックアップが共有領域に対応するエントリにヒットしたことに応じて、前記メモリ要求についての新たなエントリを前記初期プローブキャッシュに割り当てるように構成されている、
請求項1のシステム。 - 前記コヒーレントスレーブユニットは、
前記メモリ要求によってターゲットとされた前記キャッシュラインを含む領域を決定することと、
前記領域のアドレスを、前記初期プローブキャッシュの前記新たなエントリの領域アドレスフィールドに記憶することと、
前記プローブフィルタの一致するエントリから前記キャッシュラインの所有者の識別子(ID)を抽出することと、
前記IDを、前記初期プローブキャッシュの前記新たなエントリの領域所有者フィールドに記憶することと、
を行うように構成されている、
請求項4のシステム。 - 前記第1処理ノードは、
前記初期プローブを受信することと、
データが前記第1処理ノードのキャッシュサブシステムに存在する場合に、前記初期プローブによってターゲットとされた前記データを取得することと、
前記データを要求元の処理ノードに返すことと、
を行うように構成されている、
請求項1のシステム。 - 前記第1処理ノードは、
前記初期プローブを受信することと、
データが前記第1処理ノードのキャッシュサブシステムに存在する場合に、前記初期プローブによってターゲットとされた前記データを取得することと、
前記データをバッファリングし、対応する要求プローブを受信するまで待機することと、
を行うように構成されている、
請求項1のシステム。 - メモリ要求を受信したことに応じて、プローブフィルタ及び初期プローブキャッシュへの並列ルックアップを実行することと、
前記初期プローブキャッシュのルックアップが第1エントリに一致することに応じて、前記初期プローブキャッシュの前記第1エントリから第1処理ノードの識別子を取得することであって、前記第1エントリは、前記第1処理ノードを、前記メモリ要求によってターゲットとされた第1領域の所有者として識別する、ことと、
前記第1エントリの信頼度指標が閾値よりも大きいと判別したことに応じて、初期プローブを前記第1処理ノードに送信することであって、前記初期プローブは、前記プローブフィルタへのルックアップが完了する前に送信される、ことと、を含む、
方法。 - 前記プローブフィルタへの前記ルックアップが、前記第1処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を増加させることを含む、
請求項8の方法。 - 前記プローブフィルタへの前記ルックアップが、異なる処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を低下させることを含む、
請求項9の方法。 - 前記方法は、前記初期プローブキャッシュへの前記ルックアップが失敗し、前記プローブフィルタへの前記ルックアップが共有領域に対応するエントリにヒットしたことに応じて、前記メモリ要求についての新たなエントリを前記初期プローブキャッシュに割り当てることを含む、
請求項8の方法。 - 前記メモリ要求によってターゲットとされた前記キャッシュラインを含む領域を決定することと、
前記領域のアドレスを、前記初期プローブキャッシュの前記新たなエントリの領域アドレスフィールドに記憶することと、
前記プローブフィルタの一致するエントリから前記キャッシュラインの所有者の識別子(ID)を抽出することと、
前記IDを、前記初期プローブキャッシュの前記新たなエントリの領域所有者フィールドに記憶することと、を含む、
請求項11の方法。 - 前記第1処理ノードにおいて、前記初期プローブを受信することと、
データが前記第1処理ノードのキャッシュサブシステムに存在する場合に、前記初期プローブによってターゲットとされた前記データを取得することと、
前記データを要求元の処理ノードに返すことと、を含む、
請求項8の方法。 - 前記第1処理ノードにおいて、前記初期プローブを受信することと、
データが前記第1処理ノードのキャッシュサブシステムに存在する場合に、前記初期プローブによってターゲットとされた前記データを取得することと、
前記データをバッファリングし、対応する要求プローブを受信するまで待機することと、を含む、
請求項8の方法。 - 複数の処理ノードによってキャッシュされるキャッシュラインを追跡するように構成されたプローブフィルタと、
前記プローブフィルタへの最近のルックアップをキャッシュするように構成された初期プローブキャッシュを含むコヒーレントスレーブユニットと、
を備える装置であって、
前記初期プローブキャッシュは、領域ベースでエントリを記憶し、
領域は、複数のキャッシュラインを含み、
前記コヒーレントスレーブユニットは、
メモリ要求を受信したことに応じて、前記プローブフィルタ及び前記初期プローブキャッシュへの並列ルックアップを実行することと、
前記初期プローブキャッシュのルックアップが第1エントリに一致することに応じて、前記初期プローブキャッシュの前記第1エントリから第1処理ノードの識別子を取得することであって、前記第1エントリは、前記第1処理ノードを、前記メモリ要求によってターゲットとされた第1領域の所有者として識別する、ことと、
前記第1エントリの信頼度指標が閾値よりも大きいと判別したことに応じて、初期プローブを前記第1処理ノードに送信することであって、前記初期プローブは、前記プローブフィルタへのルックアップが完了する前に送信される、ことと、
を行うように構成されている、
装置。 - 前記コヒーレントスレーブユニットは、前記プローブフィルタへの前記ルックアップが、前記第1処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を増加させるように構成されている、
請求項15の装置。 - 前記コヒーレントスレーブユニットは、前記プローブフィルタへの前記ルックアップが、異なる処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別すると判別したことに応じて、前記第1エントリの前記信頼度指標を低下させるように構成されている、
請求項16の装置。 - 前記コヒーレントスレーブユニットは、前記初期プローブキャッシュへの前記ルックアップが失敗し、前記プローブフィルタへの前記ルックアップが共有領域に対応するエントリにヒットしたことに応じて、前記メモリ要求についての新たなエントリを前記初期プローブキャッシュに割り当てるように構成されている、
請求項15の装置。 - 前記コヒーレントスレーブユニットは、
前記メモリ要求によってターゲットとされた前記キャッシュラインを含む領域を決定することと、
前記領域のアドレスを、前記初期プローブキャッシュの前記新たなエントリの領域アドレスフィールドに記憶することと、
前記プローブフィルタの一致するエントリから前記キャッシュラインの所有者の識別子(ID)を抽出することと、
前記IDを、前記初期プローブキャッシュの前記新たなエントリの領域所有者フィールドに記憶することと、
を行うように構成されている、
請求項18の装置。 - 前記コヒーレントスレーブユニットは、前記プローブフィルタへの前記ルックアップが、第2処理ノードを、前記メモリ要求によってターゲットとされたキャッシュラインの所有者として識別するエントリに一致すると判別したことに応じて、要求プローブを前記第2処理ノードに送信するように構成されている、
請求項15の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/844,215 US10776282B2 (en) | 2017-12-15 | 2017-12-15 | Home agent based cache transfer acceleration scheme |
US15/844,215 | 2017-12-15 | ||
PCT/US2018/051756 WO2019118037A1 (en) | 2017-12-15 | 2018-09-19 | Home agent based cache transfer acceleration scheme |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021507371A JP2021507371A (ja) | 2021-02-22 |
JP2021507371A5 JP2021507371A5 (ja) | 2021-10-28 |
JP6975335B2 true JP6975335B2 (ja) | 2021-12-01 |
Family
ID=63794694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020532672A Active JP6975335B2 (ja) | 2017-12-15 | 2018-09-19 | ホームエージェントベースのキャッシュ転送アクセラレーションスキーム |
Country Status (6)
Country | Link |
---|---|
US (2) | US10776282B2 (ja) |
EP (2) | EP3961409B1 (ja) |
JP (1) | JP6975335B2 (ja) |
KR (1) | KR102383040B1 (ja) |
CN (1) | CN111656332A (ja) |
WO (1) | WO2019118037A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776282B2 (en) | 2017-12-15 | 2020-09-15 | Advanced Micro Devices, Inc. | Home agent based cache transfer acceleration scheme |
US11210248B2 (en) * | 2019-12-20 | 2021-12-28 | Advanced Micro Devices, Inc. | System direct memory access engine offload |
CN117651021B (zh) * | 2024-01-25 | 2024-04-30 | 苏州萨沙迈半导体有限公司 | 过滤器及其控制方法和装置、电气设备 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6055610A (en) * | 1997-08-25 | 2000-04-25 | Hewlett-Packard Company | Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations |
US6631401B1 (en) | 1998-12-21 | 2003-10-07 | Advanced Micro Devices, Inc. | Flexible probe/probe response routing for maintaining coherency |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US7395375B2 (en) * | 2004-11-08 | 2008-07-01 | International Business Machines Corporation | Prefetch miss indicator for cache coherence directory misses on external caches |
US7627722B2 (en) | 2005-08-23 | 2009-12-01 | Advanced Micro Devices, Inc. | Method for denying probes during proactive synchronization within a computer system |
US8185695B2 (en) * | 2008-06-30 | 2012-05-22 | Advanced Micro Devices, Inc. | Snoop filtering mechanism |
WO2010052799A1 (ja) * | 2008-11-10 | 2010-05-14 | 富士通株式会社 | 情報処理装置及びメモリ制御装置 |
US9081706B2 (en) * | 2012-05-10 | 2015-07-14 | Oracle International Corporation | Using a shared last-level TLB to reduce address-translation latency |
US9405687B2 (en) * | 2013-11-04 | 2016-08-02 | Intel Corporation | Method, apparatus and system for handling cache misses in a processor |
US9639470B2 (en) * | 2014-08-26 | 2017-05-02 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
DE102015115582A1 (de) | 2014-10-22 | 2016-04-28 | Imagination Technologies Limited | Vorrichtung und Verfahren zum Drosseln des Hardwarevorauslesens |
CN104331377B (zh) | 2014-11-12 | 2018-06-26 | 浪潮(北京)电子信息产业有限公司 | 一种多核处理器系统的目录缓存管理方法 |
US11237965B2 (en) * | 2014-12-31 | 2022-02-01 | Arteris, Inc. | Configurable snoop filters for cache coherent systems |
US9792210B2 (en) | 2015-12-22 | 2017-10-17 | Advanced Micro Devices, Inc. | Region probe filter for distributed memory system |
US9817760B2 (en) * | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US11061572B2 (en) * | 2016-04-22 | 2021-07-13 | Advanced Micro Devices, Inc. | Memory object tagged memory monitoring method and system |
US10776282B2 (en) | 2017-12-15 | 2020-09-15 | Advanced Micro Devices, Inc. | Home agent based cache transfer acceleration scheme |
-
2017
- 2017-12-15 US US15/844,215 patent/US10776282B2/en active Active
-
2018
- 2018-09-19 JP JP2020532672A patent/JP6975335B2/ja active Active
- 2018-09-19 EP EP21202235.4A patent/EP3961409B1/en active Active
- 2018-09-19 KR KR1020207020385A patent/KR102383040B1/ko active IP Right Grant
- 2018-09-19 CN CN201880088010.1A patent/CN111656332A/zh active Pending
- 2018-09-19 EP EP18783262.1A patent/EP3724772B1/en active Active
- 2018-09-19 WO PCT/US2018/051756 patent/WO2019118037A1/en unknown
-
2020
- 2020-09-14 US US17/019,999 patent/US11782848B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11782848B2 (en) | 2023-10-10 |
EP3961409B1 (en) | 2024-04-10 |
WO2019118037A1 (en) | 2019-06-20 |
CN111656332A (zh) | 2020-09-11 |
US10776282B2 (en) | 2020-09-15 |
US20190188155A1 (en) | 2019-06-20 |
EP3961409A1 (en) | 2022-03-02 |
KR20200096975A (ko) | 2020-08-14 |
US20210064545A1 (en) | 2021-03-04 |
JP2021507371A (ja) | 2021-02-22 |
EP3724772B1 (en) | 2021-10-27 |
KR102383040B1 (ko) | 2022-04-08 |
EP3724772A1 (en) | 2020-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7390304B2 (ja) | 大規模なキャッシュサイズに適合する領域ベースのディレクトリスキーム | |
US10402327B2 (en) | Network-aware cache coherence protocol enhancement | |
US11782848B2 (en) | Home agent based cache transfer acceleration scheme | |
US20070294485A1 (en) | Semi-blocking deterministic directory coherence | |
JP2019526086A (ja) | 競合ロック要求の消去スキーム | |
US10198357B2 (en) | Coherent interconnect for managing snoop operation and data processing apparatus including the same | |
US10705959B2 (en) | Region based split-directory scheme to adapt to large cache sizes | |
JP5976225B2 (ja) | スティッキー抜去エンジンを伴うシステムキャッシュ | |
JP7036988B2 (ja) | 領域ベースのキャッシュディレクトリスキームにおけるプライベート領域へのアクセスの加速 | |
US10503648B2 (en) | Cache to cache data transfer acceleration techniques | |
US20220050785A1 (en) | System probe aware last level cache insertion bypassing | |
JP6975338B2 (ja) | 順序付けされた帯域幅を改善するプロトコルスキームのキャンセル及びリプレイ | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210917 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210917 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210917 |
|
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: 20211019 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6975335 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |