0% encontró este documento útil (0 votos)
74 vistas42 páginas

DataPath and Controller Design - Es

El documento describe el diseño de una ruta de datos y control para un procesador MIPS simplificado. Se implementarán instrucciones de referencia a memoria, aritmético-lógicas y de flujo de control. Se necesitarán bloques funcionales como una unidad aritmético lógica, memoria de instrucciones y datos, un contador de programa, y registros. La implementación incluirá estas unidades funcionales y gestionará el estado secuencialmente usando relojes.

Cargado por

Paúl Narváez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas42 páginas

DataPath and Controller Design - Es

El documento describe el diseño de una ruta de datos y control para un procesador MIPS simplificado. Se implementarán instrucciones de referencia a memoria, aritmético-lógicas y de flujo de control. Se necesitarán bloques funcionales como una unidad aritmético lógica, memoria de instrucciones y datos, un contador de programa, y registros. La implementación incluirá estas unidades funcionales y gestionará el estado secuencialmente usando relojes.

Cargado por

Paúl Narváez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 42

Machine Translated by Google

Diseño de ruta de datos y control

• Diseñaremos un procesador MIPS simplificado • Las


instrucciones soportadas son – instrucciones de
referencia a memoria: lw, sw – instrucciones
aritmético-lógicas: add, sub, and, or, slt – instrucciones de flujo de
control: beq, j

• Implementación Genérica:

– usar el contador de programa (PC) para proporcionar la dirección de


la instrucción – obtener la instrucción de la memoria – leer registros –
usar la instrucción para decidir exactamente qué hacer

• Todas las instrucciones usan la ALU después de leer los registros


¿Por qué? referencia de memoria? ¿aritmética? ¿flujo de control?

1
Machine Translated by Google

Que bloques necesitamos

• Necesitamos una ALU

– Ya hemos diseñado eso • Necesitamos


memoria para almacenar inst y datos
– La memoria de instrucciones toma la dirección y suministra instantáneamente
– La memoria de datos toma la dirección y proporciona datos para lw
– La memoria de datos toma la dirección y los datos y los escribe en la memoria
• Necesitamos administrar una PC y su mecanismo de actualización •
Necesitamos un archivo de registro para incluir 32 registros
– Leemos dos operandos y escribimos un resultado en el archivo de registro
• Algunas veces, parte del operando proviene de la instrucción . • Podemos
agregar compatibilidad con la clase inmediata de instrucciones . • Podemos
agregar compatibilidad con J, JR, JAL.

2
Machine Translated by Google

Implementación sencilla

• Incluir las unidades funcionales que necesitamos para cada instrucción

Dirección de
instrucción

MemWrite
ordenador personal

Instrucción Agregar suma

Instrucción
Dirección Leer
memoria datos dieciséis 32
firmar
extender
Escribir Datos
datos memoria
una. Memoria de instrucciones b.Contador de programas c.sumador

ALUcontrol
5 Leer 3 MemRead

registro 1 Leer
5 datos 1 una. unidad de memoria de datos b. Unidad de extensión de letreros
Números Leer
de registro Cero
registro 2
Registros Datos ALU
5 Escribir resultado ALU
registro Leer ¿Por qué necesitamos estas cosas?
datos 2
Escribir
Datos
datos

RegWrite

una. Registros b. ALU

3
Machine Translated by Google

Más detalles de implementación

• Vista abstracta/simplificada:

Datos

Registro #
ordenador personal Dirección Instrucción Registros ALU Dirección

Instrucción Registro #

memoria Datos
Registro # memoria

Datos

• Dos tipos de unidades funcionales:


– elementos que operan sobre valores de datos (combinacionales)
• Ejemplo: ALU
– elementos que contienen estado (secuencial)
• Ejemplos: Programa y memoria de datos, archivo de registro

4
Machine Translated by Google

Gestión de elementos de estado

• Desbloqueado vs. Relojeado

• Relojes utilizados en lógica


síncrona : ¿cuándo se debe actualizar un elemento que contiene estado?

flanco descendente

Tiempo del ciclo

flanco ascendente

5
Machine Translated by Google

Formato de instrucción MIPS

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

REGISTRO 1 REGISTRO 2
CARGAR DIRECCIÓN COMPENSAR
LW

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

REGISTRO 1 REGISTRO 2
DIRECCIÓN DE LA TIENDA COMPENSAR
SUDOESTE

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

REGISTRO 1 REGISTRO 2
DIRECCIÓN DE SUCURSAL COMPENSAR
EQB/BNE/J

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

TIPO R REGISTRO 1 REGISTRO 2 horario de verano CANTIDAD DE TURNO AGREGAR/Y/O/SLT

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

REGISTRO 1 REGISTRO 2
DATOS INMEDIATOS
YO TECLEO

31 26 25 21 20 16 15 11 10 sesenta y cinco 0

SALTO
SALTO DIRECCIÓN

6
Machine Translated by Google

Construyendo la ruta de datos

• Use multiplexores para unirlos


PCSrc

Agregar
múltiple

4 Añadir
resultado ALU
Desplazar a

la izquierda 2

Registros
Leer 3 operación ALU
MemWrite
Leer ALUSrc
registro 1
ordenador personal
Leer
dirección Leer datos 1 MemtoReg
registro 2 Cero
Instrucción ALU
Escribir Leer Leer
resultado ALU Dirección
registro datos 2 datos M
Memoria de
Escribir múltiple
instrucciones ux
datos
Escribir memoria de datos
RegWrite datos
dieciséis 32
firmar
MemRead
extender

7
Machine Translated by Google

Una ruta de datos completa para las instrucciones de tipo R

• Se pueden ejecutar Lw, Sw, Add, Sub, And, Or, Slt


• Para j (salto) necesitamos un multiplexor adicional
PCSrc

Agregar

múltiple
ALU 0
4 Añadir
resultado

Desplazar a
RegWrite
la izquierda 2

Instrucción [25–21] Leer


registro 1 Leer MemWrite
Leer
ordenador personal

datos 1
dirección Instrucción [20–16] Leer
ALUSrc MemtoReg
registro 2 Cero
Instrucción
1 Leer
1 ALU
[31–0] Escribir datos 2 Leer
resultado ALU Dirección 1
registro datos
Instrucción METRO

Instrucción [15–11] múltiple Escribir múltiple


memoria 0 Registros ux
datos
0
Datos 0
Escribir
RegDst datos memoria
dieciséis 32
Instrucción [15–0] firmar
extender
mando MemRead
ALU

Instrucción [5–0]

ALUOP

8
Machine Translated by Google

Qué más se necesita en la ruta de datos

• Compatibilidad con j y jr
– Para ambos, el valor de la PC debe provenir de otro lugar

– Para J, la PC es creada por 4 bits (31:28) de la PC antigua, 26 bits de IR (27:2) y 2 bits


son cero (1:0)

– Para JR, el valor de PC proviene de un registro

• Compatibilidad con JAL


– La dirección es la misma que para J inst

– La PC VIEJA debe guardarse en el registro 31

• ¿Y qué pasa con las instrucciones de operandos inmediatos?

– Segundo operando de la instrucción, pero sin desplazamiento

• Compatibilidad con otras instrucciones como lw y escritura instantánea inmediata

9
Machine Translated by Google

Operación para cada instrucción

LW: SUDOESTE:
Tipo R/I/S: Tipo BR: Tipo JMP:

1. LEER INST. 1. LEER INST. 1. LEER INST. 1. LEER INST. 1. LEER

INST

2. LEER REGISTRO 1 2. LEER REGISTRO 1 2. LEER REGISTRO 1 2. LEER REGISTRO 1 2.

LEER REGISTRO 2 LEER REGISTRO 2 LEER REGISTRO 2 LEER REGISTRO 2

3. AGREGAR REG 1 + 3. AGREGAR REG 1 + 3. OPERAR en REG 3. SUB REG 2 3.


DESPLAZAMIENTO DESPLAZAMIENTO 1 / REG 2 desde REG 1

