Renesas Synergy™

FAQ 1008906 : バッファ・オーバーフロー(Buffer Over Flow)

データを溜めておくためのバッファが溢れたことをいいます。
データを通信する場合に処理速度の変動により発生するオーバーランを避けるための手段としてはバッファを利用しますが、その持ち方により3つの方法があります。ただし、いずれの方法も、基本的に受信側の処理能力が送信速度を上回っている必要があります。

ひとつはハンドシェイクによる制御です。この方法では、受信側が送信側にデータを受け取れることを示す信号を送ることで送信を待ってもらうものです。この 場合には送信側にバッファが必要になります。この方法では、受信側にはバッファはないので、受信側から受信できないとの通知がきたら、送信側は直ちに送信 を止める必要があります。そのために、ハンドシェイクのタイミングが重要です。

2つ目は、受信側でバッファを準備するものです。送られてきたデータは全てバッファに格納しておき、読み出す準備ができてから読み出すようにするもので す。この方式では、データを受信してからそのデータを読み出すまでの時間的余裕を大きくできます。この場合にもバッファに空がある間は受信できますが、そこもいっぱいになると(バッファがオーバーフロー)それ以上の受信はできなくなります。



3つ目は両方にバッファを準備するものです。受信側では、バッファ管理を行い、ある程度データがたまると送信側にデータの送信を控えるように通知します。 送信側は通知を受けると送信を停止します(停止すると、送信側のバッファにデータが溜まっていきます)。ただし、直ちに止める必要はなく、タイミング的に は緩やかです。受信側で、バッファからデータを読み出して、ある程度少なくなると送信再開を通知します。→バッファ

他にご質問がございましたら、リクエストを送信してください