Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J....

38
Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V´ asquez [email protected] Centro de Innovaci´on y Desarrollo Tecnol´ogico en C´omputo 16 de marzo de 2016 1 / 33

Transcript of Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J....

Page 1: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Arquitectura de ComputadorasLenguaje Ensamblador

J. Irving [email protected]

Centro de Innovacion y Desarrollo Tecnologico en Computo

16 de marzo de 2016

1 / 33

Page 2: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Table of contents

Introduccion

Componentes circuitales

Unidad Central de Procesamiento

MIPS instruction set

Representacion de Instrucciones

Logic Operations

2 / 33

Page 3: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Introduccion

3 / 33

Page 4: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Modelo de Bus

Figura : Modelo de Bus

4 / 33

Page 5: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

MemoriaI Arreglo de registros numerados

I Formatos de almacenamiento

5 / 33

Page 6: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Memoria

6 / 33

Page 7: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Unidad Central de Procesamiento

7 / 33

Page 8: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Data path

8 / 33

Page 9: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Fetch-execute cycle

9 / 33

Page 10: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Unidad Central de Procesamiento

I Instruction Set. Coleccion de instrucciones que un procesadorpuede ejecutar.

I CompilacionI Lenguaje alto nivel (Compilacion)I Lenguaje ensamblador (Ensamble)I Codigo maquina

10 / 33

Page 11: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Tipo de computadoras

I CISC - Complex Instruction SetComputers

MULT 2:3 5:2a = a * b

I RISC - Reduced Instruction SetComputers

11 / 33

Page 12: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

CISC vs RISC

I Perfomance equation

CISC RISC

Enfocada al harware Enfocada al Software

Carga y descarga de memo-ria incorporada en las in-trucciones

Carga y descarga son ins-trucciones separadas

Codigos cortos altos ciclospor segundo

Bajos ciclos por segundolargos codigos

Hardware para interpretar yguardar instrucciones

Harware necesario para losregistros

12 / 33

Page 13: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

MIPS Instruction set

I Microprocessor without Interlocked Pipeline Stages

I Basado en RISC

I Se utiliza en diversos sitemas embebidos: Windows Ce,Routers Cisco, Sony Play Station, Nintendo 64, PSP.

13 / 33

Page 14: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Ejemplos

a = b + c

d = a− e

f = (g + h) + (i + j)

f = (g + h) − (i + j)

14 / 33

Page 15: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Carga y Almacenamiento

I Load and Store

I Ejemplo:g = h + A[8];

I $s3 contiene la direccion base

I A[12] = A[10] + A[8];

15 / 33

Page 16: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Carga y Almacenamiento

I Load and Store

I Ejemplo:g = h + A[8];

I $s3 contiene la direccion base

I A[12] = A[10] + A[8];

15 / 33

Page 17: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Constantes

I Add inmediate

I Cero, registro $zero

I ¡Haz lo comun rapido!

16 / 33

Page 18: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Representacion de Instrucciones

I ¿Como entiende la maquina las instrucciones?

I Ejemplo:

I Fields:

I Primero y ultimo indican la operacion

I Segundo indica el primer operando

I Tercero indica el segundo operando

I Cuarto indica el receptor

I Quinto opcional para la instruccion

17 / 33

Page 19: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Representacion de Instrucciones

I ¿Como entiende la maquina las instrucciones?

I Ejemplo:

I Fields:

I Primero y ultimo indican la operacion

I Segundo indica el primer operando

I Tercero indica el segundo operando

I Cuarto indica el receptor

I Quinto opcional para la instruccion

17 / 33

Page 20: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Instruction Format

I Instruction format. A form of representation of an instructioncomposed of fields of binary numbers.

I Machine language.Binary representation used forcommunication within a computer system.

I Machine code. Sequence of instructions in machine language.

18 / 33

Page 21: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

MIPS Instruction format

I op: Opcode: denotes the operation and format of aninstruction.

I rs: The fist register source operand.

I rt: The second register source operand.

I rd: Register destination operand.

I shamn: Shift amount.

