The main problem that PLC manufacturers only give limited information on the guts of the PLC & memory, This usually applies to the older hardware, for example Mitsubishi did show the memory map & in those days it was all RAM some battery backed i.e. PIO area, Bit memory Word memory etc. Siemens (S5) memory was like a hard disk (although battery backed Ram) all blocks (with the exception of in-built standard ones) were allocated at download but may have been split into areas, for example, there was a sort of FAT table so when a block was downloaded, it was put into un-allocated ram, then the file allocation was (address where the block sits in the memory was written) is updated & if the block existed that allocation was removed (or it could have been overwritten. That was the power of the S5, all blocks did not exist until downloaded, this allowed a whole program to be downloaded while in run (providing you did it in the right order), unlike most other platforms that on-line editing could only be done in small chunks there was no limit, the early IDE's however, you had to compress the memory when full as the old blocks that were replaced were not deleted, the later ones did this automatically.
The other plus was you could create blocks in PLC code on the fly, for example, I know of a program where any spare memory was allocated to a massive Data block for a critical printer buffer the program in the start up organisation block checked available space, created a block to fill that space & wrote the file allocation (only if it did not exist already), however, this posed a problem that no on-line edits could be made as the memory was full or even an off-line download became difficult, for example it was common for the engineers to upload the DB's so they had a copy of the actual values, this meant that their copy of the program could not be downloaded the way to do it was to do it in stop by deleting the printer DB, download the blocks required then a bit of a complicated cold & warm re-start to generate the printer block.
You will have to do a lot of research to find this information, and I believe many newer platforms may not have dedicated areas i.e. memory map but is generated at download.
Going back to the later Mitsubishi, these do have fixed allocation but one other feature is that file memory can reside in a couple of places, these do not exist in the PLC but in the parameters there is a function to create the file memory either in standard battery backed ram or on a memory card.