ARQUITECTURA
COMPUTACIONAL Y REDES
PROFESOR: Ing. EMERSON CARRANZA MILLA
EL Computador
Una máquina alta Procesa instrucciones
electrónica tecnología (Efectúa cálculos)
Procesa
Recibe datos instruccones
(entrada) Proporciona Resultados
(Salida)
Datos Proceso Información
Entrada (Programa) Salida
ESTRUCTURA BÁSICA DEL COMPUTADOR
Arquitectura y Organización
• Arquitectura
– Se refiere a los atributos de un sistema que son visibles para un
programador, es decir, son atributos que tienen un impacto directo en la
ejecución lógica de un programa
– Puede sobrevivir por muchos años
– Ejemplo: Conjunto de instrucciones, número de bits utilizados para la
representación de datos, mecanismos de E/S, técnicas de
direccionamiento, etc.
• Organización
– Se refiere a las unidades funcionales del computador y sus
interconexiones, que dan lugar a especificaciones arquitectónicas
– Cambia con la evolución de la tecnología (versiones)
– Ejemplo: Señales de control, interfaces entre computador y periféricos,
tecnología de memoria utilizada, etc.
• Ejemplos de comparación:
– Muchos fabricantes ofrecen una familia de modelos de la misma
arquitectura pero con diferencias en organización
– La arquitectura IBM S/370 ofrece diferentes modelos a los que el cliente
puede migrar sin cambiar sus aplicaciones
Estructura y Funciones
Estructura
Es el modo en que los componentes están interrelacionados
Sus principales componentes estructurales son:
• Procesador: controla el funcionamiento del computador y procesa los datos
• Subsistema de memoria: almacena datos
• Subsistema de entrada/salida: transfiere datos entre el computador y el
entorno externo
• Subsistema de interconexión: proporciona un medio de comunicación entre
el procesador, la memoria y la E/S.
Funciones
• Es la operación de cada componente individual como parte de la estructura
• Todo computador tiene las siguientes funciones:
– Procesamiento de datos
– Almacenamiento de datos
– Transferencia de datos
– Control de operaciones
ESTRUCTURA BÁSICA DEL COMPUTADOR
ESTRUCTURA BÁSICA DEL COMPUTADOR
• La CPU coordina todas las actividades dentro
del sistema: secuencia la ejecución de
instrucciones, coordina el movimiento de los
datos, los manipula, los conduce desde la
entrada hasta la salida.
• La Memoria sirve para almacenar instrucciones,
información codificada que dirige las actividades
de la CPU, y la Data a ser manipulada.
• El computador dispone de Puertos de Entrada o
de Salida, también llamados Interfaces de E/S,
para permitir que la CPU pueda recibir datos o
comunicar sus resultados al exterior.
ESTRUCTURA BÁSICA DEL COMPUTADOR
• La CPU puede alcanzar a cualquier dato
almacenado en memoria, pero también recurre a
sistemas de almacenamiento masivo externos con
los que se comunica a través de los puertos.
• La CPU unifica el sistema, controla las funciones
realizadas por otros componentes, siendo capaz
de detectar las instrucciones de memoria,
decodificarlas y ejecutarlas. Debe reconocer y
responder a ciertas señales de control como las de
interrupciones y las de espera. Controla el
almacenamiento y lectura de los datos de la
memoria y el flujo de información vía interfaces de
entrada salida.
ESTRUCTURA BÁSICA DEL COMPUTADOR
• Cada una de las unidades del sistema consiste
generalmente en más de un circuito integrado,
todos ellos están interconectados a través de
conductores agrupados según el tipo de
información que conducen.
• Se distinguen tres tipos básicos de grupos de
conductores:
- Bus de Datos
- Bus de Direcciones
- Bus de Control
ESTRUCTURA BÁSICA DEL COMPUTADOR
• El Bus de Datos: conduce únicamente datos y/o
instrucciones que van a ser manipulados por la CPU.
• El número de conductores del bus de datos está en
relación directa al número de bits que constituye cada
dato que puede ser de 8, 16, 32, 64 ó 128 bits.
• La capacidad de manejo de información de un
sistema depende directamente del número de líneas
del bus de datos.
• En el bus de datos la información puede circular en
ambos sentidos, es bidireccional.
ESTRUCTURA BÁSICA DEL COMPUTADOR
• El Bus de Direcciones: cada unidad del sistema debe ser
direccionada para localizar la información contenida ya sea en
la memoria o en las interfaces.
• Estos buses transportan estas señales de direccionamiento y el
número de líneas puede ser de 4, 8, 12, 16, 20, 24, 32 ó 36
bits.
• Este bus transporta la dirección en un sólo sentido: desde la
CPU hacia la memoria o los puertos.
• El Bus de Control: forma el conjunto de conductores que
conducen señales de control y temporización del sistema. Su
número varía en cada sistema y la información fluye en un sólo
sentido, pero hay conductores que transmiten información
desde la CPU hacia las otras unidades y otros que la
transmiten desde las unidades hacia la CPU.
Arquitecturas
COMPUTADOR
Software: HARDWARE:
Instrucciones
programadas Equipo físico de las
que controlan computadoras
y comandan Unidad de procesamiento
al hardware Dispositivos de entrada y salida
Dispositivos de almacenamiento.
Elementos Básicos de Ejecución de una
Instrucción
• Procesador
• Memoria principal
– ROM
– RAM
• Módulos de E/S
– Dispositivos de memoria secundaria
– Equipo de comunicaciones
– Terminales
• Interconexión del sistema
– Comunicación entre procesadores, memoria, y módulos de E/S
14
Elementos Básicos de Ejecución de una
Instrucción
15
Elementos Básicos de Ejecución de una
Instrucción
16
Elementos Básicos de Ejecución de una
Instrucción
Unidad de Procesamiento Central
Registros de datos
Pueden contener temporalmente operandos o resultados
de una operación
• Registro de datos
• Acumulador
Registros de direcciones
• Registros índices
• Apuntador de segmentos
• Apuntador de stack
Registros de Control y Estado
• Program Counter (PC)
• Instruction Register (IR)
• Program Status Word (PSW)
17
Instrucciones del Procesador
• Es una cadena binaria
• Contiene la orden a ser ejecutada por el procesador
• Se almacena en memoria para luego ejecutarse desde
IR
• En su conjunto constituyen el lenguaje de máquina
• Cada instrucción es ejecutada en un ciclo denominado
ciclo de instrucción
• Es ejecutada como una secuencia de microoperaciones
temporizadas
• Generalmente representado por códigos en
ensamblador
18
Diagrama de estados del ciclo de
instrucción
Alcacena-
Captación Captación
miento de
de instrucción del operando
operando
Varios Varios
operandos operandos
Cálculo de la Decodificación Cálculo de la Cálculo de la
Operación
dirección de de la operación dirección del dirección del
con datos
la instrucción de la instrucción operando operando
Instrucción completada Cadena o vector
Captar la siguiente instrucción de datos
19
Ejemplo: Ejecución de Instrucciones
Consideraciones:
• El formato de instrucciones comprende un
registro de 16 bits: 4 bits para código de
operación y 12 bits para direcciones
• Formato de datos: 16 bits
• Códigos de operación:
– 0001: LDA
– 0010: STA
– 0101: ADD 20
Ejemplo: Ejecución de Instrucciones
Memoria Registros del CPU Memoria Registros del CPU
300 1940 PC 300 1940 PC
300 300
301 5941 AC 301 5941 0003 AC
302 2941 1940 IR 302 2941 1940 IR
940 0003 940 0003
Ejemplo: 941 0002 941 0002
Ejecución Paso 1 Paso 2
de Instrucciones Memoria Registros del CPU Memoria Registros del CPU
300 1940 PC 300 1940 PC
301 301
301 5941 0003 AC 301 5941 0005 AC
302 2941 5941 IR 302 2941 IR
5941
940 0003 940 0003 3+2=5
941 0002 941 0002
Paso 3 Paso 4
Memoria Registros del CPU Memoria Registros del CPU
300 1940 PC 300 1940 330022 PC
302
301 5941 0005 AC 301 5941 0005 AC
302 2941 2941 IR 302 2941 2941 IR
940 0003 940 0003
941 0002 941 0002
Paso 5 Paso 6 21
Instrucciones
del
Computador
22
Transferencia
en
bus único
23
Estructura
del
Computador
Básico
24
Análisis de los Programas
Tiempo de Ejecución
de un Programa
IxCxT
Dos opciones
para mejorar el rendimiento
CISC RISC
Minimizar I Minimizar C y T
(incrementando C y T) (Incrementando I)
CISC: Complex Instructions Set Computer
Características:
• La microprogramación es una característica importante y esencial de casi
todas las arquítecturas CISC.
• Como por ejemplo: Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.
• La microprogramación significa que cada instrucción de máquina es
interpretada por un microprograma localizado en una memoria en el circuito
integrado del procesador.
• En la década de los sesenta la microprogramación, por sus características,
era la técnica más apropiada para las tecnologías de memorias existentes
en esa época y permitía desarrollar también procesadores con
compatibilidad ascendente.
• En consecuencia, los procesadores se dotaron de poderosos conjuntos de
instrucciones.
CISC: Complex Instructions Set Computer
• Las instrucciones compuestas son decodificadas
internamente y ejecutadas con una serie de
microinstrucciones almacenadas en una ROM
interna. Para esto se requieren de varios ciclos de
reloj (al menos uno por microinstrucción).
• Desarrollo fácil del compilador
• Hacer la ejecución eficiente: Operaciones
complejas en micro-código
• Soporta lenguajes de alto nivel más complejos
• El costo del software excede los costos del
hardware
• Cada vez más lenguajes de alto nivel complejos
RISC: Reduced Instruction Set Computer
Características:
• RISC es una filosofía de diseño de CPU para computador
que está a favor de conjuntos de instrucciones pequeños
y simples que toman menor tiempo para ejecutarse
• Instrucciones de tamaño fijo y presentadas en un
reducido número de formatos.
• Sólo las instrucciones de carga y almacenamiento
acceden a la memoria por datos.
• Además estos procesadores suelen disponer de muchos
registros de propósito general.
• El objetivo de diseñar máquinas con esta arquitectura es
posibilitar la segmentación y el paralelismo en la
ejecución de instrucciones y reducir los accesos a
memoria.
• Las máquinas RISC protagonizan la tendencia actual de
construcción de microprocesadores. Power PC, DEC
Alpha, MIPS, ARM, etc.
Principios RISC
Arquitectura
Instrucciones de Formato
load/store
longitud fija regular
Direccionamiento Arquitectura
s Harvard
simples
¡Pocos parámetros
y variables
locales!
Utilizar registros
Acelerar el Control de
rendimiento dependencia
: s por
RISCMAN software
Pipeline
RISC: Reduced Instruction Set Computer
• Muchos registros de propósito general
• Uso de la tecnología del compilador para optimizar el
uso de los registros
• Conjunto de instrucciones limitado y simple
• Énfasis en optimizar el pipelining de las instrucciones
• Una instrucción por ciclo
• Operaciones de registro a registro
• Menos, modos de direccionamiento simples
• Menos, formatos de instrucciones simples
• Formato de instrucción fijo
• Más tiempo/esfuerzo para compilar
RISC vs. CISC
CISC: Complex Instruction Set Computer
• Instrucciones poderosas
• ISA más cercana a operaciones de lenguajes de alto nivel
• Codificación variada de instrucciones, formatos complejos
• Instrucciones más poderosas, pero también más difíciles de implementar
• Ejemplos: VAX, Intel Pentium
RISC: Reduced Instruction Set Computer
• Instrucciones sencillas
• ALU sólo opera con operandos en registros
• Codificación sencilla, pocos formatos
• Únicas instrucciones que tienen acceso a memoria son load/store
• Más fácil de implementar → más rápido
• Optimizaciones de código a cargo del compilador
• Ejemplos: MIPS, PowerPC, Alpha
RISC vs CISC
• El desarrollo de RISC representa una ruptura con la filosofía que detrás de
esta tendencia.
• Los que están a favor de RISC han hecho estudios que determinan que
RISC tiene mejor desempeño.
• RISC y CISC son claramente dos tendencias, es difícil determinar cuál de
los dos es mejor porque
• No existe una pareja de máquinas CISC y RISC que sean comparables
• No existe un conjunto de programas definitivos
• Es difícil separar las habilidades del hardware de las habilidades del
compilador
• Hoy, ambas tendencias usan mezclas de ambas tecnologías!
• Los diseños RISC pueden sacar provecho de la inclusión de algunas
características CISC y los CISC sacar provecho de algunas características
RISC
• Ejemplos: PowerPC y Pentium