Вы находитесь на странице: 1из 19

ORGANIZACIN DEL PROCESADOR

Un procesador, incluye tanto registros visibles por el usuario como registros


de control/estado. Los registros visibles por el usuario pueden ser de uso
general o tener una utilidad especial, mientras que los registros de control y
estado se usan para controlar el funcionamiento del procesador, un claro
ejemplo es el contador de programa.
Los procesadores utilizan la segmentacin de instrucciones para acelerar la
ejecucin. La segmentacin de cauce se puede dividir en ciclo de
instruccin en varias etapas separadas que operan secuencialmente, tales
como la captacin de instruccin, decodificacin de instruccin, clculo de
direcciones de operando, ejecucin de instruccin y estructura del operando
resultado.
A continuacin se muestra cmo se organiza un procesador, para esto se
tiene que considerar los siguientes requisitos:
Captar instrucciones: el procesador lee una instruccin de memoria
(registro, cache o memoria principal).
Interpretar instruccin: la instruccin se codifica para determinar qu accin
es necesario.
Captar datos: la ejecucin de una instruccin puede exigir leer datos de
memoria o de un mdulo de E/S.
Procesar datos: la ejecucin e una instruccin puede exigir llevar a cabo
alguna operacin aritmtica o lgica con los datos.
Escribir datos: los resultados de una ejecucin pueden exigir escribir datos
en la memoria o en el mdulo de E/S.
Para hacer estas cosas, el procesador necesita almacenar instrucciones y
datos temporalmente mientras una instruccin esta ejecutndose, en otras
palabras el procesador necesita una pequea memoria interna.

Figura 12.1 El procesador y el bus del sistema

En esta figura se muestra una visin simplificada de un procesador, que


indica su conexin con el resto de sistema, a travs del bus del sistema. La
ALU lleva a cabo el verdadero clculo o procesamiento de datos. La unidad
de control controla la transferencia de datos e instrucciones as a dentro y
as afuera del procesador, y el funcionamiento de la ALU. Adems la figura
muestra una memoria interna mnima, que consta de un conjunto de
posiciones de almacenamiento llamadas registros.
Figura 12.2 Estrucutra interna del procesador

En esta figura se indican los caminos de transferencia de datos y de la lgica


de control, que incluye un elemento con el rotulo bus interno del procesador.
Tambin se muestran los elementos bsicos tpicos de la ALU. Hay que
observar la similitud entre la estructura interna del computador en su
totalidad y la estructura interna del procesador. En ambos casos hay una
pequea coleccin de elementos principales (computador: procesador, E/S,
memoria; procesador: unidad de control, ALU, registros) conectados por
caminos de datos.

Conclusin:
En conclusin podemos decir que este tema es muy importante en nuestra
carrera, ya que habla de la forma en como esta organizada un procesador, y
muestra unas figuras demasiado interesantes sobre la relacin busprocesador.
El principal aporte de esta investigacin es poner de manifiesto el valor que
tiene el procesador en nuestra carrera de ingeniera en sistemas
computacionales.

El lenguaje mquina[editar]
El lenguaje mquina est construido a partir de los estados discretos o instrucciones. En la
arquitectura de procesamiento, una instruccin dada puede especificar:

Registros particulares para operaciones aritmticas, de direccionamiento o de control.

Ubicaciones particulares de memoria

Modos de direccionamiento para interpretar operandos

Las operaciones ms complejas se construyen a partir de estas, que(en una mquina Von
Neumann) se ejecutan secuencialmente, o segn el control de flujo.
Muchas o pocas de las operaciones disponibles incluidas en la mayora de conjuntos son:

Desplazamiento

Establecer un registro a un valor constante

Mover datos desde una posicin de memoria a un registro y viceversa. Esto se realiza
para obtener datos para operaciones matemticas y su almacenamiento.

Leer y escribir datos desde dispositivos de hardware

Operaciones matemticas

Sumar, restar, multiplicar o dividir dos registros y colocar el resultado en alguno de


ellos.

Realizar operaciones bit a bit, teniendo el AND y el OR de cada bit en un par de


registros, o el NOT de cada bit en un registro.

Comparar dos valores que se encuentren en registros(por ejemplo, si son iguales o si


uno es mayor que otro)

Afectan al flujo de programa

Saltar a otra posicin del programa y ejecutar instrucciones all.

Saltar a otra posicin si se cumple cierta condicin

Saltar a otra posicin, pero salvando la posicin actual para poder volver (realizar una
llamada, por ejemplo call printf)

Algunos ordenadores incluyen instrucciones "complejas". Dichas instrucciones pueden tomar


muchas instrucciones en otros equipos. Estas se caracterizan por instrucciones que necesitan
varios pasos, como el control de mltiples unidades funcionales. Algunos ejemplos son:

Ahorro de registros en la pila

