SlideShare una empresa de Scribd logo
20-11-2014
CISC -RISC
Historia y Futuro
Antonio Castillo Mengíbar
UNIVERSIDAD DE CÁDIZ
Reduced instruction set computing – RISC vs Complex instruction set computing – CISC
[Historia]--------Enfocarse en un solo chip o en la complejidad de varios trabajando en un problema?
PowerPC (IBM, Motorola, y Apple) x86-64 (Intel,AMD)
IBM PowerPC 601 4ºGeneración Intel i-7
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CISC (ligada a la historia de Intel):
Pasado
Cronología
Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC.
Nos centraremos en la evolución de x86…(Intel)
Definición: x86 es un conjunto de instrucciones utilizada en micro arquitectura de CPU. Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está
basada en un modelo de arquitectura CISC.
[Microprocesador: 4 bits, transistores: 2.300, encapsulado: 16 pines, reloj: 740 KHz, Bus: 4 bits multiplexado, 12
bits de direcciones, Instrucciones de 8 bits de ancho - datos de 4 bits de ancho, 46 instrucciones (41 son de 8 bits
de ancho y 5 de 16 bits de ancho), 16 registros de 4 bits cada uno,Stack para subrutinas: 3 niveles de profundidad]
En 1971 Intel fue la primera compañía en lograr la integración de suficientes transistores como para vender un microprocesador (en
un simple chip) programable completo con un conjunto de instrucciones de 4 bits, que se volvería muy común en calculadoras de
bolsillo: El Intel 4004.
Curiosidad: Intel inició sus operaciones siendo un fabricante de
memoria para computadoras.
Curiosidad: La arquitectura x86 mantiene la compatibilidad
con la línea de procesadores de 16 bits de Intel, que a su
vez también eran compatibles con una familia de
procesadores de 8 bits.
Curiosidad: Existen viejos sistemas de control de semáforos en uso construidos
con el i4004.El chip es artículo de coleccionista y en eBay alcanzo hasta US$400
En 1972 lo sucedieron el 8008 y en 1974 el 8080 , cada vez logrando mayor capacidad.
==================================== (8 bits y Corría a 2 MHz)
[Direcciones de 8 bits, 16 KB de memoria,encapsulado:18 pines, bus 8 bits(compartido), [Encapsulado: 40 pines ,Microprocesador:8bits,reloj: 2 MHz , bus
de reloj:0.8 MHz, 8 puertos de entrada y 24 de salida] dirección de 16 bits, bus de datos de 8 bits, memoria:64KB
, registros: siete de 8 bits, puntero de pila en memoria de 16 bits,
KB contador de programa de 16 bits, 256 puertos de entrada/salida]
Ambos conjuntos de instrucciones x86 de i8008 hecho por (Datapoint) e i8080 está fuertemente basado en las especificaciones de diseño la empresa
Computer Terminal Corporation
En 1978 y 1979 lo sucedió el 8086-8088 (chip de 16 bits) de hasta 10 Mhz capaz de ser el corazón de computadoras de propósito múltiple. Pero fue IBM quien
lanzó la línea más exitosa de la historia: el IBM PC (1981) con un procesador 8088 desbancando del sector a muchos computadores personales.
[Zócalo: 40 pines, bus de datos interno de 16 bits, bus externo de 8 bits para la memoria y los periféricos, acceder hasta1 megabyte de RAM, usaba MS-DOS como S.O.,
transistores: 29.000]
En 1980 lo sucedió el 8087
Primer coprocesador (suplemento de las funciones del procesador principal) numérico de la arquitectura x86, inicio de la serie x87.
[Zócalo: 40 pines, no cache, Reloj: 4 MHz a 10 MHz, Transistores: 45.000]
Aplicaciones multitarea
En 1982 lo sucedió el 80286.Estamos ante un gran avance ya que sentó las bases para la aparición de los verdaderos sistemas multitarea. Producido hasta 1993. Por diseño,
una vez que el procesador entraba en el modo protegido, no podía volver al modo real compatible con el procesador sin un reinicio provocado por hardware. Esto provocó
muchos quebraderos de cabeza.
[Microprocesador: 24/16 bits, reloj: 6 MHz - 25 MHz, transistores: 134.000 transistores, Zócalo: 68 pines, direccionar hasta 16 MiB de memoria RAM]
En 1985 lo sucedió 80386 se produjo el boom de la multitarea, un avance tan fuerte que provoca un hito en la producción de
procesadores. Es común referirse como i386 a toda la línea de procesadores que le siguieron. Nace el primer procesador de Intel de 32 bits,
utilizarlo para aplicaciones de multitarea sería ya mucho más fácil –buenas noticias para los programadores-de lo que lo fue con su predecesor el
80286.Producido hasta 2007 para sistemas embebidos (empotrado) y tecnología aeroespacial .Es la tercera generación x86
[Reloj: 16 a 40 MHz, Zócalo: 68 pines, Microprocesador: 32 bits, bus externo de 16 bits, bus de direcciones de 24 bits]
Curiosidad: Más lento que Intel 4004, en cuanto a la cantidad de millones de
instrucciones por segundo, pero al procesar 8 bits de datos al tiempo y acceder a
mayor cantidad de memoria hace que este chip sea unas tres o cuatro veces más
rápido. Par terminales (exhibición y entrada de datos) no para PCs
Curiosidad: a partir de ese momento por el éxito obtenido,
todos los CPUs de Intel mantuvieron una estricta política de
compatibilidad hacia atrás. Por eso, hoy en día se puede
ejecutar programas 32 bits y 64 bits en una misma PC.
Curiosidad: implementó el modo protegido de ejecución, sentando las
bases para la aparición de los verdaderos sistemas multitarea. S.O como
OS/2(IBM), o Xenix (Microsoft) aprovecharon su modo protegido para
multitarea real.
En 1989 lo sucedió el 80486 (aparece caché L1)
Hasta su aparición, todas las computadoras PC tenían la opción de instalar en un zócalo de la placa base
un -bastante caro- coprocesador numérico - para las XT, el 8087. Para las AT, el 80287. Para las 386, el
80387, es decir estos incluyen el conjunto de instrucciones x87(modelos DX, SX los tenían desactivado).
A partir del 80486, el coprocesador numérico, así como la memoria caché L1 o de nivel 1 fueron
integrados dentro del chip de la CPU.
[Reloj: 16 MHz a 120 MHz, Zócalo:196-pin,32 bits, 16KB de caché L1]
En 1993-1999 apareció la gama Pentium(5ºGeneración de x86)
[Reloj: 60-300 MHz, Transistores; 3.100.000 transistores (primer
Pentium), cache interno de 8 KiB para datos y 8 KiB para
instrucciones]
La aparición de este procesador se llevó a cabo con un movimiento económico impresionante,
acabando con la competencia, que hasta entonces producía procesadores equivalentes.
Pentium poseía una arquitectura capaz de ejecutar dos operaciones a la vez gracias a sus dos
pipeline de datos de 32 bits cada uno. Además, poseía un bus de datos de 64 bits, permitiendo un
acceso a memoria 64 bits (aunque el procesador seguía manteniendo compatibilidad de 32 bits para
las operaciones internas y los registros también eran de 32 bits).
Procesadores Pentium:
 Intel Pentium Pro - 1995
 Intel Pentium MMX - 1997 (Conjunto de instrucciones SIMD) – Charla Rafa ---------------------------
 Intel Pentium II – 1997 |
 Intel Pentium II Xeon - 1998 (Servidores) |
 Intel Pentium III – 1999 |
 Intel Pentium 4 - 2000 |
 Intel Pentium M - 2003 |
 Intel Pentium D – 2005 |
 Intel Pentium Dual Core– 2006 |
