News for hackers. Stuff that matters.
Re:I/O Is Faster Than CPU – Let’s Partition Resources and El... by CamperBob2 on Friday May 03, 2019 @06:29PM (#19822822)
They don't push peripheral interfaces into a standard channel-like format.

How does this not describe a PCIe bus master?

Frankly I don't understand any of this. High-performance I/O works by accessing main memory directly, just like it always has. The CPU then has to wait on main memory, just like it always has. Saying that the CPU is somehow the bottleneck seems to fall into the "not even wrong" area. There is no danger of I/O bandwidth approaching L1 or even L2 speeds anytime soon.

Re:I/O Is Faster Than CPU – Let’s Partition Resources and El... by ncmncm on Friday May 03, 2019 @08:29PM (#19823443)
400 Gbps is 50 GBps, or 50 bytes per ns. A 100-byte packet comes every 2ns. The bottleneck is not cache bandwidth, it is the number of instructions you have time to execute per unit of I/O: in 6 cycles you will not get to run 24 instructions, especially if you have to wait 3 cycles for your L1 cache.
Re:I/O Is Faster Than CPU – Let’s Partition Resources and El... by CamperBob2 on Friday May 03, 2019 @09:36PM (#19823722)
But you aren't waiting on L1, except in the sense that you're waiting on line fills from main memory. If the problem is that you don't have enough time to do something with the data you're getting, how is that solvable by architectural changes external to the CPU?

In the real world, if you need to deal with 400 Gb/s, you aren't going to send it to a single general-purpose CPU using any type of bus or channel. The CPU won't see it until another ASIC (or FPGA, I suppose) crunches it first.

Yes, that may impose a limit on the speed of an external network that a CPU can deal with, but that's the way it goes. MCA was never going to save us at this end of the Moore's Law curve.

Re:I/O Is Faster Than CPU – Let’s Partition Resources and El... by ncmncm on Friday May 03, 2019 @10:33PM (#19823981)
It is only solvable by architectural changes external to the CPU. Even at 40Gbps, which we live with now, that's 20 ns per packet, or 80 ns at a pokey 10Gbps, certainly not enough time to do a system call per packet.

So you need the hardware to divvy traffic up to multiple queues -- rings, really -- and a core for each ring. The packets just show up in memory, and the cores had just better keep up. If that looks to you like the same old POSIX architecture, I don't know what to say.

It was around 2010 that the network pipes got faster than the SAN file servers, and suddenly file output capacity had to be incorporated into network flow control.