Mover grandes bloques de memoria

Complejas operaciones and/or con aritmtica de coma flotante, tales como el seno o la
raz cuadrada.

Instrucciones que combinan ALU con un operando de la memoria ms que de registros.

Un tipo complejo de la instruccin que ha llegado a ser particularmente popular recientemente


es SIMD (Single Instruction, Multiple Data), una operacin que realice la misma operacin
aritmtica en pedazos mltiples de datos al mismo tiempo. SIMD tienen la capacidad de
manipular vectores y matrices grandes en tiempo mnimo. Las instrucciones de SIMD permiten
la paralelizacin fcil de los algoritmos implicados comnmente en sonido, imagen, y el
proceso video. Varias implementaciones de SIMD se han trado al mercado bajo nombres
comerciales tales como MMX, 3DNow! y AltiVec.
El diseo de sistemas de instruccin es una edicin compleja. Haba dos etapas en la historia
para el microprocesador. El primer era el CISC (Complex Instruction Set Computer) que tena
muchas instrucciones diferentes. En los aos 70 IBM hicieron la investigacin y encontraron
que muchas instrucciones en el sistema podran ser eliminadas. El resultado era el RISC
(Reduced Instruction Set Computer), una arquitectura que utiliza un sistema ms pequeo de
instrucciones. Un conjunto de instruccin ms simple puede ofrecer el potencial para
velocidades ms altas, tamao reducido del procesador, y consumo de energa reducido. Sin
embargo, un conjunto ms complejo puede optimizar operaciones comunes, mejorar
memoria/eficiencia de cache, o simplificar la programacin.

Implementacin del conjunto de instrucciones[editar]


Cualquier conjunto de instrucciones se puede implementar de varias maneras. Todas las
maneras de implementar un conjunto de instrucciones dan el mismo modelo programado, y
todas pueden hacer funcionar los mismos ejecutables binarios. Las varias maneras de
implementar un conjunto de instrucciones dan diversas compensaciones entre el coste, el
funcionamiento, el consumo de energa, el tamao, el etc.
Al disear microarquitecturas, los ingenieros usaron bloques de circuitos electrnicos
duramente-conectados (diseado a menudo por separado) por ejemplo, los multiplexores,
los contadores, los registros, ALUs etc. Un cierto tipo del lenguaje de transferencia de
registros es a menudo usado para describir la codificacin y la secuencia de cada instruccin
de ISA usando esta microarquitectura fsica.
Hay tambin algunos nuevos diseos de CPU que compilan el conjunto de instruccin a una
RAM escribible o FLASH dentro de la CPU (tal como el procesador Recursiv y el Imsys Cjip), o
FPGA (computacin reconfigurable). Western Digital MCP-1600 es un ejemplo antiguo,
usando una ROM dedicada, separada del microcdigo.

ISA se puede tambin emular en software por un intrprete. Naturalmente, debido a la


interpretacin de overhead, es ms lento que ejecutar programas directamente sobre el
hardware emulado. Hoy, es prctica para los vendedores de nuevos ISAs o microarchitectures
poner emuladores del software a disposicin de los desarrolladores de programas informticos
antes de que la implementacin del hardware est lista.
Los detalles de la implementacin tienen una influencia fuerte en las instrucciones particulares
seleccionadas para el conjunto de instruccin. Por ejemplo, muchas implementaciones de la
instruccin pipline permiten solamente una carga de memoria (load) o almacn en memoria
(store) por instruccin, llevando a carga-almacena arquitectura (RISC). Por otro ejemplo,
algunas maneras de implementar la instruccin pipline llevaron a una ranura de retardo.
La demanda de procesamiento de seal digital de alta velocidad han empujado en el sentido
contrario, forzando la implementacin de instruccin de manera particular. Por ejemplo, para
realizar los filtros digitales es bastante insuficiente, la instruccin del MAC en un procesador
tpico de seal digital (DSP) se debe implementar usando una arquitectura de Harvard que
pueda traer una instruccin y dos palabras de datos simultneamente, y requiere un solo ciclo.

Diseo del conjunto de instrucciones[editar]


