In an exclusive article in Microprocessor Report this week, Broadcom revealed that it has developed a new MIPS-compatible CPU, the BRCM 5000, for its broadband SoCs. This CPU, also known by its code-name Zephyr, is the latest in a series that the company has developed over the past decade under an architecture license from MIPS.
According to Dan Marotta, executive VP and general manager of Broadcom's Broadband Communication Group, these CPUs have been a secret weapon for the company. "Our small but powerful CPU cores enhance the capabilities of our industry-leading digital-home solutions," Marotta said. "As a result, Broadcom processors enable a better consumer experience than products based on commodity off-the-shelf cores." Products using these Broadcom-designed CPUs generate more than $2 billion per year in sales.
The BRCM 5000 is a superscalar CPU that can execute two threads at once. The design is now entering production in 40nm G technology at a clock speed of 1.3GHz. With a rating of 3,000 Dhrystone MIPS, the CPU provides plenty of performance for high-end set-top boxes (STB), digital TVs (DTV), DOCSIS 3 cable modems, and other demanding consumer applications. It appears in products such as the BCM7420.
Generations of CPUs
Broadcom's CPU development stretches back more than 10 years, when the company shipped its first DSL chip with an internally designed CPU, now known as the BRCM 3300 core. This CPU, which the company still uses today, is quite small (less than 1mm2 in 40nm CMOS, including cache), making it ideal for low-cost products such as ADSL chips. The simple scalar CPU uses a six-stage pipeline to achieve clock speeds of 700MHz in 40nm G, as Figure 1 shows. It generally uses 32KB of instruction cache and 16KB of data cache, although the synthesizable design can be configured in multiple ways. The small data cache is optimized for broadband applications, in which most of the data is streamed through the processor and doesn't need to be cached.
Figure 1. Three generations of Broadcom CPUs. The company has developed several MIPS CPUs, all of which it continues to use in various consumer SoCs. 2T=two threads; 2P=two CPUs. (Source: Broadcom)
Broadcom later developed the BRCM 4355 CPU for higher-performance modems (e.g., VDSL) and set-top boxes. This design is a dual-CPU module in which the two CPUs share a single data cache. This structure was originally designed to simultaneously support two operating systems—for example, a real-time OS (RTOS) to process broadband data and Linux to provide a user interface. The shared 32KB data cache simplifies synchronization and avoids wasting cache on streaming broadband data. Each of the two CPUs is similar to the BRCM 3300 in speed and issue rate.
A more recent version of this CPU, called the BRCM 4380, expands the shared data cache to 64KB and adds an exclusive 128KB level-two cache. This design also adds DSP extensions and a floating-point unit to accelerate 3D user interfaces in set-top boxes. This CPU, which achieves a speed of 700MHz in 40nm G, appears in Broadcom products such as the BCM7400, BCM7405, and BCM7335 STB processors.
The company started a parallel CPU effort in 2000 when it acquired SiByte, a startup that had developed its own high-end MIPS CPU. In 2005, however, Broadcom decided that integrated SoCs were a better investment than standalone processors, so it merged the SiByte CPU team with its in-house efforts. The new team brought extensive expertise in high-performance CPU design, allowing Broadcom to develop a much more powerful CPU: the BRCM 5000.
Broadcomm's reason of using MIPS is more likely a decision to maintain HW and SW re-use to the max considering one of their biggest customers is Motorola Broadband that back in the early 2000-2002 moved away from Motorola Semi 68k 32 bit cores to MIPS, ever since Broadcomm's SoC designs for the Cable boxes, modems, etc have been using MIPS driven by Motorola Broadband (formerly GI) designs.
Back in 2000-2002 ARM was making his first efforts with the ARM7 in embedded space targeting low power consumption designs, cable boxes being plugged to the wall wasn't their focuss.
At the moment ARM as grown exponentially vs MIPS because the mobile market has done the same, but we still don't see a lot or ARM away from the mobile space.
Maybe the real reason to develop your own CPU is to make it more difficult for the competition to create cheap knock-offs. To me it seem like too much of an internal cost to do this for any other reason...
This processor is the first MIPS core that challenges the ARM and Atom for performance. I think Broadcom had to do this to keep pace. The investment Broadcom has in the MIPS processor must be huge for them to invest in improving the MIPS core vs. switching to ARM.
I personally like the competition in the embedded processor marketplace. This can only benefit the consumer with more full featured products.
per core license costs are much better with MIPS. if large address space is important, MIPS had 64bit implementation in the early 90s / licenses for 64 bit for 10 years or so. there are also a ton of hw extensions for MIPS (like ARM).
Broadcom has been an old partner of MIPS so they still continue to churn out SOCs based on MIPS but with the effort they put into the power management and performance improvement I feel they could have gotten much bigger gains with ARM Cortex-A9s.
Here is a summary of some MIPS advantages according to MIPS CEO:
"MIPS has 32-bit and 64-bit processors. ARM does not have 64-bit. MIPS has single and multithreaded designs. ARM does not have multithreaded," he points out.
The only benefit of MIPS over ARM I can think of is that a lot of embedded software for things like set-top- boxes, modems and routers run on MIPS. Their licensing structure may also cost less than ARM.
Other than that, there really isn't that many technical advantages to either ISA.
IMO, PowerPC is superior to both from a design standpoint.
Broadcom has been using MIPS for processor of appliances. The industry seems to go for ARM and ARM is really taking the lead in various areas. What's the benefit of using MIPS over ARM? Is there any cost concern?