5 Microprocesador
5 Microprocesador
5 Microprocesador
Placa
3 de 56
16:55
32
bits bits
PMOS
| NMOS
| HMOS
Motorola
| CMOS
68000
80286
16
Intel
8086
8088
GI
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
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.)
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
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
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
Intel 4004
Zilog Z80
Motorola 68000
Intel 80486DX2
15
En un chip, se pueden conectar entre s distintos bloques prediseados, como si fueran componentes que se interconectan en un circuito impreso
ASIC = Application-Specific IC
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.
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.
19
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
24
Ejemplo de segmentacin
25
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
Graphics Processing
27
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
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
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
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
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 es una empresa estadounidense especializada en la electrnica y las telecomunicaciones, establecida en Schaumburg, Illinois, un suburbio de Chicago.
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:
Este procesador puede ser considerado como una mquina de registros generales con arquitectura registro-memoria. El procesador i8086 dispone de cuatro tipos de registros:
Registros de Datos
Extended
16 bits 8bits 8bit
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
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
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.
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.
Otras tecnologas
Intel-HP
Procesadores CISC
Fuente:
S. Furber; ARM System-on-Chip Architecture, 2nd ed; Pearson Education; 2000 16:55
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 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
8086: ADC AX,baz 68000: ADD.W baz,D0 En el 68000 original, la anterior tardaba 8 ciclos (!)
Suponiendo
78 de 56
Diagramas de estado
entradas
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