タグ付けされた質問 「computer-architecture」

4
コンピュータプログラムが実行されるとどうなりますか?
私は一般的な理論を知っていますが、詳細に合わせることができません。 プログラムがコンピュータの二次メモリに常駐していることを知っています。プログラムが実行を開始すると、完全にRAMにコピーされます。次に、プロセッサは一度にいくつかの命令(バスのサイズによって異なります)を取得し、それらをレジスターに入れて実行します。 また、コンピュータープログラムは2種類のメモリを使用することも知っています。スタックとヒープは、コンピューターのプライマリメモリの一部でもあります。スタックは非動的メモリに使用され、ヒープは動的メモリに使用されます(たとえば、newC ++の演算子に関連するすべてのもの) 私が理解できないことは、これらの2つのものがどのように関連しているかです。命令の実行にスタックはどの時点で使用されますか?命令は、RAM、スタック、レジスターに行きますか?

3
なぜJVMスタックベースとDalvik VMレジスタベースなのですか?
私は好奇心旺盛ですが、なぜSunはJVMをスタックベースにすることに決め、GoogleはDalvikVMをレジスタベースにすることに決めたのですか? JVMはプラットフォームに依存しないため、ターゲットプラットフォームで特定の数のレジスタが使用可能であるとは想定できないと思います。そのため、JITコンパイラーへのレジスター割り当てなどを延期するだけです。(私が間違っていれば訂正してください。) それで、Android関係者は、「それは非効率的です。すぐにレジスタベースのvmに行きましょう...」と考えましたか?しかし、待ってください。複数の異なるandroidデバイスがあり、Dalvikが対象としたレジスタの数はいくつですか?Dalvikオペコードは、特定の数のレジスタに対してハードコードされていますか? 現在市場に出ているすべてのAndroidデバイスには、ほぼ同じ数のレジスターがありますか?または、dex-loading中にレジスタの再割り当てが実行されますか?これらすべてをどのように組み合わせるのですか?

4
'perf stat'の結果のstalled-cycles-frontendおよびstalled-cycles-backendとは何ですか?
perf statの結果で、stalled -cycles-frontendとstalled-cycles-backendの意味を知っている人はいますか?インターネットで検索しましたが、答えが見つかりませんでした。ありがとう $ sudo perf stat ls Performance counter stats for 'ls': 0.602144 task-clock # 0.762 CPUs utilized 0 context-switches # 0.000 K/sec 0 CPU-migrations # 0.000 K/sec 236 page-faults # 0.392 M/sec 768956 cycles # 1.277 GHz 962999 stalled-cycles-frontend # 125.23% frontend cycles idle 634360 stalled-cycles-backend # 82.50% …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.