Está en la página 1de 7

ESTRUCTURA DE

COMPUTADORES

PRÁCTICA 3:

“Extensiones Multimedia”

Estructura de Computadores – Práctica 3. Extensiones multimedia 1


 ASPECTOS TRATADOS: Extensiones Multimedia: MMX.

 MATERIAL NECESARIO: Ordenador con acceso a Internet.

 CONCEPTOS NECESARIOS: Tipos de instrucciones SIMD en


procesadores Intel: MMX, SSE, AVX. Programación lenguaje C/C++

 DURACIÓN ESTIMADA: 90'-120'

 DESCRIPCIÓN: En esta práctica se implementarán una serie de


programas enfocados a detectar el tipo de instrucciones soportados por la
CPU. Este sería el primer paso en cualquier programa que vaya a utilizar
cualquier tipo de instrucciones SIMD: MMX, SSE, o AVX, para evitar
posibles incompatibilidades.

Estructura de Computadores – Práctica 3. Extensiones multimedia 2


 DESCRIPCIÓN:

Para determinar las capacidades de un procesador es necesario conocer su modelo exacto, y


consultar la hoja de características del fabricante. Sin embargo, esto puede ser un proceso
relativamente complejo y tedioso. Afortunadamente, existen aplicaciones, incluso de los propios
fabricantes, que se pueden descargar y ejecutar para obtener esta información.

1) Descarga el “Intel Processor Identification Utility- Windows Version”


(https://downloadcenter.intel.com/download/7838/Intel-Processor-Identification-Utility-Windows-
Version) y ejecútalo para obtener información de la CPU del equipo de prácticas. Aparecerá una
ventana similar a la siguiente:

Consulta toda la información ofrecida por esta utilidad, y anota las capacidades de la CPU en
cuanto a instrucciones SIMD a continuación:

Los diseños de CPU incluyen instrucciones SIMD para mejorar el rendimiento del uso multimedia

Las instrucciones SIMD consisten en aplicar una misma operación sobre un conjunto más o menos grande
de datos. Es una organización en donde una única unidad de control común despacha las instrucciones a
diferentes unidades de procesamiento. Todas estas reciben la misma instrucción, pero operan sobre
diferentes conjuntos de datos. Es decir, la misma instrucción es ejecutada de manera sincronizada por todas
las unidades de procesamiento.

Estructura de Computadores – Práctica 3. Extensiones multimedia 3


2) Conceptos de extensiones multimedia.

a) Investiga a través de Internet qué es CPUID y para qué sirve

En la app de identificación de procesadores Intel podemos ver una pestaña con la información
de la CPUID para el procesador probado. Este campo es una combinación de la familia de
procesadores, el modelo de procesador y la versión de procesador notificada en un formato
hexadecimal

b) ¿Qué es MMX? ¿Tiene AMD algún sistema similar?

MMX es un conjunto de instrucciones que fueron adopatadas por los procesadores Pentium MMX
Se trata de una extensión de la IA que estaba diseñada para mejorar el rendimiento en los
algoritmos de multimedia y comunicaciones. Ésta usaba un modelo de ejecución de datos
múltiples de una sola instrucción para procesar varios elementos de datos a la vez.

AMD posiciona su procesador K6 compatible con MMX

Estructura de Computadores – Práctica 3. Extensiones multimedia 4


c) Investiga a través de Internet qué es SSE, para qué se utiliza y qué versiones tiene

SSE (Streaming SIMD Extensions) es una extensión al grupo de instrucciones MMX para procesadores
Pentium III, introducida por Intel en febrero de 1999.

La SSE se utiliza para acelerar las tareas multimedia como la edición de imágenes o ajustar el volumen
de audio. Cada nueva versión contiene nuevas instrucciones y mejoras.

Hay varios tipos de instrucciones SSE:

Instrucciones SSE de Transferencia de datos.


Instrucciones SSE de Conversión.
Instrucciones SSE Aritméticas.
Instrucciones SSE lógicas.

