120 likes | 131 Vues
Learn about the advanced features of the SDRAM controller module in Field Programmable Port Extender (FPX) for improved memory management and data throughput.
E N D
Using the SDRAM Controller on Field Programmable Port Extender (FPX) Sarang Dharmapurikar Washington University, Applied Research Lab August 15, 2001 Supported by: NSF ANI-0096052 and Xilinx Inc. http://www.arl.wustl.edu/arl/projects/fpx
SDRAM Controller Overview SDRAM Controller Module 0 SDRAM Module 1 Module 2
SDRAM Controller Features • Arbitrates between multiple memory requests • Maintains sequential consistency for each module • Maximizes the SDRAM throughput by - Re-ordering memory requests based on addresses and operation type - Favoring the locality in memory access • Increases throughput for higher locality
SDRAM controller performance 1 FPX SDRAM controller trivial controller enhanced trivial controller 0.9 Per-bank row register conventional controller single bank row register conventional controller 0.8 SDRAM data bus utilization 0.7 0.6 0.5 0.4 0 0.2 0.4 0.6 0.8 1 Locality Effect of locality on the SDRAM data bus utilization
SDRAM Controller Usage Request Request(n) Grant1 Grant1(n) Grant2 Grant2(n) InfoBus InfoBus To SDRAM DataBus DataBus SDRAM Controller Module n
Protocol Data Transaction Make Request Wait Grant1 yes No Grant1? Grant2? No yes Send Address Send Burst Length Send Op Type Wait Grant2
Example : Leaky Bucket • What does it do? - Buffers the incoming cells in a FIFO - Generates tokens at a regular interval - Gives out a cell from the FIFO when the number of tokens > 0 - Destroys a token when a cell is given out bursty data leaking data
Example : Leaky Bucket Implementation Read Request Soc_out Write Request Soc_in Read Grant Tca_in Write Grant Tca_out Read Data Data_in Write Data Data_out 64 64 32 32 SDRAM SDRAM Controller Send Cell Pull Cell Get Cell Push Cell Cell FIFO
Example : Leaky Bucket Testbench SDRAM SDRAM Controller Send Cell Pull Cell Get Cell Push Cell Cell FIFO 64 32 32 64 CELLOUT.DAT TESTCELL.DAT Fake_nid_out Fake_nid_in
Exercise • Take a walk through Leaky Bucket • Wire up Cell FIFO in Leaky Bucket • Wire up Leaky Bucket, SDRAM controller in test-bench • Change the parameters - c_MaxTokenCount - c_PaceInterval • Try different traffic patterns and verify the Leaky Bucket functionality