En 1995-1998 apareció la gama Pentium(6ºGeneración de x86)
La meta era remplazar al Intel Pentium en toda la gama de aplicaciones, pero luego se centró como chip en el mundo de los servidores y equipos de sobremesa de gama
alta. Incluía la caché de segundo nivel en el mismo encapsulado que el procesador. Su elevado precio supuso un freno a su expansión.
[Reloj: 150MHz – 200MHz, un núcleo,
posibilidad de overclocking]
El Pentium Pro en aquel entonces
usaba un algoritmo de predicción de saltos más sofisticado que el Pentium. Introducía una instrucción de movimiento condicional (llamado cmov) que en alguno de los
casos también podía ser usada para evitar la necesidad de una instrucción de salto.
El Pentium Pro al principio tenía una caché desde 256 KiB hasta 512 KiB en el encapsulado, hasta la versión de 1 MiB introducida posteriormente. Todas las versiones eran
caras, particularmente aquellas que tenían más de 256 KiB de caché.
El rendimiento del código de 32 bits era excelente, pero el Pentium Pro a menudo iba más despacio que un Pentium cuando ejecutaba código o sistemas operativos de 16
bits. Windows 95 resultó ser extensamente de 16 bits, y el Pentium Pro no estaba bien posicionado para competir en el mercados de los sobremesas.
Curiosidad: Se llama Pentium y no un número porque ante el fallo de que un número no puede ser
tomado como marca registrada, a partir de entonces los procesadores llevan un nombre propio.
Curiosidad: AMD Tuvo que crear sus procesadores desde cero Este es el K5 y el K6 (A estos
procesadores se los bautizó así debido a que "K" significa Kriptonita.
Desde el Pentium II hasta el Pentium 4 ha sido la integración de más componentes, la adición de instrucciones
específicas de multimedia y a elevar la velocidad de reloj –MHz- tanto como sea posible.
La carrera de los MHz se vio frenada debido al creciente consumo de energía y generación de calor producida por
los microprocesadores a altas frecuencias de reloj, que en los últimos Pentium 4 superó fácilmente los 100 W.
Presentado como un chip de servidores de alta gama y de estaciones de trabajo que corrían el Windows NT de 32 bits y sistemas tipo UNIX, no estaba destinado para
permanecer dentro de ese mercado que volver al mercado de los ordenadores personales. Intel rellenó el hueco con una mejora al diseño del Pentium clásico
llamada Pentium MMX.- Charla de Rafa-
En los Pentium II, Pentium III y Pentium 4
aparecieron sus correspondientes versiones de bajo
costo y prestaciones (por tener menos memoria
caché de nivel 2) con el nombre comercial de
Celerón.
RISC:
Historia----------------------------------------------------------------------------------------------------------------------------------------------------------
Primer objetivo: Incrementar el rendimiento de la CPU.--->Velocidad de respuesta
Década de los ochenta: Mejorar los procesos
Se pensaba que se estaba alcanzando los límites teóricos, y las mejoras vendrían de procesos mejorados (pequeñas características en el chip).Un tamaño más
pequeño podría resultar en un mejor rendimiento al operar a más altas velocidades de reloj.
Se centraron en el diseño de chips para computación paralela. Esto requería una gran cantidad de chips dividiendo el problema entre estos.
Idea: Incluir en el chip un canal por el cual se pudiera dividir las instrucciones en etapas y en cada paso ir trabajando muchas instrucciones diferentes al mismo tiempo.
La clave: Pipeline –Segmentación en serie.
Idea: utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo, es decir, trabajar simultáneamente varias instrucciones a la vez
(Dependiendo del números de chips).Difícil de llevar a cabo porque algunas instrucciones dependían del resultado de otras instrucciones.
La clave: Paralelismo.
Siendo el espacio en el chip una cantidad finita y cuanto más pequeño mayor velocidad de ciclo de reloj. Para poder incluir todas esas características algo más tendría que
ser eliminado para hacer hueco.
Idea: menos transistores dedicados a la lógica principal. Ofrecían una mejora de rendimiento muy pequeña, pero añadieron nuevas características --RISC
La clave: CPU más simple que la de otros diseños (entre ellos CISC)
La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la
aplicación de las más recientes tecnologías de semiconductores. Por ello, los procesadores RISC no solo
tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos
de capacidad que se producen de generación en generación son mucho mayores que en los CISC.
A finales de los 80 ya habían dejado atrás a CISC en mejora de proceso y CISC con el tiempo
añade esta tecnología en sus diseños. 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.
Curiosidad: Parece ser que el motivo principal de dicha diversificación, aparte de aumentar a un costo mínimo el
abanico de modelos, prestaciones y precios, es de marketing: debido a las constantes bajadas de precio que
experimentan los procesadores y el hardware en general, crear una "barrera de contención" que justifique los
diferentes niveles de precios, poniendo un precio más alto a los procesadores más potentes.
Curiosidad: 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.
x86-64
La especificación fue creada por AMD, y ha sido implementada por AMD, Intel, VIA y otros. Antes del lanzamiento, se usaron los nombres "x86-64" y "x86_64" para referirse
al juego de instrucciones. Tras la publicación, AMD lo llamó "AMD64".3
Intel inicialmente usó los nombres IA-32e y EM64T antes de utilizar "Intel 64" para su
implementación. Algunos, incluido Apple, usan "x86-64" y "x86_64", mientras que otros, notablemente Sun Microsystems (ahora Oracle Corporation) y Microsoft, usan
"x64" mientras que la familia de sistemas operativos BSD y muchas distribuciones Linux usan "AMD64".
El procesador AMD Opteron fue el primero en implementar esta arquitectura; fue el primero en realizar un agregado importante a la arquitectura x86 diseñada por otra
compañía como Intel. Intel se vio forzada a seguir su ejemplo.
Curiosidad: Se conoce x86 como al conjunto de instrucciones que implementa un procesador que puede trabajar con instrucciones de 32 bits de largo, por eso nos
podemos referir indistintamente a la familia de procesadores que implementan este conjunto de instrucciones o solo al conjunto de instrucciones (todo depende del
contexto).
¿Por qué nos podemos referir indistintamente al conjunto de instrucciones o a los procesadores de esta familia como x86?
Como hemos visto antes, todos los procesadores antes del i386 eran distintos en todos los campos, desde la velocidad de reloj hasta los bits que utilizaban para el ancho
del bus de direcciones y el de datos, por lo que también utilizaban instrucciones diferentes de 8, de 16 bits de largo etc. el procesador de Intel 80386 conocido como i386
vino para ser un estándar, con instrucciones de 32 bits de largo. Fue tal el hito que marco en la historia que desde entonces se conocen a todos los procesadores
posteriores con x86 (la terminación 86 viene del procesador y x quiere decir que es una consecuencia de este procesador) para abreviar el nombre de las instrucciones en
los procesadores. De hecho desde este procesador, Intel dio a conocer todos su procesadores con esta terminación y A partir del microprocesador i486, se utilizaron
nombres no numéricos, haciendo referencia a la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les comercializó a menudo seguido de su
frecuencia, en megahercios.
Entonces, ¿Por qué conocemos al conjunto de instrucciones de 64 bits como x64?
Pues obviamente viene del largo de la instrucción de 64 bits como extensión del conjunto de instrucciones de 32 bits, no viene de un procesador como en el caso de x86”. El
nombre para la extensión de 64 Bits para el conjunto de x86 se conoce como: x86-64.
Más tarde fue nombrado AMD64 (debido a que fue el primero en integrar en sus instrucciones la extensión x64 originalmente) Intel licencia la instrucción con el nombre de
EM64T. Ambas instrucciones y los procesadores que las ocupan son todavía considerados x86.
Y es así que llamamos a los procesadores de 32bits como “x86” y no “x32”.
¿Cuáles son las Ventajas-Desventajas CISC / RISC?
CISC
Gran cantidad de instrucciones
Ventajas Desventajas
 ISA(arquitectura del conjunto de instrucciones)
amplio y versátil
 Gran cantidad de modos de direccionamiento
 Soporta gran cantidad de tipos de datos
 Implementación de instrucciones de alto nivel lo
más directamente posible
 Reducción del tiempo de ejecución de
instrucciones complejas por medio de
implementación directa en hardware
 Compatibilidad con miembros anteriores de la
familia(Historia Intel)1
 Permite operaciones complejas entre operandos
situados en la memoria o en
los registros internos(cara al programador)
Memoria - Memoria
 Micro arquitectura más compleja
 Instrucciones de longitud variable1
 Instrucciones complejas
 Poco uso de las instrucciones y
direccionamientos complejos
 Poco aprovechamiento de parte de los
compiladores: no es fácil encontrar la mejor
instrucción para ejecutar una tarea
 Baja densidad de código
 Accesos a memoria disminuyen velocidad de
ejecución
RISC
Implementar rapidez: segmentación - paralelismo - reducir los accesos a memoria.
Ventajas Desventajas
 Micro arquitectura más simple
 Instrucciones más cortas, menos tiempo de
acceso a memoria
 Compiladores más sencillos y eficientes
 Hardware más optimo
 Mayor número de líneas de código para una
función
 Compatibilidad con arquitecturas antiguas es
más difícil de mantener
 Permite operaciones sencillas entre operandos
situados únicamente en
los registros internos(cara al programador)
Registro - Registro
¿Cuáles son las Diferencias en características?
CISC RISC
Énfasis en Hardware Énfasis en software
Memoria - Memoria Registro - Registro
Muchas instrucciones Pocas instrucciones
Instrucciones complejas toman múltiples ciclos Instrucciones Simples toman un solo ciclo
Load/Store incorporadas en instrucciones. Solo Load/Store hace referencia a memoria.
No pipeline o poco pipeline “real” Alto pipeline
Instrucciones Interpretadas por un microprograma. Instrucciones interpretadas por el hardware
Complejidad en el microprograma. Complejidad en el compilador
Pocos registros de propósito general(guardan datos y
direcciones
Muchos registros de propósito general
Formato de instrucciones variable. Formato de instrucciones fija
Instrucciones largas,
Código con menos líneas
Instrucciones cortas,
Código con más líneas
Se enfatiza la versatilidad del repertorio de
instrucciones
Se añaden instrucciones nuevas sólo si son de uso
frecuente y no reducen el rendimiento de las más
importantes
¿Cuáles son las Diferencias en Hardware?
CISC:
Un chip RISC tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden:
 Incrementar el tamaño del conjunto de registros.
 Implementar medidas para aumentar el paralelismo interno.
 Añadir cachés enormes.
 No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.
 ….
Cabe mencionar que el tamaño del chip repercute en el consumo de este. En este caso, al ser el tamaño menor su consumo es menor.
RISC:
Un chip CISC tendrá más transistores para lógica principal, ya que implementa instrucciones para bastantes funcionalidades .Así que en el chip pueden implementar
menos cosas:
 Registros.
 Cache.
 ….
Composición interna e Implementación de instrucciones
Composición interna actual
o La máquina CISC implementa a nivel de hardware un unidad de
control micro programada que hace de intermediario antes de
que la unidad lógica ejecute la instrucción. Esta unidad
microprograma “divide” la instrucción CISC en micro –
instrucciones más sencillas para que finalmente la unidad lógica
RISC ejecute las micro – instrucciones.
o La máquina RISC ejecuta instrucciones más rápido porque no tiene
que pasar por una capa de conversión de micro código. El
compilador RISC genera más instrucciones que el compilador CISC
para el mismo proceso.
Unidad de Control Micro programada
Implementación
Supongamos que la memoria principal se divide en:
Desde fila 1 hasta 5 y columna 1 hasta 4. La unidad de ejecución es responsable de
llevar a cabo todos los cálculos. Sin embargo, la unidad de ejecución sólo puede
operar en los datos de que se ha cargado en uno de los cuatro registros (A, B, C, o
D). Digamos que queremos encontrar el producto de dos números - uno almacenado
en la posición 1: 3 y otro almacenado en la posición 4: 2 y almacenar de nuevo el
resultado en 1: 3.
Enfoque CISC:
En el diseño CISC se trataría de terminar la tarea en las mínimas instrucciones posibles mediante la implementación de hardware que podría entender y ejecutar
la serie de operaciones. Por lo tanto el procesador vendría con una instrucción específica 'MUL' en su conjunto de instrucciones:
1. 'MUL' cargaría los dos valores de la memoria en registros separados, multiplica los operandos en la unidad de ejecución
2. Almacena el producto en la ubicación adecuada.
Por lo tanto, toda la tarea de multiplicar dos números puede completarse con una instrucción:
MUL 1: 3, 4: 2
Después de ejecutar 'MUL' el procesador borra automáticamente los registros. Si uno de los operandos tiene que ser utilizado para otro calculo, el procesador
debe solicitarlo otra vez para su carga desde el banco de memoria a un registro. MUL se conoce como una "instrucción compleja", ya que opera directamente
en los bancos de memoria de la computadora y no requiere del programador para llamar explícitamente a las funciones de carga o almacenamiento porque ya
están implementadas en la misma instrucción.
Enfoque RISC:
En el diseño RISC se utilizan instrucciones sencillas que pueden ser ejecutadas dentro de un ciclo de reloj. Por lo tanto, la instrucción 'MUL' se dividirá en tres instrucciones.
1. "LOAD", que mueve los datos del banco de memoria a un registro,
2. "PROD", que encuentra el producto de dos operandos situados dentro de los registros, y
3. "STORE", que mueve los datos de un registro de los bancos de memoria.
Con el fin de realizar la tarea, un programador para codificar necesitaría cuatro o más líneas de ensamblador:
CARGA de registro A, 1: 3
CARGA de registro B, 4: 2
PROD A, B
LOAD 1: 3, A
En RISC, el operando se mantendrá en el registro hasta que se cargue otro valor.
Casos reales:
Sume el contenido de la localidad de memoria apuntada por A3 al componente de un arreglo que inicia en la localidad de memoria 100.
El número de índice del componente es A2. El contenido de A3 se incrementa automáticamente en uno
CISC (M68000) RISC (MIPS)
Add (A3)+, 100(A2)
Lw $t0, 0($s3)
Lw $t1, 100($s2)
Add $t2, $t0, $t1
Sw $t2, 0($s3)
Addi $s3, $s3,1
$t0 <- Mem[0+$s3]
$t1 <- Mem[100+$s2]
$t2 <- $t0 + $t1
Mem[0+$s3] <- $t2
$s3<- [$s3]+1
EJEMPLOS:
Ejemplos CISC:
Motorola 68000, Zilog Z80 y toda la familia Intel x86, AMD x86-64 usada en la mayoría de las computadoras personales actuales.
Ejemplos RISC:
Apple A4 (iPad) :
Procesador creado por P.A Semi (originalmente "Palo Alto Semiconductor") tras su
adquisición por parte de Apple.
El Apple A4 es un procesador basado en la arquitectura ARM (Advanced RISC
Machines) creado por PA Semi con un alto rendimiento y un bajo consumo
energético de cara a aumentar la duración de la batería.
Además, el A4 incluye en el mismo micro un procesador de gráficos integrado
que permite reproducir con soltura vídeos en h.264 de hasta 720p y 30 fps; así
como un gran rendimiento con los juegos y resto de aplicaciones actuales. Lo
cual, a simple vista y tras ver los vídeos disponibles en la web está realmente
bien.
Memoria principal:
Posee una memoria flash de tipo NAND que varía entre 16, 32 y 64 GB.
------------------------------
Los diseños del MIPS son utilizados en la línea de productos informáticos de SGI(Silicon Graphics); en muchos sistemas embebidos; en dispositivos para Windows CE;
routers Cisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation Portable.
Presente
Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. Ver Ejemplos.
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 por lo que las arquitecturas convergen.
RISC es ampliamente utilizado en Smartphones y tablets …
Mientras que CISC es utilizado en sobremesa y portátiles ,aunque hasta hace poco PowerPC era utilizado por Apple.
Futuro
Procesadores cuánticos a nivel de átomos---- Charla de Rafa Leyva ----
http://es.wikipedia.org/wiki/Computaci%C3%B3n_cu%C3%A1ntica
Seguridad en CISC - RISC
Articulo : CIO Today – Network Security – Apple Mythology and Desktop Security by Paul Murphy -2005-
* Hoy en día, la razón mayoritaria para abandonar Windows y utilizar Linux ya no es el coste, sino los fallos de seguridad y los virus que plagan Windows
* Casi todo el mundo se plantea el problema de la seguridad desde el software —sistema operativo— y no desde el hardware
Resultados obtenidos de una encuesta realizada por The Register—, el artículo analiza las diferencias entre las arquitecturas de microprocesadores x86 y PowerPC, y su
influencia en los problemas de seguridad.
En efecto, la mayoría de las vulnerabilidades explotan no sólo un problema a la hora de gestionar un error en el sistema operativo, sino la forma en que un procesador
determinado trata ese error. En el caso de los procesadores x86, la copia de un determinado conjunto de datos, mayor del espacio previsto, puede llegar a introducir datos
en la pila —un espacio diferente de memoria, previsto para gestionar la lista de tareas pendientes—, de modo que la instrucción de retorno desde el proceso que ha fallado
no contiene el código original, sino el código introducido.
Dicho de otra forma: para explotar, por ejemplo, una vulnerabilidad presente en Linux x86, hace falta un determinado código que la produzca, y además inyecte el código
problemático en la pila; explotar esa misma vulnerabilidad en Linux PowerPC causaría el cierre de la aplicación, pero es prácticamente imposible inyectar código que
permita realizar otras funciones, por la forma en que el procesador gestiona la pila. Esto es algo común a la mayoría de procesadores RISC. Y, desde luego, hace imposible
utilizar una simple traducción instrucción por instrucción del código que provocaba el fallo en Linux x86.
No quiero terminar sin citar uno de los párrafos finales:
Aunque los productos de Apple son generalmente un poco más rápidos y con mayores capacidades multimedia que sus contrapartidas PC, las diferencias más importantes
no están en cosas como la memoria o la velocidad del procesador, sino en el diseño, el software, y el coste de licencia.
Un punto más sobre la seguridad: Kelly Martin, en este artículo en The Register, se pregunta si no es posible que la falta de virus en Mac OS X se deba, más allá de la
dificultad mayor o menor en crear un virus, o un troyano —esto último no sería nada difícil, aunque existan más alarmas en Mac OS X que en Windows o Linux—, a que Mac
OS X gusta lo suficiente como para que la gente no quiera romperlo. Lectura simpática, aunque en inglés.
Anexo
Computación paralela
La computación Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el
rendimiento de computo.
La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a
menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela:
paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo
en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el
consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha
convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo.
Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que admite su hardware: equipos con procesadores multinúcleo y multi-procesador que
tienen múltiples elementos de procesamiento dentro de una sola máquina y los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea.
Segmentación de cauce-Pipeline
La segmentación de cauce, también denominada pipeline, es una técnica empleada en el diseño de procesadores, basada en la división de la ejecución de las instrucciones
en etapas, consiguiendo así que una instrucción empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesándose
simultáneamente.
Cada una de las etapas debe completar sus acciones en un ciclo de reloj, pasando sus resultados a la etapa siguiente y recibiéndolos de la anterior. Para eso es necesario
almacenar los datos en registros intermedios. Cualquier valor que pueda ser necesario en una etapa posterior debe irse propagando a través de esos registros intermedios
hasta que ya no sea necesario.
Para conseguir la segmentación es necesario que una instrucción utilice solamente una etapa en cada ciclo de ejecución.
Ya que todas las etapas deben de tardar lo mismo en su ejecución, el tiempo de ciclo será el de la etapa más lenta, más el del retardo provocado por la
utilización de los registros intermedios. Comparando este esquema con el multiciclo, el tiempo de ciclo será más lento, pero el CPI (Ciclos Por Instrucción) será
menor, lo que provoca un aumento del rendimiento. Ya que si no tenemos en cuenta los riesgos estructurales (que pueden provocar paradas en el pipeline),
tendríamos que en cada ciclo de reloj, termina de ejecutarse una instrucción (CPI=1).
http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_cauce
Segmentación (electrónica)
La segmentación (en inglés pipelining, literalmente tubería o cañería) es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos
digitales. Es aplicado, sobre todo, en microprocesadores.
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 una es la inversa de la otra. Repartir o segmentar equitativamente el cálculo hace que esa
frecuencia sea la óptima a costa de más área para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos de reloj/tiempo) en la salida
del resultado equivalente al número de segmentaciones o registros realizados.
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.
IF (Instruction Fetch): búsqueda
ID (Instruction Decode): decodificación
EX (Execution): ejecución de unidad aritmética lógica
MEM (Memory): memoria
WB (Writeback): escritura
http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(electr%C3%B3nica)
Microarquitectura
La microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización de la computadora, es la manera que una arquitectura del conjunto de
instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas. Las implementaciones pudieran variar
debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología. La arquitectura de computadora es la combinación del diseño determinado de la
microarquitectura y del conjunto de instrucciones.
http://es.wikipedia.org/wiki/Microarquitectura
Coprocesador
Ampliar: http://es.wikipedia.org/wiki/Coprocesador
Un coprocesador es un microprocesador de un ordenador utilizado como suplemento de las funciones del procesador principal (la CPU). Las operaciones
ejecutadas por uno de estos coprocesadores pueden ser operaciones de aritmética en coma flotante, procesamiento gráfico,procesamiento de señales, procesado
de texto o Criptografía, etc. Y su función es evitar que el procesador principal tenga que realizar estas tareas de cómputo intensivo, estos coprocesadores pueden
acelerar el rendimiento del sistema por el hecho de esta descarga de trabajo en el procesador principal y porque suelen ser procesadores especializados que
realizan las tareas para las que están diseñado más eficientemente. Además estos coprocesadores permiten a los compradores de ordenadores personalizar su
equipamiento ya que sólo tendrán que pagar ese hardware específico quienes deseen o necesiten tener el rendimiento extra ofrecido por estos dispositivos.
Bibliografía.
http://es.wikipedia.org/wiki/Reduced_instruction_set_computing
http://es.wikipedia.org/wiki/Complex_instruction_set_computing
http://es.wikipedia.org/wiki/PowerPC
http://es.wikipedia.org/wiki/X86
http://es.wikipedia.org/wiki/Intel_4004
http://es.wikipedia.org/wiki/Intel_8008
http://www.classiccmp.org/8008/8008UM.pdf (Manual del i8008)
http://es.wikipedia.org/wiki/Intel_8080
http://es.wikipedia.org/wiki/Intel_8087
http://es.wikipedia.org/wiki/X87
http://es.wikipedia.org/wiki/Intel_8088
http://es.wikipedia.org/wiki/Intel_80286
http://es.wikipedia.org/wiki/Intel_80386
http://es.wikipedia.org/wiki/Intel_Pentium
http://es.wikipedia.org/wiki/Pentium_Pro
http://www.pcmag.com/encyclopedia/term/50548/risc (inglés)
http://www.engineersgarage.com/articles/risc-and-cisc-architecture?page=5
http://www.ie.itcr.ac.cr/pvega/Project/Documents_SD/Handout%20N3%20CISC%20y%20RISC.pdf
http://www.cio-today.com/story.xhtml?story_id=1110000275OO
http://www.entremaqueros.com/bitacoras/memoria/2005/05/21/seguridad-windows-linux-macosx/
http://www.winface.com/cio_today/ent_apple.html (inglés)
http://ipadtecno.blogspot.mx/ (ipad)
Diferencia Registro – Caché –Respuesta:Rápidez
¿Cómo se carga de la cache a registros?
Una memoria caché es similar a la RAM, excepto que es extremadamente rápida comparada con la memoria normal y se usa en forma diferente. Cuando un programa está
en ejecución y la CPU necesita leer datos o instrucciones de la memoria regular, verifica primero si los datos están en la caché. Si los datos que necesita no están ahí,
continúa y lee los datos de la memoria regular y los lleva a sus registros, pero también carga los datos en la memoria caché al mismo tiempo. La siguiente vez que la CPU
necesita cargar los mismos datos, los encuentra en la caché y ahorra el tiempo que se necesita para cargar los datos de la memoria regular. Podríamos pensar que las
probabilidades de que la CPU encuentre los datos que necesita en la caché son pequeñas, pero de hecho encuentra ahí los datos que necesita tan frecuentemente que
mejora perceptiblemente el desempeño de una PC. Las instrucciones de programa son un buen ejemplo de los datos que la CPU encuentra a menudo en la caché. Con
frecuencia, los programas hacen que las computadoras realicen la misma operación repetidamente hasta que se cumpla alguna condición. En el lenguaje de cómputo, este
procedimiento repetitivo es llamado ciclo iterativo (Loop).

Más contenido relacionado

La actualidad más candente

DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
John Campbell
 
Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
Anando Kumar Paul
 
IBM SMP/E
IBM SMP/EIBM SMP/E
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesador
Jose Diaz Silva
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
Car_00_01
 
Comandos básicos en Ubuntu
Comandos básicos en Ubuntu Comandos básicos en Ubuntu
Comandos básicos en Ubuntu
Daniel Rivas
 
Diapositivas de microprocesador
Diapositivas de microprocesadorDiapositivas de microprocesador
Diapositivas de microprocesadorAnGelitto LosaDa
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
Wave Digitech
 
SISTEMAS OPERATIVOS LINUX examen 1-16.pdf
SISTEMAS OPERATIVOS LINUX examen 1-16.pdfSISTEMAS OPERATIVOS LINUX examen 1-16.pdf
SISTEMAS OPERATIVOS LINUX examen 1-16.pdf
juan lozano
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
ChriztOpher Medina
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
Stefano Salvatori
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Arquitectura Computacional
Arquitectura ComputacionalArquitectura Computacional
Arquitectura Computacional
Nadiia Val Castellanos Daniel
 
Sistema E S
Sistema E SSistema E S
Sistema E S
Henry Guarnizo
 
Programación RPG - Conceptos
Programación RPG - ConceptosProgramación RPG - Conceptos
Programación RPG - Conceptos
Giovanny Guillen
 
Installing Aix
Installing AixInstalling Aix
Installing Aix
Frederick James Rathweg
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesossiamu_evap
 
Linux Serial Driver
Linux Serial DriverLinux Serial Driver
Linux Serial Driver
艾鍗科技
 

La actualidad más candente (20)

DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
 
Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
 
Linux Kernel Overview
Linux Kernel OverviewLinux Kernel Overview
Linux Kernel Overview
 
IBM SMP/E
IBM SMP/EIBM SMP/E
IBM SMP/E
 
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Comandos básicos en Ubuntu
Comandos básicos en Ubuntu Comandos básicos en Ubuntu
Comandos básicos en Ubuntu
 
Diapositivas de microprocesador
Diapositivas de microprocesadorDiapositivas de microprocesador
Diapositivas de microprocesador
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
SISTEMAS OPERATIVOS LINUX examen 1-16.pdf
SISTEMAS OPERATIVOS LINUX examen 1-16.pdfSISTEMAS OPERATIVOS LINUX examen 1-16.pdf
SISTEMAS OPERATIVOS LINUX examen 1-16.pdf
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Memoria cache
Memoria cacheMemoria cache
Memoria cache
 
Arquitectura Computacional
Arquitectura ComputacionalArquitectura Computacional
Arquitectura Computacional
 
Sistema E S
Sistema E SSistema E S
Sistema E S
 
Programación RPG - Conceptos
Programación RPG - ConceptosProgramación RPG - Conceptos
Programación RPG - Conceptos
 
Installing Aix
Installing AixInstalling Aix
Installing Aix
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesos
 
Linux Serial Driver
Linux Serial DriverLinux Serial Driver
Linux Serial Driver
 

Similar a Risc Cisc

Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
Jorge Paredes Toledo
 
Universidad popular del cesar
Universidad popular del cesarUniversidad popular del cesar
Universidad popular del cesar
Jhon Bueno
 
Microprocesador(IS-T.UPA)
Microprocesador(IS-T.UPA)Microprocesador(IS-T.UPA)
Microprocesador(IS-T.UPA)
jimmy Apanu Inoach
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadoresnandolanux
 
Historia y evolucion de los microprocesadores v2
Historia y evolucion de los microprocesadores v2Historia y evolucion de los microprocesadores v2
Historia y evolucion de los microprocesadores v2
smith00
 
Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Yolanda Mora
 
Microprocesadores3
Microprocesadores3Microprocesadores3
Microprocesadores3
LORENA AGUIAR
 
Microprocesadores.ppsx carlos mario
Microprocesadores.ppsx carlos marioMicroprocesadores.ppsx carlos mario
Microprocesadores.ppsx carlos mariocarlos9318
 
evolucion de los procesadores
evolucion de los procesadoresevolucion de los procesadores
evolucion de los procesadores
ediigatto
 
Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]tanztanz
 
