BORA BORA - PROCESADORES
PROCESADORES 







Son el “cerebro” del 
ordenador es la CPU, la cual toma instrucciones de la memoria y las ejecuta. El ciclo básico de toda CPU consiste en tomar la primera instrucción de la memoria, decodificarla para determinar su tipo y operandos, ejecutarla, y luego tomar, decodificar y ejecutar las instrucciones subsiguientes. Es así como se ejecutan los programas.

Cada CPU ejecuta un repertorio de instrucciones específico. Por lo tanto, un Pentium no puede ejecutar programas para un SPARC, y un SPARC no puede ejecutar programas para un Pentium. Puesto que acceder a la memoria para extraer una instrucción o una palabra de datos tarda mucho más que la ejecución de una instrucción, todas las CPUs contienen algunos registros internos para guardar variables importantes y resultados temporales. El repertorio de instrucciones incluye por lo general instrucciones para 
cargar una palabra de la memoria en un registro, y para almacenar en la memoria una palabra que está en un registro. Otras instrucciones combinan dos operandos tomados de los registros, de la memoria o de ambos, para producir un resultado; por ejemplo, sumar dos palabras y almacenar el resultado en un registro o en la memoria.

Además de los registros generales que se utilizan para guardar variables y resultados temporales, casi todos los 
ordenadores tienen varios registros especiales que puede ver el programador. Uno de ellos es el contador de programa, que contiene la dirección de memoria en la que está la siguiente instrucción que se va a extraer. Una vez extraída esa instrucción, el contador del programa se actualiza automáticamente para apuntar a la siguiente instrucción.

Otro registro es el puntero de pila, que apunta a la 
parte superior (cima) de la pila actual en la memoria. La pila contiene una trama (o registro de activación) por cada procedimiento al que se ha llamado pero del cual no se ha retornado todavía. La trama de pila de un procedimiento contiene los parámetros de entrada, las variables locales y variables temporales que no se guardan en registros.

Otro registro más es la PSW (Program Status Word; palabra de estado del programa) (también se le llama el registro de estado del procesador). Este registro contiene los bits de código de condición (también denominados indicadores o flags), que se activan cuando se ejecutan instrucciones de comparación, junto con la prioridad de ejecución de la CPU, el modo (usuario o supervisor (núcleo)) y otros bits de control. Los programas de usuario por lo general pueden leer la PSW entera, pero sólo pueden escribir en algunos de sus campos. La PSW desempeña un papel muy importante en las llamadas al 
sistema y la E/S.

El sistema operativo debe conocer todos los registros. Al multiplexar en el tiempo la CPU, es común que el sistema operativo tenga que detener el programa en ejecución para iniciar o continuar la ejecución de otro. Cada vez que el sistema operativo detiene un programa en ejecución, debe guardar todos los registros para que puedan restablecerse cuando el programa continúe su ejecución.

Con el fin de mejorar el rendimiento, los diseñadores de las CPUs abandonaron desde hace ya mucho tiempo el 
modelo según el cual simplemente se extrae, decodifica y ejecuta una instrucción a la vez. Muchas CPUs modernas cuentan con los recursos necesarios para ejecutar más de una instrucción al mismo tiempo. Por ejemplo, una CPU podría tener unidades individuales para extraer, decodificar y ejecutar, de manera que mientras esté ejecutando la instrucción n, también puede estar decodificando la instrucción n+1 y extrayendo la instrucción n+2. Tal organización se denomina pipeline (o segmentación encauzada) y se ilustra en la Figura 1-6(a) con un pipeline de tres etapas, aunque son comunes pipelines más largos. En casi todos los diseños de pipelines, una vez que una instrucción entra en el pipeline, debe ejecutarse necesariamente, aunque la instrucción anterior haya sido un salto condicional que haya dado lugar a una ruptura de secuencia. Los pipelines provocan grandes dolores de cabeza a quienes escriben compiladores y sistemas operativos, porque les obligan a tener en cuenta aspectos muy complejos de la máquina en cuestión.

 





Un diseño todavía más avanzado que el pipeline es una CPU superescalar, que se muestra en la Figura 1-6(b). Cuenta con varias unidades de ejecución, por ejemplo, una para aritmética de enteros, una para aritmética de punto flotante y una para operaciones booleanas.

Se extraen dos o más instrucciones a la vez, se decodifican y se dejan en un búfer de retención hasta que puedan ejecutarse. Cuando queda libre una unidad de ejecución, se busca en el búfer de retención una instrucción que pueda ejecutarse en ella y, si la hay, se la saca del búfer y se ejecuta. Una implicación de este diseño es que las instrucciones del programa a menudo se ejecutan desordenadas. En su mayor parte, corresponde al hardware asegurarse de que el resultado producido sea el mismo que se habría obtenido con una implementación secuencial, pero una buena parte de la complejidad se endosa al sistema operativo, como veremos.

