sábado, 25 de octubre de 2014

El Microcomputador


Una microcomputadora es una computadora pequeña, con un microprocesador como su Unidad Central de Procesamiento (CPU).Generalmente, el microprocesador incluye los circuitos de almacenamiento (o memoria caché) y entrada/salida en el mismo circuito integrado (o chip). Las microcomputadoras se hicieron populares desde 1970 y 1980 con el surgimiento de microprocesadores más potentes. Los predecesores de estas computadoras, las supercomputadoras y las minicomputadoras, eran mucho más grandes y costosas (aunque las supercomputadoras modernas, como IBM System z, utilizan uno o más microprocesadores como CPUs). Muchas microcomputadoras (cuando están equipadas con un teclado y una pantalla para entrada y salida) son también computadoras personales (en sentido general). La abreviatura micro fue comúnmente utilizada durante la década de los 70 y los 80, aunque actualmente esté en desuso.




El término microcomputadora se hizo popular después de la introducción del término minicomputadoras, aunque Isaac Asimov ya lo había usado en su historia "The Dying Night" en 1956 (publicada en The Magazine of Fantasy and Science Fiction en julio de ese año). Notablemente, la microcomputadora reemplazó los diferentes componentes que conformaban el CPU de las minicomputadoras por un solo microprocesador integrado. Los desarrolladores franceses de Micral-N (1973) archivaron sus patentes con el término "Micro-ordinateur", equivalente literalmente a microcomputadora, para nombrar la primera máquina de estado sólido con un microprocesador.



En los Estados Unidos, los primeros modelos tales como Altair 8800, fueron a menudo vendidos como un conjunto que debía ser ensamblado por el usuario, y venían con una RAM de 256 bytes; y como únicos dispositivos de entrada y salida, los indicadores de luz y switches, demostrando a modo de prueba de concepto, cuan simple podía ser un dispositivo.


En la medida que los microprocesadores y las memorias semiconductores se hicieron menos costosas, las microcomputadoras se hicieron más baratas y fáciles de usar::
El aumento de chips lógicos menos costosos como las series 7400 permitieron utilizar circuitos dedicados más baratos para mejorar las interfaces de usuariostales como el teclado, en lugar de switches para procesar un bit por cada vez.

El uso de casetes de audio para almacenar datos permitió el remplazo la reentrada manual de los programas cada vez que los dispositivos se encendían.


Los arrays de puertas lógicas de silicio en forma de memorias de solo lectura y EPROMs permitieron almacenar en las microcomputadoras programas útiles y núcleos de auto booteos. Estos programas de almacenado podían automáticamente cargar software más complejos desde dispositivos de almacenamiento externo, sin la intervención de usuarios para formar un sistema completamente listo que no requería de conocimiento experto en computación para utilizar el dispositivo.

Memorias de acceso aleatorio se convirtieron en lo suficientemente barato para ofrecer aproximadamente 1-2 kilobytes de memoria dedicados a los buffer del dispositivo de control de video, de 40x25 o 80x25 para mostrar textos o bloques de colores gráficos en una pantalla común de televisión. Esto remplazó el costoso, complejo y caro teleimpresor, que era comúnmente utilizado como interfaz de las minicomputadoras y supercomputadoras.



Todas estas mejoras en costo y usabilidad resultaron en una explosión de popularidad al final de los 70 y principios de los 80. Un largo número de fabricantes de computadoras empacaron microcomputadoras para ser usadas en aplicaciones de pequeños negocios. Para 1979, muchas compañías, tales como Cromemco,IMSAI, North Star Computers, Southwest Technical Products Corporation, Ohio Scientific, Altos Computer Systems, Morrow Designs y otras, produjeron sistemas como sistemas de bases de datos, contables y procesamiento de texto, diseñados tanto para usuarios con todos los recursos o firmas consultoras, como para sistemas de negocio específicos.



Esto permitió a los negocios incapaces de proveer licencias de minicomputadoras o compartir tiempo de servicio, la oportunidad de automatizar sus funciones, sin contratar personal a tiempo completo para operar las computadoras. Un representante de estos sistemas utilizaba un bus S100, un procesador de 8 bit como Intel 8080 o Zilog Z80, y como sistema operativo CP/M o MP/M. El incremento de las capacidades y la fuerza de las computadoras de escritorio para uso personal atrajeron la atención de más desarrolladores de software. Con el paso del tiempo, y el desarrollo de la industria, el mercado de lascomputadoras personal adoptó estándares compatibles con las computadoras IBM para correr en DOS, y posteriormente en Windows.


