「Arm Arch」 虚拟化微架构

简介: 「Arm Arch」 虚拟化微架构

全文3000字,预计阅读时长:8分钟


适用于从事ARM软硬件设计、开发、调试的工程师、教师以及学生


对于大部分开发者来讲,ARM架构知识一直存放于盲盒之中,知之甚少;而ARM架构知识是ARM结构化知识中非常关键的一部分,它的缺失,会导致我们对于问题的系统化思考难以进行。所以增设了《ARM架构知多少-A系列》专栏来和大家一起学习ARM架构,完善知识结构,拓展系统思考边界。

这篇文章还处于书写过程中,请大家耐心等待~

!!!!!!!!!!!!!!!!!!!!!!!!!!

踩内存

软硬件是由人类设计的,人非圣贤,无法设计出没有缺陷的软硬件;在开发过程中,常常会设计出各式各样的bug,其中踩内存就是比较隐晦难搞的bug,解决成本高昂,这也导致开发者常常望而生畏,绕道而行,降低软件质量。


案发现场

根据前篇分析,可以定位到问题现场;


运气好的话,这个现场就是问题发生的第一现场;


不过通常没有这么简单,通常案发现场和作案现场并不是一个现场,作案可能发生在好久之前,比如A无意拨动了一下开关,导致瞬间的掉电再上电,因为没有采用电源电容导致了动力系统中的冷却系统瞬间失效,冷却系统失效导致动力系统发热,动力下降,导致控制末端出现瞬间的异动,异动导致重物脱落,砸到了正在展览的汽车。


案发现场就是重物脱离,第一原因可能是吊绳老化,可是谁知道呢?


工作原理

在ARM64编程过程,经常会遇到比较麻烦的踩内存问题。即使会dump分析,仍然对它束手无策。

这很常见,比如A模块无意修改了B模块的变量c为0xFFFFFFFFu;,变量c是记录数组长度,这就会导致B模块访问数组是发生越界。

通常,我们会结合dump分析、trace分析、寄存器分析、指令分析,相关的知识包括调用规约、端序、工作模式、系统配置等。

分析工具

内存断点

内存保护工具:越界检查、栈溢出检查、

分析方法

递进式分析方法

概率分析法

分析过程

步骤1:错误码,分析错误原因

步骤2:异常返回地址,查找发生问题地址

步骤3:通过反汇编,查找发生问题地点

步骤4:通过???,查看调用路径trace

步骤5:查看栈上数据

步骤6:查看返汇编的指令

步骤7:倒推异常数据

步骤8:步骤4~7循环

步骤9:找到问题点

步骤10:修复

案例分析

常见问题和解决方法

1.数组越界

2.cache失效

3.野指针访问

4.结构体对齐

5.TBD

总结

规模越大、系统越复杂,出现问题越难排查,而本文描述的踩内存问题和信号中的时序问题一样难搞,这需要理论、工具、方法,更多的是经验。

参考

1.ARM A Profile Architecture Reference

2.ARM64架构系统寄存器

附录

微架构又称为微体系结构/微处理器体系结构。是在计算机工程中,将一种给定的 指令集架构在处理器中执行的方法。一种给定指令集可以在不同的微架构中执行。实施中可能因应不同的设计目的和技术提升而有所不同。计算机架构是微架构和指令集设计的结合。


Core微架构的处理器


NetBurst微结构的缺陷是IPC(每时钟执行的指令条数)表现不佳,同频情况下Pentium 4有时还不如前代的PentiumⅢ。频率提高后,功耗随之上升,功耗过高,影响了主频的进一步提高。为了改善这种情况,Intel采用了Core微架构。


Core微架构是Intel在Yonah微架构基础之上改进而来的下一代微架构,采取共享式二级缓存设计,两个核心共享4MB或2MB的二级缓存,其内核采用高效的l4级有效流水线设计,每个核心都内建32KB 一级指令缓存与32 KB 一级数据缓存,而且两个核心的一级数据缓存之间可以直接传输数据。每个核心内建四组指令解码单元,支持微指令融合与宏指令融合技术,每个时钟周期最多可以解码五条x86指令,并拥有改进的分支预测功能。每个核心内建五个执行单元,执行资源庞大。采用新的内存相关性预测技术。加入对EM-64T与SSE4指令集的支持,支持增强的电源管理功能,支持硬件虚拟化技术和硬件防病毒功能,内建数字温度传感器,还可提供功率报告和温度报告等,配合系统实现动态的功耗控制和散热控制。Core微架构处理器的内部结构如图1所示:


图1 Core微架构处理器的内部结构


Core微架构的处理器系列有用于桌面平台的Conroe、移动平台的Merom和服务器平台的Woodcrest;有Core处理器和Core 2处理器之分,从结构上又可分为单核Core Solo、双核Core Duo和Core 2 Duo以及四核的Core 2 Quad。在多核结构中耦合度的松紧决定四核协作效率的高低,而微架构则决定每个核心的运算效率、实际性能、功耗高低等关键的特性。Intel的Kentsfield/Yorkfield两代Core 2 Quad处理器都基于Core微架构。 [1]



使用微架构的原因

使用微架构有很多优势,但是同时也具有一定的风险。图2给出了一个简单的成本效益分析


