我已经开始研究不同的基于ARM的目标,但我仍然缺少关于ARM内核,架构,指令集和核心系列的内容。在这里查看维基百科页面:http://en.wikipedia.org/wiki/ARM_architecture#ARM_cores 我看到每个架构都有多个ARM架构和多个系列。例如,对于ARMv6架构,有ARM11和ARM-Cortex-M系列。对于ARMv7和其他人来说也是如此。 ARM11和ARM Cortex-M有什么区别,因为架构是相同的? ARM11和ARM Cortex-M是否支持相同的指令集,因为它们实现了相同的架构?
答案 0 :(得分:7)
体系结构是规范,即体系结构实现应支持的寄存器集,指令和操作模式。
系列是体系结构的特定详细实现,即创建ARM内核所需的实际硬件详细信息。 最后,核心是架构的特定实现,即创建ARM CPU所需的晶体管和其他分立部件的实际蓝图。
ARM体系结构是模块化的,因此系列可能只实现体系结构的某些功能而不实现其他功能。家庭也可能有不在架构中的扩展,并且使同一家族中更有趣的核心通常会在它们支持的功能上有所不同。
ARM内核被称为内核而非芯片的原因是特定芯片可能包含一个或多个内核(假设内核支持它)或者可能具有与其他组件集成的内核(I / O控制器,内存接口等)。 )在同一芯片中。
ARM11和ARM Cortex-M是不同的系列,在ARMv6架构中实现了不同市场的特性:ARM-11智能手机和平板电脑以及Cortex-M微控制器AFAIK。
答案 1 :(得分:0)
没有明确的答案,而且情况可能随着时间的推移而发生变化 - 但我认为家庭一词在这种情况下已经失去了大部分价值。
体系结构定义了一组功能(标准功能和可选功能)。随着时间的推移,您可能会看到新功能作为扩展添加,后来作为架构的标准功能推出。架构涵盖的不仅仅是指令集,系统级功能(如内存行为),权限和保护,异常模型等。
还有应用领域 - 在Cortex命名法中将高级别划分为MCU(低功耗,确定性),实时(确定性,安全和错误功能)和应用(高端,通用)。这些导致架构的进一步专业化,因此有ARMv8-M,ARMv8-R和ARMv8-A(您最终会在OS级别编写完全不同的代码以利用这些功能)。
对于较旧的处理器,特定设计会有变化,以改变功能集,重点关注不同的市场,但这与Cortex设计没有明显的区别(例如,ARM9系列,其中缓存,紧耦合存储器,MMU / MPU是存在的那种选择。)
Cortex-M可以被视为一个系列,但涵盖了广泛的性能范围(超过两个类似的架构),以及一系列安全功能(使用ARMv8-M)。
你也可以谈论小' Cortex-A系列,虽然对于特定的应用,将有一个特定的核心比其他核心更合适。还有big.LITTLE配对,但它们不会被描述为一个系列(但它们专门共享一个精确的架构)。
单个特定体系结构保证了基线功能,但并不一定限制许多代码的可移植性,因为随着体系结构的发展,不同的ISA仍然很常见。 (M级代码将在A级设备上运行,至少如果你小心,并从A64状态切换)。
ARM内核的进一步复杂之处在于,特定设备中更广泛的系统大多是供供应商免费定制的 - 尽管如果他们选择针对特定类型的应用程序,则有一些标准可用。查看任何特定供应商,您甚至可能会谈论基于单个ARM内核的一系列部件。