Unidad IV





                              Procesadores RISC y CiSC


    • CISC (complex instruction set computer) Computadoras con un conjunto de instrucciones complejo.
    • RISC (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.

         Los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores solo de forma superficial. Se requiere de muchas otras características esenciales para definir los RISC y los CISC típicos. Aun más, existen diversos procesadores que no se pueden asignar con facilidad a ninguna categoría determinada.
    • ARQUITECTURAS CISC
          La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC.Como por ejemplo: 
    Intel 8086, 8088, 80286, 80386, 80486. 
    Motorola 68000, 68010, 68020, 68030, 6840.

        La microprogramación significa que cada instrucción de máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador.En la década de los sesentas la micropramación, por sus características, era la técnica más apropiada para las tecnologías de memorias existentes en esa época y permitía desarrollar también procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones.Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj (al menos uno por microinstrucción). 
    • ARQUITECTURAS RISC

    Estos microprocesadores siguen tomando como base el esquema moderno de Von Neumann.
    Las instrucciones, aunque con otras características, siguen divididas en tres grupos:a) Transferencia.b) Operaciones.
    c) Control de flujo.
    • Reducción del conjunto de instrucciones a instrucciones básicas simples, con la que pueden implantarse todas las operaciones complejas.
    • Arquitectura del tipo load-store (carga y almacena). Las únicas instrucciones que tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor número de acceso a memoria.
    • Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un control implantado por hardware (con un diseño del tipo load-store), casi todas las instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la reorganización de la ejecución de instrucciones por medio de un compilador.
    • Pipeline (ejecución simultánea de varias instrucciones). Posibilidad de reducir el número de ciclos de máquina necesarios para la ejecución de la instrucción, ya que esta técnica permite que una instrucción puede empezar a ejecutarse antes de que haya terminado la anterior.
    El hecho de que la estructura simple de un procesador RISC conduzca a una notable reducción de la superficie del circuito integrado, se aprovecha con frecuencia para ubicar en el mismo, funciones adicionales:
    • Unidad para el procesamiento aritmético de punto flotante.
    • Unidad de administración de memoria.
    • Funciones de control de memoria cache.
    • Implantación de un conjunto de registros múltiples.
          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.

     LENGUAJE MAQUINA



            Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario.


        Las instrucciones en lenguaje máquina dependen del hardware de la computadora y, por tanto, diferirán de una computadora a otra.

    •          Ventajas del Lenguaje Máquina

    Posibilidad de cargar (transferir un programa a la memoria) sin  necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.

    •         Desventajas del Lenguaje Máquina
    Dificultad y lentitud en la codificación.
    Poca fiabilidad.
    Gran dificultad para verificar y poner a punto los programas.
    Los programas solo son ejecutables en el mismo procesador (CPU).

        En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes máquinas. 
    LENGUAJES DE BAJO NIVEL

            Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc.

        Una instrucción típica de suma sería :

    ADD M, N, P
    0110 1001 1010 1011
        Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.




        El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora.

    •          Ventajas del lenguaje ensamblador frente al lenguaje máquina

        Mayor facilidad de codificación y, en general, su velocidad de cálculo.
    •         Desventajas del lenguaje ensamblador

         
    Dependencia total de la máquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh.


         La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina.

        Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos.
      Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P" . Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina.

    Ensambladores, compiladores e intérpretes 

       Un ensamblador es un programa que crea código objeto traduciendo instrucciones nemónicas de un programa fuente escrito en ensamblador a códigos ejecutables e interpretando los nombres simbólicos para direcciones de memoria y otras entidades. 

    • Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete. 

    • Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:
         Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua. 
        Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:   Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, entre otras cosas.). 
        Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.    Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces). 
        Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.





          ¿SABIAS QUE?

    Además, para su ejecución en lenguaje de maquina el programa debe instalar las rutinas de RUN-TIME y las del servicio del sistema operativo.

     Fuente 



       


    No hay comentarios:

    Publicar un comentario