Arquitectura de Computadores_Revisión 1

Capítulo 1 Conceptos básicos de la arquitectura de sistemas informáticos

1.1 Introducción

  • La primera computadora electrónica de propósito general nació en 1946 - ENIAC

  • El rápido desarrollo de la tecnología informática se ha beneficiado de dos aspectos

    • El desarrollo de la tecnología de fabricación de computadoras.
    • Innovación de la arquitectura del sistema informático
  • La tecnología informática ha pasado por 4 procesos de desarrollo

tiempo razón Crecimiento de rendimiento anual
25 años desde 1946 Ambos factores juegan un papel importante 25%
Finales de la década de 1970 y principios de la de 1980 El surgimiento de circuitos integrados y microprocesadores a gran escala, el desarrollo de la tecnología de fabricación representada por los circuitos integrados. alrededor del 35%
A partir de mediados de la década de 1980 La aparición de la estructura RISC, la estructura del sistema se actualiza y cambia constantemente, y la tecnología de fabricación se desarrolla constantemente. Más del 50%
mantenido durante unos 16 años.
desde 2002 1. Problema de consumo de energía (ya grande)
2. El paralelismo a nivel de instrucción que puede desarrollarse de manera más efectiva ya es muy pequeño
3. La mejora de la velocidad de acceso a la memoria es lenta.
aproximadamente 20%

inserte la descripción de la imagen aquí
Un importante punto de inflexión en la estructura del sistema:

  • De depender puramente del paralelismo a nivel de instrucción a desarrollar paralelismo a nivel de subprocesos y paralelismo a nivel de datos
  • La arquitectura de los sistemas informáticos juega un papel extremadamente importante en el desarrollo de las computadoras.

1.2 El concepto de estructura del sistema informático

1.2.1 Jerarquía de Sistemas Informáticos

  • Sistema informático = hardware/firmware + software

  • El lenguaje informático se desarrolla de bajo a alto nivel.

    • Microprograma → lenguaje máquina → lenguaje ensamblador → lenguaje de alto nivel → lenguaje de aplicación
    • Las declaraciones del lenguaje de nivel superior son más poderosas y fáciles de aplicar que las del lenguaje de nivel inferior, pero todas se basan en el lenguaje de nivel inferior.
  • Desde la perspectiva del lenguaje informático, el sistema informático se divide en una estructura jerárquica de varios niveles según la función.

    • Cada capa se caracteriza por un idioma.
      inserte la descripción de la imagen aquí
  • máquina virtual: una máquina implementada por software

  • Dos técnicas básicas de implementación del lenguaje

    • Traducción: primero convierta todos los programas de nivel N + 1 en programas de nivel N y luego ejecute los programas de nivel N recién generados. Durante el proceso de ejecución, ya no se accederá a los programas de nivel N + 1.

    • Explicación: cada vez que se decodifica una instrucción de nivel N+1, ejecuta directamente una serie de instrucciones equivalentes de nivel N y luego obtiene la siguiente instrucción de nivel N+1 y la repite en consecuencia.

​ La interpretación y la ejecución toman más tiempo que la compilación y luego la ejecución, pero ocupan menos espacio de almacenamiento.

