UNIDAD 2 Configuración y operación de un sistema de cómputo
Representación de datos
Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse con cualquier dispositivo que pueda estar en uno de dos estados como apagado o encendido No se puede almacenar mucha información en un circuito que sólo pueda representar un bit
Conceptos Los datos se representan mediante un sistema de codificación en el que diferentes patrones de bits corresponden a distintos símbolos, como las letras del alfabeto, los dígitos o los signos de puntuación La memoria principal de una computadora consiste en una vasta colección de circuitos capaz de almacenar un gran número de bits Ésta reserva de bits se divide en unidades manejables llamadas celdas o palabras, que en muchos casos comprenden 8 bits (1 byte)
Conceptos Aunque estas celdas no tienen una dirección derecha o izquierda, se puede imaginar que los bits están dispuestos en una fila de izquierda a derecha, con el extremo alto a la izquierda Al bit de éste extremo se le conoce como bit alto o más significativo y el bit del otro extremo se denomina bit bajo o menos significativo
Representación de datos Los maneras más comunes de representar un dato son: Representación binaria Representación octal Representación hexadecimal La representación de los sistemas de numeración generalmente se indica colocando el número entre paréntesis y la base como un subíndice
Representación de datos Representación binaria: Los dígitos disponibles para esta representación son el 0 y el 1, y la base en la que se maneja es base 2, cada dígito se representa utilizando un bit (101100011) 2 (100111001) 2 (0000110) 2 (1100111) 2
Representación de datos Representación octal: Los dígitos disponibles van del 0 al 7, y la base en la que se maneja es base 8, cada dígito se representa en binario utilizando tres bits (123) 8 (564) 8 (1706) 8 (772) 8 (1241) 8
Representación de datos Representación hexadecimal: Los dígitos disponibles van del 0 al 15, pero a partir del valor 10, se tiene la siguiente representación 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F, cada dígito se representa en binario utilizando cuatro bits (12F3) 16 (756DA) 16 (AAA1) 16 (F) 16 (86CB) 16
Conversiones entre datos Para convertir de la base decimal a cualquiera de las otras bases, el procedimiento es: Dividir el número a convertir entre la base a la que se desea transformar Tomar el cociente y aplicar el paso 1 hasta que el éste sea cero Ordenar los residuos en orden inverso al que se obtuvieron
Conversiones entre bases Para convertir de cualquier base a la base decimal, se deben seguir los siguientes pasos: Multiplicar el valor por la base elevada a la posición que ocupa el valor empezando desde cero y contando de derecha a izquierda Realizar la suma de los resultados obtenidos
Conversiones entre bases Las conversiones entre las bases binaria, octal y hexadecimal se realizan de la siguiente manera: Binaria a octal o hexadecimal: Agrupar los dígitos binarios de derecha a izquierda en grupos de 3 (base octal) o grupos de 4 (base hexadecimal) según se desee realizar la conversión, si faltan dígitos agregar ceros Convertir el grupo de dígitos binarios a su equivalente decimal y en el caso de la base hexadecimal, si el número es mayor de 9, escribir su representación correspondiente
Conversiones entre bases Para convertir de bases octal o hexadecimal al base binaria, el procedimiento es el siguiente: Se debe representar cada dígito en su forma binaria utilizando 3 bits (octal) o 4 bits (hexadecimal) según corresponda
Conversiones entre bases Para realizar la conversión entre bases octal y hexadecimal, la forma más sencilla es convertir primero a base binaria y posteriormente a la base deseada
Conversiones entre bases Conversión de números decimales con representación en punto fijo Los pasos a seguir son los siguientes: Multiplicar la parte fraccionaria por la base a la que se desea convertir Tomar la parte entera y colocarla en el orden en que vaya apareciendo Volver a multiplicar solo la parte fraccionaria y repetir el paso 2 hasta alcanzar el número de cifras significativas que se deseen En caso de tener parte entera y parte fraccionaria, se convierten por separado a formato binario, se coloca la parte entera, una, y posteriormente la parte fraccionaria
Conversiones entre bases Para convertir de bases binaria, octal y hexadecimal a decimal con punto fijo, se siguen los siguientes pasos: Multiplicar el dígito por la base elevada a la potencia negativa según la posición que ocupa empezando con -1 y numerando de izquierda a derecha Realizar la suma de los resultados obtenidos Si se genera una diferencia, ésta se debe a la cantidad de cifras significativas que se tomaron
Operaciones lógicas
Operaciones lógicas Operaciones que se realizan bit a bit De acuerdo a las entradas que reciben producen una determinada salida Las más comunes son: NOT (negación) AND (Y) OR (o) XOR (o exclusiva)
Tablas de verdad
Suma binaria Las reglas cuando se suman números binarios de un bit son: Estas reglas se aplican a patrones con mayor cantidad de bits
Resta binaria Las reglas de la suma pueden aplicarse pero de manera inversa, con la condición de que no se puede restar un número mayor de uno menor
Multiplicación binaria Aplicar la operación lógica AND entre los bits del multiplicando y cada uno de los bits del multiplicador La siguiente cadena de bits se coloca debajo efectuando un recorrido como en las multiplicaciones decimales Al finalizar, realizar la suma binaria
División binaria Tomar de izquierda a derecha n bits del dividendo, hasta que el número representado en los bits del dividendo sea mayor o igual que el divisor Colocar un 1 como cociente encima del n-ésimo digito del dividendo y realizar una operación AND con el divisor Ordenar los dígitos debajo del dividendo Realizar la resta binaria Colocar ceros en el cociente y bajar los siguientes dígitos del dividendo hasta que éste sea mayor o igual que el divisor o se terminen los dígitos del dividendo Una vez que se tienen igual número de dígitos en el dividendo y divisor, repetir desde el paso 2
Complementos
Complemento a r Dado un número positivo N en base r con parte entera de n dígitos se define el complemento r de N como: r n -N para N 0 y 0 para N = 0
Complemento a r-1 Dado un número positivo N en base r con una parte entera de n dígitos y una fraccionaria de m dígitos, se define el complementote (r-1) de N como: r n -r -m -N
Complemento de números binarios Se tienen varias maneras para obtener el complemento de un número binario: Obtener el complemento utilizando las definiciones de complemento a r y r-1 C 2 (101100) 2 = (2 6 ) 10 (101100) 2 = (1000000 101100) 2 = 010100 C 1 (101100) 2 = (2 6 2 0 ) 10 (101100) 2 = (111111 101100) 2 = 010011
Complemento de números binarios Otra manera es utilizando las siguientes definiciones: C 1 (N) = N C 2 (N) = N + 1
Complemento de números binarios Una tercer manera de obtener el complemento a dos es: Invertir los bits más significativos a partir del 1 menos significativo El resto de los bits, incluyendo el 1 menos significativo permanecen igual
Resta con complementos Resta con complemento a (r) (M-N) Sumar el minuendo M al C r del sustraendo N Verificar si existe un acarreo final: Si existe, descartar Si no existe un acarreo final, se toma el complemento de r del número obtenido y se coloca un signo negativo
Resta con complementos Resta con complemento a (r-1) (M-N) Sumar al minuendo M el complemento (r-1) del sustraendo N Verificar la existencia del acarreo final Si existe acarreo, se agrega 1 al dígito menos significativo Si no existe acarreo, se obtiene el complemento (r-1) del resultado y se coloca un signo (-)
Almacenamiento de enteros
Métodos de representación Existen varias maneras de representar valores enteros, tanto positivos como negativos Las más utilizadas son: Notación en complemento a dos Notación en exceso
Métodos de representación Notación en complemento a 2 Sistema más utilizado para representar enteros Cuenta con un número determinado de bits El bit más significativo representa el signo positivo (0) o negativo (1)
El problema del desborde Al tener que utilizar un bit para el signo y tener un número fijo de bits, se presenta el problema del desborde. Ejemplo: No se puede representar el 8, utilizando 4 bits. 8 = 1000, pero el bit más significativo es el signo, en este caso 1000 en C 2 representa el -8
Métodos de representación Notación en exceso Método común para representar enteros Utiliza patrones de bits de la misma longitud Para obtener el exceso en n se debe sumar n al valor que se tiene
Representación en punto flotante
El formato IEEE 754 Formato estándar para almacenar números en punto flotante Necesita de 32 bits para el almacenamiento El bit más significativo se utiliza para el signo positivo (0) o negativo (1) Los siguientes 8 bits se utilizan para el exponente expresado en exceso 127 Los 23 restantes representan la mantisa
El formato IEEE 754 Para escribir un número en este formato, se debe normalizar 1.(mantisa)x2 exponente+127 El 1 es invisible Si el número es negativo, no se convierte a C 2, solo se coloca 1 en el bit de signo
Representación en ASCII y UNICODE
Código ASCII
Código UNICODE
Operaciones lógicas
Operaciones lógicas Patrones de bits llamados máscaras Se utilizan para modificar patrones de bits Los patrones de bits de las máscaras se combinan con las operaciones lógicas
Ejemplo Convertir: 11001110000111 a 00000000001111 Qué máscara se utilizaría y con que operación lógica se combinarían los datos?
Rotaciones y corrimientos Operaciones utilizadas para mover bits dentro de un registro Se clasifican de acuerdo al sentido hacia donde se realizan: Izquierda Derecha
Diferencias entre rotación y corrimiento Lo que diferencia a una rotación de un corrimiento es lo que ocurre con los bits más y menos significativos En una rotación, el bit más significativo pasa a ocupar el lugar del menos significativo En un corrimiento, el bit más significativo desaparece y el espacio del bit menos significativo es ocupado por un 0
Ejemplo Realizar un corrimiento y una rotación hacia la izquierda de: [110010]
Multiplicación y división Con un corrimiento hacia la izquierda se puede multiplicar un número binario por 2 Con un corrimiento hacia la derecha se puede dividir un número binario entre 2
Ejemplo: (0000111) 2 que es el (7) 10, si se realiza un corrimiento hacia la izquierda se obtiene (0001110) 2 que es el (14) 10 (010100) 2 que es el (20) 10, si se realiza un corrimiento hacia la derecha, se obtiene (001010) 2 que es el (10) 10
Manipulación de datos.
Instrucciones máquina Divididas en tres categorías: Transferencia de datos Aritmético lógicas Control
Transferencia de datos Operaciones en la transferencia de datos: Operación de copiar Operación de cargar (LOAD) Operación de almacenar (STORE)
Aritmético - lógicas Operaciones aritméticas básicas Operaciones lógicas AND OR NOT OR EXCLUSIVO Corrimientos Desplazamientos Rotaciones
Instrucciones de control Dirigen la ejecución del programa Programa almacenado Extraiga el programa de memoria Decodifique instrucciones Las ejecute
Instrucciones máquina Patrones de bits que representan una serie de instrucciones Una instrucción máquina consta de dos partes Código de operación Operando
Códigos de operación Cada instrucción se codifica en 16 bits, es decir 4 bits hexadecimales [Código de operación] [Operando][Operando][Operando]
Ejecución de programas Las instrucciones pasan de la memoria principal a la unidad de control Unidad de control está formada por: Contador de programa Registro de instrucción
Ejecución de programas Ciclo máquina. Formado por tres operaciones. 1. Obtención 2. Decodificación 3. Ejecución
Código para las instrucciones
Ejemplo
Obtención Se recupera el primer byte de la dirección de memoria A0: 15 Se recupera el valor de la siguiente dirección de memoria A1: 6C Ya se completa el formato de instrucción: 156C Se puede decodificar la instrucción utilizando el código de operaciones: R5 [6C]
Ejemplo Codificar las siguientes instrucciones: R1 3F 213F R2 [AD] 12AD R5 R1+R3 5513 [45] R5 3545 R6 R5 4056 ALTO C000 **[]indica una dirección de memoria