La mayoría de las CPUs, salvo las más simples que se utilizan en los sistemas empotrados, tienen dos modos de operación: modo núcleo y modo usuario, como se mencionó antes. Por lo regular, un bit de la PSW controla el modo. Cuando la CPU opera en modo núcleo puede ejecutar cualquiera de las instrucciones que componen su repertorio de instrucciones y realizar todas las funciones del hardware. El sistema operativo se ejecuta en modo núcleo, y eso le permite acceder a todo el hardware.

En contraste, los programas de usuario se ejecutan en modo usuario, que sólo permite ejecutar un subconjunto del repertorio de instrucciones y tener 
acceso a un subconjunto de las funciones del hardware. En general, todas las instrucciones que implican E/S y protección de memoria están deshabilitadas en modo usuario. Desde luego, también está prohibido cambiar el bit de modo de la PSW para pasar de modo usuario a modo núcleo.

Para 
obtener algún servicio del sistema operativo, el programa de usuario debe hacer una llamada al sistema, la cual realiza un trap dentro del núcleo e invoca al sistema operativo. La instrucción TRAP cambia de modo usuario a modo núcleo y cede el control al sistema operativo. Una vez completado el trabajo solicitado al sistema operativo, se devuelve el control al programa de usuario justo en la instrucción inmediatamente siguiente a la llamada al sistema.

Explicaremos los detalles del proceso de llamada al sistema más adelante. Como nota tipográfica, utilizaremos el tipo de letra Arial minúscula para indicar llamadas al sistema en el texto normal, como por ejemplo: read.

Vale la pena señalar que los ordenadores tienen otros traps (interrupciones y excepciones) además de las instrucciones para ejecutar una llamada al sistema (denominadas a veces interrupciones software). La mayoría de los demás traps están provocados por el hardware para advertir de una situación excepcional, tales como un intento de división por cero o un underflow de coma flotante. En todos los casos, el sistema operativo toma el control y decide lo que hay que hacer a continuación. A veces es preciso abortar el programa retornando un código de error. En otras ocasiones puede ignorarse el error (por ejemplo, ante un underflow de una variable puede simplemente asignársele un 0). Finalmente, si el programa ha anunciado con antelación que quiere manejar ciertos tipos de condiciones, puede devolvérsele el control permitiéndole que intente resolver el problema por sí mismo.

TIPOS DE PROCESADORES

Procesadores dedicados.
Para desarrollar una tarea muy especifica. Ejecutando un único algoritmo de forma óptima.


Procesadores de propósito general.
Está capacitado para ejecutar una serie de instrucciones sean E/S (entrada/salida), lógicas, aritméticas, etc. Almacenando y listando una colección de instrucciones en una memoria secundaria (programa) de tal forma que el procesador de modo secuencial lleve a cabo cada una de ellas.


CISC.
Complex Instruction Set Computing. Posee un número grande y longitud variable de instrucciones, alto porcentaje de ciclos por instrucción, operaciones de microcódigo, baja optimización en el uso de registros.



RISC.
Reduced Instruction Set Computing. Posee un número bajo y longitud fija de instrucciones, bajo porcentaje de ciclos por instrucción, no tiene operaciones de microcódigo, muchos registros de propósito general, compilador optimizado. Su arquitectura permite un cierto grado de paralelismo en su ejecución.


Power PC.
Diseñados para rendir al igual que los mejores CISC y RISC, pero mejorando sus errores. Tiene un conjunto de instrucciones distinto a estos procesadores, pero puede emular sus características para ejecutar los programas escritos para ellos. Usados en computadores tipo Estaciones de Trabajo y en equipos de medio rango.


SIMD.
Single instruction, multiple data. Tiene una organización única de instrucción y datos múltiples. Manipula instrucciones de vector mediante múltiples unidades funcionales que responden a una instrucción común.


Microprocesadores.
Son de uso general, requieren dispositivos externos de memoria y de comunicación con el exterior (E/S).

Microcontroladores.
Integran memorias y elementos de entrada/salida junto al microprocesador.


ASIC.
Application-Specific Integrates Circuits. Integra en un solo chip los elementos analógicos y digitales necesarios para efectuar una determinada función.

DSP.
Digital Signal Processors. Procesadores de alta velocidad y poca memoria, muy eficientes para efectuar algoritmos de procesado de la señal.

Procesadores Neuronales, transputers.
Están equipados con elementos que facilitan su comunicación de forma que puede distribuirse fácilmente una función entre varios de ellos.


Procesador convencional.
Ejecuta las instrucciones en forma de serie es decir, una detrás de otra.

Procesador con paralelismo interno.
Externamente ejecuta las instrucciones como si fuera un procesador convencional en serie, pero internamente puede efectuar operaciones en paralelo.


Procesador con paralelismo externo.
Se presenta en los sistemas que incluyen varios procesadores como los servidores, los mainframes y los supercomputadores.

Multiprocesador.
Se acostumbra a usar la arquitectura de multiprocesador con memoria común en los servidores. Cada uno de estos procesadores incluyen una memoria caché de grandes dimensiones para reducir el trafico con la memoria común.


Hoy habia 1 visitantes (14 clics a subpáginas) ¡Aqui en esta página!
=> ¿Desea una página web gratis? Pues, haz clic aquí! <=