arquitectura de procesador

14

Click here to load reader

Upload: vanessa-gomez

Post on 14-Jun-2015

2.035 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Procesador

Arquitectura de Procesadores

ARQUITECTURA DE PROCESADORES

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Introduccioacuten

Los procesadores son todo un mundo en siacute mismos aunque los primeros eran comparativamente simples actualmente han alcanzado una notable complejidad

La evolucioacuten de ambos paraacutemetros no solo ha permitido incrementar la densidad de integracioacuten tambieacuten la velocidad (frecuencia de funcionamiento) Si nos referimos a la familia Intel de los 2100 transistores del 4004 en 1970 que con solo 46 instrucciones funcionaba a unos 800 KHz se pasoacute a los 29000 transistores del 8086 en 1979 a 14 MHz y en 1999 a los 8200000 transistores del Pentium III a 2 GHz

Actualmente se trabaja en el liacutemite de la resolucioacuten oacuteptica de los dispositivos utilizados en su construccioacuten (se usan teacutecnicas fotograacuteficas con longitudes de onda cada vez menores para la luz utilizada) y debido a la altiacutesima frecuencia de funcionamiento los conductores internos funcionan maacutes como guiacuteas de onda que como conductores eleacutectricos convencionales Ademaacutes las dimensiones fiacutesicas del propio dispositivo estaacuten teoacutericamente limitadas si se desea que todos sus elementos funcionen seguacuten un mismo patroacuten de tiempo (cosa que es imprescindible) Para dar una idea de las formidables dificultades teacutecnicas que han debido resolver los disentildeos actuales considere que a la velocidad del Pentium III las sentildeales eleacutectricas solo recorren 15 centiacutemetros en cada ciclo de reloj

Inicios

Comenzoacute siendo del tamantildeo de un armario posteriormente se redujo al de una gran caja despueacutes se construyoacute en un placa de unos 15 por 1500 pulgadas Finalmente se construyoacute en un solo circuito integrado encapsulado en un chip que se inserta en un zoacutecalo de la placa-base (0) La historia de los procesadores ha pasado por diferentes situaciones siguiendo la loacutegica evolucioacuten de este mundo Desde el primer procesador 4004 del antildeo 1971 hasta el actual Core i7 del presente antildeo ha llovido mucho en el campo de los procesadores Aquel primer procesador presentado en el mercado el diacutea 15 de noviembre poseiacutea unas caracteriacutesticas uacutenicas para su tiempo Para empezar la velocidad del reloj sobrepasaba por poco los 100 KHz (Kilo hertzio) disponiacutea de un ancho de bus de 4 bits Fue expuesto por Roberto Pineda 2002 en la UEVAA

Maacuteximo de 640 bytes de memoria Realmente una auteacutentica joya que para entonces podiacutea realizar gran cantidad de tareas pero que no tiene punto de comparacioacuten con los actuales micros entre sus aplicaciones podemos destacar su presencia en la calculadora Busicom asiacute como dotar de los primeros tintes de inteligencia a objetos inanimados Sin embargo el 1ordm de Abril de 1972 Intel anunciaba una versioacuten mejorada de su procesador se trataba del 8008que

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contaba como pricipal novedad un bus de 8 bytes y la memoria direccionable se ampliaba a los 16 Kb Ademaacutes llegaba a la cifra de los 3500 transistores casi el doble que su predecesor y se le puede considerar como el antecedente del procesador que serviriacutea de corazoacuten a la primera computadora personal Justo 2 antildeos despueacutes Intel anunciaba esa tan esperada computadora personal de nombre Altair cuyo nombre proviene de un destino de la nave Enterprise en uno de los capiacutetulos de la popular serie de televisioacuten Star Trek la semana en la que se creoacute la computadora Esta computadora teniacutea un costo alrededor de los 400 doacutelares de la eacutepoca y el procesador suponiacutea multiplicar por 10 el rendimiento del anterior gracias a sus 2 MHz de velocidad (por primera vez se utiliza esta medida) con una memoria de 64 Kb en unos meses logroacute vender decenas de miles de unidades en lo que supoacutenia la aparicioacuten de la primera computadora que la gente podiacutea comprar y no ya simplemente utilizar Intel al cual se le ocurrioacute que su procesador 586 se llamara PENTIUM por razones de mercado Tiene varios como son Pentium Pentium II Pentium III y Pentium IV AMD tiene el AMD586 K5 y el K6 Los 586 (Pentium) ya son praacutecticamente obsoletos

Ley de Moore

