Dynamic hardware-assisted software-controlled page placement to manage capacity allocation and sharing within large caches