0

私は、メニーコア (1000+) チップ用の OS を開発する研究プロジェクトに取り組んでいます。コア間でメモリを安全に共有できるメモリ許可 (読み取り/書き込み/実行) 用の仮想メモリ タイプ システムの実装を検討しています。

基本的に、「ページ」を別のコアのサブセットによって読み取り可能であるとマークできるシステムが必要です...など。(少なくとも現時点では) アドレス変換を行う予定はありませんが、アクセス許可を効率的に設定およびクエリする方法が必要です。シンプルなTLBスタイルのキャッシュを備えたソフトウェアで満たされたデータ構造になります。

私たちの直感では、コアごとに単純にページ テーブルをレプリケートするだけでは (メモリ使用量の点で) コストがかかりすぎます。

この種の問題にはどのようなデータ構造が効率的でしょうか?

ありがとう

4

1 に答える 1

0

一般的なマルチコア (2 ~ 12 コア) CPU がこの問題にどのように対処しているかを調べましたか?

これらの一般的なマルチコア CPU で使用されるソリューションが、どこで、いつ、なぜ、どのように使用されるかを知っていますか?

言い換えれば、コア数が 12 以下の一般的な CPU を使用して、機能している既存のソリューションの何が問題なのかを定量化できますか?

あなたがそれを知っていれば、AMD/Intelがより小さな規模で問題をどのように解決したかを理解する必要があるだけなので、答えはあなたが思っているよりも近いです.テーブル、アルゴリズムの微調整など)

AMD/Intel のデータ構造を見て、それらのデータ構造を使用して 1,000 以上のコア用のソフトウェア シミュレータを構築し、シミュレーションがどこで、いつ、なぜ、どのように失敗するかを確認します (失敗した場合)。

理想的には、ユーザーが選択できる数のコアでシミュレーターを構築し、次にさまざまな量のコアで TEST、TEST、TEST を構築します。

シミュレーターは、AMD (AMD データ構造を使用している場合) または Intel (Intel データ構造を使用している場合) とまったく同じように動作する必要があります。チップの 1 つと同じコア数で...彼ら (AMD/Intel) が正しく行っていることを (実際に行っているため)、また、シミュレーション プログラムが特定の数のコアでシミュレーションを正しく行っていることを証明するのに役立つからです。

幸運を祈ります!

于 2011-08-12T02:24:21.510 に答える