JP5328743B2 - Enhanced reliability of multi-core processors - Google Patents

Enhanced reliability of multi-core processors Download PDF

Info

Publication number
JP5328743B2
JP5328743B2 JP2010230921A JP2010230921A JP5328743B2 JP 5328743 B2 JP5328743 B2 JP 5328743B2 JP 2010230921 A JP2010230921 A JP 2010230921A JP 2010230921 A JP2010230921 A JP 2010230921A JP 5328743 B2 JP5328743 B2 JP 5328743B2
Authority
JP
Japan
Prior art keywords
core
cores
subset
allocator
processor
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.)
Expired - Fee Related
Application number
JP2010230921A
Other languages
Japanese (ja)
Other versions
JP2011044168A (en
Inventor
ヴェラ、ザビエル
アンサル、オスマン
アージン、オグズ
アベーラ、ジョーム
ゴンサレス、アントニオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to JP2010230921A priority Critical patent/JP5328743B2/en
Publication of JP2011044168A publication Critical patent/JP2011044168A/en
Application granted granted Critical
Publication of JP5328743B2 publication Critical patent/JP5328743B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide the reliability strengthening of a multiple core processor. <P>SOLUTION: One embodiment includes a method for specifying an available core in the multiple core processor, allocating a core of a first subset to an enable state, allocating a core of a second subset to a standby state, and storing information about the allocations in a storage. In a specific embodiment, the core may be allocated to an enable state on the basis of temperature-aware algorithm. The other embodiments are described, and claimed. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明の実施形態は、マルチプロセッサシステムに関し、特に、マルチプロセッサシステムの信頼性向上に関する。   Embodiments described herein relate generally to a multiprocessor system, and more particularly, to improving the reliability of a multiprocessor system.

コンピュータシステムは、複雑性を一段と増し、マルチコアプロセッサ等の先進のプロセッサを含むようになってきている。命令を並行して実行する二つのプロセッサコアを有するデュアルコアプロセッサが導入されている。将来的には、更にコアを、たとえば3個以上のコアを含むプロセッサが生産されることが期待される。現在のロードマップには、4個のコア及び8個のコアを有するプロセッサが含まれる。   Computer systems are becoming more complex and include advanced processors such as multi-core processors. A dual-core processor having two processor cores that execute instructions in parallel has been introduced. In the future, it is expected that a processor including more cores, for example, three or more cores will be produced. The current roadmap includes processors with 4 cores and 8 cores.

また、長期的にはプロセッサは、単一のプロセッサパッケージに多数のコアが存在し、更にはパッケージにおける単一の基板もしくはダイ上に多数のコアが存在する多数コア環境へと進化することが予期される。したがって、8個、16個、32個、64個、128個、もしくはそれより多い個数のコアを含むプロセッサが将来利用可能となることが期待される。このような多数コアプロセッサに付随する複雑性に加え、信頼性に関する懸念が増大する。具体的には、多様な技術的課題に起因して多数コアプロセッサのコアは、シングルコアもしくはデュアルコアプロセッサよりも故障率が高くなるであろう。   Also, in the long term, processors are expected to evolve into a multi-core environment where there are many cores in a single processor package and many cores on a single substrate or die in the package. Is done. Therefore, it is expected that processors including 8, 16, 32, 64, 128, or more cores will be available in the future. In addition to the complexity associated with such multi-core processors, reliability concerns increase. Specifically, due to various technical challenges, the core of a multi-core processor will have a higher failure rate than a single core or dual core processor.

このような高率の故障率となる原因は多数存在し、またこれらの原因の全てが組み合わさることにより多数コアプロセッサのコアは世代ごとに寿命が縮小する虞がある。このような寿命縮小の原因は、エレクトロマイグレーション、ストレスマイグレーション、経時絶縁破壊(TDDB)、負バイアス温度不安定性(NBTI)、温度サイクリング等の数多くの劣化源に求められる。これらの故障メカニズムの大半は高温で発生する。つまり、高温であるほどコアの平均故障時間(MTTF)は短くなる。通常、プロセッサもしくはプロセッサのコアの故障率は、時間当たりの故障数(FIT)と呼ばれ、これは10時間において予期される故障数である。FIT値を用いると、MTTFは1/FITと算出できる。固定条件(たとえば、温度、電圧、周波数、及び利用)下での定常状態動作を想定したMTTFは、多様な技術に関して算出される。したがって、これらのパラメータのいずれかが増加することにより、寿命信頼性が更に悪化する虞がある。 There are many causes for such a high failure rate, and when all of these causes are combined, the cores of a multi-core processor may have a reduced lifetime for each generation. The cause of such a reduction in life is required for many deterioration sources such as electromigration, stress migration, dielectric breakdown with time (TDDB), negative bias temperature instability (NBTI), and temperature cycling. Most of these failure mechanisms occur at high temperatures. That is, the higher the temperature, the shorter the core mean time to failure (MTTF). Usually, the core of the failure rate of the processor or processors, called the number of failures per hour (FIT), which is the number of faults to be expected in 109 hours. Using the FIT value, MTTF can be calculated as 1 / FIT. The MTTF assuming steady state operation under fixed conditions (eg, temperature, voltage, frequency, and utilization) is calculated for a variety of techniques. Therefore, the lifetime reliability may be further deteriorated by increasing any of these parameters.

本発明の一実施形態に係る多数コアプロセッサのブロック図である。1 is a block diagram of a multi-core processor according to an embodiment of the present invention. FIG.

本発明の一実施形態に係る方法のフロー図である。FIG. 3 is a flow diagram of a method according to an embodiment of the invention.

本発明の一実施形態に係るコア割り当て方法のフロー図である。It is a flowchart of the core allocation method which concerns on one Embodiment of this invention.

本発明の一実施形態に係るコア再割り当て方法のフロー図である。It is a flowchart of the core reallocation method which concerns on one Embodiment of this invention.

本発明の一実施形態に係る信頼性最大化方法のフロー図である。It is a flowchart of the reliability maximization method which concerns on one Embodiment of this invention.

本発明の実施形態に係るマルチプロセッサシステムのブロック図である。1 is a block diagram of a multiprocessor system according to an embodiment of the present invention.

本発明の実施形態は、半導体デバイス、特に、たとえば多数コアプロセッサ等のプロセッサの信頼性を向上させるべく用いてよい。多様な実施例において、多数コアプロセッサのコアを命令実行に割り当てる多様なスキームを実現してよい。これらの割り当てスキームにおいては、多様な動作パラメータに基づいてアクティベートもしくはイネーブルされるコアを選択してよい。アクティベートするコアの選択時に考慮する動作パラメータとしては、特に温度が挙げられる。半導体故障メカニズムの多くは高温で発生するので、温度はコアのMTTFと多数コア信頼性とに直接の関連を有する。したがって、本発明の実施形態においては、多数コア信頼性を最大化すべく温度を管理するためのコア粒度メカニズムを実装してよい。多数コア信頼性を最大化しつつ、コアの割り当て時にはコアの劣化と処理の変動とを更に考慮に入れてよい。   Embodiments of the present invention may be used to improve the reliability of semiconductor devices, particularly processors such as, for example, multiple core processors. In various embodiments, various schemes may be implemented that allocate the cores of a multi-core processor for instruction execution. In these allocation schemes, activated or enabled cores may be selected based on various operating parameters. The operating parameter considered when selecting the core to be activated is temperature in particular. Since many semiconductor failure mechanisms occur at high temperatures, temperature is directly related to the core MTTF and multiple core reliability. Thus, in embodiments of the present invention, a core granularity mechanism may be implemented to manage temperature to maximize multi-core reliability. While maximizing multi-core reliability, core degradation and processing variations may be further taken into account when assigning cores.

コア割り当てスキームに加え、本発明の実施形態においては、たとえば現在イネーブルされているコアが故障したとき、もしくは望ましい動作レベルでの処理を継続できないときに、再割り当てを実行してもよい。多様な実施形態において、再割り当てスキームにおける考慮事項として、利用可能な予備コア群のうちアクティブなコアもしくはイネーブルするコアとして利用するための一以上のコアを選択するための温度に基づく解析を用いてよい。さらに、本発明の実施形態においては、アクティベートするコアを処理負荷に基づいて選択してよい。たとえば、互いに通信し合う処理の性能を向上させるべく、緊密に関連する処理を互いに近接した関連性を有するコアにスケジューリングして通信経路を最短化してよい。   In addition to the core allocation scheme, in embodiments of the present invention, reallocation may be performed, for example, when a currently enabled core fails or when processing at a desired operating level cannot continue. In various embodiments, as a consideration in the reassignment scheme, using temperature-based analysis to select one or more cores for use as active or enabled cores among the available spare cores Good. Furthermore, in the embodiment of the present invention, the core to be activated may be selected based on the processing load. For example, in order to improve the performance of processes that communicate with each other, closely related processes may be scheduled in cores having close relations to minimize the communication path.

多数コアプロセッサ上で、コア温度は、隣接するコアに対して側面から実質的な影響を与え得る。たとえば、2個の隣接し合うコアが同時にオンされた場合、1以上の予備コアによりそれらが離間されている場合に比較してそれらの平均温度は高くなる。予備コア(もしくは、故障したコア)は、アクティブコアが発生する熱を吸収し、アクティブコアの温度を下げる。例として、アクティブコアを16個、予備コアを16個有する32コアの多数コアプロセッサを想定する。本発明の実施形態に係る割り当て/再割り当てスキームを用いることにより、大幅にコア温度を下げることができる。たとえば、市松模様パターン(たとえば、1個の接続(online)コアと1個の予備コア)においては、アクティベートされるコアが連なっている場合よりも低い温度での動作が可能である。   On multi-core processors, the core temperature can have a substantial side effect on adjacent cores. For example, if two adjacent cores are turned on simultaneously, their average temperature will be higher than if they are separated by one or more spare cores. The spare core (or the failed core) absorbs heat generated by the active core and lowers the temperature of the active core. As an example, consider a 32-core multi-core processor with 16 active cores and 16 spare cores. By using the allocation / reassignment scheme according to embodiments of the present invention, the core temperature can be significantly reduced. For example, a checkerboard pattern (eg, one online core and one spare core) can be operated at a lower temperature than when the activated cores are connected.

多数コア環境でのコア信頼性をこの方法で向上させて多数コアプロセッサの寿命を伸ばしてよい。望まれるアーキテクチャに基づき、異なる実施形態を異なる方法で実施してよい。いくつかの実施形態においては、専用のハードウェアを用いて多数コアプロセッサのコアを選択・制御してよい。他の実施形態においては、ソフトウェアにだけ基づく方法を実施してよい。もちろん、ハードウェアだけ、ソフトウェアだけのスキームに変更を加えて所定量の専用ハードウェアを、当該専用ハードウェア上で、及び/又はその他の処理資源上で動作するソフトウェアと併用してよい。たとえば、いくつかの実施形態においては、マイクロコントローラを用い、コントローラのマイクロコードとして実装される一以上のアルゴリズムを実行してよい。他の実施形態においては、マルチコアプロセッサの専用コア上、又は選択したコアもしくはその一部上で実行されるようアルゴリズムをソフトウェアで実装してよい。   The core reliability in a multi-core environment may be improved in this way to extend the life of the multi-core processor. Depending on the architecture desired, different embodiments may be implemented in different ways. In some embodiments, dedicated hardware may be used to select and control the cores of a multi-core processor. In other embodiments, software-only methods may be implemented. Of course, a predetermined amount of dedicated hardware may be used in combination with software that operates on the dedicated hardware and / or on other processing resources by modifying a hardware-only or software-only scheme. For example, in some embodiments, a microcontroller may be used to execute one or more algorithms implemented as controller microcode. In other embodiments, the algorithm may be implemented in software to execute on a dedicated core of a multi-core processor, or on a selected core or part thereof.

割り当て/再割り当てスキームは、コアの故障率を最小化し、したがって多数コア信頼性を最大化するコア毎(つまり、コア粒度)ベースであってよい。いくつかの実施例において、多数コアプロセッサのコアのうち実質数をを予備として保持してよい。コアが故障したとき、利用可能な予備のプールから予備コアを選択してよく、さらに多数コア信頼性が最大化されるように選択してよい。   The assignment / reassignment scheme may be on a per core (ie, core granularity) basis that minimizes core failure rates and thus maximizes multiple core reliability. In some embodiments, a substantial number of cores of a multi-core processor may be retained as reserves. When a core fails, a spare core may be selected from the available spare pool and may be selected to maximize multi-core reliability.

コアの故障メカニズムの大半は強い温度依存性を有しており、一般則としてコアの故障率は温度が高い場合に増大する。したがって、温度を考慮したコア割り当て/再割り当てスキームにより多数コアプロセッサの信頼性は拡大するであろう。いくつかの実施形態においては、目標寿命を保証する性能レベルの持続を最長化する多数コア使用モデルを実施することができる。同様に、当該モデルは、目標とする性能レベルが保証されるように寿命を最長化することができる。初期のコア割り当てと、コア故障時もしくはシステムが望まれる性能を提供できないときのコアの再構成とを提供するこれらのモデルにおいては、処理の変動と周波数の経時劣化とを考慮する。さらに、異なるコア同士が通信し合う用途に関連するいくつかの実施形態においては、性能を信頼性と均衡させてよい。   Most core failure mechanisms have a strong temperature dependence, and as a general rule the core failure rate increases at higher temperatures. Therefore, the reliability of multi-core processors will be expanded by a core allocation / reassignment scheme that takes temperature into account. In some embodiments, a multiple core usage model can be implemented that maximizes the persistence of the performance level that guarantees the target lifetime. Similarly, the model can maximize the lifetime so that the targeted performance level is guaranteed. In these models, which provide initial core allocation and core reconfiguration in case of core failure or when the system is unable to provide the desired performance, processing variations and frequency aging are taken into account. Further, in some embodiments related to applications where different cores communicate, performance may be balanced with reliability.

図1は、本発明の一実施形態に係る多数コアプロセッサのブロック図である。図1に示すように、プロセッサ10は、複数の個別コア15をを含む。より具体的には、図1の実施形態は、インターコネクト・ファブリック30を介して連結される8×8のコアのアレイを含む構成を示す。図1の実施形態に係る本特定的実施例を示す一方で、本発明の範囲はこれに限定されず、他の実施形態においては他の構成、たとえば、一次元、二次元、もしくは三次元メッシュ、又は一次元、二次元、もしくは三次元トーラス構成等を用いてよいことは理解されよう。さらに、図1の実施形態においては、64個の個別コアを図示しているが、別の実施例においては多数コアプロセッサはより多数の又はより少数のコア含んでよいことは理解されよう。   FIG. 1 is a block diagram of a multi-core processor according to an embodiment of the present invention. As shown in FIG. 1, the processor 10 includes a plurality of individual cores 15. More specifically, the embodiment of FIG. 1 illustrates a configuration that includes an array of 8 × 8 cores that are coupled through interconnect fabric 30. While showing this specific example according to the embodiment of FIG. 1, the scope of the present invention is not limited thereto, and in other embodiments other configurations, such as a one-dimensional, two-dimensional, or three-dimensional mesh It will be appreciated that a one-dimensional, two-dimensional, or three-dimensional torus configuration may be used. In addition, although the embodiment of FIG. 1 illustrates 64 individual cores, it will be appreciated that in other embodiments a multiple core processor may include more or fewer cores.

少なくともシングルコア又はデュアルコアのプロセッサと比べると、各コア15は比較的小さい。多様な実施形態において、各コア15は、ローカルメモリ(たとえば、キャッシュメモリ)を含んでよく、更に共有メモリに接続されてよい。具体的には、図1に示すように、インターコネクト・ファブリック30を介して個別コア15にグローバルな共有メモリである共有メモリ20を接続してよい。図を簡易にするべく図1には示さなかったが、プロセッサ10はその他のコンポーネント、たとえば、入出力(I/O)インターフェース、インターコネクト、バス、ロジック等を含んでよいことは理解されよう。   Each core 15 is relatively small compared to at least a single core or dual core processor. In various embodiments, each core 15 may include local memory (eg, cache memory) and may be further connected to shared memory. Specifically, as shown in FIG. 1, a shared memory 20 that is a global shared memory may be connected to the individual core 15 via the interconnect fabric 30. Although not shown in FIG. 1 for ease of illustration, it will be appreciated that the processor 10 may include other components, such as input / output (I / O) interfaces, interconnects, buses, logic, and the like.

アクティベートすべきコア15は、多様なアルゴリズムに基づいて選択してよい。そのようなアクティベートを有効にするべく、アクティベートされるコア15同士の接続が向上し、通信速度が速められるようインターコネクト・ファブリック30を構成してよい。   The core 15 to be activated may be selected based on various algorithms. In order to enable such activation, the interconnect fabric 30 may be configured to improve the connection between the activated cores 15 and increase the communication speed.

図2は、本発明の一実施形態に係る方法のフロー図である。図2に示すように、方法100を用いて望まれる性能レベルが達成されるように多数コアプロセッサのコアの割り当てを行ってよい。多様な実施形態において、たとえば専用のマイクロコントローラ、その他のロジック、又はプロセッサのコアにおいて方法100を実行してよい。図2に示すように、方法100は、多数コアプロセッサの利用可能なコアを特定すること(ブロック110)から開始してよい。たとえば、初期化時もしくはその他の機会において、全てのコアにポーリング要求を送信し、応答可能なコア(つまり、故障していないコア)からの応答を受信してよい。   FIG. 2 is a flow diagram of a method according to an embodiment of the invention. As shown in FIG. 2, method 100 may be used to assign cores of a multi-core processor so that a desired level of performance is achieved. In various embodiments, the method 100 may be performed, for example, in a dedicated microcontroller, other logic, or processor core. As shown in FIG. 2, method 100 may begin by identifying available cores of a multi-core processor (block 110). For example, at initialization or at other occasions, a poll request may be sent to all cores and a response from a respondable core (ie, a core that has not failed) may be received.

引き続き図2を参照し、次に、プロセッサ内の第一グループのコアをアクティブステータスに割り当ててよい(ブロック120)。いくつかの実施形態においては、コアの、その他のアクティブコアに対する相対位置に基づいて、コアを第一グループへ割り当ててよい。つまり、多様な実施形態において、イネーブルすべきコアの分析には隣接するコアのステータスを考慮してよい。アクティブコアの温度は当該アクティブコアに隣接する故障コアもしくは予備コアを通じて消散するので、このようにアクティブな隣接コアの数が最小であるコアをイネーブル対象として選択することにより低動作温度が得られるようにしてよい。所与の性能レベルに達するまで第一グループへとコアを割り当ててよい。性能レベルは、多様に表現され、たとえば秒当たりの命令数もしくはその他の類似の指標により表される。動作するべくアクティベートされる第一グループのコア15(図1に示す)に基づいて、コア同士を連結するインターコネクト・ファブリックを構成もしくは再構成してよい。より具体的には、第一グループのコア同士の通信が向上するようにインターコネクト・ファブリックを選択的に制御してよい。一実施形態においては、第一グループのコアが効率的に接続されるようにインターコネクト・ファブリックを構成するスイッチを構成してよい。   With continued reference to FIG. 2, a first group of cores in the processor may then be assigned an active status (block 120). In some embodiments, cores may be assigned to the first group based on the relative position of the cores relative to other active cores. That is, in various embodiments, the analysis of cores to be enabled may take into account the status of adjacent cores. Since the temperature of the active core is dissipated through the failed core or the spare core adjacent to the active core, it is possible to obtain a low operating temperature by selecting the core having the smallest number of active adjacent cores as an enable target. You can do it. Cores may be assigned to the first group until a given performance level is reached. Performance levels are variously represented, for example, by the number of instructions per second or other similar indicator. Based on the first group of cores 15 (shown in FIG. 1) that are activated to operate, the interconnect fabric that connects the cores may be configured or reconfigured. More specifically, the interconnect fabric may be selectively controlled so that communication between the cores of the first group is improved. In one embodiment, the switches that make up the interconnect fabric may be configured such that the first group of cores are efficiently connected.

引き続き図2を参照し、次に、第二グループのコアを予備ステータスに割り当ててよい(ブロック130)。つまり、第一グループへといくつかのコアをイネーブルすることにより望まれる性能レベルに到達したときに、残りの利用可能なコアを予備ステータスの第二グループに入れてよい。後述するように、これらの予備コアは、後に第二グループから第一グループへと移行させることができる。   With continued reference to FIG. 2, a second group of cores may then be assigned to a spare status (block 130). That is, when the desired level of performance is reached by enabling some cores into the first group, the remaining available cores may be put into the second group in the spare status. As will be described later, these spare cores can later be transferred from the second group to the first group.

引き続き図2を参照し、たとえば初期化時において利用可能なコアが第一及び第二グループに割り当てられた後、多数コアプロセッサは通常動作へと進行してよい。この動作の間、ポーリング動作の所与の間隔もしくは信号を受信する所与の間隔で、コアの故障が生じたかを判定してよい(菱形140)。故障が生じた場合、制御は上記したブロック110へと戻る。したがって、上記のフローを再度実行して、故障したコアの代替として一以上のコアを再割り当てしてよい。   With continued reference to FIG. 2, the multi-core processor may proceed to normal operation after the available cores are assigned to the first and second groups, for example at initialization. During this operation, it may be determined whether a core failure has occurred (diamond 140) at a given interval of polling operation or a given interval of receiving a signal. If a failure occurs, control returns to block 110 described above. Therefore, the above flow may be executed again to reassign one or more cores as a replacement for the failed core.

引き続き図2を参照し、菱形140においてコアの故障が生じていないと判定された場合、制御は菱形150へと進む。菱形150においては、性能レベルの変化が生じたかを判定してよい。二種類の性能レベル変化が生じ得る。一方は、望まれる性能レベルの変更をたとえばユーザから指示される場合の変化である。たとえば、より複雑な動作を実行するべくより高度の性能をユーザが望む場合がある。性能変化の第二の種類は、たとえば一以上のコアが以前の周波数では動作しないことにより多数コアプロセッサの実性能レベルが変化する場合である。したがって、このような性能レベル変化が菱形150において判定された場合、制御はブロック110へと戻り、一以上のコアの再割り当てを行う。このような性能レベル変化が菱形150において判定されない場合は、制御は上記した菱形140へと戻る。図2の実施形態において本特定的実施例を記載したが、本発明の範囲はこれに限定されないことは理解されよう。   With continued reference to FIG. 2, if it is determined that there is no core failure in diamond 140, control proceeds to diamond 150. In diamond 150, it may be determined whether a change in performance level has occurred. Two types of performance level changes can occur. One is a change in the case where the user is instructed to change the desired performance level. For example, the user may desire higher performance to perform more complex operations. The second type of performance change is when, for example, the actual performance level of a multi-core processor changes due to one or more cores not operating at the previous frequency. Thus, if such a performance level change is determined at diamond 150, control returns to block 110 to reassign one or more cores. If such a performance level change is not determined in diamond 150, control returns to diamond 140 described above. While this particular example has been described in the embodiment of FIG. 2, it will be understood that the scope of the invention is not limited thereto.

図2の方法はコアの割り当て及び再割り当ての一般的手順を示すが、いくつかの実施形態においては、コアの割り当て及び再割り当てに異なるアルゴリズムを実装してよい。いくつかの実施形態においては、たとえば欲張り最適化アプローチを用い、両スキームにおいて類似したアクティブコア選択を実施してよい。しかし、他の実施形態では、割り当てスキームと再割り当てスキームとにおいて異なるコア選択法を実施してよい。   Although the method of FIG. 2 illustrates a general procedure for core assignment and reassignment, in some embodiments, different algorithms may be implemented for core assignment and reassignment. In some embodiments, similar active core selection may be performed in both schemes, for example using a greedy optimization approach. However, in other embodiments, different core selection methods may be implemented in the allocation scheme and the reallocation scheme.

図3は、本発明の一実施形態に係るコア割り当てスキームのフロー図である。図3に示すように、方法200は、コアステータス情報を受け取ること(ブロック210)から開始してよい。たとえば、多数コアプロセッサを高出力化したとき、各コアは、高出力化が成功し利用可能であることと、現在の最大動作周波数とを示す信号を送ってよい。次に、ブロック220において、健全なコアの全てを予備として初期化してよい(ブロック220)。したがって、多数コアプロセッサに存在する健全なコアの個数が初期においては投入された予備リストが保持される。   FIG. 3 is a flow diagram of a core allocation scheme according to an embodiment of the present invention. As shown in FIG. 3, the method 200 may begin with receiving core status information (block 210). For example, when a multi-core processor has a higher output, each core may send a signal indicating that the higher output is successful and available and the current maximum operating frequency. Next, at block 220, all healthy cores may be initialized as spares (block 220). Therefore, a preliminary list in which the number of healthy cores existing in a multi-core processor is initially input is maintained.

次に、現在の性能が目標の性能レベルを下回っているかを判定してよい(菱形230)。性能レベルは、動作に望まれる健全なコアの個数、秒当たりの命令数、もしくは別の類似のメトリックに対応したものであってよい。性能レベルが目標レベルを下回っていないと判定された場合、方法200は終了してよい。そうでない場合、制御は菱形230からブロック240へと進む。ブロック240では、本明細書に記載したような信頼性最大化アルゴリズムに基づいてコアを割り当ててよい(ブロック240)。この割り当ての後、コア同士を連結するインターコネクト・ファブリックを当該割り当てに従って構成してよいことに注意されたい。つまり、多数コアプロセッサの信頼性最大化を目的とするアルゴリズムに基づいてコアをアクティベートしてよい。多数コア信頼性を最大化する多様な方法を実行してよい。しかし、多くの実施形態においては、多数コアプロセッサの全体温度を低下させること、もしくは多数コアプロセッサの少なくとも一以上のアクティブコアの動作温度を低下させることを狙った方法でコアの割り当てを行ってよい。後述するように、このような信頼性最大化アルゴリズムの特定の実施例を多様な実施形態により実行してよい。   Next, it may be determined whether the current performance is below the target performance level (diamond 230). The performance level may correspond to the number of healthy cores desired for operation, the number of instructions per second, or another similar metric. If it is determined that the performance level is not below the target level, the method 200 may end. Otherwise, control proceeds from diamond 230 to block 240. At block 240, cores may be assigned based on a reliability maximization algorithm as described herein (block 240). Note that after this assignment, the interconnect fabric that connects the cores may be configured according to the assignment. That is, the core may be activated based on an algorithm aimed at maximizing the reliability of the multi-core processor. Various methods for maximizing multi-core reliability may be implemented. However, in many embodiments, cores may be allocated in a manner that aims to reduce the overall temperature of a multi-core processor or to reduce the operating temperature of at least one active core of a multi-core processor. . As described below, specific examples of such reliability maximization algorithms may be performed by various embodiments.

引き続き図3を参照して、制御はブロック240からブロック250に進む。ブロック250においては、選択されたコアをアクティブであると識別してよい。たとえば、一実施形態においては、ビットマップもしくはその他の格納形態により実施されるコア位置マップに、アクティベートされたコア、つまりアクティブ状態に設定されたコアに対応するエントリを設けて、当該コアをアクティブであると識別できるようにしてよい。次に、制御はブロック260へと進む。ブロック260においては、予備コアのカウント値をディクリメントしてよい(ブロック260)。図3に示すように、制御はブロック260から上記した菱形230へと戻る。   With continued reference to FIG. 3, control proceeds from block 240 to block 250. In block 250, the selected core may be identified as active. For example, in one embodiment, the core location map implemented by a bitmap or other storage form is provided with an entry corresponding to the activated core, i.e., the core set to the active state, to activate the core. It may be possible to identify that there is. Control then proceeds to block 260. In block 260, the reserve core count value may be decremented (block 260). As shown in FIG. 3, control returns from block 260 to diamond 230 described above.

図3の実施形態において本特定的実施例を記載したが、本発明の範囲はこれに限定されず、コア割り当てのその他の方法を実行してよいことは理解されよう。いくつかの実施形態においては、多数コアプロセッサが高出力化されるたびに図3の方法200を実行してよい。しかし、プロセッサのリセット時もしくはその他の類似のイベント時等、その他の多様な機会において方法200を実施してよい。   Although this particular example has been described in the embodiment of FIG. 3, it will be appreciated that the scope of the present invention is not so limited and other methods of core allocation may be implemented. In some embodiments, the method 200 of FIG. 3 may be performed each time a multi-core processor is powered up. However, the method 200 may be implemented at various other occasions, such as at processor reset or other similar event.

図4は、本発明の一実施形態に係る再割り当て方法のフロー図である。図3に関して記載した方法200と同様、図4の方法300は、マイクロコントローラ、専用ロジック、多数コアプロセッサのコア、もしくはその他の手段を介して実行してよい。   FIG. 4 is a flowchart of a reallocation method according to an embodiment of the present invention. Similar to the method 200 described with respect to FIG. 3, the method 300 of FIG. 4 may be performed via a microcontroller, dedicated logic, a core of a multi-core processor, or other means.

図4に示すように、方法300は、コア故障情報を受け取ること(ブロック310)から開始してよい。たとえば、故障しかけているコアは、故障信号を送ってよい。または、ポーリング法により、たとえばウォッチドッグタイマーメカニズムに従って周期的にコアにポーリングしてよい。コアがポーリングに応答しない場合、故障であることが示される。このような故障情報を受け取ると、故障したコアを故障コアとして識別してよい(ブロック320)。たとえば、ビットマップ等のコアマップを故障情報により更新してよい。   As shown in FIG. 4, the method 300 may begin with receiving core failure information (block 310). For example, a core that is about to fail may send a failure signal. Alternatively, the core may be polled periodically by a polling method, for example according to a watchdog timer mechanism. If the core does not respond to polling, it indicates a failure. Upon receiving such failure information, the failed core may be identified as a failed core (block 320). For example, a core map such as a bitmap may be updated with failure information.

次に、制御は菱形330に進んでよい。菱形330においては、多数コアプロセッサの性能は、(故障に照らして)目標レベルを下回るかを判定してよい(菱形330)。下回っていなければ、方法300は終了してよい。下回っていれば、制御は菱形330からブロック340へと進む。ブロック340においては、信頼性最大化アルゴリズムに基づいてコアを割り当ててよい(ブロック340)。また、それに従ってインターコネクト・ファブリックを再構成してよい。制御はブロック340からブロック350に進む。ブロック350においては、選択したコアをアクティブであると識別してよい。その後、制御はブロック360に進み、予備コアのカウント値をディクリメントしてよい(ブロック360)。図4に示すように、制御はブロック360から上記した菱形330へと戻る。   Control may then proceed to diamond 330. In diamond 330, it may be determined whether the performance of the multi-core processor is below a target level (in light of the failure) (diamond 330). If not, method 300 may end. If so, control proceeds from diamond 330 to block 340. In block 340, cores may be allocated based on a reliability maximization algorithm (block 340). The interconnect fabric may also be reconfigured accordingly. Control proceeds from block 340 to block 350. In block 350, the selected core may be identified as active. Control may then proceed to block 360 and decrement the reserve core count value (block 360). As shown in FIG. 4, control returns from block 360 to diamond 330 described above.

上記したように、割り当てモードであるか再割り当てモードであるかに拘わらず、実施形態においては、アクティベートすべきコアの選択において信頼性最大化アルゴリズムを実施してよい。図5は、本発明の一実施形態に係る信頼性最大化方法のフロー図である。図5に示すように、方法400は、たとえば予備コアリストにある予備コアを分析用に選択すること(ブロック410)から開始してよい。分析は、分析対象のコアに隣接するコアを特定することから始めてよい(ブロック420)。いくつかの実施形態においては、所与のプロセッサ配置及び所与のコアの位置に依存して、当該所与のコアには1個乃至4個のコアが隣接する。したがって、ブロック420においては、これらの隣接コアを特定してよい。次に、故障状態又は予備状態にある隣接コアの個数を判定する(ブロック430)。   As described above, regardless of whether the mode is the allocation mode or the reallocation mode, in the embodiment, the reliability maximization algorithm may be implemented in selecting a core to be activated. FIG. 5 is a flowchart of a reliability maximization method according to an embodiment of the present invention. As shown in FIG. 5, the method 400 may begin, for example, by selecting a spare core in the spare core list for analysis (block 410). The analysis may begin by identifying cores that are adjacent to the core to be analyzed (block 420). In some embodiments, one to four cores are adjacent to a given core, depending on the given processor arrangement and the location of the given core. Accordingly, in block 420, these adjacent cores may be identified. Next, the number of adjacent cores in a failed or spare state is determined (block 430).

制御はブロック430から菱形440へと進む。菱形440においては、選択したコアに関してブロック430で判定した個数(つまり、隣接する個数)が現在の最適コアについての個数より大きいかを判定してよい(菱形440)。つまり、(隣接する予備コアもしくは故障コアの)数が最大である以前に分析したコアの当該値に現在の隣接個数を比較してよい。選択したコアの数のほうが大きければ、制御はブロック450に進み、選択したコアが最適コアとして設定される。制御はブロック450又は菱形440から菱形460へと進む。菱形460においては、分析されていない予備コアが残っているかを判定してよい(菱形460)。残っている場合、制御は上記したブロック410に戻る。残っていなければ、制御はブロック470に進む。制御470においては、特定された最適コアを割り当ててよい(ブロック470)。つまり、アクティブな隣接コアの個数が最小であるコアが選択される。このように、故障した隣接コアもしくは予備の隣接コアが選択したアクティブコアの放熱を助けるので、選択したコアにおいて、また多数コアプロセッサ全体において温度を低下させることができる。図5の実施形態において本特定的実施例を記載したが、本発明の範囲はこれに限定されないことは理解されよう。   Control proceeds from block 430 to diamond 440. In diamond 440, it may be determined whether the number determined in block 430 for the selected core (ie, the number adjacent) is greater than the number for the current optimal core (diamond 440). That is, the current number of neighbors may be compared to the value of the previously analyzed core that has the largest number (adjacent spare or failed cores). If the number of selected cores is greater, control proceeds to block 450 where the selected core is set as the optimal core. Control proceeds from block 450 or diamond 440 to diamond 460. In diamond 460, it may be determined whether a spare core that has not been analyzed remains (diamond 460). If so, control returns to block 410 described above. If not, control proceeds to block 470. In control 470, the identified optimal core may be assigned (block 470). That is, the core with the smallest number of active adjacent cores is selected. In this manner, the failed adjacent core or the spare adjacent core helps to dissipate the selected active core, so that the temperature can be lowered in the selected core and in the entire multi-core processor. Although this particular example has been described in the embodiment of FIG. 5, it will be understood that the scope of the invention is not limited thereto.

いくつかの実施形態においては、多数コア信頼性を最大化し、かつ目標性能を保証するべくいずれのコアをアクティベートするかをアルゴリズムにより選択してよい。どのコアが故障し、どのコアが現在接続(online)されているかもしくは予備状態にあるかについての情報をマイクロコントローラがグローバルに収集してよい。一実施形態においては、この情報をマイクロコントローラ上にビットマップとして保持してよい。別の実施形態においては、コアが完全故障したこと、もしくは動作周波数は低下するがコアは動作し続けるであろうことを故障として表してよい。酸化物の厚さに関わる問題、NBTI効果等の、pチャネル酸化金属半導体(PMOS)トランジスタの閾値電圧を経時上昇させる経時効果により劣化したコアは、当初の周波数では動作できないが、それより低い周波数においては動作できる。   In some embodiments, an algorithm may select which core to activate to maximize multi-core reliability and ensure target performance. The microcontroller may collect information globally about which core has failed and which core is currently connected or in a spare state. In one embodiment, this information may be maintained as a bitmap on the microcontroller. In another embodiment, a failure may be expressed as a complete failure of the core or a decrease in operating frequency but the core will continue to operate. Cores degraded due to aging effects that raise the threshold voltage of p-channel metal oxide semiconductor (PMOS) transistors over time, such as oxide thickness problems, NBTI effects, etc., cannot operate at the original frequency, but at lower frequencies Can work.

コアの割り当て/再割り当てを行ったとき、マイクロコントローラ上のコアビットマップを更新してよい。別の実施形態においては、アルゴリズムをソフトウェアとして実装してコア上でカーネルもしくはユーザ処理として実行してよい。又は、アルゴリズムをハードウェア(たとえば、単純な組み込みコア/ROMの組み合わせ)として実装してマイクロコントローラの一部としてよい。いずれの場合においても、アルゴリズムは比較的に低頻度で(たとえば、コアが故障したとき、又は負荷の実質的な変化が生じたとき)実行されるので、メカニズムに依存した出力への影響は最小限である。   When assigning / reassigning cores, the core bitmap on the microcontroller may be updated. In another embodiment, the algorithm may be implemented as software and executed on the core as a kernel or user process. Alternatively, the algorithm may be implemented as hardware (eg, a simple embedded core / ROM combination) and be part of a microcontroller. In either case, the algorithm is executed relatively infrequently (eg, when a core fails or when a substantial change in load occurs), so the mechanism-dependent output impact is minimal. It is the limit.

一実施形態においては、アルゴリズムは、いずれのコアを接続(online)すべきか(つまり、アクティブもしくはイネーブル状態にするか)を選択する初期コア割り当てセクションと、コアの故障時に多数コア信頼性を最大化するべくいずれの予備コアをアクティベートすべきかを決定する再構成セクションとの二つのセクションを有する。アルゴリズムは、更に(たとえば、再構成セクションにおいて)通信処理を取り扱い、性能が最大化されるようにそれらをコアに割り当ててよい。   In one embodiment, the algorithm maximizes multi-core reliability in the event of a core failure, with an initial core assignment section that selects which core should be online (ie, active or enabled) It has two sections with a reconfiguration section that determines which spare cores to activate. The algorithm may further handle communication processing (eg, in the reconfiguration section) and assign them to the cores so that performance is maximized.

表1は、本発明の一実施形態に係るアルゴリズムの擬似コード表記を示す。   Table 1 shows a pseudo code notation of an algorithm according to an embodiment of the present invention.

Figure 0005328743
Figure 0005328743

表1に示すように、割り当て部分(CORE ALLOCATION)において、プリセットされた性能目標に達するまでコアを選択してよい。性能目標は、(たとえば、プロセッサの平均販売価格に基づいた)ユーザにより入手可能なコアの個数に対応させてよい。または、性能目標は、多数コアプロセッサの全計算能力を抽象したものであってよく、処理の変動とコアの劣化とを考慮に入れることが可能となる。これらの課題に起因して、いくつかのコアはその他のコアよりも速度が落ちる可能性がある。このような実施形態においては、コア毎のダイ内変動プローブ(in−die variation probe;IDVP)を介してコア速度をマイクロコントローラに報告してよい。各コアの速度はコア割り当てループにおける考慮事項としてマイクロコントローラにより記憶してよい。   As shown in Table 1, in the allocation part (CORE ALLOCATION), cores may be selected until a preset performance target is reached. The performance goal may correspond to the number of cores available to the user (eg, based on the average selling price of the processor). Alternatively, the performance goal may be an abstraction of the total computing power of a multi-core processor, allowing for processing variations and core degradation to be taken into account. Due to these challenges, some cores may be slower than others. In such embodiments, the core speed may be reported to the microcontroller via an in-die variation probe (IDVP) per core. The speed of each core may be stored by the microcontroller as a consideration in the core assignment loop.

引き続き表1を参照して、再構成部分(CORE RECONFIGURATION)はコアの故障によりアクティベートされる。目標性能に達するまで、一個(もしくはそれ以上)の予備コアを接続(online)してよい。再割り当てにおいては、コア周波数の低下も考慮してよい。コアのIDVPもしくは予測可能コアマイレージ監視回路(predictive core mileage monitoring circuits)によりコア周波数の低下がマイクロコントローラに報告されたとき、マイクロコントローラのメモリにおいてコア速度が更新され、コア再構成ループにおいて劣化が考慮される。現在の性能が劣化により目標性能を下回ったとき、コアを更に接続(online)する。   Still referring to Table 1, the reconfiguration part (CORE RECONFIGURATION) is activated due to a core failure. One (or more) spare cores may be connected until the target performance is reached. In the reassignment, a decrease in the core frequency may be considered. When core IDVP or predictable core mileage monitoring circuits report a decrease in core frequency to the microcontroller, the core speed is updated in the microcontroller memory and degradation is taken into account in the core reconfiguration loop Is done. When the current performance falls below the target performance due to deterioration, the core is further connected.

表1の実施形態に示すように、コア割り当てセクションとコア再割り当てセクションの両方が同じ関数T−aware_cores、つまり接続(online)すべき予備コアを選択する温度アウェアな関数を用いる。関数T−aware_coresは、多数コア信頼性を最大化すべく利用可能な予備のセットから最適な予備コアを選択する欲張り最適化アプローチを用いる。表1の実施形態においては、最適コアは、接続(online)された隣接コアがもっとも少ないコアである。故障コアも予備コアと類似した放熱特性を有するので、候補コアの隣接コアを確認するとき故障コアも考慮されることに注意されたい。また、歩留まりに関する問題により故障したコアも(存在するのであれば)、候補コアの隣接コアとして考慮されるので、動作コアの信頼性を増大させる最適化機会が拡大されることにも注意されたい。   As shown in the embodiment of Table 1, both the core allocation section and the core reassignment section use the same function T-aware_cores, that is, a temperature-aware function that selects a spare core to be connected. The function T-aware_cores uses a greedy optimization approach that selects the optimal spare core from the available spare set to maximize multi-core reliability. In the embodiment of Table 1, the optimal core is the core with the fewest connected adjacent cores. It should be noted that the failed core is also considered when checking the adjacent core of the candidate core, since the failed core has similar heat dissipation characteristics as the spare core. It should also be noted that cores that fail due to yield issues (if any) are considered neighbors of the candidate core, thus expanding the optimization opportunities that increase the reliability of the working core. .

二次的な考慮事項として、性能の視点からコア間通信を考察することができる。したがって、処理間での通信が存在する場合であれば、接続(online)すべきコアを選択した後において、オプションとしての二次的な最適化のパスをアクティベートする。いくつかの実施例においては、オペレーティングシステム(OS)がこのデータをマイクロコントローラに供給してよい。この最適化パス(つまり、表1における関数Minimize_communication)は、積極的な最適化アプローチを用いて互いに近接したコアに対して相互通信する処理をそれぞれ割り当てることにより性能を向上させることができる。接続(online)されたコアから開始して、このパスは、次の相互通信処理を最近接したコアに割り当てる。所望のコアの全てが接続(online)されるまでこの割り当てを反復してよい。他の実施形態においては、温度アウェアアルゴリズムをディセーブルし、緊密に相互通信する処理、たとえば緊密に関連する処理に対して互いに近接した複数のコアを割り当ててよい。   As a secondary consideration, inter-core communication can be considered from a performance perspective. Therefore, if there is communication between processes, an optional secondary optimization path is activated after selecting a core to be connected. In some embodiments, an operating system (OS) may provide this data to the microcontroller. This optimization path (i.e., function Minimize_communication in Table 1) can improve performance by assigning processes that communicate with each other to adjacent cores using an aggressive optimization approach. Starting from the connected core, this path assigns the next intercommunication process to the closest core. This assignment may be repeated until all of the desired cores are online. In other embodiments, the temperature aware algorithm may be disabled and multiple cores in close proximity to each other may be assigned to processes that are in close communication with each other, eg, processes that are closely related.

つまり、本発明の実施形態に係る割り当て/再割り当てメカニズムは、OS/アプリケーション制御を介して有効化及び無効化することができる。たとえば、計算量に対する通信量の比が高ければ、これらのメカニズムを無効化して信頼性を二次的な目標とした上で、互いに近接したコアを割り当てることができるようにして性能を高めてよい。しかし、他の実施形態においては、多数コアプロセッサの寿命のうちの消耗期の大半においてはコア故障率が高まるであろうので、この期においてはメカニズムをイネーブルしてよい。   That is, the allocation / reassignment mechanism according to the embodiment of the present invention can be enabled and disabled via OS / application control. For example, if the ratio of the amount of traffic to the amount of computation is high, these mechanisms may be disabled to make reliability a secondary target, and cores close to each other may be assigned to improve performance. . However, in other embodiments, the mechanism may be enabled during this period, as the core failure rate will increase during the majority of the wear-out period of the multi-core processor lifetime.

多くの異なるシステム類型において実施形態を実施してよい。図6は、本発明の実施形態に係るマルチプロセッサシステムのブロック図である。図6に示すように、マルチプロセッサシステムは、ポイントツーポイントのインターコネクトシステムであり、ポイントツーポイントインターコネクト550を介して結合された第一プロセッサ570及び第二プロセッサ580を含む。しかし、他の実施形態においては、マルチプロセッサシステムは、別のバスアーキテクチャのものであってよく、たとえば、マルチドロップバスもしくは別のその種のインプリメンテーションであってよい。図6に示すように、プロセッサ570及び580のそれぞれは、第一及び第二のプロセッサコア(つまり、プロセッサコア574a及び574b、並びにプロセッサコア584a及び584b)を含む多数コアプロセッサであってよいが、特定の実施形態においてはその他のコア、可能性としてはより多くのその他のコアが存在してよい。プロセッサ570及び580は、更に、多数コアプロセッサのコアの割り当てを行うアロケータとして機能するコントローラ575及び585をそれぞれ含んでよい。多様な実施例において、コントローラ575及び585は、割り当てプログラムを含む組み込みROMに従ってプログラムされたマイクロコントローラであってよく、温度アウェアアルゴリズムに基づいてコアを複数のグループへと割り当ててよいが、その他の実施例も可能である。図6の実施形態においては詳細に示さないが、コントローラ575及び585は、プロセッサ570及び580に存在するコアと、それら各コアのステータス(たとえば、アクティブ、予備、もしくは故障)とを識別するビットマップもしくはその他のマップ情報を記憶するメモリを含んでよい。   Embodiments may be implemented in many different system types. FIG. 6 is a block diagram of the multiprocessor system according to the embodiment of the present invention. As shown in FIG. 6, the multiprocessor system is a point-to-point interconnect system and includes a first processor 570 and a second processor 580 coupled via a point-to-point interconnect 550. However, in other embodiments, the multiprocessor system may be of another bus architecture, such as a multi-drop bus or another such implementation. As shown in FIG. 6, each of processors 570 and 580 may be a multi-core processor including first and second processor cores (ie, processor cores 574a and 574b, and processor cores 584a and 584b), There may be other cores in certain embodiments, possibly more other cores. Processors 570 and 580 may further include controllers 575 and 585, respectively, that function as allocators that perform core assignments for multi-core processors. In various embodiments, the controllers 575 and 585 may be microcontrollers programmed according to an embedded ROM that includes an assignment program and may assign cores to groups based on a temperature-aware algorithm, but other implementations. Examples are also possible. Although not shown in detail in the embodiment of FIG. 6, controllers 575 and 585 are bitmaps that identify the cores present in processors 570 and 580 and the status of each of those cores (eg, active, spare, or failed). Alternatively, a memory for storing other map information may be included.

引き続き図6を参照して、第一プロセッサ570は、メモリコントローラハブ(MCH)572と、ポイントツーポイント(P−P)インターフェース576及び578とを更に含む。同様に、第二プロセッサ580は、MCH582と、P−Pインターフェース586及び588とを含む。図6に示すように、MCH572及び582は、プロセッサをメモリ、つまりメモリ532及びメモリ534へとそれぞれ接続し、これらメモリは、各プロセッサにローカルに取り付けられたメインメモリの一部であってよい。いくつかの実施例においては、グローバルメモリの少なくともいくらかの容量をプロセッサ570及び580の内部に実装してよい。   With continued reference to FIG. 6, the first processor 570 further includes a memory controller hub (MCH) 572 and point-to-point (PP) interfaces 576 and 578. Similarly, the second processor 580 includes an MCH 582 and PP interfaces 586 and 588. As shown in FIG. 6, MCHs 572 and 582 connect the processor to memory, ie, memory 532 and memory 534, respectively, which may be part of the main memory locally attached to each processor. In some embodiments, at least some capacity of global memory may be implemented within processors 570 and 580.

いくつかの実施形態においては、マルチプロセッサシステムのオペレーティングシステム(OS)は、第一プロセッサ570及び第二プロセッサ580のうちの一以上の上で動作してよい。OSは、これらのプロセッサ及びそれらのコア上での処理をスケジューリングするスケジューラを含んでよい。いくつかの実施例においては、コントローラ575及び585は、アクティブ、予備、及び故障したコアの識別を含むマップ情報を提供してよい。スケジューラは、この情報を用い、第一プロセッサ570及び第二プロセッサ580の一方もしくは他方へと、あるいはこれらの一方もしくは他方から、又はこれらが有するコア間において処理を往来させてよい。更に、スケジューラは割り当てたコアに基づいてその他の制御機能を実施してよく、たとえば相互通信する処理間の距離を縮小するコア割り当てを実施してよい。他の実施形態においては、コントローラ575及び585により、又はプロセッサ570及び580におけるその他の位置において、このようなスケジューリングを実施してよい。   In some embodiments, the operating system (OS) of the multiprocessor system may run on one or more of the first processor 570 and the second processor 580. The OS may include a scheduler that schedules processing on these processors and their cores. In some embodiments, controllers 575 and 585 may provide map information including identification of active, spare, and failed cores. The scheduler may use this information to route processing to or from one or the other of the first processor 570 and the second processor 580 or between the cores that they have. Further, the scheduler may perform other control functions based on the assigned cores, for example, core assignments that reduce the distance between processes that communicate with each other. In other embodiments, such scheduling may be performed by controllers 575 and 585 or at other locations in processors 570 and 580.

第一プロセッサ570及び第二プロセッサ580は、それぞれP−Pインターコネクト552及び554を介してチップセット590に接続されてよい。図6に示すように、チップセット590は、P−Pインターフェース594及び598を含む。チップセット590は、チップセット590を高性能グラフィックスエンジン538に接続するインターフェース592を更に含む。一実施形態においては、アドバンスド・グラフィックス・ポート(AGP)バス539を用いてグラフィックスエンジン538をチップセット590に接続してよい。AGPバス539は、カリフォルニア州サンタクララ所在のインテルコーポレーションにより1998年5月4日に発行されたアクセラレーテッド・グラフィックス・ポート・インターフェース仕様書改訂版2.0に準拠したものであってよい。または、ポイントツーポイントインターコネクト539によりこれらのコンポーネントを接続してよい。   The first processor 570 and the second processor 580 may be connected to the chipset 590 via PP interconnects 552 and 554, respectively. As shown in FIG. 6, the chipset 590 includes PP interfaces 594 and 598. The chipset 590 further includes an interface 592 that connects the chipset 590 to the high performance graphics engine 538. In one embodiment, the graphics engine 538 may be connected to the chipset 590 using an advanced graphics port (AGP) bus 539. The AGP bus 539 may be compliant with the Accelerated Graphics Port Interface Specification Revision 2.0 issued May 4, 1998 by Intel Corporation of Santa Clara, California. Alternatively, these components may be connected by a point-to-point interconnect 539.

次に、チップセット590は、インターフェース596を介して第一バス516に接続されてよい。一実施形態においては、第一バス516は、1995年6月付のPCIローカルバス仕様書実機バージョン改訂版2.1に規定される周辺コンポーネントインターコネクト(PCI)バスであってよく、又はPCIエクスプレスバス等のバス、もしくはその他の第三世代入出力(I/O)インターコネクトバスであってよいが、本発明の範囲はこれらに限定されない。   Next, the chipset 590 may be connected to the first bus 516 via the interface 596. In one embodiment, the first bus 516 may be a peripheral component interconnect (PCI) bus as defined in the PCI Local Bus Specification Real Machine Version Revision 2.1 dated June 1995, or a PCI Express bus. Or other third generation input / output (I / O) interconnect buses, but the scope of the invention is not limited thereto.

図6に示すように、多様なI/Oデバイス514を第一バス516に接続してよく、第一バス516を第二バス520に接続するバスブリッジ518も第一バス516に接続してよい。一実施形態においては、第二バス520はローピンカウント(LPC)バスであってよい。一実施形態においては、たとえば、キーボード/マウス522、通信装置526、及びコード530を含むデータストレージユニット528等の多様なデバイスを第二バス520に接続してよい。また、オーディオI/O524を第二バス520に接続してよい。   As shown in FIG. 6, various I / O devices 514 may be connected to the first bus 516, and a bus bridge 518 that connects the first bus 516 to the second bus 520 may also be connected to the first bus 516. . In one embodiment, the second bus 520 may be a low pin count (LPC) bus. In one embodiment, various devices may be connected to the second bus 520, such as a data storage unit 528 including, for example, a keyboard / mouse 522, a communication device 526, and a code 530. Further, the audio I / O 524 may be connected to the second bus 520.

実施形態をコードにより実施して格納媒体に格納してよく、当該格納媒体は、命令の実行をシステムにプログラムすべく用いることが可能な当該命令を格納している。格納媒体は、フロッピーディスク、光ディスク、コンパクトディスク読み出し専用メモリ(CD−ROM)、書き換え可能コンパクトディスク(CD−RW)、光磁気ディスク等のあらゆる種類のディスク、読み出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)及びスタティックランダムアクセスメモリ(SRAM)等のランダムアクセスメモリ(RAM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)等の半導体デバイス、磁気カードもしくは光カード、又は電子形態の命令の格納に適したその他あらゆる種類の媒体であってよいが、これらに限定されない。   Embodiments may be implemented with code and stored in a storage medium that stores the instructions that can be used to program execution of instructions into the system. Storage media include floppy disks, optical disks, compact disk read-only memory (CD-ROM), rewritable compact disks (CD-RW), all types of disks such as magneto-optical disks, read-only memory (ROM), dynamic random access Semiconductors such as random access memory (RAM) such as memory (DRAM) and static random access memory (SRAM), erasable programmable read only memory (EPROM), flash memory, electrically erasable programmable read only memory (EEPROM) It can be, but is not limited to, a device, a magnetic or optical card, or any other type of medium suitable for storing instructions in electronic form.

