3 - Arquitectura interna de un up

UPMDIE INDUSTRIALES 3 - Arquitectura interna de un uP Componentes básicos [email protected] Lenguaje ensamblador y código máquina Ciclo básico de ejecuci
Author:  Guest

2 downloads 154 Views 2MB Size

Recommend Stories


Tema 3: ARQUITECTURA DE COMUNICACIONES
REDES DE ÁREA LOCAL 1° ASI Tema 3: ARQUITECTURA DE COMUNICACIONES 1. 2. 3. 4. 5. 6. 7. Conceptos de arquitectura estructurada Elementos de la arqui

Arquitectura de un ordenador
Unidad Central de Proceso. {CPU}. Memoria. Buses. {MCA}. Puertos de Entrada-Salida

3. Representación interna de la información
1 Representación de la información 3. Representación interna de la información Importante Ya hemos visto que en informática se utiliza el sistema bi

ARQUITECTURA DE UN PC
1 INSTITUTO DE ENSEÑANZA Y CAPACITACION TECNICA DE LA SABANA Centro de Educción para el Trabajo y el Desarrollo Humano ARQUITECTURA DE UN PC Concepto

Blocks Weeds* Up To 3 Months Guaranteed!
Blocks Weeds* Up To 3 Months Guaranteed! GARDEN STOP WEEDS * Before They Start! Not for Use on Lawns Precautionary Statements CAUTION Causes mo

Arquitectura de Computadores II Clase #3
Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos    Regis

Story Transcript

UPMDIE INDUSTRIALES

3 - Arquitectura interna de un uP Componentes básicos

[email protected]

Lenguaje ensamblador y código máquina

Ciclo básico de ejecución de una instrucción Algunos ejemplos ©Universidad Politécnica de Madrid

Componentes básicos de la CPU: Registros, ALU y CU



CPU: Es la encargada de todas las operaciones y movimiento de datos. 

Banco de registros: almacena datos y resultados de operaciones con la ALU. El tamaño de los registros suele coincidir con el de la memoria de datos, y define el tipo de CPU (8 bits, 32 bits,…)



Unidad Aritmético Lógica (ALU): Realiza operaciones entre registros (+, -, and, or…)



Unidad de control (CU): Secuencia las acciones en función de la instrucción a ejecutar Señales de control generadas por la CU

Bus de datos de la memoria de datos

Bus de datos de la memoria de prog.

R/W CS0 CS1

Memoria de programa

Unidad de Control

R15 R14 R13 ... ... R1 R0

Reset R/W CS0

Clock

Banco de registros

Memoria de datos

R/W

ALU

Bus de direcciones de la memoria de programa

CS1

Unidad Aritmético Lógica

Bus de direcciones de la memoria de datos

UPMDIE

INDUSTRIALES

Fundamentos de Electrónica: Microprocesadores

2

Lenguaje ensamblador y código máquina (I)  ¿Qué tipo de instrucciones ejecuta una CPU? En principio son instrucciones muy básicas: 

Respecto a los datos, puede: • Cargar un registro con un dato de la memoria o una constante – Ejemplos:

LD R0, 1000 == R0  M(1000)

LDI R0, 5 == R0  5

• Operar dos registros con la ALU (guardando el resultado el uno de ellos) – Ejemplos:

ADD R0, R3 == R0  R0 + R3

NOT R4 == R4  R4

• Guardar el contenido de un registro en la memoria o en otro registro – Ejemplos: 

ST R3, FC00 == M(FC00)  R3

MOV R5, R4 == R4  R5

Respecto a las instrucciones, puede: • Ejecutar secuencialmente una instrucción detrás de otra (según están en la memoria) • Saltar de una parte a otra del programa de forma incondicional – Ejemplo:

JMP 2000 == saltar a la instrucción que está en la posición 2000 y continuar la ejecución desde allí

• Saltar unas cuantas instrucciones de forma condicional en función de los resultados de la última operación que hizo la ALU – Ejemplo:

BREQ 100 == Salta 100 instrucciones más adelante si el resultado de la última operación con la ALU fue 0

• Saltar a una parte del programa en función de alguna señal externa (se verá) UPMDIE

INDUSTRIALES

Fundamentos de Electrónica: Microprocesadores

3

Lenguaje ensamblador y código máquina (II)



¿Cómo se ejecutaría un programa escrito, por ejemplo, en C? • El compilador transforma el código en C para realizar la funcionalidad descrita a través de ese conjunto de instrucciones básicas • Ejemplo: (versión algo simplificada respecto a cómo resultaría en la realidad):

