X86 创建用于在ISA之间转换二进制文件的硬件加速器是否有用?

X86 创建用于在ISA之间转换二进制文件的硬件加速器是否有用?,x86,arm,hardware-acceleration,X86,Arm,Hardware Acceleration,有没有可能创建一个硬件加速器来帮助仿真软件翻译(重新编译)来自e。Gx86到ARM的实时速度比中快,完全可以通过软件实现吗 假设这是可能的,而且成本效益高,那么一家生产这些加速器的公司会因为专利侵权而被英特尔/AMD起诉吗 有没有可能创建一个硬件加速器来帮助仿真软件翻译(重新编译)来自e。Gx86到ARM的实时速度比中快,完全可以通过软件实现吗 对。不管怎样,许多现代CPU都会将指令转换为其他指令(例如,从80x86指令转换为微操作);因此,唯一的主要区别(源语言和目标语言除外)是将翻译后的代码

有没有可能创建一个硬件加速器来帮助仿真软件翻译(重新编译)来自e。Gx86到ARM的实时速度比中快,完全可以通过软件实现吗

假设这是可能的,而且成本效益高,那么一家生产这些加速器的公司会因为专利侵权而被英特尔/AMD起诉吗

有没有可能创建一个硬件加速器来帮助仿真软件翻译(重新编译)来自e。Gx86到ARM的实时速度比中快,完全可以通过软件实现吗

对。不管怎样,许多现代CPU都会将指令转换为其他指令(例如,从80x86指令转换为微操作);因此,唯一的主要区别(源语言和目标语言除外)是将翻译后的代码存储起来

主要的问题是,这将是困难和毫无价值的。具体来说,简单/直接翻译将是未优化的,并且生成的翻译代码将有严重的性能问题;加速器越是试图优化生成的代码,复杂度就越高,直到“难以在硬件中实现,而且仍然没有得到足够的优化”。举个例子,考虑内存排序的ARM大部分是“弱排序”,80x86大部分是“强排序”,这意味着简单/直接翻译会在每次加载和存储之前插入栅栏/屏障,并且试图找出是否可以跳过栅栏/屏障会非常复杂。 另一个主要问题是经济学。研究和设计、验证芯片是否正常工作、更好的制造工艺、文档和营销(试图让人们实际使用芯片)等方面的成本都需要花费大量美元;为了可持续/盈利,芯片需要足够的“售出单位*每芯片利润”来支付这些成本

当然,这些问题结合起来形成了一个反馈回路(没有足够的美元来改善它,导致没有人想要它,这导致没有销售和利润,并且变得没有足够的美元来改善它),这可能会成为一个走向破产的死亡螺旋

假设这是可能的,而且成本效益高,那么一家生产这些加速器的公司会因为专利侵权而被英特尔/AMD起诉吗

这应该是两个问题:

  • 你会被起诉吗?是的,你几乎可以被任何人起诉。请注意(至少在理论上)有一种策略,即利用“潜在的无聊”诉讼来破坏公司的利润和声誉。考虑将另一笔巨额美元投入到几年的律师中,同时将大量的美元投入到“破产螺旋”中,使破产变得更糟(因为客户对专利侵权案件不确定)。
  • 如果你因专利侵权被英特尔/AMD起诉,英特尔/AMD会胜诉吗?我不知道(我不是律师);但我想这取决于你们的产品。如果您只支持那些旧到任何专利都会过期的东西(例如,可能是“32位80x86,没有SSE/AVX”,类似于Microsoft/Qualcomm使用其软件转换器所做的),那么您就有更好的机会避免专利侵权(更糟糕的是,任何人想要的芯片只支持过时的东西)


第一个问题可能对电子SE更好。第二个问题可能对law更好。SEUnlikely;大部分时间都花在运行热循环上,这些热循环只翻译了一次,但运行了很多次;您希望一个好的软件优化器花时间优化循环,使其高效运行。快速翻译就像是第一关,而不是第一关优化的JIT。可能可以构建硬件,使其首先通过更快的速度,但是通过设备驱动程序对一个进行I/O,与在核心上运行的纯软件相比,不太划算。