問題タブ [gem5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arm - arm-linux-gnueabi-g++ のターゲットにプリフェッチ機能を追加
arm-linux-gnueabi-g++-4.7
次のコード行は、Ubuntu ホスト マシンで使用してクロスコンパイルされています。命令は特定のprfm
行に対して生成されるはずでしたが、そうではありませんでした。
コンパイルするコマンドは次のとおりです。
問題に関連するgcc リファレンスhereから 1 行を引用します。
ターゲットがデータのプリフェッチをサポートしていない場合、副作用が含まれていればアドレス式が評価されますが、他のコードは生成されず、GCC は警告を発行しません。
最後の情報は、クロス コンパイラがapt-get install
ゼロからではなく、を使用してインストールされることです。
ここに質問があります:
クロス コンパイラのターゲットにデータ プリフェッチ サポートを簡単に追加するにはどうすればよいでしょうか?arm-linux-gnueabi-g++-4.7
前もって感謝します
time - gem5 シミュレーション時間が長い
こんばんはここで本当の問題があり、検索に数週間近くかかりましたが、結論なしで、作成したいくつかのアーキテクチャに費やされた時間を測定するために、 gem5
でコンパイルされたc ++コード(バイナリファイル)を実行しようとしていますPython を使用し、統計などを表示するために比較を行います。
これは、完了するまでに少し時間がかかるバイナリを使用しても問題ないように見えますが、バイナリがたとえば 2 秒かかる場合、シミュレーション時間は非常に長くなります
。この問題を解決するには、シミュレーション時間を可能な限り最適化する必要があり
ます。簡単だと思いますが、今まで理解できませんでした:\今
までに到達したことは次のとおりです。
-高速モードでgem5をビルドしましたが、シミュレーション時間に最適化モードとの違いはありませんでした
-ただし、最適化モードで高速転送を使用しました。私は今までそれを成し遂げることができませんでした
。
linux-kernel - gem5 X86 Ubuntu のフル システム シミュレーションの起動
gem5 で比較的新しいバージョンの x86 ディスク イメージを実行する必要があります。このガイドから始めて、カーネル v3.2.1 で Ubuntu 12.04 ディスク イメージを使用しました。
ある時点の後、シミュレーターがハングするだけです。理由と考えられる解決策についてアイデアを共有してください。ありがとうございました!
以下の m5term/telnet で出力を見つけることができます。その後、参照用のディスク イメージとカーネルを準備するプロセスです。
gem5 のターミナルの最後の部分 (m5term/telnet):
ディスクイメージの準備の全容は次のとおりです。
カーネルのコンパイル手順:
v3.2.1 をダウンロードし、v2.6.28.4 の構成ファイルを v3.2.1 の .config ファイルとしてコピーしました。を押した後make vmlinux
、質問ごとにEnterキーを押してデフォルト値を取得しました。
最後に、コマンドは次のようになります。
エラーメッセージやフリーズなどの理由/解決策についてのコメントは非常に役に立ちます。前もって感謝します!
python - gem5でリージョンキャッシュを作成するにはどうすればよいですか
~/src/mem/cache/ スクリプトとコードを変更して、ARM アーキテクチャ用の領域ベース キャッシュ システムを作成しようとしています。これまでのところ、SConscript を変更して、cache.cc、cache.hh、および Cache.py のコピーが scons に組み込まれるようにしましたが、メモリ アクセス先をリージョン キャッシュにリダイレクトする場所がわかりません。つまり、mem に基づいていくつかの mem ref.s を指示できるようにしたいのです。キャッシュAとBは同じですが、D-cacheAにアクセスするためのアドレスとD-cacheBに残りをアクセスするためのアドレス。
c - C アプリケーションは、gem5 を使用して複数のコアでどのように動作しますか?
私はgem5シミュレーターが初めてです。より高速に実行したい C アプリケーションがあります。そのため、最初に行ったのは、ループ展開や SIMD などのいくつかの手法を使用して最適化することです。次のステップでは、gem5 シミュレーターを使用する必要があるため、複数のコア( X86およびARM ) で動作させる予定です。
アプリケーションは、Radix4 コンピューティング用です。今のところ、X86とARMの 1 つのコア システムで動作させることに成功しましたが、今度は 4、16、... コアの X86 または ARM で動作させたいと考えています。
誰かが私にヒントを与えたり、これを行う正しい方法を教えてくれませんか? ありがとうございました
これはアプリケーションに関するグローバルな考え方です
c - m5ops.h を C プロジェクトにリンクする
「m5_dumpreset_stats()」と呼ばれる Gem5 オペレーションの関数を使用する C アプリケーションがあります。
そこで、次のことを行い、この関数のヘッダー ファイルをインクルードしました。
次に、ソースファイルで関数を呼び出しました:
私のプロジェクトをビルドするには、 Makefile を使用しています:
私の最初の推測では、Makefile を使用してライブラリをリンクする必要がありますが、正直なところ、方法がわかりません。誰かがそれを行う正しい方法を教えてもらえますか?
PS : m5_dumpreset_stats(delay,period): シミュレーション統計を遅延ナノ秒でファイルに保存してリセットします。これを周期ナノ秒ごとに繰り返します。
arm - ARM Cortex A9 のスタートアップ コードと割り込みのセットアップ
Cortex-A9 をベア メタル方式でプログラムしようとしています。https://github.com/tukl-msd/gem5.bare-metalの「hello world」コードを使用します 。ただし、割り込みを機能させることができません。#47 などの割り込みで割り込みを作成すると、ソフトウェアが ISR 関数にジャンプしません。私は何が欠けていますか?さらに初期化を行う必要がありますか?
起動コード:
リンカー スクリプト:
メイン C プログラム:
makefile - Makefile から CMake への移行: -I
Makefile に古いコンパイル スクリプトがあり、CMake の使用を開始したいと考えています。CMake の Makefile の -I に相当するものを知っている人はいますか?
これは具体的な行です: "-I gem5-stable/util/m5 gem5-stable/util/m5/m5op_x86.S"