IDE Hard Disk Interfacing

Non-technical related questions should go here.
User avatar
jb007
Active Member
Posts: 33
Joined: Fri Jul 23, 2010 5:10 am

IDE Hard Disk Interfacing

Postby jb007 » Mon Sep 06, 2010 11:01 am

Hi all. I'm researching for an application where I need to store data at up to 9MB/sec with a total capacity of 8GB or more, with a XMOS doing the donkey work. Obviously an IDE drive fits the bill, but I wonder if any other storage technologies would suit. Any ideas or suggestions :?:

Has anyone interfaced an IDE drive to an XMOS yet, if so what sort of sustained speed did you achieve :?:

Jim :?
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Postby Berni » Mon Sep 06, 2010 2:00 pm

IDE shouldn't be a problem for xmos and 9MB/s seams pretty doable. As far as i know nobody used an IDE drive on xmos, but you should be able to find source code of it being done with other micros from PIC to ARM. Also you can look at CF cards as a alternative since they use a IDE interface so similar they work inside a PC on the IDE bus, but i can imagine the HDD is faster with sequential access, while the CF card should be really fast for random access since its seek times are next to none.

To maximize your speed you might want to use the HDD without a file system. Plunging the drive back in a PC wont be as nice as you will need to use some sort of software to image the drive in to a .bin file. But it should be a major speed up to not worry about keeping the file system happy.
User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Postby Andy » Mon Sep 06, 2010 2:04 pm

Have you looked at SD cards? SDHC Class 10 cards should be able to meet your speed and size requirements.
User avatar
segher
XCore Expert
Posts: 843
Joined: Sun Jul 11, 2010 1:31 am

Postby segher » Mon Sep 06, 2010 3:39 pm

The big question is what is the maximum allowed latency for any access. Both IDE
and SD have some pretty huge maximum latencies, in practice as well. You can buffer
some data to absorb some of the latency, but ~64kB is a tiny buffer for that (6ms or so).
User avatar
jb007
Active Member
Posts: 33
Joined: Fri Jul 23, 2010 5:10 am

Postby jb007 » Tue Sep 07, 2010 12:12 am

Berni wrote:IDE shouldn't be a problem for xmos and 9MB/s seams pretty doable. As far as i know nobody used an IDE drive on xmos, but you should be able to find source code of it being done with other micros from PIC to ARM. Also you can look at CF cards as a alternative since they use a IDE interface so similar they work inside a PC on the IDE bus, but i can imagine the HDD is faster with sequential access, while the CF card should be really fast for random access since its seek times are next to none.

To maximize your speed you might want to use the HDD without a file system. Plunging the drive back in a PC wont be as nice as you will need to use some sort of software to image the drive in to a .bin file. But it should be a major speed up to not worry about keeping the file system happy.
Thanks for this. I forgot about CF cards, but I'm concerned about write errors and slowing down of the write cycles as the card ages. I was looking at IDE and writing in 'the RAW' about a year ago before this project was shelved. I'm now trying to resurect it. :)
User avatar
jb007
Active Member
Posts: 33
Joined: Fri Jul 23, 2010 5:10 am

Postby jb007 » Tue Sep 07, 2010 12:21 am

Andy wrote:Have you looked at SD cards? SDHC Class 10 cards should be able to meet your speed and size requirements.
Thanks for your reply. I've currently got an SD card wired up and have been talking to it. I have some fast 32GB cards arriving very soon, so I can benchmark them. One of my concerns, as mentioned to Andy above, is apparently the write cycle slows down as the card ages. The caputure and writing of the data is the most critical aspect of this project, (it is 8 channels of AES/EBU audio). The data captured will at a later date/time be transfered to a host PC.

Jim
User avatar
jb007
Active Member
Posts: 33
Joined: Fri Jul 23, 2010 5:10 am

Postby jb007 » Tue Sep 07, 2010 12:38 am

segher wrote:The big question is what is the maximum allowed latency for any access. Both IDE
and SD have some pretty huge maximum latencies, in practice as well. You can buffer
some data to absorb some of the latency, but ~64kB is a tiny buffer for that (6ms or so).
Thanks for the reply. I will have to put in a larger buffer, as part of the process will be updating of the audio header whilst recording the audio data. I don't want to loose any prior data if someone trips over the power cord!

Jim
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Postby Berni » Tue Sep 07, 2010 12:59 pm

You can benchmark cards using a high speed USB cardreader and using one of the drive benchmarking apps that tries to write and read a pile of data to it and measures how fast it went. I think SD cards get up to 10MB/s. An HDD would probably be faster cause its parallel interface is already way faster and flash is slow to erase stuff (This is why SSD drives slow down over time)

Who is online

Users browsing this forum: No registered users and 1 guest