Logo Xilinx

Xilinx DDR2 MIG 7 Průvodce odhadem výkonu

Produkt Xilinx_DDR2_MIG_7_Performance-Estimation

Důležitá poznámka: Tento záznam ve formátu PDF ke stažení je poskytován za účelem zlepšení jeho použitelnosti a čitelnosti. Je důležité si uvědomit, že Záznamy odpovědí jsou Web– obsah, který je často aktualizován, když jsou k dispozici nové informace. Připomínáme, abyste navštívili technickou podporu Xilinx Webmísto a review (odpověď Xilinx 63234) pro nejnovější verzi této odpovědi.

Zavedení

Vzhledem k tomu, jak jsou paměti DDR2 a DDR3 navrženy a řadič řady MIG 7 navržen, není výkon přímočarý.
Vyžaduje to porozumění různým parametrům časování Jedec a architektuře regulátoru a pro získání odhadů budete muset spustit simulace.
Obecný princip pro stanovení výkonu je stejný, ale tento dokument poskytuje snadný způsob, jak dosáhnout účinnosti pomocí MIG example design s pomocí zkušební stolice a podnětu fileje připojeno zde.

Efektivní šířka pásma

Datová sběrnice DRAM dosahuje téměř špičkové šířky pásma pouze během shluků čtení a zápisu a její režie snižuje efektivní datovou rychlost.
Několik examprežijní náklady jsou:

  • doba předběžného naúčtování přístupu k řádkům ve stejné bance (přístupová adresa není ve stejném řádku na stránce)
  • doba obnovy zápisu pro změnu z přístupu pro zápis na přístup pro čtení
  • doba obratu sběrnice pro změnu z přístupu pro čtení na přístup pro zápis

Odhad výkonu Xilinx DDR2 MIG 7-obr-28
Efektivní šířka pásma = Špičková šířka pásma * Účinnost 

MIG Design Generation

Podrobnosti o MIG IP najdete v kapitole 586 UG1 a exampgenerace designu.
Před spuštěním simulace výkonu MIG 7 Series proveďte následující, abyste se ujistili, že vaše simulační prostředí je v pořádku. Otevřete MIG exampNavrhněte a zmapujte příslušné knihovny, spusťte simulaci a ujistěte se, že v přepisu vidíte zprávu „test prošel“.
Pro demonstraci toku jsem vygeneroval MIG IP pro xc7vx690tffg1761-2 a vyvolal exampdesign.
Dvě věci, které je třeba poznamenat, jsou bity adresy paměti a výběr mapování adresy paměti.
Napřample, v rozbalovací nabídce paměťové části jsem vybral MT41J128M8XX-125.Xilinx DDR2 MIG-7-Odhad výkonu-obr-1

Pro vybranou paměťovou část z obrázku 1 řádek = 14, sloupec = 10 a banka = 3, takže app_addr_width = řádek + sloupec + banka + pořadí = 28 Odhad výkonu Xilinx DDR2 MIG 7-obr-2

Můžete vybrat sloupec BANK_ROW_COLUMN nebo ROW BANK.
Opustil jsem sloupec ROW BANK, což je výchozí mapování adresy.

Example design Simulace se syntetizovatelnou zkušební stolicí

V části Nastavení simulace vyberte QuestaSim/ModelSim Simulator a přejděte do umístění zkompilovaných knihoven.
Podrobnosti o odkazování na instalační cestu nástrojů třetích stran, výběru cílového simulátoru a kompilaci a mapování knihoven najdete v (UG900) Vivado Design Suite User Guide Logic SimulationOdhad výkonu Xilinx DDR2 MIG 7-obr-3

Spusťte simulaci přes GUI (klikněte na záložku Run Simulation ve správci projektu) a ujistěte se, že v přepisu vidíte zprávu „test prošel“.

