一种从x86处理器架构到ARM处理器架构异构应用迁移方法技术

技术编号:33647586 阅读:14 留言:0更新日期:2022-06-02 20:24
本发明专利技术公开了一种从x86处理器架构到ARM处理器架构异构应用迁移方法,包括:迁移准备、架构及功能模块恢复、应用迁移和应用恢复及性能优化。所述迁移准备部分包括可行性研究、软件技术栈分析和迁移策略;所述架构及功能模块恢复部分包括源代码识别与标识、源代码建模、源架构建模和源功能模块建模;所述应用迁移部分包括迁移实施和应用功能保护;所述应用恢复及性能优化部分包括架构建模、功能模块建模、一致性检测和性能优化。本发明专利技术公开的方法,高效简单地帮助开发人员完成从x86处理器架构将应用迁移至ARM处理器架构,帮助开发人员提炼迁移流程,降低工作量,提升迁移成功率。提升迁移成功率。提升迁移成功率。

【技术实现步骤摘要】
一种从x86处理器架构到ARM处理器架构异构应用迁移方法


[0001]本专利技术涉及软件工程领域,具体涉及一种从x86处理器架构到ARM处理器架构异构应用迁移方法。

技术介绍

[0002]随着云原生等相关概念不断提出,IT技术的不断发展,云时代已经全面到来。云计算有了更为广泛的应用。随之而来的是对算力进一步的追求。算力已然成为新的生产力,伴随着5G、AI等新技术的兴起,市场不仅需要通用算力更需要异构算力。在此背景下x86处理器架构的弊端不断凸显,其功耗大,通用寄存器规模小、指令复杂、寻址范围小和硬件资源利用率低,是算力提升的瓶颈。使得市场需要寻找新一代算力平台。ARM处理器架构开始进入各大厂商视野。经过不断的发展,ARM处理器架构已经成为下一代算力平台最有力的竞争者之一。
[0003]ARM处理器架构作为未来重要的处理器架构,其研究和应用价值日渐凸显。与此同时,完善的软件生态能够在ARM处理器架构的硬件生态下创造战略优势、快速适应不断变化的业务需求以及提供更高的可靠性和可扩展性。但在过去的几十年中x86处理器架构一直占据市场主导地位,软硬件的发展基本上都是基于x86处理器架构。由于ARM处理器架构与x86处理器架构本质的不同导致两者软硬件无法共用。
[0004]基于新处理器架构的软件设计开发需要消耗大量的工作量,给开发团队带来极大的负担。应用迁移有时候是最佳的选择。将基于x86处理器的架构的成熟软件迁移至ARM处理器架构能够极大的降低工作量,但据本文所知目前没有针对异构应用迁移的理论指导,应用迁移的工作大部分基于个人的经验,基于个人经验的迁移工作往往导致迁移效率较低,迁移后软件质量较差。

技术实现思路