La densidad del cdigo
En computadoras antiguas, la memoria del programa era costosa, as que minimizar el tamao
de un programa para asegurar que va a caber en la memoria limitada era a menudo central.
As el tamao combinado de todas las instrucciones necesit realizar una tarea particular, la
densidad del cdigo, era una caracterstica importante de cualquier sistema de instruccin.
Las computadoras con alta densidad del cdigo tambin tenan a menudo instrucciones
complejas para la entrada del procedimiento, los retornos parametrizados, los lazos etc. Sin
embargo, " instrucciones CISC" combinan simplemente una operacin bsica de la ALU, tal
como " add", con el acceso de uno o ms operandos en memoria (usando modos de direccin
tales como directo, indirecto, indexado). Ciertas arquitecturas pueden permitir dos o tres
operandos (incluido el resultado) directamente en memoria o pueden permitir realizar
funciones tales como el incremento automtico del puntero.
RISC, fueron los primeros implementados con profundidad en el perodo de rpido crecimiento
de las memorias de subsistemas, se reduce el cdigo con el fin de simplificar el circuito de
aplicacin y con ello tratar de aumentar el rendimiento a travs de las frecuencias de reloj ms
elevadas y el uso de ms registros. Las instrucciones RISC suelen realizar slo una
operacin, como una "suma" de registros o una "carga" de una posicin de memoria en un
registro, tambin suelen utilizar una longitud de instrucciones fijas, mientras que un conjunto
de instrucciones tpicas CISC tiene instrucciones muchos ms cortas que esta longitud fija.

Las instrucciones de longitud fija son menos complicadas de manejar que las instrucciones de
ancho variable, por varias razones (por ejemplo: no tener que comprobar si una instruccin se
extiende a ambos lados de una lnea de cach o el lmite de memoria virtual de la pgina), y
por lo tanto algo ms fcil de optimizar la velocidad . Sin embargo, como los equipos RISC
normalmente requieren ms y ms para implementar las instrucciones que ejecutan una
determinada tarea, hacen menos ptimo el uso del ancho de banda y de la memoria cach.
Las computadoras mnimas del conjunto de instrucciones (MISC) son una forma de mquina
apilada, donde hay pocas instrucciones separadas (16-64), para poder caber instrucciones
mltiples en una sola palabra de mquina. stos tipo de ncleos llevan a menudo poco silicio
para implementarse, as que pueden ser observadas fcilmente en un FPGA o en una forma
multinucleo. La densidad del cdigo es similar al RISC; la densidad creciente de la instruccin
es compensada requiriendo ms de las instrucciones primitivas de hacer una tarea.
Nmero de operandos
El conjunto de instrucciones puede ser clasificado por el nmero mximo de operandos
explcitamente especificados en las instrucciones. (en los ejemplos que siguen, a, b y c se
refieren a celdas de memoria, mientras que reg1 y sucesivos se refieren a los registros de la
mquina).
0-operando, tambin llamada mquina de pila: todas las operaciones aritmticas se ejecutan
en la parte superior de una o dos posiciones de la pila, push y pop son las instrucciones
utilizadas para acceder a la memoria: push a, push b, add, pop c.
1-operando (mquinas de una direccin), tambin llamadas mquinas de acumulador, incluida
en la mayora de las primeras computadoras y muchos microcontroladores pequeos: la
mayora de instrucciones especifican un operando explcito a la derecha (un registro, una
posicin de memoria, o una constante) y un operando a la izquierda: load a, add b, store c.
2-operando la mayora de las mquinas CISC y RISC entran en esta categora: CISC load
a, reg1, add reg1, b; store reg1, c RISC - cargas que requieren la memoria explcita, las
instrucciones seran: load a,reg1; load b,reg2; add reg1,reg2; store reg2,c
3-operando, permite una mejor reutilizacin de los datos: CISC - bien una sola instruccin: add
a, b, c, o ms generalmente: move a,reg1; add reg1,b,c como la mayora de las mquinas se
limitan a dos operandos de memoria. RISC - Debido a la gran cantidad de bits necesarios para
codificar los tres registros, este esquema no suele estar disponible en los procesadores RISC
con pequeas instrucciones de 16 bits: load a,reg1; load b,reg2; add reg1+reg2->reg3; store
reg3,c;

ms operandos, algunas mquinas CISC permiten una variedad de modos de


direccionamiento que permiten ms de 3 operandos (registros o accesos a memoria), como el
VAX "POLY", instruccin de evaluacin de polinomio.

Caractersticas que debe tener un conjunto de


instrucciones[editar]
Las caractersticas que se pretende que tenga un conjunto de instrucciones son cuatro,
principalmente:

Completo: Que se pueda realizar en un tiempo finito cualquier tarea ejecutable con un
ordenador (computable o decidible).

Eficiente: Que permita alta velocidad de clculo sin exigir una elevada complejidad en
su UC y ALU y sin consumir excesivos recursos (memoria), es decir, debe cumplir su
tarea en un tiempo razonable minimizando el uso de los recursos.

Autocontenidas: Esto es, que contengan en s mismas toda la informacin necesaria


para ejecutarse.

Independientes: Que no dependan de la ejecucin de alguna otra instruccin.

Se puede comprobar que para que un conjunto de instrucciones sea completo solo se
necesitan cuatro instrucciones:
-> escritura
-> mover a la izquierda una posicin y leer
-> mover a la derecha una posicin y leer
-> parar
En esta idea se basan las arquitecturas RISC, no obstante, con este conjunto no se puede
conseguir la eficiencia del repertorio de instrucciones por lo que en la prctica el conjunto
suele ser ms amplio en aras de conseguir un mejor rendimiento, tanto en uso de recursos
como en consumo de tiempo.

Tipos de instrucciones y ejemplos[editar]

Transferencia de datos: Copian datos de un origen a un destino, sin modificar el origen y


normalmente sin afectar a los flags o indicadores de condicin. Pueden transferir palabras,
fracciones de palabras (bytes, media palabra) o bloques completos de n bytes o palabras.

Estas operaciones pueden ser:


-> registro - registro
-> registro - memoria
-> memoria - registro
-> memoria - memoria
Nemotcnicos ms frecuentes:

move: copia el contenido de un registro(o memoria) a otro.

store: copia el contenido de un registro a memoria.

load: copia el contenido de una posicin de memoria a un registro.

move block: copia un bloque de datos de una posicin de memoria a otra.

move multiple: copia del origen en varias posiciones de memoria.

exchange: intercambia el contenido de dos operandos.

clear: pone a 0 el destinto. (todos los bits)

set: pone a 1 el destino. (todos los bits)

push: introduce un dato en la cabecera de la pila. (indicada por el SP)

pop: saca un dato de la cabecera de la pila. (indicada por el SP)

Instrucciones aritmticas: Son efectuadas por la ALU y suelen cambiar los flags o
indicadores de condicin.

Nemotcnicos ms frecuentes:

add: Suma.

add with carry: Suma con acarreo.

subtract: Resta.

subtract with borrow: Resta teniendo en cuenta el adeudo anterior.

increment: incrementa en 1 un valor.

decrement: decrementa en 1 un valor.

multiply: multiplica.

divide: divide.

extend: aumenta el operando de tamao.

negate: cambia de signo.

absolute: valor absoluto.

-> Pueden tener instrucciones para tratar con nmeros en BCD e incluyen operaciones en
coma flotante, lo cual se identifica con una 'f' antes del nombre del nemotcnico como por
ejemplo:
fabsolute

Instrucciones de comparacin: Suelen preceder a una instruccin de bifurcacin


condicional y modifican los flags. No hay que pensar que las instrucciones de salto
condicional dependen de este repertorio, ya que lo nico que hace el salto condicional es
consultar los flags y salta si precede, pero no depende de ninguna instruccin de
comparacin. (de hecho cualquier operacin aritmtica realizada anteriormente a un salto
condicional puede provocar que este "salte").

Nemotcnicos ms frecuentes:

compare: Resta los dos operandos pero no almacena el resultado, solo modifica los flags.

test: compara un cierto valor especificado con el 0.

Instrucciones lgicas: Realizan operaciones booleanas "bit a bit" entre dos operandos.
Como las aritmticas tambin modifican los flags.

Nemotcnicos ms frecuentes:

and: el "y" lgico.

or: el "o inclusivo" lgico.

xor: el "o exclusivo" lgico.

not: la negacin lgica. (complemento a 1, no confundir con el cambio de signo "negate"


que es el complemento a 2)

Instrucciones de Desplazamiento: Pueden ser aritmtico o lgico y pueden incluir o no


rotaciones. Pueden ser de izquierda a derecha.

Nemotcnicos ms frecuentes:

shift: desplazamiento aritmtico o lgico.

rotate: rotacin con o sin acarreo.

Instrucciones de bits: Comprueban un bit del operando y su valor lo reflejan en el


indicador de cero. Pueden poner un bit a 0 o complementarlo.

Nemotcnicos ms frecuentes:

bit test: comprueba un bit.

bit clear: comprueba un bit y lo pone a 0.

bit set: comprueba un bit y lo pone a 1.

Instrucciones de control: Permiten modificar la secuencia normal de ejecucin de un


programa, puede hacerse por salto condicional relativo o absoluto.

Se clasifican en cuatro grupos:


-> salto incondicional
-> salto condicional
-> Llamada a subrutinas
-> Gestin de las interrupciones

saltos: Pueden ser condicionales o incondicionales, se suelen especificar como jump o


brantch, y en el caso de los condicionales se suele llamar jcond o bcond donde cond es

una o ms letras que indican la condicin que ha de cumplirse para que el salto se
produzca.
-> Incondicional: salta sin comprobar ninguna condicin.
Nemotcnicos ms frecuentes: jump o brantch
-> Condicional: salta si la condicin se cumple.
Nemotcnicos ms frecuentes: jcond o bcond

Llamadas a subrutinas: Invoca la ejecucin de funciones anteriormente definidas.

Nemotcnicos ms frecuentes: call (llamada) y ret (retorno)

Gestin de interrupciones: Se usan para llamar a las rutinas de servicio de interrupcin


y esto se puede hacer por hardware o bien por software. Necesita una instruccin similar a
return para retornar al contexto anterior pero restableciendo el estado de la mquina, para
no afectar a la aplicacin a la cual se interrumpi (iret).

