Subido por Jorge Moreno

Arquitectura Computacional

Anuncio
Procesadores
Dr. Andrés David García García
Departamento de Mecatrónica
Campus Estado de México
Arquitectura de computadoras
Instrucciones
I/O
ROM
CPU
Datos
I/O
RAM
I/O
2
TE 1010
Arquitectura de computadoras
➢Arquitectura interna de una computadora:
Bus de direcciones
CPU
Bus de datos
/MWTC
/MRTC
/IOWC
/IORC
Memoria
ROM
Memoria
RAM
Teclado
Pantalla
3
TE 1010
Arquitectura de computadoras
➢Un sistema a base de una CPU cuenta con 2 tipos de
buses:
➢Bus de datos: por el cual se realiza el intercambio de palabras
de información.
➢Bus de direcciones: que permite seleccionar el contenido del
mapa de memoria.
➢Por medio de estos buses se controlan los elementos de
memoria y los sistemas de entrada/salida o periféricos.
TE 1010
4
Arquitectura de computadoras
➢Un microprocesador ejecuta una serie de instrucciones de
forma secuencial.
ALTO NIVEL
Visual C++
C++
JAVA
C
Assembler
HEX
BAJO NIVEL
➢Estas instrucciones se escriben en un lenguaje llamado
“lenguaje ensamblador”, el cual puede ser interpretado por el
humano.
TE 1010
5
Arquitectura de computadoras
➢El lenguaje Ensamblador permite la construcción de códigos
secuenciales de tareas reducidas (RISC) lo más cercano posible
al código de ejecución del procesador:
LOAD A mem; carga el valor contenido en el registro A en la
; dirección de memoria mem.
CON B const; carga el valor de la constante const en el registro B.
ADD A,B; Suma el valor del registro A con el valor del registro B
; y almacena ese valor en otro registro.
SUB A,B; Efectúa la resta entre los valores contenidos en los registros
; A y B.
➢Mediante un programa llamado propiamente “ensamblador”
se traduce a un lenguaje máquina que el CPU entiende:
:A990456EA060B03201FF;
TE 1010
6
Arquitectura de una CPU
TE 1010
7
Arquitectura de una CPU
Codificador: Interpreta el código Máquina
Registro: Almacena la instrucción que
mientras se ejecuta
ALU: Unidad Aritmética Lógica.
Requiere saber en cada momento
lo que va a hacer
✓ La CPU no piensa por sí misma, hay que decirle qué hacer !!
TE 1010
8
Unidad Aritmética Lógica: ALU
 Una ALU (Unidad Aritmética-Lógica) es un circuito
que permite, como su nombre lo indica, realizar
operaciones lógicas y aritméticas.
 Además de los operadores lógicos y aritméticos, la
ALU cuenta con una serie de registros para
almacenar los datos, y bits de información sobre los
resultados, también llamados banderas.
 Las banderas más comunes son: Carry, Auxiliary
Carry, Borrow, Overflow, Parity, Zero.
La ALU
 El símbolo de una ALU:
C
ALU
A
Banderas
B
La ALU
 El circuito ALU es simplemente un operador, es decir,
sólo realiza operaciones.
 La ALU no toma decisiones.
 Las entradas deben contener tanto la magnitud como
el signo que corresponda a la operación.
 La ALU requiere de un mecanismo de control que le
permita saber el tipo de operación a realizar.
A[0]
 Una forma de construir
una ALU simple es
mediante una célula de
tipo “bit-slice”.
NA
NB
Cin
ALU Bit Slice
C[1]
 Esta célula permite
realizar la suma ó
alguna operación lógica
entre 2 bits.
B[0]
Diseño de una ALU
FA
A and B
/B
Señales d e
control
/A
A xor B; [A+B]
A or B
S[0]
MUX
12
 Las funciones AND y XOR se
toman de las salidas de CarryOut y Suma Respectivamente.
 Esta arquitectura tiene la
limitante que, para las
funciones AND y XOR, se
requiere de que tanto A como
B no estén negados, y que el
Carry-In sea ‘0’.
A[0]
 En principio, la célula basada
