平时说的CPU都由运算器+控制器+缓存组成,那多核CPU是如何处理多线程的问题的呢
?多核中的核,每个核都由自己的运算器和控制器以及缓存,但是共用总线的么??
要看具体的架构。
以Intel Core i7来说,它的每个内核拥有4条独立的流水线,每条流水线有17个工位。每个CPU又拥有4个(现在也有6个、8个内核的版本,移动平台也有2个内核的版本)内核。
因此理论上来说,相当于有16个运算器构成。至于控制器,在现代处理器中包括译码器、指令调度器、分支预测、内存控制器等很多独立的部分。
Core i7每个内核拥有两套独立的寄存器,以便实现超线程所需要的两套AS(架构状态),并且每个内核有独立的一级缓存和二级缓存,整个芯片共用8MB的三级缓存。
内核和内核之间使用QPI总线连接。所以不止一条总线。
就是说每个每个核都有自己的运算器和控制器以及寄存器么?多线程中,每个线程执行的下一条指令的所在地址都由处理该线程的核的控制器控制的么?
还是说整个CPU处理的下一条指令的地址是由统一的一个控制器分发下来的?
每个cpu核心相当于一个独立的cpu,明白么?
处理器执行下一条指令是由pc寄存器决定的。
你怎么什么都不懂呢?我告诉你了,每个内核相当于独立的一个CPU,甚至在超线程处理器上,每个内核有两套寄存器,有两套AS。
处理器执行什么指令,是PC寄存器决定的。