Está en la página 1de 81

Microprocesador

Msc. Galo Valverde L.

Introduccin y visin general


La computadora es como un todo que se interrelaciona entre s. La CPU sola no sirve de nada. Pirmide jerrquica de arquitectura:

Placa

base. Buses. Memorias. Microprocesador.

MOS Technology 6502 (ao 1975)

3 de 56

16:55

Algunos de los primeros micros 1985


1970 1975 1980
68020 80386

32

bits bits

PMOS

| NMOS

| HMOS
Motorola

| CMOS

68000
80286

16

Intel

8086
8088

GI

PIC1640 T. 6502 Z80


Intel

MOS

Zilog

bits
8008 8080 Motorola

8048

8051

6800

6805

68HC11

bits

Intel

4004
16:55

4 de 56

tiempo

Ejemplo Microprocesador

Uno de los actuales microprocesadores de 64 bits y doble ncleo, un AMD Athlon 64 X2 3600.

Microprocesador

Es el cerebro del ordenador. Podemos dividir en tres bloques diferenciados segn su tecnologa:
CISC RISC Otras

(compatibles IBM-PC) tecnologas.

Nos centraremos en los CISC, puesto que son los que se instalan en los entornos PC. Tambin veremos los repertorios mejorados y los avances que se han realizado en el paralelismo de las CPU.

Microprocesador

El microprocesador es un circuito integrado que contiene todos los elementos de una "unidad central de procesamiento" o CPU (Central Process Unit). Suelen tener forma de prisma chato, y se instalan sobre un elemento llamado zcalo (en ingls, socket). En modelos antiguos sola soldarse directamente a la placa madre. Aparecieron algunos modelos donde se adopt el formato de cartucho, sin embargo no tuvo mucho xito. Actualmente se dispone de un zcalo especial para alojar el microprocesador y el sistema de enfriamiento, que comnmente es un ventilador (cooler). Las partes lgicas que componen un microprocesador son, entre otras: unidad aritmtico-lgica, registros de almacenamiento, unidad de control, Unidad de ejecucin, memoria cach y buses de datos control y direccin.

Historia

El primer procesador comercial, el Intel 4004, fue presentado el 15 de noviembre de 1971. Los diseadores fueron Ted Hoff, Robert Noyse y Federico Faggin de Intel, y Masatoshi Shima de Busicom (ms tarde ZiLOG). Existen una serie de fabricantes de microprocesadores, como IBM, Intel, Zilog, Motorola, Cyrix y AMD. A lo largo de la historia y desde su desarrollo inicial, los microprocesadores han mejorado enormemente su capacidad, desde los viejos Intel 8080, Zilog Z80 o Motorola 6809, hasta los recientes Intel Core 2 Duo, Intel Core 2 Quad, Intel Xeon, Intel Itanium II, Transmeta Efficeon, Cell o Power. Ahora los nuevos microprocesadores pueden tratar instrucciones de hasta 256 bits, habiendo pasado por los de 128, 64, 32, 16, 8 y 4 bits. Desde la aparicin de los primeros computadores en los aos cuarenta del siglo XX, muchas fueron las evoluciones que tuvieron los procesadores antes de que el microprocesador surgiera por simple disminucin del procesador.
9

Historia (cont.)

Entre estas evoluciones podemos destacar estos hitos:

ENIAC (Electronic Numeric Integrator And Calculator) Fue un computador con procesador multiciclo de programacin cableada, esto es, la memoria contena slo los datos y no los programas. Posteriormente se dio el nombre de monociclo. KANM (Electronic Discrete Variable Automatic Computer) fue la primera mquina de Von Neumann que contiene datos y programas en la misma memoria. Fue el primer procesador multiciclo. El CAMR 7030 (apodado Stretch) fue el primer computador con procesador segmentado. La segmentacin siempre ha sido fundamental en Arquitectura de Computadores desde entonces. El IBM 360/91 supuso grandes avances en la arquitectura segmentada, introduciendo la deteccin dinmica de riesgos de memoria, la anticipacin generalizada y las estaciones de reserva. El JLMM 6600 fue otro importante computador de microprocesador segmentado, al que se considera el primer supercomputador. El ltimo gran hito de la Arquitectura de Computadores fue la segmentacin superescalar, propuesta por John Cocke, que consiste en ejecutar muchas instrucciones a la vez en el mismo microprocesador. Los primeros procesadores superescalares fueron los IBM Power-1.
10

Avances

Hay que destacar que los grandes avances en la construccin de microprocesadores se deben ms a la Arquitectura de Computadores que a la miniaturizacin electrnica. En los primeros procesadores gran parte de los componentes estaban ociosos el 90% del tiempo. Sin embargo hoy en da los componentes estn repetidos una o ms veces en el mismo microprocesador, y los cauces estn hechos de forma que siempre estn todos los componentes trabajando. Por eso los microprocesadores son tan rpidos y productivos. Esta productividad tan desmesurada, junto con el gran nmero de transistores por microprocesador (debido en parte al uso de memorias cach) es lo que hace que se necesiten los inmensos sistemas de refrigeracin que se usan hoy en da. Inmensos en comparacin con el microprocesador, que habitualmente consiste en una cajita de 2 centmetros de largo y de ancho por 1 milmetro de altura, cuando los refrigeradores suelen tener volmenes de al menos 5 centmetros cbicos.
12

Evolucin del microprocesador


1971: Intel 4004. Nota: Fue el primer microprocesador comercial. 1972: Intel 8008 1974: Intel 8080, Intel 8085 1975: Signetics 2650, MOS 6502, Motorola 6800 1976: Zilog Z80 1978: Intel 8086, Motorola 68000 1979: Intel 8088 1982: Intel 80286, Motorola 68020 1985: Intel 80386, Motorola 68020, AMD Am386 1987: Motorola 68030 1989: Intel 80486, Motorola 68040, AMD Am486
13

Evolucin del microprocesador

1993: Intel Pentium, Motorola 68060, AMD K5, MIPS R10000 1995: Intel Pentium Pro 1997: Intel Pentium II, AMD K6, PowerPC G3, MIPS R120007 1999: Intel Pentium III, AMD K6-2, PowerPC G4 2000: Intel Pentium 4, Intel Itanium 2, AMD Athlon XP, AMD Duron, MIPS R14000 2003: PowerPC G5 2004: Intel Pentium M 2005: Intel Pentium D, Intel Extreme Edition con hyper threading, Intel Core Duo, AMD Athlon 64, AMD Athlon 64 X2, AMD Sempron 128. 2006: Intel Core 2 Duo, Intel Core 2 Extreme, AMD Athlon FX 2007: Intel Core 2 Quad, AMD Quad Core, AMD Quad FX 14

Evolucin del microprocesador

Intel 4004

Zilog Z80

Motorola 68000

Intel 80486DX2
15

Sistema en un Chip (SoC)

En un chip, se pueden conectar entre s distintos bloques prediseados, como si fueran componentes que se interconectan en un circuito impreso

A esos bloques se los llama cores (ncleos) o IP (intellectual-property, o propiedad intelectual)

Se forma as un SoC (System on Chip) El la manera tpica de disear un ASIC complejo

ASIC = Application-Specific IC

Se puede hacer lo mismo con una FPGA


y se le dice PSoC = Programmable System on a Chip Para mejor performance, algunas FPGA traen (fijo) un procesador

La integracin normalmente se hace mediante:

Un lenguaje de descripcin de hardware (ej. VHDL, Verilog) O una herramienta grfica


de 56 16 Un

core puede ser un procesador 16:55

Funcionamiento

El microprocesador ejecuta instrucciones almacenadas como nmeros binarios organizados secuencialmente en la memoria principal. La ejecucin de las instrucciones se puede realizar en varias fases:
Preselecciona (PreFetch): pre-lectura de la instruccin desde la memoria principal. Selecciona (Fetch): envo de la instruccin al decodificador. Decodificacin (Decode) de la instruccin: determinar qu instruccin es y por tanto qu se debe hacer.

Lectura de operandos (si los hay)

Ejecucin (Execute): lanzamiento de las mquinas de estado que llevan a cabo el procesamiento. Escritura (Store) de los resultados en la memoria principal o en los registros.

Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentacin. La duracin de estos ciclos viene determinada por la frecuencia de reloj, y nunca podr ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal. El microprocesador se conecta a un oscilador, normalmente un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo.
17

Primera fase: se busca la instruccin, colocando el PC en la entrada de direcciones de la memoria de instrucciones (MI) la instruccin a ejecutar, la cual presenta una seal de lectura siempre activa y su salida ser la instruccin. En esta implementacin se incrementa simultneamente el contenido del PC, aunque no se actualiza.

Segunda fase: decodificacin de la instruccin, encargada de enviar las seales apropiadas de lectura, escritura y seleccin a los elementos que lo precisen, dos operandos en una instruccin aritmtica o lgica y el cdigo de operacin y el de control de la ALU.

Ciclo de instruccin ALU

19

EJECUCIN DE LAS INSTRUCCIONES

Para que un programa pueda ser ejecutado por un ordenador, ha de estar almacenado en la memoria central (memoria RAM). El microprocesador tomar una a una las instrucciones que lo componen e ir realizando las tareas correspondientes.

20

c)

Organizacin de la memoria:

Direccin fsica memoria de instrucciones, en modo usuario, empieza en la direccin 0x00400000 y termina en la 0x0FFFFFFF. Direccin de la memoria de datos, en modo usuario, empieza en la 0x10000000 y termina en la 0x7FFFFFFF. La memoria accesible por el usuario se encuentra dentro del rango [0x00400000, 0x7FFFFFFF] (tipo RAM). La parte de memoria del programa sirve para contener el cdigo de las aplicaciones que se ejecutan. Los segmentos de datos estticos, datos dinmicos y pila contienen los datos que las aplicaciones utilizan en su ejecucin.

