41
Instituto Tecnológico de Morelia Arquitectura de Computadoras Unidad 1a

Instituto Tecnológico de Morelia - … · Arquitectura: Atributos de una computadora que son visibles a un programador, o que tie- ... Procesadores vectoriales – Son computadoras

  • Upload
    lecong

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Instituto Tecnológico de Morelia

Arquitectura de Computadoras

Unidad 1a

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

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

579Bh