[0005]为了解决上述问题与挑战,本专利技术提出了针对x86处理器架构应用迁移至ARM处理器架构一种异构应用迁移方法,帮助开发者们从x86处理器架构迁移应用至ARM处理器架构。
[0006]为了实现上述目的,本专利技术的技术方案如下,一种从x86处理器架构到ARM处理器架构异构应用迁移方法,所述方法包括以下步骤:
[0007]步骤1:迁移准备,对迁移目标进行可行性研究、软件技术栈分析,制定迁移策略;对迁移应用进行可行性分析,软件技术栈分析,平衡应用迁移的收益与成本,制定合理的迁移策略;
[0008]步骤2:架构及功能模块恢复,对迁移项目源代码进行识别与标识,进行源代码建模,通过源代码模型建立源架构模型和源功能模块模型;对源代码进行统一的标识,建立一致的理解;
[0009]步骤3:应用迁移,根据制定的迁移策略进行应用迁移实施,实施中对应用功能进
行保护;
[0010]步骤4:应用恢复及性能优化,对迁移完成的应用进行架构建模和功能模块建模,与源架构模型和源功能模块模型进行一致性检测,检查不一致的地方,对完成检测的应用测试性能进行性能优化
[0011]步骤1:迁移准备,具体步骤包括:
[0012](1

1)先收集本地源设备以及迁移目标设备软硬件信息,硬件方面的信息主要是收集芯片和服务器的型号,分析两者性能差异,是否满足应用需求,其次是收集软件信息,包括操作系统、虚拟机、中间件、编译器和上层软件等。
[0013](1

2)充分利用收集的信息评估哪些应用需要迁移,并不是所有应用都需要迁移,也并不是所有应用都能够迁移,评估迁移的成本与收益,确保迁移的工作能够带来足够的收益。
[0014](1

3)进行技术栈分析,需要迁移的软件采用什么技术栈开发,需要的详细运行环境。具体过程是调查需要迁移的软件开发语言,所用开发框架,软件运行需要的内存,硬盘存储,配套的运行环境。如JDK,调用的外部程序等。
[0015](1

4)根据技术栈分析,制定迁移策略,策略需要考虑必要的迁移步骤,替代的迁移计划,需要的工作量与成本。解释性语言如Java/Python等,只需要替换对应ARM处理器架构版本的JDK或是PVM虚拟机。而编译型语言如C/C++,GO等则需要进行重新编译。调用的外部程序换成支持ARM处理器架构版本,基于此制定迁移策略。
[0016]步骤(1

1)可行性研究需要评估迁移源应用带来的好处和后果。可行性研究关键的问题是:要迁移的设备软硬件信息,进行迁移准备的第一步是收集本地源设备以及迁移目标设备软硬件信息。硬件方面的信息主要是收集芯片和服务器的型号,分析两者性能差异,是否满足应用需求。其次是收集软件信息,包括操作系统、虚拟机、中间件、编译器和上层软件等。其中上层软件又可以分为开源软件、自研软件和商用软件等。
[0017]步骤(1

2)迁移需要的成本与收益,充分利用收集的信息评估哪些应用需要迁移,并不是所有应用都需要迁移,也并不是所有应用都能够迁移。例如部分商业软件无法自主手动迁移,联系厂商获取对应ARM处理器版本或是寻到类似的软件替换不失为更好的选择。评估迁移的成本与收益,确保迁移的工作能够带来足够的收益。
[0018]步骤(1

3)技术栈可以简单分为底层的CPU芯片。中间层的运行环境,包括:OS、虚拟机和编译器等。上层的应用层,这些应用主要为:开源软件、自研软件和商业软件。软件技术栈分析关注问题:需要迁移的软件采用什么技术栈开发,需要的详细运行环境。例如,软件采用的开发语言,不同的开发语言会直接影响迁移策略。解释性语言如Java/Python等,只需要替换对应ARM处理器架构版本的JDK或是PVM虚拟机。而编译型语言如C/C++,GO等则需要进行重新编译。越详细的技术栈分析能够制定更合理的迁移计划,保障迁移的成功。需要强调的是,软件迁移是一个漫长和危险的过程,软件技术栈分析越充分越能降低迁移失败的风险。
[0019]步骤(1

4)迁移策略的过程是平衡成本、效率和质量的过程。策略需要考虑必要的迁移步骤,替代的迁移计划,需要的工作量与成本。例如,当完成成本评估后,迁移成本过高难以承受,寻找相似软件代替迁移会是更好选择。此外,还需要兼顾迁移效率与迁移质量,迁移效率通常是指开发一些特定的自动化工具和脚本帮助开发者们完成相同的重复性工
作降低工作量,例如IP设置。但自动化工具和脚本的开发本身是额外的工作量,需要平衡。另外迁移需要制定一些方案,保证软件质量,不能一味最求成本与效率,需要制定一些措施,例如回滚策略。最后,在制定迁移策略时,本框架建议迁移分块实施,特别是针对大型软件系统,完整的迁移难以平衡成本、效率和质量。大部分企业经验是将软件分成几块,每块单独进行迁移。特别是微服务,可以以单个微服务为单位进行迁移,制定迁移计划。
[0020]步骤2:架构及功能模块恢复,具体如下:
[0021](2

1)识别和标识需要迁移应用的源代码。
[0022](2

2)对源代码进行高级工件建立(通常为UML图),简化应用的理解。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种从x86处理器架构到ARM处理器架构异构应用迁移方法,其特征在于,所述方法包括以下步骤:步骤1:迁移准备,对迁移目标进行可行性研究、软件技术栈分析,制定迁移策略;对迁移应用进行可行性分析,软件技术栈分析,平衡应用迁移的收益与成本,制定合理的迁移策略;步骤2:架构及功能模块恢复,对迁移项目源代码进行识别与标识,进行源代码建模,通过源代码模型建立源架构模型和源功能模块模型;对源代码进行统一的标识,建立一致的理解;步骤3:应用迁移,根据制定的迁移策略进行应用迁移实施,实施中对应用功能进行保护;步骤4:应用恢复及性能优化,对迁移完成的应用进行架构建模和功能模块建模,与源架构模型和源功能模块模型进行一致性检测,检查不一致的地方,对完成检测的应用测试性能进行性能优化。2.根据权利要求1所述的一种从x86处理器架构到ARM处理器架构异构应用迁移方法,其特征在于,步骤1:迁移准备具体如下:(1

1)先收集本地源设备以及迁移目标设备软硬件信息,硬件方面的信息主要是收集芯片和服务器的型号,分析两者性能差异,是否满足应用需求,其次是收集软件信息,包括操作系统、虚拟机、中间件、编译器和上层软件;(1

2)充分利用收集的信息评估哪些应用需要迁移,评估迁移的成本与收益,确保迁移的工作能够带来足够的收益;(1

3)进行技术栈分析,需要迁移的软件采用什么技术栈开发,需要的详细运行环境;(1

4)根据技术栈分析,制定迁移策略,策略需要考虑必要的迁移步骤,替代的迁移计划,需要的工作量与成本。3.根据权利要求1所...

【专利技术属性】
技术研发人员:张贺吕骏张洋周鑫荣国平邵栋
申请(专利权)人:南京匡吉信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1