Sata sx4

From ata Wiki
(Difference between revisions)
Jump to: navigation, search
(new page - sata_sx4 driver)
 

Latest revision as of 21:58, 30 March 2008

Contents

[edit] Hardware support

sata_sx4 supports the Promise PDC 20621 chip, designed specifically to offload most RAID functions from the host system. The driver operates the hardware in non-RAID mode, directly exporting the ATA devices attached to each port for OS control.

[edit] Limitations

The SX4 (PDC20621) chip features a single Host DMA (HDMA) copy engine, DIMM memory, and four ATA engines (one per SATA port). Data is copied to/from DIMM memory by the HDMA engine, before handing off to one (or more) of the ATA engines. The ATA engines operate solely on DIMM memory.

The SX4 behaves like a PATA chip, with no SATA controls or knowledge whatsoever, leading to the presumption that PATA<->SATA bridges exist on SX4 boards, external to the PDC20621 chip itself.

The chip is quite capable, supporting an XOR engine and linked hardware commands (permits a string to transactions to be submitted and waited-on as a single unit), and an optional microprocessor.

The limiting factor is largely software. This Linux driver was written to multiplex the single HDMA engine to copy disk transactions into a fixed DIMM memory space, from where an ATA engine takes over. As a result, each WRITE looks like this:

  • submit HDMA packet to hardware
  • hardware copies data from system memory to DIMM
  • hardware raises interrupt
  • submit ATA packet to hardware
  • hardware executes ATA WRITE command, w/ data in DIMM
  • hardware raises interrupt

and each READ looks like this:

  • submit ATA packet to hardware
  • hardware executes ATA READ command, w/ data in DIMM
  • hardware raises interrupt
  • submit HDMA packet to hardware
  • hardware copies data from DIMM to system memory
  • hardware raises interrupt

This is a very slow, lock-step way of doing things. A driver designed specifically for RAID would provide better performance.

[edit] Known problems

Isolated reports of data corruption in the past, that were never tracked down to implicate or eliminate the driver.

[edit] Module options

None.

[edit] Programmer documentation

Multiple specifications are available: Programmer's guide, DIMM supplement, and PLL/ATA timing supplement.

Personal tools