Originally posted by: krizhanovsky
We need to choose hardware platform for our network processing appliance (common 1-2U server, not an embedded device). Currently we're going to use only base hardware, without specific hardware like NPU or FPGA. I have experience with Bivio 7000 platform - high performance platform for network processing, which is very close to what we're looking for. Bivio in its solutions uses Freescale MPC7448 processors for application processing units (on which a user can run his or her custom applications like IDS, HTTP proxy etc).
I had a look at MPC7448 specification: 2 32bit cores, 1.6Ghz, 32KB L1i and L1d, 1MB L2, 32 general purpose registers and emphasize on superscalar abilities (4 (3 + branch) instructions per clock). The CPU costs about $250. From other side, for example, AMD Opteron 4280 costs about the same ($255), but has 8 64bit cores, 2.8Ghz, 48KB L1i and L1d, 1MB L2 per core, 8MB shared L3, 16 general purpose registers.
So why it has sense to use PowerPC processor instead of x86-46 for high performance network processing? From my point of view 4 times bigger number of cores and significantly larger caches must beat double number of registers and maybe better instruction level parallelism (however x86-64 is also superscalar processor). However it seems AMD Opteron consumes much more power. Is it the reason?
The typical workload for our application is memory intensive operations which requires gigabytes of RAM with large work sets (i.e. we have relatively low cache hit).
Many thanks in advance.
PowerPC has a long history in embedded use and there are lots of low-clocked, low-powered units around like the MCP7448. The reasons were that it was cheap, available (due to IBM being much looser with PPC licensing than Intel is with x86 licensing), and generally worked well. Apart from very old chips like the Intel 80186 and 80386, there hasn't been much for embedded x86 until very recently. x86 was the high-performance, high-powered CPU arch of choice and there wasn't a real push to get it into embedded. (x86 in embedded uses started since Intel is hoping to lock phone vendors into x86 since it looks like ARM on tablets is seriously eroding the worth of Intel's x86 patent portfolio.) Yes there was the old Cyrix MediaGX which eventually became the AMD Geode, but that never really went anywhere.
It sounds like your workload may be better served by using a much higher powered x86 chip since you are apparently doing more of a server type of workload than a network processor kind of workload. If you want low TDP, there are some lower-clocked but much cooler-running Opteron 4200 EE chips out there.