問題タブ [computer-architecture]
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.
c - キャッシュラインに合わせて、キャッシュラインのサイズを知る
偽共有を防ぐために、配列の各要素をキャッシュラインに揃えたいと思います。したがって、最初にキャッシュラインのサイズを知る必要があるので、各要素にそのバイト数を割り当てます。次に、配列の先頭をキャッシュラインに揃えたいと思います。
Linuxと8コアx86プラットフォームを使用しています。まず、キャッシュラインサイズを見つけるにはどうすればよいですか。次に、Cでキャッシュラインに合わせるにはどうすればよいですか。gccコンパイラを使用しています。
したがって、たとえば、キャッシュラインサイズを64とすると、構造は次のようになります。
当然のことながら、0-63がキャッシュラインにアラインされていると仮定します。
operating-system - 注文実行とマルチタスク
実行順序 (インオーダー & アウトオブオーダー) とマルチタスクに関係はありますか? 私の理解では、タスクを順番に実行するプロセッサは、プリエンプションを使用してマルチタスクをサポートできます。これはアウト オブ オーダー プロセッサにも当てはまりますが、イン オーダー実行との主な違いは、ストールの数が減り、それによって効果的な CPU 使用率になることです。私はこれで正しいですか、それとも実行順序とマルチタスキングの間に関係がありますか?
ありがとうございました。
cygwin - AMR ソース コードの make エラーが発生します
3GPP Web サイトから AMR ソース コードをダウンロードしました。
変更を加えずにコンパイルしようとすると、
アーキテクチャを特定できませんというエラーが表示されます。typedefs.h をプラットフォームに適合させる
Windowsマシンでcygwinを使用しています。したがって、誰かがこのエラーを知っているか直面している場合は、「アーキテクチャを特定できません。typedefs.h をプラットフォームに適合させてください」。それを解決するのを手伝ってください。
よろしくお願いします、
SSuman185
c - Cでコンピュータのワードサイズを計算する方法は?
重複の可能性:
プロセッサのワード サイズを決定する
今日は面接の質問です。しかし、私は知りませんでした...
インタビュアーはCPUのサイズという言葉を意味していたと思います。
私は次のような答えを見つけます:
結果は正しいようですが、そう思いますか?
compiler-construction - コードがマシン上で実行される理由
コンパイラの仕組みを完全に理解しているとは言えません。さらに、私は彼らについてほとんど知りません。しかし、ドキュメントに記述されたコードを機械が理解するにはどうすればよいのでしょうか。
私たちが書いたものは何かに変換され(コンパイルの詳細も教えていただければ幸いです)、特定の操作の後にバイナリコードが現れることを私は知っています。
しかし、回路が 0 と 1 をどのように理解して操作できるのでしょうか。私はコンピュータ アーキテクチャについてある程度の知識を持っています。トランジスタがどのように機能し、ALU がどのように機能し、どのように実装されるかを知っています。RAM がどのように機能するか (多かれ少なかれ、それ以上の説明も素晴らしいでしょう) と HDD も知っています。
しかし、具体的なマシンに完全に適合する魔法のようなもの(少なくとも私にとって) をコンパイラがどのように生成するかを想像しようとすると、私は迷子になります。
それは私を驚かせます。私たちが毎日当たり前だと思っていることは、概念的にとても素晴らしいことです。抽象的なコードと物理マシンの連携...すごい。
あなたの答えに必要な場合は、マシンの内臓に深く入り込むことを心配しないでください。私はそれが本当に興味深いと思います。多分あなたは私を啓発してくれるでしょう. このプロセスを説明するために提供する詳細は、より詳細です。
computer-architecture - データ アクセスに関する時間的局所性とデータ フェッチに関する時間的局所性
以下に記載されている質問に行き詰まっています。
以下を示すプログラムの一般的な特性と動作を説明してください:
(a) データアクセスに関する時間
的局所性が低い (b) 命令フェッチに関する時間的局所性が低い
時間的局所性は理解できますが、データ アクセスと命令フェッチに関しては、それが何を意味するのか理解できません。誰かが私にそれを説明してくれたら、とてもありがたいです。
computer-science - 実際のコードでの時間的局所性と空間的局所性の間で混乱している
私はこの質問を読んでいました。彼が示したコードについてもっと知りたかったのです。
質問は、
- 私は時間的局所性を理解しています.iとjへの参照は時間的局所性であるべきだと思います. 私は正しいですか?
- a[i] への参照が空間的局所性である必要があるという回答をリンクした質問として、空間的局所性も理解しています。私は正しいですか?
その人は言った、
「内側のループは a[i] に 10 回アクセスするときに同じメモリ アドレスを呼び出すので、これは時間的局所性の例だと思います。しかし、上記のループにも空間的局所性はありますか?」
私は彼の推測に同意しない. a[i] によって生成される参照は空間的局所性である必要があるため (それらはブロック内の次の要素を参照します)。私は正しいですか?
graphics - シンプルなグラフィック カードをシミュレートする
OK.単純なアーキテクチャのシミュレーション設計を見つけることができます.(編集:間違いなくx86ではないようです)
たとえばint
、をプログラムカウンターとして使用しbyte array
、をメモリとして使用します。
しかし、どうすればグラフィック カード (考えられる最も単純なグラフィック カード) の機能をシミュレートできますか?
を使用しarray
て各ピクセルを表し、各ピクセルを 1 つずつ「ペイント」します。
しかし、CPUと同期してペイントするか、非同期でペイントするのはいつですか? 誰graphic data
がその配列に格納しますか? ピクセルを保存してピクセルをペイントするための指示はありますか?
すべてのクエスチョン マーク ('?') は、「多くの質問をしている」という意味ではなく、問題自体を説明していることを考慮してください - グラフィック カードをシミュレートする方法 ?
編集: CPU +メモリシミュレーションの基本的な実装設計へのリンク
c - C volatile 変数とキャッシュ メモリ
キャッシュはプロセッサに対して透過的にキャッシュ ハードウェアによって制御されるため、C プログラムで揮発性変数を使用する場合、プログラムがキャッシュではなく指定された実際のメモリ アドレスから毎回データを読み取ることがどのように保証されるのでしょうか。
私の理解では、
Volatile キーワードは、変数参照を最適化せず、コードでプログラムされたとおりに読み取る必要があることをコンパイラに伝えます。
キャッシュはキャッシュ ハードウェアによって透過的に制御されるため、プロセッサがアドレスを発行するとき、データがキャッシュからのものかメモリからのものかはわかりません。
したがって、必要なたびにメモリアドレスを読み取る必要がある場合、キャッシュからではなく必要なアドレスから参照されるようにするにはどうすればよいですか?
どういうわけか、これら 2 つの概念はうまく適合しません。その方法を明確にしてください。
(キャッシュにライトバック ポリシーがあると仮定します (問題の分析に必要な場合))
ありがとう、マイクロカーネル:)