Parcial 1 Flashcards
Representación de Complemento a 1
Si el número es negativo, a los bits del módulo se les aplica la operación NOT. Con esta representación se pueden expresar 2^(n-1)-1números positivos y 2^(n-1)-1 números negativos.
Representación de Complemento a 2
En esta representación, el bit más hacia la izquierda delnúmero se utiliza para representar su signo. Con 0 representando un número positivo y 1 representando un número negativo. Los otros bits representan la magnitud o módulo del número. Adicionalmente si el número es negativo, a los bits del módulo se les aplica la operación NOT y se les suma 1.
Con esta representación se pueden expresar 2^(n-1) -1 números positivos y 2^(n-1) números negativos. Debido a la eliminación de la duplicidad del 0.
Representación de exceso a K
En esta representación, a todos los números se les suma a su representación en binario un valor K, donde K suele valer 2^(n-1)-1.
Con esta representación se pueden expresar 2n-1 números positivos y 2^(n-1) -1 números negativos. Debido a la eliminación de la duplicidad del 0.
ASCII
ASCII (American Standard Code for Information Interchange). Se corresponde a una codificación donde cada carácter podía representarse con 7 bits. A cada carácter se le asociaba un código único.
Diseñado originalmente para representar los principales caracteres del alfabeto inglés. Posteriormente extendido para incluir caracteres de lenguajes de países de Europa occidental (francés, español, portugués). En el llamado Extended ASCII cada caracter ocupaba 8 bits (1 byte).
Representación de Decimal Empaquetado (Binary Packed Decimal – BPD)
En esta representación, cada dígito se codifica independientemente en 4 bits (también conocido como un nibble).
Con esta representación por cada byte se pueden representar 2 dígito (a excepción del leftmost byte que incluye el signo + 1 dígito)
EBCDIC
EBCDIC (Extended Binary Coded Decimal Interchange Code). Se corresponde a una codificación donde cada caracter se
representa en 8 bits. Diseñada en 1964 y utilizada en un principio con los computadores mainframe de la serie IBM System/360, posteriormente se siguió utilizando en otros dispositivos producidos por IBM.
Considerablemente diferente (y por tanto incompatible) con la codificación ASCII, principalmente debido al uso de un orden distinto al codificar los sets de caracteres (e.g: En EBCDIC las minúsculas van primero que las mayúsculas mientras que en ASCII sucede lo contrario).
Unicode
Unicode constituye un standard de codificación de texto diseñado con el interés de soportar la totalidad de los caracteres imprimibles de los sistemas de escritura del mundo. Permitiendo representar texto en alfabetos que estándares como ASCII no soportan (e.g: cirílico, kanji, hiragana, etc.)
Incluye las codificaciones UTF-8, UTF-16, UTF-32. Donde
destaca que las 2 primeras son de longitud variable.
UTF-8 resulta particularmente conveniente debido a su
retrocompatibilidad con el estandar ASCII.
Punto Flotante - NECESIDAD
Además de representar números enteros positivos y negativos. Es necesario tener la capacidad de representar números con
parte fraccionaria (tanto positivos como negativos).
Sin embargo, surge una dificultad para representar estos números dado que incluso entre 0 y 1, hay una cantidad infinita
de números a representar. Por lo cual digamos que no resulta práctico generar una “codificación” para cada posible número
real que quisieramos representar.
Punto Flotante - FUNDAMENTOS
La solución al problema anterior es utilizar una representación en la llamada notación científica.
* N = f x 10^e
* Donde N es el número que queremos representar. f es la parte fraccionaria o mantisa y e es un entero (positivo o negativo)
llamado exponente.
* En un computador, a este tipo de representación es lo que conocemos como Punto Flotante. Entendiéndose que en un
computador no podemos representar números en un sistema de base 10, en cambio debemos atenernos a un sistema de
base 2.
Representación en punto flotante
Un número en punto flotante requiere que definamos 3 cosas: d0.d1d2d3d4d5d6…dn x b^exp
* La mantisa (los distintos digitos d0, d1, d2, d3 … etc).
* La base (b)
* El exponente (exp)
* Donde la mantisa y el exponente pueden tener signo. Mientras que la base por lo general se define como un número
positivo (el signo del resultado total vendrá dado por el signo de la mantisa).
* Es necesario definir entonces cuantos dígitos tenemos disponibles para el exponente y para la mantisa, dado que la base se
entiende que es un número fijo para toda la representación.
Números normalizados
El concepto de un número normalizado es sumamente importante. Se dice que un número en punto flotante (o notación
científica) está normalizado sí NO va precedido por ceros.
Una definición más formal de los números normalizados es que son aquellos que el dígito a la izquierda del punto decimal
está entre 0 y la base (no inclusivo).
* En el caso de números binarios este número siempre es 1 dado que es el único n que cumple que 0 < n < base (2)
Numeros normalizados
* Los números en punto flotante serán almacenados en notación normalizada
Intervalo y Precisión
El intervalo está determinado por el número de dígito del exponente.
El presición está determinada por el número de dígitos de la matisa o fracción.
Estándares de punto flotante - Estándar IEEE 754
Es el estandar de uso más común a propósito de representación de números con parte fraccionaria.
* Ha sido desarrollado para facilitar la portabilidad de los programas de un procesador a otro.
* Prácticamente cualquier procesador y coprocesador aritmético hoy en día cuenta con la capacidad de manejar números en
punto flotante definidos según este estandar.
* Define 2 formatos:
* Formato de Precisión Simple (32 bits)
* Formato de Precisión Doble (64 bits)
* Trabaja siempre con números normalizados. Es decir, el bit a la izquierda del punto decimal en la mantisa SIEMPRE es igual
a 1. Por lo cual NUNCA es necesario representarlo. Todos los bits de la mantisa siempre se corresponden a representar los
dígitos a la derecha del punto decimal.
* Para el formato simple, el exponente se representa en exceso a 127. En el formato doble el exponente se representa en
exceso a 1023.
IBM hexadecimal floating point format
Formato de la IBM para representación de números en punto flotante. Diseñado en base un sistema de numeración
hexadecimal en vez del sistema binario utilizado por IEEE 754.
* Distribución de bits:
1 bit para el signo (0 es positivo, 1 es negativo).
7 bits para el exponente. Usando representación a exceso 64
24, 56 o 112 bits para la mantisa (dependiendo del formato).
Concepto del programa almacenado
En un principio, la operación de un computador requería de la reorganización física de los componentes del mismo. Los sistemas cableados no son flexibles de modificar, por lo cual modificar el HARDware resulta una manera difícil para
modificar el comportamiento del ordenador.
El programa almacenado implica un cambio de paradigma, el HARDware se diseña de uso general, y a través de un
conjunto de señales de control se utilizan funcionalidades específicas. Se tiene algo más blando y fácil de cambiar: el
SOFTware.
Programas
- Un programa se define simplemente como una secuencia o sucesión de pasos.
- Cada paso implica la realización de alguna operación ARITMÉTICA o LÓGICA.
- Para cada operación distinta que deba soportar el procesador, se necesita tener una señal de control distinta.
¿Qué (o quién) hace esto posible? (Programas)
La Unidad de Control (UC) es el componente responsable de interpretar las señales de control para que el hardware pueda
ejecutar las funcionalidades correspondientes.
* La UC recibe un código único de operación:
* Ej: El código 0101 -> ADD, o 0110 -> MOVE
* Dependiendo del Código, se realiza la operación correspondiente.
* La UC procede a recibir una nueva instrucción (con su respectivo código único de operación).
* La repetición cíclica de los sucesos descritos anteriormente nos dan el funcionamiento común de un computador.
Instrucciones
- La definición (un poco informal, pero no menos cierta) de una instrucción es: “Una operación aritmética o lógica que puede ser ejecutada por un ordenador”.
- No obstante, a partir de la definición anterior nace una observación interesante: No hay ninguna restricción para
que todos los ordenadores implementen exactamente las mismas instrucciones. - El conjunto de las instrucciones que un ordenador soporta es lo que define su repertorio de instrucciones.
Tipos de sets de instrucciones
RISC
* Reduced Instruction Set Computers
* Enfocados en la construcción de programas de
muchas instrucciones simples.
* Implica mayor complejidad en el Software.
CISC
* Complex Instruction Set Computers
* Enfocados en la construcción de programas de
pocas instrucciones complejas
* Implica mayor complejidad en el Hardware.
El ciclo de instrucción
El proceso cíclico que constituye el funcionamiento normal de un computador. En arquitectura de computadores, los ciclos por instrucción o CPI son una medida del rendimiento de un procesador: el número medio de ciclos de reloj por instrucción en un programa o fragmento. Es el inverso multiplicativo de las instrucciones por ciclo.
Ciclo de captación
El contador de programa (PC) contiene la dirección de la
instrucción que se debe captar a continuación.
* El procesador recupera la instrucción a la cual apunta el PC
desde la memoria.
* El registro PC se incrementa para apuntar a la dirección de
la siguiente instrucción. (Hay casos donde esto NO ocurre).
* La instrucción recuperada de memoria queda cargada en el
Instruction Register (IR).
* El procesador interpreta la instrucción y lleva a cabo la
acción correspondiente.
Ciclo de Ejecución
Se ejecutan instrucciones de:
* Transferencia de datos procesador <-> memoria.
* Transferencia de datos procesador <-> E/S
* Procesamiento de datos (operaciones aritméticas o lógicas).
* Operaciones de Flujo del Control, por ejemplo la realización
programática de saltos entre instrucciones de código.
* Combinación de estas Acciones (Particularmente con CISC)
Modos de Direccionamiento
Significa a las distintas maneras o mecanismos a través de
los cuales se puede hacer referencia dentro de una
instrucción al operando u operandos necesarios para realizar
la operación correspondiente.
* Los modos de direccionamiento se deben entender como
complementarios entre sí (Cada uno tiene sus ventajas y
desventajas, así como sus casos de uso).
* Una instrucción puede perfectamente utilizar modos de
direccionamiento distintos para cada uno de los operandos
que la componen.
Direccionamiento Inmediato (no es un tipo de direccionamiento)
Es el modo de direccionamiento más sencillo, donde el
operando forma parte de la instrucción directamente. Es
decir, al traer la instrucción ya se trae el operando incluido.
* Su principal ventaja es que no requiere tener una referencia
a memoria, y por lo tanto no es necesario hacer una
posterior búsqueda en memoria por el operando.
* Su principal desventaja es que el tamaño del operando se
ve considerablemente limitado, por lo cual se limita la
magnitud del dato a representar.