en un Full Adder permite
realizar
operaciones
de
SUMA, RESTA, AND, OR, XOR y
NOT.
B[0]
Diseño de una ALU
NA
NB
Cin
ALU Bit Slice
C[1]
FA
A and B
/B
Señales d e
control
/A
A xor B; [A+B]
A or B
S[0]
MUX
13
Diseño de una ALU
A[0]
B[0]
 Si A, o B están negadas, o si el Carry-in es ‘1’. Entonces las salidas de Carry-Out y de
Suma no pueden ser utilizadas para generar las funciones AND y XOR
respectivamente:
NA
NB
Cin
ALU Bit Slice
C[1]
Solución: Dividir el Full
Adder en dos Half Adder.
Full Adder
FA
A and B
/B
Señales d e
control
A
A
S
B
S
B
Co
/A
Co
A xor B; [A+B]
A or B
S[0]
A
Cin
S
B
Co
MUX
14
ALU Bit Slice 2
B[0]
 La célula bit-slice quedaría de la
siguiente forma:
A[0]
Diseño de una ALU
NA
NB
Cin
Full Adder
La función AND proviene
del CarryOut del primer HA
C[1]
HA
HA
Señales d e
control
A and B
/B
La función XOR proviene de
la Suma del primer HA
/A
A xor B
A or B
A+ B
S[0]
MUX
15
Diseño de una ALU
 Varias células bit-slice permiten construir una ALU más compleja:
A[0]
B[0]
Cin
C[3]
B[0]
A[0]
B[1]
A[1]
ALU
ALU
ALU
ALU
S[2]
S[1]
S[0]
Co
C[1]
C[2]
S[3]
ALU en arquitectura paralela
de tipo Carry Ripple
B[2]
Control
A[2]
ALU
Bit Slice
A[3]
S[0]
B[3]
C[1]
Célula ALU
C[1]
Control
ALU 4 bits
¿Qué debemos agregar para obtener los bits de Overflow, Negativo, Zero?
16
La ALU
 Otro tipo de célula que se puede emplear es a base
de multiplexores:
17
La ALU
Partes de la ALU:
 Sumador/restador rápido
 Operadores lógicos (AND, OR, XOR, NOT)
 Un acumulador y un registro auxiliar
 Un registro de salida
 Señales de control que indiquen la operación a
realizar
 Registro de banderas de estatus
La ALU
 La ALU deberá contar con un circuito de control que le
permita:
 Identificar la operación a realizar
 Administrar los recursos internos de la ALU que requiera la
operación
 Generar las banderas de estatus
Microprocesador
 Es el corazón de toda computadora, así como de otros equipos
electrónicos que requieren de una central de procesamiento de
datos.
 Al microprocesador se le conoce también como CPU (Central
Processing Unit).
 La CPU es un elemento capaz de realizar operaciones lógicas y
aritméticas además de poder auxiliar en la toma de decisiones.
 También permite el intercambio de datos entre localidades de
memorias y/o periféricos.
20
Microprocesador
 Un Microprocesador, como su nombre lo indica es un elemento muy
pequeño que puede procesar información.
 Este elemento se construye mediante procesos de alta integración o
VLSI.
21
¿Dónde podemos encontrarlos?
 Existen una gran variedad de aplicaciones a base de
procesadores:
22
Arquitectura de una PC
 Componentes:
 Los bloques funcionales básicos son: la unidad de procesamiento central (CPU), la
memoria principal, y el procesador de Entrada - Salida.
 La CPU es el componente mas importante ya que permite el procesamiento de la
información, la gestión de la memoria y de los puertos de comunicación.
Arquitectura de una PC
 Unidad de procesamiento central:
 Es la responsable de la interpretación y ejecución de las instrucciones contenidas
en la memoria principal.
 El direccionamiento a la memoria se realiza por medio del bus de direcciones y el
bus de datos.
 La acción de leer una instrucción y prepararla para su ejecución se llama “ciclo de
