If very small memory locations are used in entire memory (which is >8GB) you can use on demand paging where the memory is allocated in terms of pages whenever the page is not allocated for requested address. This enables allocate only pages whenever required. You can achieve overall good simulation speed.
However in above mechanism if more and more pages allocated, the simulation speed will be downgraded or can crash also because of page allocation failure.
In this case, memory can be implemented in file and using IO operations it can be accessed. With this simulation performance will be degraded but ensures simulation will not stop because of page allocation failure.