Just wondering if/when Apple Silicon will support PCIe 5? By extension, when will Thunderbolt support PCIe 5 as well?
It's not something we could know, and given they just got PCIe 4 in their M1 Macs it could be a while.
Where did we get PCIe 4 in M1? Maybe you are confusing it with USB4?
PCIe is only used for WLAN and Bluetooth and Thunderbolt.Thanks for this, I never noticed! I wonder where exactly it is used...
root port for wlan and bluetooth:
| | | | "pcidebug" = "0:0:0(1:1)"
| | | | "pcidebug" = "1:0:0"
| | | | "pcidebug" = "1:0:1"
root port for thunderbolt port 1:
| | | | "pcidebug" = "0:0:0(1:128)"
| | | | "pcidebug" = "1:0:0(2:4)"
| | | | | "pcidebug" = "2:2:0(3:3)"
| | | | | "pcidebug" = "3:0:0"
| | | | "pcidebug" = "2:4:0(4:4)"
root port for thunderbolt port 2:
| | | | "pcidebug" = "0:0:0(1:128)"
Don't the internal SSDs use PCIe to some extent? Honest question.Apple Silicon has no need for PCIe internally, so it’s only relevant to external connectors, meaning Thunderbolt. Current Thunderbolt3 is still based on PCIe 3.0 though. I suppose once the USB consortium decides to integrate newer versions of PCIe, Apple’s implementation will follow. It might take a while.
Why do you ask anyway?
Yes, SSD is NVMe based. Don‘t be confused by macOS displaying a fancy „Apple Fabric“ name. It still is PCIe.
PCIe is only used for WLAN and Bluetooth and Thunderbolt.
I know that the controller is on the SoC. But that doesn’t change anything about the fact The SSD being NVMe and PCIe.... Source: Linux.
Even Apple themselves called the connection „NVMe Controller“ initially. It was changed to Apple Fabric through and update at some point.
Dude, Corellium developed Linux support for the internal SSD. Go and try it out, dig through the system or check the source code. You then will realize that all the SSD stuff is indeed NVMe and the connection is PCIe based.
Even Apple themselves call their controller an NVMe controller
Now guess what NVMe is... a PCIe extension to drive storage devices over PCIe with generic drivers.
Say Y here if you want to enable support for the NVMe-like ANS
controller found in the Apple M1 SoC. It will be visible as a PCI
host bridge.
It doesn't matter if it's modified and got a different name glued on top of it. It still is PCIe / NVMe at its heart.
This coprocessor does not, unfortunately expose a PCIe like interface. But it does have a MMIO range that is a mostly normal NVMe BAR, with a few quirks (handled in NVMe code).
For some reason, this reminds me of the first Macs with 802.11n wireless. Apple originally touted them as 802.11 a/b/g, then released a software patch to enable 'n' speeds. Due to some law (Sarbanes/Oxley I want to say?), Apple had to charge for the patch. There were a few arguments about it. The hardware was technically 'n', but Apple didn't advertise it as such. Crazy times. https://www.macrumors.com/2007/01/30/apple-quietly-releases-802-11n-enabler/Now guess what NVMe is... a PCIe extension to drive storage devices over PCIe with generic drivers.
Edit: Forgot to say that just because the device tree and IORegistry doesn't list the connection as PCI doesn't mean it technically isn't PCIe based.
Anyways, regardless of what kind of connection the SSDs have, I'm curious to see when Thunderbolt will update its PCIe stuff. Apple seems to have killed off eGPU support with the M1 (correct me if I'm wrong), but I'm sure there are still other devices which can use the extra bandwidth of PCIe 4/5+.
NVMe does not necessarily require a PCIe bus to function.It doesn't matter if it's modified and got a different name glued on top of it. It still is PCIe / NVMe at its heart.
You're right. I was looking at the ioreg for a MacBookAir10,1. The Macmini9,1 has additional root ports for USB (xhci) and Ethernet (lan-1gb).At least on the Mini, it looks like Ethernet and USB-A ports also hang off a PCIe bus there too. Not terribly surprising.
├┬00:00.0-[03] # g4x1 > g1x1
│├─03:00.0 # g2x1 wlan
│└─03:00.1 # g2x1 bluetooth
├┬00:01.0-[02] # g4x1 > g2x1
│└─02:00.0 # g2x1 xhci
└┬00:02.0-[01] # g4x1 > g1x1
└─01:00.0 # g1x1 lan-1gb
└┬00:00.0-[01-80] # g1x16 > g1x1 thunderbolt 0
└┬00:00.0-[01-80] # g1x16 > g1x1 thunderbolt 1
Right. For example, there exists USB to NVMe enclosures using a bridge chip. The computer talks to the USB device using the USB mass storage interface and the USB to NVMe bridge chip talks to the NVMe device using PCIe.NVMe does not necessarily require a PCIe bus to function.
M1 Mac: IONVMeController:AppleNVMeController:AppleEmbeddedNVMeController:AppleANS2NVMeController:AppleANS2CGNVMeController:AppleANS3NVMeController (provider is RTBuddyService)
Mac mini 2018: IONVMeController:AppleNVMeController:AppleANS2Controller (provider is IOPCIDevice)
normal NVMe: IONVMeController (provider is IOPCIDevice)
Providing they use faster nand and multiple chips then don’t see why Apple Storage shouldn’t keep pace.Digging up an old thread - While Apple Silicon may not use PCIe internally, should we expect their SSD speeds to keep pace with PCIe5, especially now that they're shipping?
PCIe5 sequential read and write speeds doesn't really matter. You will still be bottlenecked by the much more important random read and write speeds, which isn't faster than PCIe3 or PCIe4 SSDs to begin with.Digging up an old thread - While Apple Silicon may not use PCIe internally, should we expect their SSD speeds to keep pace with PCIe5, especially now that they're shipping?
Neither can I. I thought it might serve as direct access memory, without need for RAM in some examples, but latency still isn’t nowhere near.PCIe5 sequential read and write speeds doesn't really matter. You will still be bottlenecked by the much more important random read and write speeds, which isn't faster than PCIe3 or PCIe4 SSDs to begin with.
I can't find a single use case for 12,000MB/s sequential read and writes.