Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porFlorencio Catalan Modificado hace 10 años
1
Circuitos Digitales II MIPS: Almacenamiento de datos. Formatos de instrucción Formatos de instrucción Semana No.4 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño A. (prof. en comisión) gpatino@udea.edu.co Departamento de Ingeniería Electrónica Facultad de Ingeniería
2
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Almacenamiento de datos El almacenamiento de datos es justo la operación contraria a la carga, de manera que el formato es bastante similar. Use la instrucción sw para copiar una palabra (word) desde un registro-fuente a una dirección en memoria. sw src, offset(base) Igual que en el caso anterior, el offset es una constante con signo.
3
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Ejemplo de almacenamiento de datos Considere el ejemplo *a = b + c; Use la instrucción sw para almacenar
4
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Almacenamiento a un arreglo Considere el ejemplo a[3] = b + c; Use el offset de la instrucción sw :
5
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Almacenamiento de arreglos complejos Considere el ejemplo a[i] = b + c; Use el offset de la instrucción sw : b => $s1, c=> $s2, i =>$s3, a=> $s4
6
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Un ejemplo de arreglo tipo short ANSI C requiere un short para ser al menos de 16 bits y no más que un int, pero sin definir el tamaño exacto. Para nuestros propósitos, tratemos un short como de 2 bytes. Así, con un arreglo short, un valor c[7] está en c + 7*2, con desplazamiento de 1 hacia la izquierda.
7
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Mapeo de memoria I/O Las instrucciones de transferencia de datos pueden ser usadas para mover datos desde y para registros de dispositivos de I/O. Una operación de carga mueve datos desde un registro de un dispositivo de I/O para un registro del CPU, y una operación de almacenamiento mueve datos desde un registro del CPU para registro de un dispositivo de I/O.
8
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Resumen: Load/Store en el MIPS
9
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Formato de las Instrucciones El tipo básico de instrucciones tiene cuatro componentes : Nombre de la operación Operando del primer dato-fuente. Operando del segundo dato-fuente. Operando del destino dst, src1 y src2 son los nombres de los registros ($).
10
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Lenguaje de Máquina del MIPS: Campos del formato de instrucciones
11
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Lenguaje de Máquina del MIPS (…cont) Instructions, like registers and words of data, are also 32 bits long Example: add $t0, $s1, $s2 registers have numbers, $t0=8, $s1=17, $s2=18 Instruction Format: 00000010001100100100000000100000 op rs rt rd shamt funct Can you guess what the field names stand for?
12
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Formatos de Instrucción del ISA del MIPS
13
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Tipos de Formato en el MIPS
14
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Lenguaje de Máquina del MIPS (…cont) Consider the load-word and store-word instructions, What would the regularity principle have us do? New principle: Good design demands a compromise Introduce a new type of instruction format I-type for data transfer instructions other format was R-type for register Example: lw $t0, 32($s2) 35 18 8 32 op rs rt 16 bit number Where's the compromise?
15
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Instructions: bne $t4,$t5,LabelNext instruction is at Label if $t4 $t5 beq $t4,$t5,LabelNext instruction is at Label if $t4 = $t5 j LabelNext instruction is at Label Formats: Addresses are not 32 bits ? How do we handle this with load and store instructions? Direcciones en instrucciones de Branch y Jump op rs rt 16 bit address op 26 bit address I J
16
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Instructions: bne $t4,$t5,LabelNext instruction is at Label if $t4$t5 beq $t4,$t5,LabelNext instruction is at Label if $t4=$t5 Formats: Could specify a register (like lw and sw) and add it to address use Instruction Address Register (PC = program counter) most branches are local (principle of locality) Jump instructions just use high order bits of PC address boundaries of 256 MB Addresses in Branches op rs rt 16 bit address I
17
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2
18
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Modos de direccionamiento en el MIPS según el formato de instrucción
19
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2
20
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Direccionamiento por desplazamiento : El contenido de un registro más un offset (registro indexado). Dado que R0 siempre contiene cero: R0 + offset direccionamiento absoluto. Si offset = 0 direccionamiento indirecto por registro. Otros Submodos de direccionamiento en el MIPS
21
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Bibliography, Assembler program and exercises Computer Organization & Design, 3rd Edition. The hardware/software Interface. David Patterson & J. Hennessy. Chapter 3 Mips Assembler and Runtime Simulator. Mars http://courses.missouristate.edu/KenVollmar/MARS/ ---Operation manual Exercises Quiz No. 1. Several versions. Partial No. 1. Several versions Fibbonacci examples. Several versions.
22
The General Computer Architecture An overview of the cpus Datapath unit: The single-cycle datapath as an introduction to the multicycle (pipeline) datapath.
23
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 General Computer Architecture Having studied numbers, combinational and sequential logic, and assembly language programming, we begin the study of the overall computer system.
24
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The ALU or DataPath
25
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The Central Processor Unit (CPU)
26
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The ALU
27
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The MIPS computer : An example of Bit- Slicing The MIPS 32-bit ALU processing unit is simply an amalgam 0f 32 1-bit processors.
28
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 ALU components
29
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 ALU components (…cont)
30
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The Program Counter Architecture
31
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 More ALU components
32
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 ALU Arquitecture for Processing
33
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 More ALU components – Data Memory
34
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The Sign Extender
35
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Data Bus Connection in a Load Instruction
36
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Data Bus Connection in a Store Instruction
37
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Branch Instructions
38
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Conditional Branch Circuit
39
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Jump Instruction
40
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Jump ALU Path
41
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Combining the Elements to Make a Complete ALU
42
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Data Buses and ALU Register/Register Functions
43
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Load/Store Functions (Read or Write)
44
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Adding the Instruction Fetch Circuit
45
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Completing ALU Design
46
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The Single-Cycle ALU What we have accomplished in this ALU design is to come up with all the processing hardware necessary to implement the MIPS instruction set. Note that we have NOT considered the control circuits (that tell the ALU what to do), and will cover those next lecture. This basic MIPS processor design is referred to as the single cycle ALU (or sometimes the single cycle CPU). Why is this? The reason is that this MIPS CPU (more or less the original implementation of the MIPS instructions) is designed so that ANY instruction can be processed in one cycle of the CPU clock. Lets consider how this single cycle CPU works.
47
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 The Single-Cycle ALU (…cont) Consider what happens when the clock ticks. The PC is already updated. The instruction at memory location [PC] is retrieved. [PC] [PC+4] Instruction is decoded/registers are identified (operands). Register output buses send data into ALU; ALU function is identified. Register data flows through the ALU and is processed. (In loads/stores, data memory is accessed for load or store.) The memory or ALU results are stored back in a register, if necessary. Since the ALU is basically combinational logic, the tick of the clock governs ALU register behavior, which times the process. A single clock cycle is from rising to rising or falling to falling edge of the clock. Let us use falling to falling as the reference (remember: a master-slave ffs output changes on the falling edge of the clock).
48
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Single Cycle Timing
49
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Single Cycle Timing (…cont)
50
Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia 2011-2 ALU Design Summary
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.