lunes, 2 de junio de 2014

Tercer Corte


 Miguel Angel Riaño Cadena
COD 5045

****ARQUITECTURAS RISC


Buscando aumentar la velocidad del procesamiento se descubrió en base a experimentos que, con una determinada arquitectura de base, la ejecución de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de encapsulado.
Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones complejas.
En investigaciones hechas a mediados de la década de los setentas, con respecto a la frecuencia de utilización de una instrucción en un CISC y al tiempo para su ejecución, se observó lo siguiente:
- Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecución de un programa.
- Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos de ejecución más cortos.
Las características esenciales de una arquitectura RISC pueden resumirse como sigue:
  • 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.  
 
 
*****  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 una microprograma localizada 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 resquiere de varios ciclos de reloj (al menos uno por microinstrucción).
 
 
**** Procesadores con múltiples núcleos.


Un procesador multinúcleo es aquel que combina dos o más microprocesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread (thread-level paralelismo) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (chip-level multiprocessing) o CMP. 


**** Ejemplos de procesadores multinúcleo


Se verá un resumen de los principales procesadores multinúcleo de la actualidad. Se comienza por Intel, mostrando los procesadores multinúcleo que ha sacado al mercado, luego viene AMD, y por último se muestra al nuevo procesador Cell, que próximamente va a salir en la PlayStation 3.
Procesadores Multinúcleo de Intel
Actualmente Intel esta fabricando procesadores de doble núcleo. Comenzó fabricando los Pentium D en el 2005, luego en el 2006 lanzó los Core Duo y el Core 2 Duo.
Pentium D
Los Pentium D están conformados por dos procesadores Pentium 4 Prescott sin Hyperthreading. Luego Intel sacó el Pentium Extreme Edition (No confundir con el Pentium 4 Extreme Edition) que era un procesador que tenía los procesadores P4 Prescott, con la tecnología Hyperthreading, lo que hacia que el software viera cuatro procesadores.
Las características de los Pentium D son:
  • Proceso de fabricación de 90nm
  • Tienen la tecnología EM64T, que permite trabajar con 64 bits de forma nativa
  • Utilizan núcleos SmithField (basados en los Prescott), cada uno de ellos tiene una memoria caché L2 de 1MB
  • Van desde 2.80GHz, del modelo menos potente, hasta 3.20GHz para el modelo más potente.
El procesador que contiene dos núcleos Prescott se llama Smithfield. Los nuevos procesadores de doble núcleo Pentium D se llaman Presler, están construidos con tecnología de fabricación de 65nm y van desde 2.8 hasta 3.73Ghz. Tienen una caché L2 por cada núcleo de 2MB (4MB en total).


****Diferencia entre ALU y FPU.

 La ALU es la encargada antiguamente de hacer las operaciones aritméticas por dicho motivo se dice que la ALU es la unidad aritmética lógica y se encarga de hacer operaciones (sumar, restar, multiplicar o dividir).La ALU en los primeros PCs se encontraba físicamente en la placa madre y luego en el núcleo del microprocesador.
Para hacer las operaciones aritméticas debe trabajar en conjunto con los registros, datos y un compilador interno que sea capaz de transformar el lenguaje humano a lenguaje "PC" (binario). Para lograr hacer cualquier proceso se deben hacer operaciones aritméticas. La ALU se utilizó hasta procesadores Pentium IV y de momento fue remplazada por el FPU ya que puede trabajar a su doble velocidad.

El FPU para lograr hacer las operaciones aritméticas lo único que debe hacer es mover la coma por eso se dice que el FPU es una unidad de coma flotante. Trabaja a su doble de velocidad porque no necesita imprimir los valores ya que lo único que hace es mover la coma.


**** Objetivo de la pila stack. 


Una  pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la pila. 

La pila es un objeto dinámico en constante cambio.

****Diferencia entre código objeto y el código. 

Código objeto es el resultado de la compilación del código fuente. Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado. Luego un enlazador (linker) se encarga de juntar todos los archivos de código fuente para obtener el programa ejecutable.

Código fuente es un Texto escrito en un lenguaje de programación específico y que puede ser leído por un programador. Debe traducirse a lenguaje máquina para que pueda ser ejecutado por la computadora o a bytecode para que pueda ser ejecutado por un intérprete. Este proceso se denomina compilación.

****Instrucciones  De Microprocesador 8086.
 
     a) genéricas: mov
                b) de cadenas: lodsb, lodsw, stosb, stosw, movsb, movsw
                c) de pila: push, pop, pushf, popf
                d) de intercambio: xchg
e) de acceso a tabla: xlat
f) de entrada o salida: in, out
g) de direcciones lógicas: lea, lds, les
h) con registro de estado: lahf, sah



Registro De Segmento
Significado Y Utilidad

CS(Segmento De Código)


Es un segmento de código el cual se encarga de almacenar la dirección inicial del segmento del código de un programa en el registro. Este siempre apunta al segmento de donde se encuentran las direcciones. En el caso de este registro de segmento no se puede llegar a tener muy fácil la modificación directamente sino que se debe hacer mediante las instrucciones de transferencia o control.



DS(Segmento De Datos)



Es un segmento de datos el posee una dirección y esta dirección al juntarse con un valor de desplazamiento generar la referencia de la localidad de un byte especifico en el segmento de datos. Este tipo de segmento se encarga principalmente de buscar las instrucciones del código que leen o almacenan datos.

 

SS(Segmento De Pila)



Es un segmento  en el cual se guarda la dirección y datos que el usuario quiere guardar temporalmente. Es decir que el segmento de pila contiene la dirección en la cual se van a guardar los datos o la información, este segmento contiene la dirección del comienzo de pila. En el caso de la pila esta se encarga de contener valores de 16 bits en la ejecución del programa.


ES(Segmento Extra)




Este segmento de registro para tener un mejor direccionamiento de la memoria. Este registro es asociado con el registró  ID (índice) dándole un mejor espacio y ordenamiento a la memoria.


  FS y GS





Son registros extra de segmento en los procesadores 30386 y posteriores a estos procesadores.


MICROPROCESADOR
INFORMACION

 





Z80


Velocidad: velocidad de fábrica de 4 MHz.
Cantidad de Transistores: Contenía  2.300 transistores.
Registros: el Z80 está compuesto por un banco principal, otro alternativo y por último un banco compuesto por registros especiales. Los registros son:
·         A, B, C, D, E, H y L (banco principal)
·         A', B', C', D', E', H' y L' (banco alternativo)
·         I, R, IX, IY, SP y PC (registros especiales)
Los registros del banco principal son generales y de 8 bits.
Fabricante:  Federico Faggin en Intel
Capacidad de direccionamiento: hasta 1 MB de memoria.



    





El 8080

Velocidad: Contenía una velocidad de 2Mhz
Cantidad de Transistores: Contenía 4500 transistores y podía ejecutar 200.000 instrucciones por segundo.
Registros:
 
Fabricante: Intel
Capacidad de direccionamiento: direccionamiento de memoria 16 KB en el 8008 contra 64 KB en el 8080





Core i7
Velocidad: Cuenta con 3.06 GHz, 2.93 GHz y 2.66 GHz de velocidad básica. 
Cantidad de Transistores: 731 millones de transistores
Registros:
Fabricante: Intel
Capacidad de direccionamiento: Puede manejar hasta 8Gb de memoria RAM

      
Pentium
Velocidad: Velocidades iniciales de 60 y 66 MHz
Cantidad de Transistores:  3.100.000 transistores
Registros: Agrego 8 nuevos registros, conocidos como MM0 al MM7
Fabricante: Intel
Capacidad de direccionamiento: De más de 4 GB de memoria expandida 36 bits direccionamiento.


Intel Celeron D
Velocidad: 266 MHz a 3.6 GHz
Cantidad de Transistores:  188 millones de transistores
Registros: SIMD
Fabricante: Intel
Capacidad de direccionamiento:



AMD Athlon 64
Velocidad: 800 MT/s a 1000 MT/s
Cantidad de Transistores:  Tienen entre 154 a 233,2 millones de   transistores 
dependiendo del tamaño de la caché
Registros: Registros SSE/SSE2 De 128 Bits (Dieciséis En Total) 
Fabricante: AMD
Capacidad de direccionamiento: pueden direccionar hasta 32gb de memoria



AMD Opteron 240
Velocidad: 1,4 GHz a 3,5 GHz
Cantidad de Transistores:
Registros: SIMD
Fabricante: AMD
Capacidad de direccionamiento:  32 y de 64 bits, representa el ... 256 Terabytes de espacio de memoria para direcciones




