Intelが ハイブリッドコアアーキテクチャ を採用したことで、PCチップ製造業界のロードマップは大きく変わりました。現在、ますます多くのアプリケーションが「セカンダリ」低電力Eコアを利用して、パフォーマンスと効率を向上させています。このアプローチには欠点があり、Intelは今後数年間でそれを解決する予定です。最初の最も根本的な変更は、ハイパースレッディングをより効率的な擬似マルチスレッドソリューションである レンタブルユニットに置き換えることです。

PC 上で実行されているさまざまなアプリケーションに関する限り、 ハイパースレッディング から生まれた物理コアと論理コアを区別することはできません。彼らはすべてを平等に見ています。ハードウェア側では、ハイパースレッディングを有効にするには、論理スレッドに関連付けられたデータを追跡するために、各コアに追加のレジスタが必要です。プログラムカウンタは、そのようなレジスタの 1 つです。
ハイパースレッディングを備えた 8 コア CPU では、特定のインスタンスで 8 つのスレッドしか実行されません。その理由は、各コアのキャッシュ (L1 と L2) と実行ユニット (ALU) は、一度に 1 つのスレッドでしか動作できないためです。では、ハイパースレッディング、および 同時マルチスレッディングは、CPUで何をしますか?

ハイパースレッディングにより、CPU コア (主に実行ユニット) が緩まないようにします。上の図では、ハイパースレッディングを使用した場合と使用しない場合の コア使用率 の違いを確認できます。論理スレッドまたはハイパースレッドは、プライマリスレッドが停止しているか入力を待機しているときに引き継ぎ、それ以外の場合は無駄なCPU時間( バブルとも呼ばれます)を利用します。
ハイパースレッディングは、港湾労働者が2つの コンベヤー ベルトから同時に荷物を収集することによく比較されます。ベルト上の 2 つの手荷物ユニット間の間隔が、2 番目のベルトからのユニットで埋められると、より効率的になります。もちろん、これは常に計画どおりに機能するとは限りません。すべてのワークロードにハイパースレッディングを関連させるために必要なストールがあるわけではなく、その場合、2 つのスレッドが リソースをめぐって競合し始め、パフォーマンスが低下します。

Intelの特許は、 リーパー、ええと、私はレンタブルユニットの到来を公式に示唆した最初のものです。この特許では、RUを「命令処理回路」と呼んでおり、リリース時には別の名前で呼ばれる可能性があることを示しています。次の図では、ハイパースレッディングとレンタブル ユニットの違いと、ハイブリッドコア プロセッサで特に役立つ方法を確認できます。
ハイブリッドコアCPUでは、より要求の厳しいタスクがPコアに割り当てられ、他のタスクはEコアに任されます。前者はかなり速いため、多くの場合、対応するタスクよりもはるかに早くタスクを完了することになり、コアが顕著な期間(バブル)アイドル 状態になります 。

レンタブル ユニットは、入力命令の最初のスレッドを 2 つの パーティションに分割し、複雑さに基づいてそれぞれに 2 つの異なるコアを割り当てます。上記の例では、2つのスレッド(1と2)があります。スケジューラは、それぞれを 3 つのパーティション (A、B、C) に分割します。
1 の最初の 2 つのパーティション (1A、1B) は P コアで実行され、3 番目 (1C) は E コアに渡されます。同様に、スレッド 2 の最初のパーティション (2A) は E コアによって処理され、他の 2 つ (2B、2C) は P コアによって実行されます。(濃厚な影の部分はP、薄い影の部分はEコアを表します)
このアプローチは、ハイパースレッディングよりもはるかに 柔軟性 があります。あまり詳細には触れませんが、Rentable Unitsはさまざまなタイマーと カウンター を使用して各PコアとEコアの使用状況を追跡し、次の命令スレッドをアイドル状態でタスクに最も適したものに渡します。

最適な 結果、つまり、現在のリソース使用量とパーティションの複雑さを考慮して、どのコアがタスクに最も適しているかについては、さまざまなパスが重み付けされます。
この実装には、独自の課題が伴います。たとえば、さまざまなスレッド バッファーを追跡するには、かなりの量の レジスタ/キャッシュが必要になります。とはいえ、この方法は既存のハイパースレッディング設計よりもはるかにクリーンで効率的です。
経由: ElChapuzas。