您可以将计算机置于32位微控制器周围吗?


9

我们家里都有(大多数)32位计算机。但是32位计算机中有一个微处理器。我正在阅读一篇有关ARM Cortex的文章。它是一个32位微控制器。现在,这引起了我的疑问。制造微控制器以减少微处理器周围的外部电路,然后使微处理器变得更强大,而微控制器以8位形式保留的时间过长了一段时间。但是现在我们有了32位微控制器,难道我们不像基于这些东西的计算机一样吗?


Answers:


11

这取决于您如何定义“计算机”。

在较小的规模上,您可能会称为传统微控制器,您没有得到内存管理,并且很少看到比嵌入芯片中的微小内存更多的RAM。我承认对现在可用的功能更强大的微控制器的架构知之甚少,但是这些功能的存在(或缺乏)可能是区分最适合嵌入式应用或通用计算的设备的关键。

通过“内存管理”,我指的是在虚拟地址空间中运行程序并将其映射到系统中可用的物理RAM的功能,该功能通常由内存管理单元(MMU)来执行。

没有MMU,如果您尝试运行多个进程,则所有进程都将被迫共享一个地址空间,这意味着,除非所有涉及的进程都遵循您的内存分配方案,否则一个进程很容易崩溃而导致另一个进程崩溃。因此,如果您完全可以控制所有流程的设计(例如嵌入式系统),那么就不必担心了。但是,如果您尝试支持通用计算,则不能保证将要执行的所有代码都将遵守内存分配方案,并且系统将相当脆弱。

对于嵌入式系统而言,RAM的不足也不是什么大问题,(1)因为通常会有大量闪存,(2)并非通用计算机,这意味着您不必担心会在运行非预期的程序时奉行用户。您会提前知道将在系统上运行的所有软件的总和,并且仅需要RAM即可存储该软件的变量。但是,当您尝试将系统构建为通用计算机时,用户将期望能够运行适合他们的功能,这需要RAM。

现在,在没有MMU且没有太多内存的设备上进行通用计算是绝对好的。只要您一次只需要运行一个程序,原始的基于128K RAM,基于8088(16位)的IBM PC就可以摆脱这种情况。

因此,如果您想将“计算机”定义为类似于1982年的技术,答案肯定是肯定的。或者,如果您使用的是封闭系统,则可以通过仔细控制软件的设计来缓解缺少MMU和/或内存过多的问题(例如,手机)。或者,如果您的微控制器具有内置的MMU和RAM块(或可以在外部容纳这些块),则您应该能够构建一个更类似于当前计算机的系统。


针对Java之类的即时编译器的开发使MMU的必要性可能比以往降低了。在没有与JIT相关的错误的情况下,一个人可以在没有MMU的Java虚拟机上运行多个独立的运行独立平台的程序,并且将它们彼此隔离,因为JIT不会为一个程序提供指令,而该程序会不适当地访问内存。被其他人使用。
2014年

16

绝对!看看几乎所有的手机都在那里。例如,摩托罗拉Droid使用基于TI OMAP ARM的微控制器,该微控制器在Linux之上运行Android。基本上,功能强大的计算机操作系统都在其上以及许多其他小工具上。在我的客户构建的某些产品上,他们使用可在其上运行Linux的FreeScale PowerQuicc I和II 32位处理器/控制器。PowerQuicc基本上具有PowerPC内核以及单独的RISC处理器,用于以高度可配置的方式处理所有外围设备。这是一个荣耀的微控制器。

您还必须记住,几年前计算机不是在32位处理器上运行的,而是像Commodore 64那样更像是8位处理器(当时为4位)。然后它们迁移到16位,32位等等。在具有等效位架构和速度的微控制器与微处理器之间并没有太大区别。微控制器通常缺少浮点单元,但是可以通过定点数学来弥补。例如,最初的Motorola 68000处理器(16位)用于为那些较旧的Macintosh计算机供电,然后多年以来,它已被旋转成用于许多嵌入式电子应用的微控制器版本。

您需要查看微控制器的作用以了解其用法。通常,当您使用微控制器进行设计时,您会想到一个高度专业化的应用程序,并且试图将其安装在比PC塔更小的空间中。而计算机是非常通用的:处理数字和处理用户输入。当您寻找微控制器时,您正在寻找一种将支持您为应用程序构建的接口类型的微控制器。您是否需要3个USB端口,2个以太网,2个UART,SPI端口,ATM和CAN接口?这些接口中的某些接口不是典型的计算机(如SPI,ATM和CAN)上没有的,而微控制器内置这些接口可以减少电路板空间。您可以将微控制器看作是为特定解决方案设计的处理器。


我认为任何“通用计算机”都不会使用比8位处理器小的计算机。通用计算机需要能够访问足够的RAM以容纳可用的程序,而且我不知道任何具有可用RAM代码存储区的四位计算机。
2012年

也许不是商业上的,但是包括我祖父在内的很多黑客都这么做了。在Commodore 64和TRS-80流行之前,他的车间里运行着4位计算机。它也有RAM(DIP堆栈)。
杰伊·阿特金森

您是否有关于任何物理构造的4位Von-Neumann体系结构机器的文档?
supercat 2014年

5

我们绝对可以。例如,iPad的大脑使用ARM Cortex A8处理器。


2
这是一个微处理器,而不是微控制器,正如JPC在下面指出的那样
Kortuk'5

3

值得注意的是,提到的ARM(OMAP和A8)是没有闪存和RAM的微处理器(A8并非完全如此)。Cortex-M3微控制器体积较小,内置存储器较小,并且更易于访问外围设备。

它们之间有很大的差距(在性能和功能上)。


+1指出Cortex-A和Cortex-M系列之间的区别...
Johan 2010年

1
微控制器具有嵌入式闪存和RAM。微处理器的外部存储器。
Kortuk


2

我不打算复活旧线程,但我的Zaurus SL5500在ARM处理器上运行了嵌入式Linux,该处理器带有RAM的小块,并通过CF和SD插槽进一步存储了小块。据我所知,MMU主要是用软件实现的(无论如何对于Linux系统都是有意义的)。通用计算不仅可以实现,而且可以通过第三方软件,编译器和灵活的命令外壳(提供大多数标准* nix实用程序和功能)完全使用。

这不是世界上最快的GP电脑,但可以肯定的是它使ARM(和/或三星的同等产品-我不确定百分百包含它)中的所有功能。功能和性能方面,它与较新版本的WinMobile Ipaq(肯定是Samsung StrongArm克隆)相比非常不错。这两台机器都有大量的RAM和大量的存储,因此要进行大量的内存管理-我想当达到这一性能水平时,我们必须稍微模糊微处理器和微控制器之间的界限。


2

您提到了“微处理器”和“微控制器”,但越来越多的设备出现了第三类,称为“ SOC”(代表“片上系统”,我觉得这很容易引起误解)

微控制器的内存非常小,通常没有内存映射并且内存保护非常有限。这使得它们不太适合用作通用计算机。

SOC可以看作是将所有东西都集成在一个芯片上的常规微控制器和需要大量支持电路的常规微处理器之间的中间地带。SOC将处理器内核和外围设备集成到一个芯片上,但是与微控制器不同,它们使用外部存储器。通常,这些SOC具有完整的MMU,可以为不同的应用程序创建虚拟地址空间。许多SoC还具有用于3D图形,DSP,视频编码/解码等的特殊功能块。

SOC不如现代台式PC强大,但与无懈可击的软件环境结合使用时,它们的功能强大,足以算作“通用计算机”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.