Clase 12 (25/9): Sistema Ca2 y Exceso

Comenzamos la clase con consultas de la práctica 5. A continuación discutimos sobre:

  • Rango en Ca2: Calculamos el rango de varios ejemplos de sistemas Complemento a 2.
  • La aritmética en Complemento a 2: Comprobamos que al sumar cadenas en Ca2 se debe aplicar el mismo mecanismo aritmético que para cadenas en BSS, y lo comprobamos con los incisos del ejercicio 19, resuelto en el pizarron y corregido por los mismos estudiantes

Sistema Exceso:

  1. Dimos una motivación «gráfica» donde las cadenas eran desplazadas sobre la recta de números una cantidad (delta) de lugares. Si delta>0 se desplazan hacia los negativos, y si en cambio delta<0 se desplazan hacia los positivos
  2. Vimos a partir de esto como debía ser la interpretación, considerando que es posible utilizar la interpretación en bss:
    Iex(c)=Ibss(c)-delta
  3. Dedujimos el mecanismo de representación a partir del mecanismo conocido para la representación en bss. Teniendo en cuenta la dualidad con respecto a la Interpretación, se debe «aplicar» el desplazamiento al número que se quiere representar y luego representar en bss:
    Rex(n)=Rbss(n+delta)
  4. Vimos como calcular el rango de un sistema exceso, similarmente a los otros sistemas: interpretando la cadena que representa el mínimo y la que representa el máximo.

Se pide completar la siguiente entrega, con tiempo hasta el lunes 28/9 a las 23.59

El archivo no puede abrirse porque no tienes JavaScript habilitado en tu navegador. Habilítalo y vuelve a cargar el archivo.

Entrega Número 2 - Lógica Digital
*Diseñar un circuito que compare dos cadenas en SM(4) y emita un 1 si son iguales o un 0 en caso contrario.*
Acceder a Google para guardar el progreso. Más información
* Indica que la pregunta es obligatoria
¿Como queda la tabla de verdad del circuito? *
Opcional: Subir la imagen de la formula a un servidor de preferencia y adjuntar el link
Tu respuesta
¿Como queda la fórmula de verdad del circuito? *
Opcional: Subir la imagen de la formula a un servidor de preferencia y adjuntar el link
Tu respuesta
¿Como queda el circuito diseñado? *
Para llenar el campo, subir la imagen a cualquier servidor de preferencia y copiar el link
Tu respuesta
Nombre Y Apellido: *
Tu respuesta
Comisión:
Borrar la selección
Dirección de mail: *
Tu respuesta
Enviar
Página 1 de 1
Borrar formulario
Nunca envíes contraseñas a través de Formularios de Google.
 
 

Clase 8 (11/9): Accesos a memoria en Q2

Hay un nuevo video que explica como instalar QSim en Linux de 64 bits. Pasen y vean!

Entrega (individual):

  1. Resolver el ejercicio 20 de la TP3
  2. Completar una tabla donde se indique que celdas (o registros) se acceden  en cada etapa del ciclo (BI, BO, AO).

 

El archivo no puede abrirse porque no tienes JavaScript habilitado en tu navegador. Habilítalo y vuelve a cargar el archivo.

Entrega práctica 3 (accesos en Q2)
Acceder a Google para guardar el progreso. Más información
* Indica que la pregunta es obligatoria
Suponiendo que la celda 0x089A tiene almacenado el costo en pesos de un producto, y la celda 0x089B contiene el porcentaje descuento a aplicar, calcule el valor final de venta a ser almacenado en la celda 0x089C. No puede usar registros para resolverlo. *
Tu respuesta
Completar una tabla donde se indique que celdas (o registros) se acceden  en cada etapa del ciclo (BI, BO, AO). *
Tu respuesta
Nombre y Apellido *
(No usar pseudonimos)
Tu respuesta
Enviar
Borrar formulario
Nunca envíes contraseñas a través de Formularios de Google.
 
 

Clase 6 (4/9): Q1

Se comenzó la clase con consultas de la primera parte de la práctica de Q1.

Luego, se profundizó sobre lo visto en la clase anterior (Codigo máquina y fuente para las instrucciones).

Proceso de ensamblado:
Para que los programas escritos en Q1 sean ejecutables, deben estar escritos en código máquina, para lo cual se establecen reglas de «traducción» de codigo fuente a codigo máquina para que estas instrucciones sean entendibles por las computadoras.

Esto es conocido como formato de instrucción, que define la organización de los bits dentro de una instrucción. El mismo debe incluir información acerca de las operaciones a resolver y los datos a utilizar (código de la operación y un mecanismo para llegar al/los operando/s).

La estructura para las instrucciones esta compuesta de:
(Operación -4b) (Modo Destino -6b) (Modo Origen -6b) (Destino -16b) (Origen -16b)

Los codigos de las operaciones y modos vistos hasta ahora son:

|——————-|
|Operación | Cod Op |
|==========|========|
| MUL | 0000 |
| MOV | 0001 |
| ADD | 0010 |
| SUB | 0011 |
| DIV | 0111 |
|——————-|
|———————|
| Modo | Cod Op |
|==========|==========|
|Inmediato | 000000 |
|Registro | 100rrr | Donde rrr se corresponde al número del registro a utilizar
|———————|

Según este formato la instrucción ADD R0, 0x0005 se traduce en:
0010 100000 000000 0000000000000101
(CodOp) (modoDest) (modoOr) (Origen)

En este caso, el operando destino no se utiliza porque en Q1 solo puede ser un registro, y esa información siempre se va a encontrar en el modoDest

Para mejorar la legibilidad de las instrucciones, se utilizará una escritura compactada a hexadecimal, de esta manera, la instruccion anterior se escribe 28000005

El proceso inverso (Desensamblado) es el que se realiza en la clase práctica para pasar de una instrucción codificada a una instrucción legible para una persona, el mismo consiste en separar una cadena de bits en codOp, modoDestino, modoOrigen, y operandoOrigen y luego traducirla según la tabla correspondiente.

¿Cómo es la ejecuciòn de programas en esta arquitectura?
1) Al comienzo del ciclo, la UC hace la lectura de instrucción, obteniendo la cadena 28000005
2) La UC decodifica la instrucción, identificando un ADD, que se traduce en una señal a la ALU pidiendo una suma, y una copia de los operandos a las entradas de la ALU. En Q1, el operando destino puede ser uno de los 8 registros (R0 a R7), y el operando origen puede ser además un valor inmediato (que está incluido en la instrucción).
3) La ALU ejecuta la suma y el resultado se dirige a R0.

Luego se proyectó un video de como utilizar QSim (Programa utilizado para simular la ejecución de instrucciones y verificar si un ejercicio esta bien resuelto) y se dedico el tiempo restante de la clase a instalar QSim y terminar la práctica verificando los ejercicios en el simulador.

Clase 5 (01/09). Ejecución de programas en Q1

Se retomó el juego de los panaderos con la salvedad de que las instrucciones ahora poseen códigos, se pide hacer una receta y luego traducirla a los codigos para que un robot inteligente que interpreta las recetas las pueda entender.
Se introducen las nociones de código fuente (comprensible por un humano) y código maquina (que es interpretable por la CPU), los mismos se encuentran relacionados ya que el programador escribe un programa en codigo fuente y que mediante
un interprete se ensambla y pasa a ser código máquina para ser ejecutado en una computadora, en lo que es el ciclo de vida de un programa.

En la arquitectura de VN, la ALU realiza las operaciones aritméticas con operandos suministrados por la UC, la que tambien
le indica a la ALU que operación llevar a cabo, la misma es realizada y la UC toma el resultado sobre los datos de entrada
provistos. Estas son las etapas de ejecución de un programa.

INSERTAR GRAFICO CICLO DE EJECUCION

Luego se agrego una nueva variación a las recetas para ensamblar, que son contar con opciones como:

  • Agregar los huevos que hay en la huevera (Los que haya)
  • Agregar 3 cucharadas de aceite

De esta manera se introducen los modos de direccionamiento (mecanismo por el cual la UC obtiene el operando requerido), que son:

  • Modo inmediato: El valor buscado esta codificado en una constante dentro de la instrucción
  • Modo registro: El valor buscado esta en un registro (que es un espacio de almacenamiento interno a la CPU)

Pasa a presentarse Q1, que es una arquitectura «teorica» que se va a utilizar en la materia, la cual cuenta con 8 registros para utilizar, un set de instrucciones que se utilizarán para realizar operaciones entre registros y constantes.
En Q1 se manejan datos de tipo BSS(16).

Los registros a utilizar son el R0, R1, R2, R3, R4, R5, R6 y R7.

Las instrucciones a utilizar son:

Operando | Operación |
=========|======================|
ADD | Suma |
=========|======================|
SUB | Resta |
=========|======================|
MUL | Multiplicación |
=========|======================|
DIV | División Entera |
=========|======================|
MOV | Copia de registros |

Se utilizan de la siguiente manera:

ADD destino, origen = destino <– destino + origen
SUB destino, origen = destino <– destino – origen
MUL destino, origen = (R7, destino) <– destino * origen (Los 16 bits mas significativos en destino, el resto en R7)
DIV destino, origen = destino <– destino % origen
MOV destino, origen = destino <– origen

Los operandos destino u origen pueden ser variables (registros) o constantes (cadenas de 16 bits representadas en hexa con la notacion 0xcadena de bits representada en hexa)

Ejemplos de programas en Q1

ADD R7, 0x0002 ==> Suma el contenido de R7 mas 2
MOV R6, R0 ==> Copia el valor de R0 en R6

Luego se resolvieron los ejercicios del 1 al 19 de la práctica de los cuales los grupos pasaron al pizarrón a resolver los ejercicios 3,4,9,10,14 y 16