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

Would it be useful to create hardware accelerators for translating binaries between ISAs?

是否可以创建一个硬件加速器来帮助仿真软件翻译(重新编译)二进制文件。 G。 x86 到 ARM 的实时速度比纯软件可以更快?

假设这是可能的并且具有成本效益,制造这些加速器的公司是否会被 Intel/AMD 起诉专利侵权?

Is it possible to create a hardware accelerator that could help emulation software translate (recompile) binary files from e. g. x86 to ARM in real time faster than in could be done purely in software?

是的。许多现代 CPU 无论如何都会将指令翻译成其他东西(例如,从 80x86 指令翻译成微操作);所以唯一的主要区别(源语言和目标语言除外)是在之后存储翻译后的代码。

主要问题是它会很困难而且毫无价值。具体来说,simple/direct 翻译将是未优化的,生成的翻译代码将有严重的性能问题;加速器尝试优化生成的代码的次数越多,复杂性就会增加,直到达到 "too hard to implement in hardware and still not optimized enough"。例如考虑内存排序 - ARM 主要是 "weakly ordered" 而 80x86 主要是 "strongly ordered",这意味着 simple/direct 转换将在每次加载和存储之前插入 fences/barriers,并试图弄清楚是否可以跳过 fence/barrier 将非常复杂。

另一个主要问题是经济学。需要大量资金来资助研究和设计、验证芯片是否正常工作、支付更好的制造工艺、文档和营销(试图让人们实际使用芯片)等的成本; sustainable/profitable 芯片需要足够 "units sold * profit per chip" 来支付这些成本。

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

Assuming it is possible and cost-effective, could a company that makes those accelerators be sued by Intel/AMD for patent infringement?

这应该是2个问题:

  • 你会被起诉吗?是的,任何人几乎都可以起诉您。请注意(至少在理论上)有一种使用 "potentially frivolous" 法律 suit/s 破坏公司利润和声誉的策略。考虑将另一笔大量的 $$ 汇集到几年的律师中,同时将大量的 $$ 汇集到 "death spiral towards bankruptcy made worse (because customers are uncertain about the patent infringement case)".

  • 如果你被Intel/AMD起诉专利侵权,Intel/AMD会赢吗?我不知道(我不是律师);但我希望这取决于您的产品。如果你只支持那些太旧以至于任何专利都会过期的东西(例如,可能是“没有 SSE/AVX 的 32 位 80x86”,类似于 Microsoft/Qualcomm 正在用他们的软件翻译器做的事情)那么你' d 有更好的机会避免专利侵权(并且任何人想要只支持过时的东西的芯片的机会更小)。