JP2018512648A - ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法 - Google Patents

ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法 Download PDF

Info

Publication number
JP2018512648A
JP2018512648A JP2017544628A JP2017544628A JP2018512648A JP 2018512648 A JP2018512648 A JP 2018512648A JP 2017544628 A JP2017544628 A JP 2017544628A JP 2017544628 A JP2017544628 A JP 2017544628A JP 2018512648 A JP2018512648 A JP 2018512648A
Authority
JP
Japan
Prior art keywords
queue
active
state
core
depth
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
JP2017544628A
Other languages
English (en)
Other versions
JP6818687B2 (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 JP2018512648A publication Critical patent/JP2018512648A/ja
Application granted granted Critical
Publication of JP6818687B2 publication Critical patent/JP6818687B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

一実施形態において、システムが、複数のコアと複数のキューとを含むプロセッサを含む。各キューは、コアの少なくとも1つにより処理されることになるパケットを記憶するための記憶場所を含む。各キューは、アクティブ又は非アクティブのうち1つである対応する状態を有する。各アクティブキューは、到来パケットを記憶することを可能にされ、各非アクティブキューは、到来パケットの記憶を不能にされる。各キューは、キューの占有された記憶場所の数を含む対応するキュー深さを有する。上記システムは、パケット配布ロジックをさらに含み、アクティブキューのキュー深さの和を含む合計キュー深さに基づいて複数のキューのうちの第1のキューの状態を第1の状態から第2の状態に変更するかどうかを決定する。他の実施形態が説明され、請求される。

Description

実施形態は、システムの電力管理に関し、より詳細には、マルチコアプロセッサの電力管理に関する。
半導体処理及びロジック設計における進化は、集積回路デバイス上に存在可能なロジック量の増加を許容している。結果として、コンピュータシステム構成は、システム内における単一又は複数の集積回路から、個々の集積回路上における複数のハードウェアスレッド、複数のコア、複数のデバイス、及び/又は完全なシステムへと発展している。さらに、集積回路の密度が増大するにつれ、コンピューティングシステムの(組み込み型システムからサーバへの)電力要件もまた上昇している。さらに、ソフトウェア非効率、及びそのハードウェアの要件もまた、コンピューティングデバイスエネルギー消費の増加を引き起こしている。実際、コンピューティングデバイスは、アメリカ合衆国などの国の電気供給全体のうちかなりのパーセンテージを消費していることを、いくつかの研究が示している。結果として、集積回路に関連付けられたエネルギー効率及び節約の必要が切実である。上記必要は、サーバ、デスクトップコンピュータ、ノートブック、Ultrabook(登録商標)、タブレット、モバイルフォン、プロセッサ、組み込み型システム等が(典型的なコンピュータ、自動車、及びテレビに含むことからバイオテクノロジーまで)より一層普及するとき、増大することになる。
本発明の一実施形態に従う、システムのブロック図である。 本発明の別の実施形態に従う、システムのブロック図である。 本発明の一実施形態に従う、システムのブロック図である。 本発明の一実施形態に従う、方法のフロー図である。 本発明の別の実施形態に従う、方法のフロー図である。 本発明の別の実施形態に従う、方法のフロー図である。 本発明の別の実施形態に従う、システムのブロック図である。 本発明の別の実施形態に従う、システムのブロック図である。
マルチコアプロセッサを含むシステム内で電力を節約するために、いくつかのマルチコアプロセッサは、1つ以上のコアが低電力状態(例えば、低減されたクロック周波数、低減された動作電圧、又はいくつかのスリープ状態のうち1つであり、コアのいくつか又はすべてのコア回路がオフにされる)に置かれることを許容する。例えば、低アクティビティの期間の間にエネルギーを節減するために、コアはスリープ状態に置かれることがあり、上記スリープ状態は、例えば、アドバンストコンフィグレーションアンドパワーインターフェース(Advanced Configuration and Power Interface)(ACPI)標準、例えば2014年4月に公開されたRev5.1に従う、コアがアクティブ状態(C)であるときよりもより少ない電力を消費する状態C乃至Cのうち1つである。別法として、1つ以上のコアが低い電力パフォーマンス(power-performance)状態に置かれることがあり、該状態は、例えば、アドバンストコンフィグレーションアンドパワーインターフェース(ACPI)標準、例えば2014年4月に公開されたRev5.1に従う、アクティブ状態(P)におけるコアのクロック周波数及び/又は動作電圧と比較してクロック周波数及び/又は動作電圧が低減され得る状態P乃至Pのうちの1つである。
コンピュータシステムはネットワークに結合されることがあり、ネットワークから、コンピュータシステムはデータパケットを受信することができる。コンピュータシステムは、ネットワークを介して受信される到来(incoming)データパケットを処理するマルチコアプロセッサを含むことができる。
処理されるべき到来データパケットの、プロセッサのコアへのランダムな配布は、プロセッサにおける電力使用非効率を結果としてもたらす可能性がある。実施形態において、メカニズムが採用されて、受信ネットワークトラフィック、例えばネットワークから受信されたデータパケット(さらに、本明細書においてパケット)を、アクティブコア内で処理されるように導くことができ、非アクティブの(例えば、アクティブ解除された(deactivated))コアに、非アクティブ、例えばスリープ状態又は低減された電力状態のままであることを許容する。上記メカニズムは、負荷閾値が達せられたとき、スリープしているコアを起こす(wake)ことができる。負荷条件に基づいて、コアを、高電力状態から低電力状態に、又は低電力状態から高電力状態に移行させることができる。電力節減の一目標は、プロセッサのアクティブコアが受信ネットワークトラフィックを処理すると同時に、最大数のコアをスリープ状態のままにさせることであり得、上記目標は、本明細書に提示される実施形態を介して実現することができる。
実施形態において、ネットワークインターフェースカード(NIC)及びプロセッサが一緒に作用して、NICを介してネットワークから受信されるパケットを処理するのに利用されるアクティブコアの総数(count)を最小化することにより、電力節減を達成することができる。NICは、1つ以上のキューバッファ(又は、本明細書において「キュー」)をアクティブ解除する(又は、アクティブ化する(activate))ことができ、各キューは、パケットが届けられるべきコアに対応する。パケットをアクティブコアに与える(feed)アクティブキューの総数の最小化は、最大数のコアが低電力状態、例えばスリープ状態に、又は、低減された電力/パフォーマンス状態、例えばその通常クロック周波数から低減されたクロック周波数における動作若しくは低減された電圧における動作に置かれる(又はそれにとどまる)ことを可能にすることができる。
実施形態において、負荷条件に基づいて、コアを、高電力使用状態から、対応するキューのアクティブ解除に関連付けられた低電力使用状態に、又は、低電力使用状態から、対応するキューのアクティブ化に関連付けられた高電力使用状態に移行させることができる。
一実施形態において、メカニズムが、受信トラフィックの処理を、すべての利用可能コアよりもより少ないコアに集約することができる。例えば、3つのコアを有し、その各々が10%のキャパシティで動作するプロセッサについて、作業負荷を、30%のキャパシティで稼働する1つのコアに再配布することができる。残りの2つのコアはパワーセービング状態(例えば、C(1)〜C(N)等)に置くことができ、さらなる受信トラフィックがさらなる処理電力を正当化するとき、上記残りの2つのコアのうち一方又は双方のコアを再アクティブ化することができる。上記メカニズムは、アクティブキューの総数を最小化するキュースケジューリング機能を提供するNICにより実装することができる。
一例として、上記メカニズムは、下記のとおり、擬似コード(ここで、キュー深さ(queue depth)(i)はi番目のキュー内の記憶場所の占有の測定であり、各記憶場所はパケットを記憶することができる):

If キュー深さ(i)の和 > 第1の閾値(例えば、75%の深さ), 非アクティブキューのプールから1つ以上のキューをアクティブ化する
Else If キュー深さの和 < 第2の閾値(例えば、25%の深さ), 1つ以上のキューをアクティブ解除する(及び、アクティブ解除されるキューにさらなる到来パケットを送信しない)
Else Continue

に従って実装することができる。
実施形態において、C状態又はP状態のための構成可能アクションを、NICからコアへの割り込みとして実装することができる。キュー閾値(例えば、上記擬似コード内の第1の閾値)が超えられ、対応するキューがアクティブ化されるとき、コアをNICが起こすことができる。
実施形態において、「ワンショット」割り込みをホストがプログラムすることができる。ワンショット割り込みをNICがトリガして、スリープモードの、キューによりパケットを与えられてアクティブ化されることになるコアを、起こすことができる。
他の実施形態において、プロセッサ上で稼働するソフトウェアが、新たにアクティブ化されたキュー内に記憶されているパケットの存在を検出してもよく、記憶されたパケットを処理するために対応するコアをスリープ状態又は低電力/パフォーマンス状態から再アクティブ化させることができる。
実施形態において、1つ以上のコアが、フルアクティブモードにおいて、例えば、高いクロック周波数及びフルの動作電圧で動作することができ、同時に、他のコアは、低周波数及び/又は低減された電圧における動作にとどまることができる。実施形態において、トラフィックを、高クロック周波数(及び、フル動作電圧)で動作する1つ以上のコアに向けることができ、同時に、他のコアは、低電力状態においてアイドルであり得る。いくつかの実施形態において、上記閾値は、動的であり得、例えば、他のパラメータに応じて決定することができ、該パラメータは、例えば、キュー深さの変化のレート、例えば、キュー深さの和(本明細書において、合計キュー深さ)のある時間にわたる変化のレートなどである。アクティブコアの総数の低減は、電力節減を結果としてもたらすことができる。
図1は、本発明の一実施形態に従う装置のブロック図である。装置100が、プロセッサ110と、プロセッサ110に結合されたネットワーク情報カード(NIC)130
とを含む。プロセッサ110は、コア112〜112、キュー114〜114、インターコネクトロジック116、キャッシュメモリ118、電力管理ユニット120を含み、他のコンポーネントを含んでもよい。NIC130は、パケット配布ロジック(packet distribution logic)132を含む。
動作において、NIC130は、ネットワーク入力140、例えば、NIC130が結合されているネットワーク(図示されていない)からの到来データパケットを受信することができる。パケット配布ロジック132は、各キューの占有度、例えば、対応するコアにより処理されるパケットで占有されたキューのうちの部分に基づいて、キュー114からアクティブキューの総数を増加させるか(又は、減少させるか)を決定することができる。パケット配布ロジック132は、いずれのキューが到来パケットの各々を受信すべきかを決定することができ、NIC130は、各到来パケットを対応する宛先キュー114に導くことができる。
各々の受信した到来パケットについて、対応する宛先キュー114を、各アクティブキューのキュー深さ(例えば、占有)に基づいて決定することができる。例えば、NIC130は、各パケットを、複数のアクティブキューのうち最も低いキュー深さ(例えば、最小の占有度)を有する対応するキューに導くことができる。
一実施形態において、パケット配布ロジック132は、すべてのアクティブキューの合計キュー深さが第1の閾値を超えている(例えば、合計占有が第1の閾値を超えている)ことを決定することができ、パケット配布ロジック132は、到来トラフィック(例えば、到来パケット)を扱うためにアクティブ化されるべき非アクティブキューを選択することができる。特定のキューのアクティブ化には、より低い電力状態(例えば、スリープ状態、例えばスリープ状態C〜Cのうちの1つ、又は、低電力/パフォーマンス状態、例えば低電力/パフォーマンス状態P〜Pのうちの1つ)からアクティブ状態への、対応するコアのアクティブ化が伴うことができる。
特定のキューをアクティブ化すると、さらなる到来パケットが上記特定のキュー内に置かれて、対応するコアのアクティブ化の後、対応するコアにより処理されることができる。一実施形態において、NIC130は受信したパケットを配布し、最も低い占有度を有する(例えば、最小数のパケットを記憶している)アクティブキューが次の到来パケットを受信する。
パケット配布ロジック132は、アクティブキューの占有度を監視することができ、すべてのアクティブキューの合計占有(例えば、合計キュー深さ)が第2の閾値を下回る場合、パケット配布ロジック132は、アクティブである選択されたキューをアクティブ解除することができる。選択されたキュー内のいかなる残りのパケットも処理された後、対応するコアが、低電力状態、例えばC〜C又はP〜Pに置かれることができる。
ゆえに、パケット配布ロジック132は、キュー114の各々を監視して、高い占有(高い合計キュー深さ)又は低い占有(低い合計キュー深さ)があるかを決定することができる。合計占有が低い場合、パケット配布ロジック132は、キュー114のうち1つ以上をアクティブ解除することができ、アクティブ解除されたキュー内のいかなる残りのパケットも処理された後、対応するコアが、より低い電力状態に置かれることができる。別法として、プロセッサ110内で稼働するソフトウェアが、対応するコアを、対応するキューが空いていると検出することに応答して、より低い電力状態に置かせてもよい。
一実施形態において、PMU120は、各コア112のアクティビティレベルを監視することができ、アクティブ解除されたキューに対応する特定のコアがアイドルであることを検出することができ、このことは、PMU120に対して、上記特定のコアの電力を下げる(power down)ように示すことができる。アクティブ解除されているいかなるキューも、アクティブ解除されたキューが空になるまで、その対応するコアにパケットを与えることを継続することができる。アクティブ解除されたキューが空であるとき、対応するコアは、低電力消費状態、例えば、スリープ状態C〜C又は低減された電力状態P〜Pのうちの1つに置かれることができる。さらなるパケットは、アクティブ解除されたキューに供給されない。コアを低電力消費状態又は低減された電力消費状態に置くことで、プロセッサ110の全体的エネルギー消費を低めることができる。
図2は、本発明の別の実施形態に従うシステムのブロック図である。システム200が、プロセッサ210と、プロセッサ210に結合されたネットワーク情報カード(NIC)230とを含む。プロセッサ210は、コア212〜212、キュー214〜214、インターコネクトロジック216、キャッシュメモリ218、電力管理ユニット220、パケット配布ロジック222を含み、他のコンポーネントを含んでもよい。
動作において、NIC230は、ネットワーク入力240、例えば、NIC230が結合されているネットワーク(図示されていない)からの到来データパケットを受信することができる。NIC230は、到来データパケットをパケット配布ロジック222に伝達することができる。パケット配布ロジック222は、いずれのキューが到来パケットの各々を受信すべきかを決定することができ、各到来パケットを対応する宛先キュー214に向けることができる。
各々の受信した到来パケットについて、対応する宛先キューを、各アクティブキューのキュー深さに基づいて決定することができる。例えば、パケット配布ロジック222は、各パケットを、複数のアクティブキューのうち最小のキュー深さを有するキューに向けることができる。
パケット配布ロジック222は、各キューのキュー深さの和に基づいて、キュー214のうちいずれがアクティブ化され又はアクティブ解除されるべきかを決定することができる。一実施形態において、パケット配布ロジックは、すべてのアクティブキューの合計利用可能キャパシティが第1の閾値を超えていることを決定することができ、アクティブ化すべき特定のキューを選択してアクティブキューの総数を増加させることができる。上記特定のキューをアクティブ状態に変更することには、より低い電力状態、例えばC〜C又はP〜Pからの、対応するコアのアクティブ化が伴うことができる。一実施形態において、パケット配布ロジック222は、「ワンショット」割り込みをトリガして、対応するコアを起こすことができる。別法として、プロセッサ内で稼働するソフトウェアが、対応するキュー内に記憶されたパケットに基づいて、コアの電力を上げる(power up)ように決定してもよい。別法として、PMU220が、各コアのアクティビティレベルを監視してもよく、特定のコアに対する増加したトラフィックの、PMU220による検出に応答して、上記対応するコアの動作パラメータ(例えば、動作電圧及びクロック周波数)を変更してもよい。
ネットワーク入力240が継続する(例えば、パケットがネットワークから受信される)とき、パケット配布ロジック222は、受信したパケットを、アクティブであるキューに配布する。一実施形態において、最小のキュー深さを有するアクティブキューが、到来パケットを受信する。
パケット配布ロジック222は、アクティブキューの合計キュー深さが第2の(例えば、低い)閾値より少ないことを決定することができる。パケット配布ロジック222は、アクティブキューのうち1つがアクティブ解除されるべきであると決定することができる。アクティブ解除について選択された特定のキューは、パケット配布ロジック222からさらなる到来パケットを受信しない。代わって、上記特定のキュー内に記憶されたパケットが、対応するコアにより処理されることになり、上記特定のキューが空くとき、対応するコアが、より低い電力状態、例えばC〜C又はP〜Pに置かれることができる。さらなるパケットは、非アクティブキューに供給されない。コアを低電力消費状態又は低減された電力消費状態に置くことは、プロセッサ210のより低い全体的エネルギー消費を結果としてもたらすことができる。非アクティブキューと対応するコアとは、増加したネットワークトラフィックに応答して、ある将来の時間に再アクティブ化されることができる。
図3は、本発明の別の実施形態に従うシステムのブロック図である。システム300が、プロセッサ310と、ネットワークインターフェースカード(NIC)370とを含む。
動作において、NIC370は、ネットワーク入力380を介してネットワークからパケットを受信する。パケット配布ロジック360(例えば、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせ)が、ネットワーク入力380を介して受信される各パケットについて、対応するコア312がパケットを受信しかつ処理する準備ができるまでパケットが一時的に記憶されるべきキュー314(例えば、314〜314)を決定する。図3の実施形態において、各キュー314は、単一のコア312に対応する。他の実施形態において、複数のキューが単一のコアに与えてもよく、あるいは、単一のキューが複数のコアに与えてもよい。
パケット配布ロジック360は、占有に関して、キュー314〜314の各々を監視することができる。すなわち、図3に示されるとおり、キュー314は、占有された領域342を含み、領域342は、場所316、318、320、324、及び326を含む。場所316〜326の各々が、NIC370から受信されたパケットを記憶する。キュー314は、占有されていない領域344を含み、領域344は、空いている場所328及び330を含む。同様に、キュー314は、占有された領域346を含み、領域346は、場所316、318、320、及び322を含む。場所316、318、320、322の各々が、NIC370から受信されたパケットを記憶する。キュー314は、占有されていない領域344を含み、領域344は、空いている場所324、326、328、及び330を含む。キュー314は、占有された領域350(例えば、占有された場所316、318)と、占有されていない領域352(例えば、320〜330)とを含む。キュー314は、占有された領域354(例えば、占有された場所316)と占有されていない領域352(例えば、318〜330)とを含む。
パケット配布ロジック360は、合計キュー深さ(例えば、合計占有)、例えば、アクティブキュー内のすべての占有された記憶場所の総数、例えば、342、346、350、・・・354内のすべての場所の総数を決定することができる。パケット配布ロジック360は、第1の閾値(例えば、高い閾値)に対する合計キュー深さの比較を実行することができる。合計キュー深さが、第1の閾値より大きい場合、パケット配布ロジック360は、さらなるキューを非アクティブ状態からアクティブ化するように決定して、到来パケットのための記憶可用性を増大させることができる。パケット配布ロジック360は、上記さらなるキューをアクティブとして、例えば、到来パケットを受信するのに利用可能として指定することができる。
上記さらなるキューは、低電力状態から起こされる(又は、アクティビティレベルに引き上げられる)べきさらなるコア(図示されていない)に与えることができる。ゆえに、さらなる実行キャパシティが正当化されるとき、選択された非アクティブキューが、アクティブ化されて到来パケットを受信することができ、スリープ状態又は低電力状態にある対応する非アクティブコアが、フルにアクティブ化され、あるいはアクティビティのより高いレベルに引き上げられることができる。一実施形態において、対応するコア312は、パケット配布ロジック360からのワンショット割り込みメッセージを介して覚醒される(awakened)ことができる。別の実施形態において、プロセッサ内で稼働するソフトウェアが、例えば、その非アクティブ状態からアクティブ化されるキュー内の、1つ以上のメモリ場所を監視することができる。パケットがアクティブ化されたキューに到着するとき、上記ソフトウェアは、対応するコアをアクティブ化させて、アクティブ化されたキューに到着したパケットを処理することができる。
パケット配布ロジック360は、第2の閾値、例えば低い閾値に対する、合計キュー深さの比較を実行することができる。合計キュー深さが第2の閾値より小さい場合、パケット配布ロジック360は、アクティブ状態にある選択されたキュー、例えばキュー314をアクティブ解除するように決定することができる。キュー314が、パケット配布ロジック360によりアクティブ解除されるとき、さらなる到来パケットは、キュー314内に記憶されない。キュー314内に(例えば、場所316及び318に)記憶されるパケットは、コア312により処理されることになる。キュー314が空くとき、コア312は、例えば電力管理ユニット(PMU)330により、スリープ状態(又は、低電力状態)に置かれることができる。いくつかの実施形態において、PMU330は、対応するコアのアクティビティレベルを綿密に監視することができる。特定のコアに記憶されたパケットが処理され終え、コアがアイドルになった後、PMU330は、コアをスリープ状態(例えば、C〜C)に、又は低減された電力/パフォーマンス状態(例えば、P〜P)に置くことができる。アクティブキューの数の低減は、アクティブコアの数の低減を可能にすることができ、このことは、プロセッサ310の全体的エネルギー消費を低減させることができる。
図4は、本発明の別の実施形態に従うシステムのブロック図である。システム400が、プロセッサ410と、プロセッサに結合されたネットワークインターフェースカード(NIC)460とを含み、他のコンポーネント、例えばダイナミックランダムアクセスメモリ等(図示されていない)を含んでもよい。プロセッサ410は、複数のコア412〜412、パケット配布ロジック420(例えば、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせ)、電力管理ユニット(PMU)430、複数のキューを含み、上記複数のキューは、キューバンドル(queue bundles)422、424、426、432、434、436、及び438を含む。プロセッサ410は、他のコンポーネント(図示されていない)、例えば、キャッシュメモリ、インターコネクトロジック等を含んでもよい。NIC460は、パケット配布ロジック470(例えば、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせ)を含む。
動作において、NIC460は、ネットワーク入力480を介してネットワークからパケットを受信することができる。パケット配布ロジック470は、ネットワーク入力480を介して受信される各パケットについて、キューバンドル(例えば、1つ以上のキューのセット)内の特定のキューを決定して、対応するコア412(コア412〜412のうちi番目のコア)がパケットを受信しかつ処理する準備ができるまでパケットを一時的に記憶する。図4の実施形態において、キューバンドル432は、パケットをコア412に与え、キューバンドル434及び436は、パケットをコア412に与え、キューバンドル438は、パケットをコア412N−1及び412に与える。他の実施形態において、各キューバンドルが、パケットを1つ以上のコアに与えてもよい。
パケット配布ロジック470は、利用可能記憶キャパシティに関して、キューバンドル432、434、436、・・・438の各々を監視することができる。パケット配布ロジック470は、合計キュー深さ(例えば、432、434、436、・・・438内のすべての占有された場所の総数)を決定することができる。パケット配布ロジック470は、第1の閾値(例えば、高い閾値)に対する合計キュー深さの比較を実行することができる。合計キュー深さが第1の閾値より大きい場合、パケット配布ロジック470は、さらなるキューバンドルを非アクティブ状態からアクティブ化するように決定して、到来パケットのための記憶可用性を増大させることができる。さらなるアクティブ化されたキューバンドルは、さらなるコア(図示されていない)が低電力状態から覚醒された後、該コアに与えることができる。
パケット配布ロジック470は、上記さらなるキューバンドルをアクティブとして、例えば、到来パケットを受信するのに利用可能として指定することができる。一実施形態において、パケット配布ロジック470は、「ウェイクアップメッセージ」をさらなるコアに送信することができる。別の実施形態において、プロセッサ410上で稼働するソフトウェアが、アクティブ化されたキューバンドルに対して到来パケットが送信されたことを検出することができ、対応するコア(412のうち1つ)を起こして、アクティブ化されたキューバンドルにより供給されることになる到来パケットを処理させることができる。
ゆえに、さらなる実行キャパシティが正当化されるとき、さらなるキューバンドルが、アクティブ化されて到来パケットを受信することができ、スリープ状態(又は、低電力状態)における1つ(又は複数)の対応するコアが、アクティブ化され、又はその低電力状態からアクティビティのより高いレベルに引き上げられて、上記さらなるアクティブ化されたキューバンドルからパケットを受信することができる。
パケット配布ロジック470は、第2の閾値、例えば低い閾値に対する、合計キュー深さの比較を実行することができる。合計キュー深さが第2の閾値より小さい場合、パケット配布ロジック470は、アクティブ状態にある選択されたキューバンドル、例えばキューバンドル432をアクティブ解除するように決定することができる。キューバンドル432がパケット配布ロジック470によりアクティブ解除されるとき、さらなる到来パケットは、キューバンドル432内に記憶されない。キューバンドル432内に記憶されるパケットは、コア412により処理されることになる。キューバンドル432が空くとき、コア412は、例えばPMU430により、スリープ状態(又は、低電力状態)に置かれることができる。ゆえに、アクティブキューの数の低減は、アクティブコアの数の低減を可能にすることができ、このことは、プロセッサ410の全体的エネルギー消費を低減させることができる。
PMU430は、各コアのアクティビティレベルを監視することができる。特定のキューバンドルがアクティブ解除される場合、対応するコアに記憶されたパケットが処理され終え、対応するコアがアイドルになった後、PMU430は、対応するコアを、動作電圧の低減、クロック周波数の低減、又はこれらの組み合わせによって、スリープ状態(例えば、C〜C)に、又は低電力状態(例えば、P〜P)に置くことができる。別法として、プロセッサ410上で稼働するソフトウェアが、キュー内の場所の占有を監視することができる。キュー深さが特定のレベルを下回るとき、上記ソフトウェアは、対応するコアに、非アクティブ、例えば、スリープ状態(例えば、C〜C)又は低電力状態(例えば、P〜P)になるように指令することができる。
プロセッサ410内のパケット配布ロジック420は、パケットを第1のコアから第2のコアに再配布して、例えば、アクティブキューの総数及びアクティブコアの総数を最小化することができる。このことは、電力節減を結果としてもたらすことができる。例えば、パケット配布ロジック420は、選択されたパケット(例えば、処理され、キューバンドル432及び434内に一時的に記憶されることになるパケット)を、コア412及び412による上記選択されたパケットの処理の前に、キュー422及び424を介して受け入れることができ、上記選択されたパケットを、コア412により処理されることになるキュー426に再配布することができる。(キュー422、424、426の構成は単に例示であり、他の構成が企図されることに留意する。)パケットの再配布は、キューバンドル432及び434内で処理を待ついかなる残りのパケットも除去することにより、キューバンドル432及び434のアクティブ解除と、対応するコア412及び412のアクティブ解除又は電力低減とを許容することができる。
図5は、本発明の一実施形態に従う方法のフロー図である。方法500がブロック502で始まり、ブロック502において、プロセッサに、例えばマルチコアプロセッサにインターフェースされたネットワークインターフェースカード(NIC)において、ネットワークからパケットを受信する。判断のひし形504へ続き、キュー深さの和が閾値1(例えば、高い閾値)を超えている場合、ブロック506に進み、パケット配布ロジック(これは、NIC内又はプロセッサ内に位置し得る)が、1つのキューをアクティブキューのプールに追加する(キューをアクティブ化する)ことができる。対応するコアが、アクティブ化されて、アクティブ化されたキューにより受信されたパケットを処理することができる。判断のひし形508に移り、キュー深さの和が閾値2(例えば、低い閾値)より小さい場合、ブロック512に移り、パケット配布ロジックは、1つのキューをアクティブ解除し、例えば、選択されたキューをアクティブキューのプールから除去する。対応するコアが、アクティブ解除されることができる。ブロック512に進み、受信されたパケットを、アクティブキューの中から選ばれたキューに向けることができる。一実施形態において、受信したパケットを記憶するのに選ばれるキューは、最も少なく投入された(populated)アクティブキューである。
上記方法はブロック502に戻り、後続のパケットがNICにより受信される。
図6は、本発明の別の実施形態に従う方法である。方法600は、マルチコアプロセッサの電力管理ユニット(PMU)によってマルチコアプロセッサの各キューを監視して、プロセッサのいずれのキューが例えばパケット配布ロジックによりアクティブ解除されたかを決定し、その対応するキューがアクティブ解除され及び空である各コアの電力を下げる(又は、低減された電力レベルで動作させる)方法であり、上記パケット配布ロジックは、プロセッサとインターフェースするネットワークインターフェースカード(NIC)に位置し得る(あるいは、プロセッサ内に位置し得る)。
キューは、インデックスi=1,Nでラベル付けすることができる。各キューは、対応するコアによる実行のためにパケットを記憶し、該対応するコアに与える。
ブロック602において、インデックスiはゼロ(0)に等しく設定される。ブロック604へ続き、インデックスiはイチ(1)だけインクリメントされる。判断のひし形606に進み、インデックスiがNより大きく、ここでNはプロセッサ内のキューの合計数である場合、上記方法はブロック602に戻り、各キューの考慮が再度始まる。iがNより小さい場合、判断のひし形608に進み、i番目のキューがアクティブである場合、ブロック604に戻り、インデックスiはインクリメントされ、例えば、順次的に次のキューが考慮される。判断のひし形608において、i番目のキューが非アクティブである(例えば、アクティブ解除されている)場合、判断のひし形610に進み、(非アクティブの)i番目のキュー内に処理されることを待っているパケットがある場合、ブロック614へ続き、プロセッサの電力管理ユニットが、i番目のコアが電力を上げられたままであってi番目のキュー内のパケットを処理することを許容する。判断のひし形610に戻り、i番目のキュー内に記憶されたすべてのパケットが処理された(例えば、i番目のキューが空である)とき、ブロック612に進み、PMUはi番目のコアを低電力又はスリープ状態に置く。
ゆえに、PMUは、コアのアクティビティレベルが、(NIC内に又はプロセッサ内に位置する)パケット配布ロジックによる対応するキューのアクティブ解除に起因して停止したことを、検出することができる。PMUは、対応するアクティブ解除されたキュー内に記憶されたパケットが処理された後、コアを低電力状態(例えば、低減された電力/パフォーマンス状態又はスリープ状態)に置くことができる。
次に図7を参照すると、本発明の別の実施形態に従うシステム700のブロック図が示され、システム700は、マルチドメインプロセッサ702及びネットワークインターフェースカード704を含む。図7の実施形態に示されるとおり、プロセッサ702は、複数のドメインを含む。具体的に、コアドメイン710が、複数のコア710〜710を含み、各コアは、対応するキュー708〜708を介してパケットを供給されることができる。プロセッサ702は、1つ以上のグラフィックスエンジンを含むことができるグラフィックスドメイン720をさらに含み、システムエージェントドメイン750がさらに存在し得る。いくつかの実施形態において、システムエージェントドメイン750は、コアドメインとは独立した周波数で実行することができ、常時パワーオンされたままであって電力制御イベント及び電力管理を扱うことができ、そのため、ドメイン710及び720が制御されて、高い電力状態及び低い電力状態に動的に入り、及び出ることができる。ドメイン710及び720の各々は、異なる電圧及び/又は電力で動作することができる。3つのドメインのみ図示されているが、本発明の範囲はこの点で限定されないことを理解されたく、さらなるドメインが他の実施形態において存在できることに留意する。例えば、複数のコアドメインが存在し、各々が少なくとも1つのコアを含んでもよい。
一般に、各コア710は、様々な実行ユニット及びさらなる処理要素に対して追加で、低レベルキャッシュをさらに含むことができる。同様にして、様々なコアが、互いに、及び、複数のユニットのラストレベルキャッシュ(LLC)740〜740で形成された共有キャッシュメモリに結合されてもよい。様々な実施形態において、LLC740は、コア及びグラフィックスエンジン並びに様々なメディア処理回路の間で共有されることができる。ゆえに、図示されるとおり、リングインターコネクト730が、コアを一緒に結合し、コアとグラフィックスドメイン720とシステムエージェント回路750とにおける相互接続を提供する。一実施形態において、インターコネクト730はコアドメインの一部であり得る。しかしながら、他の実施形態において、リングインターコネクトはその独自のドメインのものであり得る。
さらに図示されるとおり、システムエージェントドメイン750は、ディスプレイコントローラ752を含むことができ、ディスプレイコントローラ752は、関連付けられたディスプレイの制御及び該ディスプレイに対するインターフェースを提供することができる。さらに図示されるとおり、システムエージェントドメイン750は、電力管理ユニット755を含むことができ、電力管理ユニット755は、本明細書に説明される実施形態に従い、各コアを動作させるための対応する電力レベルを決定する。
プロセッサ702は、パケット配布ロジック706を含むネットワークインターフェースカード704に結合され、本発明の実施形態に従い、パケット配布ロジック706は、キュー708〜708のうちいずれがネットワークから受信された到来パケットを受信すべきかを決定することができ、アクティブキューの総数を増加させ又は減少させるかどうかを決定することができる。例えば、パケット配布ロジック706は、合計キュー深さの第1の(例えば、高い)閾値に対する比較、又は第2の(例えば、低い)閾値に対する比較に基づいて、事前に非アクティブのキューをアクティブ化するように、あるいは現在アクティブのキューをアクティブ解除するように決定することができる。特定のキューがアクティブ解除される場合、PCU755は、本発明の実施形態に従い、上記特定のキュー内の残りのパケットが処理された後、対応するコアを低電力状態、例えば、スリープ状態又は低電力/パフォーマンス状態に置くことにより、対応するコアにより消費される電力を低減させることができる。
図7にさらに示されるとおり、プロセッサ700は、統合されたメモリコントローラ(integrated memory controller)(IMC)770をさらに含むことができ、IMC770は、システムメモリ、例えばダイナミックランダムアクセスメモリ(DRAM)などに対するインターフェースを提供することができる。複数のインターフェース780〜780が存在して、プロセッサと他の回路との間の相互接続を可能にすることができる。例えば、一実施形態において、少なくとも1つのダイレクトメディアインターフェース(DMI)インターフェースが、1つ以上のPCIeTMインターフェースと同様に提供されてもよい。またさらに、さらなるプロセッサ又は他の回路などの他のエージェント間における通信を提供するために、1つ以上のQPIインターフェースがさらに提供されてもよい。図7の実施形態において上記高レベルで図示されているが、本発明の範囲は上記の点で限定されないことを理解されたい。
次に図8を参照すると、システム800のブロック図が示され、システム800は、ネットワークインターフェースカード(NIC)804に結合された一代表的なシステムオンチップ(SoC)802を含む。図示される実施形態において、SoC800は、スマートフォン又は他の低電力デバイス、例えばタブレットコンピュータ又は他のポータブルコンピューティングデバイスなどへの組み入れに対して最適化される低電力動作について構成された、マルチコアSoCであり得る。一例として、SoC800は、非対称の又は異なるタイプのコア、例えば、より高い電力の及び/又はより低いの電力コアの組み合わせ、例えばアウトオブオーダコア及びインオーダコアなどを用いて実装することができる。種々の実施形態において、上記コアは、Intel(登録商標)アーキテクチャTMコア設計又はARMアーキテクチャ設計に基づいてもよい。さらに別の実施形態において、IntelコアとARMコアとの混合が、所与のSoCに実装されてもよい。
図8に見られるとおり、SoC800は、複数の第1のコア812〜812を有する第1のコアドメイン810を含み、第1のコア812〜812の各々が、対応するキュー814〜814を介してパケットを受信する。一例において、コア812〜812は、低電力コア、例えばインオーダコアなどであり得る。一実施形態において、第1のコア812〜812は、ARM Cortex A53コアで実装されてもよい。同様にして、上記コアは、コアドメイン810のキャッシュメモリ815に結合する。さらに、SoC802は、第2のコアドメイン820を含む。図8の例示において、第2のコアドメイン820は、複数のコア822〜822を有し、コア822〜822の各々が、対応するキュー824〜824を介してパケットを受信する。一例において、上記コア822〜822は、第1のコア812よりもより高い電力消費コアであり得る。一実施形態において、第2のコア822〜822はアウトオブオーダコアであり得、アウトオブオーダコアはARM Cortex A57コアで実装されてもよい。同様にして、上記コア822〜822は、コアドメイン820のキャッシュメモリ825に結合する。図8に示される例は各ドメイン内に4つのコアを含むが、より多くの又はより少ないコアが他の例において所与のドメイン内に存在してもよいことを理解することに留意されたい。
キュー814〜814及び824〜824の各々は、NIC804に結合することができる。NIC804は、パケット配布ロジック806を含み、パケット配布ロジック806は、キュー814〜814及び824〜824のうちいずれがネットワークから受信された到来パケットを受信すべきであるかを決定することができる。パケット配布ロジック806は、本発明の実施形態に従い、アクティブキューの総数を増加させるか又は減少させるかどうかをさらに決定することができる。例えば、パケット配布ロジック806は、合計キュー深さの、第1の(例えば、高い)閾値に対する比較、又は第2の(例えば、低い)閾値に対する比較に基づいて、非アクティブキューをアクティブ化するように、又は現在アクティブなキューをアクティブ解除するように決定することができる。特定のキューがアクティブ解除されることになる場合、対応するコアにより消費される電力は低減される可能性があり、例えば、コアが、例えばSoC802の電力管理ユニット(図示されていない)により、スリープ状態に、又は低減された電力/パフォーマンス状態に置かれることができる。
図8をさらに参照すると、グラフィックスドメイン830がさらに提供され、グラフィックスドメイン830は、グラフィックス作業負荷を独立して実行するように構成された1つ以上のグラフィックス処理ユニット(GPU)を含むことができ、上記グラフィックス作業負荷は、例えば、コアドメイン810及び820の1つ以上のコアにより提供される。一例として、GPUドメイン830は、グラフィックス及びディスプレイレンダリング動作を提供することに追加で、様々な画面サイズについてディスプレイサポートを提供するのに使用することができる。
図示されるとおり、様々なドメインがコヒーレントインターコネクト840に結合する。コヒーレントインターコネクト840は、一実施形態においてキャッシュコヒーレントインターコネクトファブリックであり得、キャッシュコヒーレントインターコネクトファブリックは、同様にして、統合されたメモリコントローラ850に結合する。コヒーレントインターコネクト840は、いくつかの例において、共有キャッシュメモリ、例えばL3キャッシュなどを含むことができる。一実施形態において、メモリコントローラ850は、オフチップメモリとの通信の複数のチャネル、例えばDRAM(簡素化のため図8の例示には示されていない)の複数のチャネルなどを提供するダイレクトメモリコントローラであり得る。
種々の例において、コアドメインの数は変動し得る。例えば、モバイルコンピューティングデバイスへの組み入れに適した低電力SoCについて、図8に示されるものなどの限られた数のコアドメインが存在し得る。またさらに、上記低電力SoCにおいて、より高い電力のコアを含むコアドメイン820は、より少数のこうしたコアを有してもよい。例えば、一実装において、2つのコア822が提供されて、低減された電力消費レベルにおける動作を可能にすることができる。さらに、種々のコアドメインが、割り込みコントローラにさらに結合されて、種々のドメイン間における作業負荷の動的スワッピングを可能にしてもよい。
さらに別の実施形態において、より多数のコアドメインと、さらなる動作IPロジックとが、SoCが他のコンピューティングデバイス、例えばデスクトップ、サーバ、高パフォーマンスコンピューティングシステム、基地局などへの組み入れのためにより高いパフォーマンス(及び、電力)レベルにスケーリングされることができる点で、存在してもよい。1つのこうした例として、各々が所与の数のアウトオブオーダコアを有する4つのコアドメインが提供され得る。またさらに、動作GPUサポート(これは、一例として、GPGPUの形式をとり得る)に追加で、特定の機能(例えば、ウェブサービング、ネットワーク処理、スイッチング等)のための最適化されたハードウェアサポートを提供する1つ以上のアクセラレータが、さらに提供されてもよい。さらに、入力/出力インターフェースが存在して、上記アクセラレータをオフチップコンポーネントに結合してもよい。
さらなる実施形態が以下に説明される。
第1の実施形態において、システムが、複数のコアと複数のキューとを含むプロセッサを含み、各キューは、上記コアの少なくとも1つにより処理されるパケットを記憶する記憶場所を含み、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、到来パケットを記憶することを可能にされ、各非アクティブキューは、上記到来パケットの記憶を不能にされ、各キューは、該キューの占有された記憶場所の数(a count of occupied storage locations)を含む対応するキュー深さを有する。当該システムは、上記アクティブキューのキュー深さの和を含む合計キュー深さに基づいて上記複数のキューのうちの第1キューの状態を第1状態から第2状態に変更するかを決定するパケット配布ロジックをさらに含む。
第2の実施形態が、第1の実施形態の要素を含み、上記合計キュー深さが第1閾値を超えているとき、上記パケット配布ロジックは、上記第1キューの状態を第1状態の非アクティブから第2状態のアクティブに変更する。
第3の実施形態が、第2の実施形態の要素を含み、上記第1キューの状態がアクティブに変更された後、上記パケット配布ロジックは、上記到来パケットを上記第1キューに記憶されるように向ける。
第4の実施形態が、第2の実施形態の要素を含み、上記プロセッサは、電力管理ユニット(PMU)をさらに含み、上記第1キューのアクティブ化に応答して、上記PMUは、対応するコアを、低減された電力状態から、該低減された電力状態よりもより多くの電力を消費するアクティブ電力状態に変更する。
第5の実施形態が、第1の実施形態の要素を含み、上記合計キュー深さが、第2閾値より小さいとき、上記パケット配布ロジックは、第2キューの状態を、第1状態のアクティブから第2状態の非アクティブに変更する。
第6の実施形態が、第5の実施形態の要素を含み、上記第2キューのキュー深さは、上記アクティブキューのキュー深さのうち最小である。
第7の実施形態が、第5の実施形態の要素を含み、上記プロセッサは、電力管理ユニット(PMU)をさらに含み、上記第2キューのアクティブ解除に応答して、上記PMUは、対応するコアのコア状態をアクティブ状態から低減された電力状態に変更する。
第8の実施形態が、第5の実施形態の要素を含み、上記パケット配布ロジックは、上記第2キューのアクティブ解除に応答して、対応するコアをアクティブ状態から低減された電力状態に変更させる。
第9の実施形態が、実施形態1乃至8のうちいずれか1つの要素を含み、上記パケット配布ロジックは、到来パケットを、対応する状態がアクティブである第3キューに記憶されるように向け、上記第3キューのキュー深さは、上記アクティブキューのキュー深さのうち最小である。
第10の実施形態が、実施形態1乃至8のうちいずれか1つの要素を含み、上記プロセッサに結合され、かつ上記パケット配布ロジックを含むネットワークインターフェースカード(NIC)、をさらに含み、上記NICは、ネットワークからの到来パケットを受信し、上記パケット配布ロジックは、各々の到来パケットについて、対応するアクティブキューを選択して上記到来パケットを記憶する。
第11の実施形態が、命令を含む少なくとも1つのマシン読取可能記憶媒体を含み、上記命令は実行されると、システムが、複数のコアと複数のキューとを含むプロセッサのアクティブキューの合計キュー深さを決定することであって、各コアは、該コアにより処理されるパケットを記憶する少なくとも1つの対応するキューを有し、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、上記プロセッサに結合されたネットワークインターフェースカード(NIC)から受信される到来パケットを受信しかつ記憶することを可能にされ、各非アクティブキューは、上記到来パケットの受信及び記憶を不能にされ、各アクティブキューは、該キュー内の占有された場所の数を含む関連付けられたキュー深さを有し、上記合計キュー深さは、上記アクティブキューのキュー深さの和を含む、ことと、少なくとも上記合計キュー深さに基づいて、上記複数のキューのうちの第1キューの状態を変更するかを決定することと、を可能にする。
第12の実施形態が、第11の実施形態の要素を含み、上記合計キュー深さが第1閾値を超えていることに応答して上記第1キューの状態を非アクティブからアクティブに変更する命令をさらに含む。
第13の実施形態が、第12の実施形態の要素を含み、上記第1キューの状態がアクティブに変更された後、上記到来パケットを記憶のために上記第1キューに向ける命令をさらに含む。
第14の実施形態が、第12の実施形態の要素を含み、上記第1キューのアクティブ化に応答して、対応するコアを低電力状態から、該低電力状態よりもより多くの電力を消費するアクティブ電力状態に置く命令をさらに含む。
第15の実施形態が、実施形態11乃至14のうちいずれか1つの要素を含み、上記合計キュー深さが第2閾値より小さいことに応答して、上記第1キューの状態をアクティブから非アクティブに変更する命令をさらに含む。
第16の実施形態が、第15の実施形態の要素を含み、上記第2閾値は、ある時間にわたる上記合計キュー深さの変化のレートに基づいて決定される。
第17の実施形態が、第15の実施形態の要素を含み、上記第1キューのアクティブ解除に応答して、対応するコアをアクティブ電力状態から、該アクティブ電力状態よりもより少ない電力を消費する低減された電力状態に変更させる命令をさらに含む。
第18の実施形態が、方法であり、当該方法は、複数のアクティブキューの各々について、複数のコアと複数のキューとを含むプロセッサの占有された記憶場所の数を含む対応するキュー深さを決定することを含み、各キューは、上記コアの少なくとも1つに関連付けられ、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、上記プロセッサに結合されたネットワークインターフェースカード(NIC)から受信される到来パケットを記憶することを可能にされ、各非アクティブキューは、上記到来パケットの受信及び記憶を不能にされ、各コアは、上記アクティブキューの少なくとも1つから受信される1つ以上のパケットを処理する。当該方法は、上記NICからの上記到来パケットを、上記対応するキュー深さに基づいて、上記アクティブキューから選択された第1アクティブキューに向けることをさらに含む。
第19の実施形態が、第18の実施形態の要素を含み、上記到来パケットを、上記対応するキュー深さが上記アクティブキューのそれぞれのキュー深さのうち最小であることに応答して、上記第1アクティブキューに向けること、をさらに含む。
第20の実施形態が、第18の実施形態の要素を含み、少なくとも合計キュー深さに基づいて、上記複数のキューのうちの第2キューの対応する状態を変更するかを決定することをさらに含み、上記合計キュー深さは、上記アクティブキューのキュー深さの和を含む。
第21の実施形態が、第20の実施形態の要素を含み、上記第2キューの対応する状態を、上記合計キュー深さが第1閾値を超えていることに応答して非アクティブからアクティブに変更することをさらに含む。
第22の実施形態が、第21の実施形態の要素を含み、上記第2キューの対応する状態がアクティブに変更された後、上記到来パケットを記憶のために上記第2キューに向けることをさらに含む。
第23の実施形態が、第21の実施形態の要素を含み、上記第2キューのアクティブ化に応答して、対応するコアを低電力状態から、該低電力状態よりもより多くの電力を消費するアクティブ電力状態に変更させることをさらに含む。
第24の実施形態が、第20の実施形態の要素を含み、上記第2キューの対応する状態を、上記合計キュー深さが第2閾値より小さいことに応答してアクティブから非アクティブに変更することをさらに含む。
第25の実施形態が、第24の実施形態の要素を含み、上記第2閾値は、ある時間にわたる上記合計キュー深さの変化のレートに基づいて決定される。
第26の実施形態が、第24の実施形態の要素を含み、上記第2キューの対応する状態が非アクティブに変わることに応答して、対応するコアをアクティブ電力状態から、該アクティブ電力状態よりもより少ない電力を消費する低減された電力状態に変更させることをさらに含む。
第27の実施形態が、装置であり、当該装置は、実施形態18〜26のうちいずれか1つの方法を実行する手段を含む。
第28の実施形態が、実施形態18〜26のうちいずれか1つの方法を実行する装置である。
第29の実施形態が、方法であり、当該方法は、複数のコアと複数のキューとを含むプロセッサのアクティブキューの合計キュー深さを決定することを含み、各コアは、該コアにより処理されるパケットを記憶する少なくとも1つの対応するキューを有し、上記合計キュー深さは、上記複数のキューのうちすべてのアクティブキューの占有された場所の数を含み、上記アクティブキューのうちの各キューは、アクティブキューの占有された場所の数を含む対応するキュー深さを有し、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、上記プロセッサに結合されたネットワークインターフェースカード(NIC)からの到来パケットを受信しかつ記憶することを可能にされ、各非アクティブキューは、上記到来パケットの受信及び記憶を不能にされる。当該方法は、少なくとも上記合計キュー深さに基づいて、上記複数のキューのうちの第1キューの対応する状態を変更するかを決定することをさらに含む。
第30の実施形態が、第29の実施形態の要素を含み、上記合計キュー深さが第1閾値より大きいことに応答して、上記第1キューの対応する状態を非アクティブからアクティブに変更することをさらに含む。
第31の実施形態が、第29の実施形態の要素を含み、上記合計キュー深さが第2閾値より小さいことに応答して、上記第1キューの対応する状態をアクティブから非アクティブに変更することをさらに含む。
第32の実施形態が、第31の実施形態の要素を含み、上記第1キューの対応する状態が非アクティブに変わることに応答して、対応するコアをアクティブ電力状態から、該アクティブ電力状態よりもより少ない電力を消費する低減された電力状態に変更させることをさらに含む。
実施形態は、多くの種々のタイプのシステムにおいて使用されてよい。例えば、一実施形態において、通信デバイスを、本明細書に説明される様々な方法及び手法を実行するように配置することができる。当然ながら、本発明の範囲は通信デバイスに限定されず、代わって、他の実施形態が、コンピューティングデバイス上で実行されることに応答して本明細書に説明される方法及び手法の1つ以上をデバイスに実行させる命令を処理する他タイプの装置、又は該命令を含む1つ以上のマシン読取可能媒体に向けられることが可能である。
実施形態は、コードにおいて実装されてもよく、命令を実行するようにシステムをプログラムするのに使用できる上記命令を記憶させた非一時的記憶媒体に記憶されてもよい。実施形態は、さらに、データにおいて実装されてもよく、少なくとも1つのマシンにより使用される場合に該少なくとも1つのマシンに1つ以上の動作を実行するための少なくとも1つの集積回路を製作させる非一時的記憶媒体に記憶されてもよい。記憶媒体には、これらに限られないが、フロッピーディスク、光ディスクを含む任意タイプのディスク、ソリッドステートドライブ(SSD)、コンパクトディスク読取専用メモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)、磁気光ディスク、半導体デバイス、例えば読取専用メモリ(ROM)など、ランダムアクセスメモリ(RAM)、例えばダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)など、消去可能プログラマブル読取専用メモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、磁気若しくは光学カード、又は電子命令を記憶するのに適した任意の他タイプの媒体を含むことができる。
本発明は、限られた数の実施形態に関して説明されたが、これらからの多数の修正及びバリエーションを当業者は十分理解するであろう。別記の請求項は、本発明の真の主旨及び範囲内に入るときすべての上記修正及びバリエーションをカバーすることが意図される。

