Sistemas con mP y mC.
Tema N° 1: Introducción a la Arquitectura de Computadoras Eduardo Daniel Cohen –
[email protected]
http://www.herrera.unt.edu.ar/procesadores
2014
Sistemas con Microprocesadores y Microcontroladores
1
Temas a Tratar: Introducción • Información General del Curso • Componentes de un Computador. – – – –
I/O, Memoria, CPU, Buses. CPU – Camino de Datos - Control El ciclo de la Instrucción Todo junto: ejecución de un programa.
• Conceptos de E/S. • Conceptos de Sw – Lenguaje de Máquina, Lenguaje Superior. – Sistema Operativo, Ensamblador, Intérprete, Compilador
2014
Sistemas con Microprocesadores y Microcontroladores
2
¿De qué se trata este curso? • Un Procesador en un chip (mP). • Integrando Memoria y otros dispositivos en el chip tenemos un Microcontrolador (mC). • El mC se usa para propósitos específicos: – Celulares, alarmas, juguetes, controles… – Muy bajo precio, muy bajo consumo, pequeños.
• Reemplazó y mejoró diseños con lógica cableada. • Impensable hace 40 años… revolucionó la electrónica. • Importante fuente de trabajo e innovación. • Herramientas de desarrollo accesible. • ¡¡Un Estudiante puede desarrollar en su casa!! 2014
Sistemas con Microprocesadores y Microcontroladores
3
Procesadores de Propósito General • Ejemplo: Pentium, Athlon, Celeron... • Se usan en Computadoras (ej. PCs) • De Propósito general: – Desarrollo de diversos programas. – Ejecución de los más diversos programas. – Herramientas de trabajo: Word, Excel, Internet…
• • • •
Consumo y Potencia muy superior a los mC. Performance (rapidez) y Potencia de Cálculo. Se estudiarán en Arquitectura de Computadoras ¿Qué hay más en el mundo? – ¿Procesadores de Uso General o de uso Específico?
2014
Sistemas con Microprocesadores y Microcontroladores
4
Objetivos de la Materia • Temas a Aprender – Cómo funcionan las computadoras, fundamentos. – Qué es un Microcontrolador. – Programación de un Microcontrolador. – Hardware de un Microcontrolador. Conectarlo al Mundo. – Manejar una placa basada en Microprocesador (Hw y Sw). – Aprender a “Aprender”. – Ritmo y Actualización Básico para Arq. de Computadoras.
• ¿Para qué aprender estos temas? – Diferencia esencial con otras profesiones en Informática. – Precio muy accesible y amplia disponibilidad en el mercado. – Fuente de Trabajo y de Proyectos Finales de la Carrera.
2014
Sistemas con Microprocesadores y Microcontroladores
5
¿Qué estaremos viendo? • Módulo I
• Módulo II
– Introducción. ¿qué es una computadora? • CPU – Memoria – I/O. • Buses. • Conceptos generales del Hw y Sw. – Programación del mC MC68HC08.
– Hw del mC MC68HC08. – Mapas de Memoria y Dispositivos Internos. – Interrupciones – DMA
– Sistema de I/O. • Puertos • Timers – Conexión Dispositivos Externos.
• Laboratorios. – Sw. – Placas.
2014
Sistemas con Microprocesadores y Microcontroladores
6
Funcionamiento del Curso - I • Dictado Conceptual – Ing. Daniel Cohen e Ing. Esteban Volentini. – 2 clases por semana en general – de 2 hs c/u. (L y Mi de 8 a 10 hs). – A veces Viernes de 8 a 10 hs. – Importante: Venir a Clase. – Consultas después de cada clase. – Quizes en Clase – lectura clase anterior. • Mejor un 0 en un quiz que un Ausente (concepto). 2014
Sistemas con Microprocesadores y Microcontroladores
7
Funcionamiento del Curso - II • Trabajos Prácticos. – Docentes. • Ing. Maximiliano Cecilia -
[email protected]. • Ing. Matías Scida -
[email protected] • Erika Beker -
[email protected] • Otros ayudantes estudiantiles a confirmar.
– Prácticos: en general Viernes de 8 a 10 hs. • 1 vez por semana aprox. – Problemas a resolver individualmente del sitio Web. • Evaluación de cada práctico – 1 vez por semana. • Dictado del Práctico – 1 hora después de la evaluación. • Horarios: Viernes de 8 a 10 hs “en general”. • Consultas a Estudiantes 2 hs dos veces por semana. • Se usarán herramientas de Desarrollo (simulador)
2014
Sistemas con Microprocesadores y Microcontroladores
8
Funcionamiento del Curso IV •
Consultas. –
Solo quien traiga un planteo. •
Si se dá el planteo se pierde el aprendizaje.
•
Recordar conceptos teóricos, el planteo sale a partir de allí.
•
Quien no sepa la teoría no recibirá respuesta.
•
En lugares públicos y horarios pre-informados.
–
Consignas / Enunciados.
–
Enseñar a Aprender •
Situaciones Nuevas.
• Trabajo de Ejercitación – no copiarse. 2014
Sistemas con Microprocesadores y Microcontroladores
9
Funcionamiento del Curso V •
Regularización – 40%. –
2 Parciales (60%).
–
Parcial 2 representa 60% de la nota de Parciales.
–
Evaluación Prácticos (30%)
–
Participación en clase, Quizzes (10%) •
2014
Nota de Defensa, caso contrario parciales 70%.
–
Porcentajes tentativos, cambian si aparecen “trampas”.
–
Quien copia recibe “0”.
–
Hay que obtener 40% entre los dos parciales.
Sistemas con Microprocesadores y Microcontroladores
10
Funcionamiento del Curso VI • Correlativas para Inscribirse (Computación): – Diseño Lógico I (regular). – Estructura de Datos. (regular). – Electrónica I (aprobada).
• ¡Prueba Prerrequisitos Viernes Próxima Semana! – Equivale al primer práctico. – Ejercicios en la Web.
2014
Sistemas con Microprocesadores y Microcontroladores
11
Funcionamiento del Curso V • Esta materia es Correlativa para: – Arquitectura de Computadoras (y muchas que le siguen). – Debe aprobarse al finalizar el Semestre. – Riesgo: perder un año.
2014
Sistemas con Microprocesadores y Microcontroladores
12
Atención: Ing. Electrónica • Algunos temas parecidos a EIV pero... – – – – –
Conceptos y puntos de vista diferentes. Funcionamiento de una computadora. Mayor profundidad. Especialización en Digitales y MCUs. Prerequisitos – deben rendir para repasar y aprender más, no es obligatorio aprobar.
• Correlativa: EIV
2014
Sistemas con Microprocesadores y Microcontroladores
13
Página de la Cátedra • Material de Ayuda – transparencias, bibliografía. • Anuncios y Novedades. • Información General – Programa de la Materia. • Parciales Años anteriores. • Trabajos Prácticos de Ejercitación. • Encuestas y quejas anónimas... La opinión de los estudiantes nos ayuda. • Calificaciones. • INSCRIBIRSE EN LA PAGINA.
2014
Sistemas con Microprocesadores y Microcontroladores
14
Foro de Cátedra • Por Facebook, https://www.facebook.com/groups/procesadore s/ • Consultas y opiniones temas específicos. • Temas generales de la Carrera. • Mayor comodidad: tiempo y lugar. • Práctica de lectoescritura. – Gran obstáculo al momento de rendir escritos.
• Muchas veces aparecen temas que se preguntan en parcial.
2014
Sistemas con Microprocesadores y Microcontroladores
15
Bibliografía • • • •
Transparencias. CPU08 Reference Manual, Motorola Inc., Rev 3, 2/2 Otros Manuales de Motorola. Primer Tema: Heuring (ver sitio Web).
Disponibles en el sitio Web de la Cátedra. http://www.herrera.unt.edu.ar/procesadores Recomendación: leer antes y después de clase.
2014
Sistemas con Microprocesadores y Microcontroladores
16
Reglamentación del Curso ¿Quedó claro el reglamento del Curso? Es todo lo explicado en el Funcionamiento del Curso. No lo olviden. Estas diapositivas están en el sitio Web.
2014
Sistemas con Microprocesadores y Microcontroladores
17
Plan de Mejoras 1. Muchos comentarios en 2012. Sus respuestas ayudarán a entender la filosofía de la materia. http://www.herrera.unt.edu.ar/arqcom/Descargas/OpinionesAlum nos.pdf 2. También en el sitio web de la cátedra podrán ver FAQs. 3. En 2013 hubo buenas observaciones no fue necesario hacer un plan de mejoras.
2014
Sistemas con Microprocesadores y Microcontroladores
18
Parciales Otras Asignaturas Muchos faltan cuando tienen parciales. Se atrasan más. No se puede asignar una semana sin clases para todos los parciales. Me avisan para ver si podemos dictar en otro día. Llevar las clases al día es lo mejor.
2014
Sistemas con Microprocesadores y Microcontroladores
19
Componentes de un Computador Desde Afuera: • Dispositivos I/O 1.10 Looking Ahead
ng is that comes from viewi The intellectual synthes ectives each the three persp a computer system from It ign. des puter cient, effective com leads to an effi machine functions erstand how a l is when you und architecture leve tem sys the , and er at the gate, ISA chine. Wheth
the ma ly understand nce, that you ful mputer Scie jective is in Co your career ob aspect of some other or ng, eri ok Engine that this bo Comp uter cerest hope it is our sin nding. computers t unde rsta viding tha pro by you will serve
– – – – –
Mouse Teclado Monitor Discos – Disketes Otros...
• Input / Output – – – –
¿Cuál es Input? ¿Output? ¿Input y Output? ¿Variedad de velocidades? – Comunica con el Mundo. 2014
Sistemas con Microprocesadores y Microcontroladores
20
Por dentro...
• Motherboard Procesador video
– – – –
Procesador (CPU) Memoria (M) Conectores - Bus Plaquetas de Expansión (I/O) • Placa wireless. • Procesador de Gráficos • Otros...
2014
Sistemas con Microprocesadores y Microcontroladores
21
Partes de un Computador – CPU – sistema complejo. – Dividir Funcionalmente: Acción (camino de Datos) y Control. – En síntesis: Control
Input Memory
Datapath CPU
2014
Output M
I/O
Sistemas con Microprocesadores y Microcontroladores
22
Memoria - M • Contiene DATOS y PROGRAMAS. • Ejemplo de Datos (X e Y) • Posición A – X • Posición B – Y
• Ejemplo de Programa: • Tome X de A • Súmele Y de B • Guarde el resultado en C.
• Concepto de Programa Almacenado • Puede ser manipulado como datos por otro programa.
2014
Sistemas con Microprocesadores y Microcontroladores
23
CPU - Procesador • Ejecuta los Programas. • Lee Instrucciones de Memoria • Las Decodifica • Las Ejecuta – Lee / Escribe Datos de Memoria – Recibe / Envía Datos a I/O – Realiza Operaciones Lógico-Artiméticas (PROCESA)
• Se compone de • Unidad de Control – fija qué se debe hacer y cuándo. • Camino de Datos: Registros, ALU, interconexión. – Se encarga de hacer.
• Analogía: Sistema Nervioso y Músculos.
2014
Sistemas con Microprocesadores y Microcontroladores
24
Camino de Datos • Ejemplo Simple C3
C1
n
A
Latch
ALU n
B
n
C4
C2
n • C1, C2, C3 y C4 son señales de control. • ¿De qué depende la cantidad de bits de C3? • ¿Para qué está el LATCH? LATCH?
2014
Sistemas con Microprocesadores y Microcontroladores
25
Concepto de Bus • Salida 3 State: • Posibilita conexión de salidas en forma directa a un conjunto de conectores = bus. • Se sube con OE=1 (output-enable) • Se baja con L=1 (LOAD) OE2
OE1
Bus
OE3
n L4
L5
– Se sube en varios lados. – Se baja en varios lados. – ¿Cuántos pueden subir a la vez? ¿y bajar? 2014
Sistemas con Microprocesadores y Microcontroladores
26
Camino de Datos – Ejemplo más elaborado • Se desea interconectar 7 Registros y un ALU. • R1, R2, ..., R7 y ALU. • Intercambiar Contenidos de Registros (Ri Rj) • Acceder al ALU desde cualquier Registro (RiALU) • Poner el resultado en cualquier Registro (ALU Rj)
• Solución 1 • Conectar todos contra todos. • Evaluar Ventajas y Desventajas.
2014
Sistemas con Microprocesadores y Microcontroladores
27
Solución 2 – 1 Bus • ¿Es solución? • Probar R1=R1+R2 y R3 R4, calcular ciclos de clock. • Ventajas y Desventajas. • El Bus es bidireccional.
C1
R1
C2
Bus L1 Latch1
m
2014
C3
n Latch2
ALU
A
R7
...
R2 L2
¿cuántas líneas en C1?
Sistemas con Microprocesadores y Microcontroladores
28
Banco de Registros • Observaciones: • Solo un registro se conecta a la vez. • Muchas señales de control = O(n)... ¿se podría reducir? • Se pueden poner todos juntos en un bloque. • Con nuevas entradas de Control: SELECCIÓN, LOAD, OE. • ¿Se podría eliminar L2?
C1
R1
C2
Bus L1 Latch1
...
R2
R7
C3
n Latch2
L2
ALU
A m
2014
Sistemas con Microprocesadores y Microcontroladores
29
Banco de Registros – Entradas de Control: SELECCIÓN, WR (LOAD), OE. – Ventaja: Integración – similar a una RAM. – ¿Cuántos bits lleva SEL? R0
SEL
R1
# líneas de control = O[log(n)] WR OE R7 DATA
2014
BUS
Sistemas con Microprocesadores y Microcontroladores
30
Solución 3 – 2 Buses • ¿Mejora la Velocidad? • Probar R1=R1+R2 y R3 R4, calcular ciclos de clock. • ¿Cuánto más rápido es la operación de suma? • ¿Puede eliminarse el Latch L1?
B1 DATA OUT
SELo
R0
SELi
R1
L1 Latch1
OE
ALU
A
WR
m
R7 DATA IN
B2 2014
Sistemas con Microprocesadores y Microcontroladores
31
Solución 4 – 3 Buses • Mejora la Velocidad • Probar R1=R1+R2 y R3 R4, calcular ciclos de clock. • ¿Cuánto más rápido es la operación de suma? • ¿Eliminar L1, ponerlo al costado? ¿L1 pasante?
B2 B1
DATA OUT
SEL1 SEL2 SEL3
R0
L1 Latch1
R1
m
WR OE
ALU
A R7 DATA IN
2014
Sistemas con Microprocesadores y Microcontroladores
B3 32
Memorias
Control
Input Memory
Datapath CPU
2014
Output M
I/O
Sistemas con Microprocesadores y Microcontroladores
33
Memoria - RAM • •
Funciona como una gran Tabla unidimensional. Una dirección de memoria es un índice en la tabla.
•
“Direccionamiento de Byte" : el índice apunta a una byte en M.
0 1 2 3 4 5 6 ...
8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data
• La celda básica es el flip-flop. Empacados en alta densidad. 2014
Sistemas con Microprocesadores y Microcontroladores
34
Tecnología de Memorias • Acceso Aleatorio (Random): • “Random”: tiempo de acceso es el mismo para todas las celdas.
– SRAM: Static Random Access Memory • Baja Densidad, alto consumo, cara, rápida • Estática: el contenido se mantiene indefinidamente con Vcc.
– DRAM: Dynamic Random Access Memory • Alta Densidad, bajo consumo, barato, lento. • Dinámica: necesita ser “refrescada” regularmente.
• Memorias de acceso “no aleatorio”. • Tiempo de acceso varía de lugar en lugar y de tiempo en tiempo. • Ejemplos: Discos, cintas (secuencial), CD-ROM 2014
Sistemas con Microprocesadores y Microcontroladores
35
Diagrama Lógico de una SRAM A N
WE_L
2 N words x M bit SRAM
OE_L
M
D
• Señales de Control: Write Enable y Output Enable • Generalmente se activan en “Low” (WE_L, OE_L). • OE_L permite Ahorrar Pins, unificando Din y Dout.
– WRITE: WE_L se activa (0), OE_L se desactiva (1) • D funciona como entrada de Datos.
– READ: WE_L se desactiva (1), OE_L se activa (0) • D es la salida de datos.
– INDEFINIDO: SI tanto WE_L como OE_L se activan: • Resultado no definido. ¡¡No hacerlo!!
2014
Sistemas con Microprocesadores y Microcontroladores
36
Memorias: SRAM y DRAM 1. ¿Cómo se puede verificar el tamaño en KB de estos chips? 2. Algunas RAM unifican WE_L y OE_L en un único R/W_L 3. ¿Para qué traen incorporados CS?
2014
Sistemas con Microprocesadores y Microcontroladores
37
La Interfase CPU–Memoria Data bus
Address bus
CPU m MAR
Main memory s m
Address
A0 – Am– 1
w MDR
b
D0 – Db– 1
0 1 2 3
w R/W Register file
REQUEST
2m – 1
COMPLETE
Control signals
1. MAR – Memory Address Register. • •
Contiene la dirección de los datos a leer o escribir en M. 2m es la dimensión del “espacio de direcciones”.
2. MDR – Memory Data Register. • •
• 2014
Contiene los datos a escribir o que se leen de M. w es el “ancho de palabra” del CPU. ¿w grande es bueno?
DATA BUS, ADDRESS BUS y CONTROL BUS. Sistemas con Microprocesadores y Microcontroladores
38
La Interfase CPU–Memoria Data bus
Address bus
CPU m MAR
Main memory s m
Address
A0 – Am– 1
w MDR
b
D0 – Db– 1
0 1 2 3
w R/W Register file
REQUEST
2m – 1
COMPLETE
Control signals
Secuencia de Eventos: Read: 1. CPU pone dirección en MAR, activa Read y REQUEST 2. Memoria envía el dato a MDR 3. Memoria activa COMPLETE
Write: 1. CPU carga MAR y MDR, activa Write y REQUEST 2. El contenido de MDR se escribe en celda indicada por MAR 3. Memoria activa COMPLETE
•¡Ojo!: No aparece CS, en la RAM no hay Request, ni Complete 2014
Sistemas con Microprocesadores y Microcontroladores
39
La Interfase CPU–Memoria Data bus
Address bus
CPU m MAR
Main memory s m
Address
A0 – AmÐ1
w MDR
b
D0 – Db Ð1
0 1 2 3
w R/W Register file
REQUEST
2m – 1
COMPLETE
Control signals
Consideraciones Adicionales: • Si b < w, se requieren w/b transferencias de b-bits a Memoria. • Algunos CPUs permiten leer o escribir palabras con tamaño < w Ejemplo: Intel 8088: m = 20, w = 16, s=b = 8 Se pueden leer o escribir Datos de 8- y 16-bit
• Si la memoria es suficientemente rápida, entonces puede omitirse la señal COMPLETE. • Algunos sistemas usan líneas OE y WE y omiten REQUEST 2014
Sistemas con Microprocesadores y Microcontroladores
40
Algunas Propiedades de Memoria Símbolo
Definición
Motorola CPU-08
Intel 8086
Pentium
w
Ancho de palabra del CPU
8 bits
16 bits
32 bits
m
Bits en una dirección de M
16 bits
20 bits
32 bits
s
Bits en menor unidad direccionable 8 bits
8 bits
8 bits
b
Ancho del Data Bus
8 bits
16 bits
32 bits
2m
Capac de palabras ancho s en M
216 words
220 words
232 bytes
2mxs Espacio de Mem. en bits
216 x 8 bits 220 x 8 bits 232 x 8 bits
Ancho de Palabra de CPU no siempre igual ancho data bus
2014
Sistemas con Microprocesadores y Microcontroladores
41
Espacio de Memoria
• Es la maxima cantidad de memoria que se puede conectar a un Procesador. • Esta dado por su capacidad de direccionamiento. • En general no todo se usa. • La ubicación de las partes usadas en el espacio de M forman el Mapa de Memoria.
2014
Sistemas con Microprocesadores y Microcontroladores
42
CPU - Registros Adicionales • Registros Adicionales: – PC – program Counter – dirección de la próxima instrucción. – IR – Instruction Register – contiene la instrucción actual:
2014
Sistemas con Microprocesadores y Microcontroladores
43
El Ciclo de la Instrucción
Instruction Fetch
Obtener instrucción de Memoria M(PC), guardar Instrucción en IR Actualizar PC
Instruction
2014
Decode
Determinar las acciones que se requieran
Execute
Ejecutar las acciones requeridas (leer o escribir en M o I/O, procesar en ALU...)
Sistemas con Microprocesadores y Microcontroladores
44
¿Qué debe especificar una instrucción? Flujo de Datos
• ¿Qué operación realizar? – Op code: add, load, branch, etc.
add r2, r1, r3
• ¿Dónde están los operando/s? add r2, r1, r3 – En registros del CPU, celdas de memoria, lugares de I/O o parte de una instrucción. • ¿Dónde se guarda el resultado? – En un registro, M, I/O o Inst.
add r2, r1, r3
• ¿Dónde está la próxima instrucción? – En el lugar de memoria a que apunta el PC – Para ej. salto – PC endloop
add r2, r1, r3
2014
br endloop
Sistemas con Microprocesadores y Microcontroladores
45
Formato de la Instrucción Op-Code
Operando 1
Operando 2
...
Operando n
1. Op-Code: Qué se hace. •
n bits – hasta 2n operaciones distintas.
2. Operandos: Con qué dato se hace. •
En general desde 0 a 3 operandos.
•
El dato puede estar en el campo de la Instrucción, en Memoria o en un Registro.
•
Modo de Direccionamiento: forma en que se especifica un dato en el campo Operando.
3. Puede haber más de un formato, dependiendo de Op-Code. 2014
Sistemas con Microprocesadores y Microcontroladores
46
3 Clases de Instrucciones • Movimiento de Datos – – – –
Tienen siempre una fuente y un destino. Load— La fuente es memoria y el destino un registro. Store— La fuente es un registro y el destino es memoria. Hay casos con fuentes y destino ambos M o ambos R.
• Procesamiento – Instrucciones Aritméticas y Lógicas. – Procesar uno o más operandos fuentes y guardar el resultado en un lugar de destino. – Add, Sub, Shift, etc.
• Control de flujo de Instrucciones (Saltos) – Alterar el flujo normal de control en lugar de ejecutar la siguiente instrucción de la dirección contigua. – Br Loc, Brz Loc2,—saltos condicionales o incondicionales.
2014
Sistemas con Microprocesadores y Microcontroladores
47
PSW – Program Status Word • Registro de Código de Condición (CCR). – Compuesto por flags que indican cómo fue el último resultado que los cambió. • Carry, Negative, Overflow, Zero, Half Carry, ...
– Sirven para implementar instrucciones de salto. • BZ (salte si cero), BN (salte si negativo), ...
– Algunas arquitecturas implementan saltos sin CCR • Veremos en Arquitectura de Computadoras.
• PSW – Program Status Word. – Contiene los flags (CCR) – Contiene información de estado del CPU (más adelante)
2014
Sistemas con Microprocesadores y Microcontroladores
48
Modos de Direccionamiento - I • Para escribir un programa se requiere: Algoritmo y Estructura de Datos. • Los modos sirven para acceder a estructuras de datos de forma eficiente. • Veremos algunos ejemplos:
2014
Sistemas con Microprocesadores y Microcontroladores
49
Modos de Direccionamiento - II •
•
Registro – para variables temporarias muy usadas. •
En el operando figura el número de un registro en el que está el dato.
• •
Si r2 contiene 3 y r3 contiene 4. Add r1, r2, r3 ; r1 7
Directo – variables globales. –
En el operando se escribe la dirección del dato en M. Ej. Si M(100H)=5 Ld r1, (100H) ; r15
2014
Sistemas con Microprocesadores y Microcontroladores
50
¿Cuáles son las componentes de un ISA? • ISA = Modelo del Programador de la máquina. máquina • Celdas de Almacenamiento – Registros de propósito general y especial en el CPU. – Muchas celdas de propósito general de igual tamaño en Memoria. – Almacenamiento relacionado con dispositivos I/O. • Formato de la Instrucción – Tamaño y significado de los diferentes campos de la Instrucción. – Modos de Direccionamiento. • El Set de Instrucciones de la Máquina. – Es el repertorio completo de las operaciones de la máquina. – Emplea celdas de almacenamiento, formatos y resultados del ciclo de la Instrucción. – El fabricante provee una tabla y manuales. 2014
Sistemas con Microprocesadores y Microcontroladores
51
Arquitectura del Set de Instrucciones (ISA)
• ISA = Información que se requiere para escribir programas en el CPU. • Presentaremos un CPU y su trayectoria de datos. • Presentaremos algunas Instrucciones. • Veremos todas las operaciones que se realizan para ejecutar un programa.
2014
Sistemas con Microprocesadores y Microcontroladores
52
Ej: Diagrama de Bloques CPU de 1 Bus: SRC - 1 CPU
CB
Control Unit Control signals out
R0
31
0 32 32-bit general purpose registers
Control unit inputs 31..0 32
31
0 PC
Data Path
R31
Main memory
Input/ output
IR A
A
B ALU C
MA To memory subsystem MD
Memory bus
C
2014
Sistemas con Microprocesadores y Microcontroladores
53
Comentarios Adicionales • Un solo Bus permite solo una transferencia de Registro a la vez. • El primer operando de la ALU siempre en A, resultado en C. ¿Por qué? • Segundo Operando de la ALU proviene siempre del Bus • Palabras de Mem de 32 bits. • Direccionamiento a Bytes en M. • MAR tiene 32 bits. • ¿Espacio de direcciones? • 32 Registros de uso General R(0...31) • Tiempo de Acceso a Mem = 1T 2014
31
0
31..0
R0 32 32-bit general purpose registers
32
31
0 PC
R31 IR A
MAR A A
B ALU C
To memory subsystem MDR
C
Sistemas con Microprocesadores y Microcontroladores
54
Trayectoria de Datos 31
0
31..0
R0 32 32-bit general purpose registers
32
31
0 PC
R31 IR A
MAR A
B ALU C
a AB
To memory subsystem MDR
a DB
C
2014
Sistemas con Microprocesadores y Microcontroladores
55
Descripción Formal de Instrucciones • RTN – Register Transfer Notation o RTL. • Descripción Abstracta – dice qué se hace pero no cómo se implementa. • Descripción Concreta – dice cómo se implementa. • Se trata de diseño – puede haber distintas implementaciones, con ventajas y desventajas. • Debe haber una única descripción abstracta. • Puede haber múltiples descripciones concretas. • La trayectoria de datos no forma parte del ISA.
2014
Sistemas con Microprocesadores y Microcontroladores
56
Instrucciones SRC-1 Formatos: 31 27 26 22 21 17 16 op ra rb 31 27 26 22 21 17 16 12 11 op ra rb rc
0 c2
Type 1 0 c3
Type 2
Abstract RTN: (IR M[PC]: PC PC + 4; instruction_execution); instruction_execution := ( • • • add (:= op= 12) R[ra] R[rb] + R[rc]: ld (:= op= 1) R[ra] M[disp] : st (:= op= 3) M[disp] R[ra] : ...) donde disp31..0 := ((rb=0) c216..0 {sign ext.} : (rb0) R[rb] + c216..0 {sign extend, 2's comp.} ) : Extender signo significa repetir el MSB. Implementación: R(0)=0 siempre y todo se simplifica. 2014
Sistemas con Microprocesadores y Microcontroladores
57
Preguntas
1. 2. 3. 4.
2014
¿Cómo sabe el CPU cuál tipo corresponde? ¿Qué instrucción está en tipo 1? ¿Cuál en tipo 2? ¿Extender el signo cambia el número?
Sistemas con Microprocesadores y Microcontroladores
58
RTN Concretas para ADD Abstract RTN: (IR M[PC]: PC PC + 4; instruction_execution); instruction_execution := ( • • • add (:= op= 12) R[ra] R[rb] + R[rc]: RTN concreta para add Paso T0 T1 T2 T3 T4 T5
RTN MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; IF A R[rb]; IEx. C A + R[rc]; R[ra] C;
31
0 32 32-bit general purpose registers
32
31
0 PC
R31 IR A
MAR A
B ALU C
• • •
31..0
R0
To memory subsystem MDR
C FETCH (IF) es igual para todas las instrucciones. En T0 se ejecutan parte de 2 RTs (IR M[PC]: PC PC + 4;) La ejecución de una sola RT abstracta en ADD toma 3 RTs concretas (T3, T4, T5)
2014
Sistemas con Microprocesadores y Microcontroladores
59
RTN Concretas para Ld y St Ld (:= op= 1) R[ra] M[disp] : St (:= op= 3) M[disp] R[ra] : donde disp31..0 := ((rb=0) c216..0 {sign ext.} : (rb0) R[rb] + c216..0 {sign extend, 2's comp.} ) :
Instrucciones Ld and St (load/store register from memory) 16@IR(16)# significa “repetir 16 veces el bit 16 de IR y concatenar con...”
Paso RTN para Ld RTN para St T0–T2 Instruction fetch T3 A (rb = 0 0: rb 0 R[rb]); R(0):=0 siempre T4 C A + (16@IR16#IR15..0); ext. signo T5 MAR C; T6 MDR M[MAR]; MDR R[ra]; T7 R[ra] MDR; M[MAR] MDR; 2014
Sistemas con Microprocesadores y Microcontroladores
60
Ejemplo de Programa • Datos • 00000100H • 00000104H • 00000108H
2 3
(valor de la palabra) (lugar para resultado)
• Programa • • • •
00000000H 00000004H 00000008H 0000000CH
ld ld add st
r1, r0, 0100H r2, r0, 0104H r3, r2, r1 r3, r0, 0108H
• Programa y Datos están en Memoria.
2014
Sistemas con Microprocesadores y Microcontroladores
61
Ejecución: Ld
r1, r0, 0100H
• Inicialmente PC=00000000H Paso RTN para ld Fetch T0 MAR PC: C PC + 4; T1 MDR M[MAR]: PC C ; T2 IR MDR; Ejecución T3 A (rb = 0 0: rb 0 R[rb]); T4 C A + (16@IR16#IR15..0); T5 MAR C; T6 MDR M[MAR]; T7 R[ra] MDR;
MAR=0, C=4 MDR=M(0)=Ld, PC=4 IR=Ld A=0 C=00000100H MAR=00000100H MDR=M(100H)=2 R(1)=2
• Veamos Paso a Paso. 2014
Sistemas con Microprocesadores y Microcontroladores
62
Fetch: Ld
r1, r0, 0100H
T0: MAR PC: C PC + 4;
0 PC Banco Registros
IR
0
A
MAR MDR C
4 2014
Sistemas con Microprocesadores y Microcontroladores
63
Fetch: Ld
r1, r0, 0100H
T0: MAR PC: C PC + 4; T1: MDR M[MAR]: PC C;
4 PC Banco Registros
IR
0
A
MAR MDR C
Ld
4 2014
Sistemas con Microprocesadores y Microcontroladores
64
Fetch: Ld
r1, r0, 0100H
T0: MAR PC: C PC + 4; T1: MDR M[MAR]: PC C; T2: IR MDR;
4 PC Banco Registros
IR
Ld A MAR MDR C
2014
Sistemas con Microprocesadores y Microcontroladores
Ld
65
Ejecución: Ld T0: T1: T2: T3:
MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; A (rb = 0 0: rb 0 R[rb]);
r1, r0, 0100H 0
r0
Banco Registros
4 PC IR
Ld 0 A MAR MDR C
2014
Sistemas con Microprocesadores y Microcontroladores
66
Ejecución: Ld T0: T1: T2: T3: T4:
MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; A (rb = 0 0: rb 0 R[rb]); C A + (16@IR16#IR15..0);
r1, r0, 0100H 4 PC
Banco Registros
IR
Ld r1, 0, 100H 0 A MAR MDR C
100H 2014
Sistemas con Microprocesadores y Microcontroladores
67
Ejecución: Ld T0: T1: T2: T3: T4: T5:
MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; A (rb = 0 0: rb 0 R[rb]); C A + (16@IR16#IR15..0); MAR C;
r1, r0, 0100H 4 PC
Banco Registros
IR
Ld 0 100H
A
MAR MDR C
100H 2014
Sistemas con Microprocesadores y Microcontroladores
68
Ejecución: Ld T0: T1: T2: T3: T4: T5: T6:
MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; A (rb = 0 0: rb 0 R[rb]); C A + (16@IR16#IR15..0); MAR C; MDR M[MAR];
r1, r0, 0100H 4 PC
Banco Registros
IR
Ld 0 100H
A
MAR MDR C
100H 2014
Sistemas con Microprocesadores y Microcontroladores
2
69
Ejecución: Ld T0: T1: T2: T3: T4: T5: T6: T7:
MAR PC: C PC + 4; MDR M[MAR]: PC C; IR MDR; A (rb = 0 0: rb 0 R[rb]); C A + (16@IR16#IR15..0); MAR C; MDR M[MAR]; R[ra] MDR;
r1, r0, 0100H 4 2
r1
PC
Banco Registros
IR
Ld 0 100H
A
MAR MDR C
100H 2014
Sistemas con Microprocesadores y Microcontroladores
2
70
Ejecución: Ld
r2, r0, 0104H
• PC = 00000004H, r1=2 Paso RTN para ld Fetch Ídem anterior – para vagos creativos T8 MAR PC: C PC + 4; MAR=4, C=8 T9 MDR M[MAR]: PC C; MDR=M(4)=Ld, PC=8 T10 IR MDR; IR=Ld Ejecución Ídem anterior – para vagos creativos T11 A (rb = 0 0: rb 0 R[rb]); A=0 T12 C A + (16@IR16#IR15..0); C=00000104H T13 MAR C; MAR=00000104H T14 MDR M[MAR]; MDR=M(104H)=3 T15 R[ra] MDR; R(2)=3
2014
Sistemas con Microprocesadores y Microcontroladores
71
Ejecución: Add r3, r2, r1 • PC = 00000008H, r1=2, r2=3 Paso RTN para ld Fetch Ídem anterior – para vagos creativos T16 MAR PC: C PC + 4; T17 MDR M[MAR]: PC C; T18 IR MDR; Ejecución T19 A R[rb]; T20 C A + R[rc]; T21 R[ra] C;
2014
MAR=8, C=12=CH MDR=M(8)=Add, PC=12 IR=Add A=R(2)=3 C=A+R(1)=3+2=5 R(3)=C=5
Sistemas con Microprocesadores y Microcontroladores
72
Ejecución: St
r3, r0, 0108H
• PC = 0000000CH, r1=2, r2=3, r3=5 Paso RTN para ld Fetch Ídem anterior – para vagos creativos T22 MAR PC: C PC + 4; T23 MDR M[MAR]: PC C; T24 IR MDR; Ejecución T25 A (rb = 0 0: rb 0 R[rb]); T26 C A + (16@IR16#IR15..0); T27 MAR C; T28 MDR R[ra]; T29 M[MAR] MDR;
2014
MAR=CH, C=10H=16 MDR=M(CH)=St, PC=16 IR=St A=0 C=00000108H MAR=00000108H MDR=R(3)=5 M(108H)=5
Sistemas con Microprocesadores y Microcontroladores
73
Conclusiones del Ejemplo • El CPU es sólo una máquina. • Siempre hace lo mismo – ciclo de la instrucción.
• El Programa es quien da la “inteligencia”. • Hay un programa que sintetiza un algoritmo.
• Al final el PC apunta a la siguiente instrucción. • Continúa indefinidamente. • “Para” con un retorno al Sistema Operativo. • Pero en el fondo no para, ejecuta el sistema operativo.
2014
Sistemas con Microprocesadores y Microcontroladores
74
Performance del Ejemplo • Tiempo de Ejecución: 30 T • Cantidad de Instrucciones: I = 4. • Ciclos T por Instrucción Promedio - CPI. • • • •
Depende del programa. En este caso resulta: 7,50. Tiempo de ejecución = I x CPI x T Aparecen las 3 variables que se pueden mejorar. – I: un buen ISA, buen programa: algoritmo, estruct. datos – CPI: mejorar la realización concreta del ISA. – T: mejorar la tecnología para usar un reloj más rápido.
2014
Sistemas con Microprocesadores y Microcontroladores
75
Ventajas de RTN • Permite describir el “qué” sin obligar a describir el “cómo”. • Especificación precisa y no ambigua, • al contrario de lenguajes naturales.
• Reduce errores: – Debido a mala interpretación o especificaciones imprecisas. – Confusiones en diseño e implementación —“error humano”
• ¡Permite al diseñador hacer chequeo de la especificación! • Las especificaciones pueden ser chequeadas y procesadas automáticamente mediante herramientas CAD. – Una especificación RTN puede ingresar a un generador que • Produce un simulador para la máquina especificada.
– Una especificación RTN puede ingresar a un generador de compilador. • Genera un compilador para crear un simulador. • Un programa en LM corre en el simulador. 2014
Sistemas con Microprocesadores y Microcontroladores
76
Lenguajes de Especificación - RTN Lenguaje que describe otro lenguaje (LM) se llama Metalenguaje
ISAspecification written in RTN RTN compiler Generated processor LM program and data
2014
SRC interpreter or simulator
Data output
Sistemas con Microprocesadores y Microcontroladores
77
Arquitectura Harvard • Arquitectura Tradicional – Von Newman. – Instrucciones y Datos comparten Memoria. – Ventaja: es simple
• Arquitectura Harvard – Memoria de Instrucciones separada de Memoria de Datos. – Permite implementar dos buses, uno para instrucciones y otro para datos, con la posibilidad de buscar la siguiente instrucción cuando se buscan los datos de la actual. 2014- D. Cohen
UNT - Arq. de Computadoras
78
Entrada / Salida Control
Input Memory
Datapath CPU
Output M
I/O
Gran Variedad de Dispositivos E/S y Velocidades de transferencia.
2014
Sistemas con Microprocesadores y Microcontroladores
79
Ejemplos de Dispositivos E/S Dispositivo Teclado Mouse Laser Printer Optical Disk Red-LAN Magnetic Disk Display Gráfico
Función Input Input Output Storage E/S Storage Output
Interlocutor Humano Humano Humano Máquina Máquina Máquina Humano
Tasa Transf. (Mb/s) 0,0001 0,0038 3,2000 80.000 20.000 – 266.000 44.000 – 125.000 2.100.000
¿Cómo hace un computador para manejar todo esto eficientemente? ¡No quedarse esperando un tecleo! ¡Hacer otras cosas mientras tanto!
2014
Sistemas con Microprocesadores y Microcontroladores
80
Conceptos de E/S Ej. Sistema Multitarea: Secretaria prepara Café. Alternativas: 1. 2.
3. 4. 5.
Ineficiente: Espera a que alguien pida y le sirve. No hace otra cosa (la echan por monotarea) Polling (encuestas): Cada media hora pregunta si alguien quiere café. Un reloj con alarma se lo recuerda. Si tiene otras urgencias no hace caso. Interrupciones: Cuando alguien quiere café la llama por el interno. No hace caso si hay urgencias. Acceso Directo (DMA): el que quiere café se sirve solo, si la cafetera se vacía suena alarma a la Secret. (Interrupt) Procesador Dedicado (IOP): dispensador automático de café y otras bebidas. Una vez por semana la Secretaria carga la máquina. Alarma si falla (Interrupt).
Lo mismo vale entre un CPU y dispositivo E/S 2014
Sistemas con Microprocesadores y Microcontroladores
81
Conceptos de E/S - Implementación 1. Lazo de Polling permanente. 2. Cada n instrucciones, reviso flag. 3. Señal Externa, provoca salto a Rutina Servicio de Interrupción. 4. Periférico transfiere Datos directo a Mem. • • •
Controlador DMA con puntero a lugar y cantidad de datos a transferir. Preparado inicialmente por CPU. Cuando termina pide interrupción.
5. IOP con programa preparado por CPU. • Cuando termina Interrumpe. ¿Qué es mejor (2) o (3)? 2014
Sistemas con Microprocesadores y Microcontroladores
82
Conexión CPU – Mundo Exterior 1. Conversión de Naturaleza de señales. • •
Ej. de temperatura a tensión o viceversa. Transductores o Actuadores.
2. Conversión de señales analógicas a Digital o viceversa. •
Mediante Conversores A/D o D/A.
3. Interfase con el Sistema: • • •
2014
Como uno o varios registros. De Datos. De Control.
Sistemas con Microprocesadores y Microcontroladores
83
Modularidad y Regularidad • Sistema Modular: – Compuesto por Módulos Independientes con reglas claras de interconexión. – Ej. Subrutinas.
• Sistema Modular Regular. – Todos los módulos tienen iguales reglas de interconexión. – Cuando dos módulos se conectan, el resultado se comporta como un nuevo módulo, con idénticas reglas de conexión. – Ej. Sumadores. 2014
Sistemas con Microprocesadores y Microcontroladores
84
Lenguaje de Máquina (LM) • Conformado por las Instrucciones del ISA. • Tal como son cargadas en memoria y leídas por el CPU. • Expresados como cadenas de ‘0’ y ‘1’. • Las primeras CPUs se programaban así.
• Problemas • • • • •
Propenso a errores: basta con cambiar un 1 por un 0. Ilegible. Indocumentable. Requiere mucho tiempo de las personas. Al principio lo caro eran las computadoras.
• Escribir en Hexadecimal es un primer avance.
2014
Sistemas con Microprocesadores y Microcontroladores
85
Lenguaje Assembler (LA) • Conformado por las Instrucciones del ISA. • Pero escritas en código mnemotécnico. • Correspondencia uno a uno con LM. • Es necesario traducirlas antes de ejecutarlas.
• Traductor = Ensamblador. • • • • •
2014
Tarea mecánica realizada por un programa traductor Instrucciones al traductor = Seudoinstrucciones. Incorpora también símbolos para variables y rótulos. Ejemplos ORG, DS, DC, EQU, END... Acepta Comentarios
Sistemas con Microprocesadores y Microcontroladores
86
Ej: programa en Lenguaje Ensamblador Algunas Seudoinstrucciones: DCW DSW ORG
fin:
Dos: Tres: Res:
2014
Define Constant Word Reserve Storage Word 100H Ubicar el código siguiente a partir de 100H
org ld ld add st
000H r1, 0, Dos r2, 0, Tres r3, r2, r1 r3, 0, Res
;comienza en 000H ;r1 = 2 ;r2 = 3 ;r3 = r2 + r1 = 2 + 3 = 5 ;M(108H) = r3 = 5
br org dcw dcw dsw end
fin 100H 2H 3H
;autolazo indefinido ;los datos a partir de 100H
;reservar 1 palabra para result.
Sistemas con Microprocesadores y Microcontroladores
87
Ensamblador Traducción: de Fuente (LA) a Objeto (LM) Fuente
Ensamblador
Progr Objeto
Ejecución: Corre el programa Objeto Datos Entrada
2014
Progr. Objeto
Sistemas con Microprocesadores y Microcontroladores
Datos Salida
88
Ventajas y Desventajas LA • Desventajas • • • • •
Cada máquina tiene un LA diferente LA está orientado a la máquina y no al usuario. Hay que ser un experto. Difícil desarrollar mercados... ¿Y por qué no se ponen de acuerdo en un solo LA?
• Ventajas • Manejo exacto de Tiempo y Memoria. • Para aplicaciones críticas en tiempo real.
2014
Sistemas con Microprocesadores y Microcontroladores
89
Lenguaje Superior (LS) • • • • • • •
Característica: 1 inst. LS n inst. LM Orientado a Problemas y a Usuarios. Independiente de la Máquina. ¿Ejemplos de Lenguajes Superiores? Traductor = Compilador. Traduce a LM o LA Traducción no es única, optimiza. Primero se compila, luego se carga y ejecuta.
2014
Sistemas con Microprocesadores y Microcontroladores
90
Compilador, Ensamblador, Lenguaje de Máquina temp = v[k];
Programa de Alto Nivel
v[k] = v[k+1]; v[k+1] = temp;
Compilador lw lw sw sw
Programa Lenguaje Assembler
$15, 0($2) $16, 4($2) $16, 0($2) $15, 4($2)
Ensamblador Programa Lenguaje de Máquina
0000 1010 1100 0101
1001 1111 0110 1000
1100 0101 1010 0000
0110 1000 1111 1001
1010 0000 0101 1100
1111 1001 1000 0110
0101 1100 0000 1010
1000 0110 1001 1111
interpretación de Máquina Especificación de señales de control
2014
Sistemas con Microprocesadores y Microcontroladores
91
Intérprete • • • •
Características similares al Compilador. Pero traduce y ejecuta en un solo paso. ¿Cuándo conviene Compilador y cuándo Intérprete? Observación: el control del CPU es un intérprete para ISA. Leer Instrucción Decodifica Ejecuta
2014
Sistemas con Microprocesadores y Microcontroladores
92
Sistema Operativo • ¿Cómo trabajar con un Computador? – ¿cómo cargo un programa? – ¿cómo manejo discos y monitor? • No basta con el Hw puro. • No basta con el ISA.
• Se necesitan Interfases. • Físicas (Hw – I/O: teclado, monitor, ...) • Lógicas (manejadores del Hw, Intérpretes).
• Y Optimizar y Facilitar uso de recursos... • Tanto de Hw como de Sw. • Compartir. • Presentar interfases transparentes a emplear por el usuario. • Seguridad, confiabilidad. 2014
Sistemas con Microprocesadores y Microcontroladores
93
Visión Jerárquica por Niveles Compilador Ensamblador SO ISA Control Hw
2014
Sistemas con Microprocesadores y Microcontroladores
94
Arquitectura de Computadoras ° Cordinación de
niveles de abstracción
Aplicación Sistema Operativo Compilador Procesador
Sistema I/O
Instruction Set Architecture
Diseño Digital Diseño de Circuitos ° Bajo presión de fuerzas que cambian muy rapidamente
2014
Sistemas con Microprocesadores y Microcontroladores
95
Fuerzas en Arq. de Computadoras Tecnología
Aplicaciones
Lenguajes de Programación
Arquitectura De Computadores
Sistemas Operativos
Historia (A = F / M)
2014
Sistemas con Microprocesadores y Microcontroladores
96
¿Qué Hemos Visto? • Computadora 3 partes: CPU, M, I/O. • I/O – gran diversidad de dispositivos. – Eficiencia (cafetera): • • • • •
2014
Polling. Interrupciones. DMA. IOP. Ayuda del Sistema Operativo – Transparencia y Seguridad.
Sistemas con Microprocesadores y Microcontroladores
97
Sistema de Memoria • Clasificación. – Tecnología: Dinámica, Estática… – Modo de Acceso: Random / No Random.
• Conexión al CPU – MAR, MDR.
2014
Sistemas con Microprocesadores y Microcontroladores
98
CPU • Ciclo de la Instrucción. • Camino de Datos. – Posibilita físicamente que se ejecuten las Inst. – Registros Especiales: PC, IR, MAR, MDR, PSW.
• Control. – Señales para que se hagan las cosas.
• Ejemplo SRC-1.
2014
Sistemas con Microprocesadores y Microcontroladores
99
Sistema de Varios Niveles. • • • • • • •
Hw. Control. ISA. Sistema Operativo. Ensamblador. Compilador, Intérprete. ORGANIZADO EN CAPAS.
2014
Sistemas con Microprocesadores y Microcontroladores
100
Sistema Operativo • Manejo de Recursos. – Transparencia y Facilidad de Uso. – Compartir con • Equitatividad. • Eficiencia. • Seguridad.
2014
Sistemas con Microprocesadores y Microcontroladores
101
En Síntesis • Sistema Complejo. • Sometido a grandes fuerzas de Cambio y de Inercia. – Tecnología – Nuevos Lenguajes – Sistemas Operativos – Nuevas Aplicaciones. – Aplicaciones existentes (Historia)
2014
Sistemas con Microprocesadores y Microcontroladores
102