問題タブ [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.
assembly - サーバーとミニ/メインフレームと混合コアに異なるCPUアーキテクチャが必要なのはなぜですか?
INTELとAMD以外に他にどのようなCPUアーキテクチャが利用できるのか疑問に思っていました。だから、ウィキペディアでCPUアーキテクチャのリストを見つけました。
注目すべきCPUアーキテクチャを次のカテゴリに分類します。
- 組み込みCPUアーキテクチャ
- マイクロコンピューターのCPUアーキテクチャ
- ワークステーション/サーバーのCPUアーキテクチャ
- ミニ/メインフレームCPUアーキテクチャ
- 混合コアCPUアーキテクチャ
私は彼らの目的を分析していて、疑いはほとんどありません。マイクロコンピューターCPU(PC)アーキテクチャーを参照して、他のアーキテクチャーと比較します。
組み込みCPUアーキテクチャ:
- 彼らは完全に新しい世界です。
- 組み込みシステムは小さく、非常に特殊なタスクを実行します。ほとんどがリアルタイムで消費電力が少ないため、マイクロコンピューターCPU(通常のPC)で使用できるような多くの広いレジスターは必要ありません。言い換えれば、新しい小さくて小さなアーキテクチャが必要です。したがって、新しいアーキテクチャと新しい命令RISC。
- 上記の点は、なぜ別のオペレーティングシステム(RTOS)が必要なのかを明らかにしています。
ワークステーション/サーバーのCPUアーキテクチャ
- ワークステーションとは何かわかりません。誰かがワークステーションに関して明確にします。
- サーバーの時点で。特定のソフトウェア(httpd、mysqlなどのサーバーソフトウェア)を実行するための専用です。他のプロセスが実行されている場合でも、サーバープロセスを優先する必要があるため、新しいスケジューリングスキームが必要であり、したがって、汎用のものとは異なるオペレーティングシステムが必要です。サーバーOSの必要性について他にポイントがある場合は、言及してください。
- しかし、なぜ新しいCPUアーキテクチャが必要なのかわかりません。なぜマイクロコンピューターのCPUアーキテクチャーがその仕事をすることができないのか。誰かが明確にできますか?
ミニ/メインフレームCPUアーキテクチャ
- 繰り返しますが、これらは何で、ミニフレームまたはメインフレームは何に使用されているのかわかりません。私は彼らが非常に大きく、完全な床を占めていることを知っています。しかし、私は彼らが解決しようとしているいくつかの現実世界の問題について読んだことはありません。これらのいずれかに取り組んでいる人がいる場合。あなたの知識を共有してください。
- 誰かがその目的を明確にすることができますか、そしてなぜそれはマイクロコンピュータのCPUアーキテクチャがそれに適していないのですか?
- このための新しい種類のオペレーティングシステムもありますか?なんで?
混合コアCPUアーキテクチャ
- これらについて聞いたことがない。
可能であれば、次の形式で回答を保管してください。
XYZCPUアーキテクチャ
- XYZの目的
- 新しいアーキテクチャの必要性。現在のマイクロコンピュータのCPUアーキテクチャが機能しないのはなぜですか?最大3GHZで、最大8コアです。
- 新しいオペレーティングシステムの必要性なぜこの種のアーキテクチャに新しい種類のオペレーティングシステムが必要なのですか?
編集:
みんな、これは宿題の問題ではありません。私はあなたたちを信じさせるために何もすることはできません。質問が明確でないのか、それとも他の何かなのかはわかりませんが、特定の技術的な詳細にのみ興味があります。
この質問の一部を別の言い方で言いましょう。あなたはインタビューに参加していて、インタビュアーが「マイクロコンピュータープロセッサは高速で多くの機能を備えており、PCオペレーティングシステムは優れています。なぜSPARC、Itaniumのような別のアーキテクチャが必要で、WindowsServerのような別のOSが必要なのか教えてください」と尋ねられた場合サーバー用?」あなたは何に答えますか?私は私の主張を理解したと思います。
jvm - JVM がスタックベースで Dalvik VM がレジスタベースなのはなぜですか?
興味深いのですが、なぜ Sun は JVM をスタックベースにし、Google は DalvikVM をレジスタベースにすることにしたのですか?
JVM は、ターゲット プラットフォームで特定の数のレジスタが利用可能であると想定できないと思います。これは、プラットフォームに依存しないことが想定されているためです。そのため、レジスタの割り当てなどをJITコンパイラに延期するだけです。(間違っていたら訂正してください。)
それで、Android の連中は、「それは効率が悪い。すぐにレジスタ ベースの vm に行きましょう...」と考えましたか? しかし、待ってください。複数の異なる Android デバイスがあります。Dalvik がターゲットにしたレジスタの数は? Dalvik オペコードは、特定の数のレジスタに対してハードコードされていますか?
現在市場に出回っているすべての Android デバイスには、ほぼ同じ数のレジスタがありますか? または、dex の読み込み中にレジスタの再割り当てが実行されますか? これらすべてがどのように組み合わされるのでしょうか。
assembly - x86 別名 IA32 命令セット アーキテクチャ マニュアルのすべてのバージョンの入手先
Intel 64 および IA-32 Architectures Software Developer's Manualsについて知っています。また、これらがすべてのレガシーおよび古いプロセッサ ISA をカバーしていることも知っています。
しかし、各プロセッサの個別のマニュアル (プロセッサと一緒にリリースされたもの) が必要です。
編集:
バウンティはじめます。
architecture - メモリから 1 つの単語を取得するのにかかる時間は?
Peter Norvig のアドバイスを受けて、私は次の質問について熟考しています。
キャッシュ ミスがある場合とない場合で、メモリから 1 ワードをフェッチするのにどれくらいの時間がかかりますか?
(標準のハードウェアとアーキテクチャを想定。計算を簡単にするために、1 GHz クロックを想定)
operating-system - ROMベースの実行可能ファイルに関する基本的な質問
ROMに保存されている実行可能ファイルについて基本的な疑問があります。
私が知っているように、テキストとRO属性を持つ実行可能ファイルはROMに保存されています。質問は、ROM は読み取り専用メモリ用であるため、コードをメモリに書き込む必要がある場合はどうなりますか?
ここで引用する例を思い出すことはできません (おそらく、私はそのような状況を知らないか、基本的なことを見逃しています ;) が、このトピックに関する光は、私が理解するのに大いに役立ちます! :)
最後に - 1.そのような状況はありますか? 2. そのような場合、コードを ROM から RAM にコピーするのが答えですか?
いくつかの例で答えてください..
よろしくお願いします!
/MS
computer-architecture - 乗算の計算時間の比較
a、b を n 桁の 2 つの整数とする。a の 2 乗の計算時間は a*b よりも短いのでしょうか。
ご協力ありがとうございました。
assembly - プロセッサのアドレス行についてもう少し説明する必要があります
昨日、私が考えていたときに、OSが64ビット全体をアドレス指定に使用できないのはなぜですか?私は別の興味深いものを見つけました。インテルCore2Duoプロセッサーを例にとってみましょう。
Intel Core 2DuoプロセッサE8000およびE7000シリーズの「4.2アルファベット順信号リファレンス」から-データセット36のアドレスラインと64のデータラインがあることがわかりました。データシートでは、アドレス行をA [35:3]と呼び、データ行をD [63:0]と呼びます。
これは正確には何を意味しますか?これは、上記からの私の理解です(いくつかの未回答の質問があります):
- 以来、36のアドレス行があります。アドレス可能なメモリの合計は2^36 = 64GBであり、各物理メモリの場所(バイト)は36ビットの数値でアドレス指定されます。
- なので、A [2:0]は言及されていません。これは、仮想アドレスを物理アドレスに変換した後(アドレステーブルを使用)、MMU(より具体的にはページングユニット)がアドレスラインA [35:3]に最上位33ビットのみを配置することを意味します。RAMは、可能な8バイトすべて(3 LSB、A [2:0])を送信します。これらの8バイト範囲の要求に対して。RAMは同じ8バイトのデータを送信します。右?これは効率化のために行われていると思います。
- 次は何が起こる?つまり、MMUには1バイトのデータが必要でしたが、RAMは8バイトを送信しました。どのように処理しますか?
- IntelがPAEを有効にしてから、このアドレスバスの幅は36ビットですか?
- 新しいプロセッサーデータシート(Intel®Core™i7プロセッサーExtreme Edition )でアドレスバスとデータバスの幅を見つけることができません。:( 助けて!
security - コンピューターがどのように機能するかをよりよく理解するために、どこから始めればよいですか?
私は、人生の後半でどのコンピューター分野に参入したいのかを理解しようとしてきました。大学はもうすぐです。コンピュータ工学、ソフトウェア工学などを検討しました。
最近、私はコンピュータセキュリティシステムとその利用を調査しています(純粋に教育目的で、私自身の所有物で)。残念ながら、99%の人が何について話しているのかわからないようです。多くの場合、それは単に「これを実行する」または「それを実行する」または「あなたはあなたのためにそれをすべて行うプログラムを見つけることができます」-これらのプログラムがどのように機能するか、またはそれらが正確に何をするかは誰にもわかりません。
ほとんどの人がそうしているように、他の誰かが自分自身を「ハッカー」と呼ぶために作成したものを使用することに、楽しみや興味はありません。実際、私はシステムをハッキングする方法ほどハッキングには興味がありません。
私の質問はすべてこれに帰着します。
インターネットやデータ転送などの抽象的な概念からハードウェアまで、コンピューターのイン、アウト、アップ、ダウンを学びたいと思っています。コンピュータがどのようにデータを保存するか(バイトがどのように編成されるかなど)、プロセッサなどが実際に何をするのか知りたいです。本当にWIFIとは何ですか?コンピューターは光と通信しますか(飛行機で読んだ雑誌から拾ったもの)。
私はコンピューター/プログラミングの経験が数年ありますが、コンピューター全般について私が知っていることの多くは非常に幅広いものです。コンピューターは、情報のパッケージを相互に送信します。各パッケージには、ヘッダーとコンテンツが含まれます。コンピュータは複数のコンポーネントで構成されており、それぞれが独自の機能(プロセッサ、ビデオカード、RAM、ハードドライブなど)を備えています。これについては、すでに基本的な知識があります。などなどなど。
コンピューターにはたくさんのことがあり、どこから始めればよいのかわかりません。私の大学の授業のいくつかは私のために物事をクリアすると確信していますが、私はとても興味があり、今できる限り多くのことを学び始めたいと思っています。
この質問はおそらくあちこちにありますので、必要に応じて明確にしてください。私は現在時差ぼけですが、考えをできるだけ早く、最も首尾一貫した方法で書き込もうとしました(ただし、その過程で完全に失敗した可能性があります)。
アドバイスをよろしくお願いします!
ジャスティアンマイヤー
この質問のタグを自由に編集してください。現在のものはひどいです。
編集:
これらすべてのコメントは私を興奮させています:)。学ぶことはたくさんあり、探求することはたくさんあります:)。
language-agnostic - 冗長書き込み時のキャッシュ動作
編集 - 私が尋ねた質問が長すぎると思うので、非常に具体的にしています。
質問: メモリ ロケーションが L1 キャッシュにあり、ダーティとマークされていない場合。値が X であるとします。同じ場所に X を書き込もうとするとどうなりますか? そのような書き込みが冗長であると判断してスキップする CPU はありますか?
たとえば、2 つの値を比較し、メイン メモリへの冗長な書き込みを破棄する最適化はありますか? 具体的には、主流のプロセッサはこれをどのように処理しますか? 値が 0 のような特別な値の場合はどうなりますか? 0 のような特別な値でもそのような最適化がない場合、理由はありますか?
動機: キャッシュに簡単に収まるバッファがあります。複数のスレッドが、それらの間でリサイクルすることにより、潜在的にそれを使用する可能性があります。各使用には、バッファー内のn 個の場所 (連続している必要はありません)への書き込みが含まれます。リサイクルとは、単にすべての値を 0 に設定することを意味します。リサイクルするたびに、サイズ n の場所はすでに 0 です。(直感的に) 非常に多くの冗長な書き戻しを回避することで、リサイクル プロセスが高速化されるように思われます。
分岐命令自体が不要なキャッシュ ミスを引き起こす可能性があるため (if (buf[i]) {...} )、コードでこれを実行しても意味がありません。
computer-architecture - コンピュータ (電気?) 工学を学ぶための無料のリソース?
まず、私は DEFCON 18 から戻ったばかりで、ハードウェアについてもっと学びたいという気持ちに完全に駆られています。たとえば、バッジに LED を追加するにはどうすればよいですか? ( http://www.grandideastudio.com/portfolio/defcon-18-badge/ ) 回路図を読んで、回路図で何ができるかを理解するにはどうすればよいですか?
Amazon でコンピューター工学の本をいくつかチェックしましたが、どれも非常に高価です。また、それらが私が望むものでさえないかもしれないことにも気づきました。ハードウェアの変更方法を学ぶための無料のリソースは何ですか?
また、補足として、私はソフトウェアにかなり精通しています。私はまた、コンピューターを構築し、より高いレベルのハードウェアで少し遊んだことがありますが、より深い理解に飛び込みたいと思っています.
ありがとう!