Click here to Skip to main content
15,908,776 members
Please Sign up or sign in to vote.
2.50/5 (2 votes)
See more:
Hi
Have you ever use some tools like Nero CD Speed Test, Opti Drive Controller, or DvdInfo?
In these applications you can get real RPM of a drive. I mean it is said that drives at the speed X have RPM Y but it's a nominal or maybe ideal RPM if you set your drive at a speed and get the RPM with these tools you will see it's a bit different and changes continuously.

For some calculation in my project I need to know the exact RPM at any time I want.
I've tested one method: reading a sector twice - from medium (not cached reading) - many times and calculating elapsed time between two reading, finally get median value. But it's a far different value from values which standard testing tools report (like tools I mentioned). For example for 24X speed, RPM should be near 5100 but any method I tested reported a strange RPM.

So how can I calculate RPM?

Thanks
Posted
Comments
[no name] 3-Apr-14 22:23pm    
What's the point? Unless these programs have access to the drive firmware then they are guessing the rpm. The rpm changes continuously with head position. Statistical methods if possible can only guess what the rpm was some time back. Actually no because statistical methods that use data transfer rate, seek time etc are collecting data that has nothing to do with rpm. A lot of mistaken assumptions here. Quite a bizarre question.

1 solution

I do not know if this will work. This assumes it is possible to read a whole track at once.

Read a single sector. Measure the time from IO request to arrival of the data.

Read a whole track (as a single request). Measure the time from IO request to arrival of the last sector.

For "N" sectors, the time difference between the first and second measurement should be the time to read N-1 sectors (while also cancelling any setup time for the read requests).

N times this number, divided by N-1 should be the time for a whole rotation. The reciprocal of that is your RPM. Don't forget to adjust from milliseconds to minutes.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900