在X86处理器中,译码单元的工作就是将X86指令翻译成类似RISC的micro operations(微操作),简称uop。
X86指令是变长编码,指令长度从1~15bytes不等,根本不知道哪几个bytes是第一条指令的,哪几个bytes是第二条指令的,也就无从解起。
Intel处理器采用多级译码流水线的方式来实现译码。第一级先检测出指令的起始和结束位置,第二级将指令解码为uop。
一条x86 CISC指令通常对应多条uop。当一条CISC指令生成的uop数目多于4条时,就将这些CISC指令对应的uop存储在micro-ROM(uROM)中,解码时使用查表的方式从micro-ROM中得到,这样就简化了复杂的指令译码过程。