4. LEER MEM 4. ESCRIBIR MEM 4. 4.


4.

5. ESCRIBIR REG2 5. 5. ESCRIBIR DST 5.


5.

10
Machine Translated by Google

Operación de ruta de datos

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
11
Machine Translated by Google

Nuestra estructura de control simple

• Toda la lógica es combinacional

• Esperamos a que todo se calme y se haga lo correcto

– Es posible que ALU no produzca la "respuesta correcta" de inmediato

– usamos señales de escritura junto con el reloj para determinar cuándo escribir

• Tiempo de ciclo determinado por la longitud del camino más largo

Estado Estado
elemento 1 lógica combinacional elemento
2

Ciclo de reloj

Estamos ignorando algunos detalles como la configuración y los tiempos de espera

12
Machine Translated by Google

Puntos de control

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
13
Machine Translated by Google

Operación de instrucción LW

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
14
Machine Translated by Google

Operación de instrucción SW

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
15
Machine Translated by Google

Operación de instrucción tipo R

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
dieciséis
Machine Translated by Google

BR-Instrucción Operación

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
17
Machine Translated by Google

Operación de instrucción de salto

4
A METRO

D tu METRO

D AGREGAR X tu
Cambio X
Izquierda 2

Y
jmp
25-00

cero br

25-21
RA1
ordenador personal
INST RD1
IA
MEMORIA 20-16
RA2
REGISTRO
31-00
INST EXPEDIENTE ALU
MAMÁ
DATOS
METRO
RD2
Washington
WD
METRO
MEMORIA
U
15-11 tu
X WD Maryland
NOSOTROS
X
Señor MW METRO

RDES
tu
ALU ALU
15-00 Señal X
Ext. SRC ESTAFA

05-00
ALUOP Memreg

31-26
CONTROL
18
Machine Translated by Google

Control

• Para cada instrucción

– Seleccionar los registros a leer (siempre leer dos)

– Seleccione la segunda entrada ALU

– Seleccionar la operación a realizar por ALU

– Seleccione si la memoria de datos se va a leer o escribir


– Seleccione qué está escrito y dónde en el archivo de registro
– Seleccione lo que va en la PC
• La información proviene de los 32 bits de la instrucción

• Ejemplo:
agregue $8, $17, $18 Formato de instrucción:
000000 10001 10010 01000 00000 100000

op rs rt rd funcion simulada

19
Machine Translated by Google

Agregar control a DataPath


0

METRO

tu
X

Agregar 1
resultado ALU
Agregar
Desplazar a

la izquierda 2
RegDst
4 Rama

MemRead

Instrucción [31– 26] MemtoReg


Control
ALUOP
MemWrite

ALUSrc

RegWrite

Instrucción [25– 21] Leer


Leer
ordenador personal registro 1 Leer
dirección
datos 1
Instrucción [20– 16] Leer
Cero
Instrucción registro 2
0 Registros Leer ALU
[31– 0] Escribir 0 Leer
M datos 2 resultado ALU Dirección 1
Memoria de datos
tu registro METRO

M
tu
instrucciones X tu
Instrucción [15– 11] Escribir X
1 X
datos 1
memoria de datos 0
Escribir
datos

dieciséis 32
Instrucción [15– 0] firmar
extender mando
ALU

Instrucción [5– 0]

recuerdo registro Memoria Memoria

Instrucción RegDst ALUSrc registro Escribe Leer Rama de escritura ALUOp1 ALUp0
formato R 0 0 0 0 0 0
lw 10 1 1 11 1 0 0 10 0
sudoeste
X 1 X 0 0 1 0 0 0
beq X 0 X 0 0 0 1 0 1

20
Machine Translated by Google

Control de ALU

• Operación de ALU basada en el tipo de instrucción y el código de función


– por ejemplo, ¿qué debe hacer la ALU con cualquier instrucción?
• Ejemplo: lw $1, 100 ($2)


35 2 1 100

op rs rt compensación de 16 bits

• Entrada de control ALU

000 Y
001 O
010 agregar

110 sustraer
111 fijado en menos de

• ¿Por qué el código para restar es 110 y no 011?

21
Machine Translated by Google

Otra información de control

• Debe describir el hardware para calcular la entrada de control ALU de 3 bits


– tipo de instrucción dada 00 =
lw, sw
ALUOP
01 = beq, calculado a partir del tipo de instrucción
10 = aritmética

11 = Saltar
– código de función para aritmética

• El control se puede describir utilizando una tabla de verdad:

ALUOP Campo de función Operación


ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 XXXXXX 010
X 1 XXXXXX 110
1 XXX 0 0 0 0 010
1 XXX 0 0 1 0 110
1 XXX 0 1 0 0 000
1 XXX 0 1 0 1 001
1 XXX 1 0 1 0 111
22
Machine Translated by Google

Implementación de Control

• Lógica combinacional simple para realizar las tablas de verdad

Entradas

Op5
op4
ALUOP Op3
Op2
bloque de control ALU
op1
ALUOp0 op0

ALUOp1

Salidas
formato R yo sudoeste
beq
Operación2 RegDst
F3
ALUSrc
Operación
F2 MemtoReg
Operación1
F(5–0)
RegWrite
F1
MemRead
Operación0
MemWrite
F0
Rama

ALUOp1

ALUOpO

23
Machine Translated by Google

Una ruta de datos completa con control

24
Machine Translated by Google

Ruta de datos con instrucción de control y salto

25
Machine Translated by Google

Calendario: Implementación de ciclo único

• Calcular el tiempo del ciclo asumiendo retrasos insignificantes excepto:


– memoria (2ns), ALU y sumadores (2ns), registro de acceso a archivos (1ns)
PCSrc

Agregar

múltiple

4 Agregar
0
resultado ALU
Desplazar a
RegWrite
la izquierda 2

Instrucción [25– 21] Leer

Leer registro 1 Leer MemWrite


ordenador personal
datos 1
dirección Instrucción [20– 16] Leer
ALUSrc MemtoReg
registro 2 Cero
Instrucción
1 Leer
1 ALU
[31– 0] Escribir datos 2 Leer
METRO
resultado ALU Dirección 1
registro datos
Instrucción
Instrucción [15– 11] ux Escribir múltiple
memoria 0 datos Registros múltiple
0
Datos 0
Escribir
RegDst datos memoria
dieciséis 32
Instrucción [15– 0] firmar
extender
mando MemRead
ALU

Instrucción [5– 0]

ALUOP

26
Machine Translated by Google

Hacia dónde nos dirigimos

• Diseñe una ruta de datos para nuestra máquina especificada en las siguientes 3
diapositivas • Problemas de ciclo único:
– ¿Qué pasaría si tuviéramos una instrucción más complicada como punto
flotante? – desperdicio de área
• Una solución:

– use un tiempo de ciclo “más pequeño” y use diferentes números de ciclos


para cada instrucción usando una ruta de datos “multiciclo”:

Registro de

instrucciones
Datos
ordenador personal Dirección
A

Registro #
Instrucción
Memoria o datos Registros ALU ALUSalida

Registro de Registro #
datos de B
Datos
memoria
Registro #

27
Machine Translated by Google

Especificación de la máquina

• Ruta de datos de 16 bits (puede ser de 4, 8, 12, 16,


24, 32) • Instrucción de 16 bits (puede ser cualquier
número de ellos) • PC de 16 bits (puede ser de 16, 24, 32
bits) • 16 registros (pueden ser 1, 4, 8, 16, 32) • Con m
registro, registre m bits para cada registro • La
compensación depende de la compensación esperada de los
registros • La compensación de rama depende de la dirección
de salto esperada • Muchos compromisos se realizan en función del número de bits en instrucción

28
Machine Translated by Google

Instrucción

• LW R2, #v(R1) ; Cargar memoria desde dirección (R1) + v • SW


R2, #v(R1) ; Almacene la memoria en la dirección (R1) + v • Tipo
R: OPER R3, R2, R1; Ejecutar R3 ß R2 OP R1
– Cinco operaciones ADD, AND, OR, SLT, SUB •
Tipo I – OPER R2, R1, V ; Realizar R2 ß R1 OP V
– Cuatro operaciones ADDI, ANDI, ORI, SLTI
• Tipo B – BC R2, R1, V; Bifurcación si se cumple la condición para direccionar PC+V
– Dos operaciones BNE, BEQ
• Clase de turno – TIPO DE TURNO R2, R1; Desplazar R1 de tipo y resultado a R2
– Una operación
• Jump Class -- JAL y JR (JAL se puede usar para Jump)
– ¿Cuáles son las implicaciones de J vs JAL?
– Dos instrucciones

29
Machine Translated by Google

Bits de instrucción necesarios

• LW/SW/BC: requiere valores de código de operación, R2, R1


y V • Tipo R: requiere valores de código de operación, R3, R2
y R1 • Tipo I: requiere valores de código de operación, R2, R1
y V • Clase de turno – Requiere código de operación, R2, R1 y valor
de tipo de cambio • JAL requiere código de operación y dirección de
salto • JR requiere código de operación y dirección de registro •
Código de operación : puede ser un número fijo o variable de bits •
Dirección de registro: 4 bits si hay 16 registros • Cuántos bits en V?
• ¿Cuántos bits en el tipo de cambio? – 4 para 16 tipos, suponga un
cambio de bit a la vez • ¿Cuántos bits hay en la dirección de salto?

30
Machine Translated by Google

Actuación

• Medir, informar y resumir • Tomar decisiones

inteligentes • Ver a través de la exageración del

marketing • Clave para comprender la motivación

organizacional subyacente

¿Por qué algunos hardware son mejores que otros para diferentes programas?

¿Qué factores del rendimiento del sistema están relacionados con el hardware?
(por ejemplo, ¿Necesitamos una nueva máquina o un nuevo sistema operativo?)

¿Cómo afecta el conjunto de instrucciones de la máquina al rendimiento?

31
Machine Translated by Google

¿Cuál de estos aviones tiene el mejor rendimiento?

Avión Pasajeros Alcance (millas) Velocidad (mph)

Boeing 737-100 101 630 598


Boeing 747 470 4150 610
BAC/Sud Concorde 132 4000 1350
douglas dc-8-50 146 8720 544

•¿Cuánto más rápido es el Concorde en comparación con el 747?

•¿Cuánto más grande es el 747 que el Douglas DC-8?

32
Machine Translated by Google

Rendimiento de la computadora: TIEMPO, TIEMPO, TIEMPO

• Tiempo de respuesta (latencia)


— ¿Cuánto tiempo tarda en ejecutarse mi trabajo?
— ¿Cuánto tiempo se tarda en ejecutar un trabajo?
— ¿Cuánto tiempo debo esperar para la consulta de la base de datos?

• Rendimiento
— ¿Cuántos trabajos puede ejecutar la máquina a la vez?
— ¿Cuál es la tasa de ejecución promedio?
- ¿Cuánto trabajo se está haciendo?

• Si actualizamos una máquina con un nuevo procesador, ¿qué aumentamos?


Si añadimos una nueva máquina al laboratorio, ¿qué aumentamos?

33
Machine Translated by Google

Tiempo de ejecución

• Tiempo transcurrido :
cuenta todo (accesos a disco y memoria, E/ S, etc.) : un número útil, pero a
menudo no es bueno para fines de comparación
• tiempo de CPU

– no cuenta la E/S ni el tiempo dedicado a ejecutar otros programas – se


puede dividir en tiempo del sistema y tiempo del usuario

• Nuestro enfoque: tiempo de CPU del usuario

– tiempo dedicado a ejecutar las líneas de código que están "en" nuestro programa

34
Machine Translated by Google

Ciclos de reloj

• En lugar de informar el tiempo de ejecución en segundos, a menudo usamos ciclos

segundos ciclos segundos


= ´
programa programa ciclo

• Los “ticks” del reloj indican cuándo comenzar las actividades (una abstracción):

tiempo