Las computadoras de escritorio modernas, las consolas de vídeo juegos, las laptops, los table PCs, y muchos otros tipos de dispositivos táctiles, incluidos teléfonos móviles, y sistemas industriales embebidos, pueden ser considerados todos ejemplos de microcomputadoras de acuerdo a las definiciones dadas.


Aunque no contenían ningún microprocesador, y estar construidos alrededor de la lógica transistor-transistor (TTL), las calculadoras Hewlett-Packard ya en 1968 tenía varios niveles de programación tales que se podría llamar microordenadores. El HP 9100B (1968) tenía sentencias condicionales, declaraciones de salto (GO_TO), los registros que se podrían utilizar como variables y subrutinas primitivas. El lenguaje de programación era parecido al lenguaje ensamblador en muchos aspectos. Modelos posteriores fueron añadiendo más características, incluyendo el lenguaje de programación BASIC (HP 9830A in 1971). Algunos modelos tenían almacenamiento en cinta e impresoras pequeñas. Sin embargo, las pantallas se limitaban a una sola línea a la vez. [1] El HP 9100A fue referido como un ordenador personal en un anuncio en una revista de Ciencia de 1968, pero ese anuncio fue abandonado rápidamente. Se sospecha que HP era reacio a llamarlas "computadoras" ya que complicaría los procedimientos de contratación y de exportación del gobierno.

El Datapoint 2200, hecho por CTC en 1970, es quizás el mejor candidato para el título de "primer microordenador". A pesar de que no contiene microprocesador, el conjunto de instrucciones de su procesador TTL era la base del conjunto de instrucciones del procesador Intel 8008, y para fines prácticos, el sistema se comporta aproximadamente como si contiene un 8008. Esto es debido a que Intel fue el contratista a cargo de desarrollar el CPU de la Datapoint, pero en última instancia CTC rechazó el diseño de 8008 porque necesitaba el soporte de 20 microchip.



Otro de los primeros sistemas, la Kenbak-1, fue lanzado en 1971. Al igual que el Datapoint 2200, utilizó un transistor de lógica discreta en lugar de un microprocesador, pero funcionaba como un microordenador en la mayoría de los aspectos. Se comercializó como una herramienta educativa y un hobby, pero no fue un éxito comercial; su producción cesó poco después.

En 1972, un equipo francés dirigido por François Gernelle dentro de una pequeña empresa, Réalisations y Etudes Electroniqes (R2E), desarrolló y patentó un equipo basado en un microprocesador - Intel 8008 de 8 bits de microprocesador. Micral-N se comercializó a principios de 1973 como un "microordenador", principalmente para aplicaciones científicas y de procesos técnicos. Alrededor de un centenar de Micral-N fueron instalados en los próximos dos años, seguido de una nueva versión basada en el Intel 8080. Mientras tanto, otro equipo francés desarrolló el Alvan, un pequeño ordenador para la automatización de la oficina que encontró clientes en los bancos y otros sectores. La primera versión se basa en chips LSI con un controlador periférico Intel 8008 (teclado, monitor e impresora), antes de adoptar el Zilog Z80 como procesador principal.

En 1972, un equipo de la Universidad Estatal de Sacramento liderado por Bill Pentz Bill Pentz construyó el equipo Sac State 8008, capaz de manejar miles de registros médicos de los pacientes. El Sac State 8008 fue diseñado con el Intel 8008. Tenía un sistema completo de componentes de hardware y software: un sistema operativo de disco incluido en una serie de sólo lectura programable y chips de memoria (PROM); 8 Kilobytes de RAM; un lenguaje ensamblador básico de IBM (BAL), un disco duro, una pantalla a color; una salida de la impresora; un 150 bit/s interfaz en serie para la conexión a un ordenador central; e incluso el primer panel frontal de microordenador del mundo.


Prácticamente los primeros microordenadores eran esencialmente cajas con luces e interruptores; había que leer y entender los números binarios y lenguaje de máquina para programarlos y usarlos (el Datapoint 2200 fue una excepción notable, con un diseño moderno basado en un monitor, el teclado y la cinta y las unidades de disco). De las primeras "cajas de switches" para microordenadores, el MITS Altair 8800 (1975) fue sin duda el más famoso. La mayoría de estos primeros microordenadores simples, fueron vendidos como un conjunto de componentes electrónicos que el comprador tenía que armar antes de que el sistema pudiera ser utilizado.