Simulace výkonu RTL modifikace

  1. Klepněte pravým tlačítkem myši na kartu zdrojů, vyberte „přidat nebo vytvořit zdroje simulace“ a přejděte na stránku mig7_perfsim_traffic_generator.sv file a kliknutím na tlačítko Dokončit jej přidejte.
  2. Klepněte pravým tlačítkem myši na kartu zdrojů, vyberte „přidat nebo vytvořit zdroje simulace“, přejděte na soubor perfsim_stimulus.txt a kliknutím na tlačítko Dokončit jej přidejte.
  3. Okomentujte example_top instance v souboru sim_tb_top.v file.
  4. Přidejte níže uvedené řádky RTL k 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;
  • drát [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
  • drát [2:0] c0_ddr3_app_cmd;
  • drát c0_ddr3_app_en;
  • drát [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
  • drát c0_ddr3_app_wdf_end;
  • drát [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
  • drát c0_ddr3_app_wdf_wren;
  • drát [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
  • drát c0_ddr3_app_rd_data_end;
  • drát c0_ddr3_app_rd_data_valid;
  • drát c0_ddr3_app_rdy;
  • drát c0_ddr3_app_wdf_rdy;
  • drát c0_data_compare_error;
  • drát ui_clk;
  • drát ui_clk_sync_rst;
  • drát app_sr_req = 0;
  • drát app_ref_req = 0;
  • drát app_zq_req =0;
  • drát c0_app_wdf_mask =0;

Instanciace řadiče paměti FPGA

mig_7series_0_mig u_mig_7series_0_mig (
// Porty paměťového rozhraní

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

// Porty aplikačního rozhraní

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

// Porty systémových hodin

  • .sys_clk_i (sys_clk_i),

// Referenční porty hodin

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

Konkretizace generátoru výkonu

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. Upravte APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH a BANK_WIDTH podle vašeho výběru paměťové části.
    Hodnoty lze získat z _mig.v file.
  • Žlutě zvýrazněný název instance mig_7series_0_mig se může během vytváření IP lišit v závislosti na názvu vaší komponenty, ověřte, zda jste nezvolili jiný název, a podle toho jej změňte.Odhad výkonu Xilinx DDR2 MIG 7-obr-4
  • Po vygenerování IP otevřete _mig.v file a křížově zkontrolujte případné odchylky v názvech signálů LHS a opravte je.
  • app_sr_req, app_ref_req a app_zq_req by měly být inicializovány na 0.
  • Jako example_top.v je komentovaný a nový files jsou přidány, pravděpodobně uvidíte „?“ vedle
    mig_7series_0_mig.v file pod simulačními zdroji.
    Chcete-li mapovat správné file, klikněte pravým tlačítkem na mig_7series_0_mig.v, vyberte „Přidat zdroje“, Procházet
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    a přidejte soubor mig_7series_0_mig_sim.v file.
  • Pokud vidíte „?“ pro podkladové files, přidejte všechny RTL files ve složkách clocking, controller, ip_top,phy a UI.
  • Jakmile jsou provedeny změny RTL a vše potřebné files jsou přidány do vašich zdrojů simulace, Hierarchie by měla být podobná jako na obrázku 5.
    The files červeně zvýrazněná jsou nově přidána a „?“ se očekává u modulů souvisejících s ECC, protože vybraná konfigurace paměti má možnost ECC deaktivovanou.Odhad výkonu Xilinx DDR2 MIG 7-obr-5

Podnět File Popis
Každý vzor stimulu má 48 bitů a formát je popsán na obrázcích 6-1 až 6-4.Odhad výkonu Xilinx DDR2 MIG 7-obr-6

Kódování adresy (adresa [35:0])

Adresa je zakódována ve stimulu podle obrázku 7-1 až obrázku 7-6. Všechna pole adresy musí být zadána v hexadecimálním formátu. Všechna pole adresy mají šířku, která je dělitelná čtyřmi pro zadání v hexadecimálním formátu. Testovací zařízení pouze posílá požadované bity adresního pole do řadiče paměti.
Napřample, v konfiguraci s osmi bankami jsou do řadiče paměti odesílány pouze bity bank [2:0] a zbývající bity jsou ignorovány. Extra bity pro pole adresy jsou k dispozici pro zadání adresy v hexadecimálním formátu.
Musíte potvrdit, že zadaná hodnota odpovídá šířce dané konfigurace.Odhad výkonu Xilinx DDR2 MIG 7-obr-7

  • Adresa sloupce (sloupec[11:0]) – Adresa sloupce ve stimulu je poskytována na maximálně 12 bitů, ale musíte to řešit na základě parametru šířky sloupce nastaveného ve vašem návrhu.
  • Adresa řádku (Řádek[15:0]) – Adresa řádku ve stimulu je poskytována na maximálně 16 bitů, ale musíte to řešit na základě parametru šířky řádku nastaveného ve vašem návrhu.
  • Adresa banky (Banka[3:0]) – Adresa banky ve stimulu je poskytována na maximálně čtyři bity, ale musíte ji řešit na základě parametru šířky banky nastaveného ve vašem návrhu.
  • Adresa pozice (Rank[3:0]) – Pořadová adresa ve stimulu je poskytována maximálně na čtyři bity, ale musíte ji řešit na základě parametru šířky pořadí nastaveného ve vašem návrhu.
    Adresa je sestavena na základě parametru MEM_ADDR_ORDER nejvyšší úrovně a odeslána do uživatelského rozhraní

Opakování příkazu (Opakování příkazu [7:0])
Počet opakování příkazu je počet opakování příslušného příkazu v uživatelském rozhraní. Adresa pro každé opakování se zvýší o 8. Maximální počet opakování je 128.
Zkušební zařízení nekontroluje hranici sloupce a pokud je během přírůstků dosaženo maximálního limitu sloupce, obtáčí se kolem.
128 příkazů zaplňuje stránku. Pro jakoukoli adresu sloupce jinou než 0 počet opakování 128 skončí překročením hranice sloupce a obtékáním na začátek adresy sloupce.

Využití autobusu
Využití sběrnice se vypočítá v uživatelském rozhraní s ohledem na celkový počet čtení a zápisů a použije se následující rovnice:

Odhad výkonu Xilinx DDR2 MIG 7-obr-8

  • BL8 trvá čtyři cykly paměti
  • end_of_stimulus je čas, kdy jsou provedeny všechny příkazy.
  • calib_done je čas, kdy je kalibrace hotová.

Example Vzory
Tyto exampsoubory jsou založeny na MEM_ADDR_ORDER nastaveném na BANK_ROW_COLUMN.

Jeden vzor čtení
00_0_2_000F_00A_1 – Tento vzor je jedno čtení z 10. sloupce, 15. řádku a druhé banky.Odhad výkonu Xilinx DDR2 MIG 7-obr-9Single Write Pattern
00_0_1_0040_010_0 – Tento vzor je jediný zápis do 32. sloupce, 128. řádku a první banky.Odhad výkonu Xilinx DDR2 MIG 7-obr-10Jediný zápis a čtení na stejnou adresu
00_0_2_000F_00A_0 – Tento vzor je jediný zápis do 10. sloupce, 15. řádku a druhé banky.
00_0_2_000F_00A_1 – Tento vzor je jedním čtením z 10. sloupce, 15. řádku a druhé bankyOdhad výkonu Xilinx DDR2 MIG 7-obr-11

Více zápisů a čtení se stejnou adresou
0A_0_0_0010_000_0 – To odpovídá 10 zápisům s adresou začínající od 0 do 80, kterou lze vidět ve sloupci.Odhad výkonu Xilinx DDR2 MIG 7-obr-12

0A_0_0_0010_000_1 – To odpovídá 10 čtením s adresou začínající od 0 do 80, která je vidět ve sloupci.Odhad výkonu Xilinx DDR2 MIG 7-obr-13

Zalomení stránky během zápisu
0A_0_2_000F_3F8_0 – To odpovídá 10 zápisům s adresou sloupce zabalenou na začátek stránky po jednom zápisu.Odhad výkonu Xilinx DDR2 MIG 7-obr-14

Simulace generátoru výkonu

V tomto okamžiku jste hotovi s MIG exampsimulace designu. To znamená, že vaše nastavení simulace je připraveno, provedli jste úpravy RTL simulace výkonu, nová hierarchie simulace je správná a porozuměli jste vzorcům stimulů. Spusťte simulaci ještě jednou s 16 zápisy a čteními v souboru perfsim_stimulus.txt.Odhad výkonu Xilinx DDR2 MIG 7-obr-15

Spusťte vše, počkejte, až bude potvrzen signál init_calib_complete, a uvidíte navrhovaný počet zápisů a čtení. Poté se simulace zastaví. Odhad výkonu Xilinx DDR2 MIG 7-obr-16

Když budete vyzváni k ukončení simulace, vyberte Ne a přejděte do okna přepisu, kde budete moci vidět statistiky výkonu. Odhad výkonu Xilinx DDR2 MIG 7-obr-17

Pokud vyberete "ukončit simulaci" statistiky výkonu budou zapsány do a file jmenoval mig_band_width_output.txt umístěný v souboru sim_1/behave složku.

Exampcesta k adresáři:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavOdhad výkonu Xilinx DDR2 MIG 7-obr-18

Možná se divíte, proč ta procentatagVyužití sběrnice je pouze 29. Spusťte znovu simulaci se stejným nastavením IP, ale pouze se změnou stimulu file na 256 zápisů a 256 čtení

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Nyní uvidíte procentatage jako 85, což znamená, že DDR3 nabízí lepší využití sběrnice pro dlouhé sekvence shluků zápisů a čtení. Odhad výkonu Xilinx DDR2 MIG 7-obr-19

Obecné způsoby, jak zlepšit výkon

Faktory, které ovlivňují efektivitu, lze rozdělit do dvou částí:

  1. Specifické pro paměť
  2. Specifické pro ovladačOdhad výkonu Xilinx DDR2 MIG 7-obr-20

Obrázek 9 vám dává přeskokview termínů, které jsou specifické pro paměť.
Na rozdíl od SRAM a blokových pamětí DDR2 nebo DDR3 není výkon pouze maximální přenosová rychlost.

Závisí to na mnoha faktorech načasování, včetně:

  • tRCD: Zpoždění příkazu řádku (nebo zpoždění ras to cas).
  • tCAS(CL): Latence stroboskopické adresy sloupce.
  • tRP: Zpoždění přednabíjení řádku.
  • tRAS: Čas aktivního řádku (aktivací pro předběžnou změnu).
  • tRC: Doba cyklu řádku. tRC = tRAS + tRP
  • tRAC: Zpoždění přístupu Radom. tRAC = tRCD + tCAS
  • tCWL: Cas latence zápisu.
  • tZQ: Čas kalibrace ZQ.
  • tRFC: Doba cyklu obnovení řádku
  • tWTR: Zpoždění zápisu do čtení. Poslední transakce zápisu do času příkazu Read.
  • tWR: Zapište čas zotavení. Poslední zápis transakce do času předběžného nabití

Časování všech uvedených parametrů závisí na typu použité paměti a stupni rychlosti části paměti.
Další podrobnosti o definicích a specifikacích časování lze nalézt v DDR2 DDR3 JEDEC nebo v datovém listu libovolného paměťového zařízení.

Efektivita závisí především na způsobu přístupu k paměti. Různé vzory adres poskytují různé výsledky účinnosti.

Režie časování paměti

  1. Doba aktivace a doba předběžného nabití při změně na nové banky/řádky nebo při změně řádků ve stejné bance.- Pokud tedy snížíte změnu řádku, může to odstranit tRCD a tRP.
  2. Odesílejte kontinuální příkazy pro zápis nebo čtení - Zachování časování tCCD.
  3. Minimalizujte změnu příkazů zápisu na čtení a čtení na zápis – doba obnovení zápisu pro změnu na přístupy pro čtení, doba obratu sběrnice pro změnu ze čtení na zápis
  4. Nastavte správný interval obnovy.
    • DDR3 SDRAM vyžaduje cykly obnovy v průměrném pravidelném intervalu tREFI.
    • Předem lze vydat maximálně 8 dodatečných povelů Obnovit („zatáhnout“). Tím se nesníží počet obnovení, ale maximální interval mezi dvěma okolními příkazy Refresh je omezen na 9 × tREFIOdhad výkonu Xilinx DDR2 MIG 7-obr-21
  • Využijte všechny banky – Výhodný je vhodný adresovací mechanismus.
    • Řádek-Bank-Sloupec: Pro transakci probíhající v sekvenčním adresovém prostoru jádro automaticky otevře stejný řádek v další bance zařízení DRAM, aby pokračovalo v transakci, když je dosaženo konce existujícího řádku. Dobře se hodí pro aplikace, které vyžadují shlukování velkých datových paketů do sekvenčních adres.
    • Bank-Row-Column: Při překročení hranice řádku bude aktuální řádek uzavřen a další řádek bude otevřen ve stejné bance. MSB je adresa banky, kterou lze použít k přechodu z různých bank. Je vhodný pro kratší, náhodnější transakce do jednoho bloku paměti po určitou dobu a poté skok do jiného bloku (banky)
  • Délka prasknutí
    • BL 8 je podporován pro DDR3 na řadě 7. BC4 má velmi nízkou účinnost, která je nižší než 50 %. Je to proto, že doba provedení BC4 je stejná jako BL8. Data jsou uvnitř komponenty pouze maskována.
    • V případech, kdy si nepřejete zapisovat full burst, lze zvážit buď datovou masku, nebo zápis po čtení.
  • Nastavte správný interval ZQ (pouze DDR3)
    Ovladač posílá jak kalibrační příkazy ZQ Short (ZQCS), tak ZQ Long (ZQCL).
    • Dodržujte DDR3 Jedec Standard
    • Kalibrace ZQ je popsána v části 5.5 normy JEDEC Spec JESD79-3 DDR3 SDRAM
    • Kalibrace ZQ kalibruje On Die Termination (ODT) v pravidelných intervalech, aby zohlednila odchylky napříč VT
    • Logika je obsažena v souboru bank_common.v/vhd
    • Parametr Tzqcs určuje rychlost, jakou je příkaz ZQ Calibration posílán do paměti
    • Je možné deaktivovat počítadlo a ručně odeslat pomocí app_zq_req, je to podobné ručnímu odeslání Refresh.
      Podrobnosti viz (odpověď Xilinx 47924).Odhad výkonu Xilinx DDR2 MIG 7-obr-22

Režie ovladače

  1. Pravidelné čtení – viz (Xilinx odpověď 43344) pro podrobnosti.
    • Neměňte periodu čtení
    • Přeskočte periodická čtení během zápisů a zadejte počet zmeškaných čtení před skutečným čtením
  2. Změna objednávky – viz (Xilinx odpověď 34392) pro podrobnosti.
    U návrhů User a AXI Interface je vhodnější mít toto povoleno.
    • Změna pořadí je logika, která se dívá dopředu na několik příkazů a mění pořadí uživatelských příkazů tak, aby příkazy, které nejsou v paměti, nezabíraly platnou šířku pásma. Výkon také souvisí se skutečným vzorem provozu.
    • Na základě vzoru adresy pomáhá změna pořadí přeskočit předběžné nabíjení a aktivovat příkazy a způsobí, že tRCD a tRP nezabírají šířku datového pásma.Odhad výkonu Xilinx DDR2 MIG 7-obr-23
  3. Pokuste se zvýšit počet bankovních automatů.
    • Většina logiky řadiče se nachází v bankách a ty odpovídají bankám DRAM
    • Daný bankovní stroj spravuje jednu banku DRAM v libovolném okamžiku.
    • Přiřazení bankovního automatu je dynamické, takže není nutné mít bankovní automat pro každou fyzickou banku.
    • Bankovní automaty lze konfigurovat, ale jde o kompromis mezi oblastí a výkonem.
    • Povolený počet bankovních automatů se pohybuje v rozmezí 2–8.
    • Ve výchozím nastavení jsou pomocí parametrů RTL nakonfigurovány 4 bankovní stroje.
    • Chcete-li změnit bankovní automaty, zvažte parametr nBANK_MACHS = 8 obsažený v memc_ui_top Example pro 8 bankovních automatů – nBANK_MACHS = 8

Nyní jste si vědomi faktorů, které ovlivňují výkon.
Zvažte upstreamovou aplikaci, která vám poskytne 512 datových bajtů na paket a budete je muset uložit do různých paměťových míst. Protože 512 datových bytů se rovná 64 datovým shlukům DDR3, spusťte znovu example design s podnětem file obsahující 512 zápisů, 512 čtení a přepínání řádků na každých 64 zápisů nebo čtení:

  • 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

Na konci simulace uvidíte, že využití sběrnice je na 77 procentech. Odhad výkonu Xilinx DDR2 MIG 7-obr-24

Obrázek 11: Statistika výkonu pro 512 zápisů a 512 čtení – Přepínání řádků pro 64 zápisů nebo čtení. 

Nyní můžete použít znalosti získané v předchozí části ke zvýšení efektivity. S a view Chcete-li místo změny řádku využít všechny banky, upravte vzor adresy a změňte banku, jak je uvedeno níže.
To je ekvivalentní nastavení ROW_BANK_Column v nastavení mapování adres paměti v MIG GUI.

  • 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

Na konci simulace uvidíte, že dřívější 77procentní využití sběrnice je nyní 87! Odhad výkonu Xilinx DDR2 MIG 7-obr-25

Pokud stále požadujete vyšší efektivitu, můžete použít velké pakety o velikosti 1024 nebo 2048 bajtů nebo zvážit ruční aktualizaci.

Poznámka: Xilinx nepodporuje obcházení obnovy řadiče, protože si nejsme jisti, zda budete schopni splnit časování automatického obnovování Jedec, které ovlivňuje spolehlivost dat.
Na straně ovladače můžete změnit nBANk_MACH a vidět zlepšení výkonu.
To však může ovlivnit načasování vašeho návrhu, viz (Xilinx odpověď 36505) podrobnosti o nBANk_MACHOdhad výkonu Xilinx DDR2 MIG 7-obr-26

Otevřete soubor core_name_mig_sim.v file a změňte parametry nBANK_MACHS ze 4 na 8 a znovu spusťte simulaci. Aby se hodnota parametru projevila v hardwaru, musíte aktualizovat soubor core_name_mig.v file.
Použil jsem stejný vzor, ​​kde jsme získali 87% využití sběrnice (obrázek -12).
S nBANK_MACHS nastaveným na 8 je nyní účinnost 90 %. Odhad výkonu Xilinx DDR2 MIG 7-obr-27

Všimněte si také, že regulátory ½ a ¼ negativně ovlivňují účinnost kvůli jejich latenci.
Napřample, protože můžeme posílat příkazy pouze každé 4 cykly CK, někdy je při dodržení minimálních časových specifikací DRAM vyžadováno dodatečné vyplnění, což může snížit účinnost z teoretického hlediska.
Vyzkoušejte různé ovladače a najděte ten, který vyhovuje vašim požadavkům na efektivitu.

Reference

  1. Zynq-7000 AP SoC a FPGA řady 7 MIS v2.3 [UG586]
  2. Centrum řešení Xilinx MIG http://www.xilinx.com/support/answers/34243.html

Historie revizí
13/03/2015 – První vydání

Stáhnout PDF: Xilinx DDR2 MIG 7 Průvodce odhadem výkonu

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *