sábado, 25 de octubre de 2014

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.

Así mismo, siendo este el lenguaje que entiende la máquina, es exclusivamente binario, pero con objeto de simplificar sus expresiones se utiliza el hexadecimal, y para comprender el significado de las instrucciones se emplean nemónicos. Estas tres formas de representar las instrucciones están íntimamente relacionadas con la máquina, puesto que cada código guarda correspondencia con una instrucción que es decodificador de instrucciones es capaz de interpretar.



Fuentes:
Algoritmos y Diagramas de Flujo - Unidad  3
http://dcb.fi-c.unam.mx/users/miguelegc/tutoriales/tutorialcd/cncpt_lgtm_cmpt_5.htm


Angulo, José María (1992). Introducción al Software. Técnicas de Informática Hoy – Tomo 3 (pp. 47). Madrid: Paraninfo.
Leer más...

UNIDAD ARITMÉTICO-LÓGICA (ALU)

     Esta unidad se encarga de realizar las operaciones elementales de tipo aritmético (sumas, restas, productos, divisiones) y de tipo lógico (comparaciones). A través de un bus interno se comunica con la unidad de control la cual le envia los datos y le indica la operación a realizar.
        La ALU está formada a su vez por los siguientes elementos:
·         Circuito operacional
·         Registros de entrada (REN)
·         Registro acumulador
·         Registro de estado (flags)

Circuito operacional.
       Contiene los circuitos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada (REN). Este circuito tiene unas entradas de órdenes para seleccionar la clase de operación que debe realizar en cada momento (suma, resta, etc).

Registros de entrada (REN).
      En ellos se almacenan los datos u operandos que intervienen en una instrucción antes de la realización de la operación por parte del circuito operacional. También se emplean para el almacenamiento de resultados intermedios o finales de las operaciones respectivas.

Registro acumulador.
       Almacena los resultados de las operaciones llevadas a cabo por el circuito operacional. Está conectado con los registros de entrada para realimentación en el caso de operaciones encadenadas. Asimismo tiene una conexión directa al bus de datos para el envío de los resultados a la memoria central o a la unidad de control.

Registro de estado (flags).
      Se trata de unos registros de memoria en los que se deja constancia algunas condiciones que se dieron en la última operación realizada y que habrán de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo.




Fuentes
Unidad Aritmético - Lógica (ALU)
http://hardysoftwareg2sr.blogia.com/2011/012304-unidad-aritmetico-logica-alu-.php
Leer más...