限られた数の実施形態に関して本発明を記載したが、当業者であれば、これらについて多数の変更及び多様化を認識するであろう。本発明の真の趣旨及び範囲に存在するこれら全ての変更及び多様化を添付の請求項は範囲に含むことが意図される。   Although the present invention has been described with respect to a limited number of embodiments, those skilled in the art will recognize numerous modifications and diversifications thereof. All such modifications and variations that come within the true spirit and scope of the invention are intended to be covered by the appended claims.

Claims (29)

アロケータが、多数コアプロセッサにおける複数の利用可能なコアを特定することと、
前記アロケータが、前記複数の利用可能なコアのうち第一のサブセットを処理を実行するようイネーブル状態に割り当て、前記複数の利用可能なコアのうち第二のサブセットを予備状態に割り当てることと、
前記アロケータが、前記割り当てに関する情報をストレージに格納することと、
前記アロケータが、オペレーティングシステム(OS)からコア間通信データを受け取ることと、
前記アロケータが、前記コア間通信データのデータ量に応じて、前記イネーブル状態にあるコアに隣接する個数が最小であるコア、又は、緊密に相互通信する処理に対して互いに近接した複数のコアをイネーブル状態に割り当てることと、
を備える方法。
The allocator identifies multiple available cores in a multi-core processor;
The allocator assigns a first subset of the plurality of available cores to an enabled state to perform processing and assigns a second subset of the plurality of available cores to a spare state;
The allocator stores information on the allocation in storage;
The allocator receives inter-core communication data from an operating system (OS);
Depending on the amount of inter-core communication data, the allocator may have a minimum number of cores adjacent to the core in the enabled state, or a plurality of cores close to each other for the process of closely communicating with each other. Assigning to the enabled state ,
A method comprising:
前記アロケータが、前記アロケータに対応付けられたビットマップに前記情報を格納することを更に含み、前記ビットマップは前記多数コアプロセッサのコアの配置に対応し、前記アロケータは、前記第一及び第二のサブセットを割り当てる、
請求項に記載の方法。
The allocator further includes storing the information in a bitmap associated with the allocator, wherein the bitmap corresponds to an arrangement of cores of the multi-core processor, and the allocator includes the first and second allocators. Assign a subset of
The method of claim 1 .
前記アロケータが、前記第一のサブセットのうちの故障したコアに関する故障情報を受け取り、前記第二のサブセットのコアを前記第一のサブセットのコアとして再割り当てすることを更に含む請求項1または2に記載の方法。 Said allocator, receives the failure information about the failed core of said first subset, the second subset of the core to claim 1 or 2 further comprising re-assigned as the core of the first subset The method described. 前記第一のサブセットに含まれるコアに隣接する個数が最小である前記第二のサブセットの前記コアを特定することにより、前記アロケータが、前記第二のサブセットの前記コアを再割り当てすることを更に含む請求項に記載の方法。 The allocator further reallocating the cores of the second subset by identifying the cores of the second subset that are minimally adjacent to the cores included in the first subset; The method of claim 3 comprising. 第一のサブセットにおける第一のコアと前記第一のサブセットにおける第二のコアとの間の距離に基づいて、前記アロケータが、第一の処理を前記第一のコアに割り当て、第二の処理を前記第二のコアに割り当てることを更に含み、前記第一の処理と前記第二の処理とは互いに通信する、
請求項1からのいずれか一項に記載の方法。
Based on the distance between the first core in the first subset and the second core in the first subset, the allocator assigns a first process to the first core and a second process Assigning to the second core, the first process and the second process communicate with each other;
The method according to any one of claims 1 to 4 .
前記第二のサブセットと前記多数コアプロセッサにおける故障したコアとを介して、前記アロケータが、前記第一のサブセットが発生した熱を放熱させることを更に含む請求項1からのいずれか一項に記載の方法。 Via the core failed in the second of the many-core processor and the subset, the allocator, claim 1, wherein said first subset further includes dissipating heat generated in any one of the 5 The method described. 前記多数コアプロセッサの信頼性メトリックが最大化されるように、前記アロケータが、前記第一のサブセットを割り当てることを更に含む請求項1からのいずれか一項に記載の方法。 The method of any one of claims 1 to 6 , further comprising the allocator assigning the first subset such that a reliability metric of the multi-core processor is maximized. 前記多数コアプロセッサの動作における計算量に対する通信量の比に基づいて前記信頼性メトリックが最大化されるように、前記アロケータが、前記第一のサブセットの割り当てをディセーブルすることを更に含む請求項に記載の方法。 The allocator further comprises disabling allocation of the first subset so that the reliability metric is maximized based on a ratio of traffic to computation in operation of the multi-core processor. 8. The method according to 7 . ダイ上に位置する複数のコアと、アクティブステータスとすべき第一グループのコアを選択し、バックアップステータスとすべき第二グループのコアを選択するアロケータとを含む多数コアプロセッサを含み、
前記アロケータは、前記第一グループのコアを前記ダイ上のそれらの位置に基づき選択し、オペレーティングシステム(OS)がコア間通信データを前記アロケータに供給し、前記アロケータは、前記コア間通信データのデータ量に応じて、第一グループのコアに隣接する個数が最小であるコア、又は、緊密に相互通信する処理に対して互いに近接した複数のコアを第一グループに割り当てる、装置。
A multi-core processor including a plurality of cores located on the die and an allocator that selects a first group of cores to be in active status and a second group of cores to be in backup status;
The allocator, a core of the first group selected based on their position on the die, and supplies the communication data between the operating system (OS) core to the allocator, the allocator between the core of the communication data An apparatus that assigns, to a first group, a core having the smallest number adjacent to a core of the first group or a plurality of cores that are close to each other for a process of closely communicating with each other according to a data amount .
前記アロケータは、前記第一グループのコアのうち一のコアが故障した後、前記第二グループのコアのうち一のコアを前記第一グループのコアのうちに含めるべく選択する、
請求項に記載の装置。
The allocator selects one of the second group of cores to include in the first group of cores after one of the first group of cores fails.
The apparatus according to claim 9 .
前記アロケータは、第一の処理を前記第一グループのコアのうち第一のコアにスケジューリングし、第二の処理を前記第一グループのコアのうち第二のコアにスケジューリングし、
前記第一の処理と前記第二の処理は、互いに通信する、
請求項9または10に記載の装置。
The allocator schedules a first process to a first core of the first group of cores, and schedules a second process to a second core of the first group of cores;
The first process and the second process communicate with each other;
The apparatus according to claim 9 or 10 .
前記多数コアプロセッサは、コアステータス情報を格納するストレージを更に含み、前記コアステータス情報は、前記複数のコアの位置及び対応するステータス情報を含む、
請求項9から11のいずれか一項に記載の装置。
The multi-core processor further includes storage for storing core status information, and the core status information includes positions of the plurality of cores and corresponding status information.
12. A device according to any one of claims 9 to 11 .
前記アロケータは、前記第一グループのコアのうち一のコアが故障した後に前記ストレージにアクセスし、前記第一グループのコアとして再構成すべき前記第二グループのコアのうちの一のコアを前記コアステータス情報に基づき選択する、
請求項12に記載の装置。
The allocator accesses the storage after one of the cores of the first group fails, and sets one core of the second group of cores to be reconfigured as the core of the first group. Select based on core status information,
The apparatus according to claim 12 .
前記アロケータは、前記多数コアプロセッサにおける専用コアを含む、
請求項9から13のいずれか一項に記載の装置。
The allocator includes a dedicated core in the multi-core processor;
The apparatus according to any one of claims 9 to 13 .
前記アロケータは、割り当てプログラムを格納する読み出し専用メモリ(ROM)を含むマイクロコントローラを含む、
請求項9から14のいずれか一項に記載の装置。
The allocator includes a microcontroller including a read only memory (ROM) that stores an allocation program;
15. A device according to any one of claims 9 to 14 .
機械により実行されると前記機械をイネーブルする命令を含むプログラムであって、前記命令は、アロケータに、
オペレーティングシステム(OS)からプロセッサのコア間通信データを受け取ることと、
前記コア間通信データのデータ量に応じて、イネーブル状態にあるコアに隣接する個数が最小であるコア、又は、緊密に相互通信する処理に対して互いに近接した複数のコアをイネーブル状態に割り当てることと、
を含む方法を実行させるプログラム。
A program comprising instructions that, when executed by a machine, enable the machine, the instructions to an allocator,
Receiving inter-core communication data of the processor from an operating system (OS);
According to the data amount of the inter-core communication data, the minimum number of cores adjacent to the cores in the enabled state or a plurality of cores close to each other in the process of closely communicating with each other are assigned to the enabled state. When,
A program for executing a method including:
前記方法は、温度アウェアアルゴリズムを用いて少なくとも一つの予備コア選択することにより、前記プロセッサの動作温度を低下させることを更に含む、
請求項16に記載のプログラム。
The method further includes reducing the operating temperature of the processor by selecting at least one spare core using a temperature aware algorithm.
The program according to claim 16 .
前記方法は、前記プロセッサの性能を向上させるべく前記少なくとも一つの予備コアを選択させることを更に含み、前記プロセッサは、多数コアプロセッサを含む、
請求項16または17に記載のプログラム。
The method further includes selecting the at least one spare core to improve the performance of the processor, the processor including a multi-core processor.
The program according to claim 16 or 17 .
前記方法は、イネーブルされたコアのサブセットのうち第一のコアと前記イネーブルされたコアのサブセットのうち第二のコアとの間の距離に基づいて、第一の処理を前記第一のコアに割り当て、第二の処理を前記第二のコアに割り当てさせることを更に含み、前記第一の処理と前記第二の処理は互いに通信する、
請求項16から18のいずれか一項に記載のプログラム。
The method performs a first process on the first core based on a distance between a first core of the enabled core subset and a second core of the enabled core subset. Further comprising assigning and assigning a second process to the second core, wherein the first process and the second process communicate with each other;
The program according to any one of claims 16 to 18 .
インターコネクト・ファブリックを介して結合される複数のコアと、第一のサブセットのコアを動作に割り当て、第二のサブセットのコアを予備として割り当てるコントローラとを含む多数コアプロセッサと、
前記多数コアプロセッサに接続されるダイナミックランダムアクセスメモリ(DRAM)と
を含み、
前記コントローラは、前記第一のサブセットのコアに隣接するコアのアクティベート・ステータスに基づき前記第一のサブセットのコアを割り当て、
前記コントローラは、オペレーティングシステム(OS)からコア間通信データを受け取り、
前記コントローラは、前記コア間通信データのデータ量に応じて、前記第一のサブセットのコアに隣接する個数が最小であるコア、又は、緊密に相互通信する処理に対して互いに近接した複数のコアを前記第一のサブセットに割り当てる、
システム。
A multi-core processor including a plurality of cores coupled through an interconnect fabric and a controller that assigns a first subset of cores to operations and a second subset of cores as spares;
A dynamic random access memory (DRAM) connected to the multi-core processor;
The controller assigns the first subset of cores based on an activation status of cores adjacent to the first subset of cores;
The controller receives inter-core communication data from an operating system (OS),
The controller has a minimum number of cores adjacent to the cores of the first subset according to a data amount of the inter-core communication data, or a plurality of cores close to each other for a process of closely communicating with each other Is assigned to the first subset ,
system.
前記コントローラは、前記第一のサブセットのコアのうち一のコアが故障したとき、前記第二のサブセットのコアのうち、前記第一のサブセットのコアに隣接する個数が最小であるコアを、前記第一のサブセットのコアのうちに含めるべく選択する、
請求項20に記載のシステム。
The controller, when one of the cores of the first subset fails, a core having the smallest number adjacent to the cores of the first subset of the cores of the second subset, Choose to include in the first subset of cores,
The system according to claim 20 .
前記コントローラは、第一の処理を前記第一のサブセットのコアのうち第一のコアにスケジューリングし、第二の処理を前記第一のサブセットのコアのうち第二のコアにスケジューリングするとき、第一の動作モードにおいては温度アウェアアルゴリズムに従って、第二の動作モードにおいては前記温度アウェアアルゴリズムに従わずにスケジューリングする、
請求項20または21に記載のシステム。
The controller schedules a first process to a first core of the first subset of cores and schedules a second process to a second core of the first subset of cores; Scheduling according to a temperature aware algorithm in one operating mode and not following the temperature aware algorithm in a second operating mode;
The system according to claim 20 or 21 .
前記コントローラは、コアステータス情報を格納するストレージを更に含み、前記コアステータス情報は、前記複数のコアの位置と対応するアクティベート・ステータス情報とを含む、
請求項20から22のいずれか一項に記載のシステム。
The controller further includes a storage for storing core status information, and the core status information includes activation status information corresponding to a position of the plurality of cores.
The system according to any one of claims 20 to 22 .
前記インターコネクト・ファブリックは、前記第一のサブセットのコアの割り当てに基づいて再構成されることができる、
請求項20から23のいずれか一項に記載のシステム。
The interconnect fabric may be reconfigured based on the first subset of core assignments;
24. A system according to any one of claims 20 to 23 .
前記コントローラは、割り当てプログラムを含む読み出し専用メモリ(ROM)を含む、
請求項20から24のいずれか一項に記載のシステム。
The controller includes a read only memory (ROM) that includes an allocation program;
25. A system according to any one of claims 20 to 24 .
前記複数の利用可能なコアのコア毎のダイ内変動プローブを介して、前記アロケータがコア速度を受信することと、
前記コア速度の低下に応じて、前記アロケータが、プリセットされた性能目標に達するまで予備コアを接続することと、
をさらに備える請求項1からのいずれか一項に記載の方法。
Receiving the core speed by the allocator via an intra-die variation probe for each of the plurality of available cores;
In response to the decrease in the core speed, connecting the spare core until the allocator reaches a preset performance goal;
The method according to any one of claims 1 to 8 further comprising a.
前記複数のコアのコア毎のダイ内変動プローブを介して、前記アロケータがコア速度を受信し、
前記コア速度の低下に応じて、前記アロケータが、プリセットされた性能目標に達するまで予備コアを接続する、
請求項9から15のいずれか一項に記載の装置。
The allocator receives the core speed via an intra-die variation probe for each of the plurality of cores;
In response to a decrease in the core speed, connect a spare core until the allocator reaches a preset performance goal;
The device according to any one of claims 9 to 15 .
前記複数のコアのコア毎のダイ内変動プローブを介して、前記アロケータがコア速度を受信し、
前記コア速度の低下に応じて、前記アロケータが、プリセットされた性能目標に達するまで予備コアを接続する、
請求項16から19のいずれか一項に記載のプログラム。
The allocator receives the core speed via an intra-die variation probe for each of the plurality of cores;
In response to a decrease in the core speed, connect a spare core until the allocator reaches a preset performance goal;
The program according to any one of claims 16 to 19 .
前記複数のコアのコア毎のダイ内変動プローブを介して、前記コントローラがコア速度を受信し、
前記コア速度の低下に応じて、前記ントローラが、プリセットされた性能目標に達するまで予備コアを接続する、
請求項20から25のいずれか一項に記載のシステム。
Through the die fluctuation probes for each core of the plurality of cores, the controller receives the core speed,
With a decrease of the core speed, the controller connects the pre-core until it reaches the preset performance objectives,
The system according to any one of claims 20 to 25 .
JP2010230921A 2010-10-13 2010-10-13 Enhanced reliability of multi-core processors Expired - Fee Related JP5328743B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010230921A JP5328743B2 (en) 2010-10-13 2010-10-13 Enhanced reliability of multi-core processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010230921A JP5328743B2 (en) 2010-10-13 2010-10-13 Enhanced reliability of multi-core processors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008551806A Division JP4653841B2 (en) 2006-02-28 2006-02-28 Enhanced reliability of multi-core processors

