A method for managing sub-page granular memory tags in a data processing system, the method comprising: in connection with swapping a page of data out of random access memory - RAM - in the data processing system to non-volatile storage - NVS - in the data processing system, using a memory tag map - MTM - to apply memory tag values to respective subpages within the page being swapped out; in connection with swapping the page of data from NVS back in to RAM, applying memory tag values to respective subpages within the page being swapped back in to RAM; and wherein said swapping of a page of data comprises the steps of: reading, using a read_tagged_page instruction, data from multiple subpages of tagged memory within a specified source page into a specified destination page using a specified memory tag map, by, for each subpage within the specified source page: getting, by a processor core, the memory tag value for the subpage from the memory tag map; adding, by the processor core, this memory tag value to the physical address of the current subpage as a tag section of a tagged address; using this tagged address to read the current subpage from the source page, said reading comprising: sending, by the processor core, the tagged address to a memory controller; stripping off, by the memory controller, the tag from the tagged address; comparing, by the memory controller, the tag with a proper value stored in the memory tag map for the physical address in the tagged address, and if the tag received from the processor core matches the proper value, using this tag as the proper tag for obtaining said current subpage; and using the subpage that was read from the source page to update a corresponding subpage in the specified destination page, wherein, when swapping a page of data out of RAM to NVS, the specified destination page is a temporary destination page that is copied to the NVS, or a location in a swap file in the NVS memory mapped for DMA Access, and wherein, when swapping a page of data back from NVS to RAM, the specified destination page is the physical address in RAM that is to receive the page of data. in connection with swapping a page of data out of random access memory - RAM - in the data processing system to non-volatile storage - NVS - in the data processing system, using a memory tag map - MTM - to apply memory tag values to respective subpages within the page being swapped out; in connection with swapping the page of data from NVS back in to RAM, applying memory tag values to respective subpages within the page being swapped back in to RAM; and wherein said swapping of a page of data comprises the steps of: reading, using a read_tagged_page instruction, data from multiple subpages of tagged memory within a specified source page into a specified destination page using a specified memory tag map, by, for each subpage within the specified source page: getting, by a processor core, the memory tag value for the subpage from the memory tag map; adding, by the processor core, this memory tag value to the physical address of the current subpage as a tag section of a tagged address; getting, by a processor core, the memory tag value for the subpage from the memory tag map; adding, by the processor core, this memory tag value to the physical address of the current subpage as a tag section of a tagged address; using this tagged address to read the current subpage from the source page, said reading comprising: sending, by the processor core, the tagged address to a memory controller; stripping off, by the memory controller, the tag from the tagged address; comparing, by the memory controller, the tag with a proper value stored in the memory tag map for the physical address in the tagged address, and if the tag received from the processor core matches the proper value, using this tag as the proper tag for obtaining said current subpage; and sending, by the processor core, the tagged address to a memory controller; stripping off, by the memory controller, the tag from the tagged address; comparing, by the memory controller, the tag with a proper value stored in the memory tag map for the physical address in the tagged address, and if the tag received from the processor core matches the proper value, using this tag as the proper tag for obtaining said current subpage; and using the subpage that was read from the source page to update a corresponding subpage in the specified destination page, wherein, when swapping a page of data out of RAM to NVS, the specified destination page is a temporary destination page that is copied to the NVS, or a location in a swap file in the NVS memory mapped for DMA Access, and wherein, when swapping a page of data back from NVS to RAM, the specified destination page is the physical address in RAM that is to receive the page of data.