El Dr Gordon Moore uno de los fundadores del Intel Corporation formuloacute en el antildeo de 1965 una ley que se ha venido a conocer como la Ley de Moore La citada ley nos viene a decir que el nuacutemero de transistores contenido en un microprocesador se duplica maacutes o menos de cada 18 meses Esta afirmaciocircn que en principio estaba destinada a los dispositivos de memoria pero tambieacuten los microprocesadores han cumplido la ley Una ley que significa para el usuario que cada 18 meses de forma continua pueda disfrutar de una mejor tecnologiacutea algo que se ha venido cumpliendo durante los uacuteltimos 30 antildeos y se espera siga vigente en los proacuteximos 15 o 20 antildeos De modo que el usuario puede disponer de mejores equipos aunque tambieacuten signifique la necesidad de cambiar de equipo cada poco tiempo algo que no todo el mundo se puede permitir y eso que el precio aumenta de forma obsoleta pero no relativa puesto que la relacioacuten MIPS-dinero estaacute decreciendo a velocidad vertiginosa Algo que sin embargo no sucede con la industria del automoacutevil por ejemplo ya que la potencia de los coches no se ha multiplicado de la misma forma que los precios en cualquier caso queda claro que en los proacuteximos antildeos nos espera una auteacutentica revolucioacuten en lo que a rendimiento de los procesadores se refiere como ya predijera Moore hace maacutes de 30 antildeos

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Nuevas Tecnologiacuteas

Los procesadores ahora se pueden fabricar en mayor cantidad por Waffer de silicio utilizado esto le da una ventaja al fabricante menores costos Pero no todo se reduce a eso ahora es posible poner dos nuacutecleos del procesador en el mismo espacio que antes ocupaba uno soacutelo Asiacute pues el siguiente paso es el llamado Dual Core es decir un mismo procesador tiene en realidad dos cerebros dos procesadores con sus respectivas memorias Cacheacute pero la misma cantidad de conectoresEl proceso a seguir fue achicar auacuten maacutes todo y ademaacutes cambiar materiales AMD e Intel pasaron entonces a los 90nm maacutes pequentildeo auacuten y a nuevas tecnologiacuteas de proceso (SOI por ejemplo Silicon On Insulator) esto trae dos ventajas menos calor menos energiacutea necesaria para mover el mismo electroacuten a la misma velocidad y maacutes espacio La ventaja de AMD sobre Intel estaacute en el multiprocesamiento debido a que cada nuacutecleo posee su conector HyperTransport y su controlador de memoria Intel resolvioacute en cierta manera esto pero AMD tiene al poseer el controlador de memoria y el HT incluidos la posibilidad no de Dual Core solamente si no de N nuacutecleos es decir el paso que le sigue para el antildeo que viene es meter 4 procesadores en un mismo envase y luego 8

Actualmente ya hay disponibles procesadores de 4 nuacutecleos a un precio asequible (alrededor de 300 euro) Estos procesadores son los Intel Core 2 Quad y sus velocidades de proceso oscilan entre 2400 y 2666Mhz aunque su principal ventaja es la elevada cantidad de memoria cacheacute de segundo nivel 8 Mb La memoria cacheacute de un ordenador es la que almacena las operaciones que maacutes se repiten por lo que se almacenan en esa memoria en concreto para acelerar el proceso

Por otro lado tenemos los procesadores multinuacutecleo de AMD principal competidor de Intel Proacuteximamente lanzaraacute al mercado sus procesadores de 3 y 4 nuacutecleos - con los nombres de Phenom y Opteron respectivamente - aunque los precios todaviacutea son una incoacutegnita

En cuanto a lo que se aproxima lo loacutegico es pensar que los fabricantes buscaraacuten la manera de ir sumando nuacutecleos y no tanto en aumentar la velocidad de reloj del procesador

Otro factor que se sigue trabajando en cuanto a las CPU se refiere es la velocidad del FSB Mientras que AMD ha llegado a los 2000 Mhz gracias al Hyper Transport los uacuteltimos procesadores de Intel ya soportan velocidades de 1366 MHz

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Arquitectura

Registros de Uso General

Existen 4 registros denominados AX BX CX y DX que en realidad tienen asignados usos caracteriacutesticos aunque pueden ser utilizados a discrecioacuten para cualquier cosa que necesitemos

AX es denominado acumulador suele contener uno de los operandos que intervienen en las operaciones aritmeacuteticas y loacutegicas y despueacutes de esta el resultado de la operacioacuten En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcoacutedigo maacutes simple que la misma instruccioacuten ejecutada con otro registro

BX es el registro base suele contener la direccioacuten de inicio de una tabla de valores

CX es denominado contador Las instrucciones de bucle (LOOP) utilizan este registro como contador

DX es un registro de datos multiuso Se utiliza en operaciones de multiplicacioacuten y divisioacuten junto con AX En operaciones de entradasalida de puertos INOUT su mitad inferior DL contiene el nuacutemero de puerto

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6] en caso necesario pueden ser utilizados en dos mitades (nibbles) High y Low de 8 bits con lo que puede considerarse que existen 12 registros de uso general (no simultaacuteneos) los anteriores y sus mitades AH AL BH BL CH CL DH y DL

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 2: Arquitectura de Procesador

Arquitectura de Procesadores

Introduccioacuten

Los procesadores son todo un mundo en siacute mismos aunque los primeros eran comparativamente simples actualmente han alcanzado una notable complejidad

La evolucioacuten de ambos paraacutemetros no solo ha permitido incrementar la densidad de integracioacuten tambieacuten la velocidad (frecuencia de funcionamiento) Si nos referimos a la familia Intel de los 2100 transistores del 4004 en 1970 que con solo 46 instrucciones funcionaba a unos 800 KHz se pasoacute a los 29000 transistores del 8086 en 1979 a 14 MHz y en 1999 a los 8200000 transistores del Pentium III a 2 GHz

