JP2006318470A - コンピュータシステムの電力管理のための方法及び装置 - Google Patents

コンピュータシステムの電力管理のための方法及び装置 Download PDF

Info

Publication number
JP2006318470A
JP2006318470A JP2006130676A JP2006130676A JP2006318470A JP 2006318470 A JP2006318470 A JP 2006318470A JP 2006130676 A JP2006130676 A JP 2006130676A JP 2006130676 A JP2006130676 A JP 2006130676A JP 2006318470 A JP2006318470 A JP 2006318470A
Authority
JP
Japan
Prior art keywords
processor
data
multiprocessor system
processors
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006130676A
Other languages
English (en)
Other versions
JP4792328B2 (ja
Inventor
Masakazu Suzuoki
雅一 鈴置
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2006318470A publication Critical patent/JP2006318470A/ja
Application granted granted Critical
Publication of JP4792328B2 publication Critical patent/JP4792328B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】マイクロプロセッサの発熱問題をソフトウェアベースで解決する。
【解決手段】コンピュータシステム内の1つ以上のプロセッサとプロセッサの関連するローカルメモリがメインメモリ106と動作可能に接続され、メインメモリ106とローカルメモリ104との間のデータ転送を可能にする。コンピュータシステムは、コンピュータシステム内の1つ以上のプロセッサのポーズ条件を発生させる(成立させる)アクション、1つ以上のプロセッサにポーズをかけるアクション、1つ以上のプロセッサのローカルメモリからメインメモリへデータを保存するアクション、1つ以上のプロセッサを休止状態にするアクション、1つ以上のプロセッサへの電源供給を再開するアクション、1つ以上のプロセッサから発生する保存したデータを、1つの送信元のプロセッサへ転送するアクション等を実行することができる。
【選択図】図1

Description

本発明はコンピュータシステムの電力消費と発熱性を管理し、かつマルチプロセッサコンピュータシステムのプロセッサ間の演算処理アクティビティの分配を管理するための方法及び装置に関する。
クロック周波数が増加し、かつ最新のマイクロプロセッサにおいてはそのサイズが縮小していることから、演算処理性能が非常に向上し、また、そのような性能を小さなサイズで提供できるという利点が得られている。
しかし、演算処理性能の向上に伴い、マイクロプロセッサの電力消費と発熱性もかなり増加する。これは、グラフィックプロセッサに特に当てはまる。従って、マイクロプロセッサの発熱問題に対しては、ヒートシンクを配置するといったハードウェアソリューションに代えて、あるいは、ハードウェアソリューションに加えて、ソフトウェアベースソリューション技術が求められている。
マルチプロセッサコンピュータシステムでは、限られたスペースに複数の高性能プロセッサが集中し、また、プロセッサ間に分配される演算処理アクティビティが不均一であることから、発熱問題が悪化する。演算処理アクティビティが不均一に分配されると、局所的な“ホットスポット”が生成され得る。その理由は、あるプロセッサは、同じコンピュータシステム内のそれほどアクティブではないプロセッサに比べて、演算処理のスループット処理量が大きくなり、それに応じてより大きな熱エネルギーが蓄積されるからである。従って、マルチプロセッサシステムのホットスポット問題に対して、ソフトウェアソリューション技術が求められている。
一形態によれば、本発明は、プロセッサで実行しているプログラムのチェックポイント命令が発生すると、コンピュータシステム内のプロセッサのオペレーションにポージングをかけるステップ、プロセッサのローカルメモリからコンピュータシステムのメインメモリへデータを保存するステップ、及びプロセッサを休止状態にするステップ、を含む方法を提供する。好適には、この方法において、更にデータを保存する前にローカルメモリのデータを暗号化するステップが含まれる。更に、この方法において、ウェイクアップ条件の成立を検出すると、休止状態にされたプロセッサをウェイクアップさせるステップを含むことが好ましい。更に、保存したデータをメインメモリからプロセッサのローカルメモリへ転送するステップを含むことが好ましい。更に、この方法において、保存前にローカルメモリのデータを暗号化するステップ、ウェイキングアップ後にプロセッサがプロテクトモードに入れるステップ、転送されたデータを解読するステップ、及び、プロセッサがプロテクトモードから解除されるステップ、を含むことが好ましい。
好適には、プロテクトモードに入れるステップにおいて、プロセッサの内外へのデータ転送が禁止されている隔離モードに入る。好ましくは、プロテクトモードに入れるステップにおいて、プロセッサの外部デバイスからプロセッサのローカルメモリの内外へのデータ転送リクエストがサービスされない安全モードに入る。更に、プロセッサのオペレーションをレジュームすることを含むことが好ましい。好適には、プロセッサを休止状態にするステップにおいて、プロセッサへの電源供給が止められる。好適には、プロセッサを休止状態にするステップにおいて、実質的にプロセッサの電力消費レベルが低減される。好適には、プロセッサを休止状態にするステップにおいて、プロセッサの電力消費レベルが少なくとも実質的に低減される。好適には、プロセッサを休止状態にするステップにおいて、プロセッサへのクロック信号が止められる。
好適には、プロセッサのウェイクアップ処理においては、プロセッサへの電源供給が完全に再開されるとともに、プロセッサが初期化される。好適には、プロセッサのウェイクアップ処理においては、プロセッサへの電源供給が少なくとも実質的に再開される。
好適には、ウェイクアップ処理において、休止状態にされたプロセッサに対して、ウェイクアップ条件が成立したことが伝達され、また、プロセッサへの電源供給が完全に回復するように、プロセッサから信号が送られる。好適には、上記プロセッサへの伝達では、休止状態にされたプロセッサへ割込みが送信される。好適には該方法によって更に、所定の期間の終了に基づきウェイクアップ条件が発生(成立)する。好適には、所定の期間は、プロセッサが休止状態にある期間と等しい。好適には、該方法によって、休止状態にされたプロセッサと通信状態にある第2プロセッサのチェックポイント命令が実行されると、ウェイクアップ条件が発生する。好適には、該方法によって更に、保存されたデータがメインメモリから第2プロセッサのローカルメモリへ転送され、また、第2プロセッサにおいてプログラム実行がレジュームされる。
他の形態によれば、本発明では、第1マルチプロセッサシステムの少なくとも1つのプロセッサが、所定の継続時間の実行期間が終了するのを待ち;実行期間が終了すると少なくとも1つのプロセッサの進行中のプログラム実行処理にポーズをかけ、これにより、ポーズがかけられたプロセッサを少なくとも1つ提供し;少なくとも1つのプロセッサの少なくとも1つのローカルメモリから第1マルチプロセッサシステムのメインメモリにデータを保存する方法が提供される。好適には、該方法では更に、ポーズがかけられた各プロセッサに対する宛先プロセッサを指定し、その結果、少なくとも1つの宛先プロセッサを提供し、保存したデータをメインメモリから、少なくとも1つの宛先プロセッサの少なくとも1つの各々のローカルメモリへ転送し、かつ、この少なくとも1つの宛先プロセッサにおいて、進行中のプログラム実行処理をレジュームし、その結果、新たな実行期間を開始する。好適には、該方法では更に、少なくとも1つの宛先プロセッサがプロテクトモードに入り、転送された暗号化されたデータを解読し、かつ、少なくとも1つの宛先プロセッサがプロテクトモードを出る。
好適には、プロテクトモードに入れるステップにおいて、少なくとも1つの宛先プロセッサの内外へのデータ転送が禁止されている隔離モードに入る。好適には、プロテクトモードに入れるステップにおいて、少なくとも1つの宛先プロセッサの外部デバイスから、少なくとも1つの宛先プロセッサの内外へのデータ転送リクエストがサービスされない安全モードに入る。好適には、該方法によって、(実行期間が終了するのを)待つステップ、ポーズをかけるステップ、保存ステップ、指定ステップ、転送ステップ、及びレジュームステップが繰り返し行われる。好適には、少なくとも1つのポーズがかけられたプロセッサには、少なくとも2つのポーズがかけられたプロセッサを含み、また、(宛先プロセッサの)指定においては、プロセッサのデータ再配置スキームによりポーズがかけられたプロセッサの各々に対する宛先プロセッサが指定される。
好適には、実行期間は少なくとも1つのプロセッサのフレーム処理時間に実質的に等しい。好適には、実行期間は約16ミリセカンドである。好適には、実行期間の継続時間は実質的に、少なくとも1つのプロセッサの臨界温度上昇時間よりも短く、好適には、少なくとも1つの宛先プロセッサは、第1マルチプロセッサシステムに配置される。好適には、少なくとも1つの宛先プロセッサのうちの少なくとも1つは第2マルチプロセッサシステムに配置される。好適には、該方法により更に、第一マルチプロセッサシステムのメインメモリから、第2マルチプロセッサシステムのメインメモリへ全てのデータがコピーされる。好適には、プロセッサのデータ再配置スキームにおいては、“n”を法としてローテーションが行われ、“n”は第1マルチプロセッサシステムのプロセッサの番号である。
別の形態では、本発明によりメインメモリと通信できる少なくとも1つのプロセッサと、少なくとも1つのプロセッサの各々と結合されたローカルメモリを備え、その結果少なくとも1つのローカルメモリが提供されるコンピュータシステムが提供される。このコンピュータシステムは、少なくとも1つのプロセッサで実行中のプログラムでチェックポイント命令が発生すると、コンピュータシステム内の少なくとも1つのプロセッサのオペレーションにポーズをかけ、その結果ポーズがかけられたプロセッサを少なくとも一つ提供し、この少なくとも1つのポーズがかけられたプロセッサのローカルメモリからコンピュータシステムのメインメモリへとデータを保存し、この少なくとも1つのポーズがかけられたプロセッサを休止状態にするように動作可能である。
別の形態では、本発明によれば、メインメモリと通信できる少なくとも1つのプロセッサと、少なくとも1つのプロセッサの各々と結合されたローカルメモリと、を備え、その結果少なくとも1つのローカルメモリが提供されるコンピュータシステムが提供される。このコンピュータシステムは、当該コンピュータシステムの第1マルチプロセッサシステムの少なくとも1つのプロセッサによって所定の継続時間の実行期間が終了するのを待つ動作、実行期間が終了すると少なくとも1つのプロセッサにおいて進行中のプログラム実行処理にポーズをかけることで少なくとも1つのポーズがかけられたプロセッサを提供する動作、及び、少なくとも1つのポーズがかけられた少なくとも1つのローカルメモリから第1マルチプロセッサシステムのメインメモリへとデータを保存する動作、を行うことができる。
別の形態では、本発明により実行可能プログラムを含む記録媒体を提供する。この実行可能プログラムはコンピュータシステムに、プロセッサにおいて実行中のプログラムにチェックポイント命令が発生すると、コンピュータシステム内のプロセッサのオペレーションにポーズをかけ、プロセッサのローカルメモリからコンピュータシステムのメインメモリへデータを保存し、プロセッサを休止状態にするアクションを実行させることができる。
別の形態では、本発明は実行可能プログラムを含む記録媒体を提供する。この実行可能プログラムはコンピュータシステムに、第1マルチプロセッサシステムの少なくとも1つのプロセッサによって所定の継続時間の実行期間の終了を待ち、実行期間が終了すると、少なくとも1つのプロセッサにおいて進行中のプログラム実行処理にポーズをかけ、その結果、少なくとも1つのポーズがかけられたプロセッサを提供し、また、少なくとも1つのプロセッサの少なくとも1つの各々のローカルメモリからマルチプロセッサシステムのメインメモリへデータを保存するアクションを実行させることができる。
添付の図面を参照しつつ、ここに記載する本発明の説明を読めば、他の態様、機能および利点などは当業者に自明となるであろう。
本発明の様々な形態を説明するために、現在の好ましい形態を図面の形式に示すが、本発明は図示したとおりの構成ならびに手段に限定されないことを理解されたい。
本開示では、プロセッサのローカルメモリに記録されたデータを保存することに関連して、用語“データ”はプログラムコードが処理する数値情報及び文字情報に加えて、実行可能プログラムコードを含む全てのデータを含む。本文では、プロセッサエレメントとも呼ばれる“ブロードバンドエンジン”は、マルチプロセッサコンピュータシステムである。本文では、用語“休止状態(ハイバーネーション)”は一般に、プロセッサの使用電力が少なく、及び/又は通常動作時よりも浪費電力が少ないプロセッサ状態を言う。従って、そのような休止状態には、単に電力消費を減らしただけの電力消費又は浪費レベルからゼロ又はゼロに近い電力消費又は浪費レベルに至るまでの電力消費又は浪費レベル範囲を含むプロセッサ状態を含む。
これに対応して、プロセッサを"休止状態にする(ハイバネーティング:hibernating)"という用語(及びこの動詞のその他の語形変化)は、プロセッサをそのような低電力消費、及び/又は低電力浪費状態、もしくはゼロ電力消費及び/又はゼロ電力浪費状態にすることを言う。プロセッサへの供給電圧を部分的にあるいは全面的に減らすことでプロセッサを休止状態にすることができる。他の形態では、プロセッサへの電流を部分的にあるいは全面的に減らすことができる。別の実施形態では、程度を変えることでプロセッサへのクロック信号を減らす、もしくは完全に止めることができる。更に、プロセッサへの電源供給を減らすもしくはなくすために、前述の1以上の手法の組合せを採用することができる。更に本発明はプロセッサを休止状態にするために、上述した1以上の手法を使用することに限定されない。さらに、休止状態という用語は上記の定義に限定されない。
本文では、プロセッサを“ウェイキングアップ(waking up)”するという用語は、プロセッサへの電源供給、もしくはクロック信号の送信を再開することを言う。これに対応して、“ウェイキングアップ条件(wake-up condition)”とは、プロセッサをウェイクアップするリクエストを示す条件である。しかし、用語“ウェイキングアップ”は上記の定義に限定されない。
本文では、用語“チェックポイント”は、概して所望のプロセッサステータス及び/又はプロセッサの、もしくは、プロセッサが配置されるコンピュータシステムの、条件を示す、あるいは条件の成立を示すプログラム命令を称する。一実施形態では、プロセッサのプログラムコードのチェックポイントはプロセッサに休止ステート(hibernation state)としても周知の休止状態(hibernation condition)へ入るように命令する。一実施形態では、複数の実行可能な休止ステートの電力レベルのうちの1つ以上がチェックポイント命令において特定される。別の実施形態では、チェックポイントは、1以上の各々のローカルメモリのコンテンツを各々のプロセッサの外部メモリへシフトさせるように、1以上のプロセッサに命令を出す。上述した事項に加え、ステータス及び/又は命令を示すためにチェックポイントを採用することができる点に留意されたい。更に、用語“チェックポイント”は上述の定義に限定されない。
本文では、用語“ホットスポット”は、所望の温度よりも温度が高い装置内のロケーションを称する。一実施形態では、ホットスポットが存在し得るのは、装置内のロケーションがしきい値温度よりも高い場合であり、しきい値は予め定められているか、もしくは装置がオペレーションを行う間に調整することができる。
一実施形態では、用語“ホットスポット”は、マルチプロセッサコンピュータシステムの全プロセッサのうち、最もホットな(最も高温の)マルチプロセッサコンピュータシステムのプロセッサを称する。他の形態では、用語“ホットスポット”はマルチプロセッサコンピュータシステムのその他の大多数のプロセッサよりも高温のプロセッサを称する。しかし、用語“ホットスポット”は上記の定義に限定されない。
本文では、用語“コンピュータシステム”は演算用装置を称する。一実施形態では、コンピュータシステムはシングルプロセッサであってよい。別の実施形態では、コンピュータシステムはブロードバンドエンジンなどのマルチプロセッサデバイスであってよく、これはプロセッサエレメント(PE)として周知である。更に別の実施形態では、用語“コンピュータシステム”は複数のマイクロプロセッサシステムを含み、かつ、マイクロプロセッサシステムの外部メモリ、バスシステムなどのデータ送信装置、及びデータ通信制御デバイスを含む(しかし、これらに限定されない)その他のデバイスを含むことができる。しかし、用語“コンピュータシステム”は上述の定義に限定されない。
本文では、用語“進行中のプログラム実行処理(ongoing program execution)”及び“進行中の実行処理(ongoing execution)”はプロセッサのデータ再配置処理、及び/又はプロセッサのハイバネーション処理を実装するために行われるオペレーション以外のオペレーションを言う。しかし、用語“進行中のプログラム実行処理”は前述の定義に限定されない。本文中における、プロセッサに“ポーズをかける(pausing)”という用語は、この進行中のプログラム実行処理中止することである。好適には、ポーズをかけられた後でも、プロセッサはハイバネーション処理とプロセッサのデータ再配置処理に関連付けられるタスクを実施することができる。しかし、用語“ポーズをかける”は前述の定義に限定されない。
図面において、同一の要素には同じ参照符号が付されている。図1は本発明の1つ以上の特徴を実行するのに適したプロセスシステム100である。簡潔を期すとともに明確になるように、図1のブロック図は装置100の説明として本明細書において言及かつ記載される。しかしこの記載は同等の効力を有する1つ以上の方法の様々な形態に容易に適用できることを理解されたい。装置100には好ましくはプロセッサ102、ローカルメモリ104、好ましくはダイナミックランダムアクセスメモリ(DRAM)などのシステムメモリ106、及びバス108とが含まれる。
プロセッサ102はシステムメモリ106からデータを要求し、所望の結果を実現するようにデータの操作ができる、任意の従来技術を利用して実装されることができる。例えば、プロセッサ102は、標準マイクロプロセッサや分散型マイクロプロセッサなどを含む、ソフトウェア及び/又はファームウエアを実行できる、任意の従来のマイクロプロセッサを用いて実装されうる。例えば、プロセッサ102は、データ(ピクセルデータなどであり、グレースケール情報、色情報、テキスチャデータ、ポリゴン情報、ビデオフレーム情報等を含むピクセルデータなどのデータ)を要求して操作がすることができるグラフィックスプロセッサであることができる。
ローカルメモリ104は、好ましくはプロセッサ102と同じチップに配置される。しかし、ローカルメモリ104は、好ましくはハードウェアキャッシュメモリ機能を実装するためのオンチップ又はオフチップのハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが存在しない、という点で、従来のハードウェアキャッシュメモリでないことが好ましい。他の実施形態では、ローカルメモリ104は、キャッシュメモリであり、及び/又は付加的キャッシュメモリを用いることができる。チップ上のスペースには限りがあることが多いため、ローカルメモリは共有メモリ106よりも相当サイズが小さいことがある。プロセッサ102は、好ましくは、プログラムを実行したりデータを操作したりするために、バス108経由でシステムメモリ106からそれぞれのローカルメモリ104にデータ(プログラムデータを含みうる)をコピーするため、データアクセスリクエストを出す。データアクセスを容易にするためのメカニズムは、DMA法などの公知の技術のいずれかを用いて実装されうる。この機能は、好ましくはメモリインタフェース回路によって実行される。
好ましくは、装置100はバス108などを通じてプロセッサ102と動作可能に結合されたリードオンリーメモリ(ROM)などの記録媒体を含む。好適には、この記録媒体110には、プロセッサ102のローカルメモリ104に読み出すことができ、かつ、安全な復号キーを使用して情報を解読するように動作できる、信頼できる復号化プログラムが含まれる。好ましくはこの記録媒体110は、復号化プログラムによって信頼性のある機能が提供され、外部のソフトウェア操作からはこのプログラムを改ざんできないセキュリティレベルが実現される、永続的にプログラム可能なデバイス(例えば、フラッシュROM)である。好適には、記録媒体110のセキュリティレベルは、未承認のエンティティからは復号化プログラム及び/又はその他の情報(信頼できる復号キーなど)へアクセスできないものとなっている。例えば、好ましくは、装置100を製造する間に復号化プログラムが記録媒体100に構築され記録される。
プロセッサ102とローカルメモリ104は共通の集積回路上に配置されることが好ましい。従って、これらのエレメントは本文中では“プロセッサ102”と呼ばれる。他の実施形態では、記録媒体110はまた、1つ又はそれ以上のその他のエレメントを備えた共通の集積回路上に配置される。
図2は、2つ以上のサブプロセッサ102を有すマルチプロセッサシステム100Aのブロック図である(本文ではマルチプロセッシングシステムとも呼ばれる)。本文において、その他の箇所に記されている概念はマルチプロセッサシステム100Aに応用することができる。システム100Aには、複数のプロセッサ102A−102Dと、関連のローカルメモリ104A−Dと、バスシステム108を介して相互接続されている共有メモリ106とが含まれる。共用メモリ106は本文ではメインメモリ106又はシステムメモリ106とも呼ばれる。例として4つのプロセッサ102が例示されているが、本発明の精神と範囲を逸脱することなく、任意の数のプロセッサが用いられてよい。プロセッサ102の各々は同様の構造、または異なる構造であってよい。
ローカルメモリ104は、好ましくは、各々のプロセッサ102と同じチップ(同じ半導体基板)上に配置される。しかし、ローカルメモリ104は、ハードウェアキャッシュメモリ機能を実装するためのオンチップ又はオフチップのハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが存在しないという点で、好ましくは従来のハードウェアキャッシュメモリではない。
プロセッサ102は、好ましくは、プログラムを実行したりデータを操作したりするために、バスシステム108経由でシステムメモリ106からそれぞれのローカルメモリ104へデータ(プログラムデータを含みうる)をコピーするため、データアクセスリクエストを出す。データアクセスを容易にするためのメカニズムは、好ましくは、各プロセッサ(図示せず)に対してDMAC(Direct Memory Access Controller)を用いて実装される。好適には、各プロセッサのDMACの機能は、本発明のその他の特徴について本文の別の箇所で説明しているように、実質的に同じである。
システムメモリ106は好ましくは、高帯域メモリ接続(図示せず)を介してプロセッサ102に結合されたダイナミックランダムアクセスメモリ(DRAM)である。更に、もしくは他の形態では、DRAM106はバス108を介してプロセッサ102に接続される。システムメモリ106はDRAMであるのが望ましいが、メモリ106は例えば、スタティックランダムアクセスメモリ(SRAM)、磁気ランダムアクセスメモリ(MRAM)、光メモリ、ホログラフィックメモリなどとして、その他の方法を用いて実装されうる。
各プロセッサ102は、好ましくは、論理命令がパイプライン式で処理される、プロセッシングパイプラインを用いて実装される。パイプラインは命令が処理されるいずれの数のステージに分けられうるが、一般にパイプラインは1つ以上の命令のフェッチ、命令のデコード、命令間の依存性チェック、命令の発行、及び、命令の実行ステップを有している。これに関連して、プロセッサ102は命令バッファ、命令デコード回路、依存性チェック回路、命令発行回路、及び命令実行ステージ、を有する。
他の実施形態では、プロセッサ102とローカルメモリ104とは、共通の半導体基盤上に配置されうる。1つ以上の更なる実施形態では、共有メモリ106は共通の半導体基盤上に配置されることができ、または、別々の半導体基板上などに別々に配置されることもできる。
他の実施形態では、1以上のプロセッサ102が、他のプロセッサ102と動作可能となるように結合され、バス108を経由して共有メモリ106と結合できる、メインプロセッサとして動作することができる。メインプロセッサは、他のプロセッサ102によるデータ処理をスケジューリングし調整を行う。しかし他のプロセッサ102とは違って、メインプロセッサは、共有メモリ106と、プロセッサ102の1つ以上のローカルメモリ104と、の少なくとも一方から得た動作可能なキャッシュデータであるハードウェアキャッシュメモリに結合することができる。メインプロセッサは、DMA技術などの、任意の従来技術を利用してプログラムを実行してデータの操作を行うために、バス108を経由してシステムメモリ106からキャッシュメモリへ、データ(プログラムデータを含みうる)をコピーするため、データアクセスリクエストを出す。
一実施形態では、マルチプロセッシングシステム100Aには更に、直接的に、又はバスシステム108を介して共有メモリ106及びプロセッサ102A−102Dに結合されている記録媒体(図示せず)が含まれる。この記録媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、DRAM、プログラマブルROM(PROM)、又はその他従来の、データ記録を行う実装品である。更に、付加的データ記録媒体(図示せず)も共有メモリ106及び/またはプロセッサ102A−102Dと直接的に、又はバスシステム108を介して結合される。
図3は、本発明の1以上の形態により使用に適した複数のマルチプロセッサシステムを含むコンピュータシステム300のブロック図である。マルチプロセッサシステム110A1−110A3は図2のマルチプロセッサシステム100Aと等価でありうるが、この形態に限定されるわけではない。コンピュータシステム300は、更にメインメモリ302と、揮発性メモリ及び/又は非揮発性メモリ(図示せず)、及び/又はランダムアクセスメモリ(RAM)及び/又はシーケンシャルメモリアクセスデータ記録デバイス(図示せず)が内蔵された付加的記録媒体を含み得る。コンピュータシステム300は更にバス304を好適に含む。コンピュータシステム300も更なるデータ通信、及びデータ通信制御装置(図示せず)を含み得る。簡素化のために図3では、マルチプロセッサシステム110A1−110A3の各々の内部構造の説明図を省略している。
図4A及び4B(図4と総称する)は共に、本発明の1以上の形態によるハイバネーション処理と、プロセッサのウェイクアップ処理に関連して実施され得る処理ステップを例示したフローチャートを形成している。以下では、図4−6を参照し、図4の処理ステップのシーケンスを説明する。
プロセスはアクション400から開始する。コンピュータシステム(シングルプロセッサ102であってよい)によって、ポーズ条件が成立したかどうかが判断される(402)。ポーズ条件が成立していない場合は、進行中のプログラム実行処理を好適に継続する(404)。ポーズ条件が成立しているとプロセスは継続する(406)。以下にその詳細を説明する。
好ましい実施形態では、プロセッサ102で実行されているプログラムのチェックポイント命令を受けたプロセッサ102がポーズ条件を発生させる(成立させる)。チェックポイント命令によって、プロセッサ102がハイバネーション処理を行う時間であるということがプロセッサ102に示される。しかし、他の実施形態では、休止状態にされるプロセッサはプロセッサ102に接続された別のデバイスから適切な指示を受け取る。例えばマルチプロセッサシステムにおいて、1プロセッサはポーズ条件が成立したことを示す信号をそのプロセッサ自体へ、及び/又はマルチプロセッサシステム内の1つ以上の他のプロセッサへ送信する。
別の実施形態では、ポーズされるプロセッサ102に動作可能となるように結合されたタイマー(ソフトウェア駆動型又はハードウェア駆動型のいずれか)はタイムアウトし、プロセッサ102へポーズ条件が成立したことを示す割込み信号を送信する。このようにしてリアルタイムスケジュールに従いポーズ条件が成立する。
別の実施形態では、コンピュータシステム内の1以上の特定イベントの発生に基づき、ポーズ条件が発生する(成立する)。そのようなイベントとしては、ポーズされるプロセッサが配置されているコンピュータシステムの作業負荷レベルが特定のしきい値を下回ることや、例えばコンピュータシステムのテストポイントなどのコンピュータシステム内に、あるしきい値温度を上回る温度条件が発生すること、が挙げられるが、イベントはこれらに限定されない。更に他の形態では、特定のイベントには、ポーズがかけられるプロセッサ102と通信するプロセッサがチェックポイント命令を実行すること、が挙げられる。
ポーズ条件が成立すると、好ましくは、プロセッサ102のプログラム実行処理にポーズがかけられる(406)。
図5を参照すると、第1ブロックはローカルメモリ104を例示しており、ヒープポインタ604及びスタックポインタ606の場所が示されている。ローカルメモリ104を例示する第1ブロックから、ローカルメモリ104を例示する第2ブロックを指す矢印は一般に、これらの2つのブロック間の遷移を示すものであり、任意の2つのメモリの場所と場所の間のデータ転送を具体的にマッピングするものではない。
好適には、矢印604及び608はローカルメモリ104のヒープポインタとスタックポインタの場所をそれぞれ示す。好ましくは、各ポインタ604及び608の場所を説明する情報は、後でメインメモリ106へ転送し、最終的にローカルメモリ104へ復帰するようにローカルメモリ104のブロック626と628にそれぞれ記録する。
図4及び図5を参照すると、メインメモリ106からローカルメモリ104のフリースペース606に暗号化プログラムと公開鍵618を好適に読み込む(408)。好ましくは、暗号化プログラムと公開鍵618を使用してローカルメモリ104のデータ602が暗号化処理される(410)。好ましくは、スタック610も暗号化処理される(410)。暗号化プログラム自体も暗号化処理される。暗号化処理が行われたプログラム及びデータ(双方とも“モジュール”として周知である)612はシステムメモリ106に好適に保存される(412)。暗号化処理が行われたスタック614もシステムメモリ106に好適に保存される。好ましくは、ローカルメモリ104のヒープポインタ604とスタックポインタ608はメインメモリ106に保存される。メインメモリ106に保存されたポインタ604と608を組合わせたものは参照符号616で示される。好適には、各ポインタ604と608はメインメモリ106へ保存される前に暗号化処理はされない。しかし別の実施形態では、各ポインタ604と608はメインメモリ106へ保存される前に暗号化処理が行われ得る。アクション412が完了すると、メインメモリ106は残りのフリースペース620を有することになる。
アクション414では、プロセッサ102によって電力消費が減らされ、その結果、プロセッサ102を休止ステートにすることができる。一実施形態において、休止ステートでは、プロセッサ102の電力使用量はゼロもしくはゼロに近い。他の形態では、休止状態にされたプロセッサ102は、その電力消費レベルを、プロセッサ102の通常動作の電力レベルよりも低いレベルとするようにその電力量を変えるものとしてもよい。一実施形態では、休止ステートに入るよう選択したプロセッサに指示を出すエンティティは、所望の休止電力レベルを選択し、かつ、そのプロセッサが選択した休止電力レベルで休止状態にされるようにアクションを実施する。適切な“エンティティ”はプロセッサ102自体又は休止状態にされるプロセッサと通信するデバイスであり得る。
アクション416では、プロセッサのウェイクアップ条件が成立したか否かが判定される。この判定は、プロセッサ102の電力レベルに応じて、休止状態にあるプロセッサ102自体で行うか、もしくは、休止状態にされたプロセッサ102と通信する別のデバイスで行う。具体的には、休止状態のプロセッサ102への電源供給が完全に止まる場合には、好適には、このウェイクアップ条件は、休止状態にあるプロセッサ102以外のデバイスから検出される。他の形態では、休止状態のプロセッサ102の動作条件が、例えば、割込み信号の検出、もしくはシリアル又はパラレルデータ通信などの、(例えばゼロではない電源供給レベルによって)ある種の基本的通信動作が可能なものである場合には、休止状態にあるプロセッサ102自体がウェイクアップ条件を検出可能となる。
ある実施形態では、プロセッサ102内で発生中のイベントから、もしくは休止状態にされたプロセッサ102が配置されているコンピュータシステム内のその他の場所で発生中のイベントから、所定の時間が経過したことを契機として、プロセッサがレジューム状態になる。一実施形態では、プロセッサのウェイクアップ条件が成立するのは、休止状態のプロセッサ102と通信するプロセッサが、プロセッサのウェイクアップ条件の成立を示すプログラムチェックポイントなどのプログラム命令を受けた場合である。別の実施形態では、休止状態のプロセッサ102と通信する1以上の他のプロセッサに対する作業負荷レベル、もしくは休止状態にするプロセッサ102が配置されているコンピュータシステムに対する作業負荷レベルが特定のしきい値を上回ると、プロセッサのウェイクアップ条件が発生する(成立する)。
休止状態のプロセッサ102への電源供給が完全に止まるという実施形態においては、好適には、別のプロセッサ(“検出プロセッサ”)、もしくは休止状態にあるプロセッサ102と通信するその他の適切なデバイスが、プロセッサのウェイクアップ条件(の成立)を検出する。その後、休止状態にあるプロセッサ102への電源供給は元に戻り、その結果、休止状態にされたプロセッサ102をウェイキングアップさせる、つまり、復帰させる。好適には、復帰したプロセッサは、必要に応じて、従来の初期化処理を完了する。その後、検出プロセッサは好適には、復帰したプロセッサ102が休止ステートから既に復帰済みであることを、復帰したプロセッサ102へ伝え、この復帰したプロセッサ102をその次のアクションへと導く。好ましくはこの次のアクションは、以下に説明するアクション420である。復帰したプロセッサ102の状態は、割込み信号を送信することによって、バスシステムを経由してデータを送信することによって、もしくはその他の周知の通信手段によって、伝送される。ある実施形態では、復帰したプロセッサ102によって、複数の様々な割込み信号を用いて、一連の実行可能なポストウェイキング(post-wake-up)アクションを発生させる。
休止状態のプロセッサ102が、基本のプロセッサオペレーションを行うのに十分な電力レベルを備えているという実施形態では、プロセッサのウェイクアップ条件の成立を示すために、休止状態のプロセッサ102へ割込み信号が送られる。その後、次に実行するアクションは、復帰したプロセッサ102自体が選択する。他の形態では、外部デバイスが、レジューム状態のプロセッサを次に実行するアクションへと導く第2の割り込み信号を送るようにしてもよい。
アクション416へ戻ると、プロセッサを復帰させる条件が成立しない場合、好適には、休止状態にあるプロセッサ102が低電力もしくはゼロ電力レベルに維持される(418)。ウェイクアップ条件が成立すれば、プロセッサ102への動作電力供給が好適に再開される(420)。
図4及び6を参照すると、好ましくは、プロセッサ102は暗号化されたモジュール612、暗号化されたスタック614、及びポインタ(好ましくは、暗号化されていない)をメインメモリ106からローカルメモリ104へ転送する(422)。好適には、プロセッサ102も復号化プログラムとプライベートキー602を記録媒体110からローカルメモリ104に読み出す。本文においては、復号化プログラムと秘密鍵は参照符号602と総称される。好ましい実施形態では、記録媒体110は好適には揮発性ROMである。しかし、別の実施形態では、記録媒体110として信頼性の高いその他のメモリを用いることができる。
一般に、プロセッサ102は様々な条件ステートを実現するため、ステータス変更するように動作できる。これらの状態を簡単に紹介し、以下で更に詳細を説明する。第1の状態では、プロセッサ102は通常モードである。好ましくは、プロセッサ102は第2のステート(プロセッサ102はオペレーションのプロテクトモードである)へ遷移できるように動作できる。好ましくは、プロセッサ102は、プロセッサ102内に信頼できる復号化コードを呼び出して実行する第3の状態へと遷移するように動作できる。
本開示では、2つのプロテクトモードが考えられる。そのようなモードによって、プロセッサのローカルメモリ104を、プロセッサ102の外部メモリとの通信を不能とまでさせ得るレベル等の、さまざまなレベルのインシュレートレベル即ち隔離レベルが与えられる。このセクションで説明するモードは、セキュアモード、即ち安全モード、及び隔離モードである。
オペレーションの安全モードでは、プロセッサ102のローカルメモリ104(もしくはその他のメモリデバイス、レジスタなど)に記録されたデータに対して、リクエストがサービスされることはなく、従って、信頼できる環境が保証されてセンシティブオペレーションを実行することができる。安全モードであっても、プロセッサ102はシステムメモリ106からローカルメモリ104へのデータ転送を要求し、もしくは、ローカルメモリ104からシステムメモリ106へのデータ転送を要求し得る。更にまた、プロセッサ102は、オペレーションの安全モードにある間に、ソースもしくは宛先(アドレス)に関係なく、信頼できる環境の内外にデータ転送を開始する。好ましい実施形態では、オペレーションのプロテクトモードのうちの1つにある場合、信頼できる環境はプロセッサ102とそれに含まれるローカルメモリ104に限定される。
オペレーションの隔離モードでは、プロセッサ102、いずれの外部デバイス、のどちらも、プロセッサ102のローカルメモリ104の内外へデータ転送を開始しない。
好ましい実施形態では、暗号化プログラム及び/又は復号化プログラムなどの、全てのプログラムは、プロテクトモードのうちの1つのプロテクトモードに入る前にメインメモリ106及び/又は記録媒体110から読み出される。しかし別の実施形態では、オペレーションの安全モードが実行されると、プロセッサ102は記録媒体110からローカルメモリ104に解読プログラムを読み出す。好適には、信頼できる復号キーも記録媒体110内に記録され、また、後で使用するためにローカルメモリ104にも保存される。
好適には、プロセッサ102はアクション424においてプロテクトモードに入る。本文において先に説明しているように、このプロテクトモードは隔離モードもしくは安全モードのどちらでもよい。好ましいのは隔離モードであるが、別の実施形態では、安全モードを採用することができる。
好ましくは、プロセッサがプロテクトモードになった時点で、プロセッサ102はプライベートキーを使用して暗号化されたモジュール612を解読し(426)、解読した情報をローカルメモリ104に記録する。アクション428において、プロセッサ102は好適にプロテクトモードを出る。好適には、進行中のプログラム実行処理は、復帰したプロセッサにおいてレジュームされる(430)。
別の実施形態では、アクション406でポーズをかけられた進行中のプログラム実行処理は、アクション414で休止状態にされたプロセッサ以外のプロセッサでレジュームされ得る。好適には、他のプロセッサがアクション422から430までを実施し、進行中のプログラム実行処理をこの方法でレジュームする。“その他”のプロセッサ上でアクション420を実行する必要性は、他のプロセッサがアクション422の開始前にパワーアップもしくは休止状態にされるかによって決定する。
図7は本発明の1以上の形態によるプロセッサのデータ再配置処理を行うために実施され得る処理ステップを例示したフローチャートである。図8は本発明の1以上の形態による複数のプロセッサに対するプロセッサのデータ再配置処理の、データの保存部分及びデータの再配置部分を例示したブロック図である。以下の図7及び図8を参照しつつ、図7の処理ステップを説明する。図7の方法は図2のマルチプロセッサシステムの実施形態に関連して説明されるが、方法はこの実施形態に限定されない。
好ましくは、プロセスはアクション700から開始する。アクション702でプロセッサのデータ再配置条件が成立したかどうかが判断される。プロセッサのデータ再配置条件が成立していない場合は、プロセッサのオペレーションは継続する(704)。プロセッサのデータ再配置条件が成立すると、処理は継続する(706)。
好ましくは、プロセッサのデータ再配置条件は実行期間が終了したことを契機として成立する。実行期間は所定の継続時間を有しているのが望ましい。しかし、別の実施形態では、実行期間の継続時間はプロセッサ102による進行中のプログラム実行処理で決定される。好ましくは、実行期間中において、様々なプロセッサが、割込みを行うことなく、実行されているプログラムにアクセスできる。
一実施形態では、実行期間の継続時間はSPUのフレームレートに基づき定められる。好ましい一実施形態では、このフレームレートは16ミリセカンドごとに1フレームである。従って、実行期間の継続時間は16ミリセカンド(msecs)である。
一実施形態では、プロセッサ102はイメージをスクリーン上に表示するためのデータを用意する。このスクリーン上に連続する各イメージは“フレーム”であり、またフレームが処理されスクリーン上に表示される速度は“フレームレート”である。一般的に、プロセッサ102を割込まずにシングルフレームの完成に必要な処理を終えることが望ましいことから、プロセッサ102がシングルフレームを完成するのに必要な時間は、有効で便利な実行期間の継続時間に対応する。しかし別の実施形態では、複数のフレーム処理時間に等しい実行時間の継続期間を採用することができる。その他の実施形態では、フレームの処理時間よりも短い実行期間の継続時間を採用することができる。
その他の実施形態では、連続するプロセッサのデータ再配置処理の分割期間は、当然のことながら様々なフレームレートに一致するように調整され得る。更に、その他の別の実施形態では、実行期間はプロセッサのデータ再配置を行っている1以上のSPUのフレームレートよりも短い又は長い継続時間を有することができる。
好ましい実施形態では、プロセッサの実行期間の継続時間はプロセッサ102の1以上の特徴に基づき定められる。実行期間を決定するための最も重要な2つの特徴とは、温度上昇速度(プロセッサ102の温度が上昇する速度であり、温度は1秒ごとに測定される)及び、“臨界温度上昇時間”(温度上昇速度の関数)、である。“臨界温度上昇時間”は、プロセッサ102が通常の動作温度から臨界点にまで昇温する間の時間である。好適には、プロセッサの温度を常にその温度よりも低く維持し、かつ、プロセッサの温度がその温度よりも高くなってはならない、という温度が臨界点である。臨界温度上昇時間とは、高需要のアプリケーションプログラムの実行する際に、プロセッサが通常の動作温度から臨界点にまで上昇するために必要な時間である。求められるアプリケーションプログラムの電力要件は変化し得ることから、臨界温度上昇時間の継続時間は範囲内で変化し得る。
一般に、実行期間は、プロセッサのデータ再配置処理を行うプロセッサ間で電力消費が平均化するというまでに短いものとなっている。一実施形態では、実行期間は臨界温度上昇時間の50%未満である。別の実施形態では、実行期間は臨界温度上昇時間の35%以上、50%以下である。更に別の実施形態では、実行期間は臨界温度上昇時間の20%以上、35%以下である。更に別の実施形態では、実行期間は臨界温度上昇時間の10%以上、20%以下である。更にまた別の実施形態では、実行期間はプロセッサ102の臨界温度上昇時間の10%以下である。しかし、本発明は実行期間について上述した特定範囲の継続時間に限定されない。
他の実施形態では、プロセッサのデータ再配置条件は、SPUが配置されているコンピュータシステム、もしくは1つ以上のSPUと通信するコンピュータシステム内でイベントが発生するといった、特定期間が終了すること以外で成立し得る。例えば、特定のしきい値を超過している(プロセッサもしくはコンピュータシステム全体の)ワークロードレベルは、プロセッサのデータ再配置条件を成立させることができる。他の実施形態では、特定のしきい値を上回る(SPU又はコンピュータシステムのその他の場所の)テストポイント温度などの温度条件が採用され、プロセッサのデータ再配置条件を発生させる(成立させる)。
SPU102のDMAC(図示せず)は好ましくは同期化される(706)。好適には、SPU102のオペレーションにポーズがかけられる(708)、SPU102にポーズをかけるステップには、全てのダイレクトメモリアクセスメモリオペレーションを終了させ、また、進行中のプログラム実行処理を停止させるステップを含む。
好ましくは、SPU102は暗号化プログラムと関連の公開鍵を各々のローカルメモリに読み込む(710)。好ましくは、シングルマルチプロセッサシステム100A内のSPU102は共通の公開鍵と共通の秘密鍵を用いる。しかし、別の実施形態では、マルチプロセッサシステム内の別のSPUは異なる公開鍵/秘密鍵のペアを用いることができる。特定のローカルメモリ104xのコンテンツが異なるマルチプロセッサシステム上のプロセッサのローカルメモリに再配置される場合、宛先マルチプロセッサシステムの公開鍵はそのローカルメモリ104xの中に読み込まれる必要がある。
各々のローカルメモリのデータは記録された公開鍵を用いて好適に暗号化される(712)。暗号化されたデータはシステムメモリ106へ保存される(714)。図8を参照すると、4つのローカルメモリ、104A−104D(LM0−LM3)からのデータはデータ転送800、804、808、及び812によって、システムメモリ106に保存される。データ転送矢印の上に示されている符号に関して、“S”は保存(Save)を、“L”は読み込み(Load)を、“D”はデータ(Data)を示し、文字“D”に続く数字はデータが発生するローカルメモリの番号を識別する。従って、“S(D1)”804はローカルメモリ1 104Bからシステムメモリ106へのデータ保存を識別する。またL(D1)806は、ローカルメモリ2 104Cにローカルメモリ1から発生するデータの読み込みを行うことを識別する。
各々のローカルメモリ104A−104Dから発生するデータのために宛先プロセッサが指定される(716)。本セクションで議論する“指定(designating)”アクションは、アクション722において“読み出し”を行う前の任意の時点で行うことができる。一実施形態ではアクション716において、指定アクションを実施するために用いられるプロセッサのデータ再配置スキームは、多数の連続するプロセッサデータ再配置処理用に固定される。他の形態では、このスキームはそれぞれのプロセッサのデータ再配置処理用に、別々に選択される。
図8のブロック図はデータの送信元のプロセッサから宛先プロセッサへデータ転送をマッピングする、1つの利用可能なプロセッサのデータ再配置スキーム(又は“再配置パターン”)を例示している。しかし、別の実施形態では、多くの他のプロセッサのデータ再配置スキームが実装され得る。
図8に例示した実施形態では、4つのSPUの各ローカルメモリ104A−104Dが示されている。各々のローカルメモリからシステムメモリ106へデータを移動させる4つの“保存”動作800、804、808、及び812が示されている。4つの“読み出し”動作802、806、810、及び814も示されている。本実施形態では、プロセッサのデータ再配置スキームにおいて、送信元のローカルメモリの識別番号を単に1つ増やす。当然のことながら、最も数字の大きなローカルメモリから発生するデータは除く。最も数字の大きなローカルメモリから発生するプロセッサのデータは最終的に、最も数字の小さなローカルメモリであるローカルメモリ0 104Aに記録される。この再配置スキームは“4を法として”ローテーションを行う、として周知である。このプロセッサのデータ再配置パターンはマルチプロセッサシステムの一実施形態で見つけられる8つのプロセッサなどの、多数のプロセッサに簡単に応用することができる。従ってこの場合、“8を法として”ローテーションを行う、ことができる。更に、n−SPU(“n”はSPUの数である)マルチプロセッサシステムが関係する場合、プロセッサのデータ再配置処理は全てのSPU上で同時に実施される、もしくはこのマルチプロセッサシステム内の1以上のSPUの任意のサブセット上で実施される。シングルプロセッサだけにデータが転送されるという最も単純な場合、プロセッサのデータ再配置スキームはこのシングルプロセッサからメインメモリへデータ保存し、続いてこの保存したデータをもとのシングルプロセッサへ転送する、というスキームになる。
別の実施形態では、各プロセッサ内の単一命令複数データ(SIMD:single instruction, multiple data)パイプラインの各タスクは、各プロセッサ内で4を法としてローテーションを行い、各プロセッサ内でどのようなホットスポットも生成されないようにする。その他の実施形態では、所与のプロセッサ内の各パイプラインからのデータの再配置処理は、4を法としたスキーム以外のスキームによって行われる。このようにして、好ましくはパイプラインデータ再配置処理によって、様々なパイプラインの間に電力消費の平均化が実現される。
ローカルメモリ104A−104Dのうちの1つから発生するデータの読み出しを行う各オペレーションのために、送信元のSPUとは異なるマルチプロセッサシステムに配置されるSPU上に宛先ローカルメモリが存在するかどうか好適に判断される(718)。宛先SPUが送信元のSPUと同じマルチプロセッサシステム上に存在する場合、処理を好適に継続する。(722)。宛先SPUと送信元のSPUが別々のマルチプロセッサシステム上に存在する場合、送信元のマルチプロセッサシステム上のメインメモリ106のデータは、好適には宛先マルチプロセッサシステム上のメインメモリへダンプされ、もしくはコピーされる(720)。好ましくは、このメインメモリデータ転送は、送信元マルチプロセッサシステムの送信元SPU上で実行する前に実行中のオペレーションをサポートするために必要とされる、送信元のマルチプロセッサシステムのメインメモリ106に元々配置されていたプログラムとデータが、必要に応じて宛先マルチプロセッサの宛先SPUで利用できることが確実となるように実装される。
ローカルメモリ104A−104Dから保存されたデータは好ましくは各々の宛先SPUのローカルメモリに読み込まれる(722)。
以下に本明細書で説明している1つ以上の特徴を実施するのに適した、マルチプロセッサシステムのための好ましいコンピュータアーキテクチャを説明する。1つ以上の実施形態によれば、マルチプロセッサシステムは、ゲームシステム、家庭用端末、PCシステム、サーバーシステム、及びワークステーションなどのメディアリッチアプリケーションを、スタンドアローン処理、及び/又は分散処理するために動作することができる、シングルチップソリューションとして実装されうる。ゲームシステムや家庭用端末などのいくつかのアプリケーションでは、リアルタイムの演算処理は必須である。例えば、リアルタイムの分散ゲームアプリケーションでは、ユーザーにリアルタイムの経験をしていると思わせる程速く、1つ以上のネットワークイメージの復元、3Dコンピュータグラフィック、オーディオ生成、ネットワーク通信、物理的シミュレーション、及び人工知能処理が実行される必要がある。従って、マルチプロセッサシステムの各プロセッサは、短時間で、かつ予測可能時間でタスクを完了する必要がある。
このために、また、本コンピュータアーキテクチャによれば、マルチプロセッシングコンピュータシステムの全プロセッサは、共通の演算モジュール(あるいはセル)から構成される。この共通の演算モジュールは、構造が一貫しており、また好ましくは、同じ命令セットアーキテクチャを採用している。マルチプロセッサコンピュータシステムは、1つ以上のクライアント、サーバー、PC、モバイルコンピュータ、ゲームマシン、PDA、セットトップボックス、電気器具、デジタルテレビ、及びコンピュータプロセッサを使用する他のデバイスから形成されうる。
複数のコンピュータシステムもまた、所望に応じてネットワークのメンバーとなりうる。一貫モジュール構造により、マルチプロセッシングコンピュータシステムによるアプリケーション及びデータの効率的高速処理が可能になる。またネットワークが採用される場合は、ネットワーク上にアプリケーション及びデータの高速送信が可能にする。この構造はまた、大きさや処理能力が様々なネットワークのメンバーの構築を単純化し、また、これらのメンバーが処理するアプリケーションの準備を単純化する。
図9を参照すると、基本的な処理モジュールはプロセッサエレメント(PE)500である。PE500はI/Oインターフェース502、プロセッシングユニット(PU)504、及び複数のサブプロセッシングユニット508、すなわち、サブプロセッシングユニット508A、サブプロセッシングユニット508B、サブプロセッシングユニット508C、及びサブプロセッシングユニット508Dを備えている。ローカル(あるいは内部)PEバス512は、データ及びアプリケーションを、PU504、サブプロセッシングユニット508、及びメモリインターフェース511間に送信する。ローカルPEバス512は、例えば従来のアーキテクチャを備えることができ、又は、パケット−スイッチネットワークとして実装されうる。パケットスイッチネットワークとして実装される場合は、更なるハードウェアが必要であるものの、利用可能な帯域幅を増やす。
PE500はデジタル論理回路を実装するよう様々な方法を用いて構成されうる。しかしながら、好ましくは、PE500はシリコン基板に相補性金属酸化膜半導体(CMOS:Complementary Metal Oxide Semiconductor)を用いた単一の集積回路とすることも好適な構成である。基板の他の材料には、ガリウムヒ素、ガリウムアルミウムヒ素、及び、様々なドーパントを採用している他の、いわゆる、III−B化合物を含む。PE500はまた、高速単一磁束量子(RSFQ:Rapid Single-flux-Quantum)論理回路などの超電導デバイスを用いて実装されうる。
PE500は高帯域のメモリ接続516を介して、共有(メイン)メモリ514と密接に結合するよう構成できる。好ましくは、メモリ514はダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)であるが、メモリ514は例えば、スタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)、磁気ランダムアクセスメモリ(MRAM:Magnetic Random Access Memory)、光メモリ、ホログラフィックメモリなどとして、他の方法を用いて実装されうる。
PU504とサブプロセッシングユニット508は好ましくは、それぞれダイレクトメモリアクセス(DMA)の機能を備えたメモリフローコントローラ(MFC:Memory Flow Controller)と結合されており、該コントローラはメモリインターフェース511と共に、PE500のDRAM514とサブプロセッシングユニット508、PU504間のデータ転送を促進する。DMAC及び/又はメモリインターフェース511は、サブプロセッシングユニット508及びPU504に一体化して、別個に配置されうる。更に、DMACの機能及び/又はメモリインターフェース511の機能は、1つ以上の(好ましくは全ての)サブプロセッシングユニット508及びPU504に統合することができる。また、DRAM514はPE500と統合されていても、別個に配置されていてもよいことに留意されたい。例えば、DRAM514は、実例で示しているように、チップ外に配置しても、あるいは一体化してオンチップ配置としてもよい。
PU504はデータ及びアプリケーションをスタンドアローン処理できる標準プロセッサなどでありうる。作動時、PU504は、好ましくは、サブプロセッシングユニットによるデータ及びアプリケーション処理をスケジューリングし、調整を行う。サブプロセッシングユニットは好ましくは、単一命令複数データ(SIMD:Single Instruction Multiple Data)プロセッサである。PU504の管理下、サブプロセッシングユニットは並列で、かつ独立して、これらのデータ及びアプリケーション処理を行う。PU504は好ましくは、RISC(Reduced Instruction Set Computing)技術を採用しているマイクロプロセッサアーキテクチャであるパワーPC(PowerPC)コアを用いて実装される。RISCは、単純な命令の組合せを用いて、より複雑な命令を実行する。従って、プロセッサのタイミングは、単純で高速の動作に基づくものであり、マイクロプロセッサがより多くの命令を所定のクロック速度で実行できるようにする。
PU504はサブプロセッシングユニット508により、データ及びアプリケーション処理をスケジューリングし調整を行う、メインプロセッシングユニットの役割を果たしているサブプロセッシングユニット508のうちの、1つのサブプロセッシングユニットにより実装されうる。更に、プロセッサエレメント500内には1つ以上の実装されたPUが存在しうる。
本モジュール構造によれば、特定のコンピュータシステムにおけるPE500の数は、そのシステムが要求する処理能力に基づく。例えば、サーバーにおけるPE500の数は4、ワークステーションにおけるPE500の数は2、PDAにおけるPE500の数は1とすることができる。特定のソフトウェアセルの処理に割当てられるPE500のサブプロセッシングユニット数は、セル内のプログラムやデータの複雑度や規模により決定される。
図10は、サブプロセッシングユニット(SPU)508の好ましい構造および機能を例示する。SPU508アーキテクチャは好ましくは、多目的プロセッサ(平均して高性能を広範なアプリケーションに実現するように設計されているもの)と、特殊目的プロセッサ(高性能を単一のアプリケーションに実現するように設計されているもの)間の間隙を埋める。SPU508は、ゲームアプリケーション、メディアアプリケーション、ブロードバンドシステムなどに高性能を実現するように、また、リアルタイムアプリケーションのプログラマーに高度な制御を提供するように設計される。SPU508は、グラフィックジオメトリーパイプライン、サーフェースサブディビジョン、高速フーリエ変換、画像処理キーワード、ストリームプロセッシング、MPEGのエンコード/デコード、暗号化、復号化、デバイスドライバの拡張、モデリング、ゲーム物理学、コンテンツ制作、音響合成及び処理が可能である。
サブプロセッシングユニット508は2つの基本機能ユニットを有し、それらはSPUコア510A及びメモリフローコントローラ(MFC)510Bである。SPUコア510Aはプログラムの実行、データ操作、などを行い、一方でMFC510BはシステムのSPUコア510AとDRAM514の間のデータ転送に関連する関数を実施する。
SPUコア510Aはローカルメモリ550、命令ユニット(IU:Instruction Unit)552、レジスタ554、1つ以上の浮動小数点実行ステージ556、及び1つ以上の固定小数点実行ステージ558を有している。ローカルメモリ550は好ましくは、SRAMなどの、シングルポートのランダムメモリアクセスを用いて実装される。殆どのプロセッサはキャッシュの導入により、メモリへのレイテンシを小さくする一方で、SPUコア510Aはキャッシュより小さいローカルメモリ550を実装している。更に、リアルタイムアプリケーション(及び本明細書に述べているように、他のアプリケーション)のプログラマーたちに一貫した、予測可能なメモリアクセスレイテンシを提供するため、SPU508A内のキャッシュメモリアーキテクチャは好ましくない。キャッシュメモリのキャッシュヒット/ミスという特徴のために、数サイクルから数百サイクルまでの、予測困難なメモリアクセス時間が生じる。そのような予測困難性により、例えばリアルタイムアプリケーションのプログラミングに望ましい、アクセス時間の予測可能性が低下する。DMA転送をデータの演算処理にオーバーラップさせることで、ローカルメモリSRAM550においてレイテンシの隠蔽を実現しうる。これにより、リアルタイムアプリケーションのプログラミングが制御しやすくなる。DMAの転送に関連するレイテンシと命令のオーバーヘッドが、キャッシュミスにサービスしているレイテンシのオーバーヘッドを超過していることから、DMAの転送サイズが十分に大きく、十分に予測可能な場合(例えば、データが必要とされる前にDMAコマンドが発行される場合)に、このSRAMのローカルメモリ手法による利点が得られる。
サブプロセッシングユニット508のうちの、所定の1つのサブプロセッシングユニット上で実行しているプログラムは、ローカルアドレスを使用している関連のローカルメモリ550を参照する。しかしながら、ローカルメモリ550のそれぞれの場所はまた、システムのメモリマップ全体内に実アドレス(RA:Real Address)も割当てられる。これにより、プリビレッジソフトウェア(Privilege Software)はローカルメモリ550をプロセスの有効アドレス(EA:Effective Address)にマッピングする、ローカルメモリ550と別のローカルメモリ550間のDMA転送を促進する。PU504はまた、有効アドレスを用いてローカルメモリ550に直接アクセスすることができる。好ましい実施形態では、ローカルメモリ550は556キロバイトのストレージを有し、またレジスタ552の容量は128×128ビットである。
SPUコア504Aは、好ましくは、論理命令がパイプライン式で処理される、プロセッシングパイプラインを用いて実装される。パイプラインは命令が処理される任意の数のステージに分けられうるが、一般にパイプラインは1つ以上の命令のフェッチ、命令のデコード、命令間の依存性チェック、命令の発行、及び、命令の実行ステップを有している。これに関連して、IU552は命令バッファ、命令デコード回路、依存性チェック回路、及び命令発行回路、を有する。
命令バッファは、好ましくは、ローカルメモリ550と結合され、また、フェッチされる際に一時的に命令を格納するよう動作できる、複数のレジスタを備えている。命令バッファは好ましくは、全ての命令が一つのグループとしてレジスタから出て行く、つまり、実質的に同時に出て行くように動作する。命令バッファはいずれの大きさでありうるが、好ましくは、2あるいは3レジスタよりは大きくないサイズである。
一般に、デコード回路は命令を分解し、対応する命令の関数を実施する論理的マイクロオペレーションを生成する。例えば、論理的マイクロオペレーションは、算術論理演算、ローカルメモリ550へのロード及びストアオペレーション、レジスタソースオペランド、及び/又は即値データオペランドを特定しうる。デコード回路はまた、ターゲットレジスタアドレス、構造リソース、機能ユニット、及び/又はバスなど、命令がどのリソースを使用するかを示しうる。デコード回路はまた、リソースが要求される命令パイプラインステージを例示した情報を与えることができる。命令デコード回路は好ましくは、命令バッファのレジスタ数に等しい数の命令を実質的に同時にデコードするように動作する。
依存性チェック回路は、所定の命令のオペランドがパイプラインの他の命令のオペランドに依存しているかどうかを判断するために試験を行う、デジタル論理回路を含む。その場合、所定の命令はそのような他のオペランドが(例えば、他の命令が実行の完了を許容することにより)アップデートされるまで、実行されることができない。依存性チェック回路は好ましくは、デコーダー回路112から同時に送られる複数の命令の依存性を判断する。
命令発行回路は浮動小数点実行ステージ556、及び/または固定小数点実行ステージ558へ命令を発行するように動作することができる。
レジスタ554は好ましくは、128エントリのレジスタファイルなどの、相対的に大きな統一レジスタファイルとして実装される。これにより、レジスタが足りなくなる状態を回避するよう、レジスタリネーミングを必要としない、深くパイプライン化された高周波数の実装品が可能になる。一般に、リネーミング用ハードウェアは、処理システムのかなりの割合の領域と電力を消費する。その結果、ソフトウェアのループ展開、又は他のインターリーブ技術によりレイテンシがカバーされると、最新のオペレーションが実現されうる。
好ましくは、SPUコア510Aはスーパースカラアーキテクチャであり、これにより1つ以上の命令がクロックサイクル毎に発行される。SPUコア510Aは好ましくは、命令バッファから送られる同時命令の数、例えば2〜3命令(各クロックサイクル毎に2命令あるいは3命令が発行されることを意味する)に対応する程度まで、スーパースカラとして動作する。所望の処理能力に応じて、多数の、あるいは少数の浮動小数点実行ステージ556と、固定小数点実行ステージ558が採用される。好ましい実施形態では、浮動小数点実行ステージ556は1秒あたり320億の浮動小数点演算速度で演算し(32GFLOPS)、また、固定小数点実行ステージ558は演算速度が1秒あたり320億回(32GOPS)となっている。
MFC510Bは、好ましくは、バスインターフェースユニット(BIU:Bus Interface Unit)564、メモリ管理ユニット(MMU:Memory Management Unit)562、及びダイレクトメモリアクセスコントローラ(DMAC:Direct Memory Access Controller)560を備えている。DMAC560は例外として、MFC510Bは好ましくは、低電力化設計とするため、SPUコア510Aやバス512と比べて半分の周波数で(半分の速度で)実行する。MFC510Bはバス512からSPU508に入力されるデータや命令を処理するように動作することができ、DMACに対しアドレス変換を行い、また、データコヒーレンシーに対しスヌープオペレーションを提供する。BIU564はバス512とMMU562及びDMAC560間にインターフェースを提供する。従って、SPU508(SPUコア510A及びMFC510Bを含む)及びDMAC560は、バス512と物理的に、及び/又は論理的に結合されている。
MMU562は、好ましくは、メモリアクセスのために、実アドレスに有効アドレスを変換するように動作することができる。例えば、MMU562は、有効アドレスの上位ビットを実アドレスビットに変換しうる。しかしながら下位のアドレスビットは好ましくは変換不能であり、また、実アドレスの形成及びメモリへのアクセスリクエストに使用する場合には、ともに論理的及び物理的なものと考えられる。1つ以上の実施形態では、MMU562は、64ビットのメモリ管理モデルに基づいて実装され、また、4K−、64K−、1M−、及び16M−バイトのページサイズを有する264バイトの有効アドレススペースと、256MBのセグメントサイズを提供しうる。MMU562は好ましくは、DMAコマンドに対し、265バイトまでの仮想メモリ、242バイト(4テラバイト)までの物理メモリをサポートするように動作することができる。MMU562のハードウェアは、8−エントリでフルアソシアティブのSLBと、256−エントリと、4ウエイセットアソシアティブのTLBと、TLBに対してハードウェアTLBのミスハンドリングに使用される4×4リプレースメント管理テーブル(RMT:Replacement Management Table)と、を含む。
DMAC560は、好ましくは、SPUコア510Aや、PU504、及び/又は他のSPUなどの、1つ以上の他のデバイスからのDMAコマンドを管理するように動作することができる。DMAコマンドには3つのカテゴリが存在し、それらは、プットコマンド、ゲットコマンド、及びストレージ制御コマンドである。プットコマンドは、ローカルメモリ550から共有メモリ514へデータを移動させるよう動作する。ゲットコマンドは、共有メモリ514からローカルメモリ550へデータを移動させるよう動作する。また、ストレージ制御コマンドには、SLIコマンドと同期化コマンドが含まれる。この同期化コマンドは、アトミックコマンド(atomic command)、信号送信コマンド、及び専用バリアコマンドを有しうる。DMAコマンドに応答して、MMU562は有効アドレスを実アドレスに変換し、実アドレスはBIU564へ送られる。
SPUコア510Aは、好ましくは、DMAC560内のインターフェースと通信(DMAコマンド、ステータスなどを送る)するために、チャネルインターフェース及びデータインターフェースを使用する。SPUコア510Aはチャネルインターフェースを介して、DMAC560のDMAキューへDMAコマンドを送る。DMAコマンドがDMAキューに存在すると、そのコマンドはDMAC560内の発行及び完了論理により処理される。DMAコマンドに対する全てのバストランザクションが終了すると、完了信号がチャネルインターフェースを越えて、SPUコア510Aへ送られる。
図11はPU504の一般的な構造及び機能を例示している。PU504は2つの機能ユニットを有しており、それらはPUコア504Aとメモリフローコントローラ(MFC)504Bである。PUコア504Aは、プログラム実行、データ操作、マルチプロセッサマネージメント関数などを実施し、一方でMFC504Bはシステム100のPUコア504Aとメモリスペース間のデータ転送に関連する機能を実行する。
PUコア504AはL1キャッシュ570、命令ユニット572、レジスタ574、1つ以上の浮動小数点実行ステージ576、及び1つ以上の固定小数点実行ステージ578を有することができる。L1キャッシュは、共有メモリ106、プロセッサ102、又はMFC504Bを介してメモリスペースの他の部分、から受信したデータに対するデータキャッシングの機能を提供する。PUコア504Aが好ましくはスーパーパイプラインとして実装されるので、命令ユニット572は好ましくは、フェッチ、デコード、依存性チェック、発行、などを含む、多くのステージを備えた命令パイプラインとして実装される。PUコア504はまた好ましくは、スーパースカラ構成であり、一方で1つ以上の命令がクロックサイクル毎に命令ユニット572から発行される。高度な処理(演算)能力を実現するために、浮動小数点実行ステージ576と固定小数点実行ステージ578は、パイプライン構成で複数のステージを有する。所望の処理能力に応じて、多数の、あるいは少数の浮動小数点実行ステージ576と、固定小数点実行ステージ578が採用される。
MFC504Bは、バスインターフェースユニット(BIU)580、L2キャッシュメモリ、キャッシュ不可能なユニット(NCU:Non-Cachable Unit)584、コアインターフェースユニット(CIU:Core Interface Unit)586、及びメモリ管理ユニット(MMU)588を備えている。殆どのMFC504Bは、低電力化設計とするために、PUコア504Aとバス108と比べて、半分の周波数(半分の速度)で実行する。
BIU580はバス108とL2キャッシュ582とNCU584論理ブロック間にインターフェースを提供する。このために、BIU580はバス108上で、十分にコヒーレントなメモリオペレーションを実施するために、マスタデバイスとして、また同様にスレーブデバイスとして機能する。マスタデバイスとして、BIU580はL2キャッシュ582とNCU584のために機能するため、バス108へロード/ストアリクエストを供給する。BIU580はまた、バス108へ送信されうるコマンドの合計数を制限するコマンドに対し、フロー制御機構を実装しうる。バス108のデータオペレーションは、8ビート要するように設計され、そのために、BIU580は好ましくは128バイトキャッシュラインを有するように設計され、また、コヒーレンシーと同期化の粒度単位は128KBである。
L2キャッシュメモリ582(及びサポートハードウェア論理回路)は、好ましくは、512KBのデータをキャッシュするように設計されている。例えば、L2キャッシュ582はキャッシュ可能なロード/ストア、データプリフェッチ、命令プリフェッチ、命令プリフェッチ、キャッシュオペレーション、及びバリアオペレーションを処理しうる。L2キャッシュ582は好ましくは8ウエイのセットアソシアティブシステムである。L2キャッシュ582は6つのキャストアウトキュー(6つのRCマシンなど)と一致する6つのリロードキューと、8つ(64バイト幅)のストアキューを備えうる。L2キャッシュ582はL1キャッシュ570において、一部の、あるいは全てのデータのコピーをバックアップするように動作しうる。この点は、処理ノードがホットスワップである場合に状態を回復するのに便利である。この構成により、L1キャッシュ570が少ないポート数でより速く動作することができ、また、より速くキャッシュツーキャッシュ転送ができる(リクエストがL2キャッシュ582でストップしうるため)。この構成はまた、キャッシュコヒーレンシー管理をL2キャッシュメモリ582へ送るための機構も提供しうる。
NCU584は、CIU586、L2キャッシュメモリ582、及びBIU580と連動しており、通常は、PUコア504Aとメモリシステム間のキャッシュ不可能なオペレーションに対して、キューイング/バッファリング回路として機能する。NCU584は好ましくは、キャッシュ抑制ロード/ストア、バリアオペレーション、及びキャッシュコヒーレンシーオペレーションなどの、L2キャッシュ582により処理されないPUコア504Aとの全ての通信を処理する。NCU584は好ましくは、上述の低電力化目的を満たすように、半分の速度で実行されうる。
CIU586は、MFC504BとPUコア504Aの境界に配置され、実行ステージ576、578、命令ユニット572、及びMMUユニット588からのリクエストに対し、また、L2キャッシュ582及びNCU584へのリクエストに対し、ルーティング、アービトレーション、及びフロー制御ポイントして機能する。PUコア504A及びMMU588は好ましくはフルスピードで実行され、一方でL2キャッシュ582及びNCU584は2:1の速度比で動作することができる。従って、周波数の境界がCIU586に存在し、その機能の一つは、2つの周波数ドメイン間でリクエストの送信及びデータのリロードを行いながら、周波数の差を適切に処理することである。
CIU586は3つの機能ブロックを有しており、それらは、ロードユニット、ストアユニット、及びリロードユニットである。更に、データプリフェッチ関数がCIU586により実施され、また好ましくは、ロードユニットの機能部である。CIU586は、好ましくは、
(i)PUコア504AとMMU588からのロード及びストアリクエストを受ける、
(ii)フルスピードのクロック周波数をハーフスピードに変換する(2:1のクロック周波数変換)、
(iii)キャッシュ可能なリクエストをL2キャッシュ582へ送り、キャッシュ不可能なリクエストをNCU584へ送る、
(iv)L2キャッシュ582に対するリクエストとNCU584に対するリクエストを公正に調停する、
(v)ターゲットウインドウでリクエストが受信されてオーバーフローが回避されるように、L2キャッシュ582とNCU584に対する転送のフロー制御を提供する、
(vi)ロードリターンデータを受信し、そのデータを実行ステージ576、578、命令ユニット572、又はMMU588へ送る、
(vii)スヌープリクエストを実行ステージ576、578、命令ユニット572、又はMMU588へ送る、
(viii)ロードリターンデータとスヌープトラフィックを、ハーフスピードからフルスピードへ変換する、
ように動作可能である。
MMU588は、好ましくはPUコア540Aに対して、第2レベルのアドレス変換機能などによりアドレス変換を行う。第1レベルの変換は好ましくは、MMU588よりも小型で高速でありうる、別々の命令及びデータERAT(Effective to Real Address Translation)配列により、PUコア504Aにおいて提供されうる。
好ましい実施形態では、PUコア504は、64ビットの実装品で、4−6GHz、10F04で動作する。レジスタは好ましくは64ビット長(1つ以上の特殊用途のレジスタは小型でありうるが)であり、また、有効アドレスは64ビット長である。命令ユニット572、レジスタ574、及び実行ステージ576と578は好ましくは、(RISC)演算技術を実現するために、PowerPC技術を用いて実装される。
本コンピュータシステムのモジュール構造に関する更なる詳細は、米国特許第6,526,491号に解説されており、この特許は参照として本願に組込まれる。
本発明の少なくとも1つの更なる態様によれば、上述の方法及び装置は、図面において例示しているような、適切なハードウェアを利用して実現されうる。この種のハードウェアは、公知の技術のいずれかを用いて実装することができる。この例には、標準的なデジタル回路、ソフトウェアプログラムおよび/またはファームウェアプログラムを実行するように動作可能な公知のプロセッサのいずれか、プログラマブル読出し専用メモリ(PROM)、プログラマブル配列ロジックデバイス(PAL)などの、1つ以上のプログラム可能なデジタル装置またはシステムなどがある。更に、図示している装置は、特定の機能ブロックに分割されて示されているが、そのようなブロックは別々の回路を用いて、及び/あるいは1つ以上の機能ユニットに組み合わせて実装されうる。更に、本発明の様々な態様は、輸送及び/又は配布のために、(フロッピーディスク、メモリチップ、などの)適切な記憶媒体に格納されうる、ソフトウェア、及び/又はファームウェアプログラムを通じて実装されうる。
本明細書において、具体的な実施形態を用いて本発明を記載したが、これらの実施形態は、本発明の原理および利用の例を示すものに過ぎないことを理解されたい。このため、添付の請求の範囲に記載した本発明の趣旨および範囲から逸脱することなく、これら例示的な実施形態を種々に変更したり、上記以外の構成を考案し得ることが理解されよう。
本発明の1つ以上の態様により適しうる処理システムを例示しているブロック図。 本発明の1つ以上の態様により使用されうるサブプロセッサ(SPU)を2つ以上有するマルチプロセッサシステムの構造を例示した説明図。 本発明の1つ以上の態様により使用されうる図2の複数のマルチプロセッシングシステム(もしくは“マルチプロセッサシステム”)を含むコンピュータシステムのブロック図。 本発明の1つ以上の態様によるハイバネーション処理とプロセッサの復帰動作処理に関連して実施されうる処理ステップを例示しているフローチャートの第1部の説明図。 本発明の1つ以上の態様により実施されうる処理ステップを例示した図4Aに示すフローチャートの第2部の説明図。 本発明の1つ以上の態様によるハイバネーション処理中のデータ処理を例示しているブロック図。 本発明の1つ以上の態様によるハイバネーションステートからプロセッサの復帰動作処理中のデータ処理を例示しているブロック図。 本発明の1つ以上の態様によるプロセッサのデータ再配置処理を行うために実施されうる処理ステップを例示しているフローチャート。 本発明の1つ以上の態様による複数のプロセッサに対してプロセッサのデータ再配置処理のデータ保存とデータ回復部を例示しているブロック図。 本発明の1つ以上の更なる態様の実装に使用されうる好適なプロセッサエレメント(PE)を例示した説明図。 本発明の1つ以上の更なる態様により適しうる、図9の一般的なサブプロセッシングユニット(SPU)の構造を例示した説明図。 本発明の1つ以上の更なる態様により適しうる、図9の一般的なプロセッシングユニット(PU)の構造を例示した説明図。
符号の説明
102 プロセッサ
104 ローカルメモリ
106 メモリ
108 バス
110 記録媒体
112 デコーダー回路
500 プロセッサエレメント
502 インターフェース
504 コア
508 サブプロセッシングユニット
511 メモリインターフェース
512 バス
514 メモリ
550 ローカルメモリ
552、554 レジスタ
570 キャッシュ
572 命令ユニット
574 レジスタ
582 キャッシュメモリ
604 ヒープポインタ

