我正在读一些操作系统材料。我读到的这个短语让我有点困惑:“多核指的是一台计算机或处理器,它有一个以上的逻辑CPU核,并且可以同时执行多个指令。”
什么是“逻辑CPU核心”,它是处理器吗?它是对应于物理的,还是看到逻辑CPU核的操作系统,但实际上物理处理器比逻辑CPU核少?
发布于 2014-05-29 14:22:46
我猜它是指CPU的算术逻辑单元( 阿鲁 )。
任何处理器的ALU单元都是用于执行所有算术和逻辑操作的CPU pf部分。
发布于 2014-05-29 15:39:46
逻辑CPU核心包含单处理器的完整体系结构上下文。这是操作系统可以为其执行调度和控制体系结构状态的单元,例如异常地址(对于不硬连接的体系结构)。
有两种常见的情况下,它将不相对应一对一与一个物理核心。首先,一个物理核心可以实现多个虚拟处理器,例如英特尔的超线程.在这种情况下,操作系统调度程序应该知道虚拟处理器可能共享各种资源,如指令获取、指令调度硬件和执行单元,这通常意味着任务应该调度到不同的物理核上,以最大限度地提高性能。(这个问题在较小程度上也适用于共享L2缓存的不同核心。这种担忧与多CPU计算机的NUMA优化有关。)
在第二种情况下,虚拟机管理程序对硬件的虚拟化可以将任意数量的内核呈现给操作系统。虽然管理程序通常会使来宾OS看不到比硬件(例如,包括与硬件多线程相关的虚拟处理器)更多的逻辑处理器,但理论上,虚拟机管理程序可以向操作系统提供任意数量的处理器(就像操作系统可以通过时间切片向应用层表示任意数量的处理器一样)。在这样的软件虚拟化上下文中,虚拟机管理程序可能不会向操作系统公开处理器的性质,因此操作系统只能将它们视为用于调度的抽象单元。
硬件也可能实现多线程,而不为每个线程提供一个完整的虚拟处理器,这使这一划分变得更加复杂。例如,MIPS多线程应用程序特定扩展区分了虚拟处理元素(在体系结构状态方面作为不同处理器的行为)和线程上下文(在同一VPE中的线程之间共享系统协处理器)。更复杂的是,可以在VPEs之间迁移线程上下文。例如,一个物理处理器核可能有两个VPE和五个线程上下文,并且操作系统可能被允许将一个给定的TC分配给任何一个VPE,这样任何一个VPE都可以有一个到四个TCs。此外,如果可用空闲硬件线程(在叉的情况下),或者至少有一个线程仍然处于活动状态(在产生的情况下),则非特权软件可以在不涉及操作系统的情况下分叉和生成线程。
对于MIPS MT-ASE,操作系统一般只关注线程上下文,但如果对实际硬件配置有更全面的了解,则可以进行一些优化,如果将线程上下文视为虚拟处理元素,则可能会出现一些正确性问题。
发布于 2018-03-15 16:02:14
掌握一些背景知识可能会有所帮助:
处理器
处理器既可以描述单个执行核,也可以描述单个物理多核芯片。使用的上下文将定义该词的含义。例如,普通PC机应该只有一个处理器
晶片
芯片是指计算机上的物理集成电路。芯片通常是指可以是单核或多核技术的执行单元.
套接字是指计算机主板上接受单个物理芯片的物理连接器。许多主板可以有多个插座,反过来,可以接受多核芯片。
核心
自多核技术出现以来,如双核和四核等.本质上,核心包括包含L1缓存和功能单元的逻辑执行单元。核心能够独立执行程序或线程。超级计算机被列为拥有数千个核心。
超线程化
超线程技术是英特尔的一项技术,最初先于多核系统,被用来使单个核心逻辑上显示为同一芯片上的多个核。超线程通过尽可能在多个核之间共享计算工作量来提高性能,允许操作系统一次调度多个进程。有关更多信息,请参见英特尔超线程技术。
物理/逻辑核心
如图所示,您有2个套接字,每个套接字有4个内核,每个核心当前可以执行4个线程(由于超线程)。在本例中,如果在Linux上使用命令lscpu,您可能会看到您有32个CPU。实际上,您有一个芯片、两个套接字、八个核心和32个CPU(从Linux的角度来看)。
https://stackoverflow.com/questions/23935539
复制相似问题