1.2.2 Definición de la estructura del sistema informático

  • Definición clásica de la arquitectura del sistema informático.

    • Las propiedades (es decir, estructura conceptual y propiedades funcionales) de una computadora tal como las ve el programador.

      • Programador: programador de sistemas (incluyendo: lenguaje ensamblador, lenguaje máquina, compilador, sistema operativo)

      • Lo que ve: lo que necesita saber para escribir programas que se ejecuten correctamente en su máquina

      • Propiedades de la computadora: sistema de instrucción, representación de datos, modo de direccionamiento

  • De acuerdo con la estructura jerárquica de varios niveles de los sistemas informáticos, los diferentes niveles de programadores ven las computadoras con diferentes atributos.

  • Transparencia: La cosa o atributo que existe originalmente, no parece existir desde cierto ángulo

  • La estructura del sistema propuesta por Amdahl

    • Propiedades de las computadoras vistas por los programadores tradicionales de nivel de lenguaje de máquina
  • Definición amplia de la estructura del sistema: estructura del conjunto de instrucciones, composición, hardware (tres aspectos del diseño de la computadora)

  • Para las máquinas registradoras de propósito general, estas propiedades se refieren principalmente a:

    • sistema de comando
    • representación de datos
    • reglas de direccionamiento
    • definición de registro
    • sistema de interrupción
    • Definición y conmutación del estado de trabajo de la máquina.
    • Sistema de almacenamiento
    • protección de la información
    • E / S Estructura
  • La esencia del concepto de estructura del sistema informático:

    • Determine la interfaz de software y hardware en el sistema informático. Arriba de la interfaz están las funciones realizadas por el software, y debajo de la interfaz están las funciones realizadas por el hardware y el firmware.
  • Un sistema informático consta de software, hardware y firmware, que son funcionalmente equivalentes.

    • La misma función puede ser implementada por hardware, o por software o firmware.
    • Las diferentes implementaciones solo difieren en rendimiento y precio, y la estructura de su sistema es la misma.

1.2.3 Composición por computadora e implementación por computadora

  • Estructura del sistema informático: la interfaz entre el software y el hardware del sistema informático.

    • Es decir, las propiedades del nivel de máquina tradicional tal como las ven los programadores de lenguaje de máquina.
  • Composición de la computadora: implementación lógica de la arquitectura del sistema informático

    • Estudia los sistemas informáticos desde dentro. Contiene la composición del flujo de datos y el flujo de control a nivel de máquina física, así como el diseño lógico, etc.

    • La composición de la computadora se refiere al tipo, cantidad, método de composición, método de control y método de flujo de información de los componentes principales de la computadora y el sistema formado por su interconexión.

    • Se centra en cómo se secuencian y controlan los eventos a nivel de la máquina física, la función de cada componente y las conexiones entre los componentes.

    • La composición informática estudia principalmente la organización de datos e instrucciones, el algoritmo de operaciones básicas, el acceso, la transmisión y el procesamiento de datos, el modo de control del flujo de datos y el flujo de instrucciones, etc.

  • Realización Computacional: Realización Física Compuesta por Computadoras

    • Incluyendo: la estructura física de los procesadores, la memoria principal y otros componentes, la integración y velocidad de los dispositivos, el diseño de dispositivos especiales, la división y conexión de módulos, plug-ins y backplanes, tecnología de transmisión de señales, fuente de alimentación, refrigeración y tecnología de ensamblaje de máquinas, y proceso y tecnología de fabricación, etc.
    • Enfoque en: tecnología de dispositivos (desempeñando un papel principal), tecnología de microensamblaje.
  • Una arquitectura puede tener múltiples componentes.

  • Una composición puede tener múltiples realizaciones físicas.

  • máquina de la serie

    • Una serie de diferentes modelos de computadoras producidas por el mismo fabricante con la misma arquitectura de sistema pero con diferentes componentes e implementaciones.

