Xilinx-logo

Vodič za procjenu performansi Xilinx DDR2 MIG 7

Xilinx_DDR2_MIG_7_Performance-Estimation-product

Važna napomena: Ovaj PDF zapisa odgovora koji se može preuzeti dostupan je kako bi se poboljšala njegova upotrebljivost i čitljivost. Važno je napomenuti da su Answer Records Websadržaj koji se često ažurira kako nove informacije postanu dostupne. Podsjećamo vas da posjetite Xilinx tehničku podršku Webmjesto i ponovnoview (Xilinx Answer 63234) za najnoviju verziju ovog odgovora.

Uvod

Zbog načina na koji su projektirane DDR2 i DDR3 memorije i dizajna kontrolera serije MIG 7, izvedba nije jednostavna.
Zahtijeva razumijevanje različitih parametara Jedec Timinga i arhitekture kontrolera, a morat ćete pokrenuti simulacije da biste dobili procjene.
Opći princip za određivanje učinka je isti, ali ovaj dokument pruža jednostavan način za postizanje učinkovitosti pomoću MIG example dizajn uz pomoć ispitnog stola i poticaja filepriloženo je ovdje.

Učinkovita propusnost

Podatkovna sabirnica DRAM-a postiže skoro vršnu propusnost samo tijekom nizova čitanja i pisanja, a njezino opterećenje smanjuje efektivnu brzinu prijenosa podataka.
Nekoliko bivšihamprežijski troškovi su:

  • vrijeme prednaplate pristupa redovima u istoj banci (pristupna adresa nije u istom retku - pogodak stranice)
  • vrijeme oporavka pisanja za promjenu pristupa s pisanja na čitanje
  • vrijeme okretanja sabirnice za promjenu pristupa s čitanja na pisanje

Procjena performansi Xilinx DDR2 MIG 7-slika-28
Efektivna propusnost = vršna propusnost * učinkovitost 

MIG Design Generation

Pogledajte UG586 Poglavlje 1 za detalje korak po korak o MIG IP i exampgeneracija dizajna.
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 možete vidjeti poruku "test prošao" u prijepisu.
Da bih demonstrirao tijek, generirao sam MIG IP za xc7vx690tffg1761-2 i pozvao exampoblikovati.
Dvije stvari koje treba primijetiti su bitovi memorijske adrese i odabir preslikavanja memorijske adrese.
Na primjerample, odabrao sam MT41J128M8XX-125 pod padajućim opcijama memorijskog dijela.Xilinx DDR2 MIG-7-Performance-Estimation-fig-1

Za odabrani dio memorije sa slike-1, red = 14, stupac = 10 i banka = 3, tako da je app_addr_width = redak + stupac + banka + rang = 28 Procjena performansi Xilinx DDR2 MIG 7-slika-2

Možete odabrati stupac BANK_ROW_COLUMN ili ROW BANK.
Ostao mi je stupac ROW BANK koji je zadano mapiranje adresa.

Exampsimulacija dizajna s testnim stolom koji se može sintetizirati

Pod postavkama simulacije odaberite QuestaSim/ModelSim Simulator i potražite lokaciju kompajliranih biblioteka.
Za pojedinosti o usmjeravanju na instalacijsku stazu alata treće strane, odabiru ciljnog simulatora i kompajliranju i mapiranju biblioteka, možete pogledati (UG900) Vivado Design Suite korisnički vodič Logička simulacijaProcjena performansi Xilinx DDR2 MIG 7-slika-3

Pokrenite simulaciju kroz GUI (kliknite karticu Pokreni simulaciju u upravitelju projekta) i provjerite vidite li poruku "test prošao" u prijepisu.

RTL modifikacije simulacije performansi

  1. Desnom tipkom miša kliknite karticu izvora, odaberite "dodaj ili stvori izvore simulacije" i potražite mig7_perfsim_traffic_generator.sv file i kliknite završi da biste ga dodali.
  2. Desnom tipkom miša kliknite karticu izvora, odaberite "dodaj ili stvori izvore simulacije", potražite perfsim_stimulus.txt i kliknite završi da biste je dodali.
  3. Komentirajte bivšuample_top instancija u sim_tb_top.v file.
  4. Dodajte donje RTL retke u sim_tb_top,v
  • lokalniparam APP_ADDR_WIDTH = 28;
  • lokalniparam APP_DATA_WIDTH = 64;
  • lokalniparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
  • lokalniparam MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
  • lokalniparam BANK_WIDTH = 3;
  • lokalniparam 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;
  • žica 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;

Instanciranje FPGA memorijskog kontrolera

