Autor Tema: PIC con 4 GB de memoria  (Leído 3043 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RodrigoAndres

  • PIC16
  • ***
  • Mensajes: 171
PIC con 4 GB de memoria
« en: 30 de Julio de 2016, 10:38:05 »
hola a todos entodo pic,  estaba mirando la datashet (hoja de datos) del microcontrolador PIC32MX1XX/2XX 28/36/44-PIN FAMILY y dice algo muy raro en la parte donde explican sobre la memoria:



me parece que 4 gigas de ram es demaciado no sera que se equivocaron? yo creo que deberia ser mas bien 4 megas, pues el pic32 que logre conseguir es pequeño y no creo que le quepan 4 gigas e sque tengo la duda nose si hay algo que no estoy entendiendo o de verdad tiene 4 gigas de memoria o solo es en algunos modelos seguro deben ser chips muy grandes y caros

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC con 4 GB de memoria
« Respuesta #1 en: 30 de Julio de 2016, 11:54:27 »
No es que hay 4Gb, esta es una memoria VIRTUAL, el micro es de 32bits por lo tanto puede direccionar hasta 4Gb con esos 32bits,

La diferencia lo hace es que para el usuario y para el procesador se utiliza la DIRECCION de memoria virtual, mientras que los perifericos usan las DIRECCIONES fisicas.

Como te decia el micro puede al ser de 32 bits generar las direcciones, pero imagino que por el tema de permisos, como por ejemplo espacios de RAM que pueden ser ejecutables o no. lo dividieron en esas partes.

http://ww1.microchip.com/downloads/en/DeviceDoc/61115F.pdf

Observaras que en el espacio virtual, la memoria esta dividida en 2, una kernel y otra de usuario, pero tambien notar que la de kernel se puede acceder desde 2 direcciones virtuales, es decir la posiciones de memoria:

0x8000.0000 virtual = 0xA000.0000 virtual = 0x0000.0000 fisica

La unica memoria que existe es la fisica en este caso, la virtual es darle "otra direccion" a la memoria fisica (en este caso, no hablo de un micro con MMU pero seria un microprocesador eso).

En fin no es que esos 4Gb sean memoria, solo algunas partes se corresponden a memorias.

EDIT: Acabo de leer y basicamente la division y el por que esta 2 veces repetido la memoria de kernel en el espacio virtual, es por el micro M4K, en cual tiene por decirlo asi 2 modos de funcionamiento, en realidad son "permisos", pensalo asi como el sistema operativo de las PC y un programa, un programa (usuario) puede llegar a hacer desastres, por lo tanto no deberia poder cambiar nada del sistema operativo, asi que el sistema operativo reside en para el modo kernel y todo lo del usuario en lo del usuario. Por suspuesto que esto en un microcontrolador es un poco raro, y lo unico que lo verias implementar es tal ves en un RTOS. Si no lo usarias en kernel para tener acceso a todo (memoria, instrucciones, etc)

Por supeusto esto tiene que ver mas con el MIPS M4K y que deberias investigar.
« Última modificación: 30 de Julio de 2016, 12:02:37 por KILLERJC »

Desconectado RodrigoAndres

  • PIC16
  • ***
  • Mensajes: 171
Re:PIC con 4 GB de memoria
« Respuesta #2 en: 30 de Julio de 2016, 20:08:48 »
a bueno ya entendi, si se hace 2 elevado a la 32 y se divide por 1024 dos veces da 4 gigas, o sea que puede direccionar 4 gigas de memoria pero en realidad es mucho menos porque como desias algunas direcciones apuntan al mismo lugar de memoria real o tambien algunas direcciones no apuntan a nada entonces la memoria efectiva es mucho menor

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC con 4 GB de memoria
« Respuesta #3 en: 30 de Julio de 2016, 21:42:40 »
Si queres saber mas aca tenes algo del core MIPS M4K

https://imagination-technologies-cloudfront-assets.s3.amazonaws.com/documentation/MD00249-2B-M4K-SUM-02.03.pdf

Pagina 43, habla sobre los modos, es decir User / Kernel / Debug, que caracteristicas tienen cada uno de ellos, que espacios de memoria pueden acceder los mismos, registros, etc.

Ademas veras que los espacios de memoria tienen distintas propiedades, algunos son sin cache, otros con cache, otros no pasan por el conversor de direcciones virtual-fisico ( FM ) otros si. Y tambien las distintas formas de mapear el espacio virtual en el fisico, en la cual 1 es la que usa Microchip.

Desconectado elñato

  • PIC18
  • ****
  • Mensajes: 328
Re:PIC con 4 GB de memoria
« Respuesta #4 en: 15 de Agosto de 2016, 21:22:43 »

........................................... Por suspuesto que esto en un microcontrolador es un poco raro.............................


referente a este comentario, que varias veces escuche cosas asi de los PIC.
las otras lineas de micros (atmel, texas, motorola, etc)  ... que onda ??
todas tienen sus rarezas ??
o hay un criterio mas unificado ?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC con 4 GB de memoria
« Respuesta #5 en: 15 de Agosto de 2016, 23:25:37 »
referente a este comentario, que varias veces escuche cosas asi de los PIC.
las otras lineas de micros (atmel, texas, motorola, etc)  ... que onda ??
todas tienen sus rarezas ??
o hay un criterio mas unificado ?

Fue un error de expresion mio, en muchos sistemas no es necesario un RTOS, o mejor dicho un Sistema operativo que se encargue de manejar tareas, y a eso quise llegar cuando que en un microntrolador es un poco raro. Por lo tanto no necesitas la separacion de Kernel/User/Debug (MIPS), o Privilegiado/No Privilegiado ( ARM ). Queres/Usas acceso total por lo tanto siempre usarias Kernel (MIPS) Y Privilegiado (ARM), en el que podes usar todo del micro, todos sus registros, todas sus funciones.

Arquitecturas como ARM y MIPS que vienen de procesadores, donde ocurre normalmente el tema de tener un software de una tercera persona, hace que se deban tener ciertos recaudos y no dar acceso completo al microprocesador/microcontrolador, ¿te imaginas un programa externo cambiando direcciones de los segmentos de la MMU y haciendo que se sobreescriban datos modificando el OS?, y que por eso imagino que se mantuvieron hasta llegar a sus versiones para microcontroladores, aunque tal ves en una minima expresion.

Mirando un MSP430 (MSP430x2xx Family) de TI no veo que disponga de alguna de estas formas o separaciones que permitan que dentro de un modo se pueda acceder a algunos registros o usar ciertas instrucciones.
Los ATmega creo que tampoco lo poseen. Al menos el ATtiny8 y el ATmega328, no veo nada de eso.

Tal ves poseean una separacion de memoria en que se categorize como BOOT y que bloquee la escritura desde el mismo programa. Pero no estariamos hablando de lo mismo que antes, donde hablamos de restriccion de memorias, accesos a registros del core y uso de algunas intrucciones.

No se si hablarlo de "rareza", para mi lo raro es la implementacion de esos modos que en los unicos casos que lo veria viable es un RTOS, Respecto a las arquitecturas, cada empresa tiene su propia arquitectura y sus propias curiosidades.

Atmel (ATmega328 ) tiene la suya en que si vamos a comparar tiene 32 registros ( de 8 bits ) y se maneja con eso, los accesos a memoria conllevan un tiempo "extra" que acceder a un registro de la CPU. Las operacion unicamente se hacen en esos registros, es decir si tenes un dato en memoria, tenes que traer el dato, usarlo y luego guardarlo.

Los PICs difieren que le presenta al usuario una interfaz mucho mas simple con respecto a su set de instrucciones con la contra de usar para todas las instrucciones varios ciclos de reloj. (Por eso viene que los atmel "van" mas rapido). Pero una instruccion del PIC puede hacer uso de la memoria como algo mas "directo" sin tener que pasarlo a un registro interno.

Los Atmel usan la RAM para el stack, el PIC posee un stack por hardware. Excepto ya los otros PICs de 16bits que su arquitectura adopta ya la forma de usar un puntero al stack. Los PIC tienen los registros de los perifericos como si fuera la RAM (Lo mas seguro que mapeados), Atmel utiliza una instruccion especial para acceder a estos.

El MIPS M4K, posee tambien 32 registros internos y se basa en el read-modify-write (como atmel). Por su contraparte ARM es parecido pero usa 16 registros, donde algunos tiene funciones especiales, y hay intrucciones que no llegan a usar TODOS los registros, Las instrucciones del MIPS son de 32bits, mientras que ARM usa Thumb2 que pueden ser instrucciones de 16bits y 32 bits mezcladas. El MIPS M4K posee un branch delay, no recuerdo si el ARM tambien.

En fin, hay millones mas de caracteristicas que los hacen UNICOS. Estudiar cada arquitectura a fondo lleva mucho tiempo ( Dejando un poco de lado las de 8bits ). Quise ponerme con un Pentium3 que poseo pero son tantas hojas que al final abandone.
« Última modificación: 15 de Agosto de 2016, 23:29:54 por KILLERJC »