PDF de programación - Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina

Imágen de pdf Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina

Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquinagráfica de visualizaciones

Publicado el 23 de Julio del 2019
872 visualizaciones desde el 23 de Julio del 2019
933,6 KB
93 paginas
Creado hace 6a (17/10/2017)
Fundamentos de Microprocesadores

Unidad 3. El procesador I: Diseño del juego
de Instrucciones. El lenguaje máquina

Escuela Politécnica Superior ‐ UAM

Copyright © 2007 Elsevier, “Digital Design and Computer Architecture”

11

Índice

• Arquitectura y Tecnología de Computadores

• El lenguaje Ensamblador

• ISA MIPS. El juego de instrucciones

• Programación

22

Arquitectura y Tecnología de Computadores

APLICACIÓN 
SOFTWARE

SISTEMAS
OPERATIVOS

PROGRAMAS

DRIVERS

ARQUITECTURA

MICRO‐

ARQUITECURA

LÓGICA

CIRCUITOS 
DIGITALES

CIRCUITOS
ANALÓGICOS

DISPOSITIVOS

INSTRUCCIONES
REGISTROS
CAMINO DE DATOS
CONTROLADORES
SUMADORES
MEMORIA

PUERTAS LÓGICAS

AMPLIFICADORES 
FILTROS
TRANSISTORES
DIODOS

FÍSICA

ELECTRONES

• Arquitectura:
 Es la visión que desde el punto de vista del
sistema

tiene

del

se

programador
computador.

 Viene

definida

por

el
(operaciones)

instrucciones
ubicación de los operandos

juego
y por

de
la

• Microarquitectura:
 Es la implementación en hardware del

computador (U4 y U5).

3

Arquitectura y Tecnología de Computadores

• Para poder controlar un computador se debe comprender su lenguaje.
 Instrucciones: son las palabras que forman el lenguaje de un computador
 Juego de instrucciones: es el vocabulario del lenguaje de un computador

• Los computadores se diferencian por su juego (set) de instrucciones

• Una instrucción indica la operación a ejecutar y los operandos a utilizar.

 Lenguaje Máquina: escrito con 1’s y 0’s es el único lenguaje que el 

computador es capaz de leer.

 Lenguaje Ensamblador: muy cercano al lenguaje máquina, representa el 
primer nivel de abstracción del lenguaje máquina legible para el usuario.

4

Arquitectura y Tecnología de Computadores

• Arquitectura MIPS  (Microprocessor without Interlocking Pipeline 

Stages)
 MIPS es una arquitectura utilizada en la que se basan muchos de los

sistemas actuales de compañías como Silicon Graphics, Sony o Cisco.

 MIPS es una arquitectura del tipo RISC (Reduced Instruction Set Computer).
 El concepto RISC fue desarrollado por Hennessy y Patterson en los años

ochenta.

 Un diseño RISC está basado en tres principios:

1. La simplicidad favorece la regularidad
2. Diseñar el caso común muy rápido
3. Lo más pequeño es más rápido

• Una vez que se aprende una determinada arquitectura es muy fácil

entender cualquier otra.

5

Índice

• Arquitectura y Tecnología de Computadores
• El lenguaje Ensamblador

• ISA MIPS. El juego de instrucciones

• Programación

66

El lenguaje Ensamblador

Primer Principio: La simplicidad favorece la regularidad
En el diseño de las intrucciones se utilizan, en la medida que es posible,
formatos consistentes con dos fuentes y un destino. Esta medida facilita
su decodificación e implementación en hardware.

Código en alto nivel (lenguaje C)

a = b + c;
a = b - c;

// Código ensamblador de MIPS

add a, b, c
sub a, b, c

add, sub: mnemónicos, indican la operación a ejecutar (suma, resta)

b, c: operandos fuente, señalan los datos con los que ejecutar la operación
a: operando destino, señala dónde escribir el resultado de la operación

7

El lenguaje Ensamblador

