Comprender la CPU física y la CPU lógica

Este es un artículo abreviado sobre el significado real de las CPU físicas y lógicas y las diferencias entre ellas.

En primer lugar, el término CPU se usa de manera muy vaga y vaga en Internet, ya menudo se usa para referirse a procesadores, núcleos o subprocesos de hardware. Pero en términos generales, Cores es un nombre correspondiente más preciso para CPU.

Veamos primero algunos términos:

  • El procesador es un chip físico montado en el zócalo del sistema, que contiene una o más CPU que se utilizan para implementar núcleos o subprocesos de hardware.
  • Core es una instancia de CPU independiente ubicada en un procesador de múltiples núcleos. El uso del núcleo para extender el procesador se denomina multiprocesamiento a nivel de chip.
  • Hardware Thread es una arquitectura de CPU que admite la ejecución simultánea de varios subprocesos en cada núcleo, y cada subproceso se ejecuta como una instancia de CPU independiente. Este método de extensión se llama multiproceso.
    Inserte la descripción de la imagen aquí
    Ahora que conocemos la terminología requerida, CPU física significa el núcleo físico real en el procesador actual. El hecho de que el subproceso múltiple del núcleo esté habilitado no afecta la cantidad de CPU físicas en el procesador. En resumen, la CPU física corresponde a los núcleos físicos reales (Cores) en el procesador. El procesador único que se muestra en la figura anterior tiene 4 núcleos físicos.
    La CPU lógica se refiere a la capacidad de cada núcleo para realizar 2 o más tareas al mismo tiempo. Esto se logra habilitando el hyperthreading en el núcleo. Cada núcleo físico se puede dividir en varios núcleos lógicos habilitando el hyperthreading. En la figura anterior, aunque solo hay 4 núcleos físicos, al habilitar el hyperthreading en cada núcleo, el sistema los tratará como 8 CPU lógicas.

La figura anterior corresponde a la siguiente descripción detallada:

1 procesador (procesador), 4 núcleos físicos (núcleos), 8 núcleos lógicos. En otras palabras, 1P4C, cada núcleo tiene 2 hilos.

Puede usar el siguiente comando para verificar estos detalles en el sistema: lscpuInserte la descripción de la imagen aquí
A continuación se muestra la información relevante que obtuve de la salida anterior [1P2C-2 subprocesos por núcleo, 4 CPU lógicas].
Socket (s) de CPU: 1 -> 1
Núcleo (s) de procesador por socket: 2 -> 2 núcleos (2 en total)
Hilo (s) por núcleo: 2 ->
CPU (s) de doble subproceso ): 4 -> Se obtiene un total de 4 CPU lógicas 4 CPU
lógicas por -> 2 núcleos X 2 subprocesos
Para mayor claridad, demos otro ejemplo:

Inserte la descripción de la imagen aquí
Aquí está la salida anterior: [2P8C - con 2 subprocesos por núcleo, 16 CPU lógicas]
Zócalos: 2 -> 2 procesadores
Núcleos por zócalo: 4 -> 4 núcleos por procesador (2X4 = 8 núcleos totales)
Hilos por núcleo: 2 -> 2
CPU roscadas : 16 -> 16 CPU lógicas 16 CPU
lógicas llegan por -> 2 procesadores X 4 núcleos / procesador X 2 subprocesos / núcleo

Espero poder ayudarte!

Recomiende su propio grupo de intercambio de tecnología Linux, C / C ++: [960994558] He compilado algunos buenos libros de aprendizaje, preguntas de entrevistas de grandes empresas y materiales de video de enseñanza de tecnología popular para compartir (incluidos C / C ++, Linux, Nginx, ZeroMQ , MySQL, Redis, fastdfs, MongoDB, ZK, medios de transmisión, CDN, P2P, K8S, Docker, TCP / IP, coroutine, DPDK, etc.), ¡puede agregarlo usted mismo si lo necesita! ~
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_52622200/article/details/113867101
Recomendado
Clasificación