怡心湖

复合指令集核心处理器的设计简析

如何在单一指令集的基础上实现多指令集异构系统?程序在不同指令集核心之间的迁移是一个非常困难而且开销巨大的工作。不同的指令集之间具有极大的差异,主要包含以下方面:不同的机器码、不同的数据格式、不同的寄存器集合、不同的堆栈框架布局以及其他部署问题(多供应商的许可证、法律障碍、验证开销、应用程序二进制接口(ABD)的不同、异构内存模型一致性等)。于是我们提出了一个大胆的想法:使用一个指令集的超集,能够提供所有需要的指令,这个集合是由原有不同指令集的子集组合而成,这个子集只需要完成一部分工作,多个子集组合在一起成为一个异构系统。这就是复合指令集异构系统的设计,其特点在于:去除了绝大多数二进制兼容问题(几乎不再需要二进制翻译);具有更多的细粒度的指令集选项,之前几乎都是在ARM、Thumb和x86-64之间进行选择,而现在我们可以拥有更广的选择范围;消除了一些非技术层面的问题,如许可证、测试、内存一致性模型等问题。

此文由 怡心湖 编辑,若您觉得有益,欢迎分享转发!:首页 > 常识论 » 复合指令集核心处理器的设计简析

()
分享到:

相关推荐