búsqueda”.
Arquitectura de una PC
 Para completar la instrucción, la CPU:
 decodifica el código de operación,
 genera las señales de control para leer los operandos de entrada de la ALU
 Controla la ejecución de la instrucción
 La CPU controla también las operaciones de la ALU.
 El proceso de realización que especifica una función se denomina “ciclo de
ejecución”.
 Al proceso completo “ciclo de búsqueda” mas “ciclo de ejecución” se le
llama “ciclo máquina”.
Arquitectura de una PC
 La CPU puede dividirse funcionalmente en 3
subunidades:
➢La unidad de control, dedicada a los ciclos de
búsqueda y ejecución,
➢La ALU que desempeña funciones aritméticas como
por ejemplo, suma y resta, y de lógica por ejemplo
AND, OR,
➢Y un conjunto de registros dedicados al
almacenamiento de datos en la CPU y a ciertas
funciones de control
Arquitectura de una PC
Registros de operación
PC
MAR
MDR
IR
PSW
OR
NOR
AND
NAND
Desplazamiento
Rotación
Reg. a Reg.
Reg. a Mem.
Mem. A reg.
Mem a mem.
Operaciones Básicas
Intercambio de datos
Reg. estados y control
Reg. De información
Control
Arquitectura de una PC
 La CPU contiene un conjunto de localidades de almacenamiento
temporal de datos de alta velocidad llamada registro. Algunos de
los registros están dedicados al control, y solo la unidad de control
tiene acceso a ellos. Los registros restantes son los registros de
uso general y el programador es el usuario que tiene acceso a
ellos.
➢Contador de programa (PC).
➢Registro de direcciones de la memoria (MAR).
➢Registro de datos (RD).
➢Registro de instrucciones (ER).
➢Palabra de estado de programa (PSW).
Arquitectura de una PC
 Apuntador de programa (PC): La función del PC consiste en
seguir la pista de la instrucción por buscar (capturar) en el
siguiente ciclo de maquina, por lo tanto contiene la dirección
de la siguiente instrucción por ejecutar.
 El PC es modificado dentro del ciclo de búsqueda de la
instrucción actual mediante la suma de una constante. El
numero que se agrega al PC es la longitud de una
instrucción.
Arquitectura de una PC
 Registro de direcciones de la memoria (MAR): funciona
como registro de enlace entre la CPU y el registro de
direcciones. Cuando se logra el acceso a la memoria la
dirección es colocada en el MAR por la unidad de control y
ahí permanece hasta que se completa la transacción. El
numero de bits que hay en el MAR es igual al del registro de
direcciones.
 Durante el ciclo de ejecución de una instrucción, el PC y el
MAR sirven al mismo fin. Sin embargo, muchas de las
instrucciones de la maquina hacen referencia a la memoria y
operan con los datos que están en ella (dato). Como la
dirección de los datos suele ser diferente de la instrucción
siguiente se necesita el MAR.
Arquitectura de una PC
 Registro de datos (RD): la función del RD consiste en proporcionar
un área de almacenamiento temporal (memoria intermedia,
acumulada o buffer) de datos que se intercambian entre la CPU y
la memoria.
 Los datos pueden ser instrucciones (obtenidas en el ciclo de
ejecución) o datos del operando (obtenidos en el ciclo de
ejecución). Debido a su conexión directa con el bus de datos el RD
contiene el mismo numero de bit que dicho bus.
Arquitectura de una PC
 Registro de instrucciones (ER): es un registro que
conserva el código de operación de la instrucción en
todo el ciclo de la maquina.
 El código es empleado por la CPU para generar las
señales apropiadas que controlan la ejecución de la
instrucción. La longitud del ER es igual a la del código de
operación.
Arquitectura de una PC
 Palabra de estado de programa (PSW): almacena información pertinente sobre
el programa que este ejecutándose. Por ejemplo al completarse una función de
la unidad aritmética lógica se modifica un conjunto de bit llamados códigos
(señales de condición ó banderas).
 El programa puede verificar estos bits en las instrucciones siguientes cambiar
en forma condicional su flujo de control según su valor.
 Además el PSW contiene bits que hacen posible que la computadora responda