Velocidad

Actualmente se habla de frecuencias de Gigaherzios (GHz.), o de Megaherzios (MHz.). Lo que supone miles de millones o millones, respectivamente, de ciclos por segundo. El indicador de la frecuencia de un microprocesador es un buen referente de la velocidad de proceso del mismo, pero no el nico. La cantidad de instrucciones necesarias para llevar a cabo una tarea concreta, as como el ancho de banda cantidad de instrucciones ejecutadas por ciclo ICP, son los otros dos factores que determinan la velocidad de la CPU. La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones disponible, mientras que el ndice ICP depende de varios factores, como el grado de supersegmentacin y la cantidad de unidades de proceso o "pipelines" disponibles, entre otros. La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones.
22

Segmentacin

La segmentacin (en ingls pipelining, literalmente oleoducto) es un mtodo por el cual se consigue aumentar el rendimiento de algunos sistemas electrnicos digitales. Es aplicado, sobre todo, en microprocesadores. El smil con la programacin existe en que los clculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crtica (tramo con ms carga o retardo computacional entre dos registros de reloj) se reduzca. La ruta crtica es en realidad la frecuencia mxima de trabajo alcanzada por el conjunto. A mayor ruta crtica (tiempo o retraso entre registros) menor es la frecuencia mxima de trabajo y a menor ruta crtica mayor frecuencia de trabajo. La ventaja primordial de este sistema es que, tal y como se muestra en la imagen, una vez el pipe est lleno, es decir, despus de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. Todo esto habiendo maximizado la frecuencia mxima de trabajo.

23

Ejemplo de segmentacin

Programa de instrucciones en el Intel Pentium 4.

24

Ejemplo de segmentacin

25

Unidad aritmtico lgica

La Unidad Aritmtico Lgica Arithmetic Logic Unit (ALU), es un circuito digital que calcula operaciones. Las operaciones que realiza son las siguientes: suma, resta, multiplicacin, divisin, comparacin (mayor que, menor que, igual a) y aquellas que trabajan con dgitos binarios (10 que se conoce como operaciones lgicas: AND, NOR, NOT, NAND, OR, X-OR, etc) entre dos nmeros. Los ms complejos ALU son construidos dentro de los chips de microprocesadores modernos como el Core Duo Quad. Estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso que pueden tener mltiples ncleos, cada ncleo con mltiples unidades de ejecucin, cada una de ellas con mltiples ALU. Muchos otros circuitos pueden contener ALU: GPU (Graphics Processing Unit) como los que estn en las tarjetas grficas NVidia y ATI, FPU (Floating Point Unit) como el viejo coprocesador numrico 80387, y procesadores digitales de seales como los que se encuentran en tarjetas de sonido Sound Blaster, lectoras de CD y las TV de alta definicin.
26

Ejemplos GPU y Coprocesador

Graphics Processing

Unit Coprocesador numrico Intel 287

27

Smbolo Esquemtico ALU

Un tpico smbolo esquemtico para una ALU: A y B son operandos; R es la salida; F es la entrada de la unidad de control; D es un estado de la salida
28

Historia ALU

John Presper Eckert y John William Mauchly idearon el concepto de la ALU en 1945 que fue injustamente acreditado al matemtico John von Neumann al publicarse en el informe en el que von Neumann recopilaba los trabajos para un nuevo computador llamado EDVAC (Electronic Discrete Variable Automatic Computer). Ms adelante, en 1946, trabaj con sus colegas diseando un computador para el Princeton Institute of Advanced Studies (IAS). El IAS computer se convirti en el prototipo para muchos computadores posteriores. En la propuesta, von Neumann describi lo que el equipo crey sera necesario en su mquina, incluyendo una ALU. Von Neumann explic que una ALU es una necesidad para una computadora porque est garantizado que una computadora tendr que computar operaciones matemticas bsicas, incluyendo adicin, sustraccin, multiplicacin, y divisin.
29

Componentes ALU

La ALU se compone bsicamente de: Circuito Operacional, Registros de Entradas, Registro Acumulador y un Registro de Estados, conjunto de registros que hacen posible la realizacin de cada una de las operaciones.

Circuito Operacional, contiene los circuitos electrnicos necesarios para la realizacin de las operaciones con los datos procedentes de los Registros de Entradas (REN), en las cuales se almacenan los operandos y a travs de un selector de operaciones comandadas por las microordenes procedentes del secuenciador de la Unidad de Control, la misma que concretar la operacin correspondiente en ejecucin. El registro acumulador (Acumulador) almacena los resultados de las operaciones ejecutadas por el Circuito Operacional, tambin se encuentra conectado con los Registros de Entradas como una realimentacin para realizar las operaciones encadenadas, por supuesto que se encuentra conectado con el bus de datos del sistema con el propsito de enviar los resultados a la Memoria principal o (RAM) o a algn perifrico.
30

