Xilinx DDR2 MIG 7 veiktspējas aplēses rokasgrāmata
Svarīga piezīme: Šis lejupielādējamais atbilžu ieraksta PDF fails tiek nodrošināts, lai uzlabotu tā lietojamību un lasāmību. Ir svarīgi atzīmēt, ka atbilžu ieraksti ir Websaturs, kas tiek bieži atjaunināts, tiklīdz kļūst pieejama jauna informācija. Jums tiek atgādināts apmeklēt Xilinx tehnisko atbalstu Webvietne un review (Xilinx Answer 63234) šīs atbildes jaunākajai versijai.
Ievads
DDR2 un DDR3 atmiņu arhitektūras un MIG 7 sērijas kontrollera dizaina dēļ veiktspēja nav vienkārša.
Tam nepieciešama izpratne par dažādiem Jedec laika parametriem un kontrollera arhitektūru, un jums būs jāpalaiž simulācijas, lai iegūtu aprēķinus.
Vispārējais princips veiktspējas noteikšanai ir vienāds, taču šis dokuments sniedz vienkāršu veidu, kā iegūt efektivitāti, izmantojot MIG example dizains ar testa stenda un stimula palīdzību fileir pievienots šeit.
Efektīvs joslas platums
DRAM datu kopne sasniedz gandrīz maksimālo joslas platumu tikai lasīšanas un rakstīšanas pārrāvumos, un tās pieskaitāmās izmaksas samazina faktisko datu pārraides ātrumu.
Daži bijušieampmazākas pieskaitāmās izmaksas ir:
- iepriekšējas uzlādes laiks, lai piekļūtu rindām tajā pašā bankā (piekļuves adrese nav tajā pašā rindas lapas trāpījumā)
- rakstīšanas atkopšanas laiks, lai pārietu no rakstīšanas uz lasīšanas piekļuvi
- autobusa apgriezienu laiks, lai mainītu piekļuvi no lasīšanas uz rakstīšanu
Efektīvais joslas platums = maksimālais joslas platums * efektivitāte
MIG dizaina paaudze
Skatiet UG586 1. nodaļu, lai iegūtu detalizētu informāciju par MIG IP un example dizaina paaudze.
Pirms MIG 7. sērijas veiktspējas simulācijas palaišanas veiciet tālāk norādītās darbības, lai pārliecinātos, ka simulācijas vide ir piemērota. Atveriet MIG exampprojektējiet un kartējiet atbilstošās bibliotēkas, palaidiet simulāciju un pārliecinieties, ka atšifrējumā ir redzams ziņojums “tests izturēts”.
Lai demonstrētu plūsmu, esmu ģenerējis MIG IP priekš xc7vx690tffg1761-2 un izsaucis ex.ampdizains.
Divas lietas, kas jāņem vērā, ir atmiņas adrešu biti un atmiņas adrešu kartēšanas izvēle.
Piemēram,ampEs esmu atlasījis MT41J128M8XX-125 zem atmiņas daļas nolaižamās izvēlnes opcijām.
Atlasītajai atmiņas daļai no 1. attēla rinda = 14, kolonna = 10 un banka = 3, tātad app_addr_width = rinda + kolonna + banka + rangs = 28
Varat atlasīt kolonnu BANK_ROW_COLUMN vai ROW BANK.
Esmu atstājis ROW BANK kolonnu, kas ir noklusējuma adreses kartēšana.
Example dizains Simulācija ar sintezējamu testēšanas stendu
Sadaļā Simulācijas iestatījumi atlasiet QuestaSim/ModelSim Simulator un pārlūkojiet apkopoto bibliotēku atrašanās vietu.
Detalizētu informāciju par norādīšanu uz trešās puses rīku instalēšanas ceļu, mērķa simulatora atlasi un bibliotēku kompilēšanu un kartēšanu skatiet (UG900) Vivado Design Suite lietotāja rokasgrāmatā Logic Simulation.
Palaidiet simulāciju, izmantojot GUI (projekta pārvaldniekā noklikšķiniet uz cilnes Izpildīt simulāciju) un pārliecinieties, vai transkripcijā redzat ziņojumu “tests izturēts”.
Performance Simulation RTL modifikācijas
- Ar peles labo pogu noklikšķiniet uz cilnes Avoti, atlasiet “pievienot vai izveidot simulācijas avotus” un pārlūkojiet mig7_perfsim_traffic_generator.sv. file un noklikšķiniet uz Pabeigt, lai to pievienotu.
- Ar peles labo pogu noklikšķiniet uz cilnes Avoti, atlasiet “pievienot vai izveidot simulācijas avotus”, pārlūkojiet failu perfsim_stimulus.txt un noklikšķiniet uz Pabeigt, lai to pievienotu.
- Komentējiet bijušoample_top instantiācija failā sim_tb_top.v file.
- Pievienojiet tālāk esošās RTL rindas sim_tb_top,v
- vietējais parametrs APP_ADDR_WIDTH = 28;
- vietējais parametrs APP_DATA_WIDTH = 64;
- vietējais parametrs APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = "BANK_ROW_COLUMN";
- vietējais parametrs BANK_WIDTH = 3;
- vietējais parametrs RANK_WIDTH = 1;
- vads [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- vads [2:0] c0_ddr3_app_cmd;
- vads c0_ddr3_app_en;
- vads [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- vads c0_ddr3_app_wdf_end;
- vads [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- vads c0_ddr3_app_wdf_wren;
- vads [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- vads c0_ddr3_app_rd_data_end;
- vads c0_ddr3_app_rd_data_valid;
- vads c0_ddr3_app_rdy;
- vads c0_ddr3_app_wdf_rdy;
- vads c0_data_compare_error;
- vads ui_clk;
- vads ui_clk_sync_rst;
- vads app_sr_req = 0;
- vads app_ref_req = 0;
- vads app_zq_req =0;
- vads c0_app_wdf_mask =0;
FPGA atmiņas kontroliera inscenēšana
mig_7series_0_mig u_mig_7series_0_mig (
// Atmiņas interfeisa porti
- .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),
// Lietojumprogrammu saskarnes porti
- .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),
// Sistēmas pulksteņa porti
- .sys_clk_i (sys_clk_i),
// Atsauces pulksteņa porti
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Veiktspējas trafika ģeneratora instancē
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. Mainiet APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH un BANK_WIDTH atbilstoši atmiņas daļas atlasei.
Vērtības var iegūt no _mig.v file. - Dzeltenais izceltais instancijas nosaukums mig_7series_0_mig var atšķirties atkarībā no jūsu komponenta nosaukuma IP izveides laikā, pārbaudiet, vai esat izvēlējies citu nosaukumu, un attiecīgi mainiet to.
- Kad IP ir ģenerēts, atveriet _mig.v file un pārbaudiet, vai LHS signālu nosaukumos nav izmaiņu, un izlabojiet tās.
- app_sr_req, app_ref_req un app_zq_req ir jāinicializē uz 0.
- Kā bijušaisample_top.v ir komentēts un jauns fileir pievienoti, jūs, iespējams, redzēsit “?” blakus
mig_7series_0_mig.v file zem simulācijas avotiem.
Lai kartētu pareizo file, ar peles labo pogu noklikšķiniet uz mig_7series_0_mig.v, atlasiet “Pievienot avotus”, pārlūkojiet
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
un pievienojiet mig_7series_0_mig_sim.v file. - Ja redzat “?” par pamatā esošo files, pievienojiet visus RTL files mapēs clocking, controller, ip_top, phy un UI.
- Kad RTL izmaiņas ir veiktas un visas nepieciešamās files tiek pievienoti jūsu simulācijas avotiem, hierarhijai jābūt līdzīgai 5. attēlā.
The filesarkanā krāsā iezīmētās s ir tikko pievienotas, un “?” ir paredzēts ar ECC saistītajos moduļos, jo atlasītajā atmiņas konfigurācijā ECC opcija ir atspējota.
Stimuls File Apraksts
Katrs stimulēšanas modelis ir 48 biti, un formāts ir aprakstīts 6-1 līdz 6-4 attēlā.
Adreses kodēšana (Adrese [35:0])
Adrese tiek kodēta stimulā, kā parādīts 7-1. līdz 7.-6. attēlā. Visi adreses lauki jāievada heksadecimālā formātā. Visi adreses lauki ir platumā, kas dalās ar četriem, lai ievadītu heksadecimālā formātā. Testēšanas stends nosūta tikai nepieciešamos adreses lauka bitus uz atmiņas kontrolieri.
Piemēram,ampAstoņu banku konfigurācijā uz atmiņas kontrolieri tiek nosūtīti tikai bankas biti [2:0], bet atlikušie biti tiek ignorēti. Adreses lauka papildu biti ir paredzēti, lai jūs varētu ievadīt adresi heksadecimālā formātā.
Jums jāpārliecinās, ka ievadītā vērtība atbilst noteiktās konfigurācijas platumam.
- Kolonnas adrese (kolonna[11:0]) – Kolonnas adrese stimulā tiek nodrošināta līdz 12 bitiem, taču jums tas ir jārisina, pamatojoties uz jūsu dizainā iestatīto kolonnas platuma parametru.
- Rindas adrese (Rinda[15:0]) – Rindas adrese stimulā tiek nodrošināta līdz 16 bitiem, taču jums tas ir jārisina, pamatojoties uz jūsu dizainā iestatīto rindas platuma parametru.
- Bankas adrese (Banka[3:0]) – Bankas adrese stimulā ir norādīta ne vairāk kā četros bitos, taču jums tas ir jārisina, pamatojoties uz jūsu dizainā iestatīto bankas platuma parametru.
- Ranga adrese (Rank[3:0]) – Ranga adrese stimulā tiek nodrošināta ne vairāk kā četriem bitiem, taču jums tas ir jārisina, pamatojoties uz jūsu dizainā iestatīto ranga platuma parametru.
Adrese tiek apkopota, pamatojoties uz augstākā līmeņa parametru MEM_ADDR_ORDER, un nosūtīta uz lietotāja interfeisu
Command Repeat (Command Repeat [7:0])
Komandu atkārtojumu skaits ir reižu skaits, kad attiecīgā komanda tiek atkārtota lietotāja interfeisā. Katra atkārtojuma adrese tiek palielināta par 8. Maksimālais atkārtojumu skaits ir 128.
Testēšanas stends nepārbauda kolonnas robežu un apgriež, ja pieauguma laikā tiek sasniegts maksimālais kolonnas ierobežojums.
128 komandas aizpilda lapu. Jebkurai kolonnas adresei, kas nav 0, atkārtojumu skaits 128 beidzas, šķērsojot kolonnas robežu un aptinot kolonnas adreses sākumu.
Autobusu izmantošana
Kopnes izmantošana tiek aprēķināta lietotāja interfeisā, ņemot vērā kopējo lasīšanas un rakstīšanas reižu skaitu, un tiek izmantots šāds vienādojums:
- BL8 aizņem četrus atmiņas pulksteņa ciklus
- end_of_stimulus ir laiks, kad visas komandas ir izpildītas.
- calib_done ir laiks, kad tiek veikta kalibrēšana.
Example Patterns
Šie bijušieamples ir balstīti uz MEM_ADDR_ORDER, kas iestatīts uz BANK_ROW_COLUMN.
Viens lasīšanas modelis
00_0_2_000F_00A_1 — šis modelis ir viens nolasījums no 10. kolonnas, 15. rindas un otrās rindas.Viens rakstīšanas modelis
00_0_1_0040_010_0 — šis modelis ir viens ieraksts 32. kolonnā, 128. rindā un pirmajā bankā.Viena rakstīšana un lasīšana vienā adresē
00_0_2_000F_00A_0 – Šis modelis ir viens ieraksts 10. kolonnā, 15. rindā un otrajā bankā.
00_0_2_000F_00A_1 – Šis modelis ir viens nolasījums no 10. kolonnas, 15. rindas un otrās rindas
Vairākas rakstīšanas un lasīšanas iespējas ar vienu un to pašu adresi
0A_0_0_0010_000_0 – Tas atbilst 10 ierakstiem ar adresi, kas sākas no 0 līdz 80, ko var redzēt kolonnā.
0A_0_0_0010_000_1 – Tas atbilst 10 nolasījumiem ar adresi, kas sākas no 0 līdz 80, ko var redzēt kolonnā.
Lapas aplaušana rakstīšanas laikā
0A_0_2_000F_3F8_0 – Tas atbilst 10 rakstīšanas reizēm ar kolonnas adresi, kas pēc vienas rakstīšanas tiek iesaiņota līdz lapas sākumam.
Veiktspējas trafika ģeneratora simulēšana
Šajā brīdī esat pabeidzis darbu ar MIG example dizaina simulācija. Tas nozīmē, ka jūsu simulācijas iestatījums ir gatavs, esat veicis veiktspējas simulācijas RTL modifikācijas, jaunā simulācijas hierarhija ir pareiza un esat sapratis stimulēšanas modeļus. Vēlreiz palaidiet simulāciju ar 16 rakstīšanas un nolasīšanas reizēm failā perfsim_stimulus.txt.
Izpildiet visu, pagaidiet, līdz tiek apstiprināts signāls init_calib_complete, un jūs varēsit redzēt piedāvāto rakstīšanas un nolasīšanas reižu skaitu. Pēc tam simulācija tiks pārtraukta.
Kad tiek piedāvāts iziet no simulācijas, atlasiet Nē un atveriet atšifrējuma logu, kurā varēsit skatīt veiktspējas statistiku.
Ja izvēlaties “Iziet no simulācijas” veiktspējas statistika tiks rakstīta uz a file nosaukts mig_band_width_output.txt, kas atrodas sim_1/behave mapi.
Exampdirektorija ceļš:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Jums varētu rasties jautājums, kāpēc procentitage kopnes izmantošana ir tikai 29. Atkārtoti palaidiet simulāciju ar tiem pašiem IP iestatījumiem, tikai mainot stimulu file līdz 256 rakstiem un 256 lasījumiem
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Tagad jūs redzēsit procentustage kā 85, kas nozīmē, ka DDR3 piedāvā labāku kopnes izmantošanu ilgām rakstīšanas un lasīšanas sērijām.
Vispārīgi veidi, kā uzlabot veiktspēju
Efektivitāti ietekmējošos faktorus var iedalīt divās daļās:
- Īpaša atmiņa
- Kontrolierim raksturīgs
9. attēls sniedz jums pāriview no terminiem, kas ir specifiski atmiņai.
Atšķirībā no SRAM un Block Memories DDR2 vai DDR3 veiktspēja nav tikai maksimālais datu pārraides ātrums.
Tas ir atkarīgs no daudziem laika faktoriem, tostarp:
- tRCD: Rindas komandas aizkave (vai ras to ca aizkave).
- tCAS(CL): Kolonnas adreses strobe latentums.
- tRP: Rindas uzlādes aizkave.
- tRAS: Rindas aktīvais laiks (aktivizējiet, lai veiktu iepriekšēju apmaiņu).
- tRC: Rindas cikla laiks. tRC = tRAS + tRP
- tRAC: Radomas piekļuves aizkave. tRAC = tRCD + tCAS
- tCWL: Cas rakstīšanas latentums.
- tZQ: ZQ kalibrēšanas laiks.
- tRFC: Rindas atsvaidzināšanas cikla laiks
- tWTR: Rakstīt uz Lasīšanas aizkave. Pēdējā rakstīšanas transakcija uz Lasīšanas komandas laiku.
- tWR: Uzrakstiet Atkopšanas laiks. Pēdējā ierakstīšanas darījuma pirmsuzlādes laiks
Visu uzskaitīto parametru laiks ir atkarīgs no izmantotās atmiņas veida un atmiņas daļas ātruma pakāpes.
Sīkāku informāciju par definīcijām un laika specifikācijām var atrast DDR2 DDR3 JEDEC vai jebkuras atmiņas ierīces datu lapā.
Efektivitāte galvenokārt ir atkarīga no tā, kā tiek piekļūts atmiņai. Dažādi adrešu modeļi dod dažādus efektivitātes rezultātus.
Atmiņas laika pieskaitāmās izmaksas
- Aktivizācijas laiks un iepriekšējas uzlādes laiks, mainot jaunas bankas/rindas vai mainot rindas ar vienā bankā. Tātad, ja samazināsiet rindu maiņu, tas var noņemt tRCD un tRP.
- Sūtīt nepārtrauktas rakstīšanas vai lasīšanas komandas - tCCD laika uzturēšana.
- Samaziniet rakstīšanas, lai lasītu un lasīšanas un rakstīšanas komandu pārslēgšanu — rakstīšanas atkopšanas laiks, lai pārietu uz lasīšanas piekļuvi, kopnes apgriezienu laiks, lai pārslēgtos no lasīšanas uz rakstīšanu
- Iestatiet pareizu atsvaidzināšanas intervālu.
- DDR3 SDRAM ir nepieciešami atsvaidzināšanas cikli ar vidējo periodisko intervālu tREFI.
- Iepriekš var izdot (“ievilktas”) ne vairāk kā 8 papildu atsvaidzināšanas komandas. Tas nesamazina atsvaidzināšanas reižu skaitu, taču maksimālais intervāls starp divām apkārtējām Refresh komandām ir ierobežots līdz 9 × tREFI.
- Izmantojiet visas bankas - Vēlams piemērotu adresācijas mehānismu.
- Rinda-banka-kolonna: Darījumam, kas notiek secīgā adrešu telpā, kodols automātiski atver to pašu rindu nākamajā DRAM ierīces bankā, lai turpinātu darījumu, kad tiek sasniegts esošās rindas beigas. Tas ir labi piemērots lietojumprogrammām, kurām nepieciešama lielu datu pakešu pārsūtīšana uz secīgām adrešu vietām.
- Banka-rinda-kolonna: Šķērsojot rindas robežu, pašreizējā rinda tiks aizvērta un tajā pašā krastā tiks atvērta cita rinda. MSB ir bankas adrese, kuru var izmantot, lai pārslēgtos no dažādām bankām. Tas ir piemērots īsākiem, nejaušākiem darījumiem uz vienu atmiņas bloku uz noteiktu laiku un pēc tam pāriet uz citu bloku (banku)
- Pārrāvuma garums
- BL 8 tiek atbalstīts DDR3 uz 7 sērijām. BC4 ir ļoti zema efektivitāte, kas ir mazāka par 50%. Tas ir tāpēc, ka BC4 izpildes laiks ir tāds pats kā BL8. Dati ir tikai maskēti komponenta iekšpusē.
- Gadījumos, kad nevēlaties rakstīt pilnu sēriju, var apsvērt datu masku vai rakstīšanu pēc lasīšanas.
- Iestatiet pareizu ZQ intervālu (tikai DDR3)
Kontrolieris nosūta gan ZQ Short (ZQCS), gan ZQ Long (ZQCL) kalibrēšanas komandas.- Ievērojiet DDR3 Jedec standartu
- ZQ kalibrēšana ir apskatīta JEDEC Spec JESD5.5-79 DDR3 SDRAM standarta sadaļā 3.
- ZQ kalibrēšana regulāri kalibrē pieslēgumu (ODT), lai ņemtu vērā VT atšķirības
- Loģika ir ietverta bank_common.v/vhd
- Parametrs Tzqcs nosaka ātrumu, kādā ZQ kalibrēšanas komanda tiek nosūtīta uz atmiņu
- t ir iespējams atspējot skaitītāju un manuāli nosūtīt, izmantojot app_zq_req, tas ir līdzīgi kā manuāli nosūtot Refresh.
Sīkāku informāciju skatiet (Xilinx Answer 47924).
Kontroliera pieskaitāmās izmaksas
- Periodiski lasījumi – skatiet (Xilinx Answer 43344) sīkākai informācijai.
- Nemainiet lasīšanas periodu
- Izlaidiet periodiskos lasījumus rakstīšanas laikā un norādiet neatbildēto lasījumu skaitu pirms patiesas lasīšanas
- Pārkārtošana – skatiet (Xilinx Answer 34392) sīkākai informācijai.
Lietotāja un AXI interfeisa dizainiem ieteicams to iespējot.- Pārkārtošana ir loģika, kas paredz vairākas komandas un maina lietotāja komandu secību, lai komandas, kas nav atmiņa, neaizņemtu derīgu joslas platumu. Veiktspēja bija saistīta arī ar faktisko satiksmes modeli.
- Pamatojoties uz adreses modeli, pārkārtošana palīdz izlaist iepriekšēju uzlādi un aktivizēt komandas, kā arī liek tRCD un tRP neaizņemt datu joslas platumu.
- Mēģiniet palielināt bankas automātu skaitu.
- Lielākā daļa kontroliera loģikas atrodas banku automātos, un tie atbilst DRAM bankām
- Konkrēta bankas iekārta jebkurā laikā pārvalda vienu DRAM banku.
- Bankas automātu piešķiršana ir dinamiska, tāpēc katrai fiziskajai bankai nav nepieciešams bankas automāts.
- Bankas automātus var konfigurēt, taču tas ir kompromiss starp platību un veiktspēju.
- Pieļaujamais bankas automātu skaits svārstās no 2 līdz 8.
- Pēc noklusējuma 4 bankas automāti ir konfigurēti, izmantojot RTL parametrus.
- Lai mainītu bankas automātus, apsveriet parametru nBANK_MACHS = 8, kas ietverts memc_ui_top Ex.ample 8 bankas automātiem – nBANK_MACHS = 8
Tagad jūs zināt faktorus, kas ietekmē veiktspēju.
Apsveriet iespēju izmantot augšējo lietojumprogrammu, kas nodrošina 512 datu baitus vienā paketē, un tie ir jāsaglabā dažādās atmiņas vietās. Tā kā 512 datu baiti ir vienādi ar 64 DDR3 datu sērijām, atkārtoti palaidiet example dizains ar stimulu file satur 512 ierakstus, 512 nolasījumus un rindu pārslēgšanu katrām 64 rakstīšanas vai nolasīšanas reizēm:
- 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
Simulācijas beigās jūs redzēsiet, ka autobusu izmantošana ir 77 procenti.
11. attēls. Veiktspējas statistika 512 rakstīšanai un 512 nolasīšanai — rindu pārslēgšana 64 rakstīšanas vai lasīšanas reizēm.
Tagad varat izmantot iepriekšējā sadaļā apgūtās zināšanas, lai uzlabotu efektivitāti. Ar view lai izmantotu visas bankas, nevis mainītu rindu, mainiet adreses modeli, lai mainītu banku, kā parādīts tālāk.
Tas ir līdzvērtīgs iestatījumam ROW_BANK_Column atmiņas adreses kartēšanas iestatījumā 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
Simulācijas beigās jūs redzēsiet, ka agrākais 77 procentu autobusu izmantojums tagad ir 87!
Ja jums joprojām ir nepieciešama lielāka efektivitāte, varat izvēlēties lielu pakešu izmēru 1024 vai 2048 baiti vai arī apsvērt manuālu atsvaidzināšanu.
Piezīme: Xilinx neveicina kontroliera atsvaidzināšanas apiešanu, jo mēs neesam pārliecināti, vai varēsit ievērot Jedec automātiskās atsvaidzināšanas laiku, kas ietekmē datu ticamību.
No kontroliera puses varat mainīt nBANK_MACH un redzēt veiktspējas uzlabojumus.
Tomēr tas var ietekmēt jūsu projektēšanas laiku, lūdzu, skatiet (Xilinx Answer 36505) lai iegūtu sīkāku informāciju par nBANK_MACH
Atveriet core_name_mig_sim.v file un mainiet parametrus nBANK_MACHS no 4 uz 8 un atkārtoti palaidiet simulāciju. Lai parametra vērtība stātos spēkā aparatūrā, ir jāatjaunina core_name_mig.v file.
Es izmantoju to pašu modeli, kurā mēs saņēmām 87% kopnes izmantošanas (attēls -12).
Ja nBANK_MACHS ir iestatīts uz 8, efektivitāte tagad ir 90%.
Ņemiet vērā arī to, ka ½ un ¼ kontrolleri to latentuma dēļ negatīvi ietekmē efektivitāti.
Piemēram,ampTā kā mēs varam nosūtīt komandas tikai ik pēc 4 CK cikliem, dažkārt tiek izmantots papildu polsterējums, ievērojot minimālās DRAM laika specifikācijas, kas var samazināt efektivitāti no teorētiskās.
Izmēģiniet dažādus kontrolierus, lai atrastu to, kas atbilst jūsu efektivitātes prasībām.
Atsauces
- Zynq-7000 AP SoC un 7. sērijas FPGA MIS v2.3 [UG586]
- Xilinx MIG risinājumu centrs http://www.xilinx.com/support/answers/34243.html
Pārskatīšanas vēsture
13/03/2015 — sākotnējā izlaišana
Lejupielādēt PDF: Xilinx DDR2 MIG 7 veiktspējas aplēses rokasgrāmata