超标量
最近在调一个性能问题,过程中惊讶的发现,cpu竟然能够在一个时钟周期里执行多条指令。仔细google后发现还是我土了,这是cpu早就支持的一项技术,叫做superscalar,超标量。其实上学时计算机组成原理就翻来覆去的说这个概念,我一直理解为,超标量就是一条指令可以操作多条数据,进而达到一个时钟周期内达到几条指令的效果,而这其实是SIMD所实现的功能。写了个测试程序仔细研究了下。一个for循环在编译器不开优化选项的情况下,大致翻译成六条指令[code] for(unsigned i=0; i<0xffffffff; ++i);00FC1040 mov dword ptr [i],0 00FC1047 jmp test_cpu+42h (0FC1052h) 00FC1049 mov eax,dword ptr [i] 00FC104C add eax,1 00FC104F mov dword ptr [i],eax 00FC1052 cmp dword ptr [i],0FFFFFFFFh 00FC1056 jae test_cpu+4Ah (0FC105Ah) 00FC1058 jmp test_cpu+39h (0F...