« 国際ブックフェアで好奇心の衰えを実感 | トップページ | いくらなんでもドアロックがリプレイ攻撃で開錠するのはだめだろう-IoTハッ キングイベントの記事より »

2016年9月24日 (土)

IntelのLANコントローラ82586:インテリジェントなDMA機能を実装していた

 前に書いた80C186の思い出のついでに、82586というLANコントローラの思い出を少し書いてみたい。80C186を使った組み込み製品は、LANのポートが必要であった。なにせ、10BASE-Tの規格がまだドラフトだった時代なので、LANコントローラは当然外付けである。80C186と組み合わせて使えるコントローラは、82586という、それはそれは、発熱してくれるコントローラしかなかった。
 ただ、このコントローラは、インテリジェントなDMAを搭載していた。ちょっと、ブログで説明するのは難しいのだが、CPUとLANコントローラは同じRAMにアクセスする。そのRAM上に、複数のバッファを確保し、そのバッファへのポインタをリングバッファに格納するようになっている。
 たとえば、LANからの入力は、LANコントローラがバスを握って、バッファへデータを書き込み、リングバッファにそのバッファへのポインタを格納するのである。その後で、バスをCPUに開放する。CPUは、リングバッファを見て、新しいデータが格納されていると、それを読みにいけばいい。
 しかも、データを格納するバッファにも工夫があった。単純に考えれば、バッファをイーサーの最大長の単位にすればいい。しかし、こうすると、小さなパケットが続くとメモリーが無駄になる。まだメモリーが小さい時代だったので、このあたりの無駄を避けるために64バイト程度(この値は設定できるようになっていた)のリスト構造になっていた。
 このあたりの、バッファのやり取りをするコードで、C言語のポインタのポインタや、リスト構造の扱いを実践的に勉強した。
 当時は、使うだけで精一杯であったが、今から思えば、なかなか先進的な設計のコントローラだった。

« 国際ブックフェアで好奇心の衰えを実感 | トップページ | いくらなんでもドアロックがリプレイ攻撃で開錠するのはだめだろう-IoTハッ キングイベントの記事より »

組み込み技術」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/568535/64249931

この記事へのトラックバック一覧です: IntelのLANコントローラ82586:インテリジェントなDMA機能を実装していた:

« 国際ブックフェアで好奇心の衰えを実感 | トップページ | いくらなんでもドアロックがリプレイ攻撃で開錠するのはだめだろう-IoTハッ キングイベントの記事より »

2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

公告

  • Google Adsense
無料ブログはココログ