Actualmente se trabaja en el liacutemite de la resolucioacuten oacuteptica de los dispositivos utilizados en su construccioacuten (se usan teacutecnicas fotograacuteficas con longitudes de onda cada vez menores para la luz utilizada) y debido a la altiacutesima frecuencia de funcionamiento los conductores internos funcionan maacutes como guiacuteas de onda que como conductores eleacutectricos convencionales Ademaacutes las dimensiones fiacutesicas del propio dispositivo estaacuten teoacutericamente limitadas si se desea que todos sus elementos funcionen seguacuten un mismo patroacuten de tiempo (cosa que es imprescindible) Para dar una idea de las formidables dificultades teacutecnicas que han debido resolver los disentildeos actuales considere que a la velocidad del Pentium III las sentildeales eleacutectricas solo recorren 15 centiacutemetros en cada ciclo de reloj

Inicios

Comenzoacute siendo del tamantildeo de un armario posteriormente se redujo al de una gran caja despueacutes se construyoacute en un placa de unos 15 por 1500 pulgadas Finalmente se construyoacute en un solo circuito integrado encapsulado en un chip que se inserta en un zoacutecalo de la placa-base (0) La historia de los procesadores ha pasado por diferentes situaciones siguiendo la loacutegica evolucioacuten de este mundo Desde el primer procesador 4004 del antildeo 1971 hasta el actual Core i7 del presente antildeo ha llovido mucho en el campo de los procesadores Aquel primer procesador presentado en el mercado el diacutea 15 de noviembre poseiacutea unas caracteriacutesticas uacutenicas para su tiempo Para empezar la velocidad del reloj sobrepasaba por poco los 100 KHz (Kilo hertzio) disponiacutea de un ancho de bus de 4 bits Fue expuesto por Roberto Pineda 2002 en la UEVAA

Maacuteximo de 640 bytes de memoria Realmente una auteacutentica joya que para entonces podiacutea realizar gran cantidad de tareas pero que no tiene punto de comparacioacuten con los actuales micros entre sus aplicaciones podemos destacar su presencia en la calculadora Busicom asiacute como dotar de los primeros tintes de inteligencia a objetos inanimados Sin embargo el 1ordm de Abril de 1972 Intel anunciaba una versioacuten mejorada de su procesador se trataba del 8008que

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contaba como pricipal novedad un bus de 8 bytes y la memoria direccionable se ampliaba a los 16 Kb Ademaacutes llegaba a la cifra de los 3500 transistores casi el doble que su predecesor y se le puede considerar como el antecedente del procesador que serviriacutea de corazoacuten a la primera computadora personal Justo 2 antildeos despueacutes Intel anunciaba esa tan esperada computadora personal de nombre Altair cuyo nombre proviene de un destino de la nave Enterprise en uno de los capiacutetulos de la popular serie de televisioacuten Star Trek la semana en la que se creoacute la computadora Esta computadora teniacutea un costo alrededor de los 400 doacutelares de la eacutepoca y el procesador suponiacutea multiplicar por 10 el rendimiento del anterior gracias a sus 2 MHz de velocidad (por primera vez se utiliza esta medida) con una memoria de 64 Kb en unos meses logroacute vender decenas de miles de unidades en lo que supoacutenia la aparicioacuten de la primera computadora que la gente podiacutea comprar y no ya simplemente utilizar Intel al cual se le ocurrioacute que su procesador 586 se llamara PENTIUM por razones de mercado Tiene varios como son Pentium Pentium II Pentium III y Pentium IV AMD tiene el AMD586 K5 y el K6 Los 586 (Pentium) ya son praacutecticamente obsoletos

Ley de Moore

El Dr Gordon Moore uno de los fundadores del Intel Corporation formuloacute en el antildeo de 1965 una ley que se ha venido a conocer como la Ley de Moore La citada ley nos viene a decir que el nuacutemero de transistores contenido en un microprocesador se duplica maacutes o menos de cada 18 meses Esta afirmaciocircn que en principio estaba destinada a los dispositivos de memoria pero tambieacuten los microprocesadores han cumplido la ley Una ley que significa para el usuario que cada 18 meses de forma continua pueda disfrutar de una mejor tecnologiacutea algo que se ha venido cumpliendo durante los uacuteltimos 30 antildeos y se espera siga vigente en los proacuteximos 15 o 20 antildeos De modo que el usuario puede disponer de mejores equipos aunque tambieacuten signifique la necesidad de cambiar de equipo cada poco tiempo algo que no todo el mundo se puede permitir y eso que el precio aumenta de forma obsoleta pero no relativa puesto que la relacioacuten MIPS-dinero estaacute decreciendo a velocidad vertiginosa Algo que sin embargo no sucede con la industria del automoacutevil por ejemplo ya que la potencia de los coches no se ha multiplicado de la misma forma que los precios en cualquier caso queda claro que en los proacuteximos antildeos nos espera una auteacutentica revolucioacuten en lo que a rendimiento de los procesadores se refiere como ya predijera Moore hace maacutes de 30 antildeos

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Nuevas Tecnologiacuteas