Breve historia de la computacion
Breve historia de la computacionBreve historia de la computacion
Breve historia de la computaciontayloritajojo
 
Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]tanztanz
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadoreskristel24
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadoresmat3matik
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadoresJulieta M
 

Similar a Risc Cisc (20)

Evolución del microprocesador
Evolución del microprocesadorEvolución del microprocesador
Evolución del microprocesador
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Universidad popular del cesar
Universidad popular del cesarUniversidad popular del cesar
Universidad popular del cesar
 
Microprocesador(IS-T.UPA)
Microprocesador(IS-T.UPA)Microprocesador(IS-T.UPA)
Microprocesador(IS-T.UPA)
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
PROCESADOR
PROCESADORPROCESADOR
PROCESADOR
 
Historia y evolucion de los microprocesadores v2
Historia y evolucion de los microprocesadores v2Historia y evolucion de los microprocesadores v2
Historia y evolucion de los microprocesadores v2
 
Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...
 
Microprocesadores3
Microprocesadores3Microprocesadores3
Microprocesadores3
 
Microprocesadores.ppsx carlos mario
Microprocesadores.ppsx carlos marioMicroprocesadores.ppsx carlos mario
Microprocesadores.ppsx carlos mario
 
evolucion de los procesadores
evolucion de los procesadoresevolucion de los procesadores
evolucion de los procesadores
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]
 
