Story Transcript
Arquitecturas vectoriales, SIMD y extensiones multimedia William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo. Andrew S. Tanenbaum, Organización de Computadoras 4ta. ed., Capítulo 8: Arquitecturas de computadoras paralelas. Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced Computer Architecture and Parallel Processing. Willey.
Taxonomía de Flynn
Procesadores vectoriales
Definición Implica un repertorio de instrucciones (ISA) con instrucciones que operen sobre vectores (arreglos unidimensionales de datos), en contraste con los procesadores escalares, que operan sólo sobre un único elemento. Explotación del paralelismo en los datos. No concurrencia. El concepto está presente en diversas tecnologías. Supercomputadoras de los 70s. Cray. UF segmentadas. Array processors de los 90s. Connection Machines. Múltiples UF simultámeas (SIMD). Extensiones multimedia de los procesadores de propósitos generales. Desde el Pentium 1997. Aceleradores gráficos o GPU (Graphics processing unit).
Procesadores vectoriales
Alternativas
Procesadores vectoriales
Supercomputadoras de los 70s Se trata de procesadores con unidades vectoriales segmentadas, además de unidades escalares. Cada unidad vectorial dispone de un banco de registros vectoriales (cada uno con 64 o 128 words) y una unidad funcional vectorial fuertemente segmentada. Dispone de instrucciones escalares clásicas e instrucciones vectoriales (load, store, alu, mixed). El usuario puede operar directamente sobre vectores en assembler (hoy utilidad relativa).
CD Cyber 205 Cray IBM 3090 Nec SX Hitachi S8000 Fujitsu VP
Procesadores vectoriales
IBM 3090 con unidad vectorial Unidad vectorial, compuesta por: Unidades funcionales segmentadas Registros vectoriales
Procesadores vectoriales
ISA Dispone, además de registros de m palabras, de algunos registros especiales: VL (vector length, l SSE3 P4/Athlon 2004 –> SSE3 Core2 2006, Advanced Digital Media Boost 128 bits/1c Además VIS en UltraSPARC, MDMX para MIPS y MAX-2 para HP PA-RISC.
Extensiones multimedia (cont) MIPS lanzó en 1996 MDMX (MIPS Digital Media Extensions). 32 nuevos registros de 64 bits (media registers), mapeados sobre los de punto flotante, para ahorrar hardware; y un acumulador de producto extendido de 192 bits. Los media registers pueden almacenar dos nuevos tipos de datos: octo byte (OB) y quad half (QH) que contienen 8 bytes (8-bit) y 4 media-palabra (16-bit) integers. Variantes de las intrucciones existentes, incluyendo aritmética de saturación.
Extensiones multimedia PF 128 bits
Nuevas extensiones multimedia
Streaming SIMD Extension 5 (SSE5) FMA4 instruction set, fused multiply–add Fused multiply accumulate (FMACxx) instructions (FMA4 extension: single rounding, four operands d = a + b * c) Ver: https://www.pgroup.com/lit/articles/insider/v3n3a4.htm
Advanced Vector Extensions (AVX2), 256 bits → AVX-512