Definición de Memoria

Documentos relacionados
Modos de Direccionamiento

Unidad II: Memorias. Ing. Marglorie Colina

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Datos Elementales y formato de un programa en Java

Diferentes Perspectivas de un Ordenador

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

XDR (External Data Representation) Tipos y codificación. Universidad de Oviedo / Dpto. de Informática

Introducción a la computación. Primer Cuatrimestre de 2013

Java posee dos grandes categorías de tipos para las variables:

Ensamblador del Pentium

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 1. Informática Básica

Contenidos: Definiciones:

Tema 5 Jerarquía de Memoria

Tema 5 Jerarquía de Memoria

1. Partes del ordenador. Nuevas Tecnologías y Sociedad de la Información

Tema 0. Introducción a los computadores

Datos y tipos de datos

Realiza un ensayo sobre el origen y desarrollo de la computadora personales y llena el cuadro siguiente: CARACTERÍSTICA S

DEFINICIONES BÁSICAS. Información obtenida de: PRIETO ESPINOSA, Alberto Introducción a la Informática: Madrid: McGrawHill, D.

Tema 2. El lenguaje JAVA

TEMA 7. ARRAYS (LISTAS Y TABLAS).

Facultad de Física. Métodos Numéricos

INTRODUCCIÓN A LA INFORMÁTICA

Expresiones y sentencias

como les va con las practicas?

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Informática Básica. 2º Diplomatura en Ciencias Empresariales Universidad Pública de Navarra. Informática Básica, DCE-UPNA 1

TIPO DE DATO ABSTRACTO (TDA)

Memorias FORMAS DE ESCRITURA

Los tipos de datos primitivos

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tipos de datos y Operadores Básicos

Conjunto de Unidades que colaboran entre si para realizar una función general y donde cada unidad efectúa un trabajo específico.

XDR: Estándar de Representación Externa de Datos

Colegio Diocesano San José de Carolinas

Estructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos

Ficha de Aprendizaje N 13

Tipos de Datos. Tipos de datos en C. Tipo de dato char. Tipo de dato short int. Tipo de dato int. Tipo de dato long int

Docente: Sandra Romero Otálora SISTEMA DE COMPUTO INTRODUCCIÓN A LOS COMPUTADORES CONCEPTOS BÁSICOS

Curso Informática Lección 3. Tipos de datos, constantes y variables

Expresiones y sentencias

INTRODUCCIÓN A LA UNIDAD DE MEMORIA

Práctica 1 - Representación de la información

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Implantación de Sistemas Operativos 1º ASIR

Programación 1 Tema 3. Información, datos, operaciones y expresiones

A veces queremos almacenar algún elemento que es Verdadero o Falso. Este tipo de dato se llama Booleano y su representación es sencilla, para cada

Arquitectura de Computadores II Clase #3

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

El nivel ISA (II)! Conjunto de Instrucciones

Representación de la información

Computación I (CI-2125) Clase 1. Prof. Mireya Morales Primera

ESCUELA NACIONAL AUXILIARES DE ENFERMERÍA Manizales TECNOLOGÍA E INFORMÁTICA

Las palabras clave y otros términos que se han resaltado en negrita se encuentran en el glosario final del libro.

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.

Arquitectura de Computadores

PUNTEROS (Apuntadores)

Curso de Java Introducción a la Programación II

ESCUELA DE INFORMÁTICA

Electrónica Industrial - 4º ETSII. Concepto de capacidad Concepto de bit, byte y word (palabra) Electrónica Industrial - 4º ETSII

El Diseño de un Lenguaje Máquina

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

1. DATOS e INFORMACIÓN.

GRUPO ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION SENA EXPOSICION MEMORIA RAM INTEGRANTES STEVEN PALOMA ALEJANDRO BERNAL TATIANA RODRÍGUEZ

Dispositivos de Procesamiento y Dispositivos de Memoria. Dra. Leticia Flores Pulido Introducción a la Ingeniería en Computación

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Sistema Operativo. Concepto - Práctica

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Página 1 de 12 CONCEPTOS INFORMÁTICOS BÁSICOS

