Xilinx-لوگو

Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ گائیڈ

Xilinx_DDR2_MIG_7_کارکردگی-تخمینہ-پروڈکٹ

اہم نوٹ: جوابی ریکارڈ کی یہ ڈاؤن لوڈ کے قابل پی ڈی ایف اس کے استعمال اور پڑھنے کی اہلیت کو بڑھانے کے لیے فراہم کی گئی ہے۔ یہ نوٹ کرنا ضروری ہے کہ جوابی ریکارڈز ہیں۔ Webپر مبنی مواد جو کہ نئی معلومات کے دستیاب ہونے کے ساتھ ہی اکثر اپ ڈیٹ کیا جاتا ہے۔ آپ کو Xilinx ٹیکنیکل سپورٹ پر جانے کی یاد دلائی جاتی ہے۔ Webسائٹ اور دوبارہview (Xilinx Answer 63234) اس جواب کے تازہ ترین ورژن کے لیے۔

تعارف

جس طرح سے DDR2 اور DDR3 یادوں کو آرکیٹیکٹ کیا گیا ہے اور MIG 7 سیریز کنٹرولر کو ڈیزائن کیا گیا ہے، کارکردگی سیدھی نہیں ہے۔
اس کے لیے Jedec ٹائمنگ کے مختلف پیرامیٹرز اور کنٹرولر آرکیٹیکچر کو سمجھنے کی ضرورت ہے، اور تخمینہ حاصل کرنے کے لیے آپ کو سمیولیشن چلانے کی ضرورت ہوگی۔
کارکردگی کا تعین کرنے کے لیے عمومی اصول ایک ہی ہے لیکن یہ دستاویز MIG سابق کے استعمال سے کارکردگی حاصل کرنے کا ایک آسان طریقہ فراہم کرتی ہے۔ampلی ڈیزائن ٹیسٹ بینچ اور محرک کی مدد سے fileیہاں منسلک ہے.

موثر بینڈوتھ

DRAM ڈیٹا بس صرف پڑھنے اور لکھنے کے وقفے کے دوران ہی قریب قریب بینڈوڈتھ حاصل کرتی ہے اور اس کا اوور ہیڈ ڈیٹا کی مؤثر شرح کو کم کرتا ہے۔
چند سابقampاوور ہیڈ کے لیس ہیں:

  • ایک ہی بینک میں قطاروں تک رسائی کا وقت قبل از وقت (رسائی پتہ ایک ہی قطار والے صفحے پر نہیں ہے)
  • ریکوری ٹائم لکھیں لکھنے سے پڑھنے تک رسائی کو تبدیل کریں۔
  • پڑھنے سے لکھنے تک رسائی میں بدلنے کے لیے بس ٹرناراؤنڈ کا وقت

Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-28
مؤثر بینڈوتھ = چوٹی بینڈوتھ * کارکردگی 

ایم آئی جی ڈیزائن جنریشن

MIG IP اور سابق پر مرحلہ وار تفصیلات کے لیے UG586 باب 1 سے رجوع کریں۔ampلی ڈیزائن نسل.
MIG 7 سیریز پرفارمنس سمولیشن چلانے سے پہلے، یہ یقینی بنانے کے لیے کہ آپ کا سمولیشن ماحول ٹھیک ہے۔ MIG سابق کو کھولیں۔ample مناسب لائبریریوں کو ڈیزائن اور نقشہ بنائیں، سمولیشن چلائیں، اور اس بات کو یقینی بنائیں کہ آپ ٹرانسکرپٹ میں "ٹیسٹ پاس" پیغام دیکھ سکتے ہیں۔
بہاؤ کو ظاہر کرنے کے لیے میں نے xc7vx690tffg1761-2 کے لیے ایک MIG IP بنایا ہے اور سابق کو طلب کیا ہے۔ampلی ڈیزائن.
دو چیزیں جو نوٹ کی جانی چاہئیں وہ ہیں میموری ایڈریس بٹس اور میموری ایڈریس میپنگ سلیکشن۔
سابق کے لیےample، میں نے میموری پارٹ ڈراپ ڈاؤن آپشنز کے تحت MT41J128M8XX-125 کو منتخب کیا ہے۔Xilinx DDR2 MIG-7-Performance-Estimation-fig-1

شکل-1، قطار = 14، کالم = 10 اور بینک = 3 سے منتخب میموری والے حصے کے لئے، لہذا app_addr_width = row + column + bank + rank = 28 Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-2

آپ یا تو BANK_ROW_COLUMN یا ROW BANK کالم منتخب کر سکتے ہیں۔
میں نے ROW BANK کالم چھوڑ دیا ہے جو پہلے سے طے شدہ ایڈریس میپنگ ہے۔

Exampلی ڈیزائن تخروپن ترکیبی ٹیسٹ بینچ کے ساتھ