mig_7series_0_mig u_mig_7series_0_mig (
// Priključci memorijskog sučelja

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

// Priključci 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 sata sustava

  • .sys_clk_i (sys_clk_i),

// Referentni priključci sata

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

Instanciranje generatora prometa performansi

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 dijela memorije.
    Vrijednosti se mogu dobiti od _mig.v file.
  • Žuto istaknuti instancacijski naziv mig_7series_0_mig može varirati ovisno o nazivu vaše komponente tijekom stvaranja IP-a, provjerite jeste li odabrali drugi naziv i promijenite ga u skladu s tim.Procjena performansi Xilinx DDR2 MIG 7-slika-4
  • Nakon što je IP generiran otvorite _mig.v file i unakrsno provjerite ima li varijacija u imenima LHS signala i ispravite ih.
  • app_sr_req, app_ref_req i app_zq_req trebaju biti inicijalizirani na 0.
  • Kao bivšiample_top.v je komentiran i nov filesu dodani, vjerojatno ćete vidjeti "?" pored
    mig_7serija_0_mig.v file pod izvorima simulacije.
    Za mapiranje točnog file, desnom tipkom miša kliknite mig_7series_0_mig.v, odaberite “Dodaj izvore”, potražite
    /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 temeljni files, dodajte sve RTL files u mapama clocking, controller, ip_top,phy i UI.
  • Nakon što se izvrše promjene RTL-a i sve što je potrebno filedodaju se vašim izvorima simulacije, hijerarhija bi trebala biti slična slici 5.
    The fileoznačeni crveno novo su dodani, a "?" očekuje se na modulima povezanim s ECC-om jer odabrana konfiguracija memorije ima onemogućenu opciju ECC.Procjena performansi Xilinx DDR2 MIG 7-slika-5

Poticaj File Opis
Svaki uzorak podražaja ima 48 bita, a format je opisan na slikama 6-1 do 6-4.Procjena performansi Xilinx DDR2 MIG 7-slika-6

Kodiranje adrese (adresa [35:0])

Adresa je kodirana u stimulusu prema slikama 7-1 do slika 7-6. Sva adresna polja moraju biti unesena u heksadecimalnom formatu. Sva adresna polja imaju širinu djeljivu s četiri za unos u heksadecimalnom formatu. Ispitni uređaj šalje samo potrebne bitove adresnog polja memorijskom kontroleru.
Na primjerampnpr. u konfiguraciji s osam banaka samo se bitovi banke [2:0] šalju u kontroler memorije, a preostali bitovi se zanemaruju. Dodatni bitovi za polje adrese predviđeni su za unos adrese u heksadecimalnom formatu.
Morate potvrditi da unesena vrijednost odgovara širini dane konfiguracije.Procjena performansi Xilinx DDR2 MIG 7-slika-7

  • Adresa stupca (Stupac [11:0]) – Adresa stupca u poticaju daje se na najviše 12 bita, ali to morate riješiti na temelju parametra širine stupca postavljenog u vašem dizajnu.
  • Adresa reda (Red [15:0]) – Adresa retka u poticaju daje se na najviše 16 bitova, ali to morate riješiti na temelju parametra širine retka postavljenog u vašem dizajnu.
  • Adresa banke (Banka[3:0]) – Adresa banke u stimulusu daje se na najviše četiri bita, ali to morate riješiti na temelju parametra širine banke postavljenog u vašem dizajnu.
  • Adresa ranga (Rank[3:0]) – Adresa ranga u stimulusu daje se na najviše četiri bita, ali to morate riješiti na temelju parametra širine ranga postavljenog u vašem dizajnu.
    Adresa se sastavlja na temelju parametra MEM_ADDR_ORDER najviše razine i šalje korisničkom sučelju

Ponavljanje naredbe (Ponavljanje naredbe [7:0])
Broj ponavljanja naredbe je broj puta kada se odgovarajuća naredba ponavlja na korisničkom sučelju. Adresa za svako ponavljanje se povećava za 8. Maksimalan broj ponavljanja je 128.
Ispitni uređaj ne provjerava granicu stupca i preokreće se ako se tijekom povećanja dosegne maksimalno ograničenje stupca.
128 naredbi ispunjavaju stranicu. Za bilo koju adresu stupca koja nije 0, broj ponavljanja od 128 završava prelaskom granice stupca i omatanjem na početak adrese stupca.

Korištenje autobusa
Iskorištenje sabirnice izračunava se na korisničkom sučelju uzimajući u obzir ukupan broj čitanja i pisanja i koristi se sljedeća jednadžba:

Procjena performansi Xilinx DDR2 MIG 7-slika-8

  • BL8 traje četiri ciklusa takta memorije
  • end_of_stimulus je vrijeme kada su sve naredbe izvršene.
  • calib_done je vrijeme kada je kalibracija gotova.

Example Obrasci
Ovi bivšiamptemelje se na MEM_ADDR_ORDER postavljenom na BANK_ROW_COLUMN.

Jednostruki obrazac čitanja
00_0_2_000F_00A_1 – Ovaj je obrazac jednostruko čitanje iz 10. stupca, 15. retka i druge banke.Procjena performansi Xilinx DDR2 MIG 7-slika-9Jednostruki obrazac pisanja
00_0_1_0040_010_0 – Ovaj uzorak je jednokratno pisanje u 32. stupac, 128. redak i prvu banku.Procjena performansi Xilinx DDR2 MIG 7-slika-10Jedno pisanje i čitanje na istu adresu
00_0_2_000F_00A_0 – Ovaj uzorak je jednokratno pisanje u 10. stupac, 15. redak i drugu banku.
00_0_2_000F_00A_1 – Ovaj uzorak je jedno čitanje iz 10. stupca, 15. retka i druge bankeProcjena performansi Xilinx DDR2 MIG 7-slika-11

Višestruko pisanje i čitanje s istom adresom
0A_0_0_0010_000_0 – To odgovara 10 pisanja s adresom koja počinje od 0 do 80 što se može vidjeti u stupcu.Procjena performansi Xilinx DDR2 MIG 7-slika-12

0A_0_0_0010_000_1 – To odgovara 10 čitanja s adresom koja počinje od 0 do 80 što se može vidjeti u stupcu.Procjena performansi Xilinx DDR2 MIG 7-slika-13

Prijelom stranice tijekom pisanja
0A_0_2_000F_3F8_0 – To odgovara 10 pisanja s adresom stupca omotanom na početak stranice nakon jednog pisanja.Procjena performansi Xilinx DDR2 MIG 7-slika-14

Simulacija izvedbenog generatora prometa

U ovom trenutku ste gotovi s MIG exampsimulacija dizajna. To znači da je vaša postavka simulacije spremna, da ste izvršili RTL izmjene simulacije izvedbe, da je nova hijerarhija simulacije ispravna i da ste razumjeli uzorke podražaja. Ponovno pokrenite simulaciju sa 16 pisanja i čitanja u perfsim_stimulus.txt.Procjena performansi Xilinx DDR2 MIG 7-slika-15

Napravite run-all, pričekajte dok se ne potvrdi signal init_calib_complete i moći ćete vidjeti predloženi broj pisanja i čitanja. Simulacija će tada prestati. Procjena performansi Xilinx DDR2 MIG 7-slika-16

Kada se od vas zatraži da napustite simulaciju, odaberite Ne i idite na prozor transkripta gdje ćete moći vidjeti statistiku izvedbe. Procjena performansi Xilinx DDR2 MIG 7-slika-17

Ako odaberete "napusti simulaciju" statistika izvedbe bit će zapisana u a file imenovani mig_band_width_output.txt koji se nalazi u sim_1/behave mapa.

Exampput do direktorija:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavProcjena performansi Xilinx DDR2 MIG 7-slika-18

Možda se pitate zašto postotaktagIskorištenost e-sabirnice je samo 29. Ponovno pokrenite simulaciju s istim IP postavkama, ali samo promijenite poticaj file do 256 pisanja i 256 čitanja

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Sada ćete vidjeti postotaktage kao 85, što implicira da DDR3 nudi bolju iskorištenost sabirnice za duge nizove pisanja i čitanja. Procjena performansi Xilinx DDR2 MIG 7-slika-19

Opći načini poboljšanja izvedbe

Čimbenici koji utječu na učinkovitost mogu se podijeliti u dva dijela:

  1. Specifična memorija
  2. Specifično za kontrolerProcjena performansi Xilinx DDR2 MIG 7-slika-20

Slika 9 daje vam overview pojmova koji su specifični za pamćenje.
Za razliku od SRAM-ova i blok memorija DDR2 ili DDR3 izvedba nije samo maksimalna brzina prijenosa podataka.

Ovisi o mnogim vremenskim čimbenicima, uključujući:

  • tRCD: Odgoda naredbe retka (ili odgoda ras do cas).
  • tCAS(CL): Kašnjenje stroboskopa adrese stupca.
  • tRP: Odgoda predpunjenja reda.
  • tRAS: Aktivno vrijeme reda (aktivirajte za pretpromjenu).
  • tRC: Vrijeme ciklusa reda. tRC = tRAS + tRP
  • tRAC: Odgoda pristupa Radomu. tRAC = tRCD + tCAS
  • tCWL: Kašnjenje pisanja.
  • tZQ: ZQ vrijeme kalibracije.
  • tRFC: Vrijeme ciklusa osvježavanja retka
  • tWTR: Odgoda pisanja za čitanje. Vrijeme zadnje naredbe za pisanje transakcije za čitanje.
  • tWR: Napišite vrijeme oporavka. Zadnja transakcija pisanja u vrijeme prednaplate

Vrijeme svih navedenih parametara ovisi o vrsti memorije koja se koristi i stupnju brzine memorijskog dijela.
Više detalja o definicijama i vremenskim specifikacijama može se pronaći u DDR2 DDR3 JEDEC ili u podatkovnoj tablici bilo kojeg memorijskog uređaja.

Učinkovitost uglavnom ovisi o tome kako se pristupa memoriji. Različiti obrasci adresa daju različite rezultate učinkovitosti.

Vremenski troškovi memorije

  1. Vrijeme aktiviranja i vrijeme punjenja pri mijenjanju na nove banke/redove ili mijenjanju redaka u istoj banci. - Dakle, ako smanjite promjenu reda, to može ukloniti tRCD i tRP.
  2. Slanje kontinuiranih naredbi za pisanje ili čitanje - Održavanje tCCD vremena.
  3. Minimizirajte promjenu naredbe pisanja za čitanje i čitanja za pisanje – vrijeme oporavka pisanja za promjenu pristupa za čitanje, vrijeme okretanja sabirnice za promjenu s čitanja na pisanje
  4. Postavite odgovarajući interval osvježavanja.
    • DDR3 SDRAM zahtijeva cikluse osvježavanja u prosječnom periodičnom intervalu tREFI.
    • Maksimalno 8 dodatnih naredbi za osvježavanje može se izdati unaprijed ("uvučeno"). Ovo ne smanjuje broj osvježavanja, ali maksimalni interval između dvije okolne naredbe za osvježavanje ograničen je na 9 × tREFIProcjena performansi Xilinx DDR2 MIG 7-slika-21
  • Iskoristite sve banke – Poželjan je odgovarajući mehanizam za adresiranje.
    • Redak-Novina-Stupac: Za transakciju koja se odvija preko sekvencijalnog adresnog prostora, jezgra automatski otvara isti redak u sljedećoj banci DRAM uređaja za nastavak transakcije kada se dosegne kraj postojećeg retka. Vrlo je prikladan za aplikacije koje zahtijevaju razbijanje velikih paketa podataka na sekvencijalne adrese.
    • Banka-Red-Stupac: Kada prijeđete granicu retka, trenutni red će se zatvoriti, a drugi red će se otvoriti unutar iste banke. MSB je adresa banke koja se može koristiti za prebacivanje iz različitih banaka. Pogodan je za kraće, nasumične transakcije na jedan blok memorije na određeno vrijeme i zatim skok na drugi blok (banku)
  • Duljina praska
    • BL 8 je podržan za DDR3 na seriji 7. BC4 ima vrlo nisku učinkovitost 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 pisati puni niz, može se razmotriti ili podatkovna maska ​​ili pisanje nakon čitanja.
  • Postavite odgovarajući ZQ interval (samo DDR3)
    Kontroler šalje i ZQ kratke (ZQCS) i ZQ duge (ZQCL) naredbe za kalibraciju.
    • Pridržavajte se standarda DDR3 Jedec
    • O ZQ kalibraciji raspravlja se u odjeljku 5.5 standarda JEDEC Spec JESD79-3 DDR3 SDRAM
    • ZQ kalibracija kalibrira On Die Termination (ODT) u redovitim intervalima kako bi uzela u obzir varijacije u VT
    • Logika je sadržana u bank_common.v/vhd
    • Parametar Tzqcs određuje brzinu kojom se naredba ZQ kalibracije šalje u memoriju
    • t je moguće onemogućiti brojač i ručno poslati koristeći app_zq_req, to ​​je slično ručnom slanju Refresh.
      Pogledajte (Xilinx Answer 47924) za detalje.Procjena performansi Xilinx DDR2 MIG 7-slika-22

Režijski troškovi kontrolera

  1. Periodična čitanja – pogledajte (Xilinx odgovor 43344) za detalje.
    • Nemojte mijenjati razdoblje čitanja
    • Preskočite periodična čitanja tijekom pisanja i izdajte broj propuštenih čitanja prije pravog čitanja
  2. Ponovno naručivanje – Refer (Xilinx odgovor 34392) za detalje.
    Za dizajn korisničkog i AXI sučelja poželjno je da je ovo omogućeno.
    • Promjena redoslijeda je logika koja gleda unaprijed nekoliko naredbi i mijenja redoslijed korisničkih naredbi kako bi naredbe koje nisu iz memorije zauzele valjanu propusnost. Izvedba se također odnosila na stvarni obrazac prometa.
    • Na temelju obrasca adrese, preuređivanje pomaže u preskakanju naredbi za prednaplatu i aktiviranje te čini da tRCD i tRP ne zauzimaju širinu pojasa podataka.Procjena performansi Xilinx DDR2 MIG 7-slika-23
  3. Pokušajte povećati broj bankomata.
    • Većina logike kontrolera nalazi se u bankovnim strojevima i oni odgovaraju DRAM bankama
    • Dani bankarski stroj upravlja jednom DRAM bankom u bilo kojem trenutku.
    • Dodjela bankomata je dinamička tako da nije potrebno imati bankomat za svaku fizičku banku.
    • Bankomati se mogu konfigurirati, ali to je kompromis između područja i performansi.
    • Dopušteni broj bankomata kreće se od 2-8.
    • Prema zadanim postavkama, 4 bankomata su konfigurirana putem RTL parametara.
    • Za promjenu bankomata, razmotrite parametar nBANK_MACHS = 8 sadržan u memc_ui_top Example za 8 bankomata – nBANK_MACHS = 8

Sada ste svjesni čimbenika koji utječu na učinak.
Razmislite o uzlaznoj aplikaciji koja vam daje 512 bajtova podataka po paketu i trebate ih spremiti na različite memorijske lokacije. Kako je 512 podatkovnih bajtova jednako 64 DDR3 skupa podataka, ponovno pokrenite example dizajn s poticajem file sadrži 512 pisanja, 512 čitanja i prebacivanje redaka za svaka 64 pisanja 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 77 posto. Procjena performansi Xilinx DDR2 MIG 7-slika-24

Slika 11: Statistika performansi za 512 pisanja i 512 čitanja – Promjena redaka za 64 pisanja ili čitanja. 

Sada možete primijeniti znanje stečeno u prethodnom odjeljku kako biste poboljšali učinkovitost. s a view da biste koristili sve banke umjesto mijenjanja reda, promijenite uzorak adrese da biste promijenili banku kao što je prikazano u nastavku.
Ovo je ekvivalentno postavljanju ROW_BANK_Column u postavci mapiranja memorijske adrese 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 prethodnih 77 posto iskorištenosti sabirnice sada 87! Procjena performansi Xilinx DDR2 MIG 7-slika-25

Ako i dalje trebate veću učinkovitost, možete se odlučiti za velike veličine paketa od 1024 ili 2048 bajtova ili razmislite o ručnom osvježavanju.

Bilješka: Xilinx ne potiče zaobilaženje osvježavanja kontrolera jer nismo sigurni hoćete li moći zadovoljiti vrijeme automatskog osvježavanja Jedec-a koje utječe na pouzdanost podataka.
Sa strane kontrolera možete promijeniti nBANk_MACH i vidjeti poboljšanje performansi.
Međutim, to može utjecati na vaše vrijeme dizajna, pogledajte (Xilinx odgovor 36505) za detalje na nBANk_MACHProcjena performansi Xilinx DDR2 MIG 7-slika-26

Otvorite core_name_mig_sim.v file i promijenite parametre nBANK_MACHS sa 4 na 8 i ponovno pokrenite simulaciju. Da bi vrijednost parametra stupila na snagu u hardveru, trebate ažurirati core_name_mig.v file.
Koristio sam isti uzorak gdje smo dobili 87% iskorištenosti sabirnice (slika -12).
S nBANK_MACHS postavljenim na 8, učinkovitost je sada 90%. Procjena performansi Xilinx DDR2 MIG 7-slika-27

Također imajte na umu da kontroleri ½ i ¼ negativno utječu na učinkovitost zbog svojih latencija.
Na primjerample, budući da možemo slati naredbe samo svaka 4 CK ciklusa, ponekad postoji dodatno punjenje kada se pridržavamo minimalnih vremenskih specifikacija DRAM-a, što može smanjiti učinkovitost u odnosu na teoretsku.
Isprobajte različite regulatore kako biste pronašli onaj koji odgovara vašim zahtjevima za učinkovitošću.

Reference

  1. Zynq-7000 AP SoC i FPGA serije 7 MIS v2.3 [UG586]
  2. Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html

Povijest revizija
13/03/2015 – Prvo izdanje

Preuzmi PDF: Vodič za procjenu performansi Xilinx DDR2 MIG 7

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *