¿Cuál es el comportamiento de los núcleos de la CPU?

12.09.2022

Cantidad de núcleos del procesador


Hace muchos años atrás los procesadores contenían un solo núcleo, el cual debía encargarse de todas las acciones al mismo tiempo, pero con el paso del tiempo y el avance en el terreno de la informática, comenzaron a surgir los procesadores que incluían dos o más núcleos, haciendo que las computadoras mejoraran notablemente su rendimiento y velocidad de proceso.

En este sentido, cabe destacar que cada núcleo es una unidad central de proceso separada e independiente, por lo que cuantos más núcleos posea un procesador, nos permitirá realizar mayor cantidad de tareas simultáneas en la computadora, es decir que cada unidad central de procesamiento realiza una tarea específica.

A modo de ejemplo podemos decir que si tenemos una computadora con un procesador de dos núcleos, al realizar dos tareas al mismo tiempo, como pueden ser navegar por internet y extraer un archivo, cada núcleo se encargará de ejecutar una de estas tareas, por lo que a mayor cantidad de núcleos será mayor el rendimiento del equipo.

Tipos de procesadores según cantidad de núcleos

En la actualidad existen equipos que incluyen hasta diez núcleos en un mismo procesador. A continuación te acercamos la lista de núcleos que se utilizan actualmente en la fabricación de procesadores, con los nombres con los cuales se los conoce:

Dual Core: dos núcleos. Quad Core: cuatro núcleos.
Hexa Core: seis núcleos. Octo Core: ocho núcleos.
Deca Core: diez núcleos. 

Paralelismo

El paralelismo es una función que realiza el procesador para ejecutar varias tareas al mismos tiempo, es decir puede realizar varias cálculos simultáneamente, basados en principio de dividir los problemas grandes para obtener varios problemas pequeños.

Es posible definirlo como la ejecución de diversas actividades simultáneamente en varios procesadores. En el caso de que sólo exista un procesador gestionando multiprogramación se puede decir que existe un pseudoparalelismo. Al hablar de paralelismo surge el concepto de concurrencia el cual se refiere a la existencia de varias actividades ejecutándose simultáneamente y necesitan sincronizarse para actuar de manera conjunta. Este es un concepto lógico ya que solo hace referencia a las actividades y no a la cantidad de procesadores. Existen cinco categorías de paralelismo con diferentes grados de granularidad.

Paralelismo a nivel del procesador

Sus siglas en ingles PLP (Process Level Parallesm).

Distintos proceso que se ejecutan en diferentes procesadores paralelos o en diferentes cores de un mismo procesadores. Clasificados de acuerdo al modelo de Flynn:

NIVELES DE PARALELISMO

El paralelismo puede estudiarse en diferentes niveles:

➢Trabajo: Dos programas pueden ejecutarse en paralelo

➢Tarea: Se consideran varias tareas independientes entre sí formando parte de un programa determinado. Es posible la interacción de las tareas

➢Proceso: Varios procesos componen una tarea. Son bloques con funcionalidad definida.

➢Variable: Puede darse a nivel de variables ya que varias instrucciones pueden ser ejecutadas en paralelo siendo el punto en conflicto las variables en común.

➢Bit: Todos los computadores usan paralelismo a nivel de bit

Paralelismo a nivel de instrucción:

Un programa de ordenador es, en esencia, una corriente de instrucciones ejecutadas por un procesador. Estas instrucciones pueden ser reordenadas y se combinan en grupos que luego se ejecutan en paralelo sin cambiar el resultado del programa. Esto se conoce como paralelismo a nivel de instrucción. Los procesadores modernos tienen tuberías de instrucciones de múltiples etapas. Cada etapa en la tubería corresponde a una acción diferente que el procesador lleva a cabo en el que la instrucción en esa etapa; un procesador con una tubería N-etapa puede tener hasta N diferentes instrucciones en diferentes fases de ejecución. El ejemplo canónico de un procesador segmentado es un procesador RISC, con cinco etapas: extracción de instrucción, decodificar, ejecutar, acceso a la memoria, y escribir de nuevo. El procesador Pentium 4 con una cartera de 35 etapas.