Publications (2)

Publication Number Publication Date
JP2011044168A JP2011044168A (en) 2011-03-03
JP5328743B2 true JP5328743B2 (en) 2013-10-30

Family

ID=43831499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010230921A Expired - Fee Related JP5328743B2 (en) 2010-10-13 2010-10-13 Enhanced reliability of multi-core processors

Country Status (1)

Country Link
JP (1) JP5328743B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103917965B (en) * 2011-09-28 2017-09-29 丰田自动车株式会社 Engine control system
CN112149369B (en) * 2020-09-21 2024-04-05 交叉信息核心技术研究院(西安)有限公司 Multi-core packaging level system based on core particle architecture and core particle-oriented task mapping method thereof
CN115829017B (en) * 2023-02-20 2023-05-23 之江实验室 Method, device, medium and equipment for processing data based on core particles

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725317B1 (en) * 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
DE10156112A1 (en) * 2001-11-16 2003-06-05 Philips Intellectual Property Receive circuit for receiving message signals
JP4072392B2 (en) * 2002-07-29 2008-04-09 Necエンジニアリング株式会社 Multiprocessor switching method
JP2005085164A (en) * 2003-09-10 2005-03-31 Sharp Corp Control method for multiprocessor system, and multiprocessor system
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure

Also Published As

