I don't think that X86 and X64 architecture are well designed for routing. Multicore does work quite well with big amount of Data in memory, because each core do have a quite big quantity of cache memory today (level 2).
But for routing, most of the time is spent transfering small amount of data from device bus to cores. The PC architecture is not designed to do this efficiently because the device bus is shared between cores.
X86 / X64 bottleneck for routing is the PCI-e bus, even if you choose a dual IOH busses machine and add some GPU boards to speed up routing you will not be able to go beyond 40 Gbps total throughput on X86 / X64 platform. This is very slow compared to dedicated hardware routers able to push more than 1 Terabit/s through 10, 40 or 100 Gbps ports.
If you want to get this speed with X86 hardware, you'll eat 10 times more power than a dedicated hardware router. Where is the benefit ?
Each core does work at about 3 Ghz, but the fastest bus (memory) is running at about 1.3 GHz and must share between 2 or 4 cores...
This explain why low cost Broadcom chips used inside Routerboards can switch packets faster than some fast X86 machines. Unfortunaltely they can do only switching tasks and level 2 filtering. According to some tests i did, The RB450G switch Chip is able to transfer 4 Gbps between 2 Gigabits ports without packet drop. With routing, packets drop bursts can exhibit beginning at 100 Mbps, as soon as the processor unit needs to multitask non routing threads.
Multicore has never been a very attractive technology for low cost softwares and drivers. It needs a serious low level optimisation to work efficiently. This is only doable by Intel staff and a couple of other staff with deep knowledge of the core and X86 hardware structure design. This optimization task is a costly process, and is hardware dependent.
Multicore is the answer from X86 chips manufacturers to the impossibility to go higher than 3.2 Ghz.
But rising the frequency is really more efficient and simpler than adding cores.
Routing at high speed (between 1 and 10 Gbps) without packet drop needs faster processing, or dedicated hardware (FPGAs, ASICs, DSPs).
FPGA and ASIC design can be fully optimized from the ground up to do the routing task. In the end you got simpler, more efficient, more reliable and really faster designs. This is not the case for multicore X86 / X64 architecture.
This explain why you can see hardware routers able to push and route 100 Gbps per port without packet drop, where X86 machines can have problem to push 1 Gbps per port without packet loss.
So if you need speed, buy the hardware designed for it. If you need low cost and medium speed, buy Routerboards and Router OS :=)
Last edited by FIPTech
on Sat Jan 15, 2011 9:48 am, edited 1 time in total.