Memory subsystems have been considered as one of the most critical components in embedded systems and furthermore, displaying increasing complexity as application requirements diversify. Modern embedded systems are generally equipped with multiple heterogeneous memory devices to satisfy diverse requirements and constraints. NAND flash memory has been widely adopted for data storage because of its outstanding benefits on cost, power, capacity and non-volatility. However, in NAND flash memory, the intrinsic costs for the read and write accesses are highly disproportionate in performance and access granularity. The consequent data management complexity and performance deterioration have precluded the adoption of NAND flash memory. In this paper, we introduce a highly effective non-volatile primary memory architecture which incorporates application specific information to develop a NAND flash based primary memory. The proposed architecture provides a unified non-volatile primary memory solution which relieves design complications caused by the growing complexity in memory subsystems. Our architecture aggressively minimizes the overhead and redundancy of the NAND based systems by exploiting efficient address space management and dynamic data migration based on accurate application behavioral analysis. We also propose a highly parallelized memory architecture through an active and dynamic data redistribution over the multiple flash memories based on run-time workload analysis. The experimental results show that our proposed architecture significantly enhances average memory access cycle time which is comparable to the standard DRAM access cycle time and also considerably prolongs the device life-cycle by autonomous wear-leveling and minimizing the program/erase operations.
[1]
Peter Petrov,et al.
Energy frugal tags in reprogrammable I-caches for application-specific embedded processors
,
2002,
Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).
[2]
Ilhoon Shin,et al.
SWL: a search-while-load demand paging scheme with NAND flash memory
,
2007,
LCTES '07.
[3]
Naehyuck Chang,et al.
Demand paging for OneNANDTM Flash eXecute-in-place
,
2006,
Proceedings of the 4th International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS '06).
[4]
Chanik Park,et al.
A low-cost memory architecture with NAND XIP for mobile embedded systems
,
2003,
First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).
[5]
Erik Brockmeyer,et al.
Data and memory optimization techniques for embedded systems
,
2001,
TODE.
[6]
Sang Lyul Min,et al.
Compiler-assisted demand paging for embedded systems with flash memory
,
2004,
EMSOFT '04.
[7]
Peter Petrov,et al.
A reprogrammable customization framework for efficient branch resolution in embedded processors
,
2005,
TECS.