Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

radicalpoet

macrumors newbie
Original poster
Nov 16, 2020
11
0
United Kingdom
Hi there,

I using an imac 2019 and currently boot from an external SSD (Samsung T7) to completely cut out the fusion drive.

It's currently connected via one of the USB-C/Thunderbolt 3 ports utlilising a USB3.1.gen2 (now USb3.2 gen2x1?) for 10gbp's.

I'm struggling with bandwith from the remaining Thunderbolt port with an external PCIe, 4k second monitor and external NVME thunderbolt SSD, which are all sharing one half of the one Thunderbolt bus in the iMac. (External PCIe chassis is running a Black Magic Decklink card and has an extra TB3 port and a DisplayPort 1.2 port on the chassis, which the M1 NVME and 4k display are connected to.

Would it be possible to move the Samsung T7 onto one of the 5gbp/s USB-A 3.0 ports and have the OS perform sufficiently, or would the 5gbp's cut in speed see a detriment to booting and running Mac OSX adequately?

I'm trying to keep the system as snappy as possible as it's used for video editing and post production hence I wanted nothing to do with the Fusion Drive and so ended up hijacking one of the TB3 ports with the a USB 3.2 SSD, for running the OS externally.

I've been looking at Thunderbolt docks as well but feel the issue won't change as a dock would still be limited to using one half of the Thunderbolt bus it's sharing with the other TB3 port, so it would only have 20gbps to share around the whole dock in theory. Is that correct? I believe I've read that when to 2 devices are plugged in, the bus limits each to 20gbp/s, regardless if one connection is not using up it's total 20gbp/s bandwith, the other port can't borrow more than 20gbp/s regardless?

Many thanks for any knowledge and advice that may be out there.
 

joevt

Contributor
Jun 21, 2012
6,880
4,175
The iMac has one Thunderbolt 3 controller with two Thunderbolt 3 ports. Each port can do ≈22 Gbps of data. Both ports together can do slightly more than that (≈23 Gbps). A normal PCIe device should be able to do more like 28 Gbps. Theoretical max (without taking into account PCIe overhead) is 31.5 Gbps. There's nothing we can do about the ≈23 Gbps two port limit, but you can move stuff around to resolve limits with single port.

Thunderbolt 3 is 40 Gbps but that's only possible when DisplayPort connections are mixed in. Whatever is not used by DisplayPort (up to ≈34..38 Gbps) can be used by PCIe (up to ≈22 Gbps).

A 5 Gbps (460 MB/s) boot drive isn't bad. Remember SATA III is only 6 Gbps (540 MB/s). Plus, 10 Gbps is mostly for sequential read/write. The OS partition probably doesn't see a lot of sequential read/write so you'll probably not notice a difference.

There are a couple things to remember about devices sharing bandwidth:
1) a device does not take away bandwidth from another device unless data is being written or read to the device. That means you can connect a dozen 10 Gbps drives and each can still do 10 Gbps as long as the other drives aren't doing anything at the same time.
2) a bus (PCIe or Thunderbolt or USB 3.x) uses different lines for transmit and receive (not USB 2.0 though). This means you can transmit max bandwidth to one device and still be able to receive max bandwidth from another device.

Your setup:
1) Samsung T7 (10 Gbps)
2) Blackmagic DeckLink (1.5, 3, 6, 12 Gbps - Receive only?), NVMe (22 Gbps), 4K60 10bpc (16 Gbps - DisplayPort Transmit only)

I don't see anything that exceeds 40 Gbps. Receiving from the DeckLink and NVMe at the same time may exceed the PCIe receive limit (but I think you'll probably mostly be transmitting to the NVMe when receiving from the DeckLink). The 4K display might have a slight transmit penalty for the NVMe. If you want to eliminate those issues, then maybe try this:

1) Blackmagic DeckLink, Samsung T7, 4K
2) NVMe

With this you can replace the 4K with a 5K without much penalty (5K = 29 Gbps).

Another thing to consider is latency. Devices later in the Thunderbolt chain will have higher latency and therefore slightly lower performance. That doesn't matter for a capture card or a display where the signal is mostly continuous and one direction.
 
Last edited:

radicalpoet

macrumors newbie
Original poster
Nov 16, 2020
11
0
United Kingdom
Hi Joe,

Thank you very much for your considered and detailed reply. I'm not an IT centric person traditionally so I'm always having to pull myself up by the bootstraps with things like this. There's always plenty to learn so such advice helps a lot when questions surrounding more nuanced considerations reach a saturation point after weeks of research.

The iMac has one Thunderbolt 3 controller with two Thunderbolt 2 ports. Each port can do ≈22 Gbps of data.
Is that a typo regarding 'Thunderbolt 2'? Or is that literally what is under the hood on Thunderbolt 3 iMacs with one Thunderbolt 3 bus controller? i.e. It serves two Thunderbolt 2 connections at around the 20-22gbp/s that use a USB-C port rather than the older Thunderbolt 2 DisplayPort style plug?


There's nothing we can do about the ≈23 Gbps two port limit
Both ports together can do slightly more than that (≈23 Gbps).
Is that 23gbp/s for the two ports combined or do you mean when both are operational they can push 23Gbps each, respectively?


Thunderbolt 3 is 40 Gbps but that's only possible when DisplayPort connections are mixed in. Whatever is not used by DisplayPort (up to ≈34..38 Gbps) can be used by PCIe (up to ≈22 Gbps).
Trying to get a handle on this one. I'm okay with Display port. I have read somewhere that DisplayPort ensures at least 8gbp/s bandwith is reserved for a video signal. But either way it it will carry approx 30 to 38gbps

I'm more vague when it comes to PCIe. I always think of it in terms of internal cards in a desktop or external PCIe enclosures, like the OWC Helios 3s I have recently received. But what about Thunderbolt connections themselves (From a thunderbolt out on a plug and play device to Thunderbolt in on a Mac/PC? Are they using PCIe technology in their connectivity? I know the controller in my external enclosure for the M.2 NVME uses PCIe 3.0x4 which influences the connection speed. But what about plug and play Thunderbolt 3 devices? Are they limited to ≈22 Gbps? Will this be a bottleneck at for the connections on the outside of the Thunderbolt PCIe enclosure (x1 Thunderbolt 3 and x1 Displayport?)

So if I have this correct, there is no 40gbp/s purely Thunderbolt 3 connection. It only tops out around the 40gbp/s upper rate if there is a Displayport connection on 1 port of a 2 port shared bus or within a chain stemming from a single port with it's own dedicated bus?


