JP2022537601A - プロセッサの消費電力を削減するためのフラッシュとramの割り当てのシステムと方法 - Google Patents

プロセッサの消費電力を削減するためのフラッシュとramの割り当てのシステムと方法 Download PDF

Info

Publication number
JP2022537601A
JP2022537601A JP2022516149A JP2022516149A JP2022537601A JP 2022537601 A JP2022537601 A JP 2022537601A JP 2022516149 A JP2022516149 A JP 2022516149A JP 2022516149 A JP2022516149 A JP 2022516149A JP 2022537601 A JP2022537601 A JP 2022537601A
Authority
JP
Japan
Prior art keywords
ram
memory
code module
portable code
portable
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
JP2022516149A
Other languages
English (en)
Other versions
JP7194314B2 (ja
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 JP2022537601A publication Critical patent/JP2022537601A/ja
Application granted granted Critical
Publication of JP7194314B2 publication Critical patent/JP7194314B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本発明は、ROMからコピーされた省電力コードと、パケットを格納するために使用される一時的RAMメモリとの間にRAMを動的に割り当てるためのコントローラである。一時的RAMメモリの使用率が低い場合、コードセグメントはROMからコピーされ、コードセグメントがROMからコピーされた後に更新されるRAMポインタテーブルを使用してRAMから実行され、一時的RAMメモリの使用率が高い場合、コードセグメントはRAMから割り当て解除され、ポインタテーブルが更新されてフラッシュROM内の対応する場所をポイントする。【選択図】図1

Description

本発明は、2019年9月11日に出願された米国仮特許出願62/899084号の優先権を主張するものである。
本発明は、概して、通信システムにおける電力消費を低減するための方法に関する。特に、本発明は、電力消費を最小化するためのランダムアクセスメモリ(RAM)内およびフラッシュメモリ内のデータの管理に関する。
マイクロコントローラやマイクロプロセッサには通常、一時データと実行可能命令を格納するためのランダムアクセスメモリ(RAM)が設けられる。現在の低電力またはバッテリ駆動のモノのインターネット(IоT)と、中央処理装置(CPU)を備えた組み込みシステムでは、最適な電力消費とより高いスループット性能との間にトレードオフが存在する。最適な電力消費とネットワークスループットを備えたCPUの場合、RAMメモリには、送信および受信パケットキューのためのパケットバッファや、省電力の実行可能コードおよびデータメモリなど、動的または一時的なサイズ要件を持つデータ構造が含まれている必要がある。組み込みシステムオンチップ(SOC)環境では、消費電力を削減するために、RAMは、上記の格納要件を満たす最小サイズになるように意図的に選択される。マイクロコントローラまたはマイクロプロセッサの消費電力は、RAMのシステムによる要求もしくは使用が少なくなると減少するため、通信アプリケーションのためのネットワークスループットなど、一時的RAMメモリの格納要件を必要とするタスクの性能を落とすことなく、消費電力をさらに削減することが望まれる。本発明の別の例では、フラッシュメモリまたはRAMのいずれかからコードを実行する際の柔軟性を提供することが望まれるので、ソフトウェアプロセスの性能は、プロセッサ命令の実行のためのフラッシュ対RAMの動的割り当てによる電力消費の削減または性能の向上のために最適化される。さらに、RAMの使用に関連する消費電力を削減または最小化することが望まれる。
本発明の第1の目的は、RAMに記憶されたデータの一時的な要件を有するシステムにおける電力消費を低減するための装置であり、当該装置は、ポータブルコードモジュールセグメント、固定実行可能コード、およびブートコードを含むように編成されたフラッシュメモリを有する装置である。
本発明の第2の目的は、データがRAMに格納される際の電力消費を低減するためのチップ上のプロセッサシステム(SOC)のための方法であり、内部RAMと外部フラッシュROMに結合された中央処理装置(CPU)を有するSOC上で動作する方法であって、
フラッシュメモリ内の実行可能コードを、ポータブルコードモジュールセグメント、固定コード、およびブートコードの少なくとも1つとして配置し、
前記CPUは、起動時に、省電力コードをRAMに配置するチップROMからブートコードを実行し、RAM内の関数ポインタテーブルを初期化して、特定のポータブルコードモジュールセグメントをフラッシュROMの場所から実行するかRAMの場所から実行するかを表示し、前記省電力コードは、現在の一時的RAMメモリの使用率(パケットバッファ使用率など)を合計RAMサイズで割った使用率を定期的に決定することで、
前記使用率がしきい値を超えた場合、フラッシュROM内の対応するポータブルコードモジュールをポイントするように関数ポインタテーブルエントリを更新し、その後、RAMからポータブルコードモジュールセグメントの割り当てを解除し、それらの割り当て解除されたセグメントをパケットバッファなどの一時的RAMに割り当て、
前記使用率がしきい値を下回った場合、ポータブルコードモジュールセグメントをRAMに移動し、関数ポインタテーブルを更新して、RAMからポータブルコードモジュールセグメントを実行する、方法である。
本発明の第3の目的は、実行可能コード命令の動的割り当てのための装置であって、
ポータブルコードモジュールセグメント、固定実行可能コード、およびブートコードを含むように編成されたフラッシュメモリと、
フラッシュメモリ内の前記コードモジュールセグメントまたはRAM内の対応するコードモジュールセグメントへのポインタエントリを含む関数ポインタテーブルを含むランダムアクセスメモリ(RAM)と、
現時点でフラッシュメモリから実行されている第1のポータブルコードモジュールをRAMから実行するために識別し、現時点でRAMから実行されている第2目のポータブルコードモジュールをフラッシュから実行するために認識するコード使用率を、CPU実行に基づいて決定するためのポインタ割り当てコントローラと、を備え、
前記ポインタ割り当てコントローラは、前記第2のポータブルコードモジュールに関連付けられた関数ポインタテーブルエントリを、前記関連付けられたフラッシュメモリポータブルコードモジュールをポイントするように変更し、前記第1のポータブルコードモジュールをフラッシュメモリからRAMのセグメントにコピーし、前記第1のポータブルコードモジュールに関連付けられた前記関数ポインタテーブルを、RAMの前記関連セグメントをポイントするように変更する、装置である。
本発明の第4の目的は、実行可能コード命令の動的割り当てのための装置であって、
ポータブルコードモジュールセグメント、固定実行可能コード、およびブートコードを含むように編成されたフラッシュメモリと、
フラッシュメモリ内の前記コードモジュールセグメントまたはRAM内の対応するコードモジュールセグメントへのポインタエントリを含む関数ポインタテーブルを含むランダムアクセスメモリ(RAM)と、
現時点でRAMから実行されているポータブルコードモジュールをフラッシュから実行するために認識するコード使用率を、CPU実行に基づいて決定するためのポインタ割り当てプロセスと、
前記ポータブルコードモジュールに関連付けられた関数ポインタテーブルエントリを、前記関連付けられたフラッシュメモリポータブルコードモジュールをポイントするように変更するポインタ割り当てプロセスと、を備えた装置である。
ランダムアクセスメモリ(RAM)とフラッシュ読み取り専用メモリ(ROM)を備え、消費電力を削減するシステムであって、
RAMおよびフラッシュROMに結合されたCPUを有し、
前記フラッシュROMは、
エントリポイントアドレスを持つポータブルコードモジュールと、
固定コードモジュールと、
省電力コードを含むブートコードと、をそれぞれ備え、
前記RAMは、
省電力コード領域と、
呼び出し可能なポータブルコードモジュール領域と、
関数ポインタテーブル領域と、
パケットバッファなどの一時的RAMメモリ領域と、を備え、
電源投入の初期化時に、前記CPUはチップROMからブートコードを実行し、前記フラッシュメモリから前記RAM省電力コード領域に省電力コードをコピーし、その後、RAM内のスペースを前記一時的RAMメモリ領域に割り当て、ポータブルコードモジュールセグメントをフラッシュROMから前記RAM呼び出し可能ポータブルコードモジュール領域にコピーし、フラッシュROM内のポータブルコードモジュールセグメントまたはRAM内のポータブルコードモジュールセグメントのいずれかをポイントするように前記関数ポインタテーブル領域を初期化し、その後、前記関数ポインタテーブルに従って、フラッシュROMまたはRAMにより実行されたポータブルコードモジュールを用いて、前記省電力コードを好ましくはRAMから実行する。前記省電力コードは、RAM全体に対する使用中の一時的RAMメモリのサイズの使用率を定期的に形成する。前記使用率が50%などのしきい値を下回ると、前記省電力コードは一時的RAMメモリをRAMから割り当て解除し、この一時的RAMメモリをRAM内のポータブルコードモジュールに割り当て、対応するポータブルコードモジュールをROMからRAMにコピーし、RAM内の前記対応するポータブルコードモジュールをポイントするように前記関数ポインタテーブルを更新する。前記使用率が50%などのしきい値を超えると、前記省電力コードは前記関数ポインタテーブルを、フラッシュROM内のポータブルコードモジュールを参照するように変更し、前記関連するポータブルコードモジュールをRAMから割り当て解除して、この関連するポータブルコードモジュールを一時的RAMメモリの一部として割り当てる。
本発明の他の実施形態は、ランダムアクセスメモリ(RAM)とフラッシュ読み取り専用メモリ(ROM)を備え、消費電力を削減するシステムであって、
RAMおよびフラッシュROMに結合されたCPUを有し、
前記フラッシュROMは、
エントリポイントアドレスを持つポータブルコードモジュールと、
固定コードモジュールと、
省電力コードを含むブートコードと、をそれぞれ備え、
前記RAMは、
省電力コード領域と、
呼び出し可能なポータブルコードモジュール領域と、
関数ポインタテーブル領域と、
パケットバッファなどの一時的RAMメモリ領域と、を備え、
電源投入の初期化時に、前記CPUはチップROMからブートコードを実行し、前記フラッシュメモリから前記RAM省電力コード領域に省電力コードをコピーし、RAMから実行されるコード最適化プロセスを開始し、これにより、フラッシュROMから実行されるポータブルコードモジュールが、関連するしきい値よりも頻繁に呼び出されることが検出されると、前記ポータブルコードモジュールはRAMのポータブルコード領域にコピーされ、RAMの前記ファンクションポインタテーブル領域は、前記ポータブルコードモジュールの関連付けられたエントリポイントで更新され、RAMから実行されるポータブルコードモジュールが関連付けられたしきい値よりも少ない頻度で呼び出されたことが検出されると、RAMのファンクションポインタテーブル領域が更新され、フラッシュROM内の前記対応するポータブルコードモジュールをポイントする、システムである。
図1は、外部フラッシュメモリを備えたプロセッサSOCを示すブロック線図である。 図2Aは、フラッシュメモリの割り当ての一例を示す図である。図2Bは、小さい数のパケットバッファを使用したランダムアクセスメモリの一例を示す図である。図2Cは、大きな数のパケットバッファを使用したランダムアクセスメモリの一例を示す図である。 図3は、本発明の動作を示すフローチャートである。
図1は、本発明のプロセスのブロック図を示し、図2Aは、フラッシュメモリ120およびランダムアクセスメモリ108の例示的な空間割り当てを示している。本発明は、実行される関数がフラッシュROMまたはRAMのどちらにあるかを示す関数ポインタテーブルを使用して、システムRAMとフラッシュROMとの間で実行可能な関数を動的に割り当てるためのシステムおよび方法を提供する。本発明の実施例では、概して、一時的RAMメモリへのRAMの割り当てが説明される。一時的RAMメモリの具体例としては、送信バッファと受信バッファを維持するネットワークデバイスのパケットバッファメモリが含まれ、これらは、受信バッファデータの読取り時と処理時には受信バッファでは不要であり、送信バッファのデータは、送信されたデータが確認され、再送信の必要がなくなった後は不要である。一時的RAMメモリは、メモリの割り当てと割り当て解除に使用されるものであってもよく、例えば、Cプログラミング言語では「malloc()」や「free()」であり、もしくはC++、C♯、Java(登録商標)などのオブジェクト指向プログラミング言語では「new」や「delete」である。ネットワークアプリケーションのための関数ポインタテーブルと一時的RAMメモリの割り当ては、アクティブに使用されているパケットバッファメモリが占めるRAMの割合など、ネットワークスタック/アプリケーションメトリックに基づいて動的に実行されるものであってもよい。このようにして、RAM108は、以下に示す使用率の関係に基づいて動的に共有される。
1)RAM230は一時的RAMメモリ(パケットバッファ228として示す)に使用され、パケットバッファはTCP送信バッファおよびTCP受信バッファなどの長い永続バッファを含み、送信バッファは受信ピアによる送信パケットの確認待ちに保持され、受信バッファは全ての順序どおりのパケットが送信ピアから受信されるまで保持される。UDP送信バッファおよびUDP受信バッファ(関連付けられたピアによって確認されない)などの短い永続性バッファ、または即座に処理され得る制御フレームバッファは、短期間の永続性のために「特別なプール」の一部であってもよい。
2)他の全てのRAM使用率は、省電力(動作)コードおよびデータ220に必要なRAM230、フラッシュメモリ202からコピーされた呼び出し可能関数224、および省電力コード220によって呼び出された特定の関数を呼び出し可能関数224領域もしくはポータブルコードモジュール202領域から実行する必要があるかどうかを示す関数ポインタテーブル226を含む。
一般的な適用としては、一時的RAMメモリパケットバッファメモリなどの一時的RAMメモリ要件の増加によって、一時的RAMメモリへのRAM割り当てが増加し、この場合、パケットストレージ要件は、バーストで発生するネットワークトラフィックの性質と、ネットワークの状態によって決定される。例えば、一時的RAMメモリ送信バッファは、格納されている関連パケットが受信ステーションまたはアクセスポイント(AP)によって受信されたことが確認されるまで、割り当てが解除されない場合がある。一時的RAMメモリネットワークトラフィックの受信バッファは、ブロック確認応答のすべてのパケットが受信されるまで割り当て解除されないものであってもよく、または、受信バッファがTCP/IPトラフィックに使用される場合、受信パケットは、順序どおりのパケットが送信されバッファが解放されるまで保持される。トラフィックのバーストが大きい場合、または送信パケットバッファもしくは受信パケットバッファの要件が増加した場合は、パケットバッファのRAM要件を増やす必要がある。逆に、ネットワークが穏やかな場合、RAM要件は、フラッシュROMからコピーされたポータブルコードモジュールセグメント間のRAMの割り当てを管理する「省電力コード220」として示された運用コードを格納するために必要な最小値に低下する。さらに、処理および転送のスループットの高いトラフィックがある場合、CPUは省電力モードに入る機会が少なくなる。
省電力装置と方法の一例を図1に示す。プロセッサシステムオンチップ(SOC)100は、例えばシリアルペリフェラルインタフェース(SPI)バスによってフラッシュ読み取り専用メモリ(ROM)120に接続するインタフェース118と、ホストインタフェース112を動作可能とするインタフェース110とを含むものであってもよく、これらは共にCPU106に接続される。CPU106は、RAM108に結合され、オプションで、起動のための基本的な命令を含むチップブートロム104、ならびにCPUレジスタ102にも結合される。他の関数は、通常、プロセッサ100内に存在し、これらは例示の目的でのみ示される。省電力方法は次のように動作する。
1)起動および初期化時に、デバイスは、基本インタフェース110および118の初期化を実行するチップブートロム104から起動され、RAM108にコピーされたフラッシュROM120のブートコードセクションから起動コードを検索し、その後、CPUは、省電力コードをRAMから直接実行する。フラッシュROM120の構成は図2Aの208に示され、RAM108の構成は初期化後または軽度のワイヤレストラフィック中については図2Bの230に示され、また、一時的RAMメモリの要求時、すなわち、追加のパケットバッファの割り当て、フラッシュROM120から直接実行するためのポータブルコードモジュールの割り当て解除、またはその他の一時的RAMメモリ要件を必要とする重度のワイヤレストラフィック中については図2Cに示されている。ブートコード206は、通常はRAM230/231のセグメント220に最初にコピーされて、その後実行される省電力コードを含むものであってもよく、省電力コードは、RAM224にコピーされたフラッシュROM120の関連するポータブルコードモジュール202へのポインタを含むように初期化される関数ポインタテーブル226にそれぞれ向けられた様々な関数への呼び出しを含む。あるいは、省電力コードはフラッシュROM120から実行され、RAM108またはフラッシュROM120のいずれかに配置されたポータブルコードモジュールのために関数ポインタテーブル226を使用するものであってもよい。まず、図2Bに示されるように、パケットバッファ228の使用率が非常に小さいときは、パケットバッファ228のサイズは非常に小さいものであってもよく、未使用のスペースは、図2Bのポータブルコードモジュール224としてRAMにコピーされたポータブルコードモジュール202で満たされるものであってもよく、関数ポインタテーブル226は、省電力コードからの関数呼び出しを、RAM108にコピーされたポータブルコードモジュール224に向けるように更新される。このようにして、RAM108から実行されるポータブルコードモジュールは、フラッシュROM120から実行される場合よりもはるかに速く実行され、それにより、より高い性能を提供する。パケットバッファが着信受信パケットとして割り当てられ、発信送信パケットがパケットバッファ領域228に格納される一時的RAMメモリ要件の場合、RAMパケットバッファ割り当てサイズ228は、図2Cに示されるように増大し、以前にRAM108から実行されたポータブルコードモジュール224は、パケットバッファ228の使用のために割り当て解除および再割り当てされ、関数ポインタテーブル226は、パケットバッファ228に必要なRAMの割合に基づいて、関連するフラッシュメモリ208ポータブルコードモジュール関数をポイントするように書き直されたポータブルコードモジュールへの参照をポイントする。
省電力コード220は、利用可能な割り当て可能なRAM236と比較したパケットバッファ228の使用率と割り当てを監視し、割り当て可能なRAM236に対するパケットバッファ228の使用率などの一時的RAMメモリの需要の比率が、ネットワークスループットのために、RAM使用率の50%などの第1のしきい値を超えた場合、1つまたは複数のポータブルコードモジュールセグメントがRAMから割り当て解除されることによってRAM呼び出し可能関数スペース224が段階的に減少し、対応するコードセグメントそれぞれの関数ポインタテーブル226エントリが、割り当て解除前にフラッシュROM208をポイントするように更新されるため、コードの実行が中断されない。割り当て解除は、まず関数ポインタテーブル226に更新された関数ポインタを書き込み、次にRAMからの不完全なコード実行が完了するまで一定時間待機するか、もしくは関連するルーチンに読み取り可能フラグを設定させることによって実行を開始し、またフラグをクリアして実行完了する。その後、割り当て解除されたポータブルコードモジュールによって以前に使用されたRAMは、パケットバッファ228のサイズを増加させるために再割り当てされる。
逆に、利用可能な割り当て可能な合計RAM236に対するRAMパケットバッファ割り当て228の比率が40%などの第2のしきい値を下回り、未使用のパケットバッファRAMが再割り当てに利用可能である場合、ポータブルコードモジュールセグメント202はROM202からコピーされ、RAM224の割り当て解除されたパケットバッファ領域に書き込まれ、それぞれの関連するポータブルコードモジュール呼び出しの関数ポインタテーブル226エントリは、フラッシュメモリ208のアドレスから関連する呼び出し可能関数224のRAM230のアドレスへのポータブルコードモジュールへの呼び出しをポイントするように更新される。省電力コード220は、最適には連続したコードブロックであるが、フラッシュROM202からコピーされたポータブルコードモジュールセグメントはサイズが小さく、また各ポータブルコードセグメントは、関数ポインタテーブル226に独自のポインタを持っているため、他のポータブルコードモジュールセグメントからRAMの非連続位置に配置できる。
本発明の一例では、呼び出し可能関数224は、図2に示されるように、パケットバッファ228とは別の1ブロックのRAMであるが、本発明の別の例では、パケットバッファ228は、隣接するRAM空間にあるか、または呼び出し可能な関数224によって割り当てられた空間と結合した連結リストを備える。この例では、パケットバッファのサイズは、連結リストの記述子(それぞれが始点ノード、次ノード、およびサイズを備えていてもよい)によって決定され、呼び出し可能な関数の割り当て領域は、関数ポインタテーブル226の一部であるか、または関数ポインタテーブル226とは別であってもよい個別の割り当てテーブルに保持されるものであってもよい。
本発明の一例では、RAM割り当ての方法は、図3に概説される一連のステップとして動作し、パケットバッファの例として示されているが、実行可能コード用もしくは動的データ用である一時的RAMメモリ要件を有する他のアプリケーションに一般化されるものであってもよい。ステップ302で、CPUはチップブートロム120から起動し、省電力コードをフラッシュROM120からRAM108にコピーし、RAM108の関数ポインタテーブル226を初期化し、RAM108から省電力コード220を実行する。ステップ302におけるRAM内の一時的RAMメモリプール228(パケットバッファプール228など)およびポータブルコードモジュール224のためのRAMの初期割り当ては、それぞれ、70%および30%のオーダーとなり得る。
ステップ303において、新しい受信パケットが到着したとき、または送信される新しいパケットが作成されたときなど、新しく増加した一時的RAMメモリが必要になると、パケットバッファ割り当て要求は追加のパケットバッファサイズ228を作成し、逆に、送信パケットが送信されて確認され、または受信されたパケットが処理のために削除されると、パケットバッファの割り当てが解除される。
ステップ304は、合計RAMに対するパケットバッファの比率が60%などの第1のしきい値を超えているかどうかを決定するためにテストし、もし超えていた場合、ステップ306が実行され、関数ポインタテーブル226が更新されて、関連するポータブルコードモジュールセグメントをフラッシュメモリ202内のコードセグメントコードに向け、関連する呼び出し可能関数のためのRAM224は割り当て解除され、解放された前記RAMはパケットバッファRAM228に割り当てられる。本発明の代替の実施形態では、一時的RAMメモリ割り当て要求が、制御パケット、管理パケット、またはUDPパケットのためにパケットメモリによって使用される場合、制御パケット、管理パケット、およびUDPパケットには、確認や保存の必要がなく、省電力コードの処理に渡されるだけであるため、永続メモリ要件が短いことから、必要な一時的RAMメモリパケットバッファRAMは、特別な一時的RAM領域(図示されないが、230の一部)から割り当てられる。パケットバッファメモリ割り当て要求などの一時的RAMメモリ割り当てがTCPデータパケットに対するものである場合、メモリ割り当てはパケットバッファメモリプール228からとなり、本発明の代替の実施形態では、追加の一時的RAMメモリパケットバッファRAM228が利用できない場合、パケットバッファ要求は、RAM108の特別なメモリプール(図示せず)から割り当てられるものであってもよい。追加の一時的RAMメモリパケットバッファRAM228の割り当てと、RAMから実行可能なポータブルコードモジュールRAM224の減少は、図2Bの230から図2Cの231への移行として示される。
ステップ308は、利用可能な割り当て可能なRAM236の合計に対する一時的RAMメモリ228またはパケットバッファ228のサイズの比率が50%などの第2のしきい値を下回るかどうかをテストし、その場合、省電力コードは、ポータブルコードモジュールセグメント202をフラッシュROM208からRAM内の呼び出し可能な関数224に段階的にコピーし、関数ポインタテーブル226を更新して、これらの関数への呼び出しが関連するRAMの場所から実行されるようにする。ステップ310は、図2Cから図2Bへのメモリ割り当ての変化を示す。一時的RAMメモリパケットバッファの割り当て解除とポータブル呼び出し可能関数としての再割り当て、およびROMからRAMへの関数のコピーが完了した後、関数ポインタテーブル226が更新される。
ステップ310の後、ステップ303の割り当ておよび割り当て解除がステップ306および310で以前に実行され完了した場合は、プロセスは、それぞれの反復により任意の遅れを伴いながら、ステップ303、またはステップ304を繰り返す。このようにして、RAM108のサイズは、パケットバッファと関数ポインタテーブルおよび省電力コードをサポートするために必要な最小値に縮小されるものとなり、それにより、静的RAM割り当てを維持するか、またはROMもしくはフラッシュから排他的にコードモジュールを実行するといった従来技術の方法よりも電力を節約するものとなる。
提示された例は例示的なものであり、本発明の範囲を限定することを意図するものではないことを理解されたい。第1および第2のしきい値は、xの桁によって変化する可能性があり、その結果、しきい値は、公称サイズxよりも桁違いに大きい(10倍)または小さい(10分の1)範囲内であってもよい。あるいは、しきい値は、与えられたおおよその公称サイズ、おおよそ4倍または4分の1の範囲であってもよい。本発明の一例では、第1のしきい値は40%から60%の範囲にあり、第2のしきい値は20%から40%の範囲にある。本発明の別の例では、第2のしきい値は第1のしきい値よりも小さい。