Los procesadores ahora se pueden fabricar en mayor cantidad por Waffer de silicio utilizado esto le da una ventaja al fabricante menores costos Pero no todo se reduce a eso ahora es posible poner dos nuacutecleos del procesador en el mismo espacio que antes ocupaba uno soacutelo Asiacute pues el siguiente paso es el llamado Dual Core es decir un mismo procesador tiene en realidad dos cerebros dos procesadores con sus respectivas memorias Cacheacute pero la misma cantidad de conectoresEl proceso a seguir fue achicar auacuten maacutes todo y ademaacutes cambiar materiales AMD e Intel pasaron entonces a los 90nm maacutes pequentildeo auacuten y a nuevas tecnologiacuteas de proceso (SOI por ejemplo Silicon On Insulator) esto trae dos ventajas menos calor menos energiacutea necesaria para mover el mismo electroacuten a la misma velocidad y maacutes espacio La ventaja de AMD sobre Intel estaacute en el multiprocesamiento debido a que cada nuacutecleo posee su conector HyperTransport y su controlador de memoria Intel resolvioacute en cierta manera esto pero AMD tiene al poseer el controlador de memoria y el HT incluidos la posibilidad no de Dual Core solamente si no de N nuacutecleos es decir el paso que le sigue para el antildeo que viene es meter 4 procesadores en un mismo envase y luego 8

Actualmente ya hay disponibles procesadores de 4 nuacutecleos a un precio asequible (alrededor de 300 euro) Estos procesadores son los Intel Core 2 Quad y sus velocidades de proceso oscilan entre 2400 y 2666Mhz aunque su principal ventaja es la elevada cantidad de memoria cacheacute de segundo nivel 8 Mb La memoria cacheacute de un ordenador es la que almacena las operaciones que maacutes se repiten por lo que se almacenan en esa memoria en concreto para acelerar el proceso

Por otro lado tenemos los procesadores multinuacutecleo de AMD principal competidor de Intel Proacuteximamente lanzaraacute al mercado sus procesadores de 3 y 4 nuacutecleos - con los nombres de Phenom y Opteron respectivamente - aunque los precios todaviacutea son una incoacutegnita

En cuanto a lo que se aproxima lo loacutegico es pensar que los fabricantes buscaraacuten la manera de ir sumando nuacutecleos y no tanto en aumentar la velocidad de reloj del procesador

Otro factor que se sigue trabajando en cuanto a las CPU se refiere es la velocidad del FSB Mientras que AMD ha llegado a los 2000 Mhz gracias al Hyper Transport los uacuteltimos procesadores de Intel ya soportan velocidades de 1366 MHz

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Arquitectura

Registros de Uso General

Existen 4 registros denominados AX BX CX y DX que en realidad tienen asignados usos caracteriacutesticos aunque pueden ser utilizados a discrecioacuten para cualquier cosa que necesitemos

AX es denominado acumulador suele contener uno de los operandos que intervienen en las operaciones aritmeacuteticas y loacutegicas y despueacutes de esta el resultado de la operacioacuten En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcoacutedigo maacutes simple que la misma instruccioacuten ejecutada con otro registro

BX es el registro base suele contener la direccioacuten de inicio de una tabla de valores

CX es denominado contador Las instrucciones de bucle (LOOP) utilizan este registro como contador

DX es un registro de datos multiuso Se utiliza en operaciones de multiplicacioacuten y divisioacuten junto con AX En operaciones de entradasalida de puertos INOUT su mitad inferior DL contiene el nuacutemero de puerto

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6] en caso necesario pueden ser utilizados en dos mitades (nibbles) High y Low de 8 bits con lo que puede considerarse que existen 12 registros de uso general (no simultaacuteneos) los anteriores y sus mitades AH AL BH BL CH CL DH y DL

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 3: Arquitectura de Procesador

Arquitectura de Procesadores

contaba como pricipal novedad un bus de 8 bytes y la memoria direccionable se ampliaba a los 16 Kb Ademaacutes llegaba a la cifra de los 3500 transistores casi el doble que su predecesor y se le puede considerar como el antecedente del procesador que serviriacutea de corazoacuten a la primera computadora personal Justo 2 antildeos despueacutes Intel anunciaba esa tan esperada computadora personal de nombre Altair cuyo nombre proviene de un destino de la nave Enterprise en uno de los capiacutetulos de la popular serie de televisioacuten Star Trek la semana en la que se creoacute la computadora Esta computadora teniacutea un costo alrededor de los 400 doacutelares de la eacutepoca y el procesador suponiacutea multiplicar por 10 el rendimiento del anterior gracias a sus 2 MHz de velocidad (por primera vez se utiliza esta medida) con una memoria de 64 Kb en unos meses logroacute vender decenas de miles de unidades en lo que supoacutenia la aparicioacuten de la primera computadora que la gente podiacutea comprar y no ya simplemente utilizar Intel al cual se le ocurrioacute que su procesador 586 se llamara PENTIUM por razones de mercado Tiene varios como son Pentium Pentium II Pentium III y Pentium IV AMD tiene el AMD586 K5 y el K6 Los 586 (Pentium) ya son praacutecticamente obsoletos