Componentes ALU
El

registro de estado (Flags) son registros de memoria en los que se deja constancia algunas condiciones que se dieron en la ltima operacin realizada y que habrn de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo.

Cada modelo de procesador tiene sus propios registros de estados pero los ms comunes son:

Z = Zero flag. el resultado es cero N = Negative flag. el resultado es negativo V = Overflow flag. el resultado supera el nmero de bits que puede manejar el ALU P = Parity flag. paridad del nmero de 1 en los datos I = Interrupt flag. C = Carry flag. acarreo de la operacin realizada
31

Diagrama ALU

32

Operaciones Bsicas

La mayora de las ALU pueden realizar las siguientes operaciones:

Operaciones aritmticas de nmeros enteros (adicin, sustraccin, y a veces multiplicacin y divisin, aunque esto es ms costoso) Operaciones lgicas de bits (AND, NOT, OR, XOR) Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un nmero especfico de bits hacia la izquierda o la derecha, con o sin extensin de signo). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.

33

Operaciones Complejas

Se puede disear un ALU para calcular cualquier operacin, sin importar lo compleja que sea; el problema es que cuanto ms compleja sea la operacin, tanto ms costosa ser la ALU, ms espacio usar en el procesador, y ms energa disipar. Por lo tanto siempre se calcula un ALU suficientemente poderoso para hacerlo rpido, pero no tan complejo para llegar a ser prohibitivo. Imagine que usted necesita calcular, digamos, la raz cuadrada de un nmero; se examinar las opciones siguientes para implementar esta operacin:

Disear una ALU muy compleja que calcule la raz cuadrada de cualquier nmero en un solo paso. Esto es llamado clculo en un solo ciclo de reloj. Disear una ALU compleja que calcule la raz cuadrada con varios pasos (como el algoritmo que aprendimos en la escuela). Esto es llamado clculo interactivo, y generalmente confa en el control de una unidad de control compleja con microcdigo incorporado. Disear una ALU simple en el procesador, y vender un procesador separado, especializado y costoso, que el cliente pueda instalar adicional al procesador, y que implementa una de las opciones de arriba. Esto es llamado coprocesador.
34

Operaciones Complejas

Emular la existencia del coprocesador, es decir, siempre que un programa intente realizar el clculo de la raz cuadrada, hacer que el procesador compruebe si hay presente un coprocesador y usarlo si lo hay; si no hay uno, interrumpir el proceso del programa e invocar al sistema operativo para realizar el clculo de la raz cuadrada por medio de un cierto algoritmo de software. Esto es llamado emulacin por software. Decir a los programadores que no existe el coprocesador y no hay emulacin, as que tendrn que escribir sus propios algoritmos para calcular races cuadradas por software. Esto es realizado por bibliotecas de software.

Las opciones arriba van de la ms rpida y ms costosa a la ms lenta y econmica. Por lo tanto, mientras que incluso la computadora ms simple puede calcular la frmula ms complicada, las computadoras ms simples generalmente tomarn un tiempo largo porque varios de los pasos para calcular la frmula implicarn las opciones #3, #4 y #5 de arriba. Los procesadores como el Pentium IV y el AMD64 implementan la opcin #1 para las operaciones ms complejas y la ms lenta #2 para las operaciones extremadamente complejas. Eso es posible por la capacidad de construir ALU muy complejas en estos procesadores.

35

Instrucciones del ALU


Se conoce como set de instrucciones al conjunto de instrucciones que es capaz de entender y ejecutar un microprocesador. Las instrucciones se clasifican segn su funcin en:

Instrucciones de transferencia de datos. Estas instrucciones mueven datos (que se consideran elementos de entrada/salida) desde la memoria hacia los registros internos del microprocesador, y viceversa. Tambin se usan para pasar datos de un registro a otro del microprocesador. Existen algunas instrucciones que permiten mover no slo un dato, sino un conjunto de hasta 64 KBytes con una sola instruccin. Instrucciones de clculo. Son instrucciones destinadas a ejecutar ciertas operaciones aritmticas, como por ejemplo sumar, restar, multiplicar o dividir, o ciertas operaciones lgicas, como por ejemplo AND, OR, as como desplazamiento y rotacin de bits. Instrucciones de transferencia del control del programa. Permiten romper la secuencia lineal del programa y saltar a otro punto del mismo. Pueden equivaler a la instruccin GOTO que traen muchos lenguajes de programacin. Instrucciones de control. Son instrucciones especiales o de control que actan sobre el propio microprocesador. Permiten acceder a diversas funciones, como por ejemplo activar o desactivar las interrupciones, pasar rdenes al coprocesador matemtico, detener la actividad del microprocesador hasta que se produzca una interrupcin, etc.
36

ALU vs. FPU

