Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
En comparación, ENIAC, la primera computadora electrónica construida solo 25 años antes, solo
podía ejecutar 5,000 instrucciones por segundo. Pero lo que hizo que el 4004 fuera tan poderoso
no fue solo su aumento del 1800% en la potencia de procesamiento, solo consumió 1 vatio de
electricidad, tenía aproximadamente ¾ "de largo y su producción costó $ 5 en el dinero actual.
Esto fue millas por delante de ENIAC, costo de $ 5.5 millones en dinero de hoy, consumo de
energía de 180kW y peso de 27 toneladas.
Para comprender cómo una CPU obtiene su potencia de procesamiento, examinemos qué hace
realmente una CPU y cómo interactúa con los datos. Para todos los efectos, podemos pensar en
una CPU como una máquina de procesamiento de instrucciones. Operan recorriendo tres pasos
básicos: buscar, decodificar y ejecutar. A medida que los diseños de CPU evolucionan, estos tres
pasos se vuelven dramáticamente más complicados y se implementan tecnologías que amplían
este modelo central de operación.
IR A BUSCAR
En la fase de búsqueda, la CPU carga la instrucción que ejecutará en sí misma. Se puede pensar
que una CPU existe en una burbuja de información. Extrae instrucciones y datos de fuera de sí
mismo, realiza operaciones dentro de su propio entorno interno y luego devuelve los datos. Estos
datos normalmente se almacenan en una memoria externa a la CPU denominada Memoria de
acceso aleatorio o (RAM). Las instrucciones y los datos del software se cargan en la RAM desde
fuentes más permanentes, como discos duros y memoria flash. Pero en un momento de la historia
se utilizaron cintas magnéticas, tarjetas perforadas e incluso interruptores.
AUTOBÚS
El mecanismo por el cual los datos se mueven hacia adelante y hacia atrás a la RAM se llama bus.
Se puede pensar en un autobús como una autopista de varios carriles entre la CPU y la RAM, en la
que cada bit de datos tiene su propio carril. Pero también necesitamos transmitir la ubicación de
los datos que estamos solicitando, por lo que se debe agregar una segunda autopista para
acomodar tanto el tamaño de la palabra de datos como la palabra de dirección. Estos se
denominan bus de datos y bus de direcciones respectivamente. En la práctica, estas líneas de
datos y direcciones son conexiones eléctricas físicas entre la CPU y la RAM y, a menudo, se ven
exactamente como una superautopista en una placa de circuito.
REGISTRARSE
DESCODIFICAR
Una vez que se obtiene una instrucción, comienza la fase de decodificación. En la arquitectura RISC
clásica, una palabra de memoria forma una instrucción completa. Esto cambia a un método más
elaborado a medida que las CPU evolucionan hacia una arquitectura de conjunto de instrucciones
compleja, que se presentará en la parte 2 de esta serie.
DERIVACIÓN
La bifurcación ocurre cuando una instrucción causa un cambio en la dirección del contador del
programa. Esto hace que la siguiente búsqueda ocurra en una nueva ubicación en la memoria en
oposición a la siguiente dirección secuencial.
OPERANDO
Los códigos de operación a veces requieren datos para realizar su operación. Esta parte de una
instrucción se llama operando. Los operandos son bits superpuestos a una instrucción que se
utilizarán como datos. Digamos que queremos agregar 5 a un registro. La representación binaria
del número 5 estaría incrustada en la instrucción y extraída por el decodificador para la operación
de suma.
EJECUCIÓN
En la fase de ejecución, se disparan las CPU ahora configuradas. Esto puede ocurrir en un solo paso
o en una serie de pasos dependiendo del código de operación.
RELOJES
A medida que avanzaba la década de 1970, los diseños de CPU se hicieron más robustos. Se
aprovecharon velocidades de reloj más rápidas, mayores capacidades de direcciones y conjuntos
de instrucciones más elaborados. La siguiente gran oferta de Intel fue el 8008.
Una de las adiciones más destacadas a la lista de funciones 8008 fue la inclusión del
direccionamiento indirecto. Con el direccionamiento directo, se proporciona una ubicación de
memoria a una instrucción, donde luego obtiene el contenido de datos de esa ubicación de
dirección. En el direccionamiento indirecto, el contenido de esa ubicación de memoria
referenciada es en realidad un puntero a otra ubicación, donde realmente están los datos.
El siguiente producto principal de Intel fue el 8080. El 8080 fue el primero en la línea de productos
de Intel en utilizar un controlador de bus externo. Este chip de soporte era responsable de la
interfaz con la RAM y otros componentes de hardware del sistema. Estas comunicaciones se
conocen comúnmente como entrada / salida o IO. Esto permitió que la CPU interactuara con una
memoria e IO más lentas, que operaban a velocidades de reloj del sistema que eran más lentas
que la velocidad de reloj de la CPU. También mejoró la inmunidad general al ruido eléctrico.
El 8080 fue considerado por muchos el primer microprocesador realmente utilizable, sin embargo,
estaban surgiendo arquitecturas de procesadores competidores. Durante los años siguientes, el
auge de la informática de escritorio estuvo dominado por la CPU Zilog Z80 de la competencia, que,
irónicamente, era una extensión mejorada del 8080 de Intel y fue diseñada por el ex ingeniero de
Intel Federico Faggin. Intel contra esto fue el lanzamiento del 8086.
Para ilustrar esto, digamos que hicimos un programa que encuentra el promedio de miles de pares
de números. Para hacer esto de manera eficiente, escribimos un bloque de código que toma dos
números, calcula su promedio y lo devuelve. Nuestro programa ahora pasa por la lista de pares de
números, llamando a la subrutina para realizar el cálculo y devolviendo el resultado a la secuencia
principal del programa. La pila se utiliza para almacenar y transportar estos datos y direcciones de
retorno para llamadas a subrutinas.
La notable complejidad de 8086 y su éxito habían cimentado el compromiso de Intel con una
característica clave de su arquitectura: CISC o computadora con conjunto de instrucciones
complejas. Aunque se utilizó una arquitectura CISC en el 8080 y su sucesor ligeramente mejorado
el 8085, el 8086 marcó la transición de Intel hacia la adopción completa de la arquitectura CISC
con su sólido conjunto de instrucciones.
Con solo un puñado de CPU empleándola, la arquitectura CISC es una opción de diseño
relativamente rara en comparación con el RISC dominante o la arquitectura de computadora con
un conjunto de instrucciones reducido. Incluso hoy en día, las CPU x86 siguen siendo los únicos
procesadores principales que utilizan un conjunto de instrucciones CISC.
La diferencia entre una CPU RISC y una CPU CISC radica en su respectivo conjunto de instrucciones
y cómo se ejecuta. RISC utiliza instrucciones simples y primitivas, mientras que CISC emplea
instrucciones sólidas y complejas.
El rendimiento del 8086 se mejoró aún más con la capacidad de hacer uso del 8087, un
coprocesador matemático de coma flotante independiente
El éxito de los procesadores 8086 está vinculado sinérgicamente a otro gran éxito en la historia de
la informática. A fines de la década de 1970, la nueva industria de las computadoras personales
estaba dominada por empresas como Commodore, Atari, Apple y Tandy Corporation. Con un
crecimiento anual proyectado de más del 40% a principios de la década de 1980, el mercado de
computadoras personales atrajo la atención del gigante de mainframe IBM, que condujo al
lanzamiento de IBM PC, que también allanó el camino para el dominio de Microsoft en la industria
del software, IBM PC como la computadora personal dominante, y la x86 y la arquitectura
principal de las PC de hoy.
LA EVOLUCIÓN DE LA POTENCIA DE PROCESAMIENTO DE LA CPU PARTE 3: EL ORIGEN DE LOS
SISTEMAS OPERATIVOS MODERNOS
La multitarea cooperativa fue utilizada por muchos de los primeros sistemas operativos multitarea.
Siempre que el sistema operativo le da un enfoque de CPU a un proceso, se basa en el proceso
mismo para devolver el control.
También necesitamos una forma de evitar que un proceso utilice la memoria asignada a otro
proceso, pero también permitirles comunicarse entre sí de forma segura. La solución a esto es una
capa de hardware dedicada a la tarea entre la CPU y la RAM llamada unidad de administración de
memoria o MMU.
Si un proceso intenta acceder a la memoria fuera de las reglas de protección, se activa una falla de
hardware.
La memoria virtual es una técnica de gestión de memoria que proporciona una capa de
abstracción de los recursos de almacenamiento disponibles en un sistema. Si bien la memoria
virtual viene en varias implementaciones, todas funcionan fundamentalmente al mapear el acceso
a la memoria desde ubicaciones lógicas a una física.
En enero de 1983, Apple lanzó Lisa. Pronto se vería eclipsado por el lanzamiento de Apple
MacIntosh un año después. La línea de productos Macintosh eventualmente crecería
dramáticamente a lo largo de los años. El Macintosh funcionaba con la CPU Motorola 68K.
Lo que hizo que el 68K fuera tan poderoso fue la adopción temprana de una arquitectura interna
de 32 bits. Sin embargo, el 68k no se consideró un verdadero procesador de 32 bits, sino más bien
un procesador híbrido de 32/16. A pesar de estas limitaciones, demostró ser un procesador muy
capaz.
A pesar de estas limitaciones, el 68k admitió una forma simple de privilegios que hizo posible la
multitarea facilitada por el hardware. El 68K siempre funciona en uno de los dos estados de
privilegios, el estado del usuario o el estado del supervisor.
A fines de 1984, IBM dio su siguiente paso adelante con el lanzamiento de su segunda generación
de computadora personal, la IBM PC AT.
El 80286 fue pionero en ese momento, ya que fue el primer procesador producido en masa que
admitió directamente sistemas multiusuario con multitarea.
La tercera mejora importante fue una unidad de captación previa mejorada. Conocido como su
unidad de instrucciones, el 80286 comenzaría a decodificar hasta 3 instrucciones de su cola de
captación previa de 8 bytes.
El 80286 era capaz de direccionar 24 bits de memoria o 16 MB de RAM, lo que hacía que el
modelo de memoria 8086 fuera insuficiente.
Para hacer uso de los 16 MB completos y facilitar la multitarea, el 80286 también podría funcionar
en un estado conocido como modo protegido.
La MMU del 80286 rastreó todos los segmentos en dos tablas. La tabla de descriptores globales o
GDT y la tabla de descriptores locales o LDT
La estructura de interrupciones del modo protegido es muy diferente del modo real en que tiene
una tabla propia, conocida como tabla de descriptores de interrupciones.
Las fallas del 80286 eventualmente se solucionarían con un modo protegido más refinado que se
abrirá paso en las próximas generaciones de CPU de Intel.