Tecnologías y Arquitecturas

Slides:



Advertisements
Presentaciones similares
Seminario programación microcontroladores ARM LPC 1769
Advertisements

VHDL Breve introducción.
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Tecnologías y Arquitecturas de SE
La tarjeta madre.
Programmable System-on-Chip 3. Familia PSoC3 Evolución de la familia PSoC1 incluye internamente un procesador de 8 bits M3 de rendimiento optimizado.
Organización del Computador UC1.- Arquitectura y estructura del computador.
  ¿Que son los conectores? Pág. 1 ¿Que son los conectores? Pág. 1 ¿Que.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
NOMBRE: ERICK ANTONIO MATA BARBALENA PROF: ING. LEONOR FALCON MATERIA: MICROPORCESADORES TURNO VESPERTINO 27/04/2017.
CONTROLADORES LOGICOS PROGRAMABLES (PLC) Estructura de un automatismo.
COMPUTACIÓN Y SOFTWARE DE APLICACIÓN
Controlador Lógico Programable
BOARD O TARJETA MADRE. EXPOSICION DE INFORMATICA TEMA 1: BOARD TIPOS DE PROCESADOR BUS PUERTOS MEMORIA NUEVAS TECNOLOGIAS.
Organización de computadoras
ARQUITECTURA BÁSICA DE UN ORDENADOR
Microprocesador Estructura interna.
Capitulo 2 Tratamiento de Datos
Pipelining Peligros de control.
Tratamiento de Datos Capitulo Dos.
TIPOS DE BUSES Y MEDIOS DE TRANSMISION DE DATOS
El procesador Diseño del control.
5. Análisis y diseño de sistemas secuenciales (I)
UNIDAD CENTRAL DE PROCESO CPU.
Pipelining Datapath y control.
Computadora La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicados que requieren una toma rápida.
EL CPU.
Microcontroladores de Microchip Centro de Bachillerato Tecnológico Industrial y de Servicios no.7 Profesor: Ing. Oscar Sánchez Ureño Integrantes:
Arquitecturas alternativas UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNICIONES ADMINISTRACION DE SERVIDORES.
Módulo 9 Automatización industrial Unidad 1 Introducción a los autómatas programables. Clase 03: Software de un Relé programable.. Nivel: IV medio Especialidad:
EQUIPO No 3.
HARDWARE POR: JOEL CASTAÑEDA 1ºA.
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
Diferencias entre las arquitecturas de 64 bits de AMD e intel.
EL Procesador. República bolivariana de Venezuela.
Componentes básicos de una computadora
BUS I2C Ing. Mecatronica. Para simplificar la interconexión de dispositivos al microprocesador, Philips desarrolló un sencillo bus bidireccional basado.
Direccionamiento de puerto E/S mapeado en memoria
Organización del Computador
Unidad 1 Introducción al mundo de la computación.
Pipelining Introducción.
¿Qué es una computadora?
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
PICOBLAZE RESUMEN.
TECNOLOGÍA DE EQUIPOS INFORMÁTICOS
Conceptos básicos.
Diseño de Circuitos Integrados
Laboratorio de Circuitos y Sistemas Electrónicos (LCSE) Curso
Tecnologías y Arquitecturas
INNOVACION TECNOLOGICA ELECTRONICA ESTUDIANTIL EN CIENCIAS
Puertos de E/S y recursos especiales Alumno: Llerena Quenaya Gabriel.
1 Introducción Electrónica Digital Electrónica Básica José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC.
Introducción a los Sistemas Digitales Tema 1 1. ¿Qué sabrás al final del tema? n Diferencia entre analógico y digital n Cómo se usan niveles de tensión.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Tecnologías y Arquitecturas
COMPONENTES FISICOS INTERNOS DEL CPU
PICOBLAZE RESUMEN.
Procesadores El procesador es el elemento vital del PC.
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
Arquitectura de Computadores de Computadores. Organización y Arquitectura La Arquitectura: se refiere a los atributos que tienen un impacto directo en.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Memoria Principal. Memoria primaria (MP), memoria principal, memoria central o memoria interna es la memoria de la computadora donde se almacenan temporalmente.
El procesador Datapath y control.
ABREVIACIONES Y SU SIGNIFICADO
1 ALU (Unidad aritmético lógica) Registros Unidad de control I/O y buses internos (usualmente 3 estados) I/O y buses internos Los buses I/O son de tres.
Pipelining Peligros de control.
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