Ley de Moore

El Dr Gordon Moore uno de los fundadores del Intel Corporation formuloacute en el antildeo de 1965 una ley que se ha venido a conocer como la Ley de Moore La citada ley nos viene a decir que el nuacutemero de transistores contenido en un microprocesador se duplica maacutes o menos de cada 18 meses Esta afirmaciocircn que en principio estaba destinada a los dispositivos de memoria pero tambieacuten los microprocesadores han cumplido la ley Una ley que significa para el usuario que cada 18 meses de forma continua pueda disfrutar de una mejor tecnologiacutea algo que se ha venido cumpliendo durante los uacuteltimos 30 antildeos y se espera siga vigente en los proacuteximos 15 o 20 antildeos De modo que el usuario puede disponer de mejores equipos aunque tambieacuten signifique la necesidad de cambiar de equipo cada poco tiempo algo que no todo el mundo se puede permitir y eso que el precio aumenta de forma obsoleta pero no relativa puesto que la relacioacuten MIPS-dinero estaacute decreciendo a velocidad vertiginosa Algo que sin embargo no sucede con la industria del automoacutevil por ejemplo ya que la potencia de los coches no se ha multiplicado de la misma forma que los precios en cualquier caso queda claro que en los proacuteximos antildeos nos espera una auteacutentica revolucioacuten en lo que a rendimiento de los procesadores se refiere como ya predijera Moore hace maacutes de 30 antildeos

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Nuevas Tecnologiacuteas

Los procesadores ahora se pueden fabricar en mayor cantidad por Waffer de silicio utilizado esto le da una ventaja al fabricante menores costos Pero no todo se reduce a eso ahora es posible poner dos nuacutecleos del procesador en el mismo espacio que antes ocupaba uno soacutelo Asiacute pues el siguiente paso es el llamado Dual Core es decir un mismo procesador tiene en realidad dos cerebros dos procesadores con sus respectivas memorias Cacheacute pero la misma cantidad de conectoresEl proceso a seguir fue achicar auacuten maacutes todo y ademaacutes cambiar materiales AMD e Intel pasaron entonces a los 90nm maacutes pequentildeo auacuten y a nuevas tecnologiacuteas de proceso (SOI por ejemplo Silicon On Insulator) esto trae dos ventajas menos calor menos energiacutea necesaria para mover el mismo electroacuten a la misma velocidad y maacutes espacio La ventaja de AMD sobre Intel estaacute en el multiprocesamiento debido a que cada nuacutecleo posee su conector HyperTransport y su controlador de memoria Intel resolvioacute en cierta manera esto pero AMD tiene al poseer el controlador de memoria y el HT incluidos la posibilidad no de Dual Core solamente si no de N nuacutecleos es decir el paso que le sigue para el antildeo que viene es meter 4 procesadores en un mismo envase y luego 8

Actualmente ya hay disponibles procesadores de 4 nuacutecleos a un precio asequible (alrededor de 300 euro) Estos procesadores son los Intel Core 2 Quad y sus velocidades de proceso oscilan entre 2400 y 2666Mhz aunque su principal ventaja es la elevada cantidad de memoria cacheacute de segundo nivel 8 Mb La memoria cacheacute de un ordenador es la que almacena las operaciones que maacutes se repiten por lo que se almacenan en esa memoria en concreto para acelerar el proceso

Por otro lado tenemos los procesadores multinuacutecleo de AMD principal competidor de Intel Proacuteximamente lanzaraacute al mercado sus procesadores de 3 y 4 nuacutecleos - con los nombres de Phenom y Opteron respectivamente - aunque los precios todaviacutea son una incoacutegnita

En cuanto a lo que se aproxima lo loacutegico es pensar que los fabricantes buscaraacuten la manera de ir sumando nuacutecleos y no tanto en aumentar la velocidad de reloj del procesador

Otro factor que se sigue trabajando en cuanto a las CPU se refiere es la velocidad del FSB Mientras que AMD ha llegado a los 2000 Mhz gracias al Hyper Transport los uacuteltimos procesadores de Intel ya soportan velocidades de 1366 MHz

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Arquitectura

Registros de Uso General

Existen 4 registros denominados AX BX CX y DX que en realidad tienen asignados usos caracteriacutesticos aunque pueden ser utilizados a discrecioacuten para cualquier cosa que necesitemos

AX es denominado acumulador suele contener uno de los operandos que intervienen en las operaciones aritmeacuteticas y loacutegicas y despueacutes de esta el resultado de la operacioacuten En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcoacutedigo maacutes simple que la misma instruccioacuten ejecutada con otro registro

BX es el registro base suele contener la direccioacuten de inicio de una tabla de valores

CX es denominado contador Las instrucciones de bucle (LOOP) utilizan este registro como contador

DX es un registro de datos multiuso Se utiliza en operaciones de multiplicacioacuten y divisioacuten junto con AX En operaciones de entradasalida de puertos INOUT su mitad inferior DL contiene el nuacutemero de puerto

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6] en caso necesario pueden ser utilizados en dos mitades (nibbles) High y Low de 8 bits con lo que puede considerarse que existen 12 registros de uso general (no simultaacuteneos) los anteriores y sus mitades AH AL BH BL CH CL DH y DL

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 4: Arquitectura de Procesador