Los microordenadores del período de 1971 a 1976 a veces son llamados la primera generación de microordenadores. Estas máquinas eran para el desarrollo de la ingeniería y el uso personal aficionado. En 1975, la tecnología de procesador SOL- 20 fue diseñado, consistía en una tarjeta, que incluía todas las partes del sistema informático. El SOL-20 se había incorporado en el software EPROM que eliminó la necesidad de filas de switches y luces. El MITS Altair jugó un papel instrumental en despertar el interés significativo de aficionados, que a su vez condujo a la fundación y el éxito de muchas empresas de hardware y software decomputadoras personales conocidas como Microsoft y Apple Computer. Aunque la propia Altair sólo fue un éxito comercial moderado, ayudó a desatar una enorme industria.

Para 1977, la introducción de la segunda generación, conocidos como los "ordenadores personales", hizo las microcomputadoras considerablemente más fáciles de usar que sus predecesores porque la operación práctica de sus predecesores a menudo exigió profunda familiaridad con la electrónica. La posibilidad de conectar un monitor (pantalla) o un televisor permite la manipulación visual de texto y números. El lenguaje BASIC, que era más fácil de aprender y usar que el lenguaje de máquina puro, se convirtió en una característica estándar. Estas características ya eran comunes en los miniordenadores, con la que muchos aficionados y los primeros productores estaban familiarizados.


En 1979, el lanzamiento de la hoja de cálculo VisiCalc (inicialmente para el Apple II) primeramente convirtió el microcomputador de un hobby para entusiastas de la informática en una herramienta de negocios. Después de la liberación de 1981 por parte de IBM de su IBM PC, el ordenador personal se convirtió en término generalmente usado para microcomputadoras compatibles con la arquitectura IBM PC (compatible con PC).


En 2012, el computador con una sola tarjeta del tamaño de un tarjeta de crédito Raspberry Pi directamente inspirado por Acorn's BBC Micro 1981 fue lanzado, y contaba con el apoyo a la BBC BASIC.

Fuentes:
http://es.wikipedia.org/wiki/Microcomputadora
http://www.gestiopolis.com/recursos4/docs/eco/histocom.htm

Leer más...

¿Risc o Cisc?


¿Risc o Cisc?


CISC nació con la finalidad de homogeneizar los diferentes computadores en los años 50 y 60. RISCbuscó en los 70 ir un paso más allá y mejorar el rendimiento con instrucciones más simples pero programas más largos y más difíciles de desarrollar.

Tanto CISC como RISC han evolucionado de forma muy notable desde su nacimiento, adoptando mejoras provenientes del contrario en ambos casos y nuevos conjuntos de instrucciones para adaptarse a los usos de los ordenadores. Si bien es cierto que en la época de su creación la diferencia era muy amplia – principalmente debido a las limitaciones técnicas de la época tanto en tamaño de memoria como en velocidad de proceso -, en la actual informática moderna los requisitos son muy diferentes. Los límites en capacidad de almacenamiento son casi inexistentes y los procesadores son capaces de ejecutar millones de instrucciones en un solo segundo.



El conflicto surge al evaluar las ventajas netas ¿ que es mas apropiado, usar muchas instrucciones de un solo ciclo aprovechadas al maximo, o pocas de multiples pasos de reloj en las que existe internacionalizar ?


La cuestion, es que hasta el momento, el estudio de prestaciones de ambas tecnologias, nos ha llevado a concluir que hoy en dia los RISC obtienen mas prestaciones, es decir, son mas potentes y rapidos que los CISC. Sin embargo, el mercado se ha decantado por la tecnología CISC en cuanto a volumen de ventas. ¿ Por que ?


1.- Por experiencia propia, podemos comprobar que un CISC tiene un coste "razonable", que es alcanzado a nivel de usuario. Esto mismo, no ocurre con los RISC, que por el contrario tienen un coste elevado, por esto mismo esta tecnologia ha sido enfocada a ventas a nivel de empresa y equipos de gama alta.


2.- La utilidad que se le de a la maquina es muy importante, ya que el usuario debe de encontrar un nivel optimo en cuanto a calidad - precio. Y por que pagar mas si realmente no se le va a sacar partido al cien por cien.


3.- El software utilizado es otro de los factores importantes, dado que un RISC no utiliza el mismo software que un CISC. Estos ultimos, por lo general tienen un software mas asequible.


