Xilinx logó

Xilinx DDR2 MIG 7 teljesítménybecslési útmutató

Xilinx_DDR2_MIG_7_Teljesítménybecslési termék

Fontos megjegyzés: A válaszrekord ezen letölthető PDF-fájlja a használhatóság és az olvashatóság javítása érdekében készült. Fontos megjegyezni, hogy a válaszrekordok Web-alapú tartalom, amelyet gyakran frissítenek, amint új információk állnak rendelkezésre. Felhívjuk figyelmét, hogy keresse fel a Xilinx műszaki támogatását Website és review (Xilinx Answer 63234) a válasz legújabb verziójához.

Bevezetés

A DDR2 és DDR3 memóriák felépítésének és a MIG 7 sorozatú vezérlők kialakításának köszönhetően a teljesítmény nem egyszerű.
Megköveteli a különféle Jedec időzítési paraméterek és a vezérlő architektúra megértését, és szimulációkat kell futtatnia a becslések eléréséhez.
A teljesítmény meghatározásának általános elve ugyanaz, de ez a dokumentum egyszerű módot kínál a hatékonyság elérésére a MIG ex használatávalample tervezése tesztpad és inger segítségével fileide csatolva.

Hatékony sávszélesség

A DRAM adatbusz csak az olvasási és írási sorozatok során éri el a csúcs közeli sávszélességet, és többletterhelése csökkenti az effektív adatsebességet.
Néhány exampa kevesebb rezsi:

  • előtöltési idő az ugyanabban a bankban lévő sorok eléréséhez (a hozzáférési cím nem ugyanabban a soroldali találatban van)
  • írási helyreállítási idő az írásról az olvasási hozzáférésre való átálláshoz
  • a busz átfutási ideje olvasásról írásra való átálláshoz

Xilinx DDR2 MIG 7 teljesítménybecslés – 28. ábra
Hatékony sávszélesség = Csúcs sávszélesség * Hatékonyság 

MIG Design Generation

Lásd az UG586 1. fejezetét a MIG IP és plample design generáció.
A MIG 7 Series teljesítményszimuláció futtatása előtt tegye a következőket, hogy megbizonyosodjon arról, hogy a szimulációs környezet megfelelő. Nyissa meg a MIG examptervezze meg és térképezze fel a megfelelő könyvtárakat, futtassa a szimulációt, és győződjön meg arról, hogy a „teszt sikeres” üzenet látható az átiratban.
Az áramlás bemutatására létrehoztam egy MIG IP-t az xc7vx690tffg1761-2 számára, és meghívtam az examptervezés.
Két dolgot kell megjegyezni: a memóriacímbitek és a memóriacím-leképezés kiválasztása.
PlampLe, a memóriarész legördülő menüjében az MT41J128M8XX-125-öt választottam.Xilinx DDR2 MIG-7-Teljesítménybecslés-1. ábra

Az 1. ábrából kiválasztott memóriarésznél sor = 14, oszlop = 10 és bank = 3, tehát app_addr_width = sor + oszlop + bank + rang = 28 Xilinx DDR2 MIG 7 teljesítménybecslés – 2. ábra

Kiválaszthatja a BANK_ROW_COLUMN vagy a ROW BANK oszlopot.
Meghagytam a ROW BANK oszlopot, amely az alapértelmezett címleképezés.

Example design Szimuláció szintetizálható próbapadon

A Szimulációs beállítások alatt válassza a QuestaSim/ModelSim Simulator lehetőséget, és tallózással keresse meg a lefordított könyvtárak helyét.
A harmadik féltől származó eszközök telepítési útvonalára való rámutatással, a célszimulátor kiválasztásával, valamint a könyvtárak fordításával és leképezésével kapcsolatos részletekért tekintse meg az (UG900) Vivado Design Suite felhasználói kézikönyv Logikai szimulációt.Xilinx DDR2 MIG 7 teljesítménybecslés – 3. ábra

Futtassa a szimulációt a grafikus felhasználói felületen keresztül (kattintson a Szimuláció futtatása fülre a projektmenedzserben), és győződjön meg arról, hogy a „teszt sikeres” üzenet látható az átiratban.

