Arquitectura de Computadoras

Documentos relacionados
El nivel ISA (II)! Conjunto de Instrucciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

El repertorio de instrucciones

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Repaso concepto de programa

Procesadores ISA Macroarquitecura - Interfaces

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES I. Tema X Modos de Direccionamientos

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

Arquitectura de Computadores II Clase #3

Unidad 5 Unidad central de proceso

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

GUIA 24: REPERTORIO DE INSTRUCCIONES

Arquitectura del MIPS: Introducción

Organización de Computadoras. Clase 7

5 Lenguaje de Máquina

TEMA VI DISEÑO DEL PROCESADOR

El procesador. Datapath para las instrucciones de brinco

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Repaso Registros internos Z80 1/37

Introducción a la arquitectura de computadores

Tema 3 (III) Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

3. Instrucciones: lenguaje de la máquina

Modelo de von Neumann

Operaciones lógicas y repetición

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Guía práctica lenguaje ensamblador

Procesador MIPS - Registros

Ejercicios del tema 4. El procesador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Estructura de Computadores

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Sección de procesamiento: El camino de datos

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Programación de IA-32 Modo Real

8.4. El software en los μprocesadores

Registros de direcciones de 32 bits A0 a A7 (A7 puntero de pila SP)

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Unidad de Entrada-Salida Software de sistemas Parámetros característicos Ejemplo

Organización de Computadoras. Clase 6

LABORATORIO DE COMPUTADORAS

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Arquitectura (Procesador familia 80 x 86 )

MODOS DE DIRECCIONAMIENTO

Conceptos de Arquitectura de Computadoras Curso 2015

Tema 2. Diseño del repertorio de instrucciones

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

El procesador. Diseño del control

INTRUCCIONES: LENGUAJE MAQUINA

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Práctica 3: Programación en ASM Orga 1

El procesador. Datapath y control

TEMA 1: Conceptos generales. 1.- Representa los primeros 16 números decimales (del 0 al 15) usando codificación binaria y hexadecimal.

Arquitectura Interna del 8088

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

INSTRUCCIONES. LA ENERGIA DE LA MAQUINA Fundamentos de Computadores Capítulo segundo

Unidad IV: Programación de microcontroladores

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

Clasificación del procesador según el número de referencias a memoria.

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores

Formato de instrucciones

MODOS DE DIRECCIONAMIENTO

Programación de los Microcontroladores 8052/8051 (I)

Seguimiento. Organización del Computador I. Gustavo Cairo Carlos A. Di Pietro Carolina Lang. 1 er Cuatrimestre de 2016

Arquitectura de Computadores

ESTRUCTURA. Estructura básica de un computador ESTRUCTURA BÁSICA DE UN COMPUTADOR RELOJ. Unidad de control CPU ULA. Onda cuadrada RELOJ

TEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR

FUNDAMENTOS DE MICROPROCESADORES SOLUCIONES A LOS PROBLEMAS DE LA UNIDAD-3.- EL PROCESADOR I: EL LENGUAJE MAQUINA

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

Organización y Arquitectura

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

TEMA 11: ARQUITECTURA INTERNA

B) Arquitectura generalizada de una computadora

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

Instrucciones de máquina y tipos de software

Estructura de los sistemas de cómputo

Elementos constituyentes de la ejecución de un programa

Ensamblador martes, 9 de septiembre de :11

Capítulo 3. Microcontroladores 3.1 Definiciones

Organización de Computadoras. Clase 8

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88

Funciones y Datos en Intel 8086

SISTEMAS OPERATIVOS Arquitectura de computadores

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Instituto Tecnológico de Morelia

Tratamiento de Excepciones en MIPS

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Introducción a la arquitectura PIC

ARQUITECTURA VON NEUMANN

Unidad 1: Conceptos generales de Sistemas Operativos.

EJECUCIÓN DE INSTRUCCIONES

Transcripción:

4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom

4-2 Arquitectura del Set de Instrucciones Indice 1. Repaso. 2. Distintos Conjuntos de Instrucciones. 3. Modos de Direccionamiento y Lenguajes de Alto Nivel (HLL). 4. Stacks 5. Subrutinas. 6. Marcos de Enlace.

4-3 El Ciclo de la Instrucción Instruction Fetch Instruction Decode Execute Obtener instrucción de Memoria M(PC), guardar Instrucción en IR Actualizar PC Determinar las acciones que se requieran Ejecutar las acciones requeridas (leer o escribir en M o I/O, procesar en ALU...)

4-4 Qué debe especificar una instrucción? Qué operación realizar? add r0, r1, r3 Op code: add, load, branch, etc. Dónde están los operando/s? add r0, r1, r3 En registros del CPU, celdas de memoria, lugares de I/O o parte de una instrucción. Dónde se guarda el resultado? add r0, r1, r3 En un registro, M o I/O. Dónde está la próxima instrucción? add r0, r1, r3 En el lugar de memoria a que br endloop apunta el PC Para ej. salto PC endloop Flujo de Datos

4-5 Formato de la Instrucción Op-Code Operando 1 Operando 2... Operando n 1. Op-Code: Qué Operación se efectúa. n bits hasta 2 n operaciones distintas. 2. Operandos: Con qué datos se opera. En general desde 0 a 3 operandos. El dato puede estar en el campo, en Memoria o en un Registro. 3. Puede haber más de un formato, dependiendo de Op-Code.

4-6 3 Clases de Instrucciones Movimiento de Datos Mover datos desde M(i) o R(i) a M(j) o R(j) sin modificarlos. Tienen siempre una fuente y un destino. Load La fuente es memoria y el destino un registro. Store La fuente es un registro y el destino es memoria. Hay casos con fuentes y destino ambos M o ambos R. Procesamiento Instrucciones Aritméticas y Lógicas. Procesar uno o más operandos fuentes y guardar el resultado en un lugar de destino. Add, Sub, Shift, etc. Control de flujo de Instrucciones (Saltos) Alterar el flujo normal de control en lugar de ejecutar la siguiente instrucción de la dirección contigua. Br Loc, Brz Loc2, saltos condicionales o incondicionales.

4-7 Cuáles son las componentes de un ISA? Conocido como el Modelo del Programador de la máquina. Celdas de Almacenamiento Registros de propósito general y especial en el CPU. Muchas celdas de propósito general de igual tamaño en Memoria. Almacenamiento relacionado con dispositivos I/O. Formato de la Instrucción Tamaño y significado de los diferentes campos de la Instrucción. El Set de Instrucciones de la Máquina. Es el repertorio completo de las operaciones de la máquina. Emplea celdas de almacenamiento, formatos y resultados del ciclo de la Instrucción. Naturaleza del ciclo de la Instrucción. Cosas que se hndependientemente de la instrucción en cuestión.

4-8 Los Registros del CPU pueden tener una personalidad Acumulador, Puntero de Pila, Contadores, Fuente, Destino. Las diferentes arquitecturas se clasifican generalmente en cómo y dónde se ubican los operandos y resultados y cómo se especifican por la instrucción. Pueden estar en Registros del CPU o en Memoria. Stack Push Pop Top Second Registro Implícito A Accumulator Machine General Purpose Registers S t a c k M a c h i n e G e n e r a l R e g i s t e r M a c h i n e

4-9 ISAs de 3, 2, 1 y 0 direcciones La clasificación se basa en las instrucciones aritméticas que tienen dos operandos y un resultado. Un ISA de 3 direcciones usa modos de direccionamiento tanto para los operandos como para el resultado R Op1 op Op2 Una instrucción de 2 direcciones usa el operando destino (resultado) como operando fuente también Op1 Op1 op Op2 Una instrucción de 1 dirección emplea un registro implícito, llamado acumulador, para que contenga tanto un operando como el resultado Acc Acc op Op1 Una de 0-dirección emplea una pila para contener los dos operandos y el resultado TOS TOS op SOS (TOS es Top Of Stack, SOS es Second On Stack) La instrucción de 4 direcciones, prácticamente no se ve actualmente, permite que la dirección de la próxima instrucción se especifique explícitamente.