a solicitudes de servicio asincrónicas generadas por dispositivos de EntradaSalida, o condiciones de error interno. Estas señales se denominan
interrupciones.
Arquitectura de una PC
 Tipo de instrucciones. Las instrucciones pueden clasificarse en 5
categorías:





Instrucciones de aritmética y lógica.
Instrucciones de movimientos de datos.
Operaciones de datos en bloques.
Instrucciones de control del programa.
Instrucciones de Entrada - Salida.
Arquitectura de una PC
 Instrucciones de Aritmética y Lógica:
 Operaciones binarias, las cuales requieren dos operandos y producen un
resultado único.
 La suma, la resta, la multiplicación y división, son operaciones standard en
la mayor parte de las maquinas.
 Las operaciones de lógica incluida en el conjunto de instrucciones son las
operaciones AND, NAND, NOR, XAND, XOR.
 También dentro de las instrucciones de aritmética y lógica se encuentran
las operaciones de desplazamiento y las de rotación.
Arquitectura de una PC
 Instrucciones de movimientos de datos: Esta instrucción da por
resultados la copia de datos desde una localidad de operando a otra,
estas instrucciones requieren información que identifique los
operandos fuentes y destinos. En una computadora de uso general,
los datos se pueden mover de:




Registro a registro.
Registro a memoria.
Memoria a registro.
Memoria a memoria.
Arquitectura de una PC
 Operaciones de datos en bloques: Son aquellas que se efectúan con un
conjunto de operandos y no con un solo operando.
 También dentro de este tipo de instrucción se encuentran las de control del
programa. Esto hace posible que un programa se adapte a la secuencia
inherente al ciclo de maquina de la computadora. En otras palabras, se
pueden pasar por alto secciones de instrucciones como resultado de la
activación de un código de condiciones o como resultado directo del diseño
del programa.
Arquitectura de una PC
 Instrucciones de Entrada – salida: Desde el punto de vista de la
programación para el acceso a la memoria o a un periférico
simplemente se requiere el mismo conjunto de instrucciones. Estos
sistemas se denominan sistemas de Entrada - Salida mapeados por
memoria.
 El dispositivo se caracteriza como un conjunto de localidades de la
memoria que se dividen en dos subcategorias: un conjunto de
registro de estado de control y un registro de información.
Arquitectura de una PC
 Registro de estado y control. Contienen información acerca del estado
inactivo, ocupado, etc. En estos registros también se almacena
información de control (tipo de paridad y la velocidad de transmisión de
los datos).
 La información contenida en los registros de estado y control se utiliza
principalmente para proporcionar una imagen global del hardware.
 Registro de información: Constituyen una memoria intermedia para la
información que se transfiere entre la CPU y el periférico.
Arquitectura de una PC
 Un sistema operativo es un conjunto de programas que hace posible que el
usuario tenga acceso controlado a sus recursos, tales como la CPU, la memoria
y los dispositivos de Entrada - Salida.
 El sistema operativo asigna tiempo a la CPU, distribuye el espacio disponible
en la memoria, asigna y controla dispositivos de Entrada - Salida para cada
usuario. Estas funciones se realizan en forma transparente, es decir que el
programador escribe el programa como si todo el sistema de la computadora
estuviere dedicado a ese programa.
 Para ofrecer algunas características del sistema operativo la arquitectura de la
maquina debe tener por lo menos 2 modos de operación diferentes: modo de
supervisión y modo del usuario.
Arquitectura de una PC
 En modo del supervisor, la CPU puede ejecutar todas las instrucciones de
la maquina. Este es el modo de operación en el cual corren los programas
de los distintos sistemas operativos. Todas las peticiones de servicio de los
dispositivos periféricos pasan por el sistema operativo ya que las
instrucciones de Entrada - Salida, solamente pueden emitirse cuando la
maquina se encuentra en modo supervisor.
 En modo usuario, la CPU no puede ejecutar todo el conjunto de
instrucciones (en particular no se permite la ejecución de las instrucciones
de control de la maquina y de Entrada – Salida).
Arquitectura de una PC
 Un sistema a base de una CPU se compone de 2 tipos de memoria:
Memoria de programa (ROM) y memoria de datos (RAM).
Arquitectura de una PC
Arquitectura de una PC
 La distribución de la memoria dentro de la computadora se suele
denominar mapa de memoria y en el es posible observar en que zona se
encuentran ubicados los registros y programas del sistema operativo.
 Independientemente de la disponibilidad de memoria, el limite real de
direccionamiento va a estar dado por el sistema operativo que se esta
usando, por ejemplo el sistema operativo D.O.S. independientemente de la
memoria instalada puede direccionar como área de trabajo 640 Kb.
Arquitectura de una PC
 Mapa de memoria:
Arquitectura de una PC
 Los dispositivos de Entrada-Salida solo comprenden uno de los cuatro
componentes principales de una computadora, sin embargo las ramificaciones
de Entrada-Salida extienden esta simple representación y pueden tratarse en
varios niveles diferentes. Las propiedades físicas y eléctricas de los
dispositivos, la interfaz o controlador con que interactúa el procesador central
y el apoyo de software del sistema operativo en uso.
 La unidad de Entrada-Salida puede contar en realidad de muchas interfaces o
controladores, incluir un procesador de Entrada - Salida de uso especial pero
manejado por la CPU o ambas cosas.
Arquitectura de una PC
 Cuatro clases principales de técnicas se aplican
comúnmente en forma individual o combinada para
controlar la transferencia de datos de Entrada - Salida:
 1.- Entrada – Salida controlada por programa
 2.- Entrada – Salida por interrupciones
 3.- Acceso directo a memoria (DMA)
 4.- Entrada – Salida mapeada por direcciones
Arquitectura de una PC
 El medio por el cual los dispositivos de E/S tienen acceso al CPU y al resto
de los elementos internos es el canal (bus) de Entrada – Salida común.
CPU
Memoria
Vídeo
Almacenamiento
Dispositivos de
ENTRADA - SALIDA
RISC y CISC
 RISC : Reduced Instruction Set Computer.
 Juego de instrucciones reducido o simplificado
 Estructura pipeline (Ejecuta una instrucción mientras
decodifica la siguiente).
 Un ciclo máquina por instrucción.
 CISC : Complex Instruction Set Computer.
 Juego de instrucciones complejo.
 Estructura tipo pipeline y paralela (ejectura en una sola
instrucción CISC varias RISC).
 Dos o mas instrucciones por ciclo máquina
EDIA/Mecatrónica/ADGG/2014
49
Arquitectura de una CPU
 En este canal se interconectan dispositivos de E/S, la CPU y la memoria
principal. Las funciones principales del canal de E/S hace posible que
múltiples dispositivos:
 1) Transfieren información por trayectorias de datos comunes
compartiendo y reduciendo la complejidad del hardware.
 2) Se agregan o desmontan dispositivos simplemente enchufando o
desenchufando sus cables (plug and play).
 3) Se enlaza a un mecanismo el canal de E/S empleando especificaciones
lógicas, eléctricas y físicas estandarizadas.
Arquitectura Von Neuman
 La mayoría de los microprocesadores actuales son
basados en esta arquitectura.
 La memoria de programa tiene datos e instrucciones
mezclados.
 Sólo hay un bus para transmitir datos e instrucciones.
 Las instrucciones están codificadas en palabras en
base hexadecimal.
EDIA/Mecatrónica/ADGG/2014
51
Arquitectura Von Neumann
ROM
CPU
RAM
Datos/instrucciones
EPROM
Registros
De
Status
Direcciones
Puertos E/S
EDIA/Mecatrónica/ADGG/2014
52
Arquitectura Von Neumann
 Características principales:
Ciclo de
recuperación de
instrucción
Memoria
Programa
Instrucción
Instrucción 0
Unidad de control
Instrucción
Instrucción 1
Instrucción 2
Instrucción 4
Trayectoria
de datos
Unidad central de
procesamiento
Salida
Entrada
Instrucción 3
Instrucción 5
Envío de datos
Datos
Dato 0
Dato1
Recepción de
datos
Dato2
Arquitectura Von Neumann
 La velocidad de la máquina bajo este modelo se calcula de la forma
