Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de Computadors PDF
Estructura de Computadors PDF
1. Introducción
*CPU: Es una maquina secuencial síncrona que solo sabe ejecutar instrucciones.
*Buses: Se encargan de intercambiar información digital entre los diferentes componentes del
computador.
-Bus de direcciones (A): Transmite la dirección de memoria a la que hay que acceder.
-Bus de datos (IO): Transmite la información desde/hacia la dirección requerida.
-Bus de control: Indica en qué dirección se transmite la información.
2. Memoria principal
Es el elemento del ordenador en el que se alojan los datos y programas en el momento de su
ejecución. Sus características fundamentales son:
*Capacidad: Cantidad de información que puede almacenar la memoria. Esta limitada por el
número de líneas de dirección que tiene el microprocesador. Este rango se llama espacio de
direccionamiento del procesador (cantidad de posiciones distintas).
*Latencia: Tiempo que pasa desde que se pide una operación sobre la memoria hasta que se
termina (depende de la tecnología).
Internamente cada memoria está dividida en una serie de celdas, cada una de ellas contiene
un dato binario. Podemos clasificar los circuitos de memoria por las siguientes características:
*Permanencia de los datos: Indica en qué condiciones los datos permanecen sin desaparecer.
-Volátiles: La información se pierde cuando se elimina la alimentación.
-No volátiles: La información una vez almacenada permanece sin deteriorarse.
*Borrables (programables): Puede reescribirse.
*No borrables (no programables): No pueden reescribirse.
*SRAM (Static Randmo Access Memory): Es la tecnología de circuitos más rápida pero no se
pueden integrar muchos bits, esto es debido a que cada bit se almacena en un biestable lo que
hace que el coste sea alto. El tiempo de acceso es igual al tiempo de ciclo.
*EPROM: Permite borrar el contenido para volver a programarlo exponiendo el chip a radiación
ultravioleta.
*EEPROM: El borrado se hacía de forma eléctrica, por lo que no había que quitar el chip. Permite
la reprogramación posición a posición. Coste alto.
*Flash: Es como la EEPROM, pero se borra por bloques. El borrado va degradando el circuito.
Las escrituras son lentas.
El tamaño de palabra es igual a una potencia de 2, esto es, 1 byte, 2 bytes, 4 bytes…
Tanto en los sistemas con 16 como con 32 bits está el problema de que no siempre el
microprocesador tendrá que acceder a datos con un tamaño de palabra igual. Es por eso que las
señales de control deben indicar la dirección y el tamaño del dato.
BHE A0 Acceso
0 0 16 bits (S0 Y S1)
0 1 8 bits (S0)
1 0 8 bits (S1)
Habrá 4 señales de habilitación, BE0, BE1, BE2 y BE3. Si una señal está a 0, significa que esa
sección es válida. Al ser todas las direcciones múltiples de cuatro los dos últimos bits, A1A0,
serian 0.
*Litte-endian: Sitúa el byte menos significativo en la posición más baja (B0, B1, B2, B3)
*Big-endian: Sitúa el byte más significativo en la posición mas alta (B3, B2, B1, B0)
*Alineación: Se dice que un dato o instrucción están alineados cuando comienzan en una
posición múltiplo de su tamaño. La alineación es importante porque si un dato no está alineado,
serán necesarios más de un acceso a memoria para acceder.
3. Jerarquía de memoria
Los tres requisitos que se imponen a la hora de implementar el sistema de memoria son: Tiempo
de acceso pequeño, tamaño grande y coste reducido.
Principio de localidad
Este principio existe porque los programas están formados por estructuras tipo bucle y
secuencial. Hay dos tipos de localidad:
*Temporal: Si se accede a una determinada posición de memoria, es muy posible que se vuelva
a acceder a esta.
*Espacial: Si se accede a una posición de memoria, es muy posible que se acceda después a
posiciones próximas a esta.
Diseño jerárquico
La solución para crear un sistema de memoria es no contar con un solo componente sino
emplear una jerarquía de memoria.
Cuando se realiza un acceso al procesador primero buscara en el nivel superior y si no está ira a
los inferiores. La copia de datos e instrucciones solo puede hacerse entre niveles consecutivos.
Cuando se copia un dato a los niveles superiores también se copian los adyacentes, de esta
forma, usando el principio de localidad sabemos que cuando el procesador necesite un dato,
muy probablemente lo encontrara en la parte superior.
4. Memoria cache
La memoria cache es el nivel superior del sistema de memoria jerárquico. Cuando la CPU intente
leer una palabra de memoria comprueba si el dato está en cache, si esta lo agrega a la CPU, si
no, se copia la porción de la memoria principal que contiene la palabra buscada en la memoria
cache.
*Bloque: Unidad mínima de información que se intercambian entre memoria principal y cache.
Estructura de la cache
Los datos de la cache se agrupan en líneas de cache. En cada una d estas líneas se puede
almacenar un bloque. El número total de líneas de cache es M. El número total de bloques en la
memoria principal se denomina N. El número de bytes contenidos en un bloque se denomina L.
En cache para identificar los bloques se almacena un identificador (etiqueta) además de un bit
de valido.
Terminología
Parámetros
*Tamaño de la cache
*Política de escrituras: Cuando el procesador escribe un valor en cache existe una inconsistencia
entre el valor en cache y en memoria principal.
-Escritura directa: Se escribe tanto en la cache como en la Memoria Principal, para
mantener la ventaja de tener la memoria cache en las escrituras se utiliza un buffer de
escrituras.
-Escritura diferida: Solo se actualiza el dato en cache y cada línea cache además del bit
de valido incluye un bit de modificado, que indica si el bloque ha sido actualizado. Los
datos se cambiaran en memoria principal al sustituir.
Cada bloque de Memoria Principal tiene asignada una línea de cache. Es sencillo y rápido porque
solo debe hacer una comparación para saber si hay fallo, pero hay muchos fallos por conflicto.
Es por eso que en la práctica no se utiliza.
Cálculos
𝐷𝑖𝑟𝑒𝑐𝑐𝑖𝑜𝑛 𝑑𝑒 𝑀𝑒𝑚𝑜𝑟𝑖𝑎 (𝐷𝑀 )
Bloque (B) = 𝑇𝑎𝑚𝑎ñ𝑜 𝑏𝑙𝑜𝑞𝑢𝑒 (𝐿)
𝐵𝑙𝑜𝑞𝑢𝑒(𝐵)
Índice = resto (𝐿𝑖𝑛𝑒𝑎𝑠 𝑑𝑒 𝑐𝑎𝑐ℎ𝑒(𝑀))
𝐵𝑙𝑜𝑞𝑢𝑒(𝐵)
Etiqueta = 𝐿𝑖𝑛𝑒𝑎𝑠 𝑑𝑒 𝑐𝑎𝑐ℎ𝑒(𝑀)
Mapeado totalmente asociativo
Cada bloque puede copiarse en cualquier línea. Las ventajas y desventajas son las contrarias al
directo.
𝐷𝑖𝑟𝑒𝑐𝑐𝑖𝑜𝑛 𝑑𝑒 𝑚𝑒𝑚𝑜𝑟𝑖𝑎(𝐷𝑀 )
𝐸𝑡𝑖𝑞𝑢𝑒𝑡𝑎 = 𝐵𝑙𝑜𝑞𝑢𝑒 =
𝑇𝑎𝑚𝑎ñ𝑜 𝑑𝑒𝑙 𝑏𝑙𝑜𝑞𝑢𝑒(𝐿)
Los bloques se agrupan en varios conjuntos. La ventaja es que no será necesario verificar todo
el directorio de la cache.
Cálculos
Líneas de cache (M) = Conjuntos (J) * Número de líneas por conjunto (K)
𝐷𝑖𝑟𝑒𝑐𝑐𝑖𝑜𝑛 𝑑𝑒 𝑀𝑒𝑚𝑜𝑟𝑖𝑎 (𝐷𝑀 )
Bloque (B) = 𝑇𝑎𝑚𝑎ñ𝑜 𝑏𝑙𝑜𝑞𝑢𝑒 (𝐿)
𝐵𝑙𝑜𝑞𝑢𝑒(𝐵)
Conjunto (C) = resto ( )
𝑁𝑢𝑚𝑒𝑟𝑜 𝑑𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜𝑠(𝐽)
𝐵𝑙𝑜𝑞𝑢𝑒(𝐵)
Etiqueta = 𝑁𝑢𝑚𝑒𝑟𝑜 𝑑𝑒 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜𝑠(𝐽)
Algoritmos de remplazo
Esta ha sido la forma clásica de aumentar el rendimiento de la cache, los fallos que presenta la
cache son:
-Forzosos: La primera vez que se accede a un bloque no puede estar en cache, por lo
que el fallo es imposible de evitar.
-Capacidad: La cache no puede contener todos los bloques que forman un programa.
-Conflicto: Hay que eliminar un bloque de cache aun habiendo libres.
*Aumento del tamaño del bloque: Así aprovecharíamos más la localidad espacial, pero si el
tamaño del bloque es demasiado grande ya no se accederá a todas las posiciones, con lo que
desaprovecharíamos espacio de cache en el que podrían almacenarse otros bloques.
*Aumento del tamaño de la cache: Esto disminuiría la tasa de fallos, pero incrementaría el coste
y la complejidad de la cache, lo que puede producir un mayor tiempo de acceso.
*Incremento de la asociatividad: Esto sería hacer conjuntos de más tamaño, esto aumentaría
al mismo tiempo la complejidad de la cache.
*Lecturas: Normalmente la CPU solo necesita una palabra del bloque en un instante
determinado, existen dos estrategias:
-Rearranque anticipado: Tan pronto como la palabra llega a cache se envía a la CPU.
-Búsqueda fuera de orden: Se pide primero la palabra a la memoria principal y después
el bloque.
*Escrituras
-Write-through (escritura directa): Se utiliza un buffer de escrituras donde se copian
todos los datos que van a ser modificados.
-Write-back (escritura diferida): Se utiliza un buffer de escritura donde se copian los
bloques cuando son sustituidos.
*Añadir varios niveles de Cache: Donde el primer nivel se centra en minimizar el tiempo y un
ciclo de reloj menor mientras el segundo se centra en reducir la tasa de fallos.
5. Diseño del sistema de memoria principal
Especificaciones:
*Ancho de palabra
-Completa:
̅̅̅̅̅ ∗ 𝐴18
CSF0 = 𝐴19 ̅̅̅̅̅
̅̅̅̅̅
CSF0 = 𝐴19 ∗ 𝐴18
-Incompleta
̅̅̅̅̅
CSF0 = 𝐴18
CSF0 = 𝐴18
*Overlay: Técnica que realizara el transvase de información de forma autónoma sin que el
programador tenga que preocuparse
La memoria principal se organiza en marcos de página, que son del mismo tamaño que las
páginas de memoria virtual. Estas páginas son de un tamaño fijo, igual que los bloques de cache,
pero de mayor tamaño. Cuando un programa va a ser ejecutado sus páginas se cargan a los
marcos de página, por cada página hay en la tabla de páginas su correspondiente marco.