Download Sistemas con μP y μC.
Document related concepts
no text concepts found
Transcript
Sistemas con mP y mC. Tema N° 1: Introducción a la Arquitectura de Computadoras Eduardo Daniel Cohen – dcohen@herrera.unt.edu.ar 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 - mcecilia@censys.com.ar. • Ing. Matías Scida - matias21x@yahoo.com.ar • Erika Beker - erikatbecker@gmail.com • 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