You are on page 1of 81

Microprocesador

Msc. Galo Valverde L.

1

Introducción y visión general
La computadora es como un “todo” que se interrelaciona entre sí. La CPU sola no sirve de nada.  Pirámide jerárquica de arquitectura:

 Placa

base.  Buses.  Memorias.  Microprocesador.

MOS Technology 6502 (año 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

8

bits
8008 8080 Motorola

8048

8051

6800

6805

68HC11

4

bits

Intel

4004
16:55

4 de 56

tiempo

Ejemplo Microprocesador  Uno de los actuales microprocesadores de 64 bits y doble núcleo. 5 . un AMD Athlon 64 X2 3600.

puesto que son los que se instalan en los entornos PC.   Nos centraremos en los CISC. . También veremos los repertorios mejorados y los avances que se han realizado en el paralelismo de las CPU.Microprocesador   Es el cerebro del ordenador. Podemos dividir en tres bloques diferenciados según su tecnología:  CISC  RISC  Otras (compatibles IBM-PC) tecnologías.

7 . memoria caché y buses de datos control y dirección. sin embargo no tuvo mucho éxito. que comúnmente es un ventilador (cooler). y se instalan sobre un elemento llamado zócalo (en inglés. Las partes lógicas que componen un microprocesador son. Suelen tener forma de prisma chato. Actualmente se dispone de un zócalo especial para alojar el microprocesador y el sistema de enfriamiento. unidad de control. Unidad de ejecución. En modelos antiguos solía soldarse directamente a la placa madre. Aparecieron algunos modelos donde se adoptó el formato de cartucho. entre otras: unidad aritmético-lógica. socket).Microprocesador      El microprocesador es un circuito integrado que contiene todos los elementos de una "unidad central de procesamiento" o CPU (Central Process Unit). registros de almacenamiento.

.

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

propuesta por John Cocke. que consiste en ejecutar muchas instrucciones a la vez en el mismo microprocesador. al que se considera el primer supercomputador. El último gran hito de la Arquitectura de Computadores fue la segmentación superescalar. introduciendo la detección dinámica de riesgos de memoria. la memoria contenía sólo los datos y no los programas. 10 . la anticipación generalizada y las estaciones de reserva. El JLMM 6600 fue otro importante computador de microprocesador segmentado. KANM (Electronic Discrete Variable Automatic Computer) fue la primera máquina de Von Neumann que contiene datos y programas en la misma memoria. Fue el primer procesador multiciclo.)  Entre estas evoluciones podemos destacar estos hitos:       ENIAC (Electronic Numeric Integrator And Calculator) Fue un computador con procesador multiciclo de programación cableada.Historia (cont. Los primeros procesadores superescalares fueron los IBM Power-1. esto es. El IBM 360/91 supuso grandes avances en la arquitectura segmentada. La segmentación siempre ha sido fundamental en Arquitectura de Computadores desde entonces. Posteriormente se dio el nombre de monociclo. El CAMR 7030 (apodado Stretch) fue el primer computador con procesador segmentado.

.

y los cauces están hechos de forma que siempre están todos los componentes trabajando. 12 .Avances    Hay que destacar que los grandes avances en la construcción de microprocesadores se deben más a la Arquitectura de Computadores que a la miniaturización electrónica. Sin embargo hoy en día los componentes están repetidos una o más veces en el mismo microprocesador. que habitualmente consiste en una cajita de 2 centímetros de largo y de ancho por 1 milímetro de altura. junto con el gran número de transistores por microprocesador (debido en parte al uso de memorias caché) es lo que hace que se necesiten los inmensos sistemas de refrigeración que se usan hoy en día. Esta productividad tan desmesurada. cuando los refrigeradores suelen tener volúmenes de al menos 5 centímetros cúbicos. Inmensos en comparación con el microprocesador. Por eso los microprocesadores son tan rápidos y productivos. En los primeros procesadores gran parte de los componentes estaban ociosos el 90% del tiempo.

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

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

Evolución del microprocesador Intel 4004 Zilog Z80 Motorola 68000 Intel 80486DX2 15 .

Verilog)  O una herramienta gráfica  de 56 16 Un core puede ser un procesador 16:55 . como si fueran componentes que se interconectan en un circuito impreso  A esos bloques se los llama cores (núcleos) o IP (intellectual-property. algunas FPGA traen (fijo) un procesador   La integración normalmente se hace mediante:  Un lenguaje de descripción de hardware (ej. se pueden conectar entre sí distintos bloques prediseñados. VHDL.Sistema en un Chip (SoC)  En un chip. o propiedad intelectual)   Se forma así un SoC (System on Chip) El la manera típica de diseñar 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.

 Selecciona (Fetch): envío de la instrucción al decodificador. Funcionamiento  El microprocesador ejecuta instrucciones almacenadas como números binarios organizados secuencialmente en la memoria principal. y concretamente de su grado de segmentación. El microprocesador se conecta a un oscilador. 17 .  Decodificación (Decode) de la instrucción: determinar qué instrucción es y por tanto qué se debe hacer. y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal.  Cada una de estas fases se realiza en uno o varios ciclos de CPU.  Escritura (Store) de los resultados en la memoria principal o en los registros. dependiendo de la estructura del procesador. de modo que genera varios ciclos (o pulsos) en un segundo. La ejecución de las instrucciones se puede realizar en varias fases: Preselecciona (PreFetch): pre-lectura de la instrucción desde la memoria principal. La duración de estos ciclos viene determinada por la frecuencia de reloj. normalmente un cristal de cuarzo capaz de generar pulsos a un ritmo constante.  Lectura de operandos (si los hay)  Ejecución (Execute): lanzamiento de las máquinas de estado que llevan a cabo el procesamiento.

 Segunda fase: decodificación de la instrucción. encargada de enviar las señales apropiadas de lectura. escritura y selección a los elementos que lo precisen. la cual presenta una señal de lectura siempre activa y su salida será la instrucción. dos operandos en una instrucción aritmética o lógica y el código de operación y el de control de la ALU. aunque no se actualiza. En esta implementación se incrementa simultáneamente el contenido del PC.  .Primera fase: se busca la instrucción. colocando el PC en la entrada de direcciones de la memoria de instrucciones (MI) la instrucción a ejecutar.

Ciclo de instrucción ALU 19 .

EJECUCIÓN DE LAS INSTRUCCIONES  Para que un programa pueda ser ejecutado por un ordenador. ha de estar almacenado en la memoria central (memoria RAM). 20 . El microprocesador tomará una a una las instrucciones que lo componen e irá realizando las tareas correspondientes.

en modo usuario. 0x7FFFFFFF] (tipo RAM). La memoria accesible por el usuario se encuentra dentro del rango [0x00400000. datos dinámicos y pila contienen los datos que las aplicaciones utilizan en su ejecución. empieza en la 0x10000000 y termina en la 0x7FFFFFFF. . empieza en la dirección 0x00400000 y termina en la 0x0FFFFFFF. Los segmentos de datos estáticos. Dirección de la memoria de datos. en modo usuario. La parte de memoria del programa sirve para contener el código de las aplicaciones que se ejecutan.c) Organización de la memoria:     Dirección física memoria de instrucciones.

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

