StoreMI: The Way To A Faster JBOD

When AMD launched the Ryzen APUs earlier this year, one of the minor side-announcements was that AMD was promoting software called FuzeDrive, from Enmotus. For an extra $20, this software could be yours. For the new Ryzen-2000 series desktop processors and X470 platform, this software is now branded as part of AMD’s software stack, and can be downloaded for free from the AMD website under the StoreMI branding.

The Benefits of a Cache

The principle for StoreMI is that a user can take a mid-range system, powered by a slow drive, and add a small but fast drive to increase the speed of the most frequently accessed files. The software creates a storage ‘tier’ between the fast drive and the slow drive, giving the user a single drive with the combined capacity of the two drives, while the software implements pattern recognition to understand which files can be placed on the fast drive and help with acceleration.

Tiered storage is not new – it is used in many storage-focused enterprise systems backed by very complex software. Fast storage is small expensive, while content is typically large: content delivery networks (CDNs), like Netflix or Steam, will use tiered storage and caching such that the most frequency accessed films or games will come from storage that is both near to the user and from the fastest possible location.

In a modern computer, the fastest storage is the onboard memory / DRAM. This is where files and programs are loaded to when the processor needs to access the data or keep data close for the lifetime of the software. In recent years certain enthusiasts have used RAMDisks, creating a drive using the onboard memory, to act as a fast repository. The only downside is that the data is lost on restart as the data held in DRAM is volatile (or not persistent).

A modern enthusiast machine is likely to have some sort of solid-state drive (SSD) based on NAND flash – either a drive connected via the PCIe lanes as super-fast storage, or connected through a SATA port. These users often have a mechanical hard-drive, based on spinning platters of rust, as a backup for bulk storage, commonly referred to as a hard-disk drive (HDD), and the speed is limited to how the system reads from a drive that spins at 7200 or 5400 times per second. Many machines still ship with HDDs as their primary and bulk storage, much to the dismay of users that notice the immediate user experience benefit of an SSD.

With StoreMI, a user can take any configuration of PCIe SSD, SATA SSD, or HDD, and implement them into a tiered storage drive. The combined single drive will have the capacity of all the drives in the tier, and the software will manage which data should be moved around into the fast storage drive. This process is gradual, and the software will take time to learn which files are the most important – this will mean that the effect will not be immediately noticeable, but after the third or fourth time that software or a game has been loaded, the system should have a good idea.

The StoreMI tool also allows the user to add up to 2GB of onboard memory into the storage tier. This process does not add additional capacity to the tier, but the DRAM acts as the fastest cache and will hold copies of the data held on other drives such that data is not lost. As mentioned above, as onboard memory is volatile, the speed up information will be lost on restart. In our discussions with AMD, they felt that 2GB was a good amount of memory for this DRAM cache: due to the way the software works, the company said that a large cache showed no tangible benefit. It also allows systems with only 8GB of total system memory to take advantage of the software.

Configurations

Unlike the caching technology behind Intel’s RST (which has only recently supported caching on non-Boot drives), AMD’s StoreMI can be used at any time in the lifecycle of the system. For any user that wants to delay the purchase of an SSD NVMe or SSD SATA storage drive, or delay to buy a bigger drive, they can do so and implement it into the tiered storage at a later date.

StoreMI can support almost any configuration requested, either on a Boot drive or on a data drive. For a Boot drive, AMD recommends installing the operating system on the higher capacity slower drive first, such that the HDD, and adding a blank SSD as the fast tier, although the reverse is also possible for users that want to add the larger drive later (there may be additional steps to the process). The only difference is that the software is likely to move a lot of data around at the beginning.

Configurations that are suggested for StoreMI are:

  1. HDD + DRAM
  2. HDD + SATA SSD
  3. HDD + SATA SSD + DRAM
  4. HDD + NVMe SSD
  5. HDD + NVMe SSD + DRAM
  6. SATA SSD + DRAM
  7. SATA SSD + NVMe SSD + DRAM
  8. NVMe SSD + DRAM

The biggest noticeable improvement should occur in configuration 4, when an NVMe SSD is paired with a mechanical HDD.

AMD states that if a tier reaches across from native chipset to controller based SATA ports, the software is likely to move files related to hibernation over to the drive on the native SATA ports for stability; this process might take up to 30 minutes.

Users can also remove drives from the tiered storage, if there is enough space to put all the data on the drive that stays in the tier. The removed drive will be left with zero data, and can be removed from the system or used for other things.

The Big Limitation: 256 GB on the Fast Tier

A point not mentioned in our initial briefings when FuzeDrive was launched alongside the APUs, but repeated sufficiently in the StoreMI User Guide, is that AMD’s bulk licensing deal with Enmotus means that the faster drive in the tier can only be up to 256GB in size.

