Diseño logico de los procesadores
A.L.U
En computacion la unidad aritmético lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital
que calcula operaciones aritméticas (como suma, resta, multiplicación,
etc.) y operaciones lógicas (si, y, o, no), entre dos números.
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo
de operación aritmética, así que incluso el circuito dentro de un reloj
digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo
actual, y se mantiene comprobando si debe activar el sonido de la
alarma, etc.
Operaciones simples ( A.LU)
La mayoría de las ALU pueden realizar las
siguientes operaciones:
·
Operaciones aritméticas de
números enteros (adición, sustracción, y a veces multiplicación y división,
aunque ésto es más complejo)
·
Operaciones lógicas de bits
(AND, NOT, OR, XOR, XNOR)
·
Operaciones de desplazamiento de
bits (Desplazan o rotan una palabra en un número específico de bits hacia la
izquierda o la derecha, con o sin extensión de signo). Los desplazamientos
pueden ser interpretados como multiplicaciones o divisiones por 2
UNIDAD DE CONTROL (U.C)
La unidad de control (UC) es uno de los tres
bloques funcionales. Por otra parte está la unidad de control, que fue
históricamente definida como una parte distinta del modelo de referencia de
1946 de la Arquitectura de von Neumann. En diseños modernos de computadores, la
unidad de control es típicamente una parte interna del CPU y fue conocida
primeramente como arquitectura Eckert-Mauchly. Memoria: que almacena datos y
programas. Dispositivos de entrada y salida: alimentan la memoria con datos e
instrucciones y entregan los resultados del cómputo almacenados en memoria.
Buses: proporcionan un medio para transportar los datos e instrucciones entre
las distintos y pequeños que la memoria principal (los registros), constituyen
la unidad central de procesamiento (UCP o CPU por su nombre en inglés: Central
Processing Unit)
La unidad central de procesamiento (del inglés
Central Processing Unit, CPU), es el componente principal de una computadora y
otros dispositivos programables, que interpreta las instrucciones contenidas en
los programas y procesa los datos. Las CPU proporcionan la característica
fundamental del ordenador digital (la programabilidad) y son uno de los
componentes necesarios encontrados en los computadoras de cualquier tiempo,
junto con la memoria principal y los dispositivos de entrada/salida. Se conoce
como microprocesador el CPU que es manufacturado con circuitos integrados.
Desde mediados de los años 1970, los microprocesadores de un solo chip han
reemplazado casi totalmente todos los tipos de CPU y hoy en día, el término CPU
es aplicado usualmente a todos los microprocesadores. La expresión unidad
central de procesamiento es, en términos generales, un dispositivo lógico que
pueden ejecutar complejos programas de ordenador
Periféricos de Entrada o Salida
Un periférico de entrada/salida es el que utiliza
la computadora para ingresar datos, y luego de ser procesados por la CPU,
genera la salida de información. Su función es leer o grabar, permanente o
virtualmente, todo aquello que hagamos con la computadora para que pueda ser
utilizado por los usuarios u otros sistemas.
Ejemplos:
Pantalla táctil
Casco
virtual
Impresora multifunción
En ocasiones, se consideran periféricos de E/S a
los dispositivos de almacenamiento de datos, como por ejemplo: las unidades de
almacenamiento, como por ejemplo, lectograbadora de discos ópticos, tarjetas de
memoria, disco duro externo, pendrive USB.
También, los periféricos de comunicación, suelen
considerarse de E/S porque su función es la interacción entre dos o más
computadoras, o entre la computadora y otro periférico externo. Por ejemplo:
Módem, Tarjeta de red, Concentrador, Conmutador (dispositivo de red),
Enrutador, Comunicación inalámbrica, Bluetooth.
El procesador
Es un
circuito integrado que contiene todos los elementos de la CPU. Este es el
cerebro del computador. Dependiendo del tipo de procesador y su velocidad se
obtendrá un mejor o peor rendimiento
Existen tres marcas de procesadores: AMD, Cyrix e Intel. La velocidad de
los procesadores se mide en Megahertz (MHz =Millones de ciclos por segundo).
Cabe
anotar que los procesadores de Intel son más caros y tienen una unidad de punto
flotante (FPU) más robusta que AMD y Cyrix. Esto hace que Intel tenga
procesadores que funcionen mejor en 3D (Tercera dimensión), AutoCAD, juegos y
todo tipo de programas que utilizan esta característica. Para programas de
oficina como Word, Wordperfect, entre otros. AMD y Cyrix funcionan muy bien.
Tipos de procesadores:
Pentium-75 ; 5x86-100 (Cyrix y AMD)
AMD
5x86-133
Pentium-90
AMD K5
P100
Pentium-100
Cyrix
686-100 (PR-120)
Pentium-120
Cyrix
686-120 (PR-133) ; AMD K5 P133
Pentium-133
Cyrix
686-133 (PR-150) ; AMD K5 P150
Pentium-150
Pentium-166
Cyrix
686-166 (PR-200)
Pentium-200
Cyrix
686MX (PR-200)
Pentium-166 MMX
Pentium-200 MMX
Cyrix
686MX (PR-233)
AMD K6-233
Pentium
II-233
Cyrix
686MX (PR-266); AMD K6-266
Pentium
II-266
Pentium
II-300
Pentium
II-333 (Deschutes)
Pentium
II-350
Pentium
II-400
.
Unidad de punto flotante (UFP):
Una unidad de coma flotante
(adaptación del inglés floating-point unit o literalmente traducido unidad de
punto flotante) o, también conocido como coprocesador matemático, es un
componente de la unidad central de procesamiento especializado en el cálculo de
operaciones en coma flotante. Las operaciones básicas que toda FPU puede
realizar son la suma y multiplicación usuales, si bien algunos sistemas más
complejos son capaces también de realizar cálculos trigonométricos o
exponenciales.
No todas las unidades centrales de procesamiento 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.
Bus de control
El bus de control gobierna el uso
y acceso a las líneas de datos y de direcciones. Como éstas líneas están
compartidas por todos los componentes, tiene que proveerse de determinados
mecanismos que controlen su utilización. Las señales de control transmiten
tanto órdenes como información de temporización entre los módulos. Mejor dicho,
es el que permite que no haya colisión de información en el sistema.
Bus de direcciones
El bus de direcciones es un canal
del microprocesador totalmente independiente del bus de datos donde se
establece la dirección de memoria del dato en tránsito.
El bus de dirección consiste en
el conjunto de líneas eléctricas necesarias para establecer una dirección. La
capacidad de la memoria que se puede direccionar depende de la cantidad de bits
que conforman el bus de direcciones, siendo 2n el tamaño máximo en bits del
banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para
direccionar una memoria de 256 bits, son necesarias al menos 8 líneas, pues 28
= 256. Adicionalmente pueden ser necesarias líneas de control para señalar
cuando la dirección está disponible en el bus. Esto depende del diseño del
propio bus.
Las direcciones de memoria
Las direcciones son números
naturales (en hexadecimal) que indican la posición de los datos dentro de la
memoria principal o del espacio de direcciones de la unidad de entrada/salida.
Las direcciones son generadas por la CPU que es quien decide a qué dato se debe
acceder en cada momento.
Bus de datos
Buses multiplexados
Algunos diseños utilizan líneas
eléctricas multiplexadas para el bus de direcciones y el bus de datos. Esto
significa que un mismo conjunto de líneas eléctricas se comportan unas veces
como bus de direcciones y otras veces como bus de datos, pero nunca al mismo
tiempo. Una línea de control permite discernir cual de las dos funciones está
activa.
Memoria cache:
Forma parte de la tarjeta madre y del
procesador y se utiliza para acceder rápidamente a la información que utiliza
el procesador. Existen cache primario (L1) y cache secundario (L2). El cache
primario esta definido por el procesador y no lo podemos quitar o poner. En
cambio el cache secundario se puede añadir a la tarjeta madre. La regla de mano
es que si se tienen 8 Megabytes (Mb) de memoria RAM se debe tener 128 Kilobytes
(Kb) de cache. Si se tiene 16 Mb son 256 Kb y si se tiene 32 Mb son 512 Kb.
Parece que en adelante no se observa mucha mejoría al ir aumentando el tamaño
del cache. Los Pentium II tienen el cache secundario incluido en el procesador
y este es normalmente de 512 Kb.
Registros Índice
Los registros SI y DI están
disponibles para direccionamiento indexado y para operaciones de cadenas de
caracteres.
Registro SI: El registro índice
fuente de 16 bits es requerido por algunas operaciones con cadenas de
caracteres. El SI está asociado con el segmento DS.
Registro DI: El registro índice
destino también es requerido por algunas operaciones con cadenas de caracteres.
El DI está asociado con el segmento ES.
Registros Apuntadores
Los registros SP (apuntador de
pila) y BP (apuntador base) están asociados con el registro SS y permiten al
sistema acceder a datos en el segmento de la pila
.
Registro SP: El apuntador de pila
de 16 bits está asociado con el segmento SS y proporciona un valor de
desplazamiento que se refiere a la palabra actual que está siendo procesada en
la pila. El sistema maneja de manera automática este registro, aunque el
programa puede hacer ciertas manipulaciones con él.
Registro BP: El apuntador base de
16 bits facilita la referencia de parámetros dentro de la pila
.
Registros de Banderas
Es un registro de 16 bits, de los
cuales nueve sirven para indicar el estado actual de la máquina y el resultado
del procesamiento. Muchas instrucciones aritméticas y de comparación cambian el
estado de las banderas y apoyándose en ellas se pueden tomar decisiones para determinar
la acción subsecuente.
La tabla contiene 16 posiciones
(de 0 a 15), que son los 16 bits del registro de banderas, numeradas de derecha
a izquierda. La posición 0 la encontraremos a la derecha y la posición 15 a la
izquierda.
OF (overflow, desbordamiento):
Indica desbordamiento del bit de mayor orden después de una operación
aritmética de números con signo (1=existe overflow; 0=no existe overflow). Para
operaciones sin signo, no se toma en cuenta esta bandera.
DF (dirección): Controla la
selección de incremento o decremento de los registros SI y DI en las
operaciones con cadenas de caracteres (1=decremento automático; 0=incremento).
La bandera DF se controla con las instrucciones STD y CLD.
IF (interrupción): Controla el
disparo de las interrupciones (1=habilita las interrupciones; 0=deshabilita las
interrupciones). La interrupción no enmascarable es la única que no puede ser
bloqueada por esta bandera. El estado de la bandera IF se controla con las
instrucciones STI y CLI.
TF (trampa): Permite la operación
del procesador en modo de depuración (paso a paso)
SF (signo): Contiene el signo
resultante de una operación aritmética (0=positivo; 1=negativo).
ZF (cero): Indica el resultado de
una operación aritmética o de comparación (0=resultado diferente de cero;
1=resultado igual a cero).
AF (acarreo auxiliar): Contiene
el acarreo del bit 3. Esta bandera se prueba con las instrucciones DAA y DAS
para ajustar el valor de AL después de una suma o resta BCD.
PF (paridad): Indica si el número
de bits 1, del byte menos significativos de una operación, es par (0=número de
bits 1 es impar; 1=número de bits 1 es par).
CF (acarreo): Contiene el acarreo
del bit de mayor orden después de una operación aritmética; también almacena el
contenido del último bit en una operación de desplazamiento o de rotación.
Registros de Segmento
Definen áreas de 64 Kb dentro del
espacio de direcciones de 1 Mb del 8086. Estas áreas pueden solaparse total o
parcialmente. No es posible acceder a una posición de memoria no definida por
algún segmento: si es preciso, habrá de moverse alguno.
Registro CS: El DOS 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. Para propósitos de programación normal, no se necesita
referenciar el registro CS.
Registro DS: La dirección inicial
de un segmento de datos de programa es almacenada en el registro DS. Esta
dirección, más un valor de desplazamiento en una instrucción, genera una
referencia a la localidad de un byte específico 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 DOS 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 la pila (SP), indica la
palabra actual en la pila que está siendo direccionada. Para propósitos de
programación normal, no se necesita referenciar el registro SS.
Registro ES: Algunas operaciones
con cadenas de caracteres utilizan el registro extra de segmento para manejar
el direccionamiento de memoria. El registro ES está asociado con el registro DI
(Índice). Un programa que requiere el uso del registro ES puede inicializarlo
con una dirección de segmento apropiada.
Este comentario ha sido eliminado por el autor.
ResponderEliminarLuego de revisar la información sobre los registros del computador, hay que destacar que a parte de todos los ya mencionados también se encuentran los registros de uso general estos son 4 registros denominados AX, BX, CX y DX que en realidad tienen asignados usos característicos muy importantes.
ResponderEliminarEl AX es denominado un registro acumulador este suele contener uno de los operandos que intervienen en las operaciones aritméticas y lógicas, y después de estas, el resultado de la operación. Encontramos el BX el cual es el registro base y este suele contener la dirección de inicio de una tabla de valores. También tenemos el CX que es el registro denominado contador. Las instrucciones de bucles o ciclos lo utilizan, y por ultimo el DX el cual es un registro de datos, multiuso. Se utiliza en operaciones de multiplicación y división trabajando en conjunto con el AX.
Cabe destacar que estos cuatro registros son de 16 bits.
Vale la pena resaltar que la conexión de los diferentes componentes de una computadora, tales como discos duros, tarjetas madres, unidades de CD, teclados, ratones, etc. Se efectúan a través de los buses el cual se define como un enlace de comunicación compartido que usa múltiples cables para conectar subsistemas donde cada línea es capaz de transmitir una tensión eléctrica que representa un ‘1’ o un ‘0’. Cuando hay varios dispositivos en el mismo bus, habrá uno que podrá enviar una señal que será procesada por los demás módulos; si se mandan los datos al mismo tiempo marcara un error o una contención del bus, por lo que el acceso estará denegado.
ResponderEliminarSegún si criterio de funcionabilidad los buses se dividen en: Buses de datos: es el que se utiliza para transmitir datos entre los diferentes dispositivos del computador.
Buses de Direcciones: sirve para indicar la posición del dato que se requiere acceder.
Bus de Control: sirven para seleccionar al emisor y al receptor en una transacción del bus.
Bus de alimentación: sirve para proporcionar a los dispositivos voltajes distintos.