¡Urgente! ! ! ! ¡urgente! ! ! ! ! ! ! ! ! ¡urgente! ! ! ! ! ¿Qué problemas resuelve el curso Arquitectura de Computadores? ¿Y la solución? esperando en línea
Arquitectura de Computadora (Arquitectura de Computadora) son las propiedades de la computadora tal como las ven los programadores, es decir, la estructura conceptual y las características funcionales. Según la estructura jerárquica de múltiples niveles del sistema informático, las computadoras vistas por programadores en diferentes niveles tienen diferentes propiedades. En términos generales, las propiedades de las máquinas de bajo nivel son básicamente transparentes para los programadores de máquinas de alto nivel. La arquitectura de computadora comúnmente denominada se refiere principalmente a la estructura del sistema de las máquinas de nivel de lenguaje de máquina. La definición clásica de "arquitectura de computadora" fue propuesta por C.M. Amdahl al presentar el sistema IBM 360 en 1964. Su descripción específica es que "la arquitectura de computadora son las propiedades de la computadora tal como las ven los programadores, es decir, la estructura conceptual y las características funcionales". ”
Conceptos básicos
La arquitectura informática se refiere a una colección de elementos del sistema que están adecuadamente organizados juntos. Estos elementos del sistema cooperan y cooperan entre sí para procesar información para lograr objetivos predefinidos. . Los elementos del sistema que normalmente se incluyen son: software, hardware, personas, bases de datos, documentos y procesos. Entre ellos, el software es una colección de programas, estructuras de datos y documentos relacionados que se utilizan para implementar los métodos, procesos o controles lógicos requeridos. El hardware es equipo electrónico que proporciona potencia informática y equipo mecánico electrónico que proporciona funciones en el mundo externo (como sensores); , motores, bombas de agua, etc.); las personas son usuarios y operadores de hardware y software; las bases de datos son colecciones grandes y organizadas de información a las que se accede a través del software; los documentos son manuales, tablas, gráficos y otra información descriptiva que describe cómo utilizar el sistema; ; los procesos son una serie de pasos que definen el uso específico de cada elemento del sistema o el contexto procesal en el que reside el sistema. Arquitectura de la computadora
8 atributos
1? Representación de datos en la máquina: tipos y formatos de datos que el hardware puede reconocer y operar directamente Arquitectura de la computadora
2? modo: unidad direccionable más pequeña, tipo de modo de direccionamiento, operación de dirección 3? Organización del registro: definición, cantidad y reglas de uso de registros operativos, registros de índice, registros de control y registros especiales 4? mecanismo de control y secuenciación de instrucciones 5? Sistema de almacenamiento: unidad de direccionamiento mínima, modo de direccionamiento, capacidad de memoria principal, espacio máximo direccionable 6? Mecanismo de interrupción: tipo de interrupción, nivel de interrupción y método de respuesta a la interrupción, etc. 7? método de conexión de salida, método de intercambio de datos entre procesador/memoria y dispositivos de entrada y salida, control del proceso de intercambio de datos 8? Protección de la información: método de protección de la información, mecanismo de protección de la información del hardware.
Edite este historial de desarrollo
Los sistemas informáticos han pasado por cuatro etapas diferentes de desarrollo. Arquitectura informática
La primera etapa
Antes de mediados de la década de 1960, era la era temprana del desarrollo de sistemas informáticos. En una época en la que el hardware de uso general era algo común, el software se escribía específicamente para cada aplicación específica y la mayoría de la gente pensaba que el desarrollo de software era algo que no requería planificación previa. El software en este momento es en realidad un programa más pequeño, y el programador y el usuario suelen ser las mismas (o el mismo grupo de) personas. Debido a su pequeña escala, es bastante fácil escribir programas, no existe un enfoque sistemático y no existe una gestión del trabajo de desarrollo de software. Este tipo de entorno de software individualizado hace que el diseño de software sea a menudo sólo un proceso vago que se lleva a cabo implícitamente en la mente de las personas. A excepción de la lista de programas, no se guarda ninguna otra documentación.
La segunda etapa
Desde mediados de los años 1960 hasta mediados de los 1970, es la segunda generación de desarrollo de sistemas informáticos. La tecnología informática ha avanzado mucho en estos 10 años. Los sistemas multiprogramación y multiusuario han introducido nuevos conceptos de interacción persona-computadora, han creado un nuevo ámbito de aplicaciones informáticas y han llevado la cooperación de hardware y software a un nuevo nivel.
Los sistemas en tiempo real pueden recopilar, analizar y transformar datos de múltiples fuentes de información, lo que permite que el control del proceso se produzca en milisegundos en lugar de minutos. Los avances en la tecnología de almacenamiento en línea llevaron al surgimiento de la primera generación de sistemas de gestión de bases de datos. Una característica importante de la segunda generación de desarrollo de sistemas informáticos es la aparición de "talleres de software" donde el software del producto se utiliza ampliamente. Sin embargo, los "talleres de software" básicamente todavía utilizan los métodos de desarrollo de software individualizados formados en los primeros días. Con la creciente popularidad de las aplicaciones informáticas, la cantidad de software se ha expandido rápidamente. Los errores descubiertos durante la ejecución del programa deben corregirse; cuando los usuarios tienen nuevas necesidades, el programa debe modificarse en consecuencia cuando se actualiza el hardware o los sistemas operativos; generalmente es necesario modificar los programas para adaptarse al nuevo entorno. Las diversas tareas de mantenimiento de software mencionadas anteriormente consumen recursos en una proporción alarmante. Peor aún, la naturaleza individualizada de muchos programas los hace, en última instancia, inmantenibles. Así empezó a aparecer la "crisis del software". En 1968, científicos informáticos de la Organización del Tratado del Atlántico Norte celebraron una conferencia internacional en la República Federal de Alemania para discutir la crisis del software. En esta conferencia, se propuso y utilizó formalmente el término "ingeniería de software", y nació una disciplina de ingeniería emergente. .
La tercera fase
La tercera generación de desarrollo de sistemas informáticos comenzó a mediados de la década de 1970 y abarcó una década completa. La tecnología informática ha avanzado mucho en estos 10 años. Los sistemas distribuidos han aumentado considerablemente la complejidad de los sistemas informáticos. Las redes de área local, las redes de área amplia, las comunicaciones digitales de banda ancha y la mayor demanda de acceso a datos "instantáneos" han impuesto mayores exigencias a los desarrolladores de software. Sin embargo, durante este período, el software todavía se utilizaba principalmente en la industria y el mundo académico, y las aplicaciones personales todavía eran escasas. La característica principal de este período es la aparición de los microprocesadores y su uso generalizado. Los productos "inteligentes" con microprocesadores como núcleo se pueden encontrar en todas partes. Por supuesto, el producto inteligente más importante es el ordenador personal. En menos de 10 años, las computadoras personales se han convertido en un bien de consumo masivo. En la cuarta generación del desarrollo de sistemas informáticos, ya no se valoran una sola computadora y un programa. Lo que la gente siente es el efecto integral del hardware y el software. Las potentes computadoras de escritorio y las LAN y WAN controladas por sistemas operativos complejos, junto con software de aplicación avanzado, se han convertido en la corriente principal actual. La arquitectura informática se ha transformado rápidamente de un entorno de mainframe centralizado a un entorno distribuido cliente/servidor (o navegador/servidor). La red mundial de información proporciona las condiciones para que las personas mantengan una comunicación amplia y compartan plenamente recursos. La industria del software ya ocupa una posición fundamental en la economía mundial. A medida que avanzan los tiempos, siguen surgiendo nuevas tecnologías. La tecnología orientada a objetos ha reemplazado rápidamente a los métodos tradicionales de desarrollo de software en muchos campos.
Resumen
La "tecnología de cuarta generación" de desarrollo de software ha cambiado la forma en que la industria del software desarrolla programas informáticos. Los sistemas expertos y el software de inteligencia artificial finalmente han salido del laboratorio y se han convertido en aplicaciones prácticas, resolviendo una gran cantidad de problemas prácticos. El software de redes neuronales artificiales que utiliza lógica difusa muestra el brillante futuro del reconocimiento de patrones y el procesamiento de información antropomórfica. La tecnología de realidad virtual y los sistemas multimedia permiten comunicarse con los usuarios de formas completamente diferentes a las anteriores. Los algoritmos genéticos permiten desarrollar software que reside en computadoras biológicas paralelas a gran escala.
Editar los principios básicos de este párrafo
La arquitectura informática resuelve los problemas que deben resolverse en los aspectos generales y funcionales del sistema informático. Es un concepto diferente a la composición informática. e implementación informática. Una arquitectura puede tener múltiples componentes y un componente puede tener múltiples implementaciones físicas. Arquitectura informática
La implementación lógica de la estructura del sistema informático, incluida la composición y el diseño lógico del flujo de datos interno y el flujo de control de la máquina. Su objetivo es combinar racionalmente varios componentes y equipos en una computadora para lograr una estructura de sistema específica y al mismo tiempo cumplir con la relación rendimiento-precio deseada. En términos generales, el alcance de la investigación de la composición de computadoras incluye: determinar el ancho de la ruta de datos, determinar el grado máximo de intercambio de varias operaciones en componentes funcionales, determinar componentes funcionales dedicados, determinar el paralelismo de componentes funcionales, diseñar estrategias de almacenamiento en búfer y colas, Diseño mecanismos de control y determinar qué tecnologías confiables utilizar, etc. La implementación física de la composición de una computadora.
Incluyendo la estructura física de los procesadores, la memoria principal y otros componentes, la integración y velocidad de los dispositivos, la división y conexión de dispositivos, módulos, complementos y backplanes, el diseño de dispositivos especiales, tecnología de transmisión de señales, fuente de alimentación, refrigeración. y tecnología de ensamblaje, y procesos y tecnologías de fabricación relacionados.
Editar esta clasificación
Método de clasificación de Flynn
En 1966, Michael.J.Flynn propuso la multiplicidad basada en el flujo de instrucciones y el flujo de datos. se definen a continuación. ? Flujo de instrucciones: la secuencia de instrucciones ejecutadas por la máquina Arquitectura de la computadora Flujo de datos: la secuencia de datos llamados por el flujo de instrucciones, incluidos los datos de entrada y los resultados intermedios. Poliploidía: la secuencia de instrucciones o datos que se encuentran en la misma etapa de ejecución. al mismo tiempo en el componente de cuello de botella en el rendimiento del sistema Número máximo posible. Flynn divide los sistemas informáticos en cuatro categorías basándose en diferentes métodos de organización del flujo de instrucciones y flujo de datos. 1. Flujo de instrucciones único flujo de datos único (SingleInstructionStreamSingleDataStream, SISD) SISD es en realidad una computadora tradicional de un solo procesador de ejecución secuencial. Su componente de instrucción solo decodifica una instrucción a la vez y solo asigna datos a un componente operativo. 2. Flujo de instrucciones único Flujo de datos múltiples (SIMD) SIMD está representado por un procesador paralelo. La estructura es como se muestra en la figura. El procesador paralelo incluye múltiples unidades de procesamiento repetidas PU1 ~ PUn, controladas por un solo componente de instrucción. mismo flujo de instrucciones Se requieren asignar diferentes datos requeridos por cada uno. 3. Flujo de instrucciones múltiples Flujo de datos único (MultipleInstructionStreamSingleDataStream, MISD) La estructura de MISD, que tiene n unidades de procesamiento, realiza diferentes procesamientos en el mismo flujo de datos y sus resultados intermedios de acuerdo con los requisitos de n instrucciones diferentes. La salida de una unidad de procesamiento sirve como entrada para otra unidad de procesamiento. 4. Flujo de instrucciones múltiples Flujo de datos múltiples (MultipleInstructionStreamMultipleDataStream, MIMD) La estructura de MIMD se refiere a un sistema de múltiples máquinas que puede lograr un paralelismo integral en todos los niveles de trabajos, tareas, instrucciones, etc. Los multiprocesadores pertenecen a MIMD. (2)
Método de clasificación de Feng
En 1972, Feng Zeyun propuso utilizar el paralelismo máximo para clasificar arquitecturas informáticas. El llamado paralelismo máximo Pm se refiere al número máximo de dígitos binarios que el sistema informático puede procesar por unidad de tiempo. Supongamos que el número de dígitos binarios que se pueden procesar en cada ciclo de reloj △ti es Pi, entonces el paralelismo promedio en T ciclos de reloj es Pa = (∑Pi)/T (donde i es 1, 2,..., T ). El paralelismo promedio depende del grado de funcionamiento del sistema y no tiene nada que ver con la aplicación. Por lo tanto, la utilización promedio del sistema en el período T es μ=Pa/Pm=(∑Pi)/(T*Pm). Clasificación de arquitecturas informáticas utilizando el máximo grado de paralelismo. Un punto en el sistema de coordenadas cartesiano plano se utiliza para representar un sistema informático. La abscisa representa el ancho de la palabra (N bits), es decir, el número de dígitos binarios procesados simultáneamente en una palabra, la ordenada representa el ancho del segmento de bits (M); bits), es decir, el número de bits de una palabra, el número de palabras que se pueden procesar simultáneamente en la película, entonces el grado máximo de paralelismo Pm = N * M. De esto se derivan cuatro estructuras informáticas diferentes: ①Serie de palabras, Serie de bits (abreviado WSBS). Donde N=1, M=1. ② Palabra paralela, bit serial (WPBS para abreviar). Donde N=1, Gestión;1. ③Palabra serial, bit paralelo (WSBP para abreviar). Entre ellos Ngt; 1, M=1. ④Paralelismo de palabras y paralelismo de bits (WPBP para abreviar). Entre ellos Ngt;1, Mgt;1.
Edita esta sección de innovación técnica
La arquitectura del ordenador se basa en la teoría de la máquina de Turing y pertenece a la arquitectura de von Neumann.
En esencia, la teoría de la máquina de Turing y la arquitectura de von Neumann son series unidimensionales, mientras que los procesadores de múltiples núcleos son estructuras paralelas discretas distribuidas, y es necesario resolver el problema de la falta de coincidencia entre los dos. En primer lugar, está el problema de correspondencia entre el modelo de máquina de Turing en serie y la implementación físicamente distribuida de procesadores multinúcleo. El modelo de máquina de Turing implica un modelo de programación en serie. Es difícil para los programas en serie obtener una aceleración del rendimiento utilizando múltiples núcleos de procesador distribuidos físicamente. Al mismo tiempo, el modelo de programación paralela no se ha promocionado bien y solo se limita a campos limitados como la informática científica. Mecanismo para lograr la coincidencia entre el modelo de máquina de Turing en serie y los procesadores multinúcleo distribuidos físicamente o para reducir la brecha entre los dos, resolviendo el problema de la "dificultad en la programación de programas en paralelo y la pequeña aceleración de los programas en serie". Arquitectura informática
En términos de soporte de aplicaciones paralelas multiproceso, los futuros procesadores multinúcleo deberían considerar las dos direcciones siguientes. El primero es introducir nuevos modelos de programación que puedan expresar mejor el paralelismo. Debido a que el nuevo modelo de programación permite a los programadores expresar explícitamente el paralelismo del programa, el rendimiento se puede mejorar enormemente. Por ejemplo, el procesador Cell proporciona diferentes modelos de programación para admitir diferentes aplicaciones. La dificultad radica en cómo promover eficazmente este modelo de programación y cómo resolver los problemas de compatibilidad. El segundo tipo de dirección es proporcionar un mejor soporte de hardware para reducir la complejidad de la programación paralela. Los programas paralelos a menudo necesitan utilizar mecanismos de bloqueo para implementar operaciones de sincronización y exclusión mutua en recursos críticos. Los programadores deben determinar cuidadosamente la ubicación del bloqueo, porque las estrategias de bloqueo conservadoras limitan el rendimiento del programa, mientras que las estrategias de bloqueo precisas aumentan en gran medida la complejidad de la programación. . complejidad. Algunos estudios han explorado eficazmente este aspecto. Por ejemplo, el mecanismo SpeculativeLockElision permite ignorar las operaciones de bloqueo ejecutadas por el programa sin conflictos, lo que reduce la complejidad de la programación y tiene en cuenta el rendimiento de la ejecución paralela del programa. Este mecanismo permite a los programadores centrarse en la corrección del programa sin tener que preocuparse demasiado por el rendimiento de ejecución del programa. Más radicalmente, el mecanismo TransactionalCoherenceandConsistency (TCC) considera problemas de coherencia de datos en unidades de múltiples operaciones de acceso a memoria (Transacciones), simplificando aún más la complejidad de la programación paralela. Los procesadores multinúcleo comerciales convencionales están dirigidos principalmente a aplicaciones paralelas. Cómo utilizar múltiples núcleos para acelerar programas en serie sigue siendo un tema que merece atención. La tecnología clave es utilizar software o hardware para derivar automáticamente códigos o subprocesos de programas en serie que se pueden ejecutar en paralelo en procesadores multinúcleo. Existen tres métodos principales para acelerar programas en serie en múltiples núcleos, incluidos compiladores paralelos, subprocesos múltiples especulativos y mecanismos de captación previa basados en subprocesos. En la compilación paralela tradicional, el compilador debe dedicar mucho esfuerzo para garantizar que no haya dependencias de datos entre los subprocesos que se van a dividir. Hay una gran cantidad de dependencias ambiguas durante la compilación, especialmente cuando se permite el uso de punteros (como los programas C), y el compilador debe adoptar estrategias conservadoras para garantizar la correcta ejecución del programa. Esto limita en gran medida el grado de concurrencia que los programas en serie pueden explotar y también determina que los compiladores paralelos sólo se pueden utilizar en un rango estrecho. Para resolver estos problemas, se han propuesto mecanismos especulativos de captación previa basados en subprocesos múltiples y basados en subprocesos. Sin embargo, desde que se propuso este concepto hasta ahora, la mayor parte de la investigación en esta dirección se ha limitado al ámbito académico. Solo unos pocos procesadores comerciales han aplicado esta tecnología y solo se limita a campos de aplicación especiales. Creemos que la combinación de técnicas de optimización dinámica y subprocesos múltiples especulativos (incluidos mecanismos de captación previa basados en subprocesos) es una posible tendencia de desarrollo futuro. El problema de coincidencia entre el espacio de direcciones unidimensional de la arquitectura von Neumann y la jerarquía de acceso a la memoria multidimensional de los procesadores multinúcleo. Esencialmente, la arquitectura von Neumann utiliza un espacio de direcciones unidimensional. Los problemas de coherencia de los datos surgen debido a latencias desiguales en el acceso a los datos y a diferentes copias de los mismos datos en múltiples núcleos de procesador. La investigación en este campo se divide en dos categorías: un tipo de investigación introduce principalmente nuevos niveles de acceso a la memoria. El nuevo nivel de acceso a la memoria puede adoptar una implementación distribuida unidimensional. Un ejemplo típico es agregar una red de registro de direccionamiento unificado distribuido. La característica de direccionamiento unificado global evita consideraciones de coherencia de los datos. Al mismo tiempo, en comparación con el acceso tradicional a la caché de gran capacidad, los registros pueden proporcionar velocidades de acceso más rápidas.
Tanto TRIPS como RAW implementan redes de registro similares. Además, el nuevo nivel de acceso a la memoria también puede ser privado. Por ejemplo, cada procesador tiene su propio espacio de memoria de acceso privado. La ventaja es que el espacio de almacenamiento de datos está mejor dividido y no es necesario considerar problemas de coherencia de los datos al lavar datos privados locales. Por ejemplo, el procesador Cell establece un búfer de datos privado para cada núcleo SPE. Otro tipo de investigación implica principalmente el desarrollo de nuevos protocolos de coherencia de caché. La tendencia importante es relajar la relación entre corrección y desempeño. Por ejemplo, el protocolo de caché especulativo ejecuta especulativamente instrucciones relevantes antes de que se confirme la coherencia de los datos, lo que reduce el impacto de las operaciones de acceso a la memoria tardías en la canalización. Además, TokenCoherence y TCC también adoptan ideas similares. El problema de hacer coincidir la diversidad de programas con una única arquitectura. Las aplicaciones futuras presentan diversas características. Por un lado, la evaluación de los procesadores no se limita al rendimiento, sino que también incluye otros indicadores como la fiabilidad y la seguridad. Por otro lado, incluso considerando sólo las mejoras de rendimiento, diferentes aplicaciones contienen diferentes niveles de paralelismo. La diversidad de aplicaciones impulsa a los futuros procesadores a tener arquitecturas flexibles y configurables. TRIPS ha realizado exploraciones fructíferas en esta área, por ejemplo, su núcleo de procesador y su sistema de memoria en chip tienen capacidades configurables, lo que permite a TRIPS extraer simultáneamente paralelismo a nivel de instrucción, paralelismo a nivel de datos y paralelismo a nivel de instrucción. La aparición de nuevas estructuras de procesamiento como multinúcleo y Cell no es solo un evento histórico en la historia de la arquitectura de procesadores, sino también una subversión de los modelos informáticos tradicionales y la arquitectura informática. En 2005, se crearon una serie de arquitecturas informáticas de gran alcance. expuesto, es posible sentar una base fundamental para la arquitectura de la computadora en los próximos diez años, y al menos proporcionar una guía simbólica para el procesador e incluso toda la arquitectura de la computadora. Con el aumento de la densidad informática, los estándares y métodos de medición del rendimiento del procesador y la computadora están cambiando. Desde la perspectiva de las aplicaciones, el rendimiento móvil y sesgado ha encontrado el punto de combinación más satisfactorio y puede detonar una expansión dramática de los equipos. Aunque los dispositivos portátiles son relativamente populares ahora, en términos de potencia informática, escalabilidad y consumo de energía, han comenzado a desempeñar por completo el papel que debería tener un dispositivo portátil, por otro lado, los servidores y computadoras de escritorio que prestan atención al rendimiento están comenzando a desempeñarlo; considerar reducir el consumo de energía. Ponerse al día con la tendencia de una sociedad orientada a la conservación. La propia célula se adapta a este cambio y también crea este cambio por sí misma. Por ello, desde el principio se han enfatizado diferentes estilos de diseño. Además de poder ampliarse múltiples veces, la SPU (Unidad de Procesador Sinérgico) dentro del procesador tiene muy buena escalabilidad, por lo que puede afrontar tanto procesamiento general como dedicado. lograr una reconstrucción flexible de los recursos de procesamiento. Esto significa que, con el control de software adecuado, Cell puede manejar muchos tipos de tareas de procesamiento y al mismo tiempo optimizar la complejidad del diseño.