图2 微架构成本分析表


由上图成本效益分析可以看到,在开发大型应用程序时,使用微架构可以获得最大收益。 [2]



Core微架构的优点

Core架构的优势体以下几个方面:


(1)拥有超宽的执行单元。在每个周期,Core架构的指令解码器可以同时发射四条指令,而AMD K8架构只能发射三条指令,换句话说,Core架构拥有更加出色的指令并行度。


(2) Core架构具有“微操作融合(Micro-p Fusion)”和“宏操作融合(Macro-p Fusion)”两项技术,可以对执行指令进行优化,通过减少指令的数量获得更高的效率,Intel表示这两项技术最多可带来67%的效率提升,这也是Core架构产品在低功耗状态下依然拥有强劲效能的主要秘密。


(3) Core微架构的SSE执行单元首度提供完整的128位支持。每个单元都可以在一个时钟周期内执行一个128位SSE指令,而在多个执行单元的共同作用下,Core架构核心可以在一个时钟周期内同时执行1 28位乘法、128位加法、128位数据载入以及128位数据回存,或者是可以同时执行四个32位单精度浮点乘法和四个32位单精度浮点加法,进而显著提升多媒体性能。


(4) Core微架构采用共享Cache设计。Cache资源利用率高于独占式设计,且多个核心可以高效协作。 [1]



XScale微架构处理器

XScale架构处理器是新一代为无线手持式应用产品开发的嵌入式处理器,是PCA开发式子台架构中的应用于系统与通信子系统中的嵌入式处理器。图3是XScale系统结构图:


图3 XScale系统结构图


(1)采用7/8级超级流水线:动态跳转预测;分支目标缓冲器BTB(BranchTargetBarfer)。


(2)支持多媒体处理技术:·新增乘/加器MAC;40位累加器;兼容ARMV5TE指令;特定DSP型协处理器CPO。


(3)指令快存(1-Cache):32KB。


(4)数据快存(D-Cache):32KB:可以重构为28KB片内RAM。


(5)微小数据快存(Mini-DCache):2KB。


(6)指令存储器管理单元IMMU:32路变换后备缓冲器TLB(快表)。


(7)数据存储器管理单元DMMU:32路变换后备缓冲器TLB(快表)。


相关文章
|
1月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
阿里云、平头哥与Arm联合举办的飞天技术沙龙在上海举行,聚焦Arm Neoverse核心优势和倚天710计算实例在大数据、视频领域的应用。活动中,专家解读了倚天710的性能提升和成本效益,强调了CIPU云原生基础设施处理器的角色,以及如何通过软件优化实现资源池化和稳定性平衡。实例展示在视频编码和大数据处理上的性能提升分别达到80%和70%的性价比优化。沙龙吸引众多企业代表参与,促进技术交流与实践解决方案的探讨。
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
|
16天前
|
传感器 物联网 数据中心
探索ARM架构及其核心系列应用和优势
ARM架构因其高效、低功耗和灵活的设计,已成为现代电子设备的核心处理器选择。Cortex-A、Cortex-R和Cortex-M系列分别针对高性能计算、实时系统和低功耗嵌入式应用,满足了不同领域的需求。无论是智能手机、嵌入式控制系统,还是物联网设备,ARM架构都以其卓越的性能和灵活性在全球市场中占据了重要地位。
20 1
|
7天前
|
物联网
arm架构和x86架构区别
arm架构和x86架构区别
|
1月前
|
消息中间件 存储 Apache
MQ产品使用合集之有RocketMQ arm架构的镜像吗
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
222 1
|
23天前
|
Ubuntu Windows
ubuntu 安装vnc_vnc4server arm架构
ubuntu 安装vnc_vnc4server arm架构
14 0
|
1月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
基于「倚天710自研芯片+CIPU云原生基础设施处理器」组合的倚天ECS实例为解决算力挑战提供新思路。
|
1月前
|
敏捷开发 数据可视化 物联网
云效产品使用常见问题之用ARM架构的机器意义不知道如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3天前
|
缓存 运维 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关是连接客户端与众多微服务群岛之间的桥梁。本文将深入探讨API网关的设计原则、核心功能以及在现代软件架构中的关键作用,同时分析其在实际应用中的效益和面临的挑战。
|
2天前
|
存储 监控 负载均衡
深入理解微服务架构中的服务发现机制
【6月更文挑战第25天】在微服务架构中,服务发现是确保各独立服务组件能够高效、可靠通信的关键环节。本文将探讨服务发现的基本原理、核心组件以及在现代云原生应用中的最佳实践,旨在为读者提供一套系统化理解和实现服务发现机制的指导思路。
|
3天前
|
存储 消息中间件 API
“论微服务架构及其应用”写作框架,软考高级,系统架构设计师
论微服务架构及其应用近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单块(Monolithic)软件架构面临着越来越多的挑战,已逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构模式(MicroserviceArchitecturePattern)逐渐流行,它强调将单一业务功能开发成微服务的形式,每个微服务运行在一个进程中;采用HTTP等通用协议和轻量级API实现微服务之间的协作与通信。这些微服务可以使用不同的开发语言以及不同数据存储技术,能够通过自动化部署工具独立发布,并保持最低限制的集中式管理。

热门文章

最新文章