viernes, 16 de mayo de 2014

Procesadores Multi-Nucleo

Los procesadores multinúcleo se basaron en los sistemas distribuidos, la computación paralela, y las tecnologías como el Hyperthreading; que mostraban como dividir el trabajo entre varias unidades de ejecución.
Procesamiento en Paralelo
El procesamiento en paralelo es la división de una aplicación en varias partes para que sean ejecutadas a la vez por diferentes unidades de ejecución.
El procesamiento en paralelo se utiliza en Computación Paralela y la Computación Distribuida.
HyperThreading
Esta tecnología fue creada por Intel, para los procesadores Pentium 4 más avanzados. El Hyperthreading hace que el procesador funcione como si fuera dos procesadores. Esto fue hecho para que tenga la posibilidad de trabajar de forma multihilo (multithread) real, es decir pueda ejecutar muchos hilos simultáneamente.
Un procesador con la tecnología Hyperthreading tiene un 5% más de transistores que el mismo procesador sin esa tecnología.


Los dos procesadores lógicos, que posee el procesador hyperthreading, tienen su propio estado de la arquitectura: registros de control, registros de datos, registros de depuración, etc. y el APIC (controlador avanzado de interrupción programable). Los dos procesadores lógicos comparten la memoria caché, la interfaz del bus del sistema, etc.


Se verá un resumen de los principales procesadores multinúcleo de la actualidad. Se comienza por Intel, mostrando los procesadores multinúcleo que ha sacado al mercado, luego viene AMD, y por último se muestra al nuevo procesador Cell, que se encuentra en PlayStation 3.

Instrucciones Procesador 8086

Instrucciones de Transferencia de Datos.
Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a
los registros de datos, puertos de E/S y registros de segmentación.
Las instrucciones de transferencia de datos son las siguientes:
• MOV transfiere
• XCHG intercambia
• IN entrada
• OUT salida
• XLAT traduce usando una tabla
• LEA carga la dirección efectiva
• LDS carga el segmento de datos
• LES carga el segmento extra
• LAHF carga los indicadores en AH
• SAHF guarda AH en los indicadores
• PUSH FUENTE (sp) fuente
• POP DESTINO destino (sp)
Control de Bucles (instrucciones simples)
Estas posibilitan el grupo de control más elemental de nuestros programas. Un bucle es un bloque de código
que se ejecuta varias veces. Hay 4 tipos de bucles básicos:
• Bucles sin fin
• Bucles por conteo
• Bucles hasta
• Bucles mientras
Las instrucciones de control de bucles son las siguientes:
⋅ INC incrementar
⋅ DEC decrementar
⋅ LOOP realizar un bucle
⋅ LOOPZ,LOOPE realizar un bucle si es cero
⋅ LOOPNZ,LOOPNE realizar un bucle si no es cero
⋅ JCXZ salta si CX es cero
Instrucciones de Prueba, Comparación y Saltos.
Este grupo es una continuación del anterior, incluye las siguientes instrucciones:
• TEST verifica
• CMP compara
• JMP salta
1• JE, JZ salta si es igual a cero
• JNE, JNZ salta si no igual a cero
• JS salta si signo negativo
• JNS salta si signo no negativo
• JP, JPE salta si paridad par
• JNP, JOP salta si paridad impar
• JO salta si hay capacidad excedida
• JNO salta si no hay capacidad excedida
• JB, JNAE salta si por abajo (no encima o igual)
• JNB, JAE salta si no está por abajo (encima o igual)
• JBE, JNA salta si por abajo o igual (no encima)
• JNBE, JA salta si no por abajo o igual (encima)
• JL, JNGE salta si menor que (no mayor o igual)
• JNL, JGE salta si no menor que (mayor o igual)
• JLE, JNG salta si menor que o igual (no mayor)
• JNLE, JG salta si no menor que o igual (mayor)
Instrucciones de Llamado y Retorno de Subrutinas.
Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto
nivel, resultan indispensables las subrutinas:
• CALL llamada a subrutina
• RET retorno al programa o subrutina que llamó
Instrucciones Aritméticas.
Estas instrucciones son las que realiza directamente el 8086/8088
a. Grupo de adición:
• ADD suma
• ADC suma con acarreo
• AAA ajuste ASCII para la suma
• DAA ajuste decimal para la suma
b. Grupo de sustracción:
• SUB resta
• SBB resta con acarreo negativo
• AAS ajuste ASCII para la resta
• DAS ajuste decimal para la resta
c. Grupo de multiplicación:
• MUL multiplicación
• IMUL multiplicación entera
• AAM ajuste ASCII para la multiplicación
d. Grupo de división:
• DIV división
2• IDIV división entera
• AAD ajuste ASCII para la división
e. Conversiones:
• CBW pasar octeto a palabra
• CWD pasar palabra a doble palabra
• NEG negación
f. Tratamiento de cadenas:
Permiten el movimiento, comparación o búsqueda rápida en bloques de datos:
• MOVC transferir carácter de una cadena
• MOVW transferir palabra de una cadena
• CMPC comparar carácter de una cadena
• CMPW comparar palabra de una cadena
• SCAC buscar carácter de una cadena
• SCAW buscar palabra de una cadena
• LODC cargar carácter de una cadena
• LODW cargar palabra de una cadena
• STOC guardar carácter de una cadena
• STOW guardar palabra de una cadena
• REP repetir
• CLD poner a 0 el indicador de dirección
• STD poner a 1 el indicador de dirección
Instrucciones Lógicas.
Son operaciones bit a bit que trabajan sobre octetos o palabras completas:
• NOT negación
• AND producto lógico
• OR suma lógica
• XOR suma lógica exclusiva
Instrucciones de Desplazamiento, Rotación y Adeudos.
Básicamente permiten multiplicar y dividir por potencias de 2
• SHL, SAL desplazar a la izquierda (desplazamiento aritmético)
• SHR desplazar a la derecha
• SAR desplazamiento aritmético a la derecha
• ROL rotación a la izquierda
• ROR rotación a la derecha
• RCL rotación con acarreo a la izquierda
• RCR rotación con acarreo a la derecha
• CLC borrar acarreo
• STC poner acarreo a 1
Instrucciones de Pila.
3Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de
salvaguardar las direcciones de retorno de las llamadas a subrutinas):
• PUSH introducir
• POP extraer
• PUSHF introducir indicadores
• POPF extraer indicadores
Instrucciones de Control del microprocesador.
Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjunción con otros procesadores:
• NOP no operación
• HLT parada
• WAIT espera
• LOCK bloquea
• ESC escape
Instrucciones de Interrupción.
• STI poner a 1 el indicador de interrupción
• CLI borrar el indicador de interrupción
• INT interrupción
• INTO interrupción por capacidad excedida (desbordamiento)
• IRET retorno de interrupción

Stack

Stack o Pila 

Es una estructura de datos con acceso del tipo LIFO (last in first out), ultimo en entrar, primero en salir. Como similitud se puede asociar a un almacenamiento de libros formando una pila, en la que se almacenan uno sobre otro, los nuevos elementos se apilas sobre el último, y cuando se retiran se extrae el ultimo que se ha apilado.
Este tipo de estructura de datos es fácil de desarrollar por los sistemas de microprocesadores y resulta de gran utilidad para trabajar con listas de datos y es imprescindible para el trabajo interno de microprocesador en las sub rutinas e interrupciones.
Algunos de los microprocesadores pueden tener el Stack en su interior, representando un sistema muy rápido pero de tamaño limitado, la mayoría de microprocesadores disponen el Stack en la memoria externa, hecho que proporciona una gran capacidad de almacenamiento y el control de su ubicación, aunque el acceso se mas lento.



ALU Y FPU

ALU

Acronimo de unidad aritmética lógica. Normalmente, los procesadores tiene varias de estas en el interior de la unidad de ejecución de números enteros. Por ejemplo, la arquitectura de los procesadores AMD K10 era capaz de calcular 6 micros operaciones por ciclo de reloj.
Se utiliza el termino micro porque las operaciones mas complejas se dividen dando lugar a varias de ellas.

FPU

Acronimo de unidad de punto flotante. Es decir, realizan las operaciones sobre los números decimales. Estas unidades suelen ser mas complejas y por lo tanto necesitan de mas área dentro del micro.








 

Microprocesadores







Registros de Segmentos


Segundo Corte