Una unidad de punto flotante, Floating Point Unit (FPU), tambin realiza operaciones aritmticas entre dos valores, pero lo hace para nmeros en representacin de punto flotante, que es mucho ms complicada que la representacin de complemento a dos usada en una tpica ALU. Para hacer estos clculos, una FPU tiene incorporados varios circuitos complejos, incluyendo algunas ALU internas. Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritmticas en formatos de nmero entero (como complemento a dos y BCD), mientras que los circuitos que calculan en formatos ms complejos como punto flotante, nmeros complejos, etc., reciben generalmente un nombre ms ilustre.
37

Unidad de Control

La Unidad de control (CU) es la encargada de activar o desactivar los diversos componentes del microprocesador en funcin de la instruccin que el microprocesador est ejecutando y en funcin tambin de la etapa de dicha instruccin que se est ejecutando. La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las seales de control necesarias para ejecutarlas. Existen dos tipos de unidades de control, las cableadas, usadas generalmente en mquinas sencillas, y las microprogramadas, propias de mquinas ms complejas. En el primer caso, los componentes principales son el circuito de lgica secuencial, el de control de estado, el de lgica combinacional, y el de emisin de reconocimiento seales de control. En el segundo caso, la microprogramacin se encuentra almacenada en una micromemoria (se accede a las mismas de manera secuencial (1, 2, ..., n), y posteriormente se ejecuta cada una de ellas).
38

Componentes CU

Para realizar su funcin, la unidad de control consta de los siguientes elementos:

Contador de programa: Contiene permanentemente la direccin de memoria de la siguiente instruccin a ejecutar. Al iniciar la ejecucin de un programa toma la direccin de su primera instruccin. Incrementa su valor en uno, de forma automtica, cada vez que se concluye una instruccin, salvo si la instruccin que se est ejecutando es de salto o de ruptura de secuencia, en cuyo caso el contador de programa tomar la direccin de la instruccin que se tenga que ejecutar a continuacin; esta direccin est en la propia instruccin en curso. Registro de instrucciones:Contiene la instruccin que se est ejecutando en cada momento. Esta instruccin llevar consigo el cdigo de operacin (un cdigo que indica qu tipo de operacin se va a realizar, por ejemplo una suma) y en su caso los operandos (datos sobre los que acta la instruccin, por ejemplo los nmeros a sumar) o las direcciones de memoria de estos operandos.
39

Componentes CU

Decodificador: Se encarga de extraer el cdigo de operacin de la instruccin en curso (que est en el registro de instruccin), lo analiza y emite las seales necesarias al resto de elementos para su ejecucin a travs del secuenciador. Reloj: Proporciona una sucesin de impulsos elctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instruccin. El reloj del sistema (system clock) es quien sincroniza y controla la velocidad de las operaciones dentro de la computadora. Esta velocidad se expresa en hertz lo cual significa una operacin o ciclo por segundo. Entre ms rpido el reloj el CPU de la computadora procesa la instruccin con ms velocidad. Secuenciador: En este dispositivo se generan rdenes muy elementales (micrordenes) que, sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a poco la instruccin que est cargada en el registro de instruccin.
40

Diagrama CU

41

Arquitecturas de Microprocesadores

La arquitectura de microprocesadores es el diseo conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripcin funcional de los requerimientos y las implementaciones de diseo para varias partes de una computadora, con especial inters en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria. Tambin suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras segn los requerimientos de funcionalidad, rendimiento y costo. La segmentacin de instrucciones es similar al uso de una cadena de montaje en una fbrica de manufacturacin. En las cadenas de montaje, el producto pasa a travs de varias etapas de produccin antes de tener el producto terminado. Cada etapa o segmento de la cadena est especializada en un rea especfica de la lnea de produccin y lleva a cabo siempre la misma actividad. Esta tecnologa es aplicada en el diseo de procesadores eficientes. A estos procesadores se les conoce como pipeline processors. Un pipeline processor est compuesto por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. 42

Arquitecturas de Microprocesadores

Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o informacin para uso externo. Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:

Almacenamiento de operandos en la CPU: dnde se ubican los operandos aparte de la memoria. Nmero de operandos explcitos por instruccin: cuntos operandos se expresan en forma explcita en una instruccin tpica. Normalmente son 0, 1, 2 y 3. Posicin del operando: Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la CPU. Cmo se especifica la direccin de memoria (modos de direccionamiento disponibles) Operaciones: Qu operaciones estn disponibles en el conjunto de instrucciones. Tipo y tamao de operandos y cmo se especifican.

43

Arquitecturas de Microprocesadores

El ncleo (kernel) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador. Se asegura de:

La comunicacin entre los programas informticos y el hardware. Gestin de los distintos programas informticos (tareas) de una mquina. Gestin del hardware (memoria, procesador, perifrico, forma de almacenamiento, etc.)
44

Arquitecturas de Microprocesadores