Tema 0. Introducción a los computadores

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Clase #1 Paso de C a C++

Construyendo Programas más Complejos

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Memorias. Docente: Ing. Víctor Cárdenas Schweiger

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Tema 5: Memorias. Espacio reservado para notas del alumno

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial

TEMA 8 MEMORIAS DIGITALES

Sistemas Informáticos. Estructura Funcional

4. Operadores Operador asignación

Arquitectura del MIPS: Introducción

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

1. La importancia de la Informática

... La Memoria. La Memoria CAPÍTULO. Conceptos Básicos sobre Tecnologías de la Información

Memoria Estática Punteros, Vectores y Matrices

UD1. MEMORIAS. Centro CFP/ES FUNCIONAMIENTO BIESTABLE RS

VARIABLES TIPOS FUNDAMENTALES

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Memoria Estática Punteros, Vectores y Matrices

Fundamentos de la programación

Transcripción:

Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria es un dispositivo electrónico en el que se almacenan datos. La memoria permite operaciones de escritura en las que los datos se almacenan en un lugar dado. La memoria también permite operaciones de lectura en las que dado un lugar, se obtiene el contenido previamente almacenado en dicho lugar. Otra posible definición: La memoria es un circuito sobre el que se permiten dos operaciones: 1. Data Read(Address a): Dada una posición o dirección de memoria se obtiene un dato. 2. void Write(Addres a, Data d): Se almacena un dato dado en una posición o dirección de memoria (no se devuelve resultado).

Estructura Interna de la Memoria DRM-2 La memoria consta de celdas capaces de almacenar un bit. Cada celda necesita voltaje para mantener la información almacenada. A este tipo de memoria se le conoce como memoria RAM (Random Access Memory) Existen dos tipos de memoria RAM 1. Estática (SRAM): Almacena la información en las celdas indefinidamente mientras se mantenga el voltaje (utiliza un biestable). 2. Dinámica (DRAM): La información almacenada se borra tras un tiempo entre 10 y 100 milisegundos (utiliza un condensador). Para evitar perder información se debe reescribir cada bit de información antes de perderlo. Es 10 veces más lenta, 6 veces más compacta y 100 veces más barata. Propiedades de la Memoria DRM-3 Tabla en la que se almacenan los datos en formato binario. Definición: La unidad mínima de direccionamiento se define como la cantidad de información que se almacena en una posición de la memoria a la que se refiere una dirección. Es decir, los datos almacenados entre dir y dir+1. Generalmente, esta unidad mínima de direccionamiento es un byte (8 bits). En adelante se asumirá 1 byte a no ser que se indique lo contrario. Cada una de las posiciones tiene una dirección única. Cada unidad mínima de direccionamiento tiene una dirección única. La primera unidad de información tiene la dirección 0. Una memoria que almacena 1024 bytes tiene direcciones desde la 0 hasta la 1023

Tamaño de Memoria DRM-4 El tamaño de memoria se mide por la cantidad de información que es capaz de almacenar. Un kilobyte son 1024 bytes (2 10 bytes) Un megabyte son 1024 kilobytes (2 20 bytes) Un gigabyte son 1024 megabytes (2 30 bytes) Un terabyte son 1024 gigabytes (2 40 bytes) Ejemplo: Un ordenador con 512 megabytes de memoria puede almacenar 512 2 20 bytes de información. Por qué la memoria se suele medir siempre en tamaños potencias de 2? Operaciones sobre Memoria DRM-5 Se ejecutan las siguientes operaciones sobre memoria: Write(2, 0x06) Write(4, 0xFA) Write(6, 0xC6) Write(8, 0xAB) Write(6, 0xAA) El contenido inicial de la memoria es indefinido. Cuál es el resultado de la operación Read(6)

