問題タブ [pipelining]
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.
mips - MIPS 構造ハザード
私は、MIPS パイプライニングとそれに関連する危険性について学ぼうとしています。MIPS 命令で構造的なハザードがどのように見えるかを理解するのに苦労しています。
2 つ (またはそれ以上) の命令が特定のハードウェア リソースを同時に使用する必要がある状況であることを読みました。そして、以前にクロックサイクルで示されている例を見たことがあります。しかし、簡単な MIPS 命令セットの例を提供してくれる人はいますか? オンラインで見つけるのに苦労しています。データハザードの例をたくさん見てください。それは私が探しているものではありません。ありがとう!
vhdl - VHDL でパイプラインを処理しますか?
過去数日間、一連のデータの処理をトリガーして結果を送信できるようにするプロジェクト用の VHDL を少し記述する方法を探していました。私が使用しているデバイスは、FPGA が送信する完全な最初のセットを同時に提供しながら、2 番目のデータ セットの収集を開始することができます。これをパイプライン経由で利用したいのですが、成功していません。
コレクションをトリガーするには、特定のシグナル セットを特定の順序で送信する必要があります。数クロック サイクルと FPGA からの信号の後、完全なセットがデバイスの複数のポートに出力されます。私の目標は、プロセス全体が単純な入力パルスによって開始され、最初のパルスからの割り当てがまだ発生している間に 2 番目のパルスが発生する可能性があることです。最初の信号セットを送信し、その後信号を送信してデータを出力すると同時に、2番目のコレクションの最初の信号セットを送信する方法はありますか?
ここに私が意味するものの写真があります。
ご覧のとおり、統合 1 からのデータは、2 番目と 3 番目の統合段階で送信されます。load_pulse は、データを に出力するように要求する信号でありDATA
、積分 2 の 2 番目の信号セットが送信されている間に発生する可能性があります。
簡単なプロセスで可能かどうかを確認するために作成したテスト VHDL を次に示します。
この例では、シグナル割り当てがまだ実行されている間にプロセスをトリガーします。ここでの結果は、元の信号の割り当てが中断され、次のように新しい信号の割り当てが完了したx <= '1' after 25 ns
ことです。
あなたが私に説明したり、私に説明を指摘したりできる、これを達成する方法はありますか、それとも別のアプローチを取る必要がありますか?
ありがとう
mips - パイプライン化されたマシンの実行時間を見つける方法は?
マシンで次の命令を実行しています
マシンがパイプライン化されている場合、約 200 ps * 3 = 600 ps かかります。
パイプライン化されたマシンが 1,000,003 命令を実行する場合、実行時間はどのくらいですか? 1,000,000 * 200 ps + 600 ps ですか?
java - リアルタイムでの言語間でのデータのパイプライン化またはその他の転送
私はプロジェクトに取り組んでいますが、コアについて議論する自由はありませんが、つまずきのブロックに達しました。データを C++ から他の言語 (できれば Java または Python) にリアルタイムで転送する必要があります (最大 10 ミリ秒のレイテンシー)。
C++ で解析する必要があるセンサーがあります。おそらく Java または C# (C# はよくわかりませんが、Java に似ているようです) を介して、Bluetooth を介してデータの読み取り/出力を行うことを計画しています。C++ は、必要な用途に使用するのに十分なほど進んでいないと感じているため、法案に適合しません。センサーの解析は既に終了しています。データ転送は同じマシンで行われます。
私が考えた方法は次のとおりです。
- 私たちは、Mex が何であれ (私は MatLab を使用していません)、MatLab を使用して、C++ プログラムから関数にアクセスし、データを配列として取得しようとしました。Matlab は遅すぎます (TX/RX が 1 ~ 20 Hz に制限されるとどこかで読みました)。
- データをテキストまたは他の同等の生データ ファイルに常に書き込み、必要に応じて他の言語で開く。
これを調べようとしましたが、結果には何も表示されませんでした。
exception - パイプライン処理中に CPU が割り込みまたは例外によって中断されるのはいつですか?
パイプライン化された CPU の場合、パイプラインで命令を実行しているときに、いつ、どのように CPU が割り込みまたは例外によって割り込まれますか?
割り込み/例外はどのフェーズで処理され、割り込み/障害が発生した現在のパイプラインや命令はどうなりますか?
http - 非永続、永続、パイプラインを使用した永続のラウンド トリップ タイム HTTP
ネットワーキングは私の修士号の最終コースです。非永続、永続、およびパイプラインを使用した永続での http の往復時間を計算する方法について質問があります。
この問題について何時間も読んだり、他の大学からメモをダウンロードしたり、YouTube ビデオを検索したりした後、私はこれを整理することができませんでした.
RTT の計算方法を理解するために、クライアントが 10 個の画像を含む HTML ページを要求したとしましょう。[伝播遅延をゼロに保ちましょう。]
私の論理に従ってください
まず、TCP 接続が行う 3 ウェイ ハンドシェイクは 1 RTT としてカウントされます。TCP 接続が閉じるときも同様です。
1) 非永続 HTTP では、TCP 接続を確立する必要があるため、これまでのところ 1 RTT です。10 個のオブジェクトがあるため、2*10=20 の RTT があります。これにより、1RTT + 20 RTT = 21 RTT になります。[これを計算する別の方法は、毎回新しい接続を開くため、10 個のオブジェクトに対して 3 つの RTT が必要になるため、30 個の RTT が必要になるということです。]
2) 永続的な HTTP では、接続に 1 つの 1RTT と各オブジェクトに 1 つの 1RTT が必要です。これにより、1RTT + 10RTT = 11 RTT になります。[接続を閉じるための RTT を追加して、RTT を 12 にする必要がありますか? 私の理解では、しばらくすると自動的にタイムアウトします。]
3) パイプラインを使用した持続的 HTTP では、TCP 接続を開くために 1 つの RTT、10 個のオブジェクトを送信するために 1 つの RTT、および接続を閉じるために 1 つの RTT が必要です。これにより、1RTT+1RTT+1RTT=3 RTT になります。
この問題について何か助けていただければ幸いです。
performance - 実行スループットを最大化するための依存関係チェーンの最小数は?
(a->b->c)->(a->b->c)->... のように、真の依存関係によってリンクされ、定期的に繰り返される (つまり、ループ) 一連の命令があるとします。
アウトオブオーダー実行の恩恵を受けるために、いくつかのより短く独立したサブ依存チェーンに分割できると仮定します。
- (a0->b0->c0)->(a0->b0->c0)->...
- (a1->b1->c1)->(a1->b1->c1)->...
アウトオブオーダー エンジンは、各命令を対応する CPU ユニットにスケジュールします。これらの CPU ユニットには、待ち時間と逆数のスループットがあります。
実行スループットを最大化するサブ依存チェーンの最適な数は?
Agner のマニュアルOptimizing subroutines in assembly languageのセクション 12.15 によると、「CPU に他に何もすることがない場合のアキュムレータの最適数は、依存関係チェーンで最も重要な命令のレイテンシを、その命令の逆数スループットで割った値です」。「最も重要な命令」とはどういう意味ですか? この種の問題に取り組んでいる他の技術文書はありますか?
java - コマンドのリストを入力として受け取るJedisパイプラインを実装する方法は?
Jedisをredis-clientとして使用して、Javaでredisを使用しています。クラスがあります
Jedisを呼び出してredisでコマンドを実行するメソッドがあります。
RedisDBManager内のサンプル メソッド
ここで、メソッド getResource はJedisSentinelPoolからリソースを返します。
実行するコマンドのリストを受け取り、応答をリストとして返すように、このクラス内にパイプライン メソッドが必要です。外部のメソッドでは、すべての責任を処理するパイプライン メソッドを呼び出す必要があるため、Jedis の構成をRedisDBManagerの外部で使用しないでください。
この質問は、この質問に似ています。さまざまな redis コマンドも使用して、それらの応答を取得したいという点で異なります。
私の現在の不完全なアプローチは、RedisDBManager のすべてのメソッドを変更して、それをスレッド ローカルの Pipeline オブジェクトにパイプライン処理するかどうかを受け入れてから、このパイプライン オブジェクトを同期して応答を返すパイプライン メソッドを用意することです。
何かのようなもの :
より良い、またはより簡単なアプローチはありますか?ありがとう。