Claims (25)

  1. (i)少なくとも1つのプロセッサで実行中のプログラムにおけるチェックポイント命令と、
    (ii)所定の実行期間の終了と、
    のうちの少なくとも1つが発生すると、マルチプロセッサシステム内の前記少なくとも1つのプロセッサのオペレーションにポーズをかけるステップと、
    前記少なくとも1つのプロセッサのローカルメモリから前記マルチプロセッサシステムのメインメモリにデータを保存するステップと、
    前記メインメモリから前記マルチプロセッサシステムの他のプロセッサのローカルメモリへ前記保存したデータを転送するステップと、
    前記他のプロセッサでプログラムの実行処理をレジュームするステップと、を有する方法。
  2. 前記複数のプロセッサ間に電力消費が分散されるように、前記マルチプロセッサシステムの複数のプロセッサ間で前記ポーズをかけるステップ、保存ステップ、転送ステップ、及びレジュームステップを繰り返すステップを更に有する、請求項1記載の方法。
  3. 前記実行期間は、
    ビデオフレームレートに実質的に等しい期間、
    約16ミリセカンド、及び、
    前記プロセッサの温度上昇時間よりも実質的に短い期間、
    のうちの少なくとも1つである、請求項1記載の方法。
  4. 前記複数のプロセッサ間にプロセッサのデータ再配置スキームを構築して、これにより、各プロセッサを、(i)前記保存したデータの転送先でかつレジューム実行先となる宛先プロセッサ、及び(ii)レジューム処理が実行される前記保存したデータの転送元でかつレジューム実行元となる送信元プロセッサ、として決定するステップを更に有する、請求項1記載の方法。
  5. 前記プロセッサのデータ再配置スキームは、nを法としてローテーションを行い、nは前記マルチプロセッサシステムの前記複数のプロセッサの数である、請求項4記載の方法。
  6. 前記複数のプロセッサは、相互に結合された第1マルチプロセッサシステム及び第2マルチプロセッサシステム内に配置されている、請求項4記載の方法。
  7. 前記プロセッサのデータ再配置スキームでは、前記第1マルチプロセッサシステム内に配置された少なくとも1つのプロセッサが、前記宛先プロセッサ、および前記第2マルチプロセッサシステム内に配置された前記送信元プロセッサ、のうちの少なくとも1つを有するようにされた、請求項6記載の方法。
  8. 前記第1マルチプロセッサシステムの前記メインメモリから、前記第2マルチプロセッサシステムのメインメモリへと、前記保存したデータの全てをコピーするステップを更に含む、請求項7記載の方法。
  9. 前記保存するステップの前に、前記少なくとも1つのプロセッサの前記ローカルメモリで前記データを暗号化するステップと、
    前記他のプロセッサをプロテクトモードに入れるステップと、
    前記他のプロセッサ内の、前記転送した暗号化データを復号化するステップと、
    プログラムの実行処理をレジュームする前に、前記他のプロセッサを前記プロテクトモードから解除するステップと、を更に有する請求項1記載の方法。
  10. 前記プロテクトモードに入る前記ステップは、
    前記他のプロセッサの内外へのデータ転送が禁止されている隔離モードへ入るステップと、
    前記他のプロセッサの内外へデータを転送するために、前記他のプロセッサの外部デバイスからリクエストがサービスされない安全モードへ入るステップと、のうちの少なくとも1つを含む、請求項9記載の方法。
  11. 電源供給及びクロックサイクルのうちの少なくとも1つを停止することによって前記少なくとも1つのプロセッサを休止状態にするステップと、
    ウェイクアップ条件の成立に応答して前記少なくとも1つのプロセッサを休止状態から解除するステップと、
    前記少なくとも1つのプロセッサが休止状態を出た後に、前記メインメモリから前記少なくとも1つのプロセッサの前記ローカルメモリへと前記保存したデータを転送するステップと、
    前記少なくとも1つのプロセッサにプログラム実行処理をレジュームさせるステップと、を更に含む請求項1記載の方法。
  12. 前記少なくとも1つのプロセッサを休止状態から解除する前記ステップは、
    前記少なくとも1つのプロセッサを割込み処理するステップと、
    所定の期間の終了を許容するステップと、
    前記少なくとも1つのプロセッサと通信するプロセッサにおいてチェックポイント命令を実施するステップと、のうちの少なくとも1つを含む、請求項11記載の方法。
  13. メインメモリと機能的に接続された複数のプロセッサを有するマルチプロセッサシステムと、
    前記プロセッサの各々と結合されたローカルメモリと、を含み、
    前記マルチプロセッサシステムは、
    (i)少なくとも1つのプロセッサで実行中のプログラムにおけるチェックポイント命令と、(ii)所定の実行期間の終了と、のうちの少なくとも1つが発生すると、前記少なくとも1つのプロセッサのオペレーションにポーズをかけるアクションと、
    前記少なくとも1つのプロセッサの前記ローカルメモリから前記メインメモリへデータを保存するアクションと、
    前記メインメモリから前記複数のプロセッサの別の前記ローカルメモリへ前記保存したデータを転送するアクションと、
    前記他のプロセッサでプログラムの実行処理をレジュームするアクションと、を実行するよう動作可能である、装置。
  14. 前記マルチプロセッサシステムは、
    前記複数のプロセッサ間で電力消費が分散されるように、前記ポーズをかけるステップ、保存ステップ、転送ステップ、及びレジュームステップを、前記マルチプロセッサシステムの前記複数のプロセッサ間で繰り返すアクションを更に実行するよう動作可能である、請求項13記載の装置。
  15. 前記実行期間は、
    ビデオフレームレートに実質的に等しい、
    約16ミリセカンドである、及び、
    前記プロセッサの温度上昇時間よりも実質的に短い、
    のうちの1つである、請求項13記載の装置。
  16. 前記マルチプロセッサシステムは、
    前記複数のプロセッサ間におけるプロセッサのデータ再配置スキームを構築して、これにより、各プロセッサを、(i)前記保存したデータの転送先でかつレジューム実行元となる宛先プロセッサ、及び(ii)保存したデータの転送元でかつレジューム実行元となる送信元プロセッサ、として決定するアクションを更に実行可能である、請求項13記載の装置。
  17. 前記プロセッサのデータ再配置スキームは、nを法としてローテーションを行い、nは前記コンピュータシステムの前記複数のプロセッサの数である、請求項16記載の装置。
  18. 前記複数のプロセッサは、相互に結合され第1マルチプロセッサシステム及び第2マルチプロセッサシステム内に配置されている、請求項16記載の装置。
  19. 前記プロセッサのデータ再配置スキームでは、前記第1マルチプロセッサシステム内に配置された少なくとも1つのプロセッサが、前記宛先プロセッサ、および前記第2マルチプロセッサシステム内に配置された前記送信元プロセッサ、のうちの少なくとも1つを有すように命令する、請求項18記載の装置。
  20. 前記マルチプロセッサシステムは、
    前記第1マルチプロセッサシステムの前記メインメモリから、前記第2マルチプロセッサシステムのメインメモリへ前記保存したデータの全てをコピーするアクションを更に実行するよう動作可能である、請求項19記載の装置。
  21. 前記マルチプロセッサシステムは、
    前記保存アクションの前に前記少なくとも1つのプロセッサの前記ローカルメモリで前記データを暗号化するアクションと、
    前記他のプロセッサをプロテクトモードに入れるアクションと、
    前記他のプロセッサ内の、前記転送した暗号化データを復号化するアクションと、
    プログラムの実行処理をレジュームする前に前記他のプロセッサを前記プロテクトモードから解除するアクションと、を更に実行するよう動作可能である、請求項13記載の装置。
  22. 前記プロテクトモードに入れる前記アクションは、
    前記他のプロセッサの内外へのデータ転送が禁止されている隔離モードへ入れるアクションと、
    前記他のプロセッサの内外へデータを転送するために、前記他のプロセッサの外部デバイスからリクエストがサービスされない安全モードへ入れるアクションと、のうちの少なくとも1つを含む、請求項21記載の装置。
  23. 電源供給及びクロックサイクルのうちの少なくとも1つを停止することによって前記少なくとも1つのプロセッサを休止状態にするステップと、
    ウェイクアップ条件の成立に応答して前記少なくとも1つのプロセッサを休止状態から解除するステップと、
    前記少なくとも1つのプロセッサが休止状態から解除された後に、前記少なくとも1つのプロセッサの前記メインメモリから前記ローカルメモリへと、前記保存したデータを転送するステップと、
    前記少なくとも1つのプロセッサにプログラム実行処理をレジュームさせるステップと、を更に含む請求項13記載の装置。
  24. 前記少なくとも1つのプロセッサを休止状態から解除する前記ステップは、
    前記少なくとも1つのプロセッサの割込み処理を行うステップ、
    所定の期間の終了を許容するステップ、及び、
    前記少なくとも1つのプロセッサと通信するプロセッサでチェックポイント命令を実施するステップ、のうちの少なくとも1つを含む、請求項23記載の装置。
  25. 実行可能プログラムを含む記録媒体であって、前記実行可能プログラムは、マルチプロセッサシステムに、
    (i)少なくとも1つのプロセッサで実行中のプログラムにおけるチェックポイント命令、及び(ii)所定の実行期間の終了、のうちの少なくとも1つが発生すると、マルチプロセッサシステム内の前記少なくとも1つのプロセッサのオペレーションにポーズをかけるアクションと、
    前記少なくとも1つのプロセッサのローカルメモリから前記マルチプロセッサシステムのメインメモリにデータを保存するアクションと、
    前記メインメモリから前記マルチプロセッサシステムの別のプロセッサのローカルメモリへと前記保存したデータを転送するアクションと、
    前記他のプロセッサでプログラムの実行処理をレジュームするステップと、を含むアクションを実行させるものである、記録媒体。
