ALMACENAMIENTO, PROCESAMIENTO DE DATOS Y ARQUITECTURA DE COMPUTADORAS

  

INTRODUCCIÓN


El almacenamiento es un tema importantísimo en nuestra actualidad. La cantidad de datos se ha incrementado exponencialmente y, por consiguiente, se ha incrementado también la necesidad de contar con sistemas que tengan la capacidad de sostener esa información y guardarla de forma segura, completa y digital.

Se han ido los tiempos en los que solamente se podían guardar las cosas en físico, a menudo se perdían completa o parcialmente, y, por supuesto encontrar los documentos era una tarea titánica. Ahora, las cosas se han vuelto más fáciles para los usuarios pero ¿realmente sabemos qué está pasando detrás de nuestras pantallas?

Para entender un poco más lo que hace posible que nuestros datos se guarden de forma rápida, sencilla y sin abarcar espacio en nuestra realidad física, en este artículo se hablará sobre los principios básicos del almacenamiento de datos en la computación, tanto de sus componentes, cómo de la forma que se relacionan y funcionan.

DESARROLLO

Bits y patrones de Bits


•  Un bit es un dígito binario (0 ó 1)
•  Los patrones de bits se usan para representar info., con ellos se pueden almacenar:
        a)  Valores numéricos
        b)  Caracteres del alfabeto
        c)   Imágenes
        d)   Sonidos
        e)   Otros

Operaciones booleanas


•  Supuesto: el bit 0 representa el valor falso y el bit 1 representa el valor verdadero
•  Una operación booleana es una operación o función que permite manipular o procesar uno o más valores verdadero o falso
        o  Estas operaciones combinan un par de valores (los datos de entrada de la operación) para generar un tercer valor (la salida)
        o  La computación sólo tiene operaciones booleanas
•  Las operaciones booleanas más comunes son:
        a)  AND
        b)  OR
        c)  XOR (or exclusivo)
        d)  NOT



Puertas


• Una puerta lógica es un dispositivo que genera la salida de una operación booleana cuando se le proporcionan los valores de entrada de dicha operación
•  Se implementan con circuitos electrónicos (pequeños)
        o  Se conectan a través de los chips de las computadoras
•  Proporcionan los componentes a partir de los cuales se construyen las computadoras
•  VLSI (Very Large Scale Integration)
•  Para los chips se hacen los discos de silicio, se dibuja y se hace un mapa microscópico donde se conectan un montón de cosas
•  Los microchips tienen la capacidad de generar muchas operaciones
•  El primer chip comercial es el chip 4004
       o  Se llama 4004 porque tenía 4 bits disponibles para ejecutar operaciones (es el primer procesador moderno de 4 bits)
        o  2300 transistores (con ellos se podía sumar, restar, multiplicar y dividir)
       o  Tecnología de 10,000 nm, son nanómetros (un nanómetro es una mil millonésima de metro


Representación simbólica de las puertas AND, OR, XOR, y NOT junto con sus valores de entrada y salida






•  En AND: solamente cuando las 2 líneas tienen energía entonces la salida también tendrá energía
•  En OR: la salida tendrá energía cuando las 2 líneas tengan energía o solamente una de ellas la tenga
•  En XOR: la salida tendrá energía solamente cuando una de las líneas tenga energía 
•  En NOT: la salida tendrá energía cuando en la entrada no se tenga energía y al revés


Biestables (flip-flops)



•  Biestables: un circuito construido con puertas que puede almacenar un bit
        o  Una de sus líneas de entrada es usada para establecer el valor almacenado a 1
        o  Una de las líneas de entrada es usada para establecer el valor almacenado a 0
        o  Mientras ambas líneas estén en 0 se preserva el valor almacenado
•  Los biestables son un conjunto de circuitos que están combinando las puertas lógicas
•  Ejemplo: un circuito biestable simple





•  Ejemplo 2: Establecimiento de un valor 1 a la salida del biestable




• Si se puede establecer un circuito, prenderlo y quitarle la energía pero se mantiene el resultado entonces es almacenamiento de 1 bit de memoria 
•  8 bits = 1 byte
        o  Con un byte ya se puede asignar una letra, un número y almacenar info.
•  Con la idea de los circuitos biestables se intenta:
    o  Demostrar cómo pueden construirse dispositivos a partir de puertas lógicas, un proceso conocido con el nombre de diseño de circuitos digitales
       o  Proporcionar un ejemplo de abstracción y de uso de herramientas abstractas. Sólo se necesitan comprender las propiedades externas del biestable
       o  Demostrar que el biestable es un circuito que ilustra una de las formas de almacenar un bit dentro de una computadora moderna

Sistema binario


•  El sistema tradicional decimal está basado en potencias de diez
•  El sistema binario está basado en potencias de dos (porque sólo se tiene el 1 ó 0)
•  Para pasar al sistema binario se utilizan 4 bits (al compilarlos se va obtiendo una mayor        cantidad de info.
        o  Cada uno de los bits (0 ó 1) se multiplican por 2




•  Cuando se juntan los suficientes bits entonces se pueden hacer patrones binarios y almacenar info.



•  El algoritmo para encontrar una representación binaria de un entero positivo:
      o  Paso 1.- Dividir el valor entre 2 y registrar el restante
     o  Paso 2.- Mientras el cociente obtenido no sea 0, continuar dividiendo el nuevo cociente entre 2 y registrar el restante
    o  Paso 3.- Ahora que el cociente de 0 se ha obtenido, la representación binaria del valor original consiste en los restantes listados de derecha a izquierda en el orden en  el que fueron registrados

Sistemas de Complemento a Dos


•  Es para ver número positivos y negativos
•  Los positivos se representan con un 0 al principio
•  Los negativos se representan con un 1 al principio




Notación Hexadecimal


•  La notación hexadecimal es una notación abreviada para representar cadenas largas de bits
        o  Divide un patrón de bits en grupos de 4 bits cada uno
        o  Se utiliza un único símbolo para representar un patrón
•  Ejemplo: 10100011 se vuelve A3
•  Los valores hexadecimales son siempre en mayúsculas de la A a la F
•  Permite representar de manera entendible y más corta el código binario




Memoria Principal


•  Una unidad de la memoria principal (típicamente de 8 bits denominado byte)
•  La memoria es la capacidad que tiene el dispositivo de almacenar 0’s y 1’s
•  La memoria siempre se almacena en celdas y las celdas son de 8 bits
        o  Cada celda tiene una dirección
•  El bit más significativo es el de la izquierda y el menos es el de la derecha




Direcciones en memoria principal


•  Dirección: un “nombre” que de manera única identifica una celda en la memoria principal de la computadora
        o  Estos nombres son direcciones numéricas
        o  Los números se asignan consecutivamente comenzando por 0
        o  Con esto se asigna un orden a las propias celdas
• La memoria principal de una computadora está organizada en forma de celdas individuales direccionales, se puede acceder de manera independiente al contenido de cada celda, según sea necesario
•  Cada celda tiene algo que puede ser un dato o un código ejecutable

Tipos de Memoria


•  Random Access Memory (RAM): una memoria en el que se puede acceder a celdas individuales en cualquier orden
        o  Es de acceso aleatorio, en el que se le puede pedir a la computadora la info. de cualquier celda y siempre se va a tardar el mismo tiempo
•  Dynamic Memory (DRAM): una memoria RAM con circuteria de refresco para restaurar repetidamente sus contenidos
        o   Es dinámica porque se le tiene que estar aplicando una cierta cantidad de energía eléctrica para que convierta el contenido (por eso las computadoras de escritorio si se desconectan de la energía se pierde todo)
•  La persona que inventó la memoria DRAM fue Robert Dennard de IBM Reseach en 1966
        o  Dram: almacenamiento de un bit en solo un capacitor y un transistor. Una memoria SRAM requiere 4 ó 6 transistores

Medida de la capacidad de memoria


Byte: 2^8 bits = 256 combinaciones distintas
Kilobyte: 2^10 bytes = 1024 bytes
Ejemplo: 3 KB = 3 veces 1024 bytes es la cantidad de celdas que hay
Megabyte: 2^20 bytes = 1,048,576 bytes
Ejemplo: 3 MB = 3 veces 1,048,576 es la cantidad de celdas que hay
Gigabyte: 2^30 bytes = 1,073,741,824 bytes
Ejemplo: 3 GB = 3 veces 1,073,741,824 bytes es la cantidad de celdas que hay
Terabyte: 2^40  bytes = 1,099,511,627,776 bytes
Exabyte: millón de millones de millones de bytes

Algunos hitos


2 bytes: 2^16 bits = 65 535 (64k)
3 bytes: 2^24 bits = 16,777,216 (16 Mb)
4 bytes: 2^32 bits = 4,294,967,296 (4 Gb)
5 bytes: 2^40 bits = 1,099,511,627,776 (1 Tb)
8 bytes: bits = 18,446,744,073,709,600,000

Cuántos bytes tiene..




Representación de Valores Numéricos


  • Notación binaria: se usan bits para representar a un número en base 2
  • Con 16 bits y utilizando notación binaria podemos almacenar cualquier entero comprendido dentro del rango que va de 0 a 65535

  • Algunas limitaciones de una representación numérica en una computadora
    • Overflow: ocurre cuando un valor es muy grande para ser representado
    • Truncado: ocurre cuando un valor no puede ser representado de manera precisa
  • Todas las celdas de memoria siempre son de 8 bits
  • Para almacenar la info. se necesita asignar el número de bits necesarios, ya sea 8, 16, 32 ó 64 bits
    • Con 8 bits se puede almacenar hasta el 256,000
    • Con 16 bits se puede almacenar hasta el 65,000


Representación de textos


  • Cada carácter tiene asociado un patrón único de bits
    • ASCII: Usa patrones de 7 bits para representar las letras mayúsculas y minúsculas del alfabeto inglés
      • La primera definición del alfabeto usaba 7 bits 
  • ISO desarrolló un número de extensiones de 8 bits del ASCII, cada una de ellas diseñada para soportar a un grupo de lenguajes 
    • Con 8 bits se tienen 256 combinaciones diferentes
  • Unicode: usa patrones de 16 bits para representar la mayoría de los lenguajes usados en el mando 


Código ASCII


  • La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural (como el de un alfabeto o silabario) en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos eléctricos en un sistema electrónico, aplicando normas o reglas de codificación
  • ASCII: American Standard Code for Information Interchange
    • Es del American National Standards Institute (ANSI)
    • Es el organismo que se pone de acuerdo para los caracteres
    • Diseñado en 1969
  • Inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión para completar 8 bits de datos
  • Unicode expande la codificación para poder utilizar computadoras en cualquier lenguaje
  • Cada carácter que se almacena se guarda exactamente igual

  • El mensaje hello en ASCII


  • El Código ASCII extendido



 Código Unicode


  • Unicode is the universal character encoding, maintained by the Unicode Consortium
  • This encoding standard provides the basis for processing, storage and interchange of text data in any language in all modern software and information technology protocols
  • Unicode characters don’t fit in 8 bits; deal with it
  • Todas las computadoras utilizan el código Unicode


Emoji


  • También son códigos para que se almacenen dentro de las letras de los bytes
  • Son la parte más famosa de los códigos
  • Cuando se manda un emoji, lo que se está mandando son 4 bytes


Representación de imágenes 


  • Técnica de Bit map 
    • Pixel: short for “picture element”
    • RGB
    • Luminancia y crominancia (verde y azul)
  • El bit map es si yo tengo una imagen y hago un mapa, hay pixeles y cada uno de esos tiene un color, y si cada uno de esos pixeles cambia de color (azul, rojo, verde) tenemos una imagen
    • Cada pixel tiene 3 bytes
  • Técnica de Vectores
    • Escalable
    • TrueType y PostScript



 

  • Píxeles en HD



  •  Una imagen (tele) full HD tiene 1920 x 1080 pixeles
    • Los bytes que tiene una imagen de la tele normal son 6,220,800 (1920 x 1080 x 3) ó 6 megapixeles
    • Es por 3 por cada pixel se almacenan 3 bytes de cada color: rojo, azul y verde RGB
    • Los bytes que tiene una imagen de la tele 4K son 24,883,200 (3840 x 2160 x 3) ó 24 megapixeles
    • Los bytes que tiene una imagen de la tele 5K son 33,177,600 (5120 x 2160 x 3) ó 33 megapixeles
    • Los bytes que tiene una imagen de la tele 8K son 99,532,800 (7680 x 4320 x 3) ó 99 megapixeles
    • Los bytes que tiene una imagen de la tele 10K son 132,710,400 (10240 x 4320 x 3) ó 132 megapixeles
  • Las televisiones tienen que representar 60 cuadros por segundo, 
    • Las televisiones 4K tienen 8,062,156,800,000 (3840 x 2160 x 3 x 60 x 60 x 90) millones de bytes en una película de 90 minutos 


HDR10


  • Todas las imágenes utilizan cómputo de 8 bits, pero lo nuevo es de 10 bits
    • Significa que se utilizan 10 bits para el rojo, 10 para el azul y 10 para el verde (en lugar de 8 en cada uno) entonces se van a usar 30 bits
    • En lugar de representar del 0 al 255, se va a representar del 0 al 1024
    • Se tiene una combinación más amplia de colores cuando se utiliza más espacio para la info.


Representación de Sonidos


  • Un sonido muy agudo es porque vibra mucho la aguja
  • Un sonido grave es porque vibra poco la aguja
  • Para almacenar el sonido, se debe hacer un mapa de bits 
  • Técnicas para muestreo (sampling) (se hace como una foto de la curva, es un sampleo)
    • Utilizado para grabaciones de alta calidad
    • Se graba el sonido real
  • La diferencia entre la grabación de alta calidad y la de baja diferencia radica en la cantidad de bytes que se utiliza para hacer el sampleo y almacenarlo porque entre más definición se tiene en la curva, ésta sale más redondita 
  • MIDI
    • Utilizado para sintetizadores de música
    • Se graban las notas, la partitura
  • Onda de sonido representada por la secuencia 0, 1.5, 2.0, 3.0, 4.0, 3.0



  • La tasa de muestreo de 8000 muestras por segundo -utilizando en comunicaciones telefónicas de larga distancia-, muestra cada 125 micro segundos
  • CD musicales – 44100 muestras por segundo- 16 bits o 32 bits para estéreo – 1 segundo – más de un millón de bits – una muestra cada 0.26 microsegundos


Compresión de datos


  • Almacenar o transferir datos a menudo demanda el reducir el tamaño de estos conservando la info. subyacente
  • Las técnicas genéricas de compresión de datos son:
    • Sin pérdidas vs. con pérdidas
    • Con pérdidas: por ejemplo, la copia de la copia de la copia
    • Codificación por longitud de secuencia: se sustituyen secuencias de elementos de datos con un código que indica el elemento repetido y el número de veces que ese elemento aparece dentro de la secuencia
    • 253 unos, 118 ceros y 87 unos
    • Codificación dependiente de la frecuencia: la longitud del patrón de bits utilizado para representar un elemento de datos es inversamente proporcional a la frecuencia con que ese elemento aparece
    • Codificación relativa o diferencial: se almacena las diferencias entre unidades de datos consecutivas
    • Codificación por diccionario: se construye el mensaje a comprimir mediante referencias a un diccionario (bloques componentes)
    • Procesadores de texto: podemos codificar una palabra completa mediante una referencia única a un diccionario
    • 25,000 entradas-15 bits vs. 48 bits ASCII
  • JPEG, TIFF
    • Color de 24 bit (3 bytes)
  • GIF (Graphic Interchange Format)
    • Se reduce a 256 el número de colores que puede asignarse a un pixel
    • 256 combinaciones se almacenan en una paleta
    • Sistema de compresión con pérdidas


Compresión de audio y video


  • MP3
    • Se aprovecha las características del oído humano, eliminando todos los detalles que este no puede percibir
    • Enmascaramiento temporal
    • Enmascaramiento de frecuencia
    • Durante un corto periodo de tiempo después de percibirse un sonido de gran intensidad no se puede detectar otros sonidos más débiles
  • MPEG
    • Sólo se codifican completamente algunas de las imágenes, a las que se denomina imágenes I
    • Las imágenes comprendidas entre 2 imágenes sucesivas se codifican empleando técnicas de codificación relativa: sólo se graban las variaciones con respecto a la imagen anterior
  • H264/H265


Almacenamiento Masivo


  • 2 tipos: On-line vs. Off-line
  • De mayor capacidad que la memoria principal 
    • En almacenamiento masivo se puede guardar más info. de la que se puede guardar en la memoria RAM
  • Menos volátil que la memoria principal
  • Más lento que la memoria principal
  • Un archivo al agregarle un caracter aumenta el espacio en disco porque al estar el disco dividido en sectores, tiene un limitado número de almacenamiento por sector, por lo que al agregar 1 caracter más ya no cabe en ese sector y debe tomar otro para terminar de almacenar completamente
    • Ahora los sectores son de 4096


Sistemas de Almacenamiento Masivo


  • Sistemas magnéticos:
    • Discos
    • Cintas
  • Sistemas ópticos:
    • CD: se utilizan cabeza láser 
    • DVD
  • Tecnología Flash Memory:
    • Flash Drives
    • Secure Digital (SD) Memory Card
    • SSD (Solid State Disk)
  • Sistema de almacenamiento en disco

  


Diferencias en tamaño láser



  •  Los de blue ray (azul) guardan más info. porque son más chiquitos los hoyitos
  • El láser quemaba los hoyitos que representaban los 0’s y los 1’s


Capacidades de Almacenamiento

 


 

Almacenamiento y extracción de archivos


  • Archivo: una unidad de datos almacenada en un sistema de almacenamiento masivo
  • Campos y campos claves
  • Registro físico vs. registro lógico
    • La parte lógica es el nombre del archivo; son las divisiones en el disco
    • Los registros físicos son realmente en dónde está almacenado

  • Buffer: un área de memoria usada para el almacenamiento temporal de datos (usualmente un paso para transferir los datos)


Arquitectura de computadoras


  • Dentro de todas las computadoras se encuentra la unidad central de procesamiento (CPU)
    • Control del tratamiento de los datos
    • Procesador: unidad de 2.5 cm cuadrados que se inserta en la tarjeta madre <-- todos son de ese tamaño (excepto las de teléfono que son un poco más pequeño)
  • El CPU es el conjunto de todos los microprocesadores


  • Unidad central de procesamiento (CPU) o Procesador consta de 3 partes:
    1. Unidad aritmético/lógica: es donde se hacen las sumas y las restas de los bits
    2. Unidad de control: es la que va dando los pasos, te va diciendo en qué parte del programa vas
    3. Unidad de registros: es donde se almacena temporalmente la información
  • Registros de uso general: lugares de almacenamiento temporal para las entradas a la circutería de la unidad aritmético/lógica
  • Bus: conjunto de hilos de conexión; a través del bus, el procesador extrae datos de la memoria principal, suministrando la dirección de la celda de memoria; es la conexión de la unidad central de procesamiento con la memoria principal de la computadora; permite que el CPU pueda copiar info. de la memoria y de regreso
  • La memoria principal está en bloques de 8 bits cada uno


Evolución de Microprocesadores


  • El primer CPU fue el Intel 4004
    • Al principio Intel era fabricante de máquinas, no de CPU’s pero le pidieron que fabricara una calculadora en el 1971 y diferentes modelos, entonces Intel lo que decidió fue crear un chip para todas y solamente funciones diferentes para cada calculadora
    • Es el primer chip comercial disponible
    • Tiene 2300 transitores al interior, es decir, 2300 puertas lógicas (recordar que con 4 transistores se hace 1 bit)
    • Se llama 4004 porque solamente se podía almacenar de 4 en 4 bits (es decir, la cantidad máxima de memoria es de 2^4 (es decir, 8 valores diferentes)
  • El siguiente CPU fue el Intel 8008
    • Tiene un bus de datos de 8 bits (es decir, la cantidad máxima de memoria es de 2^8 (es decir, 256 valores diferentes)
    • Tiene 2500 transistores
  • El siguiente CPU fue el Intel 8080
    • Tiene 4500 transistores
  • Después de 8 años salió el Intel 8088
    • Tiene 29 000 transistores
  • Luego surge el Intel 80286
    • Tiene 134 000 transistores
  • Luego surge el Intel 80386
    • Es el que inició el cómputo moderno
    • Tiene 275 000 transistores
    • El bus de datos era de 32 bits (es decir, la cantidad máxima de memoria es de 2^32 (es decir, 4 mil millones de bytes ó 4Gb)


El concepto de programa almacenado


  • Un programa puede codificarse como un patrón de bits y almacenarse en la memoria principal como si fuera cualquier otro tipo de dato
  • Un programa almacenado en la RAM, es exactamente igual que un dato almacenado en la RAM
  • De la memoria, el CPU puede extraer las instrucciones y ejecutarlas
  • El programa puede modificarse
  • El programa contiene el espacio para el código y para la información que va a ejecutarse 

Terminología


  • Instrucción de nivel máquina: una instrucción (o comando) codificado como un patrón de bits que son reconocidos por el CPU
  • Lenguaje máquina: el grupo de todas las instrucciones reconocidas por una computadora


Filosofía de Lenguaje Máquina


  • Reduced Instruction Set Computing (RISC)
    • Few, simple, efficient, and fast instructions
    • Ejemplos: PowerPC creado por Apple/IBM/Motorola y ARM
  • Complex Instruction Set Computing (CISC)
    • Many, convenient, and powerful instructions
    • Ejemplo:  Intel/AMD
  • RISC y CISC no son compatibles entre sí


Tipos de Instrucciones de Máquina 


  • Transferencia de datos: copiar datos de un lugar a otro
  • Lógica/Aritméticas: usar patrones de bits para computar un nuevo patrón de bits
  • Control: ejecución directa de un programa


Suma de valores almacenados en la memoria


  • Step 1: Get one of the values to be added form memory and place it in a register
  • Step 2: Get the other value to be added from memory and place it in another register
  • Step 3: Activate the addiction circuitry with the registers used in Steps 1 and 2 as inputs and another register designated to hold the result
  • Step 4: Store the result in memory
  • Step 5: Stop


División de valores almacenados en la memoria


  • Step 1: LOAD a register with a value from memory
  • Step 2: LOAD another register with another value from memory
  • Step 3: If this second value es zero, jump to step 6
  • Step 4: Divide the contents of the first register by the second register and leave the result in a third register
  • Step 5: STORE the contents of the third register in memory
  • Step 6: STOP


Arquitectura de la máquina



Composición de una instrucción para la máquina



 Decodificación de la instrucción 35A7


 

Versión codificada de instrucciones de suma



Ejecución de Programas


  • Controlada por 2 registros de propósito especial
    • Contador de programa: dirección de la siguiente instrucción
    • Registro de instrucciones: instrucción actual
  • Ciclo de máquina
    • Captación
    • Decodificación
    • Ejecución


El Ciclo de Máquina

 


Decodificación de la instrucción B258



Programa de suma cargado en memoria



Paso de captación del ciclo de máquina



 Controladoras


  • La comunicación entre una computadora y otros dispositivos suele gestionarse mediante un aparato intermedio denominado controladora
  • La controladora se conecta mediante cables a dispositivos periféricos situados dentro de la carcasa de la computadora o quizá a un conector, denominado puerto
  • Una controladora traduce los mensajes y los datos entre un formato compatible con las características internas de la computadora y el formato compatible con el dispositivo periférico al que está conectada
  • Un driver es un programa que permite que yo use el dispositivo; es un controlador


Controladoras conectadas al bus de una máquina



 

Comunicación con Dispositivos


  • Controladora: un aparato intermedio que maneja la comunicación entre la computadora y un dispositivo
  • Controladoras especiales para cada dispositivo
  • Controladoras de propósito general (USB y FireWire)
  • Puerto: el punto físico a través del cual un dispositivo se conecta a una computadora
  • E/S mapeada en memoria: el CPU se comunica con los dispositivos periféricos como si estos fueran celdas de la memoria


CONCLUSIÓN

Como pudimos ver, el almacenamiento ha sido y siempre será un tema relevante. A pesar de que ahora la guarda de la información se haga principalmente en la nube, los principios computacionales nunca cambiarán completamente pues son las bases, pero ahora con mayor capacidad pues la cantidad de datos generados van directamente relacionados con la capacidad de almacenamiento.






 

Comentarios

Entradas más populares de este blog

REPORTE 8: FAKE NEWS

ACTIVIDAD 4: 40 MAPAS QUE EXPLICAN EL INTERNET

ACTIVIDAD 6: SEGURIDAD EN LAS EMPRESAS