Claims (26)

  1. 複数のコアと複数のキューとを含むプロセッサであって、各キューは、前記コアの少なくとも1つにより処理されるパケットを記憶する記憶場所を含み、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、到来パケットを記憶することを可能にされ、各非アクティブキューは、前記到来パケットの記憶を不能にされ、各キューは、該キューの占有された記憶場所の数を含む対応するキュー深さを有する、プロセッサと、
    前記アクティブキューのキュー深さの和を含む合計キュー深さに基づいて前記複数のキューのうちの第1キューの状態を第1状態から第2状態に変更するかを決定するパケット配布ロジックと、
    を含むシステム。
  2. 前記合計キュー深さが第1閾値を超えているとき、前記パケット配布ロジックは、前記第1キューの状態を第1状態の非アクティブから第2状態のアクティブに変更する、請求項1に記載のシステム。
  3. 前記第1キューの状態がアクティブに変更された後、前記パケット配布ロジックは、前記到来パケットを前記第1キューに記憶されるように向ける、請求項2に記載のシステム。
  4. 前記プロセッサは、電力管理ユニット(PMU)をさらに含み、前記第1キューのアクティブ化に応答して、前記PMUは、対応するコアを、低減された電力状態から、該低減された電力状態よりもより多くの電力を消費するアクティブ電力状態に変更する、請求項2に記載のシステム。
  5. 前記合計キュー深さが、第2閾値より小さいとき、前記パケット配布ロジックは、第2キューの状態を、第1状態のアクティブから第2状態の非アクティブに変更する、請求項1に記載のシステム。
  6. 前記第2キューのキュー深さは、前記アクティブキューのキュー深さのうち最小である、請求項5に記載のシステム。
  7. 前記プロセッサは、電力管理ユニット(PMU)をさらに含み、前記第2キューのアクティブ解除に応答して、前記PMUは、対応するコアのコア状態をアクティブ状態から低減された電力状態に変更する、請求項5に記載のシステム。
  8. 前記パケット配布ロジックは、前記第2キューのアクティブ解除に応答して、対応するコアをアクティブ状態から低減された電力状態に変更させる、請求項5に記載のシステム。
  9. 前記パケット配布ロジックは、到来パケットを、対応する状態がアクティブである第3キューに記憶されるように向け、前記第3キューのキュー深さは、前記アクティブキューのキュー深さのうち最小である、請求項1乃至8のうちいずれか1項に記載のシステム。
  10. 前記プロセッサに結合され、かつ前記パケット配布ロジックを含むネットワークインターフェースカード(NIC)、をさらに含み、前記NICは、ネットワークからの到来パケットを受信し、前記パケット配布ロジックは、各々の到来パケットについて、対応するアクティブキューを選択して前記到来パケットを記憶する、請求項1乃至8のうちいずれか1項に記載のシステム。
  11. 命令を含むコンピュータプログラムであって、前記命令は実行されると、
    複数のコアと複数のキューとを含むプロセッサのアクティブキューの合計キュー深さを決定することであって、各コアは、該コアにより処理されるパケットを記憶する少なくとも1つの対応するキューを有し、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、前記プロセッサに結合されたネットワークインターフェースカード(NIC)から受信される到来パケットを受信しかつ記憶することを可能にされ、各非アクティブキューは、前記到来パケットの受信及び記憶を不能にされ、各アクティブキューは、該キュー内の占有された場所の数を含む関連付けられたキュー深さを有し、前記合計キュー深さは、前記アクティブキューのキュー深さの和を含む、ことと、
    少なくとも前記合計キュー深さに基づいて、前記複数のキューのうちの第1キューの状態を変更するかを決定することと、
    をシステムに実行させる、コンピュータプログラム。
  12. 前記合計キュー深さが第1閾値を超えていることに応答して前記第1キューの状態を非アクティブからアクティブに変更する命令、をさらに含む請求項11に記載のコンピュータプログラム。
  13. 前記第1キューの状態がアクティブに変更された後、前記到来パケットを記憶のために前記第1キューに向ける命令、をさらに含む請求項12に記載のコンピュータプログラム。
  14. 前記第1キューのアクティブ化に応答して、対応するコアを低電力状態から、該低電力状態よりもより多くの電力を消費するアクティブ電力状態に置く命令、をさらに含む請求項12に記載のコンピュータプログラム。
  15. 前記合計キュー深さが第2閾値より小さいことに応答して、前記第1キューの状態をアクティブから非アクティブに変更する命令、をさらに含む請求項11乃至14のうちいずれか1項に記載のコンピュータプログラム。
  16. 前記第2閾値は、ある時間にわたる前記合計キュー深さの変化のレートに基づいて決定される、請求項15に記載のコンピュータプログラム。
  17. 前記第1キューのアクティブ解除に応答して、対応するコアをアクティブ電力状態から、該アクティブ電力状態よりもより少ない電力を消費する低減された電力状態に変更させる命令、をさらに含む請求項15に記載のコンピュータプログラム。
  18. 複数のアクティブキューの各々について、複数のコアと複数のキューとを含むプロセッサの占有された記憶場所の数を含む対応するキュー深さを決定することであって、各キューは、前記コアの少なくとも1つに関連付けられ、各キューは、アクティブ及び非アクティブのうちの1つである対応する状態を有し、各アクティブキューは、前記プロセッサに結合されたネットワークインターフェースカード(NIC)から受信される到来パケットを記憶することを可能にされ、各非アクティブキューは、前記到来パケットの受信及び記憶を不能にされ、各コアは、前記アクティブキューの少なくとも1つから受信される1つ以上のパケットを処理する、ことと、
    前記NICからの前記到来パケットを、前記対応するキュー深さに基づいて、前記アクティブキューから選択された第1アクティブキューに向けることと、
    を含む方法。
  19. 前記到来パケットを、前記対応するキュー深さが前記アクティブキューのそれぞれのキュー深さのうち最小であることに応答して、前記第1アクティブキューに向けること、をさらに含む請求項18に記載の方法。
  20. 少なくとも合計キュー深さに基づいて、前記複数のキューのうちの第2キューの対応する状態を変更するかを決定すること、をさらに含み、前記合計キュー深さは、前記アクティブキューのキュー深さの和を含む、請求項18に記載の方法。
  21. 前記第2キューの対応する状態を、前記合計キュー深さが第1閾値を超えていることに応答して非アクティブからアクティブに変更すること、をさらに含む請求項20に記載の方法。
  22. 前記第2キューのアクティブ化に応答して、対応するコアを低電力状態から、該低電力状態よりもより多くの電力を消費するアクティブ電力状態に変更させること、をさらに含む請求項21に記載の方法。
  23. 前記第2キューの対応する状態を、前記合計キュー深さが第2閾値より小さいことに応答してアクティブから非アクティブに変更することと、対応するコアをアクティブ電力状態から、該アクティブ電力状態よりもより少ない電力を消費する低減された電力状態に変更させることと、をさらに含む請求項20に記載の方法。
  24. 前記第2閾値は、ある時間にわたる前記合計キュー深さの変化のレートに基づいて決定される、請求項23に記載の方法。
  25. 請求項18乃至24のうちいずれか1項に記載の方法を実行する手段を含む装置。
  26. 請求項11乃至17のうちいずれか1項に記載のコンピュータプログラムを記憶したコンピュータ読取可能記憶媒体。
JP2017544628A 2015-04-16 2016-03-16 ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法 Active JP6818687B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/688,019 2015-04-16
US14/688,019 US20160306416A1 (en) 2015-04-16 2015-04-16 Apparatus and Method for Adjusting Processor Power Usage Based On Network Load
PCT/US2016/022572 WO2016167915A1 (en) 2015-04-16 2016-03-16 Apparatus and method for adjusting processor power usage based on network load

Publications (2)

Publication Number Publication Date
JP2018512648A true JP2018512648A (ja) 2018-05-17
JP6818687B2 JP6818687B2 (ja) 2021-01-20

Family

ID=57126030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017544628A Active JP6818687B2 (ja) 2015-04-16 2016-03-16 ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法

Country Status (6)

Country Link
US (1) US20160306416A1 (ja)
EP (1) EP3283959A4 (ja)
JP (1) JP6818687B2 (ja)
CN (1) CN107430425B (ja)
TW (1) TWI569202B (ja)
WO (1) WO2016167915A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016396079B2 (en) * 2016-03-04 2019-11-21 Google Llc Resource allocation for computer processing
US11054884B2 (en) * 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management
US10564702B2 (en) * 2017-06-28 2020-02-18 Dell Products L.P. Method to optimize core count for concurrent single and multi-thread application performance
US11256321B2 (en) 2017-06-29 2022-02-22 The Board Of Trustees Of The University Of Illinois Network-driven, packet context-aware power management for client-server architecture
US10474211B2 (en) * 2017-07-28 2019-11-12 Advanced Micro Devices, Inc. Method for dynamic arbitration of real-time streams in the multi-client systems
KR102604290B1 (ko) * 2018-07-13 2023-11-20 삼성전자주식회사 전자 장치의 데이터 패킷 처리 장치 및 방법
CN109005129B (zh) * 2018-08-29 2022-03-18 北京百瑞互联技术有限公司 一种基于蓝牙mesh网络的数据传输方法及装置
US11431565B2 (en) * 2018-10-15 2022-08-30 Intel Corporation Dynamic traffic-aware interface queue switching among processor cores
US11227358B2 (en) * 2019-03-15 2022-01-18 Intel Corporation Systems and methods for exploiting queues and transitional storage for improved low-latency high-bandwidth on-die data retrieval
US11314315B2 (en) 2020-01-17 2022-04-26 Samsung Electronics Co., Ltd. Performance control of a device with a power metering unit (PMU)
US11876885B2 (en) * 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US20230400981A1 (en) * 2022-06-09 2023-12-14 Samsung Electronics Co., Ltd. System and method for managing queues in systems with high parallelism

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262074A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 疎結合並列計算機における負荷の動的均等化方法
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
US20110145615A1 (en) * 2009-12-16 2011-06-16 Bohuslav Rychlik System and method for controlling central processing unit power based on inferred workload parallelism
JP2012181656A (ja) * 2011-03-01 2012-09-20 Nec Corp 消費電力制御装置、消費電力制御方法、及び消費電力制御プログラム
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US20130191613A1 (en) * 2012-01-23 2013-07-25 Canon Kabushiki Kaisha Processor control apparatus and method therefor
US20140258759A1 (en) * 2013-03-06 2014-09-11 Lsi Corporation System and method for de-queuing an active queue

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415388B1 (en) * 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US8281159B1 (en) * 2008-09-11 2012-10-02 Symantec Corporation Systems and methods for managing power usage based on power-management information from a power grid
US8385967B2 (en) * 2009-02-24 2013-02-26 Eden Rock Communications, Llc Systems and methods for usage-based output power level adjustments for self-optimizing radio access nodes
JP5091912B2 (ja) * 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
US8639862B2 (en) * 2009-07-21 2014-01-28 Applied Micro Circuits Corporation System-on-chip queue status power management
US8464035B2 (en) * 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
WO2013063484A1 (en) * 2011-10-28 2013-05-02 The Regents Of The University Of California Multiple-core computer processor
US9372524B2 (en) * 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US9569278B2 (en) * 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
EP2812800A1 (en) * 2012-02-09 2014-12-17 Telefonaktiebolaget LM Ericsson (PUBL) Distributed mechanism for minimizing resource consumption
US10146293B2 (en) * 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262074A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 疎結合並列計算機における負荷の動的均等化方法
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
US20110145615A1 (en) * 2009-12-16 2011-06-16 Bohuslav Rychlik System and method for controlling central processing unit power based on inferred workload parallelism
JP2013513891A (ja) * 2009-12-16 2013-04-22 クアルコム,インコーポレイテッド 推定される作業負荷並列性に基づき中央処理装置電力を制御するためのシステムおよび方法
JP2012181656A (ja) * 2011-03-01 2012-09-20 Nec Corp 消費電力制御装置、消費電力制御方法、及び消費電力制御プログラム
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US20130191613A1 (en) * 2012-01-23 2013-07-25 Canon Kabushiki Kaisha Processor control apparatus and method therefor
JP2013149221A (ja) * 2012-01-23 2013-08-01 Canon Inc プロセッサの制御装置およびその方法
US20140258759A1 (en) * 2013-03-06 2014-09-11 Lsi Corporation System and method for de-queuing an active queue

Also Published As

Publication number Publication date
US20160306416A1 (en) 2016-10-20
EP3283959A1 (en) 2018-02-21
TW201638769A (zh) 2016-11-01
CN107430425B (zh) 2022-09-23
TWI569202B (zh) 2017-02-01
JP6818687B2 (ja) 2021-01-20
CN107430425A (zh) 2017-12-01
WO2016167915A1 (en) 2016-10-20
EP3283959A4 (en) 2018-12-19

Similar Documents

Publication Publication Date Title
JP6818687B2 (ja) ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法
US10613876B2 (en) Methods and apparatuses for controlling thread contention
US9904346B2 (en) Methods and apparatus to improve turbo performance for events handling
US9618997B2 (en) Controlling a turbo mode frequency of a processor
JP6197196B2 (ja) 電力効率の優れたプロセッサアーキテクチャ
CN105960620B (zh) 动态电压裕度恢复
US20090070607A1 (en) Methods and apparatuses for reducing step loads of processors
KR20060031868A (ko) 다중 코어 프로세서 성능을 개선하기 위한 방법, 시스템 및장치
US8484418B2 (en) Methods and apparatuses for idle-prioritized memory ranks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6818687

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250