SC/MP
Velocidad:  velocidad de 2 MHz
Cantidad de Transistores: 6.000 transistores
Registros: registro de extensión (Ex) de 8 bits, tres registros de índice (IX0 IX1 IX2)
Fabricante: Nacional Semiconductor
Capacidad de direccionamiento:  capacidad de direccionamiento de memoria a 64 kbytes


AMD Athlon Xp
  
Velocidad: 700 MHz a 2,40 GHz
Cantidad de Transistores: Aproximadamente 37,5 millones de transistores en 128 mm2
Registros: Registros intermedios marginales de traducción exclusivos y especulativos
Fabricante: AMD
Capacidad de direccionamiento: 64  a 16 Exabytes de capacidad de direccionamiento 



Ivy Bridgey
Velocidad: 2 GHz a 3,8 GHz
Cantidad de Transistores: 1.48 mil millones de transistores
Registros: Registro de datos dinámico, estático
Fabricante: Intel
Capacidad de direccionamiento: Espacio de direccionamiento físico de 4 GB.


3). El registro de banderas tiene como función principal dar a conocer el estado actual de la máquina y el estado del procesamiento de una instrucción. A este registro de banderas se le conoce también como registro de estado o palabra de estado, es un registro de 16 bits y contiene información de sobre el estado de operaciones de la unidad aritmética













Modos De Direccionamiento

    


Directo






La instrucción contiene la dirección real del operando en la cual se ven dos tipos :

Direccionamiento Absoluto: la instrucción contiene  la dirección de memoria donde se encuentra el objeto, que se halla en una posición de memoria principal.

Direccionamiento Mediante Registro: Operando almacenamiento en un registro de la CPU. La instrucción indica en que registro

La ventaja que presenta este modo de direccionamiento es que solo con una referencia a memoria sin cálculos previos

La desventaja que presenta es su espacio de direcciones es reducido

Este hace uso de registros de propósitos generales ( AX) y registros de segmento (DS) es decir de datos
 

Inmediato


En este tipo de modo de direccionamiento el operando esta en la propia instrucción, por lo tanto este opera en una valor constante. El direccionamiento de una sola palabra es más rápido.

Las desventajas que presenta este modo de direccionamiento es que tiene operando limitado por la instrucción Instr.

La ventaja principal que presenta este modo de direccionamiento es que no referencia a memoria.

Este tipo de modo de registro cuenta con registros (CX) que es un registro contador y también cuenta con el registro (AX)  que es un registro de acumulador principal.










Direccionamiento Por Registro





En este modo de direccionamiento la instrucción no contiene la dirección del operando  es decir que debe ser calculada. Permite acceder a un conjunto de direcciones  de memoria a partir de una considerada como referencia.

Direccionamiento relativo al registro contador del programa: Para direccionar instr cercanas a la instr en curso, para bucles.
              
Direccionamiento relativo al registro base:
La instr contiene la identificación del registro y del desplazamiento.

El tipo de registros que presenta este modo de direccionamiento  cuenta con el registro (AX)  que es un registro de acumulador principal y registros (BX)  que es el registro base ya que es el único de propósitos generales.

La ventaja que presenta este modo de direccionamiento es la flexibilidad y la desventaja que presenta es la complejidad





Direccionamiento indirecto por registro







Este tipo de modo de direccionamiento contiene la dirección de desplazamiento correspondiente para los datos para la instrucción. Este modo de direccionamiento sirve para aplicaciones que usan datos situados en posiciones distantes en memoria.

Este tipo de modos de direccionamiento presenta el  registro (AX)  que es un registro de acumulador principal y registros (BX)  que es el registro base ya que es el único de propósitos generales y registros de segmento (DS) es decir de datos.

 Las desventaja que presenta este tipo de modo de direccionamiento  es que emplea una referencia a memoria menos y la ventaja que posee es que tiene un espacio de direccionamiento grande



La ventaja que presenta el lenguaje del ensamblados frente a los otros es que este es muy flexible y su traducción no es tan complicada como la de los demás es decir que es directa, y su velocidad es más rápida que la de los otros leguajes, mientras que el lenguaje del ensamblador usa menos código de máquina del necesario en cambio los otros usan mucho código de maquina innecesario. Este tipo de lenguaje no limita al usuario en el control de las instrucciones



MOV ax 10
MOV bx 12
Cmp ax,bx
Jle Hace Algo
Lo que hace esta instrucción es comparar los números y por medio de la última instrucción muestra si los números son mayor menor o igual