Xilinx DDR2 MIG 7 suorituskyvyn arviointiopas
Tärkeä huomautus: Tämä vastaustietueen ladattava PDF on tarkoitettu parantamaan sen käytettävyyttä ja luettavuutta. On tärkeää huomata, että Answer Records ovat Web-pohjaista sisältöä, jota päivitetään usein, kun uutta tietoa tulee saataville. Sinua muistutetaan vierailemaan Xilinxin teknisessä tuessa Websivusto ja review (Xilinx Answer 63234) tämän vastauksen uusimpaan versioon.
Johdanto
Koska DDR2- ja DDR3-muistit on suunniteltu ja MIG 7 -sarjan ohjain on suunniteltu, suorituskyky ei ole suoraviivaista.
Se vaatii eri Jedecin ajoitusparametrien ja ohjaimen arkkitehtuurin ymmärtämistä, ja sinun on suoritettava simulaatioita arvioiden saamiseksi.
Suorituskyvyn määrittämisen yleinen periaate on sama, mutta tämä asiakirja tarjoaa helpon tavan saavuttaa tehokkuus käyttämällä MIG example design testipenkin ja ärsykkeen avulla fileon liitetty tähän.
Tehokas kaistanleveys
DRAM-dataväylä saavuttaa lähes huippukaistanleveyden vain luku- ja kirjoituspurskeiden aikana, ja sen overhead alentaa tehollista datanopeutta.
Muutama exampVähemmän yleiskustannuksia ovat:
- esilatausaika saman pankin riveille pääsyyn (pääsyosoite ei ole samassa rivisivun osumassa)
- kirjoituksen palautumisaika, joka siirtyy kirjoituksesta lukuoikeuksiin
- väylän läpimenoaika, joka vaihtuu luku- ja kirjoituskäytöstä
Tehokas kaistanleveys = huippukaistanleveys * tehokkuus
MIG Design Generation
Katso UG586:n luvusta 1 vaiheittaiset tiedot MIG IP:stä ja esimampsuunnittelun sukupolvi.
Ennen kuin suoritat MIG 7 -sarjan suoritussimulaatiota, varmista, että simulointiympäristösi on kunnossa. Avaa MIG exampSuunnittele ja kartoita sopivat kirjastot, suorita simulaatio ja varmista, että näet tekstin "testi läpäissyt" viestin.
Suon osoittamiseksi olen luonut MIG IP:n xc7vx690tffg1761-2:lle ja kutsunut exampdesign.
Kaksi asiaa, jotka tulee huomioida, ovat muistin osoitebitit ja muistin osoitekartoituksen valinta.
esimampOlen valinnut muistiosan pudotusvalikosta MT41J128M8XX-125.
Kuvasta 1 valitulle muistiosalle rivi = 14, sarake = 10 ja pankki = 3, joten app_addr_width = rivi + sarake + pankki + sijoitus = 28
Voit valita joko BANK_ROW_COLUMN- tai ROW BANK -sarakkeen.
Olen jättänyt ROW BANK -sarakkeen, joka on oletusosoitekartoitus.
Example design Simulaatio syntetisoitavalla testipenkillä
Valitse Simulaatioasetukset-kohdasta QuestaSim/ModelSim Simulator ja selaa koottujen kirjastojen sijaintiin.
Lisätietoja kolmannen osapuolen työkalujen asennuspolun osoittamisesta, kohdesimulaattorin valitsemisesta sekä kirjastojen kääntämisestä ja kartoittamisesta on (UG900) Vivado Design Suite -käyttöoppaassa Logic Simulation.
Suorita simulaatio graafisen käyttöliittymän kautta (napsauta Suorita simulointi -välilehteä projektinhallinnassa) ja varmista, että näet tekstissä "testi läpäissyt" -viestin.
Performance Simulation RTL-muutokset
- Napsauta hiiren kakkospainikkeella Lähteet-välilehteä, valitse "lisää tai luo simulaatiolähteitä" ja selaa mig7_perfsim_traffic_generator.sv. file ja lisää se napsauttamalla lopeta.
- Napsauta hiiren kakkospainikkeella Lähteet-välilehteä, valitse "lisää tai luo simulaatiolähteitä", selaa perfsim_stimulus.txt-tiedostoon ja lisää se napsauttamalla Valmis.
- Kommentoi exäample_top ilmentymä tiedostossa sim_tb_top.v file.
- Lisää alla olevat RTL-rivit sim_tb_top,v
- paikallinen parametri APP_ADDR_WIDTH = 28;
- paikallinen parametri APP_DATA_WIDTH = 64;
- paikallinen parametri APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = "BANK_ROW_COLUMN";
- paikallinen parametri BANK_WIDTH = 3;
- paikallinen parametri RANK_WIDTH = 1;
- lanka [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- lanka [2:0] c0_ddr3_app_cmd;
- lanka c0_ddr3_app_en;
- lanka [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- lanka c0_ddr3_app_wdf_end;
- lanka [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- lanka c0_ddr3_app_wdf_wren;
- lanka [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- johdin c0_ddr3_app_rd_data_end;
- lanka c0_ddr3_app_rd_data_valid;
- lanka c0_ddr3_app_rdy;
- lanka c0_ddr3_app_wdf_rdy;
- lanka c0_data_compare_error;
- lanka ui_clk;
- johto ui_clk_sync_rst;
- lanka app_sr_req = 0;
- lanka app_ref_req = 0;
- lanka app_zq_req =0;
- lanka c0_app_wdf_mask =0;
FPGA-muistiohjaimen toteutus
mig_7series_0_mig u_mig_7series_0_mig (
// Muistiliitäntäportit
- .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),
// Sovellusliitäntäportit
- .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),
// Järjestelmän kelloportit
- .sys_clk_i (sys_clk_i),
// Viitekelloportit
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Suorituskykyinen liikennegeneraattorin ilmentymä
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. Muokkaa APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH ja BANK_WIDTH muistiosan valinnan mukaan.
Arvot saa osoitteesta _mig.v file. - Keltainen korostettu ilmentymänimi mig_7series_0_mig voi vaihdella IP-osoitteen luomisen aikana komponenttinimesi mukaan. Tarkista, oletko valinnut toisen nimen, ja muuta se vastaavasti.
- Kun IP on luotu, avaa _mig.v file ja tarkista LHS-signaalien nimien mahdolliset vaihtelut ja korjaa ne.
- app_sr_req, app_ref_req ja app_zq_req tulee alustaa arvoon 0.
- Kuten example_top.v on kommentoitu ja uusi files lisätään, näet todennäköisesti "?" vieressä
mig_7series_0_mig.v file simulaatiolähteiden alla.
Kartoittaaksesi oikean file, napsauta hiiren kakkospainikkeella mig_7series_0_mig.v, valitse "Lisää lähteitä", selaa
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
ja lisää mig_7series_0_mig_sim.v file. - Jos näet "?" taustalla olevaa varten files, lisää kaikki RTL files kello-, ohjain-, ip_top-, phy- ja UI-kansioissa.
- Kun RTL-muutokset on tehty ja kaikki tarvittava files lisätään simulointilähteihisi, hierarkian tulisi olla samanlainen kuin kuvassa 5.
The filepunaisella korostetut s on äskettäin lisätty ja "?" Odotetaan ECC:hen liittyvissä moduuleissa, koska valitussa muistikokoonpanossa ECC-vaihtoehto on poistettu käytöstä.
Ärsyke File Kuvaus
Jokainen ärsykekuvio on 48-bittinen ja muoto on kuvattu kuvissa 6-1 - 6-4.
Osoitteen koodaus (osoite [35:0])
Osoite on koodattu ärsykkeeseen kuvien 7-1 - kuva 7-6 mukaisesti. Kaikki osoitekentät on syötettävä heksadesimaalimuodossa. Kaikki osoitekentät ovat leveitä, jotka jaetaan neljällä heksadesimaalimuodossa. Testipenkki lähettää vain osoitekentän vaaditut bitit muistiohjaimelle.
esimampKahdeksan pankin konfiguraatiossa vain pankkibitit [2:0] lähetetään muistiohjaimelle ja loput bitit ohitetaan. Osoitekentän ylimääräiset bitit on tarkoitettu antamaan osoite heksadesimaalimuodossa.
Sinun on varmistettava, että syötetty arvo vastaa tietyn kokoonpanon leveyttä.
- Sarakkeen osoite (Sarake[11:0]) – Sarakeosoite ärsykkeessä on enintään 12 bittiä, mutta sinun on käsiteltävä tämä suunnittelussasi asetettujen sarakkeen leveysparametrien perusteella.
- Rivin osoite (Row[15:0]) – Ärsykkeen riviosoite annetaan enintään 16 bitin mittaiseksi, mutta sinun on käsiteltävä tämä suunnittelussasi asetettujen rivinleveysparametrien perusteella.
- Pankin osoite (Pankki[3:0]) – Pankkiosoite ärsykkeessä annetaan enintään neljälle bitille, mutta sinun on käsiteltävä tämä suunnittelussasi asetettujen pankin leveysparametrien perusteella.
- Sijoitusosoite (Rank[3:0]) – Ärsykkeen sijoitusosoite annetaan enintään neljälle bitille, mutta sinun on käsiteltävä tämä suunnittelussasi asetettujen rankleveysparametrien perusteella.
Osoite kootaan ylätason MEM_ADDR_ORDER-parametrin perusteella ja lähetetään käyttöliittymään
Komentotoisto (komennon toisto [7:0])
Komennon toistokertojen määrä tarkoittaa, kuinka monta kertaa vastaava komento toistetaan käyttöliittymässä. Jokaisen toiston osoitetta kasvatetaan 8:lla. Toistojen enimmäismäärä on 128.
Testipenkki ei tarkista sarakkeen rajaa ja se kiertyy, jos sarakkeen enimmäisraja saavutetaan inkrementtien aikana.
128 komento täyttää sivun. Jos sarakeosoite on muu kuin 0, toistomäärä 128 ylittää sarakkeen rajan ja päättyy sarakkeen osoitteen alkuun.
Linja-autojen käyttö
Väylän käyttöaste lasketaan käyttöliittymässä ottaen huomioon lukujen ja kirjoitusten kokonaismäärä ja käytetään seuraavaa yhtälöä:
- BL8 kestää neljä muistin kellojaksoa
- end_of_stimulus on aika, jolloin kaikki komennot on tehty.
- calib_done on aika, jolloin kalibrointi on tehty.
Example Patterns
Nämä examples perustuvat MEM_ADDR_ORDER, joka on asetettu arvoon BANK_ROW_COLUMN.
Yksittäinen lukumalli
00_0_2_000F_00A_1 – Tämä kuvio on yksittäinen luku 10. sarakkeesta, 15. rivistä ja toisesta pankista.Yksi kirjoituskuvio
00_0_1_0040_010_0 – Tämä malli on yksi kirjoitus 32. sarakkeeseen, 128. riviin ja ensimmäiseen pankkiin.Yksi kirjoitus ja luku samaan osoitteeseen
00_0_2_000F_00A_0 – Tämä malli on yksi kirjoitus 10. sarakkeeseen, 15. riviin ja toiseen pankkiin.
00_0_2_000F_00A_1 – Tämä kuvio on yksittäinen luku 10. sarakkeesta, 15. rivistä ja toisesta pankista
Useita kirjoituksia ja lukuja samalla osoitteella
0A_0_0_0010_000_0 – Tämä vastaa 10 kirjoitusta, joiden osoite alkaa 0-80 ja jotka näkyvät sarakkeessa.
0A_0_0_0010_000_1 – Tämä vastaa sarakkeessa näkyvää 10 lukua, joiden osoite alkaa 0 - 80.
Sivun rivitys kirjoitusten aikana
0A_0_2_000F_3F8_0 – Tämä vastaa 10 kirjoitusta, joissa sarakeosoite kääritään sivun alkuun yhden kirjoituksen jälkeen.
Performance Traffic Generatorin simulointi
Tässä vaiheessa olet valmis MIG exampsuunnittelusimulaatio. Tämä tarkoittaa, että simulaatiokokoonpanosi on valmis, olet tehnyt suoritussimulaatioiden RTL-muokkauksia, uusi simulaatiohierarkia on oikea ja olet ymmärtänyt ärsykemallit. Suorita simulaatio vielä kerran 16 kirjoitus- ja lukukerralla perfsim_stimulus.txt-tiedostossa.
Suorita kaikki, odota, kunnes init_calib_complete-signaali vahvistetaan, niin näet ehdotetun kirjoitus- ja lukumäärän. Simulointi pysähtyy sitten.
Kun sinua kehotetaan lopettamaan simulointi, valitse Ei ja siirry transkriptioikkunaan, jossa voit nähdä suorituskykytilastot.
Jos valitset "lopeta simulaatio" suorituskykytilastot kirjoitetaan osoitteeseen a file nimetty mig_band_width_output.txt, joka sijaitsee tiedostossa sim_1/behave kansio.
Examphakemistopolku:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Saatat ihmetellä, miksi prosenttitagVäylän käyttöaste on vain 29. Suorita simulaatio uudelleen samoilla IP-asetuksilla, mutta muuta vain ärsykettä file 256 kirjoitus- ja 256 lukukertaan
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Näet nyt prosentintage as 85, mikä tarkoittaa, että DDR3 tarjoaa paremman väylän hyödyntämisen pitkille kirjoitus- ja lukupurskeille.
Yleisiä tapoja parantaa suorituskykyä
Tehokkuuteen vaikuttavat tekijät voidaan jakaa kahteen osaan:
- Muistikohtainen
- Ohjainkohtainen
Kuva 9 antaa sinulle ylityksenview termeistä, jotka ovat muistikohtaisia.
Toisin kuin SRAM-muistit ja lohkomuistit, DDR2- tai DDR3-suorituskyky ei ole vain suurin tiedonsiirtonopeus.
Se riippuu monista ajoitustekijöistä, mukaan lukien:
- tRCD: Rivikomennon viive (tai ras to ca -viive).
- tCAS(CL): Sarakkeen osoitteen vilkkuviive.
- tRP: Rivin esilatauksen viive.
- tRAS: rivin aktiivinen aika (aktivoi vaihtaaksesi).
- tRC: Rivijakson aika. tRC = tRAS + tRP
- tRAC: Satunnaisen käytön viive. tRAC = tRCD + tCAS
- tCWL: Cas-kirjoitusviive.
- tZQ: ZQ-kalibrointiaika.
- tRFC: Rivin päivitysjakson aika
- tWTR: Kirjoita Lukuviive. Viimeinen kirjoitustapahtuma Read-komentoaikaan.
- tWR: Kirjoita Palautusaika. Viimeinen kirjoitustapahtuma esilatausaikaan
Kaikkien lueteltujen parametrien ajoitus riippuu käytetyn muistin tyypistä ja muistin osan nopeudesta.
Lisätietoja määritelmistä ja ajoitusmäärityksistä löytyy DDR2 DDR3 JEDEC:stä tai mistä tahansa muistilaitteen tietosivusta.
Tehokkuus riippuu pääasiassa siitä, kuinka muistia käytetään. Erilaiset osoitemallit antavat erilaisia tehokkuustuloksia.
Muistin ajoituskulut
- Aktivointiaika ja esilatausaika, kun vaihdat uusiin pankkeihin/riveihin tai vaihdat rivejä samassa pankissa. - Joten jos vähennät rivien vaihtoa, tämä voi poistaa tRCD:n ja tRP:n.
- Lähetä jatkuvia kirjoitus- tai lukukomentoja - tCCD-ajoituksen ylläpitäminen.
- Minimoi kirjoitus-lukemis- ja luku-kirjoituskomennon vaihto – kirjoita palautusaika lukuoikeuksiksi vaihtamiseen, väylän läpimenoaika luku-kirjoitukseen vaihtamiseen
- Aseta oikea päivitysväli.
- DDR3 SDRAM vaatii päivitysjaksoja keskimäärin tREFI:n jaksollisin välein.
- Enintään 8 lisäpäivityskomentoa voidaan antaa etukäteen ("vedetty sisään"). Tämä ei vähennä päivitysten määrää, mutta kahden ympäröivän Refresh-komennon välinen enimmäisväli on rajoitettu 9 × tREFI:iin.
- Käytä kaikkia pankkeja - Sopiva osoitemekanismi on edullinen.
- Rivi-Pankki-Sarake: Jos tapahtuma tapahtuu peräkkäisen osoiteavaruuden yli, ydin avaa automaattisesti saman rivin DRAM-laitteen seuraavassa pankissa jatkaakseen tapahtumaa, kun olemassa olevan rivin loppu saavutetaan. Se sopii hyvin sovelluksiin, jotka vaativat suurten datapakettien purkamista peräkkäisiin osoitepaikkoihin.
- Pankki-rivi-sarake: Rivin rajan ylittäessä nykyinen rivi suljetaan ja toinen rivi avautuu saman pankin sisällä. MSB on pankin osoite, jolla voidaan vaihtaa eri pankeista. Se soveltuu lyhyempiin, satunnaisempiin tapahtumiin yhteen muistilohkoon tietyksi ajaksi ja sitten hyppäämiseen toiseen lohkoon (pankkiin)
- Purskeen pituus
- BL 8 tukee DDR3 on 7 -sarjaa. BC4:n hyötysuhde on erittäin alhainen, alle 50 %. Tämä johtuu siitä, että BC4:n suoritusaika on sama kuin BL8:n. Tiedot on vain peitetty komponentin sisällä.
- Tapauksissa, joissa et halua kirjoittaa täydellistä pursketta, voidaan harkita joko datamaskia tai kirjoitusjälkeen lukemista.
- Aseta oikea ZQ-väli (vain DDR3)
Ohjain lähettää sekä ZQ Short (ZQCS) että ZQ Long (ZQCL) kalibrointikomennot.- Noudata DDR3 Jedec -standardia
- ZQ-kalibrointia käsitellään JEDEC Spec JESD5.5-79 DDR3 SDRAM -standardin kohdassa 3
- ZQ-kalibrointi kalibroi On Die Terminationin (ODT) säännöllisin väliajoin VT-vaihteluiden huomioon ottamiseksi
- Logiikka sisältyy tiedostoon bank_common.v/vhd
- Parametri Tzqcs määrittää nopeuden, jolla ZQ-kalibrointikomento lähetetään muistiin
- t on mahdollista poistaa käytöstä laskuri ja lähettää manuaalisesti käyttämällä app_zq_req, se on samanlainen kuin manuaalinen Päivitys.
Katso lisätietoja (Xilinx Answer 47924).
Ohjaimen yleiskulut
- Säännölliset lukemat – Katso (Xilinxin vastaus 43344) lisätietoja.
- Älä muuta lukuaikaa
- Ohita säännölliset lukemat kirjoittamisen aikana ja anna lukematta jääneiden lukujen määrä ennen todellista lukua
- Uudelleenjärjestäminen – katso (Xilinxin vastaus 34392) lisätietoja.
Käyttäjä- ja AXI-liitäntämalleissa on suositeltavaa ottaa tämä käyttöön.- Järjestys on logiikka, joka näyttää useita komentoja eteenpäin ja muuttaa käyttäjän komentojärjestystä, jotta muut kuin muistikomennot eivät käytä kelvollista kaistanleveyttä. Suorituskyky liittyi myös todelliseen liikennemuotoon.
- Osoitemallin perusteella uudelleenjärjestäminen auttaa ohittamaan esilatauksen ja aktivoimaan komennot ja estää tRCD:tä ja tRP:tä käyttämään datakaistanleveyttä.
- Yritä lisätä pankkiautomaattien määrää.
- Suurin osa ohjaimen logiikasta on pankkikoneissa ja ne vastaavat DRAM-pankkeja
- Tietty pankkikone hallitsee yhtä DRAM-pankkia kulloinkin.
- Pankkiautomaattien määritys on dynaaminen, joten jokaiselle fyysiselle pankille ei tarvitse olla pankkiautomaattia.
- Pankkiautomaatit voidaan konfiguroida, mutta se on kompromissi alueen ja suorituskyvyn välillä.
- Sallittu pankkiautomaattien määrä on 2-8.
- Oletusarvoisesti 4 pankkiautomaattia määritetään RTL-parametrien avulla.
- Jos haluat muuttaa pankkiautomaatteja, harkitse parametrin memc_ui_top Ex sisältämää parametria nBANK_MACHS = 8ample 8 pankkikoneelle – nBANK_MACHS = 8
Olet nyt tietoinen suorituskykyyn vaikuttavista tekijöistä.
Harkitse ylävirran sovellusta, joka antaa sinulle 512 datatavua pakettia kohden ja sinun on tallennettava ne eri muistipaikkoihin. Koska 512 datatavua vastaa 64 DDR3-datapursketta, suorita example suunnittelua ärsykkeellä file sisältää 512 kirjoitusta, 512 lukua ja rivinvaihtoa jokaista 64 kirjoitusta tai lukua kohti:
- 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
Simuloinnin lopussa näet, että väylän käyttöaste on 77 prosenttia.
Kuva 11: Suorituskykytilastot 512 kirjoitukselle ja 512 lukemiselle – Rivien vaihto 64 kirjoitus- tai lukukerralle.
Voit nyt soveltaa edellisessä osiossa oppimaasi tietoa tehokkuuden parantamiseen. Kanssa view Jos haluat käyttää kaikkia pankkeja rivin muuttamisen sijaan, muokkaa osoitemallia vaihtaaksesi pankin alla olevan kuvan mukaisesti.
Tämä vastaa ROW_BANK_Column-asetusta MIG-graafisen käyttöliittymän muistiosoitteen kartoitusasetuksissa.
- 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
Simuloinnin lopussa näet, että aikaisempi 77 prosentin bussikäyttöaste on nyt 87!
Jos tarvitset edelleen suurempaa tehokkuutta, voit valita suuria 1024 tai 2048 tavun pakettikokoja tai harkita manuaalista päivitystä.
Huomautus: Xilinx ei rohkaise ohittamaan ohjaimen päivitystä, koska emme ole varmoja, pystytkö täyttämään Jedecin automaattisen päivityksen ajoituksen, joka vaikuttaa tietojen luotettavuuteen.
Ohjaimen puolelta voit muuttaa nBANK_MACH:ta ja nähdä suorituskyvyn parantumisen.
Tämä voi kuitenkin vaikuttaa suunnittelun ajoitukseen, katso (Xilinxin vastaus 36505) lisätietoja osoitteesta nBANK_MACH
Avaa core_name_mig_sim.v file ja muuta parametrit nBANK_MACHS arvosta 4 arvoon 8 ja suorita simulaatio uudelleen. Jotta parametrin arvo tulee voimaan laitteistossa, sinun on päivitettävä core_name_mig.v file.
Käytin samaa kaavaa, jossa saimme 87 % väylän käyttöasteen (kuva -12).
Kun nBANK_MACHS on asetettu arvoon 8, hyötysuhde on nyt 90 %.
Huomaa myös, että ½ ja ¼ säätimet vaikuttavat negatiivisesti tehokkuuteen niiden latenssien vuoksi.
esimampKoska voimme lähettää komentoja vain 4 CK-jakson välein, DRAM-ajoituksen vähimmäismäärityksiä noudattaessa on joskus ylimääräistä täyttöä, mikä voi vähentää tehokkuutta teoreettisesta.
Kokeile erilaisia ohjaimia löytääksesi tehokkuusvaatimuksiisi sopivan.
Viitteet
- Zynq-7000 AP SoC ja 7-sarjan FPGA:t MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
Versiohistoria
13 – Ensimmäinen julkaisu
Lataa PDF: Xilinx DDR2 MIG 7 suorituskyvyn arviointiopas