2) Blackmagic DeckLink (1.5, 3, 6, 12 Gbps - Receive only?)
I have ordered a Decklink which just sends an output to a monitor so would that be the opposite - send only? Not sure if I'm interpreting correctly but I'm assuming outputting a video signal is 'send' and capturing one is 'receive'? The documentation states 'PCI Express 4 lane, generation 2' so that would be PCI 2.0 x4 right? That should be around 16 gbp/s (documentation states 2GB/s so x8 = 16gbp/s).

I am considering an alternative BM Decklink card that captures as well as monitors. It's a dual PCIe card (main with daughter board) but it's the same spec again. So would that mean 16 gbp/s for either direction? Would only be monitoring or capturing through the card respectively at any one time rather than simultaneously.

4K60 10bpc (16 Gbps - DisplayPort Transmit only)
The PCie Chassis's DisplayPort is 1.4. So I may use this to connect to my monitor for playback of video footage at 4k 100/120hz (for 4k PAL 100fps) although this will be infrequent. In such instances though, would it up the data rate used by the Thunderbolt connection to the Chassis via it's DisplayPort? My NVME drive will also be reading and writing when editing such footage qand would be daisy-chained to to the second Thunderbolt port on the Chassis. But when set up like this, the Decklink wouldn't be used to communicate with the monitor. Alternatively, when going through the Decklink for colour critical work, the Displayport connection from the Chassis to the monitor won't be in use. In this case, I'll only be connected to the monitor via he Decklink card and only able to send on a 4k/30hz signal, max. Not sure what extra data would be committed when using the Displayport at 4k 120hz but as it's one or the other between that or the Decklink, hoping there's enough headroom.


A 5 Gbps (460 MB/s) boot drive isn't bad. Remember SATA III is only 6 Gbps (540 MB/s). Plus, 10 Gbps is mostly for sequential read/write. The OS partition probably doesn't see a lot of sequential read/write so you'll probably not notice a difference.
The Samsung T7 runs at about 700MB/s when I use the Black Magic Speed Test, so perhaps it's not limited by SATA III? Either way, I can only but test with a USB C to USB A cable at 5gbp/s and see how it handles. As long as programmes like Premiere and Resolve run smoothly when using RAW 4k video footage that should be fine. I have decent enough CPU and GPU and tons of RAM so hoping this decrease in system drive speed won't impact noticeably. All the 4k RAW video work will be done from the Thunderbolt NVME drive so no issue here impacting on lower OS data throughput. Not sure if there's anything else I'm not considering?

Thanks again for interpreting my setup and breakdown of how data will move around it and the options open to me. I find the maths in this, especially GB's to gb's maxes out my brain's max data rate!
 
Last edited:

joevt

Contributor
Jun 21, 2012
6,880
4,175
Is that a typo regarding 'Thunderbolt 2'? Or is that literally what is under the hood on Thunderbolt 3 iMacs with one Thunderbolt 3 bus controller? i.e. It serves two Thunderbolt 2 connections at around the 20-22gbp/s that use a USB-C port rather than the older Thunderbolt 2 DisplayPort style plug?
Typo. Fixed. Thunderbolt 2 is something like 16 Gbps. You can get Thunderbolt 2 speed from Thunderbolt 3 by using a non-Thunderbolt 3 device or cable (a USB-C cable that is not Thunderbolt 3 but can do USB 10 Gbps can also do Thunderbolt 2's 20 Gbps).

Is that 23gbp/s for the two ports combined or do you mean when both are operational they can push 23Gbps each, respectively?
Two ports combined - for example, if you connect two NVMe Thunderbolt 3 devices, one to each Thunderbolt 3 port, then RAID 0 them together, then the max will be something like 23 Gbps (only slightly greater than for a single drive). The Thunderbolt ports of the Ice Lake MacBook Pro or M1 Macs are different - they can do a total of ≈40 Gbps.

Trying to get a handle on this one. I'm okay with Display port. I have read somewhere that DisplayPort ensures at least 8gbp/s bandwith is reserved for a video signal. But either way it it will carry approx 30 to 38gbps
I don't know about Reserved - All I know is, that PCIe is limited to something less than what one would expect from a 40 Gbps link.

I'm more vague when it comes to PCIe. I always think of it in terms of internal cards in a desktop or external PCIe enclosures, like the OWC Helios 3s I have recently received. But what about Thunderbolt connections themselves (From a thunderbolt out on a plug and play device to Thunderbolt in on a Mac/PC? Are they using PCIe technology in their connectivity? I know the controller in my external enclosure for the M.2 NVME uses PCIe 3.0x4 which influences the connection speed. But what about plug and play Thunderbolt 3 devices? Are they limited to ≈22 Gbps? Will this be a bottleneck at for the connections on the outside of the Thunderbolt PCIe enclosure (x1 Thunderbolt 3 and x1 Displayport?)
PCIe is a bus like USB. Devices are connected in a tree structure. Each connection has its limits. Connections have different widths and rates. For example PCIe gen 1 x4 and gen 2 x2 are similar (8 Gbps) to gen 3 x1 (7.88 Gbps). Between each connection is a PCIe bridge. A bridge can convert between a fast+narrow connection and a slow+wide connection without much loss. A device is limited to the slowest connection between itself and the host.

A Thunderbolt connection requires PCIe to be converted to Thunderbolt packets by a Thunderbolt controller. Another Thunderbolt controller at the other side of the Thunderbolt controller converts the Thunderbolt PCIe packets back to PCIe. The same is done for DisplayPort over Thunderbolt (and USB over USB4/Thunderbolt 4). This conversion is called Tunneling. Tunnelling allows different packet types to be sent over the same wire (DisplayPort, USB, PCIe, Thunderbolt networking, Thunderbolt target display mode, Thunderbolt target disk mode). It's like sending different types of data over a network.

Tunnelled PCIe data over Thunderbolt 3 is limited to ≈22 Gbps (you may occasionally get up to 2800 MB/s, maybe almost 3000 MB/s but I don't think I've get much past 2800 MB/s). Tunnelled DisplayPort data is not counted in that limit. I'm not sure how Tunnelled USB or other types of data are counted (I don't have a USB4 host to test tunneled USB and I don't have a second Thunderbolt Mac to test host to host data).

I have a script to show the PCIe tree. https://gist.github.com/joevt/e3cd4ff08aae06279134969c98ca3ab7
It uses pciutils to get the info. The Thunderbolt connections appear as gen 1 x4 but we know Thunderbolt is faster than that.

So if I have this correct, there is no 40gbp/s purely Thunderbolt 3 connection. It only tops out around the 40gbp/s upper rate if there is a Displayport connection on 1 port of a 2 port shared bus or within a chain stemming from a single port with it's own dedicated bus?
I haven't seen anything that uses more bandwidth than DisplayPort 1.4 HBR3 - 25.92 Gbps. You can do two DisplayPort connections (HBR2+HBR2 or HBR3+HBR) over a single Thunderbolt cable 34.56 Gbps. Apple has a method for two HBR3 connections, up to 38 Gbps for the Apple Pro Display XDR. I wonder if an eGPU like the Black Magic eGPU or the Sonnet Puck 5500 XT or 5700 can add additional DisplayPort signals to a Thunderbolt cable. The limit would still be 40 Gbps, but maybe one could connect 4 HBR displays or 6 RBR displays).

A Thunderbolt controller has two DisplayPort inputs connected to the GPU of the computer. The eGPUs I mentioned have two DisplayPort inputs connected to their GPU. Anyway, the Thunderbolt controller can send the DisplayPort data down a single Thunderbolt cable, or one per port.

Anyway, a single Thunderbolt 3 controller has two bi-directional connections up to 80 Gbps total each direction but it's not possible to fill either direction. The following are scenarios involving a discrete Thunderbolt 3 controller (assume limit is ≈24 Gbps total PCIe)

Scenario 1:
port 1) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
port 2) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
total: 74 Gbps transmit, 24 Gbps receive

