JP7110278B2 - 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム - Google Patents

負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム Download PDF

Info

Publication number
JP7110278B2
JP7110278B2 JP2020117637A JP2020117637A JP7110278B2 JP 7110278 B2 JP7110278 B2 JP 7110278B2 JP 2020117637 A JP2020117637 A JP 2020117637A JP 2020117637 A JP2020117637 A JP 2020117637A JP 7110278 B2 JP7110278 B2 JP 7110278B2
Authority
JP
Japan
Prior art keywords
data processing
group
clock cycle
input data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020117637A
Other languages
English (en)
Other versions
JP2021022373A (ja
Inventor
カンハイ グー,
パン ウー,
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Kunlunxin Technology Beijing Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Kunlunxin Technology Beijing Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd, Kunlunxin Technology Beijing Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021022373A publication Critical patent/JP2021022373A/ja
Application granted granted Critical
Publication of JP7110278B2 publication Critical patent/JP7110278B2/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Description

本開示の実施例はコンピュータの分野に関し、より詳細には、負荷を均衡化するための方法、装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラムに関する。
人工知能(AI)チップは、AIアプリケーションにおける大量の計算タスクを処理するために専用される。したがって、AIチップは計算力が強く、面積が非常に大きい計算集約型チップである。通常、トレーニング及び推論のアプリケーションでは、数億個のトランジスタが同一時刻でアイドルからアクティブに遷移することが発生しやすく、チップの瞬時消費電力が極めて大きくなり、この時刻のチップへの給電が極めて困難になる。瞬時電圧の低下が発生しやすく、深刻な場合、チップ全体の内部ロジックが乱れ、正常に動作できなくなる。逆に、大量のトランジスタがアクティブからアイドルに同時に遷移すると、瞬時電圧オーバーシュートが発生し、給電ネットワークが損害されることになる。これらの問題は、後続のソフトウェア最適化では解決するのが難しく、大面積高消費電力チップにおいては非常に深刻の問題となっている。
本開示の例示的な実施例によれば、平衡負荷して瞬時消費電力を低減させるための改善する技術案が提供される。
本開示の第1の態様では、データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するステップと、前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データ変化を示す第1のメトリック値を決定するステップと、前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける操作状態を制御するステップと、を含む、負荷を均衡化するための方法が提供される。
本開示の第2の態様では、データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するように構成される取得ユニットと、前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するように構成される決定ユニットと、前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける操作状態を制御するように構成される制御ユニットと、を備える、負荷を均衡化するための装置が提供される。
本開示の第3の態様では、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶するための記憶装置と、を備える電子機器であって、前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合、前記一つ又は複数のプロセッサが、本開示の第1の態様に係る方法を実現する電子機器が提供される。
本開示の第4の態様では、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記プログラムがプロセッサによって実行される場合、本開示の第1の態様に係る方法が実現されるコンピュータ読み取り可能な記憶媒体が提供される。
本開示の第5の態様では、コンピュータプログラムがプロセッサによって実行される場合、本開示の第1の態様に係る方法が実現されるコンピュータプログラムが提供される。
なお、発明の概要に説明された内容は、本開示の実施例の肝心又は重要な特徴を限定することを意図しておらず、本開示の範囲を限定することも意図していない。本開示の他の特徴は、以下の説明により理解されやすくなる。
本開示の各実施例の上記及び他の特徴、利点及び態様は、図面を参照した以下の詳細な説明により、より明らかになる。図面では、同一又は類似の符号は、同一又は類似の要素を表す。
本開示の実施例が実施可能な例示的なデータ処理システムの概略図を示す。 本開示の実施例に係る負荷を均衡化するための概念の概略図を示す。 本開示の実施例に係る負荷を均衡化するための方法のフローチャートを示す。 本開示の実施例に係る図2の統計及び制御ユニットの例示的な実施の概略図を示す。 本開示の一実施例に係るデータ処理ユニットの操作状態を制御するための方法のフローチャートを示す。 本開示別の実施例に係るデータ処理ユニットの操作状態を制御するための方法のフローチャートを示す。 本開示のさらに別の実施例に係るデータ処理ユニットの操作状態を制御するための方法のフローチャートを示す。 本開示の実施例に係る負荷を均衡化するための装置の概略ブロック図を示す。 本開示の実施例を実施可能なコンピューティング機器のブロック図を示す。
本開示の実施例を、図面を参照して以下により詳細に説明する。図面に本開示のいくつかの実施例が示されているが、本発明は様々な形態で実現することができ、本明細書に記載の実施例に限定されると解釈されるべきではないことを理解されたい。逆に、これらの実施例を提供する目的は、本開示がより明確かつ完全で理解されることである。なお、本開示の図面及び実施例は例示するものに過ぎず、本開示の保護範囲を限定するものではないと理解されたい。
本開示の実施例の説明において、「含む」という用語及びその類似の用語が、開放的な含む、すなわち「含むがこれに限定されない」と理解されるべきである。「に基づく」という用語は、「少なくとも部分的に基づく」ことを意味すると理解されるべきである。「一実施例」または「当該実施例」という用語は、「少なくとも一実施例」を意味すると理解されるべきである。「第1」、「第2」などの用語は、異なる対象または同一対象を指すことができる。他の明示的及び暗黙的な定義も以下に含まれ得る。本開示の実施例の説明では、「チップ」、「システムオンチップ」、及び「集積回路」は、互換的に使用することができる。
以下、図面を参照して本開示の実施例を具体的に説明する。
図1は、本開示の実施例が実施され得る例示的なデータ処理システム100の概略図を示す。本開示のいくつかの実施例によれば、データ処理システム100はシステムオンチップであってもよい。本開示のいくつかの実施例によれば、データ処理システム100はAIチップであってもよい。例えば、推論、トレーニングなどに関するデータ計算及び保存を実行するために用いられる。いくつかの代替実施例では、データ処理システム100はAIチップ以外のチップであってもよい。例えば、本開示の実施例は、特に、大面積及び高消費電力を有するデータ処理用のチップに適用可能である。
図1に示すように、データ処理システム100は、いくつかのデータ処理ユニット120を備えることができる。図には、4つのデータ処理ユニット120が示されているが、データ処理ユニット120の数はこれに限定されず、より多く又はより少ない任意の数であってもよいことを理解されたい。
本開示のいくつかの実施例によれば、これらのデータ処理ユニット120は同じデータ処理機能を有することができる。例えば、データ処理ユニット120は、いずれも乗算加算器(MAC)演算を実行するためのMACユニットであり、MACユニットアレイを形成することができる。いくつかの代替実施例では、これらのデータ処理ユニット120は、異なるデータ処理機能を有することができる。例えば、いくつかのデータ処理ユニット120は、MACユニットであってもよく、他のデータ処理ユニット120は、MAC演算以外のデータ処理機能を実行するユニットであってもよい。上記のMACは単なる例であり、データ処理ユニット120は、本分野の既知又は将来開発される任意の適切なデータ処理機能を実施するためのデータ処理ユニットであってもよく、本出願はこれについて一切限定しないことを理解されたい。
動作中に、これらのデータ処理ユニット120内の多くのトランジスタが同一の時刻にアイドルからアクティブに、又はアクティブからアイドルに遷移すると、データ処理システム100内の瞬時消費電力が極めて大きくなり、その結果、その時点でデータ処理システム100の給電は極めて大きく損害される。
いくつかの既存の技術案では、給電ネットワークを強化し、パッケージ内部及びプリント回路基板(PCB)上でより多くの大なコンデンサを使用することにより、瞬間的な高消費電力による影響が低減される。しかしながら、高密度コンデンサは、コストが高く、最終的なパッケージ及びPCBサイズに影響する。また、パッケージ及びPCB空間の制約によって、コンデンサを無制限に大きくすることができない。シミュレーションによると、コンデンサをある程度大きくすると、コンデンサをさらに大きくしても、瞬間的な大電流の問題をさらに改善することができないことが分かる。
他の既存の技術案では、脈動アレイを使用して段階的な開始と段階的な終了の効果を達成し、瞬間的な高消費電力が発生する場合を削減する。しかしながら、脈動アレイは、開始及び終了時刻の瞬間電流を効果的に低減させることしかできず、チップの動作中に発生する瞬間的な大電流を回避することができない。また、アレイ全体の遅延も増加する。
これに鑑み、本発明者は、チップ設計の当初から瞬時消費電力の制御を考慮し、一連のフィードバックメカニズムによって、瞬時消費電力を自動的に予測及び事前に調整することによって、電圧瞬時変化を効果的に制御することを提案する。以下、図2を参照して詳細に説明する。
図2は、本開示の実施例に係る負荷を均衡化するための概念の概略図200を示す。便宜上、以下、図1のデータ処理システム100を参照して説明する。本開示のいくつかの実施例によれば、データ処理ユニット120は、1グループの入力データを有することができる。いくつかの代替実施例では、データ処理ユニット120は、2グループ又は複数のグループの入力データを有することができる。図2に示すように、データ処理ユニット120は、X入力データレジスタ210及びY入力データレジスタ220から、X入力データ及びY入力データをそれぞれ取得することができる。例として、図2には、X入力データの取得のみが示されている。
本開示の実施例によれば、統計及び制御ユニット230は、各データ処理ユニット120の現在のクロックサイクルと次のクロックサイクルとの間における入力データの変化(例えば、図2のtoggle_s0~snによって示される)をモニタリングし、当該変化に基づいて、チップ100全体の次のクロックサイクルにおける負荷状況を決定することができる。そして、負荷状況に基づいて、各データ処理ユニット120の次のクロックサイクルにおける操作状態を制御する(例えば、図2に示されるクロック制御信号gate_en及びデータフロー制御信号flow_ctrlによって制御することができ、簡潔にするために、ここでは一つのデータ処理ユニット120のみについてgate_enを示しているが、実際に、各データ処理ユニット120は、すべてgate_enによって制御することができる。また、ここでは、X入力データレジスタ210のみについてflow_ctrlを示しているが、実際に、Y入力データレジスタ220の操作もflow_ctrlによって制御することができる)。これにより、負荷を調整して瞬時高消費電力を低減させる。
本開示の実施例によれば、統計及び制御ユニット230は、ソフトウェア、ハードウェア、ファームウェア、又はその任意の組み合わせの形で実施することができる。以下、図3~図7を参照してより詳細に説明する。
図3は、本開示の実施例に係る負荷を均衡化するための方法300のフローチャートを示す。便宜上、以下、図1と図2の環境を参照して説明する。当該方法300は、任意のデータ処理システム(例えば、図1のデータ処理システム100)で実施することができ、例えば、図2の統計及び制御ユニット230で実施することができる。
図3に示すように、ブロック310において、データ処理システム100内の1グループのデータ処理ユニット120内の各データ処理ユニットについて、現在のクロックサイクルで当該データ処理ユニットに使用される現在の入力データと、次のクロックサイクルで当該データ処理ユニットに使用される次の入力データとを取得する。本開示のいくつかの実施例によれば、当該グループのデータ処理ユニット120は、データ処理システム100内の一部のデータ処理ユニット120であってもよい。いくつかの代替実施例では、当該グループのデータ処理ユニット120は、データ処理システム100内のすべてのデータ処理ユニット120であってもよい。
データ処理ユニット120が複数のグループの入力データを有する実施例では、当該データ処理ユニット120の複数のグループの入力データ(例えば、図2に示されるX入力データ及びY入力データ)から少なくとも1グループの入力データ(例えば、図2に示すX入力データ)を選択することができる。いくつかの実施例では、当該少なくとも1グループの入力データをランダムに選択することができる。いくつかの実施例では、必要に応じて当該少なくとも1グループの入力データを選択することができる。そして、当該少なくとも1グループの入力データ内の各グループの入力データについて、現在の入力データ及び次の入力データの取得操作をそれぞれ実行する。
本開示のいくつかの実施例によれば、データ処理ユニット120に使用される入力データレジスタ210又は220の出力において現在の入力データを取得することができ、入力データレジスタ210又は220の入力において次の入力データを取得することができる。なお、他の任意の適切な方式によって現在の入力データ及び次の入力データを取得してもよく、本出願ではこれについて特に限定しないことを理解されたい。
ブロック320において、現在の入力データと次の入力データとの比較に基づいて、次のクロックサイクルにおける当該データ処理ユニット120の入力データの変化を示す第1のメトリック値を決定する。本開示のいくつかの実施例によれば、現在の入力データと次の入力データとをビットごとに比較して、ビット反転の状況を統計することができる。例えば、いくつかの実施例では、ビット反転率を第1のメトリック値として決定してもよい。いくつかの代替実施例では、ビット未反転率を第1のメトリック値として決定してもよい。本開示の実施例では、上記のビット反転状況の統計に限定されず、他の任意の適切な方式によって第1のメトリック値を決定して、次のクロックサイクルにおけるデータ処理ユニットの入力データの変化を示してもよい。
以下、図4を参照してビット反転率を第1のメトリック値として決定する例示的な実施を説明する。図4は、本開示の実施例に係る図2に示される統計及び制御ユニット230の例示的な実施の概略図400を示す。図4に示すように、モジュール420によってビット反転率の決定を実現することができる。
本実施例では、X入力データレジスタ210の出力及び入力をモニタリングすることによって、現在のクロックサイクルにおけるデータ処理ユニット120に使用される現在の入力データと、次のクロックサイクルにおけるデータ処理ユニット120に使用される次の入力データとをそれぞれ取得することができる。排他的論理和回路(XOR)421-0から420-nによって現在の入力データ及び次の入力データの対応するn個のビットをそれぞれ排他的論理和演算(nは正の整数である)することによって、n個の演算結果toggle_0からtoggle_nを取得する。そして、加算回路(SUM)422によってn個の演算結果toggle_0からtoggle_nを加算することによって、当該データ処理ユニット120の次のクロックサイクルにおけるビット反転率toggle_sを取得する。
本開示の実施例によれば、各データ処理ユニット120にモジュール420を設置して対応するビット反転率(図2のtoggle_s0~snによって示されるように)を決定することができる。図4に示されるモジュール420の実施は、単なる例であり、本出願を一切限定しないことを理解されたい。他の任意の適切な方式によって当該ビット反転率の決定を実施することができる。
当該グループのデータ処理ユニット120について第1のメトリック値(例えばtoggle_s0~sn)を決定した後、図3に戻り、ブロック330において、当該グループのデータ処理ユニット120について決定された第1のメトリック値に基づいて、各データ処理ユニット120の次のクロックサイクルにおける操作状態を制御する。これにより、実際のデータ状況に応じて、データ処理システム100内のデータ処理ユニット120の入力データの変化を動的に制御することができ、瞬時大電流を動的に均衡化するとともに瞬時消費電力を低減させる効果を達成することができる。
第1のメトリック値に基づいてデータ処理ユニットを制御する例示的な実施について、図5~図7を参照して以下に説明する。図5は、本開示の一実施例に係るデータ処理ユニットの操作状態を制御するための方法500のフローチャートを示す。当該方法500は、図2の統計及び制御ユニット230で実施することができる。
図5に示すように、ブロック510において、当該グループのデータ処理ユニット120について決定された第1のメトリック値に基づいて、次のクロックサイクルにおける負荷を示す第1の合計メトリック値を決定することができる。本開示のいくつかの実施例によれば、当該グループのデータ処理ユニット120内の各データ処理ユニットに対応する第1のメトリック値を加算することによって、第1の合計メトリック値を決定することができる。例えば、第1のメトリック値がビット反転率である場合、第1の合計メトリック値は合計ビット反転率であってもよい。
なお、他の適切な方式を使用して第1のメトリック値に基づいて第1の合計メトリック値を決定してもよいことを理解されたい。例えば、本開示のいくつかの代替実施例によれば、当該グループのデータ処理ユニット120内の各データ処理ユニットについて重みを決定し、重みに基づいて、当該グループのデータ処理ユニット120内の各データ処理ユニットに対応する第1のメトリック値を重み付けて加算することによって、第1の合計メトリック値を決定してもよい。いくつかの実施例では、例えば、データ処理ユニットの機能に基づいて重みを決定してもよい。いくつかの代替実施例では、例えば、データ処理ユニットの処理能力に基づいて重みを決定してもよい。他の任意の適切な方式によって重みを決定してもよいことを理解されたい。
推論の応用シーンなど、合計消費電力が制限されているいくつかの応用シーンでは、通常、合計消費電力を75W以下に制御する必要がある。合計メトリック値はチップの合計消費電力に影響するため、このような応用シーンでは合計メトリック値に対して一つの閾値を設定することができる。
ブロック520において、第1の合計メトリック値が第1の閾値を超えたか否かを判定する。本開示のいくつかの実施例によれば、第1の閾値は動的に設定されてもよい。例えば、いくつかの実施例では、第1の閾値は、データ処理システム100によって構成されてもよい。いくつかの実施例では、第1の閾値は、経験に基づいて手動で選択されてもよい。いくつかの代替実施例では、第1の閾値は、予め決定されてもよい。
ブロック520では、第1の合計メトリック値が第1の閾値を超えたと判定された場合、ブロック530に進み、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を無効にする。ブロック520では、第1の合計メトリック値が第1の閾値以下であると判定された場合、ブロック540に進み、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を有効にする。本開示のいくつかの実施例によれば、当該グループのデータ処理ユニット120から当該少なくとも一部のデータ処理ユニット120をランダムに決定してもよい。本開示のいくつかの代替実施例によれば、第1のメトリック値と所定の閾値との比較に基づいて、当該少なくとも一部のデータ処理ユニット120を決定してもよい(例えば、図6を参照してこの後に説明される方式により)。
いくつかの実施例では、ゲート制御回路によってデータ処理ユニット120の有効及び無効を実現することができる。例えば、図4を参照すると、各データ処理ユニット120にモジュール410を設置することができる。モジュール410は、ラッチ411とAND回路(AND)412とを含むことができる。ゲート制御信号gate_enと低レベル有効なクロック(CLK)信号とは、ラッチ411に入力することができる。ラッチ411の入力は、AND412の一方の入力に接続され、AND412の他方の入力は、CLK信号を受信する。AND412の出力は、データ処理ユニット120に使用されるX入力データレジスタ210及びY入力データレジスタ220に接続される。
データ処理ユニット120を無効にする必要がある場合、統計及び制御ユニット230は、低レベルのgate_en及び低レベルのflow_ctrl(図2に示すように)を出力することができる。CLK信号の次のクロックサイクルが来ると、AND412の出力は低レベルになる。この時、X入力データレジスタ210及びY入力データレジスタ220は動作せず、すなわち、当該クロックサイクルでデータ処理ユニット120にデータを供給せず、当該データ処理ユニット120は無効状態にある。これと同時に、X入力データレジスタ210及びY入力データレジスタ220のデータ更新も一時停止される。
データ処理ユニット120を有効にする必要がある場合、統計及び制御ユニット230は、高レベルのgate_en及び高レベルのflow_ctrlを出力することができる。CLK信号の次のクロックサイクルが来ると、AND412の出力は高レベルになる。この時、当該クロックサイクルでX入力データレジスタ210及びY入力データレジスタ220のデータは更新され、X入力データレジスタ210及びY入力データレジスタ220は、更新されたデータをデータ処理ユニット120に供給し、当該データ処理ユニット120は有効状態にある。
この例では、ハードウェアによってメトリック値(例えばビット反転率)の統計及び制御を自動的に実行することができるため、動的制御速度はナノ秒レベルである。上記の図4に示されるモジュール410を組み合わせて説明された前記実施形態は、単なる例であり、本出願はこれに限定されず、他の任意の適切な方式によってデータ処理ユニットの操作状態の制御を実現してもよいことを理解されたい。図5の実施例によって、瞬時大電流の問題を解決することことができるほか、合計消費電力の制御機能を実現することもできる。
図6は、本開示の別の実施例に係るデータ処理ユニットの操作状態を制御するための方法600のフローチャートを示す。当該方法600は、図2の統計及び制御ユニット230で実施することができる。本実施例では、当該グループのデータ処理ユニット120内の各データ処理ユニットに対して操作を実行する。図6に示すように、ブロック610において、当該データ処理ユニットの第1のメトリック値が第2の閾値を超えたか否かを判定する。本開示のいくつかの実施例によれば、第2の閾値は動的に設定されてもよい。例えば、いくつかの実施例では、第2の閾値は、データ処理システム100によって構成されてもよい。いくつかの実施例では、第2の閾値は、経験に基づいて手動で選択されてもよい。いくつかの代替実施例では、第2の閾値は、予め決定されてもよい。
ブロック610では、当該データ処理ユニットの第1の合計メトリック値が第2の閾値を超えたと判定された場合、ブロック620に進み、次のクロックサイクルで当該データ処理ユニットを無効にする。ブロック610では、第1の合計メトリック値が第2の閾値以下であると判定された場合、ブロック630に進み、次のクロックサイクルで当該データ処理ユニットを有効にする。データ処理ユニットの無効及び有効の実施は、図5を参照した上記の関連説明と類似するため、ここではその説明を省略する。
図7は、本開示の別の実施例に係るデータ処理ユニットの操作状態を制御するための方法700のフローチャートを示す。当該方法700は、図2の統計及び制御ユニット230で実施することができる。
図7に示すように、ブロック710において、当該グループのデータ処理ユニット120について決定された第1のメトリック値に基づいて、次のクロックサイクルにおける負荷を示す第1の合計メトリック値を決定することができる。当該ブロック710の処理は、図5を参照した上記のブロック510に記載された処理と類似するため、ここではその説明を省略する。
ブロック720において、当該グループのデータ処理ユニット120の1つ前のクロックサイクルにおける1つ前の入力データと、現在のクロックサイクルにおける現在の入力データとに基づいて、現在のクロックサイクルにおける負荷を示すための第2の合計メトリック値を決定することができる。本開示のいくつかの実施例によれば、当該グループのデータ処理ユニット120内の各データ処理ユニットについて、当該データ処理ユニットに使用される1つ前のクロックサイクルにおける1つ前の入力データを取得することができ、1つ前の入力データと現在の入力データとの比較に基づいて、現在のクロックサイクルにおける当該データ処理ユニットの入力データの変化を示す第2のメトリック値を決定することができる。そして、当該グループのデータ処理ユニットについて決定された第2のメトリック値に基づいて、第2の合計メトリック値を決定する。第2の合計メトリック値の決定方式は、第1の合計メトリック値の決定方式と類似し、他の詳細は、図5を参照したブロック510に記載された上記の関連処理を参照することができるため、ここではその説明を省略する。
ブロック730において、第1の合計メトリック値と第2の合計メトリック値との差分の絶対値が第3の閾値を超えたか否かを判定する。本開示のいくつかの実施例によれば、第3の閾値は動的に設定されてもよい。例えば、いくつかの実施例では、第3の閾値は、データ処理システム100によって構成されてもよい。いくつかの実施例では、第3の閾値は、経験に基づいて手動で選択されてもよい。いくつかの代替実施例では、第3の閾値は、予め決定されてもよい。
ブロック730では、第1の合計メトリック値と第2の合計メトリック値との差分の絶対値が第3の閾値を超えたと判定された場合、ブロック740に進み、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を無効にする。ブロック730では、第1の合計メトリック値と第2の合計メトリック値との差分の絶対値が第3の閾値以下であると判定された場合、ブロック750に進み、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を有効にする。本開示のいくつかの実施例によれば、当該グループのデータ処理ユニット120から当該少なくとも一部のデータ処理ユニット120をランダムに決定することができる。本開示のいくつかの代替実施例によれば、第1のメトリック値に基づいて所定の閾値と比較して当該少なくとも一部のデータ処理ユニット120を決定することができる(例えば、図6を参照して説明された方式により)。また、データ処理ユニットの無効及び有効の実施は、図5を参照した上記の関連説明と類似する、ここではその説明を省略する。
なお、図5~図7に記載された実施例は、単独又は任意の方式で組み合わせて使用されてもよいことを理解されたい。また、複数のクロックサイクルを選択してデータ処理ユニット120の制御を完成することができる。異なるクロックサイクルで異なるデータ処理ユニットを有効にすることによって、瞬時大電流を複数のクロックサイクルに割り当てることを実現することができる。また、実際のニーズに応じて動的に調整することができ、動的調整終了後にクロック制御信号gate_en及びデータフロー制御信号flow_ctrlを解放して、通常モードに復帰させることができる。
これから分かるように、本開示の実施例に係る負荷を制御する方式は非常に柔軟であり、実際の状況に応じて負荷を動的かつ多次元的に調整することができ、様々な応用シーンのニーズを満たすことができる。また、簡単なゲート制御クロック方式で回路の反転率を制御することによって、パッケージ及びPCBコストを増加させることなく、瞬時大電流、高消費電力の問題を解決することができる。また、制御全体に必要な制御ロジックは小さいため、これによるチップ面積の増加はほとんど無視することができる。
本開示の実施例では、上記の方法又はプロセスを実現するための対応する装置がさらに提供される。図8は、本開示の実施例に係る負荷を均衡化するための装置800の概略ブロック図を示す。当該装置800は、図1のようなデータ処理システム100で実施することができる。図8に示すように、装置800は、取得ユニット810と、決定ユニット820と、制御ユニット830とを備えることができる。
いくつかの実施例では、取得ユニット810は、データ処理システム(例えば図1のデータ処理システム100)内の1グループのデータ処理ユニット(例えば図1のデータ処理ユニット120)内の各データ処理ユニットについて、現在のクロックサイクルで当該データ処理ユニットに使用される現在の入力データと、次のクロックサイクルで当該データ処理ユニットに使用される次の入力データとを取得するように構成することができる。決定ユニット820は、当該グループのデータ処理ユニット120内の各データ処理ユニットについて、現在の入力データと次の入力データとの比較に基づいて、次のクロックサイクルにおける当該データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するように構成することができる。制御ユニット830は、当該グループのデータ処理ユニットについて決定された第1のメトリック値に基づいて、当該グループのデータ処理ユニットの次のクロックサイクルにおける操作状態を制御するように構成することができる。
いくつかの実施例では、取得ユニット810は、当該データ処理ユニットに使用される複数のグループの入力データから少なくとも1グループの入力データを選択するように構成される選択ユニットと、当該少なくとも1グループの入力データ内の各グループの入力データについて前記取得をそれぞれ実行するように構成される実行ユニットと、を備えることができる。いくつかの実施例では、現在の入力データは、当該データ処理ユニットに使用される入力データレジスタ(例えば、図2のX入力データレジスタ210)の出力におけるデータであり、次の入力データは、当該入力データレジスタの入力におけるデータである。
いくつかの実施例では、決定ユニット820は、現在の入力データと次の入力データとの対応するビットを排他的論理和演算するように構成される排他的論理和ユニットと、対応するビットの排他的論理和演算の結果に基づいて、第1のメトリック値を決定するように構成される第1のメトリック値決定ユニットと、を備えることができる。
いくつかの実施例では、制御ユニット830は、当該グループのデータ処理ユニット120内の各データ処理ユニットの第1のメトリック値に基づいて次のクロックサイクルにおける負荷を示す第1の合計メトリック値を決定するように構成される第1の決定ユニットと、第1の合計メトリック値が第1の閾値を超えたことに応答して、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を無効にし、第1の合計メトリック値が第1の閾値以下であることに応答して、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を有効にするように構成される第1の無効化及び有効化ユニットと、を備えることができる。
いくつかの代替実施例では、制御ユニット830は、当該グループのデータ処理ユニット120内の一つのデータ処理ユニットの第1のメトリック値が第2の閾値を超えたことに応答して、次のクロックサイクルで当該データ処理ユニットを無効にし、当該データ処理ユニットの第1のメトリック値が第2の閾値以下であることに応答して、次のクロックサイクルで当該データ処理ユニットを有効にするように構成される第2の無効化及び有効化ユニットを備えることができる。
いくつかの代替実施例では、制御ユニット830は、当該グループのデータ処理ユニット120について決定された第1のメトリック値に基づいて、次のクロックサイクルにおける負荷を示すための第1の合計メトリック値を決定するように構成される第1の決定ユニットと、当該グループのデータ処理ユニット120の1つ前のクロックサイクルにおける1つ前の入力データと、現在のクロックサイクルにおける現在の入力データとに基づいて、現在のクロックサイクルにおける負荷を示すための第2の合計メトリック値を決定するように構成される第2の決定ユニットと、第1の合計メトリック値と第2の合計メトリック値との差分の絶対値が第3の閾値を超えたことに応答して、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を無効にし、第1の合計メトリック値と第2の合計メトリック値との差分の絶対値が第3の閾値以下であることに応答して、次のクロックサイクルで当該グループのデータ処理ユニット120内の少なくとも一部を有効にするように構成される第3の無効化及び有効化ユニットと、を備えることができる。
いくつかの実施例では、第2の決定ユニットは、当該グループのデータ処理ユニット120内の各データ処理ユニットについて、当該データ処理ユニットに使用される1つ前のクロックサイクルにおける1つ前の入力データを取得するように構成されるデータ取得ユニットと、1つ前の入力データと現在の入力データとの比較に基づいて、現在のクロックサイクルにおける当該データ処理ユニットの入力データの変化を示す第2のメトリック値を決定するように構成される第2のメトリック値決定ユニットと、当該グループのデータ処理ユニット120について決定された第2のメトリック値に基づいて、第2の合計メトリック値を決定するように構成される第2の合計メトリック値決定ユニットと、を備える。
なお、装置800に記載された各ユニットは、それぞれ図2~図7を参照して説明された方法300~700の各ステップに対応することを理解されたい。また、装置800及びそれに含まれるユニットの操作及び特徴は、すべて上記の図2~図7を参照して説明された操作及び特徴に対応し、且つ同じ効果を有するため、詳細を省略する。
装置800に含まれるユニットは、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを含む様々な形態で実現することができる。いくつかの実施例では、一つ又は複数のユニットは、記憶媒体に記憶されている機械実行可能な命令のようなソフトウェア及び/又はファームウェアを使用して実現することができる。機械実行可能な命令に加えて、又は代替として、装置800中の一部又は全部のユニットは、少なくとも部分的に一つ又は複数のハードウェアロジックコンポーネントによって実現することができる。限定ではなく、例として、使用可能なハードウェアロジックコンポーネントとしては、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)などが挙げられる。
図8に示されるユニットらは、ハードウェアモジュール、ソフトウェアモジュール、ファームウェアモジュール、又はそれらの任意の組み合わせとして部分的又は全部で実現することができる。特に、いくつかの実施例では、上述したフロー、方法、又はプロセスは、記憶システム、又は記憶システムに対応するホスト、又は記憶システムから独立した他のコンピューティング機器のハードウェアによって実現することができる。
図9は、本開示の実施例を実施可能な例示的なコンピューティング機器900を示す概略ブロック図である。機器900は、図1のデータ処理システム100を実現することができる。図に示すように、機器900は、リードオンリーメモリ(ROM)902に記憶されたコンピュータプログラム命令、又は記憶ユニット908からランダムアクセスメモリ(RAM)903にローディングされたコンピュータプログラム命令に基づいて、各種の適切な動作と処理を実行できる中央処理装置(CPU)901を含む。RAM903には、機器900の動作に必要な各種のプログラム及びデータをさらに記憶することができる。CPU901と、ROM902と、RAM903とは、バス904を介して互いに接続されている。入力/出力(I/O)インタフェース905もバス904に接続されている。
機器900における複数のコンポーネントはI/Oインタフェース905に接続されており、キーボードやマウスなどの入力ユニット906と、種々なディスプレイやスピーカなどの出力ユニット907と、磁気ディスクや光学ディスクなどの記憶ユニット908と、ネットワークカード、モデム、無線通信トランシーバーなどの通信ユニット909と、を備える。通信ユニット909は、機器900がインターネットのようなコンピュータネット及び/又は種々なキャリアネットワークを介してその他の機器と情報/データを交換することを許可する。
処理ユニット901は、前述した各方法及び処理、例えば、方法300、500、600、及び700を実行する。例えば、いくつかの実施例では、方法300、500、600、及び700は、記憶ユニット908のような機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウエアプログラムとして実現することができる。一部の実施例では、コンピュータプログラムの一部又は全ては、ROM902及び/又は通信ユニット909を介して、機器900にロード及び/又はインストールすることができる。コンピュータプログラムがRAM903にロードされてCPU901によって実行される場合に、前述した方法300、500、600、及び700の一つ又は複数のステップを実行することができる。代替可能に、他の実施例では、CPU901は、他の任意の適当な方式(例えば、ファームウェアを借りる)により方法300、500、600、及び700を実行するように構成される。
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組み合わせにより作成することができる。これらのプログラムコードは、汎用コンピュータ、専門コンピュータ又はその他のプログラミングデータ処理装置のプロセッサ又はコントローラに提供されることにより、プログラムコードがプロセッサ又はコントローラによって実行される場合に、フローチャート及び/又はブロック図に規定された機能/動作を実行することができる。プログラムコードは、完全にマシンで実行されてもよく、部分的にマシンで実行されてもよく、独立したソフトパッケージとして部分的にマシンで実行されるとともに、部分的にリモートマシンで実行されてもよく、又は完全にリモートマシン又はサーバで実行されてもよい。
本開示の説明において、機械読み取り可能な媒体は、有形な媒体であってもよく、命令実行システム、装置又は機器によって、又は命令実行システム、装置又は機器と合わせて使用されるプログラムを含み、又は記憶する。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム、装置、又はデバイス、又は前述した内容の任意の適切な組み合わせを含むことができるがこれらに限定されない。機械読み取り可能な記憶媒体のさらなる具体例として、1つ又は複数の配線による電気的接続、ポータブルコンピュータディスクカートリッジ、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前述した内容の任意の組み合わせを含む。
また、特定の順番で各動作を説明したが、このような動作を、示される特定の順番又は順次実行することが求められ、又は図示した動作の全てを実行して所望の結果を取得することが求められることを理解されたい。一定の環境において、複数のタスク及び並列処理が有利である可能性がある。同様に、以上の説明には、いくつかの具体的な実現の詳細が含まれたが、それが本開示の範囲を限定するものと理解されてはならない。個別の実施例に説明された一部の特徴は、組み合わせて一つの実現で実現されてもよい。逆に、一つの実施形態に説明された種々な特徴は、個別又は任意の適切なサブ組み合わせの方式で複数の実現で実現されてもよい。
構成の特徴及び/又は方法の論理動作に特有の言語で本テーマを説明したが、特許請求の範囲で限定される本題は、上記の特定の特徴又は動作に限定されない。逆に、上記の特定の特徴と動作は、特許請求の範囲を実現する例に過ぎない。

Claims (14)

  1. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するステップと、
    前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するステップと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するステップと、
    を含み、
    前記1グループのデータ処理ユニットの動作状態を制御するステップが、
    前記1グループのデータ処理ユニット内の各データ処理ユニットの前記第1のメトリック値に基づいて、前記次のクロックサイクルにおける負荷を示す第1の合計メトリック値を決定するステップと、
    前記第1の合計メトリック値が第1の閾値を超えたことに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を無効にするステップ、又は、
    前記第1の合計メトリック値が前記第1の閾値以下であることに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を有効にするステップと、
    を含む、負荷を均衡化するための方法。
  2. 前記現在の入力データと前記次の入力データとを取得するステップが、
    前記データ処理ユニットに使用される複数のグループの入力データから少なくとも1グループの入力データを選択するステップと、
    前記少なくとも1グループの入力データ内の各グループの入力データについて前記取得をそれぞれ実行するステップと、
    を含む請求項1に記載の方法。
  3. 前記現在の入力データは、前記データ処理ユニットに使用される入力データレジスタの出力におけるデータであり、前記次の入力データは、前記入力データレジスタの入力におけるデータである請求項1に記載の方法。
  4. 前記第1のメトリック値を決定するステップが、
    前記現在の入力データと前記次の入力データとの対応するビットを排他的論理和演算するステップと、
    前記対応するビットの前記排他的論理和演算の結果に基づいて、前記第1のメトリック値を決定するステップと、
    を含む請求項1に記載の方法。
  5. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するステップと、
    前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するステップと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するステップと、
    を含み、
    前記1グループのデータ処理ユニットの動作状態を制御するステップが、
    前記1グループのデータ処理ユニット内の一つのデータ処理ユニットの前記第1のメトリック値が第2の閾値を超えたことに応答して、前記次のクロックサイクルで前記一つのデータ処理ユニットを無効にするステップ、又は、
    前記1グループのデータ処理ユニット内の前記一つのデータ処理ユニットの前記第1のメトリック値が前記第2の閾値未満であることに応答して、前記次のクロックサイクルで前記一つのデータ処理ユニットを有効にするステップ、
    を含む、負荷を均衡化するための方法。
  6. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するステップと、
    前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するステップと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するステップと、
    を含み、
    前記1グループのデータ処理ユニットの動作状態を制御するステップが、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記次のクロックサイクルにおける負荷を示すための第1の合計メトリック値を決定するステップと、
    前記1グループのデータ処理ユニットの1つ前のクロックサイクルにおける1つ前の入力データと前記現在のクロックサイクルにおける前記現在の入力データとに基づいて、前記現在のクロックサイクルにおける負荷を示すための第2の合計メトリック値を決定するステップと、
    前記第1の合計メトリック値と前記第2の合計メトリック値との差分の絶対値が第3の閾値を超えたことに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を無効にするステップ、又は、
    前記第1の合計メトリック値と前記第2の合計メトリック値との差分の絶対値が前記第3の閾値以下であることに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を有効にするステップと、
    を含む、負荷を均衡化するための方法。
  7. 前記第2の合計メトリック値を決定するステップが、
    前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記データ処理ユニットに使用される前記1つ前のクロックサイクルにおける前記1つ前の入力データを取得するステップと、
    前記1つ前の入力データと前記現在の入力データとの比較に基づいて、前記現在のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第2のメトリック値を決定するステップと、
    前記1グループのデータ処理ユニットについて決定された前記第2のメトリック値に基づいて、前記第2の合計メトリック値を決定するステップと、
    を含む請求項6に記載の方法。
  8. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するように構成される取得ユニットと、
    前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するように構成される決定ユニットと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するように構成される制御ユニットと、
    を備え、
    該制御ユニットが、
    前記1グループのデータ処理ユニット内の各データ処理ユニットの前記第1のメトリック値に基づいて、前記次のクロックサイクルにおける負荷を示す第1の合計メトリック値を決定するように構成される第1の決定ユニットと、
    前記第1の合計メトリック値が第1の閾値を超えたことに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を無効にし、前記第1の合計メトリック値が前記第1の閾値以下であることに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を有効にするように構成される第1の無効化及び有効化ユニットと、
    を備える、負荷を均衡化するための装置。
  9. 前記取得ユニットが、
    前記データ処理ユニットに使用される複数のグループの入力データから少なくとも1グループの入力データを選択するように構成される選択ユニットと、
    前記少なくとも1グループの入力データ内の各グループの入力データについて前記取得をそれぞれ実行するように構成される実行ユニットと、
    を備える請求項8に記載の装置。
  10. 前記現在の入力データは、前記データ処理ユニットに使用される入力データレジスタの出力におけるデータであり、前記次の入力データは、前記入力データレジスタの入力におけるデータである請求項8に記載の装置。
  11. 前記決定ユニットが、
    前記現在の入力データと前記次の入力データとの対応するビットを排他的論理和演算するように構成される排他的論理和ユニットと、
    前記対応するビットの前記排他的論理和演算の結果に基づいて、前記第1のメトリック値を決定するように構成される第1のメトリック値決定ユニットと、
    を含む請求項8に記載の装置。
  12. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するように構成される取得ユニットと、
    前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するように構成される決定ユニットと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するように構成される制御ユニットと、
    を備え、
    前記制御ユニットが、
    前記1グループのデータ処理ユニット内の一つのデータ処理ユニットの前記第1のメトリック値が第2の閾値を超えたことに応答して、前記次のクロックサイクルで前記一つのデータ処理ユニットを無効にし、前記1グループのデータ処理ユニット内の前記一つのデータ処理ユニットの前記第1のメトリック値が前記第2の閾値以下であることに応答して、前記次のクロックサイクルで前記一つのデータ処理ユニットを有効にするように構成される第2の無効化及び有効化ユニットを備える、負荷を均衡化するための装置。
  13. データ処理システム内の1グループのデータ処理ユニット内の各データ処理ユニットについて、現在のクロックサイクルにおける前記データ処理ユニットに使用される現在の入力データと、次のクロックサイクルにおける前記データ処理ユニットに使用される次の入力データとを取得するように構成される取得ユニットと、
    前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記現在の入力データと前記次の入力データとの比較に基づいて、前記次のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第1のメトリック値を決定するように構成される決定ユニットと、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記1グループのデータ処理ユニットの前記次のクロックサイクルにおける動作状態を制御するように構成される制御ユニットと、
    を備え、
    前記制御ユニットが、
    前記1グループのデータ処理ユニットについて決定された前記第1のメトリック値に基づいて、前記次のクロックサイクルにおける負荷を示すための第1の合計メトリック値を決定するように構成される第1の決定ユニットと、
    前記1グループのデータ処理ユニットの1つ前のクロックサイクルにおける1つ前の入力データと前記現在のクロックサイクルにおける前記現在の入力データとに基づいて、前記現在のクロックサイクルにおける負荷を示すための第2の合計メトリック値を決定するように構成される第2の決定ユニットと、
    前記第1の合計メトリック値と前記第2の合計メトリック値との差分の絶対値が第3の閾値を超えたことに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を無効にし、前記第1の合計メトリック値と前記第2の合計メトリック値との差分の絶対値が前記第3の閾値以下であることに応答して、前記次のクロックサイクルで前記1グループのデータ処理ユニット内の少なくとも一部を有効にするように構成される第3の無効化及び有効化ユニットと、
    を備える、負荷を均衡化するための装置。
  14. 前記第2の決定ユニットが、
    前記1グループのデータ処理ユニット内の各データ処理ユニットについて、前記データ処理ユニットに使用される前記1つ前のクロックサイクルにおける前記1つ前の入力データを取得するように構成されるデータ取得ユニットと、
    前記1つ前の入力データと前記現在の入力データとの比較に基づいて、前記現在のクロックサイクルにおける前記データ処理ユニットの入力データの変化を示す第2のメトリック値を決定するように構成される第2のメトリック値決定ユニットと、
    前記1グループのデータ処理ユニットについて決定された前記第2のメトリック値に基づいて、前記第2の合計メトリック値を決定するように構成される第2の合計メトリック値決定ユニットと、
    を備える請求項13に記載の装置。
JP2020117637A 2019-07-29 2020-07-08 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム Active JP7110278B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910690754.7A CN110413414A (zh) 2019-07-29 2019-07-29 用于平衡负载的方法、装置、设备和计算机可读存储介质
CN201910690754.7 2019-07-29

Publications (2)

Publication Number Publication Date
JP2021022373A JP2021022373A (ja) 2021-02-18
JP7110278B2 true JP7110278B2 (ja) 2022-08-01

Family

ID=68363912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020117637A Active JP7110278B2 (ja) 2019-07-29 2020-07-08 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム

Country Status (5)

Country Link
US (1) US11537441B2 (ja)
EP (1) EP3771963A1 (ja)
JP (1) JP7110278B2 (ja)
KR (1) KR102335749B1 (ja)
CN (1) CN110413414A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020135101A1 (zh) 2018-12-29 2020-07-02 华为技术有限公司 用于构建预编码向量的向量指示方法以及通信装置
CN111865744B (zh) * 2020-07-08 2021-12-31 北京软安科技有限公司 一种车辆can总线数据分类方法及装置
US11789518B2 (en) * 2021-06-22 2023-10-17 International Business Machines Corporation Voltage overshoot management
US11592895B1 (en) * 2021-06-30 2023-02-28 Epirus, Inc. Systems and methods for improving power efficiency

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006806A1 (en) 2001-07-03 2003-01-09 Elappuparackal Tony T. Data-driven clock gating for a sequential data-capture device
JP2007502477A (ja) 2003-05-27 2007-02-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電力消費のモニタおよび制御

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953237A (en) * 1996-11-25 1999-09-14 Hewlett-Packard Company Power balancing to reduce step load
US9671844B2 (en) * 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US20150220128A1 (en) * 2014-02-04 2015-08-06 Infineon Technologies Ag Method and Apparatus for Use in a Data Processing System
US9735778B1 (en) * 2014-08-20 2017-08-15 Altera Corporation Method and apparatuses for optimizing power management on an integrated circuit device
GB2542215B (en) * 2016-01-18 2018-04-11 Imagination Tech Ltd Dynamic power measurement using a formal verification tool
US10545556B2 (en) * 2017-05-10 2020-01-28 Texas Instruments Incorporated Fine-grained dynamic power and clock-gating control
US10671147B2 (en) * 2017-12-18 2020-06-02 Facebook, Inc. Dynamic power management for artificial intelligence hardware accelerators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006806A1 (en) 2001-07-03 2003-01-09 Elappuparackal Tony T. Data-driven clock gating for a sequential data-capture device
JP2007502477A (ja) 2003-05-27 2007-02-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電力消費のモニタおよび制御

Also Published As

Publication number Publication date
CN110413414A (zh) 2019-11-05
EP3771963A1 (en) 2021-02-03
KR102335749B1 (ko) 2021-12-06
US20210034421A1 (en) 2021-02-04
JP2021022373A (ja) 2021-02-18
KR20210014063A (ko) 2021-02-08
US11537441B2 (en) 2022-12-27

Similar Documents

Publication Publication Date Title
JP7110278B2 (ja) 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
US20240005135A1 (en) Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits
KR20220131796A (ko) 프로세싱 엘리먼트, 이의 동작 방법, 및 이를 포함하는 가속기
CN107301454B (zh) 支持离散数据表示的人工神经网络反向训练装置和方法
KR102598173B1 (ko) 최적화된 딥 네트워크 처리를 위한 그래프 매칭
Huan et al. A low-power accelerator for deep neural networks with enlarged near-zero sparsity
Li et al. Accelerating attention through gradient-based learned runtime pruning
KR102181385B1 (ko) 신경망에서의 무작위성 생성
CN109863476A (zh) 动态变量精度计算
Boguslawski et al. Twin neurons for efficient real-world data distribution in networks of neural cliques: Applications in power management in electronic circuits
KR20230157968A (ko) 뉴럴 네트워크 양자화의 동적 스케일링을 위한 인공 지능 프로세서 아키텍처
US11704562B1 (en) Architecture for virtual instructions
Bhattacharjee et al. MIME: adapting a single neural network for multi-task inference with memory-efficient dynamic pruning
CN114065121A (zh) 一种求解伊辛模型的计算方法及设备
Rao et al. An energy-efficient accelerator for rain removal based on convolutional neural network
Devic et al. Highly-adaptive mixed-precision MAC unit for smart and low-power edge computing
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
WO2021037082A1 (zh) 用于处理数据的方法、装置以及相关产品
Moon et al. Multipurpose Deep-Learning Accelerator for Arbitrary Quantization With Reduction of Storage, Logic, and Latency Waste
Vu et al. Performance Evaluation of Quine-McCluskey method on multi-core CPU
KR102339896B1 (ko) 프로세싱 엘리먼트, 이의 동작 방법, 및 이를 포함하는 가속기
US11899551B1 (en) On-chip software-based activity monitor to configure throttling at a hardware-based activity monitor
US11720784B2 (en) Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit
Wang et al. A scalable low-power accelerator for sparse recurrent neural networks
Zhang et al. Predicting failures in embedded systems using long short-term inference

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20211119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220615

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220615

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220623

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220628

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220720

R150 Certificate of patent or registration of utility model

Ref document number: 7110278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150