4.- Dada la compatibilidad hacia atras de la familia CISC x86, los usuarios han podido renovar sus equipos sin por ello tener que abandonar software que ya conocian, y reutilizar sus datos. Asi mismo, los fabricantes han tenido en cuenta este factor, puesto que seguir con otra linea de procesadores suponia no solo un cambio muy radical, sino que ademas podia llevar un riesgo en cuanto a ventas.





Estos son algunos de los motivos. Sin embargo, tambien hay que tener en cuenta el conflicto de intereses de algunos fabricantes, asi como la opinion de distintas revistas, algunas de ellas asociadas a diferentes marcas.


IBM PowerPC 601 e Intel 80286


Fuentes:
http://www.monografias.com/trabajos5/teccisc/teccisc.shtml#ixzz3HDKq9jZi
http://www.xataka.com/componentes-de-pc/cisc-frente-a-risc-una-batalla-en-blanco-y-negro
Leer más...

Taxonomía de Flynn

Taxonomia de Flynn

          En 1966 Michael Flynn propuso un mecanismo de clasificación de las computadoras. El método de Flynn se basa en el número de instrucciones y de la secuencia de datos que la computadora utiliza para procesar información. Puede haber secuencias de instrucciones sencillas o múltiples y secuencias de datos sencillas o múltiples. Esto da lugar a 4 tipos de computadoras, de las cuales solamente dos son aplicables a las computadoras paralelas




Esquema de la Taxonomía de Flynn
                                 
Michael Flynn (Fuente WIKIPEDIA)
                                                         
Una instrucción, un dato (SISD)



En computación, SISD (del inglés Single Instruction, Single Data, en español: "una instrucción, un dato") es un término que se refiere a una arquitectura computacional en la que un único procesador ejecuta un sólo flujo de instrucciones, para operar sobre datos almacenados en una única memoria. Se corresponde con la arquitectura de Von Neumann.

Según Michael J. Flynn, SISD puede tener características del procesamiento concurrente. La carga de instrucciones y la ejecución segmentada de instrucciones son ejemplos comunes encontrados en las computadoras SISD más modernas.

Caracteristicas:

  • La CPU procesa únicamente una instrucción por cada ciclo de reloj
  • Únicamente un dato es procesado en cada ciclo de reloj
  • Es el modelo más antiguo de computadora y el más extendido


Múltiples instrucciones, un dato (MISD):

En computación, MISD (del inglés Multiple Instruction, Single Data, en español: "múltiples instrucciones, un dato") es un tipo dearquitectura computacional (particularmente de computación paralela) donde muchas unidades funcionales realizan diferentes operaciones en los mismos datos. Las arquitecturas segmentadas pertenecen a este tipo, aunque en un extremo se podría llegar a decir que los datos son diferentes después de ser procesados por cada etapa en el pipeline, con lo cual no entraría en esta categoría.

Las máquinas tolerantes a fallos ejecutan la misma instrucción redundantemente para detectar y corregir errores, utilizando task replication, son consideradas de este tipo. No existen muchos ejemplos de esta arquitecura dado que las técnicas más comunes de procesamiento de datos en paralelo suelen ser más apropiadas para MIMD y SIMD. Específicamente, facilitan el escalamiento y el uso de recursos computacionales mejor que MISD.

Características del modelo MISD:
  • Cada unidad ejecuta una instrucción distinta
  • Cada unidad procesa el mismo dato
  • Aplicación muy limitada en la vida real




Una instrucción, múltiples datos (SIMD)

En computación, SIMD (del inglés Single Instruction, Multiple Data, en español: "una instrucción, múltiples datos") es una técnica empleada para conseguir paralelismo a nivel de datos.

Los repertorios SIMD consisten en instrucciones que aplican una misma operación sobre un conjunto más o menos grande de datos. Es una organización en donde una única unidad de control común despacha las instrucciones a diferentes unidades de procesamiento. Todas éstas reciben la misma instrucción, pero operan sobre diferentes conjuntos de datos. Es decir, la misma instrucción es ejecutada de manera sincronizada por todas las unidades de procesamiento.

Características del modelo SIMD:

  • Todas las unidades ejecutan la misma instrucción
  • Cada unidad procesa un dato distinto
  • Todas las unidades operan simultáneamente


Múltiples instrucciones, múltiples datos (MIMD)

