Multi-core/multi-OS – terminology
Working for Mentor Graphics is interesting, but can have some challenges. One of the facets of the company that makes us unique is embedded software. There are a couple of other companies that Mentor would regard as key competitors, but they are both totally focussed on electronic hardware design – “electronic design automation” [EDA]. A very large part of Mentor has that orientation, but we are unique in having the Embedded Systems Division. Of course, there are plenty of other embedded software companies, but they do not operate in the hardware design space.
The logic behind an EDA firm being involved in software is clear: an electronic system of any significant level of complexity delivers functionality via a combination of hardware and software. As a company, understanding both domains gives us the chance to serve our customers better – to offer more complete solutions.
Of course, we do all of this, but we run into communication problems …
Although it is now more than 13 years since Mentor acquired the company that I worked for and, hence, started its investment in embedded software, I still find myself surrounded by people who speak a different language. They talk about “synthesis” and “netlists” and think that “IP” stands for “intellectual property” [whereas I think “Internet protocol”]. An operating system is something that runs on a desktop computer – an RTOS is not familiar. And when I talk about embedding Linux in a device, confused looks are the result.
I recently ran into a new terminological challenge. This came about because there is increasing interest in multi-core systems: devices that incorporate multiple CPUs – either multiple chips or multiple processor cores on a single chip. Typically, the functionality of a device is spread across the CPUs so that one [or one group] performs the high speed, hard real time activities and another looks after functionality which in not time critical. An example might be a digital TV system, where one processor looks after the processing of the media stream and another looks after file management and the user interface.
This kind of system architecture is interesting because the operating system requirements of the two parts of the system are different. The hard real time part needs a true RTOS [like our own Nucleus OS]; the other part may be best served by Linux.
The question is: what do we call these two distinctly different parts of a multi-core system? My EDA colleagues make references to the “data plane” and the “control plane”, but these terms are not intuitive to me. Am I out of touch or is it a hardware/software thing? I would appreciate any feedback either via a comment or by email. Thanks in advance.
Comments
Leave a Reply
You must be logged in to post a comment.
I also find the control/data plane terminology a bit too specific. After all there can be situations where there is no visible boundary segregating control from data. I am more comfortable with the generic term AMP (Asymmetric multi-processing) that encompasses such use cases.
Thanks for this input Faheem.
In the Bluetooth world the terms “host” and “controller” are used to describe this partitioning. The upper protocol stack runs on the host processor of the PC, phone, etc. while the lower stack runs in the controller, which is the Bluetooth chip itself. I have also used the terms “application processor” and “network processor” to describe the same partitioning in a more general way.
Good input Jason. In the context of a mobile handset [for example] “application processor” and “network processor” make sense, but in other areas the terms are not general enough. For example, a high-end laser printer: one CPU looks after UI and file management and the other deals with actual printing.
Colin, how about “HRT Domain” and “SRT Domain”, (standing for Hard/Soft RealTime) – while it functionally saggregates the two domains (or Planes by EDA guys’ talk) – it stays generic across devices having such splits…? Just a quick thought i got.
Sumeet: Thanks for that. I like the use of the word “domain”. Not so sure about “SRT” and “HRT” – “HRT” is used to stand for “hormone replacement therapy”. 🙂
Collin, I guess question is tricky to understand at the first as it drives to think about distributed processing and symmetrical parallel processing. I guess you’re right on money,terminology is yet to be defined. I would naturally compare this system with our body. I would put brain as master processor and organs as ASP(Application Specific Processor). After that i would say CCPP(Control Command Processing Path) and CCEP(Control Command Execution Path).I guess i sound naive..gauche 🙂
Hardik: Thanks. All contributions are welcome.