Scenario 2:
port 1) 17 Gbps HBR2, 12 Gbps PCIe = 29 Gbps transmit, 12 Gbps PCIe receive
port 2) 17 Gbps HBR2, 12 Gbps PCIe = 29 Gbps transmit, 12 Gbps PCIe receive
total: 58 Gbps transmit, 24 Gbps receive

Scenario 3:
port 1) 34 Gbps HBR2x2, 16 Gbps PCIe transmit = 40 Gbps transmit, 12 Gbps PCIe receive
port 2) 8 Gbps PCIe transmit, 12 Gbps PCIe receive
total: 48 Gbps transmit, 24 Gbps receive

Secenario 4 (for XDR):
port 1) 38 Gbps HBR3x2, 2 Gbps PCIe transmit = 40 Gbps transmit, 12 Gbps receive
port 2) 20 Gbps PCIe transmit, 12 Gbps receive.
total: 60 Gbps transmit, 24 Gbps receive.
(but actually port 1 receive is more like 5 Gbps since XDR doesn't have downstream Thunderbolt port and you can't put a Thunderbolt device between the XDR and host in this mode; maybe 480 Mbps transmit/receive if the XDR is limited to USB 2.0 - I'm not sure about this - I haven't seen ioreg confirmation showing that USB 3.x devices connected to the XDR connect as USB 2.0 in this situation that is used when the GPU does not support DSC)

I was have ordered a Decklink which just sends an output to a monitor so would that be the opposite - send only? Not sure if I'm interpreting correctly but I'm assuming outputting a video signal is 'send' and capturing one is 'receive'? The documentation states 'PCI Express 4 lane, generation 2' so that would be PCI 2.0 x4 right? That should be around 16 gbp/s (documentation states 2GB/s so x8 = 16gbp/s).
Correct. If the Decklink uses PCIe data to output to a display, then it is PCIe data being transmitted from the host to the Decklink. A capture card converts video to PCIe data. The host receives the data from the capture card.

PCIe 2.0 is 5 GT/s. PCIe 2.0 and 1.0 uses 8b/10b encoding. With 4 lanes, that's 5 GT/s/lane * 4 lanes * 8b/10GT = 5x4*8÷10 = 16 Gbps. Actual data is slightly less for PCIe protocol overhead.

I am considering an alternative BM Decklink card that captures as well as monitors. It's a dual PCIe card (main with daughter board) but it's the same spec again. So would that mean 16 gbp/s for either direction? Would only be monitoring or capturing through the card respectively at any one time rather than simultaneously.
Yes, 16 Gbps either direction. But I don't think video takes the entire PCIe bandwidth. What resolution/refresh rate/pixel depth/format are you using? Is it compressed/decompressed by the card or not? Each lane of PCIe has separate lines for send and receive. Two wires are used for each direction (negative and positive). The wires makes improves the signals - they are compared to produce a bit.

The PCie Chassis's DisplayPort is 1.4. So I may use this to connect to my monitor for playback of video footage at 4k 100/120hz (for 4k PAL 100fps) although this will be infrequent.
The DisplayPort signal comes from the GPU. It is transmitted over Thunderbolt as tunneled DisplayPort packets. It is separate from PCIe data. The DisplayPort signal limits the max PCIe transmit data only if it exceeds 40 Gbps - 22 Gbps = 18 Gbps. To calculate DisplayPort bandwidth, multiply pixel clock by bits per pixel (bpp). You didn't mention the pixel depth or format. HDR is 30bpp, 10bpc (bits per component). 4:2:0 halves the average number of bits per pixel by reducing the number components per 4x2 pixels (8 pixels, 24 total components, reduced to 8 luminance components and 2 pairs of chrominance components (Cb,Cr) = 12 components).

In such instances though it would it up the data rate used by the Thunderbolt connected Chassis via it's DisplayPort with the NVME drive also reading and writing when editing such footage, which would be daisy-chained to to the second Thunderbolt port on the Chassis. But when set up like this, the Decklink wouldn't be used to communicate with the monitor. Alternatively when going through the Decklink for colour critical work, the Displayport connection from the Chassis to the monitor won't be in use. In this case I'll only be able to send on a 4k/30hz signal max. Not sure what extra data would be committed when using the Displayport at 4k 120hz but as it's one or the other between that or the Decklink, hoping there's enough headroom.
Math.

The Samsung T7 runs at about 700MB/s when I use the Black Magic Speed Test, so perhaps it's not limited by SATA III?
Correct. The Samsung T7 is not SATA III. It is slow for USB to NVME (1000 MB/s) so it's probably not NVMe. Try AmorphousDiskMark sequential test. It will show higher numbers than Black Magic Speed Test - just to get closer to the theoretical max.

Either way, I can only but test with a USB C to USB A cable at 5gbp/s and see how it handles. As long as programmes like Premiere and Resolve run smoothly when using RAW 4k video footage that should be fine. I have decent enough CPU and GPU and tons of RAM so hoping this decrease in system drive speed won't impact noticeably.
Try AmorphousDiskMark benchmark. Compare sequential and random numbers between 10 Gbps and 5 Gbps connection.

All the video 4k RAW video work will be done from the Thunderbolt NVME drive so no issue wells here impacting on lower OS data throughput.
What's the bandwidth of 4K RAW? Does RAW mean uncompressed? The list at https://en.wikipedia.org/wiki/List_of_codecs#Lossless_video_compression suggests that there is compression?
 

Fishrrman

macrumors Penryn
Feb 20, 2009
28,983
13,036
OP wrote:
"Would it be possible to move the Samsung T7 onto one of the 5gbp/s USB-A 3.0 ports and have the OS perform sufficiently, or would the 5gbp's cut in speed see a detriment to booting and running Mac OSX adequately?"

The only way you're going to know for sure is to try it and see.

The t7 WILL run "a little slower" connected to the USB3-a port. But the difference in speeds may not be enough to really bother you. Again, only you can try this and then report back to us what your findings are.

If you don't already have it, I suggest you download the free "Blackmagic Speed Test" app.
Run it on your external boot SSD as it's set up now.
Then, run it again from the USB3-a port, and compare.

I'm surprised you didn't order the 2019 iMac with an SSD INSIDE.
They are much faster than ANY external USB3 or USB3.1 gen2 SSD...
 

4sallypat

macrumors 68040
Sep 16, 2016
3,852
3,627
So Calif
I have a base 2019 iMac 4K and it has that silly spinning HDD inside that is insidiously slow.

My setup is very simple:
TB3-2 Apple adapter to TB2 SSD (LaCie) which is the boot drive.
TB3-2 Apple adapter to 27" Thunderbolt display (extended display).

Wife uses it for her crafting and loves the SSD speed compared to the 1TB internal HDD that is now wiped as a storage / repository / archive drive only...
IMG_7229.jpg

IMG_6792.jpg
 

radicalpoet

macrumors newbie
Original poster
Nov 16, 2020
11
0
United Kingdom
Wow, that's some knowledge about data and hardware standards Joe, especially encpmpasing the video side of things with the Chroma sub-sampling. :)

Thanks again for taking the time out to break things down, reference other sources and share your own handywork and posit some example scenarios. Plenty to take away, which I've learned from. I've had to go away and do more homework to make sure I was in correctly interpreting everything in the replies.

The interchangable reference to PCIe data when using Thunderbolt was throwing me off a lot as I saw them as seperately distinct. I had thought of Thunderbolt like a faster type of USB. In all my time of using Thunderbolt, I hadn't appreciated in my ignorance that it isn't so much a standalone protocol in its own right but an architecture based on the high bandwith tunelling of two other protcols: PCIe and Displayport, within one interface, using it's own type of data packets. That's seems to be the take home for me anyway, I may have maligned its definition though, as there is also Thunderbolt target mode and networking as you say...

To try and take this knowledge forward when it comes to interconecting peripherals present and future and moving onto Thunderbolt 4 down the line, I (believe/hope) I understand it then main points now! As a litmus test:

A. The iMac Thunderbolt bus is effectively akin to one TB3 connection. It just shares it across two physical USB-C style TB3 ports. Bandwith is about per bus rather than per port.

B. In reality, a TB3 connection is limited to 22gbp/s in each direction when all traffic being converted to Thunderbolt packets originated as PCIe. Although not to despair, (as I was thinking TB3 on an iMac equated to just 22gb's shared by the bus across both ports), you can still exploit the remaining bandwith when adding in Displayport data into the tunnelling, which can utitlise the remaining bandwith up to 40gbp/s (minus any overhead), or on it's own, use up to 25.92 gbp/s (the limit of DisplayPort 1.4 HBR3), alongside other PCIe data up to 40gbp/s, combined.

C. The theoretical TB3 bandwith works bi-directionally, simultaneously across 4 lanes. 2 lanes can use up to 40gbp's output and while 2 lanes concurrently use up to 40gbp/s input. So in theory, up to 80gbp's net transmission (minus any overheads).

D. A device connected to a port or in chain will not comsume bandwith as long as it is inactive. Two ports on a single controller could both have many daisy chained devices running to them that would exceed the total bandwith of the Thunderbolt controller but as long as enough devices are inactive for the total traffic to come in at under 40gbp/s, having them all connected at once would not cause an issue.

Do I have points A-D correct?


Remaining questions to try and close the loop on TB3 so I can apply it to my own setup:

1.
The iMac has one Thunderbolt 3 controller with two Thunderbolt 3 ports. Each port can do ≈22 Gbps of data.
From your first reply. When re-reading everything in the thread and doing more research, this got me confused. All the discussion seems to talk of the whole Thunderbolt bus being limited to 40gbp's max and 22g gbp/s where PCI data is concerned by both ports SHARED, NOT individually. It's just that this statement seems at odds with that and reads like each of the two ports can can do 22gbp\s of PCIe transmission on a single shared bus. Unless this is intended to mean that each single port can transmit ≈22 Gbps on it's own if it's the only port being actively used?


2.
a single Thunderbolt 3 controller has two bi-directional connections up to 80 Gbps total each direction but it's not possible to fill either direction.
Had a bit of trouble resolving this. I may have point C above incorrect as a result. I thought the controller carried was 40gbp/s total in either direction, made up of x2 20gbp/s lanes going each way, which seems to be depicted her on page 4:


Also, I'm curious to understand what is meant by it not being able to fill either direction? Is this some sort of real world limitation when data is being transmitted and received simultaneously?



3. How does a Thunderbolt Controller or the one in the 2019 iMac specifically (if different manufacturers wire things differently), allocate the bandwith between the 2 ports that share it? I had presumed this was dynamic so that one port could take more than half the bandwith if it's data throughput required it. But I've read here in a discussion regarding the 2019 iMac that when both ports have a physical connection plugged in, the bandwith is automatically divided exactly in half with 50% limit of 20gbp/s imposed on each port.


If that was correct, it seems that such scenarios like below would not be possible as each port on the iMac would only be able to transmit 20gbp/s and receive 20gbp/s maximum, so a combined total of 40gbp/s transmit and 40gbp/s receive for the whole controller?
port 1) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
port 2) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
total: 74 Gbps transmit, 24 Gbps receive


