Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ArquitecturaEx Copia 2
ArquitecturaEx Copia 2
Como estructura de la Memoria Principal encontramos: 6.2. Memorias PROM (Programable Read-Only Memory)
• Matriz de celdas de memoria: 2p filas por n columnas, en Si bien son memorias de solo lectura, se las puede programar una
cada intersección, una celda de memoria DRAM sola vez. Todas las celdas de memoria PROM están compuertas por
• Decodificador: Discrimina la dirección ingresada a la un diodo en serie con un fusible (metal conductor de dimensiones
memoria seleccionando una única fila o palabra de la mucho más pequeñas que los cables que une para que se funda
matriz cuando la corriente que circula por el supera un límite, protegiendo
• Lógica de control: Circuitería que proveerá todas las el resto del circuito).
señales necesarias para la lectura o escritura de una Estas memorias, de fábrica vienen con un diodo y su fusible en cada
posición o fila de la matriz. Proveerá la temporización a celda. El usuario al programarla lo que hará es quemar los fusibles
través de la señal de CLK en donde quiere que se almacene un “1”, dejando el diodo
• Transductores: Atenuarán la señal de escritura que llega conectado donde quiere un “0”. Esto se hace con un dispositivo
del exterior para poder interactuar con las celdas DRAM programador especial. Una vez quemado un fusible, no se lo puede
que requieren un nivel menor de señal de la que se recibe restaurar. Se las puede programar una sola vez.
(atenúan el dato a escribir). Asimismo amplificarán la señal Estas memorias no son volátiles.
proveniente de cada celda DRAM que es muy pequeña y no
alcanza para pasarla al bus de dato (amplifican el dato a 6.3. Memorias EPROM (Electrically Programable Read-Only
leer). Memory)
Estas memorias son volátiles por lo tanto requieren de energía Construidas para ser leídas, pueden programarse y volverse a
externa para funcionar y preservar los datos almacenados en ellas. programar las veces que sea necesario. Estas memorias poseen
Al quitar la energía se perderán todos los datos. celdas realizadas con semiconductores que, ante un pulso de una
Las señales de control de la memoria que podemos ver son: alta tensión, atrapan cargas y mantienen esas cargas
• CS (chip select) = Indicador de selección del chip de indefinidamente. Al medir la existencia de cargas atrapadas indicará
memoria para bancos multichip que en esa celda hay un “1”. La ausencia de dichas cargas en una
celda será tomada como un “0” en ella.
• OE (output enable) = habilitación de la señal de salida de
Las cargas atrapadas quedan indefinidamente porque su energía no
los transductores para que esté disponible en el bus de
es suficiente para recombinarse, sin embargo, estas memorias
datos
pueden borrarse a través de la incidencia de una luz ultravioleta en
• WE (write enable) = habilitación para escribir una celda de
el sustrato de la celda. La energía que provee la luz es suficiente
la matriz con el dato recibido en el bus de datos
como para que se recombinen las cargas y desaparezcan, dejando a
• R/W (no read / write) = indicación de operación a realizar
toda la memoria en cero de una sola vez.
sobre la memoria
• CLK (clock) = reloj
Para este procedimiento de borrado total de la memoria, los chips
poseen un ojo o ventana de vidrio que permite el ingreso de la luz En un mismo ciclo accede a dos posiciones de memoria en lugar de
ultravioleta. En condiciones de funcionamiento este ojo se tapa con una sola. Estas memorias poseen las siguientes características:
un parche que no deja pasar ninguna luz. • Trabajan con 2,5V en lugar de los 3,3V de las SDRAM. A
Se las suele utilizar como ROM BIOS (Basic Input-Output System) de menor tensión de trabajo, menos gasto de energía
las placas Madre de los ordenadores. • Trabajan con pipelines o buffer interno de 2 bits (buffer de
Estas memorias no son volátiles. pre-búsqueda) que permite almacenar los datos de 4
direcciones de memoria contiguas. Esta técnica tiene en
6.4. Memorias EEPROM o E2PROM (Electrically Erasable cuenta que un usuario que solicita la posición n, con
Programable Read-Only Memory) altísima probabilidad requerirá la n+1 y luego la n+2 y luego
De similares características funcionales que las EPROM con la la n+3. Por eso, guarda en un buffer esos 4 datos
salvedad que se programan con un pulso eléctrico y se borran con entregando el primero y quedando a la espera de que pida
un pulso eléctrico también (ya no con luz ultravioleta) celda por (muy probablemente) los que siguen. El tiempo que se
celda. Estas memorias no son volátiles. tarda en leer la celda de memoria es mucho mayor que el
que se tarda en leer el buffer de pre-búsqueda.
6.5. Memorias FLASH • El tiempo de acceso no es siempre igual, el primer dato
Derivada de las EEPROM, en este caso se pueden leer y escribir tarda más. Los subsiguientes se obtienen más rápidos
múltiples celdas de memoria simultáneamente. Esto da una mayor mientras estén en el buffer de pre-búsqueda
performance que las EEPROM antes mencionadas. Se emplean en • Velocidades de transferencia desde 200 Mhz hasta 400
las memorias USB. Mhz
Son baratas, rápidas y de muy bajo consumo de operación. Si bien • DIMM de 184 contactos
son memorias no volátiles, el fabricante Toshiba Memorias USB
indica que su durabilidad tiene un límite: Se podrá leer y escribir el 7.3. Memorias DDR2 DRAM (Double Data Rate DRAM versión 2)
contenido de toda la memoria una vez por día durante 27 años. Estas memorias poseen las siguientes características:
Tener cuidado que si se hace esta operación 27 veces por día en • Usadas por primera vez en 1970
lugar de una, la memoria USB tiene garantizado su uso solo por un • Trabajan con 1,8V
año! • Trabajan con pipelines o buffer interno de 4 bits (buffer de
pre-búsqueda) que permite almacenar los datos de 16 direcciones
7. TIPOSDEMEMORIA: SDRAM, DDR de memoria
7.1. Memorias SDRAM (Synchronous Dynamic Random Access contiguas.
Memory)
• Velocidades de transferencia desde 533 Mhz hasta 1 Ghz
Estas memorias DRAM se las puede acceder por bloques de datos,
• DIMM de 240 contactos
es decir, cuando se solicita un dato (por ejemplo 1 byte) de una
7.4. Memorias DDR3 DRAM (Double Data Rate DRAM versión 3)
dirección de memoria para ser leída, la memoria SDRAM dispone de
Estas memorias poseen las siguientes características:
un bloque completo (por ejemplo 8 bytes) compuesto por el
• Usadas por primera vez en 2010
dato solicitado y otros más. Este bloque puede leerse o escribirse en
• Trabajan con 1,5V
la modalidad de ráfaga o burst. Para ello se debe trabajar en forma
• Trabajan con pipelines o buffer interno de 8 bits
sincronizada con la memoria para estas transferencias en modo de
ráfaga (de allí la “S” de Synchronous). • Velocidades de transferencia desde 1,6 Ghz hasta 2 Ghz
Si queremos escribir una ráfaga de datos en una SDRAM, tendremos • DIMM de 240 contactos
que: 7.5. Memorias DDR4 DRAM (Double Data Rate DRAM versión 4)
• Indicar la cantidad de palabras a escribir Estas memorias poseen las siguientes características:
• Indicar la dirección de memoria de inicio de la escritura • Usadas por primera vez en 2014
• Transferir los datos uno detrás del otro sin necesidad de • Trabajan con 1,05V
indicar a qué dirección va cada • Trabajan con pipelines o buffer interno de 8 bits
uno de ellos (posee un incrementador de direcciones interno) • Velocidades de transferencia desde 2,13 Mhz hasta 4,26
Estas memorias eran muy frecuentes el Computadores Personales Ghz
de los años ’90. • DIMM de 288 contactos
7.2. Memorias DDR DRAM (Double Data Rate DRAM) 8. LATENCIAYANCHODEBANDA - Latencia de una memoria
Estas memorias son fabricadas con la tecnología SDRAM pero tiene Es la suma de todos los tiempos que se tardan para accederla. Aquí
una característica particular. Las memorias SDRAM completan sus denotamos algunos tiempos característicos de todas las memorias:
operaciones de lectura y escritura en el flanco ascendente del CLK
(es decir, si el reloj hace “tic” – “tac”, hace sus tareas en los “tics” • Access Time (Tiempo de Acceso) = Desde que se realiza un
del reloj). pedido de lectura hasta que el mismo queda satisfecho
Las memorias DDR realizan operaciones tanto en el flanco • Cycle Time (Tiempo de Ciclo) = Desde que se realiza un
ascendente como en el descendente del CLK (tanto en el “tic” como pedido hasta que se puede realizar el siguiente.
en el “tac”). Esto duplica la tasa de • Write Time (Tiempo de Escritura) = Al escribir un dato,
transferencia de información directamente. tanto el dato y la dirección donde se escribirá deben estar
presentes antes que llegue la señal de escritura (Setup
Time) y deben mantenerse luego que se retire la señal de
escritura (Hold Time)
“Miss” o “Fallo”. En caso de un hit, el contenido de la posición
Si la memoria tiene varios bancos de chips dispuestos cada uno de buscada estará disponible rápidamente. En el caso del Miss, la
ellos en filas y columnas dentro de un “tablero” y, a su vez tiene circuitería adicional buscará la dirección requerida en la MP y
múltiples tableros dispuestos en forma tridimensional, existirán copiará su contenido en la memoria Caché (junto con otras
varias latencias como ser de acceso por columna de chips en un direcciones más). Esta circuitería que hemos mencionado estará
tablero, por fila de chips en un tablero, para activar un tablero y representada en la UGM o Unidad de Gestión de Memoria (MMU –
desactivarlo. Memory Management Unit) que veremos más adelante. En forma
general, la UCP solicitará a la UGM acceder a una dirección de MP y
En las memorias modernas, los chips de memoria o módulos están ésta se encargará de devolverle el dato de donde lo obtenga más
dispuestos en forma de matriz, colocándose cada módulo ne una fila rápido.
y columna formando un tablero de módulos. La UGM al recibir un pedido de la UCP dispara la realización de dos
Pero no solo hay un tablero en. una memoria moderna, habrá más tareas simultáneas: a) buscar la dirección en Caché y b) preparar una
de uno dispuestos en forma tridimensional: lectura de un bloque de direcciones de MP que contiene la dirección
requerida. Si detecta un Hit, se desestima el ciclo de lectura en MP.
En estas memorias se incorpora algunas latencias más: Si hay Miss, se completa el ciclo de lectura habiendo adelantado
• CAS = Tiempo que se tarda la memoria en elegir una tiempo lanzándolo de antemano.
columna de un tablero 2. ORGANIZACIÓN DE LA MEMORIA CACHÉ
• RAS = Tiempo que se tarda la memoria en elegir una fila de Existirán varios métodos para organizar cómo se copian los bloques
un tablero nuevos de MP en caché y como se liberan boques existentes en
• ACTIVE: Tiempo que tarda la memoria en activar un tablero caché para que otros nuevos ocupen ese espacio.
• PRECHARGE: indica el tiempo que tarda la memoria en Encontraremos 3 escenarios en la organización de la memoria caché
desactivar un tablero también llamados funciones de correspondencia. Estos son
• Asociativo, Mapeo Directo y Asociativo de N vías o de conjuntos.
8.2. Ancho de banda de una memoria Para establecer estos mecanismos diremos:
Es la máxima cantidad de datos que el procesador puede leer o • Nuestra UCP posee “m” líneas o bits en el bus de
escribir en la memoria por unidad de tiempo, también conocida direcciones, con lo cual es capaz de direccionar 2m
como la velocidad o tasa de transferencia de la memoria. Se expresa posiciones distintas de la MP.
generalmente en bytes/seg. • Dividiremos la MP en bloques de longitud fija de “b”
palabras.
MEMORIA VIRTUAL - MEMORIACACHÉ - 1.1. Definición • La MP poseerá una cantidad de bloques q = 2m / b
El sistema UCPÛ MP presenta un cuello de botella en lo que a • Todos los valores que se adopten serán potencias de 2
velocidad de transferencia de datos se refiere: la memoria principal
es mucho más lenta que el procesador. Tomaremos como ejemplo:
Por esto, el concepto de la memoria caché se basa en colocar una • m = 12 bits – desde 000h hasta FFFh
pequeña cantidad de memoria de alta velocidad entre la UCP y la • b = 4 palabras
MP, cercana al procesador, cuyo propósito es mantener en ella una • q = 212 / 4 = 4.096 / 4 = 1.024 bloques
copia de pequeñas porciones de MP que están siendo usadas por la • Cada palabra es de 1 byte = 8 bits
UCP. Nuestra memoria Caché será de:
1.2. Principio de funcionamiento • 8 renglones, posiciones, filas o líneas
Existe una propiedad llamada de localidad de referencia o localidad
referencial que va a ser la clave para la aplicación del concepto de 2.1. Organización Asociativa
memoria Caché. Esta propiedad se ha demostrado empíricamente y
manifiesta que Esta organización define que cualquier bloque de la MP puede
• un programa que ha accedido recientemente a ubicarse en cualquier renglón o posición de la memoria Caché. Sea
determinadas palabras de la MP, con altísima probabilidad un programa a ejecutar que ha sido cargado en la MP en las
las va a volver a acceder en un futuro inmediato. direcciones 35 a 42, o sea desde la 023h hasta la 02Ah. La UGM
• un programa que ha accedido recientemente a deberá calcular en qué bloque está la dirección 35.
determinadas palabras de la MP, con altísima probabilidad
va a acceder a las próximas palabras. Para ello efectuará
Es decir, una y otra vez la UCP va a acceder las mismas posiciones de • Dirección inicial requerida / b = 35 / 4 = 8 y resto 3
memoria y todas ellas estarán ubicadas en forma contigua. Se dice
que un programa ejecuta el 90% de su tiempo el 10% de sus Es decir que la primera dirección estará ubicada en el bloque 8 pero
instrucciones. desplazada 3 posiciones desde el principio del bloque.
En base a esto, tener esa porción de MP que tanto se accede una y La dirección final estará ubicada en:
otra vez dentro de una memoria rápida y cercana a la UCP, resultará
altísimamente eficiente. Se “cachearán” bloques de memoria de • Dirección final requerida / b = 42 / 4 = 10 y resto 2
varias direcciones contiguas”.
En la figura podemos ver el programa ubicado en MP, resaltada su
Cuando la UCP requiere acceder a una dirección de memoria “X”, primera y última instrucción
existirá circuitería adicional que buscará si esa dirección junto con su junto con el byte de contenido de cada dirección que ocupa el
contenido está en la memoria Caché. De ser así, estaremos en programa (en Hexadecimal).
presencia de un “Hit” o “Acierto”. En caso de que no esté, será un La correspondencia asociativa organiza la memoria en 3 columnas:
• Validez: de 1 bit. Indicará si el contenido de ese bloque Para obtener la etiqueta, tendremos que hacer una cuenta más que
fue alterado en caché pero no fue sincronizado o en el caso asociativo. Este será:
modificado en MP aún Para la dirección inicial 35, será:
• Bloque: Número de bloque de MP que está en caché • Dirección inicial requerida / b = 35 / 4 = 8 y resto 3
• Valor: las 4 palabras del bloque que está en caché • Número de bloque / cantidad de renglones de caché = 8
Se muestra con “haches” valores en hexa que y con “b” valores de 1 / 8 = 1 y resto 0
bit que no son de interés aún. A medida que se vayan utilizando las Esto significa que el bloque 8 estará en el renglón de caché 0 y la
posiciones de caché se irán completando con los valores etiqueta es 1 (marcado a continuación).
correspondientes. Nótese las posiciones 00, 01, 10 y 11 para las Veremos con los circuitos detallados que en este caso no
columnas que se encuentran a una distancia de 0, 1, 2 y 3 palabras hace falta buscar el bloque en caché.
del principio del bloque. En número de renglón se obtiene directamente y al
La UCP iniciará el pedido de acceso a la dirección 35 = 023h cuyo comparar las etiquetas se determina si hay Hit o Miss.
bloque es el 8. La circuitería de la UGM recorrerá los 8 renglones de
la caché buscando si el contenido de la columna “BLOQUE” es = 2.3. Asociativo por conjuntos o de N vías
008h. Como recién se inicia el sistema, dará un Miss. Es una solución de compromiso entre ambas estrategias. Toma lo
El bloque 8 de MP será copiado en la caché en una ráfaga. mejor de ambas para dar una mejor proporción de aciertos.
Quedando de la siguiente manera: Básicamente consiste en definir tamaño de bloques de MP de igual
Como el desplazamiento estaba dado por el resto del cálculo del cantidad de palabras que cada paquete de direcciones o vía de
número de bloque, en este caso era 3. Se el dato solicitado por la memoria caché. De esa manera cada dirección relativa del bloque va
UCP es el 40h. a acomodarse en el mismo número de renglón de una vía. Lo que se
Satisfecha la UCP con el dato, ahora desea leer la posición 35 de MP denomina “conjunto” es a la unión de todos los renglones iguales de
que solicita a la UGM. Esta posición estará en: caché que están en cada vía.
• Dirección requerida / b = 36 / 4 = 9 y resto 0 à Bloque 9
desplazamiento 0 Es decir, la dirección 0 del bloque 0 puede ir en el renglón 0 de
Buscando en caché, la UGM recorre los 8 renglones evaluando si el cualquiera de las vías. Entonces, con mi dirección absoluta puedo
bloque = 009 sin éxito: es determinar cuál es la dirección relativa en el bloque a la que
un Miss con lo cual se lee el bloque 9 de MP y se lo coloca en pertenece.
cualquier renglón de caché. Con esa dirección relativa voy a elegir el renglón de las vías de caché
Luego continuará con la 37 en la que ya no habrá Miss, sino Hit, no (en forma directa como el mapeo directo) y con el número de
siendo necesaria la lectura en MP. bloque tendría que buscar en que vía lo guardé, para ello uso una
Lo mismo ocurrirá con las direcciones 38 y 39 entregando los datos memoria asociativa.
00h y B8h respectivamente.
El circuito real que divide, busca, compara y entrega el dato es el 3. POLÍTICAS DE ESCRITURA EN RAM
siguiente. Se ejemplifica para la dirección 025h. Todas las acciones de escritura en una posición de memoria
Si en lugar de buscar recorriendo todas las filas de la caché, principal que se encuentra alojada en memoria caché, siempre se
colocamos una memoria asociativa que guarda “Bloque buscado” -> realizará en caché para mantener el objetivo de
“Renglón de caché”, cuando le pidamos a la memoria que nos diga si utilizar esta memoria como primera fuente de información rápida y
el bloque buscado ya está guardado en ella, si lo está, nos dirá en actualizada.
qué renglón en forma directa. Sin embargo, al modificarse una posición de memoria principal,
Quedando un circuito más encontraremos dos alternativas posibles para no perder la
reducido y eficiente. consistencia MP ßà Caché. Estas son escritura directa y
retrograbado.
2. Mapeo Directo
Esta organización define que un bloque de la MP puede ubicarse en 3.1. Escritura directa
un único renglón o posición de la memoria caché. En esta estrategia también llamada write-trough, si se modifica una
La correspondencia o mapeo directo organiza la memoria en 3 posición de memoria en caché, simultáneamente se modifica su
columnas: correspondiente valor en la Memoria Principal. Esto traerá como
• Validez: igual que en el método asociativo ventaja que la Memoria Principal y la Memoria Cache siempre
• Etiqueta: Resuelve cuál de todos los posibles bloques estarán sincronizadas y los datos de un bloque de Memoria Principal
ocupa cada renglón serán idénticos a ese mismo bloque alojado en caché.
• Valor: igual que en el método asociativo Este método es beneficioso para aplicaciones de lectura intensiva ya
que al ser una aplicación de este tipo, solo contadas veces se
En nuestro ejemplo de 1.024 bloques posibles de MP y 8 renglones escribirá o alterará una posición de memoria. Cabe señalar que al
o filas de caché, el mapeo directo propone lo siguiente: hacer esta modificación se tardará el tiempo que demora escribir en
Como en cada renglón de caché solo 1 bloque puede estar a la vez, la Memoria Principal, sin poder aprovechar el uso de caché. No se
por ejemplo, en el renglón 4 ¿Cómo podré saber si está alojado el utiliza el bit de validación en esta estrategia.
bloque 4 o el 12 o el 20 o el 1.020? 3.2. Retrograbado
La etiqueta resuelve esta necesidad. Este proceso de sincronización MP ßà Caché también llamado write-
¡Esto es, si en el renglón 3 está la etiqueta 4 significa que los valores back se basa en que toda escritura de pociones de MP que están en
que contiene son del bloque 35! (sombreado). caché, se haga únicamente en caché. De esta manera hay una falta
de sincronización de bloques de MP residentes en caché con sus
respectivos datos en MP. Para tener en cuenta qué bloques han sido
alterados en caché (y aún no en MP), se utiliza el ya visto bit de física de nuestros chips de MP? ¿Podremos copiar en MP una parte
validación o también llamado dirty bit (bit de suciedad). Un bloque de esa gran memoria para trabajarla?
residente en Caché diremos que está “sucio” si su contenido difiere Este concepto es el de la Memoria Virtual (MV), espacio de memoria
del contenido del mismo bloque existente en MP. mucho mayor que la capacidad de direccionamiento de memoria
La política de retrograbado consiste en sincronizar los bloques física del procesador. Esta memoria o espacio de memoria reside en
“sucios” en el momento en que se los necesite desalojar de caché los medios de almacenamiento secundario como los discos rígidos.
para que ingrese un nuevo bloque solicitado. Cuando esta situación Ahora entonces, tendremos que administrar la memoria virtual
ocurre, la existencia de un “1” en el Bit de Validación indicará que dividiéndola en partes que viajarán a ser copiadas en la MP. Estas
antes de desalojar el bloque de caché, hay que hacer una escritura partes se denominan páginas de la MV.
del bloque de MP con el contenido del bloque que está en caché
dejando así ambos espacios de memoria sincronizados. 6. CONCEPTO DE SEGMENTACIÓN Y PAGINACIÓN
Existen varias políticas de desalojo de bloques de caché para el
ingreso de nuevos, entre las que podemos citar, entre otros: Típicamente un Sistema Operativo que trabaja con MV va a asignar a
• FIFO – First-In-First-Out = El primer bloque que ingresó a cache cada programa a ejecutar un espacio de esa memoria virtual. Ese
será en primero que desalojaré si no tengo más espacio. Se espacio contiguo se denomina SEGMENTO. Ese segmento contendrá
necesitará información adicional en los bloques de caché que un número entero de páginas, pudiendo desperdiciarse cierta
permita detectar el primero ingresado de todos los existentes en cantidad de memoria de la última página. Entonces ese segmento se
cada instante. dividirá en páginas que se copiarán en MP.
• LRU – Least-Recently-Used = Se desalojará el “menos usado
recientemente”. Para determinar cuál es, se deberán contabilizar En este punto, el sistema operativo contará con un espacio de
para cada bloque las veces que ha sido accedido y cuál fue la fecha- memoria principal mucho mayor que lo que existe en los chips de
hora (timestamp) del último acceso. memoria RAM del ordenador. Este espacio está definido en el disco
• LFU – Least-Frequently-Used = Se desaloja el bloque que tiene rígido. Cada posición o dirección de memoria requerida deberá
más tiempo sin usarse. Podrán catalogarse como “usado” un bloque ubicarse en la MV, identificar el segmento y su página. Se buscará
ya sea si fue leído y/o alterado. dicha página en MP y si no existe nos encontraremos con una falla
• RANDOM – Aleatoria = Aleatoriamente se elegirá cuál bloque de página o PAGE FAULT. En cambio si esa página de ese segmento
desalojar. está en MP, será un éxito o PAGE HIT.
Cuando se determina el bloque a desalojar en función de la política
de desalojo que se está utilizando y si la estrategia es de Para encontrar la dirección virtual en la MP se deberá realizar una
retrograbado, la MMU analizará el Bit de Validez y si es un “1” traducción que luego será guardada en tablas de páginas virtuales
actualizará la MP. administrada por el sistema operativo.
Si incorporamos luego lo visto con Memoria Caché, cada página real
4. NIVELES JERÁRQUICOS DE MEMORIA CACHÉ en MP será dividida en k bloques y esos bloques serán los que se
Extendiendo el concepto de colocar una porción de memoria copiarán y gestionarán en caché.
pequeña entre la MP y la UCP, podremos colocar otros cachés de En la gestión de segmentos paginados, el sistema operativo posee
cachés entre ellos. Estos diferentes cachés se los ubica en distintos una tabla de segmentos residente en la MP. Cada una de las
NIVELES. entradas de esta tabla de segmentos apuntará a una tabla de
4.1. Memoria caché de Nivel 1 (L1) páginas. En ella tendrá una entrada por cada página del segmento.
Es el más cercano a la UCP. En la actualidad este nivel consta de dos Estas tablas de segmento apuntarán a un Marco o porción de MP.
partes, un caché L1 de instrucciones otro caché L1 de datos. En Podemos esquematizar en forma general este conjunto de
otros módulos veremos la ventaja de esta decisión de dividir este traducciones desde la Dirección Virtual hasta la dirección física que
nivel de caché. En principio podemos decir que se asemejaría al se encuentra en la MP. Recordemos que si se trabaja con memoria
modelo de Harvard en la organización de este nivel, datos e chaché tendremos una traducción más que es de la dirección física
instrucciones en diferentes espacios físicos de memoria. al renglón de cache. Esta última traducción la realiza el hardware.
4.2. Memoria caché de Nivel 2 (L2) Podemos ver que en cada entrada de las tablas hay direcciones y
Otra cantidad distinta a la de L1 y aún mayor se colocará entre el L1 atributos. En forma general, estos atributos indicarán si la página
y la MP, es el caché L2. En este caso no estará dividida en dos partes está modificada o no, permisos de lectura y/o acceso, longitud del
como la L1 pero si, en procesadores multi-núcleo (o multi-core) segmento, etc.
puede ser dedicada o compartida.
4.3. Memoria caché de Nivel 3 (L3) 7. UNIDAD DE GESTIÓN DE MEMORIA (UGM)
En procesadores de múltiples núcleos poseen un nivel más de caché La Unidad de Gestión de Memoria UGM (o Memory Management
entre L2 y la MP. Este nivel es el L3 y en general es un nivel que Unit – MMU) es la encargada de gestionar todos los accesos a
comparten todos los L2 de los núcleos. memoria requeridos por el o los núcleos o procesadores.
En la figura se puede ver cómo se conectan los distintos niveles de Este importante componente, en algunos ordenadores se disponía
caché y como a través del puente norte (Northbirdge) se conectan fuera del procesador. En los ordenadores modernos, la MMU está
con la MP. dentro de la misma pastilla del procesador. Desarrolla las siguientes
5. MEMORIAVIRTUAL funciones que se detallan a continuación:
De la misma forma en que el concepto de memoria caché se centra
en contar con una porción de la MP dentro de una pequeña 7.1. Traducción de direcciones virtuales
memoria cercana al procesador para mejorar la performance del Utiliza una memoria asociativa que guarda las últimas “m”
sistema, podemos extender este concepto y ... ¿Podremos contar traducciones llamada TLB (Translation Lookaside Buffer) o también
con un espacio de memoria mucho más grande que la capacidad llamada Buffer de Traducciones Adelantadas. Busca en la TLB si la
página virtual fue traducida anteriormente. Puede ocurrir lo estará dada por la fórmula 2n , siendo n la cantidad de variables
siguiente: binarias. La tabla de verdad tendrá la siguiente forma:
• Page fault (Fallo de página): calcula el número de página
real a partir del número de página virtual en hardware.
Guarda esta traducción en la TLB
• Page hit (Éxito de página): obtiene el número de página
real o marco guardado
Con mantisa “f” tal que 0,1d ≤ f < 1d y “e” = exponente entero con
signo.
La notación exponencial normalizada para el sistema binario será:
• N=±f*2±e
• Con mantisa “f” tal que 0,1b ≤ f < 1b y “e” = exponente entero con
signo
Precisión Simple
Para representar un número binario en este formato se deberán
cumplir con las siguientes premisas:
• Obtener su representación normalizada
• N=±m*2±e
• Con1,0b ≤m<10b ye=exponenteentero
• Nótesequemesmayoroiguala1d ymenorque2d
• Debido a este cambio de normalización se gana un
orden de magnitud en la precisión sin el agregado
de bits: el primer 1 después de la coma está
implícito en la notación (gano un bit)
• El exponente deberá estar “sesgado” o desplazado
mediante el agregado de un sesgo = 2n-1-1, siendo n la
cantidad de bits del exponente
• Se le quita 1 al sesgo para cubrir situaciones especiales
• Se llamará mantisa a la parte fraccionaria del número
después del “1,”
• Se llamará exponente al exponente normalizado luego de
haberle sumado el sesgo
• El sesgo para Precisión Simple es 2n-1-1 = 28-1-1 = 27-1 =
128 – 1 = 127
• Se llamará signo de la mantisa al signo del número (no del
exponente)
• El “máscara” o formato será
• b0 a b22 (23 bits) para la mantisa
• b23 a b30 (8 bits) para el exponente o b31 para el
signo de la mantisa
• De esta forma quedará confirmado un número
binario de 32 bits = 4 bytes = cifras hexadecimales
CÓDIGOS
Un código es un conjunto de reglas prestablecidas para la
transmisión de información que deben ser respetadas tanto por el
emisor como por el receptor, de otra forma, no se habrá
establecido la transferencia de información o comunicación entre
ambos puntos.
En computación hay muchos códigos estándares impuestos por código es válido y de paridad par,
fabricantes de hardware o adoptados por el mundo para el no podremos detectar que hubo
intercambio de información. Estos son algunos de ellos. un error.
El código de paridad que
Código ASCII (American Standard Code for Information Intercharge) incorpora un solo bit de paridad
Desarrollado en los Estados Unidos de Norteamérica. Inicialmente sirve para detectar el error de
cubría los más de 90 símbolos necesarios para presentar en pantalla hasta 1 bit es una transmisión,
el alfabeto, los números, signos de puntuación y matemáticos, nada más. Pero esto tiene un
paréntesis, etc. Este código tenía 7 bits (27 = 128 combinaciones costo: antes transmitía 4 bits por
distintas). Se le agregó un cero a la izquierda para que el código combinación, ahora 5. Esto
fuera de 8 bits = 1 byte; con lo cual las combinaciones posibles de redunda en un 25% de overhead
este “ASCII Standard” iban desde 00000000b hasta 0111111b o sea ya que para transmitir la misma
00h a 7Fh. información necesito (a igual
velocidad de transmisión) un
25% más de tiempo.
Ese overhead vale se repaga ya que los errores de 1 bit son muy
frecuentes en la transmisión de datos, pero dos bits
simultáneamente no son frecuentes.
ÁLGEBRA DE BOOLE
George Boole en el siglo XIX estableció una serie de postulados en
donde intentando representar la forma humana de pensamiento
lógico. A estos postulados se los denominó Álgebra de Boole. Estos
postulados son la base de los circuitos digitales que a su vez son la
base de los sistemas computaciones con ordenadores. Estos
postulados se basan en la teoría de conjunto que no abordaremos
en este documento.
Variables Booleanas
Las variables utilizadas en el álgebra de Boole o variables booleanas
son variables binarias, es decir, solo podrán tomar los valores “0” y
“1”.
Tabla de verdad
Construir la tabla de verdad (o tabla de la verdad) de una función
Booleana es desarrollar todas las combinaciones posibles que
existen con sus variables Booleanas de entrada y, para cada una de
dichas combinaciones, indicar el valor de la (o las) función (o salida si
es un circuito). Sean A y B Booleanas, podremos obtener 4
combinaciones posibles que será 00, 01, 10 y 11. La cantidad de
combinaciones posibles estará dada por la fórmula 2n, siendo n la
cantidad de variables binarias.
SUMADOR DE 4 BITS:
ACARREO:
• Bandera de acarreo: CF o carry flag, indicará con un “1” su existió
un acarreo en el MSBit que no se puede almacenar por superarse los
8 bits. Si es “0”, no hubo acarreo.
• Bandera de sobreflujo: OF u overflow flag: indicará con un “1” si el
Ahora bien, si queremos hacer un sumador de n bits, tendremos que resultado cae fuera de rango para números con signo. Las
usar n de estas celdas, una para cada columna de las cifras binarias. situaciones en que siempre habrá sobreflujo en una suma es cuando
El problema de esta celda es que suma un bit de A y uno de B pero si sumo dos positivos y su resultado es negativo o cuando sumo dos
me llevaba “1” de la columna anterior, no tengo como sumarlo. De negativos y su resultado es positivo.
allí, debemos completar esta celda convirtiéndola en una celda • Bandera de signo: SF o sign flag: indicará con un “1” que el
sumadora completa, que considera el carry de la etapa anterior, resultado tiene el bit de signo en 1, es decir, es negativo. Indicará
quedándonos lo siguiente: con un “0” que es positivo. Siempre dentro de los números con
signo.
En este caso, si consideramos números enteros binarios sin signo, Si el digito menos significativo de una combinación binaria es “-n”, la
estamos sumando 75 + 65 que debiera resultar 140. Este resultado distancia entre dos combinaciones binarias es 2 -n
no supera el rango de representación que es 255 con lo cual, el Con una cantidad fija de bits, si deseo aumentar el tango de representación
resultado es 140 y no existe sobreflujo. La UAL nos indica que no disminuiré la precision
existe acarreo con el CF = 0, lo que indicará al programador que, si él
está trabajando con enteros sin signo, el resultado es correcto. Rango de representacion de CA2: [- 2 (n-1); + (2(n-1) - 1)] es el mismo que
el de exceso 2 n-1
Si el sistema aplicado por el programador fuera enteros con signo,
4bits = 1 nibble
estaríamos sumando +75 + 65 lo que resulta +140, resultado que
cae fuera del rango de representación con 8 bits de [- 128,…,+127]. A las memorias EEPROM se las puede borrar y grabar de forma eléctrica
La UAL indica que hay sobreflujo si consideramos números con signo
y la bandera OF = 1. Las memorias DRAM son más lentas que las SRAM
La bandera de signo SF = 1 indica que el resultado es negativo, si lo
consideramos con signo. En memorias PROM cada celda consta de un diodo en serie con un fusible
que se quema al momento de grabarlas o programarlas
En este caso, si consideramos números enteros binarios sin signo, ordenador: unidad de entrada salida, cpu, memoria ppal buses
estamos sumando 11 + 65 que debiera resultar 76. Este resultado
estructura CPU: Unidad aritmetico logica, registros, unidad de control,
no supera el rango de representación que es 255 con lo cual el sistema de interconexion
resultado es 76 y no existe sobreflujo. La UAL nos indica que no
existe acarreo con el CF = 0, el resultado es correcto. en una operacion binaria de cifras con signo hay overflow si hay acarreo