Arquitectura de Procesadores

Nuevas Tecnologiacuteas

Los procesadores ahora se pueden fabricar en mayor cantidad por Waffer de silicio utilizado esto le da una ventaja al fabricante menores costos Pero no todo se reduce a eso ahora es posible poner dos nuacutecleos del procesador en el mismo espacio que antes ocupaba uno soacutelo Asiacute pues el siguiente paso es el llamado Dual Core es decir un mismo procesador tiene en realidad dos cerebros dos procesadores con sus respectivas memorias Cacheacute pero la misma cantidad de conectoresEl proceso a seguir fue achicar auacuten maacutes todo y ademaacutes cambiar materiales AMD e Intel pasaron entonces a los 90nm maacutes pequentildeo auacuten y a nuevas tecnologiacuteas de proceso (SOI por ejemplo Silicon On Insulator) esto trae dos ventajas menos calor menos energiacutea necesaria para mover el mismo electroacuten a la misma velocidad y maacutes espacio La ventaja de AMD sobre Intel estaacute en el multiprocesamiento debido a que cada nuacutecleo posee su conector HyperTransport y su controlador de memoria Intel resolvioacute en cierta manera esto pero AMD tiene al poseer el controlador de memoria y el HT incluidos la posibilidad no de Dual Core solamente si no de N nuacutecleos es decir el paso que le sigue para el antildeo que viene es meter 4 procesadores en un mismo envase y luego 8

Actualmente ya hay disponibles procesadores de 4 nuacutecleos a un precio asequible (alrededor de 300 euro) Estos procesadores son los Intel Core 2 Quad y sus velocidades de proceso oscilan entre 2400 y 2666Mhz aunque su principal ventaja es la elevada cantidad de memoria cacheacute de segundo nivel 8 Mb La memoria cacheacute de un ordenador es la que almacena las operaciones que maacutes se repiten por lo que se almacenan en esa memoria en concreto para acelerar el proceso

Por otro lado tenemos los procesadores multinuacutecleo de AMD principal competidor de Intel Proacuteximamente lanzaraacute al mercado sus procesadores de 3 y 4 nuacutecleos - con los nombres de Phenom y Opteron respectivamente - aunque los precios todaviacutea son una incoacutegnita

En cuanto a lo que se aproxima lo loacutegico es pensar que los fabricantes buscaraacuten la manera de ir sumando nuacutecleos y no tanto en aumentar la velocidad de reloj del procesador

Otro factor que se sigue trabajando en cuanto a las CPU se refiere es la velocidad del FSB Mientras que AMD ha llegado a los 2000 Mhz gracias al Hyper Transport los uacuteltimos procesadores de Intel ya soportan velocidades de 1366 MHz

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Arquitectura

Registros de Uso General

Existen 4 registros denominados AX BX CX y DX que en realidad tienen asignados usos caracteriacutesticos aunque pueden ser utilizados a discrecioacuten para cualquier cosa que necesitemos

AX es denominado acumulador suele contener uno de los operandos que intervienen en las operaciones aritmeacuteticas y loacutegicas y despueacutes de esta el resultado de la operacioacuten En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcoacutedigo maacutes simple que la misma instruccioacuten ejecutada con otro registro

BX es el registro base suele contener la direccioacuten de inicio de una tabla de valores

CX es denominado contador Las instrucciones de bucle (LOOP) utilizan este registro como contador

DX es un registro de datos multiuso Se utiliza en operaciones de multiplicacioacuten y divisioacuten junto con AX En operaciones de entradasalida de puertos INOUT su mitad inferior DL contiene el nuacutemero de puerto

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6] en caso necesario pueden ser utilizados en dos mitades (nibbles) High y Low de 8 bits con lo que puede considerarse que existen 12 registros de uso general (no simultaacuteneos) los anteriores y sus mitades AH AL BH BL CH CL DH y DL

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 5: Arquitectura de Procesador

Arquitectura de Procesadores

Arquitectura

Registros de Uso General

Existen 4 registros denominados AX BX CX y DX que en realidad tienen asignados usos caracteriacutesticos aunque pueden ser utilizados a discrecioacuten para cualquier cosa que necesitemos

AX es denominado acumulador suele contener uno de los operandos que intervienen en las operaciones aritmeacuteticas y loacutegicas y despueacutes de esta el resultado de la operacioacuten En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcoacutedigo maacutes simple que la misma instruccioacuten ejecutada con otro registro

BX es el registro base suele contener la direccioacuten de inicio de una tabla de valores

CX es denominado contador Las instrucciones de bucle (LOOP) utilizan este registro como contador

DX es un registro de datos multiuso Se utiliza en operaciones de multiplicacioacuten y divisioacuten junto con AX En operaciones de entradasalida de puertos INOUT su mitad inferior DL contiene el nuacutemero de puerto

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6] en caso necesario pueden ser utilizados en dos mitades (nibbles) High y Low de 8 bits con lo que puede considerarse que existen 12 registros de uso general (no simultaacuteneos) los anteriores y sus mitades AH AL BH BL CH CL DH y DL

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 6: Arquitectura de Procesador

