JP2016042351A - コンピューティングシステムにおける動的なメモリアドレス再マッピング - Google Patents

コンピューティングシステムにおける動的なメモリアドレス再マッピング Download PDF

Info

Publication number
JP2016042351A
JP2016042351A JP2015108535A JP2015108535A JP2016042351A JP 2016042351 A JP2016042351 A JP 2016042351A JP 2015108535 A JP2015108535 A JP 2015108535A JP 2015108535 A JP2015108535 A JP 2015108535A JP 2016042351 A JP2016042351 A JP 2016042351A
Authority
JP
Japan
Prior art keywords
physical address
memory
logical address
data
address
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.)
Granted
Application number
JP2015108535A
Other languages
English (en)
Other versions
JP6739148B2 (ja
Inventor
ラスズロ・ハース
Hars Laszlo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2016042351A publication Critical patent/JP2016042351A/ja
Application granted granted Critical
Publication of JP6739148B2 publication Critical patent/JP6739148B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】本方法は、論理アドレス空間を有するプロセッサと物理アドレス空間を有する外部システムメモリとを含むコンピューティングシステムにおいてセキュリティを提供する。
【解決手段】本方法は、論理アドレス空間へのデータアクセスに応答して論理アドレス空間を物理アドレス空間に動的に再マッピングするステップを含むメモリアクセスパターンを隠すステップを備える。
【選択図】図1

Description

コンピューティングシステムでは、システムメモリへのトラフィックが、メモリアクセスパターンを観察するために分析され得る。これらのメモリアクセスパターンから機密情報が推論され得る。
イベントカウンタの箇所が、イベントに応答してアドレスに新たなデータを書き込むことから推論され得る。隣接フィールドは、既知の値(例えば、先行ゼロ)を有し得る。推論されたこの情報は、鍵探索攻撃または電力解析攻撃といった暗号解読攻撃のために使用され得る。
頻繁で定期的なアップデートは、ループカウンタを示し得る。随時のジャンプおよびループを伴うシーケンシャルメモリアクセスは、プログラムコードを示し得る。ある特定のアクセスパターンは、行列計算、画像処理、データベースハンドリング、等を明かし得る。推論されたこの情報は、攻撃のための重要なターゲットの箇所を与え得る。
メモリアクセスパターンはまた、ソフトウェアにおいて実行されるアルゴリズム、ソフトウェアの機能、またはソフトウェアの単なるバージョンを識別するために分析され得る。推論されたこの情報は、ソフトウェアにおける既知の欠陥が利用されることを可能にし得る。
本明細書における実施形態によると、方法は、論理アドレス空間を有するプロセッサと物理アドレス空間を有する外部システムメモリとを含むコンピューティングシステムにおいてセキュリティを提供する。方法は、論理アドレス空間へのデータアクセスに応答して論理アドレス空間を物理アドレス空間に動的に再マッピングするステップを含むメモリアクセスパターンを隠すステップを備える。
本明細書における別の実施形態によると、コンピューティングシステムは、論理アドレス空間を有するプロセッサと、物理アドレス空間を有する外部システムメモリと、外部システムメモリに関するメモリアクセスパターンを隠すためのメモリコントローラーとを備える。メモリアクセスパターンを隠すことは、論理アドレス空間へのデータアクセスに応答して論理アドレス空間を物理アドレス空間に動的に再マッピングすることを含む。
本明細書における別の実施形態によると、コンピューティングシステムのためのメモリコントローラーは、コンピューティングシステムの外部システムメモリに関するメモリアクセスパターンを隠すように構成された専用プロセッサを備える。メモリアクセスパターンを隠すことは、論理アドレス空間へのデータアクセスに応答して論理アドレスを外部システムメモリの第1の物理アドレスから外部システムメモリの第2の物理アドレスに再マッピングすることと、データを第2の物理アドレスでの記憶のために外部システムメモリに送信することとを含む。
さらに、本開示は、以下の条項に係る実施形態を備える。
条項1.論理アドレス空間を有するプロセッサと物理アドレス空間を有する外部システムメモリとを含むコンピューティングシステムにおいてセキュリティを提供する方法であって、前記論理アドレス空間へのデータアクセスに応答して前記論理アドレス空間を前記物理アドレス空間に動的に再マッピングするステップを含むメモリアクセスパターンを隠すステップを備える、方法。
条項2.前記外部システムメモリは、使用中の現在のプログラムとデータとを保持し、攻撃者にとってアクセス可能なデータパスにわたって前記プロセッサと通信する、条項1に記載の方法。
条項3.前記再マッピングするステップは、前記論理アドレス空間への各々のあらゆるデータアクセス時に実行される、条項1に記載の方法。
条項4.各々の再マッピングするステップが、論理アドレスを第1の物理アドレスから第2の物理アドレスに再マッピングするステップを含み、前記メモリアクセスパターンを隠すステップはさらに、前記第2の物理アドレスにデータを記憶するステップを含む、条項1に記載の方法。
条項5.論理アドレスでの各々の読み出し動作のために、データが前記外部システムメモリにおける第1の物理アドレスから読み出され、前記論理アドレスが前記第1の物理アドレスから第2の物理アドレスに再マッピングされ、前記データは前記第1の物理アドレスから前記第2の物理アドレスに移動させられるが、前記論理アドレスは変更されない、条項1に記載の方法。
条項6.論理アドレスへの各々の書き込み動作のために、前記論理アドレスが第1の物理アドレスから第2の物理アドレスに再マッピングされ、データが前記第2の物理アドレスに記憶されるが、前記論理アドレスは変更されない、条項1に記載の方法。
条項7.各々の書き込み動作がダミーの読み出し動作によって先行され、データが前記第1の物理アドレスから読み出されるが影響を及ぼされることはない、条項6に記載の方法。
条項8.前記物理アドレス空間が前記論理アドレス空間よりも少なくとも1物理アドレス分大きいがゆえに、少なくとも1つの物理アドレスがマッピングされず、第1のデータ構造は、論理アドレスにマッピングされた物理アドレスのためのエントリ値を含み、第2のデータ構造は、マッピングされていない各々の物理アドレスのためのエントリ値を含み、前記第1のデータ構造においてインデックスされたエントリ値が、前記第2のデータ構造から選択されたエントリ値によって置き換えられる、条項1に記載の方法。
条項9.置き換えられた各々のエントリ値が前記第2のデータ構造に追加される、条項8に記載の方法。
条項10.前記第2のデータ構造における各々のエントリ値は、ランダムにまたは擬似ランダムに選択される、条項8に記載の方法。
条項11.各々のエントリ値は、前記外部システムメモリの保護されたウィンドウの対応する先頭アドレスからのオフセットである、条項8に記載の方法。
条項12.論理アドレス空間を有するプロセッサと、物理アドレス空間を有する外部システムメモリと、前記外部システムメモリに関するメモリアクセスパターンを隠すためのメモリコントローラーと、を備えるコンピューティングシステムであって、前記メモリアクセスパターンを隠すことは、前記論理アドレス空間へのデータアクセスに応答して前記論理アドレス空間を前記物理アドレス空間に動的に再マッピングすることを含む、コンピューティングシステム。
条項13.前記プロセッサおよび前記メモリコントローラーは、中央処理装置のチップ上にある、条項12に記載のコンピューティングシステム。
条項14.前記コンピューティングシステムは、前記メモリコントローラーを実装するハードウェア層と仮想マシンソフトウェアとを有する仮想マシンである、条項12に記載のコンピューティングシステム。
条項15.前記コンピューティングシステムは、前記外部システムメモリと通信する回路を含むシステムオンチップであり、前記回路は、前記メモリアドレス再マッピングを動的に実行するように構成される、条項12に記載のコンピューティングシステム。
条項16.前記回路はセキュアメモリトランザクションユニットである、条項15に記載のコンピューティングシステム。
条項17.前記メモリコントローラーは、論理アドレスへの各々のあらゆるデータアクセス時に前記再マッピングを実行するように構成される、条項12に記載のコンピューティングシステム。
条項18.前記メモリコントローラーは、論理アドレスを第1の物理アドレスから第2の物理アドレスに再マッピングし、前記第2の物理アドレスにデータを記憶するように構成される、条項12に記載のコンピューティングシステム。
条項19.前記物理アドレス空間が前記論理アドレス空間よりも少なくとも1物理アドレス分大きいがゆえに、少なくとも1つの物理アドレスがマッピングされず、論理アドレスへのデータアクセスが行われる際、前記論理アドレスはすでに第1のオフセットによって第1の物理アドレスにマッピングされており、前記メモリコントローラーは、マッピングされていない第2の物理アドレスへの第2のオフセットを選択し、前記第1のオフセットを前記第2のオフセットと置き換えるように構成される、条項12に記載のコンピューティングシステム。
条項20.外部システムメモリを含むコンピューティングシステムのためのメモリコントローラーであって、前記メモリコントローラーは、前記外部システムメモリに関するメモリアクセスパターンを隠すように構成された専用プロセッサを備え、前記メモリアクセスパターンを隠すことは、前記論理アドレス空間へのデータアクセスに応答して論理アドレスを前記外部システムメモリの第1の物理アドレスから前記外部システムメモリの第2の物理アドレスに再マッピングすることと、データを前記第2の物理アドレスでの記憶のために前記外部システムメモリに送信することとを含む、メモリコントローラー。
これらの特徴および機能は、さまざまな実施形態において独立して達成されることも、他の実施形態と組み合わせられることもできる。実施形態のさらなる詳細が、以下の説明および図面を参照して理解され得る。
外部システムメモリへのトラフィックの分析を妨害するコンピューティングシステムの説明図である。 論理アドレスへの書き込み動作を不明瞭にする方法の説明図である。 論理アドレスへの読み出し動作を不明瞭にする方法の説明図である。 論理アドレスへの書き込み動作を不明瞭にする別の方法の説明図である。 論理アドレス空間を物理アドレス空間に再マッピングするためのデータ構造の説明図である。 図3のデータ構造を使用して再マッピングを実行する方法の説明図である。 外部システムメモリへのトラフィックの分析を妨害するコンピューティングシステムの異なる例の説明図である。 外部システムメモリへのトラフィックの分析を妨害するコンピューティングシステムの異なる例の説明図である。 外部システムメモリへのトラフィックの分析を妨害するコンピューティングシステムの異なる例の説明図である。
図1を参照すると、図1は、プロセッサ120を含むコンピューティングシステム110を示す。プロセッサ120の例は、中央処理装置、ダイレクトメモリアクセス(「DMA」)エンジンまたは他の埋め込みプロセッサ、および特定用途向け集積回路(「ASIC」)を含むが、これに限定されない。
コンピューティングシステムはさらに、外部システムメモリ130を含み、外部システムメモリ130は、データパス140を介してプロセッサ120と通信する。本明細書において使用される場合、「システムメモリ」は、コンピューティングシステム110が使用中の現在のプログラムおよびデータを保持するメモリのことを言う。システムメモリの例は、ダイナミックランダムアクセスメモリ(「DRAM」)のような揮発性システムメモリおよび磁気ランダムアクセスメモリ(「MRAM」)のような不揮発性システムメモリを含む。システムメモリは、ハードドライブおよびフラッシュメモリのような記憶デバイスを含まない。
システムメモリは、データパス140上のトラフィックが攻撃者によってアクセスおよび観察され得る場合、「外部」であるとみなされる。本明細書において使用される場合、「トラフィック」は、プロセッサ120と外部システムメモリ130との間の通信情報のことを言う。この通信情報は、読み出し/書き込み信号、メモリアドレス、タイミング情報、外部システムメモリ130から読み出され、外部システムメモリ130に書き込まれるデータを含むが、これに限定されない。システムメモリはまた、プロセッサキャッシュおよびレジスタを含み得る。しかしながら、プロセッサキャッシュおよびレジスタは、それらが攻撃者によってアクセスされることができない場合、外部であるとみなされない。
外部システムメモリ130は、保護されたウィンドウ132にデータを記憶する。保護されたウィンドウ132に記憶されたデータは、トラフィック分析から保護される。本明細書において使用される場合、「保護されたウィンドウ」は、外部システムメモリ130における単一のメモリアドレスまたは連続したアドレスの範囲のことを言う。いくつかの例において、保護されたデータは、単一の保護されたウィンドウ132に記憶されることができ、単一の保護されたウィンドウ132は、外部システムメモリ130の部分または外部システムメモリ130の全部をカバーし得る。他の例において、保護されたデータは、複数の保護されたウィンドウ132に記憶されることができ、複数の保護されたウィンドウ132は、外部システムメモリ130の部分または外部システムメモリ130の全部をカバーし得る。各々の保護されたウィンドウ132に記憶されたデータは、他の手段(例えば、暗号化および/またはデータ認証タグ)によって保護される場合もされない場合もある。
物理アドレス空間は、外部システムメモリ130がデータの箇所を参照するために利用する物理アドレスの範囲のセットである。物理アドレス空間はまた、外部システムメモリ130以外のメモリのためのアドレスを含み得る。
論理アドレス空間は、プロセッサ120がデータの箇所を参照するために利用する論理アドレスの範囲のセットである。例えば、コンピュータプログラムは、論理アドレスによってのみ機能する。
コンピューティングシステム110はさらに、メモリコントローラー150を含み、メモリコントローラー150は、外部システムメモリ130へのおよび外部システムメモリ130からのデータのフローを管理する。データフローの管理の一部として、メモリコントローラー150は、論理アドレス空間を外部システムメモリ130の物理アドレス空間にマッピングおよび動的に再マッピングするように構成される。メモリコントローラー150はまた、論理アドレスを物理アドレスに翻訳する。すなわち、メモリコントローラー150は、プロセッサ120から論理アドレスを受信し、対応する(マッピングされた)物理アドレスを外部システムメモリ130に送信する。
図1において、メモリコントローラー150は、それがコンピューティングシステム110のプロセッシングサイドまたはコンピューティングシステム110のメモリサイドのいずれかに実装され得ることを意味するために破線で示されている。プロセッシングサイドの実装の例として、メモリコントローラー150は、プロセッサ120のチップ上に配置され得るか、またはそれは、オペレーティングシステムの一部であり得る。メモリサイドの実装の例として、メモリコントローラー150は、外部システムメモリ130の基板上、またはマザーボードもしくは他のプリント回路基板上に配置され得る。好ましくは、メモリコントローラー150は、(例えば、同一チップ上で、保護されたマルチチップモジュールとして、ファームウェアにおいて)プロセッサ120と統合され、それは攻撃者にとってアクセス可能でない。メモリコントローラー150がプロセッサ120と統合されない場合、プロセッサ120との通信線は、攻撃者によるアクセスから保護される。
データパス140上のトラフィックの観察および分析は、メモリアクセスパターンを明かし得る。これが今度は攻撃者に、保護されたウィンドウ132におけるデータについて、およびプロセッサ120のアクションについて、洞察を得ることを可能にさせ得る。
メモリコントローラー150は、メモリアクセスパターンを不明瞭にすることによってそのようなトラフィック分析を妨害するように構成される。不明瞭化は、プロセッサ120の論理アドレス空間を外部システムメモリ130の物理アドレス空間に動的に再マッピングすることを含む。再マッピングは、論理アドレス空間へのデータアクセス時に実行される。例えば、再マッピングは論理アドレスへの読み出しまたは書き込み時に実行され得る。
不明瞭化はさらに、再マッピング後に外部システムメモリ130にデータを記憶することを含む。例えば、論理アドレスが第1の物理アドレスから第2の物理アドレスに再マッピングされた後、データが第2の物理アドレスに記憶される。
トラフィック分析からの最大の保護のために、再マッピングは、論理アドレス空間への各々のあらゆるデータアクセス時に実行され得る。しかしながら、再マッピングは、さほど頻繁に実行されなくてもよい。いずれにせよ、再マッピングは動的である。例えば、再マッピングは、プログラムの実行中に繰り返し実行される。
再マッピングは、論理アドレス空間全体(すなわち、あらゆる論理アドレス)を再マッピングすることを含まなくてもよい。むしろ、再マッピングは、保護のために指定された論理アドレスのみ、ことによると論理アドレス空間の追加のサブセットを含み得る。
図2Aは、論理アドレスへの書き込み動作の不明瞭化の例を示す。ブロック200で、書き込みイベントが開始される。書き込みイベントは、プロセッサ120、DMAエンジン、I/O、またはコンピューティングシステム110の他の能動コンポーネントによって開始され得る。
ブロック205で、論理アドレス、書き込みフラグ、およびデータが、書き込みコマンドの一部としてメモリコントローラー150に送信される。この時点で、論理アドレスは、外部システムメモリ130における第1の物理アドレスにマッピングされている。
ブロック210で、論理アドレスが再マッピングされる。マッピングされていない第2の物理アドレスが識別され、論理アドレスが、その第2の物理アドレスに再マッピングされる。
ブロック215で、メモリコントローラー150が論理アドレスを第2の物理アドレスに翻訳する。ブロック220で、データが外部システムメモリ130における第2の物理アドレスに記憶されるが、論理アドレスは変更されない。
図2Bは、論理アドレスへの読み出し動作の不明瞭化の例を示す。ブロック230で、読み出しイベントが開始される。ブロック235で、論理アドレスおよび読み出しフラグがメモリコントローラー150に送信される。ブロック240で、メモリコントローラー150が、論理アドレスを第1の物理アドレスに翻訳し、外部システムメモリ130が、その第1の物理アドレスにおけるデータをメモリコントローラー150に送信する。
ブロック245で、論理アドレスが再マッピングされる。マッピングされていない第2の物理アドレスが識別され、論理アドレスが、その第2の物理アドレスに再マッピングされる。
ブロック250で、データが第1の物理アドレスから第2の物理アドレスに移動させられる。かくして、データが外部システムメモリ130から読み出された後、データは外部システムメモリ130における新たな箇所に移動させられるが、論理アドレスは変更されない。
いくつかの構成において、ブロック245およびブロック250における動作は、プロセッサ120によって発行された読み出しコマンドの実行後にメモリコントローラー150によって自動で実行され得る。他の構成では、プロセッサ120が読み出しコマンドの後に書き込みコマンドを発行することにより、読み出しコマンドがメモリコントローラー150に、ブロック235およびブロック240における機能を実行させ、書き込みコマンドがメモリコントローラー150に、ブロック245およびブロック250における機能を実行させる。
図2Cは、書き込み動作を不明瞭にする別の方法を示す。書き込み動作はさらに、それが1つ以上のダミーの読み出し動作によって自動で先行されるようにすることにより、不明瞭にされ得る。ブロック260で、書き込みイベントが開始される。ブロック265で、ダミーの読み出し動作が実行される。論理アドレスおよびダミーの読み出しフラグがメモリコントローラー150に送信され、メモリコントローラー150が、論理アドレスを第1の物理アドレスに翻訳し、その第1の物理アドレスで外部システムメモリ130からデータを検索する。動作はダミーの読み出し動作であるので、データは、検索されたデータの完全性および真正性をメモリコントローラー150がチェックし得ることを除き、影響を及ぼされない。
ダミーの読み出し動作の後に書き込み動作が続く。ブロック270で、論理アドレスが第2の物理アドレスに再マッピングされる。ブロック275で、新たなデータが第2の物理アドレスに書き込まれる。追加のダミーの読み出し動作が実行される場合、各々のダミーの読み出し動作(ブロック265)の後に、再マッピング(ブロック270)および新たなデータの書き込み(ブロック275)が続き得る。
これらの不明瞭化において、物理アドレスは変わるが、論理アドレスは変わらない。同一の論理アドレスへの書き込みは、データが外部システムメモリ130における異なる物理アドレスに書き込まれるようにするであろう。このように、メモリアドレス再マッピングは、メモリアクセスパターンを不明瞭にするために使用される。
ここでは図3および図4を参照する。図3は、論理アドレス空間の物理アドレス空間へのマッピングおよび再マッピングのためのデータ構造の例を示し、図4は、メモリアドレス再マッピングがどのように実行され得るかの例を示す。この例におけるデータ構造は、第1のテーブル310と第2のテーブル320とを含む。第1のテーブル310および第2のテーブル320は、外部システムメモリ130における各々の保護されたウィンドウ132のために提供される。各々の保護されたウィンドウ132は、データを記憶する。データの最小アドレッシング可能単位は、バイト(8ビット)、メモリページ(例えば、64バイト)、暗号テキストブロック(16バイト)、等であり得る。これらの最小アドレッシング可能単位は、「チャンク」と呼ばれる。
各々の第1のテーブル310は、ヘッダ312を含み得、ヘッダ312は、その保護されたウィンドウ132の開始論理アドレスを含む。各々の第1のテーブル310はさらに、保護されたウィンドウ132に存在するチャンクと同数のエントリ314を含み得る。
エントリ314は、論理アドレス(例えば、論理アドレス全体または論理アドレスの部分)によってインデックスされる。例えば、論理アドレスは、ベースAおよびオフセットLを有する。第1のテーブル310は、オフセットLによってインデックスされ得る。オフセットLは、エントリ314を示し、エントリ314の値Pは、物理アドレスが決定されることを可能にする。いくつかの構成において、エントリ314の値は、保護されたウィンドウ132の先頭からの物理アドレスのオフセットを表し得る。他の構成では、エントリ314の値は、絶対物理アドレス、メモリページの先頭からのオフセット、等を表し得る。
第2のテーブル320は、ヘッダ322と、マッピングされていない物理アドレスのためのエントリ値のリスト324とを含む。各々のエントリ値は、その対応する物理アドレスが決定されることを可能にする。物理アドレス空間は、論理アドレス空間よりも少なくとも1物理メモリ箇所分大きい。したがって、少なくとも1つの物理アドレスが常にマッピングされていないであろう。
再マッピング動作は、この第2のテーブル320を利用する。第1のテーブル310および第2のテーブル320がオフセットの値を記憶する例を考える。再マッピング動作の開始時、論理アドレスのオフセットLが、第1のテーブル310におけるオフセットを示す。(斜線で塗りつぶされたパターンを有するボックスによって表された)インデックスされているオフセットは、「第1」のオフセットと呼ばれる。
ブロック410で、マッピングされていない物理アドレスへのオフセットが、第2のテーブル320におけるリスト324から選択される(このアクションは、図3において破線によって表されている)。(細かい斑点で塗りつぶされたパターンを有するボックスによって表された)選択されたオフセットは、「第2」のオフセットと呼ばれる。第2のオフセットは、リスト324からランダムにまたは擬似ランダムに選択され得る。
ブロック420で、第1のテーブル310における第1のオフセットが、第2のオフセットと置き換えられる(このアクションは、図3において一点鎖線によって表されている)。すなわち、論理アドレスによってインデックスされたオフセットが、第2のテーブル320から選択されたオフセットと置き換えられる。
ブロック430で、第1のオフセットが今度は、マッピングされていないアドレスへのオフセットのリスト324に追加される。このアクションは、図3において二点鎖線によって表されている。
再マッピングは、メモリアクセスのレベルで行われる。この低いレベルでは、プログラムの概念は存在しない。
上述されたように、メモリコントローラー150は、さまざまな手法でコンピューティングシステム110に実装され得る。図5、図6、および図7は、3つの例を提供する。
図5は、メモリバス540を介して外部システムメモリ530と通信する中央処理装置(CPU)520を含むコンピューティングシステム510を示す。CPU520は、1つ以上のコア522とメモリ管理ユニット(MMU)524とを含む。メモリ管理ユニット524は、コア522から論理アドレスを受信し、論理アドレスを物理アドレスに翻訳し、物理アドレスがメモリバス540上に置かれる。メモリ管理ユニット524はまた、上述されたように動的なメモリアドレス再マッピングを実行する。メモリ管理ユニット524は、キャッシュ、レジスタ、またはテーブルを実装するための他のプライベートメモリ、およびアドレス翻訳を制御するための論理を含み得る。メモリアドレス再マッピングは、いずれのキャッシングスキームからも独立する。
図6は、ハードウェア層620とソフトウェア層630とを含む仮想マシン610を示す。ソフトウェア層630は、仮想マシンソフトウェア632およびアプリケーションソフトウェア634を含む。仮想マシンソフトウェア632が、アプリケーションソフトウェア634によって使用される論理アドレスを仮想アドレスにマッピングおよび再マッピングするためにハードウェア層620で実行される。仮想アドレスは、仮想マシンソフトウェア632とハードウェア層620との組み合わせによって、またはハードウェア層620におけるメモリ管理ユニットによって、のいずれかで物理アドレスにマッピングされ得る。
図7は、譲受人の米国特許出願公開第2013/0117577号明細書において説明されているシステムオンチップ(SoC)アーキテクチャと同様のSoCアーキテクチャを示す。チップ710は、オフチップの外部システムメモリ700と通信する。チップ710は、マイクロプロセッサ720、揮発性内部メモリ(例えば、EDRAM)730、およびメモリバス740を含む。いくつかの構成は、システムオンチップ(SoC)設計のためのCoreConnect(商標)バスアーキテクチャに従い得、マイクロプロセッサ720はPowerPCコアであり、メモリバス740はプロセッサローカルバス(PLB)である。
チップ710はまた、セキュアメモリトランザクションユニット(「SMTU」)750と呼ばれる専用回路を含む。SMTU750は、マイクロプロセッサ720と直接通信し、それは、メモリバス740を介してブリッジ760と通信する。SMTU750は、第1のメモリコントローラー770を介して外部システムメモリ700と通信し、それは、第2のメモリコントローラー780を介して内部メモリ730と通信する。
SMTU750は、外部システムメモリ700に記憶されたデータを暗号化および認証するための暗号化および認証エンジン752を提供する。鍵材料ストア754と呼ばれる専用メモリは、暗号化および認証のための鍵材料を記憶するために使用される。SMTU750は、マイクロプロセッサ720によってまたはブリッジ760に結合されたユニットによって開始された読み出しおよび書き込み要求を満足させるスレーブユニットとしての役割を果たし得る。
アドレス翻訳および動的なメモリアドレス再マッピングは、SMTU750によって実行され得る。例えば、SMTU750は、外部システムメモリにおける保護されたウィンドウを識別し、それらのウィンドウに記憶されたデータがどのように保護されるかを決定するための、トランザクション制御ユニット756を含み得る。トランザクション制御ユニット756はまた、アドレス翻訳および動的なメモリアドレス再マッピングを実行し得る。再マッピングがテーブルのようなデータ構造を利用する場合、テーブルは、内部メモリ730に記憶され得る。
他の構成において、アドレス翻訳および動的なメモリアドレス再マッピングは、第1のメモリコントローラー770によって実行され得る。さらなる他の構成では、マイクロプロセッサ720がアドレス翻訳および動的なメモリアドレス再マッピングを実行するようにプログラムされ得る。
本明細書におけるコンピューティングシステムは、いずれの特定の使用にも限定されない。例は、フライトコンピュータ、パーソナルコンピュータ、ワークステーション、ラップトップコンピュータ、およびスマートモバイルデバイスを含む。
110 コンピューティングシステム
120 プロセッサ
130 外部システムメモリ
132 保護されたウィンドウ
140 データパス
150 メモリコントローラー
200 ブロック
205 ブロック
210 ブロック
215 ブロック
220 ブロック
230 ブロック
235 ブロック
240 ブロック
245 ブロック
250 ブロック
260 ブロック
265 ブロック
270 ブロック
275 ブロック
310 第1のテーブル
312 ヘッダ
314 エントリ
320 第2のテーブル
322 ヘッダ
324 リスト
410 ブロック
420 ブロック
430 ブロック
510 コンピューティングシステム
520 中央処理装置(CPU)
522 コア
524 メモリ管理ユニット(MMU)
530 外部システムメモリ
540 メモリバス
610 仮想マシン
620 ハードウェア層
630 ソフトウェア層
632 仮想マシンソフトウェア
634 アプリケーションソフトウェア
700 外部システムメモリ
710 チップ
720 マイクロプロセッサ
730 内部メモリ
740 メモリバス
750 セキュアメモリトランザクションユニット(SMTU)
752 暗号化および認証エンジン
754 鍵材料ストア
756 トランザクション制御ユニット
760 ブリッジ
770 第1のメモリコントローラー
780 第2のメモリコントローラー

Claims (15)

  1. 論理アドレス空間を有するプロセッサ120と物理アドレス空間を有する外部システムメモリ130、530、700とを含むコンピューティングシステム110においてセキュリティを提供する方法であって、
    前記論理アドレス空間へのデータアクセスに応答して前記論理アドレス空間を前記物理アドレス空間に動的に再マッピングするステップを含むメモリアクセスパターンを隠すステップを備える、方法。
  2. 前記再マッピングするステップは、前記論理アドレス空間への各々のあらゆるデータアクセス時に実行される、請求項1に記載の方法。
  3. 各々の再マッピングするステップが、論理アドレスを第1の物理アドレスから第2の物理アドレスに再マッピングするステップを含み、前記メモリアクセスパターンを隠すステップはさらに、前記第2の物理アドレスにデータを記憶するステップを含む、請求項1または2に記載の方法。
  4. 論理アドレスでの各々の読み出し動作のために、データが前記外部システムメモリ130、530、700における第1の物理アドレスから読み出され、前記論理アドレスが前記第1の物理アドレスから第2の物理アドレスに再マッピングされ、前記データは前記第1の物理アドレスから前記第2の物理アドレスに移動させられるが、前記論理アドレスは変更されない、請求項1から3のいずれか一項に記載の方法。
  5. 各々の書き込み動作がダミーの読み出し動作によって先行され、データが前記第1の物理アドレスから読み出されるが影響を及ぼされることはなく、論理アドレスへの各々の書き込み動作のために、前記論理アドレスが第1の物理アドレスから第2の物理アドレスに再マッピングされ、データが前記第2の物理アドレスに記憶されるが、前記論理アドレスは変更されない、請求項1に記載の方法。
  6. 前記物理アドレス空間が前記論理アドレス空間よりも少なくとも1物理アドレス分大きいがゆえに、少なくとも1つの物理アドレスがマッピングされず、第1のデータ構造は、論理アドレスにマッピングされた物理アドレスのためのエントリ値を含み、第2のデータ構造は、マッピングされていない各々の物理アドレスのためのエントリ値を含み、前記第1のデータ構造においてインデックスされたエントリ値が、前記第2のデータ構造から選択されたエントリ値によって置き換えられ、置き換えられた各々のエントリ値が前記第2のデータ構造に追加され、各々のエントリ値はランダムにまたは擬似ランダムに選択される、請求項1に記載の方法。
  7. 各々のエントリ値は、前記外部システムメモリ130、530、700の保護されたウィンドウの対応する先頭アドレスからのオフセットである、請求項6に記載の方法。
  8. 論理アドレス空間を有するプロセッサ120と、
    物理アドレス空間を有する外部システムメモリ130、530、700と、
    前記外部システムメモリ130、530、700に関するメモリアクセスパターンを隠すためのメモリコントローラー150と、を備えるコンピューティングシステム110であって、
    前記メモリアクセスパターンを隠すことは、前記論理アドレス空間へのデータアクセスに応答して前記論理アドレス空間を前記物理アドレス空間に動的に再マッピングすることを含む、コンピューティングシステム110。
  9. 前記プロセッサ120および前記メモリコントローラー150は、中央処理装置520のチップ上にある、請求項8に記載のコンピューティングシステム110。
  10. 前記コンピューティングシステム110は、前記メモリコントローラー150を実装するハードウェア層620と仮想マシンソフトウェア632とを有する仮想マシン610である、請求項8または9に記載のコンピューティングシステム110。
  11. 前記コンピューティングシステム110は、前記外部システムメモリ130、530、700と通信する回路750を含むシステムオンチップ710であり、前記回路750は、前記メモリアドレス再マッピングを動的に実行するように構成される、請求項8から10のいずれか一項に記載のコンピューティングシステム110。
  12. 前記メモリコントローラー150は、論理アドレスへの各々のあらゆるデータアクセス時に前記再マッピングを実行するように構成される、請求項8に記載のコンピューティングシステム110。
  13. 前記メモリコントローラー150は、論理アドレスを第1の物理アドレスから第2の物理アドレスに再マッピングし、前記第2の物理アドレスにデータを記憶するように構成される、請求項8に記載のコンピューティングシステム110。
  14. 前記物理アドレス空間が前記論理アドレス空間よりも少なくとも1物理アドレス分大きいがゆえに、少なくとも1つの物理アドレスがマッピングされず、論理アドレスへのデータアクセスが行われる際、前記論理アドレスはすでに第1のオフセットLによって第1の物理アドレスにマッピングされており、前記メモリコントローラー150は、マッピングされていない第2の物理アドレスへの第2のオフセットを選択し、前記第1のオフセットLを前記第2のオフセットと置き換えるように構成される、請求項8から13のいずれか一項に記載のコンピューティングシステム110。
  15. 外部システムメモリ130、530、700を含むコンピューティングシステム110のためのメモリコントローラー150であって、
    前記メモリコントローラー150は、前記外部システムメモリ130、530、700に関するメモリアクセスパターンを隠すように構成された専用プロセッサ120を備え、前記メモリアクセスパターンを隠すことは、前記論理アドレス空間へのデータアクセスに応答して論理アドレスを前記外部システムメモリ130、530、700の第1の物理アドレスから前記外部システムメモリ130、530、700の第2の物理アドレスに再マッピングすることと、データを前記第2の物理アドレスでの記憶のために前記外部システムメモリ130、530、700に送信することとを含む、メモリコントローラー150。
JP2015108535A 2014-08-13 2015-05-28 コンピューティングシステムにおける動的なメモリアドレス再マッピング Active JP6739148B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/459,234 2014-08-13
US14/459,234 US20160048457A1 (en) 2014-08-13 2014-08-13 Dynamic memory address remapping in computing systems

Publications (2)

Publication Number Publication Date
JP2016042351A true JP2016042351A (ja) 2016-03-31
JP6739148B2 JP6739148B2 (ja) 2020-08-12

Family

ID=53879376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015108535A Active JP6739148B2 (ja) 2014-08-13 2015-05-28 コンピューティングシステムにおける動的なメモリアドレス再マッピング

Country Status (4)

Country Link
US (1) US20160048457A1 (ja)
EP (1) EP2998869B1 (ja)
JP (1) JP6739148B2 (ja)
CN (1) CN105373486B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495111B2 (en) * 2014-10-10 2016-11-15 The Boeing Company System and method for reducing information leakage from memory
US10609171B2 (en) * 2015-12-22 2020-03-31 Intel IP Corporation Methods and apparatus to improve interprocess communication
CN106933751B (zh) * 2015-12-29 2019-12-24 澜起科技股份有限公司 用于保护动态随机访问存储器的方法和设备
US9747219B1 (en) * 2016-02-25 2017-08-29 Amazon Technologies, Inc. Address remapping for efficient use of distributed memory
US11843597B2 (en) * 2016-05-18 2023-12-12 Vercrio, Inc. Automated scalable identity-proofing and authentication process
KR20180058327A (ko) * 2016-11-24 2018-06-01 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법
US10082975B1 (en) 2017-03-02 2018-09-25 Micron Technology, Inc. Obfuscation-enhanced memory encryption
US10768863B2 (en) * 2017-03-31 2020-09-08 Intel Corporation Security monitoring agent for field programmable gate array (FPGA) in-memory controller
US10977182B2 (en) * 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
US11436154B2 (en) 2017-12-01 2022-09-06 Micron Technology, Inc. Logical block mapping based on an offset
US10831596B2 (en) 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
CN108959127B (zh) 2018-05-31 2021-02-09 华为技术有限公司 地址转换方法、装置及系统
CN109582226A (zh) * 2018-11-14 2019-04-05 北京中电华大电子设计有限责任公司 一种高速存储访问逻辑结构及其控制方法
US11481336B2 (en) * 2019-08-19 2022-10-25 Micron Technology, Inc. Host assisted operations in managed memory devices
US11604740B2 (en) * 2020-12-01 2023-03-14 Capital One Services, Llc Obfuscating cryptographic material in memory
CN112597071B (zh) * 2020-12-09 2024-03-26 北京地平线机器人技术研发有限公司 数据存储方法、获取方法、装置、电子设备以及介质
US20220091758A1 (en) * 2021-12-07 2022-03-24 Intel Corporation Securing sensitive data in memory

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027134A (ja) * 1996-07-12 1998-01-27 Hitachi Ltd アドレス変換装置およびこれを用いたプロセッサ
JP2001067258A (ja) * 1999-08-25 2001-03-16 Mitsubishi Electric Corp フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法
US20030163718A1 (en) * 2000-04-12 2003-08-28 Johnson Harold J. Tamper resistant software-mass data encoding
JP2007114979A (ja) * 2005-10-19 2007-05-10 Dainippon Printing Co Ltd データファイルを共有化するicカードおよびicカード用プログラム
JP2009163284A (ja) * 2007-12-28 2009-07-23 Oki Semiconductor Co Ltd プロセッサ装置
US20100106920A1 (en) * 2008-10-29 2010-04-29 Microsoft Corporation Data location obfuscation
US20130081103A1 (en) * 2011-09-27 2013-03-28 PCTEL Secure LLC Enhanced Security SCADA Systems and Methods
JP2013097715A (ja) * 2011-11-04 2013-05-20 Nikon Corp 電子機器およびプログラム
JP2014068289A (ja) * 2012-09-27 2014-04-17 Kddi Corp 記憶装置、アクセスパターンの秘匿方法およびプログラム
JP2014126989A (ja) * 2012-12-26 2014-07-07 Sony Corp 制御装置、制御方法、及び、プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US20060129753A1 (en) * 2004-12-14 2006-06-15 Intel Corporation Dynamic packing of volatile memory
US20100262751A1 (en) * 2009-04-09 2010-10-14 Sun Microsystems, Inc. Memory Control Unit Mapping Physical Address to DRAM Address for a Non-Power-of-Two Number of Memory Ranks Using Lower Order Physical Address Bits
US20110191562A1 (en) * 2010-02-02 2011-08-04 Broadcom Corporation Apparatus and method for partitioning, sandboxing and protecting external memories
US8819386B1 (en) * 2011-01-25 2014-08-26 Emc Corporation Memory efficient use of dynamic data structures used to manage sparsely accessed data
US9396135B2 (en) * 2011-05-18 2016-07-19 University Of North Texas Method and apparatus for improving computer cache performance and for protecting memory systems against some side channel attacks
US8806171B2 (en) * 2011-05-24 2014-08-12 Georgia Tech Research Corporation Systems and methods providing wear leveling using dynamic randomization for non-volatile memory
US8843767B2 (en) * 2011-07-06 2014-09-23 The Boeing Company Secure memory transaction unit
US9015853B2 (en) * 2012-06-15 2015-04-21 The Regents Of The University Of California Concealing access patterns to electronic data storage for privacy
CN103793333B (zh) * 2012-10-30 2017-02-08 北京兆易创新科技股份有限公司 非易失性存储器加密的方法和装置以及非易失性存储器
US9740402B2 (en) * 2014-03-28 2017-08-22 Vmware, Inc. Migrating workloads across host computing systems based on remote cache content usage characteristics

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027134A (ja) * 1996-07-12 1998-01-27 Hitachi Ltd アドレス変換装置およびこれを用いたプロセッサ
JP2001067258A (ja) * 1999-08-25 2001-03-16 Mitsubishi Electric Corp フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法
US20030163718A1 (en) * 2000-04-12 2003-08-28 Johnson Harold J. Tamper resistant software-mass data encoding
JP2007114979A (ja) * 2005-10-19 2007-05-10 Dainippon Printing Co Ltd データファイルを共有化するicカードおよびicカード用プログラム
JP2009163284A (ja) * 2007-12-28 2009-07-23 Oki Semiconductor Co Ltd プロセッサ装置
US20100106920A1 (en) * 2008-10-29 2010-04-29 Microsoft Corporation Data location obfuscation
US20130081103A1 (en) * 2011-09-27 2013-03-28 PCTEL Secure LLC Enhanced Security SCADA Systems and Methods
JP2013097715A (ja) * 2011-11-04 2013-05-20 Nikon Corp 電子機器およびプログラム
JP2014068289A (ja) * 2012-09-27 2014-04-17 Kddi Corp 記憶装置、アクセスパターンの秘匿方法およびプログラム
JP2014126989A (ja) * 2012-12-26 2014-07-07 Sony Corp 制御装置、制御方法、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EMIL STEFANOV ET AL.: "Path ORAM: An Extremely Simple Oblivious RAM Protocol", CCS'13 PROCEEDINGS OF THE ACM SIGSAC CONFERENCE ON COMPUTER & COMMUNICATIONS SECURITY, JPN7019003635, November 2013 (2013-11-01), US, pages 299 - 310, ISSN: 0004294828 *

Also Published As

Publication number Publication date
US20160048457A1 (en) 2016-02-18
CN105373486A (zh) 2016-03-02
EP2998869B1 (en) 2018-11-07
CN105373486B (zh) 2020-02-28
JP6739148B2 (ja) 2020-08-12
EP2998869A1 (en) 2016-03-23

Similar Documents

Publication Publication Date Title
JP6739148B2 (ja) コンピューティングシステムにおける動的なメモリアドレス再マッピング
US10176122B2 (en) Direct memory access authorization in a processing system
CN103778075B (zh) 安全管理单元、包括它的主机控制器接口及其操作方法
US10210096B2 (en) Multi-stage address translation for a computing device
US8332572B2 (en) Wear leveling mechanism using a DRAM buffer
US9734092B2 (en) Secure support for I/O in software cryptoprocessor
CN111753336A (zh) 利用隐藏内联元数据的存储器保护
US8775752B2 (en) Virtual memory management apparatus and memory management apparatus
US8209463B2 (en) Expansion slots for flash memory based random access memory subsystem
EP3262515B1 (en) Cryptographic-based initialization of memory content
US10303621B1 (en) Data protection through address modification
CN107562515A (zh) 一种在虚拟化技术中管理内存的方法
TW201042455A (en) Method of providing extended memory protection
US20180260151A1 (en) Data Storage Device and Operating Method Therefor
US10033411B2 (en) Adjustable error protection for stored data
KR101724590B1 (ko) 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US11940927B2 (en) Technologies for memory tagging
JP2021507362A (ja) 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
US10621098B2 (en) Computing device and non-volatile dual in-line memory module that evict and prefetch data with respect to memories having different operating speeds
US11726924B2 (en) Memory system for data encryption
CN113614703B (zh) 用于核特定内存映射的装置
US10705745B2 (en) Using a memory controller to mange access to a memory based on a memory initialization state indicator
US20240143514A1 (en) Assigning input/output virtual addresses using a pre-defined randomness algorithm
US12019759B2 (en) Data processing system and method for protecting data in the data processing system
US20170322891A1 (en) Device and method for secure data storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200528

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200609

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: 20200629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6739148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250