Skip to content

CISC y RISC

La arquitectura es un conjunto de instrucciones, entre ellas CISC y RISC son las más comunes. Cada arquitectura tiene ventajas y desventajas, ya sea un cuello de botella o latencias altas. - CISC - RICS

NOTA: Arduino implementa la arquitectura harvard, y tiene todo lo necesario para considerarse una computadora.

Implementar la tecnología a grandes escalas, es complicado. Permite llevar a cabo instrucciones paralelas en 64 bits es difícil porque tener buses para 64 bits requiere que el CPU sea más grande y el aumento de tamaño trae más complicaciones, entre ellas las altas temperaturas

Las personas que observan las debilidades de Von Neumann plantean problemas con la tecnología RICS. Entonces surge "CISC", plantean en no tener un conjunto de instrucciones que puedan hacer todo y mejor con un conjunto pequeña de instrucciones el programador se las arregle.

CISC RISC
CISC es más ligero RISC es mas rápido que CISC
CISC no puede tener paralelismo debido a las instrucciones simples Divide una tarea en multiples tareas, permitiendo paralelismo
EJ: 7*4 se dividiria en una instruccion 7 + 7 + 7 + 7 EJ: 7 * 4 en RICS tendria la instruccion MULT
CISC emula multitasking RISC permite multitasking
NOTA: CISC se usa en paralelismo con con Harvard en los microcontroladores

En algún punto del procesamiento de CISC las operaciones se convierten en mini aplicaciones RISC.

Segmentación de instrucciones

Para que el paralelismo sea posible, las instrucciones tienen que poder segmentarse (dividirse). CISC es dificil de segmentar por las instrucciones son complejas. Como en RISC la filosofía es instrucciones simples la segmentación es más fácil.

EJ:

OPCION 1: Si quiero abrir un car wash. Se puede utilizar una máquina de las que hacen todo, colocan agua, jabón y espacio grande, pero para esto, necesitamos hacer una inversión monetaria alta, y para poder atender un nuevo carro primero debe terminar con el carro actual.

OPCION 2: combrar dos hidrolabadoras, un trapo, y contratar operarios, así 1 aplica el jabón, otro restriega el jabón y así sucesibamente. La ventaja de esta es que una vez se acumulan vehiculos, se pueden alternar tareas, uno lava el carro mientras otro lo enjabona.

CISC sería como comprar una maquina para hacerlo todo, al ser algo tan complejo, nos complica la segmentación de tareas.

RISC sería como la opción 2, al dividir en varias tareas, podemos ejecutar varias tareas de manera simultanea.

----- PROCESO | EJEMPLO PARA SUBDIVIDIR -----

-> MOJAR EL CARRO
-> APLICAR JABÓN
-> DESINFECTAR
-> SECAR

IF:   INSTRUCTION FETCHING  |  RECONOCER EL TIPO DE INSTRUCCION
ID:   INSTRUCTION DECODING  |  LA CU LE MANDA INFORMACIÓN A LA ALU PARA QUE CUMPLA SU TAREA 
EXE:  EXECUTION             |  SE GUARDAN LOS RESULTADOS
MEM:  MEMORY ACCESS         |  SE ACCEDE A LA MEMORIA
WB:   WRITE BACK            |  SE ESCRIBEN LOS RESULTADOS

Estas son las 5 operaciones para cualquier tarea que se ejecute.

---------------------------------------------

Paralelismo

Se plantan 3 posibilidades - Sub-escalar: Es aquel que le va llevar más de un ciclo de reloj ejecutar una instrucción. Ejecuta menos de una instrucción por ciclo de reloj. - OP 1 -> OP 2 -> OP 3. - Hasta que no termine con una instrucción, no continua con la otra.

|IF|ID|EXE|MEM|WB| | | | | | |-|-|-|-|-|-|-|-|-|-|-|-|-|-| | | | | | |IF | ID| EXE|MEM | WB| | | | | | | | || | | | | IF|ID |MEM | WB|

  • Escalar: Es aquel que le va llevar exactamente un ciclo de reloj ejecutar una instrucción. Ejecuta una instrucción por ciclo de reloj.

|IF|ID|EXE|MEM|WB| |-|-|-|-|-|-| - | | |IF | ID| EXE| MEM|WB | | | |IF | ID| EXE| MEM| WB|

  • Super-escalar : Son aquellos que tienen dos o más núcleos. Atiende dos o más instrucciones en un mismo ciclo de reloj.

| IF | ID | EXE | MEM | WB | |-|-|-|-|-|-|-|-| |IF|ID|EXE|MEM|WB| ||IF|ID|EXE|MEM|WB|| ||IF|ID|EXE|MEM|WB|| |||IF|ID|EXE|MEM|WB| |||IF|ID|EXE|MEM|WB| ||||IF|ID|EXE|MEM|WB| ||||IF|ID|EXE|MEM|WB|

Todas las instrucciones se ejecutan en un ciclo de reloj, todo procesador es vendido con una velocidad de procesador. JE: 2Ghz serian 2,000,000,000,000 de ciclos por segundo y en esa vuelta se ejecuta una porción de instrucción, a cada instrucción le toma 5 ciclos de reloj

No podemos comparar un procesador únicamente por su velocidad, también tendemos qué ver si soporta o no multi tasking, en su enfoque de ejecuciones de instrucción. Comparamos procesadores en que tengan como mínimo características similares. La caché también es importante.