A data storage device comprising at least one non-volatile storage medium,
at least one data cache, and a controller configured to perform cache
writing operations between the at least one non-volatile storage medium
and the at least one data cache based on user-selected caching modes.