Aprendizaje de interfaz de hardware y software de composición y diseño de computadoras 1

operaciones aritméticas por computadora

Subpalabra paralela (navegación aproximada) pdf de aproximadamente 170 páginas

La suma en coma flotante no es asociativa:

La estrategia de ejecución paralela que se aplica a los tipos de datos enteros no se aplica a los tipos de datos de punto flotante por las razones mencionadas anteriormente ↑

procesador

linea de ensamblaje

Pipelining es una tecnología de implementación que permite la ejecución superpuesta de múltiples instrucciones.

La canalización mejora el rendimiento al aumentar el rendimiento de las instrucciones en lugar de reducir el tiempo de ejecución de instrucciones individuales.

adelante o bypass

 Paralelismo entre instrucciones

La tecnología de canalización explota el paralelismo potencial entre instrucciones, lo que se denomina paralelismo a nivel de instrucción.

Hay dos formas principales de mejorar el paralelismo a nivel de instrucción:

Incrementar el número de etapas en el pipeline.  

Aumentar la cantidad de componentes funcionales dentro de la tubería para que se puedan emitir múltiples instrucciones por ciclo es una técnica llamada multiproblema.

Hay dos formas principales de implementar un procesador multiproblema:

El juicio sobre si la instrucción se emite o no se completa en el momento de la compilación, lo que se denomina emisión múltiple estática.

Si el hardware decide si se debe emitir una instrucción durante la ejecución dinámica, se denomina emisión múltiple dinámica.

Cambio de nombre de registro . El objetivo del cambio de nombre de registro es eliminar otros datos, dependencias entre instrucciones además de las dependencias de datos. Por ejemplo, ld x30,0(x20), add x31, x31,x21, sd x31, 8(x20), excepto que todos usan x31, estas instrucciones en realidad son independientes entre sí. Esta situación se llama anticorrelación o correlación de nombres.

Anticorrelación: también conocida como correlación de nombres, el orden causado por la reutilización forzada de nombres. Esta no es una verdadera correlación de datos entre instrucciones.

Procesador dinámico multitema

Emisores múltiples dinámicos también conocidos como procesadores superescalares

Canalización de programación dinámica: el hardware selecciona instrucciones para su posterior ejecución y reorganiza las instrucciones para evitar paradas en la canalización. En dicho procesador, la canalización se divide en tres partes principales: búsqueda de instrucciones, unidad de emisión, unidad multifunción y unidad de confirmación.

Aceleración: paralelismo a nivel de instrucción y multiplicación de matrices

almacenamiento jerárquico

Localidad temporal  Si se accede a un elemento de datos, es probable que se vuelva a acceder a él en un futuro próximo.

Localidad espacial:  si se accede a un elemento de datos, pronto también se podrá acceder a los elementos de datos adyacentes a su dirección.

Los datos de la capa más cercana al procesador son un subconjunto de los datos de la capa más alejada y todos los datos se almacenan en la capa más alejada.

La unidad más pequeña de intercambio de información entre dos capas adyacentes se llama bloque fila.

Manejar operaciones de escritura

Escribir o escribir mediante: Una estrategia de escritura. Las operaciones de escritura siempre actualizan la caché y el almacenamiento del siguiente nivel al mismo tiempo para garantizar la coherencia de los datos entre los dos.

Devoluciones de escritura: una estrategia de escritura. Al procesar una operación de escritura, solo se actualiza el valor del bloque de datos correspondiente en la caché. Cuando se reemplaza el bloque de datos, el bloque de datos actualizado se escribe en el siguiente nivel de almacenamiento.

Evaluación del rendimiento y mejora del caché.

Mapeo directo: un bloque de datos tiene solo una ubicación correspondiente en el caché

Totalmente asociativo: los bloques de datos se pueden almacenar en cualquier lugar de la caché. Para encontrar un bloque de datos determinado en la caché totalmente asociativa, se deben comparar todas las entradas.

Establecer caché asociativo: el número de ubicaciones donde se almacena cada bloque de datos en el caché tiene un valor fijo (al menos 2). Un caché asociativo establecido con n ubicaciones para cada bloque de datos se denomina caché asociativo establecido de n vías. En una caché asociativa de conjuntos de n vías, hay varios grupos, y cada grupo contiene n bloques de datos.

Buscar bloque de datos en caché

Jerarquía de memoria confiable

La mejor manera de aumentar la confiabilidad es la redundancia

Definición de fracaso:

Tres formas de mejorar MTTF:

Corrija el error de 1 bit y detecte el error de 2 bits Codificación Hamming

máquina virtual

El software que admite máquinas virtuales se denomina monitor de máquina virtual o hipervisor . La plataforma de hardware subyacente se denomina host y sus recursos son compartidos por las máquinas virtuales del cliente .

Un hipervisor proporciona una interfaz de software para el software del cliente, aísla el estado de cada cliente y debe protegerse del software del cliente, incluido el sistema operativo del cliente.

Requisitos cualitativos:

  • Excepto por comportamientos relacionados con el rendimiento o limitaciones de recursos fijos debido al uso compartido entre varias máquinas virtuales, el software del cliente debe ejecutarse en la máquina virtual como si estuviera en el hardware local.
  • El software cliente no puede cambiar directamente la asignación de recursos reales del sistema.

Para "virtualizar" el procesador, el VMM debe anular casi todo: acceso privilegiado, E/S, excepciones e interrupciones.

almacenamiento virtual

La memoria principal puede actuar como caché para el almacenamiento auxiliar que normalmente se implementa en discos. Esta tecnología se denomina almacenamiento virtual.

En el almacenamiento virtual, las direcciones se dividen en números de página virtuales y desplazamientos dentro de la página.

Como no podemos saber de antemano cuándo se reemplazará una página en la memoria, el sistema operativo generalmente crea espacio en la memoria flash o en el disco para todas las páginas cuando crea un proceso. Esta área de espacio se llama área de intercambio (el espacio en disco reservado para todo el espacio de direcciones virtuales del proceso) y en ese momento también crea una estructura de datos para registrar dónde se almacena cada página virtual en el disco.

Acelerar la traducción de direcciones: TLB

Tabla de bloques (TLB, caché utilizada para registrar información de mapeo de direcciones utilizadas recientemente, evitando así tener que acceder a la tabla de páginas cada vez)

Protección en almacenamiento virtual

La función más importante del almacenamiento virtual es permitir que múltiples procesos compartan una memoria principal y al mismo tiempo proporcionar protección de la memoria para estos procesos y el sistema operativo. El mecanismo de protección debe ser claro: varios procesos comparten la misma memoria principal, pero ya sea intencionalmente o no, un proceso malicioso no puede escribir en el espacio de direcciones de otro proceso de usuario o del sistema operativo.

Cambio de contexto: para permitir que un proceso diferente use el procesador, cambie el estado dentro del procesador y guarde el estado necesario cuando regrese el proceso actual.

Manejo de fallas de TLB y fallas de página

Una falla de TLB indica una de dos posibilidades:

  • La página está en la memoria, solo es necesario crear la entrada TLB que falta.
  • La página no está en la memoria y es necesario transferir el control al sistema operativo para manejar los errores de la página.

El manejo de fallas de TLB o de página requiere el uso de un mecanismo de excepción para finalizar el proceso activo, transferir el control al sistema operativo y luego reanudar la ejecución del proceso interrumpido.

Una vez que el sistema operativo conoce la dirección virtual que provocó el error de página, debe completar los siguientes tres pasos:

Resumir

El almacenamiento virtual es una jerarquía de almacenamiento de primer nivel para la gestión de la caché de datos entre la memoria principal y el almacenamiento secundario. El almacenamiento virtual permite que un único programa extienda su espacio de direcciones más allá de los límites de la memoria principal. El almacenamiento virtual admite compartir memoria entre múltiples procesos activos simultáneamente de manera protegida

Un marco general para jerarquías de almacenamiento.

donde se pueden colocar los bloques

Cómo encontrar bloques

En una jerarquía de almacenamiento, la elección entre mapeo directo, mapeo asociativo conjunto o mapeo totalmente asociativo depende del equilibrio entre el costo de la falla y el costo de la implementación de la asociatividad, incluido el tiempo y la sobrecarga de hardware adicional.

Qué bloque reemplazar cuando ocurre una falla de caché

  • Aleatorio: seleccione aleatoriamente bloques candidatos, posiblemente utilizando alguna implementación asistida por hardware
  • Menos utilizado recientemente (LRU): el bloque que se reemplaza es el bloque que no se ha utilizado durante más tiempo

Cómo implementar la operación de escritura:

  • Escritura directa: la información se escribe en bloques de la caché y en bloques inferiores en la jerarquía de almacenamiento (memoria principal de la caché).
  • Retorno de escritura: la información solo se escribe en el bloque en el caché. Un bloque modificado se escribe en niveles inferiores de la jerarquía sólo si se reemplaza

Ventajas de redactar declaraciones:

  • El procesador puede escribir palabras individuales a una velocidad que la caché, en lugar de la memoria, puede recibir.
  • Varias escrituras dentro de un bloque requieren solo una escritura en un nivel inferior en la jerarquía de almacenamiento
  • Al escribir un bloque, el sistema puede utilizar eficazmente la transmisión de gran ancho de banda escribiendo un bloque completo.

Ventajas de la escritura directa:

3C: un modelo intuitivo para comprender las jerarquías de almacenamiento

Controle un caché simple usando autómatas de estados finitos

Autómata de estados finitos: una función lógica secuencial que contiene un conjunto de entradas/salidas, una función de transición de estado (que asigna el estado actual y las entradas a un nuevo estado) y una función de salida (que asigna el estado actual y las entradas a una salida de predicado)

Función de siguiente estado: una función combinatoria que, dada una entrada y el estado actual, puede derivar el siguiente estado de un autómata de estados finitos.

Paralelismo y jerarquías de almacenamiento: coherencia de la caché

Enfoque básico para lograr la coherencia.

Supongo que te gusta

Origin blog.csdn.net/zaizai1007/article/details/132775168
Recomendado
Clasificación