sábado, 19 de octubre de 2013

MAPA DE MEMORIA
Un mapa de memoria (del inglés memory map) es una estructura de datos (tablas) que indica cómo está distribuida la memoria. Contiene información sobre el tamaño total de memoria y las relaciones que existen entre direcciones lógicas y físicas, además de poder proveer otros detalles específicos sobre la arquitectura del computador.
Los mapas de memoria suelen ser creados usualmente por el firmware para dar información al núcleo del sistema sobre cómo está distribuida la memoria. 
TARJETAS DE EXPANSIÓN


Son placas que se insertan en las ranuras de expansión de la tarjeta madre para ampliar las capacidades de una computadora.
Los tipos más comunes de tarjeta de expansión son.
v  Tarjeta gráficas o de vídeo.
v  Tarjeta sintonizadores de TV (TV tuner).
v  Tarjetas de sonido.
v  Tarjeta de red.
v  Módem internos.
v  Tarjetas POST.














MÓDULOS DE CONEXIÓN  











Los módulos de SICK permiten la conexión sin esfuerzo con casi todas las tecnologías de bus de campo: los módulos de conexión CDB y CDM facilitan el conexionado de sensores, incluso en redes CAN. Los sensores se integran fácilmente en redes PROFIBUS-DP, DeviceNet o Ethernet TCP/IP a través de pasarelas de bus de campo CMF400 externas.
El uso de módulos de clonación de parámetros CMC externos permite la sustitución inmediata de los sensores.


Segmentación de memoria

La segmentación divide la memoria en segmentos, cada uno de los cuales tiene una longitud variable, que está definida intrínsecamente por el tamaño de ese segmento del programa 

 













Objetivos alcanzados con la segmentación de memoria

·         MODULARIDAD DE PROGRAMAS: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
·         ESTRUCTURAS DE DATOS DE LARGA VARIABLE: Donde cada estructura tiene su propio tamaño y este puede variar. STACK
·         PROTECCIÒN: Se puede proteger los módulos del segmento contra accesos no autorizados.
·         COMPTICIÒN: Dos o más procesos pueden ser un mismos segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
·         ENLACE DINAMICO ENTRE SEGMENTOS: Puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa los enlaces se establecen solo cuando sea necesario.




















LAS VENTAJAS DE LA SEGMENTACIÒN
ü  El programador puede conocer las unidades lógicas de su programa, dándole un tratamiento partícula
ü  Es posible compilar módulos separados como segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
ü  Fácil el compartir segmentos.
ü  Es posible que los segmentos crezcan dinámicamente sugun las necesidades del programa en ejecución.
LAS DESVENTAJAS DE LA SEGMENTACIÓN
ü  Hay un incremento en los costos de hardware y de software para llevar a cabo la implantación, así como +un mayor consumo de recursos: memoria, tiempo de CPU etc.

ü  Debido a que lo segmentos tienen un tamaño variable se pueden presentar problemas de fragmentación externas, lo que puede ameritar un plan de re ubicación de segmentos en memoria


FORMATOS DE MEMORIA RAM

SIMM: 30 contactos



SIMM: 72 contactos












DIMM: 168 contactos











DDR: 184 contactos

(para portátil)












DDR2: 240 contactos





formato para portátil)


sábado, 12 de octubre de 2013

Jerarquía de memoria



Principio de localidad

Definición

Los programas, durante su ejecución, no acceden con la misma probabilidad a todos sus datos o instrucciones.

Localidad espacial (en el espacio de direcciones):
Cuando un programa accede a una instrucción o a un dato, existe una elevada probabilidad de que instrucciones o datos cercanos sean accedidos pronto.
Localidad temporal:
Cuando un programa accede a una instrucción o un dato, existe una elevada probabilidad de que esa misma instrucción o dato vuelva a ser accedido pronto.


Jerarquía de memoria


Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles que tienen los ordenadores.
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de unamemoria de baja velocidad, basándose en el principio de cercanía de referencias.


Los puntos básicos relacionados con la memoria pueden resumirse en:
Cantidad
Velocidad
Coste

La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el coste de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.

Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad menor coste por bit.
A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.

Los niveles que componen la jerarquía de memoria habitualmente son:
Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria principal
Nivel 3: Memorias flash
Nivel 4: Disco duro (con el mecanismo de memoria virtual)
Nivel 5: Cintas magnéticas Consideradas las más lentas, con mayor capacidad.
Nivel 6: Redes (Actualmente se considera un nivel más de la jerarquía de memorias)



Tiempo de espera

El tiempo que tarda la memoria en proporcionar el dato, es la suma de las tres latencias: ACTIVE, RAS y CAS.

Como se comenta anteriormente, antes de enviar el dato/instrucción a donde deba ir, se deben leer varias celdas de memoria, por lo tanto hay que pasar de una celda a otra, e ir esperando su correspondiente latencia CAS.

Si cada tablero tiene, por ejemplo 64 celdas, y se van a leer 20 posiciones, las latencias totales a esperar son:
1 X ACTIVE (ya que se leen menos de 64 celdas, que son las que tiene el tablero completo)
3 X RAS (ya que cada fila tiene 8 posiciones)
20 X CAS (ya que se van a leer 20 celdas)

La latencia más importante, como queda patente, es la latencia CAS, y cuanto menor sea esta, mejor rendimiento tendrá el ordenador en general.


Tiempo real

Sea una placa base con Front Side Bus o FSB a 200 MHz. El tiempo de cada ciclo de reloj es: F = 1 / T --> 200 * 10^6 = 1 / T --> T = 1 / 200 * 10^6 --> T = 5 * 10^-9 s = 5 NanoSegundos

NOTA: las antiguas memorias RAM que empleaban los Pentium I eran de 70 ns, las EDO que eran las mismas un poco evolucionadas eran de 60 ns, así se puede calcular bastante fácilmente el fsb de aquellos sistemas. Las primeras SDRAM que aparecieron, las PC 100, eran de 10 ns, evidentemente el fsb de aquellos sistemas era de 100 MHz.



En función de la calidad de las memorias, sus latencias serán mejores o peores.




En la imagen se ve que la memoria tarda 12.5 ns en hacer el CAS, si se cogen 3 ciclos (latencia CAS 3) sobran 2.5 ns. 2.5 en 15 es mucho el 16.6%, y más aun teniendo en cuenta que se hacen muchísimos accesos a memoria, por lo tanto, cuanto más tiempo se ahorre mejor.

Al hacer uso de la memoria DDR, se puede emplear tanto el flanco de subida como el de bajada para terminar la latencia, de modo que empleando CAS 2.5 este ejemplo sería óptimo.




Latencia de memorias

Se denominan latencias de una memoria RAM a los diferentes retardos producidos en el acceso a los distintos componentes de esta última. Estos retardos influyen en el tiempo de acceso de la memoria por parte de la CPU, el cual se mide en nanosegundos (10-9 s) .

Resulta de particular interés en el mundo del overclocking el poder ajustar estos valores de manera de obtener el menor tiempo de acceso posible.


Estructura física de la memoria

La memoria está compuesta por un determinado número de celdas, capaces de almacenar un dato o una instrucción y colocadas en forma de tablero de ajedrez. En lugar de tener 64 posibles posiciones donde colocar piezas, tienen n posiciones. No solo existe un "tablero" sino que existen varios, de esta forma la estructura queda en forma de tablero de ajedrez tridimensional.




Accesos a memoria

Cuando se desea acceder a la memoria, es imprescindible indicar el número de tablero, el número de fila dentro del tablero, y el número de columna o celda dentro de esa fila, en ese orden.

El tiempo que tarda la memoria en colocarse en la posición necesaria es relativamente pequeño, sin embargo son tantos los datos e instrucciones que se almacenan en la memoria, que al final el proceso puede llegar a hacerse lento.

Debido al que se van a leer/escribir muchas cosas de/en la memoria, se necesita un sistema que lea muchas celdas al mismo tiempo, sin transportar los datos de dichas celdas y a continuación, transportar todos los datos a la vez (dato o instrucción ya que es lo único que se almacena en la memoria). Este sistema de leer muchas celdas y después transportar es conocido como bus a ráfagas o burst.

Si por cada celda que se leyese, el dato/instrucción se transportara a su destino, la lectura/escritura de memoria sería un proceso demasiado lento.


Tipos de latencias

Existen varios tipos de latencias en las memorias, sin embargo, las más importantes son:
CAS: indica el tiempo que tarda la memoria en colocarse sobre una columna o celda.
RAS: indica el tiempo que tarda la memoria en colocarse sobre una fila.
ACTIVE: indica el tiempo que tarda la memoria en activar un tablero.
PRECHARGE: indica el tiempo que tarda la memoria en desactivar un tablero.

Tipos de memorias
1. Memoria RAM 

La memoria de acceso aleatorio (en inglés: random-access memory) se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible. Durante el encendido del computador, la rutina POST verifica que los módulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.



2. Memoria ROM 

La memoria de solo lectura, conocida también como ROM (acrónimo en inglés de read-only memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.

Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto, se refiere sólo a máscara ROM -en inglés, MROM- (el más antiguo tipo de estado sólido ROM), que se fabrica con los datos almacenados de forma permanente y, por lo tanto, su contenido no puede ser modificado de ninguna forma.



3. Memoria PROM 

PROM es el acrónimo en inglés de programmable read-only memory, que significa «memoria de solo lectura programable». Es una memoria digitaldonde el valor de cada bit depende del estado de un fusible (o antifusible), que puede ser quemado una sola vez. Por esto la memoria puede ser programada (pueden ser escritos los datos) una sola vez a través de un dispositivo especial, un programador PROM. Estas memorias son utilizadas para grabar datos permanentes en cantidades menores a las ROM, o cuando los datos deben cambiar en muchos o todos los casos.

Pequeñas PROM han venido utilizándose como generadores de funciones, normalmente en conjunción con un multiplexor. A veces se preferían a las ROM porque son bipolares, habitulamente Schottky, consiguiendo mayores velocidades.


3. Memoria PROM 

EPROM son las siglas de Erasable Programmable Read-Only Memory (ROM programable borrable). Es un tipo de chip de memoria ROM no volátilinventado por el ingeniero Dov Frohman. Está formada por celdas de FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) o "transistores de puerta flotante", cada uno de los cuales viene de fábrica sin carga, por lo que son leídos como 1 (por eso, una EPROM sin grabar se lee como FF en todas sus celdas).

sábado, 5 de octubre de 2013

Preguntas

Preguntas

¿Por qué se llama ley de AMDAHL?

La Ley de Amdahl, llamada así por el arquitecto de ordenadores Gene Amdahl

¿Qué es la ley de AMDAHL?

El aumento de rendimiento que puede obtenerse al mejorar alguna parte de una computadora puede calcularse utilizando la Ley de Amdahl.

¿Para qué se usa la ley de AMDAHL?

Se usa para averiguar la mejora máxima de un sistema cuando solo una parte de éste es mejorado.

¿Cuál es la fórmula original de la ley de AMDAHL?

 La fórmula original de la ley de Amdahl es la siguiente:
F = {F_{a} \cdot \left((1 - F_{m}) + {F_{m} \over A_{m}}\right)}

¿Un sistema operativo de tiempo real?

Es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo.

¿Qué es productividad con respecto a la gestión del proceso?

Es el que mide el número de programa que se ejecuta por unidad tiempo

¿Qué es el tiempo de respuesta?

Tiempo total para realizar una tarea

¿Qué es la velocidad de reloj?

 Es el inverso del periodo. Se mide en ciclos por segundo. Por ejemplo 4GHz (giga Hertz).

¿En que se mide la velocidad del reloj?

Se mide en Mhz (millones de ciclos por segundo)

¿Qué es el tiempo del CPU?        

El tiempo que el CPU le dedica a cada tarea

¿Qué es el reloj del sistema?  

El reloj del sistema determina cuando los eventos ocurren en el hardware.

¿Qué es el periodo del reloj?

Tiempo en que ocurre un ciclo (pulso) de reloj Se mide en fracciones de segundo. Por ejemplo 0.25 nanosegundos.

¿Qué es un ciclo de reloj?                                                                                                       

Un ciclo del CPU, es un impulso electromagnético que genera el oscilador de cuarzo presente en todo procesador y microprocesador de la computadora.

¿Qué son los benchmark?

Son simplemente aplicaciones que sirven de “probadores” de desempeño, las cuales dan una idea de la potencia del equipo