نقلی ترتیبات کے تحت، QuestaSim/ModelSim Simulator کو منتخب کریں اور مرتب شدہ لائبریریوں کے مقام پر براؤز کریں۔
تھرڈ پارٹی ٹولز انسٹال پاتھ کی طرف اشارہ کرنے، ٹارگٹ سمیلیٹر کو منتخب کرنے، اور لائبریریوں کو مرتب کرنے اور میپ کرنے کے بارے میں تفصیلات کے لیے، آپ (UG900) Vivado Design Suite User Guide Logic Simulation کا حوالہ دے سکتے ہیں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-3

GUI کے ذریعے نقلی چلائیں (پروجیکٹ مینیجر میں رن سمولیشن ٹیب پر کلک کریں) اور یقینی بنائیں کہ آپ کو ٹرانسکرپٹ میں "ٹیسٹ پاس" پیغام نظر آتا ہے۔

پرفارمنس سمولیشن RTL ترمیمات

  1. ذرائع کے ٹیب پر دائیں کلک کریں، "تخلیقی ذرائع شامل کریں یا تخلیق کریں" کو منتخب کریں، اور mig7_perfsim_traffic_generator.sv پر براؤز کریں۔ file اور اسے شامل کرنے کے لیے ختم پر کلک کریں۔
  2. ذرائع کے ٹیب پر دائیں کلک کریں، "تخلیقی ذرائع شامل کریں یا تخلیق کریں" کو منتخب کریں، perfsim_stimulus.txt پر براؤز کریں، اور اسے شامل کرنے کے لیے ختم پر کلک کریں۔
  3. سابق پر تبصرہ کریں۔ample_top instantiation in the sim_tb_top.v file.
  4. نیچے دی گئی RTL لائنوں کو sim_tb_top، v میں شامل کریں۔
  • localparam APP_ADDR_WIDTH = 28؛
  • localparam APP_DATA_WIDTH = 64;
  • localparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
  • localparam MEM_ADDR_ORDER = "BANK_ROW_COLUMN"؛
  • localparam BANK_WIDTH = 3؛
  • localparam RANK_WIDTH = 1;
  • تار [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr؛
  • تار [2:0] c0_ddr3_app_cmd;
  • تار c0_ddr3_app_en؛
  • تار [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data؛
  • تار c0_ddr3_app_wdf_end؛
  • تار [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask؛
  • تار c0_ddr3_app_wdf_wren؛
  • تار [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data؛
  • تار c0_ddr3_app_rd_data_end؛
  • تار c0_ddr3_app_rd_data_valid؛
  • تار c0_ddr3_app_rdy؛
  • تار c0_ddr3_app_wdf_rdy؛
  • تار c0_data_compare_error؛
  • تار ui_clk؛
  • تار ui_clk_sync_rst؛
  • wire app_sr_req = 0;
  • wire app_ref_req = 0;
  • wire app_zq_req =0;
  • تار c0_app_wdf_mask =0؛

ایف پی جی اے میموری کنٹرولر انسٹی ٹیشن

mig_7series_0_mig u_mig_7series_0_mig (
// میموری انٹرفیس پورٹس

  • .ddr3_addr (ddr3_addr_fpga)،
  • .ddr3_ba (ddr3_ba_fpga)،
  • .ddr3_cas_n (ddr3_cas_n_fpga)،
  • .ddr3_ck_n (ddr3_ck_n_fpga)،
  • .ddr3_ck_p (ddr3_ck_p_fpga)،
  • .ddr3_cke (ddr3_cke_fpga)،
  • .ddr3_ras_n (ddr3_ras_n_fpga)،
  • .ddr3_reset_n (ddr3_reset_n)،
  • .ddr3_we_n (ddr3_we_n_fpga)،
  • .ddr3_dq (ddr3_dq_fpga)،
  • .ddr3_dqs_n (ddr3_dqs_n_fpga)،
  • .ddr3_dqs_p (ddr3_dqs_p_fpga)،
  • .init_calib_complete (init_calib_complete)،
  • .ddr3_cs_n (ddr3_cs_n_fpga)،
  • .ddr3_dm (ddr3_dm_fpga)،
  • .ddr3_odt (ddr3_odt_fpga)،

// ایپلیکیشن انٹرفیس پورٹس

  • .app_addr (c0_ddr3_app_addr)،
  • .app_cmd (c0_ddr3_app_cmd)،
  • .app_en (c0_ddr3_app_en)،
  • .app_wdf_data (c0_ddr3_app_wdf_data)،
  • .app_wdf_end (c0_ddr3_app_wdf_end)،
  • .app_wdf_wren (c0_ddr3_app_wdf_wren)،
  • .app_rd_data (c0_ddr3_app_rd_data)،
  • .app_rd_data_end (app_rd_data_end)،
  • .app_rd_data_valid (c0_ddr3_app_rd_data_valid)،
  • .app_rdy (c0_ddr3_app_rdy)،
  • .app_wdf_rdy (c0_ddr3_app_wdf_rdy)،
  • .app_sr_req (app_sr_req)،
  • .app_ref_req (app_ref_req)،
  • .app_zq_req (app_zq_req)،
  • .app_sr_active (app_sr_active)،
  • .app_ref_ack (app_ref_ack)،
  • .app_zq_ack (app_zq_ack)،
  • .ui_clk (ui_clk)،
  • .ui_clk_sync_rst (ui_clk_sync_rst)،
  • .app_wdf_mask (c0_ddr3_app_wdf_mask)،

// سسٹم کلاک پورٹس

  • .sys_clk_i (sys_clk_i)،

// حوالہ گھڑی پورٹس

  • .clk_ref_i (clk_ref_i)،
  • .sys_rst (sys_rst)
  • );

کارکردگی ٹریفک جنریٹر انسٹی ٹیشن

mig7_perfsim_traffic_generator#
(
.APP_DATA_WIDTH (APP_DATA_WIDTH)،
.COL_WIDTH (COL_WIDTH)،
.ROW_WIDTH (ROW_WIDTH)،
.RANK_WIDTH (RANK_WIDTH)،
.BANK_WIDTH (BANK_WIDTH)،
.MEM_ADDR_ORDER (MEM_ADDR_ORDER)،
.tCK (tCK)
.ADDR_WIDTH (APP_ADDR_WIDTH)
)

u_traffic_gen
(
.clk (ui_clk)
.rst (ui_clk_sync_rst )
.init_calib_complete (init_calib_complete)،
.cmp_error (c0_data_compare_error)،
.app_wdf_rdy (c0_ddr3_app_wdf_rdy ),
.app_rd_data_valid (c0_ddr3_app_rd_data_valid)،
.app_rd_data (c0_ddr3_app_rd_data ),
.app_rdy (c0_ddr3_app_rdy)،
.app_cmd (c0_ddr3_app_cmd )
.app_addr (c0_ddr3_app_addr ),
.app_en (c0_ddr3_app_en )
.app_wdf_mask (c0_ddr3_app_wdf_mask)،
.app_wdf_data (c0_ddr3_app_wdf_data)،
.app_wdf_end (c0_ddr3_app_wdf_end )
.app_wdf_wren (c0_ddr3_app_wdf_wren)
);

  • 5. اپنے میموری حصے کے انتخاب کے مطابق APP_ADDR_WIDTH، APP_DATA_WIDTH، RANK_WIDTH اور BANK_WIDTH میں ترمیم کریں۔
    سے قدریں حاصل کی جا سکتی ہیں۔ _mig.v file.
  • آئی پی بنانے کے دوران آپ کے اجزاء کے نام کی بنیاد پر پیلے رنگ کا نمایاں نام mig_7series_0_mig مختلف ہوسکتا ہے، تصدیق کریں کہ آیا آپ نے کوئی مختلف نام منتخب کیا ہے اور اس کے مطابق اسے تبدیل کریں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-4
  • ایک بار جب آئی پی تیار ہوجائے تو اسے کھولیں۔ _mig.v file اور LHS سگنل کے ناموں میں کسی قسم کی تبدیلیوں کے لیے کراس چیک کریں اور انہیں درست کریں۔
  • app_sr_req، app_ref_req اور app_zq_req کو 0 سے شروع کیا جانا چاہیے۔
  • بطور سابقample_top.v پر تبصرہ کیا گیا اور نیا ہے۔ files کو شامل کیا گیا ہے، آپ شاید "؟" دیکھیں گے۔ کے سوا
    mig_7series_0_mig.v file نقلی ذرائع کے تحت۔
    صحیح نقشہ بنانے کے لیے file، mig_7series_0_mig.v پر دائیں کلک کریں، "ذرائع شامل کریں" کو منتخب کریں، براؤز کریں
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    اور mig_7series_0_mig_sim.v شامل کریں۔ file.
  • اگر آپ دیکھتے ہیں "؟" بنیادی کے لئے files، تمام RTL شامل کریں۔ files کلاکنگ، کنٹرولر، ip_top، فائی اور UI فولڈرز میں۔
  • ایک بار جب RTL تبدیلیاں ہو جائیں اور تمام مطلوبہ files کو آپ کے نقلی ذرائع میں شامل کیا گیا ہے، درجہ بندی شکل 5 سے ملتی جلتی ہونی چاہیے۔
    دی fileسرخ رنگ میں نمایاں کردہ s نئے شامل کیے گئے ہیں، اور "؟" ECC سے متعلقہ ماڈیولز پر متوقع ہے کیونکہ منتخب میموری کنفیگریشن میں ECC آپشن غیر فعال ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-5

محرک File تفصیل
ہر محرک پیٹرن 48 بٹس ہے اور فارمیٹ کو اعداد و شمار 6-1 سے 6-4 میں بیان کیا گیا ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-6

ایڈریس انکوڈنگ (ایڈریس [35:0])

ایڈریس کو محرک میں شکل 7-1 سے شکل 7-6 کے مطابق انکوڈ کیا گیا ہے۔ ایڈریس کے تمام فیلڈز کو ہیکسا ڈیسیمل فارمیٹ میں داخل کرنے کی ضرورت ہے۔ تمام ایڈریس فیلڈز ایک چوڑائی ہیں جو ہیکساڈیسیمل فارمیٹ میں داخل کرنے کے لیے چار سے تقسیم ہوتی ہے۔ ٹیسٹ بینچ صرف ایڈریس فیلڈ کے مطلوبہ بٹس میموری کنٹرولر کو بھیجتا ہے۔
سابق کے لیےample، آٹھ بینک کنفیگریشن میں، صرف بینک بٹس [2:0] میموری کنٹرولر کو بھیجے جاتے ہیں اور باقی بٹس کو نظر انداز کر دیا جاتا ہے۔ ایڈریس فیلڈ کے لیے اضافی بٹس آپ کو ہیکسا ڈیسیمل فارمیٹ میں ایڈریس درج کرنے کے لیے فراہم کیے گئے ہیں۔
آپ کو اس بات کی تصدیق کرنی چاہیے کہ درج کردہ قدر کسی دی گئی ترتیب کی چوڑائی سے مساوی ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-7

  • کالم کا پتہ (کالم[11:0]) – محرک میں کالم کا پتہ زیادہ سے زیادہ 12 بٹس کو فراہم کیا جاتا ہے، لیکن آپ کو اپنے ڈیزائن میں کالم کی چوڑائی کے پیرامیٹر کی بنیاد پر اس کو حل کرنے کی ضرورت ہے۔
  • صف کا پتہ (قطار[15:0]) – محرک میں قطار کا پتہ زیادہ سے زیادہ 16 بٹس کو فراہم کیا جاتا ہے، لیکن آپ کو اپنے ڈیزائن میں سیٹ کردہ قطار کی چوڑائی کے پیرامیٹر کی بنیاد پر اس کو حل کرنے کی ضرورت ہے۔
  • بینک کا پتہ (بینک[3:0]) – محرک میں بینک کا پتہ زیادہ سے زیادہ چار بٹس تک فراہم کیا جاتا ہے، لیکن آپ کو اپنے ڈیزائن میں سیٹ کردہ بینک کی چوڑائی کے پیرامیٹر کی بنیاد پر اس کو حل کرنے کی ضرورت ہے۔
  • رینک کا پتہ (Rank[3:0]) – محرک میں درجہ بندی کا پتہ زیادہ سے زیادہ چار بٹس کو فراہم کیا جاتا ہے، لیکن آپ کو اپنے ڈیزائن میں ترتیب دیے گئے درجہ کی چوڑائی کے پیرامیٹر کی بنیاد پر اس کو حل کرنے کی ضرورت ہے۔
    ایڈریس کو اعلی سطحی MEM_ADDR_ORDER پیرامیٹر کی بنیاد پر جمع کیا جاتا ہے اور یوزر انٹرفیس کو بھیجا جاتا ہے۔

کمانڈ ریپیٹ (کمانڈ ریپیٹ [7:0])
کمانڈ کی تکرار کی گنتی یوزر انٹرفیس پر متعلقہ کمانڈ کو دہرائے جانے کی تعداد ہے۔ ہر اعادہ کے ایڈریس میں 8 کا اضافہ کیا گیا ہے۔ زیادہ سے زیادہ تکرار کی تعداد 128 ہے۔
ٹیسٹ بینچ کالم کی باؤنڈری کی جانچ نہیں کرتا ہے اور اگر انکریمنٹ کے دوران کالم کی زیادہ سے زیادہ حد تک پہنچ جاتی ہے تو یہ لپیٹ دیتا ہے۔
128 کمانڈز صفحہ کو بھرتے ہیں۔ 0 کے علاوہ کسی بھی کالم ایڈریس کے لیے، 128 کی تکرار کی گنتی کالم کی حد کو عبور کرتی ہے اور کالم ایڈریس کے آغاز تک لپیٹ جاتی ہے۔

بس کا استعمال
پڑھنے اور لکھنے کی کل تعداد کو مدنظر رکھتے ہوئے یوزر انٹرفیس پر بس کے استعمال کا حساب لگایا جاتا ہے اور درج ذیل مساوات کا استعمال کیا جاتا ہے:

Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-8

  • BL8 چار میموری کلاک سائیکل لیتا ہے۔
  • end_of_stimulus وہ وقت ہوتا ہے جب تمام احکامات مکمل ہو جاتے ہیں۔
  • calib_done وہ وقت ہوتا ہے جب کیلیبریشن کی جاتی ہے۔

Exampلی پیٹرن
یہ سابقamples BANK_ROW_COLUMN پر سیٹ MEM_ADDR_ORDER پر مبنی ہیں۔

سنگل ریڈ پیٹرن
00_0_2_000F_00A_1 - یہ پیٹرن 10 ویں کالم، 15 ویں قطار اور دوسرے بینک سے واحد پڑھا ہوا ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-9سنگل لکھنے کا پیٹرن
00_0_1_0040_010_0 - یہ پیٹرن 32 ویں کالم، 128 ویں قطار، اور پہلے بینک پر ایک ہی تحریر ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-10ایک ہی پتے پر ایک ہی لکھیں اور پڑھیں
00_0_2_000F_00A_0 – یہ پیٹرن 10 ویں کالم، 15 ویں قطار، اور دوسرے بینک پر ایک ہی تحریر ہے۔
00_0_2_000F_00A_1 – یہ پیٹرن 10 ویں کالم، 15 ویں قطار، اور دوسرے بینک سے ایک پڑھا ہوا ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-11

ایک ہی پتے کے ساتھ متعدد لکھنا اور پڑھنا
0A_0_0_0010_000_0 – یہ 10 سے 0 تک کے ایڈریس کے ساتھ 80 تحریروں کے مساوی ہے جو کالم میں دیکھے جا سکتے ہیں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-12

0A_0_0_0010_000_1 – یہ 10 سے 0 تک شروع ہونے والے پتے کے ساتھ 80 ریڈز کے مساوی ہے جو کالم میں دیکھے جا سکتے ہیں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-13

لکھنے کے دوران صفحہ لپیٹنا
0A_0_2_000F_3F8_0 – یہ کالم ایڈریس کے ساتھ 10 تحریروں کے مساوی ہے جس میں ایک تحریر کے بعد صفحہ کے آغاز میں لپیٹ دیا جاتا ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-14

کارکردگی ٹریفک جنریٹر کی نقالی

اس وقت آپ MIG سابق کے ساتھ کام کر چکے ہیں۔ampلی ڈیزائن تخروپن. اس سے یہ ظاہر ہوتا ہے کہ آپ کا سمولیشن سیٹ اپ تیار ہے، آپ نے پرفارمنس سمولیشن RTL میں ترمیم کی ہے، نیا سمولیشن درجہ بندی درست ہے اور آپ محرک کے نمونوں کو سمجھ چکے ہیں۔ perfsim_stimulus.txt میں 16 تحریروں اور پڑھنے کے ساتھ ایک بار پھر نقلی چلائیں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-15

رن-آل کریں، init_calib_complete سگنل پر زور دینے تک انتظار کریں، اور آپ لکھنے اور پڑھنے کی مجوزہ تعداد دیکھ سکیں گے۔ تخروپن پھر بند ہو جائے گا. Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-16

جب آپ کو سمولیشن چھوڑنے کا اشارہ کیا جائے تو، نہیں کو منتخب کریں اور ٹرانسکرپٹ ونڈو پر جائیں جہاں آپ کارکردگی کے اعدادوشمار دیکھ سکیں گے۔ Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-17

اگر آپ منتخب کرتے ہیں۔ "تقلید چھوڑ دو" کارکردگی کے اعدادوشمار a پر لکھے جائیں گے۔ file نامزد mig_band_width_output.txt sim_1/behave میں واقع ہے۔ فولڈر

Example ڈائریکٹری کا راستہ: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavXilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-18

آپ حیران ہوسکتے ہیں کہ فیصد کیوں؟tage بس کا استعمال 29 ہے file 256 لکھتے ہیں اور 256 پڑھتے ہیں۔

ff_0_0_0000_000_0
ff_0_0_0000_000_1

اب آپ فیصد دیکھیں گے۔tage 85 کے طور پر، جس کا مطلب یہ ہے کہ DDR3 لکھنے اور پڑھنے کے برسٹ کے طویل سلسلے کے لیے بس کے بہتر استعمال کی پیشکش کرتا ہے۔ Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-19

کارکردگی کو بہتر بنانے کے عمومی طریقے

کارکردگی کو متاثر کرنے والے عوامل کو دو حصوں میں تقسیم کیا جا سکتا ہے:

  1. مخصوص میموری
  2. کنٹرولر مخصوصXilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-20

شکل 9 آپ کو ایک اوور دیتا ہے۔view ان اصطلاحات کی جو میموری مخصوص ہیں۔
SRAMs اور بلاک میموریز کے برعکس DDR2 یا DDR3 کارکردگی صرف ڈیٹا کی زیادہ سے زیادہ شرح نہیں ہے۔

یہ بہت سے وقت کے عوامل پر منحصر ہے، بشمول:

  • tRCD: قطار کمانڈ میں تاخیر (یا راس سے کیس میں تاخیر)۔
  • tCAS(CL): کالم ایڈریس اسٹروب لیٹینسی۔
  • ٹی آر پی: قطار پری چارج میں تاخیر۔
  • TRAS: صف کا فعال وقت (پری چینج کے لیے چالو کریں)۔
  • tRC: قطار سائیکل کا وقت۔ tRC = trAS + tRP
  • trAC: ریڈوم تک رسائی میں تاخیر۔ trAC = tRCD + tCAS
  • tCWL: کیس لکھنے میں تاخیر۔
  • tZQ: ZQ کیلیبریشن کا وقت۔
  • tRFC: قطار ریفریش سائیکل کا وقت
  • tWTR: تاخیر پڑھنے کے لیے لکھیں۔ کمانڈ ٹائم پڑھنے کے لیے آخری تحریری لین دین۔
  • tWR: ریکوری ٹائم لکھیں۔ پری چارج ٹائم پر آخری تحریری لین دین

تمام درج کردہ پیرامیٹرز کا وقت استعمال شدہ میموری کی قسم اور میموری پارٹ اسپیڈ گریڈ پر منحصر ہے۔
تعریفوں اور وقت کی تفصیلات کے بارے میں مزید تفصیلات DDR2 DDR3 JEDEC یا کسی بھی میموری ڈیوائس ڈیٹا شیٹ میں مل سکتی ہیں۔

کارکردگی بنیادی طور پر اس بات پر منحصر ہے کہ میموری تک کیسے رسائی حاصل کی جاتی ہے۔ مختلف ایڈریس پیٹرن مختلف کارکردگی کے نتائج دیتے ہیں۔

میموری ٹائمنگ اوور ہیڈز

  1. ایکٹیویشن ٹائم اور پری چارج ٹائم جب نئے بینکوں/قطاروں میں تبدیل ہوتے ہیں یا اسی بینک میں قطاریں بدلتے ہیں۔- لہذا اگر آپ قطار میں تبدیلی کو کم کرتے ہیں، تو یہ tRCD اور tRP کو ​​ہٹا سکتا ہے۔
  2. مسلسل لکھنے یا پڑھنے کے احکامات بھیجیں - tCCD ٹائمنگ کو برقرار رکھنا۔
  3. لکھنے کے لیے لکھیں اور لکھنے کے لیے کمانڈ کی تبدیلی کو کم کریں - پڑھنے تک رسائی میں تبدیلی کے لیے ریکوری ٹائم لکھیں، پڑھنے سے لکھنے میں تبدیل کرنے کے لیے بس ٹرناراؤنڈ ٹائم لکھیں
  4. ایک مناسب ریفریش وقفہ مقرر کریں۔
    • DDR3 SDRAM کو tREFI کے اوسط وقفہ وقفہ پر ریفریش سائیکل کی ضرورت ہوتی ہے۔
    • زیادہ سے زیادہ 8 اضافی ریفریش کمانڈز پہلے سے جاری کیے جا سکتے ہیں ("پلڈ ان")۔ یہ ریفریشز کی تعداد کو کم نہیں کرتا ہے، لیکن دو ارد گرد ریفریش کمانڈز کے درمیان زیادہ سے زیادہ وقفہ 9 × tREFI تک محدود ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-21
  • تمام بینکوں کا استعمال کریں - ایک مناسب ایڈریسنگ میکانزم افضل ہے۔
    • قطار-بینک-کالم: ترتیب وار ایڈریس اسپیس پر ہونے والے لین دین کے لیے، کور خود بخود DRAM ڈیوائس کے اگلے بینک میں ایک ہی قطار کو کھولتا ہے تاکہ موجودہ قطار کے اختتام تک لین دین جاری رکھا جا سکے۔ یہ ان ایپلی کیشنز کے لیے موزوں ہے جن کے لیے بڑے ڈیٹا پیکٹ کو ترتیب وار پتے کے مقامات پر پھٹنے کی ضرورت ہوتی ہے۔
    • بینک-رو-کالم: ایک قطار کی حد عبور کرنے پر، موجودہ قطار بند ہو جائے گی اور اسی کنارے کے اندر دوسری قطار کھول دی جائے گی۔ MSB ایک بینک کا پتہ ہے، جسے مختلف بینکوں سے سوئچ کرنے کے لیے استعمال کیا جا سکتا ہے۔ یہ ایک وقفے کے لیے میموری کے ایک بلاک میں مختصر، زیادہ بے ترتیب لین دین اور پھر دوسرے بلاک (بینک) میں چھلانگ لگانے کے لیے موزوں ہے۔
  • برسٹ کی لمبائی
    • BL 8 3 سیریز پر DDR7 کے لیے تعاون یافتہ ہے۔ BC4 کی کارکردگی بہت کم ہے جو کہ 50% سے کم ہے۔ اس کی وجہ یہ ہے کہ BC4 کا عمل درآمد کا وقت BL8 جیسا ہی ہے۔ ڈیٹا صرف جزو کے اندر چھپا ہوا ہے۔
    • ایسے معاملات میں جہاں آپ مکمل برسٹ لکھنا نہیں چاہتے ہیں، یا تو ڈیٹا ماسک یا لکھنے کے بعد پڑھنے پر غور کیا جا سکتا ہے۔
  • ایک مناسب ZQ وقفہ مقرر کریں (صرف DDR3)
    کنٹرولر ZQ Short (ZQCS) اور ZQ Long (ZQCL) دونوں کیلیبریشن کمانڈ بھیجتا ہے۔
    • DDR3 Jedec معیار پر عمل کریں۔
    • ZQ کیلیبریشن پر JEDEC Spec JESD5.5-79 DDR3 SDRAM سٹینڈرڈ کے سیکشن 3 میں بحث کی گئی ہے۔
    • ZQ کیلیبریشن پورے VT میں تغیرات کو مدنظر رکھنے کے لیے باقاعدہ وقفوں پر آن ڈائی ٹرمینیشن (ODT) کیلیبریٹ کرتا ہے۔
    • منطق bank_common.v/vhd میں موجود ہے۔
    • پیرامیٹر Tzqcs اس شرح کا تعین کرتا ہے جس پر میموری کو ZQ کیلیبریشن کمانڈ بھیجا جاتا ہے۔
    • t کاؤنٹر کو غیر فعال کرنا اور app_zq_req کا استعمال کرکے دستی طور پر بھیجنا ممکن ہے، یہ دستی طور پر ریفریش بھیجنے کے مترادف ہے۔
      تفصیلات کے لیے (Xilinx Answer 47924) سے رجوع کریں۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-22

کنٹرولر اوور ہیڈز

  1. متواتر پڑھنا - رجوع کریں۔ (Xilinx جواب 43344) تفصیلات کے لیے
    • پڑھنے کی مدت کو تبدیل نہ کریں۔
    • لکھنے کے دوران متواتر پڑھنا چھوڑ دیں اور صحیح پڑھنے سے پہلے چھوٹنے والے پڑھنے کی تعداد جاری کریں۔
  2. دوبارہ ترتیب دینا - رجوع کریں۔ (Xilinx جواب 34392) تفصیلات کے لیے
    صارف اور AXI انٹرفیس ڈیزائن کے لیے اس کو فعال کرنا افضل ہے۔
    • دوبارہ ترتیب دینا وہ منطق ہے جو کئی کمانڈز کو آگے دیکھتی ہے اور یوزر کمانڈ آرڈر کو تبدیل کرتی ہے تاکہ نان میموریی کمانڈز درست بینڈوڈتھ پر نہ ہوں۔ کارکردگی بھی اصل ٹریفک پیٹرن سے متعلق ہے۔
    • ایڈریس پیٹرن کی بنیاد پر، دوبارہ ترتیب دینے سے پری چارج کو چھوڑنے اور کمانڈز کو چالو کرنے میں مدد ملتی ہے اور tRCD اور tRP کو ​​ڈیٹا بینڈ کی چوڑائی پر قبضہ نہیں ہوتا ہے۔Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-23
  3. بینک مشینوں کی تعداد بڑھانے کی کوشش کریں۔
    • کنٹرولر کی زیادہ تر منطق بینک مشینوں میں رہتی ہے اور وہ DRAM بینکوں سے مطابقت رکھتی ہیں۔
    • دی گئی بینک مشین کسی بھی وقت ایک واحد DRAM بینک کا انتظام کرتی ہے۔
    • بینک مشین کی تفویض متحرک ہے اس لیے ہر فزیکل بینک کے لیے بینک مشین کا ہونا ضروری نہیں ہے۔
    • بینک مشینوں کو ترتیب دیا جا سکتا ہے، لیکن یہ رقبہ اور کارکردگی کے درمیان تجارت ہے۔
    • بینک مشینوں کی قابل اجازت تعداد 2-8 کے درمیان ہے۔
    • پہلے سے طے شدہ طور پر، 4 بینک مشینیں RTL پیرامیٹرز کے ذریعے ترتیب دی جاتی ہیں۔
    • بینک مشینوں کو تبدیل کرنے کے لیے، memc_ui_top Ex میں موجود پیرامیٹر nBANK_MACHS = 8 پر غور کریںample 8 بینک مشینوں کے لیے – nBANK_MACHS = 8

اب آپ ان عوامل سے واقف ہیں جو کارکردگی کو متاثر کرتے ہیں۔
ایک اپ اسٹریم ایپلی کیشن پر غور کریں جو آپ کو فی پیکٹ 512 ڈیٹا بائٹس دیتا ہے اور آپ کو انہیں مختلف میموری والے مقامات پر محفوظ کرنے کی ضرورت ہے۔ چونکہ 512 ڈیٹا بائٹس 64 DDR3 ڈیٹا برسٹ کے برابر ہے، سابق کو دوبارہ چلائیںampایک محرک کے ساتھ ڈیزائن file 512 تحریروں پر مشتمل، 512 ریڈز اور ہر 64 لکھنے یا پڑھنے کے لیے قطار کی تبدیلی:

  • 3f_0_0_0000_000_0
  • 3f_0_0_0001_000_0
  • 3f_0_0_0002_000_0
  • 3f_0_0_0003_000_0
  • 3f_0_0_0004_000_0
  • 3f_0_0_0005_000_0
  • 3f_0_0_0006_000_0
  • 3f_0_0_0007_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_0_0001_000_1
  • 3f_0_0_0002_000_1
  • 3f_0_0_0003_000_1
  • 3f_0_0_0004_000_1
  • 3f_0_0_0005_000_1
  • 3f_0_0_0006_000_1
  • 3f_0_0_0007_000_1

سمولیشن کے اختتام پر آپ دیکھیں گے کہ بس کا استعمال 77 فیصد ہے۔ Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-24

شکل 11: 512 لکھنے اور 512 پڑھنے کے لیے کارکردگی کے اعداد و شمار - 64 لکھنے یا پڑھنے کے لیے قطار کی تبدیلی۔ 

اب آپ کارکردگی کو بہتر بنانے کے لیے پہلے حصے میں سیکھے گئے علم کو لاگو کر سکتے ہیں۔ کے ساتھ view قطار کو تبدیل کرنے کے بجائے تمام بینکوں کو استعمال کرنے کے لیے، بینک کو تبدیل کرنے کے لیے ایڈریس پیٹرن میں ترمیم کریں جیسا کہ نیچے دکھایا گیا ہے۔
یہ MIG GUI میں میموری ایڈریس میپنگ سیٹنگ میں ROW_BANK_Column سیٹ کرنے کے مترادف ہے۔

  • 3f_0_0_0000_000_0
  • 3f_0_1_0000_000_0
  • 3f_0_2_0000_000_0
  • 3f_0_3_0000_000_0
  • 3f_0_4_0000_000_0
  • 3f_0_5_0000_000_0
  • 3f_0_6_0000_000_0
  • 3f_0_7_0000_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_1_0000_000_1
  • 3f_0_2_0000_000_1
  • 3f_0_3_0000_000_1
  • 3f_0_4_0000_000_1
  • 3f_0_5_0000_000_1
  • 3f_0_6_0000_000_1
  • 3f_0_7_0000_000_1

تخروپن کے اختتام پر آپ دیکھیں گے کہ پہلے 77 فیصد بس کا استعمال اب 87 ہے! Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-25

اگر آپ کو اب بھی اعلی کارکردگی کی ضرورت ہے، تو آپ 1024 یا 2048 بائٹس کے بڑے پیکٹ سائز کے لیے جا سکتے ہیں، یا دستی ریفریش پر غور کر سکتے ہیں۔

نوٹ: Xilinx کنٹرولر ریفریش کو نظرانداز کرنے کی حوصلہ افزائی نہیں کرتا ہے کیونکہ ہمیں یقین نہیں ہے کہ آیا آپ Jedec آٹو ریفریش ٹائمنگ کو پورا کر پائیں گے جس سے ڈیٹا کی وشوسنییتا متاثر ہوتی ہے۔
کنٹرولر کی طرف سے آپ nBANk_MACH کو تبدیل کر سکتے ہیں اور کارکردگی میں بہتری دیکھ سکتے ہیں۔
تاہم، یہ آپ کے ڈیزائن کے وقت کو متاثر کر سکتا ہے، براہ کرم رجوع کریں۔ (Xilinx جواب 36505) nBANk_MACH پر تفصیلات کے لیےXilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-26

core_name_mig_sim.v کھولیں۔ file اور پیرامیٹرز nBANK_MACHS کو 4 سے 8 تک تبدیل کریں اور سمولیشن کو دوبارہ چلائیں۔ ہارڈ ویئر میں پیرامیٹر کی قدر کو مؤثر بنانے کے لیے، آپ کو core_name_mig.v کو اپ ڈیٹ کرنے کی ضرورت ہے۔ file.
میں نے وہی پیٹرن استعمال کیا جہاں ہمیں 87% بس کا استعمال ملا (شکل -12)۔
nBANK_MACHS کو 8 پر سیٹ کرنے کے ساتھ، کارکردگی اب 90% ہے۔ Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ-fig-27

یہ بھی نوٹ کریں کہ ½ اور ¼ کنٹرولرز اپنی تاخیر کی وجہ سے کارکردگی کو منفی طور پر متاثر کرتے ہیں۔
سابق کے لیےample، چونکہ ہم صرف ہر 4 CK سائیکلوں پر کمانڈ بھیج سکتے ہیں، کم از کم DRAM ٹائمنگ اسپیسز پر عمل کرتے ہوئے بعض اوقات اضافی پیڈنگ ہوتی ہے، جو نظریاتی سے کارکردگی کو کم کر سکتی ہے۔
آپ کی کارکردگی کی ضرورت کے مطابق ایک کو تلاش کرنے کے لیے مختلف کنٹرولرز آزمائیں۔

حوالہ جات

  1. Zynq-7000 AP SoC اور 7 سیریز FPGAs MIS v2.3 [UG586]
  2. Xilinx MIG سلوشن سینٹر http://www.xilinx.com/support/answers/34243.html

نظرثانی کی تاریخ
13/03/2015 – ابتدائی ریلیز

پی ڈی ایف ڈاؤن لوڈ کریں: Xilinx DDR2 MIG 7 کارکردگی کا تخمینہ گائیڈ

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *