問題タブ [dma]

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 投票する
1 に答える
3689 参照

c - STM32F103 マイクロコントローラ (Cortex-M3) を使用した DMA 開始アドレスの再プログラミング

以下の IRQ ハンドラーは、受信した 32 バイトのデータの USART3 を排出します。最初の IRQ TC イベントは最初の 6 バイトを読み取り、DMA エンジンを再プログラムして最後の 24 バイトを読み取ります。2 番目の TC はヘッダーを再度読み取るように再プログラムします。この方法では、DMA を使用した可変長メッセージが可能になります。ただし、DMA 開始アドレスを変更できないようです。各メッセージを個別のバッファに保存できるようにしたいのですが、各メッセージを受信すると最初のバッファが上書きされます。私は何を間違っていますか?マイクロコントローラは STM32F103ze (Cortex-M3) です。

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

dma - DMAコントローラが選択されると、DMAコントローラはどうなりますか?

私は8237A-5DMAコントローラーの詳細を学ぼうとしています。私はそれについて読んでいて、今ではソフトウェアのゲートレベルでそれを設計し始めました。CSピンはアクティブローです。ここで高信号を受信した場合、どうなりますか?他のすべてのピンは高Zになりますか?信号が弱いとどうなりますか?

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

java - JavaでDMAまたはRDMAを使用するには?

ここでの「DMA」は、ダイレクト メモリ アクセスを意味し、「RDMA」はリモート ダイレクト メモリ アクセスを意味します。

Java を使用して株式データを転送するアプリケーションを作成しましたが、予想よりもレイテンシーが大きいことがわかりました。性能の良い「DMA/RDMA」を使った同種のアプリケーションを開発した人がいると聞いたので、「DMA/RDMA」をJavaで使えるのだろうか?

そうでない場合、どの言語を使用すればよいですか?また、使用するのに適したライブラリがあれば教えてください。

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

memory - メモリ データ バスの分解

ネットワーク スイッチの共有メモリへの 32 ビット幅のメモリ バスがあるとします。ここで、パケットの保存を最大化並列にしたいと考えています。各入力ポートの後に DMA を配置したので、1 つのパケットが完全に格納されるまでスイッチ コントローラーはブロックされません。各入力ポートの 1 つのパケットが 8 ビットであると仮定します。では、メモリ バスを 4 つの 8 ビット サブメモリ バスに分解して、各 DMA が 8 ビット幅のパケットを対応するメモリ アドレスに並列に導くことができるようにすることはできますか (競合を一時的に無視します)。

このような奇妙な質問と、コンピューターの構成とアーキテクチャについてよく知らないことで申し訳ありません。

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

c - DMA transfer to a slave PCI device in Linux

I am a bit confused regarding DMA transfers with a PCIe device.

Say, for example, I have a slave PCIe device, and I want to transfer a block of data from the device to the RAM, using a DMA transaction. Note that the device is slave, and does not have a DMA "machine" on it.

I know I need to obtain a DMA-able buffer in RAM (either by allocating a coherent one, or by mapping a page) first.

But what's next? what's the API to start a DMA transfer of N bytes from address S to address D?

Can modern systems issue a DMA transfer to/from a slave pci device? if so, what is the Linux API for that?


As explained here:

[ISA] In the original IBM PC, there was only one Intel 8237 DMA controller [...] A PCI architecture has no central DMA controller, unlike ISA. Instead, any PCI component can request control of the bus ("become the bus master") and request to read from and write to system memory

The PCI bus does not have a "central" DMA controller - instead, each device can be a DMA "controller".

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

linux - DMA を使用しないと、ソケットを使用したスプライスでパフォーマンスを向上できないのはなぜですか?

ウィキペディアの splice の紹介で、次のことがわかりました。

ソケットで splice() を使用する場合、ネットワーク コントローラ (NIC) は DMA をサポートする必要があります。

NIC が DMA をサポートしていない場合、splice() はパフォーマンスの向上を提供しません。この理由は、パイプの各ページがフレーム サイズ (ページごとに使用可能な 4096 バイトのうちの 1460 バイト) までいっぱいになるためです。

私が理解していることから、スプライスは次の理由でパフォーマンスを向上させます。

  • コンテキストの切り替えが少ない
  • コピーの数を最小限に抑えます (最小 2 つの DMA コピー)。

NIC が DMA コピーをサポートしていない場合は、CPU コピーを使用します。これは、ユーザー空間に移動する必要がある通常のコピーよりも優れています。

そのため、ウィキペディアが NIC で DMA をサポートしないとパフォーマンスが向上しないと言っている理由がわかりません。

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

memory - システムの速度が低下するのに、なぜ DMA コントローラを使用するのですか?

私は本でこれを読みました:

システム内の DMA コントローラが 5 MHz の最大レートで機能し、それでも 100 ns のメモリを使用する場合、DMA コントローラはメモリよりも遅いため、最大転送レートは 5 MHz になります。多くの場合、DMA コントローラは、DMA 転送が発生するとシステムの速度を低下させます。

私は、DMA コントローラの全体的な理由は速度を上げることであり、速度を落とすことではないと考えていました。では、速度が遅くなった場合、どのように役立つのでしょうか? DMA コントローラをメモリと同じくらい高速にしないのはなぜですか?

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

dma - DMA転送データレート

DMA 転送速度について調べようとしていますが、この質問がわかりません。答えはありますが、そこにたどり着く方法がわかりません。

この質問は、DMA を使用して入力を処理し、入力インターフェイスに到着するデータをメモリに格納すること、このメカニズムを使用して実現できる達成可能なデータ レート、および特定のデータ レートに使用されるバス帯域幅 (容量) に関するものです。各 DMA 転送で実行されるクロック サイクルの実行の詳細と、バスを取得および解放するためのクロック サイクルが表示されます。以下に、DMA デバイスが入力インターフェイスとメモリ間で 1 つのデータ項目を転送するのに必要なクロック サイクル数、システム バスを取得および解放するクロック サイクル数、各データのサイズ (ビット単位) を示します。アイテム、およびクロック周波数。

各データ転送のクロック サイクル数 8

バスを取得および解放するためのクロック サイクル数 4

データ項目あたりのビット数 = 8

クロック周波数 = 20MHz

A) 達成可能な最大データ レートは何キロビット/秒ですか?

B) データ転送速度が 267K ビット/秒の場合、バス クロックの何パーセントが DMA デバイスによって使用されますか?

回答

A)20000.0

B)2.0

前もって感謝します。

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

protocols - Fix Protocol Api Forex アクセス - アプリの開発

これを介して外国為替を取引するために、Fix Api プロトコル (FIX 4.4 プロトコルを使用) を使用してアプリケーションを開発した経験のある人はいますか?

いつ、どのように開始すればよいか知りたいのですが?テスト環境はどこで入手できますか? コードを書いたり、外国為替ブローカーで使用したりする例はどこで入手できますか?

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

opengl - VBO が機能しない 動的 (メモリ割り当て)

DMA で VBO を試してみます。しかし、うまくいきません。

私は glBufferData を疑っています。私を助けてください。

申し訳ありませんが、私の英語はとても下手です..