Segundo Principio: Diseñar el caso común muy rápido
MIPS es una arquitecura RISC en contraposición a otras arquitecturas CISC 
(Complex Instruction Set Computer), como IA‐32 de Intel.
 En un procesador RISC, como es MIPS, en el juego de instrucciones sólo se
incluyen aquellas instrucciones que se usan de forma habitual (las más comunes).

 El hardware para la decodificación de instrucciones es sencillo y rápido.
 Las intrucciones más complejas, que son las menos usadas, se ejecutan por

medio de instrucciones simples.

Código en alto nivel (lenguaje C)

a = b + c - d;

//  Código ensamblador de  MIPS 
# t = b + c
add t, b, c
sub a, t, d
# a = t ‐ d
# comentario hasta final de línea

8

El lenguaje Ensamblador

Tercer Principio: Lo más pequeño es más rápido
 Buscar información en unos pocos libros que se encuentran encima de
la mesa es más rápido que buscar la misma información en todos los
libros de una gran biblioteca.

 De la misma forma buscar datos en unos pocos registros, es más rápido

que encontrarlos entre miles o cientos de miles (memoria).

9

Operandos y Registros

 Un operando es una palabra escrita en binario, que representa un dato

variable o una constante denominada dato inmediato.

 Un computador necesita acceder a ubicaciones físicas, desde las cuales
poder leer los operandos fuente (uno o dos) y escribir el resultado en el
operando destino que se haya definido.

 Un computador puede leer/escribir operandos de/en:

 La Memoria: mucha capacidad pero acceso lento.   
 Los Registros Internos: menor capacidad pero de acceso rápido.

• MIPS tiene 32 registros de 32 bits.
• MIPS es una arquitectura de 32 bits porque opera en la ALU con datos de 32 bits.

10

Operandos y Registros

• Los operandos de las intrucciones hacen referencia a los

registros internos (o a datos inmediatos).

Código en alto nivel (lenguaje C)

a = b + c;

// Código ensamblador de MIPS
#$s0=a, $s1=b, $s2=c
add $s0, $s1, $s2

Las variables b y c (operandos fuente) se leen respectivamente desde
los registros $s1 y $s2 en donde están almacenadas.
La variable a (operando destino) se escribe en el registro $s0 en donde
queda almacenada para posteriores operaciones.

11

El conjunto de registros en MIPS

Nombre
$0
$at
$v0‐$v1
$a0‐$a3
$t0‐$t7
$s0‐$s7
$t8‐$t9
$k0‐$k1
$gp
$sp
$fp
$ra

Nº Registro Función
0
1
2‐3
4‐7
8‐15
16‐23
24‐25
26‐27
28
29
30
31

Constante de valor 0
Temporal de uso por el Ensamblador
Datos de retorno en procedimientos
Datos de entrada (argumentos) en procedimientos
Datos internos (variables internas temporales)
Datos globales (variables globales permanentes)
Datos internos (variables internas temporales)
Temporales de uso por el SO
Puntero Global (global pointer)
Puntero de pila (stack pointer)
Puntero de página (frame pointer)
Dirección de enlace en procedimientos (link)

12

El conjunto de registros en MIPS

• Registros en MIPS:

 Se identifican con $ delante del nombre (o número).

• Algunos registros sólo se utilizan en ciertas operaciones (uso específico). 

Por ejemplo: 
 $0 sólo permite lectura y siempre contiene el valor 0.
 Los registros $s0‐$s7 se utilizan para variables.
 Los registros temporales $t0‐$t9 se utilizan para datos intermedios

utilizados durante los procedimientos.

 Los tres registros punteros ($gp, $sp y $fp) y el registro de enlace, $ra,

señalan siempre a direcciones de memoria.

• En las primeras etapas del aprendizaje de MIPS, sólo se usarán los
registros temporales ($t0‐$t9) y los utilizados para almacenar variables
($s0‐$s7)

13

Operandos y Memoria

 Con tan sólo decenas de registros internos, no es posible acceder a

