¿Dónde se almacenan los datos de un bus en un microcontrolador?

0

Puede sonar como una pregunta tonta, pero de alguna manera no puedo responder esto con confianza. Digamos que tenemos un microcontrolador (MCU) con un bus de datos / direcciones y los datos se están moviendo hacia y desde el bus. ¿Dónde exactamente en la MCU se almacenan temporalmente los datos que llegan a este bus? ¿Se encuentra en algún búfer RAM o en algún registro de datos IO para una dirección en particular?

Si no es un bus de datos / direcciones (que tiene direcciones) y los datos vienen en un pin GPIO aleatorio, ¿dónde se almacenan temporalmente estos datos en este caso?

Gracias.

    
pregunta LoveEnigma

2 respuestas

2

Aquí hay un diagrama de bloques de una variante 8051. Probablemente hay cientos de arquitecturas de microcontroladores diferentes. La mayoría son más complicadas que la 8051 (por lo que la elegí, por su relativa simplicidad), y pueden tener características adicionales como DMA (acceso directo a memoria), canalización, cachés, etc., pero casi todas tienen que comenzar con los componentes básicos que se muestran aquí: memoria de programa, memoria de datos (separada en una arquitectura de Harvard, la misma en una arquitectura de von Neumann), decodificación de instrucciones, acumulador (es) y / o archivo de registro, ALU, lógica de interrupción y periféricos. (El 8051 tiene un caché de instrucciones rudimentario que puede mirar hacia delante 6 instrucciones).

El 8051 es una máquina basada en acumuladores que también tiene un conjunto de cuatro archivos de registro que en realidad están ubicados en la RAM. Es un microcontrolador de 8 bits, por lo que el bus de datos tiene 8 bits de ancho.

Tenga en cuenta que, en todas partes, los datos deben almacenarse fuera del bus de datos, hay pestillos. Los datos pueden ser transferidos desde y hacia el acumulador. La ALU (unidad lógica aritmética) tiene dos registros para almacenar sus dos operandos, uno de los cuales puede provenir del acumulador y el otro una fuente de bus de datos (memoria o registro periférico, por ejemplo), o ambos del bus de datos (en el que En caso de que el primero se mantenga en uno de los registros ALU mientras que el segundo está cargado). El registro B solo se utiliza para la instrucción de multiplicación. Cada uno de los puertos tiene su propio pestillo. Los temporizadores tienen registros implícitamente dentro de ellos.

    
respondido por el tcrosley
5

A un nivel muy básico, los datos entrantes (o salientes) se mantienen en un conjunto de pestillos. Esto puede (o no) ser un "Registro" en la vista de la programación del procesador.

Y los datos pueden o no estar guardados en un caché local, nuevamente dependiendo de la arquitectura del procesador. Los pequeños microcontroladores tienen rutas de manejo de datos muy básicas, y los microprocesadores de gama alta tienen un manejo de datos mucho más sofisticado que incluye tal vez megabytes de memoria RAM interna de caché.

    
respondido por el Richard Crowley

Lea otras preguntas en las etiquetas