Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Instrucciones Por Ciclo

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 2

Las instrucciones de un procesador se suelen ejecutar dividas en varias etapas o

fases. Cuando se tienen varias instrucciones en ejecuci�n, una en cada etapa, en


condiciones ideales se da el resultado aparente de obtener una instrucci�n por
ciclo de reloj (IPC = 1), puesto que cuando una instrucci�n acaba su �ltima fase,
la instrucci�n siguiente entra en su �ltima fase de manera que al siguiente ciclo
acaba tambi�n, como si se tratara de la cadena de montaje de un coche.

El IPC normalmente trata de un valor medio, ya que la cantidad de instrucciones


ejecutadas en un ciclo de reloj en la mayor�a de microarquitectura de procesadores
var�a en funci�n del programa ejecutado en el procesador. Sumas de n�meros enteros,
por ejemplo, pueden ejecutarse m�s r�pidamente que sumas con n�meros reales.

Existen programas que realizan pruebas de rendimiento que, debido a la naturaleza


del IPC y su valor en funci�n del programa ejecutado, es importante seleccionar los
adecuados para tener una buena indicaci�n del IPC de un procesador. Con ellos el
IPC medio es m�s significativo y aproxima mejor el rendimiento en los entornos
habituales de producci�n previstos. Por ello las pruebas deben ser representativas
de los programas que se van a ejecutar habitualmente con la microarquitectura del
procesador medido. Por ejemplo, al dise�ar un procesador multin�cleo los programas
para medir su rendimiento no pueden consistir �nicamente en programas con un solo
hilo de ejecuci�n.

A la hora de medir el rendimiento de un procesador se calcula el tiempo que tarda


en ejecutar un programa. Este tiempo se obtiene con base en la f�rmula siguiente:

{\displaystyle T=N\cdot {\frac {1}{IPC}}\cdot f} {\displaystyle T=N\cdot {\frac {1}


{IPC}}\cdot f}

Si reordenamos las variables:

{\displaystyle IPC=N\cdot {\frac {1}{T}}\cdot f} {\displaystyle IPC=N\cdot {\frac


{1}{T}}\cdot f}

Donde N es el n�mero de instrucciones �en c�digo ensamblador compatible con el


procesador� del programa (y sus algoritmos) y f es la frecuencia del procesador.
{\displaystyle {\frac {1}{IPC}}} {\displaystyle {\frac {1}{IPC}}} es el rec�proco
del CPI o ciclos por instrucci�n, usado tambi�n en la bibliograf�a especializada.

La N o n�mero de instrucciones es un valor que depende del compilador empleado,


puesto que el c�digo fuente de los lenguajes de niveles superiores al del c�digo
m�quina es transformado en �ste mediante un compilador. En el caso de no usar un
compilador, el valor de N depender� de la pericia que tenga el programador en usar
las instrucciones que ofrece la microarquitectura del procesador. Esto hace dif�cil
la comparaci�n directa entre dos modelos de procesador distintos, puesto que sin
tener el c�digo fuente disponible no es posible disponer de un programa en c�digo
m�quina imparcial. El c�digo fuente puede ser el escrito por un humano, ya sea en
ensamblador o en un lenguaje de mayor nivel, o una representaci�n intermedia
(bytecode) como la usada por LLVM o Vulkan (SPIR-V1?).

Adem�s, a�n disponiendo del c�digo fuente del programa, el compilador puede ser
tambi�n parcial, como ya ocurriera antiguamente con el compilador de Intel. El
compilador de Intel generaba binarios con unas instrucciones y planificaci�n de las
mismas que resultaban en un pobre rendimiento usando los procesadores de AMD y VIA
Technologies para el mismo algoritmo.2? Por tanto tambi�n es recomendable disponer
del c�digo fuente del compilador para poder comprobar que genera el mejor c�digo
posible para cada una de las microarquitecturas de las que obtener medidas de
rendimiento. Enti�ndase como mejor c�digo posible la generaci�n de un c�digo
m�quina con instrucciones siguiendo una secuencia que no haga perder ciclos al
procesador in�tilmente cuando con otro orden de ejecuci�n u otras instrucciones
ofrecidas por su microarquitectura desperdiciar�a menos ciclos, obteniendo un IPC
m�s elevado.

Dise�ar una microarquitectura para obtener un IPC elevado no es sencillo, y si los


programas a ejecutar (incluidas las pruebas de rendimiento) no disponen de c�digo
fuente y/o han sido programados para unas determinadas caracter�sticas de
microarquitectura, las opciones de los arquitectos de computadores pueden verse
seriamente limitadas. �stos han de dise�ar una microarquitectura para c�digo
m�quina pensado para microarquitecturas de otros fabricantes. A su vez disminuye la
innovaci�n, puesto que todos los dise�os de procesador tienden al mismo esquema con
m�nimas variaciones. Esto favorece al dise�o del fabricante con mayor cuota de
mercado, que siempre contar� con la ventaja competitiva de ser el est�ndar de facto
para el que todos los programadores crean y prueban sus programas.

Los desarrolladores de software tienen por tanto influencia en el IPC de una


microarquitectura, puesto que el compilador que usen y el c�digo que escriban puede
favorecer a unos procesadores sobre otros. Bibliotecas de funciones y de tiempo de
ejecuci�n sirven para abstraerse de dichos detalles del hardware obteniendo un
programa m�s neutral, relegando a dichas bibliotecas la optimizaci�n para cada una
de las arquitecturas en las que se vaya a ejecutar el programa. Los compiladores
incluyen bibliotecas de este tipo como pueden ser las funciones intr�nsecas,
OpenMP, OpenACC, OpenCL y CUDA. A su vez, con estas bibliotecas se crean
abstracciones optimizadas para cada variante de arquitectura, para distintas
generaciones de GPUs y CPUs. Bibliotecas de �lgebra como GSL, 3? CuBLAS ,4? clFFT y
clBLAS, 5? 6? ATLAS ,7? LAPACK 8? y MAGMA 9? son algunos ejemplos de abstracciones
con optimizaciones por microarquitectura que utilizan las bibliotecas que incluyen
los compiladores. En el campo de los videojuegos la abstracci�n se corresponder�a
con el motor gr�fico, que a su vez utiliza bibliotecas como OpenGL, Vulkan o
Direct3D distribuidas con el controlador de dispositivo del dispositivo gr�fico, el
cual incluye el compilador para generar el binario compatible con la GPU a partir
del c�digo shader del programador. La biblioteca de tiempo de ejecuci�n Java
distribuida con Android (Dalvik o ART, seg�n la versi�n de Android) abstrae las
caracter�sticas del hardware y tambi�n del sistema operativo del dispositivo sobre
el que se ejecuta la aplicaci�n, lo que permite ejecutar las aplicaciones no s�lo
en dispositivos diferentes sino tambi�n en sistemas operativos diferentes.

También podría gustarte