SLC-Cache, nyckeln till framgång

Som vi nämnde tidigare så är inte SX8000 som andra MLC-enheter. Då man inte tyckte att prestandan blev tillräckligt bra med vanlig MLC, så valde man istället att lägga in en SLC-cache. Det är inte ovanligt att man använder SLC-cache för att öka en enhets skrivprestanda, däremot så är det ovanligt att man gör det på en enhet med MLC-NAND. Oftast så brukar MLC ha tillräckligt bra prestanda för att inte behöva använda en SLC-cache. Adata verkar dock tycka att IMFT:s MLC inte är tillräckligt snabbt.

Oftast så brukar man ta en del av enhetens overprovisioning och ha den som en statisk cache. Men med PCIe så är prestandan så pass mycket högre så att en liten cache skulle bli full direkt och inte göra så stor nytta. Adata har därför gjort en liten specialare genom att göra cachen dynamisk. Tyvärr så har Adata inte avslöjat exakt hur cachen fungerar, men med hjälp av olika tester så har vi lyckats räkna ut några saker.

adata_sx8000_fillingHär kan vi se att SLC-cachen hos Adata SX8000 är riktigt stor. Den är ungefär 45 – 46 gigabyte, vilket är betydligt mer än de 8 – 16 gigabyte som vi brukar se. Större delen av cachen inkräktar då på den vanliga MLC-delen. Det betyder att om man ska fylla enheten med data så måste cachen konverteras från SLC till MLC i realtid. Så för att testa hur det funkar så fyllde vi hela enheten med data.

adata_sx8000_filling_2Den första delen (runt 1 000 MB/s) är i SLC, cachen. Sedan rasar prestandan ner till 350 MB/s och efter ett tag så kommer den upp till strax över 600 MB/s. Vad vi tror händer är att hela SLC-cachen fylls och när den är full så börjar enheten skriva data till MLC istället, och samtidigt skriva över den data som redan är lagrad i SLC-cachen vilket ger den lägre hastigheten. När SLC-cachen är tömd så får man MLC-prestanda, vilket är över 600 MB/s.

Det verkar som om cachen hela tiden anpassar sig till hur mycket som finns ledigt. Det betyder att ju mer du fyller enheten, desto mindre blir cachen. Vi passade också på att testa hur mycket ström enheten drar i samband med att vi kopierar över 20 GB till enheten.

Den blå linjen visar hur mycket ström enheten drar i milliwatt (vänstra axeln) och röda visar enhetens prestanda i megabyte per sekund. Vi har även synkroniserat båda graferna i tid och här kan vi se att SX8000 jobbar även när ingen ny data skrivs. Gissningsvis är det då som data skrivs över från SLC till MLC.

I teorin så är det en bra lösning men frågan är hur bra det fungerar i praktiken.

Leave a Reply

Please Login to comment
  Subscribe  
Notifiera vid