Arquitectura de Procesadores

Registro de Segmento

Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria) Utilizaacutendolos en conjuncioacuten con otros registros que sentildealan las direcciones concretas dentro de estos segmentos (los desplazamientos) permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits) Ver al respecto el epiacutegrafe Direccionamiento segmentado

Segmento de coacutedigo CS (Code segment) Sentildeala la direccioacuten del segmento de coacutedigo del programa que se estaacute ejecutando

Segmento de datos DS (Data segment) Sentildeala la direccioacuten del segmento de datos del programa en ejecucioacuten

Segmento de pila SS (Stack segment) Sentildeala la direccioacuten del segmento donde estaacute la pila del programa

Segmento extra ES (Extra segment) Es un segmento auxiliar a los anteriores se utiliza para sentildealar espacio extra en alguno de los segmentos o para almacenar momentaacuteneamente direcciones intermedias

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 7: Arquitectura de Procesador

Arquitectura de Procesadores

Registro de Puntero

Son 5 registros destinados a contener direcciones estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento

El primero denominado indistintamente puntero de instruccioacuten IP (Instruccioacuten pointer) y contador de programa PC (Program counter) indica el desplazamiento (dentro del segmento de coacutedigo CS) de la proacutexima instruccioacuten a ejecutar

El puntero de pila SP (Stack Pointer) sentildeala el desplazamiento del final de la pila dentro del segmento de pila SS En caso necesario la pila puede crecer a partir de este punto de forma que por ejemplo una nueva invocacioacuten de funcioacuten crearaacute un nuevo registro de activacioacuten que comenzaraacute en este punto

El puntero base BP (Base pointer) sentildeala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinaacutemicas

Existen dos registros denominados de iacutendice en razoacuten de su utilizacioacuten muy particular el iacutendice fuente SI (Source index) y el iacutendice destino DI (Destination index) Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones especiacuteficamente pensadas para transferir datos (dentro de un rango de posiciones de memoria) desde un punto inicial de un segmento de datos a otro

Registro de Estado

Existe un registro especial el registro de estado (FLAGS) en el que 9 de los 18 bits actuacutean como semaacuteforos (indicadores del estado del procesador y del resultado de determinadas operaciones) Por ejemplo si despueacutes de una suma aritmeacutetica hay o no desbordamiento del bit maacutes significativo

Los nombres y situacioacuten de cada uno dentro de la palabra de 16 bits

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 8: Arquitectura de Procesador

Arquitectura de Procesadores

Cada bits individual puede estar activo (1) o inactivo (0) y tiene un identificador que termina en F (Flag) Son los siguientes

Bit Indicador de Uso

CF Acarreo (Carry Flag)

Indicador de arrastre del bit de mayor orden que puede ocurrir en las operaciones aritmeacuteticas suma y resta

PF Paridad (Parity Flag)

Si estaacute activo Indica un nuacutemero par de bits activos (bits cuyo contenido es 1) Esta informacioacuten es uacutetil cuando el procesador controla transmisiones de datos

AF Acarreo auxiliar Indicador de ajuste en operaciones aritmeacuteticas con cantidades BCD

ZF Cero (Zero Flag) Estaacute activo si el resultado de operacioacuten es cero o resultado de comparacioacuten igual

SF Signo (Sign Flag) Si estaacute activo indica que el resultado de operacioacuten o de comparacioacuten es negativo

TF Detencioacuten (Trap Flag)

Si estaacute activo el procesador genera automaacuteticamente una interrupcioacuten despueacutes de la ejecucioacuten de cada instruccioacuten lo que permite controlar paso a paso la ejecucioacuten del programa Este bit debe estar normalmente inactivo (a 0)

IF Interrupcioacuten (Interrupt Flag)

Este bit controla el estado del sistema de interrupciones enmascarables Cuando estaacute activo (1) permite las interrupciones el estado inactivo (0) las deshabilita

DF Direccioacuten (Direction Flag)

Indica la direccioacuten de las operaciones

OF Desbordamiento (Overflow Flag)

Sentildeala desbordamiento aritmeacutetico

Los valores estaacuten expresados en hexadecimal La uacuteltima secuencia de caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de estado (el bit TF de detencioacuten no se muestra) el significado de la notacioacuten utilizada es el siguiente

Bit Indicador de Indicativo si bit 1 Indicativo si bit 0

CF Acarreo CY (Carry yes) NC (No Carry)

PF Paridad PE (Parity Even) paridad par PO (Parity Odd) paridad impar

AF Acarreo auxiliar AC (Auxiliar Carry) NA (No Auxiliar)

ZF Cero ZR (Zero) NZ (No Zero)

SF Signo NG (Negative) negativo PL (Plus) positivo

IF Interrupcioacuten EI (Enabled Interrupt) activa DI (Disabled Interrupt) desactivada

DF Direccioacuten DN (Down) decremento UP incremento

OF Desbordamiento OV (Overflow) NV (No overflow)

