Living In A Multi-Processor World
June 19, 2015
Blog
In days past, processors hung out with their own kind.
I got out of school in the early 80s and worked at the new Microprocessor Group at Signetics, a now defunct semiconductor company. Very early in the game – starting in 1975 – Signetics had its 2650 processor, but by the time I got there, we supported the Motorola 68000 processor – and only the Motorola 68000 processor. There was a Signetics division for the Intel 8051, but we didn’t socialize with them. They were microcontrollers, not “real” processors. They did the work that our processor didn’t want to do, like low-level, inexpensive control work. Not the high-speed, computational, sophisticated, “educated” work that our processors did.
Elsewhere in the world there were Intel x86 processors and Texas Instruments digital signal processors (DSPs). National Semiconductor had its NS32000 family of processors. Even Fairchild Semiconductor, the granddaddy of all chip companies, spawned the Clipper processors. AMD had its 29000 RISC processor family. Shortly after I became one of the world’s leading experts for designing the 29000 into printers and routers, AMD dropped it to chase Intel by producing Intel processor clones. That cost me.
My point is that processors knew their places in the world and just didn’t mingle. Things have changed. Drastically. Nowadays with pervasive computing and the Internet of Things, processors are all cohabitating. Development platforms are putting different processors on the same board. The Kinoma Create from Marvell has an ARM processor as well as two (yes, two) Microchip PIC MCUs to control the I/O.
For several years, Xilinx has allowed the marriage of a MicroBlaze soft processor and a PowerPC hard processor in its Virtex family of FPGAs. Now, its Zync devices allow multicore ARM processors alongside DSPs and MicroBlaze soft processors in a veritable processing orgy. Altera has been offering its own NIOS soft processor coupling with custom DSPs. If the proposed merger with Intel goes through, we can only imagine how Intel processors will end up on Altera devices. Then there are the Samsung Artik modules, intended to power the IoT. They contain various intertwined combinations of ARM cores and custom processors. Where will it all end?
What does all this mean for the software developer? It means there’s a brave new world and we need to get used to it. Love it or leave it. For one thing, it means that all these processors need their own operating systems. I know what some of you are saying, “We don’t need no stinkin’ operating systems.”
But oh yes, we do. If a processor isn’t taking in or outputting data, and it’s just repeating a single calculation, then you’re right. But if your processor is actually connected to power, it needs at least a scheduler to ensure that resources are used efficiently, high priority tasks have (obviously) high priority, and that hazards like deadlocks and race conditions don’t occur. But the OS for a high-end 64-bit processor hosting a user interface, network stacks, and downloadable apps will not be – and should not be – the same one for the programmable I/O processor that needs to handle several interrupts and several I/O protocols.
Software developers of the future (and of today) will need to be experts in many different OSs. Or they’ll need to find a tool that automatically generates an optimized real-time OS without any expertise. That sounds like a good idea to me. What do you think?
Bob Zeidman is the president and founder of Zeidman Technologies where he invented the patented SynthOS program for automatically generating an application specific operating system (ASOS). Bob is the recipient of the 2010 and 2015 Outstanding Engineer in a Specialized Field from the IEEE Santa Clara Valley Section. SynthOS can be used online for free at www.SynthOSonline.com.