Instrucciones de E/S: Son instrucciones de transferencia salvo que el origen/destino de


dicho flujo es un puerto de un dispositivo de E/S. Estas instrucciones pueden darse
mediante dos alternativas:

->E/S "mapeada" en memoria: Los perifricos tienen direcciones asignadas de la MP por lo


que no se necesitan instrucciones especiales y las operaciones se realizan con las ya vistas,
como son: load, store y move.
->E/S independiente: Necesitan unas instrucciones especiales para indicarle al procesador
que nos estamos refiriendo al mapa de direcciones de E/S, ya que este mapa y el mapa de
memoria son disjuntos.
Nemotcnicos ms frecuentes:

input o read: Pemite leer informacin de un puerto y trasladarla a memoria principal.

output o write: Permite escribir informacin en un puerto de un dispositivo.

test i/o: Lee informacin de control de un perifrico.

control i/o: Enva informacin de control hacia un perifrico.

Instrucciones de control y miscelneas:


Nemotnicos ms frecuentes:

halt: Detiene la ejecucin del programa hasta que una interrupcin arranca otro programa.

wait: Sirve para deterner la ejecucin de un programa hasta que sucede un determinado
evento que no es una interrupcin (otra condicin externa al primer programa).

nop: No realiza ninguna operacin, sirve para rellenar huecos en un programa o


temporizar esperas.

enable: Habilita las interrupciones.

disable: Deshabilita las interrupciones.

test and set: Se utiliza para la implementacin de la exclusin mutua, esto es, que un
procesador no pueda acceder a un determinado recurso que est siendo usado por otro
procesador en ese mismo momento.

Se usan como semforos, esto es, se declara una variable entera que tendr el valor 0 si el
recurso esta libre y 1 si est siendo utilizado, de manera que si un procesador comprueba y el
semforo est en 1 tendr que esperar hasta que este cambie a 0. (1 = s.rojo y 0 = s.verde)
on el nombre de MIPS (siglas de Microprocessor without Interlocked Pipeline Stages) se
conoce a toda una familia de microprocesadores de arquitectura RISC desarrollados por MIPS
Technologies.
Los diseos del MIPS son utilizados en la lnea de productos informticos de SGI; en
muchos sistemas embebidos; en dispositivos paraWindows CE; routers Cisco;
y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation
Portable.
Las primeras arquitecturas MIPS fueron implementadas en 32 bits (generalmente rutas de
datos y registros de 32 bits de ancho), si bien versiones posteriores fueron implementadas en
64 bits. Existen cinco revisiones compatibles hacia atrs del conjunto de instrucciones del
MIPS, llamadas MIPS I, MIPS II, MIPS III, MIPS IV y MIPS 32/64. En la ltima de ellas,
la MIPS 32/64 Release 2, se define a mayores un conjunto de control de registros. As mismo
estn disponibles varias "extensiones", tales como la MIPS-3D, consistente en un simple
conjunto de instrucciones SIMD en coma flotante dedicadas a tareas 3D comunes,
la MDMX(MaDMaX) compuesta por un conjunto ms extenso de instrucciones SIMD enteras que
utilizan los registros de coma flotante de 64 bits, la MIPS16 que aade compresin al flujo de
instrucciones para hacer que los programas ocupen menos espacio (presuntamente como
respuesta a la tecnologa de compresinThumb de la arquitectura ARM) o la reciente MIPS

MT que aade funcionalidades multithreading similares a la tecnologa HyperThreadingde los

procesadores Intel Pentium 4.


Debido a que los diseadores crearon un conjunto de instrucciones tan claro, los cursos
sobre arquitectura de computadores en universidades y escuelas tcnicas a menudo se basan
en la arquitectura MIPS. El diseo de la familia de CPU's MIPS influira de manera importante
en otras arquitecturas RISC posteriores como los DEC Alpha.
Entre los fabricantes de estaciones de trabajo basadas en procesadores MIPS
destacan SGI, MIPS Computer Systems, Inc., Olivetti, Siemens-Nixdorf, Acer, Digital
Equipment Corporation, NEC y DeskStation. Varios sistemas operativos fueron portados a la
arquitectura, ejemplos de ello son el SGI IRIX, Microsoft Windows NT (aunque el soporte para
MIPS finaliz con el lanzamiento de Windows NT 4.0) y Windows
CE, Linux, BSD, UNIX System V, SINIX, MIPS Computer Systems RISC/os, entre otros.
Sin embargo, el uso del MIPS como procesador principal de estaciones de trabajo ha cado, y
SGI ha anunciado sus planes de cesar el desarrollo de iteraciones de alto rendimiento de la
arquitectura MIPS en favor de procesadores basados en la tecnologa Intel IA64 (vase la
seccin "Otros modelos y planes futuros").
Por otra parte, el uso de microprocesadores MIPS en sistemas embebidos es probable que se
mantenga gracias al bajo consumo de energa y caractersticas trmicas de las
implementaciones integradas, as como a la gran disponibilidad de herramientas de desarrollo
y de expertos conocedores de la arquitectura.

Otros modelos y planes futuros[editar]


Otro miembro de la familia MIPS es el R6000, una implementacin ECL de la arquitectura
MIPS fabricada por Bipolar Integrated Technology. El R6000 introdujo el juego de
instrucciones MIPS II. Su arquitectura TLB y de cach son diferentes del resto de miembros
de la familia MIPS. El R6000 no proporcion los resultados esperados, y aunque fue empleado
en algunas mquinas Control Data, rpidamente desapareci del mercado de los mainstream.
El PMC-Sierra RM7000 fue una versin del R5000 con una cach integrada de nivel 2 de 256
kB y un controlador para una cach opcional de tercer nivel. Diseado en un principio
para sistemas embebidos como los procesadores grficos SGI y varias soluciones de redes
de Cisco. El nombre R9000 nunca fue utilizado.
SGI intent una vez migrar de la plataforma MIPS a la Intel Itanium, habiendo terminado su
desarrollo con el R10000. Los grandes retrasos en la presentacin del Itanium hicieron que el
nmero de procesadores basados en MIPS instalados continu creciendo. En 1999 qued
claro que el proceso de desarrollo haba sido cerrado demasiado pronto, y resultado de ello
son las versiones R14000 y R16000. SGI tante la posibilidad de aadir una FPU ms

compleja al estilo de la del R8000 en las ltimas iteraciones, as como la de lanzar un


procesador de doble ncleo, pero los problemas financieros de la empresa y el uso oficial y
soportado de la emulacin QuickTransit para ejecutar binarios IRIX sobre Altix provocaron el
cese definitivo del desarrollo de hardware IRIX/MIPS.

Loongson[editar]
Artculo principal: Loongson

Loongson es una familia de microprocesadores diseados por la Academia China de Ciencias.


La microarquitectura interna de los microprocesadores Loongson fue diseado de forma
independiente por los chinos. Las primeras implementaciones de la familia careca de cuatro
instrucciones, patentadas por MIPS Technologies. En junio de 2009, ICT obtuvo licencias
MIPS32 y MIPS64 directamente de MIPS Technologies.
A partir de 2006, una serie de empresas empezaron a comercializar una serie de hardware
con el procesador Loongson, incluyendo nettops y netbooks con un bajo consumo.2 34

Ncleos[editar]
En los ltimos aos gran parte de la tecnologa empleada en las distintas generaciones MIPS
ha sido ofrecida como diseos de "IP-cores" (bloques de construccin) parasistemas
embebidos. Se ofertan los ncleos bsicos de 32 y 64 bits, conocidos respectivamente
como 4K y 5K respectivamente, y con licencias MIPS32 y MIPS64. Estos ncleos pueden ser
combinados con unidades aadidas tales como FPUs, sistemas SIMD, dispositivos de E/S,
etc.
Los ncleos MIPS han sido comercialmente exitosos, siendo empleados actualmente en
muchas aplicaciones industriales y de consumo. Pueden encontrarse en los ms modernos
routers Cisco, TP-Link y Linksys , cablemdems y mdems ADSL, tarjetas inteligentes,
controladoras de impresoras lser, decodificadores de TV, robots, ordenadores de mano,
Sony PlayStation 2 y Sony PlayStation Portable.
En mviles y PDA's, sin embargo, el ncleo MIPS fue incapaz de desbancar a su competidor
de arquitectura ARM.

Programacin y emulacin[editar]
Existe un simulador MIPS R2000/R3000 totalmente libre llamado SPIM compatible con varios
sistemas operativos (especficamente Unix o GNU/Linux; Mac OS X; MS Windows 95, 98, NT,
2000, XP y DOS) ideado para el aprendizaje de la programacin en ensamblador MIPS y de
los conceptos generales del ensamblador RISC:http://www.cs.wisc.edu/~larus/spim.html