When adding a drive larger than 256GB as the fast tier, the system will partition the blank drive automatically, offering the extra capacity as a separate drive letter on its own.

When adding a large HDD as the slow tier to an SSD boot drive, this is only a problem if the SSD is bigger than 256. Users in this circumstance will be required to migrate the operating system (using other software) from the SSD to the HDD first, then boot the system using the HDD and add the (now blank) SSD as a fast tier.

Some users might see this as a big deal – adding a 3TB HDD slow drive to a 512GB SSD-based boot drive shouldn’t have to be this complicated. However in this circumstance it might be suggested that the drives be kept separate, and items like the Steam folder are manually bifurcated into two locations with the favorite games on the sizeable SSD. However StoreMI is geared more towards systems that would naturally only have a large HDD in them to begin with – adding in a small fast SSD, say 64GB-128GB, is the intended use case here.

The Failure Rate: Downsides of a JBOD

Most options for combining drives in an array involve an element of speed (reading data across many drives at once) or protection against failures (data is replicated, or a parity bit is introduced), and usually storage array options combine both, trading failure protection for speed or vice-versa. For users involved in storing files, one of the options for combining drives is known as a JBOD, or ‘just a bunch of disks’. A JBOD offers neither speed nor failure protection.

A JBOD array does one thing: it combines the drives into the array to appear as one contiguous file space, and it treats it as such. Putting eight 10 TB drives into a JBOD will appear as an 80 TB drive in a system. However, it does not read from or write to the drives simultaneously – it will purely write data in a sequential manner and read the data from the drive that has it. As a result, it is still only as fast as a single drive, but if one of the drives in the JBOD array fails, the array is broken and the array is lost. Without specialist tools, all the data is lot from the whole array as well, and the data on that specific drive is almost certainly gone. If a single drive has an average failure rate, an eight drive array is expected to fail eight times as frequently as it relies on every drive being in workable condition.

What StoreMI does in this context is that it suffers from the same lack of protection from drive failures. There is no mechanism by which the data is protected if one drive in the tier fails – if one drive in the tier fails, the data across all the drives is lost. If the boot drive is a bargain SSD using low quality NAND, or the hard drive is old, then losing the data across both drives is a real possibility.

Initially I thought this was a significant issue. If a user was to put 10 drives into the tier, for example, it could spell disaster. The significance was muted however, when I learned of the 256 GB fast tier size limit, as it means that most users are likely to only pair two drives into a tier. AMD’s response to the threat of failure was to say that users should expect to keep backups regardless, and no specific comment was made based on the increased failure rate of a two-drive tier compared to a single drive. Because StoreMI moves data around from SSD to HDD, there could be additional concern as the software could write more data to the SSD over time than a casual user might do if it was just the boot drive, causing the NAND to wear out quicker. Neither AMD nor AnandTech see this as much of an issue, given that modern MLC and TLC SSDs are very good at managing bad data blocks and have overprovisioning built in.

Benchmarks!?

At present we haven’t had time to directly test StoreMI, having focused on other projects and upcoming events. If we get time, we will have a new article on StoreMI.

New X470 Chipset and Motherboards: A Focus on Power Benchmarking Setup and Power Analysis
Comments Locked

545 Comments

View All Comments

  • Flying Aardvark - Monday, April 23, 2018 - link

    There's usually a lag from 6-12 months on any change that's already in place. Any topic really. Humans aren't very good at seeing what's in front of them. It requires enough people repeating it over and over around them, until they accept reality.

    Before that reassurance from society around them, they don't have the confidence to see/admit reality. Just something I've noticed. :)
  • mapesdhs - Monday, May 14, 2018 - link

    That's why I like Goodkind's "1st Rule": people will believe a lie either because they want to believe it's true, or they're afraid it's true.
  • Kaihekoa - Tuesday, April 24, 2018 - link

    I don't know what reviews you read, but the WCCF review shows slight favor to 8700K in gaming. However, it's an incomplete review of gaming as they only test at 1440p Ultra, where the GPU bears most of the workload, and only show average framerate. Tech Report doesn't even go into any detail whatsoever on gaming and only broaches the topic in a couple paragraphs on the conclusion page. Still, they even show a lead to Intel. Anandtech shows the 2700X leading every game in framerate, which is flat out inaccurate when compared to other reviews.

    The Spectre BS has marginal, if any, impact on game performance. I don't know how you get the idea that CPU IO is related to loading textures in a game when textures are loaded into VRAM by the GPU. Looking further into the test setup, Anand uses slower RAM on Intel platforms, an ECC mobo for Z170, doesn't disclose GPU driver versions and uses an enterprise OS on consumer hardware. I'm guessing these and/or other factors contributed to the inaccurate numbers, relative to other reviewers, causing me to lose a lot of respect for this once well-regarded hardware reviewer. I'll get my benchmark numbers from PC Perspective and Gamers Nexus instead.

    Not hating on AMD, and I even own stock in both AMD and Intel. They offer tremendous value at their price points, but I spend alot of money on my PC and use it for gaming, overclocking/benching, and basic tasks, which all seem better suited to Intel's IPC/clock speed advantage. I need reviews to post accurate numbers so that I can make my upgrade decisions, and this incomplete review with numbers not reflective of actual gaming performance fails to meet that need.
  • Flying Aardvark - Tuesday, April 24, 2018 - link

    Come on man. I almost stop responding to replies like this. WCCF benches the base 2700, of course the 8700K wins, they don't include the 2700X. Again, the results line up with AT's. I wrote TR but meant TechRadar.

    Eh, I'm not going to keep going on addressing all these "points". IO is a syscall, reading/writing to disk is a syscall and that's where Intel takes up to a 50% perf hit with their Spectre v3 patches in place. This is known, and been known for months on the impact for games that do lots of texture steaming like ROTR. I even provided user provided evidence, that beat Anandtech here to the punch by 3 months.

    Anand used Intel/AMD memory spec. That's what you're supposed to do when testing a product advertised to use certain components (for good reason, BTW, stupid gamer kids discounted).

    Bottom line is that you and people flipping out just like you are wrong. I already knew about this being under the surface months ago. Now that it's impossible to cover it up with the 2000 series launch, more people are simply aware that AMD has taken over.
  • GreenMeters - Tuesday, April 24, 2018 - link

    But Anandtech has the 2700, and even the 2600X and 2600, beating the 8700K. So how are the WCCF benchmarks lining up with Anandtech's?
  • Maxiking - Tuesday, April 24, 2018 - link

    "I just finished running Rise of the Tomb Raider benchmarks, 1080p, very high preset, FXAA.

    Unpatched:

    Mountain Peak: 131.48 FPS (min: 81.19 max: 197.02)
    Syria: 101.99 FPS (min: 62.73, max: 122.24)
    Geothermal Valley: 98.93 FPS (min:76.48, max: 117.00)
    Overall score: 111.31 FPS

    Windows patch only:

    Mountain Peak: 135.34 FPS (min: 38.21 max: 212.84)
    Syria: 102.54 FPS (min: 44.22, max: 144.03)
    Geothermal Valley: 96.36 FPS (min:41.35, max: 148.46)
    Overall score: 111.93 FPS

    Windows patch and BIOS update:

    Mountain Peak: 134.01 FPS (min: 59.91 max: 216.16)
    Syria: 101.68 FPS (min: 38.95, max: 143.44)
    Geothermal Valley: 97.55 FPS (min:46.18, max: 143.97)
    Overall score: 111.62 FPS

    Average framerates don't seem affected."

    From the link you posted, you got rekt by yourself.
  • Maxiking - Tuesday, April 24, 2018 - link

    Actually, I can't bother waiting because, it's futile.

    The benchmark from that thread shows there has been no noticable performance regression after the updates had been applied.

    I know what you gonna do. Look at those min fps. I WAS RIGHT. I WAS RIGHT. You are thinking right now. No, you weren't. If you ever had run TOR benchmarks, you would have experienced it. There are quite severe discrepancies in the inbuilt benchmark when comes to min/max fps. I noticed it myself when I was overclocking 6700k and running game benchmarks, stability tests. Since you are mostly using anecdotal evidence, you do not know how to make proper arguments, don't provide valid sources, we are really limited here, but that's what we have.

    To support my statement, here is the video:

    https://www.youtube.com/watch?v=BZEhkcs9hpU

    It is not mine, but it is proving my point, there is an issue in the benchmark. It shows wrong/misleading min/max fps pretty often which other benchmarking solutions doesn't record.

    The video was published on 7 Jul 2016, so no meltdown/spectre for you. I know you will argue it is no coincidence with those min fps, but look at the max as well.
  • Maxiking - Tuesday, April 24, 2018 - link

    *solution
  • Flying Aardvark - Wednesday, April 25, 2018 - link

    Are you retarded? I know you are because I ran those benchmarks myself and it's reproducible on more games than ROTR. Where's your contradicting information to back your claim, you do know that trying to poke holes in info is not an argument.
  • Ranger1065 - Wednesday, April 25, 2018 - link

    So sad the review failed to meet your expectations. Enjoy your time at Gamer's Nexus (cough).

Log in

Don't have an account? Sign up now