Google Code Prettify

2006年10月29日

PATAの仕様とLinuxのドライバコード

ATAの仕様書は購入する必要があるが、Final Draft なら読めるので、ここ1週間ばかり齧り付いていた。

で、簡単なドライバコード(linux2.6のdrivers/ide/legacy/hd.c)だけならば読めるようになったが、PCIやらDMAバスマスタなると、ちんぷんかんぷんでまるで分からない。

ざーっと理解したところでは、PATAの1 channel の下に2台のHDDぶら下げる場合、大抵はリクエストをoverlapして発行はできず、1リクエストが完了するまでバスを占有する。

1channelの下に HDDとCD-ROMなどをぶら下げる場合、CD-ROMがATAPI(PACKETコマンドが実装されている)準拠なので、必要に応じてリクエストの途中でバスを解放できるらしいので、そんなにHDDに影響は与えないらしいが、、、本当か?、、、測定しなければ分からんなぁ。

ただ、仕様書ではTCQなりをサポートするHDDでは途中で解放なりキューイングなりができるが、PATA HDDで実装されているものがなく、あったとしてもキューのサイズが1とかだったり、その上Linuxの大抵のIDEのドライバコード?(or ハードウェアのチップの問題?)でサポートされていないので使えないらしい。

0 件のコメント:

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...