todos los datos que se manejan en un sistema computador.

 También es preciso almacenar datos en memoria.

 La memoria es una estructura física que permite almacenar una gran

cantidad de datos.

 La memoria es un elemento de acceso más lento que los registros

 Normalmente las variables más habitules (de uso más probable), se

almacenan en los registros.

 Con la combinación adecuada de los registros y memoria, un programa

puede acceder a un gran cantidad de datos de forma rápida y eficaz.

14

Memoria byte-direccionable
• MIPS maneja memoria direccionable por bytes, en donde cada byte se

asocia a una única dirección.

• Señalando una dirección y en una única operación, MIPS puede
leer/escribir (load/store) una palabra de 4 bytes (lw, sw) o sólo un
byte (lb/sb).

• Como una palabra (32 bits) ocupa 4 bytes,

las direcciones de dos

palabras consecutivas se diferencian en 4 unidades.

Word Address

Data

0000000C
00000008
00000004
00000000

4 0 F 3 0 7 8 8
0 1 E E 2 8 4 2
F 2 F 1 A C 0 7
A B C D E F 7 8

Word 3
Word 2
Word 1
Word 0

width = 4 bytes

15

Memoria byte-direccionable: Lectura

• En MIPS, la dirección de una palabra tiene que ser un múltiplo de 4.

Ejemplo: Leer (load) la palabra de la dirección 4 y escribir el dato en el 

registro $s3.

Código ensamblador de MIPS: lw $s3, 4($0)

‐ Tras la ejecución, $s3 almacena el valor 0xF2F1AC07

Word Address

Data

0000000C
00000008
00000004
00000000

4 0 F 3 0 7 8 8
0 1 E E 2 8 4 2
F 2 F 1 A C 0 7
A B C D E F 7 8

Word 3
Word 2
Word 1
Word 0

width = 4 bytes

16

Memoria byte-direccionable: Escritura

Ejemplo: Escribir (store) la palabra almacenada en el registro $t7 en la

dirección de memoria 0x2C (4410)

Código ensamblador de MIPS:   sw $t7, 44($0)
‐ Tras la ejecución, se almacena en MEM[44] el valor $t7 = 0xA2E5F0C3

Word Address

Data

0000002C

A2 E5 F0 C3 Word 11



00000008
00000004
00000000



01 EE 28
42 Word 2
F2 F1 AC 07 Word 1
AB CD EF 78 Word 0

17

Operandos: Constantes/Inmediatos

• En MIPS las constantes se denominan datos inmediatos porque se

definen en la propia instrucción.

• Al no ser necesario leerlos ni de un registro ni desde memoria,
• La operación suma inmediata (addi) suma un dato inmediato a

están disponibles de forma inmediata.

una variable (almacenada en un registro).

• Un dato inmediato es una constante de 16 bits (positiva o

negativa), escrita en complemento a 2.

¿Es necesario implementar la resta inmediata (subi)?

Código en alto nivel (lenguaje C)

a = a + 4;
b = a - 12;

// Código ensamblador de MIPS

# $s0 = a, $s1 = b
addi $s0, $s0, 4
addi $s1, $s0, -12

18

Índice

• Arquitectura y Tecnología de Computadores

• El lenguaje Ensamblador
• ISA MIPS. El juego de instrucciones

• Programación

1919

Los Formatos en MIPS

• Los computadores sólo entienden 1’s y 0’s.

• El

lenguaje Máquina es la representación de las instrucciones en

binario.

• Como señala el primer principio “la simplicidad favorece la

regularidad”, los datos y las intrucciones en MIPS son de 32 bits.

• Para las instrucciones, MIPS tiene tres tipos de formato:

 R‐Type: todos los operandos están en registros
 I‐Type: aparte de registros hay un operando inmediat
  • Links de descarga
http://lwp-l.com/pdf16361

Comentarios de: Unidad 3. El procesador I: Diseño del juego de Instrucciones. El lenguaje máquina (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad