· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
IDE interface

IDE interface

IDE register

  • Data register (1F0H, read/write)

  • Error register (1F1H, read)
    bit 7 6 5 4 3 2 1 0
    의미 BBK UNC MC IDNF MCR ABRT TK0NF AMNF
    BBK (Bad block detected) : ATA1에서는 요청한 섹터가 오류블럭인경우 설정되지만 ATA2에서는 예약으로 되어 있다. UNC (Uncorrectable data error) : Data가 잘못된것이 발견되었을때 설정된다. ECC검사시 설정될수 있다. 이 비트가 설정되면 Data를 신뢰할수 없다. MC (Media change) : 매체가 변경(교체)되었을 경우 설정된다. IDNF (ID not found) : Sector를 찾을수 없을때 설정되며 아마도 심한 회손이 되는 경우에 설정되는것을 확인할수 있다. MCR (Media change requested) : 외부로부터 매체를 교체하려는 신호를 수신했을때 설정된다. Eject버튼같은 경우가 이에 해당할수 있다. ABRT (Aborted command) : Command수행중에 오류로 인하여 Interrupt 되어 작업이 중지되었다. TK0NF (Track zero not found) : Track 0번을 찾을수 없을때 설정된다. 이 경우가 발생하면 매우 치명적인 손상을 입은 경우일것이다. AMNF (Address mark not found) : 요청한 Sector의 주소를 찾을수 없다.

  • Feature register (1F1H, write)

  • Sector count register (1F2H, read/write)
    0은 256으로 인식한다. (0개의 count는 의미가 없으므로)

  • Sector number register (1F3H, read/write)
    LBA mode인 경우 LBA주소의 0~7bit

  • Cylinder number register (1F4H~1F5H, read/write)
    1F4H : Cylinder번호중에서 하위 바이트 1F5H : Cylinder번호중에서 상위 바이트 LBA mode인 경우 LBA주소중에서 1F4H에는 8~15bit, 1F5H에는 16~23bit

  • Drive/Head number register (1F6H, read/write)
    bit 7 6 5 4 3 2 1 0
    의미 1 LBA 1 DEV H3 H2 H1 H0
    LBA (LBA mode) : 0인 경우 Cylinder/Head/Sector 방식, 1인 경우 LBA주소방식 DEV (Device) : Device번호 (0은 Master, 1은 Slave) H3~0 (Head number) : Head번호 (LBA mode인 경우 LBA주소중에서 24~27bit)

  • Status register (1F7H, read)
    bit 7 6 5 4 3 2 1 0
    의미 BSY DRDY DF DSC DRQ CORR IDX ERR
    BSY (Busy) : 이 bit가 설정되면 명령을 처리중에 있음을 의미한다. DRDY (Drive ready) : 드라이브가 명령을 받을 준비가 되었을대 설정된다. DF (Drive fault) : 드라이브에 에러가 발견되면 설정된다. (ATA1에서는 Drive가 쓰기에러상태일때를 나타낸다.) DSC (Drive seek complete) : Head가 요청한 Cylinder위치에 놓였을때 설정된다. DRQ (Date request) : 드라이브로부터 Data가 요청되는 경우 설정된다. CORR (Corrected data) : 읽기오류가 발생했을때 설정되며 이 경우 interrupt 되지 않고 계속 수행하는 상태인 경우이다. IDX (Index) : Index mark위로 head가 통과할때 설정된다. ERR (Error) : 명령수행시 에러가 발생하면 설정되어 에러를 나타낸다. 어떤 에러상태인지는 추가적인 정보로 제공되는 bit들을 확인해야 한다.
  • Command register (1F7H, write)

  • Alternate status register (3F6H, read)

  • Device control register (3F6H, write)
    bit 7 6 5 4 3 2 1 0
    의미 N/A N/A N/A N/A 1 SRST !IEN 0
    SRST (Software reset) : 적정시간동안 설정하고 있으면 재설정상태로 돌입하며 0으로 변경하면 기동을 하게 된다. !IEN (Interrupt enable) : 0이면 interrupt를 허용하게 된다.

  • Drive address register (3F7H, read)
    bit 7 6 5 4 3 2 1 0
    의미 N/A !WTG !H3 !H2 !H1 !H0 !D1 !D0
    !WTG (Write gate) : 선택된 드라이브가 쓰기동작중일때는 0으로 설정된다. !H3~0 (Invert Head number) : 현재 선택된 드라이브의 Head번호가 반전되어 설정된다. !D1 (Slave drive) : Slave drive가 선택되면 0이 설정된다. !D0 (Master drive) : Master drive가 선택되면 0이 설정된다.

참고자료

  • Samsung HDD datasheet (Spinpoint P80VEM Product Manual Rev01.pdf)
  • Hitachi HDD datasheet (5K250_DS.pdf, Desktop 250GB 7200 rpm Data Sheet.pdf, Desktop 250GB Specification.pdf, P7K500_DS.pdf, Travelstar 4200rpm Data Sheet.pdf, Travelstar 4200rpm Specification.pdf, ...)
  • Seagate HDD datasheet (N2ProductManual(2.5인치, 4200RPM).pdf, Seagate HDD Disk.xls. RoHS DoC Tonka v4.pdf, ...)
  • Western Digital HDD datasheet (WD KR model name1_Apr06.pdf)
  • SCSI & IDE interface second edition (Friedhelm Schmidt, ADDISON WESLEY)


ID
Password
Join
Try to divide your time evenly to keep others happy.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-10-02 10:29:56
Processing time 0.0062 sec