4.
Scenario 1:
port 1) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
port 2) 25 Gbps HBR3, 12 Gbps PCIe transmit = 37 Gbps transmit, 12 Gbps PCIe receive
total: 74 Gbps transmit, 24 Gbps receive
Thanks again for taking the time to illustrate data througput with examples. I'm struggling with interpeting the direction of data for my setup. The interchangable nomenclature - would it be correct to group it as such:

Ouput/Send/Transmit -and- Input/Receive?

a. What is the PCIe data in these examples? Maybe this 12gbp/s both transmit and receive was in reference to the Decklink PCIe cards previously discussed?

b. The DisplayPort part element (HBR) in these examples must be transmit only if, along with 12gbp/s PCIe transmit, the total transmit is 37gbp/s but there is no contibution ot the receiev total? Does this infer that where displays are concerned data is being only transmitted *to* the display, i.e. a display always receives a video signal but doesn't transmit any data it back in the opposite direction?



5. Why is it that PCIe data limited to 22gbp/s over Thunderbolt 3 when the PCIe 3.0x4 protocol which TB3 uses, is capable of 32 gpb/s? I have read that this is to reserve bandwith for USB 3 gen 2 over Thunderbolt, which Intel guarantees as 10gbp/s? Would make sense.

I presume Thunderbolt 4 will also increase the useable bandwith by using PCIe 4.0? Even with a 10gbp's reservation for USB 3.2 gen 2x1 This should allow the PCIe data cap to go as theoretically high as 30gbps as PCI 4.0 could share the full 40gbp/s capable bandwith. Although with the arrival of USB 4.0 who knows what rules will govern how it will all be shared? Hopefully just more busses and ports on newer machines to make it easier to begin with!



6. Video/data over Thunderbolt - PCIe is always data. Is that correct? Even video monitor and capture cards are converting video signals to and from PCIe data. If so, then Displayport Alt Mode is the only protocol that is truly using a video signal over Thunderbolt?

Clearing up:
I have read somewhere that DisplayPort ensures at least 8gbp/s bandwith is reserved for a video signal.
I don't know about Reserved - All I know is, that PCIe is limited to something less than what one would expect from a 40 Gbps link.
Found the website again which caused a lot of confusion for me:

It states: 'Of the ~40 Gbps = 5 GB/sec bandwidth of Thunderbolt 3, ~8 Gbps can be used ONLY for video'.

That sounded absolute but is not even true. Not to mention later on they list display resolutions with higher data rates and mention that video bandwidth can eat into the available bandwidth for regular data when it is greater than 8gbp/s so not sure why they wrote the above statemet in the way it is worded.

Confusing coincidence for me is that they also state that the maximum theoretical bandwidth for non-video data is 32.4 gbp/s with a true *usable* bandwidth that drops to 25.92 Gbps. 25.92 gbp/s also happens to be the bandwith required by Displayport 1.4 HBR3. Got me really confused on whether this figure was the max for video or non video data!



7. Outliers in the discussion - USB and HDMI:

I'm not sure if Thunderbolt tunnels USB data in the same way as PCIe and Displayport? Since both use the same style USB-C port it gets confusing. Is there a USB controller behind the ports too? I have a USB 3.2 gen2x1 SSD connected into one of my Thunderbolt ports and it seems from previous discussion that it is counted within the use of the total Thunderbolt 3 bandwith. If so, is it counted within the PCIe element of this bandwith? Not sure where USB falls in all this. Is it one and the same as PCIe data?

How does HDMI factor in all of the above? It's video data presumably? Is it transmitted as either PCIe from video card connections or becomes Displayport through converter cables or when it is conected via hardware that terminates in a Thunderbolt connection back to a computer? In the case of the Mac Mini though, I notice it has an HDMI port alongside Thunderbolt/USB 4 ports. Would it's video data be handled seperately from the Thunderbolt bandwith in this configuration on the M1 Mini?



Apologies again Joe, these posts become so mammoth. Sometimes looking into one answer throws up 2 or more questions. Never thought the inital question would elope into so many other dependent factors. I really appreciate the time taken in the disucssion so far though, I've leanred so much and feel I am close to taking a global understanding forward competently in what I do. Hope it can be a useful reference point to others too, given the in-depth detail provided.

Many thanks,
 
Last edited:

joevt

Contributor
Jun 21, 2012
6,880
4,175
A. The iMac Thunderbolt bus is effectively akin to one TB3 connection. It just shares it across two physical USB-C style TB3 ports. Bandwith is about per bus rather than per port.
Well, it should be per port, but there are limits in current discrete Thunderbolt controllers (Alpine Ridge, Titan Ridge). They have 4 lanes of PCIe 3.0 (31.5 Gbps) so the total combined (two ports) available PCIe bandwidth should be more like 28 Gbps, rather than 23 Gbps which is basically a flaw in the design. I have a Maple Ridge (Thunderbolt 4 controller) but haven't tried a Thunderbolt connection yet.

If you look at integrated Thunderbolt solutions such as the M1 Mac, or the Ice Lake based MacBook Pro or the Tiger Lake PC laptops with two Thunderbolt ports, you'll find that they do not have the 23 Gbps limit and you can get more like 40 Gbps bandwidth (no relation to Thunderbolt 40 Gbps).