4-10 Modos de Direccionamiento Un modo de direccionamiento es el soporte de Hw para una forma útil de determinar dónde se encuentra el operando. Modos de direccionamiento diferentes resuelven distintos problemas de los Lenguajes de Alto Nivel (HLL). Algunas direcciones se conocen en tiempo de compilación, ej. Variables globales. Otras no se conocen hasta el tiempo de corrida, ej. Punteros. Puede ser necesario calcular las direcciones. Por ejemplo: Componentes de la estructura de un record (registro): Variable de base (dirección completa) + constante (pequeña) Componentes de una tabla o vector: Constante de Base (dirección completa) + variable índice (pequeña) Es posible guardar valores constantes sin usar otras celdas de memoria, en la misma instrucción o adyacente a ella. Un buen programa no se cambia a sí mismo.

4-11 HLL Ejemplos de Direcciones Estructuradas Lenguaje C: rec count rec es un puntero a un record: variable de dirección completa count es el nombre de un campo: un offset fijo en bytes, digamos 2 Lenguaje C: v[i] v es la dirección fija de la tabla: dirección completa fija (constante). i es el nombre del índice variable: no supera a la dimensión de la tabla. Las variables deben estar en registros o en Memoria. Pequeñas constantes pueden estar contenidas en la instrucción. Conclusión: se necesita aritmética de direcciones. Ej., Dirección de Rec Count es la dirección de Rec + offset de count. Rec V Count V[i]

4-12 Implementación Stack Se implementa en memoria. Arquitecturas con Stack Explícito: Registro especial, Stack Pointer (SP), en CPU. Instrucciones Dedicadas: PUSH y POP. Excepción: guarda estado de la tarea en stack. Excepciones: Traps + Interrupciones.

4-13 Arquitecturas sin Stack Explícitos Necesitan convocar a Subrutinas. Instrucciónes JAL r y J r. (para CALL y RETURN). JAL r, guarda PC en registro r. J r, salta a la dirección dada por r. El stack se implementa mediante: Un registro general (GPR) standard fijo. Movimiento de datos e incrementos o decrementos. Soporta llamadas anidadas? Y recursivas?

4-14 Implementación de Rutinas Arquitecturas con Stack con Instrucciones Específicas. Call guarda PC en stack (transparente). Algunas arquitecturas guardan CCR también (Call). Hay que asegurarse de guardar el estado. qué es el estado? Los argumentos los guarda quien convoca. Registros con Variables locales, los guarda el convocado. Esta es una convención posible. Se trabaja con standards. Por qué? Return. Restaurar estado y volver. El convocado restaura lo que guardó (mediante POPs). Restaura PC, mediante instrucción RETURN. El convocante restaura lo que guardó (también con POPs) Muy limitado usar solo POP y PUSH para direccionar Stack. Qué pasa si la rutina cambia el valor de SP antes de retornar?

4-15 Enlaces Standard (gcc): Marcos (Frames) Se emplea un puntero de marco, Frame Pointer FP SP Argumentos (guarda quien llama) Registros Guardados por El Convocado (old FP, RA) Variables Locales Argumentos y variables locales, a una distancia (offset positivo) fijo de FP Crece y decrece durante evaluación de expresiones y procesamiento Rutina. Memoria Baja En este ejemplo el stack crece hacia abajo, caso MIPS. Memoria Alta

4-16 Resumen Todas las máquinas tienen 3 clases de instrucciones. Arquitecturas de 3, 2, 1 o 0 direcciones. Modos de direccionamiento para manejar estructuras de datos en forma eficiente Aritmética de direcciones. Variados modos de direccionamiento, sintaxis y semántica en la industria. Stacks permiten subrutinas, y rutinas para excepciones Explícitos o implícitos. Standards para pasaje de parámetros. Máquinas con GPRs o con registros con personalidad