los resultados de cada comando vienen uno tras otro cada flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. tal y como se muestra en la imagen. literalmente oleoducto) es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales. en microprocesadores.Segmentación    La segmentación (en inglés pipelining. después de una latencia de cuatro en la imagen. La ruta crítica es en realidad la frecuencia máxima de trabajo alcanzada por el conjunto. El símil con la programación existe en que los cálculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crítica (tramo con más carga o retardo computacional entre dos registros de reloj) se reduzca. sobre todo. A mayor ruta crítica (tiempo o retraso entre registros) menor es la frecuencia máxima de trabajo y a menor ruta crítica mayor frecuencia de trabajo. una vez el pipe está lleno. Es aplicado. es decir. La ventaja primordial de este sistema es que. Todo esto habiendo maximizado la frecuencia máxima de trabajo. 23 .

Ejemplo de segmentación Programa de instrucciones en el Intel Pentium 4. 24 .

Ejemplo de segmentación 25 .

NOT. igual a) y aquellas que trabajan con dígitos binarios (10 que se conoce como operaciones lógicas: AND. cada núcleo con múltiples unidades de ejecución. FPU (Floating Point Unit) como el viejo coprocesador numérico 80387. menor que. etc) entre dos números. OR. NOR. es un circuito digital que calcula operaciones. Estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso que pueden tener múltiples núcleos. lectoras de CD y las TV de alta definición. y procesadores digitales de señales como los que se encuentran en tarjetas de sonido Sound Blaster. división. 26 . resta. Los más complejos ALU son construidos dentro de los chips de microprocesadores modernos como el Core Duo Quad. multiplicación. X-OR.Unidad aritmético lógica    La Unidad Aritmético Lógica “Arithmetic Logic Unit” (ALU). Las operaciones que realiza son las siguientes: suma. Muchos otros circuitos pueden contener ALU: GPU (Graphics Processing Unit) como los que están en las tarjetas gráficas NVidia y ATI. comparación (mayor que. NAND. cada una de ellas con múltiples ALU.

Ejemplos GPU y Coprocesador  Graphics Processing Unit Coprocesador numérico Intel 287 27 .

F es la entrada de la unidad de control.Símbolo Esquemático ALU  Un típico símbolo esquemático para una ALU: A y B son operandos. R es la salida. D es un estado de la salida 28 .

incluyendo una ALU.Historia ALU    John Presper Eckert y John William Mauchly idearon el concepto de la ALU en 1945 que fue injustamente acreditado al matemático 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). von Neumann describió lo que el equipo creyó sería necesario en su máquina. y división. en 1946. trabajó con sus colegas diseñando un computador para el Princeton Institute of Advanced Studies (IAS). sustracción. 29 . Más adelante. El IAS computer se convirtió en el prototipo para muchos computadores posteriores. incluyendo adición. Von Neumann explicó que una ALU es una necesidad para una computadora porque está garantizado que una computadora tendrá que computar operaciones matemáticas básicas. En la propuesta. multiplicación.

la misma que concretará la operación correspondiente en ejecución. por supuesto que se encuentra conectado con el bus de datos del sistema con el propósito de enviar los resultados a la Memoria principal o (RAM) o a algún periférico. contiene los circuitos electrónicos necesarios para la realización de las operaciones con los datos procedentes de los Registros de Entradas (REN). conjunto de registros que hacen posible la realización de cada una de las operaciones.Componentes ALU  La ALU se compone básicamente de: Circuito Operacional. 30 . Registro Acumulador y un Registro de Estados. en las cuales se almacenan los operandos y a través de un selector de operaciones comandadas por las microordenes procedentes del secuenciador de la Unidad de Control. Registros de Entradas. El registro acumulador (Acumulador) almacena los resultados de las operaciones ejecutadas por el Circuito Operacional.   Circuito Operacional. también se encuentra conectado con los Registros de Entradas como una realimentación para realizar las operaciones encadenadas.

tiene que quedar constancia si el resultado fue cero. en el caso de hacer una resta. Por ejemplo.  Cada modelo de procesador tiene sus propios registros de estados pero los más comunes son:       Z = Zero flag. paridad del número de 1 en los datos I = Interrupt flag. positivo o negativo. el resultado es cero N = Negative flag. C = Carry flag.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 operación realizada y que habrán de ser tenidas en cuenta en operaciones posteriores. el resultado es negativo V = Overflow flag. acarreo de la operación realizada 31 . el resultado supera el número de bits que puede manejar el ALU P = Parity flag.

Diagrama ALU 32 .

Operaciones Básicas  La mayoría de las ALU pueden realizar las siguientes operaciones:    Operaciones aritméticas de números enteros (adición. NOT. XOR) Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha. OR. con o sin extensión de signo). sustracción. y a veces multiplicación y división. 33 . aunque esto es más costoso) Operaciones lógicas de bits (AND. Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.

sin importar lo compleja que sea.  Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el algoritmo que aprendimos en la escuela). y más energía disipará. la raíz cuadrada de un número. pero no tan complejo para llegar a ser prohibitivo. especializado y costoso. digamos. más espacio usará en el procesador. y generalmente confía en el control de una unidad de control compleja con microcódigo incorporado.  Diseñar una ALU simple en el procesador. Imagine que usted necesita calcular. tanto más costosa será la ALU. y que implementa una de las opciones de arriba. se examinará las opciones siguientes para implementar esta operación:  Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número en un solo paso.Operaciones Complejas   Se puede diseñar un ALU para calcular cualquier operación. Esto es llamado coprocesador. Por lo tanto siempre se calcula un ALU suficientemente poderoso para hacerlo rápido. Esto es llamado cálculo interactivo. que el cliente pueda instalar adicional al procesador. Esto es llamado cálculo en un solo ciclo de reloj. y vender un procesador separado. el problema es que cuanto más compleja sea la operación. 34 .

Por lo tanto. hacer que el procesador compruebe si hay presente un coprocesador y usarlo si lo hay. las computadoras más simples generalmente tomarán un tiempo largo porque varios de los pasos para calcular la fórmula implicarán las opciones #3. interrumpir el proceso del programa e invocar al sistema operativo para realizar el cálculo de la raíz cuadrada por medio de un cierto algoritmo de software. es decir. Eso es posible por la capacidad de construir ALU muy complejas en estos procesadores. Esto es llamado emulación por software. #4 y #5 de arriba. así que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por software. Esto es realizado por bibliotecas de software. mientras que incluso la computadora más simple puede calcular la fórmula más complicada.   Las opciones arriba van de la más rápida y más costosa a la más lenta y económica. siempre que un programa intente realizar el cálculo de la raíz cuadrada.Operaciones Complejas  Emular la existencia del coprocesador. si no hay uno.  Decir a los programadores que no existe el coprocesador y no hay emulación. 35 . Los procesadores como el Pentium IV y el AMD64 implementan la opción #1 para las operaciones más complejas y la más lenta #2 para las operaciones extremadamente complejas.

OR. detener la actividad del microprocesador hasta que se produzca una interrupción. como por ejemplo sumar. como por ejemplo AND. etc. sino un conjunto de hasta 64 KBytes con una sola instrucción.  Instrucciones de cálculo. Pueden equivaler a la instrucción GOTO que traen muchos lenguajes de programación. como por ejemplo activar o desactivar las interrupciones. Las instrucciones se clasifican según su función en:  Instrucciones de transferencia de datos. así como desplazamiento y rotación de bits. 36 . Son instrucciones especiales o de control que actúan sobre el propio microprocesador. Existen algunas instrucciones que permiten mover no sólo un dato. También se usan para pasar datos de un registro a otro del microprocesador. o ciertas operaciones lógicas. y viceversa. Estas instrucciones mueven datos (que se consideran elementos de entrada/salida) desde la memoria hacia los registros internos del microprocesador.Instrucciones del ALU   Se conoce como set de instrucciones al conjunto de instrucciones que es capaz de entender y ejecutar un microprocesador.  Instrucciones de control. multiplicar o dividir. pasar órdenes al coprocesador matemático.  Instrucciones de transferencia del control del programa. Permiten romper la secuencia lineal del programa y saltar a otro punto del mismo. Permiten acceder a diversas funciones. restar. Son instrucciones destinadas a ejecutar ciertas operaciones aritméticas.

Para hacer estos cálculos. etc. Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritméticas en formatos de número entero (como complemento a dos y BCD). que es mucho más complicada que la representación de complemento a dos usada en una típica ALU. FPU   Una unidad de punto flotante. también realiza operaciones aritméticas entre dos valores.. reciben generalmente un nombre más ilustre.ALU vs. incluyendo algunas ALU internas. una FPU tiene incorporados varios circuitos complejos. 37 . Floating Point Unit (FPU). mientras que los circuitos que calculan en formatos más complejos como punto flotante. números complejos. pero lo hace para números en representación de punto flotante.

el de lógica combinacional. y el de emisión de reconocimiento señales de control. los componentes principales son el circuito de lógica secuencial.Unidad de Control    La Unidad de control (CU) es la encargada de activar o desactivar los diversos componentes del microprocesador en función de la instrucción que el microprocesador esté ejecutando y en función también de la etapa de dicha instrucción que se esté ejecutando. En el segundo caso. las cableadas. La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las señales de control necesarias para ejecutarlas. Existen dos tipos de unidades de control. n). 38 . usadas generalmente en máquinas sencillas. propias de máquinas más complejas. el de control de estado... . y las microprogramadas. En el primer caso. la microprogramación se encuentra almacenada en una micromemoria (se accede a las mismas de manera secuencial (1. y posteriormente se ejecuta cada una de ellas).. 2.

por ejemplo los números a sumar) o las direcciones de memoria de estos operandos. Incrementa su valor en uno. salvo si la instrucción que se está ejecutando es de salto o de ruptura de secuencia. cada vez que se concluye una instrucción. Registro de instrucciones:Contiene la instrucción que se está ejecutando en cada momento. en cuyo caso el contador de programa tomará la dirección de la instrucción que se tenga que ejecutar a continuación. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. de forma automática. Esta instrucción llevará consigo el código de operación (un código que indica qué tipo de operación se va a realizar.Componentes CU  Para realizar su función. 39 . la unidad de control consta de los siguientes elementos:   Contador de programa: Contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. esta dirección está en la propia instrucción en curso. por ejemplo una suma) y en su caso los operandos (datos sobre los que actúa la instrucción.

Esta velocidad se expresa en hertz lo cual significa una operación o ciclo por segundo. lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador.Componentes CU    Decodificador: Se encarga de extraer el código de operación de la instrucción en curso (que está en el registro de instrucción). El reloj del sistema (system clock) es quien sincroniza y controla la velocidad de las operaciones dentro de la computadora. 40 . Entre más rápido el reloj el CPU de la computadora procesa la instrucción con más velocidad. que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción. Secuenciador: En este dispositivo se generan órdenes muy elementales (microórdenes) que. Reloj: Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante). hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción. sincronizadas por los impulsos de reloj.

Diagrama CU 41 .

rendimiento y costo. La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. 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. Es decir. A estos procesadores se les conoce como “pipeline processors”. También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad. 42 . es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora. Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad.Arquitecturas de Microprocesadores     La arquitectura de microprocesadores es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. el producto pasa a través de varias etapas de producción antes de tener el producto terminado. Esta tecnología es aplicada en el diseño de procesadores eficientes. En las cadenas de montaje. con especial interés en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria.

o deben estar algunos o todos en los registros internos de la CPU. Tipo y tamaño de operandos y cómo se especifican. 1. Normalmente son 0. 2 y 3. Cómo se especifica la dirección de memoria (modos de direccionamiento disponibles) Operaciones: Qué operaciones están disponibles en el conjunto de instrucciones. Posición del operando: Puede cualquier operando estar en memoria?. Número de operandos explícitos por instrucción: cuántos operandos se expresan en forma explícita en una instrucción típica. Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:      Almacenamiento de operandos en la CPU: dónde se ubican los operandos aparte de la memoria. 43 .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 información para uso externo.

 Gestión del hardware (memoria.Arquitecturas de Microprocesadores   El núcleo (kernel) es la parte fundamental de un sistema operativo. procesador. forma de almacenamiento. 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. lo que facilita su uso para el programador. el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo. Se asegura de:  La comunicación entre los programas informáticos y el hardware. Acceder al hardware directamente puede ser realmente complejo.) 44 . Esto permite esconder la complejidad. por lo que los núcleos suelen implementar una serie de abstracciones del hardware. etc.  Gestión de los distintos programas informáticos (tareas) de una máquina. periférico. y proporciona una interfaz limpia y uniforme al hardware subyacente.

así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la computadora. como en monitores de video. El programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para la instalación de un Sistema Operativo complejo. que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. chips de memoria principal y en general en cualquier circuito integrado. impresoras.Arquitecturas de Microprocesadores     Firmware o Programación en Firme. 45 . etc. el firmware es el intermediario (interfaz) entre las órdenes externas que recibe el dispositivo y su electrónica. emitiendo órdenes a otros dispositivos del sistema. unidades de disco. Al estar integrado en la electrónica del dispositivo es en parte hardware. pero también en los propios microprocesadores. grabado en una memoria tipo ROM. pero también es software. Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos periféricos.. ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas. ya que proporciona lógica y se dispone en algún tipo de lenguaje de programación. es un bloque de instrucciones de programa para propósitos específicos. Funcionalmente. En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo.

Ejemplos de ellos son: Motorola 68000. Los CISC pertenecen a la primera corriente de construcción de procesadores. Este tipo de arquitectura dificulta el paralelismo entre instrucciones. Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales del planeta. Hay que hacer notar. por lo que. antes del desarrollo de los RISC. en contraposición a la arquitectura RISC. la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC. 46 .Arquitecturas de Microprocesadores     CISC es un modelo de arquitectura de computadores (Complex Instruction Set Computer). llamadas generalmente microinstrucciones. en la actualidad. sin embargo que la utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos. 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.

Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. DEC Alpha. Computadora con Conjunto de Instrucciones Reducido. ARM. Sólo las instrucciones de carga y almacenamiento acceden a la memoria por datos. RISC (Reduced Instruction Set Computer).. MIPS.   Además estos procesadores suelen disponer de muchos registros de propósito general.Arquitecturas de Microprocesadores  De Arquitectura computacional. PowerPC. 47 . son ejemplos de algunos de ellos.. Es un tipo de microprocesador con las siguientes características fundamentales:   Instrucciones de tamaño fijo y presentadas en un reducido número de formatos. El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.Arquitecturas de Microprocesadores    RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse. Esto conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU. está basado en CISC en lugar de RISC. Terminología más moderna se refiere a esos diseños como arquitecturas de carga-almacenamiento. 48 . Además. El tipo de procesador más comúnmente utilizado en equipos de escritorio. La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. así como de reducir el número total de accesos a memoria. la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. el x86.