Tecnologías y Arquitecturas Parte I 19:48

Temas de estas primeras clases Introducción: ¿Qué es y con qué se implementa un sistema embebido? Micros de los 70s y 80s Todavía con cierta vigencia Ej., Intel 8051 Circuitos digitales Máquinas de estado, secuenciales sincrónicos, separación datapath-FSM, FPGA Arquitecturas modernas. Parte I RISC y pipelining Algunos detalles de las ISAs ARM Familias Conjuntos de instrucciones Thumb / Thumb 2 / ARM 19:48

¿Qué son los sistemas embebidos? Son circuitos que hacen algún procesamiento de datos, destinados a una aplicación particular …a diferencia de las computadoras, que tienen múltiples aplicaciones según el software que se instale. Generalmente forman parte de un sistema mayor …que puede incluir partes analógicas, electromecánicas, etc. Por eso se le dice embebido Ejemplos de aplicaciones: Control industrial  cajas registradoras  calculadoras  periféricos para computadoras  domótica  PDAs  teléfonos  control de electrodomésticos  controles remotos  cámaras digitales  reproductores de DVD y mp3  equipos para medicina  GPS  telemetría  routers  señalización  avionics  control de automóviles  videojuegos  etcétera  etcétera… 19:48

¿Cómo se implementan los SE? Son sistemas principalmente digitales Compuestos por circuitos combinacionales y secuenciales Estos últimos, en la gran mayoría de los casos, son sincrónicos. Pueden incluir un procesador, o incluso varios En la materia, vamos a ocuparnos de los que incluyen uno. Distintas formas de implementarlos: Todos componentes COTS (commercial off-the-shelf) Esos y algún ASIC (application-specific integrated circuit) En lugar de un ASIC, una FPGA (field-programmable gate array) Cada vez hay más aplicaciones, porque pueden hacerse dispositivos que Cuestan menos x transistor Consumen menos x transistor Son más rápidos 19:48

Sistema en un Chip (SoC) En un chip, se pueden conectar entre sí distintos bloques prediseñados, como si fueran componentes que se interconectan en un circuito impreso A esos bloques se los llama cores (núcleos) o IP (intellectual-property, o propiedad intelectual) Se forma así un SoC (System on Chip) El la manera típica de diseñar un ASIC complejo ASIC = Application-Specific IC Se puede hacer lo mismo con una FPGA …y se le dice PSoC = Programmable System on a Chip Para mejor performance, algunas FPGA traen (fijo) un procesador La integración normalmente se hace mediante: Un lenguaje de descripción de hardware (ej. VHDL, Verilog) O una herramienta gráfica Un core puede ser un procesador 19:48

Procesadores que vamos a usar ARM 7TDMI (  unos u$s 3 ) Arquitectura RISC 32 bits Lanzado en 1995 Pipeline de 3 etapas ISA ARM (32 bits) y Thumb (16 bits) 0,95 DMIPS/MHz (con el set ARM) 0,28 mW/MHz (con proceso TSMC 0.18G) ARM Cortex M3 (  unos u$s 2 ) Lanzado en 2004 Pipeline de 3 etapas con branch speculation ISA Thumb 2 (16/32 bits) 1,25 DMIPS/MHz 0,19 mW/MHz (con proceso TSMC 0.18G) Un 8051 procesa a unos 0,1 DMIPS/MHz Los precios son por microcontroladores con 8K flash y 2K RAM o más 19:48

Ejemplo de uno de gama más alta TI OMAP 3530  u$s 45, trae dos cores: ARM Cortex A8 32 bits Arquitectura RISC ISA ARM (32 bits) y Thumb-2 (16/32 bits) desde 600 MHz hasta más de 1 GHz Arquitectura superescalar (2 issue) Lanzado en 2009 Pipelines de 13 etapas Caches L1: split, 16KB o 32 KB c/u Cache L2: 64 KB a 2 MB 2 DMIPS/MHz Extensión para multimedia: NEON TMS320C64x+ Procesador digital de señales (DSP) 32 bits Arquitectura VLIW (8 issue) Aritmética de punto fijo de 40 bits 19:48

Temas de estas primeras clases Introducción: ¿Qué es y con qué se implementa un sistema embebido? Micros de los 70s y 80s Todavía con cierta vigencia Ej., Intel 8051 Circuitos digitales Máquinas de estado, secuenciales sincrónicos, separación datapath-FSM, FPGA Arquitecturas modernas. Parte I RISC y pipelining Algunos detalles de las ISAs ARM Familias Conjuntos de instrucciones Thumb / Thumb 2 / ARM 19:48

MOS Technology 6502 (año 1975) 19:48

Algunos de los primeros micros 1985 1970 1975 1980 68020 32 bits PMOS | NMOS | HMOS | CMOS 80386 Motorola 68000 16 bits Intel 8086 80286 8088 GI PIC1640 MOS T. 6502 Zilog Z80 8 bits 8008 8080 Intel 8048 8051 Motorola 6800 6805 68HC11 4 bits Intel 4004 tiempo 19:48

Mercado en el 2006: 8 bits 19:48

Arquitectura de Computadoras Paremos un minuto para definir algunas cosas: “Arquitectura” es la descripción de un sistema en un nivel de abstracción alto Ej., mediante un diagrama de bloques Ej., “arquitectura de computadoras” (refiriéndonos al procesador nomás; no al disco, interfaces, etc.), de la cual hay dos tipos: “Arquitectura de Conjunto de Instrucciones” Instruction-Set Architecture, o ISA Es la arquitectura “vista desde afuera” Registros, conjunto de instrucciones, esquema de interrupciones, etc. A esta, a veces se le dice “arquitectura” a secas “Microarquitectura” Es la arquitectura interna del procesador O sea, cómo está implementada la ISA 19:48

Prácticamente todos los de 8 bits Tipos de ISA Acumulador Registro-Memoria Load-Store Código para: foo=bar+baz Load bar Add baz Store foo Load R1,bar Add R1,baz Store foo,R1 Load R1,bar Load R2,baz Add R3,R1,R2 Store foo,R3 Algunos de los micros con ISA de este tipo Prácticamente todos los de 8 bits Intel 8086, Motorola 68000 Los de 32 bits modernos 19:48

Instrucciones en el 8086 y 68000 Las dos arquitecturas son register-memory de 2 operandos (como máximo) No pueden haber dos accesos a memoria en una instrucción. 8086: ADC AX,baz 68000: ADD.W baz,D0 En el 68000 original, la anterior tardaba 8 ciclos (!) Suponiendo que la memoria respondía sin esperas Un simple MOVE.B D0,D1 tardaba 4 ciclos (!) Tienen muchos modos de direccionamiento 12 en el 8086, 8 en el 68000 Incluyendo cosas como: CMPM.B (A1)+,(A2)+ CMPA.L 100H(A2,D0.W),A3 Multiplicación MULU foo,D1 …70 ciclos (!) 19:48

Temas de estas primeras clases Introducción: ¿Qué es y con qué se implementa un sistema embebido? Micros de los 70s y 80s Todavía con cierta vigencia Ej., Intel 8051 Circuitos digitales Máquinas de estado, secuenciales sincrónicos, separación datapath-FSM, FPGA Arquitecturas modernas. Parte I RISC y pipelining Algunos detalles de las ISAs ARM Familias Conjuntos de instrucciones Thumb / Thumb 2 / ARM 19:48

Problema a resolver Diseñar un circuito que codifique una cadena de bytes a código RLE Codificar en RLE (run-length encoding) significa convertir las secuencias de un mismo número en la tupla: <código de escape, número, cantidad de repeticiones> Ej.: abccbaaaaaba  abccb/a5ba Es particularmente útil para comprimir gráficos Se usa en el formato PCX Codificador RLE Data in Valid1 Ready1 Data out Valid2 Ready2 8 CK (La interfaz es como la de una memoria FIFO) 19:48

Problema a resolver ¿Va a ser un circuito combinacional o secuencial? Codificador RLE Data in Valid1 Ready1 Data out Valid2 Ready2 8 CK ¿Va a ser un circuito combinacional o secuencial? Que sea un secuencial sincrónico Son más fáciles de diseñar En particular, de validar que la temporización sea correcta Son escalables Por eso, la electrónica digital está orientada hacia sincrónicos Los componentes, el software EDA, etc. Dejemos las técnicas asincrónicas (que son diversas) para casos especiales, más avanzados Recordemos que un secuencial es una máquina de estados finitos (finite-state machine, o FSM) Que, a su vez, puede ser descripta mediante un diagrama de estados 19:48

Diagramas de estado Ejemplo: Detector de secuencia “abac” entradas = {a,b,c} salidas = {sí, no} Produce “sí” sólo cuando las últimas cuatro entradas fueron “abac” Moore Mealy 19:48

Actividad Formen grupos de 2 a 4 personas Dibujen el diagrama de estados de una máquina de Moore que produzca, en la salida, un 1, 2 o 3, cuando sus últimas dos entradas fueron 1, 2 o 3, respectivamente Entrada = {1,2,3} Salida = {-,1,2,3} Lo mismo, pero para una máquina de Mealy ¿Cuándo se producen las transiciones en estas máquinas y las de la diapositiva anterior? ¿En qué momentos puede cambiar de estado un secuencial sincrónico? Entonces, ¿hay que sincronizar? 19:48

Secuenciales sincrónicos Máq. de Moore Máq. de Mealy 19:48

Secuenciales sincrónicos Diagrama de tiempo = señal indefinida 19:48

Problema a resolver ¿Va a ser un circuito combinacional o secuencial? Codificador RLE Data in Valid1 Ready1 Data out Valid2 Ready2 8 CK ¿Va a ser un circuito combinacional o secuencial? Que sea un secuencial sincrónico Más o menos, ¿qué cantidad de estados necesita tener este secuencial? 19:48

Máquina de estados + Datapath Para encarar estos problemas, se suele separar en dos subsistemas: Una ruta de datos (o datapath), compuesta por los combinacionales y registros que se repiten “n” veces (en este caso, 8) dado que trabajan sobre cada bit. Una máquina de estados (o FSM) que controla el datapath Frecuentemente se le dice unidad de control. (FSM = Finite-State Machine) Implementándolo así, la FSM de un codificador RLE necesita no más que un número manejable de estados Control Datapath U.C. Status 19:48

Datapath para un codificador RLE Comparador A=Din ¿Qué pasa si entra un ‘\’? TS1 Data in Registro A Registro B cargar Data out cargar TS2 Contador contar TC (terminal count) resetar TS3 ‘\’ (const) Valid2 Valid1 Ready2 Ready1 19:48

Datapath para un codificador RLE Comparador contra ‘\’ Din=‘\’ Comparador A=Din Data in TS1 Registro A Registro B cargar Data out cargar TS2 Contador contar TC resetar TS3 ‘\’ (const) Valid1 Valid2 Ready1 Ready2 19:48

Unidad de control del codificador No la vamos a hacer toda porque es grande …aunque no tanto (¿unos 12 o 15 estados?) Pero planteemos una de las transiciones a modo de ejemplo: …haciéndola una máquina de Mealy Un estado va a ser: “El codificador está ‘almacenando’ un solo carácter, distinto de ‘\’.” Otro estado va a ser: “El codificador está ‘almacenando’ dos caracteres iguales, distintos de ‘\’.” ¿Qué condiciones producen la transición del primero al segundo? ¿Qué salidas tiene que presentar la U.C. durante esa transición? 19:48

El codificador está ‘almacenando’ un solo carácter, distinto de ‘\’ Una Transición (ej.) El codificador está ‘almacenando’ un solo carácter, distinto de ‘\’ Comparador Registro A Contador ‘\’ (const) A=Din TC Data in Valid1 Ready1 Data out Valid2 Ready2 cargar contar resetar Registro B TS1 TS2 TS3 contra ‘\’ Din=‘\’ ? / ? El codificador está ‘almacenando’ dos caracteres iguales, distintos de ‘\’ 19:48

Cómo no implimentaríamos hoy ese codificador Difícilmente nos interese implementarlo con componentes MSI… Componentes MSI son CIs de compuertas, contadores, etc., por ejemplo de series 74LSxx, 74HCxx, 74Fxx, CD4xxx, etc. …porque no sería tan económico como las alternativas Debido, entre otros factores, a los costos de interconexión …y porque no sería tan rápido y/o de bajo consumo como las alternativas Debido, también, a las interconexiones Porque salir de un integrado y entrar en otro implica que hayan capacitancias parásitas Estas bajan la velocidad y aumentan el consumo Si no necesitáramos velocidad y/o bajo consumo, seguramente preferiríamos usar un micro 19:48

Cómo sí implimentaríamos hoy ese codificador Usaríamos una FPGA o un CPLD FPGAs = Field-Programmable Gate Array (o “arreglo de compuertas programable ‘in situ’”) CPLDs = Complex Programmable Logic Device (o “dispositivo lógico programable complejo”) …o lo implementaríamos en un circuito integrado full custom CMOS Full custom = que se diseña todo “a medida” …o usaríamos un Structured ASIC o un Gate Array Esto es un término medio entre las dos opciones anteriores Significa fabricar un circuito integrado (generalmente CMOS), pero haciendo “a medida” únicamente algunas capas de metal (o sea, interconexión), utilizando el resto prefabricado Las capas prefabricadas pueden proveer un arreglo de compuertas, o celdas más complejas 19:48

FPGA - ¿Qué es? Arreglo de celdas básicas programables cuyas Definición simplificada: Arreglo de celdas básicas programables cuyas interconexiones también son programables Arquitectura genérica de FPGA ? - A high capacity programmable logic device - An array of programmable basic logic cells surrounded by programmable interconnects - Can be configured (programmed) by end-users (field-programmable) to implement specific applications - Capacity up to multi-millions logic gates and speed up to 500MHz - Popular applications: prototyping, on-site hardware reconfiguration, DSP, logic emulation, network components, etc… Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García 19:48

FPGA - Flujo de Diseño Flujo de diseño típico: Verificación Entrada Síntesis Lógica Place & Route Programación Lenguaje de descripción de Hardware: VHDL Verilog Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García 19:48

Lenguajes de Descripción de HW Para el diseño de circuitos digitales, los “circuitos de compuertas” fueron reemplazados, en gran medida, por lenguajes de descripción de hardware = hardware-description languages, o HDL Los más populares son VHDL y Verilog O sea que, para diseñar un ASIC o una FPGA, normalmente se escribe un código VHDL o Verilog, que un software EDA puede simular y sintetizar Se puede usar en dos niveles de abstracción: Nivel de comportamiento (behavioral level): Describe la funcionalidad del circuito, similar a un programa de computación Nivel de transferencia de registros (register-transfer level, o RTL): Describe cómo se implementa lo de arriba moviendo datos de un circuito a otro Este código tiene unas 10 veces más líneas que el anterior 19:48

FSM + Datapath en un HDL Para codificarlos, hay dos estilos: Poner la FSM y el datapath en distintas partes del código Para implementar la FSM se usa algo similar a un switch-case de C … o juntar el FSM y el datapath Intercalando transferencias de registros en la estructura símil switch-case que se usa para implementar la FSM (Ver ejemplos en archivos separados) La ventaja de la 1 es que se logra mayor conciencia de los recursos que se están “pidiendo” Y eso sirve para optimizar, por ejemplo arreglándoselas con un solo sumador O sea que la desventaja de la 2 es que uno no se da cuenta que hay una FSM por un lado y un datapath por otro Pero eso puede ser una ventaja, porque lo hace más fácil de programar. 19:48

Temas de estas primeras clases Introducción: ¿Qué es y con qué se implementa un sistema embebido? Micros de los 70s y 80s Todavía con cierta vigencia Ej., Intel 8051 Circuitos digitales Máquinas de estado, secuenciales sincrónicos, separación datapath-FSM, FPGA Arquitecturas modernas. Parte I RISC y pipelining Algunos detalles de las ISAs ARM Familias Conjuntos de instrucciones Thumb / Thumb 2 / ARM 19:48

Procesadores Lo explicado hasta ahora puede usarse para diseñar y fabricar procesadores Un datapath simple de ejemplo: Fuente: S. Furber; ARM System-on-Chip Architecture, 2nd ed; Pearson Education; 2000 19:48

Procesadores En un procesador, la unidad de control puede ser compleja En particular si las instrucciones nativas (o sea en Assembly) realizan operaciones complicadas o requieren varios ciclos de máquina Esa era la tendencia hasta los ochentas Estas UCs podían demandar bastante tiempo de diseño y ocupar buena parte del silicio de los primeros microprocesadores Frecuentemente, para implementar UCs complejas sin perder flexibilidad, se usaba una técnica llamada microprogramación Consistía en guardar el comportamiento de la UC en una ROM, como si fuera un programa, que era “ejecutado” por un circuito secuencial sencillo y genérico. 19:48

Reduced-Instr.-Set Computer (RISC) En los 70s, en IBM primero, y en las universidades de Stanford y Berkeley después, se empezó a cuestionar esta tendencia de sumarle complejidad a los conjuntos de instrucciones Sus argumentos: Gracias a los compiladores, las instrucciones sofisticadas dejan de ser útiles Eliminándolas, se puede optimizar las que sí lo son …y se ahorra mucho tiempo de diseño …y se libera superficie de silicio ocupada por la unidad de control, la que puede usarse para mejorar el datapath Por ej, para ponerle un mejor multiplicador Nace el estilo RISC para el diseño de arquitecturas de computadoras …que, desde entonces, tiene enorme influencia en la disciplina 19:48

Características del Estilo RISC (no excluyentes) Arquitectura tipo load-store Las operaciones lógicas y aritméticas operan sólo sobre registros. Las únicas instrucciones que acceden a memoria son para transferir su contenido desde o hacia un registro Conjunto de instrucciones reducido …aunque, hoy en día, hay RISC con montones de instrucciones Las intrucciones tienen largo uniforme (ej. 32 bits) …aunque, hoy en día, hay ISAs RISC con largo variable, como Thumb 2 Todas las instrucciones pueden ser ejecutadas en 1 ciclo …suponiendo que la memoria responde lo suficientemente rápido 19:48

El Estilo RISC Se habla de “arquitecturas RISC” versus “arquitecturas CISC” La mayoría de las arquitecturas planteadas desde entonces son RISC En algunas de las que no son RISC, se traducen internamente las instrucciones CISC a un código RISC que es ejecutado por un núcleo RISC Eso se hace, por ejemplo, en las microarquitecturas modernas para PC Una de las ventajas de RISC es que es óptimo para pipelining Pipelining es una técnica para aumentar la frecuencia de clock, y como consecuencia, la velocidad de procesamiento Pero primero veamos un típico datapath RISC 19:48

Datapath RISC Patterson, Hennessy; Computer Organization and Design, The Hardware Software Interface Reg. destino Registros fuente Opcode, etc. 01001 … 010 0 … 1 1 Ejemplo de una Instrucción con 3 Operandos: 19:48

Datapath RISC + Unidad de Control 19:48

Segmentación (Pipelining) Ejemplos de código Assembly: LDR R1,[R0] LDR R3,[R2] ADD R1,R1,#200 CMP R5,R6 BEQ SonIguales ADD R5,R5,R4 ADD R5,R6,R7 SUB R4,R4,R5 19:48

Segmentación (Pipelining) 19:48

ARM Acorn era “la Apple británica”. En los 80s creó su propio procesador RISC para sus computadoras Acorn, Apple y VLSI Technology forman ARM en 1990 El modelo de negocios es ofrecer IP, para que licencien: Fabricantes de microcontroladores como NXP, Atmel, ST, TI, etc. O quienes necesitan micros en sus ASICs Ej., fabricantes de teléfonos celulares (Semicast Research) 19:48

Mercado Actual de 32 bits 19:48

Periféricos Un microcontrolador es un procesador con memoria y periféricos, todo en un mismo chip Ejemplos de periféricos de uso actual: Interfase serie asincrónicas (UART)  Interfase serie sincrónica  pines de E/S (puerto paralelo)  Modulador de ancho de pulso (PWM)  Conversores A/D y D/A  Comparador de tensión  Temporizador (timer)  Puerto I2C / SPI  Interfase USB  Controlador CAN  Puerto I2S  reloj de tiempo real  Controlador Ethernet (MAC/PHY)  Controlador de LCD  Etc. Otros circuitos que pueden tener: Oscilador para fck  Circuito de reset  Watchdog timer  Brown-out reset  Puerto JTAG  Etc. Los periféricos son un factor importante a tener en cuenta para decidir qué microcontrolador usar 19:48

Temas de estas primeras clases Introducción: ¿Qué es y con qué se implementa un sistema embebido? Micros de los 70s y 80s Todavía con cierta vigencia Ej., Intel 8051 Circuitos digitales Máquinas de estado, secuenciales sincrónicos, separación datapath-FSM, FPGA Arquitecturas modernas. Parte I RISC y pipelining Algunos detalles de las ISAs ARM Familias Conjuntos de instrucciones Thumb / Thumb 2 / ARM Pero antes, demos un pantallazo sobre CMOS… 19:48

Circuitos Integrados MOS Ley de Moore: Cada 2 años, el doble de transistores NMOS 19:48

CMOS Fuente: Wikimedia Commons 19:48