Skriv ut
Den som bara använder vanliga prestandatester för att testa överföringshastigheten till en flashdisk missar den inverkan som kopplingen till datorkortet ger. Till att börja med definierar SATA-specifikationen en datatakt på 6 Gbit/s. Kodning med 8b/10b av sända data leder till en overhead på 20 procent. Protokollet kräver också extra bandbredd för att komprimera data till FIS (Frame Information Structure). Den underliggande förutsättningen är att all data sänds utan fel. För att upptäcka fel och verifiera överföringen definierar SATA-specifikationen en cyklisk checksumma, CRC. Även om CRC är effektivt kan kodningen bara upptäcka fel, den kan inte reparera dem. Om det uppstår ett fel måste sändningen göras om.
embexLadda ner artikeln på 500 kbyte här (länk, pdf).
Fler tekniska rapporter finns på etn.se/expert
För att förhindra detta specificerar standarden vissa attribut för signalerna. Till exempel är signalfrekvensen på kretskortet och kontakterna specificerade till 3 GHz (6 Gbit/s). På dessa frekvenser måste ledningsdragningen på kortet följa specifika regler. Men det räcker inte längre att enbart följa regler för dragningen (routing). Olika knep måste tas till på kretsarna för att optimera signalerna och kontrollmodulerna måste också fungera ihop med ledningsdragningen.

På drivsidan används en pre-emphasis, en förvrängning av signalen, för att kompensera för den påverkan som ledaren mellan sändare och mottagare skapar. En typisk SATA-förbindelse består av ledaren på mönsterkortet, minst två kontakter och en kabel. Den här förbindelsen utgör en RC-krets som primärt fungerar som lågpassfilter. Men egenskaperna varierar från system till system. Genom att justera styrka i drivningen och graden av pre-emphasis är det möjligt att matcha kretsar och system. Styrkan i drivningen påverkar också absolutnivån i signalen medan förvrängningen justerar styrkan i bitar som inte byter logisk nivå.

PCIe Gen3 har en komplex algoritm som låter sändare och mottagare förhandla om bästa inställningar. Däremot är SATA-specifikationen inte så flexibel, så det är upp till kretstillverkarna att bestämma hur mycket flexibilitet som ska designas in och det är upp till kortföretaget att dra nytta av flexibiliteten för att optimera systemet. Idag är det inte längre tillräckligt att bara förvränga signalerna på sändarsidan. Signalerna måste efterbehandlas på mottagarsidan. Återigen finns det olika inställningar som kan göras för att få en optimal anpassning av systemen.

Idealt sett har tillverkarna av flashdisken och moderkortet tagit hand om detta genom att kompensera för karakteristiken hos sina produkter. Egenskaperna hos kablarna är också specificerade vilket gör det möjligt att bygga ett optimerat system.

Tillverkare av hårdvara testar mot olika standarder för att verifiera signalkvaliteten. Vid testen försätts kontrollern i testläge och skickar sedan ut förbestämda testsekvenser som utvärderas med ett oscilloskop. Efter införandet av tredje generationens gränssnitt (USB, PCIe och SATA) måste man testa både på sändar- och mottagarsidan. I det senare fallet skickas sämsta tänkbara signal till mottagaren som betygsätter den och sedan skickar tillbaka den, så kallad ”loop back mode”. Data utvärderas med en bitfelstestare och jämförs med utskickad testsekvens. Den hårdvara som krävs för det här skulle lätt fylla en vanlig villa.

Om man lägger ut pengarna för testhårdvaran så får man visserligen ett fungerande system men det har svårt att hålla full datatakt. Feldetekteringen i SATA-gränssnittet är mycket effektivt, det är sällan ett fel slinker igenom. Men återsändningarna kräver bandbredd och om de blir för många så kan den användbara bandbredden reduceras kraftigt.

För att visa effekterna, användes ett testsystem från Congatec med en Intel I7-processor. Den mätte skrivhastigheten som funktion av inställningarna i sändaren. För att försäkra sig om kompatibilitet med de tester som branschtidningen C’t publicerar,  användes en IOmeter och samma inställningar.

Testobjektet var en Samsung SSD 840 Pro. Förutom de höga datatakterna hos flashdisken valdes den också för att Sam­sung använder SMART så att vi också kunde få en rapport på antalet  checksummefel i gränssnittet (0xC7). Alternativt finns den informationen i PCH-registren eller i Windows Event Viewer. IOmetern ger visserligen också antalet fel, men där sker räkningen bara när kontrollern tappar förbindelsen med hårddisken.

För testerna justerades sändaren på följande sätt. Signalstyrkan ändrades från 994 mV till 1 325 mV och pre-emphasis varierade mellan –2,2 dB och –8 dB. Samma tester kan göras genom att modifiera inställningarna i mottagaren (receiver equalization) men i det fallet går det inte att plotta förändringarna.

Testet visar att de första felen dyker upp långt innan datatakten degraderar. Se figur 1 och 2. Även om det inte resulterar i ett avbrott i sändningen är fenomenet inte acceptabelt. I industrin tolererar man ett maximalt bitfel på 1e-12. Det betyder att det för var 10e12:e bit som skickas får en bit vara fel. Med en datatakt på 6 Gbit/s motsvarar det ett fel var 167 sekund. Även om det inte märkbart påverkar prestanda så vet vi att systemet kan bättre. Felkorrigering ska verkligen bara användas för att korrigera oväntade fel som orsakas av störningar som kommer utifrån och inte för att dölja ett dåligt system. Tester för att kontrollera om systemet uppfyller specifikationen garanterar att signalkvaliteten vid SATA-porten möter den specificerade miniminivån.

Den minsta tillåtna spänningsnivån ges ofta av öppningen i ögondiagrammet. Figur 3 visar en jämförelse mellan en bra och en dålig inställning.

Medan de specificerade testerna av sändaren är relativt enkla och de flest vet hur man gör dem är motsvarande tester för mottagarsidan ganska färska för den senaste generationen. Principen är densamma för alla typer av gränssnitt. Du kör igång en testning som tar emot och sedan skickar tillbaka data. Det innebär att enheten som ska testas, ofta kallad DUT eller Device Under Test, utvärderar alla inkommande data på mottagarens ingång och sänder tillbaka dem oförändrade.

En signal med dålig kvalitet skickas till testobjektets mottagare. Signalen kan skapas med en bitfelstestare och man använder en väldefinierad kabel. Signalens amplitud går att variera och dessutom kan man addera jitter. När mottagaren har mätt på signalen och skickat tillbaka den till bitfelstestaren går det att avgöra om den mottagna sekvensen med bitar är identisk med den utsända. Figur 4 visar ett exempel på bra och dålig inställning av mottagaren. Den gröna linjen indikerar det maximala jittret som bitfelstestaren kan generera. Den svarta, horisontella linjen vid 520 mUI (ungefär halva tiden) visar den maximala jitternivån upp till vilken mottagaren behöver klara av att korrekt utvärdera mottagna data. Den röda linjen visar jitternivå för när mottagaren har hittat ett fel i dataströmmen. Det vänstra exemplet visar att ett fel inträffar vid ungefär 350 mUI medan gränsen för Pass/Fail i den hägra mätningen ligger väl ovanför specifikationen. Även om det är svårt att kontrollera om mottagaren uppfyller standarden är det lika viktigt som att kontrollera sändaren.

Utan noggranna tester är det omöjligt att garantera att vare sig sändare eller mottagare uppfyller specifikationen. Om man bara ansluter en hårddisk och mäter överföringshastigheten går det inte att dra slutsatser om systemets kvalitet. För att garantera kvaliteten i designen är det nödvändigt att optimera inställningarna i systemets sändare och mottagare för att sedan göra de erforderliga testerna. På så sätt är det möjligt att försäkra sig om att den uppsjö av olika produkter som finns på marknaden fungerar ihop.


Congatecs COM Expressmodul conga-TC87 har fyra Serial ATA-portar som stödjer 6 Gbit/s och RAID. Det är baserat på Intels lågeffektsprocessorarkitektur Haswell och har ett integrerat chipset (PCH) liksom grafikstöd. Trots ökad prestanda är den maximala effektutvecklingen (TDP) bara 15 W. Några unika funktioner hos Core i7-4650U and i5-4300U är förbättrade och individuellt konfigurerbara turbolägen liksom omfattande möjligheter till TDP-konfiguration för att kunna klara olika kyllösningar. Conga-TC87 finns i tre varianter med dubbelkärniga Core i7-4650U, i5-4300U eller i3-4010U. Modulen stödjer snabb och energi­effektiva tvåkanaliga DDR3L-minnen upp till 16 Gbyte.

Jämfört med tidigare versioner är den integrerade grafikprocessorn avsevärt förbättrad. Den stödjer numera Intels Flexible Display Interface (FDI), DirectX 11.1, OpenGL 4, OpenCL 1.2 och avkodning av multipla HD-strömmar. DisplayPort har inbyggt stöd för 4K med upp till 3840 x 2160 bildpunkter.

Det finns åtta USB-portar varav två stödjer USB 3.0. Fyra PCI Express 2.0 liksom Gigabit Ethernet gör det enkelt att ansluta olika periferienheter med aktiv styrning av fläkten. Vidare finns en LPC-buss för att ansluta äldre typer periferienheter, I2C-buss och Intels High Definition Audio avrundar anslutningsmöjligheterna.