Sede Schaumburg. Gerentes Edward Zander. un suburbio de Chicago. 000 Sitio web http://www. CEO & Chairman Industria Equipamiento para comunicaciones Productos Microprocesadores Celulares Radios Ingresos $41. Illinois.motorola. EE.Motorola  Motorola Inc Tipo Privada Fundación 1928 Motorola es una empresa estadounidense especializada en la electrónica y las telecomunicaciones.com/ 49 .UU. Illinois.200 billones USD (2006) Empleados 69. establecida en Schaumburg.

y un editor de películas llamado Moviola.Historia de Motorola   El nombre "Motorola" fue adoptado en 1947. radios y otro equipamiento de audio en la década de 1920. 50 . la empresa RCA lanzó su "radiola". El prefijo "Motor-" se eligió en principio porqué el objetivo inicial de Motorola fue la electrónica destinada al automóvil. había otra compañía que lanzó una máquina tocadiscos al mercado llamada Rock-Ola. la más famosa de ellas fue "Victrola". Incipientes compañías utilizaron el sufijo "-ola" para comercializar sus fonógrafos. pero ha sido utilizado como marca comercial desde los años treinta cuándo la compañía empezó a fabricar radios para el automóvil.

primero diez veces. 51 .4 por millón en cada uno de sus procesos: 99.9997% libres de defectos. A principios de los años ochenta. "Seis sigma" se convirtió en el grito de batalla de Motorola. Motorola lanzó una agresiva cruzada para mejorar la calidad de sus productos.Historia de Motorola   El negocio de la compañía también tuvo éxito en la fabricación de tecnología de semiconductores. Esto quiere decir que Motorola se propuso reducir los defectos de sus productos a menos de 3. y luego cien veces. el Macintosh y el PowerPC de Apple. incluyendo los circuitos integrados utilizados en los ordenadores y los microprocesadores que fueron usados para el Commodore Amiga. La compañía se fijó la meta de calidad "seis sigma". Este término de estadística significa: "seis desviaciones estándar respecto de un promedio de desempeño estadístico".

La nueva compañía empezó a cotizar el 16 de Julio del 2004 en la New York Stock Exchange. hasta los módem.  52 .Historia de Motorola Además Motorola actualmente tiene una diversificada línea de productos en materia de telecomunicaciones que pasa desde los sistemas de satélite. Motorola anunció que escindiría la producción de semiconductores en la creación de una nueva empresa "Freescale Semiconductor. Inc".  El 6 de Octubre del 2003.

. etc. su lógica determina el buen rendimiento de la placa y la versatilidad de dispositivos conectables.Chipset    El conjunto de circuitos integrados que llevan el control y la comunicación de los elementos de la placa. Cada conjunto de chips da lugar a una familia de placas con características similares. Así pues. el controlador del bus local. los puentes interfaz con el bus de expansión (PCI o ISA). los controladores de memoria Caché y memoria principal. En estos chips se implementan una gran variedad de funcionalidades como el controlador DMA.

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 .IBM PC     Serie lanzada en 1981 Gran éxito comercial.

Registros del microprocesador • • Este procesador puede ser considerado como una máquina de registros generales con arquitectura registro-memoria. El procesador i8086 dispone de cuatro tipos de registros:     De datos De segmento De apuntadores De control .

Sus nombres son AX. CX y DX .Registros de Datos Extended 16 bits 8bits 8bit EAX EBX ECX EDX AX BX CX DX AH BH CH DH AL BL CL DL s Esta formado por 16 bits y cada uno de ellos se puede separar en dos registros de 8 bits. BX.