I funct: Function code. Variant of the op field.

I ¿Limitaciones?

19 / 33

Page 22: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

MIPS Instruction format

I op: Opcode: denotes the operation and format of aninstruction.

I rs: The fist register source operand.

I rt: The second register source operand.

I rd: Register destination operand.

I shamn: Shift amount.

I funct: Function code. Variant of the op field.

I ¿Limitaciones?

19 / 33

Page 23: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Instruction Format

I Register Type. R-type

I Inmediate type. I-type

20 / 33

Page 24: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Instruction Format

Figura : MIPS instruction Encoding

21 / 33

Page 25: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Assambly language translation

I Example

22 / 33

Page 26: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Operaciones Logicas

23 / 33

Page 27: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Making Decisions

I Conditional branches

I if statement with a go to statement

I Branch if equal

I Brach if not equal

I Jump

j L1 # go to label L

24 / 33

Page 28: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Making Decisions

I Exercise

25 / 33

Page 29: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

If

bne $s3, $s4, Else

add $s0, $s1, $s2

j Exit

Else: sub $s0,$s1,$s2

Exit:

26 / 33

Page 30: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Loops

Loop: sll $t1, $s3, 2

add $t1, $t1, $s6

lw $t0,0($t1)

bne $t0, $s5, Exit

addi $s3, $s3 , 1

j Loop

Exit

27 / 33

Page 31: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

I Procedure. A stored subroutine that performs a specific taskbased on the parameters with which it is provided.

I Steps:

1. Put parameters in a place where the procedure can accessthem.

2. Transfer control to the procedure.3. Acquire the storage resources needed for the procedure.4. Perform the desired task.5. Put the result value in a place where the calling program can

access it.6. Return control to the point of origin, since a procedure can be

called from several points in a program.

28 / 33

Page 32: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

I Procedure. A stored subroutine that performs a specific taskbased on the parameters with which it is provided.

I Steps:

1. Put parameters in a place where the procedure can accessthem.

2. Transfer control to the procedure.3. Acquire the storage resources needed for the procedure.4. Perform the desired task.5. Put the result value in a place where the calling program can

access it.6. Return control to the point of origin, since a procedure can be

called from several points in a program.

28 / 33

Page 33: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

I MIPS software follows the following convention for procedurecalling in allocating its 32 registers:

I $a0 - $a3: four argument registers in which to passparameters

I $v0 - $v1: two value registers in which to return valuesI $ra: one return address register to return to the point of

origin

I Jump and link instructionI jal ProcedureAddress

I Jump registerI jr $ra

29 / 33

Page 34: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

I MIPS software follows the following convention for procedurecalling in allocating its 32 registers:

I $a0 - $a3: four argument registers in which to passparameters

I $v0 - $v1: two value registers in which to return valuesI $ra: one return address register to return to the point of

origin

I Jump and link instructionI jal ProcedureAddress

I Jump registerI jr $ra

29 / 33

Page 35: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

Use $a0 to $a3 for parameters

30 / 33

Page 36: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Procedures

leaf example:

addi $sp, $sp, 12

sw $t1, 8($sp)

sw $t0, 4($sp)

sw $s0, 0($sp)

add $t0, $a0, $a1

add $t1, $a2, $a2

sub $s0, $t0, $t1

add $v0, $s0, $zero

lw $s0, 0($sp)

lw $t0, 4($sp)

lw $t1, 8($sp)

addi $sp, $sp, 12

jr $ra31 / 33

Page 37: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Nested procedure

32 / 33

Page 38: Arquitectura de Computadoras - WordPress.com...Arquitectura de Computadoras Lenguaje Ensamblador J. Irving V asquez ivasquez@ccc.inaoep.mx Centro de Innovaci on y Desarrollo Tecnol

Referencias

William Stallings. Computer Organization and Architecture.Prentice Hall. 1993.

Miles J. Murdocca and Vincent P. Heuring. Principios dearquitectura de computadoras. Prentice Hall.

Hennesy Patterson. Computer organization and Design.

33 / 33