Breve historia de la computacion
Breve historia de la computacionBreve historia de la computacion
Breve historia de la computacion
 
Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]Breve%20 historia%20de%20los%20microprocesadores[1]
Breve%20 historia%20de%20los%20microprocesadores[1]
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadores
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadores
 
Breve historia de los microprocesadores
Breve historia de los microprocesadoresBreve historia de los microprocesadores
Breve historia de los microprocesadores
 

Último

QUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptxQUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptx
AnthonyFernandoArias
 
Solucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihiniSolucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihini
corderojulia187
 
TRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epicoTRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epico
edepjuanorozco
 
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRALMODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
Fernando540828
 
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación-  PLATAFORMA VIRTUAL E-LEARNING .pptxPresentación-  PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
arelisguerra707
 
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOSTAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
darlingreserved
 
Las plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etcLas plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etc
60475271
 

Último (7)

QUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptxQUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptx
 
Solucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihiniSolucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihini
 
TRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epicoTRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epico
 
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRALMODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
 
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación-  PLATAFORMA VIRTUAL E-LEARNING .pptxPresentación-  PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
 
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOSTAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
 
Las plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etcLas plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etc
 

Risc Cisc

  • 1. 20-11-2014 CISC -RISC Historia y Futuro Antonio Castillo Mengíbar UNIVERSIDAD DE CÁDIZ
  • 2. Reduced instruction set computing – RISC vs Complex instruction set computing – CISC [Historia]--------Enfocarse en un solo chip o en la complejidad de varios trabajando en un problema? PowerPC (IBM, Motorola, y Apple) x86-64 (Intel,AMD) IBM PowerPC 601 4ºGeneración Intel i-7 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CISC (ligada a la historia de Intel): Pasado Cronología Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Nos centraremos en la evolución de x86…(Intel) Definición: x86 es un conjunto de instrucciones utilizada en micro arquitectura de CPU. Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está basada en un modelo de arquitectura CISC. [Microprocesador: 4 bits, transistores: 2.300, encapsulado: 16 pines, reloj: 740 KHz, Bus: 4 bits multiplexado, 12 bits de direcciones, Instrucciones de 8 bits de ancho - datos de 4 bits de ancho, 46 instrucciones (41 son de 8 bits de ancho y 5 de 16 bits de ancho), 16 registros de 4 bits cada uno,Stack para subrutinas: 3 niveles de profundidad] En 1971 Intel fue la primera compañía en lograr la integración de suficientes transistores como para vender un microprocesador (en un simple chip) programable completo con un conjunto de instrucciones de 4 bits, que se volvería muy común en calculadoras de bolsillo: El Intel 4004. Curiosidad: Intel inició sus operaciones siendo un fabricante de memoria para computadoras. Curiosidad: La arquitectura x86 mantiene la compatibilidad con la línea de procesadores de 16 bits de Intel, que a su vez también eran compatibles con una familia de procesadores de 8 bits. Curiosidad: Existen viejos sistemas de control de semáforos en uso construidos con el i4004.El chip es artículo de coleccionista y en eBay alcanzo hasta US$400
  • 3. En 1972 lo sucedieron el 8008 y en 1974 el 8080 , cada vez logrando mayor capacidad. ==================================== (8 bits y Corría a 2 MHz) [Direcciones de 8 bits, 16 KB de memoria,encapsulado:18 pines, bus 8 bits(compartido), [Encapsulado: 40 pines ,Microprocesador:8bits,reloj: 2 MHz , bus de reloj:0.8 MHz, 8 puertos de entrada y 24 de salida] dirección de 16 bits, bus de datos de 8 bits, memoria:64KB , registros: siete de 8 bits, puntero de pila en memoria de 16 bits, KB contador de programa de 16 bits, 256 puertos de entrada/salida] Ambos conjuntos de instrucciones x86 de i8008 hecho por (Datapoint) e i8080 está fuertemente basado en las especificaciones de diseño la empresa Computer Terminal Corporation En 1978 y 1979 lo sucedió el 8086-8088 (chip de 16 bits) de hasta 10 Mhz capaz de ser el corazón de computadoras de propósito múltiple. Pero fue IBM quien lanzó la línea más exitosa de la historia: el IBM PC (1981) con un procesador 8088 desbancando del sector a muchos computadores personales. [Zócalo: 40 pines, bus de datos interno de 16 bits, bus externo de 8 bits para la memoria y los periféricos, acceder hasta1 megabyte de RAM, usaba MS-DOS como S.O., transistores: 29.000] En 1980 lo sucedió el 8087 Primer coprocesador (suplemento de las funciones del procesador principal) numérico de la arquitectura x86, inicio de la serie x87. [Zócalo: 40 pines, no cache, Reloj: 4 MHz a 10 MHz, Transistores: 45.000] Aplicaciones multitarea En 1982 lo sucedió el 80286.Estamos ante un gran avance ya que sentó las bases para la aparición de los verdaderos sistemas multitarea. Producido hasta 1993. Por diseño, una vez que el procesador entraba en el modo protegido, no podía volver al modo real compatible con el procesador sin un reinicio provocado por hardware. Esto provocó muchos quebraderos de cabeza. [Microprocesador: 24/16 bits, reloj: 6 MHz - 25 MHz, transistores: 134.000 transistores, Zócalo: 68 pines, direccionar hasta 16 MiB de memoria RAM] En 1985 lo sucedió 80386 se produjo el boom de la multitarea, un avance tan fuerte que provoca un hito en la producción de procesadores. Es común referirse como i386 a toda la línea de procesadores que le siguieron. Nace el primer procesador de Intel de 32 bits, utilizarlo para aplicaciones de multitarea sería ya mucho más fácil –buenas noticias para los programadores-de lo que lo fue con su predecesor el 80286.Producido hasta 2007 para sistemas embebidos (empotrado) y tecnología aeroespacial .Es la tercera generación x86 [Reloj: 16 a 40 MHz, Zócalo: 68 pines, Microprocesador: 32 bits, bus externo de 16 bits, bus de direcciones de 24 bits] Curiosidad: Más lento que Intel 4004, en cuanto a la cantidad de millones de instrucciones por segundo, pero al procesar 8 bits de datos al tiempo y acceder a mayor cantidad de memoria hace que este chip sea unas tres o cuatro veces más rápido. Par terminales (exhibición y entrada de datos) no para PCs Curiosidad: a partir de ese momento por el éxito obtenido, todos los CPUs de Intel mantuvieron una estricta política de compatibilidad hacia atrás. Por eso, hoy en día se puede ejecutar programas 32 bits y 64 bits en una misma PC. Curiosidad: implementó el modo protegido de ejecución, sentando las bases para la aparición de los verdaderos sistemas multitarea. S.O como OS/2(IBM), o Xenix (Microsoft) aprovecharon su modo protegido para multitarea real.
  • 4. En 1989 lo sucedió el 80486 (aparece caché L1) Hasta su aparición, todas las computadoras PC tenían la opción de instalar en un zócalo de la placa base un -bastante caro- coprocesador numérico - para las XT, el 8087. Para las AT, el 80287. Para las 386, el 80387, es decir estos incluyen el conjunto de instrucciones x87(modelos DX, SX los tenían desactivado). A partir del 80486, el coprocesador numérico, así como la memoria caché L1 o de nivel 1 fueron integrados dentro del chip de la CPU. [Reloj: 16 MHz a 120 MHz, Zócalo:196-pin,32 bits, 16KB de caché L1] En 1993-1999 apareció la gama Pentium(5ºGeneración de x86) [Reloj: 60-300 MHz, Transistores; 3.100.000 transistores (primer Pentium), cache interno de 8 KiB para datos y 8 KiB para instrucciones] La aparición de este procesador se llevó a cabo con un movimiento económico impresionante, acabando con la competencia, que hasta entonces producía procesadores equivalentes. Pentium poseía una arquitectura capaz de ejecutar dos operaciones a la vez gracias a sus dos pipeline de datos de 32 bits cada uno. Además, poseía un bus de datos de 64 bits, permitiendo un acceso a memoria 64 bits (aunque el procesador seguía manteniendo compatibilidad de 32 bits para las operaciones internas y los registros también eran de 32 bits). Procesadores Pentium:  Intel Pentium Pro - 1995  Intel Pentium MMX - 1997 (Conjunto de instrucciones SIMD) – Charla Rafa ---------------------------  Intel Pentium II – 1997 |  Intel Pentium II Xeon - 1998 (Servidores) |  Intel Pentium III – 1999 |  Intel Pentium 4 - 2000 |  Intel Pentium M - 2003 |  Intel Pentium D – 2005 |  Intel Pentium Dual Core– 2006 | En 1995-1998 apareció la gama Pentium(6ºGeneración de x86) La meta era remplazar al Intel Pentium en toda la gama de aplicaciones, pero luego se centró como chip en el mundo de los servidores y equipos de sobremesa de gama alta. Incluía la caché de segundo nivel en el mismo encapsulado que el procesador. Su elevado precio supuso un freno a su expansión. [Reloj: 150MHz – 200MHz, un núcleo, posibilidad de overclocking] El Pentium Pro en aquel entonces usaba un algoritmo de predicción de saltos más sofisticado que el Pentium. Introducía una instrucción de movimiento condicional (llamado cmov) que en alguno de los casos también podía ser usada para evitar la necesidad de una instrucción de salto. El Pentium Pro al principio tenía una caché desde 256 KiB hasta 512 KiB en el encapsulado, hasta la versión de 1 MiB introducida posteriormente. Todas las versiones eran caras, particularmente aquellas que tenían más de 256 KiB de caché. El rendimiento del código de 32 bits era excelente, pero el Pentium Pro a menudo iba más despacio que un Pentium cuando ejecutaba código o sistemas operativos de 16 bits. Windows 95 resultó ser extensamente de 16 bits, y el Pentium Pro no estaba bien posicionado para competir en el mercados de los sobremesas. Curiosidad: Se llama Pentium y no un número porque ante el fallo de que un número no puede ser tomado como marca registrada, a partir de entonces los procesadores llevan un nombre propio. Curiosidad: AMD Tuvo que crear sus procesadores desde cero Este es el K5 y el K6 (A estos procesadores se los bautizó así debido a que "K" significa Kriptonita. Desde el Pentium II hasta el Pentium 4 ha sido la integración de más componentes, la adición de instrucciones específicas de multimedia y a elevar la velocidad de reloj –MHz- tanto como sea posible. La carrera de los MHz se vio frenada debido al creciente consumo de energía y generación de calor producida por los microprocesadores a altas frecuencias de reloj, que en los últimos Pentium 4 superó fácilmente los 100 W.
  • 5. Presentado como un chip de servidores de alta gama y de estaciones de trabajo que corrían el Windows NT de 32 bits y sistemas tipo UNIX, no estaba destinado para permanecer dentro de ese mercado que volver al mercado de los ordenadores personales. Intel rellenó el hueco con una mejora al diseño del Pentium clásico llamada Pentium MMX.- Charla de Rafa- En los Pentium II, Pentium III y Pentium 4 aparecieron sus correspondientes versiones de bajo costo y prestaciones (por tener menos memoria caché de nivel 2) con el nombre comercial de Celerón. RISC: Historia---------------------------------------------------------------------------------------------------------------------------------------------------------- Primer objetivo: Incrementar el rendimiento de la CPU.--->Velocidad de respuesta Década de los ochenta: Mejorar los procesos Se pensaba que se estaba alcanzando los límites teóricos, y las mejoras vendrían de procesos mejorados (pequeñas características en el chip).Un tamaño más pequeño podría resultar en un mejor rendimiento al operar a más altas velocidades de reloj. Se centraron en el diseño de chips para computación paralela. Esto requería una gran cantidad de chips dividiendo el problema entre estos. Idea: Incluir en el chip un canal por el cual se pudiera dividir las instrucciones en etapas y en cada paso ir trabajando muchas instrucciones diferentes al mismo tiempo. La clave: Pipeline –Segmentación en serie. Idea: utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo, es decir, trabajar simultáneamente varias instrucciones a la vez (Dependiendo del números de chips).Difícil de llevar a cabo porque algunas instrucciones dependían del resultado de otras instrucciones. La clave: Paralelismo. Siendo el espacio en el chip una cantidad finita y cuanto más pequeño mayor velocidad de ciclo de reloj. Para poder incluir todas esas características algo más tendría que ser eliminado para hacer hueco. Idea: menos transistores dedicados a la lógica principal. Ofrecían una mejora de rendimiento muy pequeña, pero añadieron nuevas características --RISC La clave: CPU más simple que la de otros diseños (entre ellos CISC) La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicación de las más recientes tecnologías de semiconductores. Por ello, los procesadores RISC no solo tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos de capacidad que se producen de generación en generación son mucho mayores que en los CISC. A finales de los 80 ya habían dejado atrás a CISC en mejora de proceso y CISC con el tiempo añade esta tecnología en sus diseños. 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. Curiosidad: Parece ser que el motivo principal de dicha diversificación, aparte de aumentar a un costo mínimo el abanico de modelos, prestaciones y precios, es de marketing: debido a las constantes bajadas de precio que experimentan los procesadores y el hardware en general, crear una "barrera de contención" que justifique los diferentes niveles de precios, poniendo un precio más alto a los procesadores más potentes. Curiosidad: 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.
  • 6. x86-64 La especificación fue creada por AMD, y ha sido implementada por AMD, Intel, VIA y otros. Antes del lanzamiento, se usaron los nombres "x86-64" y "x86_64" para referirse al juego de instrucciones. Tras la publicación, AMD lo llamó "AMD64".3 Intel inicialmente usó los nombres IA-32e y EM64T antes de utilizar "Intel 64" para su implementación. Algunos, incluido Apple, usan "x86-64" y "x86_64", mientras que otros, notablemente Sun Microsystems (ahora Oracle Corporation) y Microsoft, usan "x64" mientras que la familia de sistemas operativos BSD y muchas distribuciones Linux usan "AMD64". El procesador AMD Opteron fue el primero en implementar esta arquitectura; fue el primero en realizar un agregado importante a la arquitectura x86 diseñada por otra compañía como Intel. Intel se vio forzada a seguir su ejemplo. Curiosidad: Se conoce x86 como al conjunto de instrucciones que implementa un procesador que puede trabajar con instrucciones de 32 bits de largo, por eso nos podemos referir indistintamente a la familia de procesadores que implementan este conjunto de instrucciones o solo al conjunto de instrucciones (todo depende del contexto). ¿Por qué nos podemos referir indistintamente al conjunto de instrucciones o a los procesadores de esta familia como x86? Como hemos visto antes, todos los procesadores antes del i386 eran distintos en todos los campos, desde la velocidad de reloj hasta los bits que utilizaban para el ancho del bus de direcciones y el de datos, por lo que también utilizaban instrucciones diferentes de 8, de 16 bits de largo etc. el procesador de Intel 80386 conocido como i386 vino para ser un estándar, con instrucciones de 32 bits de largo. Fue tal el hito que marco en la historia que desde entonces se conocen a todos los procesadores posteriores con x86 (la terminación 86 viene del procesador y x quiere decir que es una consecuencia de este procesador) para abreviar el nombre de las instrucciones en los procesadores. De hecho desde este procesador, Intel dio a conocer todos su procesadores con esta terminación y A partir del microprocesador i486, se utilizaron nombres no numéricos, haciendo referencia a la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les comercializó a menudo seguido de su frecuencia, en megahercios. Entonces, ¿Por qué conocemos al conjunto de instrucciones de 64 bits como x64? Pues obviamente viene del largo de la instrucción de 64 bits como extensión del conjunto de instrucciones de 32 bits, no viene de un procesador como en el caso de x86”. El nombre para la extensión de 64 Bits para el conjunto de x86 se conoce como: x86-64. Más tarde fue nombrado AMD64 (debido a que fue el primero en integrar en sus instrucciones la extensión x64 originalmente) Intel licencia la instrucción con el nombre de EM64T. Ambas instrucciones y los procesadores que las ocupan son todavía considerados x86. Y es así que llamamos a los procesadores de 32bits como “x86” y no “x32”.
  • 7. ¿Cuáles son las Ventajas-Desventajas CISC / RISC? CISC Gran cantidad de instrucciones Ventajas Desventajas  ISA(arquitectura del conjunto de instrucciones) amplio y versátil  Gran cantidad de modos de direccionamiento  Soporta gran cantidad de tipos de datos  Implementación de instrucciones de alto nivel lo más directamente posible  Reducción del tiempo de ejecución de instrucciones complejas por medio de implementación directa en hardware  Compatibilidad con miembros anteriores de la familia(Historia Intel)1  Permite operaciones complejas entre operandos situados en la memoria o en los registros internos(cara al programador) Memoria - Memoria  Micro arquitectura más compleja  Instrucciones de longitud variable1  Instrucciones complejas  Poco uso de las instrucciones y direccionamientos complejos  Poco aprovechamiento de parte de los compiladores: no es fácil encontrar la mejor instrucción para ejecutar una tarea  Baja densidad de código  Accesos a memoria disminuyen velocidad de ejecución RISC Implementar rapidez: segmentación - paralelismo - reducir los accesos a memoria. Ventajas Desventajas  Micro arquitectura más simple  Instrucciones más cortas, menos tiempo de acceso a memoria  Compiladores más sencillos y eficientes  Hardware más optimo  Mayor número de líneas de código para una función  Compatibilidad con arquitecturas antiguas es más difícil de mantener  Permite operaciones sencillas entre operandos situados únicamente en los registros internos(cara al programador) Registro - Registro
  • 8. ¿Cuáles son las Diferencias en características? CISC RISC Énfasis en Hardware Énfasis en software Memoria - Memoria Registro - Registro Muchas instrucciones Pocas instrucciones Instrucciones complejas toman múltiples ciclos Instrucciones Simples toman un solo ciclo Load/Store incorporadas en instrucciones. Solo Load/Store hace referencia a memoria. No pipeline o poco pipeline “real” Alto pipeline Instrucciones Interpretadas por un microprograma. Instrucciones interpretadas por el hardware Complejidad en el microprograma. Complejidad en el compilador Pocos registros de propósito general(guardan datos y direcciones Muchos registros de propósito general Formato de instrucciones variable. Formato de instrucciones fija Instrucciones largas, Código con menos líneas Instrucciones cortas, Código con más líneas Se enfatiza la versatilidad del repertorio de instrucciones Se añaden instrucciones nuevas sólo si son de uso frecuente y no reducen el rendimiento de las más importantes ¿Cuáles son las Diferencias en Hardware? CISC: Un chip RISC tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden:  Incrementar el tamaño del conjunto de registros.  Implementar medidas para aumentar el paralelismo interno.  Añadir cachés enormes.  No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.  …. Cabe mencionar que el tamaño del chip repercute en el consumo de este. En este caso, al ser el tamaño menor su consumo es menor. RISC: Un chip CISC tendrá más transistores para lógica principal, ya que implementa instrucciones para bastantes funcionalidades .Así que en el chip pueden implementar menos cosas:  Registros.  Cache.  ….
  • 9. Composición interna e Implementación de instrucciones Composición interna actual o La máquina CISC implementa a nivel de hardware un unidad de control micro programada que hace de intermediario antes de que la unidad lógica ejecute la instrucción. Esta unidad microprograma “divide” la instrucción CISC en micro – instrucciones más sencillas para que finalmente la unidad lógica RISC ejecute las micro – instrucciones. o La máquina RISC ejecuta instrucciones más rápido porque no tiene que pasar por una capa de conversión de micro código. El compilador RISC genera más instrucciones que el compilador CISC para el mismo proceso. Unidad de Control Micro programada Implementación Supongamos que la memoria principal se divide en: Desde fila 1 hasta 5 y columna 1 hasta 4. La unidad de ejecución es responsable de llevar a cabo todos los cálculos. Sin embargo, la unidad de ejecución sólo puede operar en los datos de que se ha cargado en uno de los cuatro registros (A, B, C, o D). Digamos que queremos encontrar el producto de dos números - uno almacenado en la posición 1: 3 y otro almacenado en la posición 4: 2 y almacenar de nuevo el resultado en 1: 3. Enfoque CISC: En el diseño CISC se trataría de terminar la tarea en las mínimas instrucciones posibles mediante la implementación de hardware que podría entender y ejecutar la serie de operaciones. Por lo tanto el procesador vendría con una instrucción específica 'MUL' en su conjunto de instrucciones: 1. 'MUL' cargaría los dos valores de la memoria en registros separados, multiplica los operandos en la unidad de ejecución 2. Almacena el producto en la ubicación adecuada. Por lo tanto, toda la tarea de multiplicar dos números puede completarse con una instrucción: MUL 1: 3, 4: 2 Después de ejecutar 'MUL' el procesador borra automáticamente los registros. Si uno de los operandos tiene que ser utilizado para otro calculo, el procesador debe solicitarlo otra vez para su carga desde el banco de memoria a un registro. MUL se conoce como una "instrucción compleja", ya que opera directamente en los bancos de memoria de la computadora y no requiere del programador para llamar explícitamente a las funciones de carga o almacenamiento porque ya están implementadas en la misma instrucción.
  • 10. Enfoque RISC: En el diseño RISC se utilizan instrucciones sencillas que pueden ser ejecutadas dentro de un ciclo de reloj. Por lo tanto, la instrucción 'MUL' se dividirá en tres instrucciones. 1. "LOAD", que mueve los datos del banco de memoria a un registro, 2. "PROD", que encuentra el producto de dos operandos situados dentro de los registros, y 3. "STORE", que mueve los datos de un registro de los bancos de memoria. Con el fin de realizar la tarea, un programador para codificar necesitaría cuatro o más líneas de ensamblador: CARGA de registro A, 1: 3 CARGA de registro B, 4: 2 PROD A, B LOAD 1: 3, A En RISC, el operando se mantendrá en el registro hasta que se cargue otro valor. Casos reales: Sume el contenido de la localidad de memoria apuntada por A3 al componente de un arreglo que inicia en la localidad de memoria 100. El número de índice del componente es A2. El contenido de A3 se incrementa automáticamente en uno CISC (M68000) RISC (MIPS) Add (A3)+, 100(A2) Lw $t0, 0($s3) Lw $t1, 100($s2) Add $t2, $t0, $t1 Sw $t2, 0($s3) Addi $s3, $s3,1 $t0 <- Mem[0+$s3] $t1 <- Mem[100+$s2] $t2 <- $t0 + $t1 Mem[0+$s3] <- $t2 $s3<- [$s3]+1
  • 11. EJEMPLOS: Ejemplos CISC: Motorola 68000, Zilog Z80 y toda la familia Intel x86, AMD x86-64 usada en la mayoría de las computadoras personales actuales. Ejemplos RISC: Apple A4 (iPad) : Procesador creado por P.A Semi (originalmente "Palo Alto Semiconductor") tras su adquisición por parte de Apple. El Apple A4 es un procesador basado en la arquitectura ARM (Advanced RISC Machines) creado por PA Semi con un alto rendimiento y un bajo consumo energético de cara a aumentar la duración de la batería. Además, el A4 incluye en el mismo micro un procesador de gráficos integrado que permite reproducir con soltura vídeos en h.264 de hasta 720p y 30 fps; así como un gran rendimiento con los juegos y resto de aplicaciones actuales. Lo cual, a simple vista y tras ver los vídeos disponibles en la web está realmente bien. Memoria principal: Posee una memoria flash de tipo NAND que varía entre 16, 32 y 64 GB. ------------------------------ Los diseños del MIPS son utilizados en la línea de productos informáticos de SGI(Silicon Graphics); en muchos sistemas embebidos; en dispositivos para Windows CE; routers Cisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation Portable. Presente Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. Ver Ejemplos. 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 por lo que las arquitecturas convergen. RISC es ampliamente utilizado en Smartphones y tablets … Mientras que CISC es utilizado en sobremesa y portátiles ,aunque hasta hace poco PowerPC era utilizado por Apple. Futuro Procesadores cuánticos a nivel de átomos---- Charla de Rafa Leyva ---- http://es.wikipedia.org/wiki/Computaci%C3%B3n_cu%C3%A1ntica
  • 12. Seguridad en CISC - RISC Articulo : CIO Today – Network Security – Apple Mythology and Desktop Security by Paul Murphy -2005- * Hoy en día, la razón mayoritaria para abandonar Windows y utilizar Linux ya no es el coste, sino los fallos de seguridad y los virus que plagan Windows * Casi todo el mundo se plantea el problema de la seguridad desde el software —sistema operativo— y no desde el hardware Resultados obtenidos de una encuesta realizada por The Register—, el artículo analiza las diferencias entre las arquitecturas de microprocesadores x86 y PowerPC, y su influencia en los problemas de seguridad. En efecto, la mayoría de las vulnerabilidades explotan no sólo un problema a la hora de gestionar un error en el sistema operativo, sino la forma en que un procesador determinado trata ese error. En el caso de los procesadores x86, la copia de un determinado conjunto de datos, mayor del espacio previsto, puede llegar a introducir datos en la pila —un espacio diferente de memoria, previsto para gestionar la lista de tareas pendientes—, de modo que la instrucción de retorno desde el proceso que ha fallado no contiene el código original, sino el código introducido. Dicho de otra forma: para explotar, por ejemplo, una vulnerabilidad presente en Linux x86, hace falta un determinado código que la produzca, y además inyecte el código problemático en la pila; explotar esa misma vulnerabilidad en Linux PowerPC causaría el cierre de la aplicación, pero es prácticamente imposible inyectar código que permita realizar otras funciones, por la forma en que el procesador gestiona la pila. Esto es algo común a la mayoría de procesadores RISC. Y, desde luego, hace imposible utilizar una simple traducción instrucción por instrucción del código que provocaba el fallo en Linux x86. No quiero terminar sin citar uno de los párrafos finales: Aunque los productos de Apple son generalmente un poco más rápidos y con mayores capacidades multimedia que sus contrapartidas PC, las diferencias más importantes no están en cosas como la memoria o la velocidad del procesador, sino en el diseño, el software, y el coste de licencia. Un punto más sobre la seguridad: Kelly Martin, en este artículo en The Register, se pregunta si no es posible que la falta de virus en Mac OS X se deba, más allá de la dificultad mayor o menor en crear un virus, o un troyano —esto último no sería nada difícil, aunque existan más alarmas en Mac OS X que en Windows o Linux—, a que Mac OS X gusta lo suficiente como para que la gente no quiera romperlo. Lectura simpática, aunque en inglés.
  • 13. Anexo Computación paralela La computación Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el rendimiento de computo. La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo. Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que admite su hardware: equipos con procesadores multinúcleo y multi-procesador que tienen múltiples elementos de procesamiento dentro de una sola máquina y los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea. Segmentación de cauce-Pipeline La segmentación de cauce, también denominada pipeline, es una técnica empleada en el diseño de procesadores, basada en la división de la ejecución de las instrucciones en etapas, consiguiendo así que una instrucción empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesándose simultáneamente. Cada una de las etapas debe completar sus acciones en un ciclo de reloj, pasando sus resultados a la etapa siguiente y recibiéndolos de la anterior. Para eso es necesario almacenar los datos en registros intermedios. Cualquier valor que pueda ser necesario en una etapa posterior debe irse propagando a través de esos registros intermedios hasta que ya no sea necesario. Para conseguir la segmentación es necesario que una instrucción utilice solamente una etapa en cada ciclo de ejecución. Ya que todas las etapas deben de tardar lo mismo en su ejecución, el tiempo de ciclo será el de la etapa más lenta, más el del retardo provocado por la utilización de los registros intermedios. Comparando este esquema con el multiciclo, el tiempo de ciclo será más lento, pero el CPI (Ciclos Por Instrucción) será menor, lo que provoca un aumento del rendimiento. Ya que si no tenemos en cuenta los riesgos estructurales (que pueden provocar paradas en el pipeline), tendríamos que en cada ciclo de reloj, termina de ejecutarse una instrucción (CPI=1). http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_cauce Segmentación (electrónica) La segmentación (en inglés pipelining, literalmente tubería o cañería) es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales. Es aplicado, sobre todo, en microprocesadores. 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 una es la inversa de la otra. Repartir o segmentar equitativamente el cálculo hace que esa frecuencia sea la óptima a costa de más área para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos de reloj/tiempo) en la salida del resultado equivalente al número de segmentaciones o registros realizados. 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. IF (Instruction Fetch): búsqueda ID (Instruction Decode): decodificación EX (Execution): ejecución de unidad aritmética lógica MEM (Memory): memoria WB (Writeback): escritura http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(electr%C3%B3nica)
  • 14. Microarquitectura La microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización de la computadora, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas. Las implementaciones pudieran variar debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología. La arquitectura de computadora es la combinación del diseño determinado de la microarquitectura y del conjunto de instrucciones. http://es.wikipedia.org/wiki/Microarquitectura Coprocesador Ampliar: http://es.wikipedia.org/wiki/Coprocesador Un coprocesador es un microprocesador de un ordenador utilizado como suplemento de las funciones del procesador principal (la CPU). Las operaciones ejecutadas por uno de estos coprocesadores pueden ser operaciones de aritmética en coma flotante, procesamiento gráfico,procesamiento de señales, procesado de texto o Criptografía, etc. Y su función es evitar que el procesador principal tenga que realizar estas tareas de cómputo intensivo, estos coprocesadores pueden acelerar el rendimiento del sistema por el hecho de esta descarga de trabajo en el procesador principal y porque suelen ser procesadores especializados que realizan las tareas para las que están diseñado más eficientemente. Además estos coprocesadores permiten a los compradores de ordenadores personalizar su equipamiento ya que sólo tendrán que pagar ese hardware específico quienes deseen o necesiten tener el rendimiento extra ofrecido por estos dispositivos.
  • 15. Bibliografía. http://es.wikipedia.org/wiki/Reduced_instruction_set_computing http://es.wikipedia.org/wiki/Complex_instruction_set_computing http://es.wikipedia.org/wiki/PowerPC http://es.wikipedia.org/wiki/X86 http://es.wikipedia.org/wiki/Intel_4004 http://es.wikipedia.org/wiki/Intel_8008 http://www.classiccmp.org/8008/8008UM.pdf (Manual del i8008) http://es.wikipedia.org/wiki/Intel_8080 http://es.wikipedia.org/wiki/Intel_8087 http://es.wikipedia.org/wiki/X87 http://es.wikipedia.org/wiki/Intel_8088 http://es.wikipedia.org/wiki/Intel_80286 http://es.wikipedia.org/wiki/Intel_80386 http://es.wikipedia.org/wiki/Intel_Pentium http://es.wikipedia.org/wiki/Pentium_Pro http://www.pcmag.com/encyclopedia/term/50548/risc (inglés) http://www.engineersgarage.com/articles/risc-and-cisc-architecture?page=5 http://www.ie.itcr.ac.cr/pvega/Project/Documents_SD/Handout%20N3%20CISC%20y%20RISC.pdf http://www.cio-today.com/story.xhtml?story_id=1110000275OO http://www.entremaqueros.com/bitacoras/memoria/2005/05/21/seguridad-windows-linux-macosx/ http://www.winface.com/cio_today/ent_apple.html (inglés) http://ipadtecno.blogspot.mx/ (ipad) Diferencia Registro – Caché –Respuesta:Rápidez ¿Cómo se carga de la cache a registros? Una memoria caché es similar a la RAM, excepto que es extremadamente rápida comparada con la memoria normal y se usa en forma diferente. Cuando un programa está en ejecución y la CPU necesita leer datos o instrucciones de la memoria regular, verifica primero si los datos están en la caché. Si los datos que necesita no están ahí, continúa y lee los datos de la memoria regular y los lleva a sus registros, pero también carga los datos en la memoria caché al mismo tiempo. La siguiente vez que la CPU necesita cargar los mismos datos, los encuentra en la caché y ahorra el tiempo que se necesita para cargar los datos de la memoria regular. Podríamos pensar que las probabilidades de que la CPU encuentre los datos que necesita en la caché son pequeñas, pero de hecho encuentra ahí los datos que necesita tan frecuentemente que mejora perceptiblemente el desempeño de una PC. Las instrucciones de programa son un buen ejemplo de los datos que la CPU encuentra a menudo en la caché. Con frecuencia, los programas hacen que las computadoras realicen la misma operación repetidamente hasta que se cumpla alguna condición. En el lenguaje de cómputo, este procedimiento repetitivo es llamado ciclo iterativo (Loop).