El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido. Muchos dispositivos programables (como los microcontroladores) aun cuentan con el ensamblador como la única manera de ser manipulados.
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano ya que su estructura se acerca mas bien al lenguaje máquina, es decir, lenguaje de bajo nivel. El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador. Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel. Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles de programar en un lenguaje de alto nivel.
ESTRUCTURA GENERAL DE UN MICROPROCESADOR
Se presenta a continuación un esquema en bloques de un sistema básico de un computador y sus funciones esenciales, ALU ( Arithmetic Logic Unit), unidad de control, unidad de I/O y memoria central. Todos los demás componentes agregados al sistema se denominan periféricos , y vinculan al sistema con el mundo exterior, para intercambiar y visualizar datos.
Los datos introducidos en el computador se utilizan como base para operaciones de todo tipo, aritméticas, lógicas, Son funciones realizadas por la ALU que además contiene registros especiales y de uso general donde procesa la información antes y después de su uso. Luego será almacenada en la memoria central , que es la zona de almacenamiento de gran capacidad, se guardan aquí tanto datos como programas ejecutables.
Todo el sistema es controlado por la unidad de control que genera las señales temporización y sincronización de todo el sistema. A partir de esta breve descripción se pueden apreciar en la arquitectura del sistema dos elementos diferentes en cuanto a sus características; los circuitos eléctricos / electrónicos que constituyen al procesador y lo que se ha dado en llamar el programa ( conjunto de operaciones denominadas instrucciones. Los programas a utilizar suelen estar en la memoria central del sistema. Cada una de las celdas que componen la memoria central debe ser seleccionada por la unidad central para poder ordenar la información allí guardada y de esta manera poder transformar los datos en una secuencia determinada para obtener el resultado deseado de la operación de los mismos.
Esta selección se denomina direccionamiento y lo realiza la unidad de control por medio del registro de direccionamiento, y su función es almacenar la dirección a ejecutar del sistema
UNIDAD DE PUNTO FLOTANTE
Una Unidad de Punto Flotante (Floating Point Unit en inglés) es un componente de la CPU especializado en el cálculo de operaciones en coma flotante. Las operaciones básicas que toda FPU puede realizar son las aritméticas (suma y multiplicación), si bien algunos sistemas más complejos son capaces también de realizar cálculos trigonométricos y/o exponenciales.
No todas las CPUs tienen una FPU dedicada. En ausencia de FPU, la CPU puede utilizar programas en microcódigo para emular una función en coma flotante a través de la unidad aritmético-lógica (ALU), la cual reduce el coste del hardware a cambio de una sensible pérdida de velocidad.
En algunas arquitecturas, las operaciones en coma flotante se tratan de forma completamente distinta a las operaciones enteras, con registros dedicados y tiempo de ciclo diferentes. Incluso para operaciones complejas, como la división, podrían tener un circuito dedicado a dicha operación.
Hasta mediados de la década de los 90 del siglo pasado, era común que las CPU no incorporasen una FPU en los ordenadores domésticos, sino que eran un elemento opcional conocido como coprocesador. Ejemplos podrían ser las FPUs 387 y 487 que se utilizaban en las CPUs 386 y 486SX (el modelo 486DX ya incluía el coprocesador de serie) en máquinas Pentium, o la FPU 68881 utilizada en las CPUs 680x0 en ordenadores Macintosh. Sin embargo, a partir de dichas CPUs, la FPU se convirtió en un elemento común presente en la mayoría de procesadores domésticos (series Pentium y PowerPC en adelante.
UNIDAD DE CONTROL
La unidad de control (UC) es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Los otros dos bloques son la Unidad de proceso y el bus de entrada/salida.
Su función es buscar las instrucciones en la memoria principal, decodificarlas (interpretación) y ejecutarlas, empleando para ello la unidad de proceso.
La ejecución de una instrucción se divide en varias etapas que deben realizarse según una secuencia muy precisa de señales de control que establece la señal de control. Hay dos formas básicas para implementar la unidad de control:
Unidad de control cableada: Realiza sus funciones mediante elementos hardware. No la analizaremos en profundidad aquí.
Unidad de control microprogramada: Es mas lenta que la anterior, pero permite implementar instrucciones mas potentes y flexibles. Será analizada en profundidad en los siguientes apartados
UNIDAD DE INTERFAZ EN EL BUS
La unidad de interfaz del bus 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.
Se encarga del control y el procesamiento de datos en todo el ordenador. Para esta tarea es necesario que le ayuden otros elementos capaces de realizar funciones específicas y así liberar de trabajo costoso y difícil al microprocesador.
1. Unidad Aritmetico-Lógica (ALU): Lleva a cabo las funciones de procesamiento de datos.
2. Unidades Funcionales: se encargan de operaciones matemáticas específicas, y así sacan y facilitan el trabajo al microprocesador. (sumas, multiplicaciones, dividir por números enteros, etc.)
3. Registros: Almacenan datos durante cierto tiempo, dentro la CPU.
etc.
Todos estos elementos están conectados entre sí por medio de un conjunto de circuitos o conexiones nombrado bus. Todo su funcionamiento se basa en interpretar las señales eléctricas como números y de esta forma poder operar sobre ellas, para lo cual hace servir métodos como la álgebra de Boole.
MANEJO DE INSTRUCCIONES DEL PROCESADOR
Un proceso es un programa en ejecución, los procesos son gestionados por el sistema operativo y están formados por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación. Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.
INSTRUCCIONES DEL PROCESADOR
Aritmetica: Es la encargada de realizar los cálculos. Los datos sobre los que se realizan la operaciones se denominan operandos. Al elemento encargado de ejecutar las operaciones se le denomina operador, y esta formado por una serie de circuitos electrónicos que son capaces de sumar dos números binarios o hacer las operaciones lógicas elementales: disyunción, conjunción y negación; incluso algunos operadores son también capaces de multiplicar, dividir y realizar otras operaciones mas complejas.
Logica: es el cerebro de una computadora. Su función e ejecutar programas almacenados en la memoria central tomando sus instrucciones, examinándolas y luego ejecutándolas una tras otra. La CPU se compone de varias partes. La unidad de control se encarga de traer las instrucciones de las memoria principal y de determinar su tipo. La unidad aritmética y lógica realiza operaciones como la suma o la función booleana AND, necesarias para llevar a cabo las instrucciones.
Booleanas: Estas instrucciones corresponden a- contactos de cierre: el contacto se establece cuando el objeto bit que controla el contacto está en el estado 1, - contactos de apertura: el contacto se establece cuando el objeto bit que controla el contacto está en el estado 0,- contactos de flanco ascendente: detección del paso de 0 a 1 del objeto bit que lo controla,- contactos de flanco descendente: detección del paso de 1 a 0 del objeto bit que lo controla.
Pipelininig: La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a través de varias etapas de producción antes de tener el producto terminado. Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes. A estos procesadores se les conoce como pipeline processors.
Un pipeline processor está compuesto por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Puede ser representado gráficamente en dos dimensiones, en donde en el eje vertical encontramos los segmentos que componen el pipeline y en el segmento horizontal representamos el tiempo.
RAM y ROM: La memoria de acceso aleatorio (en inglés: random-access memory cuyo acrónimo es RAM) es la memoria desde donde el procesador recibe las instrucciones y guarda los resultados. Es el área de trabajo para la mayor parte del software de un computador.1 Existe una memoria intermedia entre el procesador y la RAM, llamada caché, pero ésta sólo es una copia (de acceso rápido) de la memoria principal (típicamente discos duros) almacenada en los módulos de RAM.1 Por ejemplo, en el sistema operativo Windows Vista, gracias al servicio ReadyBoost, es posible asignar memoria flash de un dispositivo externo USB como memoria caché y así mejorar la velocidad del equipo informático, debido a la mayor velocidad de las Flash respecto al disco duro.
JERARQUIA DE MEMORIA
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en: Cantidad, Velocidad y Coste.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.
Los niveles que componen la jerarquía de memoria habitualmente son:
Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria principal
Nivel 3: Disco duro (con el mecanismo de memoria virtual)
Nivel 4: Redes(Actualmente se considera un nivel más de la jerarquía de memorias)
No hay comentarios:
Publicar un comentario