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 in a page state directory (PSD) associated with the memory page, wherein the use history includes a record of recent accesses of the memory page; and migrating the memory page between the first memory and the second memory based on the first page size, the second page size, and the use history.