Programa
1 Modelo de arquitecturas de cómputo.
1.1 Modelos de arquitecturas de cómputo.
1.1.1 Clásicas.
1.1.2 Segmentadas.
1.1.3 De multiprocesamiento.
1.2 Análisis de los componentes.
1.2.1 CPU.
1.2.1.1 Arquitecturas.
1.2.1.2 Tipos.
1.2.1.3 Características.
1.2.1.4 Funcionamiento.
Ordenador o Computadora
Sistema de calculo de propósito general que incorpora una unidad central de proceso, memoria y dispositivos de
entrada y salida.
Del Diccionario de Electrónica e informática Orbis-Marcombo 1986.
– Habilidad para realizar operaciones aritméticas y lógicas.
– Memoria. Puede retener información por un periodo de tiempo dado.
– Es programable. Efectúa una serie de operaciones en un orden determinado.
– Capacidad de recibir información del mundo exterior y entregar resultados de sus cálculos.
Características
Jerarquía de un Sistema de Computo
Computadora
Procesador Subsistema deentrada y salida
CPU Subsistema deMemoria
ALUUnidad de
Control
Flujo de información en el CPU
Subsistema de Memoria
Unidad deControl
Unidad LógicaAritmética
DatosCódigos de Operación
Control Resultados
Estado
Control
Arquitectura y organización
Arquitectura: Atributos de una computadora que son visibles a un programador, o que tie-nen impacto en la ejecución lógica de un pro-grama.
Organización: Detalles de hardware transparen-tes al programador, tales como señales de con-trol, interfases entre el computador y los peri-féricos y la tecnología de memoria usada.
1.1.1 Modelos de arquitectura de computo clásicas
Arquitectura Mauchly-Eckert (VonNewman)
Concepto de programa almacenado
Procesador Memoria PrincipalAlmacena
el programa y los datos
Entrada y salida
Bus principal
Registros
ALU
Unidad deControl
Arquitectura Harvard
Espacios de memoria de datos y programa separa-dos
ProcesadorMemoria de datos
Entrada y salida
Bus dedatos
Memoria deprograma
Bus deprograma
Registros
ALU
Unidad deControl
1.1.2 Arquitecturas segmenta-das
Las arquitecturas segmentadas aparecieron a me-diados de los años 1960's como una manera de au-mentar el rendimiento sin implicar un nivel masivo de paralelismo
Durante los años 1980's fueron una de las ideas cen-trales de los procesadores RISC, buscando alcanzar el objetivo de que se ejecutara una instrucción cada ciclo de maquina.
En Inglés se conocen como “pipelined procesors” o procesadores entubados
Segmentación o entubamiento
consiste en dedicar unidades especificas del proce-sador a cada una de las partes del ciclo de instruc-ción y ejecutarlas paralelamente
Mejora dramáticamente el rendimiento debido a que en los procesadores modernos se tienen hasta 14 etapas en el ciclo de instrucción
Segmentación del cause
La unidad de control se subdivide en dos o más unidades funcionales, cada una encargada de llevar a cabo una parte del ciclo de instrucción.
Se comunican a través de una cola de instrucciones (Pipeline)
Unidad de Búsqueda
Unidad deejecuciónCola de Instrucciones
Segmentación del cauce(2)
La mejora en el rendimiento no es proporcional al numero de segmentos en el cauce debido a que cada etapa no toma el mismo tiempo en realizarse, ade-más de que se puede presentar competencia por el uso de algunos recursos como la memoria principal
Búsqueda Ejecución
Espera Espera
CPU de multiprocesamientoClasificación de Flynn
SISO – (Single Instruction, Single Operand ) com-putadoras de un solo núcleo
SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales; extensiones MMX, SSE; núcleos de GPU
MISO – (Multiple Instruction, Single Operand ) No implementado
MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters, GPU
MultiprocesamientoProcesadores vectoriales – Son computadoras pen-sadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales, en especial en la si-mulación de sistemas físicos complejos
La mayoría de los procesadores modernos incluye algunas instrucciones de tipo vectorial, tales como las extensiones MMX, SSE
Procesadores Digitales de Señales (DSP), son pro-cesadores especializados en el procesamiento de se-ñales tales como audio, video, radar, sonar, radio, etc. Cuentan con instrucciones tipo vectorial que los hace muy aptos para dicha aplicación
Sistemas SMPSistemas SMP (Simetric Multi Procesesors) – Varios procesadores comparten la misma me-moria principal y periféricos de I/O, Normal-mente conectados por un bus común
ProcesadorProcesador Procesador Procesador
Memoria
BUS Común
Clusters
Conjuntos de computadoras independientes conec-tadas en una red de área local o por un bus de inter-conexión y que trabajan cooperativamente para re-solver un problema
ProcesadorProcesador Procesador Procesador
Red de Interconexión
MemoriaMemoria Memoria Memoria
Procesadores Gráficos
(Graphics Processing Unit GPU) – sistemas di-señados originalmente para el procesamiento de Gráficos, con múltiples procesadores vecto-riales sencillos compartiendo la misma memo-ria
CPU
DRAM DRAM
PCI-EGPU
AnfitriónTarjeta Gráfica
Núcleo Núcleo
Núcleo Núcleo
Núcleo
Núcleo
1.2-Análisis de los componen-tes
1.2.1 – CPU 1.2.1.1- arquitecturas
CISC (Complex Instruction Set Computers) Tienen un número amplio de instrucciones y modos de direcciona-miento. Se implementan instrucciones especiales que rea-lizan funciones complejas. El número de registros del CPU es limitado
RISC (Reduced Instruction Set Computers) Solo se cuen-ta con unas pocas instrucciones y modos de direcciona-miento, pero se busca implementarlos de forma muy efi-ciente y que todas las instrucciones trabajen con todos los modos de direccionamiento. Amplio número de registros en el CPU
1.2.1.2 Tipos de CPU
Por tamaño del ALU o del Bus de conexión al exte-rior (8, 16, 32, 64 bits)
De cauce segmentado o no segmentado
CISC o RISC
Von Newan o Harvard
Instrucciones enteras y/o de punto flotante
1.2.1.3 Características de los CPU
Modelo del programador (Conjunto de registros que el programador puede utilizar)
Conjunto de instrucciones
Modos de direccionamiento
Ciclo de instrucción
Buses de interconexión
1.2.1.4 Funcionamiento del CPU
Se explicara el funcionamiento de una compu-tadora imaginaria, cuyo funcionamiento básico es similar al de la mayoría de las computadoras de propósito general (De: Mano, M. Morris. Arquitectura de computadoras. Pearson 1994)
Contara con una memoria de 4096 palabras de 16 bits cada una (12 bits de direcciones, 16 bits de datos)
En cada localidad de memoria se podrá alma-cenar un entero de 16 bits o el código de una instrucción, también de 16 bits.
Componentes del CPU
Registro ACC (16 bits)– Acumulador, se usará para almacenar uno de los operandos y el resul-tado de varias de las instrucciones
MAR – (Memory Address Register 12 bits) Registro de dirección de memoria, selecciona a que localidad de memoria se va a leer o a es-cribir.
MBR – (Memory Bus Register 16 bits) Regis-tro de bus de memoria. A través de él se lee y se escriben los datos.
Componentes del CPU (2)
IR Registro de instrucción (16 bits), guarda el codigo de la instrucción que se esta ejecutando.
Flags – Registro de Banderas, agrupa a todas las banderas de la ALU en un registro
Z – Bandera de Cero
O – Sobreflujo
C – Acarreo
PC (Program Counter 16 bits) Contador de programa – almacena la dirección de la si-guiente instrucción a leer
Codificación de una instrucción
Operación
Código de Instrucción
Codigo de Operación
Operando único
Operando 1 Operando 2
Códigos de operación
Código de Operación
Instrucción Operación
0h LOAD (Carga) ACC<-[M]
1h STORE (Almacena) [M]<-ACC
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]
8h SHL (Corrimiento a la Izquierda) ACC<-ACC << 1
9h SHR (Corrimiento a la derecha) ACC<-ACC >> 1
Códigos de operación (2)
Código de Operación
Instrucción Operación
Ah BRA Bifurcación o salto PC<-M
Bh BRZ (Bifurca si es Cero) Si Z==1 => PC<-M
Ch BRC (Bifurca si hay Acarreo) Si C==1 => PC<-M
Dh BRO (Bifurca si hay Sobreflujo) Si O==1 => PC<-M
Eh LDI (Carga Constante Inmediata)
ACC <-[PC]PC<-PC+1
Fh STOP Detener la simulación
Notas: M es el operandoLDI se codifica en dos palabras, una una para el código de operación y otra para la constante inmediata
Ejemplos de Codificación
Instrucción Opcode Operando Código
LD 123h 0h 123h 0123h
ADD 123h 2h 123h 2123h
BRA 123h Ah 123h A123h
LDI 1234h E000h 1234h E000h, 1234h
STOP Fh No Aplica F000h
Ciclo de instrucción
Búsqueda de la Instrucción
Decodificación de la Instrucción
Ejecución de la Instrucción
Ciclo de instrucción (2)
Búsqueda de instrucción: En esta etapa se lee el código de la siguiente instrucción a ejecutar
PC Contiene la dirección de la instrucción
IR<-[PC] (se lee de memoria el código)
PC<-PC+1(PC apunta a la siguiente instruc-ción
Decodificación de la instrucción
Se separa el contenido de IR en Opcode y Operando
Se busca a que instrucción corresponde el Op-code
Búsqueda Instrucción LOAD 023h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
Búsqueda Instrucción LOAD 023h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
002h
0023h
002h
0023
h
Búsqueda Instrucción LOAD 023h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
002h
0023h
002h
0023
h003h
Ejecución Instrucción LOAD 023h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
Ejecución Instrucción LOAD 023h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
003h
0023h
023h
1234
h
1234h
Búsqueda de la Instrucción ADD 024h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
Búsqueda de la Instrucción ADD 024h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
002h
2024h
003h
2024
h003h
Búsqueda de la Instrucción ADD 024h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
002h
2024h
003h
2024
h003h004h
Ejecución Instrucción ADD 024h
CPU
Banderas
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
Ejecución Instrucción ADD 024h
CPU
BanderasZ=0, C=0, V=0
PC
IR
Acumulador
MA
RM
BR
XXXXh
XXXXh
0023h
2024h
000h
001h
002h
003h
Contenido Dir.
XXXXh
1234h
4567h
FFFh
023h
024h
XXXXh 022h
...
...BUS
Memoria
004h
2024h
024h
4567
h
1234h