【Linux】CPU指令集:ILP、MMX、SSE、AVX
1、ILP
1.1 简介
指令集并行(Instruction-Level Parallelism,简称ILP)指在程序执行过程中,通过同时执行多条指令来提高整体性能的技术。它的核心思想是利用指令之间的依赖关系,找出可以同时执行的独立指令,并进行并行执行。
ILP并不是一个具体的指令集,而是一个处理器设计概念
在处理器内核中一般会有多个执行单元,比如算术逻辑单元、位移单元等。
在引入并行指令集之前,CPU在每个时钟周期内只能执行单条指令,也就是说只有一个执行单元在工作,其他执行单元处于空闲状态;
在引入并行指令集之后,CPU在一个时钟周期内可以同时分配多条指令在不同的执行单元中执行。
1.2 实现方式
1)流水线(Pipeline):
流水线是一种将每条指令分解为多个步骤,并让各个步骤重叠执行的技术。通过流水线,可以在同一时间内执行不同指令的不同阶段,如取指、译码、执行和写回等。
2)超标量(Superscalar):
超标量处理器能够在同一时间周期内并行执行多条指令。这通常通过增加处理器的功能单元(如算术逻辑单元ALU、浮点单元FPU等)和指令译码器来实现。
3)乱序执行(Out-of-Order Execution):
乱序执行是指处理器在执行指令时,不严格按照程序中指令的顺序来执行。处理器会动态地调整指令的执行顺序,以优化执行效率。
原文地址:https://blog.csdn.net/u010168781/article/details/140585118
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!