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

Post on 15-Aug-2021

23 views 0 download

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

Arquitectura de ComputadorasLenguaje Ensamblador

J. Irving Vasquezivasquez@ccc.inaoep.mx

Centro de Innovacion y Desarrollo Tecnologico en Computo

16 de marzo de 2016

1 / 33

Table of contents

Introduccion

Componentes circuitales

Unidad Central de Procesamiento

MIPS instruction set

Representacion de Instrucciones

Logic Operations

2 / 33

Introduccion

3 / 33

Modelo de Bus

Figura : Modelo de Bus

4 / 33

MemoriaI Arreglo de registros numerados

I Formatos de almacenamiento

5 / 33

Memoria

6 / 33

Unidad Central de Procesamiento

7 / 33

Data path

8 / 33

Fetch-execute cycle

9 / 33

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

Tipo de computadoras

I CISC - Complex Instruction SetComputers

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

I RISC - Reduced Instruction SetComputers

11 / 33

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

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

Ejemplos

a = b + c

d = a− e

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

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

14 / 33

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

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

Constantes

I Add inmediate

I Cero, registro $zero

I ¡Haz lo comun rapido!

16 / 33

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

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

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

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

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

Instruction Format

I Register Type. R-type

I Inmediate type. I-type

20 / 33

Instruction Format

Figura : MIPS instruction Encoding

21 / 33

Assambly language translation

I Example

22 / 33

Operaciones Logicas

23 / 33

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

Making Decisions

I Exercise

25 / 33

If

bne $s3, $s4, Else

add $s0, $s1, $s2

j Exit

Else: sub $s0,$s1,$s2

Exit:

26 / 33

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

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

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

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

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

Procedures

Use $a0 to $a3 for parameters

30 / 33

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

Nested procedure

32 / 33

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