产品选型

单片机 amp 从多核CPU到多核MCU,单片机也要发展多核心了吗是ARM,51内核吗

小编 2024-11-24 产品选型 23 0

从多核CPU到多核MCU,单片机也要发展多核心了吗是ARM,51内核吗

速度不够,数量来凑,由于受制造工艺限制,CPU的频率不能无限制的增加,为了提高处理器的性能,就只能增加核心数量了。不过现在的单片机频率远远达不到极限啊!才几十上百兆的频率就要搞双核了?似乎多核单片机不是为了提高性能而设计的!(STM32WB55性能肯定不如STM32H系列)这又是为什么呢?

STM32WB55——Cortex-M4 + Cortex-M0+

核心(内核)

核心(Die)又称为内核,是CPU最重要的组成部分,核心由单晶硅制成,用来完成所有的计算、接受命令、存储命令、处理数据等操作,是数字处理器的核心。

多核CPU

CPU核心发展方向是更低的电压、更低的功耗、更先进的制造工艺、集成更多的晶体管、更小的核心面积、更高的性能,但是,由于受制造工艺限制,CPU核心的频率不能无限制的增加,为了提高处理器的性能,就只能增加核心数量了,从而出现了扩展cpu内核的方法,这个方法能让电脑加上100个内核,运算速度比一般电脑快20倍。

现在常见的CPU核心数有单核、双核、四核、六核、八核、十二核等。在内核频率相同的情况下,CPU内核数量越多,CPU的总体性能就越强。

核心

多核CPU有:

海思 麒麟 990 核心数为八核——2*Cortex-A76 + 2*Cortex-A76 + 4*Cortex-A55

高通 骁龙 865 核心数为八核——1*Cortex-A77 + 3*Cortex-A77 + 4*Cortex-A55

Intel 酷睿i9 9900K 核心数为八核——平行核心——CPU主频为3.6GHz

AMD Ryzen ThreadRipper 3990X 核心数为六十四核——平行核心——CPU主频为2.9GHz

龙芯1C101 是CPU还是MCU?

龙芯1C101是CPU还是MCU?中关村也是傻傻的分不清啊!

多核MCU

开发单片机系统时,一个单片机无法满足系统的要求,普遍的做法就是使用两颗或更多的单片机,把一部分繁杂的工作分配给另一个单片机来完成。采用两颗单片机的缺点有:芯片成本、PCB成本、系统可靠性、功耗等都有先天的不足,另外,在开发时也是较为繁杂,由于单片机架构不同采,还要面临需要不同的开发工具。

如果能在单片机内部包含两个内核,一个用于主控,另一个用于协控,协同工作。主控与协控在架构上兼容能高效通信。多核单片机在很多场合下可以保持多机系统的强大,又能避免多机系统的不足。

多核又有对称多核(简称SMP)与非对称多核(简称AMP)之分,多核两个核是一样的叫对称多核,不同叫非对称双核,非对称比较麻烦,启动的非分开启动,先启动一个核,在通过这个核启动另一个核!SMP的各核心有一致的编程模型,在分配工作时主要以均衡为原则。AMP的优势在于精细的任务分工,灵活地适应不同情景,物尽其用,能最佳地平衡成本、性能与功耗。AMP的编程难度也更低,在MCU应用领域,AMP较SMP更为适合。

与独立的双芯片相比,多核单片机架构有很多优点。再添加一个内核的代价远比添加一个独立的单片机要低,尤其是当两个内核架构相似时。另一方面,多个内核可以有相同的主频,并且可以通过总线矩阵平等地访问片上资源。

STM32WB55——Cortex-M4 + Cortex-M0+

多核单片机有:

STM32WB55——Cortex-M4 + Cortex-M0+

STM32H7——Cortex-M7 + Cortex-M4

STM32MP——Cortex-A7 + Cortex-M4

LPC5411x——Cortex-M4F + Cortex-M0

LPC4300——Cortex-M4 + Cortex-M0

F28M35 ——Cortex-M3 + C28x

LS2051——51内核 + 51内核

