The OCTEON device was designed as a scalable, coherent, system on a chip for networking equipment; to be used in everything from home routers to backbone routers used for fiber connections. Since networking does not usually require floating point computation, the OCTEON device uses a superset of the MIPS64 release 2 integer instruction set, known as cnMIPS64. The high-end OCTEON CN3860 device, which features 16 cores, is shown below in Figure 1.
Figure 1 – OCTEON System on a Chip Architecture, Courtesy of Cavium
The cnMIPs cores are shown in blue, the coprocessors in blue and orange, the memory in green and I/O in turquoise. Each of the coprocessor focuses on a particular common network task; don’t worry about the flurry of three letter acronyms, most will be explained later.
OCTEON processors are fabricated in TSMC’s 130nm low voltage process with 9 layers of metal. The system runs at 600MHz using 1.2V and requires 25W of power. OCTEON products can be configured with 1-16 cores, the memory configurations can be altered and many of acceleration coprocessors can be easily removed or disabled to provide a product tailored for a specific market. One interesting note is that the designers actively tried to minimize frequency; the goal was to hit the minimum frequency needed for the appropriate performance level. This is rather counter-intuitive to many who are used to thinking about processing in terms of GHz, but ultimately, end-users in networking care more about data throughput, rather than the clock speed.
The OCTEON family also includes substantial software elements. Standard OSes supported include Linux, VxWorks and a Cavium thin executive (think along the lines of a hypervisor). The Cavium SDK includes a cycle accurate simulator, a GNU compiler, C run-time environment, GDB and a graphical interface and a proprietary performance analysis tool. APIs are also provided for some of the coprocessors, and performance optimized tool kits are available for SSL, TCP, IP and IPsec.
Cavium’s reliance on standards is a huge boon for end users. In the late 1990’s, network devices were typically programmed using assembly, and the architectures varied from the almost normal to the downright bizarre. One of the big selling points of the OCTEON family is that software for the whole product line can be developed in C or C++ using a standard environment (GCC based), rather than assembly. As a result, there is a large pool of C based applications that can be easily ported to OCTEON. For customers, this reduces time to market and development costs.