A computer system comprising: a processor having a plurality of cores (101, 102, 103, 104) for executing instructions and processing data and one or more processor caches for caching instructions and data; a first level memory having a first set of characteristics associated therewith, the first set of characteristics including a first read access speed and a first write access speed; and a second level memory having a second set of characteristics associated therewith, the second set of characteristics including second read and write access speeds at least one of which is lower than either the first read access speed or first write access speed, respectively, non-volatility such that the second level memory maintains its content when power is removed, wherein at least a portion of the first level memory is configured as a cache for instructions and data stored in the second level memory according to a selected one of multiple cache management mode options; the second set of characteristics includes random access and memory subsystem addressability such that instructions or data stored therein may be randomly accessed at a granularity equivalent to that used by the first level memory of the computer system; characterised in that the second level memory is logically subdivided into a first portion and a second portion, the first portion being allocated as system memory and the second portion being allocated to persistent mass storage, wherein the first level memory is configured as a cache for instructions and data stored only in the first portion of the second level memory; and/or the first level memory is logically subdivided into a first portion and a second portion, the first portion being allocated as system memory and the second portion being allocated as a cache for instructions and data stored in the second level memory according to the selected cache management mode. a processor having a plurality of cores (101, 102, 103, 104) for executing instructions and processing data and one or more processor caches for caching instructions and data; a first level memory having a first set of characteristics associated therewith, the first set of characteristics including a first read access speed and a first write access speed; and a second level memory having a second set of characteristics associated therewith, the second set of characteristics including second read and write access speeds at least one of which is lower than either the first read access speed or first write access speed, respectively, non-volatility such that the second level memory maintains its content when power is removed, wherein at least a portion of the first level memory is configured as a cache for instructions and data stored in the second level memory according to a selected one of multiple cache management mode options; the second set of characteristics includes random access and memory subsystem addressability such that instructions or data stored therein may be randomly accessed at a granularity equivalent to that used by the first level memory of the computer system; characterised in that the second level memory is logically subdivided into a first portion and a second portion, the first portion being allocated as system memory and the second portion being allocated to persistent mass storage, wherein the first level memory is configured as a cache for instructions and data stored only in the first portion of the second level memory; and/or the first level memory is logically subdivided into a first portion and a second portion, the first portion being allocated as system memory and the second portion being allocated as a cache for instructions and data stored in the second level memory according to the selected cache management mode.