LS53C——51内核 + 51内核

LS052Ax——51内核 + 51内核 + 51内核

LSx151——51内核 + 51内核 + 51内核

Freescale的PXS30、PXS20、MPC5675K、MPC5643L系列是对称双核单片机,两个Power Architecture e200内核。

LPC4300——Cortex-M4 + Cortex-M0

非对称多核MCU

单片机开发可以用哪些语言?

  从单片机诞生开始发展到现在,单片机的规格并没有多大的变化,但是语言和支持软件的扩展为应用程序开发开辟了许多途径。多年来,单片机进行编程涉及两种语言的选择:C语言和汇编语言。但是随着现在可用于单片机的新语言出现,用户在应用程序设计中面临更多选择。

单片机开发语言

  宇凡微单片机开发工程师表示,单片机开发用哪种语言取决于你正在处理的应用程序。当前主要有以下几种语言可以用于单片机开发:

  (1)C语言与汇编语言

  在单片机可以使用新语言之前,两个可用的选择是C和Assembly。在深入探索新语言之前,让我们简单看一下。C语是在20世纪70年代初开发的,也是一种流行的单片机语言。C可以和单片机一起使用,因为C有处理内存分配的能力,也可以执行if语句、循环、数学表达等复杂功能;汇编是 C语言的另一种选择。codec是一种比较古老的语言,通常使用特定于设备的代码,并且使用汇编工具来转换它。通过该语言,用户可以直接访问 CPU,在 CPU中精心调节程序,从而实现精确的计时应用。Composition提供了更好的 CPU使用量,以及 C不支持的其他指令,比如用特定的 BIT指令执行位操作。

  (2)MicroPython语言

  Python是一种功能丰富的解释性语言,具有简单、清晰、通用的特点。对于微处理器而言,这些功能也使得语言过于庞大。但物理学家 DamienGeorge在2013年“Kickstarter”活动的帮助下,能够把 Python修改为一个适合单片机的更小版本 MicroPython。MicroPython代码是根据 MIT许可开放源码的。这种语言使用了一小部分标准 Python库在微处理器的裸机上运行。该软件仅能运行256 k的空间和16 k的 RAM,但它被设计成与普通 Python完全兼容。

  起初,它被设计为可以在基于 ARM的系统上运行,其中包括 BBC micro: bit, Adafruit Circuit Playground Express和 MicroPython PyBoard,现在还可以用于其他处理器,包括ESP8266和ESP32。MicroPython非常擅长于复杂项目的原型设计。举例来说,在ESP8266上, IoT项目可以创建一个 IoT项目,只需一些简单的函数调用,将 MicroPython项目连接到本地Wi-Fi点,然后开始向 MQTT代理传输信息。

  (3)Blockly语言

  Blockly是一个受 Google支持的开源编程库,它的目的是通过拖放块使代码更有逻辑。使用者不需要依赖于普通会话中不能用的单词和短语,而是把这些词组放入环境中,从而确定程序如何运行。举例来说,不需要编写 IF语句,用户就可以把 IF块拖拽到工作空间中,而且还可以把结果操作拖拽到 IF语句块中。

  建立了模块之后,用户就可以用很多种语言(包括 JavaScript, Python, PHP, Lua和 Dart)导出它的 Blockly代码。由于 Blockly系统需要一个特殊的连接,并且不允许不兼容的块连接,所以 Blockly系统的一个优势就是几乎不可能出现错误(不是 bug或错误,只是老的错误)。虽然这种编程方法可以在许多平台上使用,包括 Micro Bit和 Adafruit Circuit Playground Express,但并非为最终的商用产品而设计。然而,它在原型设计阶段很有用,特别是当需要概念验证、了解设备细节时(如寄存器、配置位和 IDE配置)将会很有用。

  (4)Arduino C++语言

  虽然 Arduino编程语言被称为“Arduino编程语言”,但是实际上 Arduino是用很好的 C++编程的,并且使用了 Arduino特定库的子集。Arduino C++与传统 C++的不同之处是:一般的单片机例程,因为标准库 C++函数不能在它的功能和内存上运行。利用 C++这个小型版本使得该语言更易访问,因为很多设计者已经熟悉了常规 C++。事实上,通过使用编译器,可以用 C++编写代码,然后将其解释为 Arduino可用的代码。

  采用 Arduino C++的优点是,它可以在商业环境中工作,比大型语言如 Python要快,而且可以高度移植。应用通用函数自动处理初始时在 ARM内核中为 Uno编译代码。

  (5)BASIC语言

  BASIC语言最早出现于60年代,随着个人电脑在80年代的兴起进入了它的鼎盛时期。BASIC (初学者的通用符号指令代码的首字母缩写)到今天仍在使用,这使得设计者能够把更多的精力集中于硬件,而更注重于软件。单片机上使用的BASIC的两个例子是PICAXE生产的,Microch使用PICASICSAMP(由Arallax生产)和PICAXE。BASIC是原型甚至硬件开发的好语言,但由于其速度慢、能耗低,BASIC应避免在商业产品中使用。

  应用于单片机时, BASIC的解译将导致性能的降低。然而,这种语言的优点是高度可移植性。任何用 BASIC编写的代码都可用于任何带有 BASIC解释器的设备上。以往使用单片机时,设计者要选择自己喜欢的平台,再学习它所用的语言。现在,随着语言和软件的发展,语言可能会决定设计者使用哪种平台。假如设计者想要寻找一个特定的功能,如 GPIO支持、网络、通过 SSH通信的能力,那么语言和系统的选择就是找到最优开发路径的重要因素。

引用:单片机开发可以用哪些语言?-深圳宇凡微

相关问答

单片机 嵌入式开发中temi=s[4]& amp ;0x03这个与运算的作用是...

这个要看s[4]的定义了,其运算解释为:将s[4]与0x03,按位相与。相当于,s[4]&0B00000011。(若s[4]定义为8位整型数据)s[4]&0B0000000000000...

单片机 烧录程序时显示内存校验错误(Flash Verity Error at:0...

[回答]我也出现了这个问题,你解决了没有,可能是软件被恶意破坏,你可以重装试试:MacromediaFlashPlayer9.0.0.296BetaforIE地址:ahref="x...

rcd510功放芯片是什么?

功放IC芯...RCD510内部的音频信号推力稍小,最好加一个前级,能获得较好的效果,不过静音控制难,启动关机可能有电流冲击声。因为RCD510的静音功能是通过功放IC...

初中毕业生学什么专业好?

初中毕业,要么升入高中,以后考大学,拿个好的文凭;要么进中专或职校学一技之长,找个满意的工作。那么,初中毕业学习什么专业好呢?这是很多初中毕业生和家...汽车...

co 检测程序,我用的传感器是MQ-7,输出是电压,A& amp ;#47;D...

[最佳回答]计算是需要知道传感器的资料才能得出结果的。ad数*浓度量程/ad量程或者采集电压*浓度量程/电压范围。一模块描述1对CO气体有很高的灵敏度和良好的选...

为什么用74hc595驱动的数码管没有闪烁感

http://www.crystalradio.cn/bbs/viewthread.php?tid=26564&extra=&page=2有讲多位数码管的,要注册才可以看数码管是一种...

软件开发需要学什么?

获取Cisco路由配置或华为网络工程或AMP应用工程师认证。就业方向:企业、政府、社区、各类学校等网络构建工程师。方法/步骤3:7网络系统管理掌握网络系统...

万和热水器要拆开煤气管排气后才打得着是什么回事

哎,这个我可深有体会,我就刚装修完,真是累死了,要注意和准备的事太多了,例如装修的时间,材料的选购,都是学问啊,材料一定要选环保的。我在网上看到...

麻烦行家们 求推荐一下!无锡惠山区专业立遗嘱律师,立遗嘱...

[回答]无锡市誉品法律咨询有限公司是依法经过工商核准的专业法律咨询服务类机构。服务所提供专业无锡法律咨询、交通事故、离婚律师、离婚诉讼、劳动争议...

猜你喜欢