11 La jerarquía de la memoria (jerarquía de la memoria)

存储器系统玮CPU存放指令和数据。再简单的模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每一个存储器位置。

sistema de memoria

  • Un sistema de memoria es una jerarquía de dispositivos de almacenamiento con diferentes capacidades, costos y tiempos de acceso.
  • Los registros de la CPU (Unidad Central de Procesamiento) contienen los datos más utilizados
  • Una memoria caché
    pequeña y rápida cerca de la CPU que sirve como área de búfer para datos e instrucciones almacenados en una memoria principal relativamente lenta.
  • La memoria principal almacena en caché los datos almacenados en discos más grandes y más lentos.
  • Los discos a menudo sirven como áreas de búfer para los datos almacenados en discos o cintas en otras máquinas conectadas por una red.
    Insertar descripción de la imagen aquí

Una jerarquía de memoria es un sistema informático en el que unidades de memoria de diferentes velocidades y capacidades se organizan en una serie de niveles, cada uno con sus propias características específicas de capacidad, velocidad y costo. La jerarquía de memoria generalmente incluye los siguientes niveles de abajo hacia arriba:
(1) Memoria auxiliar lenta pero de gran capacidad (como disco duro, disco óptico, memoria flash, etc.): gran capacidad, bajo costo, pero velocidad de acceso lenta.
(2) Memoria principal más rápida pero de menor capacidad (como DRAM): rápida pero de menor capacidad.
(3) Memoria caché más rápida pero más pequeña (como la memoria caché de la CPU): más rápida pero de menor capacidad.
Cada nivel de la jerarquía de memoria almacena una copia de los datos y las instrucciones utilizadas en el nivel inferior para un acceso más rápido. A través de jerarquías, los sistemas informáticos pueden maximizar los beneficios de diferentes unidades de memoria y al mismo tiempo minimizar el costo y la latencia de la memoria.

Disco duro
El disco duro es un importante dispositivo auxiliar de almacenamiento en la computadora, su función principal es almacenar información como el sistema operativo, aplicaciones, archivos de datos y otros archivos del sistema informático. En comparación con la memoria principal (RAM), el disco duro tiene una mayor capacidad de almacenamiento y un mayor tiempo de retención de datos. Puede guardar una gran cantidad de datos y mantener su estado de almacenamiento durante mucho tiempo, y los datos no se perderán incluso si la computadora está apagada.

El medio de almacenamiento dentro de un disco duro suele ser uno o más platos, cada uno cubierto con una capa de material magnético que se utiliza para almacenar datos binarios. Los discos duros leen y escriben datos a través de brazos mecánicos y cabezales de lectura y escritura. Estos componentes se pueden mover y colocar con precisión en el plato para acceder y manipular datos en diferentes ubicaciones.

Además de ser el dispositivo de almacenamiento principal de un sistema informático, los discos duros también se pueden utilizar para realizar copias de seguridad de datos importantes en caso de pérdida o corrupción de datos. Además, los discos duros también se pueden utilizar para ampliar la capacidad de almacenamiento de los sistemas informáticos, permitiendo a los usuarios almacenar más datos.

El bus determina el límite superior de la velocidad de transmisión del disco duro.

Memoria principal
Memoria principal: La que intercambia datos directamente con la CPU se llama memoria principal.

Conexión entre la memoria principal y la CPU:
el proceso de acceso de la CPU a la memoria a través del bus de datos, el bus de direcciones y el bus de control se puede dividir en los siguientes pasos:

(1) Direccionamiento de instrucciones: la CPU utiliza el contador de instrucciones (puntero de instrucción) para determinar la dirección de la siguiente instrucción a ejecutar.

(2) Transmisión de dirección: la CPU transmite la dirección en la instrucción al bus de direcciones de la memoria, indicándole a la memoria qué almacenamiento (unidad) leer o escribir.

(3) Respuesta de la memoria: después de que la memoria recibe la señal de dirección, recupera o escribe los datos correspondientes y los devuelve a la CPU.

(4) Transmisión de datos: la CPU transmite datos leídos o escritos desde la memoria a través del bus de datos.

(5) Procesamiento de datos: la CPU procesa los datos leídos de la memoria y almacena los resultados en la memoria.

En este proceso, la CPU y la memoria se comunican a través del bus de direcciones, el bus de datos y el bus de control: el bus de direcciones transmite señales de dirección, el bus de datos transmite datos y el bus de control transmite señales de control. La velocidad de comunicación y el ancho de banda entre la CPU y la memoria se ven afectados por muchos factores, incluido el tipo de memoria, la capacidad, la frecuencia del reloj y el ancho de banda del bus. Por tanto, el rendimiento de un sistema informático depende en gran medida del rendimiento de la memoria.

Los registros
se dividen en registros internos de la CPU y registros externos de la CPU.
Registros internos de la CPU: se utilizan para almacenar temporalmente datos y resultados de operaciones involucrados en las operaciones.
Registros externos de la CPU: registros periféricos. En los periféricos, la CPU se comunica con ellos para controlar el funcionamiento del periféricos.

En una computadora, un registro es una memoria interna muy rápida que se utiliza para almacenar datos a los que la CPU (Unidad Central de Procesamiento) necesita acceder con frecuencia. Los registros generalmente se implementan como circuitos de hardware dentro de la CPU que pueden almacenar y leer datos rápidamente.
A diferencia de otras memorias internas (como la RAM o los discos duros), los registros tienen una capacidad muy limitada y normalmente sólo pueden almacenar unos pocos bytes o bits. Por lo tanto, los registros solo se pueden usar para almacenar datos que son muy importantes para la CPU, como resultados intermedios durante los cálculos, direcciones de retorno y parámetros de función al llamar funciones, etc.
En las computadoras, se utilizan diferentes tipos de registros para diferentes propósitos. Por ejemplo, los registros de propósito general se usan para almacenar datos enteros, los registros de punto flotante se usan para almacenar datos de punto flotante, los registros de estado se usan para almacenar información sobre el estado de la CPU (por ejemplo, si se produjo un determinado error o interrupción). ha ocurrido), y así sucesivamente. La cantidad y el tipo de registros varían según la arquitectura de la CPU, pero desempeñan un papel vital en el funcionamiento de la CPU.

principio de funcionamiento

Los registros son dispositivos de almacenamiento muy rápidos en las computadoras. Pueden integrarse directamente dentro del chip de la CPU o conectarse a la CPU como un chip separado. El principio de funcionamiento de un registro es similar al de otros dispositivos de almacenamiento, en el sentido de que almacena datos binarios en componentes como condensadores, inductores o transistores del circuito.
El principio de funcionamiento del registro incluye los siguientes aspectos:
(1) Unidad de almacenamiento del registro: el registro se divide en múltiples unidades de almacenamiento y cada unidad de almacenamiento puede almacenar un tamaño fijo de datos. Por ejemplo, en una CPU de 32 bits, el registro de uso general se divide en 32 unidades de almacenamiento y cada unidad de almacenamiento puede almacenar un valor binario de 32 bits.
(2) Operaciones de lectura y escritura de registros: la CPU puede escribir datos en el registro y leer datos del registro. Cuando la CPU necesita escribir datos en un registro, envía la representación binaria de los datos al extremo de entrada del registro y luego controla el circuito para que los datos se almacenen en la unidad de almacenamiento designada. Cuando la CPU necesita leer datos de un registro, leerá los datos de la unidad de almacenamiento especificada en el registro y los enviará a otros circuitos dentro de la CPU para su procesamiento.
(3) Control del reloj del registro: para sincronizar la transmisión de datos entre la CPU y el registro, generalmente se requiere una señal de reloj para controlar las operaciones de lectura y escritura del registro. La señal de reloj indica el tiempo de operación entre la CPU y el registro, de modo que la lectura y escritura de datos se puedan realizar en el momento correcto.
(4) Velocidad de lectura y escritura de registros: los registros son los dispositivos de almacenamiento de lectura y escritura más rápidos en las computadoras, y sus velocidades de lectura y escritura pueden alcanzar incluso cientos de millones de veces por segundo. Esto permite que el registro almacene datos que deben leerse y escribirse con frecuencia, como el contador del programa, el puntero de la pila, los parámetros de función, etc.