Un emulador MIPS ms completo pertenece al proyecto GXemul (anteriormente conocido


como Proyecto mips64emul), el cual no slo emula las diferentes versiones de los
microprocesadores MIPS III y superiores (desde el R4000 al R10000), sino tambin sistemas
enteros que utilicen esos procesadores. Por ejemplo, GXemul puede emular tanto
una DECstation con un procesador MIPS R4400 (y arrancar en Ultrix) como un SGI O2 con
CPU MIPS R10000 (si bien la capacidad de correr Irix es limitada), entre otros, as como
tambin diferentes framebuffers y controladoras SCSI.
El software QEMU es capaz de emular tambin, entre muchas otras, la arquitectura MIPS y
MIPSel, as como ejecutar GNU/Linux en la mquina emulada.
El matemtico Alan Turing, quien haba sido alertado de un problema de lgica matemtica
por las lecciones de Max Newman en la Universidad de Cambridge, escribi un artculo en
1936 titulado On Computable Numbers, with an Application to the Entscheidungsproblem, que
fue publicado en los Proceedings of the London Mathematical Society.5 En l describa una
mquina hipottica que llam "mquina computadora universal", y que ahora es conocida
como la "Mquina de Turing universal". La mquina hipottica tena un almacenamiento
infinito (memoria en la terminologa actual) que contena tanto las instrucciones como los
datos. John Von Neumann conoci a Turing cuando ejerca de profesor sustituto en
Cambridge en 1935 y tambin durante el ao PhD que Turing pas en la Institute for
Advanced Study en Princeton, Nueva Jersey durante 1936-37. Cundo supo del artculo de
1936 de Turing no est claro.
En 1936, Konrad Zuse tambin anticip en dos solicitudes de patente que instrucciones de la
mquina podan ser almacenadas en el mismo almacenamiento utilizado para los datos.6
Independientemente, J. Presper Eckert y John Mauchly, quienes estaban desarrollando
el ENIAC en la Escuela Moore de Ingeniera Elctrica en la Universidad de Pennsylvania,
escribieron sobre el concepto de programa almacenado en diciembre de 1943. Mientras
diseaba una nueva mquina, EDVAC, Eckert escribi en enero de 1944 que se almacenaran
datos y programas en un nuevo dispositivo de memoria direccionable, una memoria de lnea
de retardo. sta fue la primera vez que se propuso la construccin de un prctico programa
almacenado. Por esas fechas, no tenan conocimiento del trabajo de Turing.
Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los
lamos, el cual requera ingentes cantidades de clculos. Esto le condujo al proyectoENIAC,
en verano de 1944. All se incorpor a los debates sobre el diseo de un ordenador con
programas almacenados, el EDVAC. Como parte del grupo, se ofreci voluntario a escribir una
descripcin de l. El trmino von Neumann architecture surgi del primer artculo de von
Neumann: First Draft of a Report on the EDVAC, fechado el 30 de junio de 1945, el cual
inclua ideas de Eckert y Mauchly. Estaba inconcluso cuando su compaero Herman

Goldstine lo hizo circular con slo el nombre de von Neumann escrito en l, para
consternacin de Eckert y Mauchly. El artculo fue ledo por docenas de compaeros de
trabajo de Von Neumann en Amrica y Europa, e influenci la siguiente hornada de diseos
de computadoras.
Posteriormente, Turing desarroll un informe tcnico detallado, Proposed Electronic
Calculator, describiendo el Motor de Computacin Automtico (Automatic Computing Engine,
ACE). Present ste al Laboratorio Nacional de Fsica Britnico el 19 de febrero de 1946. A
pesar de que Turing saba por su experiencia de guerra en el Parque Bletchley que su
propuesta era factible, el secretismo mantenido durante muchas dcadas acerca de los
ordenadores Colossus le impidi manifestarlo. Varias implementaciones exitosas del diseo
ACE fueron producidas.
Los trabajos de ambos, von Neumann y Turing, describan ordenadores de programas
almacenados, pero al ser anterior el artculo de von Neumann, consigui mayor circulacin y
repercusin, as que la arquitectura de computadoras que esboz adquiri el nombre de
arquitectura von Neumann.
En 1945, el profesor Neumann, que estaba trabajando en la escuela Moore de ingeniera de
Filadelfia, donde el ENIAC haba sido construido, emiti en nombre de un grupo de sus
compaeros de trabajo un informe sobre el diseo lgico de los ordenadores digitales. El
informe contena una propuesta muy detallada para el diseo de la mquina que desde
entonces se conoce como el EDVAC (electronic discrete variable automatic computer). Esta
mquina ha sido recientemente completada en Amrica, pero el informe de Von Neumman
inspir la construccin de la EDSAC (electronic delay-storage automatic calculator) en
Cambridge.
En 1947, Burks, Goldstine y Von Neumann, publicaron un informe en el que describen el
diseo de otro tipo de mquina (una mquina paralela en este momento) que debera ser muy
rpida, capaz de hacer 20.000 operaciones por segundo. Sealaron que el problema
persistente en la construccin de tal mquina estaba en el desarrollo de una memoria
adecuada, todos los contenidos de los cuales fueron instantneamente accesibles, y al
principio se sugiri el uso de un tubo especial -llamado Selectron- que haba sido inventado
por los laboratorios de Princeton de la RCA. Estos tubos son caros y difciles para fabricar, as
Von Neumman decidi construir una mquina basada en la memoria de Williams. Esa
mquina que se complet en junio de 1952 en Princeton se ha conocido como MANIAC I. El
diseo de esta mquina que ha sido inspirado de una docena o ms de mquinas que estn
actualmente en construccin en Amrica.
Clculo automtico en el laboratorio nacional de fsica. Uno de los equipos digitales ms
modernos que incorpora novedades y mejoras en la tcnica de la computacin electrnica ha

sido demostrado en el laboratorio nacional de fsica, Teddington, donde ha sido diseado y


construido por un pequeo equipo de matemticos e ingenieros electrnicos investigadores
sobre el personal del laboratorio, asistido por ingenieros de produccin de la compaa
elctrica inglesa. El equipo construido hasta ahora en el laboratorio es solo el modelo piloto de
muchas instalaciones muy grandes que se va a conocer como el motor de clculo automtico,
pero aunque es relativamente pequeo en volumen y contiene solo 800 vlvulas termoinicas,
es una mquina de clculo muy rpido y verstil. Los conceptos bsicos y principios
abstractos de la computacin por una mquina fueron formuladas por el Dr A. M. Turing, pero
el trabajo en dichas mquinas en el Reino Unido se retras por la guerra. En 1945, se hizo
una revisin al problema en el laboratorio nacional de Fsica por el profesor J. R. Womersley.
Se le adjunt al Dr. Turing un pequeo equipo de especialistas, y en 1947 la planificacin
preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo
especial ya mencionado. En abril de 1948, estos ltimos se convirtieron en la seccin de
electrnica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.

Cuello de botella de von Neumann (von Neumann


bottleneck)[editar]
El canal de transmisin de los datos entre CPU y memoria genera un cuello de botella para el
rendimiento del procesador. En la mayora de computadoras modernas, la velocidad de
comunicacin entre la memoria y la CPU es ms baja que la velocidad a la que puede trabajar
esta ltima, reduciendo el rendimiento del procesador y limitando seriamente la velocidad de
proceso eficaz, sobre todo cuando se necesitan procesar grandes cantidades de datos. La
CPU se ve forzada a esperar continuamente a que lleguen los datos necesarios desde o hacia
la memoria.
La velocidad de procesamiento y la cantidad de memoria han aumentado mucho ms
rpidamente que el rendimiento de transferencia entre ellos, lo que ha agravado el problema
del cuello de botella.
El trmino cuello de botella de von Neumann fue acuado por John Backus en su
conferencia de la concesin de 1977 ACM Turing. Segn Backus:
{{cita| Seguramente debe haber una manera menos primitiva de realizar grandes cambios en
la memoria, que empujando tantas palabras hacia un lado y otro del cuello de botella de von
Neumann. No slo es un cuello de botella para el trfico de datos, sino que, ms importante,
es un cuello de botella intelectual que nos ha mantenido atados al pensamiento de "una
palabra a la vez" en vez de fomentarnos el pensar en unidades conceptuales mayores.
Entonces la programacin es bsicamente la planificacin del enorme trfico de palabras que
cruzan el cuello de botella de von Neumann, y gran parte de ese trfico no concierne a los
propios datos, sino a dnde encontrar stos.7

El problema de funcionamiento se redujo introduciendo una memoria cach entre la CPU y la


memoria principal, y mejorando los algoritmos del predictor de saltos. Est menos claro que el
cuello de botella intelectual que Backus ha criticado haya cambiado mucho desde 1977. La
solucin propuesta de Backus no ha tenido una influencia importante. La programacin
funcional moderna y la programacin orientada a objetos se preocupan mucho menos de
empujar tantas palabras hacia un lado y otro que los anteriores lenguajes como era Fortran.

Primeras computadoras basadas en arquitectura von


Neumann[editar]
La primera saga se basaba en un diseo que fue utilizado por muchas universidades y
empresas para construir sus equipos. Entre estos, slo ILLIAC y ORDVAC tenan un conjunto
de instrucciones compatible.

ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre


de 1951)

IAS machine en Princeton University (enero 1952)

MANIAC I en Laboratorio Cientfico Los lamos (marzo 1952)

ILLIAC en la Universidad de Illinois, (septiembre 1952)

AVIDAC en Laboratorios Argonne National (1953)

ORACLE en Laboratorio Nacional de Oak Ridge (junio 1953)

JOHNNIAC en RAND Corporation (enero 1954)

BESK en Estocolmo (1953)

BESM-1 en Mosc (1952)

DASK en Dinamarca (1955)

PERM en Mnich (1956?)

SILLIAC en Sdney (1956)

WEIZAC en Rehovoth (1955)

Primeras computadoras de programa almacenado[editar]

SSEM

ENIAC

BINAC

Manchester Mark I

EDSAC

EDVAC

CSIRAC

SEAC

Pilot ACE

SWAC

Computadora Whirlwind

UNIVAC 1101

Вам также может понравиться