热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

嵌入式处理器的架构与内核发展历程

本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。

转载自http://blog.csdn.net/pengpengjy/article/details/51902044


当我们谈及嵌入式处理器的体系架构时,一般都是想到IntelX86架构和ARM公司的ARM架构。X86架构和ARM架构最大的不同点就是使用的指令集不同,前者使用的CISC指令集,后者使用的是RISC指令集,还有一点就是X86架构使用的是冯诺依曼结构,ARM架构既使用冯诺依曼结构,也使用哈佛结构(已经成了一种趋势)。

       何为架构?这两个字看起来很简单,不就是“骨架+结构”,但是个人觉得并不好理解。百度上把架构分为逻辑架构,物理架构和系统架构。对于处理器,当起发展到一定程度时,这种物理架构不会有很大的变化。以CPU为例,它主要由逻辑部件+寄存器部件+控制部件组成,这种结构在发展稳定之后,就不会有大多的改变。那么人们常说的架构版本更新主要体现在哪里呢?指令集。当然还有如存储器管理特性改进等因素,以ARM处理器架构为例,如图1为其进化史。

 架构与内核

                                                                                       图1 . ARM处理器架构进化史

可以看到其架构一路从V4V7版本,其中V7版本分三路发展,A系列,R系列,M系列。

再看图2看其处理器指令的演进史

 架构与内核

                                                                                                   图2,  指令演进史

 

可以发现,在V4T版本时增加了Thumb指令集,刚好可以对应处理器的Thumb状态,到了V5E版本,加入了增强型的DSP指令,V6版本可谓是ARM指令演进史上的一件大事,有了Thumb-2的问世。其实之前的16Thumb指令集就32ARM指令集的一个功能子集,到了Thumb-2,以其强大,轻佻和高效,16位指令首次与32位指令并存,再也不需要因为处理器模式的变换而造成指令集变换。从ARM-Cortex-M3将全身的处理能力托付给Thumb-2指令集就可以看出,Thunmb-2指令集的强大。

  处理器架构与处理器内核有什么区别?“处理器内核”中的处理器应该是MCU。“处理器架构”中的处理器可以是更广义的 Processing Unit而当我们谈及内核时首先应该是针对某一系列的MCU。拿STM32系列MCU来说,它们是基于ARM-Cortex-M3为内核的。而内核主要谈其流水线和结构。如ARM7内核是0.9MIPS/MHZ的三级流水线和冯诺依曼结构,ARM91.1MIPS/MHZ5级流水线哈佛结构。通过图3可以更直观的发现内核与MCU的关系。

 架构与内核

                                                              图3

至于内核里面,那就是谈及它的寄存器组,指令集运用,中断行为,存储器映射和调试等相关知识了。

通过上面的分析,内核是架构的重要载体和呈现方式。

 

P.S:个人理解,欢迎批评指正与相互讨论

 

 

参考文献:1The Definitive Guide to the ARM Cortex-M3

                  架构与内核  2,Cortex-M3 权威指南     宋岩(译)

                  3,百度百科


推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
author-avatar
帅呆了2014_329
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有