在 X86 架构内,有多种复杂的指令集会将数种功能结合在一起。以 Intel 所发布文件中的“ ADD RAX, [ RBP+RSI ] ”为例子,它是将两件工作结合再一起的指令。可以将其解读成 RAX = RAX + LD[ RBP+RSI ]。也就是将资料从 RBP+RSI 中取出,并和 RAX 中的数值相加。 可想而知,此一解码器可以将这两个不同的工作拆开,分成取资料的指令以及数值相加的指令。解码后的结果,就和 RISC 的想法接近,断开复杂指令的锁链!此外,简单的 x86 指令也会被拆开来,重新组成硬件的底层指令。解析完的硬件指令,则有 micro-op 的别称。接下来,便会有一个 micro-op 的序列,储存解析后的指令。实际的 Front End 简图如下。
其中,有一个 Micro-op Cache 这个需要特别注意的元件。此元件是从 Intel Sandy Bridge 才加入。如其名,他是将过去曾经解码过的指令存起来的暂存内存。在 Sandy Bridge 中,此一元件最多可以储存 256 个 x86 指令,以及其对应的 micro-op。借由 Micro-op Cache,可以减少使用频繁之指令的解码,大大提升计算的效能。 至此,对于 Intel Skylake 的“内在美”已经做了充足的介绍。最后,附上完整版的 Skylake 微架构图。
(Source:Intel) Computer Architecture, Fifth Edition: A Quantitative Approach Computer Architecture, A Quantitative approach INSIDE 6TH GEN INTEL CORE: NEW MICROARCHITECTURE CODE NAMED SKYLAKE Intel’s Haswell Architecture Analyzed: Building a New PC and a New Intel (责任编辑:本港台直播) |