Código en C // Declaración variables byte a = 0; byte i = 0;

Código en «ensamblador»

LDI r0, 0 ST r0, 204

; ; ; ; ;

LDI r0, 0 ST r0, 204

; inicializamos la variable ‘i’ con 0 ; lo guardo en su sitio

}

LD r3, 200 ADD r3, r0 ST r3, 200

; cargo r3 con el valor de la variable ‘a’ ; le sumo el valor de ‘i’ ; y guardo el valor en su lugar (o sea, a = a + i)

... ...

INC r0 ST r0, 204

; ; ; ; ; ; ; ; ;

// Bucle for for(i = 0; i < 20; i++) {

LDI r0, 0 ST r0, 200

cargamos r0 con 0, y lo almacenamos en la posición de memoria 200, que albergaría el valor de la variable ‘a’ (lo decide el compilador) idem con la posición 204, que albergaría la variable ‘i’

a = a + i;

LDI r1, 20 SUB r1, r0 BRGT -7

...

incremento el valor de ‘i’ lo guardo en su sitio para que el valor en la memoria y en los registros sea coherente cargamos r1 con 20 (el valor del final del bucle) le restamos r0 (‘i’), para comparar si i < 20 si el resultado es mayor que 0 entonces i < 20 y (BRanch if Greater Than) salto 7 posiciones hacia atrás. Si no, continuaría con la siguiente instrucción que hubiese después

UPMDIE

INDUSTRIALES

Fundamentos de Electrónica: Microprocesadores

4

Lenguaje ensamblador y código máquina (III) •

¿Cómo se codifican y almacenan las instrucciones en la memoria? – – –

Código ensamblador ... ... 3FF 400 401 403 404 406 408 40A 40B 40D 40E 410 411 412 413 ...

Las instrucciones en «lenguaje ensamblador» se codifican en un código binario. Según el micro, esta codificación podría hacerse en una o varias palabras por instrucción. Para realizar la codificación, se usa un «programa ensamblador», que se encarga de traducir las instrucciones en «lenguaje ensamblador» a «código máquina» Normalmente se utiliza una codificación por «campos» Ejemplo: Cómo quedarían algunas instrucciones del anterior programa en la memoria ADD r3, r0 ... ... ... LDI r0, ST r0, LDI r0, ST r0, LD r0, LD r3, ADD r3, ST r3, INC r0 ST r0, LDI r1, SUB r1, BRGT -7 ... ...

0 200 0 204 204 200 r0 200 204 20 r0

El código ensamblador es una representación «legible» del código máquina

UPMDIE

INDUSTRIALES

Cod. op.

Reg dest.

Reg orig.

Type

Operación con la ALU

3

0

Suma

0011

0000

0001

1001

403 404

LDI r1, 20 Cod. op.

Reg dest.

val

Cargar constante

1

20

0001

0001

00010100

ST r3, 200 Cod. op.

Reg dest.

val Guardar en memoria

... ... 3FF 400 401

3

no importa el valor

200

0010 0011 00000000 0000000011001000 Fundamentos de Electrónica: Microprocesadores

406 408 40A 40B

40D 40E 410 ... ... ...

... ... ... 0001000000000000 0010000000000000 0000000011001000 0001000100000001 0010000000000000 0000000011001100 0011000000000000 0000000011001100 0011001100000000 0000000011001000 1001001100000001 0010001100000000 0000000011001000 etc etc ...

Código máquina 5

Ciclo básico de ejecución de una instrucción (III)



¿Cómo se ejecutan las instrucciones? 

La CPU va leyendo cíclicamente instrucciones de la memoria de programa, las interpreta (en función de su codificación en binario), y la unidad de control (máquina de estados compleja) activa las señales de control correspondientes para ejecutarlas.

2

... LDI r0, ST r0, LDI r0, ST r0, LD r0, LD r3, ADD r3, ST r3, INC r0 ST r0, LDI r1, SUB r1, BRGT -7 ...

R/W

0 200 0 204 204 200 r0 200

CS

Reset

204 20 r0

Clock

405

1 UPMDIE

INDUSTRIALES

4

ADD r3, r0

Memoria de instrucciones ... 3FF 400 401 402 403 404 405 406 407 408 409 40A 40B ...

--

Registro de instrucciones 0000000011001000

Unidad de Control Contador de programa