El papel de los registros.

Los registros juegan un papel muy importante en las computadoras y sus funciones principales son las siguientes:
(1) Almacenamiento de resultados de operaciones y valores intermedios: cuando la unidad aritmético lógica (ALU) en la computadora realiza operaciones, necesita usar registros para almacenar operaciones. resultados y valores intermedios, como operaciones como suma, resta, multiplicación y división. Estos registros pueden leer y escribir datos rápidamente, aumentando así la velocidad de las operaciones.
(2) Almacenar el contador del programa: el contador del programa (Contador de programa) es un registro que apunta a la dirección de la instrucción que se está ejecutando actualmente. Cuando la computadora ejecuta un programa, el contador del programa se actualiza constantemente para señalar la dirección de la siguiente instrucción a ejecutar, logrando así la ejecución secuencial del programa.
(3) Almacenar parámetros de función y valores de retorno: cuando se llama a una función, los parámetros de función y los valores de retorno deben almacenarse en registros. Los registros pueden acceder rápidamente a los datos, mejorando así la eficiencia de las llamadas a funciones.
(4) Puntero de pila de almacenamiento: el puntero de pila (Stack Pointer) es un registro que apunta a la parte superior de la pila y se utiliza para almacenar variables locales y otros datos temporales cuando se llaman funciones. Cuando finaliza la llamada a la función, el puntero de la pila apunta a la siguiente ubicación libre en la parte superior de la pila.
(5) Almacenar información de estado: el registro de estado se utiliza para almacenar información sobre el estado de la CPU, como indicador de acarreo, indicador de cero, indicador de desbordamiento, indicador de interrupción, etc. Estos indicadores pueden indicar si la CPU necesita realizar ciertas operaciones.
En resumen, los registros son uno de los dispositivos de almacenamiento más rápidos y más utilizados en las computadoras. Pueden almacenar algunos datos clave para que la CPU pueda realizar operaciones y procesar datos de manera eficiente.

¿Qué es el caché
?

La caché es un tipo de memoria de computadora que se utiliza para almacenar datos e instrucciones a los que se accede con frecuencia durante la ejecución de programas de computadora. Por lo general, se encuentra entre la memoria principal de la computadora y la unidad central de procesamiento (CPU) para permitir un acceso más rápido a los datos requeridos, lo que hace que la computadora funcione más rápido.
La caché se divide en varios niveles: la caché de primer nivel (caché L1) se encuentra dentro de la CPU y es la más rápida, pero tiene una capacidad pequeña, normalmente unos cientos de KB o unos pocos MB. La caché de segundo nivel (caché L2) se encuentra entre la CPU y la memoria principal, es un poco más lenta pero tiene una mayor capacidad, que suele oscilar entre decenas y cientos de MB. También existen sistemas informáticos con caché de tercer nivel (caché L3) y cachés de nivel superior, que tienen mayor capacidad pero reducen gradualmente su velocidad.
El caché mejora el rendimiento de la computadora mediante algoritmos de almacenamiento en caché y estrategias de reemplazo de datos. Los algoritmos de almacenamiento en caché comunes incluyen mapeo directo, conexión grupal, conexión total, etc. Las estrategias de reemplazo de datos incluyen los utilizados menos recientemente (LRU), primero en entrar, primero en salir (FIFO), etc. La elección de estos algoritmos y estrategias afectará la eficiencia y el rendimiento de la caché.

¿Por qué estos algoritmos pueden afectar la eficiencia y el rendimiento de la caché?

La elección del algoritmo de almacenamiento en caché y la estrategia de reemplazo de datos afectará directamente la eficiencia y el rendimiento del caché porque determinan cómo el caché almacena y reemplaza los datos.
La elección del algoritmo de almacenamiento en caché afectará la tasa de aciertos de la caché. La tasa de aciertos se refiere a la probabilidad de encontrar los datos requeridos en el caché. Cuanto mayor sea la tasa de aciertos, mayor será la eficiencia del caché. El algoritmo de mapeo directo es el algoritmo de caché más simple, pero su tasa de aciertos es baja porque se pueden asignar múltiples datos en la misma posición de índice al mismo bloque de caché, lo que provoca conflictos. Los algoritmos de grupo conectado y de grupo completamente conectado pueden reducir los conflictos y mejorar las tasas de aciertos, pero también aumentan la complejidad y el costo.
La elección de la estrategia de reemplazo de datos afecta el rendimiento de la caché. Cuando el búfer está lleno, es necesario reemplazar algunos datos para dejar espacio. El objetivo de la estrategia de reemplazo es seleccionar los datos menos utilizados para el reemplazo, maximizando así la tasa de aciertos de la caché. El algoritmo LRU es la estrategia de reemplazo más utilizada y selecciona los datos utilizados menos recientemente para su reemplazo. Sin embargo, el algoritmo LRU necesita mantener la marca de tiempo de acceso de cada bloque de datos, lo que aumenta la complejidad y el costo de la caché. El algoritmo FIFO es otra estrategia de reemplazo que selecciona los datos almacenados en caché más antiguos para reemplazarlos, pero puede resultar en una tasa de aciertos más baja.
Por lo tanto, la selección de algoritmos de almacenamiento en caché y estrategias de reemplazo de datos debe sopesar factores como la eficiencia, el rendimiento y el costo para satisfacer las necesidades de diferentes escenarios de aplicaciones.

Cómo funcionan los registros:

Los registros son uno de los dispositivos de almacenamiento más rápidos en las computadoras y generalmente se usan para almacenar datos, instrucciones e información de estado requerida por la CPU para las operaciones de cálculo.
El principio de funcionamiento de los registros es el siguiente:
(1) Los registros suelen ser circuitos de hardware dentro de la CPU y están ubicados más cerca de los componentes centrales de la CPU para un acceso rápido.
(2) La unidad de almacenamiento del registro generalmente utiliza un circuito flip-flop, y cada flip-flop puede almacenar un bit de datos (0 o 1).
(3) La CPU puede enviar la dirección del registro y leer y escribir señales de control al registro a través del bus de direcciones y el bus de control, y controlar el registro para leer o escribir datos.
(4) Cuando la CPU necesita almacenar datos en el registro, los datos se envían al extremo de entrada del registro y se almacenan en el flip-flop a través de la señal de control.
(5) Cuando la CPU necesita leer datos del registro, la señal de control se envía al extremo de salida del registro, los datos se leen del flip-flop y se devuelven a la CPU a través del bus de datos.
Dado que el registro es una memoria dentro de la CPU, la velocidad de lectura y escritura es muy rápida y las operaciones de lectura y escritura se pueden completar dentro del ciclo de reloj de la CPU. Esto convierte a los registros en uno de los dispositivos de almacenamiento más importantes de las computadoras, utilizado para optimizar el rendimiento de la computadora y mejorar la eficiencia y velocidad de ejecución de instrucciones.

Explicación detallada de la estructura del disco duro.

  • Disco: Un disco (Disco) es un dispositivo de almacenamiento, generalmente compuesto por un conjunto de platos magnéticos, que se utiliza para almacenar datos y programas en un sistema informático. Por lo general, consta de un controlador, un motor de husillo, un cabezal magnético, un circuito de lectura y escritura, una interfaz de datos y otros componentes, que pueden lograr operaciones rápidas de lectura y escritura.
  • Pista: Una pista es una pista circular en la superficie del disco, cada pista puede almacenar una cierta cantidad de datos. La superficie de un disco suele dividirse en círculos concéntricos y los datos se almacenan en el disco en unidades de pistas. El número y tamaño de las pistas determina la capacidad de almacenamiento y el rendimiento del disco.
  • Sector: un sector es un área en forma de arco en cada pista de la superficie del disco que se utiliza para almacenar datos y metadatos. Cada sector se identifica mediante un número de sector único, normalmente un número entero. Un sector es la unidad más pequeña de almacenamiento de datos en disco, generalmente de 512 bytes o 4 KB de tamaño. El número y tamaño de los sectores determina la capacidad de almacenamiento y el rendimiento del disco.

Durante las operaciones de lectura y escritura, el cabezal magnético se colocará en la ubicación de pista y sector especificada para leer o escribir datos. Debido a que el cabezal magnético necesita moverse sobre la superficie del disco, la velocidad de lectura y escritura del disco es más lenta que la de otros dispositivos de almacenamiento, pero el disco tiene una gran capacidad de almacenamiento y un costo relativamente bajo, y se usa ampliamente. en sistemas informáticos.

  • Cálculo de la capacidad del disco: el cálculo de la capacidad del disco se determina en función de las características físicas del disco y el método de administración del sistema de archivos. En términos generales, la capacidad del disco se puede calcular de dos formas:

Método de cálculo de la capacidad física:
la capacidad física de un disco se refiere a la cantidad máxima de datos que se pueden almacenar en el disco. La capacidad física de un disco está determinada por la cantidad de pistas en la superficie del disco, la cantidad de sectores por pista y la cantidad de bytes por sector. La fórmula de cálculo habitual para la capacidad del disco es:

Capacidad del disco = número de pistas × número de sectores × número de bytes por sector

Por ejemplo, si un disco tiene 1000 pistas, cada pista tiene 10 sectores y el número de bytes en cada sector es 512, entonces la capacidad del disco es:

Capacidad del disco = 1000 × 10 × 512 = 5,120,000 Bytes = 5 MB
Método de cálculo de la capacidad lógica:
La capacidad lógica del disco se refiere a la capacidad de almacenamiento en el disco que puede utilizar el sistema de archivos y se ve afectada por el método de administración de el sistema de archivos, el método de formateo del disco y la influencia de factores como la eficiencia de utilización del espacio en disco. Por lo general, la capacidad lógica de un disco se puede obtener viendo las propiedades del disco o utilizando herramientas de administración de discos.

Cabe señalar que debido a que el sistema de archivos ocupa una cierta cantidad de espacio al almacenar archivos en el disco, la capacidad real disponible del disco suele ser menor que la capacidad lógica. Además, diferentes sistemas operativos y sistemas de archivos pueden calcular la capacidad del disco de manera diferente.

  • Factores que afectan la capacidad del disco:
    (1) Densidad de pistas: se refiere al número de pistas que se pueden almacenar en un disco por unidad de longitud. Cuanto mayor sea la densidad de pistas, mayor será la capacidad del disco.
    (2) Densidad de grabación: se refiere al número de registros que se pueden almacenar en una pista por unidad de longitud. Cuanto mayor sea la densidad de grabación, mayor será la capacidad del disco
    (3) Densidad superficial: se refiere a la cantidad máxima de datos que se pueden almacenar en ambos lados del disco. Cuanto mayor sea la densidad del área, mayor será la capacidad del disco
    (4) Tamaño del disco: cuanto mayor sea el tamaño físico del disco, mayor será la capacidad del disco
    (5) Tecnología del disco: diferentes tecnologías de disco tienen diferentes límites de capacidad. A medida que la tecnología se desarrolla, la capacidad del disco sigue aumentando.

  • Operaciones de disco: se refiere al proceso de lectura y escritura de datos en discos en un sistema informático. Las operaciones de disco suelen implicar la rotación del disco y el movimiento de la cabeza y el brazo.

  • Rotación del disco: la rotación del disco se refiere al proceso de rotar el disco para que los bits de datos del disco pasen por el cabezal uno por uno. La velocidad a la que gira un disco suele expresarse en revoluciones por minuto (RPM). La velocidad de rotación de los discos duros modernos suele estar entre 5400 RPM y 15 000 RPM. Los discos de alta velocidad pueden leer y escribir datos más rápido, pero también consumen más energía.

  • Movimiento del brazo magnético: El movimiento del brazo magnético se refiere al movimiento del cabezal magnético a diferentes pistas del disco para leer o escribir datos. El cabezal magnético del disco está suspendido del brazo magnético, que puede moverse horizontalmente sobre el disco para que el cabezal magnético pueda acceder a los datos en diferentes pistas. Los discos duros modernos suelen utilizar un sistema eléctrico de ajuste de la posición del cabezal que puede localizar rápidamente la posición especificada de la pista. La velocidad a la que se mueve un brazo magnético generalmente se expresa en términos de tiempo de búsqueda, que es el tiempo que se tarda en pasar de una pista a una pista adyacente. Los discos duros modernos suelen tener tiempos de búsqueda de entre 3 y 20 ms.

  • Al realizar operaciones de disco, el sistema informático necesita controlar la rotación del disco y el movimiento del cabezal magnético a través del controlador y la unidad. La velocidad y la eficiencia de las operaciones del disco tienen un impacto importante en el rendimiento de los sistemas informáticos. Por lo tanto, al realizar operaciones de disco, debe prestar atención a optimizar la forma de acceso al disco para mejorar la velocidad y la eficiencia del acceso al disco.

  • Operación de lectura de disco: la operación de lectura de disco se refiere al proceso de lectura de datos del disco, que incluye el tiempo necesario para encontrar el cabezal magnético, esperar a que el disco gire a la posición del sector correcto y el tiempo para leer los datos del disco. .

  • Tiempo de acceso: se refiere al tiempo requerido desde que se emite una solicitud de lectura hasta que se leen los datos, lo que incluye el tiempo de búsqueda, el tiempo de retraso de rotación y el tiempo de transferencia de datos.

  • Tiempo de búsqueda: el cabezal magnético del disco está suspendido del brazo magnético y el brazo magnético puede moverse horizontalmente sobre el disco para que el cabezal magnético pueda acceder a datos en diferentes pistas. Los discos duros modernos suelen utilizar un sistema eléctrico de ajuste de la posición del cabezal que puede localizar rápidamente la posición especificada de la pista. La velocidad a la que se mueve un brazo magnético generalmente se expresa en términos de tiempo de búsqueda, que es el tiempo que se tarda en pasar de una pista a una pista adyacente. El tiempo de búsqueda de los discos duros modernos suele estar entre 3 ms y 20 ms y, a medida que aumenta la duración del movimiento del cabezal, el tiempo de búsqueda también aumentará.

  • Tiempo de giro: el tiempo de giro es el tiempo que tarda el disco en girar hasta la ubicación del sector deseado. La velocidad de rotación de los discos duros modernos suele estar entre 5400 RPM y 15 000 RPM. Los discos de alta velocidad pueden leer y escribir datos más rápido, pero también consumen más energía. Por lo tanto, los discos de alta velocidad tienden a sobrecalentarse bajo cargas pesadas y requieren refrigeración adicional.

  • El tiempo de acceso al disco es un indicador importante que afecta el rendimiento de lectura y escritura del disco y se ve afectado por factores como el tiempo de búsqueda, el tiempo de rotación y el tiempo de transferencia de datos. La optimización de los métodos de acceso al disco puede mejorar el rendimiento de lectura y escritura del disco, mejorando así el rendimiento general del sistema informático.

  • Disco lógico: un disco lógico se refiere a un disco abstracto creado y utilizado por el sistema operativo y está construido en base a dispositivos de almacenamiento como discos físicos o matrices de discos. En el nivel abstracto de un disco lógico, el sistema operativo puede dividir el disco en varias particiones, y cada partición se puede formatear e instalar de forma independiente con diferentes sistemas de archivos para el almacenamiento y la administración de archivos. El sistema operativo también puede combinar varios discos físicos en una matriz de discos lógicos para aumentar la capacidad, el rendimiento y la confiabilidad del disco.

  • Cilindros de repuesto: los cilindros de repuesto pueden mejorar la confiabilidad del disco y reducir el riesgo de pérdida de datos. El número de cilindros de repuesto suele ser proporcional a la capacidad del disco y, a medida que aumenta la capacidad del disco, el número de cilindros de repuesto aumenta en consecuencia. Los cilindros de repuesto se pueden usar varias veces durante la vida útil de un disco, por lo que cuando la cantidad de cilindros de repuesto disminuye, el disco se vuelve menos confiable y es necesario realizar copias de seguridad de los datos con mayor frecuencia para evitar la pérdida de datos.

autobús

autobús de E/S

  • ¿Qué es?

El bus IO es un canal de transmisión de datos que conecta la CPU, la memoria y los dispositivos externos en un sistema informático y es responsable de transmitir datos y señales de control involucradas en las operaciones de entrada/salida (E/S). El bus IO suele ser un conjunto de circuitos físicos que consta de múltiples líneas de señal y líneas de control. Estas líneas se utilizan para transmitir datos, direcciones, señales de control, relojes y otra información.

  • ¿principio de funcionamiento?