Registros apuntadores Extended 32 bits Son • ESP EBP ESI EDI • • • 4: SI (índice fuente) DI (índice destino) SP (apuntador de pila) BP (apuntador base) .

Dirección efectiva = 16S + d . o El desplazamiento dentro del segmento (d).Registros de segmentos 16 bits Se CS DS SS ES FS GS usan porque en el 8086 cada acceso de memoria se identifica por números: o La dirección de comienzo de segmento (S).

con los flags de condición. y el apuntador de instrucciones (IP) Dirección siguiente instrucción = 16CS + IP .Registros de Control Extended 32 bits Se EFLAGS EIP compone de 16 bits y son el registro de estado (FLAGS).

Evolución de los derivados del 8086 de Intel Nombre Año 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 +gestión de E/S 8086 +gestión de E/S 8086 +gestión 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 núcleo Comentarios .

Evolución de los derivados del 8086 de Intel Nombre Año 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 Predicción de bifurcaciones Incorporación 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 alineación pero la máquina es más eficiente si las palabras se encuentran en dirección par. La forma en que almacena los bytes es little-endian.

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

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

SL.000 Transistores . DX.reloj 4 Modelos diferentes ( SX.Año de lanzamiento: 1985 .Algunos procesadores x86 80836 también conocido por 386 .4 GB de memoria máxima .Primer procesador x86 de 32 bits . EX) .275.16 – 33 MHz de frecuencia de .

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  Año de lanzamiento: 1993  De 32 bits y 4GB de memoria máxima  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  Año de lanzamiento: 1997  De 32 bits con 64 GB de memoria máxima  233 – 600 MHz de frecuencia de reloj  El modelo de 1999 de Pentium III superó 1GHz de frecuencia de reloj. Este modelo contaba con más de 28 millones de transistores .

Algunos procesadores x86 Celeron y Xeon  Lanzados en 1998  De 32 bits con 4GB de memoria máxima  Empleados principalmente en servidores y estaciones de trabajo  Basados en Pentium II pero sin memoria L2  300 – 533 MHz de frecuencia de reloj  .

ix.Algunos procesadores x86 X86 – 64  Extensión del conjunto de instrucciones x86 para manejar direcciones de 64 bits  Desarrollado por AMD  Intel 64 (variación de Pentium IV) primer Intel de 64 bits  Algunos procesadores de varios núcleos (Core 2 Duo. …)  .

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

Otras tecnologías

Las nuevas tecnologías 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 aplicación encargada de traducir las instrucciones de entrada a las instrucciones del Crusoe. Es similar al sistema de decodificación del K7 o del Pentium 4. Se utiliza una aproximación VLIW de 64 bits con 4 unidades independientes (aunque Transmeta ha anunciado que habrá versiones de 128 y 256 bits con más unidades trabajando en paralelo). Se ha añadido un mecanismo de automonitorización 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 tecnología de 64 bits. . Se basa en una nueva arquitectura llamada VLIW/EPIC (Very Large Instruction Word/Explicitly Parallel Instruction Code).

R1 Add R3.R3 Intel 8086.R2 Store foo.R1. Motorola 68000 Los de 32 bits modernos 16:55 77 de 56 .bar Load R1.Tipos de ISA Acumulador Código para: foo=bar+baz Algunos de los micros con ISA de este tipo RegistroMemoria Load-Store Load bar Add baz Store foo Prácticamente todos los de 8 bits Load R1.bar Add R1.baz Store foo.baz Load R2.

W baz.D1 tardaba 4 ciclos (!)  78 de 56 Tienen muchos modos de direccionamiento 16:55 . 8086: ADC AX.Instrucciones en el 8086 y  Las dos arquitecturas son register68000 de 2 operandos (como máximo) memory  No pueden haber dos accesos a memoria en una instrucción.B D0. la anterior tardaba 8 ciclos (!)   Suponiendo que la memoria respondía sin esperas  Un simple MOVE.baz 68000: ADD.D0  En el 68000 original.

no} Produce “sí” sólo cuando las últimas cuatro entradas fueron “abac” Mealy 16:55 .c} salidas = {sí.b.Diagramas de estado  entradas Ejemplo: Detector de secuencia “abac” = Moore {a.

de Moore 16:55 Máq.Secuenciales sincrónicos Máq. de Mealy .

Secuenciales sincrónicos i 1 o1 o1 o 1 = señal indefinida Diagrama de tiempo 16:55 .