VOGONS


First post, by feipoa

User metadata
Rank l33t++
Rank
l33t++

In running some benchmarks with various PCIe USB 3.x cards on PCIe revision 1.0a motherboards, I was noticing that I don't get near the maximum uncoded thoughput of 250 megabytes per second for this PCI express specification. I am using a Samsung 870 EVO SSD connected inside UGREAN USB 3.1 gen2 to SSD adapter, which I think uses some Asmedia-based protocal converter. How much additional overhead is there with that protocol conversion?

These Samsung 870 EVO drives claim to do around 570 MB/s read, 530 MB/s write, and certainly will benchmark that when connected to the right SATA controller. PCIe spec 1.0a can do 250 Mbyte/sec of user data once 8b/10b encoding is considered. The USB 3.0 protocal should do 400 Mbytes/s once enconding is considered. USB 3.1 gen1 should do 605 Mbytes/sec once encoding is considered. So why do my benchmarks not easily reach 250 Mbyte/sec? Is there more than just the encoding overhead, "additional overhead"?

On a Renesas NEC D720201 USB 3.0 card connected to the PCIe 1.0a port in x1 mode, I get:
Read = 196 MB/s
Write = 161 MB/s

On another motherboard, the numbers are a smidge better at:
Read = 204 MB/s
Write = 165 MB/s

I know the USB-SATA adapter can do faster because when connected to a two-lane ASM1142 PCIe card, I see:
Read = 395 MB/s
Write = 258 MB/s
but that is still short of the 500 Mbyte/s 2 lanes of PCIe 1.0a can do once encoding is considered.

Is there some combination of hardware which will saturate that PCIe 1.0a x1 lane for a USB SSD? Do I need to wait for SSD SATA drives to advertise 1000 MB/s read/write speeds, for example? Or is there some uncommon PCIe 3.1 gen2 card in an x1 form factor which will yield 250 Mbyte/s with my existing hardware? Most PCIe 3.1 gen 1 or gen 2 cards are multi-lane.

Plan your life wisely, you'll be dead before you know it.

Reply 1 of 7, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

You can't reach 250 MB/s. PCIe overhead is roughly 20%. And you're not helping it with adapter neither, which also will take away some of that bandwidth.

Do I need to wait for SSD SATA drives to advertise 1000 MB/s read/write speeds, for example?

That would be last gen SAS SSD, which has 1.2 Gb/s interface, not SATA. SATA is pretty much dead at this point, being stuck at 600MB/s for years now.

If you have enough PCIe lanes on the motherboard, your best choices are last gen SAS controller (which is compatible with SATA btw) or NVME.

Last edited by The Serpent Rider on 2021-04-23, 03:16. Edited 2 times in total.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 2 of 7, by feipoa

User metadata
Rank l33t++
Rank
l33t++
The Serpent Rider wrote on 2021-04-23, 02:13:

You can't reach 250 MB/s. PCIe overhead is roughly 20%. And you're not helping it with adapter neither, which also will take away some of that bandwidth.

From my understanding the "overhead" is the "encoding scheme". PCIe 1.0a x1 spec is for 2.5 GT/s, which is 320 Megabytes per second. Subtract the 20% encoding overhead, we are at 250 megabytes per second. Why can't I reach 250 megabytes per second?

Plan your life wisely, you'll be dead before you know it.

Reply 3 of 7, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

From my understanding the "overhead" is the "encoding scheme". PCIe 1.0a x1 spec is for 2.5 GT/s, which is 320 Megabytes per second. Subtract the 20% encoding overhead, we are at 250 megabytes per second. Why can't I reach 250 megabytes per second?

That's not the only overhead and much more complicated - https://www.xilinx.com/support/documentation/ … apers/wp350.pdf

As I said, the real overhead is 20% of advertised bandwidth. For example, with 4x PCIe 1.1 lanes you can get 800 MB/s on NVME SSD via passive adapter, i.e. direct link to PCIe. It gets only worse if you add additional actors between storage and the bus.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 4 of 7, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Looks like you may have edited your post after I replied, so I did not get your full message in my above response. From that paper, it seems like the data transfer overhead, or encoding overhead, is the most prominent overhead. The paper goes on to mention another approx 1% loss from packet and traffic overhead. Then some from link and flow control protocol overhead, but I'm not sure what the average is those.

I guess I could use one of those USB 3.2 SSD's to further extend the benchmarks, but these native USB SSD's are too expensive in the 4 TB size. For test purposes, cheapest, smallest (512GB), USB 3.2 gen2 with speeds of 1000 MB/s are $90 CAD. That's too rich just to satisfy my curiosity. Maybe someone else would be willing to benchmark one of these USD 3.2 SSD devices on a PCIe 1.0a x1 slot with a USB 3.0 card?

Plan your life wisely, you'll be dead before you know it.

Reply 5 of 7, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

I guess I could use one of those USB 3.2 SSD's to further extend the benchmarks

I don't see any point in that. It still will be limited to roughly 200 MB/s, maybe just slightly more. That said, you can improve PCIe performance by just simply overclocking it. Most old-fashioned boards can handle 110 Mhz or 10% increase in bandwidth.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 6 of 7, by feipoa

User metadata
Rank l33t++
Rank
l33t++

It should provide some insight as to how much bandwidth we are loosing from the SATA-to-USB converter and how much bandwidth is lost from these extra PCIe overheads. I find it hard to accept that these "extra overheads", like packet, traffic, link, and protocol are further reducing bandwidth by an additional 15%, that is on top of the 20% encoding overhead. From 320 MByte/s down to 200 MByte/s is a costly 38% reduction.

I may try to overclock PCI express it to 110 MHz like you suggest, but I'm not sure how happy the Adaptec 6805T RAID controller will be.

Plan your life wisely, you'll be dead before you know it.

Reply 7 of 7, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Best I could get using an x1 PCIe card with a Fresco Logic FL1100 chip was:

208 MB/s read
171 MB/s write

I tested several PCIe x1 cards with Fresco Logic FL1100, NEC D720201, AsMedia ASM1042A, VIA VL805, & Eltron EJ168A. The cards with the FL1100 consistently benchmark a little faster.

Plan your life wisely, you'll be dead before you know it.