Ir al contenido principal

Arquitectura CISC

 En este blog hablaré sobre lo contrario de lo que hable en el post sobre la arquitectura ARM, osea, la contrapuesta a la arquitectura RISC con el fin de dejar claro este bando, sus ventajas, desventajas y otros puntos importantes del cual saber al hablar de CISC.

Fuente: https://www.emaze.com/@AIQOQWRW/ARQUITECTURA-CISC

CISC

CISC (computadora con conjunto de instrucciones complejas) es una clase de arquitectura de computadoras el cual promueve el uso de grandes cantidades de instrucciones el cual permite operaciones complicadas entre operandos localizados en la memoria o en registros internos. Con la explicación anterior prácticamente CISC se declara lo contrario a RISC. Los procesadores con esta arquitectura trae variedad de registros y requiere de muchos pasos y ciclos de reloj para poder realizar una sola operación. Si una PC es compatible con CPU's x86 contiene procesador x86 en excepción con algunas computadores Mac.

Esta arquitectura utiliza algo llamado la microprogramación lo cual cada instrucción de la máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas llegan a ser decodificadas internamente y son ejecutadas con unas microinstrucciones que están guardadas en una ROM (Memoria de solo lectura) interna. A partir de esto es necesario varios ciclos de reloj, todo esto con el fin de terminar una tarea teniendo que ensamblar la menor cantidad de lineas posible. Se han alzado voces que afirman que CISC esta teniendo escasez de oportunidades para ofrecer más ventajas que RISC, sin embargo otras voces dicen lo contrario y que si esta alcanzando a RISC pero esta tomando características de su rivalidad.
CISC es una de las primeras construcción de procesadores, estuvo antes del desarrollo de los RISC.
Algunos ejemplos de los primeros procesadores CISC son:

  • Motorola 68000
Fuente: http://elblogdemanu.com/la-herencia-del-motorola-68000/

  • Zilog Z80
Fuente: https://en.wikipedia.org/wiki/Zilog_Z80

  • Familia intel x86
Fuente: https://es.wikipedia.org/wiki/Intel_Pentium


Ventajas

  • Tiene una velocidad que ha sido creciente conforme el tiempo pasa.
  • Facilitan el trabajo para los programadores.
  • Compatibilidad hacia adelante y detrás de las nuevas CPU's
  • Puede ser menor la complejidad del compilador
  • Facilita la depuración de errores

Desventajas

  • Se dificulta el paralelismo. Esto obliga a subsanar lo anterior mencionado con microprocesadores que implementen un sistema que convierte instrucciones complejas en varias instrucciones simples.
  • No llega a ser tan eficiente como la arquitectura RISC
  • Utiliza más recursos que RISC.
  • Inclusión de instrucciones que raramente se usan.
  • La complejidad del conjunto que contiene las instrucciones es creciente.

Referencias



Comentarios

Entradas populares de este blog

Código BCD

¿Qué es código BCD? El código BCD (decimal codificado, en inglés Binary-Coded Decimal), es una representación de números decimales en el sistema binario, lo cual cada dígito decimal es una codificación con secuencia de 4 bits, con esta representación se puede ver la relación que existe entre un número decimal y ese número en codificación binaria. Este sistema de numeración es ponderado, lo cual quiere decir que cada posición de una secuencia de dígitos obtiene cierto valor.  Esta representación llega a utilizar 4 dígitos binarios para representar 0 al 9. Para poder el representar el equivalente se pone el valor 1 donde se ocupa y 0 donde no se ocupa, con 4 dígitos, se pueden representar 16 números (0000-1111), pero en el código BCD, sólo se usan diez de ellos, las 6 combinaciones que no se emplean (1010, 1011, 1100, 1101, 1110 y 1111) no son válidas en el código BCD.  (Ver imagen 1) Imagen 1: números decimales respresentados en BCD Ejemplo 1   En el ejemplo 1 se

Obtener el residuo: operación módulo en ensamblador

 Para este blog quisiera hablar de un algoritmo que encontré y me sirvió para la tarea que me habían dejado. El algoritmo que encontré saca el residuo que se obtiene de una división, osea hace la operación módulo. El residuo es algo que durante el colegio no le tome importancia y me sorprende la importancia que tiene en el ámbito de la programación. Un ejemplo donde se utiliza el residuo en la programación es cuando el programador quiere obtener el último dígito de algún número.  La operación de módulo encuentra el residuo que queda después  de aplicar una división. (Ejemplos en la ilustración 1) Ilustración 1. Ejemplo de divisiones que dejan residuo Muchos lenguajes para aplicar el módulo de dos números funciona simplemente utilizando el signo "%" en el medio de los dos números, otros ponen "mod" en medio de los dos números. Sin embargo en algunos tipos  de lenguajes ensamblador no existe una forma tan directa y fácil para obtener el residuo de una divisió

Sucesión de Fibonacci: código ensamblador

En este blog, me gustaría dar un resumen comprensible sobre una sucesión interesante e infinita, hablo de la sucesión de Fibonacci. Es fundamental llegar a programar esta sucesión cuando eres estudiante de ingeniería de computación, ya que es un buen ejercicio para cuando se esta aprendiendo recursividad. Funcionalidades recursivas fue, es y será siempre una herramienta primordial para la creación de programas. Imagen 1. Sucesión de Fibonacci, sitio web: gutl.jovenclub.cu/python-y-la-sucesion-de-fibonacci La sucesión de Fibonacci Primero que todo, esta aportación de la matemática de parte de Leonardo De Pisa   surge de un problema que propuso  Liber Abaci, lo cual el problema consistía en:  " ¿Cuántas parejas de conejos conseguiremos en un año si empezamos con una pareja de conejos que produce cada mes otra pareja que a su vez procrea a los dos meses de vida? " Entonces a partir de ese problema, la sucesión de Fibonacci consta de siempre sumar los dos últimos