Professional Documents
Culture Documents
1. Arquitecturas de cómputo
Arquitectura de Computadoras
Ingeniería en Sistemas Computacionales
51mvhw
Arquitectura de Computadoras
Temario
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo.
1.2 Análisis de los componentes.
1.2.1 CPU.
1.2.2 Memoria.
1.2.3 Manejo de la entrada/salida.
1.2.4 Buses
1.2.5. Interrupciones
1
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Computadora
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Caracterís)cas
q Habilidad para realizar operaciones aritmé3cas y lógicas.
2
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Caracterís)cas
q Habilidad para realizar operaciones aritmé3cas y lógicas.
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Funciones básicas:
q Procesamiento de datos
q Almacenamiento de datos
q Transferencia de datos
q Control
3
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Funciones básicas:
q La computadora es una en/dad que interactúa de alguna manera con
su entorno externo.
1. Arquitecturas de cómputo
Flujo de información en el CPU
1.1 Modelos de arquitecturas de cómputo
Flujo de información
Control Resultados
en el CPU:
Subsistema
de Memoria
Códigos de Datos
Operación
Estado
Unidad de Control Unidad Lógica
Control Aritmética
4
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Jerarquía de un Computadora
Sistema de Computo:
Subsistema de
Procesador Entrada / Salida
Subsistema de
CPU
Memoria
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Componentes de una Computadora
q Unidad Central de Procesamiento (CPU):
§ Controla el funcionamiento de la computadora y lleva a cabo las funciones
de procesamiento de datos. (Procesador).
q Memoria Principal:
§ Almacena datos.
q Subsistema de E/S:
§ transfiere datos entre la computadora y el exterior.
10
5
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
11
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
6
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
13
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitectura de Computadoras Organización de Computadoras
14
7
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
15
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
16
8
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
q Consiste en una unidad central de proceso que se comunica a través de un solo bus
con un banco de memoria en donde se almacenan tanto los códigos de instrucción
del programa, como los datos que serán procesados por este.
17
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
18
9
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
1.1.1 Modelos
1. Arquitecturas de arquitectura de
de cómputo
computo
1.1 Modelos de arquitecturas clásicas
de cómputo
Arquitectura Mauchly-Eckert (VonNewman)
Arquitectura de computo clásicas.
Concepto de programa almacenado
Arquitectura VonNewman
ALU
20
10
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitectura VonNewman
q Registro Temporal de Memoria
Buffer (MBR): Con$ene una
palabra que debe ser almacenada
en memoria, o recibe una palabra
procedente de la memoria.
22
11
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitectura VonNewman
q Registro de Instrucción (IR):
Con$ene el código de operación
de la instrucción que se va a
ejecutar.
q Registro de Dirección de
Memoria (MAR): Especifica la
dirección de memoria de la
palabra que va a ser escrita o leída
en MBR.
23
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitectura VonNewman
q Contador de Programa (PC):
Con$ene la dirección de la
siguiente pareja de instrucciones
que se traerán de memoria.
24
12
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
26
13
arquitectura se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la
misma unidad de memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se
encuentran almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la 16/11/18
computadora y dio origen a las computadoras de propósito general
Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética
(A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del
procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y
lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones,
decodificarlas y hacer que la ALU las ejecute.
1. Arquitecturas
Arquitectura Harvard de cómputo
Bus de Bus de
programa Procesador datos
Memoria de datos
Unidad de
Memoria de Control
programa
ALU
1. Arquitecturas de
1.1.2 Arquitecturas cómputo
Segmentadas.
1.1 Modelos de arquitecturas
Las arquitecturas de cómputo
segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando
paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias
unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para
Arquitectura de computo clásicas.
Arquitectura Harvard
q El tener un bus para el programa y otro para los datos, permite que se lea el código de operación de
una instrucción, al mismo 7empo que se lee de la memoria de datos los operados de la instrucción
previa.
q Así se evita el problema del cuello de botella de Von Newman y se ob7ene un mejor desempeño.
28
14
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q Otra aportación frecuente que aumenta el rendimiento del
computador es el fomento del paralelismo implícito, que consiste en la
segmentación del procesador (pipe-line), descomponiéndolo en etapas
para poder procesar una instrucción diferente en cada una de ellas y
trabajar con varias a la vez.
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q El procesador se divide en varias unidades funcionales independientes
y se dividen entre ellas el procesamiento de las instrucciones.
q Supongamos que un procesador simple 8ene un ciclo de instrucción
sencillo, consistente solamente en una etapa de búsqueda del código
de instrucción y en otra etapa de ejecución de la instrucción.
q En un procesador sin segmentación del flujo, las dos etapas se
realizarían de manera secuencial para cada una de la instrucciones.
B1 E1 B2 E2 B3 E3
30
15
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q En un procesador con segmentación del flujo, cada una de estas etapas se
asigna a una unidad funcional diferente,
§ la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución.
q Las unidades pueden trabajar en forma paralela en instrucciones diferentes.
q Se comunican por medio de una cola de instrucciones en la que la unidad de
búsqueda coloca los códigos de instrucción que leyó para que la unidad de
ejecución los tome de la cola y los ejecute.
q Esta cola se parece a un tubo donde las instrucciones entran por un extremo
y salen por el otro.
q De esta analogía proviene el nombre en ingles: Pipelining.
31
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q De esta analogía proviene el nombre en ingles: Pipelining.
Unidad de Unidad de
Cola de Instrucciones
Búsqueda Búsqueda
16
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q En un procesador con segmentación, la unidad de búsqueda
comenzaría buscando el código de la primera instrucción en el primer
ciclo de reloj.
q Durante el segundo ciclo de reloj, la unidad de búsqueda obtendría el
código de la instrucción 2, mientras que la unidad de ejecución ejecuta
la instrucción 1 y así sucesivamente.
B1 B2 B3 B4 Unidad de búsqueda
E1 E2 E3 Unidad de ejecución
33
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q La mejora en el rendimiento no es proporcional al numero de
segmentos debido a que cada etapa no toma el mismo .empo en
realizarse, además de que se puede presentar competencia por el uso
de algunos recursos como la memoria principal.
17
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
Espera Espera
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q La arquitectura pipe-line se aplica en dos lugares de la maquina, en la
CPU y en la ALU
18
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas Segmentadas.
q Pipelines gráficos, se encuentran en la mayoría de las tarjetas gráficas,
consiste en múl6ples unidades aritmé6cas o CPUs completas, que
implementan variados escenarios de operaciones >picas de
renderizado, por ejemplo, cálculos de luz y colores, renderizado,
proyección de perspec6va.
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
q Cuando se desea incrementar el desempeño más allá de lo que permite
la técnica de segmentación del flujo, se requiere u:lizar más de un
procesador para la ejecución de un programa de aplicación.
19
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
q Procesadores vectoriales – Son computadoras pensadas para aplicar
un mismo algoritmo numérico a una serie de datos matriciales, en
especial en la simulación de sistemas 6sicos complejos.
§ La mayoría de los procesadores modernos incluye algunas instrucciones de <po
vectorial, tales como las extensiones MMX, SSE
q Procesadores Digitales de Señales (DSP), son procesadores
especializados en el procesamiento de señales tales como audio, video,
radar, sonar, radio, etc. Cuentan con instrucciones <po vectorial que los
hace muy aptos para dicha aplicación
39
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
Sistemas SMP
q En los sistemas SMP (Simetric Mul,procesesors), varios procesadores
comparten la misma memoria principal y periféricos de I/O.
20
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
Sistemas SMP
q Pueden formarse con varios núcleos en un solo circuito integrado o con
varios circuitos integrados en una misma tarjeta madre.
§ La primera opción ha sido popularizada al hacerse más económicos los
procesadores mul<núcleo de los principales fabricantes y con su uso en sistemas
de gama media y baja, e inclusive en teléfonos celulares y tabletas.
41
1. ArquitecturasSistemas
de cómputo
SMP
1.1 Modelos de arquitecturas de cómputo
Sistemas SMP (Simetric Multi Procesesors) –
Varios procesadores comparten la misma me-
Arquitecturas de mul.procesamiento.
moria principal y periféricos de I/O, Normal-
Sistemas SMP
mente conectados por un bus común
BUS Común
Memoria
42
21
16/11/18
Arquitecturas de mul.procesamiento.
Procesador Procesador Procesador Procesador
BUS Común
q Dicho bus es un recurso de uso común. Por tanto, debe ser arbitrado
para que solamente un microprocesador lo use en cada instante de
7empo.
22
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
Clusters
q Son conjuntos de computadoras independientes conectadas en una red de área local o por
un bus de interconexión y que trabajan coopera8vamente para resolver un problema.
q Este 8po de computadora paralela se ha vuelto muy popular por que permite usar los
avances en los procesadores comerciales que 8enen una muy buena relación costo
rendimiento y se puede incorporar rápidamente los avances que proporciona las nuevas
tecnologías en cuanto es económicamente viable.
45
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento. Clusters
Clusters
Conjuntos de computadoras independientes conec-
q Se debe tener cuidado al implementar
tadas en una red la
deaplicación,
área localyao que si los
por un busdatos que hay que
de inter-
pasar de un procesador a otro son demasiados, el 7empo empleado en pasar
información de un nodo conexión y que sobrepasar
a otro puede trabajan cooperativamente
a la ganancia que para re- al
se 7ene
dividir el trabajo entresolver
variosun problema
procesadores.
Red de Interconexión
46
23
16/11/18
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
Procesadores Gráficos
q Por la gran can8dad de núcleos con los que cuenta, logran un excelente
desempeño al ejecutar algoritmos que se adaptan a ser paralelizados.
47
Host
1.2.1 CPU.
24
1.2.1.1 Arquitecturas.
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
q Ademas de las arquitecturas clásicas mencionadas, en la actualidad han
aparecido arquitecturas híbridas entre la Von Newman y la Harvard,
buscando conservar la flexibilidad, pero mejorando el rendimiento.
q Uno de los cambios más importante de los úl?mos años en diseño de las
computadoras se dio durante los años 1980s, con la aparición del diseño
conocida como computadoras de conjunto reducido de instrucciones (RISC,
por sus siglas en ingles).
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
q Las arquitecturas CISC (Complex Instruc0on Set Computers) se caracterizan
por tener un número amplio de instrucciones y modos de direccionamiento.
q El número de registros del CPU es limitado, ya que las compuertas lógicas del
circuito integrado se emplean para implementar las secuencias de control de
estas instrucciones especiales.
50
25
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
q La tendencia en programacion era ya no se programar en ensamblador,
sino en lenguajes de alto nivel, como C.
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
q Así surgió el diseño RISC (Reduced Instruc,on Set Computers) donde solo se
cuenta con unas pocas instrucciones y modos de direccionamiento, pero
busca implementarlos de forma muy eficiente y que todas las instrucciones
trabajen con todos los modos de direccionamiento.
q Se observó que una de las tareas que tomaban más Bempo en ejecutarse en
lenguajes de alto nivel, era el pasar los parámetros a las subruBnas a través
de la pila.
q Como la forma más rápida de hacer este paso es por medio de registros del
CPU, se busco dotarlo con un amplio número de registros, a través de los
cuales se pueden pasar dichos parámetros.
52
26
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
Tipos
q Los CPUs modernos pueden clasificarse de acuerdo a varias
caracterís7cas, tales como:
§ el tamaño del ALU o del Bus de conexión al exterior (8, 16, 32, 64 bits),
§ si 7enen cauce segmentado o no segmentado,
§ 7po CISC o RISC,
§ Tipo de arquitectura: Von Newan o Harvard
§ si solo 7enen instrucciones con enteros o implementan también instrucciones de
punto flotante
53
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
Caracterís)cas
q Las caracterís*cas más importantes a considerar al elegir un CPU para
usarlo en una aplicación, son:
§ Modelo del programador, conjunto de registros que el programador puede
u*lizar.
§ Conjunto de instrucciones que puede ejecutar el CPU
§ Modos de direccionamiento que pueden usarse para obtener los operandos de
las instrucciones.
§ Ciclo de instrucción, el conjunto de pasos que realiza el CPU para procesar cada
instrucción.
§ Buses de interconexión, usados para que el CPU lea y escriba a la memoria y a los
disposi*vos de entrada y salida.
54
27
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
Funcionamiento
q Todos los CPU 'enen como función principal la ejecución de un
programa acorde a la aplicación del mismo.
55
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
Funcionamiento
q Etapas de ejecución de instrucciones:
1-Búsqueda del código de Instrucción. Leer de la memoria cual será la siguiente instrucción
a ejecutar, almacenada en forma de un código numérico, indica cual es la operación y que
operandos se ejecutara el CPU.
3- Ejecución. En esta etapa se lleva a cabo la operación sobre los datos. La unidad de
control (CU) genera las señales de control necesarias para llevar los datos a las entradas de
la ALU, la cual efectuará las operaciones aritmé4cas y lógicas.
Posteriormente, la unidad de control generará las señales de control necesarias para
transferir la salida de la ALU al registro donde serán almacenados los resultados.
56
28
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU.
Funcionamiento
q Etapas de ejecución de instrucciones:
1-Búsqueda del código de Instrucción. Leer de la memoria cual será la siguiente instrucción
a ejecutar, almacenada en forma de un código numérico, indica cual es la operación y que
operandos se ejecutara el CPU.
yoría de los CPUs. Este CPU es similar a las primeras computadoras existentes en los años 1950s
asado en el diseño explicado 2-en Decodificación.
Mano, M. Morris.Toma el códigodenumérico
Arquitectura e idenAfica
computadoras. Pearsona cual de las operaciones
1994).
corresponde dicho código.
a computadora contara con una memoria de 4096 palabras de 16 bits cada una. Esto corresponde a
bus de direcciones de 12 bits3-y Ejecución.
un bus de datos de 16
En esta bits).seEnlleva
etapa cadaa localidad de memoria
cabo la operación se podrá
sobre los datos. La unidad de
macenar un entero de 16 bits ocontrol
el código
(CU)degenera
una instrucción,
las señales también de 16necesarias
de control bits. para llevar los datos a las entradas de
dos los CPU tienen como funciónla ALU, la cuallaefectuará
principal ejecuciónlas deoperaciones
un programaaritmé4cas y lógicas. del
acorde a la aplicación
smo. Un programa es un conjunto de instrucciones almacenadas de acuerdo al orden en quede
Posteriormente, la unidad de control generará las señales control necesarias para
deben
cutarse. Por lo tanto, toda computadora debe ser capaz de procesar las instrucciones de su programalos resultados.
transferir la salida de la ALU al registro donde serán almacenados
un ciclo de instrucción, consistente en un número de etapas que varia con cada CPU, pero que 57
dicionalmente han sido tres:
Búsqueda del código de Instrucción. Esta consiste en leer de la memoria cual será la siguiente
trucción a ejecutar, la cual esta almacenada en forma de un código numérico que indica cual de todas
operaciones que puede realizar el CPU sera la siguiente y con que operandos se ejecutara.
Decodificación. Consiste en tomar el código numérico e identificar a cual de las operaciones que
ede realizar el CPU corresponde dicho código. El proceso contrario, la codificación, consiste en
1. Arquitecturas de cómputo
nociendo la instrucción, determinar el número que la va a representar. Esta etapa usualmente se
liza con un decodificador binario.
Ejecución. En esta etapa 1.2 Análisis
se lleva de los componentes
a cabo la operación sobre los datos que se vallan a procesar. En
neral, la unidad de control (CU) genera las señales de control necesarias para llevar los datos a las
CPU.Lógica, la cual efectuará las operaciones aritméticas y lógicas.
radas de la Unidad Aritmética
steriormente, la unidad de control generara las señales de control necesarias para transferir la salida
Funcionamiento
la Unidad Aritmética Lógica al registro donde serán almacenados los resultados■paraCada instrucción del programa se
su uso
terior. q Etapas de ejecución almacena en memoria como un
número binario.
importante recordar que cada instrucción del programa se almacena en memoria como un número
ario. Este número se conoce como código de instrucción, y usualmente se divide en al menos dos
mpos: un código de operación (Opcode) y un número que representa al operando u operandos de la
trucción. En el caso de la computadora imaginaria que estamos estudiando, se almacena cada
29
trucción en una de las 4096 palabras de memoria de 16 bits cada una. Se utiliza un formato de un
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Código de Operación
0h
Instrucción
LOAD (Carga)
Operación
ACC<-[M]
q Código de instrucciones
2h ADD (Suma) ACC<-ACC+[M]
3h ADC (Suma con Acarreo) ACC<-ACC+[M]+C
4h SUB (Resta) ACC<-ACC+-M]
5h OR (Or Bit a Bit) ACC<-ACC or [M]
6h AND (And bit a Bit) ACC<-ACC and [M]
7h XOR (Xor Bit a Bit) ACC<-ACC xor [M]
Código de Instrucción
8h SHL (Corrimiento a la Izquierda) ACC<-ACC << 1
9h SHR (Corrimiento a la derecha) ACC<-ACC >> 1
Operación Operando 1 Operando 2
Ah BRA Bifurcación o salto PC<-M
Bh BRZ (Bifurca si es Cero) Si Z==1 => PC<-M
Operando único Ch BRC (Bifurca si hay Acarreo) Si C==1 => PC<-M
Dh BRO (Bifurca si hay Sobreflujo) Si O==1 => PC<-M
Codigo de Operación
Eh LDI (Carga Constante Inmediata) ACC <-[PC]; PC<-PC+1
Figura 1.2.1.4.2 Codificación de las instrucciones Fh STOP Detener la ejecución
1. Arquitecturas de cómputo
7h XOR (Xor Bit a Bit) ACC<-ACC xor [M]
8h SHL (Corrimiento a la Izquierda) ACC<-ACC << 1
30
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento
Búsqueda
q Partes del CPU
§ Flags – Registro de Banderas, agrupa a todas las banderas de la ALU en un
registro, en el caso de nuestra computadora imaginaria, las banderas disponibles
serán:
• Z – Bandera de Cero, se pone en uno cuando todos los bits del resultado son cero;
• O – Sobreflujo, se pone en uno cuando el resultado de la ulCma operación se sale de el
rango de los números de 16 bits con signo;
• C – Acarreo, se enciende cuando el resultado de la ulCma operación se sale del rengo de los
números de 16 bits sin signo.
61
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
datos.
PC – (Program Counter) El contador de programa almacena la dirección de la siguiente instrucción a
CPU. Funcionamiento
buscar. Por esta razón también es conocido como apuntador de instrucciones.
IR - Registro de instrucción, guarda el código de la instrucción que se esta ejecutando.
Flags – Registro de Banderas, agrupa a todas las banderas de la ALU en un registro, en el caso de
Búsqueda ■ El registro PC con1ene la dirección de
nuestra computadora imaginaria, las banderas disponibles serán: Z – Bandera de Cero, se pone en uno
cuando todos los bits del resultado son cero; O – Sobreflujo, se pone en uno cuando el resultado de la
memoria que con1ene el código de la
q Partes del CPU
ultima operación se sale de el rango de los números de 16 bits con signo; C – Acarreo, se enciende
cuando el resultado de la ultima operación se sale del rengo de los números de 16 bits sin signo.
siguiente instrucción a ejecutar.
Contenido Dir.
■ La etapa de búsqueda consiste básicamente
Banderas
XXXXh
XXXXh
000h
001h
en leer este código y almacenarlo en el
registro IR para su posterior uso en las
MAR
2023h 002h
4024h 003h
etapas de decodificación y ejecución, el
Acumulador
BUS ...
PC XXXXh 022h
contenido de PC se copia al MAR para poder
MBR
1234h 023h
IR 4567h 024h leer esa localidad de memoria.
...
XXXXh FFFh
■ Se lee la memoria y el resultado de dicha
CPU
lectura se copia del MBR al IR.
Memoria
Figura 1.2.1.4.2 Diagrama a bloques del CPU a estudiar 62
Como se explico anteriormente, el funcionamiento del CPU se basa en los pasos del ciclo de
instrucción, consistentes en búsqueda, decodificación y ejecución de la instrucción. Comenzaremos
revisando los pasos correspondientes a la búsqueda de la instrucción.
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
datos.
PC – (Program Counter) El contador de programa almacena la dirección de la siguiente instrucción a
CPU. Funcionamiento
buscar. Por esta razón también es conocido como apuntador de instrucciones.
IR - Registro de instrucción, guarda el código de la instrucción que se esta ejecutando.
Flags – Registro de Banderas, agrupa a todas las banderas de la ALU en un registro, en el caso de
Búsqueda ■ Se incrementa el PC para que en el siguiente
nuestra computadora imaginaria, las banderas disponibles serán: Z – Bandera de Cero, se pone en uno
cuando todos los bits del resultado son cero; O – Sobreflujo, se pone en uno cuando el resultado de la
ciclo de instrucción se lea la instrucción de la
q Partes del CPU
ultima operación se sale de el rango de los números de 16 bits con signo; C – Acarreo, se enciende
cuando el resultado de la ultima operación se sale del rengo de los números de 16 bits sin signo.
localidad de memoria consecu6va.
Contenido Dir.
Banderas
XXXXh 000h ■ Resumiendo estas operaciones en lenguaje
XXXXh 001h
de transferencia de registros:
MAR
2023h 002h
4024h 003h
MAR ß PC
Acumulador
BUS ...
PC XXXXh 022h
IR ß [MAR]
MBR
1234h 023h
IR 4567h 024h PC ß PC+1
...
XXXXh FFFh
CPU
Memoria
Figura 1.2.1.4.2 Diagrama a bloques del CPU a estudiar 63
Como se explico anteriormente, el funcionamiento del CPU se basa en los pasos del ciclo de
instrucción, consistentes en búsqueda, decodificación y ejecución de la instrucción. Comenzaremos
revisando los pasos correspondientes a la búsqueda de la instrucción.
1. Arquitecturas de cómputo
IR<-[MAR]
PC<-PC+1
En la etapa de decodificación simplemente se separan los códigos de operación de los operandos. Por
CPU. Funcionamiento
En cuanto a la etapa de ejecución, los pasos realizados en esta etapa varían dependiendo del código de
operación leído en la etapa de búsqueda. Por ejemplo, si el código leído es un 0, que corresponde con
Decodificación
q En la etapa de decodificación se separan los códigos de operación de
los operandos.
§ Por ejemplo, la instrucción LOAD 023h se codificaría como 0023h, donde 0h el
código de operación y 023h el operando.
64
32
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento
Ejecución
q Los pasos realizados en esta etapa varían dependiendo del código de
operación leído en la etapa de búsqueda.
§ Por ejemplo, si el código leído es un 0, que corresponde con una instrucción
LOAD, la etapa de ejecución consis=rá en copiar la parte de la dirección del
operando en el registro MAR para poder leer la localidad en donde se encuentra
el operando.
§ Se lee el operando de memoria y el dato leído se copia del MBR al acumulador.
§ Resumiendo dichas operaciones en lenguaje de transferencia de registros se
=ene:
65
mayoría de los CPUs. Este CPU es similar a las primeras computadoras existentes en los años 1950s
(Basado en el diseño explicado en Mano, M. Morris. Arquitectura de computadoras. Pearson 1994).
Esta computadora contara con una memoria de 4096 palabras de 16 bits cada una. Esto corresponde a
un bus de direcciones de 12 bits y un bus de datos de 16 bits). En cada localidad de memoria se podrá
almacenar un entero de 16 bits o el código de una instrucción, también de 16 bits.
Todos los CPU tienen como función principal la ejecución de un programa acorde a la aplicación del
mismo. Un programa es un conjunto de instrucciones almacenadas de acuerdo al orden en que deben
ejecutarse. Por lo tanto, toda computadora debe ser capaz de procesar las instrucciones de su programa
en un ciclo de instrucción, consistente en un número de etapas que varia con cada CPU, pero que
tradicionalmente han sido tres:
1. Arquitecturas de cómputo
1-Búsqueda del código de Instrucción. Esta consiste en leer de la memoria cual será la siguiente
instrucción a ejecutar, la cual esta almacenada en forma de un código numérico que indica cual de todas
las operaciones que puede realizar el CPU sera la siguiente y con que operandos se ejecutara.
Ejecución general, la unidad de control (CU) genera las señales de control necesarias para llevar los datos a las
entradas de la Unidad Aritmética Lógica, la cual efectuará las operaciones aritméticas y lógicas.
Posteriormente, la unidad de control generara las señales de control necesarias para transferir la salida
q Ejemplos de Codificación de la Unidad Aritmética Lógica al registro donde serán almacenados los resultados para su uso
posterior.
Es importante recordar que cada instrucción del programa se almacena en memoria como un número
binario. Este número se conoce como código de instrucción, y usualmente se divide 66 en al menos dos
campos: un código de operación (Opcode) y un número que representa al operando u operandos de la
instrucción. En el caso de la computadora imaginaria que estamos estudiando, se almacena cada
instrucción en una de las 4096 palabras de memoria de 16 bits cada una. Se utiliza un formato de un
solo operando, con un segundo operando en el acumulador cuando es necesario. Los cuatro bits más
significativos de los dieciséis bits de la palabra se dedican a almacenar el código de operación. Los
doce bits menos significativos se dedican a almacenar la dirección del operando.
33
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento
Ejecución
Ejemplos de Codificación
q Búsqueda de instrucción: En esta etapa se lee el código de la siguiente
instrucción a ejecutar
§ PC Con7ene la dirección de la instrucción IR <- [PC] (se lee de memoria el código)
§ PC <- PC + 1 (PC apunta a la siguiente instrucción
Búsqueda Instrucción
q Decodificación de la instrucción LOAD 023h
§ Se separa el contenido de IR en Opcode y Operando
Contenido Dir.
§ Se busca a que instrucción corresponde el Opcode
XXXXh 000h 67
Banderas XXXXh 001h
MAR
0023h 002h
Acumulador 2024h 003h
BUS ...
PC XXXXh 022h
MBR
1234h 023h
1. Arquitecturas de IRcómputo 4567h 024h
0023h 002h
Acumulador 2024h 003h
BUS ...
PC XXXXh 022h
MBR
1234h 023h
4567h 024h
IR
...
XXXXh FFFh
CPU
68
Memoria
34
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Búsqueda Instrucción
Ejecución. Ejemplos de Codificación LOAD 023h
Búsqueda Contenido Dir.
XXXXh 000h
Instrucción LOAD 023h Banderas XXXXh 001h
002h
MAR
0023h 002h
Acumulador 2024h 003h
BUS ...
002h
003h
PC XXXXh 022h
0023h
MBR
1234h 023h
4567h 024h
0023h
IR
...
XXXXh FFFh
CPU
Memoria 69
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Búsqueda Instrucción
Ejecución. Ejemplos de Codificación LOAD 023h
Ejecución Contenido Dir.
XXXXh 000h
Instrucción LOAD 023h Banderas XXXXh 001h
002h
MAR
0023h 002h
Acumulador
1234h 2024h 003h
BUS ...
002h
003h
PC XXXXh 022h
0023h
MBR
1234h 023h
4567h 024h
0023h
IR
...
XXXXh FFFh
CPU
Memoria 70
35
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Búsqueda de la Instrucción
Ejecución. Ejemplos de Codificación ADD 024h
Búsqueda de la Contenido Dir.
XXXXh 000h
Instrucción ADD 024h Banderas XXXXh 001h
MAR
003h
0023h 002h
Acumulador 2024h 003h
BUS ...
PC
003h XXXXh 022h
2024h
MBR
1234h 023h
4567h 024h
2024h
IR
...
XXXXh FFFh
CPU
Memoria 71
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Búsqueda de la Instrucción
Ejecución. Ejemplos de Codificación ADD 024h
Ejecucuón de la Contenido Dir.
XXXXh 000h
Instrucción ADD 024h Banderas
Z=0, C=0, V=0 XXXXh 001h
2024h
MAR
0023h 002h
1234h
Acumulador 2024h 003h
BUS ...
PC
004h XXXXh 022h
4567h
MBR
1234h 023h
4567h 024h
2024h
IR
...
XXXXh FFFh
CPU
Memoria 72
36
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
CPU. Funcionamiento Búsqueda de la Instrucción
Ejecución. Ejemplos de Codificación ADD 024h
Ejecucuón de la Contenido Dir.
XXXXh 000h
Instrucción ADD 024h Banderas
Z=0, C=0, V=0 XXXXh 001h
2024h
MAR
0023h 002h
579Bh
Acumulador 2024h 003h
BUS ...
PC
004h XXXXh 022h
4567h
MBR
1234h 023h
4567h 024h
2024h
IR
...
XXXXh FFFh
CPU
Memoria 73
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Memoria.
37
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Memoria.
q Una palabra es el conjunto de bits que puede leerse o escribirse en una sola
operación
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Memoria.
q Las lineas de direcciones sirven para elegir en cual de todas las localodades
de memoria se va a guardar o a leer un dato
38
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Memoria.
77
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Memoria RAM Memoria ROM
q Volá.les: pierden la información cuan- q No volá.les: conservan la información aún sin
do son desenergizadas (RAM) suministro de energía
39
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
q Las entradas son las señales recibidas por la unidad, mientras que las
salidas son las señales enviadas por ésta.
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
q Los periféricos son muy diferentes entre sí, y debería disponerse de una lógica adicional
dentro de la CPU para cada disposi=vo.
q La mayoría de los periféricos son lentos respecto a la CPU y la memoria por lo que se
desaprovecharía =empo y prestaciones conectándolos a un sistema de buses de alta
velocidad.
40
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
1. Arquitecturas de cómputo
entrada, Periféricos de salida y Periféricos de entrada-salida.
- Con quién interactúan en: de interacción con humanos y de
interacción con máquinas
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
83
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
84
42
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
1. Arquitecturas de cómputo
- E/S mediante interrupciones: La CPU envía la orden de
E/S, pero continúa ejecutando otras instrucciones y es
interrumpido por el módulo de E/S cuando ha terminado la
Módulos de entrada y salida En las dos primeras técnicas, la CPU es responsable de almacenar
los datos leídos desde el módulo de E/S en la memoria en una operación
■ El módulo de E/S debe estar preparado de entrada, y de leerlos desde la memoria en una operación de salida.
cada uno de los disposi?vos que 1.4 Técnicas para las operaciones de E/S
controla 86
Para las operaciones de E/S (como fue discutido en el Capítulo 8),
se pueden utilizar tres técnicas:
- E/S programada: Los datos se intercambian entre el
procesador y el módulo de E/S. Con un programa que se
ejecuta en la CPU se controla directamente la operación de
E/S. Cuando el procesador envía una orden al módulo de E/S
debe esperar que esta operación concluya. La gestión de la
operación de E/S por parte de un programa ejecutándose en
una CPU rápida genera un gran desperdicio de tiempo.
- E/S mediante interrupciones: La CPU envía la orden de
E/S, pero continúa ejecutando otras instrucciones y es 43
interrumpido por el módulo de E/S cuando ha terminado la
operación.
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
87
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
q Ejemplos clásicos:
§ teclado, ratón, monitor.
88
44
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Módulos de entrada y salida
q Disposi&vos de entrada, que sirven para introducir datos a la computadora
para su proceso.
q Los datos se leen de los disposi&vos de entrada y se almacenan en la
memoria central o interna.
q Convierten la información en señales eléctricas que se almacenan en la
memoria central.
q Los disposi&vos de entrada <picos son los teclados, otros son: lápices
óp&cos, palancas de mando (joys&ck), CD-ROM, discos compactos (CD),
mouse.
89
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
q E/S programada
q E/S mediante interrupciones
q Acceso directo a memoria (DMA)
90
45
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
91
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
92
46
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
93
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
94
47
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
95
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
96
48
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
49
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
99
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
§ Canal mul5plexor que puede controlar las E/S de varios disposiBvos al mismo
Bempo.
100
50
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
- Canal selector (Figura 10.6 a) que controla varios dispositivos
de velocidad elevada, salvo que en un instante se dedica a
Módulos-
de entrada y salida
transferir datos a uno de estos dispositivos.
Canal multiplexor (Figura 10.6 b) que puede controlar las
Canales y procesadores de entrada/salida
E/S de varios dispositivos al mismo tiempo.
-
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
300
102
Fig. 10.6 Arquitectura de un canal de E/S
300
51
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Buses
q En arquitectura de computadores, el bus o canal es un sistema digital que
transfiere datos entre los componentes de una computadora o entre
computadoras.
q Está formado por cables o pistas en un circuito impreso, disposi8vos como
resistores y condensadores además de circuitos integrados.
q En los primeros computadores electrónicos, todos los buses eran de 8po
paralelo, de manera que la comunicación entre las partes del computador se
hacía por medio de cintas o muchas pistas en el circuito impreso, en los
cuales cada conductor 8ene una función fija y la conexión es sencilla
requiriendo únicamente puertos de entrada y de salida para cada disposi8vo.
103
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Buses
q La tendencia en los úl.mos años es el uso de buses seriales como el
USB, Firewire para comunicaciones con periféricos reemplazando los
buses paralelos, incluyendo el caso como el del microprocesador con el
chipset en la placa base.
q Esto a pesar de que el bus serial posee una lógica compleja (mayor
poder de cómputo que el bus paralelo) a cambio de velocidades y
eficacias mayores.
104
52
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus paralelo
q Es un bus en el cual los datos son enviados por bytes al mismo 3empo,
con la ayuda de varias líneas que 3enen funciones fijas.
q La can3dad de datos enviada es bastante grande con una frecuencia
moderada y es igual al ancho de los datos por la frecuencia de
funcionamiento.
q En los computadores ha sido usado de manera intensiva, desde el bus
del procesador, los buses de discos duros, tarjetas de expansión y de
vídeo, hasta las impresoras.
105
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus paralelo
106
53
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus paralelo
q Las líneas de dirección son las encargadas de indicar la posición de
memoria o el disposi2vo con el que se desea establecer comunicación.
q Las líneas de control son las encargadas de enviar señales de arbitraje
entre los disposi2vos.
§ Entre las más importantes están las líneas de interrupción, DMA y los indicadores
de estado.
q Las líneas de datos transmiten los bits de forma aleatoria de manera
que por lo general un bus 2ene un ancho que es potencia de 2.
107
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus serial
q Los datos son enviados, bit a bit y se reconstruyen por medio de
registros o ru5nas de so6ware.
q Está formado por pocos conductores y su ancho de banda depende de
la frecuencia.
q Es usado desde hace menos de 10 años en buses para discos duros,
unidades de estado sólido, tarjetas de expansión y para el bus del
procesador.
108
54
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Estructura de los buses
q Líneas de datos
q Líneas de dirección
q Líneas de control
109
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Estructura de los buses
q Líneas de datos
q Líneas de dirección
q Líneas de control
110
55
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Estructura de los buses
q Datos:
§ Llevan datos y también comandos para los disposi5vos de entrada / salida.
§ Su amplitud influye en el rendimiento del bus
§ Relacionado con el tamaño de palabra del sistema
111
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus paralelo
q Direcciones:
§ Llevan direcciones de memoria en acceso a memoria, o permiten seleccionar un
disposi4vo conectado al bus.
§ Su amplitud determina el espacio de direcciones tanto de memoria como entrada
/ salida
112
56
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Bus paralelo
q Control:
§ Son señales de control de acceso y uso del bus.
§ Arbitraje del bus
§ Sincronización de las comunicaciones
§ Reloj del sistema
113
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Jerarquías de buses
q Jerarquía:
q Tendencia a u+lizar múl+ples buses debido a que:
§ degradación del rendimiento a medida que aumenta el número de disposi+vos
colgados al bus.
114
57
16/11/18
1. Arquitecturas de cómputo
1.2 Análisis de los componentes
Tipos de Buses
Jerarquías de buses
q Jerarquía:
q Se introducen múl0ples buses basando la jerarquía en los
requerimientos de comunicación de los disposi0vos:
§ Bus local: Conecta al procesador con la cache y con algún disposi0vo e/s muy
rápido.
§ Bus del sistema: Conecta al procesador (a través de la cache) con la memoria del
sistema y con un segundo nivel de disposi0vos de velocidad media.
§ Bus de expansión: Se conecta al bus del sistema y hace de interfaz entre este y
los disposi0vos más lentos
115
1. Arquitecturas de cómputo
1.1 Modelos de arquitecturas de cómputo
Arquitecturas de mul.procesamiento.
116
58