miércoles, 3 de febrero de 2016

Microprocesadores

Lea cuidadosamente el siguiente documento y realice lo que se le pide:
Comencemos con la instrucción “Button”, la cual es utilizada para la eliminación de rebotes en pulsadores o para efectuar repeticiones en un botón, como sucede en el caso de los teclados de las computadoras, en las cuales si dejamos presionado un botón o tecla, la misma se repite indefinidamente a una frecuencia específica, la cual puede ser variada fácilmente como lo demostraremos a continuación.
Antes de empezar, veamos la sintaxis de la instrucción Button:

Button
Sintaxis: Button pin, estado, retardo, rango, variable, acción, etiqueta
La instrucción “Button” elimina los rebotes de un “pulsador” o “switch”, y genera auto-repetición.

Pin: especifica el pin del puerto en el cual será conectado el pulsador.

Estado: indica cual es estado lógico que debe ocurrir cuando el pulsador es presionado (0 o 1). Si es 0, el pulsador deberá ser activo-bajo y si es 1, el pulsador deberá ser activo-alto (Ver figura 1).
Figura 1

Retardo: es una variable o constante (0 – 255) que especifica cuantos ciclos deben pasar antes de efectuar la auto-repetición. Este campo tiene dos funciones especiales: si el campo retardo es igual 0, no permite anti-rebote y no permite auto-repetición. Si el campo retardo es igual a 255, permite el antirebote pero no permite la auto-repetición.
Rango: es una variable o constante (0 – 255) que especifica el número de ciclos entre auto-repeticiones.
Variable: es una variable auxiliar tipo Byte, definida también al inicio del programa para uso exclusivo de la instrucción Button, por lo cual no deberá ser utilizada con otro fin en el programa. Siempre debe ser inicializada antes del comando Button.
Acción: indica el estado del botón cuando éste no es presionado.
Etiqueta: la instrucción realiza un salto a la etiqueta definida en este campo cuando el pulsador no ha sido presionado.
Adicionalmente utilizaremos la instrucción “Pulsout” en el ejemplo, para generar pulsos de tiempo definido.

PULSout
Sintaxis: PULSout pin, nivel, variable
La instrucción “PULSout”, genera pulsos con una duración definida en decenas de microsegundos. (Tiene una resolución de 10 microsegundos para un oscilador de 4 Mhz, y una resolución de 2 microsegundos para un oscilador de 20 Mhz).
Para este trabajose armarán tres ejemplos basados en el circuito de la figura 2.
Figura 2

Se puede observar en el diagrama esquemático, que mientras el pulsador permanece abierto, hay un cero lógico en el pin RB0, el cual debemos configurar como entrada en el programa. Cuando el pulsador sea presionado, el estado lógico en el pin RB0 será un uno lógico.
La salida a través de la cual se van a generar los pulsos será el pin RB1, en el cual hemos conectado un osciloscopio para poder ver el resultado de las señales generadas a partir de las especificaciones dadas en cada ejemplo a continuación.

Para el primer ejemplo, se pide generar un pulso de 1.5 milisegundos una vez presionado el botón. Luego, pasados 20 milisegundos con el botón presionado, debe empezar una auto-repetición de este pulso cada 10 milisegundos.

Veamos el siguiente programa:
Define Osc 4
TRISB = %11111101 ' Configuración del puerto B
A Var Byte ' declaración de la variable A para la instrucción Button.
A = 0 ' inicializa la variable A
PORTB.1 = 0 ' Inicializa la Salida RB0
Inicio:
Button PORTB.0,1,2,1,A,0,Tiempo
PulsOut PORTB.1,150 ' Genera un pulso de 1.5ms o 150 decenas de microsegundos.
Tiempo:
Pause 10 ' Pausa de 10 mili segundos

GoTo Inicio ' Salta a inicio
End
Ahora analicemos la secuencia del programa:
· Mientras el pulsador permanece abierto, la instrucción Button salta a la etiqueta especificada, la cual en este caso hemos denominado “Tiempo”. Seguidamente el programa completa el ciclo ejecutando las instrucciones que siguen, y finalmente retorna a la etiqueta inicio.
· Si es presionado el pulsador, se genera el primer pulso a través de la instrucción “Pulsout PortB.1, 150” (figura 3), y el programa continúa su curso hasta completar el primer ciclo. En este punto la auto repetición aún no comienza, ya que hemos especificado en la instrucción Button, que ésta debe comenzar al terminar el segundo ciclo:
Figura 3


Ejercicio
Genere un pulso de 2.5 milisegundos, con un tiempo para anti-rebotes en el pulsador de 30 milisegundos, y un tiempo entre cada auto-repetición de 10 milisegundos.



Ejercicios de Física


martes, 1 de septiembre de 2015

1 de septiembre

Hoy si habrá clase

sábado, 29 de agosto de 2015

Circuitos eléctricos

Investigar los conceptos de:
Carga, Corriente, Energía, Voltaje, Potencia, Flujo magnético, Señales eléctricas: CD, CA, amplitud, frecuencia, fase, Impedancia, Reactancia Inductiva, Reactancia Capacitiva.


Arquitectura Funcional

Práctica No. 1 “Análisis de Rendimiento de la Memoria Caché”

MATERIAL NECESARIO: Ordenador con acceso a internet.
CONCEPTOS NECESARIOS: Memoria caché y rendimiento de memoria.
DESCRIPCIÓN: A través de una página web se accederá a un analizador del rendimiento de la memoria caché a través del cual se podrán evaluar los diferentes rendimientos dependiendo de las políticas de lectura y escritura configuradas como parámetros por el usuario.

PASOS:
1) Abre el navegador de internet y conéctate a la página web
http://www.ecs.umass.edu/ece/koren/architecture/. Si necesitas traducir algunas de las palabras del inglés puedes utilizar la web http://wordreference.com/. El aspecto de la página es el que sigue:

2) Pulsando sobre la opción de Cache Demonstrator accede al menú del simulador de memoria caché:

3) Entra en la opción de Cache Time Analyzer que da acceso al analizador del rendimiento de la memoria caché. Este analizador nos permitirá evaluar los diferentes rendimientos de la memoria dependiendo de las políticas de lectura y escritura configuradas como parámetros por el usuario. El analizador tiene el siguiente aspecto:

4) Antes de empezar con las simulaciones, haz click sobre el botón de ayuda y lee atentamente las definiciones que aquí se presentan. Hay que tener en cuenta las siguientes consideraciones:
 Associativity: número de conjuntos de bloques en caché. ¡No confundir con el grado de asociatividad!
 % Writes: sobre un total de 100 referencias a memoria indica cuántas lo han sido para escritura.
 Dirty Data: sobre un total de 100 bloques de caché, representa cuántos han sido modificados y deberán ser escritos en memoria central antes de ser desalojados de la caché. Este campo no se utiliza cuando la política de escritura es write-through.
 Miss Penalty (cycles): indica el número de ciclos de reloj con los que se
‘penaliza’ un fallo de caché (la información accedida no se encuentra en caché).
 Hit time (cycles): indica el número de ciclos de reloj que transcurren cuando la información accedida sí se encuentra en caché.
 Mem. Write (cycles): indica el tiempo de escritura en la memoria central medido en ciclos de reloj.
 Write policy: indica la política de escritura a seguir cuando el bloque a modificar se encuentra en caché. Las opciones a configurar son:
Write back: Actualización posterior (también llamada copy back).
Write through: Actualización directa.
 Por otra parte, también se nos permite combinar ambas políticas de escritura cuando el bloque a modificar se encuentra en caché con las políticas de escritura cuando se da un fallo al intentar realizar una operación de escritura en caché (write miss). Estas políticas de write miss son:
Allocate on miss: Cuando se da el fallo de escritura en caché, se carga desde la memoria central el bloque referenciado y se procede a escribir en él (aplicando la política de write back o de write through seleccionadas).
No write allocate: Cuando se da el fallo de escritura en caché, el bloque se modifica directamente en la memoria central, sin ser cargado en la caché.
 Lógicamente y en la práctica, resulta normal combinar una política de write back con la de allocate on miss, mientras que la técnica de write through se suele combinar con la política de no write allocate.

5) Simulación nº 1: write back – allocate on miss:
 Configura el sistema de memoria con los siguientes parámetros:
Tamaño de caché: 2 KB
Nº de conjuntos: 4
Tamaño de bloque: 32 Bytes
Política de escritura: write back – allocate on miss
% writes: 22
% dirty data: 10
Miss penalty (cycles): 40
Hit time (cycles): 1
Memory write (cycles): 6
 Ejecuta la opción Analyze. ¿Cuál es el tiempo medio de acceso a memoria?, ¿en qué unidades viene medido?
 Con la configuración de caché dada, ¿cuál es la tasa de aciertos y de fallos?
 ¿Cuánto tarda el sistema en realizar una operación de lectura?
 ¿Cuánto tarda el sistema en realizar una operación de escritura?
 ¿Cuándo tarda más el sistema, en una operación de lectura o de escritura?, ¿porqué?
 ¿Se utiliza el parámetro Memory write (cycles)? ¿porqué?
6) Simulación nº 2: write through – no write allocate:
Configura el sistema de memoria con los siguientes parámetros:
Tamaño de caché: 2 KB
Nº de conjuntos: 4
Tamaño de bloque: 32 Bytes
Política de escritura: write through – no write allocate
% writes: 22
% dirty data: 10
Miss penalty (cycles): 40
Hit time (cycles): 1
Memory write (cycles): 6
 Ejecuta la opción Analyze. ¿Cuál es el tiempo medio de acceso a memoria? ¿En qué unidades viene medido?
 Con la configuración de caché dada, ¿cuál es la tasa de aciertos y de fallos?, ¿difieren estos resultados de los obtenidos en la simulación nº 1? ¿Por qué?
¿Cuánto tarda el sistema en realizar una operación de lectura?
¿Cuánto tarda el sistema en realizar una operación de escritura?
¿Qué sucede ahora con el tiempo de escritura en caché si el dato a modificar se encuentra en ella? ¿por qué?
¿Se utiliza el parámetro Memory write (cycles)? ¿Por qué?

7) ¿Qué sistema de los estudiados resulta más eficiente? ¿Por qué?

8) Realiza nuevas simulaciones cambiando la configuración del sistema. Comprueba si los resultados obtenidos son los que esperabas.

9) Investiga lo que es un Benchmark y da por lo menos 4 ejemplos diferentes.

10) Envía un reporte de práctica

Debe enviarse al correo lilia_mantilla@yahoo.com.mx

viernes, 28 de agosto de 2015

AVISO

Se les informa a los estudiantes otoño 14 que no habrá clase el día de hoy, mañana enviaré el trabajo a realizar.
Saludos

miércoles, 19 de marzo de 2014

Práctica 5 19 de Marzo de 2014

Práctica 5 Diseño de una ALU de 4 bits
Instrucciones:
1.    Realiza la unión de las operaciones aritméticas y lógicas para conformar la Unidad Aritmético Lógica.
2.    Recuerda que el modulo de multiplicación, división, suma y resta debe ser diseñado para cuatro bits sin utilizar en HDL los signos +, -, *, /.
3.    Simula el sistema dejando ver cada una de las operaciones funcionando.

4.    Redacte su conclusión.
     Realiza tu reporte siguiendo el formato que se muestra a continuación. Es indispensable el código HDL.