El principio de funcionamiento del bus IO es enviar comandos y datos para operaciones de E/S desde la CPU a dispositivos externos, o transferir datos de respuesta desde dispositivos externos a la CPU. En los sistemas informáticos, el bus IO suele utilizar tecnología DMA (acceso directo a memoria) para acelerar la transferencia de datos. La tecnología DMA permite que los periféricos accedan directamente a la memoria del sistema, evitando así la intervención de la CPU y mejorando la eficiencia de la transmisión de datos.

  • ¿efecto?

La función del bus IO es conectar varios componentes en el sistema informático para realizar la transmisión de datos entre la CPU y dispositivos externos. Es una parte importante del sistema informático y puede ayudar al sistema informático a realizar diversas operaciones de entrada/salida, como imprimir, leer y escribir desde el disco duro, etc. El rendimiento y la velocidad de transmisión de datos del bus IO tienen un impacto importante en el rendimiento general y la velocidad de respuesta del sistema informático. Por lo tanto, al diseñar el sistema informático, es necesario seleccionar el tipo de bus IO y la tecnología de transmisión adecuados de acuerdo con el necesidades del sistema y requisitos de rendimiento.

autobús

  • ¿Qué es?

El bus es un canal de transmisión de datos comúnmente utilizado en sistemas informáticos, que se utiliza para conectar varios componentes en sistemas informáticos, como CPU, memoria, dispositivos de E/S, etc. Es una colección de líneas que se utilizan para transportar datos, direcciones y señales de control para transportar información entre diferentes componentes. En los sistemas informáticos, los buses Bus suelen dividirse en diferentes tipos, como 8 bits, 16 bits, 32 bits y 64 bits, según el ancho de bits de los datos transmitidos. Cuanto mayor sea el ancho de bits de datos, más rápida será la velocidad de transmisión de datos, pero también requiere más líneas y soporte de hardware.

  • ¿principio de funcionamiento?

El principio de funcionamiento del bus es que el remitente envía un dato y luego los datos se transmiten al receptor a través del bus. El controlador del bus, como un chipset o un chip controlador, controla el bus para que diferentes componentes de hardware puedan trabajar juntos y compartir el bus.

  • ¿Cuál es la función?

La función del Bus es permitir que diferentes componentes de hardware compartan datos e instrucciones. A través del Bus, los componentes de hardware pueden transmitir sus datos e instrucciones a otros componentes para implementar diversos cálculos y operaciones. Al mismo tiempo, el bus también puede admitir múltiples componentes de hardware para acceder a la misma línea de datos al mismo tiempo, mejorando así el rendimiento de concurrencia del sistema.

En general, el bus es una parte importante del sistema informático. Conecta varios componentes de hardware en el sistema informático para que puedan trabajar juntos y compartir datos. En el diseño y optimización de sistemas informáticos, elegir el tipo de bus y la tecnología de transmisión adecuados puede mejorar en gran medida el rendimiento y la velocidad de respuesta del sistema.

Los pasos que ocurren cuando la CPU accede al disco.

  • La CPU envía una solicitud de acceso al disco a través del bus, que incluye instrucciones de lectura y escritura, el número de disco al que se accede, el número de sector, el número de cabezal y otra información.
  • Después de que el controlador de disco recibe la solicitud de acceso de la CPU, convierte la solicitud en operaciones físicas del disco, incluida la búsqueda del cabezal, el posicionamiento del cabezal, la rotación del disco y otras operaciones. Entre ellos, la búsqueda y el posicionamiento de la cabeza son los principales costos de tiempo del acceso al disco.
  • Cuando se completan la búsqueda y el posicionamiento del cabezal, el controlador de disco comienza a leer o escribir datos del disco. Al leer datos, el controlador de disco lee los datos en la memoria caché del disco y los transmite a la CPU a través del bus. Al escribir datos, la CPU envía los datos que se escribirán al controlador de disco, que escribe los datos en la memoria caché del disco y los vacía en el disco si es necesario.
  • Cuando el controlador de disco completa la lectura o escritura de datos, envía una señal de finalización a la CPU y transmite los datos a la CPU a través del bus. Después de recibir los datos, la CPU puede continuar ejecutando la siguiente instrucción.

En general, la CPU necesita pasar por muchos pasos para acceder al disco, incluidas operaciones de búsqueda y posicionamiento del cabezal, lectura y escritura de datos. Estas operaciones requieren una cierta cantidad de tiempo, por lo que el acceso al disco suele ser uno de los cuellos de botella en los sistemas informáticos. Para mejorar el rendimiento del acceso al disco, se pueden utilizar diversas tecnologías, como matrices de discos, tecnología de almacenamiento en caché, compresión de datos y métodos de acceso rápido.

CPU de un solo núcleo versus CPU de doble núcleo

  • Un solo núcleo y doble núcleo son términos de unidad central de procesamiento (CPU), que indican la cantidad de núcleos en el procesador. Los procesadores de un solo núcleo tienen un solo núcleo, mientras que los procesadores de doble núcleo tienen dos núcleos. Cada núcleo tiene su propia lógica de control, caché, unidad de ejecución, etc., que puede realizar múltiples tareas al mismo tiempo, mejorando el rendimiento general y la eficiencia del procesador.

  • Específicamente, un procesador de un solo núcleo solo puede ejecutar una tarea y solo una instrucción a la vez y necesita esperar a que se complete la instrucción anterior antes de poder ejecutar la siguiente. Un procesador de doble núcleo puede realizar dos tareas al mismo tiempo y cada núcleo puede ejecutar instrucciones de forma independiente, lo que mejora enormemente el rendimiento y la velocidad de respuesta del procesador.

Por ejemplo, si está ejecutando varios programas al mismo tiempo cuando usa su computadora (como abrir varias ventanas del navegador, editar documentos al mismo tiempo, etc.), el sistema se volverá más lento si usa un procesador de un solo núcleo porque el procesador debe esperar cada Las instrucciones del siguiente programa no se pueden ejecutar hasta que se ejecuten las instrucciones del programa, pero si se usa un procesador de doble núcleo, cada núcleo puede ejecutar un programa de forma independiente, por lo que el sistema será más fluido.
Cabe señalar que el número de núcleos del procesador no es el único indicador del rendimiento del procesador, también se ve afectado por factores como la arquitectura del procesador, la frecuencia, el caché, etc. Diferentes aplicaciones y tareas tienen diferentes requisitos de rendimiento del procesador, por lo que se deben considerar múltiples factores al seleccionar un procesador.

La clave para cerrar la brecha entre CPU y memoria

La localidad temporal y la localidad espacial son dos conceptos importantes en informática. Se utilizan para describir los patrones y reglas cuando un programa accede a la memoria, que es la clave para cerrar la brecha entre la CPU y la memoria.

  • Localidad temporal significa que después de que se accede a un elemento de datos en un momento determinado, es probable que se vuelva a acceder a él en el futuro. Por ejemplo, cuando un programa atraviesa una matriz, accederá a la misma memoria varias veces, por lo que estos datos de la memoria tienen localidad temporal. Este modo de acceso permite a la CPU almacenar temporalmente estos datos en el caché, evitando la lectura frecuente de datos de la memoria, mejorando así la eficiencia de ejecución del programa.

  • La localidad espacial significa que cuando se accede a un elemento de datos, es probable que también se acceda a sus elementos de datos cercanos. Por ejemplo, cuando un programa atraviesa una matriz bidimensional, accederá a bloques de memoria adyacentes varias veces, por lo que estos datos de memoria tienen localidad espacial. Este modo de acceso permite que la CPU lea los datos cercanos en el caché por adelantado, lo que reduce la cantidad de veces que se leen datos de la memoria y mejora así la eficiencia de ejecución del programa.

efecto:

Tanto la localidad temporal como la localidad espacial pueden hacer uso del caché en la CPU para mejorar la eficiencia de ejecución del programa. Por lo tanto, al escribir un programa, debe intentar aprovechar las características de localidad temporal y localidad espacial para reducir el acceso frecuente a la memoria. Además, factores como el tamaño de la caché de la CPU y la estrategia de la caché también afectarán los efectos de la localidad temporal y la localidad espacial, que requieren ajustes y optimizaciones razonables.

SRAM y DRAM

  • SRAM (Static Random Access Memory), memoria estática de acceso aleatorio, es una memoria que utiliza flip-flops como unidades de almacenamiento. SRAM tiene velocidades de acceso rápidas, puede leer y escribir datos rápidamente y no requiere actualización durante la lectura. La desventaja de la SRAM es que es más grande y más cara que la DRAM, y no está tan integrada como la DRAM.
  • DRAM (Dynamic Random Access Memory), memoria dinámica de acceso aleatorio, es una memoria que utiliza condensadores como unidades de almacenamiento. La ventaja de la DRAM es que está altamente integrada, por lo que es más pequeña y menos costosa. La desventaja de la DRAM es que es necesario actualizarla para evitar fugas de carga en las celdas de memoria. La DRAM tiene velocidades de acceso más lentas y lleva tiempo escribir y leer datos.
  • Comparado:

(1) Las unidades de almacenamiento de SRAM y DRAM son diferentes: SRAM usa flip-flops como unidad de almacenamiento y DRAM usa capacitores como unidad de almacenamiento.
(2) La SRAM tiene una velocidad de acceso rápida y no necesita actualizarse al leer y escribir datos, mientras que la DRAM tiene una velocidad de acceso más lenta y necesita actualizar periódicamente la carga en la unidad de almacenamiento.
(3) La SRAM tiene un precio relativamente alto y un nivel de integración bajo, por lo que es de gran tamaño, mientras que la DRAM tiene un precio relativamente bajo y un alto nivel de integración, por lo que es de tamaño pequeño.
(4) SRAM y DRAM tienen diferentes campos de aplicación. La SRAM se usa generalmente en situaciones donde los datos deben leerse y escribirse rápidamente, como cachés, registros y otras memorias a las que se debe acceder rápidamente; mientras que la DRAM generalmente se usa en situaciones donde se almacenan grandes cantidades de datos, como la memoria principal. memoria.
En general, SRAM y DRAM tienen cada una sus propias ventajas y desventajas y son adecuadas para diferentes aplicaciones. En los sistemas informáticos, el tipo de memoria adecuado suele seleccionarse en función de las necesidades para lograr un rendimiento y una rentabilidad óptimos.

ROM

¿Qué es?

ROM (Read-Only Memory) es la abreviatura de memoria de solo lectura, que hace referencia a una memoria que viene programada de fábrica y no se puede modificar. En comparación con la RAM (memoria de acceso aleatorio), la característica principal de la ROM es que solo puede leer los datos almacenados en ella, pero no puede escribir ni modificar su contenido.

¿principio de funcionamiento?

La ROM se suele utilizar para almacenar datos que no cambian con el tiempo, como firmware, sistema operativo, programa de arranque, etc. Dado que estos datos no necesitan modificarse con frecuencia, el uso del almacenamiento ROM puede garantizar su estabilidad y confiabilidad. Otra característica de la ROM es que los datos almacenados en ella aún se pueden conservar después de apagar o reiniciar el sistema, porque los datos se almacenan mediante métodos físicos o químicos en lugar de mediante capacitancia o resistencia.

Clasificación:

(1) ROM de máscara: ROM de máscara es una ROM que se programa durante el proceso de fabricación y sus datos no se pueden modificar. Dado que se requieren máscaras durante la fabricación, el costo de fabricación es mayor, pero la densidad de almacenamiento y la estabilidad son mayores.
(2) PROM (memoria programable de solo lectura): la ROM programable se puede programar con un equipo especial o un programador después de la fabricación, y los datos se pueden escribir en ella, pero una vez programados no se pueden volver a modificar. El costo es menor porque se puede programar en el campo después de la fabricación, pero la densidad y la estabilidad del almacenamiento de datos son menores.
(3) EPROM (Memoria de solo lectura programable y borrable): la ROM programable y borrable puede borrar los datos que contiene a través de un dispositivo o método específico y luego reprogramarlos. La ventaja de la EPROM es que se puede reutilizar, pero su uso es más inconveniente porque requiere un dispositivo de borrado especial.
(4) EEPROM (memoria de solo lectura programable y borrable eléctricamente): la ROM programable y borrable eléctricamente es similar a la EPROM, pero se puede borrar y programar mediante señales electrónicas, por lo que es más conveniente de usar.
En general, la ROM es un tipo de memoria de solo lectura, adecuada para almacenar datos estables y que no necesitan modificarse con frecuencia. Los diferentes tipos de ROM tienen diferentes características y rangos de aplicación, y debes elegir según tus necesidades al usarlos.

DMA

¿Qué es?

La transferencia DMA (Acceso directo a la memoria) significa que los dispositivos (como controladores de disco, tarjetas de red, etc.) acceden directamente a la memoria a través del controlador DMA sin intervención de la CPU.

¿principio de funcionamiento?

(1) El dispositivo periférico solicita la transferencia DMA desde el controlador DMA, incluida la dirección de la memoria de destino, la longitud de la transferencia y otra información.
(2) El controlador DMA envía una solicitud de interrupción a la CPU, solicitando a la CPU que deje de controlar el bus para que el controlador DMA pueda acceder a la memoria.
(3) La CPU responde a la solicitud de interrupción, libera el control del bus y entrega el control de transferencia DMA al controlador DMA.
(4) El controlador DMA accede directamente a la memoria a través del bus y transfiere datos a la dirección de memoria de destino.
(5) Una vez completada la transferencia, el controlador DMA envía una solicitud de interrupción a la CPU para notificar la finalización de la transferencia y devuelve el control del bus a la CPU.

¿Cuál es la función?

Al transferir datos del disco a la memoria, generalmente se usa la transferencia DMA. Debido a que la cantidad de datos es grande y la potencia de procesamiento de la CPU es limitada, si cada byte de datos requiere la intervención de la CPU, el rendimiento del sistema se verá afectado significativamente. Al utilizar la transferencia DMA, el control de la transferencia de datos se puede entregar al controlador DMA, lo que le permite acceder directamente a la memoria, lo que reduce la carga de la CPU y mejora la eficiencia de la transferencia de datos. Al mismo tiempo, debido a que el controlador DMA puede acceder directamente a la memoria durante el proceso de transferencia de datos, no necesita pasar por la CPU para completar operaciones como la conversión de direcciones y la copia de datos, y también puede mejorar la eficiencia de la transferencia de datos.

¿Cuál es la relación entre DMA, CPU y memoria?

La memoria se refiere al dispositivo de almacenamiento utilizado por las computadoras para almacenar programas y datos. Generalmente se refiere a la memoria principal, que es el componente del chip de memoria ubicado en la placa base de la computadora. Está conectado a la CPU a través del bus de direcciones, el bus de datos y el bus de control. . La CPU puede leer o escribir programas y datos accediendo a la memoria principal. Sin embargo, al acceder a dispositivos externos (como discos, tarjetas de red, etc.), la CPU necesita comunicarse con el dispositivo a través de la interfaz IO. La transmisión de datos debe pasa por la interfaz IO y la memoria principal y, por lo tanto, no puede evitar completamente la intervención de la CPU.

La transferencia DMA es un método especial de transferencia de datos que transfiere el control de la transferencia de datos al controlador DMA y le permite acceder directamente a la memoria, lo que reduce la carga de la CPU y mejora la eficiencia de la transferencia de datos. Sin embargo, la transferencia DMA no es un método para todas las transferencias de datos. Para algunas operaciones que requieren procesamiento de la CPU (como cifrado y descifrado, etc.), aún se requiere la intervención de la CPU. Al mismo tiempo, la transferencia DMA también requiere la inicialización y administración de la CPU, así como el procesamiento de solicitudes de interrupción una vez completada la transferencia, etc. Por lo tanto, aunque la transferencia DMA puede reducir la carga sobre la CPU, eso no significa que la transferencia de datos no pase por la CPU en absoluto.

SSD

¿Qué es?

La unidad de estado sólido (SSD) es un dispositivo de almacenamiento que utiliza memoria no volátil (como la memoria flash) para almacenar datos. En comparación con los discos duros mecánicos tradicionales, tiene mayor velocidad de transferencia de datos y menor costo. Las ventajas incluyen consumo de energía y mayor durabilidad. y de menor tamaño. Es ampliamente utilizado en computadoras personales, servidores, control industrial y otros campos.

¿principio de funcionamiento?

El principio de funcionamiento de una unidad de estado sólido es leer y escribir datos a través de señales electrónicas. Está compuesto por un chip controlador y un chip de almacenamiento. El chip controlador es el principal responsable de controlar las operaciones de lectura y escritura, y el chip de almacenamiento es responsable para realmente almacenar datos. En una unidad de estado sólido, los datos se almacenan en un chip de memoria flash. Cada chip de memoria flash contiene una cierta cantidad de unidades de almacenamiento. Cada unidad de almacenamiento puede almacenar un bit de datos binarios (0 o 1). Una unidad de almacenamiento consta de múltiples unidades de almacenamiento. unidades Compuesta por un byte (8 bits binarios), una unidad de almacenamiento compuesta por varios bytes se denomina sector (generalmente 512 bytes o 4 KB). El chip controlador de la unidad de estado sólido controla las operaciones de lectura y escritura del chip de memoria mediante la transmisión de señales de datos para realizar el almacenamiento y la lectura de datos.

efecto:

Las unidades de estado sólido se utilizan para almacenar y leer datos y pueden reemplazar los discos duros mecánicos tradicionales como memoria principal de una computadora y también pueden usarse como almacenamiento auxiliar.

Comparado con los discos mecánicos tradicionales

En comparación con los discos duros mecánicos tradicionales, los discos de estado sólido tienen velocidades de lectura y escritura más rápidas porque no requieren piezas mecánicas para las operaciones de lectura y escritura, sino que utilizan directamente señales electrónicas para el control, por lo que tienen una menor latencia de acceso y una mayor velocidad de transmisión de datos. . Al mismo tiempo, las unidades de estado sólido también son más duraderas porque no tienen piezas mecánicas y no se ven afectadas por vibraciones ni colisiones, lo que les confiere mayor confiabilidad y estabilidad.

Los discos mecánicos son más adecuados para escenarios que requieren almacenamiento de gran capacidad y lectura y escritura secuenciales, como grandes bases de datos, almacenamiento de medios y copias de seguridad. Aunque la capacidad del disco ya es grande, las ventajas de las unidades de estado sólido son aún más obvias cuando se requiere una transmisión de datos de alta velocidad.

Por lo tanto, en aplicaciones reales, se pueden seleccionar discos giratorios o unidades de estado sólido según las diferentes necesidades y escenarios de aplicación.

Conceptos relacionados con la memoria flash

Flash Translation Layer (FTL), Block y Page son conceptos importantes en la memoria flash.

  • La memoria flash de un SSD se divide en bloques y páginas. Un bloque es la unidad regrabable más pequeña en la memoria flash, generalmente de decenas a cientos de páginas. Una página es una subunidad de un bloque, generalmente de varios KB a decenas de KB de tamaño.
  • La capa de traducción flash (FTL) es un componente importante en los SSD. Su función es convertir direcciones lógicas en direcciones físicas, administrar el uso de bloques de memoria flash, recolección de basura y otras funciones. FTL realiza la conversión de direcciones lógicas en direcciones físicas asignando bloques lógicos a bloques físicos y registra el uso y los tiempos de borrado de los bloques de memoria flash para lograr un uso equilibrado y extender la vida útil.
  • Cuando el sistema operativo necesita escribir datos, la capa de traducción flash primero busca bloques libres y luego escribe los datos en una página del bloque. Cuando todas las páginas del bloque están llenas, el bloque se marca como lleno y no se pueden escribir datos nuevos. Cuando el sistema operativo necesita leer datos, FTL asignará la dirección lógica a la dirección física correspondiente y luego leerá los datos correspondientes de la memoria flash.
  • Debido a las características especiales de la memoria flash, como los tiempos limitados de borrado y escritura y la velocidad lenta de borrado y escritura, FTL realizará operaciones de borrado de bloques y recolección de basura para garantizar la confiabilidad y el rendimiento de la memoria flash.

cache

¿Qué es?

El almacenamiento en caché es una tecnología de almacenamiento informático que se utiliza para almacenar temporalmente datos a los que se accede con frecuencia o recientemente para que puedan recuperarse rápidamente la próxima vez que se acceda a ellos. El objetivo principal del almacenamiento en caché es mejorar la velocidad y la eficiencia del acceso a los datos, mejorando así el rendimiento de la computadora.

Un caché es un espacio de almacenamiento más pequeño pero de acceso más rápido que generalmente se encuentra cerca del procesador (CPU) de una computadora. Los datos en el caché son una copia de una parte de los datos en la memoria principal (como la RAM). Cuando la calculadora necesita acceder a ciertos datos, primero verificará si los datos existen en el caché. Si los datos existen en el caché (acierto de caché), la computadora leerá los datos directamente desde el caché, ahorrando el tiempo de acceso al memoria principal. . Si los datos no existen en el caché (una pérdida de caché), la computadora necesita leer los datos de la memoria principal.

La tecnología de almacenamiento en caché se usa ampliamente en varios escenarios, como caché de CPU, caché de disco duro, caché web, caché de bases de datos y red de entrega de contenido (CDN), etc. En estas aplicaciones, el almacenamiento en caché desempeña un papel en la reducción de la latencia de acceso a los datos, la reducción de la carga del sistema y la mejora de la velocidad de respuesta.

¿principio de funcionamiento?

El almacenamiento en caché funciona aprovechando la localidad para almacenar temporalmente los datos a los que se accede con frecuencia o recientemente en un espacio de almacenamiento más pequeño pero de acceso más rápido. El principio de localidad incluye localidad temporal y localidad espacial. La localidad temporal significa que es probable que se vuelva a acceder a los datos a los que se ha accedido en el futuro, mientras que la localidad espacial significa que es probable que se vuelva a acceder a los datos cercanos a los datos accedidos.

Proceder de la siguiente:

  • Solicitar datos: cuando la computadora necesita acceder a ciertos datos, primero verificará si los datos existen en el caché.
  • Consultar caché: la computadora busca los datos solicitados en el caché. El caché generalmente se encuentra cerca del procesador (CPU) de la computadora y se puede acceder a él más rápido que la memoria principal (como la RAM).
  • Acierto o error: si los datos solicitados están presentes en el caché (llamado "acierto de caché"), la computadora leerá los datos directamente desde el caché, ahorrando tiempo de acceso a la memoria principal. Si los datos solicitados no existen en el caché (lo que se denomina "error de caché"), la computadora lee los datos de la memoria principal y los almacena en caché para acceso posterior.
  • Política de reemplazo: cuando el caché está lleno pero es necesario agregar nuevos datos, el administrador de caché debe decidir qué datos deben conservarse y qué datos deben reemplazarse según la política de reemplazo. Las estrategias de reemplazo comunes incluyen el uso menos reciente (LRU), el uso menos frecuente (LFU), el primero en entrar, primero en salir (FIFO), etc.

Mediante los pasos anteriores, la tecnología de almacenamiento en caché puede reducir significativamente los retrasos en el acceso a los datos y mejorar el rendimiento de la computadora.

Se accede a la CPU a través del hardware.

La CPU (Unidad Central de Procesamiento) ejecuta instrucciones y accede a datos comunicándose y cooperando con otros componentes de hardware de la computadora.
Así es como se comunica la CPU con otros componentes de hardware:

1. Bus del sistema: la CPU se comunica con otros componentes de hardware a través del bus del sistema. El bus del sistema consta de un bus de datos, un bus de direcciones y un bus de control. El bus de datos se utiliza para transferir datos entre la CPU, la memoria y otros dispositivos; el bus de direcciones se utiliza para transferir la dirección de memoria de datos o instrucciones; el bus de control se utiliza para enviar señales de control entre la CPU y otros componentes.
2. Memoria: La CPU accede a datos e instrucciones a través de la memoria. La memoria incluye principalmente RAM (memoria de acceso aleatorio) y ROM (memoria de solo lectura). La CPU envía direcciones de memoria a través del bus de direcciones, lee o escribe datos a través del bus de datos y envía señales de control para operaciones de lectura o escritura a través del bus de control.
3. Caché: la CPU acelera el acceso a datos e instrucciones accediendo al caché. La caché suele dividirse en tres niveles: caché L1, L2 y L3. Las cachés L1 y L2 están ubicadas dentro de la CPU, mientras que la caché L3 es externa a la CPU pero está empaquetada en el mismo chip que la CPU. La CPU accede a la caché a través de un bus interno, lo que hace que el acceso sea más rápido.
4. Dispositivos de entrada/salida (E/S): la CPU se comunica con dispositivos de entrada/salida (como teclado, mouse, monitor, disco duro, etc.) a través del bus de E/S y el controlador de E/S. El controlador de E/S convierte los datos del dispositivo a un formato que la CPU pueda entender y transmite datos entre la CPU y el dispositivo.
5. Chipset: Un chipset es un conjunto de circuitos integrados que coordina y controla la transmisión de datos entre varios componentes de un sistema informático. Incluyendo principalmente el Puente Norte y el Puente Sur. El Puente Norte es responsable de coordinar las comunicaciones de datos de alta velocidad, como las comunicaciones entre la CPU y la memoria y las tarjetas gráficas; el Puente Sur es responsable de coordinar las comunicaciones de datos de baja velocidad, como las comunicaciones entre la CPU y los discos duros, dispositivos USB. y otros periféricos.

Mediante la cooperación de estas combinaciones de hardware, la CPU puede ejecutar instrucciones, acceder a datos y comunicarse con otros componentes del sistema informático.

fragmentación de la memoria

¿Qué es?

Bloque de memoria es un concepto de gestión de la memoria de la computadora que se refiere a dividir la memoria de la computadora (generalmente RAM) en múltiples áreas consecutivas de igual o desigual tamaño. El bloqueo de memoria ayuda a organizar y administrar los recursos de la memoria de manera más eficiente al tiempo que reduce la fragmentación y el desperdicio de la memoria.

Propósito : El bloqueo de memoria se utiliza principalmente para asignar y recuperar espacio de memoria. Cuando un programa necesita espacio de memoria, el sistema operativo encontrará un espacio adecuado en el bloque de memoria disponible y lo asignará al programa; cuando el programa ya no necesite espacio de memoria, el sistema operativo recuperará y liberará el bloque de memoria para que otros Los programas pueden usarlo.

**Método de administración de memoria: ** Según los diferentes métodos de administración de memoria, los bloques de memoria se pueden dividir en particiones fijas, particiones dinámicas y paginación/segmentación.
+ Partición fija: La memoria se divide en particiones fijas de igual o desigual tamaño. Cada partición solo puede contener un programa. Este método es simple y fácil de implementar, pero puede provocar fragmentación y desperdicio de memoria
+ Partición dinámica: la memoria se asigna dinámicamente según demanda y se asigna tanta memoria como el programa necesita. Este método puede hacer un uso más eficiente del espacio de la memoria, pero la sobrecarga de asignar y recuperar memoria es relativamente grande
+ paginación/segmentación: la memoria se divide en páginas (Páginas) o segmentos (Segmentos) de igual tamaño. El espacio de memoria de un programa se asigna a múltiples páginas o segmentos, que pueden almacenarse de forma no contigua en la memoria. Este enfoque puede reducir eficazmente la fragmentación y el desperdicio de memoria, al tiempo que admite funciones avanzadas como la memoria virtual y la protección de la memoria.

**Estrategia de asignación de memoria:** El sistema operativo puede adoptar diferentes estrategias al asignar bloques de memoria, como First Fit, Best Fit, Worst Fit, etc. Estas estrategias afectan la eficiencia y la fragmentación de la asignación de memoria.

Mediante el bloqueo de la memoria, el sistema operativo puede administrar los recursos de la memoria de manera más efectiva, cumplir con los requisitos de memoria de los programas y reducir la fragmentación y el desperdicio de la memoria.

¿Por qué la partición dinámica es costosa para asignar y recuperar memoria?

La gestión de memoria de partición dinámica es un método de asignación dinámica de memoria a programas bajo demanda. Si bien hace un uso más eficiente del espacio de memoria, tiene una mayor sobrecarga al asignar y reclamar memoria.
Este es el por qué:

  • Encontrar un bloque de memoria libre adecuado: en la gestión de memoria de partición dinámica, cuando un programa solicita memoria, el sistema operativo necesita atravesar el espacio de memoria y encontrar un bloque de memoria libre lo suficientemente grande como para satisfacer las necesidades del programa. Este proceso puede implicar una gran cantidad de operaciones de búsqueda y comparación, lo que genera una gran sobrecarga de tiempo.
  • Fragmentación de la memoria: la partición dinámica es propensa a la fragmentación de la memoria, especialmente la fragmentación externa. La fragmentación externa se refiere a la memoria libre inutilizable debido a la distribución desigual del tamaño y la ubicación de los bloques de memoria. A medida que el programa se ejecuta y la memoria se asigna y recupera, la fragmentación externa puede volverse cada vez más grave, lo que resulta en una asignación de memoria más lenta y una menor utilización de la misma.
  • Fusión y división de memoria: en la gestión de memoria de partición dinámica, el sistema operativo necesita fusionar y dividir bloques de memoria al asignar y reclamar memoria. Por ejemplo, cuando se recuperan dos bloques de memoria libre adyacentes, el sistema operativo necesita fusionarlos para reducir la fragmentación externa; cuando se asigna un bloque de memoria libre a un programa, es posible que el sistema operativo necesite dividirlo en el tamaño requerido. Estas operaciones añaden complejidad y sobrecarga a la gestión de la memoria.
  • Estructura de datos y sobrecarga de algoritmo: para implementar la administración dinámica de la memoria de la partición, el sistema operativo necesita mantener algunas estructuras de datos (como listas vinculadas o árboles) para rastrear el estado y la ubicación de los bloques de memoria. Al mismo tiempo, el sistema operativo necesita implementar algunos algoritmos (como la primera adaptación, la mejor adaptación o la peor adaptación, etc.) para asignar y recuperar memoria. Estas estructuras de datos y algoritmos añaden una sobrecarga de gestión de memoria.

Explicación de términos relacionados:

Copiar en memoria todo el bloque:
Copiar en memoria todo el bloque se refiere a copiar completamente los datos de un área de memoria a otra área de memoria. Esto generalmente se logra mediante el uso de una función de copia de memoria (como la función memcpy en lenguaje C).
La copia de memoria de todo el bloque generalmente se usa en las siguientes situaciones:
+ Copia de seguridad de datos: copie los datos en un área de memoria a otra área de memoria para hacer una copia de seguridad de los datos y evitar pérdidas
o daños
+ Transferencia de datos: copie los datos en un área de memoria a otra Un área de memoria para que los datos puedan transferirse entre diferentes procesos
o sistemas.
+ Gestión de memoria: al realizar una asignación de memoria dinámica, puede utilizar la copia de memoria para copiar el bloque de memoria asignado a un
nuevo bloque de memoria para gestionar mejor el espacio de memoria.
Cabe señalar que al realizar una operación de copia de memoria, debe asegurarse de que el área de memoria de destino tenga suficiente espacio para almacenar los datos
en el área de memoria de origen, y los punteros y las condiciones límite deben manejarse con cuidado para evitar problemas como pérdidas de memoria y acceso fuera de límites.

Aciertos y errores de caché:
un caché es un dispositivo de almacenamiento rápido en una computadora que se utiliza para almacenar temporalmente datos a los que se accede con frecuencia para un acceso rápido. Cuando la CPU necesita leer o escribir datos, primero buscará en el caché. Si los datos ya existen en el caché, se denomina acierto de caché; si los datos no están en el caché, se denomina error de caché.

Un acierto de caché indica que los datos requeridos ya están en el caché, por lo que la CPU puede leer o escribir los datos directamente desde el caché sin recuperarlos de la memoria principal, lo que puede acelerar el acceso a los datos. La tasa de aciertos de la caché representa la relación entre los datos almacenados en la caché y los datos realmente accedidos dentro de un cierto período de tiempo. Es un indicador importante para medir el rendimiento de la caché. Por lo general, se espera que cuanto mayor sea la tasa de aciertos de la caché, mejor .

Una pérdida de caché significa que los datos requeridos no están en el caché y deben recuperarse de la memoria principal, lo que introduce latencia y sobrecarga adicionales, lo que resulta en un acceso más lento. Cuando ocurre una pérdida de caché, el sistema intenta leer los datos requeridos de la memoria principal en el caché para que el siguiente acceso pueda leer los datos directamente desde el caché. Si la capacidad de la caché es insuficiente o el algoritmo de reemplazo de la caché es inadecuado, pueden producirse errores frecuentes de la caché, lo que degrada el rendimiento del sistema.

Fallo de conflicto: El
fallo de conflicto es un tipo de fallo de caché, que se refiere al hecho de que debido a la forma en que se implementa el caché, algunos bloques en el caché son compartidos por múltiples bloques de datos, lo que resulta en conflictos entre estos bloques de datos. y no se puede almacenar en caché al mismo tiempo. En la implementación de caché más simple, el tamaño de la caché se divide en múltiples bloques de tamaño fijo, cada uno de los cuales puede almacenar en caché una parte de los datos. Se produce un error de conflicto si dos o más bloques de datos se asignan al mismo bloque de caché.
Por ejemplo, si el tamaño del caché es de 8 bloques y la dirección del bloque de datos se asigna al caché usando la función de mapeo i mod 8, entonces los bloques de datos con el mismo resto se asignarán al mismo bloque de caché. resultando en un conflicto. Los golpes suceden.

Para resolver el problema de los errores de conflicto, se pueden utilizar métodos de implementación de caché más complejos, como el mapeo asociativo (mapeo asociativo) o el mapeo asociativo establecido (mapeo asociativo establecido). En estas implementaciones, los bloques de datos se pueden asignar a múltiples bloques de caché, lo que reduce la probabilidad de errores de conflicto y mejora la eficiencia y el rendimiento de la caché.

Conjunto de trabajo:
Conjunto de trabajo se refiere al conjunto de todas las páginas a las que accede un proceso dentro de un período de tiempo. En un sistema operativo, un proceso puede necesitar acceder a varias páginas, y estas páginas pueden estar dispersas en diferentes ubicaciones de la memoria principal. El conjunto de trabajo puede entenderse como el conjunto de todas las páginas requeridas actualmente por el proceso, puede reflejar la situación de acceso a la memoria del proceso y también es una referencia importante para la gestión de la memoria y los algoritmos de reemplazo de páginas.

En términos generales, el sistema operativo carga las páginas requeridas por el proceso en la memoria para que el proceso pueda acceder rápidamente a estas páginas y reducir el tiempo y la sobrecarga de acceso a la memoria principal. Si la cantidad de páginas a las que un proceso necesita acceder excede el tamaño de la memoria disponible, pueden ocurrir problemas como fallas de página o reemplazos de páginas, lo que resulta en una degradación del rendimiento.

El tamaño del conjunto de trabajo se puede utilizar para evaluar el uso de la memoria y predecir los requisitos de memoria. Si el tamaño del conjunto de trabajo es menor que el tamaño de la memoria disponible, entonces el proceso puede ejecutarse bien sin problemas como el reemplazo de páginas; si el tamaño del conjunto de trabajo es mayor que el tamaño de la memoria disponible, entonces necesita ajustar el uso de la memoria del proceso. o aumentar la memoria disponible para solucionar el problema. Por lo tanto, comprender el concepto y el tamaño del conjunto de trabajo es muy importante para la gestión de la memoria y la optimización del rendimiento del sistema operativo.

Mapeo asociativo: el
mapeo asociativo es un método de mapeo de caché y uno de los métodos de mapeo más utilizados en caché. En el mapeo asociativo, cada bloque de la caché se puede asignar a cualquier bloque de datos, a diferencia del mapeo directo, donde cada bloque de datos solo se puede asignar a un bloque de caché fijo.

Específicamente, la estructura de caché del mapeo asociativo contiene dos partes: la matriz de bloques de caché y la matriz de etiquetas. La matriz de bloques de caché se usa para almacenar bloques de datos y la matriz de etiquetas se usa para marcar qué bloques de caché son válidos, qué bloques de caché están vacíos y qué bloques de caché almacenan qué bloque de datos.

En el mapeo asociativo, cuando es necesario acceder a un bloque de datos, el controlador de caché primero buscará un bloque de caché válido en la matriz de etiquetas. Si hay un bloque de caché vacío, el bloque de datos se leerá en el bloque de caché. Si no hay ningún bloque de caché vacío, debe seleccionar un bloque de caché para reemplazar, lo que generalmente se implementa mediante algunos algoritmos de reemplazo, como el algoritmo menos utilizado recientemente. Al elegir un bloque de caché para reemplazar, debe considerar qué bloques de caché almacenan los bloques de datos utilizados con menos frecuencia y luego reemplazar ese bloque de caché con el nuevo bloque de datos.

Las funciones y ventajas del mapeo de asociaciones:

  • Reduzca las bajas tasas de aciertos de caché. Dado que los bloques de caché se pueden asignar a bloques de datos arbitrarios, el mapeo asociativo puede evitar eficazmente los problemas de capacidad y conflicto en el mapeo directo y el mapeo asociativo de conjuntos. En el mapeo asociativo, si un bloque de datos está en el caché, se puede encontrar en cualquier bloque de caché sin seguir un método de mapeo fijo.
  • Mejorar la utilización de la caché. Dado que cada bloque de caché en el mapeo asociativo se puede asignar a cualquier bloque de datos, el espacio de caché se puede utilizar de manera más flexible y se puede reducir el almacenamiento de datos redundante. Esto puede mejorar la utilización de la caché, permitiendo que la caché almacene en caché más bloques de datos, mejorando así la tasa de aciertos de la caché.
  • Admite algoritmos de reemplazo más flexibles. Dado que cada bloque de caché en el mapeo asociativo se puede asignar a cualquier bloque de datos, se puede usar un algoritmo de reemplazo más flexible al reemplazar bloques de caché, como el algoritmo LRU (menos utilizado recientemente). Esto puede utilizar mejor el espacio de la caché y mejorar la eficiencia y la tasa de aciertos de la caché.

En comparación con el mapeo directo, el mapeo asociativo puede evitar el problema de los errores de conflicto y puede utilizar algoritmos de reemplazo para optimizar la eficiencia de la caché y la tasa de aciertos. Sin embargo, debido a la necesidad de comparar cada bloque de datos, la implementación de hardware del mapeo asociativo suele ser más compleja que el mapeo directo, requiere más recursos de hardware y, por lo tanto, es más costosa.

Cómo se asigna cada bloque del caché a un bloque de datos:

  • Mapeo directo: en el mapeo directo, cada bloque en el caché se asigna a un bloque de datos único en la memoria principal. El método de mapeo específico consiste en determinar la ubicación del bloque de caché en función de una parte de la dirección de la memoria principal. Por ejemplo, si el tamaño de la memoria caché es de 4 bloques y la dirección de la memoria principal es de 12 bits, entonces los dos bits inferiores de la dirección de la memoria principal se pueden usar para determinar la ubicación del bloque de la memoria caché, es decir, el resto de la memoria principal. El módulo de dirección 4 se utiliza como índice del bloque de caché.
  • Mapeo asociativo: en el mapeo totalmente asociativo, cada bloque en el caché se puede asignar a cualquier bloque de datos en la memoria principal. El método de mapeo específico es determinar qué bloque se asigna al bloque de datos comparando la dirección de la memoria principal y las etiquetas de todos los bloques en el caché.
  • Mapeo de asociaciones de grupos

Independientemente del método de mapeo que se utilice, la relación de mapeo entre los bloques de caché y los bloques de datos debe mantenerse en el controlador de caché. Cuando es necesario acceder a un bloque de datos, el controlador de caché primero determinará si el bloque de datos se ha almacenado en el caché en función de la relación de mapeo. Si se ha almacenado en caché, se puede acceder directamente al bloque de datos en el caché. De lo contrario, debe leerse desde la memoria principal, un bloque de datos y almacenarlo en el caché.

Supongo que te gusta

Origin blog.csdn.net/m0_56898461/article/details/129748988
Recomendado
Clasificación