Write buffer on L2

Suggestions around PrimoCache
Post Reply
Neglacio
Level 4
Level 4
Posts: 32
Joined: Tue Jan 21, 2014 11:28 pm

Write buffer on L2

Post by Neglacio »

Currently I'm looking at options for a hybrid SSD/HDD, gaming drive, using the SSD as a cache for the HDD. My best bet will be Intel Smart Response Technology (SRT) because it supports a mode in which the SSD is used as a write buffer, utilizing the high IOPS of an SSD for writes, only passing them onto the HDD when the HDD has a free queue. Read caching is enabled ofcourse.
The "new" Seagate Desktop SSHD's also use their rather limited 8GB SSD as a write buffer, but pauses it whenever the controller detects a long stream of writes.

Primocache would gain a great option if write-defer would also be possible on the L2-cache. It's a hardware-independent solution (SRT requires a Z67/Z77 chipset) with the addition of a RAM cache (L1) which can work flawlessly together.
I will be using my SRT setup with Primocache's L1, but I can already see that there will be extra overhead due to double and unnecessary caching on both levels.
piquadrat
Level 4
Level 4
Posts: 26
Joined: Wed Jan 22, 2014 7:41 am

Re: Write buffer on L2

Post by piquadrat »

But what's the point of L2 cache for write operations if you can use L1 for the same thing and with better performance.
You want to accelerate big sequential writing? You'll wear out ssd quickly that way.
Neglacio
Level 4
Level 4
Posts: 32
Joined: Tue Jan 21, 2014 11:28 pm

Re: Write buffer on L2

Post by Neglacio »

Write-defer pollutes the cache heavily. When you're having 2GB of defer waiting, and only 2GB L1 for that drive, then you're having no more space left for actual read caching. Write-defer is a perfect task for an L2 SSD.
Normal use of the SSD/HDD will be capable of handling the writes. The software should detect a large stream (as previously suggested) and cut off the write-defer there. However, the small writes should be buffered, reducing stutter in-game for example.
I will be using the SSD/HDD as a gaming drive, so there won't be very frequent big sequential writes. Only during install up to 20GB at once can be written. For the remaining time, there will be just a lot of small reads and writes, and that's where SSD's perform best.
piquadrat
Level 4
Level 4
Posts: 26
Joined: Wed Jan 22, 2014 7:41 am

Re: Write buffer on L2

Post by piquadrat »

If you have 2GB of defer waiting it means you have sequential transfer or Latency set to very high.
Detecting if the transfer is sequential or random is very hard and does not work correctly in case of alternative cache solutions (tested by myself).
Where SSD's perform best RAM is even better.
Neglacio
Level 4
Level 4
Posts: 32
Joined: Tue Jan 21, 2014 11:28 pm

Re: Write buffer on L2

Post by Neglacio »

It surely is true that RAM is faster, but it isn't capable of relaying as much big streams as an SSD. RAM cache also becomes polluted, no need for that. If I'm installing a big game, elder scrolls online beta needed 25GB, Assassins Creed IV needed 20GB, ... I'd love to have that happening at SSD write speed. No way RAM can handle that. So detecting large streams is actually not needed.
I can live with the extra wear on the SSD, it's practically impossible for normal use to deplete all write cycles.

Edit: Seagates newest SSHD's utilize write-cache in a specific way: They have some (how much is unknown) of their 8GB MLC Flash configured as SLC, used as write buffer, very fast. The buffer is skipped whenever it detects a big stream. (When the cache is filled within x seconds, stop write cache. When the disk is idle again, re-enable write cache)
Interestingly this is also done by Samsung's 840EVO. They use TLC NAND Flash, which has a horribly slow write rate. But they use a portion of their TLC as SLC to buffer writes. They call it TurboWrite.
Also worth noting, Samsung sold their mechanical HDD division to Seagate, which Seagate partly payed in shares. Samsung now holds around 10% of Seagate. They're close partners these days ;)
Post Reply