1. A computer-implemented method for migrating a memory page from a first memory to a second memory, the method comprising: determining a first page size supported by the first memory; determining a second page size supported by the second memory; determining a use history of the memory page based on an entry that is included in a page state directory (PSD) and associated with the memory page, and migrating the memory page between the first memory and the second memory based on the second page size relative to the first page size and the use history.