Vodič za procjenu performansi Xilinx DDR2 MIG 7
Važna napomena: Ovaj PDF zapis o odgovorima koji se može preuzeti je dat kako bi se poboljšala njegova upotrebljivost i čitljivost. Važno je napomenuti da je evidencija odgovora Web-sadržaji koji se često ažuriraju kako nove informacije postanu dostupne. Podsjećamo vas da posjetite Xilinx tehničku podršku Websajt i review (Xilinx Answer 63234) za najnoviju verziju ovog odgovora.
Uvod
Zbog načina na koji su DDR2 i DDR3 memorije dizajnirane i kontrolera serije MIG 7, performanse nisu jednostavne.
Zahtijeva razumijevanje različitih Jedec parametara vremena i arhitekture kontrolera i morat ćete pokrenuti simulacije da biste dobili procjene.
Opšti princip za određivanje performansi je isti, ali ovaj dokument pruža jednostavan način za postizanje efikasnosti korišćenjem MIG example dizajn uz pomoć ispitnog stola i stimulusa filepriložen je ovdje.
Efektivna širina pojasa
DRAM magistrala podataka postiže propusni opseg skoro vršnog opsega samo tokom rafala čitanja i pisanja, a njeni dodatni troškovi smanjuju efektivnu brzinu podataka.
Nekoliko exampRežije su:
- vrijeme prije naplate za pristup redovima u istoj banci (pristupna adresa nije u istom pogotku stranice reda)
- vrijeme oporavka od pisanja za promjenu pristupa za pisanje u pristup za čitanje
- vrijeme okretanja sabirnice za promjenu sa pristupa za čitanje na pisanje
Efektivni propusni opseg = Peak Bandwidth * Efikasnost
MIG Design Generation
Pogledajte UG586 Poglavlje 1 za detaljne detalje o MIG IP-u i nprample design generation.
Prije pokretanja simulacije performansi serije MIG 7, učinite sljedeće kako biste bili sigurni da je vaše simulacijsko okruženje u redu. Otvorite MIG exampdizajnirajte i mapirajte odgovarajuće biblioteke, pokrenite simulaciju i osigurajte da vidite poruku „test je prošao“ u transkriptu.
Da demonstriram tok, generisao sam MIG IP za xc7vx690tffg1761-2 i pozvao exampdizajn.
Dvije stvari koje treba napomenuti su bitovi memorijske adrese i izbor mapiranja memorijskih adresa.
Za nprample, odabrao sam MT41J128M8XX-125 pod opcijama padajućeg menija za memorijski dio.
Za odabrani memorijski dio sa slike-1, red = 14, kolona = 10 i banka = 3, tako da app_addr_width = red + kolona + banka + rang= 28
Možete odabrati stupac BANK_ROW_COLUMN ili ROW BANK stupac.
Ostavio sam kolonu ROW BANK koja je podrazumevano mapiranje adresa.
Example dizajn Simulacija sa sintetiziranim ispitnim stolom
Pod postavkama simulacije odaberite QuestaSim/ModelSim Simulator i pretražite lokaciju kompajliranih biblioteka.
Za detalje o upućivanju na putanju za instalaciju alata treće strane, odabiru ciljnog simulatora i kompajliranju i mapiranju biblioteka, možete pogledati (UG900) Vivado Design Suite korisnički vodič Logička simulacija
Pokrenite simulaciju kroz GUI (kliknite karticu Pokreni simulaciju u menadžeru projekta) i uvjerite se da vidite poruku „test je prošao“ u transkriptu.
Simulacija performansi RTL modifikacije
- Desnom tipkom miša kliknite karticu izvora, odaberite "dodaj ili kreiraj izvore simulacije" i idite na mig7_perfsim_traffic_generator.sv file i kliknite završi da ga dodate.
- Kliknite desnim tasterom miša na karticu izvora, izaberite „dodaj ili kreiraj izvore simulacije“, idite na perfsim_stimulus.txt i kliknite na završi da biste ga dodali.
- Komentirajte bivšegample_top instancija u sim_tb_top.v file.
- Dodajte donje RTL linije u 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;
- žica [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- žica [2:0] c0_ddr3_app_cmd;
- žica c0_ddr3_app_en;
- žica [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- žica c0_ddr3_app_wdf_end;
- žica [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- žica c0_ddr3_app_wdf_wren;
- žica [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- žica c0_ddr3_app_rd_data_end;
- žica c0_ddr3_app_rd_data_valid;
- žica c0_ddr3_app_rdy;
- žica c0_ddr3_app_wdf_rdy;
- žica c0_data_compare_error;
- wire ui_clk;
- žica ui_clk_sync_rst;
- žica app_sr_req = 0;
- žica app_ref_req = 0;
- žica app_zq_req =0;
- žica c0_app_wdf_mask =0;
Instancija FPGA memorijskog kontrolera
mig_7series_0_mig u_mig_7series_0_mig (
// Portovi memorijskog interfejsa
- .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),
// Portovi sučelja aplikacije
- .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),
// Portovi sistemskog sata
- .sys_clk_i (sys_clk_i),
// Portovi referentnog takta
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Izvedba instanciranja generatora prometa
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. Izmijenite APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH i BANK_WIDTH prema odabiru vašeg memorijskog dijela.
Vrijednosti se mogu dobiti iz _mig.v file. - Žuto istaknuto ime instanciranja mig_7series_0_mig može varirati ovisno o imenu vaše komponente tokom kreiranja IP-a, provjerite da li ste odabrali drugo ime i promijenite ga u skladu s tim.
- Kada se IP generira otvorite _mig.v file i unakrsno provjerite ima li varijacija u nazivima LHS signala i ispravite ih.
- app_sr_req, app_ref_req i app_zq_req trebaju biti inicijalizirani na 0.
- Kao nprample_top.v je komentiran i nov files dodaju, vjerovatno ćete vidjeti "?" pored
mig_7series_0_mig.v file pod simulacijskim izvorima.
Za ispravnu mapu file, desnom tipkom miša kliknite mig_7series_0_mig.v, odaberite “Add Sources”, Browse to
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
i dodajte mig_7series_0_mig_sim.v file. - Ako vidite “?” za osnovnu files, dodati sve RTL files u folderima clocking, controller, ip_top,phy i UI.
- Nakon što su RTL promjene obavljene i sve što je potrebno filedodaju se vašim izvorima simulacije, hijerarhija bi trebala biti slična slici 5.
The files označene crvenom su novo dodane, a "?" se očekuje na modulima koji se odnose na ECC jer odabrana memorijska konfiguracija ima onemogućenu ECC opciju.
Stimulus File Opis
Svaki obrazac stimulusa je 48 bita, a format je opisan na slikama 6-1 do 6-4.
Kodiranje adrese (Adresa [35:0])
Adresa je kodirana u stimulansu kao na slikama 7-1 do 7-6. Sva polja za adresu moraju biti unesena u heksadecimalnom formatu. Sva adresna polja su širina koja je djeljiva sa četiri za unos u heksadecimalnom formatu. Testna stanica šalje samo potrebne bitove adresnog polja memorijskom kontroleru.
Za nprampU konfiguraciji sa osam banaka, samo bitovi banke [2:0] se šalju memorijskom kontroleru, a preostali bitovi se zanemaruju. Dodatni bitovi za polje adrese su dati da unesete adresu u heksadecimalnom formatu.
Morate potvrditi da unesena vrijednost odgovara širini date konfiguracije.
- Adresa kolone (Kolona[11:0]) – Adresa kolone u stimulusu je dostavljena do maksimalno 12 bita, ali ovo morate adresirati na osnovu parametra širine kolone postavljenog u vašem dizajnu.
- Adresa reda (Red[15:0]) – Adresa reda u stimulusu je dostavljena do maksimalno 16 bita, ali to morate riješiti na osnovu parametra širine reda postavljenog u vašem dizajnu.
- Adresa banke (Banka[3:0]) – Adresa banke u stimulusu je dostavljena na najviše četiri bita, ali ovo morate riješiti na osnovu parametra širine banke postavljenog u vašem dizajnu.
- Adresa ranga (rang[3:0]) – Adresa ranga u stimulusu je dostavljena na najviše četiri bita, ali ovo morate riješiti na osnovu parametra širine ranga postavljenog u vašem dizajnu.
Adresa se sastavlja na osnovu parametra MEM_ADDR_ORDER najvišeg nivoa i šalje korisničkom interfejsu
Ponavljanje komande (Ponavljanje komande [7:0])
Broj ponavljanja naredbe je broj puta kada se odgovarajuća naredba ponavlja na korisničkom interfejsu. Adresa za svako ponavljanje se povećava za 8. Maksimalan broj ponavljanja je 128.
Ispitni stol ne provjerava granicu stupca i premotava se ako se dostigne maksimalna granica stupca tokom inkremenata.
128 komandi ispunjavaju stranicu. Za bilo koju adresu kolone koja nije 0, broj ponavljanja od 128 završava prelaskom granice kolone i premotavanjem do početka adrese kolone.
Iskorišćenost autobusa
Iskorišćenost sabirnice se izračunava na korisničkom interfejsu uzimajući u obzir ukupan broj čitanja i upisivanja i koristi se sledeća jednačina:
- BL8 traje četiri ciklusa memorijskog takta
- end_of_stimulus je vrijeme kada su sve komande obavljene.
- calib_done je vrijeme kada je kalibracija obavljena.
Example Patterns
Ove exampdatoteke su zasnovane na MEM_ADDR_ORDER postavljenom na BANK_ROW_COLUMN.
Uzorak pojedinačnog čitanja
00_0_2_000F_00A_1 – Ovaj obrazac je jedno čitanje iz 10. kolone, 15. reda i druge banke.Uzorak jednog pisanja
00_0_1_0040_010_0 – Ovaj obrazac je jedno upisivanje u 32. kolonu, 128. red i prvu banku.Pojedinačno pisanje i čitanje na istu adresu
00_0_2_000F_00A_0 – Ovaj obrazac je jedno upisivanje u 10. kolonu, 15. red i drugu banku.
00_0_2_000F_00A_1 – Ovaj obrazac je jedno čitanje iz 10. kolone, 15. reda i druge banke
Višestruko upisivanje i čitanje sa istom adresom
0A_0_0_0010_000_0 – Ovo odgovara 10 upisa sa adresom koja počinje od 0 do 80 što se može vidjeti u koloni.
0A_0_0_0010_000_1 – Ovo odgovara 10 čitanja sa adresom koja počinje od 0 do 80 što se može vidjeti u koloni.
Prelom stranice tokom pisanja
0A_0_2_000F_3F8_0 – Ovo odgovara 10 upisa sa adresom kolone premotanom na početak stranice nakon jednog upisivanja.
Simulacija generatora saobraćaja performansi
U ovom trenutku ste završili sa MIG exampsimulacija dizajna. To znači da je vaša simulacijska postavka spremna, da ste izvršili RTL modifikacije simulacije performansi, da je nova hijerarhija simulacije ispravna i da ste razumjeli obrasce stimulansa. Pokrenite simulaciju još jednom sa 16 upisivanja i čitanja u perfsim_stimulus.txt.
Pokrenite sve, pričekajte dok se init_calib_complete signal ne potvrdi i moći ćete vidjeti predloženi broj upisivanja i čitanja. Simulacija će tada prestati.
Kada se od vas zatraži da napustite simulaciju, odaberite Ne i idite na prozor transkripta gdje ćete moći vidjeti statistiku performansi.
Ako odaberete "prekini simulaciju" statistika učinka će biti upisana u a file imenovani mig_band_width_output.txt koji se nalazi u sim_1/behave folder.
Example staza direktorija:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Možda se pitate zašto procentitagKorištenje magistrale je samo 29. Ponovo pokrenite simulaciju sa istim IP postavkama, ali samo mijenjajući stimulans file do 256 upisivanja i 256 čitanja
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Sada ćete vidjeti procentetage kao 85, što implicira da DDR3 nudi bolje korištenje magistrale za duge nizove upisa i rafala čitanja.
Opšti načini za poboljšanje performansi
Faktori koji utiču na efikasnost mogu se podeliti u dva dela:
- Memory Specific
- Specifičan kontroler
Slika 9 vam daje pregledview termina koji su specifični za pamćenje.
Za razliku od SRAM-a i blok memorija, performanse DDR2 ili DDR3 nisu samo maksimalna brzina prenosa podataka.
To zavisi od mnogih faktora vremena, uključujući:
- tRCD: Odgoda naredbe reda (ili kašnjenje ras to cas).
- tCAS(CL): Latencija stroboskopa adrese kolone.
- tRP: Kašnjenje prednaplate reda.
- tRAS: Vrijeme aktivnog reda (aktiviranje za prethodnu promjenu).
- tRC: Vrijeme ciklusa reda. tRC = tRAS + tRP
- tRAC: Odlaganje pristupa Radomu. tRAC = tRCD + tCAS
- tCWL: Kašnjenje pisanja.
- tZQ: ZQ vrijeme kalibracije.
- tRFC: Vrijeme ciklusa osvježavanja reda
- tWTR: Pisanje u odgodu čitanja. Posljednja transakcija pisanja u vrijeme naredbe Čitanje.
- tWR: Write Recovery time. Posljednja transakcija pisanja u vrijeme pretplate
Tajming svih navedenih parametara zavisi od vrste memorije koja se koristi i stepena brzine memorijskog dela.
Više detalja o definicijama i vremenskim specifikacijama možete pronaći u DDR2 DDR3 JEDEC ili u bilo kojoj tablici podataka o memorijskom uređaju.
Efikasnost uglavnom zavisi od toga kako se pristupa memoriji. Različiti obrasci adresa daju različite rezultate efikasnosti.
Memorijski vremenski troškovi
- Vrijeme aktivacije i vrijeme precharge kada se mijenjate na nove banke/redove ili mijenjate redove u istoj banci.- Dakle, ako smanjite promjenu reda, ovo može ukloniti tRCD i tRP.
- Slanje kontinuiranih naredbi za pisanje ili čitanje - Održavanje tCCD vremena.
- Minimizirajte promjenu komande pisanja za čitanje i čitanja na pisanje – vrijeme oporavka pisanja za promjenu pristupa za čitanje, vrijeme okretanja sabirnice za promjenu sa čitanja na pisanje
- Postavite odgovarajući interval osvježavanja.
- DDR3 SDRAM zahtijeva cikluse osvježavanja u prosječnom periodičnom intervalu od tREFI.
- Maksimalno 8 dodatnih naredbi za osvježavanje može se izdati unaprijed („uvučeno“). Ovo ne smanjuje broj osvježavanja, ali je maksimalni interval između dvije okolne naredbe za osvježavanje ograničen na 9 × tREFI
- Iskoristite sve banke – Poželjan je odgovarajući mehanizam adresiranja.
- Red-Bank-kolona: Za transakciju koja se odvija preko sekvencijalnog adresnog prostora, jezgro automatski otvara isti red u sljedećoj banci DRAM uređaja da nastavi transakciju kada se dostigne kraj postojećeg reda. Pogodan je za aplikacije koje zahtijevaju razbijanje velikih paketa podataka na sekvencijalne adrese.
- Banka-red-kolona: Prilikom prelaska granice reda, trenutni red će biti zatvoren i drugi red će se otvoriti unutar iste banke. MSB je adresa banke koja se može koristiti za prebacivanje s različitih banaka. Pogodan je za kraće, nasumičnije transakcije na jedan blok memorije na određeno vrijeme, a zatim skok na drugi blok (banku)
- Burst Length
- BL 8 je podržan za DDR3 na 7 seriji. BC4 ima vrlo nisku efikasnost koja je manja od 50%. To je zato što je vrijeme izvršenja BC4 isto kao i BL8. Podaci su samo maskirani unutar komponente.
- U slučajevima kada ne želite da pišete puni burst, može se uzeti u obzir ili maska podataka ili pisanje nakon čitanja.
- Postavite odgovarajući ZQ interval (samo DDR3)
Kontroler šalje i ZQ Short (ZQCS) i ZQ Long (ZQCL) naredbe za kalibraciju.- Pridržavajte se DDR3 Jedec standarda
- ZQ kalibracija je razmatrana u odjeljku 5.5 JEDEC Spec JESD79-3 DDR3 SDRAM standarda
- ZQ kalibracija kalibrira On Die Termination (ODT) u redovnim intervalima kako bi se uzele u obzir varijacije kroz VT
- Logika je sadržana u bank_common.v/vhd
- Parametar Tzqcs određuje brzinu kojom se naredba ZQ kalibracije šalje u memoriju
- t moguće je onemogućiti brojač i ručno poslati pomoću app_zq_req, slično je ručnom slanju Refresh-a.
Pogledajte (Xilinx Answer 47924) za detalje.
Režije kontrolera
- Periodična čitanja – pogledajte (Xilinx odgovor 43344) za detalje.
- Ne mijenjajte period čitanja
- Preskočite periodična čitanja tokom pisanja i izdajte broj propuštenih čitanja prije istinskog čitanja
- Promena redosleda – up (Xilinx odgovor 34392) za detalje.
Za dizajn korisničkog i AXI interfejsa poželjno je da ovo bude omogućeno.- Preuređenje je logika koja gleda unaprijed nekoliko naredbi i mijenja redoslijed korisničkih naredbi kako bi naredbe koje nisu memorije zauzele važeći propusni opseg. Učinak se također odnosi na stvarni obrazac saobraćaja.
- Zasnovano na obrascu adrese, preuređivanje pomaže da se preskoči naredbe za prethodno punjenje i aktiviranje i čini da tRCD i tRP ne zauzimaju širinu pojasa podataka.
- Pokušajte povećati broj bankomata.
- Većina logike kontrolera nalazi se u bankovnim mašinama i oni odgovaraju DRAM bankama
- Određena bankovna mašina upravlja jednom DRAM bankom u bilo kojem trenutku.
- Dodjela bankomata je dinamička tako da nije potrebno imati bankomat za svaku fizičku banku.
- Bankarske mašine se mogu konfigurisati, ali to je kompromis između područja i performansi.
- Dozvoljeni broj bankomata kreće se od 2-8.
- Podrazumevano, 4 bankomata su konfigurisana preko RTL parametara.
- Da biste promijenili bankovne mašine, uzmite u obzir parametar nBANK_MACHS = 8 sadržan u memc_ui_top Example za 8 bankomata – nBANK_MACHS = 8
Sada ste svjesni faktora koji utiču na performanse.
Razmislite o uzvodnoj aplikaciji koja vam daje 512 bajtova podataka po paketu i trebate ih spremiti na različite memorijske lokacije. Kako je 512 bajtova podataka jednako 64 DDR3 rafala podataka, ponovo pokrenite example dizajn sa stimulusom file koji sadrži 512 upisivanja, 512 čitanja i prebacivanje redova za svaka 64 upisivanja ili čitanja:
- 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 kraju simulacije vidjet ćete da je iskorištenost autobusa na 77 posto.
Slika 11: Statistika performansi za 512 upisivanja i 512 čitanja – Prebacivanje redova za 64 upisivanja ili čitanja.
Sada možete primijeniti znanje naučeno u prethodnom odjeljku kako biste poboljšali efikasnost. Sa view da biste koristili sve banke umjesto promjene reda, izmijenite obrazac adrese da promijenite banku kao što je prikazano ispod.
Ovo je ekvivalentno postavljanju ROW_BANK_Column u postavci mapiranja memorijskih adresa u 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 kraju simulacije vidjet ćete da je ranijih 77 posto iskorištenosti autobusa sada 87!
Ako vam je i dalje potrebna veća efikasnost, možete odabrati velike veličine paketa od 1024 ili 2048 bajtova ili razmisliti o ručnom osvježavanju.
Napomena: Xilinx ne potiče zaobilaženje osvježavanja kontrolera jer nismo sigurni da li ćete moći ispuniti vrijeme automatskog osvježavanja Jedec-a što utiče na pouzdanost podataka.
Sa strane kontrolera možete promijeniti nBANk_MACH i vidjeti poboljšanje performansi.
Međutim, ovo može utjecati na vrijeme vašeg dizajna, pogledajte (Xilinx odgovor 36505) za detalje na nBANk_MACH
Otvorite core_name_mig_sim.v file i promijenite parametre nBANK_MACHS sa 4 na 8 i ponovo pokrenite simulaciju. Da bi vrijednost parametra stupila na snagu u hardveru, trebate ažurirati core_name_mig.v file.
Koristio sam isti obrazac gdje smo dobili 87% iskorištenosti sabirnice (slika -12).
Sa nBANK_MACHS postavljenim na 8, efikasnost je sada 90%.
Također imajte na umu da ½ i ¼ kontroleri negativno utiču na efikasnost zbog svojih kašnjenja.
Za nprampS obzirom da možemo da šaljemo komande samo svaka 4 CK ciklusa, ponekad postoji dodatno punjenje kada se pridržavamo minimalnih vremenskih specifikacija DRAM-a, što može smanjiti efikasnost u odnosu na teoretsku.
Isprobajte različite kontrolere kako biste pronašli onaj koji odgovara vašim zahtjevima efikasnosti.
Reference
- Zynq-7000 AP SoC i FPGA serije 7 MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
Istorija revizija
13/03/2015 – Prvo izdanje
Preuzmite PDF: Vodič za procjenu performansi Xilinx DDR2 MIG 7