En computación, MIMD (del inglés Multiple Instruction, Multiple Data, en español "múltiples instrucciones, múltiples datos") es una técnica empleada para lograr paralelismo. Las máquinas que usan MIMD tienen un número de procesadores que funcionan de manera asíncrona e independiente. En cualquier momento, cualquier procesador puede ejecutar diferentes instrucciones sobre distintos datos. La arquitectura MIMD pueden utilizarse en una amplia gama de aplicaciones como el diseño asistido, simulación, modelado y en interruptores. Las computadoras MIMD pueden categorizarse por tener memoria compartida o distribuida, clasificación que se basa en cómo el procesador MIMD accede a la memoria. La memoria compartida de las máquinas puede estar basada en buses, extensiones, o de tipo jerárquico. Las máquinas con memoria distribuida pueden tener esquemas de interconexión en hipercubo o malla

Características del modelo MIMD:
  • Cada unidad ejecuta una instrucción distinta
  • Cada unidad procesa un dato distinto
  • Todas las unidades operan simultáneamente

Clasificaciones Adicionales



También existe una extensión común a esta taxonomía que es:

  • Un programa, múltiples datos (SPMD) - múltiples procesadores autónomos que trabajan simultáneamente sobre el mismo conjunto de instrucciones (aunque en puntos independientes) sobre datos diferentes. También se le llama 'un proceso, múltiples datos'.
  • Múltiples programas, múltiples datos (MPMD) - múltiples procesadores autónomos que trabajan simultáneamente sobre al menos dos programas independientes. Normalmente este sistema elige a un nodo para ser el host o administrador, que corre el programa y otorga los datos a todos los demás nodos que ejecutan un segundo programa. Esos demás nodos devuelven sus resultados directamente al administrador. Un ejemplo podría ser la consola de Sony PlayStation 3, que tiene la arquitectura de procesador SPU/PPU.

Fuentes


Leer más...

Procesadores Cisc


Procesadores Cisc

La tecnología CISC (Complex Instruction Set Computer) nació de la mano de Intel, creador en 1971 del primer microchip que permitiría el nacimiento de la informática personal. Más concretamente, sería en 1972 cuando aparecería el 8080, primer chip capaz de procesar 8 bits, suficiente para representar números y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar número y letras nacería la cuarta generación de ordenadores, la de los conocidos como PC u ordenadores personales.









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.


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, llamadas generalmente microinstrucciones.
La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC. La microprogramación significa que cada instrucción de máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj, al menos uno por microinstrucción. Es así entonces como los chips CISC utilizan comandos que incorporan una gran diversidad de pequeñas instrucciones para realizar una única operación.


Cuando el sistema operativo o una aplicación requiere de una de estas acciones, envía al procesador el nombre del comando para realizarla junto con el resto de información complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC varían de tamaño y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder así reservárselo en la memoria interna. Además, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema.



El procesador envía entonces el comando solicitado a una unidad que lo descodifica en instrucciones más pequeñas que podrán ser ejecutadas por un nanoprocesador, una especie de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son instrucciones menores procedentes de la descodificación de una instrucción mayor, sólo puede realizarse una instrucción cada vez.


A través de la compleja circuitería del chip, el nanoprocesador ejecuta cada una de las instrucciones del comando. El desplazamiento por esta circuitería también ralentiza el proceso. Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.
Entre las bondades de CISC destacan las siguientes:

Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creación de software.
Mejora la comparación de código.
Facilita la depuración de errores.
Ejemplo de microprocesadores basados en la tecnología CISC:
Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.


En los años 50, todos los computadores se diseñaban de forma completamente aislada unos de otros. Esto hacía que sus instrucciones fuesen independientes, haciendo que un programa escrito para un cierto ordenador no se pudiese ejecutar en otro. A finales de la década, IBM reunió a un grupo de sus investigadores para estudiar la forma con la que un programa pudiese trabajar en múltiples computadores sin importantes cambios, ampliando la compatibilidad del software en diferentes máquinas. El resultado fue el enfoque CISC, Complex Instruction Set Computing, introducido por primera vez en los IBM System/360 el 7 de abril de 1964.

IBM System-360


Fuentes:


http://www.monografias.com/trabajos55/microprocesadores-cisc-risc/microprocesadores-cisc-risc2.shtml


http://www.monografias.com/trabajos55/microprocesadores-cisc-risc/microprocesadores-cisc-risc.shtml#ixzz3HDKQ3XvL


http://es.wikipedia.org/wiki/Complex_instruction_set_computing
Leer más...

Procesadores RISC

Procesadores RISC

En arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer, en español Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado en microprocesadores o microcontroladores con las siguientes características fundamentales:
  1. Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  2. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
Además estos procesadores suelen disponer de muchos registros de propósito general.

RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas 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.

