1 votos

¿Peline y paralelismo real?

He leído varios artículos que dicen que la CPU tiene la ALU (y otras pequeñas unidades de ejecución específicas), la Unidad de Control y los Registros y bueno otros buffers/pipelines, buses internos etc.

En Unidad de control :

La unidad de control implementa la arquitectura de la CPU. Realiza las tareas de obtención, descodificación, gestión de la ejecución y, a continuación, almacenamiento los resultados.

Estudiar concepto de tubería, y lo que entiendo es que al menos dos pasos:

1. Fetch,Decode--->CONTROL UNIT

2. Execute-------->ALU and OTHER EXECUTE UNITS

Ambos pasos SE REALIZAN EN PARALELO. Es decir, mientras la CPU ejecuta una instrucción, al mismo tiempo se obtiene y descodifica otra.

¿Estoy en lo cierto? ¿O la unidad de control y la unidad de ejecución funcionan una tras otra como una especie de conmutación entre ciclos de reloj?

2voto

marco Puntos 21

Sí. Esta es exactamente la ventaja de utilizar una tubería. El ejemplo más sencillo de la vida real es una lavandería.

Cuando acabas de llegar, tienes ropa sucia que quieres "procesar". Pones el primer grupo de ropa dentro de la lavadora y esperas a que termine. Cuando está lista, coges el primer grupo de ropa y lo metes todo en la secadora y vas cogiendo y cargando más ropa en la lavadora en paralelo. Cuando la secadora termina su trabajo, inicias el "ciclo de plegado", liberando la secadora.

Creo que te haces a la idea de que mientras doblas puedes cargar más ropa en la lavadora y secar más ropa de la lavadora en paralelo.

La idea principal en ambos casos, procesador y lavandería, es similar: se puede hacer más en menos tiempo realizando trabajos en paralelo.

Por el contrario, un procesador sin pipeline tiene que esperar a que termine la ejecución para obtener otra instrucción. Utilizando de nuevo la analogía de la lavandería, es como si sólo se empezara a lavar otro grupo de ropa después de doblar toda la ropa del primer grupo, perdiendo tiempo en el medio.

0voto

GSerg Puntos 33571

Sí, en una canalización de hardware, todos los pasos se producen en paralelo.

0voto

ozmank Puntos 127

http://en.wikipedia.org/w/index.php?title=File:Intel_Core2_arch.svg&page=1

En realidad, hay operaciones en serie y en paralelo en una tubería para mantener la concurrencia de la caché y las instrucciones de precarga y predecodificación en un bus de 128 bits. La profundidad de cada nivel de bus, incluyendo 2 niveles de caché, a medida que se hace más profundo, aumenta la latencia, pero también mejora el tiempo de acceso cuando se accede frecuentemente desde la caché (lo que se denomina hits de caché). Cuando un objeto está bloqueado para una E/S y otro hilo quiere acceder al mismo objeto, la gestión de recursos bloquea los permisos a las peticiones de escritura o bloquea el objeto hasta que esté libre. El aumento del tamaño de la caché permite retrasar menos este suceso frecuente en operaciones paralelas, añadiendo retardo en serie o reordenando las peticiones, cuando no es compartible. Si observas la ejecución de código windows usando procmon.exe, muchos programas mal escritos experimentarán fallos rápidos de E/S seguidos de un éxito normal de E/S. (no solo windows)

Los núcleos paralelos deben gestionarse con subprocesos separados para evitar bloqueos simultáneos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X