Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema.

Slides:



Advertisements
Presentaciones similares
Instrucciones de operación sobre datos
Advertisements

Tema 10: Arquitectura de un microprocesador
Microcontroladores MOTOROLA
ORGANIZACIÓN COMPUTACIONAL
TEMA 2 Arquitectura de un Ordenador
Arquitectura de computadoras
Sistemas Operativos Funcionamiento general de una computadora bajo el control de un programa.
Modelo de procesos de dos estados
Composición Interna de un Procesador
1 Aula de Informática del Centro de Participación Activa para Personas Mayores de El Ejido (Almería). Consejería Territorial de Salud y Bienestar Social.
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Unidad 2: Organización del CPU
ARQUITECTURAS SIMD TIPOS
Sistemas Operativos Procesos.
MICRO de 8 bits Funcionamiento interno de un microprocesador de 8 bits. Para comprender mejor el funcionamiento, interno de un microprocesador , se propone.
Modelo de Von Neumann Ana Lilia Laureano-Cruces Departamento de Sistemas Universidad Autónoma Metropolitana.
Técnicas Digitales III
Función Estructura y composición Tipos
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Secciones y Segmentos STARTUP
Arquitectura de Computadoras
SEMANA 9_3.
Overview Sistemas Computacionales
Conceptos Arquitectónicos del computador
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Administración de Memoria
Lenguaje de Programación cap. 1 Estructura del Computador.
TEMA 2: Organización de computadores
Introducción al tiempo real en sistemas empotrados
Departamento de Informática. Curso ENTRADA Y SALIDA LECCIÓN 12 ORGANIZACIÓN DE ENTRADA Y SALIDA.
Gestión de procesos Sistemas Operativos Edwin Morales
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.

1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
introducción al Lenguaje Ensamblador
“Organización y Arquitectura de Computadores” William Stallings
Campus Chapultepec Arquitectura de Computadoras Diferencia entre microprocesador y microcontrolador Sánchez Manjarrez Silvana Ing. Daniel Domínguez C.
Módulo LCD Controlador HD44780.
UNIVERSIDAD LATINA. I. TEORIA DE SISTEMAS OPERATIVOS.
Breve introducción a la arquitectura de 32 bits intel.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Breve introducción a la arquitectura de 32 bits intel.
Microprocesadores II PIC16C5X Ing. Nelwi Báez.
Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad.
Maquinas Digitales Funciones del Procesador Buscar instrucciones Interpretar instrucciones Buscar datos Procesar datos Escribir datos.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
Unidad 2 – Gestión de Procesos
introducción al Lenguaje Ensamblador
Unidad Central de Proceso
Alumno: Gerardo Mario Valdés Ortega
PROGRAMACION DE Pilas o Stacks
El procesador es el cerebro del computador que se encarga de organizar, procesar la información ejecutar cálculos y en general realizar muchos procesos.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
ARQUITECTURA DE COMPUTADORES
José Alvarado – Cristian Anzola
ò Unidad Aritmético-Lógica ò Unidad de Control ò Buses internos ò Registros ò Puntero de Instrucciones (IP o PC) ò Acumulador ò De uso Generales ò.
1 Unidades funcionales de un ordenador Procesadores Memorias Dispositivos de E/S
Estructura funcional (Von Neumann)
Hardware Los componentes y dispositivos del Hardware se dividen en Hardware Básico y Hardware Complementario El Hardware Básico: son las piezas fundamentales.
Arquitectura de Computadores
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Parte I Pines de E/S Interrupciones
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Sistemas Basados en Microprocesador Curso 2012/2013 Departamento de Tecnología E l e c t r ó n i c a Modelo del Programador de un Sistema digital basado.
Transcripción de la presentación:

Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema de cómputos. uP Tarea 1 Tarea 2 Tarea 3 Deshabilitada Placas de tareas Leds indicadores de «tarea activa» Llaves de habilitación de tareas Placa Base (Motherboard) RAM ROM Timer