Publication number Publication date
JP2011044168A (en) 2011-03-03

Similar Documents

Publication Publication Date Title
JP4653841B2 (en) Enhanced reliability of multi-core processors
US11128555B2 (en) Methods and apparatus for SDI support for automatic and transparent migration
US20190042126A1 (en) Technologies for storage discovery and reallocation
US8296773B2 (en) Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
CN102081574B (en) Method and system for accelerating wake-up time
JP5210730B2 (en) Virtual machine monitor and multiprocessor system
JP4688933B2 (en) Multi-core processor that recovers and retains state information
TWI489265B (en) A method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
BRPI0907774B1 (en) SCIENCE CHAIN PROGRAMMING OF ENERGY AND DYNAMIC USE OF PROCESSORS
CN105103144A (en) Apparatuses and methods for adaptive control of memory
JPWO2006117950A1 (en) Power control apparatus in information processing apparatus
JP2018503184A (en) System and method for dynamic temporal power steering
JP2023543778A (en) Disaggregated computer system
US20170083077A1 (en) Power management for heterogeneous computing systems
JP5328743B2 (en) Enhanced reliability of multi-core processors
JP2020047247A (en) Method and system for dynamically allocating and optimizing power resource
JP6010975B2 (en) Job management apparatus, job management method, and program
US10185384B2 (en) Reducing power by vacating subsets of CPUs and memory
JP6060770B2 (en) Information processing apparatus, information processing apparatus control method, and information processing apparatus control program
US20140068214A1 (en) Information processing apparatus and copy control method
US20230024130A1 (en) Workload aware virtual processing units
JP2021135760A (en) Memory system and memory control method
JP2019219931A (en) Semiconductor integrated circuit, assigning method of cpu, and program
US20230118846A1 (en) Systems and methods to reserve resources for workloads
US8495554B2 (en) Matching systems with power and thermal domains

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130723

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees