UT02 Introducción a los sistemas informáticos MME 2022/2023 PDF
Document Details
Uploaded by RenewedBrazilNutTree
2022
MME
Tags
Summary
This document provides a brief overview of the history of computers, covering different generations from the abacus to modern-day microprocessors. It details key figures and advancements in computer technology.
Full Transcript
UT02 Introducción a los sistemas informáticos MME 2022/2023 1. Historia de los ordenadores Ábaco: primer instrumento para calcular Máquina aritmética (pascalina): realizaba sumas y restas Máquina de Leibnitz...
UT02 Introducción a los sistemas informáticos MME 2022/2023 1. Historia de los ordenadores Ábaco: primer instrumento para calcular Máquina aritmética (pascalina): realizaba sumas y restas Máquina de Leibnitz (1671) realizaba las cuatro operaciones aritméticas. Máquinas mecánicas Máquina de diferencias de Charles Babbage (Inglaterra 1791- 1871): realizaba funciones de 2º grado con 6 cifras Máquina analítica (Charles Babbage): permitía ejecutar cualquier operación sin intervención humana en el proceso de cálculo Máquinas electromecánicas Máquina tabuladora de Herman Hollerith: usada para censo en EEUU Máquina Z1 de Konrad Zuse: calculadora mecánica binaria operada con electricidad y de programabilidad limitada. 1 1. Historia de los ordenadores 1ª Generación: válvulas de vacío Triodo o Audión (Lee de Forest 1906). El triodo es un tipo de tubo de vacío con tres elementos: el filamento o cátodo, que al calentarse produce electrones, el ánodo o placa que al estar cargado atrae a los electrones, y la rejilla situada entre el cátodo y el ánodo. El triodo, fue el primer dispositivo de amplificación de la señal eléctrica. Características Disipación calorífica muy elevada Gran tamaño y poca capacidad Lenguaje máquina Monoprogramación Sin sistema operativo Memorias de ferritas y lenguaje ensamblador 1. Historia de los ordenadores Ejemplos ENIAC (Electronic Numerical Integrator and Calculator) ◼ 1946: considerado el primer ordenador electrónico de propósito general. ◼ Programación cableada. ABC (Atanasoff-Berry-Computer) ◼ Primero en emplear elementos electrónicos. ◼ Primero en usar el sistema binario en computación Colossus EDVAC (Electronic Discrete Variable Automatic Computer) ◼ Basado en la arquitectura de Von Neumann UNIVAC I ◼ Primer ordenador comercial con éxito. 2 1. Historia de los ordenadores 1. Historia de los ordenadores 3 1. Historia de los ordenadores 2ª Generación: transistores El transistor es un dispositivo electrónico semiconductor que se utiliza como amplificador o conmutador electrónico. Forma parte de conmutadores electrónicos, puertas lógicas, memorias de ordenadores y otros dispositivos. Fue el sustituto de los triodos en los circuitos. Características Menor tamaño, menor disipación de calor, mayor fiabilidad Primeros lenguajes de alto nivel: ◼ FORTRAN ◼ COBOL ◼ ALGOL Germen del primer sistema operativo: procesamiento por lotes Generalización de las memorias de ferritas 1. Historia de los ordenadores 2ª Generación: transistores 4 1. Historia de los ordenadores 2ª Generación: transistores Innovadores, con poca repercusión comercial: UNIVAC LARC IBM STRETCH (o 7030) Burroughs D-825 ATLAS Comerciales: CDC 1604 y 3600 IBM 1410 PDP 1 de DEC Serie 1100 de Univac 1. Historia de los ordenadores 3ª Generación: circuitos integrados Circuito integrado: chip/microchip sólido de material semiconductor (silicio) en la que se encuentran múltiples componentes y circuitos electrónicos sobre en una resina. Estos componentes son transistores, resistencias, diodos, etc. Según el número de componentes (nivel de integración), los circuitos integrados se clasifican en: SSI (Small Scale Integration): de 10 a 100 transistores MSI (Medium Scale Integration): 101 a 1000 transistores LSI (Large Scale Integration): 1001 a 10000 transistores VLSI (Very Large Scale Integration): 10001 a 100000 transistores ULSI (Ultra Large Scale Integration): 100001 a 1000000 transistores GLSI (Giga Large Scale Integration): más de un millón de transistores 5 1. Historia de los ordenadores 3ª Generación: circuitos integrados Circuitos integrados analógicos Pueden constar desde simples transistores encapsulados juntos, sin unión entre ellos, hasta circuitos completos y funcionales, como amplificadores, osciladores o incluso receptores de radio completos. Circuitos integrados digitales Pueden ser desde básicas puertas lógicas (AND, OR, NOT…) hasta los más complicados microprocesadores o microcontroladores. 1. Historia de los ordenadores 3ª Generación: circuitos integrados Características Menor tamaño, más baratos, menor consumo de energía Primera familia de ordenadores compatibles a nivel de arquitectura: IBM-360 Concepto de arquitectura de computadores: “Lo que debe conocer un programador para escribir un programa correcto para ese computador” Supercomputadores: 6600 de Control Data (1963). Minicomputadores: PDP-8 y PDP-11 (DEC) Sistemas operativos: multiprogramación y tiempo compartido. Lenguajes: lenguajes de alto nivel estructurado (Dijkstra, 1968) 6 1. Historia de los ordenadores 3ª Generación: circuitos integrados 1. Historia de los ordenadores 4ª Generación: microprocesadores Microprocesador: es un circuito integrado que contiene todos los elementos necesarios para conformar una Unidad Central de Procesamiento (UCP / CPU) Este componente electrónico está compuesto por millones de transistores, integrados en una misma placa de silicio. Marca el inicio de la informática doméstica. 7 1. Historia de los ordenadores 4ª Generación: microprocesadores Características Microprocesadores y memorias de semiconductor. Otras aplicaciones: electrodomésticos, equipos de música y vídeo, etc. Arquitectura RISC (MIPS R2000, SPARC) Supercomputadores: computadores paralelos Lenguajes de programación: C y Ada Sistemas operativos. Estandarización: UNIX Interfaces gráficas. Generalización de las redes de ordenadores 1. Historia de los ordenadores 4ª Generación: microprocesadores Ejemplos de procesadores de esta generación: 4 bits: primer microprocesador: Intel 4004 (1971) 8 bits: Intel 8080-85, Motorola 6800 y Zilog Z-80 16 bits: Intel 8086-88, Motorola 68000 y Z-8000 Intel 4004 Intel 8086 Motorola 68000 8 1. Historia de los ordenadores 5ª Generación Esta generación está asociada a la mejora extrema de las tecnologías de integración de circuitos. En realidad lo que obtenemos son muchos más transistores en un espacio muy reducido, lo que significa más capacidad de computación y más miniaturización. Ley de Moore Tamaño de los transistores: del orden de nanómetros (mil millonésima parte de un metro, 10-9 m) Por ejemplo, en el año 2019 la CPU AMD Ryzen 9 3900X tiene en su interior unos 9.890.000.000 (casi 10 mil millones de transistores) en un microprocesador, usando una tecnología de 7nm. En esta generación aparecen los ordenadores portátiles y smartphones. 1. Historia de los ordenadores 2010 Intel Core 2nd Gen (Sandy Bridge) 1.160 millones de transistores (32 nm) 2021 AMD Threadripper 3990X: casi 40 mil millones de transistores (7 nm) 9 1. Historia de los ordenadores Lectura recomendada: https://hardzone.es/tutoriales/rendimiento/nanometros-litografia-transistores/ 1. Historia de los ordenadores 10 1. Historia de los ordenadores 6ª generación… ¿actualidad / futuro? Inteligencia artificial (IA / AI). Procesamiento en paralelo / computación distribuida. Aumento exponencial de la capacidad de computación y almacenamiento. Big Data. Ordenadores capaces de interactuar con el ser humano y aprender. Computación cuántica. 2. Arquitectura de ordenadores La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema computacional. 11 2. Arquitectura de ordenadores 2. Arquitectura de ordenadores CPU 12 2. Arquitectura de ordenadores Componentes básicos de un PC (hardware) Procesador (CPU) Placa base Memoria RAM Tarjeta gráfica Dispositivos de almacenamiento Periféricos Fuente de alimentación 2. Arquitectura de ordenadores Componentes básicos de un PC (hardware) 13 2. Arquitectura de ordenadores Componentes básicos de un PC (software) Software base: sistema operativo ◼ Puente entre el usuario y el hardware de la máquina. ◼ El usuario no necesita saber cómo funcionan los circuitos internos. Software de aplicación ◼ Habitualmente llamados programas o aplicaciones, orientados a tareas como la ofimática, gestión de datos, diseño, videojuegos, programación, etc. 2. Arquitectura de ordenadores ¿Qué debemos conocer de un ordenador? 14 2. Arquitectura de ordenadores Arquitectura Von Neumann Estableció el modelo básico de los computadores digitales (1946) Construyó una computadora con programas almacenados (hasta entonces trabajaban con programas cableados). Su idea principal consistió en conectar permanentemente las unidades de las computadoras, siendo coordinado su funcionamiento por un elemento de control. Esta tecnología sigue vigente, aunque evolucionada y con modificaciones. 2. Arquitectura de ordenadores Arquitectura Von Neumann E/S CPU 15 2. Arquitectura de ordenadores Arquitectura Von Neumann 2. Arquitectura de ordenadores Arquitectura Von Neumann Se compone de cuatro elementos funcionales: Unidad Central de Proceso (CPU) Memoria principal (MP) Interfaces de entrada y salida (I/O - E/S) Buses ◼ bus de control ◼ bus de datos ◼ bus de direcciones 16 2. Arquitectura de ordenadores Arquitectura Von Neumann Se compone de cuatro elementos funcionales: Unidad Central de Proceso (CPU, Central Process Unit) es considerada como el cerebro del ordenador. Memoria principal (MP) donde se almacenan datos y programas. Interfaces de entrada y salida (I/O - E/S) destinadas a liberar de trabajo a la CPU en la comunicación con dispositivos periféricos de entrada, salida y entrada-salida Buses interconectan los tres elementos anteriores a través de un conjunto de líneas que llevan señales de control (bus de control), datos e instrucciones (bus de datos) y direcciones de memoria (bus de direcciones). 2. Arquitectura de ordenadores Arquitectura Von Neumann 17 2.1 CPU: unidad central de proceso La CPU ejecuta las instrucciones que se encuentran en la memoria principal y procesa los datos de la memoria o de los periféricos. Cada instrucción realmente se va a descomponer de varias microinstrucciones. En la actualidad es un circuito integrado llamado procesador o microprocesador. La CPU (Von Neumann) está compuesta de cuatro elementos: Unidad de control (UC) Unidad aritmético-lógica (ALU) Registros Buses internos 2.1 CPU: unidad central de proceso Ejemplo de instrucción: 18 2.1 CPU: unidad central de proceso Cada arquitectura de CPU define su juego de instrucciones: definición detallada del conjunto de instrucciones que es capaz de ejecutar una CPU. Esta definición es la que determina lo que realiza exactamente cada instrucción. Por ejemplo, juego de instrucciones de la arquitectura Intel x86 A modo de curiosidad, vamos a acceder a un desensamblador online para convertir un ejecutable en las instrucciones básicas que lo componen: https://onlinedisassembler.com/ 2.1 CPU: unidad central de proceso 19 2.1 CPU: unidad central de proceso Unidad de control (UC) Busca las instrucciones en la memoria principal Las interpreta (decodificador) Las ejecuta Genera las señales de control y señales de estado necesarias Genera los pulsos de reloj (sincronizador) Unidad aritmético-lógica (ALU) Realiza, según le ordena la UC: ◼ operaciones aritméticas (suma, resta, multiplicación, división) ◼ operaciones lógicas (NOT, AND, OR, XOR, comparaciones...) 2.1 CPU: unidad central de proceso En este ejemplo: Función 9: sumar Operando A: 0012_H Operando B: 0005_H Resultado: 0017_H 20 2.1 CPU: unidad central de proceso Registros Constituyenel almacenamiento interno de la CPU Almacenan temporalmente la información necesaria para ejecutar las instrucciones. Buses internos: Dentro de la CPU hay una serie de buses que permiten intercambiar información de datos, de direcciones y de control entre la UC, la ALU y los registros. 2.1 CPU: unidad central de proceso ¿Qué es un bus? Bus: conjunto de líneas eléctricas que permiten la transmisión de los datos en paralelo. Ancho del bus ◼ Es el número de bits que se pueden transmitir simultáneamente (en paralelo) en ese bus. Frecuencia del bus. ◼ Se mide en hercios (Hz), ciclos por segundo (si un bus trabaja a 1 GHz significa que puede realizar 109 transferencias de información por segundo) Ancho de banda de un bus ◼ cantidad de información (bits) que puede transmitir por unidad de tiempo (seg): ancho de banda del bus (bps) = frecuencia del bus (Hz) x ancho del bus (bits) 21 Actividad ¿Cuál sería el ancho de banda de un bus de 16 bits que trabaja a 133 MHz? Expresar el resultado en Gb/s y en MB/s. 2.1 CPU: unidad central de proceso 22 2.2 Registros de la CPU 2.2 Registros de la CPU Son celdas de memoria de muy alta velocidad que almacenan datos temporales mientras se ejecuta una instrucción. Tamaño de pocos bits, siempre potencias de 2: 8 bits, 16 bits, 32 bits, 64 bits… Todos los registros de una CPU tienen el mismo tamaño, y a ese tamaño se le denomina palabra. Cuando un procesador se dice que es de N bits, significa que trabaja con palabras de N bits, y por tanto sus registros tienen una capacidad o tamaño de N bits. Procesadores de 32 bits vs. procesadores de 64 bits 23 2.2 Registros de la CPU En la actualidad se trabaja con procesadores de arquitectura de 32 bits (cada vez menos) y arquitectura de 64 bits. Recuerda: una CPU de 64 bits quiere decir que el tamaño de sus registros es de 64 bits cada uno. Es decir, el tamaño de su palabra es de 64 bits. 2.2 Registros de la CPU Algunos ejemplos: Intel80386, 80486, Pentium, Pentium II, Pentium III, Pentium IV, Core, y AMD K6, Athlon, Athlon XP… eran procesadores de 32 bits. Intel Pentium D, Core2, Core i3, i5, i7, i9, Atom… y AMD Athlon 64, Phenom, FX, Ryzen… son procesadores de 64 bits: usan palabras de 64 bits. 24 2.2 Registros de la CPU 2.2 Registros de la CPU Registros de control y de estado en Von Neumann: 25 2.2 Registros de la CPU Von Neumann: registros de control y de estado Contador de programa (CP) Program Counter (PC) ◼ Contiene la dirección de memoria de la siguiente instrucción a ejecutar. ◼ LA UC modifica su valor tras finalizar la ejecución de cada instrucción. Registro de instrucción (RI) Instruction Register (IR) ◼ Contiene la instrucción que se está ejecutando actualmente. Registro de dirección de memoria (RDM) Memory Address Register (MAR) ◼ Donde coloca la UC la dirección de memoria o E/S a la que quiere acceder, ya sea para leer o escribir. ◼ Se encuentra conectado al bus de direcciones. 2.2 Registros de la CPU Von Neumann: registros de control y de estado Registro de intercambio de memoria (RIM) Memory Buffer Register (MBR) ◼ Donde coloca la unidad de control los datos o instrucciones a leer o escribir en memoria o en un periférico de E/S. ◼ Se encuentra conectado al bus de datos. RA y RB (registros A y B) almacenan los operandos de entrada de la ALU. Acumulador (AC) almacena los resultados de las operaciones de la ALU. 26 2.3 Ejecución de una instrucción ¿Cómo se ejecuta un programa? Paso a paso… 2.3 Ejecución de una instrucción ¿Cómo se ejecuta un programa? Paso a paso… 27 2.3 Ejecución de una instrucción ¿Cómo se ejecuta un programa? Paso a paso… 2.3 Ejecución de una instrucción Un programa es un conjunto de instrucciones ordenadas, que resuelve un problema. Cada una de estas instrucciones requiere una secuencia de operaciones que se conoce como el ciclo de instrucción, el cual consta de dos fases: 1.Fase de búsqueda: se busca y se lee la instrucción desde la memoria. 2. Fase de ejecución: se decodifica la instrucción y se lanza la secuencia de órdenes para llevar a cabo cada uno de los pasos que esta requiere. 28 2.3 Ejecución de una instrucción 2.3 Ejecución de una instrucción Ejemplo de instrucción: 29 2.3 Ejecución de una instrucción 1. Fase de búsqueda de la instrucción El contador de programa CP contiene la dirección de memoria donde está la siguiente instrucción. La UC coloca esa dirección en el RDM (registro de dirección de memoria). La UC da orden a la memoria de leer (señal R). La memoria coloca la instrucción que se encuentra en la posición indicada en el RIM (registro de intercambio de memoria). La instrucción se carga en el RI (registro de instrucción). El contador de programa CP se incrementa en 1 para apuntar a la siguiente dirección (donde estará la siguiente instrucción). 2.3 Ejecución de una instrucción 2. Fase de ejecución Se realizan las operaciones (microinstrucciones) correspondientes al código de la instrucción (codop) almacenada en el RI (registro de instrucción). Ejemplos de microinstrucciones: saltar a una dirección de memoria a leer su contenido, almacenar el contenido del acumulador en una posición de memoria, cargar el contenido de un registro en otro, operar con los registros de la ALU, etc. En la ejecución de la instrucción entran en juego tanto la UC como la ALU. 30 2.3 Ejecución de una instrucción A todo este ciclo de ejecución de una instrucción se le denomina ciclo de CPU. Cada ciclo de CPU se completa en una serie de ciclos de reloj (en cada ciclo de reloj se ejecutan una o varias microinstrucciones). A cada ciclo de reloj por segundo se le denomina hercio (Hz) 1 Hz = 1 ciclo/segundo 103 Hz = 1 kHz 106 Hz = 1 MHz 109 Hz = 1 GHz Es decir, se podría decir que un procesador de 3 GHz realiza 3.000.000.000 de “operaciones” (ciclos de reloj) por segundo. 3. CPUs 31 3. CPUs 32 4. La memoria En la arquitectura Von Neumann se habla de memoria principal, también llamada: memoria primaria, memoria central, memoria interna o también memoria RAM. En ella se almacenan temporalmente tanto los datos como los programas que la CPU está procesando o va a procesar en un determinado momento. 4. La memoria Tipos de memoria ROM (Read-Only Memory) ◼ Memoria de solo lectura ◼ No volátil (no pierde la información aunque no haya corriente) ◼ En PCs, suele contener el software básico para poder cargar el sistema operativo desde los periféricos de E/S a la RAM (POST y BIOS/EFI). ◼ Estas últimas son ROM programables (EEPROM Electrically Erasable Programmable Read-Only Memory), por lo que sí pueden borrarse y escribirse en ellas. ◼ En la actualidad, muchas BIOS ya no son ROM sino que son memorias flash, más rápidas. 33 4. La memoria Tipos de memoria RWM (Read-Write Memory) ◼ Memoria de lectura y escritura ◼ Memoria volátil (pierde la información si no hay corriente) ◼ Normalmente es memoria RAM (Random Access Memory), pero no siempre (aunque nos solemos referir a ella así). ◼ Almacena tanto los programas en ejecución (conjunto de instrucciones) como los datos que manejan estos programas. ◼ El núcleo (kernel) del sistema operativo se carga en la RWM. ◼ El sistema operativo se encargará de cargar los programas y datos de usuario en la RWM desde los dispositivos de E/S. 4.1 Memoria principal 34 4.1 Memoria principal La memoria está compuesta de celdas, casillas, o posiciones de memoria, de un determinado número de bits de capacidad, llamadas también palabras de memoria. Cada celda de memoria tiene: Una dirección: número que identifica unívocamente a la celda de memoria. Un contenido: instrucción o dato que se almacena en esa celda en ese momento. Esta ligada a las unidades más rápidas del ordenador (UC y ALU). 4.1 Memoria principal 35 4.1 Memoria principal La memoria principal se comunica con la CPU a través del bus de direcciones y el bus de datos. Por el bus de direcciones viaja la dirección de memoria a la que se quiere acceder. Por el bus de datos viaja el dato que se ha leído de la memoria o que se va a escribir en ella. 4.1 Memoria principal El ancho del bus de direcciones (n bits) determina la capacidad que posee el microprocesador para el direccionamiento de direcciones en memoria. 16 bits de ancho → puede acceder a 216 direcciones 32 bits de ancho → puede acceder a 232 direcciones 64 bits de ancho → puede acceder a 264 direcciones El ancho de bus de direcciones coincide con el tamaño de palabra (registros) de la CPU. 36 Actividad Si tenemos una CPU cuya arquitectura es de 32 bits: ¿Cuál es el ancho de su bus de direcciones? ¿A cuántas direcciones de memoria puede acceder? Si cada dirección de memoria contiene 1 byte, ¿cuántos GiB puede direccionar? ¿Y si la CPU es de 64 bits? 4.1.1 Proceso de lectura Para leer una posición de memoria: La UC coloca en el RDM (registro de direcciones de memoria) la dirección de memoria a la que quiere acceder. Asimismo, por el bus de control, da la orden a la memoria de que quiere leer (señal R). La dirección almacenada en el RDM viaja por el bus de direcciones hasta la memoria. Tras un tiempo de búsqueda (que puede ser un ciclo de reloj o más), la memoria pone en el bus de datos el contenido de la celda de memoria que habíamos solicitado leer. El dato se almacena en el RIM (registro de intercambio de memoria). Asimismo, la memoria informa por el bus de control a la UC que ya ha puesto el dato pedido en el bus de datos. 37 4.1.1 Proceso de lectura 4.1.2 Proceso de escritura Para escribir en una posición de memoria La UC copia en el RDM (registro de direcciones de memoria) la dirección de memoria en la que quiere escribir. Además, en el RIM (registro de intercambio de memoria) coloca el dato que queremos almacenar en esa posición de memoria. Asimismo, por el bus de control da la orden a la memoria de que quiere escribir en ella (señal W). La dirección almacenada en el RDM (registro de direcciones de memoria) viaja por el bus de direcciones hasta la memoria y el dato almacenado en el RIM (registro de intercambio de memoria) viaja por el bus de datos hasta la memoria. Tras un tiempo de escritura (que puede ser un ciclo de reloj o más), la memoria informa por el bus de control a la UC que ha completado la escritura. 38 4.2 Jerarquía de memoria La memoria en un ordenador se organiza en varios niveles en función de su velocidad. Esta distribución se denomina jerarquía de memoria y optimiza el uso de ésta, ya que la información se ubica en un determinado nivel según su probabilidad de ser utilizada: a mayor probabilidad, menor nivel (más rápido). Los niveles están diseñados de forma que las memorias más rápidas se sitúan en los niveles más bajos. Existe una relación entre la velocidad de una memoria y su capacidad y coste: a mayor velocidad, mayor coste y menor capacidad 4.2 Jerarquía de memoria Mayor velocidad Discos duros Memoria Memoria Registros y SSD RAM caché CPU Mayor capacidad 39 4.2 Jerarquía de memoria En general, a igual capacidad, cuanto más rápida es la velocidad de acceso, mayor es el precio. Esquema de jerarquía de memoria en un ordenador: Disco duro / SSD: memoria permanente de gran capacidad que intercambia datos con la RAM. RAM: memoria volátil que almacena instrucciones y datos de manera temporal, intercambiándolos con la CPU. Caché: memoria volátil en la que se almacena una serie de datos para su acceso rápido. Registros: celdas de memoria volátil de muy alta velocidad que almacenan datos temporales mientras se ejecuta una instrucción. 4.2 Jerarquía de memoria Memoria auxiliar 40 4.2 Jerarquía de memoria Los niveles 0, 1 y 2 constituyen lo que se conoce como la memoria interna del equipo. El resto de niveles conforman la memoria externa. 4.2 Jerarquía de memoria Memoria auxiliar (externa) Esta memoria se usa como soporte de respaldo de información, pudiendo situarse en medios extraíbles o en red. Ejemplo: memorias USB, tarjetas SD, cintas de copia de seguridad, CD/DVD/Blu-ray, almacenamiento en red, discos externos, etc. 41 4.2 Jerarquía de memoria Memoria secundaria También llamada memoria de almacenamiento Se utiliza para almacenar información de forma permanente, por lo que es de alta capacidad. Ejemplo: discos duros internos, unidades de estado sólido SSD… 4.2 Jerarquía de memoria Memoria principal (RAM) Memoria primaria (MP), memoria principal, memoria central, memoria interna o también memoria RAM. Se emplea para almacenar datos y programas de forma temporal. En el momento que dejen de recibir corriente eléctrica, se perderá su contenido. 42 4.2 Jerarquía de memoria Memoria principal (RAM) 4.2 Jerarquía de memoria Memoria caché Es una memoria intermedia entre la memoria central (RAM) y la CPU, utilizada como apoyo para acelerar los accesos de la CPU a la RAM. La memoria caché es “la sala de espera” para los datos que tienen que procesarse. Si esta sala de espera es pequeña, se corre el riesgo de que la CPU termine su trabajo rápidamente y tenga que esperar a que le lleguen nuevos datos, en lugar de tenerlos preparados para procesarlos inmediatamente. Por lo tanto, cuanto mayor sea esa memoria caché, más cantidad de datos estarán siempre dispuestos para optimizar el funcionamiento de la CPU. 43 4.2 Jerarquía de memoria Memoria caché 4.2 Jerarquía de memoria Memoria caché: niveles La caché en realidad está dispuesta en varios niveles (L1, L2, L3, L4) siendo la L1 la más rápida y de menor capacidad, y la L4 la más lenta y de mayor capacidad. ◼ La L4 no es habitual, pero hay CPUs que la incorporan. En función de la frecuencia de uso, la información se va moviendo entre los diferentes niveles de la cache antes de abandonarla. En la actualidad, las memorias caché se encuentran dentro de la CPU, siendo algunos de sus niveles específicos de cada core/núcleo. 44 4.2 Jerarquía de memoria Memoria caché: niveles 4.2 Jerarquía de memoria Memoria caché 45 4.2 Jerarquía de memoria Registros Son memorias de muy alta velocidad y baja capacidad (bits) utilizadas para el almacenamiento intermedio de datos en las unidades funcionales, especialmente en la Unidad de Control (UC) y la Unidad Aritmético-Lógica (ALU) Es decir, se encuentran dentro de cada núcleo de la CPU. Recuerda: el tamaño de los registros es el tamaño de palabra de la CPU (en la actualidad, 64 bits). 4.2 Jerarquía de memoria Registros 46 4.2 Jerarquía de memoria 5. Unidad E/S La unidad E/S es la encargada de establecer la comunicación entre la CPU y los periféricos. La unidad de E/S consta de: Interfaz:gestiona el intercambio de información entre el periférico y la CPU. Controlador: se comunica directamente con el periférico. 47 5. Unidad E/S La unidad E/S es la encargada de establecer la comunicación entre el usuario y la CPU, utilizando los dispositivos denominados periféricos. La unidad de E/S consta de: Interfaz: encargada de gestionar el intercambio de información entre el periférico y la CPU. ◼ Adapta la información de cada dispositivo a un conjunto de señales normalizadas. Controlador: se comunica directamente el periférico 5. Unidad E/S: ejemplo Interfaz (SATA) 48 UT01 Sistemas informáticos Representación de la información MME 2022/2023 ¿Qué es un ordenador? Un dispositivo electrónico, de propósito general, con capacidad para recibir información, almacenarla durante un tiempo (al menos el imprescindible para llevar a cabo su tarea), procesarla para recibir un resultado y ofrecer ese resultado al exterior. 1 ¿Qué es un ordenador? Lo constituyen dos partes esenciales: el hardware, que es su estructura física (circuitos electrónicos, cables, caja, teclado, etc.), el software, que es su parte intangible (programas, datos, información, documentación, etc.). ¿Qué es un ordenador? 2 ¿Qué es un ordenador? Funciones básicas del ordenador, computador o computadora: TRANSMITIR información A través de periféricos de entrada y salida (E/S). Doble misión: comunicación con el exterior y codificar la información de entrada/salida (E/S) para que sea entendible por el ordenador (E) y por el usuario (S). ALMACENAR información En dispositivos de almacenamiento (RAM, discos duros, SSD…) PROCESAR información Función realizada por el procesador (CPU): lee de la memoria RAM las instrucciones y las ejecuta. Actividad La palabra computadora proviene del latín computare. ¿Qué significa? ¿Por qué se dice que un ordenador es un dispositivo de propósito general? ¿Qué es un periférico? ¿Por qué se llaman así? Pon algún ejemplo de periférico de entrada. Pon algún ejemplo de periférico de salida. Pon algún ejemplo de periférico de entrada y salida. 3 Componentes de un ordenador Hardware y software: Hardware: conjunto de los componentes que integran la parte material de un ordenador. Software: conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en un ordenador. Programa: conjunto de instrucciones organizadas de la forma adecuada para resolver un problema concreto. Actividad Clasifica como hardware o software los siguientes elementos: Disco duro Sistema operativo Memoria RAM Teclado Impresora Procesador Procesadores de texto Placa base Drivers Unidad SSD Pendrive 4 Componentes de un ordenador Sistema informático 5 Componentes de un ordenador 1. Monitor 2. Placa base 3. Microprocesador (CPU) 4. Memoria RAM 5. Tarjetas de expansión (gráfica, sonido, red…) 6. Fuente de alimentación 7. Unidad óptica (CD/DVD) 8. Unidad de disco duro o unidad de estado sólido 9. Teclado 10. Ratón Componentes de un ordenador CPU 6 Componentes de un ordenador Componentes básicos de un PC (hardware) Procesador (CPU) Placa base Memoria RAM Tarjeta gráfica Dispositivos de almacenamiento Periféricos Fuente de alimentación Componentes de un ordenador Componentes básicos de un PC (hardware) 7 Componentes de un ordenador Componentes básicos de un PC (software) Software base: sistema operativo ◼ Puente entre el usuario y el hardware de la máquina. ◼ El usuario no necesita saber cómo funcionan los circuitos internos. Software de aplicación ◼ Habitualmente llamados programas o aplicaciones, orientados a tareas como la ofimática, gestión de datos, diseño, videojuegos, programación, etc. Tipos de ordenadores En función de su tamaño y capacidad de cómputo: Ordenadores personales (PC) Servidores Mainframes Superordenadores 8 Tipos de ordenadores Ordenadores personales (PC) Ordenadores de sobremesa ◼ Ubicación estable ◼ Unidad central y periféricos Ordenadores portátiles ◼ Diseñados para ser transportados ◼ Todo integrado en un dispositivo ◼ Batería ◼ Diferentes tamaños: laptops / ultrabooks Dispositivos de bolsillo (smartphones, tablets…) ◼ Tamaño reducido ◼ Pantalla táctil Tipos de ordenadores Servidores Equipos dedicados y diseñados para operar en una red ofreciendo servicios a otro ordenadores menos potentes. ◼ Hay servidores web, de archivos, de impresión, de videojuegos, de datos, de streaming, etc. 9 Tipos de ordenadores Superordenadores Gran capacidad de cálculo. En muchos casos constituidos por muchos ordenadores trabajando en paralelo. Cálculo de alto rendimiento: investigación, científico, militar… Mainframes u ordenadores centrales Grandes empresas como bancos, compañías de seguros, gobierno, etc. Ordenadores muy potentes. Gran velocidad de cálculo y capacidad de almacenamiento. Con frecuencia alquilan su capacidad de cálculo / almacenamiento a empresas más pequeñas. Actividad ¿Qué tipo de servidor crees que debe tener más potencia: un servidor de impresión o un servidor de bases de datos? ¿Por qué? ¿Qué ordenador personal (PC) crees que necesita más potencia: uno usado para el entretenimiento (por ejemplo para jugar) o uno usado en una oficina para escribir documentos y navegar por Internet? ¿Por qué? ¿Qué son los ordenadores empotrados? Pon algún ejemplo. ¿A qué denominamos firmware? Pon algún ejemplo. 10 Codificación de la información Los ordenadores manipulan datos. Para representar cualquier dato necesitamos símbolos (es decir, un sistema de representación). El sistema de numeración binario usa dos símbolos (0 y 1) Utilizamos estos dos símbolos para representar los datos (información). Bit es la cantidad mínima de información que se puede representar un sistema digital. bit = binary digit 0/1 Codificación de la información Es necesaria una correspondencia entre la información que queremos procesar y la pareja de símbolos que usan los ordenadores, el 0 y el 1. A esta correspondencia se le denomina codificación de la información y al proceso inverso, decodificación. 11 Codificación de la información Codificación de la información Toda la información que manejan los ordenadores se representa mediante dos símbolos (0 y 1) que en realidad corresponden a dos estados eléctricos, dos niveles de tensión eléctrica (voltaje). 12 Codificación de la información En este ejemplo: El símbolo 0 se corresponde con un nivel de tensión eléctrica de 0V. El símbolo 1 se corresponde con un nivel de tensión eléctrica de 5V. Medidas de información 13 Medidas de información Los archivos, documentos, programas, etc. con los que trabajamos todos los días en realidad son un “conjunto de ceros y unos”. Medidas de información Los archivos, documentos, programas, etc. con los que trabajamos todos los días en realidad son un “conjunto de ceros y unos”. 14 Medidas de información El bit (b) es la unidad mínima de información, representado por 0 o 1. El byte (B) es un conjunto de 8 bits. Abreviatura: la B representa bytes y la b quiere decir bit: 64 B = 64 bytes = 512 bits 64 b = 64 bits Medidas de información Medidas múltiplos de bits: Nibble o cuarteto conjunto de 4 bits Byte u octeto conjunto de 8 bits Kilobyte (kB) conjunto de 1024 bytes Megabyte (MB) conjunto de 1024 kilobytes Gigabyte (GB) conjunto de 1024 megabytes Terabyte (TB) conjunto de 1024 gigabytes Petabyte (PB) conjunto de 1024 terabytes Exabyte (EB) conjunto de 1024 petabytes Zettabyte (ZB) conjunto de 1024 exabytes Yottabyte (YB) conjunto de 1024 zettabytes 210= 1024 por lo que, por ejemplo, 1 TB = 2 40 bytes = 210 x 210 x 210 x 210 Recuerda: la B representa bytes y la b quiere decir bit: 30MB = 30 megabytes 30Mb = 30 megabits 15 Medidas de información Los bytes son una medida de información y generalmente utilizan para cuantificar memoria y dispositivos de almacenamiento (discos duros, etc.): bit b byte B 8 bits kilobyte kB 210 bytes ( 210 bytes ) megabyte MB 210 kilobytes ( 220 bytes ) gigabyte GB 210 megabytes ( 230 bytes ) terabyte TB 210 gigabytes ( 240 bytes ) petabyte PB 210 terabytes ( 250 bytes ) exabyte EB 210 petabytes ( 260 bytes ) zettabyte ZB 210 exabytes ( 270 bytes ) yottabyte YB 210 zettabytes( 280 bytes ) Nota: el que estas unidades de medida vayan en múltiplos de 1024 y no de 1000 como en el sistema decimal (Sistema Internacional), se debe a que estamos utilizando el sistema binario (base 2) y lo más parecido a 1000 es 210 = 1024. Pero veremos que esto es incorrecto. Medidas de información Ejemplo: ¿Cuántos bytes son 50 MB? Para pasar de MB a KB: multiplicamos por 210 Para pasar de KB a B: multiplicamos por 210 50 MB x 210 x 210 = 50 x 220 bytes = 20.971.520 bytes 16 Medidas de información Ejemplo: ¿Cuántos TB son 4096 MB? Para pasar de MB a GB: dividimos por 210 Para pasar de GB a TB: dividimos por 210 4096 MB ÷ 210 ÷ 210 = 4096 ÷ 220 TB = 212 ÷ 220 TB = 212-20 = 2-8 TB = 0,00390625 TB Medidas de información ¿Cuántos KB son 2 TB? ¿Cuántos B son 4 MB? ¿Cuántos bits son 2 B? ¿Cuántos MB son 1024 KB? ¿Cuántos GB son 2048 MB? ¿Cuántos TB son 256 B? ¿Cuántos TB son 2048 MB? 17 Medidas de información ¿Cuántos GB son 8 TB? ¿Cuántos MB son 8 TB? ¿Cuántos KB son 8 TB? ¿Cuántos B son 8 TB? ¿Cuántos b son 8 TB? Medidas de información Sistema internacional (decimal) vs. sistema binario Normalmente se utilizan los prefijos del SI para representar múltiplos de byte, siendo esto incorrecto: 1 kilómetro = 1000 metros = 103 metros 1 kilobyte = 1024 bytes = 210 bytes 1 kilobyte = 1000 bytes = 103 bytes Para cuantificar información, se deben utilizar los prefijos binarios, que utilizan base 2 y no base 10 para sus múltiplos. 18 Medidas de información Sistema internacional (decimal) bit b byte B 8 bits kilobyte kB 1000 bytes ( 103 bytes ) megabyte MB 1000 kilobytes ( 106 bytes ) gigabyte GB 1000 megabytes ( 109 bytes ) terabyte TB 1000 gigabytes ( 1012 bytes ) petabyte PB 1000 terabytes ( 1015 bytes ) exabyte EB 1000 petabytes ( 1018 bytes ) zettabyte ZB 1000 exabytes ( 1021 bytes ) yottabyte YB 1000 zettabytes ( 1024 bytes ) Medidas de información Sistema binario (ISO/IEC 80000-13) bit b byte B 8 bits kibibyte KiB 1024 bytes ( 210 bytes ) mebibyte MiB 1024 kibibytes ( 220 bytes ) gibibyte GiB 1024 mebibytes ( 230 bytes ) tebibyte TiB 1024 gibibytes ( 240 bytes ) pebibyte PiB 1024 tebibytes ( 250 bytes ) exbibyte EiB 1024 pebibytes ( 260 bytes ) zebibyte ZiB 1024 exbibytes ( 270 bytes ) yobibyte YiB 1024 zebibytes ( 280 bytes ) 19 Medidas de información Medidas de información Es decir, la actividad que hemos hecho anteriormente debería de ser: ¿Cuántos KB son 2 TB? 2 x 109 KB ¿Cuántos B son 4 MB? 4 x 106 B ¿Cuántos bits son 2 B? ¿Cuántos MB son 1000 KB? ¿Cuántos GB son 2000 MB? ¿Cuántos TB son 2000 MB? 20 Medidas de información Es decir, la actividad que hemos hecho anteriormente debería de ser: ¿Cuántos KiB son 2 TiB? 2 x 230 KiB ¿Cuántos B son 4 MiB? 4 x 220 B ¿Cuántos bits son 2 B? ¿Cuántos MiB son 1024 KiB? ¿Cuántos GiB son 2048 MiB? ¿Cuántos TiB son 2048 MiB? Medidas de información Si tengo un disco de 2.000.000.000.000 bytes ¿De cuántos TB es? ¿De cuántos TiB es? 21 Medidas de información Observa cómo se representan las cantidades de datos en Windows (MB, GB, TB…) y en GNU/Linux (MiB, GiB, TiB…) Sistemas y códigos de numeración Un sistema de numeración es un conjunto de reglas, convenios y símbolos combinados con palabras que nos permiten expresar verbal y gráficamente los números. El número de símbolos que se pueden usar en un determinado sistema de numeración constituye su “base”, es decir: Base 10 (decimal), podremos representar (0,1,2,3,4,5,6,7,8,9) Base 2 (binario), podemos representar (0,1) Base 8 (octal) (0,1,2,3,4,5,6,7) Base 16 (hexadecimal): (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) 22 Sistemas y códigos de numeración El valor numérico que expresa una combinación de dígitos en una base de numeración depende de: el valor del dígito. la posición que ocupa (sistemas de numeración posicionales) De forma general, en un sistema de base b, un número N se puede expresar mediante un polinomio de potencias de la base, multiplicadas por un símbolo del sistema. Ejemplo: 458 (base 10) = 4x102 + 5x101 + 8x100 1110000 (base 2) = 1x26 + 1x25 + 1x24 + 0x23 + 0x22 + 0x21 + 0x20 En general: N= np-1*bp-1 + np-2*bp-2 +... + n0*b0 + n-1*b-1 + n-2*b-2 Sistema binario Utiliza dos símbolos: 0 y 1 Su base es 2 Sistema numérico en el que se basan los sistemas digitales: el 0 se consigue 0 voltios (V) de tensión y el 1 se suele conseguir con 3 ó 5 voltios (V) de tensión. Ejemplo: 1110000 (base 2) = 1*26 + 1*25 + 1*24 + 0*23 + 0*22 + 0*21 + 0*20 Para convertir un número binario a decimal basta hacer la suma obtenida: 1110000 (base 2) = 64 + 32 + 16 + 0 + 0 + 0 + 0 = 112 (base 10) 23 Actividad Convertir los siguientes números binarios a decimal: 10 100 111 1011 1000 01111111 10000000 10000001 10000010 10111011 Sistema binario Para convertir un número decimal a binario: Se divide sucesivamente la parte entera del número decimal entre la base binaria en este caso, es decir, entre 2. El resultado de los restos de cada división corresponden a los símbolos binarios en orden inverso, incluido el último cociente. 24 Sistema binario Ejemplo de conversión decimal a binario: 77)10 = 1001101)2 Actividad Convertir los siguientes números de decimal a binario: 4 8 16 17 31 32 33 127 128 255 25 Sistema binario Regla sobre el número de elementos El número de diferentes valores que puede tomar un cierto número (n) de bits es: 2n bits Ejemplos: ◼ Si dispongo de 3 bits → podré tener 23 valores distintos, es decir, 8. ◼ Si dispongo de 4 bits → podré tener 24 valores distintos, es decir, 16. ◼ Si dispongo de 8 bits → podré tener 28 valores distintos, es decir, 256. ◼ Si dispongo de 32 bits → podré tener 232 valores distintos, es decir, 4.294.967.296. Actividad Escribe todas las posibles combinaciones numéricas en binario con: 1 bit 2 bits 3 bits 4 bits 26 Actividad Escribe todas las posibles combinaciones numéricas en binario con: 1 bit 2 bits 3 bits 4 bits → Actividad https://learningnetwork.cisco.com/s/binary-game 27 Sistemas octal y hexadecimal La utilización del sistema binario puede resultarnos complicada a los humanos (gran cantidad de dígitos a utilizar). Para facilitar la manipulación se emplean los códigos en base 8 (octal) y 16 (hexadecimal). Las conversiones entre números en base 2, 8 y 16 es muy sencilla. Sistemas octal y hexadecimal Recuerda el número de símbolos que se pueden usar en un determinado sistema de numeración: Base 10 (decimal) (0,1,2,3,4,5,6,7,8,9) Base 2 (binario) (0,1) Base 8 (octal) (0,1,2,3,4,5,6,7) Base 16 (hexadecimal): (0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F) 28 Sistemas octal y hexadecimal DECIMAL BINARIO OCTAL HEXADECIMAL (con 4 bits) 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F Sistemas octal y hexadecimal Octal Utiliza ocho símbolos diferentes del 0 al 7 (base 8) Tiene correspondencia directa con el sistema binario (cada símbolo en base 8 se puede representar con 3 bits). Hexadecimal Utiliza 16 símbolos, del 0 al 9 y de la A a la F. ◼ Estas letras representan los dígitos del 10 al 15 del sistema decimal. Tiene correspondencia directa con el sistema binario (cada símbolo en base 16 se puede representar con 4 bits). Se utilizan, entre otras cosas, para identificar direcciones de memoria. Se representan con el prefijo 0x ◼ Ejemplo: 0x4D = 4D)16 29 Sistemas octal y hexadecimal Para transformar un número decimal a octal dividimos la parte entera entre 8, sin obtener decimales. Los restos y el último cociente en orden inverso son el número octal: 646)10 = 1206)8 Sistemas octal y hexadecimal Para transformar un número decimal a hexadecimal dividimos la parte entera entre 16, sin obtener decimales. Los restos y el último cociente en orden inverso son el numero hexadecimal. Hay que convertir los números de dos dígitos a su correspondiente letra HEX: A,B,C,D,E,F 7000)10 = 1B58)16 30 Actividad Convertir de decimal a octal: 83(10 64(10 Convertir de decimal a hexadecimal: 241(10 255(10 Sistemas octal y hexadecimal Para transformar un número octal a decimal: 454(8 = 4 x 82 + 5 x 81 + 4 x 80 = 256 + 40 + 4 = 300(10 Para transformar un número hexadecimal a decimal: 12C(16 = 1 x 162 + 2 x 161 + 12 x 160 = 256 + 32 + 12 = 300(10 31 Actividad Convertir de octal a decimal: 361(8 Convertir de hexadecimal a decimal: 53(16 Sistemas octal y hexadecimal Transformación de binario a códigos intermedios y viceversa: Octal: hacemos grupos de tres dígitos (empezando por la derecha y rellenando con ceros si es necesario): ◼ 100101100(2 = 454 (8 ◼ 551 (8 = 101101001(2 Hexadecimal: hacemos grupos de cuatro dígitos (empezando por la derecha y rellenando con ceros a la izquierda si es necesario): ◼ 000100101100(2 = 12C (16 ◼ 32A (16 = 001100101010(2 32 Sistemas octal y hexadecimal Transformación de binario a códigos intermedios y viceversa: Actividad Convertir el número 111000111(2 a octal hexadecimal Convertir el número 63(8 a binario. Convertir el número 63(16 a binario. 33 Sistemas octal y hexadecimal Transformación de hexadecimal a octal y viceversa: Octal a hexadecimal: escribimos dígitos binarios de 3 en 3 y agrupamos de 4 en cuatro (desde la derecha): ◼ 551 (8 = 101 101 001(2 = 169 (16 Hexadecimal a octal: escribimos dígitos binarios de 4 en 4 y agrupamos de 3 en tres (desde la derecha): ◼ 32A (16 = 0011 0010 1010(2 = 1452 (8 Sistemas octal y hexadecimal 34 Actividad Convertir 454(8 a hexadecimal Convertir 1C(16 a octal Operaciones en binario Las operaciones que un sistema informático puede realizar a nivel binario son: Operaciones aritméticas: ◼ suma, resta, multiplicación y división Operaciones lógicas: ◼ NOT, OR, AND, NOR, NAND, XOR, XNOR Operaciones comparativas: < > == Operaciones de desplazamiento: ◼ desplazamiento de un bit a lo largo de una palabra (secuencia de n bits definida por un sistema). 35 Operaciones en binario Suma: La suma binaria se puede realizar cómodamente siguiendo las tres reglas descritas: 1. Si el número de unos (en sentido vertical) es par el resultado es 0. 2. Si el número de unos (en sentido vertical) es impar, el resultado es 1. 3. Acarreo tantos unos como parejas (completas) de números 1 haya. Por ejemplo: ◼ 0 + 0 = 0, ◼ 0 + 1 = 1, ◼ 1 + 0 = 1, ◼ 1 + 1 = 0 se pone 0 y se acarrea un 1 a la posición siguiente (“me llevo una”). Operaciones en binario Suma: Ejemplo: sumar 1010 (que en decimal es 10) y 1111 (que en decimal es 15) 1 1 1 0 1 0 1 0 + 1 1 1 1 1 1 0 0 1 36 Operaciones en binario Resta: Las cuatro reglas básicas para la resta de números binarios son: 0 - 0 = 0 1 – 1 = 0 1 – 0 = 1 0 – 1 = 1 (con acarreo negativo de 1) El acarreo negativo pasa a la siguiente columna de la izquierda. En binario solo se produce este acarreo cuando se intenta restar 1 de 0. Operaciones en binario Resta: Ejemplo: 1 101 - 011 010 En la columna derecha se realiza la resta de 1 – 1 = 0 En la columna central se produce un acarreo negativo de 1 a la columna siguiente: 0 - 1 = 1 con acarreo de 1 a la siguiente columna En la columna izquierda, se resta 1 del acarreo producido en la anterior columna y da como resultado 0: (1-1)-0=0-0=0 37 Operaciones en binario Multiplicación: Se aplican las siguientes reglas: ◼ 1 x 1 = 1 ◼ 1 x 0 = 0 ◼ 0 x 1 = 0 ◼ 0 x 0 = 0 División: se realiza como la división decimal, pero las multiplicaciones y restas internas se hacen en binario. Operaciones en binario Operaciones lógicas NOT → Negación (inverso, lo contrario) AND → Y lógico OR → O lógico NAND → inverso de AND NOR → inverso de OR XOR → OR exclusivo XNOR → inverso de XOR 38 Operaciones en binario Tablas de verdad Operaciones en binario Tablas de verdad 39 Operaciones en binario Puertas lógicas Estasoperaciones lógicas que acabamos de ver (NOT, AND, OR, etc.) se implementan en circuitos integrados mediante lo que se denomina puertas lógicas. Una puerta lógica es un dispositivo electrónico capaz de realizar una función booleana u otras funciones aritméticas. Operaciones en binario Puertas lógicas: representación 40 Operaciones en binario Puertas lógicas: representación Operaciones en binario Puertas lógicas Ejemplo: implementación de una puerta AND utilizando transistores y resistencias. Resistencias Transistor 41 Operaciones en binario Puertas lógicas Ejemplo: semisumador con puertas lógicas XOR AND Operaciones en binario Puertas lógicas Ejemplo: circuitos integrados compuestos por puertas lógicas 42 Representación en complementos Para representar un número negativo se puede utilizar el complemento de ese número a la base (o a la base menos uno) del sistema de numeración utilizado. Conseguimos así que sumas y restas queden reducidas a sumas, independientemente de los signos de los operandos. Reduce la complejidad de los circuitos de la ALU (unidad aritmético lógica). Representación en complementos Complemento a 1 43 Representación en complementos Complemento a 1 Complemento a Decimal uno Los números negativos se representan invirtiendo todos los bits de la 0111 7 representación binaria del número 0110 6 positivo (intercambiando 0 por 1 y 0101 5 viceversa). 0100 4 0011 3 Si el bit más significativo es 0: número 0010 2 positivo 0001 1 Si el bit más significativo es 1: número 0000 0 1111 −0 negativo. 1110 −1 Con N bits, podemos representar el rango 1101 -2 -(2N−1−1) a 2N−1−1 1100 −3 ◼ Por ejemplo, con 4 bits podemos 1011 −4 representar desde el -7 hasta el 7. 1010 −5 1001 −6 1000 −7 Representación en complementos Complemento a 2 Complemento Decimal a dos El complemento a 2 de un número 0111 7 binario es una unidad mayor que 0110 6 su complemento a 1. 0101 5 0100 4 La resta de dos números binarios 0011 3 puede obtenerse sumando al 0010 2 minuendo el complemento a dos 0001 0000 1 0 del sustraendo. 1111 −1 1110 −2 Con N bits, podemos representar 1101 −3 el rango -(2N−1) a 2N−1−1 1100 −4 1011 −5 ◼ Por ejemplo, con 4 bits podemos 1010 −6 representar desde el -8 hasta el 7. 1001 −7 1000 −8 44 Representación en complementos Comparación de rangos numéricos entre Complemento a 1 y Complemento a 2. Representación de números reales La representación de números reales puede depender del hardware o de los lenguajes de programación usados para desarrollar el software. Los microprocesadores contienen los circuitos para operar en coma flotante. Antiguamente se disponía de un circuito integrado exclusivo para realizar esta operación: el coprocesador matemático, como por ejemplo: Intel 8087, 80287, 80387… 45 Representación de números reales El ordenador utiliza la notación exponencial con todos los números reales: 2,71828 x 10 -2 representa al número real 0,0271828 2,71828 x 10 -1 representa al número real 0,271828 2,71828 x 10 0 representa al número real 2,71828 (el exponente cero indica que la coma no se desplaza) 2,71828 x 10 1 representa al número real 27,1828 2,71828 x 10 2 representa al número real 271,828 También se llama notación científica o en punto/coma flotante: Todo número N lo podemos expresar como: N = mantisa x base exponente Siendo la base conocida de antemano. Representación de números reales Cuando normalizamos números, solo tienen un dígito distinto de cero en la parte entera. 95,12 x 10–5 → 9,512 x 10–4 En la actualidad se utiliza el estándar IEEE 754: Precisión simple: 32 bits Precisión doble: 64 bits 46 Representación de números reales IEEE 754 Precisión simple: 32 bits Precisión doble: 64 bits Observa que, por ejemplo, con 32 bits podemos representar números mucho mayores que 232 Representación de números reales IEEE 754 En este ejemplo, convertimos el numero 51654654321321321321654654654654654654 a IEEE 754: 0x7E1B714C 47 Codificación alfanumérica La codificación alfanumérica convierte un carácter de un lenguaje natural (como el de un alfabeto) 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. Codificación alfanumérica 48 Codificación alfanumérica Representamos un abanico de símbolos más amplio: caracteres alfabéticos y numéricos, caracteres especiales, etc. Uno de los más utilizados es el ASCII (American Standard Code for Information Interchange). ASCII originalmente utilizaba 7 bits con lo que pueden representarse 128 (27) caracteres distintos. Actualmente se utiliza Unicode (a día de hoy alberga 143924 caracteres) Codificación alfanumérica ASCII American Standard Code for Information Interchange Originalmente, 7 bits por símbolo (27=128 caracteres) ASCII extendido: 8 bits por símbolo (28=256 caracteres) Cada símbolo se codifica por un número que representa su posición dentro del conjunto. Entre los 256 símbolos del código ASCII podemos encontrar entre otros: ◼ Alfabéticos: ◼ mayúsculas: (A-Z) → (65-90) ◼ minúsculas: (a-z) → (97-122) ◼ Numéricos (0-9) → (48-57) ◼ De puntuación ,. ; : - ! ? etc. ◼ Especiales ( % & $ # { } ) etc. 49 Codificación alfanumérica Tabla de códigos ASCII Codificación alfanumérica 50 Codificación alfanumérica Tabla de códigos ASCII HOLA H = 72 = 1001000 O = 79 = 1001111 L = 76 = 1001100 A = 65 = 1000001 HOLA 1001000100111110011001000001 Codificación alfanumérica ¿Y si queremos representar este tipo de símbolos? ASCII no es suficiente… 51 Codificación alfanumérica Unicode Estándar de codificación de caracteres diseñado para el tratamiento informático, la transmisión y la visualización de textos de numerosos idiomas y disciplinas técnicas. Intenta unificar los estándares de codificación multilingüe (numerosas empresas y organizaciones implicadas). Actualmente contiene 143.924 caracteres de alfabetos, ideogramas, símbolos matemáticos, técnicos, musicales, iconos, emojis... http://www.unicode.org/charts/ Es compatible con ASCII (los caracteres ASCII se representan tal cual, sin cambios). Codificación alfanumérica Unicode Formas de codificación: UTF (Unicode Transformation Format): ◼ UTF-8: codificación orientada a byte con símbolos de longitud variable (ocupan entre 1 y 4 bytes). ◼ UTF-16: codificación de 16 bits de longitud variable (ocupan entre 2 y 4 bytes) ◼ UTF-32: codificación de 32 bits de longitud fija (ocupan 4 bytes) 52 Codificación alfanumérica Unicode Observa las diversas formas de codificar el mismo carácter según la codificación elegida. Observa las diferencias de tamaño entre codificaciones. Archivos y otros usos del binario 53 Datos vs información ¿Qué diferencia hay entre datos e información? Se suelen utilizar como sinónimos, pero… Los datos son símbolos, sin más (por ejemplo, el 0 y el 1 o un conjunto de caracteres) La información añade un contexto a estos datos, dándoles un significado (por ejemplo, un nombre, una edad, un archivo de texto, etc.) datos + significado = información Cuando trabajamos con archivos, le tenemos que decir al sistema operativo cómo procesar los datos, cómo interpretarlos, es decir, qué significado darle a ese conjunto de ceros y unos. Datos vs información Para que el sistema operativo pueda procesar correctamente los datos de un archivo usamos la extensión de archivo. nombreDeArchivo.extensión Así le estamos diciendo al sistema operativo cómo tiene que interpretar el archivo: con qué aplicación abrirlo, si tiene que ejecutarlo, etc. La extensión de un archivo realmente forma parte de su nombre. 54 Datos vs información Por ejemplo, algunas extensiones de archivo conocidas: archivo.docx archivo.txt archivo.xlsx archivo.exe archivo.zip archivo.pdf archivo.jpg archivo.mp3 archivo.odt Recuerda que le estamos diciendo al sistema operativo cómo tiene que interpretar el archivo. Al cambiar la extensión de un archivo solo estamos cambiando el nombre del archivo, no cambiamos su contenido: le estamos diciendo al sistema operativo cómo interpretar el archivo. Datos vs información En sistemas Windows: recomendable ver las extensiones siempre. 55 Imágenes (bitmap) Bitmaps: mapa de bits Esta técnica se basa en descomponer una imagen real formada por infinitos puntos mediante una matriz de puntos o píxeles, cada uno de un color. El número de puntos de ancho y alto determina la resolución de la imagen. El número de bits utilizados para representar el color de cada píxel se denomina profundidad del color: 1 bit de profundidad = 2 colores (blanco y negro) 8 bits = 256 colores 16 bits = 65.536 colores 24 bits = 16.777.216 colores Imágenes (bitmap) Bitmaps: mapa de bits 56 Imágenes (bitmap) Bitmaps: mapa de bits Ejemplo de mapa de bits 8x8 a dos colores (rojo / ausencia de color) Cada pixel, 1 bit (0 o 1) Imágenes (bitmap) Bitmaps: mapa de bits En este ejemplo tenemos una imagen de 1600x900 píxeles de resolución y 24 bits de profundidad de color. 57 Imágenes (bitmap) Ejemplo: Calcular el tamaño de una imagen bitmap, en blanco y negro (1 bit) y con resolución de 640x480 píxeles. Tamaño = profundidad de color x resolución Tamaño = 1 bit x 640 x 480 = 307.200 bits = 37,5 KiB Imágenes FORMATO CARACTERÍSTICAS USO Profundidad de color: de 1 a 8 bits Imágenes sencillas Compresión sin perdida (no pierde calidad) como gráficos o GIF Posibilidad de fondo transparente. logos y pequeñas Permite animaciones simples animaciones Fotografías e Profundidad de color: hasta 24 bits. imágenes con JPEG Compresión con pérdida (pierde calidad) degradados Posibilidad de compresión muy elevada complejos. Profundidad de color: hasta 48 bits. Creado pensando en Compresión sin pérdida (no pierde calidad) Internet, por su gran PNG Permite transparencia (canal alfa). capacidad de No permite animaciones. compresión. 58 Sonido Para procesar el sonido en un PC es necesario realizar una digitalización (conversión analógico/digital). Recuerda que cualquier tipo de información que sea manejado por una ordenador se va a representar mediante ceros y unos. Para digitalizar el sonido en un PC se pueden utilizar varios dispositivos, pero lo habitual es una tarjeta de sonido y un micrófono. Sonido 59 Sonido Para digitalizar se realiza lo que se denomina muestreo (sampling): tomar muestras de sonido a intervalos de tiempo regulares. Es decir, consiste en “escuchar” el sonido de un instante muy breve (muestra), muchísimas veces por segundo y almacenar una secuencia de dígitos binarios para cada muestra. El proceso contrario, de reproducción del sonido almacenado, consiste en leer estas secuencias de ceros y unos y reproducir el sonido de cada muestra, tan rápido como cuando se tomaron. Si tomamos una muestra por segundo, hablaríamos de un índice de muestreo de 1 Hercio (1 Hz) El Hercio es la unidad de frecuencia de Sistema Internacional. Si tomamos 1.000 muestras por segundo = 1.000 Hz = 1 kHz Sonido Observa cómo a mayor calidad (mayor número de bits por muestra) y a mayor índice de muestreo, la señal digital es más fiel a la señal original (la roja). 60 Sonido Sonido Calcular el tamaño de un archivo de sonido de tipo “WAV” de 30 segundos en estéreo (dos canales) con una calidad de 32 bits y una frecuencia (índice de muestreo) de 22 kHz. Tamaño = Índice de muestreo x Número de bits x Número de segundos x Número de canales Tamaño = 22.000 x 32 x 30 x 2 = 42240000 bits = 5,03 MiB 61 Otras representaciones Colores en HTML Se representan mediante la mezcla de los colores rojo, verde y azul (Red/Green/Blue = RGB) 8 bits por color (rojo / verde / azul) = 3 bytes en total Representación en decimal: ◼ (R,G,B) (0-255, 0-255, 0-255) ◼ Ejemplo: (255,0,0) Representación en hexadecimal: ◼ #RRGGBB (#000000 a #FFFFFF) ◼ Ejemplo: #FF0000 Entotal podemos tener 224 combinaciones = 16.777.216 colores Otras representaciones Colores en HTML 62 Otras representaciones Direcciones IPv4 Entonces, ¿cuántas direcciones IPv4 puede haber (en teoría)? Otras representaciones Direcciones IPv6 Entonces, ¿cuántas direcciones IPv6 puede haber (en teoría)? 63 Otras representaciones Direcciones MAC Entonces, ¿cuántas direcciones MAC puede haber (en teoría)? Otras representaciones Otros códigos Barras BIDI QR 64