0405

---... 6

R15 R14 R13

20 4

R1 R0

Memoria de datos

R3 5

3 ALU

--

1 – Búsqueda de la instrucción 2 – Decodificación de la instrucción 5 3 – Operación/Ejecución 4 – Carga/Almacenamiento en registros/memoria 5 – Incremento del contador de programa Fundamentos de Electrónica: Microprocesadores 6

... ... 1FD 1FE 200 201 202 203 204 205 206 207 ... ...

Ciclo básico de ejecución de una instrucción (III)



¿Cómo se ejecutan las instrucciones? 

La CPU va leyendo cíclicamente instrucciones de la memoria de programa, las interpreta (en función de su codificación en binario), y la unidad de control (máquina de estados compleja) activa las señales de control correspondientes para ejecutarlas.

2 Memoria de instrucciones ... 3FF 400 401 402 403 404 405 406 407 408 409 40A 40B ...

... LDI r0, ST r0, LDI r0, ST r0, LD r0, LD r3, ADD r3, ST r3, INC r0 ST r0, LDI r1, SUB r1, BRGT -7 ...

1001001100000001

R/W

0 200 0 204 204 200 r0 200

CS

Reset

204 20 r0

Clock

1 INDUSTRIALES

4

ADD r3, r0

405

UPMDIE

--

Registro de instrucciones 1001001100000001

Unidad de Control Contador de programa

0405

---... 6

R15 R14 R13

20 4

R1 R0

Memoria de datos

R3 5

3 ALU

--

1 – Búsqueda de la instrucción 2 – Decodificación de la instrucción 5 3 – Operación/Ejecución 4 – Carga/Almacenamiento en registros/memoria 5 – Incremento del contador de programa Fundamentos de Electrónica: Microprocesadores 7

... ... 1FD 1FE 200 201 202 203 204 205 206 207 ... ...

Ciclo básico de ejecución de una instrucción (IV)



¿Cómo se ejecutan las instrucciones? 

Terminada una instrucción, se repite el ciclo con la siguiente (o con la que corresponda si es que ha habido algún salto a otra parte del código)

4

2 ST r3, 200

Memoria de instrucciones ... 3FF 400 401 402 403 404 405 406 407 408 409 40A 40B ...

... LDI r0, ST r0, LDI r0, ST r0, LD r0, LD r3, ADD r3, ST r3, INC r0 ST r0, LDI r1, SUB r1, BRGT -7 ...

R/W

0 200 0 204 204 200 r0 200

CS

Reset

204 20 r0

Clock

406

1 UPMDIE

INDUSTRIALES

10

Unidad de Control Contador de programa

0406

---... 10

R15 R14 R13

20 4

R1 R0

Memoria de datos

... ... 1FD 1FE 200 201 202 203 204 205 206 207 ... ...

R3 10

ALU

200

1 – Búsqueda de la instrucción 2 – Decodificación de la instrucción 5 3 – Operación/Ejecución 4 – Carga/Almacenamiento en registros/memoria 5 – Incremento del contador de programa Fundamentos de Electrónica: Microprocesadores 8

3

Ejemplo: arquitectura AVR

Banco de registros

Memoria de programa

Elementos de la Unidad de Control Unidad Aritmético Lógica

CPU

Memoria de datos Dispositivos de E/S

UPMDIE

INDUSTRIALES

Extraído de la hoja de características de los microcontroladores AtMega de Atmel Fundamentos de Electrónica: Microprocesadores

9

Comparando: Un Intel I7 frente a un AtMega168 Cracterística

AtMega168

Intel Core I7 (Quad)

Ratio (aprox)

Ancho de bus

8

64

x8

Nº de transistores

< 100.000

~731.000.000

x10.000

Nº de pines

28

~1155

x40

Frecuencia de trabajo

16MHz

~3.2GHz

x200

Memoria de trabajo típica

16KB prog. / 1KB datos ~4-8GBytes

x1.000.000

MIPS/MFLOPS

16/0,5

~75.000/60.000

x5.000/x120.000

Consumo

20mW

~100W

x5.000

Precio

< 2$

~350$

x200

Intel Core i7 - 263 mm2

UPMDIE

INDUSTRIALES

http://blog.ioactive.com/2008_01_01_archive.html

AtMega - 24 mm2

http://blog.sina.com.cn/s/blog_54f48a4b01009bdf.html

Fundamentos de Electrónica: Microprocesadores

10

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.