Sistemas Digitales 2014 FIUNMDP Multitarea Sistema Operativo Multitarea (SOM): Conjunto de programas que permiten administrar los recursos de un sistema de cómputos. Recurso compartido: tiempo del procesador. El SOM asignará a cada una de las tareas que lo requieran un tiempo de maquina prefijado. Tarea1 SO Tarea2 SO Tarea3 SO Tarea1 SO Tarea2 SO Tarea3 SO … t1 t2 t3 Tiempo de máquina

Sistemas Digitales 2014 FIUNMDP RAM de Tarea E/S de Tarea ROM de Tarea ROM de SOM RAM de SOM E/S de SOM Timer uP 6800 NMI BUS de DIRECCIONES BUS de DATOS RAM de Tarea E/S de Tarea ROM de Tarea ROM de Tarea 1 RAM de Tarea 1 E/S de Tarea 1 Lógica de decodifica ción Multitarea Motherboard Placas de Tareas AccB PC IX SP CCR AccA

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 C000 Mapeo del Sistema Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF DFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 8k 2k Libre de 0000-BFFF Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Las tareas están paginadas, ocupan siempre la misma posición de memoria.

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 C000 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF DFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 8k 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Libre de 0000-BFFF ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k Mapeo del Sistema Placa base Tareas

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k A11 A12 A13 A G1 G2A G2B  2 A14 A15A14A13A12A11A10..A0Dir C C7FF C CFFF D D7FF E E7FF E EFFF... Peso de cada línea 2k Lógica de decodificación

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k A11 A12 A13 A G1 G2A G2B  2 A14 A15A14A13A12A11A10..A0Dir C C7FF C CFFF D D7FF E E7FF E EFFF... Peso de cada línea 2k Lógica de decodificación Primeros 2k ROM Tarea Segundos 2k ROM Tarea 2K E/S Tarea 2K RAM Tarea Primeros 2K E/S SOM

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Multitarea E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k F800-FFFF (ROM SOM) A11 A12 A13 A G1 G2A G2B  2 A14 F000-F7FF (RAM SOM) E800-EFFF (E/S SOM Sel. Tarea) E000-E7FF (E/S SOM Timer) D800-DFFF (RAM Tarea n) D000-D7FF (E/S Tarea n) C800-CFFF (ROM tarea n) C000-C7FF (ROM tarea n) Zona de Tareas Peso de cada línea 2k Lógica de decodificación

Sistemas Digitales 2014 FIUNMDP Tarea 8 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D D 2D 3D 1Q 2Q 3Q Vcc CS3CS0CS2CS1 Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 Circuito de Decodificación Selección de Tarea CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800

Sistemas Digitales 2014 FIUNMDP Tarea 8 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D D 2D 3D 1Q 2Q 3Q Vcc CS3CS0CS2CS1 Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 Circuito de Decodificación Selección de Tarea CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800 Selecciona tarea 1: LDAA #%xxxxx000 STAA $E800 Lee si esta habilitada la tarea 1: LDAA $E800 ANDA #%xxxxxxx1

Sistemas Digitales 2014 FIUNMDP 2 Tarea 8 Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 Tareas: Todas los programas de tarea comienzan en la misma posición de memoria (C000) El sector de pila es libre en cada tarea (dentro de la RAM D800-DFFF) Todas las tareas en la dirección inicial (C000) tienen un número equivalente al tiempo que debe ejecutarse esa tarea. Todas las tareas tienen la rutina de atención al IRQ en la misma posición de memoria (ROM de tarea C000-CFFF). t de ejecución de tarea ROM de Tarea n E/S de Tarea n RAM de Tarea n C000 CFFF D000 D7FF D800 DFFF 4k 2k

Sistemas Digitales 2014 FIUNMDP 2 LDAA #$7F LDAB D400 ABA BNE 03 EOR $D490 STAA $D4E0 LSR $D451 BRA E0 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F Reset SOM 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F 2 LDAA #$7F LDAB D400 ABA BNE 03 EOR $D490 STAA $D4E0 LSR $D451 BRA E0 SOM RTI NMI RTI NMI RTI NMI RTI NMI TAREA 1 TAREA 2 Dos tareas operando : El Timer produce un flanco a los 5ms generando una NMI El Timer produce un flanco a los 2ms generando una NMI El Timer produce un flanco a los 5ms generando una NMI Timer uP 6800 NMIOut D7-D0 tiempo C000:

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

Sistemas Digitales 2014 FIUNMDP Se prepara una tabla en la RAM del SOM para almacenar los SP de cada una de las 8 tareas. Programa de Inicialización (S.O.M.) RAM de SOM dirdato F000SP tarea 1 parte alta F001SP tarea 1 parte baja F002SP tarea 2 parte alta F003SP tarea 2 parte baja …… F00ESP tarea 8 parte alta F00FSP tarea 8 parte baja E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

Sistemas Digitales 2014 FIUNMDP La primera vez todas las tareas arrancan desde el stack del programa monitor. Se completan todos los SP con el mismo valor = F0FF Inicializa Stack de tareas temporario: RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00EF0SP tarea 8 parte alta F00FFFSP tarea 8 parte baja RAM de SOM Zona inicial de stack de tareas dirdato F0FFlibreSP tarea inicial F100CCR F101AccB F102AccA F103IX parte alta F104IX parte baja F105C0PC parte alta F10601PC parte baja F000 F7FF RAM de SOM 2k

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI $MCT=0 ; en zona RAM de SOM Programa SOM

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDX #$EFFE Programa SOM

Sistemas Digitales 2014 FIUNMDP Usa el IX para moverse en esta tabla. Inicializa el IX con el valor $EFFE que es F000-2, porque va incrementando de a dos el IX porque cada puntero de SP ocupa dos lugares. Inicializa puntero a SP de tareas: RAM de SOM dirdato EFFE EFFF F000SP tarea 1 parte alta F001SP tarea 1 parte baja F002SP tarea 2 parte alta F003SP tarea 2 parte baja …… F00ESP tarea 8 parte alta F00FSP tarea 8 parte baja

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI INC $MCT  $MCT=1 (primera tarea) INX INX  IX=F000 (IX apunta al primer puntero de SP de tarea) Programa SOM

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAA $MCT CMPA #$08 BEQ otra_ronda otra_ronda: Ya paso por las 8 tareas, reinicia a la tarea 1. Programa SOM

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAA $E800 ;lee llave ANDA #$01 BEQ otra_tarea Programa SOM

Sistemas Digitales 2014 FIUNMDP R/W CS5 A10 A0 E800 CS0 CS1 CS3 CS2 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 A11 A12 A13 A G1 G2A G2B  2 A14 CS0 CS1CS2 CS3CS4 CS5 CS6 CS7 ROM SOM RAM SOM E/S SOM Timer RAM Tarea n E/S Tarea n ROM tarea n E/S SOM Sel. Tarea Circuito de Decodificación Lee si esta habilitada la tarea 1: LDAA $E800 CS5 R/W A10 A0 E800 ROM tarea n

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI STAA $E800 Programa SOM

Sistemas Digitales 2014 FIUNMDP CS5 R/W A10 A0 E800 CS0 CS1 CS3 CS2 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D0 A11 A12 A13 A G1 G2A G2B  2 A14 CS0 CS1CS2 CS3CS4 CS5 CS6 CS7 ROM SOM RAM SOM RAM Tarea n E/S Tarea n ROM tarea n Circuito de Decodificación Selecciona tarea 1: LDAA #%xxxxx000 STAA $E800 CS5 R/W A10 A0 E800 CS5 E/S SOM Sel. Tarea E/S SOM Timer

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDAB $C000; lee 1ra posc de ROM deTarea 1 STAB $E000 Programa SOM

Sistemas Digitales 2014 FIUNMDP CS5 R/W A10 A0 E800 CS5 R/W A10 A0 E800 Tarea 3 2 Tarea 1 ROM de Tarea 1 E/S de Tarea 1 RAM de Tarea G1 G2A G2B Hab. Tarea 1 Vcc Hab. Tarea 2 Hab. Tarea 3 Hab. Tarea 4 Hab. Tarea 5 Hab. Tarea 6 Hab. Tarea 7 Hab. Tarea 8 D0 D1 D D 2D 3D 1Q 2Q 3Q Vcc Tarea 2 Led indicador de tarea habilitada Switch hab tarea 1 Puente de seguridad CD4503B D G1 G2A G2B  2 CS0 CS1CS2 CS3 CS4 CS5 CS6 CS7 ROM SOM RAM SOM E/S SOM Timer RAM Tarea n E/S Tarea n ROM tarea n E/S SOM Sel. Tarea CS3 CS2 CS0 CS1 Circuito de Decodificación Una vez seleccionada la tarea, se puede acceder a la ROM, RAM y E/S de dicha tarea A11 A12 A13 A15 A14

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI LDS 0,x STX $Mx Programa SOM

