Apparatus and method for managing data

An apparatus and a method for managing data are provided to enhance data exchange speed by exchanging data directly between storage units existing within a system, and to reduce a work amount of a central processing unit by limiting occurrence of data which passes through a memory of the system. An apparatus for managing data includes an instruction receiver(110), a state checking unit(120), a controller(130), a memory manager(140), a memory interface unit(150), a storage unit(160), a memory(170) and an extended memory(180). The storage unit and the memory are non-volatile storage media, and the memory is a volatile storage medium. The extended memory is a storage medium for reducing an overhead caused by swapping. The storage unit can include a non-volatile cache, and the non-volatile cache can be combined with the extended memory in a single body. The instruction receiver receives a data movement instruction wherein the data movement instruction is a read or a write instruction. The state checking unit plays a role of checking a usage state of the memory. The memory interface plays a role of enabling a user to access the first storage unit which stores data or the second storage unit which stores data in correspondence with a movement instruction. The memory manager controls the memory interface for moving data from the first storage unit to the second storage unit. The memory manager performs compaction, swapping or compression with respect to the memory. The controller determines whether the first storage unit is physically adjacent to the second storage unit, and performs swapping by controlling the memory manager according to a usage state of the memory transmitted by the state checking unit.