Parcial 1 Flashcards

1
Q

Representación de Complemento a 1

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Representación de Complemento a 2

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Representación de exceso a K

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ASCII

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Representación de Decimal Empaquetado (Binary Packed Decimal – BPD)

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

EBCDIC

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Unicode

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Punto Flotante - NECESIDAD

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Punto Flotante - FUNDAMENTOS

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Representación en punto flotante

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Números normalizados

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Intervalo y Precisión

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Estándares de punto flotante - Estándar IEEE 754

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

IBM hexadecimal floating point format

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Concepto del programa almacenado

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Programas

A
  • 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.
17
Q

¿Qué (o quién) hace esto posible? (Programas)

A

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.

18
Q

Instrucciones

A
  • 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.
19
Q

Tipos de sets de instrucciones

A

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.

20
Q

El ciclo de instrucción

A

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.

21
Q

Ciclo de captación

A

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.

22
Q

Ciclo de Ejecución

A

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)

23
Q

Modos de Direccionamiento

A

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.

24
Q

Direccionamiento Inmediato (no es un tipo de direccionamiento)

A

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.

25
Q

Direccionamiento Directo

A

Vas a la memoria y buscas el dato.

Es un modo de direccionamiento relativamente simple. En la instrucción se incluye la dirección en la memoria donde
se encuentra el operando.
* Sus ventajas son que es relativamente sencillo, requiriendo únicamente 1 búsqueda a memoria para encontrar al
operando. Asimismo, el operando no está limitado en magnitud por el tamaño de la instrucción.
* Su principal desventaja es que el tamaño de la dirección a la cual se apunta se ve considerablemente limitado, por lo cual se limita el espacio direccionable.

26
Q

Direccionamiento Indirecto

A

Vas a la memoria y buscas la dirección, luego con esa dirección vas otra vez a la memoria y (quizá) ya tienes el dato.

Es un modo de direccionamiento un tanto más complicado. En la instrucción se incluye una dirección en la memoria donde se otra dirección que, de seguirla, eventualmente llevará hasta el operando.
* Su ventaja está en que funcionalmente puede referenciar una mayor porción de la memoria. 2n espacios de memoria donde n es el tamaño de palabra del computador.
* Su principal desventaja es su complejidad, dado que se pueden dar múltiples búsquedas a memoria lo cual implica que se toma un mayor tiempo en hacer fetch del operando.

27
Q

Direccionamiento con registros

A

Vas al registro a buscar el dato.

En este el operando se encuentra directamente en un registro. Y la instrucción guarda es una referencia a la dirección del registro
* Su ventaja está en que no se requiere hacer un acceso a la memoria. Lo cual hace que la ejecución de la instrucción
sea bastante rápida.
* Su principal desventaja es que la cantidad de registros disponibles para uso general en un computador suele ser poca. Por lo cual requiere que se economice inteligentemente le uso de registros.

28
Q

Indirecto a memoria con registros

A

Vas a un registro, buscas la dirección y luego de ahí vas a la memoria a buscar el operando.

  • Es considerablemente similar al direccionamiento indirecto. Con la única diferencia que la primera búsqueda se hace hacia un registro.
  • Sus ventajas están en que funcionalmente puede referenciar una mayor porción de la memoria y no es tan lento como el direccionamiento indirecto, al hacer la primera búsqueda a un registro.
  • Su principal desventaja es igualmente que se utiliza uno de (posiblemente pocos) registros disponibles, y posiblemente con un único salto desde un registro hacia la memoria no se puede direccionar a toda la memoria.
29
Q

Direccionamiento con desplazamiento

A

Vas a un registro, buscas la dirección y luego de ahí vas a la memoria un poquito más adelante a buscar el operando.

  • Se parece mucho al direccionamiento indirecto a memoria con registro. Con la única diferencia que se le añade un desplazamiento u offset a la posición de memoria a la cual consultar.
  • Tiene su particular uso en el acceso a vectores en memoria. Donde cada dato se encuentra desplazado x posiciones a partir del principio del vector.
30
Q

Direccionamiento relativo (al pc)

A

Buscas una posición en memoria que esté a cierto offset del Program Counter (¡Eso te trae por lo general una instrucción!)

  • Es una variante al direccionamiento con desplazamiento, con la principal diferencia en que se hace con referencia al valor que se encuentre en el PROGRAM COUNTER.
  • Ello implica que se utiliza en instrucciones que busquen de alguna manera manipular direcciones de memoria relativas a la actual instrucción que se está ejecutando.
31
Q

Endianness

A
  • Concepto referido a la manera u orden en el cual se organizan los bytes al almacenar un dato en un ordenador. Sea dentro
    de la memoria del mismo o en cualquier otro espacio de almacenamiento disponible (como registros por ejemplo).
  • Parte de la consulta acerca de en qué orden deberían guardarse los bytes que representen un dato. Si se deben guardar en
    el mismo orden que se escribe la representación o si se deberían escribir en orden inverso.
  • De entrada, pareciera a primera vista que seguir el mismo orden en el que se escribe la representación puede ser
    conveniente. No obstante, nos daremos cuenta que esto realmente no es así.
32
Q

Big Endian

A

En el formato Big Endian, los bytes de mayor significancia se guardan al principio del espacio de memoria, y los de menor
significancia quedan al final del espacio de memoria. De allí proviene su nombre, dado que se escribe en memoria a partir
de la porción de mayor significancia, o dicho de otra manera escribimos primero su Big End (borde superior).
* Por ejemplo, si quisiéramos guardar el siguiente número escrito en Hexadecimal: 0x1A2B3C4D, se guardaría de la siguiente
manera:
* > 1A 2B 3C 4D
* NOTA: Recuerde, que cada par de dígitos en Hexadecimal ocupa exactamente 1 byte.

33
Q

Little endian

A
  • En el formato Little Endian, los bytes de menor significancia se guardan al principio del espacio de memoria, y los de
    mayor significancia quedan al final del espacio de memoria. De allí proviene su nombre, dado que se escribe en memoria a
    partir de la porción de menor significancia, o dicho de otra manera escribimos primero su Little End (borde inferior).
  • Por ejemplo, si quisiéramos guardar el siguiente número escrito en Hexadecimal: 0x1A2B3C4D, se guardaría de la siguiente
    manera:
  • > 4D 3C 2B 1A
  • NOTA: Recuerde, que cada par de dígitos en Hexadecimal ocupa exactamente 1 byte.
  • El formato Little Endian tiene la ventaja que los bytes de menor significancia tienen una menor dirección de memoria.
34
Q

Arquitectura del mips 2000

A
  • Debemos recordar que el procesador MIPS 2000 cuenta con un set de instrucciones RISC (Reduced Instruction Set
    Computer). Razón por la cual su set de instrucciones es considerablemente sencillo y su formato de instrucciones no tiene
    mayor complejidad.
  • En el procesador MIPS 2000 TODAS las instrucciones tienen una longitud de exactamente 32 bits, y únicamente se tienen
    3 tipos de instrucciones:
    Instrucciones tipo R
    Instrucciones tipo I
    Instrucciones tipo J
35
Q

Formato de instrucciones tipo R

A
  • Su nombre significa “Instrucciones de Registros”, y como se puede intuir: Se refieren a instrucciones que realizan
    operaciones ALU (Aritméticas y Lógicas) estrictamente con operandos almacenados en registros.
  • Están conformadas por 6 “secciones”:
  • 6 bits que conforman el Código de operaçión, que para instrucciones R siempre es 000000
  • 3 secciones que especifican un registro cada una, con una longitud de 5 bits cada una. Estos 3 registros suelen ser 2 operandos y un
    registro destino.
  • Una sección de shamt o “Shift Amount”, que describe la cantidad de Shift (para operaciones que soportan Shift).
  • Una sección de funct, con un Código único que especifica la función a realizar (puede imaginarse como una extensión del Código de
    operación).
36
Q

Formato de instrucciones tipo I

A

Las instrucciones de tipo I se les conoce como “Instrucciones de Inmediatos”. Dado que se refieren a instrucciones que soportan instrucciones donde uno de los valores se especifica como un inmediato.
* Se pueden sub-clasificar en 3 tipos de instrucciones:
* Instrucciones de Carga o Almacenamiento a Memoria
* Instrucciones de Branch o Salto Condicional
* Instrucciones de Operaciones ALU con valores inmediatos.

37
Q

Formato de instrucciones tipo J

A
  • Las instrucciones tipo J se conocen como instrucciones “Tipo Jump”, dado que este formato solo lo utilizan ciertas instrucciones de salto incondicional conocidas como “Jump”.
  • Estas instrucciones están compuestas por un Código de operación de 6 bits, seguidas de 26 bits que sirven para especificar la dirección de memoria de una instrucción hacia la cual se desea saltar
38
Q

¿Qué arquitectura usa intel?

A
  • Intel es de manera indiscutible el mayor productor de circuitos integrados del mundo. Conocido principalmente por sus famosas líneas de procesadores que buscan cubrir distintos casos de uso que van desde uso personal en ordenadores de escritorio y laptops hasta casos de uso orientados hacia lo empresarial.
  • La principal arquitectura utiliza por Intel se conoce como IA-32 (Intel Architecture 32 bits), también conocida convencionalmente bajo el nombre x86, o x86-32. Dicha arquitectura ha sido utilizada por Intel desde su procesador Intel 80386 y su uso se ha prolongado hasta hoy en día. En gran parte debido al compromiso de retrocompatibilidad que Intel ha mantenido entre procesadores más modernos y las generaciones que les preceden.
  • Dicha arquitectura también se ha extendido bajo Intel-64 (también conocida como x86-64) que soporta como lo indica su nombre registros, direcciones de memoria virtuales e instrucciones con longitudes de hasta 64 bits.
39
Q
A