1 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
zócalo (en inglés, socket). En modelos antiguos
solía 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 zócalo especial para alojar el microprocesador y el
sistema de enfriamiento, que comúnmente es un ventilador
(cooler). Las partes lógicas que componen un
microprocesador son, entre otras: unidad
aritmético-lógica, registros de almacenamiento,
unidad de control, Unidad de ejecución, memoria
caché y buses de datos control y dirección.
2 Ejemplo Microprocesador Uno de los actuales microprocesadores
de 64 bits y doble núcleo, un AMD Athlon 64 X2 3600.
3 Historia El primer procesador comercial, el Intel 4004, fue
presentado el 15 de noviembre de 1971. Los diseñadores
fueron Ted Hoff, Robert Noyse y Federico Faggin de Intel, y
Masatoshi Shima de Busicom (más 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 aparición de los primeros
computadores en los años cuarenta del siglo XX, muchas
fueron las evoluciones que tuvieron los procesadores antes de que
el microprocesador surgiera por simple disminución del
procesador.
4 Historia (cont.) Entre estas evoluciones podemos destacar estos
hitos: ENIAC (Electronic Numeric Integrator And Calculator) Fue
un computador con procesador multiciclo de programación
cableada, esto es, la memoria contenía sólo los
datos y no los programas. Posteriormente se dio el nombre de
monociclo. 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. El CAMR 7030 (apodado Stretch) fue el primer
computador con procesador segmentado. La segmentación
siempre ha sido fundamental en Arquitectura de Computadores desde
entonces. El IBM 360/91 supuso grandes avances en la arquitectura
segmentada, introduciendo la detección dinámica de
riesgos de memoria, la anticipación 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 segmentación
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.
5 Ejemplos Microprocesadores Motorola 68000 Intel 80486DX2 Intel
4004 Zilog Z80
6 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. En los primeros procesadores gran parte de
los componentes estaban ociosos el 90% del tiempo. Sin embargo
hoy en día los componentes están repetidos una o
más veces en el mismo microprocesador, y los cauces
están hechos de forma que siempre están todos los
componentes trabajando. Por eso los microprocesadores son tan
rápidos y productivos. Esta productividad tan desmesurada,
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. Inmensos en
comparación con el microprocesador, que habitualmente
consiste en una cajita de 2 centímetros de largo y de
ancho por 1 milímetro de altura, cuando los refrigeradores
suelen tener volúmenes de al menos 5 centímetros
cúbicos.
7 Evolución 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
8 Evolución 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
9 Funcionamiento El microprocesador ejecuta instrucciones
almacenadas como números binarios organizados
secuencialmente en la memoria principal. La ejecución de
las instrucciones se puede realizar en varias fases:
Preselecciona (PreFetch): pre-lectura de la instrucción
desde la memoria principal. Selecciona (Fetch): envío de
la instrucción al decodificador. Decodificación
(Decode) de la instrucción: determinar qué
instrucción es y por tanto qué se debe hacer.
Lectura de operandos (si los hay) Ejecución (Execute):
lanzamiento de las máquinas 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 segmentación.
La duración 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.
10 Ciclo de instrucción ALU
11 EJECUCIÓN DE LAS INSTRUCCIONES Para que un programa
pueda ser ejecutado por una computadora, 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.
12 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
supersegmentación 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.
13 Segmentación La segmentación (en inglés
pipelining, literalmente oleoducto) es un método por el
cual se consigue aumentar el rendimiento de algunos sistemas
electrónicos digitales. Es aplicado, sobre todo, en
microprocesadores. El nombre viene de que para impulsar el gas en
un oleoducto a la máxima velocidad es necesario dividir el
oleoducto en tramos y colocar una bomba que de un nuevo impulso
al gas. 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. La ruta crítica es en realidad la
frecuencia máxima de trabajo alcanzada por el conjunto. 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. La ventaja primordial
de este sistema es que, tal y como se muestra en la imagen, una
vez el pipe está lleno, es decir, después 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 máxima de trabajo.
14 Ejemplo de segmentación Programa de instrucciones en el
Intel Pentium 4.
15 Ejemplo de segmentación
16 Unidad aritmético lógica La Unidad
Aritmético Lógica “Arithmetic Logic
Unit” (ALU), es un circuito digital que calcula
operaciones. Las operaciones que realiza son las siguientes:
suma, resta, multiplicación, división,
comparación (mayor que, menor que, igual a) y aquellas que
trabajan con dígitos binarios (10 que se conoce como
operaciones lógicas: AND, NOR, NOT, NAND, OR, X-OR, etc)
entre dos números. Los más 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 múltiples
núcleos, cada núcleo con múltiples unidades
de ejecución, cada una de ellas con múltiples ALU.
Muchos otros circuitos pueden contener ALU: GPU (Graphics
Processing Unit) como los que están en las tarjetas
gráficas NVidia y ATI, FPU (Floating Point Unit) como el
viejo coprocesador numérico 80387, y procesadores
digitales de señales como los que se encuentran en
tarjetas de sonido Sound Blaster, lectoras de CD y las TV de alta
definición.
17 Ejemplos GPU y Coprocesador Graphics Processing Unit
Coprocesador numérico Intel 287
18 Símbolo Esquemático ALU Un típico
símbolo esquemático 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
19 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). Más adelante, en 1946, trabajó
con sus colegas diseñando 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ó sería necesario en su
máquina, 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 matemáticas básicas,
incluyendo adición, sustracción,
multiplicación, y división.
20 Componentes ALU La ALU se compone básicamente de:
Circuito Operacional, Registros de Entradas, Registro Acumulador
y un Registro de Estados, conjunto de registros que hacen posible
la realización de cada una de las operaciones. Circuito
Operacional, contiene los circuitos electrónicos
necesarios para la realización de las operaciones con los
datos procedentes de los Registros de Entradas (REN), 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, la misma
que concretará la operación correspondiente en
ejecución. El registro acumulador (Acumulador) almacena
los resultados de las operaciones ejecutadas por el Circuito
Operacional, también se encuentra conectado con los
Registros de Entradas como una realimentación para
realizar las operaciones encadenadas, 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.
21 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. 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 más comunes son: Z = Zero flag. el
resultado es cero N = Negative flag. el resultado es negativo V =
Overflow flag. el resultado supera el número de bits que
puede manejar el ALU P = Parity flag. paridad del número
de 1 en los datos I = Interrupt flag. C = Carry flag. acarreo de
la operación realizada
22 Diagrama ALU
23 Operaciones Básicas La mayoría de las ALU pueden
realizar las siguientes operaciones: Operaciones
aritméticas de números enteros (adición,
sustracción, y a veces multiplicación y
división, aunque esto es más costoso) Operaciones
lógicas de bits (AND, NOT, OR, 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, con o sin extensión de signo). Los
desplazamientos pueden ser interpretados como multiplicaciones o
divisiones por 2.
24 Operaciones Complejas Se puede diseñar un ALU para
calcular cualquier operación, sin importar lo compleja que
sea; el problema es que cuanto más compleja sea la
operación, tanto más costosa será la ALU,
más espacio usará en el procesador, y más
energía disipará. Por lo tanto siempre se calcula
un ALU suficientemente poderoso para hacerlo rápido, pero
no tan complejo para llegar a ser prohibitivo. Imagine que usted
necesita calcular, digamos, la raíz cuadrada de un
número; 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. Esto es llamado cálculo en
un solo ciclo de reloj. Diseñar una ALU compleja que
calcule la raíz cuadrada con varios pasos (como el
algoritmo que aprendimos en la escuela). Esto es llamado
cálculo interactivo, 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, 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.
25 Operaciones Complejas Emular la existencia del coprocesador,
es decir, siempre que un programa intente realizar el
cálculo de la raíz 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 cálculo de
la raíz cuadrada por medio de un cierto algoritmo de
software. Esto es llamado emulación por software. Decir a
los programadores que no existe el coprocesador y no hay
emulación, así que tendrán que escribir sus
propios algoritmos para calcular raíces cuadradas por
software. Esto es realizado por bibliotecas de software. Las
opciones arriba van de la más rápida y más
costosa a la más lenta y económica. Por lo tanto,
mientras que incluso la computadora más simple puede
calcular la fórmula más complicada, 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, #4 y #5 de
arriba. 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. Eso es posible por la capacidad de
construir ALU muy complejas en estos procesadores.
26 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 según su
función 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. También se usan para pasar
datos de un registro a otro del microprocesador. Existen algunas
instrucciones que permiten mover no sólo un dato, sino un
conjunto de hasta 64 KBytes con una sola instrucción.
Instrucciones de cálculo. Son instrucciones destinadas a
ejecutar ciertas operaciones aritméticas, como por ejemplo
sumar, restar, multiplicar o dividir, o ciertas operaciones
lógicas, como por ejemplo AND, OR, así como
desplazamiento y rotación 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 instrucción GOTO que traen muchos
lenguajes de programación. Instrucciones de control. Son
instrucciones especiales o de control que actúan sobre el
propio microprocesador. Permiten acceder a diversas funciones,
como por ejemplo activar o desactivar las interrupciones, pasar
órdenes al coprocesador matemático, detener la
actividad del microprocesador hasta que se produzca una
interrupción, etc.
27 ALU vs. FPU Una unidad de punto flotante, Floating Point Unit
(FPU), también realiza operaciones aritméticas
entre dos valores, pero lo hace para números en
representación de punto flotante, que es mucho más
complicada que la representación de complemento a dos
usada en una típica ALU. Para hacer estos cálculos,
una FPU tiene incorporados varios circuitos complejos, incluyendo
algunas ALU internas. Generalmente los ingenieros llaman ALU al
circuito que realiza operaciones aritméticas en formatos
de número entero (como complemento a dos y BCD), mientras
que los circuitos que calculan en formatos más complejos
como punto flotante, números complejos, etc., reciben
generalmente un nombre más ilustre.
28 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.
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, las cableadas, usadas generalmente en
máquinas sencillas, y las microprogramadas, propias de
máquinas más complejas. En el primer caso, los
componentes principales son el circuito de lógica
secuencial, el de control de estado, el de lógica
combinacional, y el de emisión de reconocimiento
señales de control. En el segundo caso, la
microprogramación 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).
29 Componentes CU Para realizar su función, 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. Al iniciar la
ejecución de un programa toma la dirección de su
primera instrucción. Incrementa su valor en uno, de forma
automática, cada vez que se concluye una
instrucción, salvo si la instrucción que se
está ejecutando es de salto o de ruptura de secuencia, en
cuyo caso el contador de programa tomará la
dirección de la instrucción que se tenga que
ejecutar a continuación; esta dirección está
en la propia instrucción en curso. Registro de
instrucciones:Contiene la instrucción que se está
ejecutando en cada momento. 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, por ejemplo una suma) y en su caso los operandos
(datos sobre los que actúa la instrucción, por
ejemplo los números a sumar) o las direcciones de memoria
de estos operandos.
30 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), lo
analiza y emite las señales necesarias al resto de
elementos para su ejecución a través del
secuenciador. Reloj: Proporciona una sucesión de impulsos
eléctricos o ciclos a intervalos constantes (frecuencia
constante), que marcan los instantes en que han de comenzar los
distintos pasos de que consta cada instrucción. 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
operación o ciclo por segundo. Entre más
rápido el reloj el CPU de la computadora procesa la
instrucción con más velocidad. Secuenciador: En
este dispositivo se generan órdenes muy elementales
(microórdenes) que, sincronizadas por los impulsos de
reloj, hacen que se vaya ejecutando poco a poco la
instrucción que está cargada en el registro de
instrucción.
31 Diagrama CU
32 Arquitecturas de Microprocesadores La arquitectura de
microprocesadores es el diseño conceptual y la estructura
operacional fundamental de un sistema de computadora. Es decir,
es un modelo y una descripción funcional de los
requerimientos y las implementaciones de diseño para
varias partes de una computadora, con especial interés en
la forma en que la unidad central de proceso (CPU) trabaja
internamente y accede a las direcciones de memoria.
También suele definirse como la forma de seleccionar e
interconectar componentes de hardware para crear computadoras
según los requerimientos de funcionalidad, rendimiento y
costo. La segmentación de instrucciones es similar al uso
de una cadena de montaje en una fábrica de
manufacturación. En las cadenas de montaje, el producto
pasa a través de varias etapas de producción antes
de tener el producto terminado. 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. Esta tecnología es
aplicada en el diseño 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.
33 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. 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. Número de
operandos explícitos por instrucción:
cuántos operandos se expresan en forma explícita en
una instrucción típica. Normalmente son 0, 1, 2 y
3. Posición del operando: Puede cualquier operando estar
en memoria?, o deben estar algunos o todos en los registros
internos de la CPU. Cómo se especifica la dirección
de memoria (modos de direccionamiento disponibles) Operaciones:
Qué operaciones están disponibles en el conjunto de
instrucciones. Tipo y tamaño de operandos y cómo se
especifican.
34 Arquitecturas de Microprocesadores El núcleo (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 núcleo también
se encarga de decidir qué programa podrá hacer uso
de un dispositivo de hardware y durante cuánto tiempo.
Acceder al hardware directamente puede ser realmente complejo,
por lo que los núcleos 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 comunicación entre los programas
informáticos y el hardware. Gestión de los
distintos programas informáticos (tareas) de una
máquina. Gestión del hardware (memoria, procesador,
periférico, forma de almacenamiento, etc.)
35 Arquitecturas de Microprocesadores Firmware o
Programación en Firme, es un bloque de instrucciones de
programa para propósitos específicos, grabado en
una memoria tipo ROM, que establece la lógica de
más bajo nivel que controla los circuitos
electrónicos de un dispositivo de cualquier tipo. Al estar
integrado en la electrónica del dispositivo es en parte
hardware, pero también es software, ya que proporciona
lógica y se dispone en algún tipo de lenguaje de
programación. Funcionalmente, el firmware es el
intermediario (interfaz) entre las órdenes externas que
recibe el dispositivo y su electrónica, 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
periféricos, como en monitores de video, unidades de
disco, impresoras, etc., pero también 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 propósito es activar una
máquina desde su encendido y preparar el entorno para la
instalación de un Sistema Operativo complejo, así
como responder a otros eventos externos (botones de
pulsación 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 circuitería del mismo,
emitiendo órdenes a otros dispositivos del sistema.
36 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 contraposición a la arquitectura
RISC. Este tipo de arquitectura dificulta el paralelismo entre
instrucciones, por lo que, en la actualidad, 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, llamadas generalmente microinstrucciones.
Los CISC pertenecen a la primera corriente de construcción
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 mayoría de las computadoras personales del
planeta. Hay que hacer notar, 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.
37 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 características
fundamentales: Instrucciones de tamaño fijo y presentadas
en un reducido número de formatos. Sólo las
instrucciones de carga y almacenamiento acceden a la memoria por
datos. Además estos procesadores suelen disponer de muchos
registros de propósito general. 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. Las máquinas RISC protagonizan la tendencia
actual de construcción de microprocesadores. PowerPC, DEC
Alpha, MIPS, ARM… son ejemplos de algunos de ellos.
38 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. El tipo de
procesador más comúnmente utilizado en equipos de
escritorio, el x86, está basado en CISC en lugar de RISC,
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. 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.
Además, la velocidad del procesador en relación con
la memoria de la computadora que accedía era cada vez
más alta. Esto conllevó la aparición de
numerosas técnicas para reducir el procesamiento dentro
del CPU, así como de reducir el número total de
accesos a memoria. Terminología más moderna se
refiere a esos diseños como arquitecturas de
carga-almacenamiento.
39 Motorola Motorola es una empresa estadounidense especializada
en la electrónica y las telecomunicaciones, establecida en
Schaumburg, Illinois, un suburbio de Chicago.
40 Historia de Motorola El nombre "Motorola" fue adoptado en
1947, 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.
Incipientes compañías utilizaron el sufijo "-ola"
para comercializar sus fonógrafos, radios y otro
equipamiento de audio en la década de 1920, la más
famosa de ellas fue "Victrola", la empresa RCA lanzó su
"radiola", había otra compañía que
lanzó una máquina tocadiscos al mercado llamada
Rock-Ola, y un editor de películas llamado Moviola. El
prefijo "Motor-" se eligió en principio porqué el
objetivo inicial de Motorola fue la electrónica destinada
al automóvil.
41 Historia de Motorola El negocio de la compañía
también tuvo éxito en la fabricación de
tecnología 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 años ochenta,
Motorola lanzó una agresiva cruzada para mejorar la
calidad de sus productos, primero diez veces, y luego cien veces.
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". Esto quiere decir que
Motorola se propuso reducir los defectos de sus productos a menos
de 3.4 por millón en cada uno de sus procesos: 99.9997%
libres de defectos. "Seis sigma" se convirtió en el grito
de batalla de Motorola.
42 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, hasta los módem. El 6 de Octubre del
2003, Motorola anunció que escindiría la
producción de semiconductores en la creación de una
nueva empresa "Freescale Semiconductor, Inc". La nueva
compañía empezó a cotizar el 16 de Julio del
2004 en la New York Stock Exchange.
43
44