• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Theoretical question about SSDs

StormyParis

Junior Member
I'm a bit confused about why SSDs are not used as the DRAM cache is, turning HDs into a three-tier memory subsystem pretty much like RAM is, with each "SHD" including the usual platters and RAM cache, but also an SSD part ?

Obviously, SSDs are too expensive to be the single drive in most systems, and will be for quite some time still.

Why can't the controller or the OS figure for themselves what files belong in the SSD, and what files on the HD, the same way they put files in the HD's RAM cache and/or the OS's cache ?

That way I wouldn't have to micro-manage what goes where, and may actually get better performance thanks to the best files always being selected for the SSD, ie I don't have to put the whole OS on the SSD, only the parts of it that are frequently read but infrequently written, which frees up SSD space for other files with the same usage pattern.

Kind of a supercharged ReadyBoost, not that ReadyBoost had any kind of success...
 
Great idea. Patent it, before I do 😛 But the years to develop that software would probably be enough to make SSDs a semi-standard on computers. At least I'd think so.
 
For such a scheme to work somebody needs to code the intelligent part. This would logically be a part of the operating system rather than the disk controller. Your applications would need to tell the OS the data usage pattern of all the data it wanted to write to disk, and your file system would include some data describing this, and everything would magically go to the appropriate storage device.

At this point you end up with the nightmares I get with the Linux filesystem. I know where the file is in my filesystem, but which physical drive is it on? Doesn't matter until you want to swap out a hard disk.

Didn't the hard disk manufacturers try making hybrid flash/mechanical hard disks a while back, and they didn't really offer much improvement? I imagine the problem with doing this at the disk drive/controller level is that the drives themselves don't know enough about the data, other than how many times its been asked for.

Since Vista/7 and the likes of Superfetch working in the background, I would expect any files used frequently enough would be cached in ram anyway, eliminating much of the advantage of this extra level of cacheing.
 
the HD could look for which files are accessed in the first x seconds/minutes after powerup, and cache those ?

there might also be a way to let it know that it should do the same afterwards, kind of a "watch what i'm doing now" switch. good to use when launching an app.

that doesn't sound complicated to me.

there's no issue with where the files are, if the SSD is turned into a cache.

oh well, too much to expect I guess.
 
Actually I think it would be cool if this could be done at a hardware level. You'd have a card with two sata ports (are SSDs even sata, or is it another interface?) and one port would be set as being a fast drive (so the SSD) and what the card would do is keep track of which files are accessed more often and move them to the SSD so next time they get accessed there. As the SSD fills up it would start moving less used files back to the hard drive. Guess it would need to understand the file system to do this though...
 
the clear winner is that the o/s needs to be application aware of the storage to best manage it. windows 7 will not do this - maybe the next will.

if you've ever setup sql server you'll realize it is an OS that can be made aware of its hardware to optimize its behavior for the environment.
 
Actually I think it would be cool if this could be done at a hardware level. You'd have a card with two sata ports (are SSDs even sata, or is it another interface?) and one port would be set as being a fast drive (so the SSD) and what the card would do is keep track of which files are accessed more often and move them to the SSD so next time they get accessed there. As the SSD fills up it would start moving less used files back to the hard drive. Guess it would need to understand the file system to do this though...
I would suspect the hardware would operate at a block/byte level.
 
As her209 mentioned, the hard disk and controller firmware have no knowledge of filesystems so they'd be working at the block level. In order for it to work well the firmware would have to track data movement which means a separate piece of memory to hold a table to track hard disk->SSD block pointers. And since the firmware doesn't have any filesystem knowledge you'd need enough memory to track each SSD block individually.

Essentially you'd be reimplementing ReadyBoost at the firmware level and in a much more difficult and less flexible manner.
 
Obviously, SSDs are too expensive to be the single drive in most systems, and will be for quite some time still.

They aren't too expensive for anyone that actually needs the performance. No one is going to invest in producing a solution that will only be technologically viable for a few more years and is targeted at people too cheap to buy an SSD.
 
They aren't too expensive for anyone that actually needs the performance. No one is going to invest in producing a solution that will only be technologically viable for a few more years and is targeted at people too cheap to buy an SSD.

I find it's too expensive per GB. Now if it was 300 bucks for a 1TB SSD, it would be viable. You're paying 3x more then a spindle drive, but at least you're getting more performance, and not loosing out on space.

Guess as a strict OS drive the current sizes arn't bad but you still want a spindle drive for data.

Once they make SSDs unlimited writes that will also be a big feat. I could see them being viable in high performance server situations.
 
Back
Top