JP2006130676A 2005-05-10 2006-05-09 コンピュータシステムの電力管理のための方法及び装置 Active JP4792328B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/125,495 2005-05-10
US11/125,495 US7409570B2 (en) 2005-05-10 2005-05-10 Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition

Publications (2)

Publication Number Publication Date
JP2006318470A true JP2006318470A (ja) 2006-11-24
JP4792328B2 JP4792328B2 (ja) 2011-10-12

Family

ID=37036969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006130676A Active JP4792328B2 (ja) 2005-05-10 2006-05-09 コンピュータシステムの電力管理のための方法及び装置

Country Status (7)

Country Link
US (1) US7409570B2 (ja)
EP (1) EP1805575B1 (ja)
JP (1) JP4792328B2 (ja)
KR (1) KR20070100336A (ja)
CN (1) CN100555174C (ja)
TW (1) TWI350446B (ja)
WO (1) WO2006121175A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
JP2009282648A (ja) * 2008-05-21 2009-12-03 Fujitsu Ltd ストレージ装置、ディスクコントローラ、及びコマンド発行制御方法
JP2012004661A (ja) * 2010-06-14 2012-01-05 Fujitsu Semiconductor Ltd プロセッサ及びプロセッサシステム

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882369B1 (en) * 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7475262B2 (en) * 2005-06-29 2009-01-06 Intel Corporation Processor power management associated with workloads
US20070240013A1 (en) * 2006-01-27 2007-10-11 Sony Computer Entertainment Inc. Methods And Apparatus For Managing Defective Processors Through Clock Programming
US8438658B2 (en) * 2006-02-02 2013-05-07 International Business Machines Corporation Providing sealed storage in a data processing device
US20070180271A1 (en) * 2006-02-02 2007-08-02 Ibm Corporation Apparatus and method for providing key security in a secure processor
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7913069B2 (en) * 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word
US7886363B2 (en) * 2006-05-24 2011-02-08 Noam Camiel System and method for virtual memory and securing memory in programming languages
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US9015501B2 (en) * 2006-07-13 2015-04-21 International Business Machines Corporation Structure for asymmetrical performance multi-processors
US8806228B2 (en) * 2006-07-13 2014-08-12 International Business Machines Corporation Systems and methods for asymmetrical performance multi-processors
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US7996696B1 (en) * 2007-05-14 2011-08-09 Sprint Communications Company L.P. Updating kernel affinity for applications executing in a multiprocessor system
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8984309B2 (en) * 2008-11-21 2015-03-17 Intel Corporation Reducing network latency during low power operation
US20100177889A1 (en) * 2009-01-15 2010-07-15 Kabushiki Kaisha Toshiba Image forming apparatus and encryption process control method
US20100246679A1 (en) * 2009-03-24 2010-09-30 Aricent Inc. Video decoding in a symmetric multiprocessor system
US8566286B1 (en) 2009-05-15 2013-10-22 Idera, Inc. System and method for high speed database backup using rapidly adjusted dynamic compression ratios controlled by a feedback loop
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US9219936B2 (en) 2010-02-05 2015-12-22 Maxlinear, Inc. Conditional access integration in a SOC for mobile TV applications
WO2011100559A1 (en) * 2010-02-11 2011-08-18 Maxlinear, Inc. Ram based security element for embedded applications
US9177152B2 (en) 2010-03-26 2015-11-03 Maxlinear, Inc. Firmware authentication and deciphering for secure TV receiver
WO2011123561A1 (en) 2010-03-30 2011-10-06 Maxlinear, Inc. Control word obfuscation in secure tv receiver
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US20130111249A1 (en) * 2010-07-21 2013-05-02 Jichuan Chang Accessing a local storage device using an auxiliary processor
US8892855B2 (en) 2010-08-10 2014-11-18 Maxlinear, Inc. Encryption keys distribution for conditional access software in TV receiver SOC
TWI408392B (zh) * 2011-02-18 2013-09-11 Etron Technology Inc 增加晶片測試效率的裝置及其方法
US8924756B2 (en) 2011-06-27 2014-12-30 Intel Corporation Processor core with higher performance burst operation with lower power dissipation sustained workload mode
US9383804B2 (en) 2011-07-14 2016-07-05 Qualcomm Incorporated Method and system for reducing thermal load by forced power collapse
US9811475B2 (en) 2012-06-29 2017-11-07 Intel Corporation Methods and apparatus for a secure sleep state
JP6087662B2 (ja) * 2013-02-28 2017-03-01 株式会社東芝 制御装置、制御プログラム及び情報処理システム
TWI516982B (zh) * 2014-04-22 2016-01-11 晨星半導體股份有限公司 計算裝置及計算裝置之處理安全服務之方法
CN105022970B (zh) * 2014-04-29 2018-03-02 晨星半导体股份有限公司 计算装置及计算装置的处理安全服务的方法
RU2666334C2 (ru) * 2015-06-30 2018-09-06 Общество С Ограниченной Ответственностью "Яндекс" Способ обработки данных
CN106603355B (zh) 2015-10-15 2019-10-18 华为技术有限公司 一种计算装置、节点设备和服务器
US9892024B2 (en) * 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
KR20170083868A (ko) 2016-01-11 2017-07-19 삼성전자주식회사 데이터 이동 장치 및 데이터 이동 방법
US10643006B2 (en) * 2017-06-14 2020-05-05 International Business Machines Corporation Semiconductor chip including integrated security circuit
KR102022481B1 (ko) * 2017-12-06 2019-09-18 연세대학교 산학협력단 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법
CN111443792B (zh) * 2019-01-16 2023-05-09 阿里巴巴集团控股有限公司 处理器的功耗控制方法、装置以及电子和存储设备
CN113406945B (zh) * 2021-05-26 2022-11-18 东风电驱动系统有限公司 一种宽域频率唤醒信号处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816531A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JPH1069330A (ja) * 1996-07-17 1998-03-10 Internatl Business Mach Corp <Ibm> 集積回路上のホット・スポットを回避するための論理回路及び方法
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US6247041B1 (en) * 1997-08-29 2001-06-12 International Business Machines Corporation Multiprocessor computer system with user specifiable process placement
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US20030079151A1 (en) * 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7086058B2 (en) * 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
JP4263976B2 (ja) 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816531A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JPH1069330A (ja) * 1996-07-17 1998-03-10 Internatl Business Mach Corp <Ibm> 集積回路上のホット・スポットを回避するための論理回路及び方法
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
JP2009282648A (ja) * 2008-05-21 2009-12-03 Fujitsu Ltd ストレージ装置、ディスクコントローラ、及びコマンド発行制御方法
JP4542173B2 (ja) * 2008-05-21 2010-09-08 富士通株式会社 ストレージ装置、ディスクコントローラ、及びコマンド発行制御方法
JP2012004661A (ja) * 2010-06-14 2012-01-05 Fujitsu Semiconductor Ltd プロセッサ及びプロセッサシステム

Also Published As

Publication number Publication date
US7409570B2 (en) 2008-08-05
WO2006121175A3 (en) 2007-06-14
TW200707172A (en) 2007-02-16
CN100555174C (zh) 2009-10-28
JP4792328B2 (ja) 2011-10-12
TWI350446B (en) 2011-10-11
US20060259743A1 (en) 2006-11-16
CN101091147A (zh) 2007-12-19
WO2006121175B1 (en) 2007-07-19
WO2006121175A2 (en) 2006-11-16
EP1805575B1 (en) 2018-12-05
KR20070100336A (ko) 2007-10-10
EP1805575A2 (en) 2007-07-11

Similar Documents

Publication Publication Date Title
JP4792328B2 (ja) コンピュータシステムの電力管理のための方法及び装置
US7613886B2 (en) Methods and apparatus for synchronizing data access to a local memory in a multi-processor system
JP4451397B2 (ja) Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置
JP6082787B2 (ja) セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP4421561B2 (ja) ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム
JP4645973B2 (ja) 命令セットのエミュレーションのための方法、装置及びシステム
US20080282341A1 (en) Methods and apparatus for random number generation in a multiprocessor system
US7526608B2 (en) Methods and apparatus for providing a software implemented cache memory
EP1834245B1 (en) Methods and apparatus for list transfers using dma transfers in a multi-processor system
US7689784B2 (en) Methods and apparatus for dynamic linking program overlay
US20070083870A1 (en) Methods and apparatus for task sharing among a plurality of processors
JP2006146921A (ja) 追跡バッファでブックマークを使用するための方法及びシステム
US7395411B2 (en) Methods and apparatus for improving processing performance by controlling latch points
US20080279370A1 (en) Methods and apparatus for generating a random number in one or more isolated processors
US7818507B2 (en) Methods and apparatus for facilitating coherency management in distributed multi-processor system
US20060179275A1 (en) Methods and apparatus for processing instructions in a multi-processor system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100126

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100304

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100402

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100818

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110725

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4792328

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250