Este mecanismo consiste en romper el flujo secuencial de instrucciones para simultanear la ejecución de varias en el mismo procesador. Existen diferentes estrategias para lograrlo.
• Segmentación
• Superescalaridad
• Supersegmentación

Segmentación (Pipelining).

Es que se divide el proceso de ejecución de una instrucción en etapas de similar duración, con el objetivo último de procesar instrucciones simultáneamente, encontrándose cada una en su etapa de ejecución. Que N unidades funcionales del procesador estén trabajando a la vez, mejora el rendimiento del chip en circunstancias ideales.

MULTI THREADING.

Consiste en ejecutar al mismo tiempo dos o más threads de un programa, permitiendo que cada uno de estos threads sea planificado de la manera más conveniente en el procesador, es decir, aprovechando al máximo todos los recursos disponibles. Es equivalente a tener dos o más procesadores lógicos o virtuales en lugar de uno sólo.

MULTINÚCLEO:

Es aquel que combina dos o más microprocesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes.

SISD.

Arquitectura de simple construcción sobre simple dato. Serie en datos e instrucciones, arquitectura von neumann.

SIMD:

Un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una unidad de control que gobierna varias unidades aritmetico-logicas.

MISD:

Varios flujos de instrucciones y uno solo de datos. Arquitectura no implementada, consecuencia teórica de la clasificación. Superestructura pipeline, varios conjuntos de unidad de control más unidad aritmético lógica realizan partes de una operación sobre un flujo de datos.

MIMD:

Arquitectura multiprocesador con varios flujos tanto de instrucciones como de datos. Varios procesadores serie convencionales que manejan cada uno un flujo de instrucciones sobre un flujo de datos.

TIPOS DE PARALELISMO:

Interno o implícito:

Se programa en lenguaje secuencial y el compilador se encarga de paralelizar y asignar recursos. Queda oculta la arquitectura del computadora, aumentando su velocidad sin modificar su funcionamiento. Bajo aprovechamiento, aprovecha código secuencial. Ej: segmentación (pipeline) de funciones, división func.(proc. vectoriales)

Externo o explícito:

Se usan dialectos paralelos de programación. Queda visible al usuario. Mejor aprovechamiento a las posibilidades de la maquina, más trabajo para el programador, SIMD (computadores matriciales), MISD, MIMD.

Paralelismo según SW:

Depende del entorno de programación en dos facetas: herramientas de programación, S.O MPMD (multiple program-multiple data): cada procesador ejecuta programas distintos. Esta estructura suele ser del tipo maestro esclavo en la que un procesador coordina el trabajo al resto SPMD (single program-multiple data): el mismo programa es cargado en múltiples procesadores y se ejecuta sobre conjuntos de datos distintos

Paralelismo bit:

El aumento del tamaño de la palabra se reduce el número de instrucciones del procesador debe ejecutar para llevar a cabo una operación en variables cuyos tamaños son mayores que la longitud de la palabra.

Varias instrucciones

Mediante la emisión de varias instrucciones por cada ciclo de reloj, los procesadores logran mantenerlas en ejecución de manera simultánea. El promedio de instrucciones capaces de correr en simultáneo dependen del tamaño de emisión de instrucciones y del número promedio de etapas que tiene el pipeline.

Al igual que pipelining, el paralelismo en máquinas que emiten varias instrucciones puede administrarse, ya sea mediante software o hardware.

Por Software: VLIW (Very-Long-Instruction-Word, Palabra de Instrucción Larga) Poseen palabras de instrucciones más grandes de lo normal. Esto permite que sean codificadas para ser emitidas en un solo ciclo de reloj. El compilador decide qué operaciones se van a emitir en paralelo y codifica explícitamente la información en código de máquina.