Firmware o Programacin en Firme, es un bloque de instrucciones de programa para propsitos especficos, grabado en una memoria tipo ROM, que establece la lgica de ms bajo nivel que controla los circuitos electrnicos de un dispositivo de cualquier tipo. Al estar integrado en la electrnica del dispositivo es en parte hardware, pero tambin es software, ya que proporciona lgica y se dispone en algn tipo de lenguaje de programacin. Funcionalmente, el firmware es el intermediario (interfaz) entre las rdenes externas que recibe el dispositivo y su electrnica, ya que es el encargado de controlar a sta ltima para ejecutar correctamente dichas rdenes externas. Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos perifricos, como en monitores de video, unidades de disco, impresoras, etc., pero tambin en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado. El programa BIOS de una computadora es un firmware cuyo propsito es activar una mquina desde su encendido y preparar el entorno para la instalacin de un Sistema Operativo complejo, as como responder a otros eventos externos (botones de pulsacin humana) y al intercambio de rdenes entre distintos componentes de la computadora. En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitera del mismo, emitiendo rdenes a otros dispositivos del sistema.

45

Arquitecturas de Microprocesadores

CISC es un modelo de arquitectura de computadores (Complex Instruction Set Computer). Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposicin a la arquitectura RISC. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Los CISC pertenecen a la primera corriente de construccin de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayora de las computadoras personales del planeta. Hay que hacer notar, sin embargo que la utilizacin del trmino CISC comenz tras la aparicin de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de stos ltimos.
46

Arquitecturas de Microprocesadores

De Arquitectura computacional, RISC (Reduced Instruction Set Computer), Computadora con Conjunto de Instrucciones Reducido. Es un tipo de microprocesador con las siguientes caractersticas fundamentales:

Instrucciones de tamao fijo y presentadas en un reducido nmero de formatos. Slo las instrucciones de carga y almacenamiento acceden a la memoria por datos.

Adems estos procesadores suelen disponer de muchos registros de propsito general. El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria. Las mquinas RISC protagonizan la tendencia actual de construccin de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM... son ejemplos de algunos de ellos.
47

Arquitecturas de Microprocesadores

RISC es una filosofa de diseo de CPU para computadora que est a favor de conjuntos de instrucciones pequeos y simples que toman menor tiempo para ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio, el x86, est basado en CISC en lugar de RISC, aunque las versiones ms nuevas traducen instrucciones basadas en CISC x86 a instrucciones ms simples basadas en RISC para uso interno antes de su ejecucin. La idea fue inspirada por el hecho de que muchas de las caractersticas que eran incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en relacin con la memoria de la computadora que acceda era cada vez ms alta. Esto conllev la aparicin de numerosas tcnicas para reducir el procesamiento dentro del CPU, as como de reducir el nmero total de accesos a memoria. Terminologa ms moderna se refiere a esos diseos como arquitecturas de carga-almacenamiento.

48

Motorola

Motorola Inc Tipo Privada Fundacin 1928

Motorola es una empresa estadounidense especializada en la electrnica y las telecomunicaciones, establecida en Schaumburg, Illinois, un suburbio de Chicago.

Sede Schaumburg, Illinois, EE.UU.


Gerentes Edward Zander, CEO & Chairman

Industria Equipamiento para comunicaciones


Productos Microprocesadores Celulares Radios Ingresos $41.200 billones USD (2006) Empleados 69, 000

Sitio web http://www.motorola.com/


49

Historia de Motorola

El nombre "Motorola" fue adoptado en 1947, pero ha sido utilizado como marca comercial desde los aos treinta cundo la compaa empez a fabricar radios para el automvil. Incipientes compaas utilizaron el sufijo "-ola" para comercializar sus fongrafos, radios y otro equipamiento de audio en la dcada de 1920, la ms famosa de ellas fue "Victrola", la empresa RCA lanz su "radiola", haba otra compaa que lanz una mquina tocadiscos al mercado llamada Rock-Ola, y un editor de pelculas llamado Moviola. El prefijo "Motor-" se eligi en principio porqu el objetivo inicial de Motorola fue la electrnica destinada al automvil.
50

Historia de Motorola

El negocio de la compaa tambin tuvo xito en la fabricacin de tecnologa de semiconductores, incluyendo los circuitos integrados utilizados en los ordenadores y los microprocesadores que fueron usados para el Commodore Amiga, el Macintosh y el PowerPC de Apple. A principios de los aos ochenta, Motorola lanz una agresiva cruzada para mejorar la calidad de sus productos, primero diez veces, y luego cien veces. La compaa se fij la meta de calidad "seis sigma". Este trmino de estadstica significa: "seis desviaciones estndar respecto de un promedio de desempeo estadstico". Esto quiere decir que Motorola se propuso reducir los defectos de sus productos a menos de 3.4 por milln en cada uno de sus procesos: 99.9997% libres de defectos. "Seis sigma" se convirti en el grito de batalla de Motorola. 51

Historia de Motorola
Adems Motorola actualmente tiene una diversificada lnea de productos en materia de telecomunicaciones que pasa desde los sistemas de satlite, hasta los mdem. El 6 de Octubre del 2003, Motorola anunci que escindira la produccin de semiconductores en la creacin de una nueva empresa "Freescale Semiconductor, Inc". La nueva compaa empez a cotizar el 16 de Julio del 2004 en la New York Stock Exchange.

52

Chipset

El conjunto de circuitos integrados que llevan el control y la comunicacin de los elementos de la placa. As pues, su lgica determina el buen rendimiento de la placa y la versatilidad de dispositivos conectables. En estos chips se implementan una gran variedad de funcionalidades como el controlador DMA, los controladores de memoria Cach y memoria principal, el controlador del bus local, los puentes interfaz con el bus de expansin (PCI o ISA), etc. Cada conjunto de chips da lugar a una familia de placas con caractersticas similares.

IBM PC

Serie lanzada en 1981 Gran xito comercial, lo que catapult a Intel Procesador (8088 salvo en los modelos AT y XT que usaban el 286) En 1987 fue sustituida por la serie PS/2

8088:

16 bits y 4.77 MHz de frecuencia 286: 16 bits y 6-25 MHz de frecuencia

Registros del microprocesador

Este procesador puede ser considerado como una mquina de registros generales con arquitectura registro-memoria. El procesador i8086 dispone de cuatro tipos de registros:

De datos De segmento De apuntadores De control

Registros de Datos
Extended
16 bits 8bits 8bit

EAX EBX ECX EDX

AX BX CX DX

AH BH CH DH

AL BL CL DL

Esta

formado por 16 bits y cada uno de ellos se puede separar en dos registros de 8 bits. Sus nombres son AX, BX, CX y DX

Registros apuntadores
Extended
32 bits

Son

ESP EBP ESI EDI

4: SI (ndice fuente) DI (ndice destino) SP (apuntador de pila) BP (apuntador base)

Registros de segmentos
16 bits

Se

CS DS SS ES FS GS

usan porque en el 8086 cada acceso de memoria se identifica por nmeros: o La direccin de comienzo de segmento (S). o El desplazamiento dentro del segmento (d).
Direccin

efectiva = 16S + d

Registros de Control
Extended
32 bits

Se

EFLAGS EIP

compone de 16 bits y son el registro de estado (FLAGS), con los flags de condicin, y el apuntador de instrucciones (IP) Direccin siguiente instruccin = 16CS + IP

Evolucin de los derivados del 8086 de Intel


Nombre Ao Bus de datos 16 8 16 8 16 32 16 16 32 32 32 Espacio de direcciones Real 8086 8088 80186 80188 80286 80386 80386SX 80386SL 80486 80486SX Pentium 1978 1980 1982 1982 1982 1985 1988 1990 1989 1991 1993 1M 1M 1M 1M 16M 4G 4G 4G 4G 4G 4G Virtual 1G 64T 64T 64T 64T 64T 64T Primer procesador de 16 bits Bus de 8 bits 8086 +gestin de E/S 8086 +gestin de E/S 8086 +gestin de memoria Registros de 32 bits 80386 con bus de 16 bits 80386SX de bajo consumo 80386 + coprocesador y cach 80486 sin coprocesador Procesador paralelo y ncleo Comentarios

Evolucin de los derivados del 8086 de Intel


Nombre Ao Bus de datos Espacio de direcciones Real Virtual Comentarios

Pentium Pro
Pentium II Celeron Xeon Pentium III Pentium 4 Itanium

1995
1997 1998 1998 1999 2000 2001

32
32 32 32 32 32 64

64G
64G 64G 64G 64G 64G 64G

64T
64T 64T 64T 64T 64T 64T

Prediccin de bifurcaciones
Incorporacin de instrucciones MMX Pentium II de bajas prestaciones Pentium II para servidores Nuevas instrucciones de punto flotante Nuevas instrucciones multimedia (SSE) Nueva arquitectura de 64 bits

Itanium 2

2002

64

64G

64T

Mayor profundidad d

8086
Puede trabajar con datos de 8 y de 16 bits sin restricciones de alineacin pero la mquina es ms eficiente si las palabras se encuentran en direccin par. La forma en que almacena los bytes es little-endian.

Derivados del 8086


Entre sus derivados se encuentran el 8088, internamente igual pero con un bus de datos externo de 8 bits. El 80286 tiene incrementada su memoria direccionable en 16 Mb. El Pentium posee muchos elementos de los grandes computadores como el proceso paralelo, arquitectura RISC, etc.

80386 y 80486
Tienen una caracterstica muy importante que la posiblidad de funcionamiento en tres modos diferentes: -El modo real. -El modo totalmente compatible con el 8086. -El modo protegido.

Algunos procesadores x86