Sistemas Digitales 2014 FIUNMDP Carga el SP con lo que esta en la posición que indica el IX, en la tarea 1 IX=F000. Inicialmente sera SP=F0FF y apunta a zona de RAM del SOM. Pero la próxima vuelta va a tener el SP real que se guardo cuando se interrumpió la tarea, apuntara a zona de RAM de la tarea 1. IX F000 Queda el SP señalando F0FF cuando venga el RTI se incrementa y carga los registros con los datos iniciales LDS 0,x RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00EF0SP tarea 8 parte alta F00FFFSP tarea 8 parte baja Carga SP de tarea N: RAM de SOM Zona inicial de stack de tareas dirdato F0FFlibreSP tarea inicial F100CCR_iniCCR F101AccB_iniAccB F102AccA_iniAccA F103IX_hi_iniIX parte alta F104IX_low_iniIX parte baja F105C0PC parte alta F10601PC parte baja

Sistemas Digitales 2014 FIUNMDP Carga el SP con lo que esta en la posición que indica el IX, en la tarea 1 IX=F000. La próxima vuelta va a tener el SP real que se guardo cuando se interrumpió la tarea, apuntara a zona de RAM de la tarea 1. IX F000 Queda el SP señalando D800 cuando venga el RTI se incrementa y carga los registros con los datos que se guardaron con el NMI LDS 0,x RAM de SOM dirdato F000D8SP tarea 1 parte alta F00100SP tarea 1 parte baja F002D8SP tarea 2 parte alta F00311SP tarea 2 parte baja ……… F00ED9SP tarea 8 parte alta F00FF0SP tarea 8 parte baja STX $Mx Guarda el IX en una poscision de RAM del SOM para recueprarlo cuando interrumpa la NMI y saber donde guardar el SP de la tarea que se estaba ejecutando: Carga SP de tarea N: RAM de Tarea 1 Zona de stack de la tarea 1 dirdato D800libreSP tarea inicial D80101CCR D80290AccB D80320AccA D80410IX parte alta D80511IX parte baja D806C0PC parte alta D80706PC parte baja

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI Programa SOM

Sistemas Digitales 2014 FIUNMDP Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k 5 LDS #$D3FF LDAA #25 STAA $D400 CMP #30 BNE 03 ASR $D450 PSHA LSR $D451 PULLA LDAA $D430 ORAA $78 STAA $D457 LDAB #$56 DECB BRA 8F NMI

Sistemas Digitales 2014 FIUNMDP Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD RAM tarea 1 dirdato SP=DFFF 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea 1 D800 DFFF D000 D7FF C000 CFFF E/S de Tarea 1 RAM de Tarea 1 2k 4k SP cuando interrumpe la NMI

Sistemas Digitales 2014 FIUNMDP RAM tarea 1 dirdato 82CCR=82 51AccB=51 33AccA=33 0FIX=0F20 20 C0PC=C00D SP=DFFF0D 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k Guarda Vect estado SP cuando interrumpe la NMI Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNE 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD

Sistemas Digitales 2014 FIUNMDP RAM tarea 1 dirdato SP=DFF8 82CCR=82 51AccB=51 33AccA=33 0FIX=0F20 20 C0PC=C00D SP=DFFF0D 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k Guarda Vect estado SP de Tarea 1 final SP cuando interrumpe la NMI Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer: 1)Atención a la NMI:  Se termina de ejecutar la instrucción en curso (ej BNI 03)  Se guarda el vector de estados en la pila, desde la posición del SP (RAM de la tarea)  Bit i=1  Se salta a ejecutar el programa que esta en la dirección guardada en FFFC y FFFD

Sistemas Digitales 2014 FIUNMDP 1) Atención a la NMI 2) Se transfiere el control al S. O. M.  El programa que esta en la dirección guardada en FFFC y FFFD es programa del SOM (zona ROM de SOM)  Tiene que guardar el valor del SP de la tarea que se venia ejecutando, para esto tiene zona de RAM de SOM, dos Bytes para cada Tarea. 2 Tarea 8 E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) Zona de Tareas 2k Zona de Tareas Tarea 7 Tarea 6 Tarea 5 Tarea 4 Tarea 3 Tarea 2 Tarea 1 ROM de Tarea n D800 DFFF D000 D7FF C000 CFFF E/S de Tarea n RAM de Tarea n 2k 4k RAM de SOM dirdato F000DFSP tarea 1 parte alta F001F8SP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja SP de Tarea 1 Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea 1 hasta que llega un NMI activado por el Timer:

Sistemas Digitales 2014 FIUNMDP Atención de la NMI: LDX $Mx ; Recupero el IX que guarda la dirección de almacenamiento de la tarea 1 STS 0,X JMP otra_tarea RAM de SOM dirdato F000DFSP tarea 1 parte alta F001F8SP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja $Mx=F0, $Mx+1=00  IX= F000 Paso de Tarea 1 a S.O.M. Se ejecuta la Tarea n hasta que llega un NMI activado por el Timer: 1) Atención a la NMI 2) Se transfiere el control al S. O. M.  El programa que esta en la dirección guardada en FFFC y FFFD es programa del SOM (zona ROM de SOM)  Tiene que guardar el valor del SP de la tarea que se venia ejecutando, para esto tiene zona de RAM de SOM, dos Bytes para cada Tarea.

Sistemas Digitales 2014 FIUNMDP Inicio Inicializa tabla de SP de tareas Inicializa Stack de tareas temporario Inicializa contador de tareas Inicializa puntero a SP de tareas Tarea habilitada? Incrementa PSP y Contador de tareas Contador=8 ? NO SI NO SI Carga SP de tarea N Habilita Pág. de tarea N Lee tiempo de tarea N Programa Timer Ejecuta Tarea N NMI Guarda SP de tarea N en tabla de SP de tareas RTI $MCT=0 INC $MCT INX LDAA $E800 ;lee llave ANDA #$01 BEQ otra_tarea LDS 0,x, STX $Mx STAA $E800 LDAB $C000 STAB $E000 LDX $Mx STS 0,x jmp otra_tarea LDAA $MCT CMPA #$08 BEQ otra_ronda otra_ronda: otra_tarea: LDX #$EFFE Programa SOM

Sistemas Digitales 2014 FIUNMDP

Mecanismo de transferencia de control de programa con condiciones iniciales: Vector de estado, registros del uP (AccA, AccB, IX, SP, CCR) M082 M151 M233 M30F M420 M52B M600 M710 M80A LDS $M7 ;SP=100A LDAA $M6 PSHA LDAA $M5 PSHA... LDAA $M0 PSHA PROGRAMA EL TIMER RTI 82  CCR=82 51  AccB=51 33  AccA=33 0F  IX=0F B  PC=2B00 100A00 SP RTI Retoma el control la Tarea n. Se comienza a ejecutar el programa que hay a partir de la posición almacenada (En el ejemplo 2B00) Para que interrumpa el uP mediante NMI cuando se cumple el tiempo destinado a esa Tarea.

Sistemas Digitales 2014 FIUNMDP Se prepara una tabla en la RAM del SOM para almacenar los SP de cada tarea. La primera vez todas las tareas arrancan desde el stack del programa monitor. Programa de Inicialización (S.O.M.) E000 E7FF E800 EFFF F000 F7FF F800 FFFF ROM de SOM RAM de SOM E/S de SOM (Sel Tarea) E/S de SOM (Timer) 2k RAM de SOM dirdato F000F0SP tarea 1 parte alta F001FFSP tarea 1 parte baja F002F0SP tarea 2 parte alta F003FFSP tarea 2 parte baja ……… F00nF0SP tarea n parte alta F00nFFSP tarea n parte baja