MCXplore: Automating the Validation Process of DRAM Memory Controller Designs

We present an automated framework for the validation of memory controllers (MCs) called MCXplore. In developing this framework, we construct formal models for memory requests and command interactions. MCXplore enables validation engineers to define their test plans precisely using temporal logic specifications. We use the NuSMV model-checker to generate counterexamples that serve as test templates. MCXplore uses these test templates to generate memory tests to validate the correctness properties of the MC. We show the effectiveness of MCXplore by validating various state-of-the-art MC features as well as hard-to-detect timing violations. We also provide a set of predefined test plans, and regression test suites that validate essential properties of modern MCs. MCXplore is an open-source framework to allow validation engineers and researchers to extend and use.

[1]  Yehuda Naveh,et al.  Constraint-Based Random Stimuli Generation for Hardware Verification , 2006, AI Mag..

[2]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[3]  Mohamed O. Kayed,et al.  A Novel Approach for SVA Generation of DDR Memory Protocols Based on TDML , 2014, 2014 15th International Microprocessor Test and Verification Workshop.

[4]  Norbert Wehn,et al.  DRAMSys: A Flexible DRAM Subsystem Design Space Exploration Framework , 2015, IPSJ Trans. Syst. LSI Des. Methodol..

[5]  Rodolfo Pellizzoni,et al.  A Rank-Switching, Open-Row DRAM Controller for Time-Predictable Systems , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

[6]  Onur Mutlu,et al.  Research Problems and Opportunities in Memory Systems , 2014, Supercomput. Front. Innov..

[7]  Aamer Jaleel,et al.  DReAM: Dynamic Re-arrangement of Address Mapping to Improve the Performance of DRAMs , 2015, MEMSYS.

[8]  Hsien-Hsin S. Lee,et al.  Smart Refresh: An Enhanced Memory Controller Design for Reducing Energy in Conventional and 3D Die-Stacked DRAMs , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[9]  Lizy Kurian John,et al.  Minimalist open-page: A DRAM page-mode scheduling policy for the many-core era , 2011, 2011 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[10]  Zhao Zhang,et al.  A permutation-based page interleaving scheme to reduce row-buffer conflicts and exploit data locality , 2000, MICRO 33.

[11]  Kees G. W. Goossens,et al.  Modeling and Verification of Dynamic Command Scheduling for Real-Time Memory Controllers , 2016, 2016 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[12]  Prabhat Mishra,et al.  Test generation using SAT-based bounded model checking for validation of pipelined processors , 2006, GLSVLSI '06.

[13]  Wei-Fen Lin,et al.  Reducing DRAM latencies with an integrated memory hierarchy design , 2001, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture.

[14]  Bruce Jacob,et al.  DRAMSim2: A Cycle Accurate Memory System Simulator , 2011, IEEE Computer Architecture Letters.

[15]  José Meseguer,et al.  Directed-Logical Testing for Functional Verification of Microprocessors , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

[16]  William J. Dally,et al.  Memory access scheduling , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[17]  Onur Mutlu,et al.  Ramulator: A Fast and Extensible DRAM Simulator , 2016, IEEE Computer Architecture Letters.

[18]  Khaled Salah,et al.  Implementation and verification of a generic universal memory controller based on UVM , 2015, 2015 10th International Conference on Design & Technology of Integrated Systems in Nanoscale Era (DTIS).

[19]  Vadim Okun,et al.  Testing with Model Checker: Insuring Fault Visibility , 2002 .

[20]  Kevin Kai-Wei Chang,et al.  Staged memory scheduling: Achieving high performance and scalability in heterogeneous systems , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[21]  Paul Ammann,et al.  Using model checking to generate tests from specifications , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[22]  Hiren D. Patel,et al.  MCXplore: An automated framework for validating memory controller designs , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[23]  Manoranjan Satpathy,et al.  MSimDRAM: Formal Model Driven Development of a DRAM Simulator , 2016, 2016 29th International Conference on VLSI Design and 2016 15th International Conference on Embedded Systems (VLSID).

[24]  John R. Callahan,et al.  Automated Software Testing Using Model-Checking , 1996 .

[25]  James E. Smith,et al.  Fair Queuing Memory Systems , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

[26]  Hiren D. Patel,et al.  A framework for scheduling DRAM memory accesses for multi-core mixed-time critical systems , 2015, 21st IEEE Real-Time and Embedded Technology and Applications Symposium.

[27]  Seth H. Pugsley,et al.  USIMM : the Utah SImulated Memory Module , 2012 .

[28]  Gordon Fraser,et al.  Testing with model checkers: a survey , 2009 .

[29]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..

[30]  Allon Adir,et al.  A unified methodology for pre-silicon verification and post-silicon validation , 2011, 2011 Design, Automation & Test in Europe.