Tambieacuten es posible inspeccionar el contenido de un solo registro antildeadiendo al comando R el nombre del registro Por ejemplo el comando R IP muestra el

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 9: Arquitectura de Procesador

Arquitectura de Procesadores

contenido del contador de programa Los nombres que pueden utilizarse para los registros son los siguientes AX BX CX DX SP BP SI DI DS ES SS CS IP y F (este uacuteltimo para el registro de estado)

Despueacutes de un comando de este tipo DEBUG responde con un prompt distinto del habitual para indicar que debe introducir el nuevo valor que desea para el registro Pulsando INTRO se vuelve al modo normal

Unidad Aritmetico-Logica

Como su propio nombre indica la unidad Aritmeacutetico-Loacutegica ALU (Arithmetic and Logic Unit) es responsable de realizar ciertas operaciones aritmeacuteticas y loacutegicas

En cuanto a las primeras ya hemos indicado que los primeros procesadores solo eran capaces de realizar operaciones de aritmeacutetica baacutesica con nuacutemeros enteros y que las operaciones con nuacutemeros fraccionarios debiacutean hacerse mediante artificios software Esto habiacutea motivado la aparicioacuten de procesadores especiacuteficos para estas operaciones los denominados coprocesadores matemaacuteticos A partir de la introduccioacuten del Intel 80486 el coprocesador matemaacutetico fue incluido en el procesador

La unidad aritmeacutetica de los procesadores actuales no solo puede realizar las operaciones aritmeacuteticas baacutesicas con nuacutemeros enteros o fraccionarios tambieacuten ejecuta operaciones como raiacutez cuadrada y funciones trascendentes como caacutelculo del seno coseno tangente arcotangente logaritmos y exponenciacioacuten

Unidad de Control

La Unidad de Control CU (Control Unit) funciona como aacuterbitro del funcionamiento del procesador Se encarga de coordinar que todos los elementos funcionen de forma armoacutenica

Para la ejecucioacuten de una instruccioacuten de lenguaje maacutequina se requieren una serie de operaciones elementales y de sucesos fiacutesicos en los diversos componentes del procesador Podriacuteamos poner un ejemplo El procesador es un submarino en inmersioacuten y el comandante da la orden de emerger Esto requiere una serie de operaciones los tripulantes deben abrir unas vaacutelvulas cerrar otras orientar el timoacuten de profundidad ajustar la velocidad etc etc En el procesador la operacioacuten MOV AX BX (mover el contenido del registro BX a AX) requiere tambieacuten la operacioacuten de una serie de vaacutelvulas (aquiacute se llaman puertas loacutegicas) en un orden determinado El conjunto de operaciones necesarias para que se complete cada

Copyright2009copyadrcesgeorg

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg

Page 10: Arquitectura de Procesador

Arquitectura de Procesadores

instruccioacuten de lenguaje-maacutequina se conoce como microcoacutedigo Es un programa de actuacioacuten cableado en silicio (firmware) o en una memoria interna especial del procesador CROM (Control Read Only Memory) y suele comenzar con las maniobras necesarias para traer (Fetch) la proacutexima instruccioacuten (sentildealada por el contador de programa IP) a un moacutedulo de la CU denominado decodificador de instrucciones La Unidad de Control responsable de que todas estas operaciones se ejecuten correctamente es en realidad el poder ejecutivo de la UCP (siguiendo con nuestro siacutemil en las maacutequinas de von Neumann [4] el Poder legislativo seriacutea el programa grabado en memoria)

Como todo lo demaacutes que ocurre en el ordenador estas operaciones se ejecutan seguacuten el compaacutes de las sentildeales de reloj que llegan desde la placa-base En ocasiones se trata de un microcoacutedigo complicado para el que se necesitan varios ciclos de reloj Por ejemplo en el 8080 (un antepasado del 8088 montado en los primeros PCs) el microcoacutedigo de las instrucciones maacutes complejas necesitaba nada menos que 18 ciclos de reloj (CLK) para su ejecucioacuten frente a los 4 ciclos de las instrucciones maacutes raacutepidas

Aunque el microcoacutedigo se mejora constantemente su simplificacioacuten tiene un liacutemite que marca el rendimiento del procesador Las uacutenicas formas de acelerarlo es aumentar la frecuencia del reloj y el procesamiento paralelo y simultaneo de varias instrucciones Esta uacuteltima capacidad requiere una arquitectura especial (suacuteper escalar) de los procesadores a la que ya nos hemos referido

Lenguaje del procesador

Hemos sentildealado que el lenguaje que entiende el procesador es lenguaje-maacutequina pero raacuteramente se emplea como tal se utiliza un lenguaje de un poco maacutes alto nivel ensamblador o macro-ensamblador Cada modelo de procesador tiene su propio lenguaje-maacutequina y necesita su propio ensamblador pero todos los miembros de la saga Intel x86 (incluiacutedos los actuales Pentium) comparten un nuacutecleo que proviene de su ancestro el 8086

Tomado de httpeswikipediaorgwikiProcesadores

Tomado de httpwwwmonografiascomtrabajos16benchmark-procesadoresbenchmark-

procesadoresshtml

Copyright2009copyadrcesgeorg