Versiones posteriores:
SSE2
SSE3
SSE4

d) Investiga a través de Internet qué es SSE, para qué se utiliza y qué versiones tiene. ¿Qué
diferencias hay entre sus versiones?
Aunque existen muchas ediciones diferentes de Windows, las dos más conocidas y utilizadas son la edición
Home, pensada para usuarios domésticos (que carece de herramientas avanzadas y administrativas), y la
edición Pro o Profesional, pensada para un público ya más avanzado.

La principal diferencia entre versión y compilación es que un cambio de versión suele venir con cambios,
novedades y nuevas características, mientras que la compilación generalmente es de mantenimiento. La
mayoría de las actualizaciones acumulativas de Windows cambian la compilación, mientras que la versión solo
cambia con las grandes actualizaciones de cada 6 meses.

Como último factor que nos ayuda a diferenciar distintas Windows tenemos la arquitectura del sistema
operativo. La arquitectura indica para el tipo de hardware que ha sido compilado, y sobre el que funcionará
mejor. Las dos arquitecturas más conocidas son para 32 bits y para 64 bits, aunque también existen otras
arquitecturas de Windows, como para ARM (como algunas versiones de Windows 10 S).

Con estos conceptos claros, ya podremos saber todos los detalles sobre nuestro sistema operativo, pudiendo
diferenciar entre versiones, ediciones, compilaciones y arquitecturas del mismo.

Estructura de Computadores – Práctica 3. Extensiones multimedia 5


e) ¿Qué es AVX? ¿Supone alguna mejora respecto a SSE?

AVX son las siglas de Advanced Vector Extension (Extensiones vectoriales avanzadas), nombre por el que
se le conoce al conjunto de instrucciones que sirve de extensión al ya amplio conjunto de instrucciones IA-32
(x86). Un conjunto que Intel y AMD comenzarían a alimentar a finales de los noventa tras ver la luz otros
como MMX o AMD64.

AVX está mucho más desarrollado que sus ancestros, así como del conjunto de instrucciones SSE4 al que
sustituye. Se focaliza en mejorar la eficiencia a la hora de realizar cálculos vectoriales (principalmente los de
coma flotante), pero gracias a la implementación de un esquema de codificación mejorado y nuevas
instrucciones, es capaz de ejecutar con más velocidad código anterior a su implementación, que ocurrió en
2011 con los procesadores Sandy Bridge y FX-Jaguar.

f) Comprueba qué tipos de instrucciones permite el ordenador que estás utilizando.

Instrucciones de transferencia, aritméticas, lógicas, de entrada y salida, de alteración de secuencia,


diversas.

Estructura de Computadores – Práctica 3. Extensiones multimedia 6


3) ¿Qué son los registros EAX, EBX, ECX y EDX de CPUID? ¿Para qué se utilizan?

Estos registros se utilizan para realizar todas las operaciones aritméticas, lógicas, y también se utilizan como
operandos para calcular direcciones

EAX (Extended Accumulator Register): Usado para almacenar el valor de retorno de una función y usarlo
como almacenamiento para operaciones aritméticas y operaciones de entrada/salida

EBX (Extended Base Register) - Suele utilizarse como apoyo para acelerar el cálculo de operaciones. Es un
registro no volátil.

ECX (Extended Counter Register) – Registro volátil que puede ser utilizado como contador de bucle o
contenedor de parámetros que sean pasado a funciones

EDX (Extended Data Register) – Registro volátil usado mayormente como parámetro para funciones.
Normalmente se usa también para almacenar variables a corto plazo dentro de una función.

Instrucción CPUID: se usa para la información de características y versiones estáticas.

¿Con qué función podríamos leer los datos de CPUID utilizando C++?

Primero introduciremos el comando 'sudo apt install cpufrequtils' y luego 'cpufreq-info'

Estructura de Computadores – Práctica 3. Extensiones multimedia 7

También podría gustarte