Claims (18)

  1. 中央処理装置(CPU)と、
    ブートコード、固定コード、およびポータブルコードモジュールセグメントを含むフラッシュ読み取り専用メモリ(ROM)と、
    一時的RAMメモリ用に割り当てられた領域、呼び出し可能関数用に割り当てられた領域、関数ポインタテーブル、および省電力コードを備えたランダムアクセスメモリ(RAM)と、を備え、
    前記RAM領域は、フラッシュROMポータブルコードモジュールセグメントからコピーされた少なくとも1つの関数を持つ呼び出し可能関数に割り当てられ、
    前記関数ポインタテーブルは、前記ROMポータブルコードセグメント、または前記ROMポータブルコードモジュールセグメントからコピーされた少なくとも1つの関数を有するRAM領域のいずれかへのポインタを含み、
    前記省電力コードは、割り当て比率を形成するために、合計RAMサイズに対する呼び出し可能関数のRAM割り当て比率を定期的に調べるように前記CPUに指示し、
    前記割り当て比率が第1のしきい値を超えている場合には、
    フラッシュROMポータブルコードモジュールセグメントからコピーされた少なくとも1つのRAM領域呼び出し可能関数を識別し、
    前記関連するフラッシュROMポータブルコードモジュールセグメントをポイントするように、前記関連する関数ポインタテーブルを更新し、
    前記少なくとも1つのRAM領域呼び出し可能関数によって使用されている前記RAMの割り当てを解除し、その領域を一時的RAMメモリに割り当て、
    前記割り当て比率が第2のしきい値を下回っている場合には、
    一時的RAMメモリのセグメントの割り当てを解除し、
    割り当て解除されたセグメントをRAM呼び出し可能関数メモリに割り当て、
    少なくとも1つのポータブルコードモジュールセグメントをフラッシュROMからRAMの前記呼び出し可能関数領域にコピーし、
    フラッシュROMからRAM内の前記関連する場所にコピーされた前記ポータブルコードモジュールセグメントへ呼び出しが向くように、前記関数ポインタテーブルを更新する、省電力プロセッサ。
  2. 前記第1のしきい値が40%から60%である、請求項1に記載の装置。
  3. 前記第2のしきい値が20%から50%である、請求項1に記載の装置。
  4. 前記第1のしきい値を超える前記RAM割り当てまたは前記第2のしきい値を下回る前記RAM割り当てが定期的に検査される、請求項1に記載の装置。
  5. ポータブルコードモジュールとRAMを含むフラッシュROMに結合されたCPUで動作する方法であって、
    前記CPUは、フラッシュROMの領域からコードを実行し、実行可能な省電力コードをフラッシュROMからRAMにコピーし、その後、前記CPUはRAMから実行し、
    前記CPUは、ポータブルコードモジュールをフラッシュROMからRAMにコピーし、
    前記CPUは、各ポータブルコードモジュールをフラッシュROMから実行するかRAMから実行するかを示すRAM内のポインタを初期化し、
    前記CPUは、受信パケットと送信パケットのために、一時的RAMメモリを前記RAM内に割り当て、
    前記CPUは、RAM全体に対する使用中の一時的RAMメモリの比率を定期的に調べ、
    合計RAMに対する一時的RAMメモリの比率が第1のしきい値より大きい場合には、
    ポータブルコードモジュールに使用されるRAMの割り当てを解除し、フラッシュROMのポータブルコードモジュールをポイントするようにRAM内の前記ポインタを更新し、割り当て解除されたRAMを一時的RAMメモリに割り当て、
    合計RAMに対する一時的RAMメモリの比率が第2のしきい値未満の場合には、
    ポータブルコードモジュールにRAMを割り当て、RAM内のポータブルコードモジュールをポイントするように前記ポインタを更新する、方法。
  6. 前記第1のしきい値が40%から60%である、請求項5に記載の方法。
  7. 前記第2のしきい値が20%から40%である、請求項5に記載の方法。
  8. 前記第2のしきい値が前記第1のしきい値よりも小さい、請求項5に記載の方法。
  9. 前記RAMが特別プールを含む、請求項5に記載の方法。
  10. 前記特別プールが、制御パケットのためのパケットメモリ、UDPパケット、または制御パケットとして使用される、請求項9に記載の方法。
  11. ランダムアクセスメモリ(RAM)と、
    フラッシュ読み取り専用メモリ(ROM)と、
    前記RAMおよび前記フラッシュROMに結合されたCPUと、を備え、
    前記フラッシュROMは、
    エントリポイントアドレスを持つ実行可能なポータブルコードモジュールと、
    実行可能な固定コードモジュールと、
    省電力コードを含むブートコードと、それぞれを含み、
    前記RAMは、省電力コード領域、呼び出し可能ポータブルコードモジュール領域、関数ポインタテーブル領域、および一時的RAMメモリ領域を有し、
    前記CPUは、チップROMからブートコードを実行し、前記フラッシュROMから前記RAM内の前記省電力コード領域に省電力コードをコピーするように動作し、
    前記CPUは、前記RAM内のスペースを前記一時的RAMメモリ領域に割り当て、前記CPUは、前記フラッシュROMから前記RAM呼び出し可能ポータブルコードモジュール領域にポータブルコードモジュールセグメントをコピーし、前記CPUは、前記フラッシュROM内のポータブルコードモジュールセグメントまたは前記RAM内のポータブルコードモジュールセグメントのいずれかにポイントするために前記関数ポインタテーブル領域を初期化するように動作し、
    前記CPUは、RAMから前記省電力コードを実行するように動作し、
    前記CPUは、前記関数ポインタテーブルに示されるよう、前記フラッシュROMまたは前記RAMの少なくとも1つから実行された前記ポータブルコードモジュールを実行するように動作する、システム。
  12. 合計RAMに対する省電力コード、呼び出し可能ポータブルコード、関数ポインタテーブル、および一時的RAMメモリによって使用される一時的RAMメモリのサイズの比率に基づいて、前記CPUが定期的に使用率を計算するように動作する、請求項11に記載のシステム。
  13. 前記CPUは、前記RAMから一時的RAMメモリの割り当てを解除し、割り当て解除された一時的RAMメモリスペースの少なくとも一部をRAM内のポータブルコードモジュールに割り当て、対応する前記ポータブルコードモジュールをフラッシュROMからRAMにコピーし、前記使用率が第1のしきい値を下回ったときに、RAM内の対応する前記ポータブルコードモジュールをポイントするように前記関数ポインタテーブルを更新するように動作する、請求項12に記載のシステム。
  14. 前記CPUは、前記関数ポインタテーブルを、フラッシュROM内のポータブルコードモジュールを参照するように変更し、関連するポータブルコードモジュールをRAMから割り当て解除し、前記使用率が第2のしきい値を超えたときに、前記関連するポータブルコードモジュールメモリを一時的RAMメモリに割り当てるように動作する、請求項13に記載のシステム。
  15. 前記第1のしきい値が40%から60%である、請求項12に記載の方法。
  16. 前記第2のしきい値が20%から50%である、請求項14に記載の方法。
  17. 前記CPUは、一時的RAMメモリをRAMから割り当て解除し、前記割り当て解除された一時的RAMメモリスペースの少なくとも一部をRAM内のポータブルコードモジュールに割り当て、前記対応するポータブルコードモジュールをフラッシュROMからRAMにコピーし、前記使用率が第1のしきい値を下回った場合は、前記関数ポインタテーブルがRAM内の対応するポータブルコードモジュールをポイントするようにアップデートし、
    前記CPUは、関数ポインタテーブルを、フラッシュROM内のポータブルコードモジュールを参照するように変更し、前記関連するポータブルコードモジュールをRAMから割り当て解除し、前記使用率が第2のしきい値を超えた場合は、前記関連するポータブルコードモジュールメモリを一時的RAMメモリに割り当て、
    前記第1のしきい値が前記第2のしきい値よりも大きい、請求項12に記載の方法。
  18. ポータブルコードモジュールセグメント、固定実行可能コード、およびブートコードを含むように編成されたフラッシュメモリと、
    前記フラッシュメモリ内のコードモジュールセグメントまたはRAM内の対応するコードモジュールセグメントへのポインタエントリと共に関数ポインタテーブルを含むランダムアクセスメモリ(RAM)と、
    CPU実行に基づいてコード使用率を決定するポインタ割り当てコントローラであって、現時点でフラッシュメモリから実行されているRAMから実行するための第1のポータブルコードモジュールと、現時点でRAMから実行されているフラッシュから実行するための第2のポータブルコードモジュールとを識別するポインタ割り当てコントローラと、
    前記ポインタ割り当てコントローラは、前記第2のポータブルコードモジュールに関連付けられた関数ポインタテーブルエントリを、前記関連付けられたフラッシュメモリポータブルコードモジュールをポイントするように変更し、前記第1のポータブルコードモジュールをフラッシュメモリからRAMのセグメントにコピーし、前記第1のポータブルコードモジュールに関連付けられた前記関数ポインタテーブルをRAMの関連セグメントをポイントするように変更する、
    実行可能コード命令の動的割り当てのための装置。
JP2022516149A 2019-09-11 2020-09-11 プロセッサの消費電力を削減するためのフラッシュとramの割り当てのシステムと方法 Active JP7194314B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962899084P 2019-09-11 2019-09-11
US62/899,084 2019-09-11
US16/992,098 US11307779B2 (en) 2019-09-11 2020-08-13 System and method for flash and RAM allocation for reduced power consumption in a processor
US16/992,098 2020-08-13
PCT/US2020/050590 WO2021051025A1 (en) 2019-09-11 2020-09-11 System and method for flash and ram allocation for reduced power consumption in a processor

Publications (2)

Publication Number Publication Date
JP2022537601A true JP2022537601A (ja) 2022-08-26
JP7194314B2 JP7194314B2 (ja) 2022-12-21

Family

ID=74849327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022516149A Active JP7194314B2 (ja) 2019-09-11 2020-09-11 プロセッサの消費電力を削減するためのフラッシュとramの割り当てのシステムと方法

Country Status (6)

Country Link
US (2) US11307779B2 (ja)
JP (1) JP7194314B2 (ja)
KR (1) KR102523300B1 (ja)
CN (1) CN114730245B (ja)
DE (1) DE112020004284B4 (ja)
WO (1) WO2021051025A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11860795B2 (en) * 2020-02-18 2024-01-02 Arm Limited Device, system, and method of determining memory requirements and tracking memory usage
US11500555B2 (en) 2020-09-04 2022-11-15 Micron Technology, Inc. Volatile memory to non-volatile memory interface for power management
CN113419858B (zh) * 2021-06-30 2024-02-13 明见(厦门)技术有限公司 一种动态内存分配方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293433A (ja) * 1999-04-12 2000-10-20 Nec Niigata Ltd プログラム実行方式
JP2001025053A (ja) * 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
WO2009028106A1 (ja) * 2007-08-31 2009-03-05 Panasonic Corporation 情報処理装置
JP2010514017A (ja) * 2006-12-20 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
US20100146256A1 (en) * 2000-01-06 2010-06-10 Super Talent Electronics Inc. Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
US20160300064A1 (en) * 2015-04-10 2016-10-13 Vixs Systems Inc. Secure processor for soc initialization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237669A (en) * 1991-07-15 1993-08-17 Quarterdeck Office Systems, Inc. Memory management method
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
CN1498485A (zh) * 2001-02-06 2004-05-19 ���﹫˾ 动态带宽分配
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
BRPI0520356A2 (pt) * 2005-06-29 2009-09-15 Ericsson Telefon Ab L M métodos e aparelhos para recolher estatìsticas relacionadas com acessos aleatórios detectados em uma célula de uma rede de radiocomunicação celular, e para supervisionar operação de acesso aleatório em uma célula da rede de radiocomunicação celular, programa de computador, rede de radiocomunicação celular
US7769945B2 (en) * 2007-01-18 2010-08-03 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US8006108B2 (en) * 2007-11-08 2011-08-23 International Business Machines Corporation Dynamic selection of group and device power limits
WO2009098547A1 (en) * 2008-02-08 2009-08-13 Freescale Semiconductor, Inc. Memory management
US8812825B2 (en) * 2011-01-10 2014-08-19 Dell Products L.P. Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold
US9372524B2 (en) * 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
WO2013095559A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Power conservation by way of memory channel shutdown
US9734079B2 (en) * 2013-06-28 2017-08-15 Intel Corporation Hybrid exclusive multi-level memory architecture with memory management
JP6303670B2 (ja) * 2014-03-19 2018-04-04 日本電気株式会社 複数cpuの起動回路、複数cpuの起動方法及び複数cpuの起動回路のプログラム
CN105630407A (zh) * 2015-05-29 2016-06-01 上海磁宇信息科技有限公司 一种计算系统及操作系统调度内存和启动系统的方法
US10430208B2 (en) * 2017-05-02 2019-10-01 Huawei Technologies Co., Ltd. Multi-version asynchronous dynamic software update system and method for applications with multiple threads
CN107391085A (zh) * 2017-06-20 2017-11-24 深圳芯邦科技股份有限公司 一种rom代码补丁运行方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293433A (ja) * 1999-04-12 2000-10-20 Nec Niigata Ltd プログラム実行方式
JP2001025053A (ja) * 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
US20100146256A1 (en) * 2000-01-06 2010-06-10 Super Talent Electronics Inc. Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
JP2010514017A (ja) * 2006-12-20 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
WO2009028106A1 (ja) * 2007-08-31 2009-03-05 Panasonic Corporation 情報処理装置
US20160300064A1 (en) * 2015-04-10 2016-10-13 Vixs Systems Inc. Secure processor for soc initialization

Also Published As

Publication number Publication date
DE112020004284B4 (de) 2022-12-08
JP7194314B2 (ja) 2022-12-21
US11307779B2 (en) 2022-04-19
US20220206694A1 (en) 2022-06-30
KR20220062072A (ko) 2022-05-13
CN114730245B (zh) 2023-05-09
US11893249B2 (en) 2024-02-06
DE112020004284T5 (de) 2022-06-09
CN114730245A (zh) 2022-07-08
US20210072906A1 (en) 2021-03-11
WO2021051025A1 (en) 2021-03-18
KR102523300B1 (ko) 2023-04-20

Similar Documents

Publication Publication Date Title
JP7194314B2 (ja) プロセッサの消費電力を削減するためのフラッシュとramの割り当てのシステムと方法
JP4160255B2 (ja) 仮想記憶システムにおける物理メモリの割り振りをアプリケーションプログラムによって制御するアプリケーション・プログラミング・インターフェイス
US7487329B2 (en) Page replacement policy for systems having multiple page sizes
US7313797B2 (en) Uniprocessor operating system design facilitating fast context switching
US7738451B2 (en) Method and device for flexible buffering in networking system
JP2005092875A (ja) スレッドスケジューリングを使用してデータスループットを向上させるためのシステムおよび方法
US6487630B2 (en) Processor with register stack engine that dynamically spills/fills physical registers to backing store
JP2001517829A (ja) 仮想記憶システムにおいてアプリケーションプログラムによってコードまたはデータをグループに分類して、物理メモリの割り振りの制御を行うアプリケーション・プログラミング・インターフェイス
JP2001517830A (ja) コンピュータ内のアプリケーションプログラム間でフォーカスが変更されたときに物理メモリの状態を復元する方法およびシステム
JP2003167737A (ja) スタック使用方法
CN109062826B (zh) 数据传输方法及系统
CN109002364B (zh) 进程间通信的优化方法、电子装置以及可读存储介质
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
JP2000242551A (ja) メモリ管理のための方法および装置
KR102086757B1 (ko) Gpu 메모리 스케줄러 및 이를 이용한 gpu 메모리 선점 방법
US7523284B1 (en) Method and apparatus for providing memory management within a system management mode
CN112306693B (zh) 数据包的处理方法和设备
CN117078495A (zh) 图形处理器的内存分配方法、装置、设备及存储介质
KR101085763B1 (ko) 멀티-프로세서 시스템에서의 메모리 할당
US6985970B2 (en) Data transfer with implicit notification
CN113010453A (zh) 一种内存管理的方法、系统、设备及可读存储介质
US20060230247A1 (en) Page allocation management for virtual memory
CN117290277A (zh) 一种amp系统的核间通信的方法、装置及电子设备
US20060143245A1 (en) Low overhead mechanism for offloading copy operations

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220510

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221209

R150 Certificate of patent or registration of utility model

Ref document number: 7194314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150