1.2.4 Clasificación de la arquitectura del sistema informático

  • Taxonomía de Fung

    • Clasifica las computadoras por su grado máximo de paralelismo.

    • Máximo paralelismo: El número máximo de dígitos binarios que un sistema informático puede procesar por unidad de tiempo.

    • Un sistema informático está representado por un punto en el plano del sistema de coordenadas cartesianas, la abscisa indica el ancho de la palabra ( n bits) y la ordenada indica el número de palabras que se pueden procesar a la vez ( m palabras). m × n representa su grado máximo de paralelismo.

      • Word Serial y Bit Serial WSBS (Word Serial y Bit Serial)
        • Ordenador serie, m=1,n=1
      • Word Parallel y Bit Serial WPBS (Word Parallel y Bit Serial):
        • Computadora paralela de procesamiento de segmentos de bits, MPP, computadora asociativa, m=1, n>1;
      • WSBP (Word Serial and Bit Parallel): procesamiento de textos
        • Monoprocesador tradicional, m > 1, n=1
      • Word Parallel y Bit Parallel WPBP (Word Parallel y Bit Parallel)
        • Computadora completamente paralela; m > 1, n > 1
    • La principal desventaja: solo considera el paralelismo de datos, no considera el paralelismo de instrucciones, tareas y trabajos

  • Taxonomía de Flynn

    • Clasificación por poliploidía de flujo de instrucciones y flujo de datos.

    • Flujo de instrucciones: La secuencia de instrucciones que ejecuta una computadora.

    • Flujo de datos: una secuencia de datos invocada por un flujo de instrucciones.

    • Poliploidía: el número máximo de instrucciones o datos que se encuentran simultáneamente en la misma etapa de ejecución en un componente restringido de un sistema.

    • La taxonomía de Flynn divide la estructura de los sistemas informáticos en cuatro categorías:

      • Datos únicos de instrucción única (SISD)

      • Datos múltiples de instrucción única (SIMD)

      • Flujo de datos único de flujo de instrucciones múltiples (MISD)

      • Instrucción Múltiple Datos Múltiples (MIMD)

1.3 Técnicas de análisis cuantitativo

1.3.1 Principios cuantitativos del diseño de sistemas informáticos

4 principios cuantitativos:

  • Enfócate en eventos recurrentes

    • La selección se realiza sobre la base de métodos de optimización para situaciones frecuentes con el fin de obtener más mejoras globales.

    • La optimización se refiere a asignar más recursos, lograr un mayor rendimiento o asignar más energía, etc.

  • la ley de Amdahl

    • La aceleración del rendimiento del sistema que se puede obtener acelerando la ejecución de un componente está limitada por el porcentaje de tiempo de ejecución de ese componente con respecto al tiempo total de ejecución en el sistema.
    • Aceleración del rendimiento del sistema:

inserte la descripción de la imagen aquí

  • La aceleración depende de dos factores:

    • Proporción que se puede mejorar: En el sistema antes de la mejora, la proporción del tiempo de ejecución de la parte que se puede mejorar con respecto al tiempo total de ejecución.
    • Siempre es menor o igual a 1.
  • Aceleración de componentes: puede mejorar el múltiplo de la mejora del rendimiento después de una mejora parcial.

    • Es la relación entre el tiempo de ejecución requerido antes de la mejora y el tiempo de ejecución después de la mejora.

    • En general, la aceleración del componente es mayor que 1.

  • El tiempo total de ejecución del programa mejorado.

inserte la descripción de la imagen aquí

  • La aceleración del sistema es la relación entre el tiempo total de ejecución antes y después de la mejora.

inserte la descripción de la imagen aquí

  • Una regla descendente con rendimiento mejorado

    • Si la mejora del rendimiento solo se realiza en una parte de las tareas informáticas, cuantas más mejoras se realicen, más limitada será la mejora general del rendimiento.

    • Si solo se mejora y optimiza una parte de la tarea global, la aceleración obtenida no es más que

      ​ 1/(1-proporción que se puede mejorar)

  • fórmula de rendimiento de la CPU

    • Tiempo de CPU requerido para ejecutar un programa

    • Tiempo de CPU = número de ciclos de reloj necesarios para ejecutar el programa x tiempo de ciclo de reloj

      • Entre ellos, el tiempo de ciclo del reloj es el recíproco de la frecuencia del reloj del sistema.
    • Promedio de ciclos de reloj por instrucción ejecutada CPI

      • CPI = número de ciclos de reloj necesarios para ejecutar el programa/IC
      • IC: el número de instrucciones ejecutadas
    • El tiempo de CPU para la ejecución del programa se puede escribir como

      • Tiempo de CPU = IC × CPI × tiempo de ciclo de reloj
    • El rendimiento de una CPU depende de 3 parámetros

      • Tiempo de ciclo del reloj: depende de la tecnología de implementación del hardware y la composición de la computadora.

      • CPI: depende de la composición de la computadora y la estructura del conjunto de instrucciones.

      • IC: depende de la estructura del conjunto de instrucciones y la tecnología de compilación.

    • Mayor refinamiento de la fórmula de rendimiento de la CPU

      • Supuesto: el sistema informático tiene n clases de instrucciones;
      • CPI i : el tiempo de procesamiento de la i-ésima instrucción;
      • IC i : el número de ocurrencias de la i-ésima instrucción en el programa;
      • Entonces el número de ciclos de reloj de la CPU = ∑(CPI i * IC i )
      • Tiempo de CPU = número de ciclos de reloj necesarios para ejecutar el programa x tiempo de ciclo de reloj

      ​ = ∑(CPI i * IC i ) × tiempo de ciclo de reloj

  • El principio de la localidad del programa

    • La distribución de las direcciones de memoria a las que se accede durante la ejecución del programa no es aleatoria, sino relativamente agrupada.

    • Una regla general de uso común

      • El 90% del tiempo de ejecución del programa está en la ejecución del 10% del código del programa.
    • localidad temporal de los programas

      • Es probable que la información que el programa está a punto de usar sea la información que se está usando actualmente.
    • Programa Localidad Espacial

      • Es probable que la información que el programa está a punto de usar sea espacialmente adyacente o cercana a la información que se está usando actualmente.

1.3.2 Evaluación del desempeño del sistema informático

  • Tiempo de ejecución y rendimiento

    • La forma de evaluar el rendimiento de una computadora está relacionada con el ángulo desde el cual el probador mira el problema.
    • Lo que les importa a los usuarios es: el tiempo de ejecución de un solo programa (el tiempo dedicado a ejecutar un solo programa es muy pequeño)
    • Lo que le importa al administrador del centro de procesamiento de datos es: tasa de rendimiento (muchas tareas que se pueden completar en una unidad de tiempo)
    • Supongamos que dos computadoras son X e Y, X es más rápida que Y significa:
      • Para una tarea dada, el tiempo de ejecución de X es menor que el tiempo de ejecución de Y
      • X tiene n veces el rendimiento de Y , y el tiempo de ejecución es inversamente proporcional al rendimiento
    • El tiempo de ejecución se puede definir de varias maneras:
      • El tiempo total que tarda una computadora en completar una tarea, incluido el acceso al disco, el acceso a la memoria, la entrada/salida, la sobrecarga del sistema operativo, etc.
      • Tiempo de CPU: el tiempo que la CPU dedica a ejecutar un programa determinado, excluyendo el tiempo de espera de E/S y el tiempo dedicado a ejecutar otros programas.
        • Tiempo de CPU del usuario: tiempo de CPU consumido por los programas de usuario.
        • Tiempo de CPU del sistema: tiempo de CPU consumido por el sistema operativo durante la ejecución de programas de usuario.
  • programa de evaluación comparativa

    • La mejor opción para un programa de referencia para probar y comparar el rendimiento es una aplicación real. (por ejemplo, compilador)

    • En el pasado, a menudo se usaban procedimientos simplificados, tales como:

      • Programa de prueba principal: un pequeño programa compuesto por segmentos de código clave seleccionados de programas reales.
      • Pequeño programa de prueba: un pequeño programa simple con solo unas pocas docenas de líneas.
      • Programa de prueba sintético: un programa que se sintetiza artificialmente.
    • Whetstone y Dhrystone son los procedimientos de prueba sintéticos más populares.

    • Whetstone es un completo programa de prueba escrito en lenguaje FORTRAN, compuesto principalmente por programas que realizan operaciones de punto flotante, operaciones aritméticas de enteros, llamadas a funciones, indexación de matrices, transferencias condicionales y funciones trascendentales.

    • Dhrystone es uno de los puntos de referencia más comunes para probar el rendimiento de enteros del procesador

    • Desde el punto de vista del rendimiento de la prueba, el procedimiento de prueba anterior no es creíble.

      • razón:

      • Estos programas son relativamente pequeños y unilaterales;

      • Los arquitectos de sistemas y los diseñadores de compiladores pueden "coludirse" para optimizar su computadora para estos programas de prueba, haciendo que la computadora parezca tener un mayor rendimiento. máximo rendimiento

    • El resultado de la prueba de rendimiento no solo está relacionado con el procedimiento de prueba utilizado, sino también con las condiciones en las que se lleva a cabo la prueba.

    • Lo que los diseñadores de Benchmark preguntan a los fabricantes

      • Utilice el mismo compilador;
      • Todos los programas en el mismo idioma usan el mismo conjunto de indicadores de compilación.
    • Una pregunta: si se permite la modificación del programa fuente del programa de prueba. Tres enfoques diferentes:

      • No se permiten modificaciones.

      • Se permiten modificaciones, pero es casi imposible modificarlas debido a la complejidad o el tamaño del programa de prueba.

      • Se permiten modificaciones, siempre que el resultado final sea el mismo.

    • Benchmark suite (Benchmark): Consta de varias aplicaciones reales.

    • (Puede reflejar de manera más completa el rendimiento de procesamiento de la computadora en todos los aspectos)

    • La familia SPEC: el conjunto de procedimientos de prueba más exitoso y común

    • (Desarrollado por Standard Performance Evaluation Corporation de los Estados Unidos)

    • Programa de referencia de prueba de rendimiento de procesamiento de transacciones (TP):

      • Se utiliza para probar la capacidad de la computadora en el procesamiento de transacciones, incluido el acceso y la actualización de la base de datos.
  • comparación de rendimiento

    • Tiempo total de ejecución: el tiempo total que tarda la computadora en ejecutar todos los programas de prueba
    • Tiempo medio de ejecución: la media aritmética del tiempo de ejecución de cada programa de prueba
    • Tiempo de ejecución ponderado: el promedio ponderado del tiempo de ejecución de cada programa de prueba

1.4 Desarrollo de la estructura del sistema informático

1.4.1 Estructura de Von Neumann

  • El punto básico del principio del programa almacenado: unidad de instrucción

    • Los programas y los datos se almacenan previamente en la memoria de la computadora. Una vez que se inicia la computadora, estos programas se pueden ejecutar de acuerdo con el orden lógico especificado por el programa, y ​​el trabajo de procesamiento descrito por el programa se puede completar automáticamente.
  • Características principales de las estructuras de Von Neumann

    • Centrado en calculadoras.
    • En la memoria, las instrucciones y los datos reciben el mismo tratamiento.
      • Las instrucciones, como los datos, pueden operarse, es decir, el programa compuesto por instrucciones puede modificarse.
    • La memoria es una estructura unidimensional a la que se accede por dirección y se direcciona linealmente en secuencia, y el número de bits en cada unidad es fijo.
    • Las instrucciones se ejecutan secuencialmente.
      • Generalmente, las instrucciones se ejecutan en el orden en que están almacenadas en la memoria.
      • Las bifurcaciones del programa se realizan mediante instrucciones de transferencia.
      • El contador de instrucciones PC indica la dirección en memoria de la instrucción que se está ejecutando actualmente.
    • Las instrucciones consisten en códigos de operación y códigos de dirección.
    • Las instrucciones y los datos se expresan en código binario, utilizando operaciones binarias.
  • Mejoras realizadas en la estructura del sistema.

    • Mejora de los métodos de entrada y salida
    • Uso de la tecnología de procesamiento en paralelo
    • La evolución de la organización de la memoria.
    • Desarrollo del conjunto de instrucciones
      • computadora con conjunto de instrucciones complejas (CISC)
      • Computadora con conjunto de instrucciones reducido (RISC)

1.4.2 El impacto del software en la estructura del sistema

  • Portabilidad del software: una pieza de software se puede trasplantar de una computadora a otra sin modificación o con solo una pequeña cantidad de modificación. La diferencia es solo la diferencia en el tiempo de ejecución. Decimos que las dos computadoras son compatibles con el software.

  • Maneras comunes de lograr la portabilidad del software:

    • maquina en serie
    • Simulación y Emulación
    • Lenguaje unificado de alto nivel
  • máquina de la serie

    • Una serie de diferentes modelos de máquinas producidas por el mismo fabricante con la misma estructura de sistema pero con diferentes componentes e implementaciones. Puede resolver mejor la contradicción entre la estructura del sistema relativamente estable requerida por el desarrollo de software y el rápido desarrollo de la tecnología de dispositivos y hardware.

    • software compatible

      • Compatibilidad ascendente (inferior): un programa compilado de acuerdo con una determinada marcha puede ejecutarse en una marcha superior (inferior) sin modificaciones.
      • Compatibilidad hacia adelante (hacia atrás): un programa compilado para un cierto tipo de máquina que se puso en el mercado en un período determinado puede ejecutarse en máquinas que se pusieron en el mercado antes (después) sin modificaciones.
      • La compatibilidad con versiones anteriores es una característica fundamental de las máquinas de serie y debe lograrse.
      • Haz tu mejor esfuerzo para ser compatible hacia arriba.
      • La compatibilidad hacia adelante y la compatibilidad con versiones anteriores se pueden ignorar.
        • Máquina compatible: Computadoras con la misma estructura de sistema producidas por diferentes compañías
    • Simulación y Emulación

      • Haga que el software sea portátil entre máquinas con diferentes estructuras de sistema.

        • Implementar otra estructura de sistema encima de otra estructura de sistema.
        • Desde la perspectiva del conjunto de instrucciones, es implementar el conjunto de instrucciones de otra máquina en una máquina.
      • Simulación: uso de software para implementar el conjunto de instrucciones de otra máquina (llamada máquina virtual) en una máquina existente (llamada máquina host).

        • Esto generalmente se logra por medio de la interpretación.
        • Funciona más lento y funciona mal.
      • Simulación: use un microprograma en una máquina existente (máquina host) para interpretar el conjunto de instrucciones de otra máquina (máquina de destino)

        • Se ejecuta más rápido que los métodos analógicos
        • La emulación solo se puede usar entre máquinas con una pequeña diferencia en la estructura del sistema
    • Lenguaje unificado de alto nivel

      • Un método ideal para realizar la migración de software
      • Difícil de lograr

1.4.3 El impacto del desarrollo de dispositivos en la estructura del sistema

  • Ley de Moore
    • El número de transistores integrados en un chip de circuito integrado se duplica cada 18 meses.
  • La generación de las computadoras se basa principalmente en los dispositivos como estándar de división.
    • Tienen sus propias características en términos de dispositivos, arquitectura del sistema y tecnología de software.

1.4.4 Impacto de las aplicaciones en la estructura del sistema

  • Diferentes aplicaciones plantean diferentes requisitos para el diseño de la estructura del sistema informático.
  • Los requisitos de la aplicación son la fuerza impulsora más fundamental para el desarrollo de la estructura del sistema informático.
  • Algunas áreas especiales: necesitan una estructura de sistema de alto rendimiento
  • El rendimiento de la computadora cae con el tiempo

1.4.5 Ciclo de vida de la estructura del sistema

  • El ciclo de vida de la estructura del sistema: desde el nacimiento, desarrollo, madurez hasta la muerte
    • Se tarda entre 5 y 7 años desde la madurez del hardware hasta la madurez del software del sistema.
    • Desde la madurez del software del sistema hasta la madurez del software de la aplicación, pasarán entre 5 y 7 años.
    • En otros 5 a 7 años, esta estructura de sistema no existirá como una estructura de sistema principal.

1.5 El desarrollo del paralelismo en la arquitectura de sistemas informáticos

1.5.1 El concepto de paralelismo

  • Paralelismo: un sistema informático realiza múltiples cálculos u operaciones al mismo tiempo o dentro del mismo intervalo de tiempo.

    • El paralelismo existe siempre que se superpongan entre sí en el tiempo.
  • Simultaneidad: Dos o más eventos ocurren al mismo tiempo.

  • Concurrencia: Dos o más eventos ocurren dentro del mismo intervalo de tiempo.

  • Procesamiento paralelo: extracción de eventos paralelos en procesos informáticos y habilitación de altos niveles de paralelismo.

  • Desde el punto de vista del procesamiento de datos, el nivel de paralelismo, de menor a mayor, se puede dividir en:

    • Cadena cadena de bits: solo se procesa un bit de una palabra a la vez.
      • El método de procesamiento en serie más básico, no hay paralelismo.
    • Unión de bits de cadena: procesa todos los bits de una palabra al mismo tiempo y se serializan diferentes palabras.
      • Empieza a surgir el paralelismo.
    • Cadena de bits paralelos de palabra: el mismo bit (llamado segmento de bit) de muchas palabras se procesa al mismo tiempo.
      • Tiene alto paralelismo.
    • Paralelo completo: procesa todos o parte de los bits de muchas palabras al mismo tiempo.
      • El más alto nivel de paralelismo.
  • Desde el punto de vista del programa ejecutor, los niveles de paralelismo, de menor a mayor, son:

    • Paralelismo intra-instrucción: Paralelismo entre micro-ops en una sola instrucción.

    • Paralelismo a nivel de instrucción: Ejecutar dos o más instrucciones en paralelo.

    • Paralelismo a nivel de subprocesos: ejecución de dos o más subprocesos en paralelo.

      • Por lo general, varios subprocesos derivados de un proceso se utilizan como unidad de programación.
    • Paralelismo a nivel de tarea o de proceso: ejecución de dos o más procesos o tareas (segmentos de programa) en paralelo

      • La unidad de programación es una subrutina o un proceso.
    • Paralelismo a nivel de trabajo o programa: ejecución de dos o más trabajos o programas en paralelo.

1.5.2 Enfoques técnicos para mejorar el paralelismo

  • Tres maneras:
    • Superposición de tiempo: Introducción al factor tiempo
      • Deje que múltiples procesos de procesamiento se escalonen entre sí en el tiempo, y use varias partes del mismo conjunto de equipos de hardware por turnos para superponerse, a fin de acelerar la rotación de hardware y ganar velocidad.
    • Duplicación de recursos: Introduciendo factores espaciales para ganar por cantidad
      • Al configurar repetidamente los recursos de hardware, el rendimiento del sistema informático se puede mejorar considerablemente.
    • Uso compartido de recursos: este es un método de software que permite que varias tareas utilicen el mismo conjunto de dispositivos de hardware en un cierto orden cronológico.

1.5.3 El desarrollo del paralelismo en sistemas de una sola máquina

  • En el proceso de desarrollo de monoprocesadores de alto rendimiento, el principio de superposición de tiempo juega un papel principal.

    • La base para lograr la superposición temporal: la especialización de funciones de componentes
      • Divida un trabajo en varias partes interrelacionadas según la función;
      • asigne cada parte a un componente dedicado;
      • De acuerdo con el principio de superposición de tiempo, el proceso de ejecución de cada parte se superpone en el tiempo, de modo que todas las partes se dividen a su vez para completar un grupo de la misma obra.
  • En monoprocesadores también es muy común la aplicación del principio de duplicación de recursos.

    • memoria multicuerpo

    • Piezas multioperación

      • Las partes comunes se descomponen en varias partes de propósito especial, como partes de suma, partes de multiplicación, partes de división, partes de operaciones lógicas, etc., y la misma parte también se puede configurar repetidamente.
      • La ejecución de la instrucción (si los operandos están listos) puede comenzar tan pronto como el operando requerido por la instrucción esté libre.
      • Esto logra el paralelismo a nivel de instrucción.
    • Procesador de matriz (procesador paralelo)

      • Además, se configuran muchas unidades de procesamiento idénticas, de modo que realizan la misma operación en cada elemento del vector o arreglo al mismo tiempo bajo el comando del mismo controlador y de acuerdo con los requisitos de la misma instrucción, formando un arreglo. procesador.
  • En los monoprocesadores, el concepto de compartir recursos utiliza esencialmente monoprocesadores para simular las funciones de los multiprocesadores, formando el concepto de las llamadas máquinas virtuales.

    • sistema de tiempo compartido

1.5.4 El desarrollo del paralelismo en sistemas multimáquina

  • El sistema de múltiples máquinas sigue los principios de superposición de tiempo, duplicación de recursos y uso compartido de recursos, y se desarrolla en tres multiprocesadores diferentes:

    • Multiprocesador heterogéneo, multiprocesador homogéneo, sistema distribuido
  • Acoplamiento

    • Refleja la solidez de la conexión física y la fuerza de la interacción entre máquinas en un sistema de varias máquinas.
    • Sistema estrechamente acoplado (sistema acoplado directamente): En este sistema, la conexión física entre computadoras tiene una banda de alta frecuencia, generalmente interconectadas por un bus o un interruptor de alta velocidad, y la memoria principal puede ser compartida.
    • Sistema débilmente acoplado (sistema acoplado indirectamente): La interconexión entre computadoras generalmente se realiza a través de canales o líneas de comunicación, y se pueden compartir dispositivos de almacenamiento externo (discos, cintas, etc.). La interacción entre máquinas es a nivel de archivo o conjunto de datos.
  • Especialización de funciones (para lograr la superposición de tiempo)

    • Procesador periférico dedicado
    • procesador de propósito especial
    • sistema multiprocesador heterogéneo
  • Interconexión entre máquinas

    • Sistema tolerante a fallas: para garantizar la confiabilidad del sistema.

    • sistema reconfigurable

      • Se imponen mayores requisitos al rendimiento de la red de interconexión entre ordenadores. Una red de interconexión de máquina a computadora de alto ancho de banda, baja latencia y baja sobrecarga es un requisito previo para un procesamiento paralelo eficiente del programa o del nivel de tarea.
    • Sistemas homogéneos multiprocesador: cada procesador tiene la misma función
      Desarrollo de paralelismo en el sistema

  • El sistema de múltiples máquinas sigue los principios de superposición de tiempo, duplicación de recursos y uso compartido de recursos, y se desarrolla en tres multiprocesadores diferentes:

    • Multiprocesador heterogéneo, multiprocesador homogéneo, sistema distribuido
  • Acoplamiento

    • Refleja la solidez de la conexión física y la fuerza de la interacción entre máquinas en un sistema de varias máquinas.
    • Sistema estrechamente acoplado (sistema acoplado directamente): En este sistema, la conexión física entre computadoras tiene una banda de alta frecuencia, generalmente interconectadas por un bus o un interruptor de alta velocidad, y la memoria principal puede ser compartida.
    • Sistema débilmente acoplado (sistema acoplado indirectamente): La interconexión entre computadoras generalmente se realiza a través de canales o líneas de comunicación, y se pueden compartir dispositivos de almacenamiento externo (discos, cintas, etc.). La interacción entre máquinas es a nivel de archivo o conjunto de datos.
  • Especialización de funciones (para lograr la superposición de tiempo)

    • Procesador periférico dedicado
    • procesador de propósito especial
    • sistema multiprocesador heterogéneo
  • Interconexión entre máquinas

    • Sistema tolerante a fallas: para garantizar la confiabilidad del sistema.

    • sistema reconfigurable

      • Se imponen mayores requisitos al rendimiento de la red de interconexión entre ordenadores. Una red de interconexión de máquina a computadora de alto ancho de banda, baja latencia y baja sobrecarga es un requisito previo para un procesamiento paralelo eficiente del programa o del nivel de tarea.
    • Sistema multiprocesador homogéneo: cada procesador tiene la misma función

      • Compuestos por múltiples procesadores del mismo tipo o al menos con funciones equivalentes, procesan simultáneamente múltiples tareas que pueden ejecutarse en paralelo en el mismo trabajo.

Supongo que te gusta

Origin blog.csdn.net/weixin_48144018/article/details/124957960
Recomendado
Clasificación