UNIDAD DE CONTROL

     Es el centro nervioso del ordenador, ya que desde ella se controlan y gobiernan todas las operaciones. Cómo funciones básica tiene:
  • Tomar las instrucciones de memoria
  • Decodificar o interpretar las instrucciones
  • Ejecutar las instrucciones (tratar las situaciones de tipo interno (inherentes a la propia CPU) y de tipo externo (inherentes a los periféricos)


Para realizar su función, la unidad de control consta de los siguientes elemento:
  • Contador de programa
  • Registro de instrucciones
  • Decodificador
  • Reloj
  • Secuenciador

Contador de programa.
Contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno, de forma automática, cada vez que se concluye una instrucción, salvo si la instrucción que se está ejecutando es de salto o de ruptura de secuencia, en cuyo caso el contador de programa tomará la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección está en la propia instrucción en curso.

Registro de instrucción.
Contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (un código que indica qué tipo de operación se va a realizar, por ejemplo una suma) y en su caso los operandos (datos sobre los que actúa la instrucción, por ejemplo los números a sumar) o las direcciones de memoria de estos operandos.

Decodificador.
Se encarga de extraer el código de operación de la instrucción en curso (que está en el registro de instrucción), lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador.

Reloj.
Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción.

Secuenciador.
En este dispositivo se generan órdenes muy elementales (microórdenes) que, sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción.



Fuentes
Unidad de Control

http://hardysoftwareg2sr.blogia.com/2011/012305-unidad-de-control.php
Leer más...

UNIDAD DE INTERFAZ EN EL BUS

¿Qué es un bus?
Se denomina bus, en informática, al conjunto de conexiones físicas (cables, placa de circuito impreso, etc.) que pueden compartirse con múltiples componentes de hardware para que se comuniquen entre sí.
El propósito de los buses es reducir el número de rutas necesarias para la comunicación entre los distintos componentes, al realizar las comunicaciones a través de un solo canal de datos. Ésta es la razón por la que, a veces, se utiliza la metáfora "autopista de datos".



¿Qué es la unidad de interfaz del bus (BIU) o unidad E/S?
Es la parte del procesador que se une con el resto de la PC. Debe su nombre al hecho de que realiza los movimientos de datos hacia el bus de datos del procesador, el primer conducto en la transferencia de información hacia y desde el CPU. La BIU es la responsable de responder a todas las señales que van al procesador, y de generar todas las señales que van del procesador a las demás partes del sistema. También sirve de paso a las instrucciones de programa y los datos para que éstos puedan alcanzar los registros de la unidad de control y de la ALU. La BIU sincroniza los niveles de las señales de la circuitería interna del microprocesador con los de los otros componentes dentro de la PC. Los circuitos internos de un microprocesador, por ejemplo, se diseñan para consumir poca electricidad de modo que puedan funcionar más rápidamente y evitar el calentamiento excesivo. Estos circuitos internos delicados no pueden manejar los voltajes más altos necesarios para los componentes externos. Por lo tanto, cada señal que sale del microprocesador pasa a través de un buffer de señal intermedio en la BIU que incrementa su voltaje.



Tipo de Buses
·         Bus de datos:
También llamado bus principal o de sistema, es un conjunto de líneas de comunicación través del cual se realiza la transferencia de datos que emite el procesador como las que se dirigen hacia el de los componentes de un ordenador, con una velocidad dada por el reloj del sistema en hercios. Tratándose de un bus bidireccional.
Dicho bus, está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados, donde su ancho de banda suele ser una potencia de dos y esta determina cuanta información (bits) puede fluir por él.
·         Bus de Control
En ocasiones denominado bus de comando, transporta las órdenes y las señales de sincronización que provienen de la unidad de control y viajan hacia los distintos componentes de hardware. Se trata de un bus bidireccional en la medida en que también transmite señales de respuesta del hardware.
·         Bus de control
En ocasiones denominado bus de comando, transporta las órdenes y las señales de sincronización que provienen de la unidad de control y viajan hacia los distintos componentes de hardware. Se trata de un bus bidireccional en la medida en que también transmite señales de respuesta del hardware.


Ejemplos de Buses Comerciales

• Bus ISA, EISA, MCA:       Industry Standard Architecture
Extended ISA
Micro Chanel Adapter

• Bus PCI [PCI-X, PCIe]: Peripheral Component Interconnect

• Bus AGP: Accelerated Graphics Port

• Bus IDE: Integrated Drive Electronics

• Bus SCSI: Small Computer System Interface

• Bus SATA: Serial ATA

• Bus Serial Attached SCSI

• Buses USB (Universal Serial Bus) y Fire Wire

• Bus AC’97

• Bus PCMCIA: Personal Computer Memory Card International Association

• Bus VME: Versa Module Europe

• Bus FUTUREBus+


Fuentes
CONEXIÓN ENTRE SUBSISTEMAS: BUSES
http://cvb.ehu.es/open_course_ware/castellano/tecnicas/arquitectura_com/apuntes/buses.pdf

Arquitectura de los Subsistemas de Buses y Entrada/Salida
http://www.ciens.ucv.ve:8080/genasig/sites/organizacion-del-comp-II/archivos/Tema%202%20-%20Clases%201-4.pdf

Estructura General de un Microprocesador
http://tutorialensamblador.galeon.com/unidad2.HTML

¿Qué es un bus informático?

http://es.kioskea.net/contents/364-que-es-un-bus-informatico
Leer más...

domingo, 19 de octubre de 2014

Modos de direccionamientos




Los modos de direccionamientos no son más que  un mecanismo que permite localizar una ubicación de algún dato (operando o la ubicación de un operando en una instrucción) específico y se pueda acceder al mismo de una forma fácil y ligera.
Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte
Además de esto el modo de direccionamiento  permite  reducir el espacio ocupado en memoria por las instrucciones, Permitir la reubicación del código y Facilitar el manejo de las estructuras de datos. Un computador dispone de varios modos de direccionamiento y esto permite un manejo más eficiente y eficaz, entre direccionamiento que maneja un computar tenemos los siguientes:
   
   Ø  DIRECCIONAMIENTO INMEDIATO
La instrucción contiene al propio objeto.
Se emplea cuando la instrucción contiene un valor constante.
El tamaño del operando viene determinado por el espacio reservado para él en el Formato de    instrucción.
En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valor constante. Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro

ejemplo: MOV A,#17H


  Ø  DIRECCIONAMIENTO DIRECTO
El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.

En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.



Ejemplo: MOV A,17H
Ø  DIRECCIONAMIENTO  INDIRECTO

El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando
La instrucción contiene una dirección que se emplea para leer en memoria una Dirección intermedia que será la verdadera dirección del objeto buscado. 
Subcampos del campo de operando
Mdir
CD (dirección       indirecta
Ø   DIRECCIONAMIENTO POR REGISTRO 


Sirve para especificar operando que están en registros. En este modo, los operandos están en registros que residen dentro de la CPU



  Ø   DIRECCIONAMIENTO RELATIVO A REGISTRO
La dirección del objeto se obtiene sumando el contenido de un registro base, un registro índice y un desplazamiento.
 Subcampos del campo de operando

Mdir CR1 CR2 CD (desplazamiento)

Ejemplo M68000:     MOVE.L D0,12(A0,D2)

Consiste, al igual que el indirecto a través de registro, en calcular la dirección efectiva  como la suma del contenido del registro base y un cierto desplazamiento  que siempre será positivo. Esta técnica permite códigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria. Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parámetros almacenados en la pila).

  Ø  DIRECCIONAMIENTO  INDIRECTO A REGISTRO 
- Es similar al direccionamiento indirecto, pero la dirección intermedia está contenida en un registro, no en una posición de memoria.
- La instrucción contendrá la referencia al registro.
- Subcampos del campo de operando

Mdir
CR


- Coincide con el direccionamiento relativo a registro base sin usar desplazamiento.
- Ejemplo M68000: MOVE.L D0,(A4)





DE PILA
Se utiliza cuando el operando está en memoria y en la cabecera de la pila. Este direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO), las cuales están marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la última posición ocupada. Así, como puntero de direccionamiento usaremos el SP. El desplazamiento más el valor del SP nos dará la dirección del objeto al que queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho más complejo que otros tipos estudiados más arriba.

RELATIVO A UN REGISTRO INDICE 
Es similar al anterior, excepto que es el contenido del registro índice el que indica el desplazamiento que se produce a partir de una dirección de memoria que se pasa también como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del contenido del registro índice y una dirección de memoria:



vídeo sobre direccionamiento de memoria 





el contenido es de mi autoria y es una recopilacion de distintas fuentes :

Puedes descargar un PDF con mas información al respecto  











Leer más...

sábado, 11 de octubre de 2014

Arquitectura de un Microprocesador






La arquitectura de un procesador describe sus estructuras internas y cómo funcionan. Éstas son estructuras lógicas; todos los procesadores son hechos de material semiconductor, y es el cómo este material es estructurado lo que determina cómo trabajará el procesador. Esto es similar al software: todo software simplemente es una cadena larga de unos y ceros, pero es el cómo se diseña y ponen estos bits lo que determinan si el software es bueno o no.
Los procesadores son de alguna manera “ cajas negras” . Todos realizan la misma función básica (viéndolo desde el exterior): procesan las instrucciones. De De hecho, las instrucciones que soportan, por lo menos en el mundo de las PCs, no han cambiado mucho en los últimos años. Pero en el interior de los procesadores, la forma en que éstos ejecutan las instrucciones se vuelve cada vez más complicada y poderosa. Además de mejorar el rendimiento por medio de la "fuerza bruta" (aumentando las velocidades de reloj) los fabricantes de procesadores han encontrado maneras innovadoras de aumentar más el rendimiento de cada ciclo del reloj. Por ejemplo, el Intel 486DX-25 tiene dos veces el rendimiento del Intel 386DX-25, aunque los dos funcionan a la misma velocidad de reloj.
La arquitectura interna tiene un impacto en qué tan rápido, el procesador, puede funcionar. Ya que cada vez es más difícil diseñar circuitos que puedan funcionar en cantidades más pequeñas de tiempo. El crear procesadores que puedan funcionar a velocidades mayores hace necesario no sólo cambiar las características físicas, sino también su diseño lógico interno. La mayoría de los diseños del microprocesador dividen su circuitería lógica interna en cuatro partes funcionales: los registros internos del procesador, la unidad de entrada-salida “ E/S” o BIU (Bus Interface Unit),
 La unidad de control, y la unidad lógico aritmética (o ALU por sus siglas en inglés, Aritmetic Logic Unit). A los registros internos, al ALU y a la unidad de control en común se les llama unidad central de proceso (o CPU por sus siglas en inglés, Central Processing Unit), aunque a menudo el término CPU se utiliza como sinónimo para el microprocesador entero. 


Las cuatro partes del microprocesador interaccionan juntas. La unidad de control opera el reloj interno del microprocesador, y determina la razón de tiempo a la que el microprocesador opera. La BIU determina la anchura del bus del microprocesador, que influye en la velocidad para que los datos y las instrucciones se puedan mover dentro y fuera del microprocesador, los registros internos determinan cuántos datos puede manejar el microprocesador a la vez, y el ALU es la que realiza todos los cálculos aritméticos y decisiones. 

Por otra parte cabe resaltar que los registros son áreas del almacenamiento local dentro del procesador, que son usadas para almacenar datos con los cuales está trabajando el procesador en un momento dado de la ejecución de una instrucción El ancho (en bits) de los registros del procesador, determina cuánta información puede manejar a la vez.
Nota : Entre más registros internos tenga el procesador, existirá mayor flexibilidad para la programación. Sin embargo, aumenta la complejidad del procesador.
Entre alguno registro que están presente en el mismo podemos encontrar los siguientes :
Registros de segmento: Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento conocida como el segmento actual.
Registro CS. El SO almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, más un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
Registro DS. La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, más un valor de desplazamiento en una instrucción, genera una referenciaa la localidad de un byte especifico en el segmento de datos.
Registro SS. El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El SO almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que está siendo direccionada.
Registro ES. Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.
Registros FS y GS. Son registros extra de segmento en los procesadores 80386 y posteriores.
Registros de propósito general. Los registros de propósito general AX, BX, CX y DX son los motores sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El último byte de la izquierda es la parte "alta", y el último byte de la derecha es la parte "baja". Por ejemplo, el registro CX consta de una parte CH (alta) y una parte CL (baja).
Registro AX. El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. También, algunas operaciones generan código más eficiente si se refieren al AX en lugar de a los otros registros.

Registro BX. El BX es conocido como el registro base ya que es el único registro de propósito general que puede ser índice para direccionamiento indexado. También es común emplear el BX para cálculos.


Registro CX. El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicación y división con cifras grandes suponen al DX y al AX trabajando juntos.
Leer más...

miércoles, 8 de octubre de 2014

El Microprocesador.

El microprocesador es el circuito integrado central y más complejo de un sistema informático; a modo de ilustración, se le suele llamar cerebro de un computador.Es  el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.
 Esta unidad central de procesamiento está constituida, esencialmente, por registros, una unidad de control, una unidad aritmético-lógica (ALU) y una unidad de cálculo en coma flotante(conocida antiguamente como coprocesador matemático).

El microprocesador está conectado generalmente mediante un zócalo específico de la placa base de la computadora; normalmente para su correcto y estable funcionamiento, se le incorpora un sistema de refrigeración que consta de un disipador de calor fabricado en algún material de alta conductividad térmica, como cobre o aluminio, y de uno o más ventiladores que eliminan el exceso del calor absorbido por el disipador. Entre el disipador y la cápsula del microprocesador usualmente se coloca pasta térmica para mejorar la conductividad del calor. Existen otros métodos más eficaces, como la refrigeración líquida o el uso de células peltier para refrigeración extrema, aunque estas técnicas se utilizan casi exclusivamente para aplicaciones especiales, tales como en las prácticas de overclocking.
La medición del rendimiento de un microprocesador es una tarea compleja, dado que existen diferentes tipos de cargas que pueden ser procesadas con diferente efectividad por procesadores de la misma gama. Una métrica del rendimiento es la frecuencia de reloj que permite comparar procesadores con núcleos de la misma familia, siendo este un indicador muy limitado dada la gran variedad de diseños con los cuales se comercializan los procesadores de una misma marca y referencia.


Un sistema informático de alto rendimiento puede estar equipado con varios microprocesadores trabajando en paralelo, y un microprocesador puede, a su vez, estar constituido por varios núcleos físicos o lógicos. Un núcleo físico se refiere a una porción interna del microprocesador cuasi-independiente que realiza todas las actividades de una CPU solitaria, un núcleo lógico es la simulación de un núcleo físico a fin de repartir de manera más eficiente el procesamiento. Existe una tendencia de integrar el mayor número de elementos dentro del propio procesador, aumentando así la eficiencia energética y la miniaturización. Entre los elementos integrados están las unidades de punto flotante, controladores de la memoria RAM, controladores de buses y procesadores dedicados de vídeo.

Leer más...