Unidad I:
Introducción a los
Microprocesadores
Contenido:
1.1 Organización y arquitectura
1.2 Estructura y funcionamiento
1.3 Estratificación del software
1.4 Clasificación de las computadoras
1.5 La arquitectura de computadoras: primeros conceptos
1.6 Arquitectura de una Unidad Central de Proceso (CPU)
1.7 Lógica digital y componentes electrónicos
1.1 Organización y arquitectura
Que es una computadora?
Componentes de una computadora:
La arquitectura de computadores se refiere a los
atributos de un sistema que son visibles a un
programador, o para decirlo de otra manera, aquellos
atributos que tienen un impacto directo en la ejecución
lógica de un programa.
Ejemplos de atributos arquitectónicos:
•Conjunto de instrucciones
•El número de bits usados para representar varios tipos
de datos (por ejemplo, números, caracteres)
•Mecanismos de E/S
•Técnicas para direccionamiento de memoria.
La organización de computadores se refiere a las
unidades funcionales y sus interconexiones, que dan
lugar a especificaciones arquitectónicas.
Ejemplos de atributos de organizacion:
•Señales de control
•Interfaces entre el computador
•Los periféricos y la tecnología de memoria usada.
Ejemplo:
Una cuestión de diseño arquitectónico es si el
computador tendrá la instrucción de multiplicar. Una
cuestión de organización es si esa instrucción será
implementada por una unidad especializada en
multiplicar o por un mecanismo que haga un uso
iterativo de la unidad de suma del sistema.
1.2 Estructura y funcionamiento
Un computador es un sistema complejo; los
computadores de hoy en día contienen millones de
componentes electrónicos básicos. ¿Cómo podríamos
describirlos claramente? La clave está en reconocer la
naturaleza jerárquica de la mayoría de los sistemas
complejos, incluyendo el computador
Un sistema jerárquico es un conjunto de subsistemas
interrelacionados cada uno de los cuales, a su vez, se
organiza en una estructura jerárquica hasta que se
alcanza el nivel más bajo del subsistema elemental.
En cada nivel el sistema consta de un conjunto de
componentes y sus interrelaciones. El comportamiento
en cada nivel depende solo de una caracterización
abstracta y simplificada del sistema que hay en el
siguiente nivel más bajo. De cada nivel al diseñador le
importan la estructura y el funcionamiento:
• Estructura: el modo en que los componentes están
interrelacionados.
Hay cuatro componentes estructurales principales:
• Unidad Central de Procesamiento (CPU, Central
Processing Unit): controla el funcionamiento del
computador y lleva a cabo sus funciones de
procesamiento de datos. Frecuentemente se le llama
simplemente procesador.
• Memoria principal: almacena datos.
• E/S: transfiere datos entre el computador y el
entorno externo.
• Sistema de interconexión: es un mecanismo que
proporciona la comunicación entre la CPU, la
memoria principal y la E/S.
• Funcionamiento: la operación de cada componente
individual como parte de la estructura.
Las funciones básicas que un computador puede llevar a
cabo. En términos generales hay solo cuatro:
•Procesamiento de datos
•Almacenamiento de datos
•Transferencia de datos
• Control
El computador, por supuesto, tiene que ser capaz de
procesar datos. Los datos pueden adoptar una gran
variedad de formas, y el rango de los requisitos de
procesado es amplio. Sin embargo, veremos que hay
solo unos pocos métodos o tipos fundamentales de
procesado de datos.
También es esencial que un computador almacene
datos. Incluso si el computador está procesando datos al
vuelo (es decir, los datos se introducen, se procesan, y
los resultados se obtienen inmediatamente), el
computador tiene que guardar temporalmente al menos
aquellos datos con los que está trabajando en un
momento dado.
El computador tiene que ser capaz de transferir datos
entre él mismo y el mundo exterior. El entorno de
operación del computador se compone de dispositivos
que sirven bien como fuente o bien como destino de
datos. Cuando se reciben o se llevan datos a un
dispositivo que está directamente conectado con el
computador, el proceso se conoce como entrada-salida
(E/S), y este dispositivo recibe el nombre de periférico.
Finalmente, debe haber un control de estas tres
funciones. Este control es ejercido por el(los) ente(s)
que proporciona(n) al computador instrucciones. Dentro
del computador, una unidad de control gestiona los
recursos del computador y dirige las prestaciones de sus
partes funcionales en respuesta a estas instrucciones.
1.3 Estratificación del software.
También se pueden establecer niveles funcionales
respecto del software. Por un lado, la jerarquía más
alta corresponde a los programas de uso particular de
los usuarios, denominados aplicaciones (que se
programan en lenguajes de alto nivel); en el extremo
opuesto están las señales que genera la unidad de
control para el gobierno de los distintos dispositivos
físicos, por ejemplo, una orden de lectura a memoria.
Podemos ver la relación entre las distintas jerarquías de
software y el hardware en el esquema siguiente:
1.4 Clasificación de las computadoras.
Analógicas
Las primeras computadoras analógicas se
implementaron para estudiar un modelo semejante
(análogo) a una ecuación; el resultado se elaboró tras la
medición del valor que asumían las salidas del modelo.
Sin embargo, el sistema adolecía de dos desventajas
importantes:
•La falta de exactitud en la salida, a causa del carácter
continuo de esta magnitud.
•El modelo construido, que representaba a una única
aplicación y no servía para otra.
Digitales
Estas computadoras se denominan digitales porque
procesan “dígitos” binarios, “ceros” y “unos” que
representan datos.
Hibridas
Los sistemas híbridos son una combinación de
analógicos y digitales. Mientras que la porción
analógica se encarga de tomar los datos continuos
(temperatura, presión, etc.), la parte digital efectúa los
cálculos. Estas computadoras se construyen para
propósitos especiales; un ejemplo actual es el GPS de
nuestro auto.
1.5 La arquitectura de computadoras: primeros
conceptos.
La palabra digital implica que el valor de los datos es
discreto y limitado y se representa con combinaciones
de 0 y 1, o sea, son máquinas binarias.
Los datos son agrupaciones de bits que, como ya
señalamos, al aplicar distintas técnicas de
codificación se convierten en números y letras.
Una computadora es un sistema que incluye módulos de
hardware y de software.
Un término más, que involucra ambos conceptos, es
firmware y se utiliza para identificar los dispositivos
físicos programados, como puede ser la programación
de los múltiples usos que presta un electrodoméstico, o
sea, que se fusionan los conceptos de hardware y
software.
Las computadoras necesitan procesar pequeños grupos
de bytes (2, 4, 8). La unidad de trabajo o procesamiento
de CPU se denomina CPU (tenga en cuenta que este
término nada tiene que ver con el significado que
estamos acostumbrados a darle a “palabra” en español).
1.6 Arquitectura de una Unidad Central de Proceso
(CPU).
Componentes de un CPU:
Unidad de Control: coordina y controla los demás
elementos de la computadora. Debe de decodificar las
instrucciones almacenadas en la RAM. Debe también
organizar la secuencia de acciones a realizar por parte
de la computadora.
• RELOJ: El reloj es un circuito oscilador que genera
pulsos a una frecuencia constante. Estos pulsos
sincronizan la ejecución de cada instrucción.
Ejemplo: Si en una computadora el reloj tiene un
periodo de 100ns se dice que trabaja a 10 Mhz.
Solución:
t = 100 ns x = (100 ns * 10-9 seg)/1 ns
f=?
x = 100 * 10-9 seg
f = 1/t x = 102 * 10-9 seg
x = 10-7 seg
1 ns = 10-9 seg
100 ns = x
1 MHz = 106 / seg
seg = 106 / MHz
Por lo tanto:
f = 1/t
f = 1/10-7 seg f = (107 * MHz) / 106
f = (107 * 10-6) MHz
f = 107 / seg
f = 101 MHz
F = 107 / (106 / MHz)
f = 10 MHz //
• EL SECUENCIADOR: Envía mediante el bus de
datos señales de controla también llamadas
microordenes a los componentes del sistema. Estas
microordenes sincronizadas por el reloj hacen que se
vaya ejecutando la instrucción.
• CONTADOR DE PROGRAMA: Contiene la
dirección de RAM de la siguiente instrucción que se
ejecutara. Al inicio contiene la primera dirección del
programa. Cada vez que se termina una instrucción,
se incrementa automáticamente en uno.
• EL DECODIFICADOR: Se encarga de extraer el
código de operación de la instrucción que está en el
registro de instrucción lo analiza y determina el
conjunto de pasos elementales en que se descompone
esa instrucción concreta y emite, a través del
secuanciador, las señales necesarias al resto de
elementos para su ejecución.
• REGISTRO DE INTRUCCION: Contienen la
configuración que identifica a la instrucción que en
ese momento se está ejecutando.
Unidad Aritmética y Lógica: manipula y procesa los
datos, se encarga de realizar todas las operaciones
aritméticas como adición, sustracción, división,
multiplicación y las operaciones lógicas como mayor
que, menor que, mayor o igual, menor o igual, igual y
diferente.
• Registro de estado: Grupo de biestables que guardan
condiciones de la última operación que pueda afectar
a operaciones posteriores
• Acumulador: Guarda los resultados de las
operaciones realizadas por el circuito operacional. Se
conecta con los registros de entrada (en caso de
encadenación) y con el bus de datos para la
transmisión de resultados a la unidad de control o a
la memoria.
• Circuito operacional: Es un conjunto de compuertas
básicas organizadas en diferentes arreglos para llevar
acabo las operaciones.
• Registros de entrada: Guardan los datos que necesita
una instrucción para ser efectuada.
La CPU está asociada a la memoria principal (PM o
Principal Memory) para obtener las instrucciones y
los datos y almacenar los resultados; es de tecnología
de semiconductores y también se denomina memoria
central, interna o memoria de trabajo.
1.7 Lógica digital y componentes electrónicos.
La lógica digital permite la descripción con mayor
detalle que el definido para un bloque funcional.
La siguiente figura se muestran tres niveles: el de
arquitectura, el de lógica digital (donde se muestra
“ampliado” el diagrama de lógica para la suma de dos
bits) y en un tercer nivel se explica cómo realizaría la
operación el alumno.
Se puede incorporar mucha lógica digital en un chip.
Por ejemplo, una CPU completa denominada desde
entonces microprocesador. Un circuito integrado es un
soporte físico que incluye en su interior conjuntos de
compuertas lógicas.
La palabra de procesador es la unidad de trabajo o
cantidad de información que puede procesar en un paso,
expresada en bits; por ejemplo, cuántos bits como
máximo pueden tener dos operandos para que se puedan
sumar en forma simultánea. Las longitudes de
procesador más comunes en el mercado actual son de 32
y 64 bits.
La capacidad de dirección se puede determinar por la
cantidad de líneas que transfieren los bits de una
dirección física, por ejemplo con 32 bits se pueden
obtener 2^32 combinaciones distintas que representan
2^32 direcciones posibles. Este parámetro es
importante, ya que determina la cantidad de memoria
principal a la que puede acceder: cuanto mayor sea la
cantidad de direcciones de memoria, mayor será su
capacidad de almacenamiento y, por lo tanto, mayor su
capacidad para almacenar programas y datos
disponibles para su ejecución.
La velocidad de ejecución de un procesador depende en
primer término de la velocidad del reloj del sistema. La
ejecución de instrucciones se lleva a cabo al ritmo de
señales que provienen del reloj, por lo tanto, la
determinación de la velocidad está incluida en etapa de
diseño de la computadora.
Denominaremos señal de reloj o clock a una señal que
oscila a intervalos regulares entre 0 y 1. Se debe
considerar que hay un tiempo de transición entre 0 y 1 o
entre 1 y 0, debido a que el cambio de valor no es
instantáneo.
Se denomina frecuencia a la cantidad de ciclos por
segundo.
La frecuencia se expresa en Hz, con distintos
multiplicadores (kilo, mega, giga, etc.), de acuerdo con
la relación T = 1/f.
Si la frecuencia es de 1 GHz = 1 000 000 000 de ciclos
por segundo = 10^9 ciclos, entonces 1/10^9 = 10 ^-9
seg = 1 nanosegundo, que es una unidad de tiempo muy
utilizada en relación con la velocidad de determinadas
operaciones.