Parámetros de las Operaciones de Memoria DRM-6 Toda información debe estar codificada en Binario. Tanto los datos como la dirección deben estar codificados en binario. En la operación Write(2, 0x06): cuántos bits se precisan para codificar el dato? cuántos bits se precisan para codificar la dirección? Depende del tamaño Al conjunto de direcciones posibles para acceder a la memoria se le denomina Espacio de Direcciones Cuántos elementos tiene el espacio de direcciones de una memoria de 1 Megabyte? El número de bits utilizado para codificar el espacio de direcciones depende del número de unidades mínimas de direccionamiento y del tamaño de la memoria. Tamaño de Memoria y Tamaño de la Dirección de Memoria DRM-7 El tamaño de la memoria es el número de unidades de información que puede almacenar. Cada una de estas unidades de memoria tiene una dirección. El número de direcciones de memoria determina el tamaño de la dirección de memoria. Estos dos conceptos están relacionados mediante la fórmula: tamaño de dirección tamaño de memoria = 2 Ejemplo: Una memoria cuya dirección se representa con 20 bits tiene un tamaño de 1 Megabyte. Ejemplo: En una memoria de 64 kilobytes, una posible operación de escritura sería Write(0xC8A4, 0x55).

Memoria Posible y Memoria Real de un Ordenador DRM-8 La memoria es un módulo externo al procesador. El procesador asume que la memoria tiene un determinado tamaño de dirección. Es posible que la memoria tenga un tamaño más reducido que el que puede manipular el procesador. Ejemplo: El procesador Pentium tiene un tamaño de dirección de memoria de 32 bits. Cuál es el tamaño de memoria que corresponde a este tamaño de dirección? Cuál es el tamaño de memoria que suelen tener los ordenadores? Existen direcciones de memoria que nunca son utilizadas por el procesador. Memoria Real DRM-9

Almacenamiento de Caracteres en ASCII DRM-10 Utilizando la codificación ASCII cada símbolo se representa como 1 byte. Un string es una secuencia de caracteres y por tanto se almacena en memoria en posiciones consecutivas. Ejemplo: start: push $msg La posición de memoria en donde se almacena un string es la posición de su primer elemento. Cómo se sabe la longitud de un string? Tamaño de Datos en Java DRM-11 Cada lenguaje de programación debe definir los tamaños de los tipos de datos primitivos. Los tamaños de los tipos de datos básicos en JAVA son: Tipo Contiene Tamaño Rango boolean true, false 1 bit byte Entero 8 bits -128 a 127 char Caracter Unicode 16 bits 0 a 65535 short Entero 16 bits -32768 a 32767 int Entero 32 bits -2147483648 a 2147483647 long Entero 64 bits -9223372036854775808 a 9223372036854775807 float IEEE-754 Coma Flotante 32 bits 1.4E-45 a 3.4028235E+38 double IEEE-754 Coma Flotante 64 bits 4.9E-324 a 1.7976931348623157E+308 Cómo se almacena un booleano en una memoria con bytes como unidad mínima de direccionamiento? Cómo se almacena un long?

Almacenamiento de un Booleano DRM-12 Un booleano codifica dos valores y por tanto sólo requiere un bit. Para almacenar un booleano en memoria existen dos opciones: 1. Utilizar 1 byte sin utilizar 7 de los 8 bits. 2. Utilizar un único bit dentro de 1 byte (caben 8 booleanos en un byte). Almacenamiento de Números Enteros DRM-13 Ejemplo: Cómo se almacena en memoria el entero de 16 bits 0x0123? Se requieren dos bytes consecutivos. Cuál de los dos bytes se almacena primero? Big Endian: Se almacena comenzando por el de más peso. Little Endian: Se almacena comenzando por el de menos peso. Esta diferencia es irrelevante excepto si los datos se intercambian entre procesadores con diferentes políticas. La dirección del entero es la dirección de su primer byte almacenado en memoria. El procesador Pentium almacena los enteros en formato Little Endian.

Almacenamiento de Diferentes Enteros DRM-14 Para el caso de enteros de 32 y 64 bits se sigue la misma política. Ejemplo de almacenamiento de int: Write(0x100, (int) 0x89A8C6A4) Ejemplo de almacenamiento de long: Write(0x100, (long) 0xFA45D3B333CA112F) Almacenamiento de Instrucciones DRM-15 Como toda la información que manipula el procesador está codificada en binario, es susceptible de ser almacenada en memoria. Ejemplo: El conjunto de símbolos que representan operaciones entre 2 enteros de 8 bits. Para instrucciones no es preciso distinguir entre los estilos big endian o little endian pues los bytes no existen bytes más significativos que otros. Los bytes se almacenan en el orden en el que se escriben.

Tamaño de los Datos en las Operaciones de Lectura/Escritura DRM-16 La mayoría de datos que se almacenan en memoria requieren más de un byte. La unidad mínima de direccionamiento es un byte. Para obtener mejor rendimiento en la transferencia de datos, la unidad de transferencia suele ser mayor que un byte. Si la unidad de transferencia es n bytes la operación de lectura devuelve n bytes consecutivos, y la de escritura modifica n bytes consecutivos. Ejemplo: La Unidad de transferencia es de 4 bytes. Read(0x100): Devuelve los cuatro bytes almacenados en las posiciones 0x100 a 0x103. Write(0x100, 0xAB132432): Almacena a partir de la posición 0x100 los cuatro bytes 0xAB132432. Ejemplo de Operaciones en Memoria DRM-17 Supongamos una memoria con unidad de transferencia 4 bytes. Se realizan las siguientes operaciones (los bytes se almacenan en el orden en que aparecen). Write(0x100, 0x01234567) Write(0x101, 0x89ABCDEF) Write(0x102, 0xFFFFFFFF) Read(0x100) Cuál es el resultado de la última operación?

Almacenamiento de Direcciones como Datos DRM-18 Una dirección de memoria se puede representar con tantos bits como indica el tamaño de dirección de memoria. Supongamos una memoria cuya dirección se representa con 32 bits. Tras la operación Write(0x00001000, 0xFAFBFCFD) en la posición 0x00001000 se encuentran cuatro bytes consecutivos con los valores 0xFA, 0xFB, 0xFC y 0xFD. Pero la dirección de memoria es ella misma un dato susceptible de ser almacenado en la propia memoria. Write(0x00002000, 0x00001000): En la posición 0x00002000 se encuentran cuatro bytes consecutivos cuyo valor el 0x00001000. Podemos concluir que en la posición de memoria 0x00002000 se encuentra almacenada la dirección del número 0xFAFBFCFD. Indirección DRM-19 Puedo obtener el dato 0xFAFBFCFD si sólo conozco la dirección 0x00002000? Read(Read(0x00002000)) Un conjunto de bytes en memoria puede ser interpretado como entero, coma flotante, dirección, etc. La forma de interpretar un conjunto de bytes no está almacenada en memoria

Múltiples Indirecciones DRM-20 El concepto de indirección se puede encadenar un número arbitrario de veces. En la memoria, por tanto pueden coexistir: Números (enteros, naturales, coma flotante). Letras. Booleanos. Direcciones. Códigos que representan símbolos de un conjunto previamente definido. Almacenamiento de un Array DRM-21 Cómo se almacena un array de enteros de 32 bits? Lo más intuitivo es almacenar los elementos en posiciones consecutivas de memoria. Ejemplo: Un array con 4 enteros de 32 bits almacenado a partir de la posición 0x100 ocupa las posiciones desde la 0x100 hasta la 0x10F. Si la memoria es la del Pentium (little endian) Cómo se sabe el tamaño de un array?

Almacenamiento de Arrays de Java DRM-22 El tamaño de un array es tan importante que en Java se almacena como primer elemento de la tabla. Todo acceso a un elemento del array se realiza a través de un índice que se comprueba primero si está en el rango permitido. Ejemplo: int[] narray = new int[6]; En qué posición de memoria está almacenado narray[4]? Qué valor asocia el ordenador al símbolo narray?