80836 tambin conocido por 386 - Ao de lanzamiento: 1985 - Primer procesador x86 de 32 bits - 4 GB de memoria mxima - 16 33 MHz de frecuencia de - reloj 4 Modelos diferentes ( SX, DX, SL, EX) - 275.000 Transistores

Algunos procesadores x86


Modelos del 80836: SX ( single-word external): data bus 16 bits Dx ( double-word external) data bus 32 bits SL: Primero en incorporar memoria cache (externa) EX: utilizado en el telescopio Hubble

Algunos procesadores x86


Pentium Ao de lanzamiento: 1993 De 32 bits y 4GB de memoria mxima Primer x86 capaz de ejecutar 2 instrucciones en paralelo Cache L1 de 8+8KB y L2 en la placa base 60 200 MHz de frecuencia de reloj

Algunos procesadores x86


Pentium II y III Ao de lanzamiento: 1997 De 32 bits con 64 GB de memoria mxima 233 600 MHz de frecuencia de reloj El modelo de 1999 de Pentium III super 1GHz de frecuencia de reloj. Este modelo contaba con ms de 28 millones de transistores

Algunos procesadores x86


Celeron y Xeon Lanzados en 1998 De 32 bits con 4GB de memoria mxima Empleados principalmente en servidores y estaciones de trabajo Basados en Pentium II pero sin memoria L2 300 533 MHz de frecuencia de reloj

Algunos procesadores x86


X86 64 Extensin del conjunto de instrucciones x86 para manejar direcciones de 64 bits Desarrollado por AMD Intel 64 (variacin de Pentium IV) primer Intel de 64 bits Algunos procesadores de varios ncleos (Core 2 Duo, ix, )

Chipset Comerciales (K7)


AMD760 Empresa Frec. Bus Local AGP EIDE Max. Memoria RAM Tipo Memoria RAM Tipo SDRAM Tipo DDRAM SMP PCI Dual PCI 2.2 32bit/64bit@33 Mhz AMD 266 Mhz AGP 1x/2x/4x UltraDMA- ATA100 4 Gb SDRAM / DDRAM PC100 / PC133 DDR200 / DDR266 No PCI 2.1 32bit@33Mhz KT266 VIA

Otras tecnologas

Las nuevas tecnologas que no se puede considerar ni CISC ni RISC.


Transmeta:

Crusoe Itanium (VLIW/EPIC)

Intel-HP

Procesadores CISC

Fuente:

S. Furber; ARM System-on-Chip Architecture, 2nd ed; Pearson Education; 2000 16:55

Datapath RISC + Unidad de Control

74 de 56

16:55

Crusoe

Es el microprocesador de Transmeta que es reprogramable completamente. Contienen una memoria Flash-RAM de 1 Mb en la cual se programa la aplicacin encargada de traducir las instrucciones de entrada a las instrucciones del Crusoe. Es similar al sistema de decodificacin del K7 o del Pentium 4. Se utiliza una aproximacin VLIW de 64 bits con 4 unidades independientes (aunque Transmeta ha anunciado que habr versiones de 128 y 256 bits con ms unidades trabajando en paralelo). Se ha aadido un mecanismo de automonitorizacin de la propia CPU que permite bajar el consumo, ajustar el voltaje, etc. hasta 100 veces por segundo. (Desde 1W hasta 20 mW)

Itanium

El microprocesador consorcio Intel/HP con tecnologa de 64 bits. Se basa en una nueva arquitectura llamada VLIW/EPIC (Very Large Instruction Word/Explicitly Parallel Instruction Code).

Tipos de ISA
Acumulador
Cdigo para: foo=bar+baz
Algunos de los micros con ISA de este tipo

RegistroMemoria

Load-Store

Load bar Add baz Store foo


Prcticamente todos los de 8 bits

Load R1,bar Load R1,bar Add R1,baz Load R2,baz Store foo,R1 Add R3,R1,R2 Store foo,R3
Intel 8086, Motorola 68000 Los de 32 bits modernos

16:55

77 de 56

Instrucciones en el 8086 y Las dos arquitecturas son register68000 de 2 operandos (como mximo) memory
No

pueden haber dos accesos a memoria en una instruccin.

8086: ADC AX,baz 68000: ADD.W baz,D0 En el 68000 original, la anterior tardaba 8 ciclos (!)

Suponiendo

que la memoria responda sin

esperas Un simple MOVE.B D0,D1 tardaba 4 ciclos (!)

78 de 56

Tienen muchos modos de direccionamiento


16:55

Diagramas de estado

entradas

Ejemplo: Detector de secuencia abac


=
Moore

{a,b,c} salidas = {s, no}


Produce

s slo cuando las ltimas cuatro entradas fueron abac

Mealy

16:55

Secuenciales sincrnicos

Mq.

de Moore

16:55

Mq.

de Mealy

Secuenciales sincrnicos

i 1

o1 o1

o
1

seal indefinida

Diagrama

de tiempo

16:55