Xilinx DDR2 MIG 7 jõudluse hindamise juhend
Oluline märkus: See vastusekirje allalaaditav PDF-fail on mõeldud selle kasutatavuse ja loetavuse parandamiseks. Oluline on märkida, et Answer Records on Web-põhine sisu, mida uuendatakse sageli uue teabe ilmnemisel. Tuletame meelde, et külastage Xilinxi tehnilist tuge Websait ja review (Xilinx Answer 63234) selle vastuse uusima versiooni jaoks.
Sissejuhatus
DDR2- ja DDR3-mälude ülesehituse ja MIG 7-seeria kontrolleri disaini tõttu ei ole jõudlus otsekohene.
See nõuab erinevate Jedeci ajastuse parameetrite ja kontrolleri arhitektuuri mõistmist ning hinnangute saamiseks peate käivitama simulatsioonid.
Toimivuse määramise üldpõhimõte on sama, kuid see dokument pakub lihtsa viisi tõhususe saavutamiseks MIG example disain katsestendi ja stiimuli abil fileon lisatud siia.
Tõhus ribalaius
DRAM-andmesiin saavutab peaaegu tipptasemel ribalaiuse ainult lugemise ja kirjutamise katkestuste ajal ning selle ülekoormus vähendab efektiivset andmeedastuskiirust.
Mõned endisedampväiksemad üldkulud on:
- eellaadimisaeg sama panga ridadele juurdepääsuks (juurdepääsuaadress ei ole samas realehe tabamuses)
- kirjutamise taastamise aeg kirjutamise asemel lugemisõigusele üleminekuks
- bussi pöördeaeg lugemise juurdepääsult kirjutamiseks üleminekuks
Efektiivne ribalaius = maksimaalne ribalaius * tõhusus
MIG disaini põlvkond
Vaadake UG586 1. peatükki, et saada üksikasjalikke üksikasju MIG IP ja muu kohtaample disaini põlvkond.
Enne MIG 7 seeria jõudluse simulatsiooni käivitamist tehke järgmist, et veenduda, et teie simulatsioonikeskkond on korras. Avage MIG exampprojekteerige ja kaardistage sobivad teegid, käivitage simulatsioon ja veenduge, et näete ärakirjas teadet "test läbitud".
Voo demonstreerimiseks genereerisin xc7vx690tffg1761-2 jaoks MIG IP-aadressi ja kutsusin välja exampdisain.
Kaks asja, mida tuleks tähele panna, on mäluaadressi bitid ja mäluaadressi vastendamise valik.
Näiteksample, olen mäluosa rippmenüüst valinud MT41J128M8XX-125.
Jooniselt 1 valitud mäluosa jaoks on rida = 14, veerg = 10 ja pank = 3, seega app_addr_width = rida + veerg + pank + asetus = 28
Saate valida veeru BANK_ROW_COLUMN või ROW BANK.
Olen lahkunud veerust ROW BANK, mis on vaikeaadressi vastendus.
Example disain Simulatsioon sünteesitava katsestendiga
Jaotises Simulatsiooni sätted valige QuestaSim/ModelSim Simulator ja sirvige koostatud teekide asukohta.
Lisateavet kolmanda osapoole tööriistade installiteele osutamise, sihtsimulaatori valimise ning teekide koostamise ja kaardistamise kohta leiate (UG900) Vivado Design Suite'i kasutusjuhendist Logic Simulation
Käivitage simulatsioon GUI kaudu (klõpsake projektihalduris vahekaarti Käivita simulatsioon) ja veenduge, et näete ärakirjas teadet "test läbitud".
Performance Simulation RTL modifikatsioonid
- Paremklõpsake vahekaarti Allikad, valige "lisa või loo simulatsiooniallikad" ja sirvige saiti mig7_perfsim_traffic_generator.sv file ja klõpsake selle lisamiseks Lõpeta.
- Paremklõpsake vahekaarti Allikad, valige "lisa või loo simulatsiooniallikad", sirvige faili perfsim_stimulus.txt ja klõpsake selle lisamiseks nuppu Lõpeta.
- Kommenteerige endineample_top teostus failis sim_tb_top.v file.
- Lisage allolevad RTL read sim_tb_top,v
- kohalik parameeter APP_ADDR_WIDTH = 28;
- kohalik parameeter APP_DATA_WIDTH = 64;
- kohalik parameeter APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = "BANK_ROW_COLUMN";
- kohalik parameeter BANK_WIDTH = 3;
- kohalik parameeter RANK_WIDTH = 1;
- juhe [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- juhe [2:0] c0_ddr3_app_cmd;
- juhe c0_ddr3_app_en;
- juhe [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- juhe c0_ddr3_app_wdf_end;
- juhe [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- juhe c0_ddr3_app_wdf_wren;
- juhe [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- juhe c0_ddr3_app_rd_data_end;
- juhe c0_ddr3_app_rd_data_valid;
- juhe c0_ddr3_app_rdy;
- juhe c0_ddr3_app_wdf_rdy;
- juhe c0_andmete_võrdlemise_viga;
- traat ui_clk;
- juhe ui_clk_sync_rst;
- traat app_sr_req = 0;
- traat app_ref_req = 0;
- juhe app_zq_req =0;
- juhe c0_app_wdf_mask =0;
FPGA mälukontrolleri teostus
mig_7series_0_mig u_mig_7series_0_mig (
// Mälu liidese pordid
- .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),
// Rakenduse liidese pordid
- .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),
// Süsteemi kella pordid
- .sys_clk_i (sys_clk_i),
// Kella pordid
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Jõudlusliikluse generaatori teostus
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. Muutke APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH ja BANK_WIDTH vastavalt oma mäluosa valikule.
Väärtused leiate aadressilt _mig.v file. - Kollane esiletõstetud eksemplari nimi mig_7series_0_mig võib IP loomise ajal teie komponendi nimest olenevalt erineda, kontrollige, kas olete valinud mõne muu nime, ja muutke seda vastavalt.
- Kui IP on loodud, avage _mig.v file ja ristkontrollige LHS-signaalide nimede erinevusi ja parandage need.
- app_sr_req, app_ref_req ja app_zq_req tuleks lähtestada väärtusega 0.
- Nagu endineample_top.v on kommenteeritud ja uus files on lisatud, näete tõenäoliselt "?" kõrval
mig_7series_0_mig.v file simulatsiooniallikate all.
Õige kaardistamiseks file, paremklõpsake mig_7series_0_mig.v, valige "Lisa allikad", sirvige
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
ja lisage mig_7series_0_mig_sim.v file. - Kui näete "?" alusvara jaoks files, lisage kõik RTL-id files kellaaja, kontrolleri, ip_top, phy ja kasutajaliidese kaustades.
- Kui RTL-i muudatused on tehtud ja kõik vajalikud files lisatakse teie simulatsiooniallikatele, peaks hierarhia olema sarnane joonisega 5.
The filepunasega esile tõstetud s on äsja lisatud ja "?" on oodata ECC-ga seotud moodulitel, kuna valitud mälukonfiguratsioonis on ECC valik keelatud.
Stiimul File Kirjeldus
Iga stiimuli muster on 48-bitine ja vormingut on kirjeldatud joonistel 6-1 kuni 6-4.
Aadressi kodeering (aadress [35:0])
Aadress on kodeeritud stiimulisse vastavalt joonistele 7-1 kuni joonisele 7-6. Kõik aadressiväljad tuleb sisestada kuueteistkümnendsüsteemis. Kõik aadressiväljad on kuueteistkümnendvormingus sisestamiseks jaguvad neljaga. Teststend saadab mälukontrollerile ainult aadressivälja nõutavad bitid.
NäiteksampKaheksa panga konfiguratsioonis saadetakse mälukontrollerile ainult pangabitid [2:0] ja ülejäänud bitte ignoreeritakse. Aadressivälja lisabitid on ette nähtud aadressi sisestamiseks kuueteistkümnendsüsteemis.
Peate kinnitama, et sisestatud väärtus vastab antud konfiguratsiooni laiusele.
- Veeru aadress (veerg [11:0]) – Stiimuli veeru aadress on maksimaalselt 12 bitti, kuid peate seda lahendama teie kujunduses määratud veeru laiuse parameetri alusel.
- Rea aadress (rida[15:0]) – Stiimuli rea-aadress on maksimaalselt 16 bitti, kuid peate seda lahendama oma kujunduses seatud rea laiuse parameetri alusel.
- Panga aadress (pank[3:0]) – Panga aadress stiimulis antakse maksimaalselt nelja bitti, kuid peate selle lahendama teie kujunduses määratud panga laiuse parameetri alusel.
- Asetuse aadress (Rank[3:0]) – Stiimuli järjekoha aadress antakse maksimaalselt neljale bitile, kuid peate seda lahendama teie kujunduses seatud auastme laiuse parameetri alusel.
Aadress komplekteeritakse tipptaseme MEM_ADDR_ORDER parameetri alusel ja saadetakse kasutajaliidesele
Käsu kordamine (Käsu kordus [7:0])
Käskude korduste arv on kordade arv, mille jooksul vastavat käsku kasutajaliideses korratakse. Iga korduse aadressi suurendatakse 8 võrra. Maksimaalne korduste arv on 128.
Katsestend ei kontrolli veeru piiri ja see keerdub ümber, kui sammaste ajal saavutatakse veeru maksimaalne piir.
128 käsku täidavad lehe. Mis tahes veeru aadressi puhul, mis ei ole 0, ületab korduste arv 128 veeru piiri ja keerdub ümber veeru aadressi alguseni.
Bussi kasutamine
Siini kasutust arvutatakse kasutajaliideses, võttes arvesse lugemiste ja kirjutamiste koguarvu ning kasutatakse järgmist võrrandit:
- BL8 võtab neli mälu kella tsüklit
- end_of_stimulus on aeg, mil kõik käsud on tehtud.
- calib_done on aeg, mil kalibreerimine on tehtud.
Example Mustrid
Need examples põhinevad MEM_ADDR_ORDER, mis on seatud väärtusele BANK_ROW_COLUMN.
Üks lugemismuster
00_0_2_000F_00A_1 – see muster on ühekordne lugemine 10. veerust, 15. reast ja teisest pangast.Üks kirjutusmuster
00_0_1_0040_010_0 – see muster on ühekordne kirjutus 32. veergu, 128. reale ja esimesse panka.Ühele aadressile kirjutamine ja lugemine
00_0_2_000F_00A_0 – See muster on ühekordne kirjutamine 10. veergu, 15. reale ja teise panka.
00_0_2_000F_00A_1 – See muster on ühekordne lugemine 10. veerust, 15. reast ja teisest pangast
Sama aadressiga mitu kirjutamist ja lugemist
0A_0_0_0010_000_0 – See vastab 10 kirjutusele aadressiga alates 0 kuni 80, mida saab näha veerus.
0A_0_0_0010_000_1 – See vastab 10 lugemisele, mille aadress algab 0 kuni 80, mida saab näha veerus.
Lehe murdmine kirjutamise ajal
0A_0_2_000F_3F8_0 – See vastab 10 kirjutusele, mille veeru aadress on mähitud lehe algusesse pärast ühte kirjutamist.
Performance Traffic Generatori simuleerimine
Sel hetkel olete MIG ex-ga lõpetanudample disaini simulatsioon. See tähendab, et teie simulatsiooni seadistus on valmis, olete teinud jõudluse simulatsiooni RTL-i muudatusi, uus simulatsioonihierarhia on õige ja olete stiimulitest aru saanud. Käivitage simulatsioon veel kord 16 kirjutise ja lugemisega failis perfsim_stimulus.txt.
Käivitage kõik, oodake, kuni signaal init_calib_complete on kinnitatud, ja näete kavandatud kirjutamiste ja lugemiste arvu. Seejärel simulatsioon peatub.
Kui teil palutakse simulatsioonist väljuda, valige Ei ja minge ärakirja aknasse, kus näete toimivusstatistikat.
Kui valite "lõpeta simulatsioon" jõudlusstatistika kirjutatakse aadressile a file nimega mig_band_width_output.txt, mis asub failis sim_1/behave kausta.
Exampkataloogi tee:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Võite küsida, miks protsentitage siini kasutamine on ainult 29. Käivitage simulatsioon uuesti samade IP-sätetega, kuid muutke lihtsalt stiimulit file kuni 256 kirjutab ja 256 loeb
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Nüüd näete protsentitage nagu 85, mis tähendab, et DDR3 pakub paremat siini kasutamist pikkade kirjutamis- ja lugemispakettide jaoks.
Üldised viisid jõudluse parandamiseks
Tõhusust mõjutavad tegurid võib jagada kahte ossa:
- Mälu spetsiifiline
- Kontrolleri spetsiifiline
Joonis 9 annab teile üleview terminitest, mis on mäluspetsiifilised.
Erinevalt SRAM-idest ja plokkmäludest ei ole DDR2 või DDR3 jõudlus ainult maksimaalne andmeedastuskiirus.
See sõltub paljudest ajastusteguritest, sealhulgas:
- tRCD: Rea käsu viivitus (või ras to ca viivitus).
- tCAS(CL): Veeru aadressi strobe latentsus.
- tRP: Rea eellaadimise viivitus.
- tRAS: rea aktiivne aeg (aktiveerige eelvahetuseks).
- tRC: Reatsükli aeg. tRC = tRAS + tRP
- tRAC: Juhusliku juurdepääsu viivitus. tRAC = tRCD + tCAS
- tCWL: Cas kirjutamise latentsus.
- tZQ: ZQ kalibreerimisaeg.
- tRFC: Rea värskendamise tsükli aeg
- tWTR: Kirjutamise lugemise viivitus. Viimane kirjutamistehing käsu lugemise ajale.
- tWR: Kirjutage Taastamisaeg. Viimane kirjutamistehing eellaadimisaega
Kõigi loetletud parameetrite ajastus sõltub kasutatava mälu tüübist ja mälu osa kiirusest.
Lisateavet määratluste ja ajastuse spetsifikatsioonide kohta leiate failist DDR2 DDR3 JEDEC või mis tahes mäluseadme andmelehel.
Tõhusus sõltub peamiselt sellest, kuidas mälule ligi pääsetakse. Erinevad aadressimustrid annavad erinevaid tõhususe tulemusi.
Mälu ajastamise üldkulud
- Aktiveerimisaeg ja eellaadimisaeg, kui vahetate uutele pankadele/ridadele või vahetate ridu samas pangas.- Nii et kui vähendate reavahetust, võib see eemaldada tRCD ja tRP.
- Pidevate kirjutamis- või lugemiskäskude saatmine – tCCD ajastuse säilitamine.
- Minimeeri kirjutamise lugemiseks ja lugemiseks kirjutamiseks käsu vahetamine – kirjutamise taasteaeg lugemisjuurdepääsuks muutmiseks, siini pöördeaeg lugemisest kirjutamiseks üleminekuks
- Määrake õige värskendusintervall.
- DDR3 SDRAM nõuab värskendustsükleid keskmise perioodilise intervalliga tREFI.
- Eelnevalt saab anda maksimaalselt 8 täiendavat värskendamiskäsku (“sissetõmmatud”). See ei vähenda värskenduste arvu, kuid maksimaalne intervall kahe ümbritseva värskenduskäsu vahel on piiratud 9 × tREFI-ga
- Kasutage kõiki panku - Eelistatav on sobiv adresseerimismehhanism.
- Rida-pank-veerg: Järjestikuse aadressiruumi kaudu toimuva tehingu puhul avab tuum automaatselt sama rea DRAM-seadme järgmises pangas, et jätkata tehingut, kui olemasoleva rea lõppu on jõutud. See sobib hästi rakendustele, mis nõuavad suurte andmepakettide pakkimist järjestikustesse aadressi asukohtadesse.
- Pank-rida-veerg: Reapiiri ületamisel suletakse praegune rida ja avatakse teine rida sama kalda piires. MSB on pangaaadress, mille abil saab erinevatest pankadest ümber lülituda. See sobib lühemate, juhuslikumate tehingute tegemiseks teatud aja jooksul ühte mäluplokki ja seejärel hüppamiseks teise plokki (panka)
- Purske pikkus
- BL 8 toetab DDR3 on 7 seeriat. BC4 efektiivsus on väga madal, alla 50%. Seda seetõttu, et BC4 täitmisaeg on sama, mis BL8. Andmed on lihtsalt komponendi sees maskeeritud.
- Juhtudel, kui te ei soovi täispaketti kirjutada, võib kaaluda kas andmemaski või lugemise järel kirjutamist.
- Õige ZQ intervalli määramine (ainult DDR3)
Kontroller saadab nii ZQ Short (ZQCS) kui ka ZQ Long (ZQCL) kalibreerimiskäsud.- Järgige DDR3 Jedeci standardit
- ZQ kalibreerimist käsitletakse JEDEC Spec JESD5.5-79 DDR3 SDRAM standardi jaotises 3
- ZQ kalibreerimine kalibreerib regulaarsete ajavahemike järel ODT (On Die Termination), et võtta arvesse VT erinevusi
- Loogika sisaldub failis bank_common.v/vhd
- Parameeter Tzqcs määrab kiiruse, millega ZQ kalibreerimise käsk mällu saadetakse
- t on võimalik loendurit keelata ja käsitsi saata kasutades app_zq_req, see on sarnane värskenduse käsitsi saatmisega.
Üksikasju vaadake (Xilinxi vastus 47924).
Kontrolleri üldkulud
- Perioodilised lugemised – vaadake (Xilinxi vastus 43344) üksikasjade saamiseks.
- Ärge muutke lugemise perioodi
- Jätke kirjutamise ajal perioodilised lugemised vahele ja avaldage enne tõelist lugemist vahelejäänud lugemiste arv
- Ümberjärjestamine – vt (Xilinxi vastus 34392) üksikasjade saamiseks.
Kasutaja- ja AXI-liidese kujunduste puhul on eelistatav, et see oleks lubatud.- Ümberjärjestamine on loogika, mis näeb ette mitmeid käske ja muudab kasutaja käskude järjekorda, et mittemälukäsud ei võtaks kehtivat ribalaiust. Toimivus oli seotud ka tegeliku liiklusmustriga.
- Aadressi mustri põhjal aitab ümberjärjestamine vahele jätta eellaadimise ja aktiveerimise käsud ning muudab tRCD ja tRP andmeriba laiuse mitte hõivamiseks.
- Proovige suurendada pangaautomaatide arvu.
- Suurem osa kontrolleri loogikast asub pangaautomaatides ja need vastavad DRAM-i pankadele
- Antud pangaautomaat haldab igal ajahetkel ühte DRAM-panka.
- Pangaautomaatide määramine on dünaamiline, seega ei pea iga füüsilise panga jaoks omama pangaautomaati.
- Pangaautomaate saab konfigureerida, kuid see on kompromiss pindala ja jõudluse vahel.
- Lubatud pangaautomaatide arv jääb vahemikku 2-8.
- Vaikimisi on RTL parameetrite kaudu konfigureeritud 4 pangaautomaati.
- Pangaautomaatide muutmiseks võtke arvesse parameetrit nBANK_MACHS = 8, mis sisaldub failis memc_ui_top Example 8 pangaautomaadi jaoks – nBANK_MACHS = 8
Nüüd olete teadlik teguritest, mis mõjutavad jõudlust.
Kaaluge ülesvoolu rakendust, mis annab teile 512 andmebaiti paketi kohta ja peate need salvestama erinevatesse mälukohtadesse. Kuna 512 andmebaiti võrdub 64 DDR3 andmepaketiga, käivitage example disain stiimuliga file sisaldab 512 kirjutamist, 512 lugemist ja reavahetust iga 64 kirjutamise või lugemise kohta:
- 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
Simulatsiooni lõpus näete, et siini kasutusaste on 77 protsenti.
Joonis 11: 512 kirjutamise ja 512 lugemise jõudlusstatistika – ridade vahetamine 64 kirjutamise või lugemise jaoks.
Nüüd saate eelmises jaotises õpitud teadmisi tõhususe suurendamiseks rakendada. Koos view Kui soovite rea muutmise asemel kasutada kõiki panku, muutke panga muutmiseks aadressimustrit, nagu allpool näidatud.
See võrdub ROW_BANK_Column seadistusega MIG GUI mäluaadressi vastendamise sättes.
- 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
Simulatsiooni lõpus näete, et varasem 77-protsendiline bussikasutus on nüüd 87!
Kui vajate endiselt suuremat tõhusust, võite valida suured paketi suurused 1024 või 2048 baiti või kaaluda käsitsi värskendamist.
Märkus. Xilinx ei soovita kontrolleri värskendamisest mööda hiilida, kuna me pole kindlad, kas suudate järgida Jedeci automaatse värskendamise ajastust, mis mõjutab andmete usaldusväärsust.
Kontrolleri poolelt saate muuta nBANK_MACH ja näha jõudluse paranemist.
See võib aga mõjutada teie kavandamise ajastust, vaadake palun (Xilinxi vastus 36505) lisateabe saamiseks nBANK_MACH
Avage fail core_name_mig_sim.v file ja muutke parameetrid nBANK_MACHS 4-lt 8-le ja käivitage simulatsioon uuesti. Parameetri väärtuse riistvaras jõustumiseks peate värskendama faili core_name_mig.v file.
Kasutasin sama mustrit, kus saime siini kasutuse 87% (joonis -12).
Kui nBANK_MACHS on seatud väärtusele 8, on efektiivsus nüüd 90%.
Pange tähele ka seda, et ½ ja ¼ kontrollerid mõjutavad nende latentsusaja tõttu efektiivsust negatiivselt.
NäiteksampKuna saame käske saata ainult iga 4 CK-tsükli järel, on DRAM-i minimaalse ajastuse spetsifikatsioonide järgimisel mõnikord täiendav polsterdus, mis võib teoreetilisest efektiivsust vähendada.
Proovige erinevaid kontrollereid, et leida see, mis sobib teie tõhususe nõudega.
Viited
- Zynq-7000 AP SoC ja 7. seeria FPGA-d MIS v2.3 [UG586]
- Xilinxi MIG lahenduskeskus http://www.xilinx.com/support/answers/34243.html
Läbivaatamise ajalugu
13/03/2015 – esialgne väljalase
Laadige alla PDF: Xilinx DDR2 MIG 7 jõudluse hindamise juhend