B. In reality, a TB3 connection is limited to 22gbp/s in each direction when all traffic being converted to Thunderbolt packets originated as PCIe. Although not to despair, (as I was thinking TB3 on an iMac equated to just 22gb's shared by the bus across both ports), you can still exploit the remaining bandwith when adding in Displayport data into the tunnelling, which can utitlise the remaining bandwith up to 40gbp/s (minus any overhead), or on it's own, use up to 25.92 gbp/s (the limit of DisplayPort 1.4 HBR3), alongside other PCIe data up to 40gbp/s, combined.
Correct. Do note that the 22 Gbps number is just an approximation. I have some benchmarks that show slightly above 23 Gbps (2874 MB/s read speed from an NVMe). There's a YouTube video showing nearly 3000 MB/s (24 Gbps) from Thunderbolt 4 on Windows.
For DisplayPort, remember that Thunderbolt can have two separate DisplayPort connections, so you can do two HBR2 connections or one HBR3 connection with a HBR connection. Then there's Apple's trick of having two HBR3 connections for the XDR. DisplayPort traffic has priority (because a display doesn't work if it doesn't get all the bits at the same rate all the time). PCIe can have whatever is remaining.

C. The theoretical TB3 bandwith works bi-directionally, simultaneously across 4 lanes. 2 lanes can use up to 40gbp's output and while 2 lanes concurrently use up to 40gbp/s input. So in theory, up to 80gbp's net transmission (minus any overheads).
Correct. But I don't know of a situation where receiving more than 24 Gbps is possible. That's PCIe traffic. I don't think you can receive DisplayPort traffic. I'm not sure how the iMac Thunderbolt Target Display Mode works - but the iMacs that support that are only 2560x1440 (7 Gbps which is less than HBR link)

D. A device connected to a port or in chain will not comsume bandwith as long as it is inactive. Two ports on a single controller could both have many daisy chained devices running to them that would exceed the total bandwith of the Thunderbolt controller but as long as enough devices are inactive for the total traffic to come in at under 40gbp/s, having them all connected at once would not cause an issue.
Yup. Should note that devices further away from the host in a chain will have slightly less performance (latency). Max chain length is 6 for Thunderbolt 3/2/1. I think its 5 for Thunderbolt 4/USB4.

1.

From your first reply. When re-reading everything in the thread and doing more research, this got me confused. All the discussion seems to talk of the whole Thunderbolt bus being limited to 40gbp's max and 22g gbp/s where PCI data is concerned by both ports SHARED, NOT individually. It's just that this statement seems at odds with that and reads like each of the two ports can can do 22gbp\s of PCIe transmission on a single shared bus. Unless this is intended to mean that each single port can transmit ≈22 Gbps on it's own if it's the only port being actively used?
Right. Connect one NVMe to each port. You can read 22 Gbps from one if you're not reading from the other. If you try to read from both at the same time (like with a software RAID 0) then you'll see something like 12 Gbps from each. You can read 22 Gbps from one and write 22 Gbps to the other simultaneously though.


2.

Had a bit of trouble resolving this. I may have point C above incorrect as a result. I thought the controller carried was 40gbp/s total in either direction, made up of x2 20gbp/s lanes going each way, which seems to be depicted her on page 4:

Yes. 40 Gbps each direction for a single Thunderbolt port. A Thunderbolt controller usually has two ports. So that would be 80 Gbps each direction total.

Also, I'm curious to understand what is meant by it not being able to fill either direction? Is this some sort of real world limitation when data is being transmitted and received simultaneously?
The Thunderbolt controller can send/receive PCIe up to 24 Gbps (two ports total). The Thunderbolt controller can send 51.84 Gbps of DisplayPort (one DisplayPort HBR3 connection per Thunderbolt port for this max). 24 + 51.84 = 75.84 Gbps transmit but only 24 Gbps receive (because host can't receive DisplayPort, only transmit it). I don't think other methods of sending/receiving Thunderbolt data (USB tunnelling or host to host communication) will add to that.

Just because the connection can't be filled with actual data doesn't mean stuff isn't happening. Thunderbolt probably sends idle packets or something to fill the extra space.

3. How does a Thunderbolt Controller or the one in the 2019 iMac specifically (if different manufacturers wire things differently), allocate the bandwith between the 2 ports that share it? I had presumed this was dynamic so that one port could take more than half the bandwith if it's data throughput required it. But I've read here in a discussion regarding the 2019 iMac that when both ports have a physical connection plugged in, the bandwith is automatically divided exactly in half with 50% limit of 20gbp/s imposed on each port.


If that was correct, it seems that such scenarios like below would not be possible as each port on the iMac would only be able to transmit 20gbp/s and receive 20gbp/s maximum, so a combined total of 40gbp/s transmit and 40gbp/s receive for the whole controller?
That would be ridiculous. How it works is probably something like this: You request a read of x bytes from NVMe #1 on port 1 and a read of x bytes from NVMe #2 on port 2. They share a single upstream connection (the Thunderbolt controller has two downstream ports but only one upstream PCIe connection to the host). So each transaction must come after the other. They are scheduled or occur in the order received. Bytes are received from NVMe #1 so we request x more bytes from NVMe #1 but that can't happen until we get the bytes from NVMe #2. In that way the bandwidth is shared. The requests may be split up into smaller chunks by PCIe or whatever to better share the bandwidth and make sure everyone gets a turn.

4.

Thanks again for taking the time to illustrate data througput with examples. I'm struggling with interpeting the direction of data for my setup. The interchangable nomenclature - would it be correct to group it as such:

Ouput/Send/Transmit -and- Input/Receive?
Yes.

a. What is the PCIe data in these examples? Maybe this 12gbp/s both transmit and receive was in reference to the Decklink PCIe cards previously discussed?
12 Gbps is half of 24 Gbps which is approximately the total PCIe bandwidth for both ports simultaneously. It's a nice round number for illustrative purposes. I suppose the best example is a RAID 0 of two NVMe devices, one connected to each port. RAID 0 is probably the best way to test total bandwidth unless you can find a benchmark that can send/receive to multiple devices at the same time and add them up. ATTO Disk Benchmark.app can do that without a RAID 0. There is an app called CL!ng.app that can measure bandwidth to/from a GPU but it doesn't have an option for multiple GPUs.

b. The DisplayPort part element (HBR) in these examples must be transmit only if, along with 12gbp/s PCIe transmit, the total transmit is 37gbp/s but there is no contibution ot the receiev total? Does this infer that where displays are concerned data is being only transmitted *to* the display, i.e. a display always receives a video signal but doesn't transmit any data it back in the opposite direction?
A display can transmit EDID and DPCD data but that's a very small amount of data and it doesn't happen often - mostly just when you connect the display. Maybe there's a vertical sync interrupt once per frame. Is horizontal sync interrupt possible?

5. Why is it that PCIe data limited to 22gbp/s over Thunderbolt 3 when the PCIe 3.0x4 protocol which TB3 uses, is capable of 32 gpb/s? I have read that this is to reserve bandwith for USB 3 gen 2 over Thunderbolt, which Intel guarantees as 10gbp/s? Would make sense.
Reserving bandwidth for something that isn't connected seems silly to me. Anyway, USB over Thunderbolt 3 is just PCIe so that doesn't make sense. I don't know the cause of the single port limit or the two port limit. I don't know how much overhead a Thunderbolt packet has when encoding a PCIe packet. Most of this info can be found in the USB4 spec. The USB4 spec does say for PCIe tunnelling: "The amount of buffering at the PCIe Adapter is implementation specific as it balances the tradeoff between PCIe tunneling performance and PCIe link latency. It is recommended that implementations make the amount of buffers configurable." It says the same thing for USB3 tunnelling (a new feature of USB4/Thunderbolt 4). If it were configurable, then you could just poke some bytes and see a change in performance. There were cases where eGPUs had lower than expected bandwidth over Thunderbolt - the bandwidth could be increased with a different Thunderbolt firmware.

I presume Thunderbolt 4 will also increase the useable bandwith by using PCIe 4.0? Even with a 10gbp's reservation for USB 3.2 gen 2x1 This should allow the PCIe data cap to go as theoretically high as 30gbps as PCI 4.0 could share the full 40gbp/s capable bandwith. Although with the arrival of USB 4.0 who knows what rules will govern how it will all be shared? Hopefully just more busses and ports on newer machines to make it easier to begin with!
Currently, the only discrete Thunderbolt 4 chip is Maple Ridge which uses PCIe 3.0 like previous discrete Thunderbolt controllers. The integrated Thunderbolt controllers in the M1 Mac or Ice Lake MacBook Pro or Tiger Lake PC laptops don't use a PCIe connection to the host and they don't have the two port bandwidth limit (though they may have a limit with more than two ports). Like I said before, I haven't tested Thunderbolt performance of Maple Ridge yet (I have GC-ALPINE RIDGE, GC-TITAN RIDGE, and now ThunderboltEX 4 in my MacPro3,1).

The USB4 spec is open so nothing is stopping someone from making a USB4 controller with better performance (at least better performance for multiple ports, if not for a single port).

6. Video/data over Thunderbolt - PCIe is always data. Is that correct? Even video monitor and capture cards are converting video signals to and from PCIe data. If so, then Displayport Alt Mode is the only protocol that is truly using a video signal over Thunderbolt?
Correct. Video has been digital since DVI/HDMI (ignoring older stuff like the 1 bit modes of the Apple II or Mac or the 1 bit per RGB component modes of CGA). DisplayPort (Alt Mode or not) sends DisplayPort data over the DisplayPort cable. Whether it's PCIe or DisplayPort or DVI/HDMI (or any other connection type/protocol like USB, SATA, FireWire), it's all just bits and bytes. PCIe is a method to connect the controllers that handle the other connection types/protocols to the CPU or RAM (PCIe controllers use DMA to transfer data directly to the RAM so that the CPU can do other stuff - the drivers executed by the CPU setup the DMA stuff for each transfer).

Since DisplayPort is just bits and bytes, Thunderbolt can encapsulate the DisplayPort data and send it as Thunderbolt data. With this method, you can mix other types of data such as PCIe and USB. On the other hand, Displayport Alt Mode uses separate lines for DisplayPort and USB which means that reducing USB bandwidth won't let you have more DisplayPort bandwidth. Displayport Alt Mode has two modes - 4 lanes of DisplayPort + USB 2.0, and 2 lanes of DisplayPort + USB 3.x. Thunderbolt basically has one mode: 2 lanes of Thunderbolt (ignoring Thunderbolt 1). So the Thunderbolt mode of mixing different types of data makes more efficient use of the connection. One improvement would be to allow Thunderbolt to use 3 lanes for transmit and 1 lane for receive, in the case where it's sendibng a lot of DisplayPort data. Another improvement would be to replace the USB 2.0 lines with another lane of Thunderbolt. Then you could have up to 5 lanes in one direction, 6 lanes total). VirtualLink is an example of a USB-C Alt Mode that repurposes the USB 2.0 lines. With 5 lines for transmit, you could include DisplayPort 2.0.

Clearing up:

Found the website again which caused a lot of confusion for me:

It states: 'Of the ~40 Gbps = 5 GB/sec bandwidth of Thunderbolt 3, ~8 Gbps can be used ONLY for video'.

That sounded absolute but is not even true. Not to mention later on they list display resolutions with higher data rates and mention that video bandwidth can eat into the available bandwidth for regular data when it is greater than 8gbp/s so not sure why they wrote the above statemet in the way it is worded.

Confusing coincidence for me is that they also state that the maximum theoretical bandwidth for non-video data is 32.4 gbp/s with a true *usable* bandwidth that drops to 25.92 Gbps. 25.92 gbp/s also happens to be the bandwith required by Displayport 1.4 HBR3. Got me really confused on whether this figure was the max for video or non video data!
I had a long e-mail discussion back in August with Lloyd Chambers about his conclusions regarding DisplayPort, DSC, and Thunderbolt. I'm not sure I was able to change his mind even with benchmarks. He's a busy guy with not enough time to read my long winded remarks or something like that (also, inadequate air conditioning, forest fires, workload, etc.)

HBR3 is 8.1 Gbps per lane. That is the encoding on the wire. DisplayPort uses 8b/10b encoding which means it takes 10 bits to transmit 8 bits of data. DisplayPort has 4 lanes, so the total is 8.1 Gbps x 4 lanes x 8b/10b = 25.92 Gbps. Thunderbolt does not use the 8b/10b encoding when transmitting Thunderbolt DisplayPort packets. Thunderbolt uses 64b/66b encoding. The 10 Gbps and 20 Gbps numbers for Thunderbolt take that into account - Thunderbolt actually transmits at 10.3125 Gbps or 20.625 Gbps. Thunderbolt does not transmit the DisplayPort stuffing symbols that DisplayPort uses to fill the DisplayPort bandwidth - this is how Apple can send two HBR3 connections (>50 Gbps) over a single Thunderbolt 3 cable - it works because each of the 3008x3384 60Hz tiles of the 6K display does not require all the bandwidth of HBR3.

Here's some of the info I came up with (sent to Lloyd on August 23):
I redid the tests with higher bandwidth devices.
- Replaced RAID with eGPU.
- Replaced 3840x2160 60Hz 10 bpc displays with 4096x2304 68.595Hz 8 bpc displays.

Setup:
Two displays 4096 x 2304 x 68.595 Hz x 24 bpp = 15.5 Gbps (681.76 MHz pixel clock)
Using eGPU connected to port 1, below are read / write Gbps for eGPU with total that includes display(s) bandwidth.
Benchmark using CL!ng.app from the App Store.

Bencharks (receive/transmit Gbps):
Code:
1) 2 displays alone:                             total (1 port ) =  0.0 / 31.0
2) eGPU alone:                      21.6 / 16.3  total (1 port ) = 21.6 / 16.3
3) with both displays at port 2:    21.7 / 16.3  total (2 ports) = 21.7 / 47.3
4) 1 display at end of eGPU chain:  20.2 / 13.8  total (1 port ) = 20.2 / 29.3 (corrected from 28.8)
5) 2 displays at end of eGPU chain: 11.2 /  4.1  total (1 ports) = 11.2 / 35.1
Comments:
1) 31.0 Gbps is very near 34.56 Gbps DisplayPort 1.2 limit of Thunderbolt 3.
2) 21.6 Gbps is very near 22 Gbps PCIe limit of Thunderbolt 3.
3) 47.3 Gbps means that a bus can exceed 40 Gbps limit of a single port; also, displays on other port don't impact read/write of first port.
4) A single 15.5 Gbps display can impact write speed of a port.
5) Two displays destroys write speed; surprisingly nearly halves read speeds. Total is only 35.1 Gbps meaning there is 4.9 Gbps of overhead. Including horizontal and vertical sync pixels makes the total 36.8 Gbps which still leaves 3.2 Gbps of overhead.

Notes:
The eGPU has no displays connected - the displays are powered by the iGPU of the Mac Mini 2018 in all tests.
The eGPU is a Sapphire RX 580. It is connected to the PCIe slot of a OWC Mercury Helios 3 using a PCIe riser cable and external ATX PSU.
Displays are connected using Thunderbolt 3 to Dual DisplayPort adapter which is attached to Mac Mini in test 1 and 3, and attached to Helios 3 in test 4 and 5.
SwitchResX is used to create maximum resolution/bandwidth timing to maximize DisplayPort 1.2 bandwidth.

7. Outliers in the discussion - USB and HDMI:

I'm not sure if Thunderbolt tunnels USB data in the same way as PCIe and Displayport? Since both use the same style USB-C port it gets confusing. Is there a USB controller behind the ports too?
A USB4 or Thunderbolt 4 host can tunnel USB to a USB device connected to a downstream USB4 or Thunderbolt 4 device. The way to tell if this is happening is by looking in System Information.app. First check that the USB4 or Thunderbolt 4 device is connected as such in the Thunderbolt tab. Then in the USB tab, find the USB device and see if it is connected to the USB controller of the host. If it is connected to the USB controller of the downstream USB4 or Thunderbolt 4 device. Here's a screenshot which appears to show USB tunnelling: https://forums.macrumors.com/thread...lso-definitely-not-usb4.2269777/post-29828042
The AppleT8013USBXHCI is the M1 Mac's USB controller. The Intel 0x0b40 is the USB hub of the Goshen Ridge Thunderbolt 4 controller in the OWC Thunderbolt 4 Dock. The OWC 0xde48 is the second hub in the Dock. The Ugreen Storage Device is the USB device being tested.

