Two Port USB 3.1 GEN II PCI Express Card

Anyone else ordered a 2 Port USB 3.1 GEN II (10Gbps) PCI Express Card 1 USB Type C and 1 USB Type A Port (USB 3.1 A + C) from AliExpress.com?
2portusb31pciecard
Seem like they have one on sale for $26.99 in 19 hours from now. Ok. Let’s buy one and see what we get – they say that it works with OS X 10.6 and greater.

Update: Here is a first benchmark with a Sandisk 64GB USB3.1 type C flash drive.
orico_pa31-ac_sandisk64gb
I only installed the card and connected the SATA power cable to it. I did not modify anything. Worked out of the box, but this flash drive does not support 10Gbps. To test that I first need a new generation II device, which I do not have at the moment.

Update-2: I found some interesting lines in the log:

kernel: (kernel) 000003.592134 PEGP@00000000: AppleUSBXHCI::createPorts: port 1 unsupported protocol USB 03.01
kernel: (kernel) 000003.615236 PEGP@00000000: AppleUSBXHCI::createPorts: created port 1

kernel: (kernel) 000003.615527 PEGP@00000000: AppleUSBXHCI::createPorts: port 2 unsupported protocol USB 03.01
kernel: (kernel) 000003.615633 PEGP@00000000: AppleUSBXHCI::createPorts: created port 2

kernel: (kernel) 000003.615887 PEGP@00000000: AppleUSBXHCI::createPorts: created port 3
kernel: (kernel) 000003.616282 PEGP@00000000: AppleUSBXHCI::createPorts: created port 4

This is not good. Time for a tiny SSDT. Here is mine:

DefinitionBlock ("ssdt_usb-iMac171.aml", "SSDT", 2, "APPLE ", "Xhci", 0x00001000)
{
    External (_SB_.PCI0.PEG0, DeviceObj)
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

    Scope (\_SB.PCI0.PEG0)
    {
        Scope (PEGP)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Device (XHC2)
        {
            Name (_ADR, Zero)  // _ADR: Address

            Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (SSP1)
                {
                    Name (_ADR, One)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        0x09, 
                        Zero, 
                        Zero
                    })

                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })

                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }
                        Return (Package (0x02)
                        {
                            "UsbCPortNumber", 
                            One
                        })
                    }
                }

                Device (SSP2)
                {
                    Name (_ADR, 0x2)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF,
                        0x09,
                        Zero,
                        Zero
                    })

                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })

                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }
                        Return (Package (0x02)
                        {
                            "UsbCPortNumber",
                            0x02
                        })
                    }
                }

                Device (HS01)
                {
                    Name (_ADR, 0x03)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF, 
                        0x09, 
                        Zero, 
                        Zero
                    })

                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })
                }

                Device (HS02)
                {
                    Name (_ADR, 0x04)
                    Name (_UPC, Package (0x04)
                    {
                        0xFF,
                        0x09,
                        Zero,
                        Zero
                    })

                    Name (_PLD, Package (0x01)
                    {
                        Buffer (0x10)
                        {
                            /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                            /* 0008 */    0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        }
                    })
                }
            }
        }
    }
}

I may want/need to change my initial SSDT later on, but at least the errors are gone now.

Also. Note that my card is installed in the first/primary slot (PEG0) of the motherboard, but your card may – most likely – use another slot. In short; don’t forget to change the device name 😉

Update-3: And here is a screenshot of a Samsung T3 (500GB) device in action:
samsung_t3_500gb
This is not a second generation USB 3.1 device, but already quite a bit faster than the Sandisk that I used previously for testing. Also. When you are going to use some external M.2 B key enclosure, then keep in mind that it will be limited to 500~550 MB/Sec due to SATA. Which is not a whole lot faster.

A better option would be some RAID enclosure with two SATA devices, or a M.2 M key device (non-SATA). These two can, at least in theory, use the 10 Gbps (up to 6 Gbps for SATA) of the USB 3.1 Gen 2 port.

Advertisements

40 thoughts on “Two Port USB 3.1 GEN II PCI Express Card

  1. As far as I know, Mac OS doesn’t support 3.1 gen 2 yet, except in the MacBook Pro 2016 in Sierra. Maybe this uses a third party driver? Don’t third party USB drivers usually have problems? See if you can get the driver from a support site first.

    • Good idea. Let me check that right away. Thanks!

      Update: The ASMedia ASM1142 controller drivers only support Mavericks and Yosemite. AsMedia has no plans to update the driver for El Capitan and/or Sierra.

      • The ASMedia ASM1142 is compliant with Intel eXtensible Host Controller Interface specification revision 1.1, so shouldn’t Apple’s drivers work (with some patches for device matching maybe)? Otherwise, what’s the point of being compliant?

        The chosen driver should support USB 3.1 gen 2 (10 Gbps). That doesn’t include the USB driver in El Capitan which recognizes the XHC of the Alpine Ridge controller, but only supports HighSpeed ports because the SuperSpeed ports report their speed as 10 Gbps which is not supported by that version of the USB driver.

  2. Sierra displays my ASUS USB 3.1 ports, and a my ASUS TB3/USB 3.1 card as USB 3.1 in System Profiler, but the TB does not work, and the USB 3.1 ports run USB 3.0 speeds.

    Perhaps you can work some software magic.

    • I also have the TB3 card on a X99 A II and have not managed to properly show on System profiler nor the 3.1 😦 although my board has integrated 3.1 but it only runs at 5Gbs with a 3.1 device.

    • That’s interesting that the USB 3.1 ports run at USB 3.0 speeds. Are you using Apple’s drivers or third party drivers? In El Capitan on my Gigabyte Z170X Gaming 7 motherboard, using Apple’s drivers, the ports will only work at USB 2.0 speeds. I should try Sierra one day…

      Are we sure the MacBook Pro 2016 has support for 10 Gbps USB 3.1 gen 2 speeds? If so, then how does that differ from your hardware? I wonder if your Sierra has the same drivers as the MacBook Pro 2016’s Sierra?

      I wonder if TB3 functionality requires device properties like those of the MacBook Pro 2016 that Pike listed here:
      https://pikeralpha.wordpress.com/2016/11/02/macbookpro131-device-properties/

      Currently in El Capitan, on my motherboard, TB3 devices work if they are plugged in before booting. What’s missing is hot-plug functionality and reporting in System Profiler.

  3. I just picked up a USB-C to USB-A cable (as Apple are having sales on those), but I’m having problems with the Alpine Ridge controller on my motherboard.

    Not detected means: Not showing up in IORegisteryExplorer, Audio in System Settings, and under the controller in System Information.

    Attaching a microphone:
    * before booting up: Microphone not detected.
    * before booting up, then sleep the system: Microphone not detected.
    * after booting up: Microphone detected.
    * after booting up, then sleep the system: Microphone not detected.

    Replugging the microphone after sleep: Microphone detected.

    So it is only detected (and working) if attached AFTER the system is already running.

  4. Regarding your Update-2, are you still talking about the ASMedia card? The log says “AppleUSBXHCI”. Does that mean the card is not using third party drivers? Or does that mean it’s not using an AsMedia chip? I asked about that in a previous comment.

    “unsupported protocol USB 03.01” means USB 3.1 specification according to section 7.2.2 of the eXtensible Host Controller Interface revision 1.1 document. This is information stored in the xHCI Extended Capabilities of the PCI MMIO space of the xHCI device.

    How does the SSDT fix that? Does the Apple driver ignore that issue when it sees a UsbCPortNumber property?

    Also in the xHCI Extended Capabilities is the speed defined as a mantissa and an exponent. In El Capitan, a system log message appears for 10 Gbps ports “AppleUSBXHCIPCI::createPorts: unsupported speed mantissa 10 exponent 3”. Do you not see that message when because you’re using Sierra?

    Does your SSDT fix still allow 10 Gbps speed?

    • Yes. This is the same board that I ordered, and no I did not install any third party drivers. No errors in Sierra with the SSDT, and there is a lot going on in the driver. Reading the values from the _UPC method being one of them.

      I am still waiting for my external exclosures (M2 and normal SSD’s) to arrive. Not that I would have had time to test any Super Speed Plus capable devices, due to the water damage at home that I need to fix first (we had some insane heavy rain in the south of Spain) but I hope to do that as soon as possible.

      • I didn’t think about that. You made an SSDT for a PCIe card. Does your SSDT replace anything from the PCIe card? Can a PCIe card have ACPI information in it’s Expansion ROM or affect the ACPI tables?

        I can imagine the SSDT would affect the driver if the driver was made to look at that info (maybe that info overrides some of the xHCI Extended Capabilities or the presence of that information means the driver doesn’t need to consider some of the information in the xHCI Extended Capabilities).

  5. Thanks as always for your curiosity Pike!

    I just modified your mini-SSDT for my ASUS X99 Deluxe II motherboard, but System Information still reports Up to 5Gbp/s. Does your system say “Up to 10Gbp/s” now?

    I have a USB 3.1 Type C device attached in the rear and it mounts and works fine, but at these USB 3.0 speeds.

    • Oh crap. I knew that I forgot something; I had an external enclose shipped to me for testing, and the one thing that I forgot was… well just that.

      There isn’t a whole lot of hardware that supports the full 10Gbps speed. The best one at the moment is the sanDisk Extreme 900 but I do not own one.

      My plan is to test some new external enclosures with my new MacBook Pro (15-inch early 2017) and then see what the hack is doing with it.

      Will keep you posted.

    • I purchased the card Mark linked, but System Profiler shows “Up to 5Gbp/s” just as the USB 3.1 ports do on the motherboard.

      No one at that link provided any visual proof that they have it running at 10Gb. Is anyone here able to provide any evidence to the contrary? Thanks!

      • I bought this card “StarTech.com 2-Port USB 3.1 (10Gbps) Card – 2x USB-C – PCIe (PEXUSB312C)“. I tested it in macOS Sierra 10.12.3 on a Hackintosh. It uses an Asmedia ASM1142 chip (pci1b21,1242). The Apple driver is “AppleUSBXHCIPCI”.

        I also bought a “OWC Mercury Elite Pro Dual mini USB 3.1 Gen 2” with two 6Gb/s SSDs.

        I have a Hackintosh with a built-in Intel AlpineRidge Thunderbolt 3 controller (pci8086,15b6) that has one Thunderbolt 3 port (USB-C) and a 3.1 gen 2 USB-A port. The Apple driver for this is “AppleUSBXHCIPCIAR”.

        When the Dual mini is connected to the Asmedia chip, it says “Up to 5 Gb/sec” in System Information.app, but when it’s connected to the AlpineRidge chip, it says “Up to 10 Gb/sec”.

        “Blackmagic Disk Speed Test” shows that the Dual mini can read and write more than 5 Gb/sec when connected to any of the USB 3.1 gen 2 ports (AlpineRidge USB-C, AlpineRidge USB-A, Asmedia USB-C). The AplineRidge can read about 836 MB/s, but the Asmedia does only up to 784 MB/s. This may be because 784 MB/s is getting close to the 1000 MB/s limit of the Asmedia chip’s PCIe 2.0 x2 link. There are newer Asmedia chips with higher bandwidth advertised for some motherboards. I don’t know if there are any PCIe cards based on those yet. The GIGABYTE AORUS motherboards have Asmedia ASM2142 chips which use PCIe x2 gen 3. Gen 3 doesn’t help old Apple Mac Pros but it’s good for newer PC’s that have few or none USB 3.1 gen 2 ports.

        In conclusion, the “AppleUSBXHCIPCI” driver works at up to 10 Gb/sec but only reports “Up to 5 Gb/sec”. If someone can find an example where “AppleUSBXHCIPCI” reports “Up to 10 Gb/sec” then let us know.

        Edit by Pike: Links to hardware added.

      • Thanks for the heads up. Please e-mail me (a link to) your IORegistryExplorer dump so that I can have a look at it.

        Edit: Your StarTech cards connects through PCIe 3×1 (see Industry Standards).

        OWC states: “Sustained speeds up to 738MB/s“. No word about this being read or write, but reading your comment here… that is not entirely correct.

        I would also like to know the specified UsbConnector properties on your USB card and Thunderbolt USB ports. What are they? 3?

      • You linked the PEXUSB311A1C. My card is the one with 2 USB-C ports, the PEXUSB312C. BTW, how do I add links in these comments? Is there a URL with instructions? I don’t see any options in the normal comment editing UI.

        The ASM1142 has the option of connecting via PCIe Gen3 x1 or PCIe Gen2 x2. Startech chose PCIe Gen2 x 2 because that is 1000 MB/s where PCIe Gen3 x1 is only 984.6 MB/s but would be only 500 MB/s if a user connected it to an older PC that only had PCIe Gen2. You can google “ASM1142 Data Sheet” and look at page “vii”.

        I couldn’t find a data sheet for ASM2142. There’s a short description at http://www.gigabyte.us/mb/aorus/connectivity with some cool pictures.

        For my performance numbers, I showed only the faster read numbers and I only used Blackmagic because it’s quick (I just wanted to show that the ports were capable of more than 5 Gb/s, so I didn’t spend a lot of time on benchmarks). The write numbers are slower (756 MB/s on AlpineRidge USB, and 710 MB/s on ASM1142). Different benchmarking utilities will give different numbers. I haven’t tried Windows yet.

        For the SSD’s, I’m using two 1TB “OWC Mercury EXTREME Pro 6G”.
        https://eshop.macsales.com/item/OWC/SSD7P6G960.

        I don’t know what you mean by “UsbConnector properties” or what “3” means in that context. Is that from the IO registry, System Information.app, DSDT, PCIe XHC capabilities, or something else?

        I’ve sent a Dropbox link to your yahoo address.

      • Ok. I fixed the link.

        Now. About the PCIe links. I checked the StarTech Technical Specifications / Industry Standards. That is where I found this: “PCI Express Base Specification Rev. 3.0“. Meaning that they do in fact use PCIe 3.0×1 Which is of course backwards compatible with previous revisions, so why do you think that StarTech is using PCIe 2×2? If that was the case, then the former text doesn’t make sense to me.

        Your UsbConnector setting in rehab mans injector kext are all set to “3” instead of “9” for the SSP1 ports. That is not correct. Also. The USBSpeed property shows me a “4” instead of the “5”. That is also not correct. You could try to inject this. Take a look at: /S*/L*/E*/IOUSBHostFamily.kext/C*/P*/AppleUSBHub.kext/C*/Info.plist

      • Marketing types that create those web pages don’t know how to convey technical information, so I wouldn’t trust what you read on those sites when they are vague.

        “PCI Express Base Specification Rev. 3.0” refers to the spec and not the card’s speed. The spec includes all the speeds up to 8 GT/s. The throughput numbers they list are for a single lane. I think they probably just copy and pasted that info from somewhere else.

        They neglect to mention how many lanes the card uses (electrically x2) and which of the 3 speeds are used by the card. Physically it is x4 as you can see in the pictures. Nobody would use a x4 physical card to implement an x1 link, because that would make the card not usable in any physical x1 slot, of which there are many in modern ATX motherboards (my GA-Z170X-Gaming 7 has three x1 slots).

        You can examine the IOPCIExpressLinkCapabilities and IOPCIExpressLinkStatus values in the IORegistry. The capabilities says the card can do max 5 GT/s x2. The status says the card is currently doing that same speed 5 GT/s x2. I wrote a script to parse those values from a file generated by the ioreg command line. I’ve sent a link.

        I plan on moving that card to my Mac Pro 280 which has two PCIe Gen 2 slots and two PCIe Gen 1 slots.

        The ioreg for when the Dual mini is connected to Asmedia says “USBSpeed” = 4.
        The ioreg for when the Dual mini is connected to AlpineRidge says “USBSpeed” = 5.
        I’m guessing USBSpeed is where Apple System Information gets the “Up to 5 Gb/sec” or “Up to 10 Gb/sec” strings, which I’ve said is wrong in the Asmedia case since the benchmark screenshot I included shows that it can do more than 5 Gb/sec. The “USBSpeed” property seems to be set only for USB devices, not for ports or controllers. It describes the speed of the device, and not the maximum speed of the port. So that’s something I wouldn’t try to inject.

        I use RehabMan’s USBInjectAll.kext unmodified. On my Hackintosh, I believe it only affects the XHC of the 100 series chipset (8086,a12f). None of those ports are named SSP1. I use the uia_exclude boot argument to exclude unused ports. RehabMan set all the UsbConnector values to 3 since he can’t know how each motherboard implements each port. In my case, I have four HS ports that are not capable of SS, so those should be changed to have a value of 0 but they seem to work just fine using a value of 3.

        I guess the UsbConnector values usually come from the DSDT, but are overridden by the kext. In my DSDT (unmodified), I searched for the method _UPC (USB Port Capabilities) which is described in the ACPI 6.1 spec. All the ports are set to type FF “Proprietary connector”.

        The AlpineRidge and Asmedia chips don’t have any _UPC methods. It is optional anyway.

        Is UsbConnector used anywhere? Does it change what System Information.app displays? Unless this affects something that a normal user would see (they may look at System Information.app, but probably not the io registry), then I don’t think it’s worth trying to correct. I know you made a DSDT with _UPC methods to remove some errors from the system log which I also would do but I don’t see those errors in my logs (or I don’t know how to see them in Sierra’s new Console.app) and you haven’t proved that those _UPC methods are necessary to remove the errors.

      • Sorry for asking this, but did you actually ask StarTech what is used? Instead of pure speculation. Next to that. I was referred to this piece of information:


        PCI Express Gen 1.0 max throughput is 2.5Gbps.
        PCI Express Gen 2.0 max throughput is 5Gbps.
        PCI Express Gen 3.0 max throughput is 10Gbps.

        You think that both of it is wrong? Based on what? Your script? That won’t work. Not for me. Not if you use the IORegistry data (as you do) because that will only shows you the Max Link Speed (5 GT/s) and the Link Width (x2). We only need that as indication of the supported maximum speed, of 10 Gbps for support USB 3.1 Gen. 2. It won’t tell you anything about the physical interconnect.

        About the _UPC object. Yes indeed. It is optional for the ACPI specification, but not to the Apple driver. Without these objects, the driver dumps errors. Using a tiny SSDT solved this problem.

        I did notice that you are using rehabman’s kext. I personally don’t. I want to know what I am doing, and what I can expect from it. Making errors is then also my own fault. Not that of someones else. This sometimes also helps me to learn something new again. I love to make errors. That is when you learn how not to do something.

        Now. About the UsbConnector property. Nowhere did I say that using some other value (than 3/255) would magically solve the reported connection speed in System Profiler. Nine is just the value that Apple is using, and what I am using. Next to that. The errors that were there before, are all gone with my tiny SSDT. To me that was enough. I’ll see what I can do this weekend, but I am busy with other stuff and well. I’m not making any promises.

        Edit:

        Heres are the defined connector types in the ACPI v6.0 specification:

        0x08 = Type C connector – USB2 only
        0x09 = Type C connector – USB2 and SS with Switch
        0x0A = Type C connector – USB2 and SS without Switch

        Apple is using 0x09 but we should probably use 0x0A for the ports on our PCIe cards.

      • LinkCapabilities is the max link width and speed supported by the card.

        LinkStatus is the negotiated link width and speed. This will be the same or less than the max link width and speed. For example (as stated in my comment January 19), this card in a PCIe gen 1 slot will have link speed 2.5 GT / s. This card in a slot that does not support x2 will have link width x1.

        I believe System Information.app gets the link width and speed information for PCI devices from the IOPCIExpressLinkStatus IO registry property (when you have the slot information set correctly in the device properties or DSDT which I have done yet).

        I’ve used lspci in Terminal.app to read the actual PCI registers and they match. I’ve also used PCIScope (http://www.tssc.de) in Windows (an awesome program for all things PCI). It agrees. They also make ACPIScope where you can see all the methods and actually execute some of them (such as _UPC). They have excellent customer support and will answer any questions and take suggestions. I can upload screen shots if you like.

        I’ll move the card to my Mac Pro 2008 during the weekend after I get Sierra installed on it. It does not have PCIe Gen 3 slots. I bought a Sonnet Tempo SSD Pro Plus because it is one of those rare SATA cards that actually uses x4 electrically (not just physically), so it should be as fast in a Gen 1 slot as the USB card will be in a Gen 2 slot.

        You have a similar USB card. Have you examined the link width and speed of that?

        I can’t find the errors that you found. Maybe I need to change a boot argument? If you tell me where you found the errors, then I’ll look. I can also share log files if you tell me which ones. I’m using macOS Sierra 10.12.3.

        I don’t see why using 9 instead of 3 should remove those errors since I have a USB type A port connected to the AlpineRidge that does support 10 Gb/sec. I included screen shots of the benchmark and the System Information.app for that case. The USB card in the image you posted also has a type A port which probably also supports 10 Gb/sec.

      • Of course I checked the values. I usually do that before posting/replying to people. Take a look at this example from my late 2015 MacBook Pro (15-inch):

        IOPCIExpressCapabilities….: Number 0x2
        IOPCIExpressLinkCapabilities: Number 0x455c41
        IOPCIExpressLinkStates……: Number 0x1041

        Note: Values copied from IORegistryExplorer, for a 10Gbps link (XHCI device).

        Link negotiations start at 2.5 GT/s (the 1 here is the Maximum Link Speed) and it stopped there. It found a Link Width of 4 (0x41 >> 4) and that is how it gets the supported 10 Gbps (4 x 2.5 GT/s).

        Another example. This time from a hack:

        IOPCIExpressCapabilities….: Number 0x2
        IOPCIExpressLinkCapabilities: Number 0x143d822
        IOPCIExpressLinkStates……: Number 0x1022

        Again. Link negotiations start at 2.5 GT/s (the 2 here is the Maximum Link Speed of 5 GT/s) and it stopped there. It found a Link Width of 2 (0x22 >> 4) and that is how it gets the supported 10 Gbps (2 x 5 GT/s).

        It’s that simple. I don’t need a script for that.

        I booted into single user mode, without my tiny SSDT, and immediately noticed this error:

        PEGP@00000000: AppleUSBXHCI::createPorts: port 2 unsupported protocol USB 03.01

        This is with the latest Beta of macOS Sierra and thus the error is still there. I copied the text from the log file.

        Also. Like I said before. I need a tiny SSDT to get rid of the errors. Nowhere did I say that using 0x09 is required. What I said was that 0x03 is wrong… for the USB Type C connectors (of a PCIe card with USB Type C connectors). See also my edit about the ACPI specification in one of my previous replies.

        Now. I also ordered the card that you are using, and I have used it, but I returned it. The reason for this is that is was slower than the Orico’s. Plural. Yes. Because I have two different models of this card. One with two USB Type C connectors, and the other with a USB Type C and USB A connector. The latter one is used for my blog.

        By the way. The SanDisk Extreme 900 1.9TB that I used should do 850Mbps (read speed) but I got 920 Mbps out of it. I only had it for a day or two before I had to return it, and that was why my update is still pending, because I do have news to share. When I am ready to share it with you.

  6. PCIe cards that have a x4 physical connector may actually be only x2 electrical connection. This includes many or all of the ASM1142 cards. Some PCIe controllers do not allow x2, and will negotiate as x1 instead.

    Slot 3 and 4 of the Mac Pro 2008 will negotiate any x2 card as x1. Those slots are PCIe 1.0, and at x1, they allow 250 MB/s. That’s faster than an HDD but less than half the speed of an SSD. It’s still much better than firewire or USB 2.0.

    Slot 1 and 2 of the Mac Pro 2008 are PCIe 2.0 and will negotiate x2, so they will allow 1000 MB/s.

    Any PCIe slot connected directly to a Sandy Bridge CPU (2nd Generation Core Processor Family Desktop CPU’s) will not negotiate x2, and at PCIe 2.0, will allow up to 500 MB/s for x1. That’s almost as fast as an SSD.

    I would like to see a card that does PCIe 1.0 x4 so I can get the full performance of USB 3.1 on my old Mac Pro 2008 without using slot 1 (where the graphics card goes) or slot 2. For the ASM1142, the manufacturer would have to add a PCIe bridge chip to convert the PCIe 2.0 x2 of the ASM1142 to PCIe 1.0 x4 of the PCIe slot.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s