siguiente:
tinstruccion  tIF  tID  tEX  tS




tIF es el tiempo de Fetch
tID es el tiempo de decodificación
tEX es el tiempo de ejecución
tS es el tiempo de almacenamiento
Arquitectura Von Neumann
F=x+y
 Niveles de lenguajes
de programación:
Programa
en lenguaje
de alto
nivel
G=w-z
Si (f==g)
entonces
resultado=2*
x
Además
resultado=6*
w
Lenguaje
ensamblador
Add R3, R2, R5
Compilador
Sub R7, R18, R7
Beq R3, R7,
Ox60a5
Lenguaje de
máquina a la
computadora
Arquitectura Von Neumann
 Operación Fetch o de lectura de programa:
Memoria
Contador de programa (PC)
Dirección
Incremento
+4
Registro de instrucciones (IR)
Salida de datos
Arquitectura Von Neumann
 Arquitectura de la CPU:
Unidad de control
Registro de instrucción
Lógica de control
Registro de selección
de salida
Registro de selección
de entrada
Selección
de función
Archivo de registros
Memoria
local
A
B
Control
ALU
Arquitectura Von Neumann
 La arquitectura Von Neumann tiene un solo bus de
datos e instrucciones:
Arquitectura Harvard
 Datos e instrucciones están claramente diferenciados.
 Emplean buses y dispositivos de memoria diferentes.
 Es mas rápido que la máquina de Von Neumann
 Las instrucciones siguen codificadas.
EDIA/Mecatrónica/ADGG/2014
59
Arquitectura Harvard
Puertos E/S
EPROM
Instrucciones
Deco de
Instrucciones Direcciones
CPU
Datos
EDIA/Mecatrónica/ADGG/2014
ROM
RAM
60
Arquitectura Harvard
 El modelo Harvard dispone de dos memorias:
 Memoria de datos
 Memoria de Programa
 Además cada memoria dispone de su respectivo bus, lo
que permite, que la CPU pueda acceder de forma
independiente y simultánea a la memoria de datos y a
la de instrucciones. Como los buses son independientes
éstos pueden tener distintos contenidos en la misma
dirección.
Arquitectura Harvard
 Arquitectura:
Procesador Segmentado
 Procesador segmentado "pipe-line": quiere decir que
aplica la técnica de segmentación que permite al
procesador realizar simultáneamente la ejecución de
una instrucción y la búsqueda de código de la siguiente.
 De esta manera, se puede ejecutar una instrucción en
un ciclo. (Cada ciclo de instrucción son cuatro ciclos de
reloj).
Procesador Segmentado
 Cronograma:
Procesador Segmentado
 Ciclos de trabajo:
Ejemplo:
1. MOVLW
55h
2 .MOVWF
PORTB
3.
CALL
SUB_1
4.
BSF
PORTA,BIT
3
Búsqueda 1
Ejecuta
1
Búsqued
a2
Ejecuta
2
Búsqued
a3
Ejecuta 3
Busqued
a4
Salir
Busqueda
SUB_1
Ejecuta
SUB_1
Arquitectura a base de bancos
 Arquitectura basada en banco de registros: Implica que todos los
elementos del sistema, es decir, temporizadores, puertos de
entrada/salida, posiciones de memoria, etc, están implementados
físicamente como registros.
 En los PIC el manejo del banco de registros, que participan activamente
en la ejecución de las instrucciones, es muy interesante al ser
ortogonales. En la figura siguiente se muestra como la ALU (Unidad
Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que
proviene del registro W (Work), que en otras CPUs recibe el nombre de
Acumulador, y el otro que se encuentra en cualquier otro registro o del
propio código de instrucción.
Arquitectura a base de registros
Arquitectura
A
X
Md
shiftout
8
SHIFTER
CC
logic
Opcode
ALU
control
9
alu
9
ALU
Op1
Op2
8
8
MUX1
MUX2
A X Md 0
CC
R
Md
0
Arquitectura
alu9
And2
Cin
Or2
ADDER and logic operations
xOr2
Op1_com
com1
complementer
Op1
Op2_com
com2
complementer
Op2
Descargar