Performance Simulation RTL módosítások

  1. Kattintson a jobb gombbal a Források fülre, válassza a „szimulációs források hozzáadása vagy létrehozása” lehetőséget, és tallózással keresse meg a mig7_perfsim_traffic_generator.sv file és a hozzáadáshoz kattintson a Befejezés gombra.
  2. Kattintson a jobb gombbal a források fülre, válassza ki a „szimulációs források hozzáadása vagy létrehozása”, tallózással keresse meg a perfsim_stimulus.txt fájlt, és kattintson a Befejezés gombra a hozzáadáshoz.
  3. Írd meg kommentben az exetample_top példányosítás a sim_tb_top.v file.
  4. Adja hozzá az alábbi RTL-sorokat a sim_tb_top,v-hez
  • 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;
  • vezeték [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
  • vezeték [2:0] c0_ddr3_app_cmd;
  • vezeték c0_ddr3_app_en;
  • vezeték [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
  • vezeték c0_ddr3_app_wdf_end;
  • vezeték [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
  • vezeték c0_ddr3_app_wdf_wren;
  • vezeték [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
  • vezeték c0_ddr3_app_rd_data_end;
  • vezeték c0_ddr3_app_rd_data_valid;
  • vezeték c0_ddr3_app_rdy;
  • vezeték c0_ddr3_app_wdf_rdy;
  • vezeték c0_data_compare_error;
  • vezeték ui_clk;
  • vezeték ui_clk_sync_rst;
  • vezeték app_sr_req = 0;
  • vezeték app_ref_req = 0;
  • vezeték app_zq_req =0;
  • vezeték c0_app_wdf_mask =0;

FPGA memóriavezérlő példányosítás

mig_7series_0_mig u_mig_7series_0_mig (
// Memória interfész portok

  • .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),

// Alkalmazás interfész portjai

  • .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),

// Rendszeróra portok

  • .sys_clk_i (sys_clk_i),

// Referencia óra portok

  • .clk_ref_i (clk_ref_i),
  • .sys_rst (sys_rst)
  • );

Performance forgalom generátor példányosítás

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. Módosítsa az APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH és BANK_WIDTH értékeket a kiválasztott memóriarésznek megfelelően.
    Az értékeket a _mig.v file.
  • A sárgán kiemelt példánynév mig_7series_0_mig az összetevő neve alapján változhat az IP létrehozása során, ellenőrizze, hogy más nevet választott-e, és ennek megfelelően változtassa meg.Xilinx DDR2 MIG 7 teljesítménybecslés – 4. ábra
  • Az IP létrehozása után nyissa meg a _mig.v file és ellenőrizze az LHS jelnevek eltéréseit, és javítsa ki azokat.
  • Az app_sr_req, app_ref_req és app_zq_req 0-ra kell inicializálni.
  • Mint plampA le_top.v ki lett kommentálva és új files hozzáadva, valószínűleg a „?” mellett a
    mig_7series_0_mig.v file szimulációs források alatt.
    A helyes feltérképezéshez file, kattintson jobb gombbal mig_7series_0_mig.v, válassza a „Források hozzáadása” lehetőséget, tallózzon a
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    és adja hozzá a mig_7series_0_mig_sim.v file.
  • Ha látod "?" a mögöttesre files, adja hozzá az összes RTL-t files a clocking, controller, ip_top, phy és UI mappákban.
  • Miután az RTL-módosítások megtörténtek, és minden szükséges files hozzáadva a szimulációs forrásokhoz, a hierarchiának hasonlónak kell lennie az 5. ábrához.
    A fileA pirossal kiemelt jelek újonnan lettek hozzáadva, és a „?” várható az ECC-vel kapcsolatos modulokon, mivel a kiválasztott memóriakonfigurációban az ECC opció le van tiltva.Xilinx DDR2 MIG 7 teljesítménybecslés – 5. ábra

Inger File Leírás
Mindegyik ingerminta 48 bites, és a formátumot a 6-1-6-4. ábrák írják le.Xilinx DDR2 MIG 7 teljesítménybecslés – 6. ábra

Címkódolás (cím [35:0])

A cím kódolása az ingerben a 7-1. ábra és a 7-6. ábra szerint. Minden címmezőt hexadecimális formátumban kell megadni. Az összes címmező szélessége néggyel osztható hexadecimális formátumban. A tesztpad csak a címmező szükséges bitjeit küldi el a memóriavezérlőnek.
PlampNyolc bankos konfigurációban csak [2:0] bankbiteket küld a memóriavezérlőnek, a többi bitet figyelmen kívül hagyja. A címmező extra bitjei a cím hexadecimális formátumban történő megadásához vannak biztosítva.
Meg kell erősítenie, hogy a megadott érték megfelel-e egy adott konfiguráció szélességének.Xilinx DDR2 MIG 7 teljesítménybecslés – 7. ábra

  • Oszlop címe (Oszlop[11:0]) – Az ingerben az oszlopcím legfeljebb 12 bites lehet, de ezt a tervben beállított oszlopszélesség-paraméter alapján kell kezelnie.
  • Sor címe (Sor[15:0]) – Az ingerben a sorcím legfeljebb 16 bites lehet, de ezt a tervezésben beállított sorszélesség-paraméterek alapján kell kezelnie.
  • Bank címe (Bank[3:0]) – Az ingerben szereplő bankcím legfeljebb négy bitre van megadva, de ezt a tervben beállított bankszélesség-paraméter alapján kell kezelnie.
  • Helyezési cím (Rank[3:0]) – Az ingerben szereplő rangcím legfeljebb négy bitnek van megadva, de ezt a tervben beállított rangszélesség-paraméter alapján kell kezelnie.
    A cím összeállítása a legfelső szintű MEM_ADDR_ORDER paraméter alapján történik, és elküldésre kerül a felhasználói felületnek

Parancs ismétlése (Parancs ismétlése [7:0])
A parancsismétlések száma az adott parancs megismétlésének száma a felhasználói felületen. Minden ismétlés címe 8-cal nő. A maximális ismétlésszám 128.
A próbapad nem ellenőrzi az oszlophatárt, és körbeteker, ha a lépések során eléri a maximális oszlophatárt.
A 128 parancs kitölti az oldalt. A 0-tól eltérő oszlopcímek esetén a 128-as ismétlésszám végül átlépi az oszlophatárt, és az oszlopcím elejéig terjed.

Buszhasználat
A buszkihasználtság kiszámítása a felhasználói felületen történik, figyelembe véve az olvasások és írások teljes számát, és a következő egyenletet alkalmazzuk:

Xilinx DDR2 MIG 7 teljesítménybecslés – 8. ábra

  • A BL8 négy memória óraciklust vesz igénybe
  • end_of_stimulus az az idő, amikor az összes parancs elkészült.
  • calib_done az az idő, amikor a kalibráció megtörténik.

Example Minták
Ezek az exampa BANK_ROW_COLUMN értékű MEM_ADDR_ORDER értéken alapulnak.

Egyetlen olvasási minta
00_0_2_000F_00A_1 – Ez a minta egyetlen olvasás a 10. oszlopból, a 15. sorból és a második bankból.Xilinx DDR2 MIG 7 teljesítménybecslés – 9. ábraEgyetlen írási minta
00_0_1_0040_010_0 – Ez a minta egyetlen írás a 32. oszlopba, a 128. sorba és az első bankba.Xilinx DDR2 MIG 7 teljesítménybecslés – 10. ábraEgyetlen írás és olvasás ugyanarra a címre
00_0_2_000F_00A_0 – Ez a minta egyetlen írás a 10. oszlopba, a 15. sorba és a második bankba.
00_0_2_000F_00A_1 – Ez a minta egyetlen leolvasás a 10. oszlopból, a 15. sorból és a második bankbólXilinx DDR2 MIG 7 teljesítménybecslés – 11. ábra

Több írás és olvasás ugyanazzal a címmel
0A_0_0_0010_000_0 – Ez 10 írásnak felel meg 0-tól 80-ig kezdődő címekkel, amelyek az oszlopban láthatók.Xilinx DDR2 MIG 7 teljesítménybecslés – 12. ábra

0A_0_0_0010_000_1 – Ez 10 leolvasásnak felel meg 0-tól 80-ig kezdődő címekkel, amelyek az oszlopban láthatók.Xilinx DDR2 MIG 7 teljesítménybecslés – 13. ábra

Oldal tördelése írás közben
0A_0_2_000F_3F8_0 – Ez 10 írásnak felel meg, amelynek oszlopcíme egy írás után az oldal elejére kerül.Xilinx DDR2 MIG 7 teljesítménybecslés – 14. ábra

A Performance Traffic Generator szimulálása

Ezen a ponton kész a MIG example tervezési szimuláció. Ez azt jelenti, hogy a szimuláció beállítása készen áll, elvégezte a teljesítményszimulációs RTL módosításokat, az új szimulációs hierarchia megfelelő, és megértette az ingermintákat. Futtassa még egyszer a szimulációt 16 írással és olvasással a perfsim_stimulus.txt fájlban.Xilinx DDR2 MIG 7 teljesítménybecslés – 15. ábra

Végezze el az összes futtatást, várja meg, amíg az init_calib_complete jel érvényesül, és látni fogja az írások és olvasások javasolt számát. Ekkor a szimuláció leáll. Xilinx DDR2 MIG 7 teljesítménybecslés – 16. ábra

Amikor a rendszer kéri, hogy lépjen ki a szimulációból, válassza a Nem lehetőséget, és lépjen az átírási ablakba, ahol megtekintheti a teljesítménystatisztikát. Xilinx DDR2 MIG 7 teljesítménybecslés – 17. ábra

Ha kiválasztja „Kilépés a szimulációból” teljesítménystatisztikát írunk a file nevű mig_band_width_output.txt a sim_1/behave fájlban található mappát.

Exampa könyvtár elérési útja:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavXilinx DDR2 MIG 7 teljesítménybecslés – 18. ábra

Elgondolkodhat, hogy miért a százaléktagA busz kihasználtsága csak 29. Futtassa újra a szimulációt ugyanazokkal az IP-beállításokkal, de csak az inger módosításával file 256 írásra és 256 olvasásra

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Most látni fogja a százalékottage mint 85, ami azt jelenti, hogy a DDR3 jobb buszkihasználást kínál a hosszú írási és olvasási sorozatokhoz. Xilinx DDR2 MIG 7 teljesítménybecslés – 19. ábra

Általános módszerek a teljesítmény javítására

A hatékonyságot befolyásoló tényezők két részre oszthatók:

  1. Memória specifikus
  2. VezérlőspecifikusXilinx DDR2 MIG 7 teljesítménybecslés – 20. ábra

A 9. ábra egy végeredményt adview a memóriaspecifikus kifejezések közül.
Az SRAM-okkal és a blokkmemóriákkal ellentétben a DDR2 vagy DDR3 teljesítménye nem csak a maximális adatsebesség.

Sok időzítési tényezőtől függ, többek között:

  • tRCD: Sor parancs késleltetése (vagy ras to ca késleltetés).
  • tCAS(CL): Oszlopcím villogó késleltetése.
  • tRP: Sor előtöltési késleltetés.
  • tRAS: Aktív idő sora (aktiválás az előcseréhez).
  • tRC: Sorciklus ideje. tRC = tRAS + tRP
  • tRAC: Radom hozzáférési késleltetés. tRAC = tRCD + tCAS
  • tCWL: Cas írási késleltetés.
  • tZQ: ZQ kalibrációs idő.
  • tRFC: Sorfrissítési ciklusidő
  • tWTR: Írás az olvasási késleltetéshez. Utolsó írási tranzakció a Read parancs idejére.
  • tWR: Írja be a helyreállítási időt. Utolsó írási tranzakció az Előtöltési időbe

Az összes felsorolt ​​paraméter időzítése a használt memória típusától és a memóriarész sebességétől függ.
A definíciókkal és az időzítési specifikációkkal kapcsolatos további részletek a DDR2 DDR3 JEDEC-ben vagy bármely memóriaeszköz adatlapján találhatók.

A hatékonyság főként a memória elérésének módjától függ. A különböző címminták eltérő hatékonysági eredményeket adnak.

Memóriaidőzítési költségek

  1. Aktiválási idő és előtöltési idő új bankokra/sorokra vagy sorok megváltoztatásakor ugyanabban a bankban.- Tehát ha csökkenti a sorváltást, ez eltávolíthatja a tRCD-t és a tRP-t.
  2. Folyamatos írási vagy olvasási parancsok küldése - A tCCD időzítés fenntartása.
  3. Minimálisra csökkenti az írásról olvasásra és olvasásról írásra való átváltást – Írási helyreállítási idő az olvasási hozzáférésre való átálláshoz, a busz átfutási ideje az olvasásról írásra való váltáshoz
  4. Állítsa be a megfelelő frissítési intervallumot.
    • A DDR3 SDRAM frissítési ciklusokat igényel átlagosan tREFI periodikus időközönként.
    • Maximum 8 további frissítési parancs adható ki előre („behúzva”). Ez nem csökkenti a frissítések számát, de a két környező frissítési parancs közötti maximális intervallum 9 × tREFI.Xilinx DDR2 MIG 7 teljesítménybecslés – 21. ábra
  • Használja ki az összes bankot - Előnyös egy megfelelő címzési mechanizmus.
    • Sor-Bank-oszlop: Egy szekvenciális címtéren keresztül lezajló tranzakció esetén a mag automatikusan megnyitja ugyanazt a sort a DRAM eszköz következő bankjában, hogy folytassa a tranzakciót, amikor egy meglévő sor végét elérjük. Jól illeszkedik azokhoz az alkalmazásokhoz, amelyek nagy adatcsomagokat követelnek meg egymás utáni címhelyekre.
    • Bank-sor-oszlop: Sorhatár átlépésekor az aktuális sor bezárul, és egy másik sor nyílik meg ugyanazon a parton belül. Az MSB egy bankcím, amellyel különböző bankokról válthatunk. Alkalmas rövidebb, véletlenszerűbb tranzakciókra egy memóriablokkba egy ideig, majd egy másik blokkra (bankra) ugorhat.
  • Burst Length
    • A BL 8 a 3-es sorozatú DDR7-hoz támogatott. A BC4 hatásfoka nagyon alacsony, kevesebb, mint 50%. Ennek az az oka, hogy a BC4 végrehajtási ideje megegyezik a BL8-éval. Az adatok csak az összetevő belsejében vannak elrejtve.
    • Azokban az esetekben, amikor nem kíván teljes sorozatot írni, akár adatmaszk, akár írás utáni olvasás jöhet szóba.
  • Állítsa be a megfelelő ZQ intervallumot (csak DDR3)
    A vezérlő mind a ZQ Short (ZQCS) és a ZQ Long (ZQCL) kalibrációs parancsokat küldi.
    • Tartsa be a DDR3 Jedec szabványt
    • A ZQ kalibrációt a JEDEC Spec JESD5.5-79 DDR3 SDRAM szabvány 3 szakasza tárgyalja
    • A ZQ Calibration rendszeres időközönként kalibrálja az On Die Termination (ODT) rendszert, hogy figyelembe vegye a VT közötti eltéréseket
    • A logikát a bank_common.v/vhd tartalmazza
    • A Tzqcs paraméter határozza meg azt a sebességet, amellyel a ZQ-kalibrációs parancs a memóriába kerül
    • Lehetséges a számláló letiltása és manuális küldés az app_zq_req használatával, ez hasonló a frissítés kézi küldéséhez.
      A részletekért lásd a (Xilinx Answer 47924) című részt.Xilinx DDR2 MIG 7 teljesítménybecslés – 22. ábra

Vezérlő rezsi

  1. Időszakos leolvasások – Lásd (Xilinx válasz 43344) részletekért.
    • Ne változtassa meg az olvasás időtartamát
    • Írás közben hagyja ki az időszakos olvasást, és adja meg a kihagyott olvasások számát a valódi olvasás előtt
  2. Újrarendelés – Lásd (Xilinx válasz 34392) részletekért.
    Felhasználói és AXI interfész kialakítások esetén célszerű ezt engedélyezni.
    • Az átrendezés az a logika, amely több parancsot előre tekint, és megváltoztatja a felhasználói parancsok sorrendjét, hogy a nem memóriát használó parancsok ne foglalják el az érvényes sávszélességet. A teljesítmény a tényleges forgalmi mintához is kapcsolódott.
    • A címminta alapján az újrarendezés segít kihagyni az előtöltést és az aktiválási parancsokat, és megakadályozza, hogy a tRCD és a tRP adatsávszélességet foglaljon el.Xilinx DDR2 MIG 7 teljesítménybecslés – 23. ábra
  3. Próbálja meg növelni a Bankgépek számát.
    • A vezérlő logikájának nagy része a bankgépekben van, és ezek a DRAM bankoknak felelnek meg
    • Egy adott bankgép egy adott időpontban egyetlen DRAM bankot kezel.
    • A bankautomaták hozzárendelése dinamikus, így nem szükséges minden fizikai bankhoz bankautomata.
    • A bankautomaták konfigurálhatók, de ez kompromisszum a terület és a teljesítmény között.
    • A bankautomaták megengedett száma 2-8 között van.
    • Alapértelmezés szerint 4 bankgép van konfigurálva az RTL paramétereken keresztül.
    • A bankgépek megváltoztatásához vegye figyelembe az nBANK_MACHS = 8 paramétert, amely a memc_ui_top Ex-ben találhatóample 8 bankgéphez – nBANK_MACHS = 8

Most már tisztában van a teljesítményt befolyásoló tényezőkkel.
Vegyünk egy upstream alkalmazást, amely csomagonként 512 adatbájtot ad, és ezeket különböző memóriahelyekre kell mentenie. Mivel 512 adatbájt egyenlő 64 DDR3 adatlökettel, futtassa újra az example design ingerrel file 512 írást, 512 olvasást és sorváltást tartalmaz minden 64 írásnál vagy olvasásnál:

  • 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

A szimuláció végén látni fogja, hogy a busz kihasználtsága 77 százalék. Xilinx DDR2 MIG 7 teljesítménybecslés – 24. ábra

11. ábra: Teljesítménystatisztika 512 írás és 512 olvasás esetén – Sorváltás 64 íráshoz vagy olvasáshoz. 

Most már alkalmazhatja a korábbi részben tanult ismereteket a hatékonyság növelése érdekében. Val,-vel view Ha a sor módosítása helyett az összes bankot szeretné használni, módosítsa a címmintát a bank megváltoztatásához az alábbiak szerint.
Ez megegyezik a ROW_BANK_Column beállításával a memóriacím-leképezés beállításában a MIG GUI-ban.

  • 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

A szimuláció végén látni fogja, hogy a korábbi 77 százalékos buszhasználat most 87! Xilinx DDR2 MIG 7 teljesítménybecslés – 25. ábra

Ha továbbra is nagyobb hatékonyságra van szüksége, választhat nagy, 1024 vagy 2048 bájtos csomagméretet, vagy fontolja meg a kézi frissítést.

Jegyzet: A Xilinx nem ösztönzi a vezérlő frissítésének megkerülését, mivel nem vagyunk biztosak abban, hogy képes lesz-e megfelelni a Jedec automatikus frissítési időzítésének, amely befolyásolja az adatok megbízhatóságát.
A vezérlő oldaláról módosíthatja az nBANK_MACH értéket, és láthatja a teljesítmény javulását.
Ez azonban befolyásolhatja a tervezési időzítést, kérjük, olvassa el (Xilinx válasz 36505) az nBANK_MACH részleteiértXilinx DDR2 MIG 7 teljesítménybecslés – 26. ábra

Nyissa meg a core_name_mig_sim.v fájlt file és módosítsa az nBANK_MACHS paramétert 4-ről 8-ra, és futtassa újra a szimulációt. Ahhoz, hogy a paraméterérték érvénybe lépjen a hardverben, frissítenie kell a core_name_mig.v fájlt file.
Ugyanazt a mintát használtam, ahol 87%-os buszkihasználást kaptunk (-12. ábra).
Ha az nBANK_MACHS 8-ra van állítva, a hatékonyság most 90%. Xilinx DDR2 MIG 7 teljesítménybecslés – 27. ábra

Vegye figyelembe azt is, hogy a ½ és ¼ vezérlők késleltetésük miatt negatívan befolyásolják a hatékonyságot.
PlampMivel csak 4 CK-ciklusonként tudunk parancsokat küldeni, a minimális DRAM-időzítési specifikációk betartása esetén néha extra padding van, ami csökkentheti a hatékonyságot az elméletihez képest.
Próbáljon ki különböző vezérlőket, hogy megtalálja a hatékonysági követelményeinek megfelelőt.

Hivatkozások

  1. Zynq-7000 AP SoC és 7-es sorozatú FPGA-k MIS v2.3 [UG586]
  2. Xilinx MIG Megoldásközpont http://www.xilinx.com/support/answers/34243.html

Revíziótörténet
13. – Első kiadás

Letöltés PDF: Xilinx DDR2 MIG 7 teljesítménybecslési útmutató

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *