JP6611375B2 - 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム - Google Patents

新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム Download PDF

Info

Publication number
JP6611375B2
JP6611375B2 JP2017520922A JP2017520922A JP6611375B2 JP 6611375 B2 JP6611375 B2 JP 6611375B2 JP 2017520922 A JP2017520922 A JP 2017520922A JP 2017520922 A JP2017520922 A JP 2017520922A JP 6611375 B2 JP6611375 B2 JP 6611375B2
Authority
JP
Japan
Prior art keywords
processor
mode
clock signal
voltage
asmp
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
JP2017520922A
Other languages
English (en)
Other versions
JP2017532686A (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
Priority claimed from US14/516,314 external-priority patent/US9952650B2/en
Application filed by ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2017532686A publication Critical patent/JP2017532686A/ja
Application granted granted Critical
Publication of JP6611375B2 publication Critical patent/JP6611375B2/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/324Power saving characterised by the action undertaken by lowering 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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Description

[関連出願への相互参照]
本願は、発明の名称を「マルチプロセッサの動的な非対称及び対称モードスイッチのためのハードウェア装置及び方法」とする2014年10月16日に出願された先の米国特許出願第14/516,314号の一部継続出願である発明の名称を「新規な低コスト、低電力高性能SMP/ASMPマルチプロセッサシステム」とする2014年12月22日に出願された米国仮特許出願第14/580,044号に対する優先権を主張し、これらの両方の特許出願は、その全体において再現されているが如く、参照により本明細書に組み込まれる。本発明は、概して、マルチプロセッサアーキテクチャ及びシステムに関し、より詳細には、マルチプロセッサ/コアシステムにおける少なくとも1つのプロセッサ/コアを、非対称及び対称マルチプロセッシングモードの間でスイッチする装置及び方法に関する。
マルチプロセッシングシステムは、データを処理し、所望の機能を実行するマルチプロセッサ(例えば、中央処理装置(CPU))を用いる。理解されるように、「プロセッサ」という用語は、「CPU」又は「コア」という用語の同義語として用いられ、当業者によって容易に理解される。従来技術において、対称マルチプロセッシング(SMP)及び非対称マルチプロセッシング(ASMP)という、2つの主なタイプの異なるマルチプロセッシングシステムが存在する。
SMPシステムは、典型的には、全てのシステムリソース、単一の同期L2キャッシュインタフェース(及び、おそらくは非同期L2)を共有することによって特徴付けられ、プロセッサは、同じクロック周波数及びクロック電圧において制御される。これは、概して、プロセッサ/コアが(L2キャッシュ及びメモリのような)共有メモリシステムに等しくアクセス可能であることをも意味する。SMPにおいて、クロック周波数及び電圧は、個々に調整可能ではなく、従って、コア/プロセッサ単位で変更することはできない。さらに、L2キャッシュは、全てのコアの中で共有され、L2キャッシュ周波数は、コア単位でスケーラブルではない。全てではないにせよ、大半のアプリケーションにおいて、SMPにおけるプロセッサの動作負荷はアンバランスであり、このことが、より高い電力消費を招く。SMPは、全てのプロセッサ/コアに等しく対応するものとして(平等性)、さらに特徴付けられる。
対照的に、ASMPシステムは、典型的には、プロセッサに対して個々に、異なるクロック周波数及び/又はクロック電圧を有することによって特徴付けられ、L2キャッシュクロック周波数は、別個にスケール変更することができる。従って、プロセッサクロック周波数及びL2キャッシュ周波数は、動作負荷に基づいて(例えば、メモリ集中動作負荷に対して、コアに関するより高速なL2キャッシュ)、スケール変更することができる。一般論では、ASMPシステムは、SMPシステムより電力効率が高いが、追加の及びより複雑なハードウェアによって、より高い電力消費が引き起こされる可能性がある。L1キャッシュミス率が高い場合、プロセッサは、L2キャッシュからのデータをフェッチする。要求された関連データがL2キャッシュのより低いクロック周波数部分に格納されている場合、プロセッサは、データを待たなければならない。このことは、より高いレイテンシ及びより高い電力消費を招く。ASMPは、全てのプロセッサ/コアに異なる様に又は不均等に対応するものとして(不平等性)、さらに特徴付けられる。
図1を参照すると、ASMPを用いるマルチプロセッサを有する処理システム100の基本的なアーキテクチャが示される。理解されるように、同様の従来技術のシステムがSMPに用いられている。しかしながら、当業者によって容易に理解されるように、このプロセッサは、単一のクロック周波数において、かつ、単一の供給電圧レベルを用いて動作する。
処理システム100は、図示されるように、対応するL2キャッシュメモリ部分120(120a、120b、120c、120d)及びクロックドメインクロッシング(CDC)回路130(130a、130b、130c、130d)を有するマルチプロセッサ110(110a、110b、110c、110d)を有するマルチプロセッサコア及びキャッシュサブシステム105を含む。4つのプロセッサ110(及び対応するメモリ及び回路)が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも2つを含む。理解されるように、各プロセッサ110は、1つ又は複数の中央処理装置(CPU)を含んでよい。
処理システム100は、それぞれのプロセッサ、キャッシュ及びCDCへの電力供給において用いられる複数の供給電圧信号を生成する電力管理制御(PMIC)回路140をさらに含む。同様に、クロック生成回路150は、それぞれのプロセッサ、キャッシュ及びCDCのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。理解されるように、PMIC回路は、サブシステム105と同じ基板上にあってよく、又は、他の基板上に(例えば、他のICに)与えられてよい。
上述され、当業者によって容易に理解されるように、別個のSMP及びASMPアーキテクチャ/システムの各々は、様々な短所又は欠点と同様に、様々な長所又は利益を有する。(ハードウェア及びソフトウェアの機能性の両方において)各システムのタイプの複雑さ及びコストによって、設計者は、典型的には、特定のアプリケーションに基づいて、SMPシステム又はASMPシステムのいずれかを選択しなければならない。従来技術のマルチプロセッサシステムは、ASMP又はSMPのいずれかを用いていた。
従って、二重のマルチプロセッサコア、キャッシュ及びCDCサブシステムを有することなく、動作可能であり、かつ、SMPシステム及びASMPシステムの機能性の両方を同時に提供可能なマルチプロセッシングシステム又はアーキテクチャが必要とされる。
一実施形態によれば、マルチプロセッサ(MP)処理システムを含むマルチプロセッシングシステムが提供される。MP処理システムは、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、受信及び動作を実行するように構成される第1のプロセッサと、第1のクロック信号又は第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、受信及び動作を実行するように構成される第2のプロセッサとを含む複数のプロセッサを含む。コントローラは、少なくとも第2のプロセッサに連結され、第1の動作モードと第2の動作モードとの間で、第2のプロセッサの動作をスイッチするように構成される。第1の動作モードにある場合、第2のプロセッサは、第1のクロック信号及び第1の供給電圧に従って、受信及び動作を実行し、第2の動作モードにある場合、第2のプロセッサは、第2のクロック信号及び第2の供給電圧に従って、受信及び動作を実行する。第1のプロセッサは、第1の動作モード及び第2の動作モードの両方の間、第1のクロック信号及び第1の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される。
他の実施形態によれば、装置が提供される。装置は、マルチプロセッシング機能を実行するように構成される複数のプロセッサを含む。複数のプロセッサは、複数の第1のプロセッサ及び第2のプロセッサを含む。コントローラは、第1のモード及び第2のモードにおいて、第2のプロセッサの動作を制御するように構成される。装置は、コントローラに連結され、第1のクロック信号及び第2のクロック信号を生成及び出力するように構成されるクロック生成回路と、クロック生成回路と第2のプロセッサとの間に配置され、第1のクロック信号及び第2のクロック信号を受信し、第2のプロセッサに出力される1つを選択するように構成されるスイッチ回路をさらに含む。第1の動作モードの間、第1のクロック信号は、第2のプロセッサに出力され、第2の動作モードの間、第2のクロック信号は、第2のプロセッサに出力される。第1の動作モード及び第2の動作モードの間、第1のクロック信号は、複数の第1のプロセッサに入力される。キャッシュメモリは、複数のプロセッサに連結され、これらと共に用いられるように構成される。クロックドメインクロッシング(CDC)及びバイパス回路は、コントローラに応答し、第2のプロセッサ及びキャッシュメモリに連結され、第2の動作モードの間、第2のプロセッサとキャッシュメモリとの間でクロックドメインクロッシング機能を提供し、第1の動作モードの間、バイパス機能を提供するようにさらに構成される。
他の実施形態において、対称マルチプロセッシング(SMP)モードと非対称マルチプロセッシング(ASMP)モードとの間で複数のプロセッサをスイッチする方法が提供される。方法は、第1のプロセッサが動作する全ての時間において、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、第1のプロセッサを動作させる段階と、モード選択信号を受信する段階と、モード選択信号に応じて、第1の動作モード又は第2の動作モードで第2のプロセッサを動作させる段階と、を含む。第1の動作モードにおいて、第2のプロセッサは、第1のクロック信号及び第1の供給電圧に従って動作させられ、第2の動作モードにおいて、第2のプロセッサは、第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、動作させられる。
さらに他の実施形態において、マルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法が提供される。ここで、少なくとも2つのプロセッサは、対称マルチプロセッシング(SMP)モード又は非対称マルチプロセッシング(ASMP)モードで動作する。方法は、少なくとも2つのプロセッサをSMPモードで動作させる段階であって、少なくとも2つのプロセッサは、第1の事前決定された周波数を有するSMPクロック信号を受信し、第1の電圧を有するSMP動作供給電圧を受信し、少なくとも2つのプロセッサは、第1のプロセッサ及び第2のプロセッサを含む、段階と、SMPモードからASMPモードにスイッチする命令を受信する段階と、SMPモードからASMPモードに少なくとも2つのプロセッサの動作をスイッチする段階と、を含む。動作をスイッチする段階は、第1の事前決定された周波数と異なる第2の事前決定された周波数を有するASMPクロック信号を生成する段階と、第1の電圧と異なる第2の電圧において、ASMP動作供給電圧を生成する段階と、ASMPクロック信号及びASMP動作供給電圧を第2のプロセッサに入力する段階と、その後、第2の事前決定された周波数及び第2の電圧において、第2のプロセッサを動作させ、第1の事前決定された周波数及び第1の電圧において、第1のプロセッサを動作させる段階と、を含む。
他の実施形態によれば、マルチプロセッサ(MP)処理システムが提供される。MP処理システムは、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、受信及び動作を実行するように各々が構成される第1のプロセッサ及び第2のプロセッサと、第1のクロック信号又は第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、受信及び動作を実行するように構成される第3のプロセッサと、第1のクロック信号又は第1の事前決定された周波数と異なる第3の事前決定された周波数を有する第3のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第1の事前決定された動作電圧と異なる第3の事前決定された動作電圧を有する第3の供給電圧に従って、受信及び動作を実行するように構成される第4のプロセッサと、を含む複数のプロセッサを有する。コントローラは、少なくとも第3のプロセッサ及び第4のプロセッサに連結され、第1の動作モードと第2の動作モードとの間で、第3のプロセッサ及び第4のプロセッサの動作をスイッチするように構成される。第1の動作モードにある場合、第3のプロセッサ及び第4のプロセッサの各々は、第1のクロック信号及び第1の供給電圧に従って、受信及び動作を実行し、第2の動作モードにある場合、第3のプロセッサは、第2のクロック信号及び第2の供給電圧に従って、受信及び動作を実行し、第4のプロセッサは、第3のクロック信号及び第3の供給電圧に従って、受信及び動作を実行する。第1のプロセッサ及び第2のプロセッサは、第1の動作モード及び第2の動作モードの両方の間、第1のクロック信号及び第1の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される。
さらに他の実施形態において、対称マルチプロセッシング(SMP)モードと非対称マルチプロセッシング(ASMP)モードとの間で複数のプロセッサをスイッチする方法が提供される。方法は、第1のプロセッサ及び第2のプロセッサの動作中の全ての時間において、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、第1のプロセッサ及び第2のプロセッサを動作させる段階と、モード選択信号を受信する段階と、モード選択信号に応じて、第1の動作モード又は第2の動作モードで、第3のプロセッサ及び第4のプロセッサの両方を動作させる段階と、を含む。第1の動作モードにおいて、第1のクロック信号及び第1の供給電圧に従って、第3のプロセッサ及び第4のプロセッサを動作させ、第2の動作モードにおいて、第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、第3のプロセッサを動作させ、第1の事前決定された周波数と異なる第3の事前決定された周波数を有する第3のクロック信号に従って、かつ、第1の事前決定された動作電圧と異なる第3の事前決定された動作電圧を有する第3の供給電圧に従って、第4のプロセッサを動作させる。
さらに他の実施形態において、複数のプロセッサを有するマルチプロセッサシステムにおける処理の方法が提供される。方法は、複数のプロセッサ内の第1のアクティブプロセッサのみを用いて、マルチプロセッサシステム内における処理を実行する段階と、マルチプロセッサシステム内における処理のために、第2のプロセッサがアクティブ化されるべきであると判断する段階と、判断に応じて、第2のプロセッサをアクティブ化する段階と、対称マルチプロセッシング(SMP)モード又は非対称マルチプロセッシング(ASMP)モードのいずれかに従って、第1のアクティブプロセッサ及び第2のアクティブプロセッサを用いて、マルチプロセッサシステム内における処理を実行する段階と、を含む。SMPモードにある場合、第1のアクティブプロセッサ及び第2のアクティブプロセッサの各々は、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された電圧を有する第1の供給電圧に従って動作し、ASMPモードにある場合、第1のアクティブプロセッサは、第1のクロック信号及び第1の供給電圧に従って動作し、第2のプロセッサは、第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って動作する。方法は、モード選択信号を受信する段階と、モード選択信号に応じて、SMPモードからASMPモードに、又はASMPモードからSMPモードに、第1のアクティブプロセッサ及び第2のアクティブプロセッサの動作をスイッチする段階と、をさらに含む。
他の実施形態において、第1のプロセッサ及び第2のプロセッサを含む複数のプロセッサを有するマルチプロセッサ(MP)処理システムが提供される。コントローラは、少なくとも第2のプロセッサに連結され、アクティブ化/非アクティブ化信号に応じて、第2のプロセッサをアクティブ化又は非アクティブ化し、第2のプロセッサのアクティブ化の際に、対称マルチプロセッシング(SMP)モード又は非対称マルチプロセッシング(ASMP)モードのいずれかに従って、第1のプロセッサ及び第2のプロセッサを用いたマルチプロセッサシステム内における処理を制御するように構成される。SMPモードは、第1のプロセッサ及び第2のプロセッサの各々が、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された電圧を有する第1の供給電圧に従って動作するものと定義され、ASMPモードは、第1のプロセッサが第1のクロック信号及び第1の供給電圧に従って動作し、第2のプロセッサが第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って動作するものと定義される。コントローラは、モード選択信号を受信し、モード選択信号に応じて、第1のプロセッサ及び第2のプロセッサの動作をSMPモードからASMPモードに、又はASMPモードからSMPモードにスイッチするようにさらに構成される。
本発明及びこれらの長所に対するより完全な理解のために、ここで、同様の番号が同様の対象を示す添付図面と共に、以下の説明を参照する。
従来技術の例示的な非対称マルチプロセッシングシステム(ASMP)を示す。 本開示の特定の実施形態に係る例示的なマルチプロセッシングシステムを示す図である。 本開示に係る図2に示されるシステムと共に用いられる例示的な有限ステートマシン(FSM)及び処理を示す。 本開示に係る例示的な有限ステートマシン(FSM)及び図2に示されるシステムと共に用いられる処理を示す。 本開示に係る例示的な有限ステートマシン(FSM)及び図2に示されるシステムと共に用いられる処理を示す。 本開示に係るグリッチレスクロックの一実装を示す図である。 本開示に係るクロックドメインクロッシング(CDC)及びバイパス回路のブロック図である。 図2に示される例示的なマルチプロセッシングシステムの他の実施形態である。 本開示に係る図6に示されるシステムと共に用いられる有限ステートマシン(FSM)の他の実施形態を示す。 本開示に係るマルチプロセッシングシステムの他の実施形態を示す図である。 SMP/ASMPモードスイッチを開始及び制御するためのアーキテクチャ(方法、処理、システム)の図である。 本開示に係る例示的な動的モードスイッチ方法又は処理を示す。 本開示に係る代替的なモードスイッチ方法又は処理を示す。 本開示に係る例示的な静的モードスイッチ方法又は処理を示す。 本開示の特定の実施形態に係る第2のマルチプロセッシングシステムを示す図である。 SMP/ASMPモードスイッチを開始及び制御するためのアーキテクチャ(方法、処理、システム)の図である。 図12に示される処理システムの2つの実施形態を示す簡略化されたブロック図である。 図12に示される処理システムの2つの実施形態を示す簡略化されたブロック図である。 SMP及びASMPモードの4つのプロセッサ/コアを有するシステムにおける異なる例示的なマルチプロセッシング構成を示す。 SMP/ASMPモードスイッチを開始及び制御するための代替的なアーキテクチャ(方法、処理、システム)の図である。 MPシステムの代替的な実施形態又はアーキテクチャを示す。 追加のプロセッサがいつアクティブ化されるべきか(又は、タスク負荷に基づいて、複数のアクティブプロセッサの1つがいつ非アクティブ化されるべきか)を示すグラフである。 SMP/ASMPモード選択/スイッチ処理と統合された付加/除去プロセッサの処理の一般的なフロー図である。
本明細書において説明される図1から11、ならびに本明細書中で示される様々な実施形態、及び本特許文献における本開示の後述される原則は、例示としてのみ用いられ、本発明の範囲を決して限定するものと解釈されるべきではない。当業者であれば、本明細書において説明される原則が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実装可能であることを理解しよう。
完全にSMPのシステムから完全にASMPのシステムに、プロセッサ/コアのグループの動作をスイッチする場合、このSMP/ASMP動的スイッチの機能性の提供に関連するコスト及び複雑さ(ハードウェア/ソフトウェア)が重要となり得ることが見出されている。より小さいデバイス(例えば、スーパーコンピューティングデバイス及びアプリケーションと対照的に、モバイルアプリケーションのモバイルデバイス、ハンドヘルドデバイス、スマートフォン等)では、調査及び試験により、最もよく用いられるアプリケーションにおいて、マルチプロセッシングタスク/機能は、2つ(又はそれより少ない)プロセッサ/コアを用いて適切に対応可能であると判断されている。これらのアプリケーションの大半において、2つのプロセッサ/コアは、アンバランスな負荷で実行され、より高い電力消費を招く。
従って、ASMP態様で動作可能でありながら、プロセッサ/コアの中で、シングルプロセッサ/コア(又はサブセット)のみが異なるクロック周波数及び/又は異なる動作供給電圧の間における動的スイッチのために構成及び有効化され、残りのプロセッサ/コアは同じクロック周波数及び同じ供給電圧で構成される、低コスト、低電力及び高性能マルチプロセッシングシステムを有することが有益である。例えば、マルチプロセッサシステムが2つのプロセッサ/コアを含む場合、第1のプロセッサ/コアは第1のクロック周波数(動的変化不可能)及び第1の供給電圧(動的変化不可能)において動作し、第2のプロセッサ/コアは、第1の周波数及び第1の供給電圧(第1のプロセッサ/コアと同じ)又は異なる周波数及び異なる供給電圧のいずれかにおける動作の間でスイッチ可能である。これは、3つ又はそれより多くのプロセッサ/コアを有し、これらのプロセッサ/コアの少なくとも1つ(又はサブセット)がこの動的スイッチ機能を有するシステムに適用されてもよい。
プロセッサ/コアのグループにおいて、そのグループの全ての他のプロセッサ/コアと同じクロック周波数及び供給電圧で動作する(これにより、SMPモードにおいて集合的に動作する)、又は、他のプロセッサ/コアと異なるクロック周波数及び供給電圧で動作する(これにより、ASMPモードで集合的に動作する)少なくとも1つのプロセッサ/コアを制御及び選択する方法を有することも、有益なことがある。このようなシステム及び方法は、実装コスト及び電力消費を減少させ、効率を向上させる。
一般論では、本願の図1−11に関して示される実施形態は、対称マルチプロセッシング(SMP)及び非対称マルチプロセッシング(ASMP)という2つの動作モードの間でスイッチ可能なマルチプロセッサ/コアを有する処理システムを説明する。システムは、2つのモード間において制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム(OS)又は他のソフトウェア/ハードウェアからの、SMPとASMPとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、マルチプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような1つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、システムが1つのモードから他のモードへの移行中に障害を発生させず、プロセッサ/メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置/方法は、ソフトウェア/OS介入を最小化し、より高速なモードスイッチ速度を有する。
本明細書において用いられるように、SMPという用語は、概して、(同じクロック及び電圧供給で動作するL2キャッシュメモリを有する)共有メモリシステムを用いて、同じクロック(周波数)及び同じ電圧供給で動作するマルチプロセッサ/CPU/コアを用いた処理を指す。ASMPという用語は、概して、異なるクロック(周波数)及び/又は電圧供給で動作する少なくとも2つを有するマルチプロセッサ/CPU/コアを用いた処理を指す。ASMPにおいて、典型的には、各プロセッサは、異なるL2キャッシュメモリを用いる。しかしながら、ASMPは、同じL2キャッシュメモリ(ヘテロジニアスASMPと称される)の共有をさらに含んでよい。他の態様において、ASMPという用語は、各プロセッサ/CPU/コアが第1のクロック周波数及び第1の供給電圧、又は第2のクロック周波数及び第2の供給電圧の少なくともいずれかを用いて動作するように構成されるマルチプロセッサ/CPU/コアを用いたマルチプロセッシングを指す。2つより多くのこのようなクロック/電圧の組み合わせも考慮される。本態様において、プロセッサ/CPU/コア(2つ又はそれより多く)の全ては、SMPモード(全てが同じクロック周波数及び電圧を用いる)又はASMPモード(全てが異なるクロック周波数及び電圧を用いる)のいずれかにおいて動作するように構成されてよい。
理解されるように、本開示は、図12−19において説明されるSMP/ASMPシステムの様々な他の実施形態をさらに提供する。これらは、これらの実施形態における、プロセッサ/コアのサブセット(少なくとも1つ、かつ一部)のみに入力されるクロック周波数及び供給電圧が、異なるクロック周波数及び/又は異なる電圧供給レベルを受信するように動的にスイッチ可能又はプログラム可能であることを除き、図1−11に関して説明されたものと同様である。
本願は、動作のSMPモードとASMPモードとの間におけるモードスイッチ(動的/静的又は手動/インテリジェント)の様々な方法をさらに説明する(例えば、スイッチコマンドの生成)。1つの方法において、SMPモードは、軽負荷条件下で、又はL1キャッシュミス率が高い場合に選択される。ASMPは、重くアンバランスな負荷条件下で選択される。また、リアルタイムな高速モード選択を容易にするために利用可能な学習モードが導入される。全体的な利益は、負荷がアンバランスな場合により低電力であること、より高性能かつキャッシュミスがより少ないこと、及び手動で又はインテリジェントにモードをスイッチする性能を含んでよい。
ここで、図2を参照すると、本開示に係る処理システム200を示す詳細図が示される。処理システム200は、図示されるように、マルチプロセッサ210(210a、210b、210c、210d)と、対応するL2キャッシュメモリ部分220(220a、220b、220c、220d)及びクロスドメインクロック(CDC)バイパス回路230(230a、230b、230c、230d)とを有するマルチプロセッサコア及びキャッシュサブシステム205を含む。4つのプロセッサ210(及び対応するメモリ及び回路)が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも2つを含む。理解されるように、各プロセッサ210は、1つ又は複数の中央処理装置(CPU)又はコアを含んでよい。
処理システム200は、それぞれのプロセッサ、キャッシュ及びCDCへの電力供給において用いられる複数の供給電圧信号を生成する電力管理制御(PMIC)回路240をさらに含む。同様に、クロック生成回路250は、それぞれのプロセッサ、キャッシュ及びCDCのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。
一実施形態において、PMIC回路240を除いて、処理システム200は、単一の集積半導体基板/ダイ上に(又はマルチ基板ICパッケージ内に配置される複数の半導体基板内に)配置され、又は他の方法で位置する。他の実施形態において、PMIC回路240は、単一の集積半導体基板/ダイ上に含まれてもよい。
図示されるように、処理システム200は、コントローラ260(モードコントローラとも称されることがある)及びクロックスイッチ回路(又はモジュール)270をさらに含む。理解されるように、コントローラ260は、クロック生成回路250、PMIC回路240、「バイパス回路を有するCDC」230及びクロックスイッチ回路270の機能性及び動作を制御する様々な制御信号を出力する。
クロック生成回路250は、全てのプロセッサ210の動作速度を集合的に制御する1つのSMPプロセッサクロック信号(CLK)、全てのキャッシュ部分220の動作速度を集合的に制御する1つのSMPメモリクロック信号(CLKch)、4つのプロセッサ(210a、210b、210c、210d)の各々の動作速度の個別制御を有効化する4つのASMPプロセッサクロック信号(CLK0、CLK1、CLK2、CLK3)、及びキャッシュメモリ部分(220a、220b、220c、220d)の各々の動作速度の個別制御を有効化する4つのASMPメモリクロック信号(CLKch0、CLKch1、CLKch2、CLKch3)を含む複数のクロック信号を生成するために必要な回路及び要素を含む。これらのクロックのいずれも、回路250によってグリッチレスに有効化又は無効化される。クロック生成回路250は、コントローラ260によって用いられるコントローラクロック信号(CLK_FSM)をさらに生成する。
PMIC回路240は、サブシステム205のそれぞれの部分によって用いられる複数の動作供給電圧又は信号の生成に必要な回路及び要素を含む。図示されるように、PMIC回路240は、処理ユニットのそれぞれのグループの各々に電力を供給する4つの動作供給電圧(V0、V1、V2、V3)を生成及び出力する。言い換えると、動作供給電圧V0は、プロセッサ210a、キャッシュメモリ部分220a及びバイパス回路を有するCDC230aに電力を供給し、電圧供給V1は、プロセッサ210b、キャッシュメモリ部分220b及びバイパス回路を有するCDC230bに電力を供給する、等である。当業者によって理解されるように、プロセッサ/メモリがより高いクロック速度で動作する場合、プロセッサ/メモリをより高い供給電圧でさらに動作させることが望ましく、これが必要なことがある。さらに、コアが用いられない場合、電力急減又はクロック無効化がされ得る。
クロック生成回路250は、生成されたクロック信号の各々にプログラム可能性を有効化する機能性及び回路をさらに含んでよいことが理解されよう。一実施形態において、クロック信号の各々は、多くの可能な周波数の1つにプログラム可能であってよい(例えば、CLKは、300MHzから3GHzのような範囲の間でプログラム可能であってよい)。他の実施形態において、特定のクロック信号のみがプログラム可能であってよく、さらに他の実施形態において、各クロック信号の周波数は、事前決定され、固定である。さらに他の実施形態において、周波数は、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。
同様に、PMIC回路240は、生成された動作電圧供給V0、V1、V2、V3の各々にプログラム可能性を提供する機能性及び回路をさらに含んでよい。一実施形態において、各供給は、多くの可能な電圧レベルの1つに対してプログラム可能であってよい(例えば、電圧は、0.5ボルト及び3.3ボルトのような範囲の間でプログラム可能であってよい)。他の実施形態において、特定の電圧の電力供給のみがプログラム可能であってよく、さらに他の実施形態において、各供給の電圧レベルは、事前決定され、固定である。さらに他の実施形態において、電圧レベルは、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。図示されていないが、他の実施形態において、基本動作電圧供給は、図示される4つに加えて、生成されてよい。この場合、基本電圧供給及び他の4つは、(クロックスイッチ回路270において示されるマルチプレクサ272と同様の)多重化回路への入力として用いられてよい。
他の実施形態において(不図示)、それぞれのプロセッサ/L2キャッシュメモリのペアの1つ又は複数は、異なる電力供給電圧信号を有してよい、すなわち「分割レール」システムである。このようなシステムにおいて、L2キャッシュメモリ及びその関連プロセッサは、異なる電圧供給レールを有する。理解されるように、ペアの1つ又は複数(又は全て)は、分割レール電圧供給を有してよい。従って、本実施形態において、生成された動作電圧供給V0、V1、V2、V3は分割され、例えば、別個の供給V0(プロセッサ)及びV0(キャッシュ)等を含んでよい。これらは、別個に又は1つ又は複数のグループとしてプログラム可能であってよい。本実施形態において、システム200は、CDC回路230と別個の、又はその内部に含まれる電圧ドメインクロッシング回路(不図示)をさらに含んでよい。
モード又はスイッチコントローラ260は、有限ステートマシン(FSM)262、1つ又は複数のタイマ264、及び(構成又はステータスレジスタのような)1つ又は複数のストレージレジスタ266を含む。コントローラ260は、スイッチコマンド(SELECT_ASMP_MODE)のアサートに応じて、一連のアクション又は処理を制御及び実行するように機能する。従って、図示される実施形態において、スイッチコマンドがアサート/非アサートされる場合、動作モードは、ASMPモードとSMPモードとの間でスイッチされる。様々な方法及びメカニズムが、スイッチコマンドの生成のために用いられてよく、いくつかの例が、図8−11に関して後述される。
有効化信号(ENABLE_ASMP_CLKS、ENABLE_SMP_CLK)を用いて、コントローラ260は、SMP/ASMPスイッチの前にクロックを有効化するクロック生成モジュール250を制御する。コントローラ260は、PMIC回路240のモジュールをさらに制御し、スイッチの前に(又はスイッチの後で)動作供給電圧V0、V1、V2、V3をプログラム又は変化させる。一実施形態において、PMIC回路240がプロセッサの外部にある場合(例えば、オフチップ)、コントローラ260は、SPMI/SBI/MIPIのような通信バス又はインタフェースを介してPMIC回路240と通信を行ってよい。PMIC回路が外部にない場合、他の通信経路が用いられてよい。
スイッチコマンド(SELECT_ASMP_MODE)は、様々な事象に応じて、かつ、処理システム200内又は外部の様々な要素によって生成されてよいことが理解されよう。図示される実施形態において、スイッチコマンドは、マルチプロセッサコア及びキャッシュサブシステム205から生成されるが、他の実施形態においては、他のソースによって生成されてよい。
SMPクロックからASMPクロックへの実際のスイッチオーバ(逆もまた同様)が行われる場合、コントローラ260は、クロックスイッチ回路270内のマルチプレクサ272を用いて、プロセッサへのASMPクロック信号を選択的に多重化するASMP選択信号(SELECT_ASMP_CLK)を生成する。理解されるように、ASMPモードにおけるプロセッサ/CPUコア210のクロックは、CLK0、CLK1、CLK2、CLK3として示されるが、SMPモードにおけるプロセッサ/CPUコア210のクロックは、CLKと示される。従って、SELECT_ASMP_CLK信号は、どのクロックがグリッチレスに用いられるかを選択する。一実施形態において、SELECT_ASMP_CLKがアサートされる場合(ロジックハイ又は「1」)、クロック信号CLK0、CLK1、CLK2、CLK3が選択され、プロセッサ/コア210a、210b、210cおよび210dにそれぞれ入力される。SELECT_ASMP_CLKがアサートされない場合(ロジックロー又は「0」)、クロックCLKが選択され、プロセッサ/コア210a、210b、210cおよび210dの全てに入力される。スイッチ中の様々な事象及びアクションのタイミングは、1つ又は複数のタイマ264を用いることにより、FSM262に従って制御される。より詳細に後述されるように、クロックウォームアップ期間及び電圧ランプアップ/ランプダウン期間が用いられる。これらの値は、ソフトウェア又は他の方法によって、事前にプログラムされ又は事前設定され、コントローラのC/Sレジスタ又は他のメモリ位置(不図示)に格納されてよい。
理解されるように、参照番号によって具体的には特定されていないが、例えば、レベルシフタのような様々な他の論理回路が含まれてよい。レベルシフタは、典型的には、信号が電力ドメインをクロスする場合に用いられる。
ここで、図3A、図3Bおよび図3Cを参照すると、FSM262によって実行又は実装される処理又は方法300が示される。理解されるように、FSM262のこの処理/機能性は、異なる構成、方法もしくは構造(又はこれらの組み合わせ)又は方法を用いて実装されてよい。例えば、図示される実施形態においては有限ステートマシン(例えば、ハードウェア実装)として実装されるが、コントローラ206の機能性は、ソフトウェア、ファームウェアを有するマイクロコントローラ等、及びこれらの任意の組み合わせを用いて、又は当業者に公知の任意の他の態様/方式で代替的に実装されてよい。FSM262は、有利には、より高速で動作し、ソフトウェア/OS介入を最小化する。例えば、タイムアウト等の例外の場合、これは、システムプロセッサに対して中断を生成する。
図3A、3Bおよび3Cに示されるように、FSM262の状態図によって表される処理300は、様々な状態及び移行を含む。状態310において、処理システム200は、SMPモードで動作する。スイッチコマンド(SELECT_ASMP_MODE)が受信された場合、状態320(ASMP_CLK_WU)に入る。ここでは、ASMPクロックが(ASMPクロック有効化信号を用いて)有効化かつアクティブ化され、「ウォームアップ」される。事前決定されたウォームアップ期間(タイマ)の完了後、状態330(V_SMP_ASMP_RAMP_UP)に入る。ここでは、動作電圧供給V、V0、V1、V2、V3の全てが、(必要な場合には)事前決定された最大電圧レベル(MAX)にまで上昇する。事前決定された最大電圧レベルは、V1、V2、V3、V4がASMPモードにおける処理システム200の動作中に有する最も高い電圧レベルに等しい(又はそれより大きい)。例えば、4つのプロセッサが現在(SMPモードにおいて)1.5ボルトで動作しており、ASMPモードにおいて、4つのプロセッサが1.2、1.9、1.7及び1.7ボルトでそれぞれ動作する場合、動作供給電圧V1、V2、V3及びV4の全ては、1.9ボルト(又はそれより高く)にまで上昇する。
これらの4つの動作電圧供給電圧が事前決定された最大電圧(MAX)に到達した後で、状態340(SMP_ASMP_CLK_SWITCH)に入る。この状態340において、クロックスイッチ信号はアサートされ、プロセッサ210及びメモリ220のクロック(全てCLK SMPの周波数に等しい)は、SMPクロック信号からASMPクロック信号にスイッチされる。図示されるように、マルチプレクサ272は、SMPクロック信号CLKの代わりに、それぞれのASMPクロック信号CLK1、CLK2、CLK3、CLK4を出力するようにスイッチされる。これと同時に、バイパス回路を有するCDC230も、ASMPクロック信号を有効化するバイパスモードに設定され、バイパス回路を有するCDC230のクロックドメイン回路をバイパスする。また、このとき、クロック生成回路250によって生成されたSMPクロック信号は、非アクティブ化されてよい。
これらのイベントが完了した後で、状態350(V_SMP_ASMP_RAMP_DN)に入る。これは、動作供給電圧V1、V2、V3、V4に対するランプダウン手続きを実行させる。全てのプロセッサ210(及びメモリ220)はMAX動作供給電圧(上述の例においては1.9ボルト)で動作しており、ASMPモードにおいてV1、V2、V3及びV4に望ましい動作供給電圧は異なるので(上述の例においては、それぞれ1.2、1.9、1.7及び1.7ボルト)、V1、V3及びV4の電圧レベルはASMPモードにおいて所望の電圧レベルにまで減少する。
動作供給電圧がランプダウンした後で(例えば、ASMPモードにおいて各プロセッサに対して所望の電圧レベルに設定される)、状態360に入る。この状態において、処理システム200は、ここで、ASMPモードにおいて、それぞれのプロセッサ/メモリの組み合わせ、例えば、210a/220a、210b/220b、210c/220c、及び210d/220dの各々で動作しており、クロック及び電圧信号の組み合わせCLK0/V0、CLK1/V1、CLK2/V2、CLK3/V3にそれぞれ従って、動作している。
異なる実施形態において、FSM262によって実行される1つ又は複数の段階は、省略又はバイパスされてよいことが理解されよう。例えば、全ての電圧が同じである場合、V_SMP_ASMP_RAMP_UP及びV_SMP_ASMP_RAMP_DN状態は必要でないことがあり、省略されてよい。この例において、これにより、あらゆるモードスイッチレイテンシが減少し得る。いくつかの他の実施形態において、クロック電圧は、クロックがスイッチされる前に、ランプアップされなければならない。
前述されたように、クロック電圧及び周波数値は、本明細書において説明される方法を用いて、ソフトウェア/OSによって事前決定されてよく、スイッチを開始する前に、コントローラのC/Sレジスタ(又は他のメモリ位置)において、事前に格納又はプログラム可能である。他の実施形態において、システムは、リアルタイムの動作特性又はパラメータに基づいて、動作中のクロック電圧及び/又は周波数値を(いくつかの可能な値の1つから)判断してよい。これらの値(又はこれらの値の識別子)は、その後、C/Sレジスタ(又はいくつかの他のメモリ位置)に格納されてよい。
同様の処理が、ASMPモードからSMPモードにスイッチする場合に続く。状態360において、処理システム200は、ASMPモードで動作する。スイッチコマンド(SELECT_ASMP_MODE、非アサート)が受信された場合、状態370(SMP_CLK_WU)に入る。ここでは、SMPクロックが(SMPクロック有効化信号を用いて)有効化かつアクティブ化され、「ウォームアップ」される。事前決定されたウォームアップ期間(タイマ)の完了後、状態380(V_ASMP_SMP_RAMP_UP)に入る。ここでは、動作電圧供給V0、V1、V2、V3の全てが、(必要な場合には)事前決定された最大電圧レベル(MAX)に増加する。事前決定された最大電圧レベルは、ASMPモードにおいてV1、V2、V3、V4が現在供給している最も高い電圧レベルに(又は、そのレベルがV1、V2、V3及びV4の全てのレベルより高い場合、所望のSMP電圧レベルV_SMPに)等しい(又はそれより大きい)。例えば、4つのプロセッサが現在(ASMPモードにおいて)1.2、1.9、1.7及び1.7ボルトで動作しており、SMPモードにおいて、4つのプロセッサが1.5ボルト(V_SMP)でそれぞれ動作する場合、動作供給電圧V1、V2、V3及びV4の全ては、1.9ボルト(又はそれより高く)にまで上昇する。
これらの4つの動作電圧供給電圧が事前決定された最大電圧(MAX)に到達した後で、状態30(ASMP_SMP_CLK_SWITCH)に入る。この状態390において、クロックスイッチ信号はアサートされ、プロセッサ210及びメモリ220のクロック(おそらくは全てSMPクロック信号CLKの周波数と異なる)は、ASMPクロック信号CLK0、CLK1、CLK2、CLK3からSMPクロック信号CLKにスイッチされる。図示されるように、マルチプレクサ272は、ASMPクロック信号の代わりに、SMPクロック信号(CLK)を出力するようにスイッチされる。これと同時に、バイパス回路を有するCDC230は、SMPクロック信号を有効化するクロックドメイン回路を用いて、動作(及びバイパスモードを無効化)するようにさらに設定され、バイパス回路を有するCDC230におけるクロックドメイン回路を通して進む。また、このとき、クロック生成回路250によって生成されたASMPクロック信号は、非アクティブ化されてよい。
これらのイベントが完了した後で、状態395(V_ASMP_SMP_RAMP_DN)に入る。これは、動作供給電圧V1、V2、V3、V4に対するランプダウン手続きを実行させる。全てのプロセッサ210(及びメモリ220)はMAX動作供給電圧(上述の例においては1.9ボルト)で動作しており、所望の動作供給電圧は、SMPモードにおいて、現在の電圧レベル(当該例では1.9ボルト)より低いV_SMP(上述の例では1.5ボルト)であるので、動作供給電圧V1、V2、V3及びV4の全ては、所望のSMPモードにおいて、V_SMPレベル(1.5ボルト)にまで減少する。
動作供給電圧がランプダウンした後で(例えば、SMPモードにおいて各プロセッサに対して所望のSMP電圧レベルに設定される)、状態310に入る。この状態において、処理システム200は、ここで、SMPモードにおいて、それぞれのプロセッサ/メモリの組み合わせ、例えば、210a/220a、210b/220b、210c/220c、及び210d/220dの各々で動作しており、単一のクロック及び電圧信号の組み合わせCLK/V_SMPに従って、動作している。
異なる実施形態において、FSM262によって実行される1つ又は複数の段階は、省略又はバイパスされてよいことが理解されよう。例えば、全ての電圧が同じである場合、V_ASMP_SMP_RAMP_UP及びV_ASMP_SMP_RAMP_DN状態は必要でないことがあり、省略されてよい。この例において、これにより、あらゆるモードスイッチレイテンシが減少し得る。いくつかの他の実施形態において、クロック電圧は、クロックがスイッチされる前に、ランプアップされなければならない。
ここで、図4を参照すると、(図2に示される)クロックマルチプレクサ272の1つの回路実装が示される。本実施形態において、クロックマルチプレクサ272は、スイッチ中のグリッチ(不具合)がないことを意味する「グリッチレス」である。他の適切な回路実装がクロックマルチプレクサ272に用いられてよく、当業者であれば、グリッチレスなマルチプレクサスイッチを実行する他の回路が利用可能であることを容易に理解しよう。
図5を参照すると、(図2に示される)バイパス回路を有するCDC230の一実装が示される。従来技術のASMPシステムにおいて(図1参照)、各々が2つの非同期クロックドメインクロッシング(CDC)回路131a、131bを含むCDC回路130は、それぞれのプロセッサ210及びL2キャッシュ部分220の間に配置されることが理解されよう。理解されるように、非同期CDC回路131は、当分野で公知であり、従って、当業者であれば、このような機能性をどのように実装するかを理解しよう。これらのCDC回路及び/又はその機能性も、クロックスイッチ回路として、又はプロセッサとL2キャッシュとの間の非同期FIFOブリッジとして、当分野で公知である。
バイパス回路を有するCDC230は、図5に示されるように、非同期CDC回路131aと関連付けられた第1のマルチプレクサ272a、第1のデマルチプレクサ273a、及び第1のバイパス線231aをさらに含む。第2のマルチプレクサ272b、第2のデマルチプレクサ273b、及び第2のバイパス線231bは、図5に示されるように、非同期CDC回路131bと関連付けられる。CDC回路230において、モード間で(例えば、CDCの非同期モードと同期バイパスモードとの間で)スイッチする場合、CDC回路230は、「グリッチレス」スイッチを実行し、確実に、潜在的な不具合によって障害を生じることがないようにする。
当業者であれば、SMPモード(SELECT_ASMP_CLK信号がアサートされない)において、プロセッサ(例えば、210a)からのデータが、L2キャッシュ(例えば、220a)に向かう途中で非同期CDC回路131aをバイパスし、L2キャッシュ(例えば、220a)からのデータがプロセッサ(例えば、210a)に向かう途中で非同期CDC回路131bをバイパスすることを理解しよう。対照的に、ASMPモードにある場合(SELECT_ASMP_CLK信号がアサートされ、Cache_CLK及びCPU_CLK信号が異なる場合がある)、プロセッサ(210a)からのデータは、L2キャッシュ(220a)に向かう途中で非同期CDC回路131aによって処理され、L2キャッシュ(220a)からのデータは、プロセッサ(210a)に向かう途中で非同期CDC回路131bによって処理される。非同期CDC回路131a、131bは、事前決定された順番に従って、1つのクロックドメインから他のクロックドメインへのデータ転送を確実にするように機能し、例えば、最初に受信されたデータが最初に出力される。1つのクロックドメインにおいてクロックと同期する入力されたデータは、他のクロックドメインにおいてクロックと再同期される。非同期FIFOは、概して、インタフェースにおいて、いくらかのレイテンシにより、データバッファを提供する。
同期モードにある場合、Cache_CLKは、概して、CPU_CLKから導出される(例えば、CPU_CLKを1で除算、又は3で除算)。言い換えると、これらは等しくてよく、CPU_CLKは、通常、Cache_CLKの整数倍である(例えば、CPU_CLK=3*Cache_CLK)。2つのクロックは、本質的に同期する。データは、概して、さらにより小さいレイテンシにより、同期的にインタフェースをクロスする。
マルチプレクサ272a、272bは、図4に示されるグリッチレスクロックマルチプレクサ272と同じであってよい。デマルチプレクサ273a、273bは、本質的にマルチプレクサと同様の、又はこれに対する回路であってよいが、逆多重化機能を実行する。1つの好ましい実施形態において、これらも、グリッチレスである(グリッチレススイッチを実行する)。
ここで図6を参照すると、本開示に係る処理システム200aの他の実施形態を示す詳細図が示される。処理システム200aは、(1)CLK_0信号が、ASMPモードにある場合のCLK_0信号、及びSMPモードにある場合のCLK(SMP)信号の両方として機能する点、及び(2)CLK_ch0信号が、ASMPモードにある場合のCLKch_0信号及びSMPモードにある場合のCLKch(SMP)信号の両方として機能する点を除き、図2に示される処理システム200と同じである。これにより、プロセッサ/L2キャッシュペア(210a、220a)と関連付けられた第1の2つのマルチプレクサ272が必要なくなる。さらに、変形されたクロック生成モジュール250aは、これらのクロック信号の違いを実装するように提供され、変形されたFSM262aも含まれる。
理解されるように、図6に示される処理システム200aは、FSM262aによって実行又は実装される処理又は方法300aをさらに含む。理解されるように、FSM262aの処理/機能性は、ステートマシンの状態360が除外される点を除き、FSM262の処理/機能性と同じである。図6Aは、FSM262aを示し、図3Aに示されるFSM262と比較すると、残りの状態及び移行の全てが本質的に同じであることが容易に理解される。理解されるように、FSM262aの処理又は方法フローは、説明された変形を除き、図3Bおよび3Cに示されるFSM262の処理又は方法フローと同様である。これらの同様の処理又はフロー図は、簡潔性のため、本明細書では省略されている。
ここで、図7を参照すると、本開示に係る他の処理システム200bのより具体的な実施形態を示す詳細図が示される。処理システム200bは、マルチプロセッサコア及びキャッシュサブシステム205bが特定のアーキテクチャを含む点を除き、図2に示される処理システム200と同様である。図7は、本開示の教示による例示的なアプリケーションを示す。これは、8つのプロセッサコア710(aからh)及びL2キャッシュ720の2つのクラスタ(aからb)を含むARMのBig−Littleマルチプロセッササブシステムという特定のアーキテクチャに組み込まれている。L2キャッシュの2つのクラスタに基づいて、システム200bは、プロセッサ/L2キャッシュペアの2つのステージのみを必要とする。さらに、その中に示される230、240、250、260および270を含む様々なコンポーネントは、図2に示されるものと同じであってよく、これらは、プロセッサ及びキャッシュサブシステム205bの特定のアーキテクチャを考慮する場合、いくらかのわずかな変形を必要としてよい。これらの変形は、当業者によって容易に理解されよう。さらに、図6に示されるもののような、他の実施形態において説明される概念も、図7のシステムにおいて実装されてよい。
(図1−8に関して)上述された、SMPとASMPとの間におけるスイッチを実装する例示的なコンポーネント、ハードウェア及び方法に加えて、本開示は、モードスイッチを開始及び制御する例示的な方法及び処理を、さらに説明する。
SMPとASMPとの間における動的なモードスイッチが導入され、これは、トラフィックのタイプ、プロセッサの待ち時間、負荷アンバランス情報及び/又は電力消費に基づいてなされてよい。理解されるように、情報の他の要因及びタイプが分析され、モードの変更(又は維持)を決定する基礎を形成してよい。例えば、SMPモードは、負荷が軽い場合、又は全てのCPUコアが用いられて負荷が重い場合及び/又はL1キャッシュミス率が高い場合に選択されてよく、ASMPモードは、重い及び/又はアンバランスな負荷に対して選択されてよい。
静的な(すなわち、手動の)モードスイッチも、処理タイプ(例えば、演算集中的、タイムクリティカル等)又は特定のアプリケーションもしくはアプリケーションプログラム(例えば、アプリケーションプログラムがどのモードを用いるかを選択する)等に基づいて、実装されてよい。
リアルタイムのインテリジェントなモード選択を容易にするために利用可能な学習メカニズム又は処理が、本明細書においてさらに説明される。例えば、学習システムは、特定のトラフィック又は処理シナリオに対して、SMP又はASMPモードのいずれが、より電力消費を低くし得るかを判断することができる。
ここで、図8を参照すると、SMP/ASMPモードスイッチを開始及び制御するアーキテクチャ(例えば、方法、処理、システム)800が、概念的に示される。モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。図示されるように、処理又はアプリケーション802は、ブラウザアプリケーション802a、ストリーミングアプリケーション802b、ゲームアプリケーション802c又はナビゲーション802dであってよい。他の要因/情報804も、考慮されてよい。
例として、ストリーミングアプリケーション802bがマルチプロセッシングを必要とすると仮定すると、モード選択デバイス810は、そのアプリケーションに関連付けられた処理タスクがSMP又はASMPモードのいずれで実行されるべきかを判断する。システムソフトウェア/OSは、この判断を実行し、決定をなす。システムは、コントローラにコマンドを発行するようにシングルプロセッサを割り当ててよいが、概して、決定は、システムレベル/OSレベルで実装される。この決定は、静的情報、動的情報又はこれらの組み合わせに基づいてなされてよい。一例において、全てのビデオエンコーディングアプリケーションがSMPモードを用いることが事前決定されてよい。他の例において、全てのビデオストリーミングアプリケーションは、全てのCPUコアが使用されるほどCPUの現在の負荷が重くない限り、ASMPモードを用いる。他の変更形態は、1つのモードから他のモードにスイッチするか否かについての決定をなすために、プログラム及び利用可能である。
一実施形態において、シングルプロセッシングタスクが必要とされる場合に、ルックアップテーブルが参照されてよい。他の実施形態において、電力の比較は、マルチプロセッシングタスクが存在する場合にいずれかのモードを選択するために用いられる要因であってよい。例えば、ユーザが、同時に音楽を聴きつつ電子メールを利用している場合、ASMPが選択可能である。
どのモードが選択されるべきかを判断した後で、デバイス810は、SELECT_ASMP_MODE制御信号(図2参照)において適切な信号を発する(例えば、高/低)。理解されるように、現在の動作モードは、既に、選択されたモードであってよい(このような場合には、SELECT_ASMP_MODE信号は移行しない)。
SELECT_ASMP_MODE信号に応じて、システム200は、ASMPモード(820)又はSMPモード(830)で動作する。ASMPモードにある場合、コア1(要素210a、220a、230a)、コア2(要素210b、220b、230b)、コア3(要素210c、220c、230c)及びコア4(要素210d、220d、230d)の各々は、個別のクロック信号/周波数及び供給電圧で動作する。SMPモードにある場合、コア1からコア4は、同じクロック信号/周波数及び供給電圧で動作する。SMP及びASMPモード(ならびにモードスイッチ)の詳細は、より十分に上述されている。
ここで、図9を参照すると、本開示に係る例示的なモードスイッチ方法又は処理900が示される。システム200の動作中、(プロセッサコア固有の)L1キャッシュのミス率は、継続的にモニタリングされる(段階902)。ミス率は、事前決定された閾値と比較される(段階904)。このミス率が高い(閾値を超える)場合、処理は、システム200の現在の処理モードがASMPか否か、及び他のCPUの負荷が重い/軽いかを(他の閾値を用いて)判断する(段階906)。是の場合、システム200は、ASMPモードからSMPモードにスイッチする(段階908)。否の場合、システム200は、ASMPモードを継続する。
L1キャッシュミス率が高くない場合、処理は、システム200の現在の処理モードがSMPか否か、及び処理負荷が重くアンバランスであるか否かを判断する(段階910)。是の場合、システム200は、SMPモードからASMPモードにスイッチする(段階912)。否の場合、システム200は、SMPモードを継続する。
図9に示される処理900は、任意のインテリジェント学習処理をさらに含む。システム200がASMPモードからSMPモードに(段階908)、又はSMPモードからASMPモードに(段階912)スイッチする場合、スイッチの判断に関連するシナリオ情報は、学習システムデータベースに記録される(段階920)。シナリオ情報は、モードのスイッチを決定するためにシステムによって用いられる情報の任意の部分又は全部であってよい。図示の例において、シナリオ情報は、L1キャッシュミス率及び負荷情報(軽い/重い、バランスがよい/アンバランスな)を含んでよい。
ここで、図10を参照すると、履歴データ及び過去の経験からのインテリジェンスに基づく例示的な代替的なモードスイッチ方法又は処理100が示される。動作中、システム200は、動的システム情報(例えば、現在のシナリオ情報)を周期的に取得し、学習システムデータベースをサーチする(段階1002)。現在のシナリオ情報は、学習システムデータベースに格納されたシナリオ情報と比較され、一致が見られるか否かを判断する(段階1004)。是の場合、システム200は、一致したシナリオ情報に関連付けられた情報に従って、ASMPモードとSMPモードとの間でスイッチする(段階1006)。理解されるように、これにより、モードがスイッチされてよいが、現在のモードの動作を維持してもよい。否の場合、システムは、図9において説明される処理/方法のような、動的なSMP/ASMP選択及び学習システムトレーニングを実行する。
図11は、本開示に係る例示的な静的モードスイッチ方法又は処理1100を示す。一般論では、この処理は、静的な又は「手動による」情報又は要因1102に基づいて、システム200がSMP又はASMPモードのいずれで動作すべきかを判断する。例えば、いずれのモードかという判断は、多数の情報又は要因、例えば、ユーザプロファイル1102a、アプリケーション管理1102b、省電力モード1102c及び他の情報又は要件1102nに基づいて、「静的に」割り当てられてよい。
システム200は、適用可能な情報又は入力に基づいて、SMPモード又はASMPモードのいずれで動作すべきかを判断する(1104)。例えば、所与のユーザプロファイルが特定のモードに関連付けられる、すなわち、所与のユーザに関連付けられた処理が特定のモードで常に実行されるべきであることを意味する場合、システム200は、必要に応じて、処理のための特定のモードにスイッチする。他の例において、特定のアプリケーションが常に1つのモードで実行されるべきである場合、システム200は、その特定のモードにおいて当該アプリケーションのの処理を実行し、必要に応じてスイッチする。さらに他の例において、システム200が省電力モードに配された場合、当該モードは、システム200に、ASMP又はSMPモードのうち、電力を節約するモードとなるようにプログラムされたいずれかのモードで動作することを要求してよい。
図示されるように、システム200は、処理タスクがSMPモード(又はASMPモード)で実行されるべきか否かを判断する。SMPモードが用いられるべきであり、かつ、システムが現在SMPモードにはない場合、システムは、ASMPモードからSMPモードにスイッチする(段階1106)。同様に、(SMPモードではなく)ASMPモードが用いられるべきであり、かつ、システムが現在SMPモードにある場合、システムは、SMPモードからASMPモードにスイッチする(段階1108)。
理解されるように、一実施形態において、本明細書において説明されるシステム、処理、方法及びデバイスは、モバイルデバイス/小型コンピューティングデバイス又は基地局等内に組み込まれる場合を含め、モバイル環境において用いられてよい。このようなデバイスは、例えば、無線信号を送信及び/又は受信するように構成されてよい。デバイスは、任意の適したエンドユーザデバイスであってよく、ユーザ機器/デバイス(UE)、無線送受信ユニット(WTRU)、移動局、固定又はモバイル加入者ユニット、ページャ、携帯電話、パーソナルデジタルアシスタント(PDA)、スマートフォン、ラップトップ、コンピュータ、タッチパッド、無線センサ、ウェアラブル電子デバイス又は消費者向け電気デバイスのようなデバイスを含んで(又はこのように称されて)よい。
デバイスは、デバイスの様々な処理動作を実装する(本明細書において説明されるような)少なくとも1つの処理システム200を含む。これは、例えば、信号符号化、データ処理、ビデオ/オーディオ処理、電力制御、入出力処理、又はデバイスのために考慮される任意の他の機能性を含んでよい。
処理システム200は、本明細書において説明される方法及び教示をさらにサポートし、追加のコンポーネント及びプロセッサ(例えば、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、又は特定用途向け集積回路)を含んでよい。
処理システム200を組み込んだデバイスは、少なくとも1つのアンテナによる送信のためのデータ又は他のコンテンツを変調させるように構成される少なくとも1つの送受信機をさらに含んでよい。送受信機は、少なくとも1つのアンテナによって受信されるデータ又は他のコンテンツを復調されるようにさらに構成される。各送受信機は、無線送信のための信号を生成及び/又は無線により受信された信号を処理するために、任意の適した構造を含む。各アンテナは、無線信号を送信及び/又は受信するために、任意の適した構造を含む。1つ又は複数の送受信機がデバイスにおいて用いられてよく、1つ又は複数のアンテナが用いられてよい。
これらのデバイスは、ユーザとのインタラクションを容易にする1つ又は複数の入出力デバイスをさらに含んでよい。各入出力デバイスは、ユーザに情報を提供し、ユーザから情報を受信するために、スピーカ、マイクロフォン、キーパッド、キーボード、ディスプレイ、又はタッチスクリーンのような、任意の適した構造を含む。
さらに、これらのデバイスは、デバイスによって利用、生成、又は収集された命令及びデータを格納するために、上述のメモリを用いてよく、又は、他のメモリを含んでよい。例えば、メモリは、処理システム200によって実行されるソフトウェア又はファームウェア命令を格納してよい。他のメモリは、任意の適した揮発性及び/又は不揮発性ストレージ及び検索デバイスを含んでよい。ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ハードディスク、光ディスク、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード等のような、任意の適したタイプのメモリが用いられてよい。
モバイル/小型コンピューティングデバイスに関するさらなる詳細は、当業者に公知である。このため、これらの詳細は、明確性のため、ここでは省略される。
本明細書において説明される図12から19、ならびに本明細書中で示される様々な実施形態、及び本特許文献における本開示の後述される原則は、例示としてのみ用いられ、本発明の範囲を決して限定するものと解釈されるべきではない。当業者であれば、本明細書において説明される原則が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実装可能であることを理解しよう。
一般論では、本願の図12−19に関して示される実施形態は、SMP及びASMPという2つの動作モードの間でスイッチ可能なマルチプロセッサ/コアを有する処理システムを説明する。システムは、2つのモード間において制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム(OS)又は他のソフトウェア/ハードウェアからの、SMPとASMPとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、マルチプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような1つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、システムが1つのモードから他のモードへの移行中に障害を発生させず、プロセッサ/メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置/方法は、ソフトウェア/OS介入を最小化し、より高速なモードスイッチ速度を有する。
図12−19において説明される実施形態は、図1−11において説明されるものと同様である。しかしながら、ASMPモードは、概して、コアのグループ(複数のコア)を用いるマルチプロセッシングを指す。ここで、グループ内の他のコアと同じクロック周波数及び同じ供給電圧を用いて動作可能な少なくとも1つのコア(又はこれより多いが、全てのコアの一部)は、動的にスイッチされ、又は異なるクロック周波数及び供給電圧を用いるように構成される。このように、コアのグループは、SMPモード又はASMPモードのいずれかで動作するが、グループにおいて少なくとも1つ(全てではない)は、異なるクロック周波数及び供給電圧を有する。
理解されるように、本明細書において用いられる「コア」という用語は、シングルプロセッサ、CPU又は処理コアを指してよい。定義は、マルチプロセッサ、CPU又は処理コアを有する「コア」を説明又は指すように拡張されてもよい。従って、本明細書において「コア」という用語を用いることは、単一の処理要素を限定するものではないが、同じ処理要素のグループを含むことができる。さらに、「コア」、「プロセッサ」及び「CPU」という用語は、本明細書において互換的であってよく、そのように用いられる。
SMPモードとASMPモードとの間における動的スイッチに加えて、説明されるこれらの様々な実施形態は、コアのグループ内において1つ又は複数のコアがスイッチオン/オフされる異なる方法及びシステムにおいて、利用可能である。
ここで、図12を参照すると、本開示に係る処理システム1200を示す詳細図が示される。
一般論では、処理システム1200は、SMP及びASMPという2つの動作モード間でスイッチ可能なプロセッサのグループ(マルチプロセッサ)を含む。SMPモードにおいて、全てのプロセッサは、同じクロック周波数及び供給電圧を用いて動作し、(後述される異なる実施形態における)ASMPモードにおいて、少なくとも1つの第1のプロセッサは、(1)残りのプロセッサのものと異なるクロック周波数及び供給電圧、又は(2)他のプロセッサと同じクロック周波数及び供給電圧のいずれかを用いて動作するように構成される。
システムは、2つの異なるクロック周波数及び供給電圧の間で、第1のプロセッサの制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム(OS)又は他のソフトウェア/ハードウェアからの、SMPとASMPとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、第1のプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような1つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、第1のプロセッサが1つのモードから他のモードへの移行中に障害を発生させず、プロセッサ/メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置/方法は、ソフトウェア/OS介入を最小化し、より高速なモードスイッチ速度を有する。
処理システム1200は、図示されるように、1210a(CPU A),1210c(CPU C)、1210d(CPU D)及び1210b(CPU B)を含むマルチプロセッサ1210と、対応するL2キャッシュメモリ部分1220(1220a及び1220b)、クロスドメインクロック(CDC)回路1230a、及びバイパス回路を有するCDC1230bとを有するマルチプロセッサコア及びキャッシュサブシステム1205を含む。4つのプロセッサ1210(及び対応するメモリ及び回路)が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも2つを含む。理解されるように、各プロセッサ1210は、1つ又は複数のプロセッサを含んでよい。
処理システム1200は、プロセッサ、キャッシュ及びCDCへの電力供給において用いられる少なくとも2つの供給電圧信号(例えば、V0、V1)を生成する電力管理制御(PMIC)回路1240をさらに含む。同様に、クロック生成回路1250は、プロセッサ、キャッシュ及びCDCのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。
一実施形態において、PMIC回路1240を除いて、処理システム1200は、単一の集積半導体基板/ダイ上に(又はマルチ基板ICパッケージ内に配置される複数の半導体基板内に)配置され、又は他の方法で位置する。他の実施形態において、PMIC回路1240は、単一の集積半導体基板/ダイ上に含まれてもよい。
図示されるように、処理システム1200は、コントローラ1260(モードコントローラとも称されることがある)及びクロックスイッチ回路(又はモジュール)1270をさらに含む。理解されるように、コントローラ1260は、クロック生成回路1250、PMIC回路1240、「バイパス回路を有するCDC」1230b及びクロックスイッチ回路1270の機能性及び動作を制御する様々な制御信号を出力する。
クロック生成回路1250は、全てのプロセッサ210の動作速度を集合的に制御する1つのSMPプロセッサクロック信号(CLK)、キャッシュ部分1220aの動作速度を制御する1つのSMPメモリクロック信号(CLKch)、プロセッサ1210bの動作速度の個別制御を有効化する少なくとも1つのASMPプロセッサクロック信号(CLK0)、及びキャッシュメモリ部分1220bの動作速度の個別制御を有効化する少なくとも1つのASMPメモリクロック信号(CLKch0)を含む複数のクロック信号を生成するために必要な回路及び要素を含む。これらのクロックのいずれも、回路1250によってグリッチレスに有効化又は無効化される。クロック生成回路1250は、コントローラ1260によって用いられるコントローラクロック信号(CLK_FSM)をさらに生成する。
PMIC回路1240は、サブシステム1205のそれぞれの部分によって用いられる複数の動作供給電圧又は信号の生成に必要な回路及び要素を含む。図示されるように、PMIC回路1240は、プロセッサに電力を供給する少なくとも2つの動作供給電圧(V0、V1)を生成及び出力する。図示されるように、動作供給電圧V0は、プロセッサ1210a、1210c、1210d及びこれらのプロセッサに関連付けられたキャッシュメモリ部分1220aに電力を供給する。動作供給電圧V1は、プロセッサ1210b、その関連するキャッシュメモリ部分1220b、及びバイパス回路を有するCDC1230b等に電力を供給する。当業者によって理解されるように、プロセッサ/メモリがより高いクロック速度で動作する場合、プロセッサ/メモリをより高い供給電圧でさらに動作させることが望ましく、これが必要なことがある。さらに、コアが用いられない場合、電力急減及び/又はクロック無効化がされ得る。例えば、プロセッサ1210bへの動作供給電圧V1は、無効化されてよく、及び/又は、プロセッサ1210bに入力されるクロックは、無効化されてよい(例えば、クロックの入力なし)。
クロック生成回路1250は、生成されたクロック信号の各々にプログラム可能性を有効化する機能性及び回路をさらに含んでよいことが理解されよう。一実施形態において、クロック信号の各々は、多くの可能な周波数の1つにプログラム可能であってよい(例えば、CLKは、300MHzから3GHzのような範囲の間でプログラム可能であってよい)。他の実施形態において、特定のクロック信号のみがプログラム可能であってよく、さらに他の実施形態において、各クロック信号の周波数は、事前決定され、固定である。さらに他の実施形態において、周波数は、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。
同様に、PMIC回路1240は、生成された動作電圧供給V0、V1の各々にプログラム可能性を提供する機能性及び回路をさらに含んでよい。一実施形態において、各供給は、多くの可能な電圧レベルの1つに対してプログラム可能であってよい(例えば、電圧は、0.5ボルト及び3.3ボルトのような範囲の間でプログラム可能であってよい)。他の実施形態において、特定の電圧の電力供給のみがプログラム可能であってよく、さらに他の実施形態において、各供給の電圧レベルは、事前決定され、固定である。さらに他の実施形態において、電圧レベルは、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。図示されていないが、他の実施形態において、基本動作電圧供給は、図示される2つに加えて、生成されてよい。この場合、基本電圧供給及び他の1つは、(クロックスイッチ回路1270において示されるマルチプレクサ1272と同様の)多重化回路への入力として用いられてよい。
モード又はスイッチコントローラ1260は、有限ステートマシン(FSM)1262、1つ又は複数のタイマ1264、及び(構成又はステータスレジスタのような)1つ又は複数のストレージレジスタ1266を含む。コントローラ1260は、スイッチコマンド(SELECT_ASMP_MODE)のアサートに応じて、一連のアクション又は処理を制御及び実行するように機能する。従って、図示される実施形態において、スイッチコマンドがアサート/非アサートされる場合、動作モードは、ASMPモードとSMPモードとの間でスイッチされる。様々な方法及びメカニズムが、スイッチコマンドの生成のために用いられてよく、いくつかの例が、図13および16に関して後述される。
有効化信号(ENABLE_ASMP_CLKS、ENABLE_SMP_CLK)を用いて、コントローラ1260は、SMP/ASMPスイッチの前にクロックを有効化するクロック生成モジュール1250を制御する。コントローラ1260は、PMIC回路1240のモジュールをさらに制御し、スイッチの前に(又はスイッチの後で)動作供給電圧V0、V1をプログラム又は変化させる。一実施形態において、PMIC回路1240がプロセッサの外部にある場合(例えば、オフチップ)、コントローラ1260は、SPMI/SBI/MIPIのような通信バス又はインタフェースを介してPMIC回路1240と通信を行ってよい。PMIC回路が外部にない場合、他の通信経路が用いられてよい。
スイッチコマンド(SELECT_ASMP_MODE)は、様々な事象に応じて、かつ、処理システム1200内又は外部の様々な要素によって生成されてよい。図示される実施形態において、スイッチコマンドは、マルチプロセッサコア及びキャッシュサブシステム1205から生成されるが、他の実施形態においては、他のソースによって生成されてよい。
プロセッサ1210bに対して、SMPクロックからASMPクロックへの実際のスイッチオーバ(逆もまた同様)が行われる場合、コントローラ1260は、クロックスイッチ回路1270内のマルチプレクサ1272を用いて、プロセッサ1210bへのASMPクロック信号(CLL0)を選択的に多重化するASMP選択信号(SELECT_ASMP_CLK)を生成する。理解されるように、ASMPモードにおけるプロセッサ/CPUコア1210bのクロックは、CLK0として示されるが、SMPモードにおける残りのプロセッサ/CPUコア1210a、1220c、1210dのクロックは、CLKと示される。従って、SELECT_ASMP_CLK信号は、どのクロック(CLK0又はCLK)がプロセッサ1210bによって用いられるかをグリッチレスに選択する。一実施形態において、SELECT_ASMP_CLKがアサートされる場合(ロジックハイ又は「1」)、クロック信号CLK0が選択され、プロセッサ/コア1210bに入力される。SELECT_ASMP_CLKがアサートされない場合(ロジックロー又は「0」)、クロックCLKが選択され、プロセッサ/コア1210bに入力される。スイッチ中の様々な事象及びアクションのタイミングは、1つ又は複数のタイマ1264を用いることにより、FSM1262に従って制御される。より詳細に後述されるように、クロックウォームアップ期間及び電圧ランプアップ/ランプダウン期間が用いられてよい。これらの値は、ソフトウェア又は他の方法によって、事前にプログラムされ又は事前設定され、コントローラのC/Sレジスタ又は他のメモリ位置(不図示)に格納されてよい。
処理システム1200に示された要素の大半は、図2の処理システム200において示される対応する要素と同じ又は同様である(例えば、1210bは210bと同じ又は同様である等)。理解されるように、参照番号によって具体的には特定されていないが、例えば、レベルシフタのような様々な他の論理回路が含まれてよい。レベルシフタは、典型的には、信号が電力ドメインをクロスする場合に用いられる。
CDC回路1230bに関して、SMPモード(SELECT_ASMP_CLK信号がアサートされない)において、プロセッサ1210bからのデータが、L2キャッシュ1220bに向かう途中で非同期CDC回路131aをバイパスし、L2キャッシュ1220bからのデータがプロセッサ1210bに向かう途中で非同期CDC回路131bをバイパスすることが理解されよう。(図5及び付随するCDC回路の説明を参照)対照的に、ASMPモードにある場合(SELECT_ASMP_CLK信号がアサートされ、Cache_CLK及びCPU_CLK信号が異なる場合がある)、プロセッサ1210bからのデータは、L2キャッシュ1220bに向かう途中で非同期CDC回路131aによって処理され、L2キャッシュ1220bからのデータは、プロセッサ1210bに向かう途中で非同期CDC回路131bによって処理される。非同期CDC回路131a、131bは、事前決定された順番に従って、1つのクロックドメインから他のクロックドメインへのデータ転送を確実にするように機能し、例えば、最初に受信されたデータが最初に出力される。1つのクロックドメインにおいてクロックと同期する入力されたデータは、他のクロックドメインにおいてクロックと再同期される。非同期FIFOは、概して、インタフェースにおいて、いくらかのレイテンシにより、データバッファを提供する。
ここで図13を参照すると、システム1200内でSMP/ASMPモードスイッチを開始及び制御するアーキテクチャ(例えば、方法、処理、システム)1300が、概念的に示される。モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。図示されるように、処理又はアプリケーション1302は、ブラウザアプリケーション1302a、ストリーミングアプリケーション1302b、ゲームアプリケーション1302c又はナビゲーション1302dであってよい。他の要因/情報1304も、考慮されてよい。
例として、ストリーミングアプリケーション1302bがマルチプロセッシングを必要とすると仮定すると、モード選択デバイス1310は、そのアプリケーションに関連付けられた処理タスクがSMP又はASMPモードのいずれで実行されるべきかを判断する。システムソフトウェア/OSは、この判断を実行し、決定をなす。システムは、コントローラにコマンドを発行するようにシングルプロセッサを割り当ててよいが、概して、決定は、システムレベル/OSレベルで実装される。この決定は、静的情報、動的情報又はこれらの組み合わせに基づいてなされてよい。一例において、全てのビデオエンコーディングアプリケーションがSMPモードを用いることが事前決定されてよい。他の例において、全てのビデオストリーミングアプリケーションは、全てのプロセッサ/CPU/コアが使用されるほどシステムの現在の負荷が重くない限り、ASMPモードを用いる。他の変更形態は、1つのモードから他のモードにスイッチするか否かについての決定をなすために、プログラム及び利用可能である。
一実施形態において、シングルプロセッシングタスクが必要とされる場合に、ルックアップテーブルが参照されてよい。他の実施形態において、電力の比較は、マルチプロセッシングタスクが存在する場合にいずれかのモードを選択するために用いられる要因であってよい。例えば、ユーザが、同時に音楽を聴きつつ電子メールを使っている場合、ASMPが選択可能である。
どのモードが選択されるべきかを判断した後で、デバイス1310は、SELECT_ASMP_MODE制御信号(図12参照)において適切な信号を発する(例えば、高/低)。理解されるように、現在の動作モードは、既に、選択されたモードであってよい(このような場合には、SELECT_ASMP_MODE信号は移行しない)。
SELECT_ASMP_MODE信号に応じて、システム1300は、ASMPモード(1320)又はSMPモード(1330)で動作する。SMPモード1330にある場合、コアA(要素1210a、1220a、1230a)、コアC(要素1210c、1220a、1230a)、コアD(要素1210d、1220a、1230a)、及びコアB(要素1210b、1220b、1230b)は、同じクロック信号/周波数及び供給電圧(CLK/VDD)で動作する。ASMPモード1320にある場合、コアA、C及びDは、同じクロック信号/周波数及び供給電圧(CLK1/VDD1)で動作し、コアBは、コアA、C及びDと異なるクロック信号/周波数及び供給電圧(CLK2/VDD2)で動作する。SMP/ASMPモード(及びモードスイッチ)の詳細は、本明細書において説明されている。
図13のアーキテクチャ(方法又は処理)1300の説明及び要素は、図8のアーキテクチャ(方法又は処理)1300に示される対応する要素と同じ/同様であるが、異なるクロック及び電圧の構成を有することが理解されよう。
ここで、図14Aおよび14Bを参照すると、図12に示される処理システム1200の代替的な簡略化されたブロック図が示される。
図14Aにおいて、コアA、C及びD(1210a、1210c、1210d)は、単一の動作電圧供給1405(VDD)及び単一のクロック信号1410(clk)に連結され、コアB(1210b)は、動作電圧供給1415(VDDb)及びクロック信号1420(clkb)に連結される。この構成において、VDDb供給1410は、別個の入力/出力端末によって供給される別個の電圧レールによって提供されてよい。
図14Bにおいて、コアA、C及びD(1210a、1210c、1210d)は、同様に、単一の動作電圧供給1405(VDD)及び単一のクロック信号1410(clk)に連結される。コアBは、同様に、動作電圧供給1415(VDDb)及びクロック信号1420(clkb)に連結される。しかしながら、コアBは、電圧供給1405から導出された動作電圧供給1430(VDDb)に連結される。電圧レギュレータ1440は、VDDを受け、電圧供給VDDbを生成し、(選択されたモードに応じて)VDDb又はVDDのいずれかをコアBに出力する。電圧レギュレータ1440は、オンチップであってよく、低ドロップアウト(LDO)電圧レギュレータ又はスイッチモード電力供給(SMP)のようなバイパスモード又は機能(不図示)を含む。従って、VDDb1312は、VDDから導出される。バイパスモードにおいて、VDDb=VDDである。さらに、VDDbは、電圧レギュレータ1440を無効化することによって電力急減されてよく、これにより、コアBをシャットダウンする。理解されるように、電圧レギュレータのバイパス機能は、マルチプレクサを用いて実装可能であり、ステートマシン又は他のソフトウェア処理によって制御可能である。
理解されるように、一実施形態において、2つの電圧供給VDD、VDDb及び2つのクロック信号clk、clkbは、それぞれ、図12に示される2つの動作電圧供給V0、V1及び2つのクロック信号CLK、CLK0である。
図12−14のシステムに関して上述された、SMPモードとASMPモードとの間におけるスイッチを実装する例示的なコンポーネント、ハードウェア及び方法に加えて、図8−11に関して上述された、SMPとASMPとの間におけるモードスイッチを開始及び制御する例示的な方法及び処理が、これらのシステムにも適用可能である。当業者であれば、これらの例示的な方法及び処理を容易に変形し、必要に応じて、図12−14(及び以下説明されるもの)において説明されるシステムに対してこれらを適切及び/又は適用可能にすることができよう。
4つのプロセッサ/コア(A、B、C、D)を有するシステムにおけるマルチプロセッシングの様々な例が、図15において後述される。これらは、例示目的に過ぎず、4つより多くの又はこれより少ないプロセッサ/コア(異なる数のプロセッサ/コア)及び/又はアイドル(パワーダウン、スリープモード等)であるもう1つのプロセッサ/コアを有するシステムを含む、異なる実装、方法及び基準が用いられてよい。例えば、処理要件が低い場合、1つ又は複数の選択されたプロセッサ/コアがシャットダウンされてよい。一般論では、図15は、異なる数のプロセッサ/コア(コアA、B、C及びD)がASMPモード1320又はSMPモード1320のいずれかにおいて用いられる例を示す。これらのコアは、図12のシステムに示されるコアに対応する。
ブロック1510a、1510bおよび1510cは、SMPモード(1330a、1330b、1330c)で動作するプロセッサ/コアの3つの異なる構成を示す。同様に、1500a、1500b及び1500cは、ASMPモード(1320a、1320b、1320c)で動作するプロセッサ/コアの3つの異なる構成を示す。
ブロック1510aは、コアC及びDがシャットダウンされ、コアA及びBが実行されている第1のプロセッサ/コア構成で、SMPモードにおいて動作するシステムを示す。SMPモードにおいて、コアA及びBは、同じクロック周波数及び電圧供給(CLK/VDD)において動作し、コアBは、CLK/VDD(例えば、CLK、CLKch、及びV1はV0に等しい。図12参照)をさらに受けるように構成される。ブロック1500aは、ASMPモードであるが、これと同じプロセッサ/コア構成を示す。ASMPモードにおいて、コアA及びBは、異なるクロック周波数及び電圧供給において動作する。ここで、コアAは、CLK1/VDD1で動作し、コアBは、CLK2/VDD2で動作する(例えば、CLK0、CLKch0、及びV0と異なるV1。図12参照)。
ブロック1510bは、コアDがシャットダウンされ、コアA、C及びBが実行されている第2のプロセッサ/コア構成で、SMPモードにおいて動作するシステムを示す。SMPモードにおいて、コアA、C及びBは、同じクロック周波数及び電圧供給(CLK/VDD)において動作し、コアBは、CLK/VDD(例えば、CLK、CLKch、及びV1はV0に等しい。図12参照)を受けるようにさらに構成される。ブロック1500bは、ASMPモードであるが、これと同じプロセッサ/コア構成を示す。ASMPモードにおいて、コアA及びCは、同じクロック周波数及び電圧供給CLK1/VDD1において動作し、コアBは、異なるクロック周波数及び電圧供給CLK2/VDD2において動作する(例えば、CLK0、CLKch0、及びV1はV0と異なる。図12参照)。
ブロック1510cは、全てのコアA、B、C及びDが実行されている第3のプロセッサ/コア構成で、SMPモードにおいて動作するシステムを示す。SMPモードにおいて、コアA、C及びDは、同じクロック周波数及び電圧供給(CLK/VDD)において動作し、コアBは、CLK/VDD(例えば、CLK、CLKch、及びV1はV0に等しい。図12参照)を受けるようにさらに構成される。ブロック1500cは、ASMPモードであるが、これと同じプロセッサ/コア構成を示す。ASMPモードにおいて、コアA、C及びDは、同じクロック周波数及び電圧供給CLK1/VDD1において動作し、コアBは、異なるクロック周波数及び電圧供給CLK2/VDD2において動作する(例えば、CLK0、CLKch0、及びV1はV0と異なる。図12参照)。
一実施形態において、2つのプロセッサ/コアのみが必要とされる場合、システムは、コアA(又はコアC又はコアD)及びコアBを用いて、SMPモードとASMPモードとの間でスイッチする柔軟性をグループに提供する。追加の処理電力が必要とされる場合、残りのコアの1つ又は両方が用いられ、SMPモードとASMPモードとの間でスイッチする柔軟性をグループに再度さらに提供することができる。理解されるように、SMPモードとASMPモードとの間におけるスイッチは、上述された基準又は情報のいずれかに応じて行われてよい。また、SMPモードとASMPモードとの間におけるスイッチ(ならびにCLK及びVDDの変更)するために実装される方法/処理は、本明細書において説明される実施形態のいずれかにおいて、図3A、3Bおよび3Cに関して説明されるものと同じ又は同様であってよい。このことはいくつかの変形又は再構成を必要とするが、当業者であれば、図3A、3Bおよび3Cをガイドとして用いて、モード間のスイッチを実装することができよう。
システム1200のアーキテクチャは、システム200と比較して、SMP/ASMP動的スイッチに関連するコスト及びハードウェア/ソフトウェアの複雑さの両方を大幅に減少させる。例えば、4つのプロセッサ/コアを有するMPシステムにおいて、(1つのプロセッサのみが動的に構成可能な)システム1200に従って構成されるシステムへの追加コストは、(4つのプロセッサの全てが動的に構成可能な)システム200に従って構成されるシステムと比較して3分の1のオーダの追加コストである。
試験及び調査により、ほとんどの場合、処理要件は2つのプロセッサによって満たされることができ、ほとんどの場合、2つのプロセッサは、アンバランスな負荷で実行されることが明らかにされた。2つのプロセッサコアA及びBで動作するシステム1200(図12及び図15に示される構成1320aおよび1330aを参照)において、SMPモードとASMPモードとの間で適切にスイッチすることにより、電力効率の最適化が可能となる。同様に、最大の性能のために、4つのプロセッサコアA、B、C及びDの全てが、SMPモードにおいて、最大クロック周波数及び供給電圧で動作可能である。その結果、必要に応じて同じハイエンド性能を同時に維持しつつ、柔軟性及び電力減少を実現する。システム1200は、Android(登録商標)/iOS/Windows(登録商標)のようなモバイルハイレベルオペレーティングシステム(HLOS)に対して、低コスト、低電力及び高性能の間で、有益なトレードオフを提供し、低階層から中階層のマーケットにも適している。
当業者であれば、図12−15に示される「コア」(例えば、A、B、C、D)の1つ又は複数が、各コア内に2つ又はそれより多くのプロセッサを各々さらに含んでよいことを容易に理解しよう。このような実施形態において、プロセッサの各「グループ」は、別個のエンティティ(又は「コア」)として機能するように分類される。例えば、コアAは、3つのプロセッサを含んでよく、コアは、2つのプロセッサを含んでよい。SMPモードにおいて、5つのプロセッサは全て、同じクロック周波数及び供給電圧で動作する。ASMPモードにおいて、コアBのプロセッサは、異なるクロック周波数及び供給電圧に、集合的にスイッチされる。理解されるように、SMPモードとASMPモードとの間でスイッチするという決定は、システムのプロセッサをアクティブ化/非アクティブ化するという決定に基づいて、又は少なくとも部分的に基づいて、なされてよい。このことは、図18−19に関してさらに後述される。
ここで、図16を参照すると、図13に示されるアーキテクチャ(例えば、方法、処理、システム)1300と同様の代替的な実施形態1600が示される。同様に、モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。
システム1600および1300の間の主な違いは、システム1600において、他の全てと同じクロック周波数及び電圧供給で(SMPモード)又は他のいくつかと異なるクロック周波数及び電圧供給で(ASMPモード)動作するように動的に構成可能な、2つ又はそれより多くのプロセッサ/コア(コアB、コアE等)が存在する点にある。言い換えると、図13のシステム1300におけるコアBと同様のマルチプロセッサ/コアが存在する。
ASMPモードにある場合、グループ全体が、2つのサブグループ1610および1620を含むものとして分類可能である。サブグループ1610において、サブグループのみの内のプロセッサ/コア(例えば、コアA、コアC等)の全ては、単一のクロック周波数及び電圧供給で動作する。これは、各々が1つのクロック周波数及び電圧供給(CLK1/VDD1)で動作することを意味する。サブグループ1620において、当該サブグループ内のプロセッサ/コア(例えば、コアB、コアE等)の各々は、CLK1/VDD1と異なるクロック周波数及び電圧供給(例えば、CLK2/VDD2)で動作する。従って、サブグループ1620内のプロセッサ/コアは、複数のクロック周波数及び電圧供給(例えば、CLK1/VDD1、CLK2/VDD2等)の1つで動作するように動的に選択可能であり、サブグループ1610内のプロセッサ/コアは、所与のクロック周波数及び電圧供給(CLK1/VDD2)において静的に動作する。
SMPモードにある場合、全てのプロセッサ/コアは、同じクロック周波数及び電圧供給(CLK/VDD)で動作する。実際には、CLK/VDDはCLK1/VDD1と同じであることが理解されよう。
システム1300と同様に、SELECT_ASMP_MODE信号に応じて、システム1600は、ASMPモード(1320)又はSMPモード(1330)で動作する。SMPモード1330にある場合、コア(例えば、A、B、C、E等)の全ては、同じクロック信号/周波数及び供給電圧(CLK/VDD)で動作する。ASMPモード1320にある場合、サブグループ1610内のコア(例えば、コアA、C等)は、同じクロック信号/周波数及び供給電圧(CLK1/VDD1)で動作し、サブグループ1620内のコア(例えば、コアB、E等)は、サブグループ1610のコアと異なるクロック信号/周波数及び供給電圧(VCLK2/VDD2)で動作する。SMP/ASMPモード(及びモードスイッチ)の詳細は、本明細書において説明されている。同様に、SMPモードとASMPモードとの間でスイッチするという決定は、システムのプロセッサをアクティブ化/非アクティブ化するという決定に基づいて、又は少なくとも部分的に基づいて、なされてよい。このことは、図18−19に関してさらに後述される。
サブグループ1620内の全てのコアは同じCLK2/VDD2で集合的に動作するが、他の実施形態において、これらのコアは、グループ内において複数の異なるクロック周波数及び電圧供給で動作するように個々に構成可能であってよい(例えば、サブグループ1620自身が、ローカルなSMP及びASMPモードをさらに有してよい)ことが理解されよう。
ここで、図17を参照すると、他の実施形態又はアーキテクチャを示す2つのMPシステム1710および1720が示される。システムは、複数の異なる周波数で動作するように個々に構成可能(動的ににスイッチ可能)なn個のコアを含む。nは、2つ又はそれより多い。
システム1710は、第1の固定クロック周波数/電圧供給CLK1/VDD1で動作するコアA及びCを含む。コアDは、第2のクロック周波数/電圧供給CLK2/VDD2で動作し、コアBは、第3のクロック周波数/電圧供給CLK3/VDD3で動作する。本明細書における教示に従って、システムがSMPモードにある場合、全てのクロック周波数及び電圧供給は等しく、システムがSMPモードにある場合、全てのクロック周波数及び電圧供給は、CLK1/VDD1と等しい。ASMPモードにある場合、クロック周波数/電圧のペアCLK1/VDD1、CLK2/VDD2及びCLK3/VDD3は、等しくない。システム1720は、システム1710と同様であるが、第1の固定CLK1/VDD1で動作するようにさらに構成されるコアEを示す。従って、システム1710、1720は、プロセッサの第1のグループ(固定CLK1/VDD1で動作)と、個々のプロセッサが(SMPモードにおいて)固定CLK1/VDD1、又は異なるクロック周波数/電圧供給(例えば、CLK2/VDD2、CLK3/VDD3)のいずれかで動作するように動的にスイッチ可能である、プロセッサの第2のグループとを含む。
理解されるように、任意の数n個の個々に動的にスイッチ可能(CLK/VDD)なコアが、システム1710、1720に含まれてよく、及び/又は、任意の数の固定(CLK1/VDD1)コアが含まれてよい。具体的には示されていないが、システム1710、1720の動的スイッチの機能性は、図12において説明されたものと同様の態様で実装されてよく(当業者に公知の必要な変形を伴って)、本文書で説明された他の態様で実装されてもよい。
図中で示され、説明されるシステム1200に関して、様々な動作例又は方法が、ここで後述される。
第1に一般的な動作スキームにおいて、1つ又は3つ又はそれより多くのコアがアクティブな場合、SMPモードが選択され、全てのアクティブプロセッサは、同じクロック周波数及び電圧供給で動作する。2つのコアがアクティブな場合、アクティブプロセッサの1つはコアBであり、他のアクティブプロセッサは、コアA、コアC又はコアDのいずれかであり、2つのアクティブプロセッサは、望ましい場合には、(図9−11に従って、及び/又は本明細書における他の図又は説明に従って、説明される処理及び方法に基づいて)SMPモードとASMPモードとの間でスイッチ可能である。
第2の一般的な動作スキームにおいて、2つのコアがアクティブな場合(1つのアクティブコアはコアBである)、2つのアクティブコアは、ASMPモードで動作するように構成される。3つ又はそれより多くのコアがアクティブな場合、アクティブコアは、SMPモードで動作するように構成される。
第3の動作スキームにおいて、2つのコアがアクティブな場合(1つのアクティブコアはコアBである)、2つのアクティブコアは、ASMPモードで動作するように初期的に構成される。2つのアクティブコアがASMPモードにあることにより、コアは、(図9−11に従って、及び/又は本明細書における他の図又は説明に従って説明される処理及び方法に基づいて)SMPモードとASMPモードとの間でスイッチ可能である。
本明細書において導入及び説明される他の概念は、プロセッサ/コアの負荷及び利用を対象とする。マルチプロセッサ/コアシステムにおいて、全ての時間において、全てのプロセッサ/コアが必要とされるわけではない。処理要件が低い場合、1つ又は少数のプロセッサのみが必要とされる場合があり、高い場合、より多くのプロセッサが必要とされる場合がある。この概念は、モード選択処理に導入又は統合されてよく、又は、モード選択処理は、いくつのプロセッサがコンピューティング要件に対応するために必要とされるかに基づいて、又は少なくとも部分的に基づいて、実行されてよい。
本明細書において説明されるシステムにおいて、クロック無効化及び/又は電力急減されるように各コアを有効化し、プロセッサ/コアをスリープモードに配し、これらを無効化又はシャットダウンする追加の機能性(具体的には示されていない)が提供されてよい。このことにより、(より少数のプロセッサで処理要件に対応可能な場合)必要ではないプロセッサをオフにすることによって電力消費を減少させる。
様々な処理又は方法が、いくつのプロセッサが現在のコンピューティング要件を満たすために必要とされるかを判断するために実装可能である。一度この判断がなされると、コアは、以下の段落で説明されるもののような任意の適切な順序及び/又は優先度で、スイッチオン/オフされてよい。
様々なコンピューティング要因及び要件(例えば、負荷、キューの長さ、タスク、スレッド、依存性、CPU要求など等)に基づいて、プロセッサは、望ましい場合にオン/オフされてよい。図18に示される一実施形態において、追加のプロセッサがいつアクティブ化されるべきか(又は、複数のアクティブプロセッサの1つがいつ非アクティブ化されるべきか)という判断は、タスク負荷に基づいてなされる。タスク負荷1810が増加すると、追加のプロセッサをアクティブ化し、増加した負荷に対応することが望ましいポイント(上方移行閾値1820)に到達する。上方移行閾値1820に到達した場合、他のプロセッサがオンラインにされる。2つのアクティブプロセッサにより、タスク負荷1810は減少を開始する。現在の負荷が1つのプロセッサによって対応可能であると、アクティブプロセッサの1つを非アクティブ化することが望ましいポイント(下方移行閾値1830)に到達する。図示されるように、2つの閾値1820、1830は、ヒステリシス関数を提供するように設定される。
以下の説明は、この概念を、システム1200(図12に示される特定のコアA、B、C及びDを有する)に適用されるものとして示す。処理要件がシングルコアによって満たされることができる場合、コアA、C又はDのいずれか1つが用いられ、他のコアはシャットダウンされる。処理要件が2つのコアを必要とする場合、コアBが用いられ、かつ、コアA、C又はDのいずれか1つが用いられ、他の2つのコアはシャットダウンされる。しかしながら、2つのコアが必要であると判断される場合にいずれのシングルコアがアクティブだとしても、アクティブコアの1つとして残る可能性が高いことが理解されよう。2つのコアがアクティブな場合(1つはコアB)、キャッシュミス又は学習システムのような、本明細書において説明される様々な基準が、(例えば、電力を低下させるために)SMPモードとASMPモードとの間でスイッチするか否かを判断するために用いられる。
処理要件が3つのコアを必要とする場合、コアBが用いられ、かつ、コアA、C及びDのうち2つが用いられる。3つのコアがアクティブな場合(1つはコアB)、キャッシュミス又は学習システムのような、本明細書において説明される様々な基準が、(例えば、電力を低下させるために)SMPモードとASMPモードとの間でスイッチするか否かを判断するために利用可能である。同様に、コンピューティング要件が4つのコア全てを必要とする場合、SMPモードとASMPモードとの間におけるスイッチが、望ましい場合には実装されてよい。
ここで、図19を参照すると、SMP/ASMPモード選択処理と統合される付加/除去プロセッサの処理1900の一般的なフロー図が示される。様々な再構成又は変形が、用いられる特定のアーキテクチャ(例えば、コアの数)及び所望の機能性又は用途に応じて、図示された処理に対してなされてよい。理解されるように、このような処理において利用可能な全ての段階又は要素が、示されているわけではない。
処理1900は、シングルプロセッサが動作するポイントにおいて示される。シングルプロセッサのみが必要とされる場合、MPシステムは、SMPモードにおいて、単一の固定CLK1/VDD1で動作する(段階1910)。処理動作中のいくつかのポイントにおいて、処理要件の増加に対応するために(又は何らかの他の理由により)、第2のプロセッサが必要とされるか否かが判断される(段階1915)。この判断は、動作情報に周期的に基づいて、又はこれに応じてなされてよい。
他のプロセッサが必要とされているという判断に応じて、処理1900は、設計者による要望に応じて、3つの可能な経路1920a、1920、1920cの1つに沿って進む。これらの3つの代替案は、第2のプロセッサのアクティブ化の際に、2つのアクティブプロセッサが、(1)SMPモード(1920a)、(2)ASMPモード(1920b)、又は(3)オペレーティングシステムの要件に従って機能し、もしくはモード選択情報を処理し、SMPモード又はASMPモードのいずれかが選択されるべきであると判断すること(1920c)のいずれをデフォルトとするかに関する。
デフォルトSMPモード(1920a)が選択された場合、第2のプロセッサは、CLK1/VDD1に従って受信及び動作を実行する(第1のプロセッサも、CLK1/VDD1で動作する)ように自動的に構成される。対照的に、デフォルトASMPモード(1920b)が選択された場合、第2のプロセッサは、CLK1/VDD1と異なるCLK2/VDD2に従って受信及び動作を実行する(第1のプロセッサは、CLK1/VDD1で動作する)ように自動的に構成される。第3のデフォルト処理(1920c)が選択された場合、システムは、「初期」SMP/ASMPモード選択/スイッチ処理(不図示)を実行し、2つのプロセッサがSMPモード又はASMPモードで動作を開始するように、第2のプロセッサをアクティブ化するか否かを判断する。
一度両方のプロセッサがアクティブとなり、(1)デフォルトSMPモードにおける動作、(2)デフォルトASMPモードにおける動作、又は(3)SMP又はASMPのいずれかの選択されたモードにおける動作のいずれかである場合、処理は、SMP/ASMPモード選択/スイッチ処理に続く(段階1930)。この処理において、MPシステムは、(本明細書において長く上述されたような)様々な動作パラメータから、SMP/ASMPモードの間で動的にスイッチするか否かを判断する。
一方で、システムは、より多くの又はこれより少ないコンピューティング処理電力の必要性等を評価し続け、処理要件が、2つのアクティブプロセッサの1つが非アクティブされてよいようなレベルにあるか否かを判断してよい(段階1940)。否の場合、処理は、選択/スイッチ処理1930を実装し続ける。是の場合、処理は、(SMPモードで)シングルプロセッサを用いる段階に再び進む(段階1910)。処理は、処理要件が、第3のプロセッサが必要とされるようなレベルにあるか否かを判断してもよい(段階1950)。否の場合、処理は、選択/スイッチ処理1930を実装し続ける。是の場合、処理は進み、第3のプロセッサをアクティブ化する(段階1960)。現在アクティブな2つのプロセッサがASMPモードにある場合、これらはSMPモードにスイッチされ、3つ全てがSMPモードで動作する。
他の実施形態において(追加的に図15および16を参照して)、プロセッサの1つをさらにオン/オフしつつ、SMP/ASMPモードの間でスイッチすることは、1ステップ又は2ステップ処理のいずれかにおいて実行可能である。例えば、システムは、図15の1500aによって示される構成に従って(すなわち、2つのコアがASMPモードで)動作すると仮定する。負荷が増加し、第3のプロセッサが必要であるとオペレーティングシステムが判断すると、システムは、1500aの構成から1510bの構成(すなわち、3つのコアがSMPモードにある)に、直接スイッチすることができる。これは、1ステップスイッチであり、2ステップスイッチより高速である。2ステップスイッチにおいて、2つのアクティブプロセッサは、まず、SMPモードにスイッチされ(第1ステップ)、次に、第3のプロセッサがアクティブ化される。これは、1500aから1510aへ、次に、1510aから1510bへの移行によって示される。理解されるように、1ステップ又は2ステップスイッチのいずれかは、モードスイッチがプロセッサのアクティブ化/非アクティブ化に少なくとも応じて行われる場合に、実装されてよい。
図2−11(及び付随するテキスト)において説明されるシステム、処理、方法及びデバイスと同様に、図12−17において説明されるシステム、処理、方法及びデバイスは、モバイルデバイス/小型コンピューティングデバイス又は基地局等内に組み込まれる場合を含め、モバイル環境において用いられてよい。このようなデバイスは、例えば、無線信号を送信及び/又は受信するように構成されてよい。デバイスは、任意の適したエンドユーザデバイスであってよく、ユーザ機器/デバイス(UE)、無線送受信ユニット(WTRU)、移動局、固定又はモバイル加入者ユニット、ページャ、携帯電話、パーソナルデジタルアシスタント(PDA)、スマートフォン、ラップトップ、コンピュータ、タッチパッド、無線センサ、ウェアラブル電子デバイス又は消費者向け電気デバイスのようなデバイスを含んで(又はこのように称されて)よい。
デバイスは、デバイスの様々な処理動作を実装する(本明細書において説明されるような)少なくとも1つの処理システム1200を含む。これは、例えば、信号符号化、データ処理、ビデオ/オーディオ処理、電力制御、入出力処理、又はデバイスのために考慮される任意の他の機能性を含んでよい。
処理システム1200は、本明細書において説明される方法及び教示をさらにサポートし、追加のコンポーネント及びプロセッサ(例えば、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、又は特定用途向け集積回路)を含んでよい。
処理システム1200を組み込んだデバイスは、少なくとも1つのアンテナによる送信のためのデータ又は他のコンテンツを変調させるように構成される少なくとも1つの送受信機をさらに含んでよい。送受信機は、少なくとも1つのアンテナによって受信されるデータ又は他のコンテンツを復調されるようにさらに構成される。各送受信機は、無線送信のための信号を生成及び/又は無線により受信された信号を処理するために、任意の適した構造を含む。各アンテナは、無線信号を送信及び/又は受信するために、任意の適した構造を含む。1つ又は複数の送受信機がデバイスにおいて用いられてよく、1つ又は複数のアンテナが用いられてよい。
これらのデバイスは、ユーザとのインタラクションを容易にする1つ又は複数の入出力デバイスをさらに含んでよい。各入出力デバイスは、ユーザに情報を提供し、ユーザから情報を受信するために、スピーカ、マイクロフォン、キーパッド、キーボード、ディスプレイ、又はタッチスクリーンのような、任意の適した構造を含む。
さらに、これらのデバイスは、デバイスによって利用、生成、又は収集された命令及びデータを格納するために、上述のメモリを用いてよく、又は、他のメモリを含んでよい。例えば、メモリは、処理システム1200によって実行されるソフトウェア又はファームウェア命令を格納してよい。他のメモリは、任意の適した揮発性及び/又は不揮発性ストレージ及び検索デバイスを含んでよい。ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ハードディスク、光ディスク、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード等のような、任意の適したタイプのメモリが用いられてよい。
モバイル/小型コンピューティングデバイスに関するさらなる詳細は、当業者に公知である。このため、これらの詳細は、明確性のため、ここでは省略される。
いくつかの実施形態において、デバイスの1つ又は複数の機能又は処理のうちいくつか又は全ては、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体において具現化されるコンピュータプログラムによって実装又はサポートされる。「コンピュータ可読プログラムコード」という語句は、ソースコード、オブジェクトコード、及び実行可能コードを含む、任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という語句は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、又は任意の他のタイプのメモリのような、コンピュータによってアクセス可能な任意のタイプの不揮発性媒体を含む。
本特許文献を通して用いられる特定の単語及び語句の定義を説明することは、有利であろう。「含む」及び「備える」という用語は、これらの派生語と共に、限定なく含むことを意味する。「又は」という用語は、包括的であり、「及び/又は」を意味する。「と関連付けられ」及び「これらと関連付けられ」という語句は、これらの派生語と共に、「を含む」、「内に含まれる」、「と相互接続する」、「を包含する」、「内に包含される」、「と接続する」、「と連結する」、「と通信可能である」、「と連携する」、「と交互配置される」、「と並置される」、「と近接する」、「に拘束される」、「を有する」、「の特性を有する」等を意味する。「コントローラ」という用語は、任意のデバイス、システム又は少なくとも1つの動作を制御するその一部を意味してよい。コントローラは、ハードウェア、ファームウェア、ソフトウェア、又はこれらの少なくとも2つの何らかの組み合わせで実装されてよい。任意の特定のコントローラに関連付けられた機能性は、ローカルに又は遠隔のいずれに関わらず、集中又は分散されてよい。
本開示は、特定の実施形態及び概して関連する方法、を説明したが、これらの実施形態及び方法の変更及び再配置は、当業者にとって明らかであろう。従って、例示的な実施形態の上述の説明は、本開示を定義又は制約するものではない。以下の特許請求の範囲によって定義される本開示の範囲から逸脱することなく、他の変化、置換、及び変更も可能である。
[項目1]
複数のプロセッサであって、
第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、受信及び動作を実行するように構成される第1のプロセッサと、
上記第1のクロック信号又は上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号のいずれかに従って、受信及び動作を実行し、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、受信及び動作を実行するように構成される第2のプロセッサと、
を含む、複数のプロセッサと、
少なくとも上記第2のプロセッサに連結され、第1の動作モードと第2の動作モードとの間で上記第2のプロセッサの動作をスイッチするように構成されるコントローラであって、
上記第1の動作モードにある場合、上記第2のプロセッサは、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作を実行し、
上記第2の動作モードにある場合、上記第2のプロセッサは、上記第2のクロック信号及び上記第2の供給電圧に従って、受信及び動作を実行する、
コントローラと、
を備え、
上記第1のプロセッサは、上記第1の動作モード及び上記第2の動作モードの両方の間、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される、
マルチプロセッサ(MP)処理システム。
[項目2]
上記複数のプロセッサは、上記第1の動作モード及び上記第2の動作モードの両方の間、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作のみを実行するように構成される第3のプロセッサをさらに含む、項目1に記載のMP処理システム。
[項目3]
上記複数のプロセッサは、上記第1の動作モード及び上記第2の動作モードの両方の間、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作のみを実行するように構成される第4のプロセッサをさらに含む、項目2に記載のMP処理システム。
[項目4]
上記複数のプロセッサは、上記第1の動作モード及び上記第2の動作モードの両方の間、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作のみを実行するように各々が構成される第5のプロセッサ、第6のプロセッサ、第7のプロセッサ及び第8のプロセッサをさらに含む、項目3に記載のMP処理システム。
[項目5]
上記コントローラに連結され、上記第1のクロック信号及び上記第2のクロック信号を生成及び出力するように構成されるクロック生成回路であって、上記第1のクロック信号は、上記第1のプロセッサに入力される、クロック生成回路と、
上記コントローラに連結され、上記第1の供給電圧を生成して上記第1のプロセッサに出力し、上記第2の供給電圧を上記第2のプロセッサに出力するように構成される動作電圧生成回路と、
上記クロック生成回路と上記第2のプロセッサとの間に配置され、上記第1のクロック信号及び上記第2のクロック信号を受信し、上記第1のクロック信号又は上記第2のクロック信号を上記第2のプロセッサに出力するように構成されるスイッチ回路であって、上記第1の動作モードの間、上記第1のクロック信号が上記第2のプロセッサに出力され、上記第2の動作モードの間、上記第2のクロック信号が上記第2のプロセッサに出力される、スイッチ回路と、
をさらに備え、
上記第1の動作モード及び上記第2の動作モードの間、上記第1のクロック信号が、上記第1のプロセッサに出力される、
項目1に記載のMPシステム。
[項目6]
上記コントローラに連結され、
上記第2の動作モードにある場合、上記第2の供給電圧を生成して上記第2のプロセッサに出力し、
上記第2の動作モードにある場合、上記第1の供給電圧を上記第2のプロセッサに出力する
ように構成される電圧レギュレータ回路をさらに備える、項目1に記載のMP処理システム。
[項目7]
上記コントローラに連結され、上記第1のクロック信号及び上記第2のクロック信号を生成し、上記第2のプロセッサへの出力のために、上記第1のクロック信号又は上記第2のクロック信号の間でグリッチレスにスイッチするように構成されるクロック生成及びスイッチ回路をさらに備える、項目1に記載のMP処理システム。
[項目8]
上記第1のプロセッサ及び上記第2のプロセッサに連結されるキャッシュメモリと、
上記コントローラに応答し、上記第2のプロセッサ及び上記キャッシュメモリに連結され、上記第2の動作モードの間、上記第2のプロセッサと上記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、上記第1の動作モードの間、バイパス機能を提供するようにさらに構成されるクロックドメインクロッシング(CDC)及びバイパス回路と、
をさらに備える、項目1に記載のMP処理システム。
[項目9]
上記コントローラは、モード選択信号に応じて、上記第1の動作モードと上記第2の動作モードとの間で、上記第2のプロセッサの動作を動的にスイッチするようにさらに構成される、項目1に記載のMP処理システム。
[項目10]
上記モード選択信号は、上記複数のプロセッサ内のプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて生成される、項目9に記載のMP処理システム。
[項目11]
上記モード選択信号は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて生成される、項目9に記載のMP処理システム。
[項目12]
上記コントローラは、有限ステートマシン(FSM)、プロセッサ、マイクロコントローラ又は論理回路の少なくとも1つを含む、項目1に記載のMP処理システム。
[項目13]
上記MP処理システムは、単一の半導体基板上に配置される、項目1に記載のMP処理システム。
[項目14]
マルチプロセッシング機能を実行するように構成される複数のプロセッサであって、複数の第1のプロセッサ及び第2のプロセッサを含む、複数のプロセッサと、
第1のモード及び第2のモードにおいて、上記第2のプロセッサの動作を制御するように構成されるコントローラと、
上記コントローラに連結され、第1のクロック信号及び第2のクロック信号を生成及び出力するように構成されるクロック生成回路と、
上記クロック生成回路と上記第2のプロセッサとの間に配置され、上記第1のクロック信号及び上記第2のクロック信号を受信し、1つを上記第2のプロセッサへの出力のために選択するように構成されるスイッチ回路であって、上記第1の動作モードの間、上記第1のクロック信号が上記第2のプロセッサに出力され、上記第2の動作モードの間、上記第2のクロック信号が上記第2のプロセッサに出力され、上記第1の動作モード及び上記第2の動作モードの間、上記第1のクロック信号が、上記複数の第1のプロセッサの各々に入力される、スイッチ回路と、
上記複数のプロセッサに連結され、これらと共に用いられるために構成されるキャッシュメモリと、
上記コントローラに応答し、上記第2のプロセッサ及び上記キャッシュメモリに連結され、上記第2の動作モードの間、上記第2のプロセッサと上記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、上記第1の動作モードの間、バイパス機能を提供するようにさらに構成されるクロックドメインクロッシング(CDC)及びバイパス回路と、
を備える装置。
[項目15]
上記複数の第1のプロセッサは、第4のプロセッサをさらに含む、項目14に記載の装置。
[項目16]
上記複数の第1のプロセッサは、第5のプロセッサ、第6のプロセッサ、第7のプロセッサ及び第8のプロセッサをさらに含む、項目15に記載の装置。
[項目17]
上記コントローラに連結され、
上記第1の動作モードの間、上記複数の第1のプロセッサ及び上記第2のプロセッサに、第1の動作供給電圧信号を出力し、
上記第2の動作モードの間、上記複数の第1のプロセッサに第1の動作電圧信号を出力し、上記第2のプロセッサに第2の動作供給電圧信号を出力する
ように構成される動作電圧生成回路をさらに備える、項目14に記載の装置。
[項目18]
上記装置は、単一の半導体基板上に配置される、項目14に記載の装置。
[項目19]
第1の動作電圧信号を受信し、
上記第1の動作電圧信号から第2の動作電圧信号を生成し、
上記第1の動作モードの間、上記第2のプロセッサに入力されるために、上記第1の動作電圧信号を出力し、
上記第2の動作モードの間、上記第2のプロセッサに入力されるために、上記第2の動作電圧信号を出力する
ように構成される電圧レギュレータ及びバイパス回路をさらに備える、項目17に記載の装置。
[項目20]
上記コントローラは、モード選択信号に応じて、上記第1の動作モードと上記第2の動作モードとの間で、上記第2のプロセッサの動作を動的にスイッチするようにさらに構成される、項目14に記載の装置。
[項目21]
上記モード選択信号は、上記複数のプロセッサ内のプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて生成される、項目20に記載の装置。
[項目22]
上記コントローラは、有限ステートマシン(FSM)、プロセッサ、マイクロコントローラ又は論理回路の少なくとも1つを含む、項目20に記載の装置。
[項目23]
上記第2のプロセッサの動作は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて動的にスイッチされる、項目20に記載の装置。
[項目24]
対称マルチプロセッシング(SMP)モードと非対称マルチプロセッシング(ASMP)モードとの間で複数のプロセッサをスイッチする方法であって、
第1のプロセッサが動作する全ての時間において、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、上記第1のプロセッサを動作させる段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、第1の動作モード又は第2の動作モードで第2のプロセッサを動作させる段階であって、
上記第1の動作モードにおいて、上記第1のクロック信号及び上記第1の供給電圧に従って、上記第2のプロセッサを動作させる段階、及び
上記第2の動作モードにおいて、上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、上記第2のプロセッサを動作させる段階
を含む、段階と、
を備える方法。
[項目25]
第3のプロセッサが動作する全ての時間において、上記第1のクロック信号及び上記第1の供給電圧に従って、上記第3のプロセッサを動作させる段階をさらに備える、項目24に記載の方法。
[項目26]
第4のプロセッサが動作する全ての時間において、上記第1のクロック信号及び上記第1の供給電圧に従って、上記第4のプロセッサを動作させる段階をさらに備える、項目25に記載の方法。
[項目27]
第5のプロセッサ、第6のプロセッサ、第7のプロセッサ及び第8のプロセッサの各々がそれぞれ動作する全ての時間において、上記第1のクロック信号及び上記第1の供給電圧に従って、上記第5のプロセッサ、上記第6のプロセッサ、上記第7のプロセッサ及び上記第8のプロセッサの各々を動作させる段階をさらに備える、項目26に記載の方法。
[項目28]
上記第1のクロック信号及び上記第1の供給電圧を上記第1のプロセッサに入力する段階と、
上記第1の動作モードの間、上記第1のクロック信号及び上記第2のクロック信号をスイッチ回路に入力し、かつ、上記第1のクロック信号を上記第2のプロセッサに出力し、上記第2の動作モードの間、上記第2のクロック信号を上記第2のプロセッサに出力する段階と、
上記第1の動作モードの間、上記第1の供給電圧を上記第2のプロセッサに入力し、上記第2の動作モードの間、上記第2の供給電圧を上記第2のプロセッサに入力する段階と、
をさらに備える、項目24に記載の方法。
[項目29]
上記第1の供給電圧を受信する段階と、
受信された上記第1の供給電圧から上記第2の供給電圧を生成する段階と、
をさらに備える、項目24に記載の方法。
[項目30]
上記第2のプロセッサに入力されるために、上記第1のクロック信号と上記第2のクロック信号との間でグリッチレスにスイッチする段階をさらに備える、項目24に記載の方法。
[項目31]
負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて、上記モード選択信号を生成する段階をさらに備える、項目24に記載の方法。
[項目32]
上記複数のプロセッサ内の少なくとも1つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記モード選択信号を生成する段階をさらに備える、項目24に記載の方法。
[項目33]
上記方法は、単一の半導体基板内の回路によって実行される、項目24に記載の方法。
[項目34]
少なくとも2つのプロセッサが対称マルチプロセッシング(SMP)モード又は非対称マルチプロセッシング(ASMP)モードで動作するマルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法であって、
上記少なくとも2つのプロセッサを上記SMPモードで動作させる段階であって、上記少なくとも2つのプロセッサは、第1の事前決定された周波数を有するSMPクロック信号を受信し、第1の電圧を有するSMP動作供給電圧を受信し、上記少なくとも2つのプロセッサは、第1のプロセッサ及び第2のプロセッサを含む、段階と、
SMPモードからASMPモードにスイッチする命令を受信する段階と、
SMPモードからASMPモードに、上記少なくとも2つのプロセッサの動作をスイッチする段階と、
を備え、
上記動作をスイッチする段階は、
上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有するASMPクロック信号を生成する段階と、
上記第1の電圧と異なる第2の電圧において、ASMP動作供給電圧を生成する段階と、
上記ASMPクロック信号及び上記ASMP動作供給電圧を上記第2のプロセッサに入力する段階と、
その後、上記第2の事前決定された周波数及び上記第2の電圧において、上記第2のプロセッサを動作させ、上記第1の事前決定された周波数及び上記第1の電圧において、上記第1のプロセッサを動作させる段階と、
を含む、方法。
[項目35]
上記少なくとも2つのプロセッサは、第3のプロセッサを含み、
その後、上記第2の事前決定された周波数及び上記第2の電圧において、上記第2のプロセッサを動作させ、上記第1の事前決定された周波数及び上記第1の電圧において、上記第1のプロセッサを動作させる段階は、上記第1の事前決定された周波数及び上記第1の電圧において、上記第3のプロセッサを動作させる段階をさらに含む、
項目34に記載の方法。
[項目36]
上記少なくとも2つのプロセッサは、第3のプロセッサ及び第4のプロセッサを含み、
その後、上記第2の事前決定された周波数及び上記第2の電圧において、上記第2のプロセッサを動作させ、上記第1の事前決定された周波数及び上記第1の電圧において、上記第1のプロセッサを動作させる段階は、上記第1の事前決定された周波数及び上記第1の電圧において、上記第3のプロセッサ及び上記第4のプロセッサを動作させる段階をさらに含む、
項目34に記載の方法。
[項目37]
動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて、上記SMPモードから上記ASMPモードに動的にスイッチする段階をさらに含む、項目34に記載の方法。
[項目38]
動作をスイッチする段階は、上記複数のプロセッサ内の少なくとも1つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記SMPモードから上記ASMPモードに動的にスイッチする段階をさらに含む、項目34に記載の方法。
[項目39]
ASMPモードからSMPモードにスイッチする命令を受信する段階と、
ASMPモードからSMPモードに上記少なくとも2つのプロセッサの動作をスイッチする段階と、
をさらに備え、
上記動作をスイッチする段階は、
上記SMPクロック信号及び上記SMP動作供給電圧を上記第2のプロセッサに入力する段階と、
その後、上記第1の事前決定された周波数及び上記第1の電圧において、上記第2のプロセッサを動作させ、上記第1の事前決定された周波数及び上記第1の電圧において、上記第1のプロセッサを動作させる段階と、
を含む、項目34に記載の方法。
[項目40]
ASMPモードからSMPモードに動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて、上記ASMPモードから上記SMPモードに動的にスイッチする段階をさらに含む、項目39に記載の方法。
[項目41]
ASMPモードからSMPモードに動作をスイッチする段階は、上記複数のプロセッサ内の少なくとも1つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記ASMPモードから上記SMPモードに動的にスイッチする段階をさらに含む、項目39に記載の方法。
[項目42]
複数のプロセッサであって、
第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、受信及び動作を実行するように各々が構成される第1のプロセッサ及び第2のプロセッサと、
上記第1のクロック信号又は上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号のいずれかに従って、受信及び動作を実行し、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、受信及び動作を実行するように構成される第3のプロセッサと、
上記第1のクロック信号又は上記第1の事前決定された周波数と異なる第3の事前決定された周波数を有する第3のクロック信号のいずれかに従って、受信及び動作を実行し、上記第1の事前決定された動作電圧と異なる第3の事前決定された動作電圧を有する第3の供給電圧に従って、受信及び動作を実行するように構成される第4のプロセッサと、
を含む複数のプロセッサと、
少なくとも上記第3のプロセッサ及び上記第4のプロセッサに連結され、第1の動作モードと第2の動作モードとの間で上記第3のプロセッサ及び上記第4のプロセッサの動作をスイッチするように構成されるコントローラであって、
上記第1の動作モードにある場合、上記第3のプロセッサ及び上記第4のプロセッサの各々は、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作を実行し、
上記第2の動作モードにある場合、上記第3のプロセッサは、上記第2のクロック信号及び上記第2の供給電圧に従って、受信及び動作を実行し、上記第4のプロセッサは、上記第3のクロック信号及び上記第3の供給電圧に従って、受信及び動作を実行する、
コントローラと、
を備え、
上記第1のプロセッサ及び上記第2のプロセッサは、上記第1の動作モード及び上記第2の動作モードの両方の間、上記第1のクロック信号及び上記第1の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される、マルチプロセッサ(MP)処理システム。
[項目43]
対称マルチプロセッシングモード(SMPモード)と非対称マルチプロセッシングモード(ASMPモード)との間で複数のプロセッサをスイッチする方法であって、
第1のプロセッサ及び第2のプロセッサの動作中の全ての時間において、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、上記第1のプロセッサ及び上記第2のプロセッサを動作させる段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、第1の動作モード又は第2の動作モードにおいて、第3のプロセッサ及び第4のプロセッサの両方を動作させる段階であって、
上記第1の動作モードにおいて、上記第1のクロック信号及び上記第1の供給電圧に従って、上記第3のプロセッサ及び上記第4のプロセッサを動作させる段階と、
上記第2の動作モードにおいて、上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、上記第3のプロセッサを動作させ、上記第1の事前決定された周波数と異なる第3の事前決定された周波数を有する第3のクロック信号に従って、かつ、上記第1の事前決定された動作電圧と異なる第3の事前決定された動作電圧を有する第3の供給電圧に従って、上記第4のプロセッサを動作させる段階と、
を含む段階と、
を備える方法。
[項目44]
複数のプロセッサを有するマルチプロセッサシステムにおける処理方法であって、
上記複数のプロセッサ内の第1のアクティブプロセッサのみを用いて、上記マルチプロセッサシステム内における処理を実行する段階と、
上記マルチプロセッサシステム内における処理のために第2のプロセッサがアクティブ化されるべきであると判断する段階と、
上記判断に応じて、上記第2のプロセッサをアクティブ化する段階と、
対称マルチプロセッシングモード(SMPモード)又は非対称マルチプロセッシングモード(ASMPモード)のいずれかに従って、上記第1のアクティブプロセッサ及び上記第2のアクティブプロセッサを用いて、上記マルチプロセッサシステム内における処理を実行する段階であって、
上記SMPモードにある場合、上記第1のアクティブプロセッサ及び上記第2のアクティブプロセッサの各々は、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された電圧を有する第1の供給電圧に従って動作し、
上記ASMPモードにある場合、上記第1のアクティブプロセッサは、上記第1のクロック信号及び上記第1の供給電圧に従って動作し、上記第2のプロセッサは、上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って動作する、
段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、上記SMPモードから上記ASMPモードに、又は上記ASMPモードから上記SMPモードに、上記第1のアクティブプロセッサ及び上記第2のアクティブプロセッサの動作をスイッチする段階と、
を備える方法。
[項目45]
動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて、1つのモードから他のモードに動的にスイッチする段階をさらに含む、項目44に記載の方法。
[項目46]
上記第2のプロセッサがアクティブ化されるべきであると判断する段階は、負荷、キューの長さ、タスクの数、タスクのタイプ、スレッドの数、スレッドのタイプ、1つ又は複数の依存性、CPU要求の数、又はアクティブなアプリケーションの数の少なくとも1つに基づいて、上記第2のプロセッサがアクティブ化されるべきであると判断する段階をさらに含む、項目44に記載の方法。
[項目47]
上記マルチプロセッサシステム内における処理のために、第3のプロセッサがアクティブ化されるべきであると判断する段階と、
上記判断に応じて、上記第3のプロセッサをアクティブ化する段階と、
その後、上記SMPモードに従って、上記第1のアクティブプロセッサ、上記第2のアクティブプロセッサ及び上記第3のアクティブプロセッサを用いて、上記マルチプロセッサシステム内における処理を実行する段階であって、上記第1のアクティブプロセッサ、上記第2のアクティブプロセッサ及び上記第3のアクティブプロセッサの各々は、上記第1のクロック信号及び上記第1の供給電圧に従って動作する、段階と、
をさらに備える、項目44に記載の方法。
[項目48]
マルチプロセッサ処理システム(MP処理システム)であって、
第1のプロセッサ及び第2のプロセッサを含む複数のプロセッサと、
少なくとも上記第2のプロセッサに連結され、
アクティブ化/非アクティブ化信号に応じて、上記第2のプロセッサをアクティブ化又は非アクティブ化し、
上記第2のプロセッサのアクティブ化の際に、対称マルチプロセッシングモード(SMPモード)又は非対称マルチプロセッシングモード(ASMPモード)のいずれかに従って、上記第1のプロセッサ及び上記第2のプロセッサを用いる上記マルチプロセッサシステム内における処理を制御し、
モード選択信号を受信し、
上記モード選択信号に応じて、上記SMPモードから上記ASMPモードに、又は上記ASMPモードから上記SMPモードに、上記第1のプロセッサ及び上記第2のプロセッサの動作をスイッチする
ように構成されるコントローラであって、
上記SMPモードは、上記第1のプロセッサ及び上記第2のプロセッサの各々が、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された電圧を有する第1の供給電圧に従って動作するものと定義され、
上記ASMPモードは、上記第1のプロセッサが、上記第1のクロック信号及び上記第1の供給電圧に従って動作し、上記第2のプロセッサが、上記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、上記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って動作するものと定義される、
コントローラと、
を備えるMP処理システム。
[項目49]
上記コントローラは、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも1つに応じて、1つのモードから他のモードに動的にスイッチするようにさらに構成される、項目48に記載のMP処理システム。
[項目50]
上記アクティブ化/非アクティブ化信号は、負荷、キューの長さ、タスクの数、タスクのタイプ、スレッドの数、スレッドのタイプ、1つ又は複数の依存性、CPU要求の数、又はアクティブなアプリケーションの数の少なくとも1つに応じて生成される、項目48に記載のMP処理システム。
[項目51]
上記複数のプロセッサは、第3のプロセッサをさらに含み、
上記コントローラは、
第2のアクティブ化/非アクティブ化信号に応じて、上記第3のプロセッサをアクティブ化又は非アクティブ化し、
上記第3のプロセッサのアクティブ化の際に、上記第1のプロセッサ、上記第2のプロセッサ及び上記第3のプロセッサを上記SMPモードに配する
ようにさらに構成され、
上記第1のアクティブプロセッサ、上記第2のアクティブプロセッサ及び上記第3のアクティブプロセッサの各々は、上記第1のクロック信号及び上記第1の供給電圧に従って動作する、
項目48に記載のMP処理システム。

Claims (16)

  1. マルチプロセッサ(MP)処理システムであって、
    複数のプロセッサであって、
    第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、受信及び動作を実行する第1のプロセッサと、
    前記第1のクロック信号又は前記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号のいずれかに従って、受信及び動作を実行し、前記第1の供給電圧又は前記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧のいずれかに従って、受信及び動作を実行する第2のプロセッサと、
    を含む、複数のプロセッサと、
    少なくとも前記第2のプロセッサに連結され、モード選択信号に応じて、第1の動作モードと第2の動作モードとの間で前記MP処理システムの動作を動的にスイッチするコントローラであって、
    前記モード選択信号はキャッシュミス率に応じて生成され、
    前記第1の動作モードにある場合、前記第2のプロセッサは、前記第1のクロック信号及び前記第1の供給電圧に従って、受信及び動作を実行し、
    前記第2の動作モードにある場合、前記第2のプロセッサは、前記第2のクロック信号及び前記第2の供給電圧に従って、受信及び動作を実行する、
    コントローラと、
    を備え、
    前記第1のプロセッサは、さらに、前記第1の動作モード及び前記第2の動作モードの両方の間、前記第1のクロック信号及び前記第1の供給電圧に従って、受信及び動作を実行する、
    MP処理システム。
  2. 前記複数のプロセッサは、前記第1の動作モード及び前記第2の動作モードの両方の間、前記第1のクロック信号及び前記第1の供給電圧に従って、受信及び動作を実行する第3のプロセッサをさらに含む、請求項1に記載のMP処理システム。
  3. 前記複数のプロセッサは、前記第1の動作モード及び前記第2の動作モードの両方の間、前記第1のクロック信号及び前記第1の供給電圧に従って、受信及び動作を実行する第4のプロセッサをさらに含む、請求項2に記載のMP処理システム。
  4. 前記複数のプロセッサは、前記第1の動作モード及び前記第2の動作モードの両方の間、前記第1のクロック信号及び前記第1の供給電圧に従って、受信及び動作を各々が実行する第5のプロセッサ、第6のプロセッサ、第7のプロセッサ及び第8のプロセッサをさらに含む、請求項3に記載のMP処理システム。
  5. 前記コントローラに連結され、前記第1のクロック信号及び前記第2のクロック信号を生成及び出力するクロック生成回路であって、前記第1のクロック信号は、前記第1のプロセッサに入力される、クロック生成回路と、
    前記コントローラに連結され、前記第1の供給電圧を生成して前記第1のプロセッサに出力し、前記第1の供給電圧又は前記第2の供給電圧を前記第2のプロセッサに出力する動作電圧生成回路と、
    前記クロック生成回路と前記第2のプロセッサとの間に配置され、前記第1のクロック信号及び前記第2のクロック信号を受信し、前記第1のクロック信号又は前記第2のクロック信号を前記第2のプロセッサに出力するスイッチ回路であって、前記第1の動作モードの間、前記第1のクロック信号が前記第2のプロセッサに出力され、前記第2の動作モードの間、前記第2のクロック信号が前記第2のプロセッサに出力される、スイッチ回路と、
    をさらに備え、
    前記第1の動作モード及び前記第2の動作モードの間、前記第1のクロック信号が、前記第1のプロセッサに出力される、
    請求項1から4のいずれか1項に記載のMP処理システム。
  6. 前記コントローラに連結され、
    前記第2の動作モードにある場合、前記第2の供給電圧を生成して前記第2のプロセッサに出力し、
    前記第1の動作モードにある場合、前記第1の供給電圧を前記第2のプロセッサに出力する
    電圧レギュレータ回路をさらに備える、請求項1から5のいずれか1項に記載のMP処理システム。
  7. 前記キャッシュミス率は、L1キャッシュミス率であり、
    前記L1キャッシュミス率が、事前決定された閾値より高い場合、前記コントローラは、前記第2のプロセッサの動作を前記第2の動作モードから前記第1の動作モードにスイッチする、請求項1から6のいずれか1項に記載のMP処理システム。
  8. 複数の第1のプロセッサ及び第2のプロセッサと、
    第1の動作モード及び第2の動作モードにおいて、前記第2のプロセッサの動作を制御し、
    モード選択信号に応じて、前記第1の動作モードと前記第2の動作モードとの間で前記第2のプロセッサの動作を動的にスイッチする
    コントローラであって、前記モード選択信号は、キャッシュミス率に応じて生成される、コントローラと、
    前記コントローラに連結され、第1のクロック信号及び第2のクロック信号を生成及び出力するクロック生成回路と、
    前記クロック生成回路と前記第2のプロセッサとの間に配置され、前記第1のクロック信号及び前記第2のクロック信号を受信し、1つを前記第2のプロセッサへの出力のために選択するスイッチ回路であって、前記第1の動作モードの間、前記第1のクロック信号が前記第2のプロセッサに出力され、前記第2の動作モードの間、前記第2のクロック信号が前記第2のプロセッサに出力される、スイッチ回路と、
    前記複数の第1のプロセッサ及び前記第2のプロセッサに連結され、これらと共に用いられるキャッシュメモリと、
    前記コントローラに応答し、前記第2のプロセッサ及び前記キャッシュメモリに連結され、さらに、前記第2の動作モードの間、前記第2のプロセッサと前記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、前記第1の動作モードの間、バイパス機能を提供するクロックドメインクロッシングCDC及びバイパス回路と、
    を備え
    前記第1の動作モード及び前記第2の動作モードの間、前記複数の第1のプロセッサのいずれにも前記第2のクロック信号が入力されることなく、前記第1のクロック信号が、前記複数の第1のプロセッサの各々に入力される、装置。
  9. 前記コントローラに連結され、
    前記第1の動作モードの間、前記複数の第1のプロセッサ及び前記第2のプロセッサに、第1の動作供給電圧信号を出力し、
    前記第2の動作モードの間、前記複数の第1のプロセッサに第1の動作電圧信号を出力し、前記第2のプロセッサに第2の動作供給電圧信号を出力する
    動作電圧生成回路をさらに備える、請求項8に記載の装置。
  10. 前記装置は、単一の半導体基板上に配置される、請求項8又は9に記載の装置。
  11. 第1の動作電圧信号を受信し、
    前記第1の動作電圧信号から第2の動作電圧信号を生成し、
    前記第1の動作モードの間、前記第2のプロセッサに入力されるために、前記第1の動作電圧信号を出力し、
    前記第2の動作モードの間、前記第2のプロセッサに入力されるために、前記第2の動作電圧信号を出力する
    電圧レギュレータ及びバイパス回路をさらに備える、請求項9に記載の装置。
  12. 前記コントローラは、さらに、モード選択信号に応じて、前記第1の動作モードと前記第2の動作モードとの間で、前記第2のプロセッサの動作を動的にスイッチする、請求項8から11のいずれか1項に記載の装置。
  13. 前記第2のプロセッサの動作は、負荷情報及び前記キャッシュミス率に応じて動的にスイッチされる、請求項12に記載の装置。
  14. 対称マルチプロセッシングSMPモードと非対称マルチプロセッシングASMPモードとの間で複数のプロセッサをスイッチする方法であって、
    第1のプロセッサが動作する全ての時間において、第1の事前決定された周波数を有する第1のクロック信号及び第1の事前決定された動作電圧を有する第1の供給電圧に従って、前記第1のプロセッサを動作させる段階と、
    キャッシュミス率に応じて生成されたモード選択信号を受信する段階と、
    前記モード選択信号に応じて、第1の動作モード又は第2の動作モードで第2のプロセッサを動作させる段階であって、
    前記第1の動作モードにおいて、前記第1のクロック信号及び前記第1の供給電圧に従って、前記第2のプロセッサを動作させる段階、及び
    前記第2の動作モードにおいて、前記第1の事前決定された周波数と異なる第2の事前決定された周波数を有する第2のクロック信号に従って、かつ、前記第1の事前決定された動作電圧と異なる第2の事前決定された動作電圧を有する第2の供給電圧に従って、前記第2のプロセッサを動作させる段階
    を含む、段階と、
    を備える方法。
  15. 少なくとも2つのプロセッサが対称マルチプロセッシングSMPモード又は非対称マルチプロセッシングASMPモードで動作するマルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法であって、
    前記少なくとも2つのプロセッサを前記SMPモードで動作させる段階であって、前記少なくとも2つのプロセッサは、第1の事前決定された周波数を有するSMPクロック信号を受信し、第1の電圧を有するSMP動作供給電圧を受信し、前記少なくとも2つのプロセッサは、第1のプロセッサ及び第2のプロセッサを含む、段階と、
    SMPモードからASMPモードにスイッチする命令を受信する段階であって、前記命令は、キャッシュミス率に基づいて生成される、段階と、
    SMPモードからASMPモードに、前記少なくとも2つのプロセッサの動作をスイッチする段階と、
    を備え、
    前記動作をスイッチする段階は、
    前記第1の事前決定された周波数と異なる第2の事前決定された周波数を有するASMPクロック信号を生成する段階と、
    前記第1の電圧と異なる第2の電圧において、ASMP動作供給電圧を生成する段階と、
    前記ASMPクロック信号及び前記ASMP動作供給電圧を前記第2のプロセッサに入力する段階と、
    その後、前記第2の事前決定された周波数及び前記第2の電圧において、前記第2のプロセッサを動作させ、前記第1の事前決定された周波数及び前記第1の電圧において、前記第1のプロセッサを動作させる段階と、
    を含む、方法。
  16. コントローラに、請求項14又は15に記載の方法を実行させるためのプログラム。
JP2017520922A 2014-10-16 2015-10-10 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム Active JP6611375B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/516,314 2014-10-16
US14/516,314 US9952650B2 (en) 2014-10-16 2014-10-16 Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching
US14/580,044 2014-12-22
US14/580,044 US10928882B2 (en) 2014-10-16 2014-12-22 Low cost, low power high performance SMP/ASMP multiple-processor system
PCT/CN2015/091655 WO2016058498A1 (en) 2014-10-16 2015-10-10 Novel low cost, low power high performance smp/asmp multiple-processor system

Publications (2)

Publication Number Publication Date
JP2017532686A JP2017532686A (ja) 2017-11-02
JP6611375B2 true JP6611375B2 (ja) 2019-11-27

Family

ID=55746127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017520922A Active JP6611375B2 (ja) 2014-10-16 2015-10-10 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム

Country Status (6)

Country Link
US (1) US10928882B2 (ja)
EP (1) EP3198364B1 (ja)
JP (1) JP6611375B2 (ja)
KR (1) KR101942884B1 (ja)
CN (1) CN107077187B (ja)
WO (1) WO2016058498A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2811367A1 (en) * 2013-06-04 2014-12-10 Ericsson Modems SA A method for controlling powering of a mobile platform
US10248180B2 (en) 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US9952650B2 (en) 2014-10-16 2018-04-24 Futurewei Technologies, Inc. Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching
US11398258B2 (en) 2018-04-30 2022-07-26 Invensas Llc Multi-die module with low power operation
CN112486638A (zh) * 2019-09-11 2021-03-12 百度时代网络技术(北京)有限公司 用于执行处理任务的方法、装置、设备和存储介质
JP2021149659A (ja) * 2020-03-19 2021-09-27 キオクシア株式会社 半導体集積回路、メモリコントローラ、およびメモリシステム
WO2024177484A1 (ko) * 2023-02-21 2024-08-29 삼성전자주식회사 뉴럴 네트워크의 기능을 실행하는 코어를 선택하기 위한 전자 장치 및 그 방법

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05259848A (ja) 1992-03-11 1993-10-08 Nec Corp クロック発生装置
US5774704A (en) 1996-07-29 1998-06-30 Silicon Graphics, Inc. Apparatus and method for dynamic central processing unit clock adjustment
JPH10133766A (ja) 1996-10-11 1998-05-22 Lucent Technol Inc 適応型パワーダウン・クロック制御
US5964881A (en) 1997-11-11 1999-10-12 Advanced Micro Devices System and method to control microprocessor startup to reduce power supply bulk capacitance needs
JP2002099432A (ja) 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US7100056B2 (en) 2002-08-12 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for managing processor voltage in a multi-processor computer system for optimized performance
JP2004078642A (ja) 2002-08-20 2004-03-11 Nec Engineering Ltd 割込み制御回路
US7290156B2 (en) * 2003-12-17 2007-10-30 Via Technologies, Inc. Frequency-voltage mechanism for microprocessor power management
JP2005196430A (ja) 2004-01-07 2005-07-21 Hiroshi Nakamura 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
JP2006050888A (ja) 2004-07-02 2006-02-16 Rohm Co Ltd 電源装置、それを用いた電力増幅装置、携帯電話端末
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
JP4484757B2 (ja) 2004-12-09 2010-06-16 株式会社日立製作所 情報処理装置
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
JP2007047966A (ja) 2005-08-09 2007-02-22 Canon Inc 省電力制御システム
US7562234B2 (en) 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
EP1772795A1 (en) * 2005-10-10 2007-04-11 STMicroelectronics (Research & Development) Limited Fast buffer pointer across clock
JP2007148952A (ja) 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
US7263457B2 (en) 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
JP2007328461A (ja) 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
EP2031510A4 (en) 2006-06-07 2011-07-06 Hitachi Ltd INTEGRATED SEMICONDUCTOR SWITCHING
JP4837456B2 (ja) 2006-06-28 2011-12-14 パナソニック株式会社 情報処理装置
JP4231516B2 (ja) 2006-08-04 2009-03-04 株式会社日立製作所 実行コードの生成方法及びプログラム
US7870413B2 (en) 2006-08-15 2011-01-11 Mitac International Corp. Synchronization clocking scheme for small scalable multi-processor system
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
JP2008299731A (ja) 2007-06-01 2008-12-11 Panasonic Corp 半導体集積回路、情報処理システム
US7913103B2 (en) 2007-08-31 2011-03-22 Globalfoundries Inc. Method and apparatus for clock cycle stealing
JP5344190B2 (ja) 2008-03-04 2013-11-20 日本電気株式会社 半導体デバイス
US20090235108A1 (en) 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8120342B1 (en) 2008-05-06 2012-02-21 Volterra Semiconductor Corporation Current report in current mode switching regulation
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
JP5229326B2 (ja) 2008-09-24 2013-07-03 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
JP5293289B2 (ja) 2009-03-11 2013-09-18 富士通株式会社 マルチコアプロセッサ及びその制御方法
JP5316128B2 (ja) 2009-03-17 2013-10-16 トヨタ自動車株式会社 故障診断システム、電子制御ユニット、故障診断方法
US8190930B2 (en) 2009-03-30 2012-05-29 Intel Corporation Methods and apparatuses for controlling thread contention
JP2010271765A (ja) 2009-05-19 2010-12-02 Renesas Electronics Corp 電源電圧制御回路
EP2435914B1 (en) * 2009-05-26 2019-12-11 Telefonaktiebolaget LM Ericsson (publ) Method and scheduler in an operating system
US8412971B2 (en) 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
EP2572302B1 (en) 2010-05-19 2021-02-17 Sanofi-Aventis Deutschland GmbH Modification of operational data of an interaction and/or instruction determination process
JP5633564B2 (ja) 2010-06-23 2014-12-03 富士通株式会社 マルチコアシステムおよび外部入出力バス制御方法
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20120096292A1 (en) * 2010-10-15 2012-04-19 Mosaid Technologies Incorporated Method, system and apparatus for multi-level processing
KR101661111B1 (ko) 2010-11-23 2016-09-30 한국전자통신연구원 멀티 코어 프로세서의 전력 제어 장치 및 방법
US20130060555A1 (en) 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US8862926B2 (en) 2011-08-16 2014-10-14 Apple Inc. Hardware controlled PLL switching
CN103270470B (zh) 2011-09-21 2016-02-17 英派尔科技开发有限公司 多核系统能耗优化
CN102404211A (zh) 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
US9122286B2 (en) 2011-12-01 2015-09-01 Panasonic Intellectual Property Management Co., Ltd. Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat
KR101915073B1 (ko) * 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
CN102609075A (zh) 2012-02-21 2012-07-25 李�一 多核处理器电源管理电路
CN102637134B (zh) 2012-04-26 2015-01-21 网经科技(苏州)有限公司 嵌入式非对称多处理架构下的软件加载与存储的方法
US8981745B2 (en) 2012-11-18 2015-03-17 Qualcomm Incorporated Method and apparatus for bypass mode low dropout (LDO) regulator
US9262177B2 (en) 2012-12-19 2016-02-16 International Business Machines Corporation Selection of a primary microprocessor for initialization of a multiprocessor system
US9110671B2 (en) 2012-12-21 2015-08-18 Advanced Micro Devices, Inc. Idle phase exit prediction
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9823719B2 (en) * 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
KR20150050880A (ko) 2013-11-01 2015-05-11 에스케이하이닉스 주식회사 전압 레귤레이터 및 바이어스 전류 조절 장치
US20150355700A1 (en) 2014-06-10 2015-12-10 Qualcomm Incorporated Systems and methods of managing processor device power consumption
US9395797B2 (en) 2014-07-02 2016-07-19 Freescale Semiconductor, Inc. Microcontroller with multiple power modes
US10248180B2 (en) 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US9952650B2 (en) 2014-10-16 2018-04-24 Futurewei Technologies, Inc. Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching

Also Published As

Publication number Publication date
CN107077187B (zh) 2021-08-03
US20160109922A1 (en) 2016-04-21
CN107077187A (zh) 2017-08-18
WO2016058498A1 (en) 2016-04-21
EP3198364A4 (en) 2017-09-20
EP3198364A1 (en) 2017-08-02
KR101942884B1 (ko) 2019-01-28
US10928882B2 (en) 2021-02-23
JP2017532686A (ja) 2017-11-02
KR20170069269A (ko) 2017-06-20
EP3198364B1 (en) 2020-04-01

Similar Documents

Publication Publication Date Title
JP6611375B2 (ja) 新規な低コスト、低電力高性能smp/asmpマルチプロセッサシステム
JP6501430B2 (ja) マルチプロセッサの動的な非対称及び対称モードスイッチのためのハードウェア装置及び方法
US10948969B2 (en) Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US9043629B2 (en) Multi-cluster processing system and method of operating the same
JP6203425B2 (ja) 共有電力領域における異種プロセッサにわたる動的電力管理のための装置、システムおよび方法
US9268395B2 (en) Hierarchical power management circuit, power management method using the same, and system on chip including the hierarchical power management circuit
US10234932B2 (en) Method and apparatus for a multiple-processor system
CN110462962B (zh) 利用有源负载的功率多路复用
EP3350669A2 (en) Managing power-down modes
KR20240034854A (ko) 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩
JP2022548483A (ja) 低オーバーヘッド広帯域幅再構成可能な相互接続装置及び方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191028

R150 Certificate of patent or registration of utility model

Ref document number: 6611375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250