Now, on my Thunderbolt 3 Mac mini 2018, there is no USB tunnelling, so when I connect a USB device to the CalDigit Element Hub (a Thunderbolt 4 hub that also uses the Goshen Ridge), I see that the USB device is connected to the Goshen Ridge's PCIe USB controller (8086:0b27) which uses the AppleUSBXHCITR driver. Between the USB device and the USB controller is the same Intel 0xb40 USB hub. The CalDigit includes a second hub (CalDigit 0x0032) for the 4 USB Type A ports.

I have a USB 3.2 gen2x1 SSD connected into one of my Thunderbolt ports and it seems from previous discussion that it is counted within the use of the total Thunderbolt 3 bandwith. If so, is it counted within the PCIe element of this bandwith? Not sure where USB falls in all this. Is it one and the same as PCIe data?
I haven't tested how a USB device connected to one port affects the Thunderbolt or USB bandwidth of the second port. The USB controller is a PCIe device. I tried it now using ATTO Disk Benchmark.app which can test multiple disks at the same time. Results are read/write MB/s. Mac mini 2018.
USB alone port 1: 1033/1059
Thunderbolt alone port 2: 2636/1466 (ADATA XPG SX8200 Pro 2TB)
USB port 1 + Thunderbolt port 2: 2687/2481
---
So we seem to be hitting the discrete Thunderbolt controller two port limit even with a USB device instead of a Thunderbolt device. The Intel Mac mini 2018 has two different Thunderbolt controllers/buses, so all I need to do is put each device on a different bus to get max performance (4000 or 5000 MB/s or whatever). With two Thunderbolt NVMe on separate buses and the internal drive, ATTO shows 8076/7052 MB/s.

How does HDMI factor in all of the above? It's video data presumably? Is it transmitted as either PCIe from video card connections or becomes Displayport through converter cables or when it is conected via hardware that terminates in a Thunderbolt connection back to a computer? In the case of the Mac Mini though, I notice it has an HDMI port alongside Thunderbolt/USB 4 ports. Would it's video data be handled seperately from the Thunderbolt bandwith in this configuration on the M1 Mini?
For Mac mini 2018 or M1 Mac mini or Apple TV, HDMI starts out as DisplayPort from the GPU and is converted to HDMI using the MegaChips MCDP2920A4 DisplayPort 1.4 to HDMI 2.0b converter.
https://www.ifixit.com/Teardown/Mac+mini+Late+2018+Teardown/115210
https://megachips.com/mcdp2900-displayport1-4-to-hdmi2-0-converter/
A Thunderbolt Dock needs a similar HDMI converter chip to convert DisplayPort to HDMI (after the Thunderbolt dock converts tunnelled DisplayPort to DisplayPort). I don't like HDMI ports because it means they might have chosen an inferior DisplayPort to HDMI converter that cannot be upgraded. Perhaps in the future Apple will switch to the Realtek RTD2173 chip which does HDMI 2.1 which is used in DisplayPort 1.4 to HDMI 2.1 adapters.
https://www.anandtech.com/show/1453...s-rtd2173-displayport-14-to-hdmi-21-converter

A discrete GPU will probably produce an HDMI signal directly (AGDCDiagnose output won't have DisplayPort DPCD registers for the HDMI port).

DisplayPort data doesn't affect PCIe bandwidth unless it is being transmitted on the same Thunderbolt line as the PCIe data and the PCIe data could exceed the remaining bandwidth of Thunderbolt. The HDMI output of the M1 Mac mini is not related to Thunderbolt at all.

OWC has done some tests on M1 Macs with strange result showing that connecting a Thunderbolt dock (maybe with a display) may increase performance of the other Thunderbolt port by a significant amount (at least according to benchmarks).
https://eshop.macsales.com/blog/74383-faster-drive-performance-with-m1-mac/
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.