Por Hardware: Máquinas Superescalares. Poseen un conjunto de instrucciones regular, con una semántica de ejecución secuencial ordinaria. Detectan de manera automática las dependencias entre las instrucciones y las emiten a medida que sus operandos se encuentran disponibles. Existen procesadores con ambas capacidades de administración.

Paralelismo de Datos

El modelo de paralelismo de datos se define como: Cada proceso trabaja sobre una parte diferente de la misma estructura de datos. Usa un enfoque Single Program Multiple Data (SPMD). La data es distribuida a través de los procesadores. Todo el pase de mensajes es transparente al programador. "La programación con un modelo de paralelismo de datos se satisface escribiendo un programa con directivas de paralelismo de datos y compilando el programa con un compilador de paralelismo de datos. El compilador convierte el programa en código estándar y llama una biblioteca de pase de mensajes para distribuir la data a todos los procesos".

Dependencia de Datos.

Al modificar el orden de ejecución de dos instrucciones que no posean variables en común, sus resultados nunca son afectados. Inclusive si se da lectura de la misma variable, la ejecución no se ve afectada. Los problemas se dan cuando se dan escrituras, ya que los resultados pueden ser alterados al modificar órdenes de ejecución. Existen tres tipos de dependencia de datos:

1. Dependencia verdadera: lectura después de escritura (RAW: read after write): la instrucción j lee antes de que i escriba con lo cual se da la lectura de un valor viejo. Es el tipo de conflicto de datos más común y se puede resolver mediante forwarding .

2. Antidependencia: escritura después de lectura (WAR: write after read): si luego de una escritura se da una lectura. Se lee un valor incorrecto o dato sucio. Es posible eliminarla si se da el almacenamiento de valores en ubicaciones distintas.

3. Dependencia de salida: escritura después de escritura (WAW: write after write): dos escrituras a la misma ubicación comparten una dependencia de salida. Al ocurrir el valor de la ubicación de memoria escrita tendrá un valor incorrecto ya que j escribe antes de que i lo haga con lo cual queda escrito un valor incorrecto.

A la antidependencia y la dependencia de salida se les llama dependencias relacionadas con el almacenamiento, y pueden eliminarse mediante el uso de distintas ubicaciones de memoria para almacenar valores distintos. Señalar que todas las dependencias de datos ocurren tanto para accesos a memoria como en accesos a registros.

Diferentes recursos.

Sucesos simultáneos: aquellos que se producen en el mismo instante de tiempo.

Sucesos solapados: los que se producen en intervalos de tiempo superpuestos

Granularidad: tamaño de tarea computable

Planificación: asignación de recursos a las tareas

Comunicación: sincronización de tareas dependientes.

Paralelismo de grano grueso: programa o trabajo y modulo proceso (menos paralelismo)

Paralelismo de grano medio: modulo proceso y task

Paralelismo de grano fino: bucle e Instrucción sentencia (más paralelismo)

Paralelismo a nivel de procesador: segmentación, división funcional, procesadores vectoriales
Paralelismo en multiprocesadores: memoria compartida, memoria distribuida

Paralelismo en multicomputadores: clusters, sistemas distribuidos

Conclusiones:

-El paralelismo a nivel de instrucción emplea una serie de técnicas avanzada para cumplir con su objetivo de agilizar la ejecución simultanea de instrucciones y esto se logra por las nuevas tecnologías que ha surgido en la parte arquitectura y por fuerza se implementa algoritmos de alto rendimiento que se aprovecha al máximo.

-El procesamiento permite realizar varias tareas como el ahorro de su tiempo de ejecución y que no todas las instrucciones pueden ejecutarse a la vez a ser dependiente de otras y esperar para su ejecución.

REFERENCIAS 

https://tecnologia-facil.com/que-es/que-son-nucleos-procesador/

https://sites.google.com/site/arquitecturadecomputadoresis/paralelismo-de-procesadores


¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar