Estructura de Harvard y estructura de Von Neumann (incluido el análisis de estructura del sistema STM32)

La memoria es una parte importante del microcontrolador.Los diferentes tipos de microcontroladores tienen diferentes estructuras y capacidades de almacenamiento, pero la memoria tiene el mismo propósito para almacenar programas y datos. Hay dos formas básicas de estructuras de memoria en los microcontroladores.

estructura de von Neumann

La estructura de Von Neumann, también conocida como estructura de Princeton, es una estructura de memoria que combina la memoria de programa y la memoria de datos en el mismo espacio de direccionamiento. La ROM y la RAM apuntan a diferentes ubicaciones de la misma memoria, y el ancho de las instrucciones y los datos es el mismo. Es una estructura de almacenamiento común para microcomputadoras.
Los procesadores centrales que utilizan la estructura de von Neumann incluyen: el 8086 de Intel y sus procesadores de serie, el ARM7 de ARM y los procesadores MIPS de MIPS.
inserte la descripción de la imagen aquí

estructura de harvard

La estructura de Harvard es una mejora y perfección de la estructura de von Neumann. Es una estructura de memoria que divide el almacenamiento de programas y el almacenamiento de datos en dos espacios de direccionamiento. El programa y los datos se almacenan por separado, lo que permite que las instrucciones y los datos tengan diferentes anchos de datos. , es una estructura de datos comúnmente utilizada para microcontroladores. Tiene una alta eficiencia de ejecución.
Los microcontroladores que utilizan la estructura de Harvard incluyen: los chips de la serie PIC de Microchip, la serie MC68 de Motorola, la serie AVR de Atmel y los microcontroladores ARM9, ARM10 y ARM11 de ARM, 8051 también pertenecen a la estructura de Harvard.
inserte la descripción de la imagen aquí

Resumen de la estructura de Von Neumann y la estructura de Harvard

En primer lugar, lo más esencial para distinguir entre los dos es mirar la memoria, si la memoria de datos y la memoria de programa están separadas, es una estructura de Harvard, y viceversa, es una estructura de von Neumann. Debido a que solo hay una memoria, y el ancho de los contenidos almacenados en la misma memoria debe ser el mismo, las instrucciones del programa y los datos de la estructura de von Neumann tienen el mismo ancho. La estructura de Harvard tiene dos memorias y los anchos de las diferentes memorias pueden ser diferentes, por lo que las instrucciones y los datos en la estructura de Harvard tienen diferentes anchos de datos.
En términos de eficiencia de ejecución, la eficiencia de ejecución de la estructura de Harvard es mayor que la de la estructura de von Neumann. Las instrucciones y los datos de la estructura de Von Neumann comparten un bus, lo que significa que al ejecutar comandos, la estructura de Von Neumann primero debe leer las instrucciones a través del bus y luego operar con los datos de acuerdo con las instrucciones después de la lectura. Cada operación es primero la instrucción y luego los datos, y no es posible obtener instrucciones y operar datos al mismo tiempo. La estructura de Harvard es diferente. Sus dos memorias están separadas y hay dos buses que pueden operar con datos al leer instrucciones. Los dos se realizan al mismo tiempo, por lo que la eficiencia es mayor.
Estructura de Von Neumann: 1. La memoria de programa y la memoria de datos son la misma memoria 2. La instrucción y el ancho de datos son la misma
estructura de Harvard: 1. La memoria de programa y la memoria de datos están separadas 2. La instrucción y el ancho de datos son diferentes 3. La eficiencia de ejecución es mayor

Estructura del sistema STM32

El microcontrolador STM32F103 está conectado internamente entre sí a través de un AHB (bus avanzado de alta velocidad) de varios niveles, como se muestra en la figura.
inserte la descripción de la imagen aquí

Cortex-M3 adopta la estructura de Harvard, por lo que STM32 proporciona un bus de instrucción independiente (ICode) para que las instrucciones del programa se conecten a la memoria flash. Entre ellos, FLITE se utiliza para admitir el almacenamiento previo de instrucciones y tiene funciones como la interfaz de lectura del búfer de búsqueda previa, las operaciones de programación y borrado de Flash y las operaciones de protección de lectura y escritura.

Tanto el núcleo Cortex como la unidad DMA se pueden usar como maestros del bus. Cuando acceden a la SRAM y al bus periférico al mismo tiempo, necesitan usar el dispositivo presidente para arbitrar el dispositivo que usa el bus. La matriz de bus se utiliza para arbitrar el núcleo del procesador y el acceso DMA, y está conectada a 4 buses principales: DCode, System (S-bus) y dos buses DMA.

La matriz de bus también conecta 4 buses esclavos para conectar SRAM interna, memoria flash interna (FLITE), controlador de memoria estática variable (FSMC, para conectar memoria externa) y puente de conversión AHB-APB. El puente de conversión AHB-APB conecta todos los periféricos a través de dos buses periféricos avanzados APB. APB2 puede funcionar a toda velocidad a 72 MHz, pero APB1 está limitado a 36 MHz y la gestión del reloj de todo el sistema se realiza a través del módulo RCC.

Simplemente recuerde que la estructura del sistema STM32 consta de una matriz de bus y sus partes conectadas por el bus. Incluyendo 4 buses principales y 4 buses esclavos, entre los 4 buses principales, DCode y System (S-bus) están conectados al núcleo Cortex-M3, y dos buses DMA están conectados a DAM1 y DMA2; 4 buses esclavos están conectados respectivamente a SRAM interna y memoria flash interna, memoria externa y puente de conversión AHB. El puente de conversión AHB conecta los periféricos a través de APB1 y APB2.

Supongo que te gusta

Origin blog.csdn.net/Tao_9/article/details/129698781
Recomendado
Clasificación