A finales de los setenta, investigaciones en IBM (y otros proyectos similares en otros lugares), demostraron que la mayoría de esos modos de direccionamientoortogonal eran ignorados por la mayoría de los programas. Esto fue un efecto colateral en el incremento en el uso de compiladores para generar los programas, algo opuesto a escribirlos en lenguaje ensamblador. Los compiladores tendían a ser demasiado tontos en términos de las características que usaban, un efecto colateral del intento por hacerlos pequeños. El mercado se estaba moviendo hacia un uso más generalizado de los compiladores, diluyendo aún más la utilidad de los modelos ortogonales.

Otro descubrimiento fue que debido a que esas operaciones eran escasamente utilizadas, de hecho tendían a ser más lentas que un número pequeño de operaciones haciendo lo mismo. Esta paradoja fue un efecto colateral del tiempo que se utilizaba diseñando los CPU, los diseñadores simplemente no tenían tiempo de optimizar cada instrucción posible, y en vez de esto sólo optimizaban las más utilizadas. Un famoso ejemplo de esto era la instrucción VAX, INDEX, que se ejecutaba más lentamente que un ciclo que implementara el mismo código.

Casi al mismo tiempo, las CPU comenzaron a correr a velocidades mayores que las de la memoria con la que se comunicaban. Aún a finales de los setenta, era aparente que esta disparidad continuaría incrementándose al menos durante la siguiente década, para entonces los CPU podrían ser cientos de veces más rápidos que la memoria. Esto significó que los avances para optimizar cualquier modo de direccionamiento serían completamente sobrepasados por las velocidades tan lentas en las que se llevaban a cabo.


Otra parte del diseño RISC llegó desde las medidas prácticas de los programas en el mundo real. Andrew Tanenbaum reunió muchos de éstos, demostrando así que la mayoría de los procesadores estaban sobredimensionados. Por ejemplo, él demostró que el 98 % de todas las constantes en un programa podían acomodarse en 13 bits, aun cuando cada diseño de CPU dedicaba algunos múltiplos de 8 bits para almacenarlos, típicamente 8, 16 o 32, una palabra entera. Tomando este hecho en cuenta sugiere que una máquina debería permitir que las constantes fuesen almacenadas en los bits sin utilizar de otras instrucciones, disminuyendo el número de accesos a memoria. En lugar de cargar números desde la memoria o los registros, éstos podrían estar ahí mismo para el momento en el que el CPU los necesitara, y por lo tanto el proceso sería mucho más rápido. Sin embargo, esto requería que la instrucción misma fuera muy pequeña, de otra manera no existiría suficiente espacio libre en los 32 bits para mantener constantes de un tamaño razonable.

Fue el pequeño número de modos y órdenes que dio lugar al término conjunto reducido de instrucciones. Ésta no es una definición correcta, ya que los diseños RISC cuentan con una vasta cantidad de conjuntos de instrucciones para ellos. La verdadera diferencia es la filosofía para hacer todo en registros y llamar y guardar los datos hacia ellos y en ellos mismos. Ésta es la razón por la que la forma más correcta de denominar este diseño es cargar-almacenar. Con el paso del tiempo las técnicas de diseño antiguas se dieron a conocer como Computadora con Conjunto de Instrucciones Complejo, CISC por sus siglas en inglés, aunque esto fue solamente para darles un nombre diferente por razones de comparación.

Por esto la filosofía RISC fue crear instrucciones pequeñas, implicando que había pocas, de ahí el nombre conjunto reducido de instrucciones. El código fue implementado como series de esas instrucciones simples, en vez de un sola instrucción compleja que diera el mismo resultado. Esto hizo posible tener más espacio dentro de la instrucción para transportar datos, resultando esto en la necesidad de menos registros en la memoria. Al mismo tiempo la interfaz con la memoria era considerablemente simple, permitiendo ser optimizada.

Sin embargo RISC  también tenía sus desventajas. Debido a que una serie de instrucciones son necesarias para completar incluso las tareas más sencillas, el número total de instrucciones para la lectura de la memoria es más grande, y por lo tanto lleva más tiempo. Al mismo tiempo no estaba claro dónde habría o no una ganancia neta en el desempeño debido a esta limitación, y hubo una batalla casi continua en el mundo de la prensa y del diseño sobre los conceptos de RISC.


Historia

Mientras la filosofía de diseño RISC se estaba formando, nuevas ideas comenzaban a surgir con un único fin: incrementar drásticamente  el rendimiento de la CPU.
Al principio de la década de los ochenta se pensaba que los diseños existentes estaban alcanzando sus límites teóricos. Las mejoras de la velocidad en el futuro serían hechas con base en procesos mejorados, esto es, pequeñas características en el chip. La complejidad del chip podría continuar como hasta entonces, pero un tamaño más pequeño podría resultar en un mejor rendimiento del mismo al operar a más altas velocidades de reloj. Se puso una gran cantidad de esfuerzo en diseñar chips para computación paralela, con vínculos de comunicación interconstruidos. En vez de hacer los chips más rápidos, una gran cantidad de chips serían utilizados, dividiendo la problemática entre éstos. Sin embargo, la historia mostró que estos miedos no se convirtieron en realidad, y hubo un número de ideas que mejoraron drásticamente el rendimiento al final de la década de los ochenta.

Una idea era la de incluir un canal por el cual se pudieran dividir las instrucciones en pasos y trabajar en cada paso muchas instrucciones diferentes al mismo tiempo. Un procesador normal podría leer una instrucción, decodificarla, enviar a la memoria la instrucción de origen, realizar la operación y luego enviar los resultados. La clave de la canalización es que el procesador pueda comenzar a leer la siguiente instrucción tan pronto como termine la última instrucción, significando esto que ahora dos instrucciones se están trabajando (una está siendo leída, la otra está comenzando a ser decodificada), y en el siguiente ciclo habrá tres instrucciones. Mientras que una sola instrucción no se completaría más rápido, la siguiente instrucción sería completada enseguida. La ilusión era la de un sistema mucho más rápido. Esta técnica se conoce hoy en día como Segmentación de cauce.


Otra solución más era utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo. En vez de trabajar en una instrucción para sumar dos números, esos procesadores superescalares podrían ver la siguiente instrucción en el canal y tratar de ejecutarla al mismo tiempo en una unidad idéntica. Esto no era muy fácil de hacer, sin embargo, ya que algunas instrucciones dependían del resultado de otras instrucciones.

Ambas técnicas se basaban en incrementar la velocidad al añadir complejidad al diseño básico del CPU, todo lo opuesto a las instrucciones que se ejecutaban en el mismo. Siendo el espacio en el chip una cantidad finita, para poder incluir todas esas características algo más tendría que ser eliminado para hacer hueco. RISC se encargó de tomar ventaja de esas técnicas, esto debido a que su lógica para el CPU era considerablemente más simple que la de los diseños CISC. Aun con esto, los primeros diseños de RISC ofrecían una mejora de rendimiento muy pequeña, pero fueron capaces de añadir nuevas características y para finales de los ochenta habían dejado totalmente atrás a sus contrapartes CISC. Con el tiempo esto pudo ser dirigido como una mejora de proceso al punto en el que todo esto pudo ser añadido a los diseños CISC y aun así caber en un solo chip, pero esto tomó prácticamente una década entre finales de los ochenta y principios de los noventa.

Caracteristicas

