2

プロセッサが 100 MHz で動作し、データが外部デバイス/ペリフェラルから 1000 Mbit/s (8 ビット/クロック サイクル @ 125 MHz) のレートでプロセッサに送信されることを考慮すると、これがトラフィックを処理する最良の方法です。プロセッサに高速で?

4

4 に答える 4

4

まず、ソフトウェアではできません。デジタルラインを十分なレートでサンプリングしたり、それを使って何か役に立つことをしたりする方法はありません。

ハードウェア FIFO バッファまたはメモリ セルを使用する必要があります。データ バーストが発生すると、高速 FIFO にバッファリングされ、必要に応じてプロセッサによって読み出されます。

高速 FIFO チップのドロップは驚くほど高価です (ほとんどがデュアル ポートですが)。コストを削減するには、SRAM チップとハードウェア加算器を使用して着信データのアドレス ラインをインクリメントするのが最善です。

于 2010-06-18T20:05:23.003 に答える
2

これはソフトウェアにとって珍しい状況ではありません。semajは正しい言葉を言った。これはシステムエンジニアリングの問題です。他の人々も正しい答えを持っています。100MHzプロセッサでそのデータを確認または処理したい場合、それは起こりません。わざわざ試してはいけません。スナップショットを確認することも、ハードウェアに探している特定の割合を除外させることもできます。結局のところ、これはシステムの問題ですが、ハードウェアは何を提供し、このデータをどこに配置し、このデータのソフトウェアタスクは何であり、データのXバッファがgointaに入るのを確認しますか。 Xバッファの準備ができていることをgooutaハードウェアに通知しますか?ハードウェアは、ヘッダーを確認できるようにバッファーを調べて調整しますか?次に、ハードウェアをどこにルーティングするかを決定しますか?システムエンジニアリングを行うと、そのプロセッサを使用できるかどうか、およびそのプロセッサを使用できるかどうか、その仕事とは何か、およびその方法がわかります。

あなたの直接の質問。それを処理するための最良の方法は何ですか。これを処理する最良の方法は、ハードウェア(fpga、asicなど)でストレージデバイス(おそらく何らかのRAM)に出し入れすることです。プロセッサが不足しているRAMと同じである必要はありません(DMAは避けるのが良いことです)。ハードウェアはソフトウェアが通信できるものですが、そのすべてのデータを調べることはできないので、試してはいけません。これがどのような種類のデータであるか、どのような形式であるか、ハードウェアに強制的に実行させようとしている作業量をソフトウェアがどの程度見ているかなどがわからなくても、残りの答えが決まります。特定の(保証された)パーセンテージが不良であるか、このプロセッサに属していないことが予想される場合などは、ハードウェアフィルタを除外して、残っているものを処理できます。

ネットワークはこの良い例です。PCにはGigeポートがありますが、GigEラインレートデータを処理することはできません。そのため、現在ハブの代わりにスイッチを使用しています。ハードウェアはデータの一部をスライスしてPCが処理できるようにし、プロトコルは後で再送信して処理できないデータを処理します。また、スイッチプロセッサはすべてのデータを確認するのではなく、ハードウェアがデータをスライスして、ソフトウェアがヘッダーのみを確認できるようにします。または、ソフトウェアがハードウェアを駆動するテーブルを管理するだけで、ハードウェアがデータ処理のすべての作業を行う場合もあります。

あなたのシステムエンジニアリングは答えが単純に落ちるでしょう。

于 2010-06-20T03:37:38.900 に答える
2

あなたはそれをバッファリングします。通常、デバイスからのデータは、DMA(CPUは関与しません)を使用してメモリバッファー(循環キュー)に書き込まれます。CPUは、メモリバッファから一定の速度で読み取ります。通常、デバイスはデータをバーストで送信します。これにより、バッファがいっぱいになるのを防ぎます。データが多すぎる場合は、バッファオーバーフローが発生します。

于 2010-06-18T20:07:10.347 に答える
1

DMA (ダイレクト メモリ アクセス) が解決策になる可能性がありますが、メモリ バスがプロセッサ コアよりも高速に動作する可能性は低いと思われます。したがって、125MHz を維持できないため、受信ペリフェラルは 8 ビットよりも大きなレジスタにデータを受け入れる必要があります。 . たとえば、16 ビット レジスタは、達成可能な 62.5MHz でのメモリ書き込みを可能にします。また、受信デバイスは、コア クロックに対してより高速で非同期の外部クロックを受け入れることができる必要があります。もちろん、受信側のペリフェラルも DMA をサポートしている必要があります。

ハードウェアと通信プロトコルについてより具体的に説明しない限り、一般的な回答以外を提供することは困難です。

于 2010-06-19T20:34:31.177 に答える