問題タブ [cpu-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.

0 投票する
2 に答える
2165 参照

multithreading - CPU レジスタとキャッシュ コヒーレンス

MESI などのキャッシュ コヒーレンス プロトコルに関して、CPU レジスタと CPU キャッシュの関係はどのようなものですか? 特定の値が CPU のキャッシュに格納され、レジスタにも格納されている場合、キャッシュ ラインが「ダーティ」としてマークされるとどうなりますか? 私の理解では、キャッシュが更新されたとしても (MESI により)、レジスタがその値を更新するという保証はありません。

このコードをヘンチします。

(コンパイラがループ外で「完全」の負荷を最適化していないと仮定しましょう)
私の理解では、値がレジスタ内に保持されているため、「完全」への更新は2番目のスレッドには表示されません(CPU 2のキャッシュはただし、更新します)。

メモリバリアを配置すると、すべてのレジスタが強制的に「フラッシュ」されますか? レジスタとキャッシュの関係は?レジスタとメモリバリアはどうですか?

0 投票する
7 に答える
8718 参照

objective-c - Objective C (Mac OS X) で CPU アーキテクチャ (32 ビット / 64 ビット) ランタイムを検出する

私は現在、32 ビットと 64 ビットに最適化された (コンソール) アプリケーションを実行する必要があるCocoaアプリケーションを作成しています。このため、アプリケーションが実行されている CPU アーキテクチャを検出して、正しいコンソール アプリケーションを起動できるようにしたいと考えています。

要するに、アプリケーションが 64 ビット OS で実行されているかどうかを検出するにはどうすればよいですか?

編集: Mach-Oファット バイナリについては知っていますが、それは私の質問ではありませんでした。バンドルされていない別の (コンソール) アプリケーションを起動できるように、これを知る必要があります。1 つはx86用に最適化され、もう 1 つはx64用に最適化されています。

0 投票する
3 に答える
3703 参照

c# - CPUアーキテクチャを検出する正しい方法は?

x86 msi または x64 msi ファイルをインストールするための適切な CPU アーキテクチャを検出しようとしています。

私が正しければ、msi には os cpu アーキテクチャが必要です

私はそれをテストすることができないので、私の方法が正しいかどうかは完全にはわかりません. どう思いますか?

0 投票する
6 に答える
20942 参照

cpu - 指示はデータとどのように区別されますか?

ARMコアドキュメントを読んでいるときに、私はこの疑問を抱きました。CPUは、読み取ったデータをデータバスからどのように区別しますか。それを命令として実行するか、操作可能なデータとして実行するかは関係ありません。

ドキュメントからの抜粋を参照してください-

「データはデータバスを介してプロセッサコアに入ります。データは実行する命令またはデータ項目である可能性があります。」

教えてくれてありがとう!/MS

0 投票する
5 に答える
624 参照

c++ - Corei7でC++アプリが(同じライブラリを使用する)Cアプリよりも高速なのはなぜですか

Cで記述されたライブラリがあり、C ++とCで記述された2つのアプリケーションがあります。このライブラリは通信ライブラリであるため、API呼び出しの1つは次のようになります。

Cアプリでは、コードは次のようになります。

C ++アプリがこれを行うのに対して:

Intel Core i7では、C ++コードは1秒あたりほぼ正確に50%多くのメッセージを生成します。一方、Intel Core 2 Duoでは、1秒あたりほぼ正確に同じ量のメッセージを生成します。(コアi7には4つのコアがあり、それぞれに2つの処理スレッドがあります)

これを実現するためにハードウェアがどのような魔法を実行するのか興味があります。私はいくつかの理論を持っていますが、私は本当の答えが得られると思いました:)

編集:コメントからの追加情報

コンパイラはビジュアルC++であるため、これはWindowsボックスです(両方とも)

通信ライブラリの実装により、メッセージを送信するための新しいスレッドが作成されます。source_createは、このスレッドを作成するものです。

0 投票する
6 に答える
752 参照

multithreading - 将来の CPU 世代はキャッシュ コヒーレントではないと思いますか?

私はプログラムを設計していますが、暗黙的なキャッシュの一貫性を仮定すると、設計がはるかに簡単になることがわかりました。たとえば、単一のライター (常に同じスレッド) 複数のリーダー (常に他のスレッド) のシナリオでは、ミューテックスを使用していません。

現在の Intel CPU では問題ありません。しかし、私はこのプログラムが少なくとも今後 10 年間 (ソフトウェアにとっては短い期間) 収入を生み出すことを望んでいるので、これが将来の CPU アーキテクチャにとって問題になる可能性があると思いますか?

0 投票する
1 に答える
3688 参照

embedded - ARMとX86:選択方法は?

最近、32ビットARMプロセッサを見ました。なぜそれを使ってデスクトップコンピュータを構築できないのだろうか。その場合、X86とどのように違いますか?ARMアーキテクチャはより少ない電力を消費しますか..それは組み込みシステムでそれらを使用する理由ですか?

  • なぜ2つの(ARMとX86)プロセッサアーキテクチャがあるのですか?
  • なぜ私たちは一般的に組み込みにARMアーキテクチャを使用し、ワークステーションにx86を使用するのですか?
  • どちらかを選択するための一般的な基準は何ですか。
0 投票する
1 に答える
3343 参照

java - java.lang.UnsatisfiedLinkError、Mac10.6.2 で mach-o が間違ったアーキテクチャ

ローカル マシンでプロジェクトを実行しようとしていました。

Mac 10.6.2 でこのプロジェクトの実行中のインスタンスから取得したこの jnilib ファイルを読み込もうとしました。

次に、この例外がスローされました:

ファイルコマンドでjnilibをチェックしました:

これは、jnilib ファイルが 32 ビットでコンパイルされているためだと思いますが、Mac10.6 に付属の Java は 64 ビットです。そこで、Java Preference に移動し、最初に 32 ビットを使用するように Java を設定します。しかし、うまくいきませんでした。

前述のように、この jnilib ファイルは、私の Mac で実行中のプロジェクトのインスタンスからコピーされているため、動作するはずです。インストールされたアプリケーションでは機能するのに、Eclipse では機能しない理由がわかりません。

0 投票する
0 に答える
1311 参照

cpu-architecture - レジスタ マシンとスタック マシンの違いは何ですか?

レジスタ マシンとスタック マシンの違いは何ですか?

0 投票する
2 に答える
9515 参照

performance - 最新の CPU のティックあたりのキャッシュ帯域幅

最新の CPU のキャッシュ アクセス速度は? Intel P4、Core2、Corei7、AMD では、プロセッサ クロック ティックごとにメモリから読み書きできるバイト数は?

もしあれば、理論的な数値 (uOPs/tick でのスループットを伴う ld/sd ユニットの幅) と実際の数値 (memcpy 速度テスト、または STREAM ベンチマーク) の両方で回答してください。

PSアセンブラのロード/ストア命令の最大レートに関連する質問です。ロードには理論上のレートが存在する可能性があります (ティックごとのすべての命令が最も広いロードです) が、プロセッサはその一部しか提供できず、ロードの実際的な制限があります。