En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:
  • Incrementar el tamaño del conjunto de registros.
  • Mayor velocidad en la ejecución de instrucciones.
  • Implementar medidas para aumentar el paralelismo interno.
  • Añadir cachés enormes.
  • Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
  • Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
  • No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son:
  • Codificación uniforme de instrucciones (ejemplo: el código de operación se encuentra siempre en la misma posición en cada instrucción, la cual es siempre una palabra), lo que permite una decodificación más rápida.
  • Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante).
  • Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples.
  • Los tipos de datos soportados en el hardware (por ejemplo, algunas máquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una máquina RISC

Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados; esto significa que el modificar las direcciones donde el código se encuentra pudiera no tener efecto alguno en las instrucciones ejecutadas por el procesador (porque la CPU tiene separada la instrucción y el caché de datos, al menos mientras una instrucción especial de sincronización es utilizada). Por otra parte, esto permite que ambos cachés sean accedidos separadamente, lo que puede en algunas ocasiones mejorar el rendimiento.
Muchos de esos diseños RISC anteriores también compartían una característica no muy amable, el slot de salto retardado (Delay Slot). Un slot de salto retardado es un espacio de instrucción siguiendo inmediatamente un salto. La instrucción en este espacio es ejecutada independientemente de si el salto se produce o no (en otras palabra el salto es retardado). Esta instrucción mantiene la ALU de la CPU ocupada por el tiempo extra normalmente necesario para ejecutar una brecha. Para utilizarlo, recae en el compilador la responsabilidad de reordenar las instrucciones de manera que el código sea coherente para ejecutar con esta característica. En nuestros días el slot de salto retardado se considera un desafortunado efecto colateral de la estrategia particular por implementar algunos diseños RISC. Es por esto que los diseños modernos de RISC, tales como ARM, PowerPC, y versiones más recientes de SPARC y de MIPS, generalmente eliminan esta característica.



RISC moderno

La investigación de Berkeley no fue comercializada directamente, pero el diseño RISC-II fue utilizado por Sun Microsystems para desarrollar el SPARC, porPyramid Technology para desarrollar sus máquinas de multiprocesador de rango medio, y por casi todas las compañías unos años más tarde. Fue el uso de RISC por el chip de SUN en las nuevas máquinas el que demostró que los beneficios de RISC eran reales, y sus máquinas rápidamente desplazaron a la competencia y esencialmente se apoderaron de todo el mercado de estaciones de trabajo.

John Hennessy dejó Stanford para comercializar el diseño MIPS, comenzando una compañía conocida como MIPS Computer Systems Inc. Su primer diseño fue el chip de segunda generación MIPS-II conocido como el R2000. Los diseños MIPS se convirtieron en uno de los chips más utilizados cuando fueron incluidos en las consolas de juego Nintendo 64 y PlayStation. Hoy son uno de los procesadores integrados más comúnmente utilizados en aplicaciones de alto nivel por Silicon Graphics.

IBM aprendió del fallo del RT-PC y tuvo que continuar con el diseño del RS/6000 basado en su entonces nueva arquitectura IBM POWER. Entonces movieron sus computadoras centrales S/370 a los chips basados en IBM POWER, y se sorprendieron al ver que aun el conjunto de instrucciones muy complejas (que era parte del S/360 desde 1964) corría considerablemente más rápido. El resultado fue la nueva serie System/390 que aún hoy en día es comercializada como zSeries. El diseño IBM POWER también se ha encontrado moviéndose hacia abajo en escala para producir el diseño PowerPC, el cual eliminó muchas de las instruccionessolo IBM y creó una implementación de chip único. El PowerPC fue utilizado en todas las computadoras Apple Macintosh hasta 2006, y está comenzando a ser utilizado en aplicaciones automotrices (algunos vehículos tienen más de 10 dentro de ellos), las consolas de videojuegos de última generación (PlayStation 3, Wii yXbox 360) están basadas en PowerPC.

Casi todos los demás proveedores se unieron rápidamente. De los esfuerzos similares en el Reino Unido resultó el INMOS Trasputer, el Acorn Archimedes y la línea Advanced RISC Machine, la cual tiene un gran éxito hoy en día. Las compañías existentes con diseños CISC también se unieron a la revolución. Intel lanzó el i860 y el i960 a finales de los ochenta, aunque no fueron muy exitosos. Motorola construyó un nuevo diseño pero no le vio demasiado uso y eventualmente lo abandonó, uniéndose a IBM para producir el PowerPC. AMD lanzó su familia 29000 la cual se convirtió en el diseño RISC más popular a principios de los noventa.



Hoy en día los microcontroladores y CPU RISC representan a la vasta mayoría de todos los CPU utilizados. La técnica de diseño RISC ofrece poder incluso en medidas pequeñas, y esto ha venido a dominar completamente el mercado de CPU integrados de bajo consumo de energía. Los CPU integrados son por mucho los procesadores más comunes en el mercado: considera que una familia completa con una o dos computadoras personales puede poseer varias docenas de dispositivos con procesadores integrados. RISC se ha apoderó completamente del mercado de estación de trabajo. Después del lanzamiento de la SUN SPARCstation los otros proveedores se apuraron a competir con sus propias soluciones basadas en RISC. Aunque hacia 2006-2010 las estaciones de trabajo pasaron a la arquitectura x86-64 de Intel y AMD. Incluso el mundo de las computadoras centrales está ahora basado completamente en RISC.

Esto es sorprendente en vista del dominio del Intel x86 y x86 64 en el mercado de las computadoras personales de escritorio (ahora también en el de estaciones de trabajo), ordenadores portátiles y en servidores de la gama baja. Aunque RISC fue capaz de avanzar en velocidad muy rápida y económicamente

Fuentes:
http://www.azc.uam.mx/publicaciones/enlinea2/num1/1-2.htm
http://es.wikipedia.org/wiki/Reduced_instruction_set_computing
http://www.test-ipv6.consulintel.es/Html/Tutoriales/Articulos/risc.html
Leer más...