Well, there's always Steve Gibson's wonderful "Spinrite" [/sarc]. What do you mean "disk controller" Most such controllers, now days, are built into the South Bridge (ICH10 or equiv) on the motherboard. If you have a separate controller, that thing's ancient! Run Spinrite in level 2 for a first pass.
Back in the MS_DOS 3-6 era with RLL, MFM, and ESDI drives, that required separate controllers, both WD and Seagate had utilities to check the disks and the controllers. I don't know what you would use for modern IDE or SATA systems.
Seriously, if that thing is chucking errors at that rate, you're looking at a sick drive that's gonna drop dead any minute. Replace it. "Controller Errors" are generated by the drive, not the motherboard SATA or IDE controller. The "controller" function is in firmware and the ports are just interfaces to the internal PCI bus. Data comes off those drives as byte blocks, not 1s and 0s as in ancient times. The result of Compaq, CDC, and Western Digital inventing IDE was moving that controller functionality off to the drive itself. See http://en.wikipedia.org/wiki/Parallel_ATA
Oh, and loose or damaged cables could also do what you're seeing.
Edited by davnel, 15 November 2013 - 02:07 AM.