{"id":924,"date":"2010-06-07T11:33:17","date_gmt":"2010-06-07T10:33:17","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=924"},"modified":"2026-03-26T16:32:33","modified_gmt":"2026-03-26T20:32:33","slug":"amp-vs-smp","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2010\/06\/07\/amp-vs-smp\/","title":{"rendered":"AMP vs SMP"},"content":{"rendered":"<p>It is becoming common for embedded designs to incorporate more than one CPU &#8211; maybe multiple cores on a chip or multiple chips on a board or any combination of these. Indeed, it has been suggested that it will soon be the norm to build systems that way.<\/p>\n<p>The use of multiple cores has spawned various technologies and, of course, much terminology and jargon. When new technical terms and acronyms appear, there is inevitable misuse and misunderstanding. This seems to be the case with AMP and SMP, so maybe I can set the record straight &#8230;<!--more--><\/p>\n<p>AMP stands for Asymmetric Multi-Processing; SMP means Symmetric Multi-Processing. These terms are not at all transparent. In seeking a means to clarify, I thought I would check <a href=\"http:\/\/en.wikipedia.org\/wiki\/Asymmetric_multiprocessing\" target=\"_blank\" rel=\"noopener noreferrer\">Wikipedia<\/a> and looked up &#8220;AMP&#8221;. From the disambiguation page, I found the relevant article. Well, I say &#8220;relevant&#8221;, but it really does not cover the topic as we see it today. It talks about historical uses of multiple CPUs and dismisses it to history. So, I will try to advance definitions:<img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-926\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2010\/06\/amp.jpg\" alt=\"AMP\" width=\"146\" height=\"200\" \/><\/p>\n<p>An AMP system:<\/p>\n<p>\u2022 multiple CPUs<br \/>\n\u2022 each of which may be a different architecture [but can be the same]<br \/>\n\u2022 each has its own address space<br \/>\n\u2022 each may or may not run an OS [and the OSes need not be the same]<br \/>\n\u2022 some kind of communication facility between the CPUs is provided<\/p>\n<p>An SMP system:<\/p>\n<p>\u2022 multiple CPUs<br \/>\n\u2022 each of which has the same architecture<br \/>\n\u2022 CPUs share memory space [or, at least, some of it]<img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-928\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2010\/06\/smp.jpg\" alt=\"SMP\" width=\"115\" height=\"202\" \/><br \/>\n\u2022 normally an OS is used and this is a single instance that runs on all the CPUs, dividing work between them<br \/>\n\u2022 some kind of communication facility between the CPUs is provided [and this is normally shared memory]<\/p>\n<p>Typically, SMP is used when an embedded application simply needs more CPU power to mange its workload, in much the way that multi-core CPUs are used in desktop computers.<\/p>\n<p>AMP is most likely to be used when different CPU architectures are optimal for specific activities &#8211; like a DSP and an MCU. In an AMP system, there is the opportunity to deploy a different OS on each core &#8211; e.g. <a href=\"http:\/\/www.mentor.com\/products\/embedded_software\/nucleus_rtos\" target=\"_blank\" rel=\"noopener noreferrer\">Nucleus<\/a> and Android\/Linux &#8211; as befits the required functionality.<\/p>\n<p>This topic will be address in a <a href=\"http:\/\/www.mentor.com\/products\/embedded_software\/events\/cpu-multicore-design-webinar\" target=\"_blank\" rel=\"noopener noreferrer\">webinar<\/a>, which we are presenting shortly in collaboration with the <a href=\"http:\/\/www.multicore-association.org\" target=\"_blank\" rel=\"noopener noreferrer\">Multicore Association<\/a>. After the event, a recording of the session will be available online.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It is becoming common for embedded designs to incorporate more than one CPU &#8211; maybe multiple cores on a chip&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[324,300,307,367,328,329,377,304],"industry":[],"product":[],"coauthors":[],"class_list":["post-924","post","type-post","status-publish","format-standard","hentry","category-news","tag-android","tag-embedded-software","tag-linux","tag-mcapi","tag-multi-core","tag-multi-os","tag-multicore","tag-nucleus"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=924"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/924\/revisions"}],"predecessor-version":[{"id":9861,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/924\/revisions\/9861"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=924"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=924"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=924"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}