How FreeBSD manage more than 4GB on 32 bits architecture
freebsd-questions-local at be-well.ilk.org
Thu Apr 9 23:04:09 UTC 2015
Pierre-Yves Péneau <Pierre-Yves.Peneau at lip6.fr> writes:
> I did not want give too much details in my first email to avoid
> confusion, but this is exactly what I bring.. So let's be more clear :-)
> I'm working on an European project called TSAR(*). This project aims to
> create a TeraScale ARchitecture with low consumption. That's why 32 bits
> processors were chosen.
> Our architecture is cc-NUMA. We have 256 clusters (maximum). Each
> cluster contains 4 processors and have 4GB of RAM. MMUs can translate 32
> bits virtual addresses into 40 bits physical addresses using two
> coordinates, which are used to identify each cluster. These coordinates
> are on 4 bits, each. So, a physical address is build like this:
> | X coord(4 bits) | Y coord (4 bits) | Vaddr (32 bits) |
> That's how we obtain 40 bits of addressable space, and why we have 1TB
> of physical memory.
> So, I've the required hardware I think. My problem is to find out how
> FreeBSD can use this mechanisms. But I'm realizing that it may be not a
> kernel issue, because it's an hardware functionality which should works
> with Linux too. Right ?
That is a bit of an oversimplification. The quote that led you to make
your original post indicates a problem with the Linux mapping model
which would not apply to using FreeBSD on your architecture.
That's relatively minor, though. Your architecture has its own page
table design, which makes sense to me on its own, but I don't have a
sense of how much space the page table itself will take up. Obviously a
page table for 1TB of 4KB pages is already too big for a 32-bit address
space, even before you try mapping in the actual pages. So the page
sizes will clearly average out much larger.
My guess would be that the key design issue for you will be how your
project's page table model fits into the interface of each OS's VM
system. I can't give much advice in that area, though -- I tend to deal
with embedded systems, which have entirely separate sets of challenges.
More information about the freebsd-questions