• tiempo de ciclo = tiempo entre tics = segundos por ciclo • tasa de reloj
(frecuencia) = ciclos por segundo (1 Hz. = 1 ciclo/seg)
1
Una de 200Mhz. el reloj tiene un ´109 = 5 nanosegundos
Tiempo del ciclo
200 ´106

35
Machine Translated by Google

Cómo mejorar el rendimiento

segundos ciclos ´ segundos


=
programa programa ciclo

Entonces, para mejorar el rendimiento (si todo lo demás es igual) puede

________ el número de ciclos necesarios para un programa, o

________ el tiempo del ciclo del reloj o, dicho de otra manera,

________ la frecuencia del reloj.

36
Machine Translated by Google

¿Cuántos ciclos se requieren para un programa?

• Podría asumir que # de ciclos = # de instrucciones

...

struc
ció
in
1an
instrucción
da
2 instrucción
ra
3 4to 5º 6º

tiempo

Esta suposición es incorrecta,

diferentes instrucciones toman diferentes cantidades de tiempo en diferentes máquinas.

¿Por qué? pista: recuerde que estas son instrucciones de máquina, no líneas de código C

37
Machine Translated by Google

Diferentes números de ciclos para diferentes instrucciones.

tiempo

• La multiplicación toma más tiempo que la suma

• Las operaciones de punto flotante toman más tiempo que las de enteros

• Acceder a la memoria lleva más tiempo que acceder a los registros

• Punto importante: cambiar el tiempo del ciclo a menudo cambia el número de


ciclos requeridos para varias instrucciones (más adelante)

38
Machine Translated by Google

Ahora que entendemos los ciclos

• Un programa dado requerirá

– algún número de instrucciones (instrucciones de máquina)

– algún número de ciclos

– algún número de segundos

• Tenemos un vocabulario que relaciona estas cantidades:

– tiempo de ciclo (segundos por ciclo)

– frecuencia de reloj (ciclos por segundo)

– CPI (ciclos por instrucción)


una aplicación intensiva de punto flotante podría tener un CPI más alto

– MIPS (millones de instrucciones por segundo)


esto sería más alto para un programa que usa instrucciones simples

39
Machine Translated by Google

Actuación

• El rendimiento está determinado por el tiempo de


ejecución . • ¿Alguna de las otras variables es igual al
rendimiento? – ¿ # de ciclos para ejecutar el programa?
– ¿ # de instrucciones en el programa? – # de ciclos por
segundo? – ¿ Número promedio de ciclos por instrucción?
– ¿ Número promedio de instrucciones por segundo?

• Error común: pensar que una de las variables es indicativa de


rendimiento cuando en realidad no lo es.

40
Machine Translated by Google

# de instrucciones Ejemplo

• Un diseñador de compiladores intenta decidir entre dos secuencias de código


para una máquina en particular. Según la implementación del hardware,
hay tres clases diferentes de instrucciones: Clase A, Clase B y Clase C,
y requieren uno, dos y tres ciclos (respectivamente).

La primera secuencia de código tiene 5 instrucciones: 2 de A, 1 de B y 2 de C


La segunda secuencia tiene 6 instrucciones: 4 de A, 1 de B y 1 de C.

¿Qué secuencia será más rápida? ¿Cuánto cuesta?


¿Cuál es el CPI para cada secuencia?

41
Machine Translated by Google

Ejemplo de MIPS

• Se están probando dos compiladores diferentes para 100 MHz. máquina con
tres clases diferentes de instrucciones: Clase A, Clase B y Clase C, que
requieren uno, dos y tres ciclos (respectivamente). Ambos compiladores se
utilizan para producir código para una gran pieza de software.

El código del primer compilador usa 5 millones de instrucciones Clase A, 1


millones de instrucciones Clase B y 1 millón de instrucciones Clase C.

El código del segundo compilador usa 10 millones de instrucciones de


Clase A, 1 millón de instrucciones de Clase B y 1 millón de instrucciones de Clase C.

• ¿Qué secuencia será más rápida según MIPS?


• ¿Qué secuencia será más rápida según el tiempo de ejecución?

42

También podría gustarte