1. A method for segmenting a cache, comprising: dividing a first non-volatile memory to store cache information into a plurality of segments; and pinning a first type of software of a plurality of types of software to a first segment of the plurality of segments, wherein the first pinned segment stores the cache information associated with the first type of software, wherein the pinning determines a usage rate of first and second applications classified as the first type of software, wherein the usage rate indicates a number of times the first type of software is accessed, modified, or a combination thereof during a given time period, and wherein the pinning dynamically pins one of the first and second applications to the first pinned segment based on the determined usage rate.