Answers:
这取决于您如何定义“计算机”。
在较小的规模上,您可能会称为传统微控制器,您没有得到内存管理,并且很少看到比嵌入芯片中的微小内存更多的RAM。我承认对现在可用的功能更强大的微控制器的架构知之甚少,但是这些功能的存在(或缺乏)可能是区分最适合嵌入式应用或通用计算的设备的关键。
通过“内存管理”,我指的是在虚拟地址空间中运行程序并将其映射到系统中可用的物理RAM的功能,该功能通常由内存管理单元(MMU)来执行。
没有MMU,如果您尝试运行多个进程,则所有进程都将被迫共享一个地址空间,这意味着,除非所有涉及的进程都遵循您的内存分配方案,否则一个进程很容易崩溃而导致另一个进程崩溃。因此,如果您完全可以控制所有流程的设计(例如嵌入式系统),那么就不必担心了。但是,如果您尝试支持通用计算,则不能保证将要执行的所有代码都将遵守内存分配方案,并且系统将相当脆弱。
对于嵌入式系统而言,RAM的不足也不是什么大问题,(1)因为通常会有大量闪存,(2)并非通用计算机,这意味着您不必担心会在运行非预期的程序时奉行用户。您会提前知道将在系统上运行的所有软件的总和,并且仅需要RAM即可存储该软件的变量。但是,当您尝试将系统构建为通用计算机时,用户将期望能够运行适合他们的功能,这需要RAM。
现在,在没有MMU且没有太多内存的设备上进行通用计算是绝对好的。只要您一次只需要运行一个程序,原始的基于128K RAM,基于8088(16位)的IBM PC就可以摆脱这种情况。
因此,如果您想将“计算机”定义为类似于1982年的技术,答案肯定是肯定的。或者,如果您使用的是封闭系统,则可以通过仔细控制软件的设计来缓解缺少MMU和/或内存过多的问题(例如,手机)。或者,如果您的微控制器具有内置的MMU和RAM块(或可以在外部容纳这些块),则您应该能够构建一个更类似于当前计算机的系统。
绝对!看看几乎所有的手机都在那里。例如,摩托罗拉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)上没有的,而微控制器内置这些接口可以减少电路板空间。您可以将微控制器看作是为特定解决方案设计的处理器。
值得注意的是,提到的ARM(OMAP和A8)是没有闪存和RAM的微处理器(A8并非完全如此)。Cortex-M3微控制器体积较小,内置存储器较小,并且更易于访问外围设备。
它们之间有很大的差距(在性能和功能上)。
最近的上网本基于ARM:http : //www.google.com/search? client=safari&rls=zh-CN&q=arm+netbook&ie=UTF-8&oe=UTF-8
我不打算复活旧线程,但我的Zaurus SL5500在ARM处理器上运行了嵌入式Linux,该处理器带有RAM的小块,并通过CF和SD插槽进一步存储了小块。据我所知,MMU主要是用软件实现的(无论如何对于Linux系统都是有意义的)。通用计算不仅可以实现,而且可以通过第三方软件,编译器和灵活的命令外壳(提供大多数标准* nix实用程序和功能)完全使用。
这不是世界上最快的GP电脑,但可以肯定的是它使ARM(和/或三星的同等产品-我不确定百分百包含它)中的所有功能。功能和性能方面,它与较新版本的WinMobile Ipaq(肯定是Samsung StrongArm克隆)相比非常不错。这两台机器都有大量的RAM和大量的存储,因此要进行大量的内存管理-我想当达到这一性能水平时,我们必须稍微模糊微处理器和微控制器之间的界限。
您提到了“微处理器”和“微控制器”,但越来越多的设备出现了第三类,称为“ SOC”(代表“片上系统”,我觉得这很容易引起误解)
微控制器的内存非常小,通常没有内存映射并且内存保护非常有限。这使得它们不太适合用作通用计算机。
SOC可以看作是将所有东西都集成在一个芯片上的常规微控制器和需要大量支持电路的常规微处理器之间的中间地带。SOC将处理器内核和外围设备集成到一个芯片上,但是与微控制器不同,它们使用外部存储器。通常,这些SOC具有完整的MMU,可以为不同的应用程序创建虚拟地址空间。许多SoC还具有用于3D图形,DSP,视频编码/解码等的特殊功能块。
SOC不如现代台式PC强大,但与无懈可击的软件环境结合使用时,它们的功能强大,足以算作“通用计算机”。