JP2022545859A - ランダムアクセシング - Google Patents

ランダムアクセシング Download PDF

Info

Publication number
JP2022545859A
JP2022545859A JP2022502950A JP2022502950A JP2022545859A JP 2022545859 A JP2022545859 A JP 2022545859A JP 2022502950 A JP2022502950 A JP 2022502950A JP 2022502950 A JP2022502950 A JP 2022502950A JP 2022545859 A JP2022545859 A JP 2022545859A
Authority
JP
Japan
Prior art keywords
address
output
addresses
memory
candidate
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.)
Pending
Application number
JP2022502950A
Other languages
English (en)
Inventor
ベスト,スコット,シー.
マーソン,マーク,エヴァン
ウィットナー,ジョエル
Original Assignee
クリプトグラフィ リサーチ, インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by クリプトグラフィ リサーチ, インコーポレイテッド filed Critical クリプトグラフィ リサーチ, インコーポレイテッド
Publication of JP2022545859A publication Critical patent/JP2022545859A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Read Only Memory (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Abstract

乱数ジェネレータはアドレスを選択し、一方、レジスタ(またはビット)の「スコアボード」バンクは、(例えば、データの一部を格納または検索するために)どのアドレスがすでに出力されているかを追跡する。アドレスがすでに出力されていることをスコアボードが検出すると、ランダムに選択されたものではなく、まだ使用されていない第2のアドレスが出力される。第2のアドレスは、まだ出力されていない近くのアドレスから選択され得る。【選択図】図1

Description

アドレス生成論理を示すブロック図である。 固定時間アドレス生成ブロックを示すブロック図である。 例示的な固定時間アドレス生成論理を示す。 ランダム化された順序でデータにアクセスするシステムを示す。 アドレスを生成する方法を示すフローチャートである。 アドレスを選択する方法を示すフローチャートである。 処理システムのブロック図である。
特定の秘密または機密データ(例えば、暗号化キー、または暗号化キーの一部)が、そのチップの不揮発性メモリ(「NVM」)内のチップに格納される場合がある。通常、このデータは線形順序で格納され、秘密データの第1の部分(例えば、ワード、バイト、ニブルなど)が第1のメモリ位置に格納され、第2の部分が第2のメモリ位置に格納され、以下同様である。また、データにアクセスすると、通常、線形順序でもアクセスされる(すなわち、第1のメモリ位置が読み取られ、次に第2のメモリ位置が読み取られるなど)。この従来の線形アクセスアプローチにより、データを要求するセキュリティコアとNVM回路の間のデータ信号を侵襲的に監視することで、攻撃者は、秘密データを回復することができる。このような攻撃では、攻撃者は、アドレスラインを監視する必要はなく、代わりに、回復したデータに対応するアドレスを推測できる。データラインの数がアドレスラインの数よりも大幅に少ないことが多いため(例えば、NVM回路は16本のアドレスラインを使用するが、出力バスは4ビットだけである)、攻撃者がデータラインを監視するだけで秘密データを回復できるようにすることで、侵入攻撃中の攻撃者の作業が大幅に簡素化される。
一実施形態では、アドレスのアクセスパターンの生成中に乱数ジェネレータが使用され、一方、レジスタ(またはビット)の「スコアボード」バンクは、(例えば、データの一部を格納または検索するために)どのアドレスがすでに使用されているかを追跡する。アドレスがすでに使用されていることをスコアボードが検出すると、ランダムに選択されたものではなく、まだ使用されていない第2のアドレスが使用される。第2のアドレスは、まだ出力されていない近くのアドレスから選択され得る。このように、セキュリティコアが秘密データのブロックにアクセスしている間にデータラインを監視している攻撃者は、部分がランダムな順序でアクセスされているため、秘密データ全体を正しくつなぎ合わせることができない。同時に、スコアボードアプローチにより、セキュリティコアが必要最小限の時間で秘密データのブロックを取得できることが保証される。
図1は、アドレス生成論理を示すブロック図である。図1では、アドレス生成システム100は、候補アドレスジェネレータ110、リピートアドレス検出器120、および出力アドレスセレクタ130を含む。候補アドレスジェネレータ110は、出力アドレスセレクタ130およびリピートアドレス検出器120に動作可能に結合されている。リピートアドレス検出器120は、出力アドレスセレクタ130に動作可能に結合されている。出力アドレスセレクタ130は、アドレス生成システム100によって出力されるアドレスを提供する。
一実施形態では、候補アドレスジェネレータ110は、リピートアドレス検出器120および出力アドレスセレクタ130に候補アドレスを提供する。リピートアドレス検出器120は、所与の候補アドレスがアドレス生成システム100によってすでに提供されているかどうかを決定する(例えば、NVM回路からのデータの読み取りを担当するアービタ回路に提供される)。リピートアドレス検出器120は、アドレスのセット全体(または範囲)が出力されるまで、リピートアドレスが出力されるのを防ぐために、アドレスのセット全体(または範囲)が出力される前に、所与の候補アドレスがアドレス生成システム100によってすでに出力されているかどうかを決定してもよい。このようにして、アドレスのセット全体(または範囲)が、既知の(すなわち、固定された)数のトランザクション/サイクルなどで出力される。
例えば、64バイト(またはワード、またはニブルなど)からなるデータのバーストを検索/格納するために、アドレス生成システム100は、0~63の範囲のアドレスを出力するように構成され得る。この範囲からのリピートアドレスは、範囲全体(すなわち、バースト/ブロック)が出力されるまで出力されないので、アドレス生成システム100は、リピートアドレスが出力されることを可能にする前に、64個のアドレスを出力する。言い換えれば、アドレス生成システム100は、所与の64バイトのデータブロックの検索/格納中、64個のアドレスの各々を正確に一度出力する。
一実施形態では、候補アドレスジェネレータ110は、ランダムまたは疑似ランダムに生成された数(以下、まとめてランダムの、ランダム化された、またはランダムに選択された数と呼ぶ)に基づいて候補アドレスを出力する。リピートアドレス検出器120は、アドレスのセットまたは範囲からランダムに選択されたそれぞれの候補アドレスが、現在のブロックの検索/格納中にすでに出力されているかどうかを決定する。所与の候補アドレスが現在のバースト中にまだ出力されていないと決定された場合、出力アドレスセレクタ130は、アドレス生成システム100によって出力されるように、候補アドレスジェネレータ110によって提供される候補アドレスを選択する。所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、出力アドレスセレクタ130は、リピートアドレス検出器120からの情報に基づいて、現在のバースト中にまだ出力されていないアドレスを選択する。
一実施形態では、所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に低い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない低い値のアドレスがない場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。同様に、別の実施形態では、所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない高い値のアドレスがない場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に低い値(候補と比較した場合)のアドレスを選択し得る。
別の実施形態では、所与の候補アドレスが現在のバースト出力中にすでに出力されていると決定された場合、出力アドレスセレクタ130は、乱数に基づいて、現在のバースト中にまだ出力されていない次に低い値または高い値のアドレスを選択するかどうかを選択し得る。乱数に基づいて次に高い値のアドレスが選択され、まだ出力されていない高い値のアドレスがない場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に低い値のアドレス(候補と比較した場合)を選択してもよい。同様に、乱数に基づいて次に低い値のアドレスが選択され、まだ出力されていない低い値のアドレスがない場合、出力アドレスセレクタ130は、現在のバースト中にまだ出力されていない次に高い値のアドレス(候補と比較した場合)を選択してもよい。
図2は、固定時間アドレス生成ブロックを示すブロック図である。図2において、アドレス生成システム200は、乱数ジェネレータ211、アドレスセレクタ231、および使用されたアドレス追跡221を含む。乱数ジェネレータ211は、アドレスセレクタ231に動作可能に結合されている。乱数ジェネレータ211は、アドレスセレクタ231に動作可能に結合されて、セレクタ231がアドレス生成システム200によって出力される少なくとも1つのアドレスを選択するために少なくとも部分的に使用する、少なくとも乱数を提供する。
アドレス追跡221は、セレクタ231に動作可能に結合されている。アドレス追跡221は、セレクタ231に動作可能に結合されて、アドレスのセット(または範囲)からどのアドレスが出力されたか、または出力されなかったかに関する情報をセレクタ231に提供する。所与の出力サイクルにおいて、セレクタ231は、少なくとも、乱数ジェネレータ211によって提供される乱数、およびアドレス追跡221からの情報に基づいて、アドレス生成システム200によって出力されるアドレスを提供する。アドレス生成システム200によって出力されたアドレスは、使用されたことが示されるように、アドレス追跡221にフィードバックされる。
一実施形態では、乱数ジェネレータ211は、セレクタ231に乱数を提供する。この乱数は、候補アドレスを含み得る。この乱数は、候補アドレスへのインデックス(例えば、まだ使用されていないアドレスのテーブルへのインデックス)を含み得る。セレクタ231は、追跡221からの情報に少なくとも部分的に基づいて、候補アドレスがアドレス生成システム200によってすでに出力されているかどうかを決定する。セレクタ231は、アドレスのセット全体(または範囲)が出力されるまで、リピートアドレスが出力されるのを防ぐために、所与の候補アドレスがすでに出力されているかどうかを決定してもよい。このようにして、アドレスのセット全体(または範囲)が、既知の(すなわち、固定された)数のトランザクション/サイクルなどで出力される。
例えば、64バイト(またはワード、またはニブルなど)からなるデータのバーストを検索/格納するために、乱数ジェネレータ211は、0~63の範囲の候補アドレスを出力するように構成され得る。乱数ジェネレータ211は、候補アドレスの実質的に(または事実上)ランダムなシーケンスを出力するので、乱数ジェネレータ211は、範囲内のすべての数が出力される前に、範囲から1つ以上のリピートアドレスを出力することが可能である。リピート候補アドレスが発生すると、セレクタ231は、アドレス追跡221からの情報を使用して、この発生を検出する。次に、セレクタ231は、この再度発生するアドレスが出力されるのを防ぎ、(追跡221からの情報にも基づいて)まだ出力されていない新しいアドレスを出力するように選択する。このようにして、アドレス生成システム200は、所与の64バイトのデータブロックの検索/格納中、64個のアドレスの各々を正確に一度出力する。
一実施形態では、乱数ジェネレータ211は、ランダムまたは疑似ランダムに生成された数のシーケンスを出力する。シーケンス内の各数は候補アドレスを含んでいてもよい(例えば、乱数ジェネレータ211によって出力されたビットのサブセットが候補アドレスとして使用され、残りはセレクタ231によって他の目的に使用されてもよい)。セレクタ231は、追跡221からの情報について、現在のブロックの検索/格納中に、それぞれのランダムに生成された候補アドレスがすでに出力されているかどうかを決定する。所与の候補アドレスが現在のバースト中にまだ出力されていないと決定された場合、セレクタ231は、アドレス生成システム200によって出力されるように、乱数ジェネレータ211によって提供される候補アドレスを選択する。所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、セレクタ231は、少なくとも追跡221からの情報に基づいて、現在のバースト中にまだ出力されていないアドレスを選択する。
一実施形態では、所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に低い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない低い値のアドレスがない場合、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。逆に、別の実施形態では、所与の候補アドレスが現在のバースト出力中にすでに出力されていると決定された場合、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない高い値のアドレスがない場合、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に低い値(候補と比較した場合)のアドレスを選択し得る。
別の実施形態では、所与の候補アドレスが現在のバースト中にすでに出力されていると決定された場合、セレクタ231は、追跡221からの情報、および乱数(例えば、乱数ジェネレータ211から受信された乱数のうち、候補アドレスとして使用されなかった1つ以上のビット)に基づいて、現在のバースト中にまだ出力されていない次に低い値または高い値のアドレスを選択するかどうかを選択し得る。乱数に基づいて次に高い値のアドレスが選択され、まだ出力されていない高い値のアドレスがないとき、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に低い値のアドレス(候補と比較した場合)を選択してもよい。同様に、乱数に基づいて次に低い値のアドレスが選択され、まだ出力されていない低い値のアドレスがないとき、セレクタ231は、追跡221からの情報に基づいて、現在のバースト中にまだ出力されていない次に高い値のアドレス(候補と比較した場合)を選択してもよい。
図3Aおよび3Bは、例示的な固定時間アドレス生成論理を示す。図3Aは、次のアドレスを生成するための例示的な回路を示す。図3Aでは、次のアドレスジェネレータ301は、乱数ジェネレータ(RNG)311、64ビットアドレス追跡レジスタ321(別名、「ATR」または「スコアボード」)、アドレス追跡制御322、64:1マルチプレクサ(MUX)331、12:6 MUX 332、12:6 MUX 333、6ビットラストアドレスレジスタ351、2入力ORゲート352、2入力ANDゲート353、およびINVゲート354を含む。この実施形態では、ATR321は、アドレス0で始まり、アドレス63で終わる「線形」レジスタとして示されていることに留意されたい。他の実施形態では、ATRは、63より上の増分アドレスがアドレス0であり、0より下の増分アドレスが63であるように、「循環」方式で編成することができる。
一実施形態では、アドレスジェネレータ301は、出力される次のアドレスを選択する。例えば、RNG311は、7ビット値RN[6:0]を出力する。下位6ビットのRN[5:0]は、MUX331によって「候補アドレス」として事実上テストされる。候補アドレスに関連付けられたアクセス追跡レジスタ321のビットが空の場合(例えば、6ビットRN[5:0]値に対応する位置で値が「0」である)、その候補アドレスRN[5:0]は、次のアドレスとして出力されるように、MUX332によって選択される。RN[5:0]が出力として提供された後、ATR制御322は、ATR321内の対応する位置を更新する(例えば、0から1に)。加えて、ラストアドレスレジスタ351の値も更新される。この値は、図3Bを参照して本明細書で説明されるリピートアドレスリゾルバ302によって使用される。ATR制御322は、検索/格納トランザクションの開始時に、最初にATR321の内容をリセットする(例えば、すべての位置にすべての「0」を含むように)ことに留意されたい。
RN[5:0]に対応するアクセス追跡レジスタ321のビットが、論理値が「1」であることを示すとき(RN[5:0]の値がすでに使用/出力されていることを意味する)、MUX332は、異なるアドレスを選択する。RN[7]に少なくとも部分的に基づいて、MUX333は、「次の上の」アドレスNA[5:0](すなわち、最後に使用されたレジスタ値LAD[5:0]よりも大きいアドレス値を持つ次の空のアドレス位置)、または「次の下の」アドレスNB[5:0](すなわち、最後に使用されたレジスタ値よりも小さいアドレス値を持つ次の空のアドレス位置)のいずれかを選択する。
ATR321が、上(すなわち、「上に何も残っていない」信号NLAが論理「1」)または下(すなわち、「下に何も残っていない」信号NLBが論理「1」)に未使用の値がないことを示すとき、ORゲート352、ANDゲート353、およびインバータ354によって形成される論理関数は、それぞれ、下の次の値または上の次の値を選択する。言い換えれば、「次の上」のアドレスNA[5:0]が使用されるべきであることをランダムビットRN[7]が示しているが、未使用のままの「次の上」のアドレスがないとき、アドレスジェネレータ301は、「次の下」のアドレスNB[5:0]を出力する。「次の下」のアドレスNB[5:0]が使用されるべきであることをランダムビットRN[7]が示しているが、未使用のままの「次の下」のアドレスがないとき、アドレスジェネレータ301は、「次の上」のアドレスNB[5:0]を出力する。
図3Bは、乱数が示すときに少なくとも1つの未使用のアドレス、およびすでに出力されているアドレスを提供する例示的な回路を示す。図3Bでは、リピートアドレスリゾルバ302は、アドレス追跡レジスタ321(図3Aと同じ要素)、ラストアドレスレジスタ351(図3Aと同じ要素)、6ビット-64ビット温度計デコーダ361、64 2入力NORゲート362、64 2入力NORゲート363、64入力ANDゲート364、64入力NORゲート365、64入力NORゲート366、最下位ビット(LSB)-最上位ビット(MSB)ローテータ371、64ビット-6ビットプライオリティエンコーダ372、減算器373、および64ビット-6ビットプライオリティエンコーダ372を含む。
最後に使用されたアドレス値LAD[5:0]は、デコーダ361によって64ビット温度計コード値に再コード化される。例えば、LAD[5:0]値が「13」である場合、得られた64ビット出力は、51個の先行のゼロ(MSBからビット14まで)とそれに続く13個の1(ビット13からLSBまで)を有することになる。この64ビットベクトル(およびその逆)がATR321のビット内に含まれる64ビット値とNORされると、得られたベクトルを使用して「次の上」のNA[5:0]および「次の下」のNB[5:0]値を決定することができる。
デコーダ361によって出力された64ビットの温度計コード化値は、NORゲート362によって、アクセス追跡レジスタ321からの対応するビット値とNORされる。NORゲート362の出力の順序は、LSB-to-MSB回転371によって順序的に逆にした。LSB-to-MSB回転371の出力は、プライオリティエンコーダ372に入力される。プライオリティエンコーダ372の出力は、「次の上」のアドレスが63からのアドレスステップ数(すなわち、可能な最大アドレス値NA[5:0]=111111b)を示す。プライオリティエンコーダ372の出力は、減算器373によって63から減算されて、次の上のアドレスNA[5:0]が生成される。すべてのNORゲート362の出力がゼロである場合、それは、最後に使用された値LAD[5:0]の上に未使用のアドレスがないことを示す。これを検出するために、64入力NORゲート365は、NORゲート362の出力を受信して、「上に何も残っていない」(NLA)信号を決定する。いくつかの実施形態では、NORゲート365は、例えば、NORゲート、ORゲートなど、ゲートのいくつかのステージとして実装され得る。
デコーダ361によって出力された反転された温度計値は、NORゲート363によって、アクセス追跡レジスタ321からの対応するビット値とNORされる。NORゲート363の出力は、「次の下」のアドレスNB[5:0]を決定するためにプライオリティエンコーダ372に入力される。すべてのNORゲート363の出力がゼロである場合、それは、最後に使用された値LAD[5:0]の下に未使用のアドレスがないことを示す。これを検出するために、64入力NORゲート366は、NORゲート363の出力を受信して、「下に何も残っていない」(NLB)信号を決定する。図3Aに示されるように、「次の上」のNA[5:0]、「次の下」のNB[5:0]、「上に何も残っていない」NLA、および「下に何も残っていない」値/信号が、アドレスジェネレータ301に提供される。最後に、完了を検出するために(すなわち、範囲内のすべてのアドレス値が出力されたこと)、ANDゲート354は、すべてのATR値が論理「1」であるときを検出し、結果として「完了」信号をアサートする。
図4は、ランダム化された順序でデータにアクセスするシステムを示す。図4では、データアクセスシステム400は、アドレスジェネレータ435、不揮発性メモリアービタ/コントローラ480、不揮発性メモリ486、およびデータリクエスタ482を含む。アドレスジェネレータ435は、アドレス追跡レジスタ421、乱数ジェネレータ411、およびアドレスセレクタ431を含む。アドレスジェネレータは、不揮発性メモリアービタ480に動作可能に結合されている。データリクエスタは、不揮発性メモリアービタ480に動作可能に結合されている。不揮発性メモリアービタ480は、少なくともアドレスバス492および読み取りデータバス491を介して不揮発性メモリ486に動作可能に結合されている。アドレスジェネレータ435は、アドレス生成システム100、アドレス生成システム200、および/またはアドレス生成システム301、302であり得るか、またはそれらを含み得る。
例示的な動作では、データリクエスタ482(例えば、セキュリティプロセッサおよび/またはセキュリティコアなど)は、不揮発性メモリアービタ480に要求を発行して、不揮発性メモリ486内に格納された秘密データ値のブロックを配信する。この例では、秘密データは、64のアドレス位置に分散されている(例えば、256ビットの秘密キー値は4ビットデータの64ニブルとして格納される)。NVMアービタ480回路は、アドレスジェネレータ435を使用して、ランダムに生成された順序で64個の一意のアドレスを提供する。NVMアービタ480は、秘密データを読み取るために、アドレスバス492を介してランダムに生成された順序で一意のアドレスをアドレスNVMメモリ486に送信する。データは、読み取りデータバス491を介して、NVMメモリ486とNVMアービタ480との間で転送される。したがって、一意のアドレスはランダムに生成された順序で送信されるため、秘密データを学習しようとする攻撃者は、データバス491の監視に加えて、アドレスバス492を監視する必要がある。
本明細書で説明するように、アドレスジェネレータ435は、乱数ジェネレータ411と「スコアボード」アドレス追跡レジスタ421の両方を使用する。この例では、ATR421は、すでに使用されている/まだ使用されていないアドレスに対応する64個の1ビット値を保持する。
図5は、アドレスを生成する方法を示すフローチャートである。図5に示されるステップは、アドレス生成システム100、アドレス生成システム200、および/またはアドレス生成システム301、302、システム400、および/またはそれらの構成要素のうちの1つ以上によって実行され得る。ランダムに生成された数に少なくとも部分的に基づいて、第1の候補アドレスが、アクセスアドレスのセットから選択される(502)。例えば、64バイト(またはワード、またはニブルなど)からなるデータのブロックを検索/格納するために、乱数ジェネレータ211は、0~63の範囲の候補アドレスを出力するように構成され得る。
現在のブロックを検索/格納するために必要なアクセスの一部として、第1の候補アドレスがすでに出力されているかどうかが決定される(504)。例えば、アドレス追跡221から受信された情報に基づいて、セレクタ231は、ランダムに生成された候補アドレスが、現在のブロックの検索/格納の一部としてすでに出力されているかどうかを決定する。現在のブロックの検索/格納の一部として第1のアドレスが以前に出力されていない場合、第1のアドレスが出力される(506)。例えば、現在のブロックの検索/格納中に候補アドレスがまだ出力されていないと決定された場合、セレクタ231は、乱数ジェネレータ211によって提供される候補アドレスを選択して出力する。
現在のブロックの検索/格納に必要なアクセスの一部として第1のアドレスがすでに出力されている場合、現在のブロックの検索/格納中に以前に使用されていない第2のアドレスが選択され、第2のアドレスが出力される(508)。例えば、現在のブロックの検索/格納中に候補アドレスがすでに出力されていると決定された場合、セレクタ231は、少なくとも追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていないアドレスを選択する。
例えば、現在のブロックの検索/格納中に候補アドレスがすでに出力されていると決定されたとき、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にすでに出力されている次に低い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない低い値のアドレスがない場合、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。
別の例では、現在のブロックの検索/格納中に候補アドレスがすでに出力されていると決定されたとき、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていない次に高い値(候補と比較した場合)のアドレスを選択し得る。まだ出力されていない高い値のアドレスがない場合、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていない次に低い値(候補と比較した場合)のアドレスを選択し得る。
別の例では、現在のブロックの検索/格納中に候補アドレスがすでに出力されていると決定されると、セレクタ231は、追跡221からの情報、および乱数(例えば、乱数ジェネレータ211から受信された乱数のうちの1つ以上の非候補アドレスビット)に基づいて、現在のブロックの検索/格納中にまだ出力されていない、次に低いまたは次に高い値のアドレスを選択するかを選択し得る。乱数に基づいて次に高い値のアドレスが選択され、まだ出力されていない高い値のアドレスがないとき、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていない次に低い値のアドレス(候補と比較した場合)を選択してもよい。同様に、乱数に基づいて次に低い値のアドレスが選択され、まだ出力されていない低い値のアドレスがないとき、セレクタ231は、追跡221からの情報に基づいて、現在のブロックの検索/格納中にまだ出力されていない次に高い値のアドレス(候補と比較した場合)を選択してもよい。
図6は、アドレスを選択する方法を示すフローチャートである。図6に示されるステップは、アドレス生成システム100、アドレス生成システム200、および/またはアドレス生成システム301、302、システム400、および/またはそれらの構成要素のうちの1つ以上によって実行され得る。インジケータのセットは、アクセスアドレスのセットのそれぞれに対応して維持される(602)。例えば、アドレス追跡221は、データのブロックの検索/格納中に対応するアドレスがすでに出力されているかどうかをその出力が示すレジスタ(または複数のレジスタ)を維持し得る。
インジケータのセットのそれぞれに対応するアドレスが出力されたとき、インジケータのセットのうちの1つが変更される(604)。例えば、アドレス追跡221は、対応するアドレスがすでに出力されているかどうかをその出力が示すレジスタ(または複数のレジスタ)の出力を変更しながら、対応するアドレスが出力されると、データのブロックの検索/格納が変更され得る。
アドレスは、インジケータのセットに少なくとも部分的に基づいて選択される(606)。例えば、リピートアドレスが発生すると、セレクタ231は、アドレス追跡221からの情報を使用して、この発生を検出し得る。次に、セレクタ231は、この再度発生するアドレスが出力されるのを防ぎ、(追跡221からの情報にも基づいて)まだ出力されていない出力される新しいアドレスを選択し得る。このように、データのブロックへのアクセスパターンは、データにアクセスするたびに異なるが、ブロック全体にアクセスするために必要な時間は一定である。
上記の方法、システム、およびデバイスは、コンピュータシステムに実装することも、コンピュータシステムによって格納することもできる。上記の方法は、非一時的コンピュータ可読媒体に格納されてもよい。本明細書に記載のデバイス、回路、およびシステムは、当技術分野で利用可能なコンピュータ支援設計ツールを使用して実装され、このような回路のソフトウェア記述を含むコンピュータ可読ファイルによって具体化され得る。これには、アドレス生成システム100、アドレス生成システム200、および/またはアドレス生成システム301、302、システム400、およびそれらの構成要素のうちの1つ以上の要素が含まれるが、これらに限定されない。これらのソフトウェアの記述は、挙動、レジスタ転送、論理構成要素、トランジスタ、およびレイアウトジオメトリレベルの記述であり得る。さらに、ソフトウェアの記述は、記憶媒体に格納されるか、または搬送波によって通信され得る。
このような記述が実装され得るデータ形式には、Cなどの挙動言語をサポートする形式、VerilogおよびVHDLなどのレジスタ転送レベル(RTL)言語をサポートする形式、ジオメトリ記述言語をサポートする形式(GDSII、GDSIII、GDSIV、CIF、およびMEBESなど)、ならびに他の適切な形式および言語が含まれるが、これらに限定されない。さらに、機械可読媒体上のこのようなファイルのデータ転送は、インターネット上の多様な媒体を介して、または、例えば、電子メールを介して電子的に行われ得る。物理ファイルは、4mm磁気テープ、8mm磁気テープ、3-1/2インチフロッピー媒体、CD、DVDなどの機械可読媒体に実装され得ることに留意されたい。
図7は、回路構成要素720の表現を含む、処理する、または生成するための処理システム700の一実施形態を示すブロック図である。処理システム700は、1つ以上のプロセッサ702、メモリ704、および1つ以上の通信デバイス706を含む。プロセッサ702、メモリ704、および通信デバイス706は、有線および/または無線接続708の任意の適切なタイプ、数、および/または構成を使用して通信する。
プロセッサ702は、メモリ704に格納された1つ以上のプロセス712の命令を実行して、ユーザ入力714およびパラメータ716に応答して回路構成要素720を処理および/または生成する。プロセス712は、電子回路を設計、シミュレート、分析、および/または検証するため、および/または電子回路用のフォトマスクを生成するために使用される任意の適切な電子設計自動化(EDA)ツールまたはその一部であり得る。表現720は、図に示されるように、アドレス生成システム100、アドレス生成システム200、および/またはアドレス生成システム301、302、システム400およびそれらの構成要素の全部または一部を記述するデータを含む。
表現720は、挙動、レジスタ転送、論理構成要素、トランジスタ、およびレイアウトジオメトリレベルの記述のうちの1つ以上を含み得る。さらに、表現720は、記憶媒体に格納されるか、または搬送波によって通信され得る。
表現720が実装され得るデータ形式には、Cなどの挙動言語をサポートする形式、VerilogおよびVHDLなどのレジスタ転送レベル(RTL)言語をサポートする形式、ジオメトリ記述言語をサポートする形式(GDSII、GDSIII、GDSIV、CIF、およびMEBESなど)、ならびに他の適切な形式および言語が含まれるが、これらに限定されない。さらに、機械可読媒体上のこのようなファイルのデータ転送は、インターネット上の多様な媒体を介して、または、例えば、電子メールを介して電子的に行われ得る。
ユーザ入力714は、キーボード、マウス、音声認識インターフェース、マイクロフォンおよびスピーカー、グラフィックディスプレイ、タッチスクリーン、または他のタイプのユーザインターフェースデバイスからの入力パラメータを含み得る。このユーザインターフェイスは、複数のインターフェイスデバイスに分散されてもよい。パラメータ716は、表現720を定義するのを助けるために入力される仕様および/または特性を含み得る。例えば、パラメータ716は、デバイスタイプ(例えば、NFET、PFETなど)、トポロジー(例えば、ブロック図、回路記述、概略図など)、および/またはデバイス記述(例えば、デバイス特性、デバイスの寸法、電源電圧、シミュレーション温度、シミュレーションモデルなど)を定義する情報を含み得る。
メモリ704は、プロセス712、ユーザ入力714、パラメータ716、および回路構成要素720を格納する非一時的コンピュータ可読記憶媒体の任意の適切なタイプ、数、および/または構成を含む。
通信デバイス706は、処理システム700から別の処理または記憶システム(図示せず)に情報を送信し、および/または別の処理または記憶システム(図示せず)から情報を受信する、任意の適切なタイプ、数、および/または構成の有線および/または無線デバイスを含む。例えば、通信デバイス706は、回路構成要素720を別のシステムに送信し得る。通信デバイス706は、プロセス712、ユーザ入力714、パラメータ716、および/または回路構成要素720を受信し、プロセス712、ユーザ入力714、パラメータ716、および/または回路構成要素720をメモリ704に格納させることができる。
本明細書で論じられる実装には、以下の例が含まれるが、これらに限定されない。
例1:アドレス生成回路であって、アドレスのセットから候補アドレスをランダムに選択するための候補アドレスジェネレータと、アドレスのセットからのアドレスのすべてが出力される前に、候補アドレスが少なくとも一度はすでに出力されているかどうかを決定するためのリピートアドレス検出器と、候補アドレスがまだ少なくとも一度も出力されていない場合、候補アドレスを出力し、候補アドレスがすでに少なくとも一度出力されている場合、アドレスのセットから選択して、まだ少なくとも一度も出力されていない異なるアドレスを出力する出力セレクタと、を含む、アドレス生成回路。
例2アドレスのセットのそれぞれに対応するインジケータのセットであって、アドレスのセットのそれぞれがすでに少なくとも一度出力されているかどうかに対応するインジケータのセットをさらに含む、例1のアドレス生成回路。
例3:アドレスが出力されたとき、インジケータのセットの対応する1つの値を変更するインジケータアップデータをさらに含む、例2のアドレス生成回路。
例4:異なるアドレスは、インジケータのセットに少なくとも部分的に基づいて選択される、例2のアドレス生成回路。
例5:候補アドレスは、乱数ジェネレータからの値に基づいて選択される、例1のアドレス生成回路。
例6:異なるアドレスは、乱数ジェネレータからの値に少なくとも部分的に基づいて選択される、例5のアドレス生成回路。
例7候補アドレスは、不揮発性メモリをアドレス指定するために使用される、例1のアドレス生成回路。
例8:アクセスアドレスのセットを出力する方法であって、ランダムに生成された数に少なくとも部分的に基づいて、アクセスアドレスのセットから第1のアドレスを選択することと、アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、第1のアドレスが出力されたかどうかを決定することと、アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、第1のアドレスがまだ出力されていない場合、第1のアドレスを出力することと、アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、第1のアドレスがすでに出力されている場合、アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、まだ出力されていない第2のアドレスを選択し、第2のアドレスを出力することと、を含む、方法。
例9:アクセスアドレスのセットのそれぞれに各々対応するインジケータのセットを維持することであり、インジケータのセットは、アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、アクセスアドレスのセットのそれぞれが出力されたかどうかに関連付けられている、維持することをさらに含む、例8の方法。
例1:インジケータのセットのうちの1つに対応するアドレスが出力されたとき、インジケータのセットのうちの1つの値を変更することをさらに含む、例8の方法。
例11:第2のアドレスは、インジケータのセットに少なくとも部分的に基づいて選択される、例8の方法。
例12:第1のアドレスは、乱数ジェネレータからの少なくとも1つの値に基づいて選択される、例8の方法。
例13:異なるアドレスは、乱数ジェネレータからの値に少なくとも部分的に基づいて選択される、例12の方法。
例14:第2のアドレスは、不揮発性メモリをアドレス指定するために使用される、例8の方法。
例15:N個のアクセスアドレスのセットによってアドレス指定された機密データを格納するためのメモリであって、Nは、4より大きい、メモリと、N個のアクセスアドレスのすべてがメモリのアドレス指定に使用されるまで、N個のアクセスアドレスのセットのうちの1つをランダムかつ非反復的に選択するためのアドレスジェネレータと、を含むメモリシステム。
例16:アドレスジェネレータは、N個のアクセスアドレスのセットから第1のアドレスをランダムに選択するためのものである、例15のメモリシステム。
例17:アドレスジェネレータは、第1のアドレスがメモリをアドレス指定するために使用されたかどうかを決定するためのものである、例16のメモリシステム。
例18:メモリシステムは、第1のアドレスがメモリをアドレス指定するために使用されていない場合、第1のアドレスに少なくとも部分的に基づいてメモリをアドレス指定するためのものである、例17のメモリシステム。
例19:メモリシステムは、第1のアドレスがメモリをアドレス指定するために使用された場合、第2のアドレスに少なくとも部分的に基づいてメモリをアドレス指定するためのものである、例18のメモリシステム。
例20:メモリシステムは、メモリをアドレス指定するために使用されていないN個のアクセスアドレスのセットのサブセットから第2のアドレスを選択するためのものである、例18のメモリシステム。
本発明の上記の説明は、例示および説明の目的で提示された。網羅的であること、または本発明を開示された正確な形態に限定することを意図するものではなく、上記の教示に照らして他の修正および変形が可能であり得る。実装形態は、本発明の原理およびその実際の用途を最もよく説明するために選択され、および記載されており、それにより、当業者は、企図される特定の使用に適した様々な実施形態および修正で本発明を最大限に利用することができる。添付の特許請求の範囲は、先行技術によって制限される場合を除いて、本発明の他の代替の実施形態を含むと解釈されることが意図されている。

Claims (20)

  1. アドレス生成回路であって、
    アドレスのセットから候補アドレスをランダムに選択するための候補アドレスジェネレータと、
    前記アドレスのセットからの前記アドレスのすべてが出力される前に、候補アドレスが少なくとも一度はすでに出力されているかどうかを決定するためのリピートアドレス検出器と、
    前記候補アドレスがまだ少なくとも一度も出力されていない場合、前記候補アドレスを出力し、前記候補アドレスがすでに少なくとも一度出力されている場合、前記アドレスのセットから選択して、まだ少なくとも一度も出力されていない異なるアドレスを出力する出力セレクタと、を含む、アドレス生成回路。
  2. 前記アドレスのセットのそれぞれに対応するインジケータのセットであって、前記アドレスのセットのそれぞれがすでに少なくとも一度出力されているかどうかに対応するインジケータのセットをさらに含む、請求項1に記載のアドレス生成回路。
  3. アドレスが出力されたとき、前記インジケータのセットの対応する1つの値を変更するインジケータアップデータをさらに含む、請求項2に記載のアドレス生成回路。
  4. 前記異なるアドレスは、前記インジケータのセットに少なくとも部分的に基づいて選択される、請求項2に記載のアドレス生成回路。
  5. 前記候補アドレスは、乱数ジェネレータからの値に基づいて選択される、請求項1に記載のアドレス生成回路。
  6. 前記異なるアドレスは、前記乱数ジェネレータからの値に少なくとも部分的に基づいて選択される、請求項5に記載のアドレス生成回路。
  7. 前記候補アドレスは、不揮発性メモリをアドレス指定するために使用される、請求項1に記載のアドレス生成回路。
  8. アクセスアドレスのセットを出力する方法であって、
    ランダムに生成された数に少なくとも部分的に基づいて、前記アクセスアドレスのセットから第1のアドレスを選択することと、
    前記アクセスアドレスのセット内の他のアドレスのすべてが出力される前に、前記第1のアドレスが出力されたかどうかを決定することと、
    前記アクセスアドレスのセット内の前記他のアドレスのすべてが出力される前に、前記第1のアドレスがまだ出力されていない場合、前記第1のアドレスを出力することと、
    前記アクセスアドレスのセット内の前記他のアドレスのすべてが出力される前に、前記第1のアドレスがすでに出力されている場合、前記アクセスアドレスのセット内の前記他のアドレスのすべてが出力される前に、まだ出力されていない第2のアドレスを選択し、前記第2のアドレスを出力することと、を含む、方法。
  9. 前記アクセスアドレスのセットのそれぞれに各々対応するインジケータのセットを維持することであり、前記インジケータのセットは、前記アクセスアドレスのセット内の前記他のアドレスのすべてが出力される前に、前記アクセスアドレスのセットの前記それぞれが出力されたかどうかに関連付けられている、維持することをさらに含む、請求項8に記載の方法。
  10. 前記インジケータのセットのうちの1つに対応するアドレスが出力されたとき、前記インジケータのセットのうちの前記1つの値を変更することをさらに含む、請求項8に記載の方法。
  11. 前記第2のアドレスは、前記インジケータのセットに少なくとも部分的に基づいて選択される、請求項8に記載の方法。
  12. 前記第1のアドレスは、乱数ジェネレータからの少なくとも1つの値に基づいて選択される、請求項8に記載の方法。
  13. 前記異なるアドレスは、前記乱数ジェネレータからの値に少なくとも部分的に基づいて選択される、請求項12に記載の方法。
  14. 前記第2のアドレスは、不揮発性メモリをアドレス指定するために使用される、請求項8に記載の方法。
  15. N個のアクセスアドレスのセットによってアドレス指定された機密データを格納するためのメモリであって、Nは、4より大きい、メモリと、
    前記N個のアクセスアドレスのすべてが前記メモリのアドレス指定に使用されるまで、前記N個のアクセスアドレスのセットのうちの1つをランダムかつ非反復的に選択するためのアドレスジェネレータと、を含むメモリシステム。
  16. 前記アドレスジェネレータは、前記N個のアクセスアドレスのセットから第1のアドレスをランダムに選択するためのものである、請求項15に記載のメモリシステム。
  17. 前記アドレスジェネレータは、前記第1のアドレスが前記メモリをアドレス指定するために使用されたかどうかを決定するためのものである、請求項16に記載のメモリシステム。
  18. 前記メモリシステムは、前記第1のアドレスが前記メモリをアドレス指定するために使用されていない場合、前記第1のアドレスに少なくとも部分的に基づいて前記メモリをアドレス指定するためのものである、請求項17に記載のメモリシステム。
  19. 前記メモリシステムは、前記第1のアドレスが前記メモリをアドレス指定するために使用された場合、第2のアドレスに少なくとも部分的に基づいて前記メモリをアドレス指定するためのものである、請求項18に記載のメモリシステム。
  20. 前記メモリシステムは、前記メモリをアドレス指定するために使用されていない前記N個のアクセスアドレスのセットのサブセットから前記第2のアドレスを選択するためのものである、請求項18に記載のメモリシステム。
JP2022502950A 2019-08-31 2020-08-14 ランダムアクセシング Pending JP2022545859A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962894716P 2019-08-31 2019-08-31
US62/894,716 2019-08-31
PCT/US2020/046356 WO2021041054A1 (en) 2019-08-31 2020-08-14 Random accessing

Publications (1)

Publication Number Publication Date
JP2022545859A true JP2022545859A (ja) 2022-11-01

Family

ID=74684918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502950A Pending JP2022545859A (ja) 2019-08-31 2020-08-14 ランダムアクセシング

Country Status (4)

Country Link
US (1) US11996167B2 (ja)
EP (1) EP4022614A4 (ja)
JP (1) JP2022545859A (ja)
WO (1) WO2021041054A1 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL187046A0 (en) 2007-10-30 2008-02-09 Sandisk Il Ltd Memory randomization for protection against side channel attacks
EP2761471B1 (en) * 2011-09-30 2017-10-25 Intel Corporation Statistical wear leveling for non-volatile system memory
US9448942B2 (en) * 2012-08-20 2016-09-20 Freescale Semiconductor, Inc. Random access of a cache portion using an access module
US9472302B2 (en) 2013-03-07 2016-10-18 Intel Corporation Redundant fuse coding
US9432329B2 (en) 2013-09-13 2016-08-30 Netapp, Inc. Network address assignment with duplication detection
US9916261B2 (en) 2014-05-19 2018-03-13 Infineon Technologies Ag Randomized memory access
US10963810B2 (en) * 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
US10747907B2 (en) * 2014-12-16 2020-08-18 Cryptography Research, Inc. Buffer access for side-channel attack resistance
US9621462B2 (en) 2015-02-03 2017-04-11 Google Inc. Mesh network addressing
JP2019053415A (ja) * 2017-09-13 2019-04-04 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム

Also Published As

Publication number Publication date
EP4022614A4 (en) 2023-08-30
EP4022614A1 (en) 2022-07-06
WO2021041054A1 (en) 2021-03-04
US20220293152A1 (en) 2022-09-15
US11996167B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
US7100097B2 (en) Detection of bit errors in maskable content addressable memories
EP3964967A1 (en) Cache memory and method of using same
US11886717B2 (en) Interface for revision-limited memory
JP5840712B2 (ja) オンダイのプログラム可能なヒューズ
EP1980946B1 (en) Error correction code generation method and memory management device
EP3435586B1 (en) Method to reduce aging of a cache memory
JP6339697B2 (ja) 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム
JPS5926059B2 (ja) 制御回路
US20190107999A1 (en) Random number generating system and random number generating method thereof
JP2022545859A (ja) ランダムアクセシング
US12002532B2 (en) Command/address channel error detection
US11132304B2 (en) Data accessing device and method
JP2004054936A (ja) 内容照合メモリにおけるビットエラーの検出方法および装置
JP4863279B2 (ja) メモリシステム及びメモリアクセス方法
TW201831903A (zh) 記憶體元件
KR20220000815A (ko) Puf 방법 및 구조물
US20240012710A1 (en) Selectable multi-stage error detection and correction
US11681620B2 (en) Using error correction code (ECC) bits for retaining victim cache lines in a cache block in a cache memory
JPWO2005010760A1 (ja) Cam装置およびcam制御方法
JP3260466B2 (ja) メモリ更新方式
JP2001243116A (ja) 書込みのみで最長時間未使用ビットを更新するためのシステム
JP2005107697A (ja) Dramアクセス装置
JPH0561761A (ja) 主記憶制御方式
JPH02217918A (ja) メモリインタフェース回路
JP2011159356A (ja) Cam装置及びそれを備えるトランスレーション・ルックアサイド・バッファ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240515