Xilinx DDR2 MIG 7 Performans Qiymətləndirmə Bələdçisi
Vacib Qeyd: Cavab qeydinin bu endirilə bilən PDF-si onun istifadəliliyini və oxunmasını artırmaq üçün təqdim edilmişdir. Cavab qeydlərinin olduğunu qeyd etmək vacibdir Webyeni məlumatlar əldə olunduqca tez-tez yenilənən əsaslı məzmun. Xilinx Texniki Dəstəyi ilə əlaqə saxlamağınız xatırladılır Websayt və yenidənview (Xilinx Cavab 63234) bu Cavabın ən son versiyası üçün.
Giriş
DDR2 və DDR3 yaddaşlarının arxitekturasına və MIG 7 seriyalı nəzarətçinin dizaynına görə performans düz irəliləyiş deyil.
Bu, müxtəlif Jedec Zamanlama parametrləri və nəzarətçi Arxitekturasının başa düşülməsini tələb edir və siz təxminləri əldə etmək üçün simulyasiyalar aparmalı olacaqsınız.
Performansın müəyyən edilməsi üçün ümumi prinsip eynidir, lakin bu sənəd MIG ex istifadə edərək səmərəliliyi əldə etməyin asan yolunu təqdim ediramptest dəzgahı və stimulun köməyi ilə dizayn edin filebura əlavə olunub.
Effektiv bant genişliyi
DRAM məlumat avtobusu yalnız oxuma və yazma partlayışları zamanı ən yüksək bant genişliyinə nail olur və onun yükü effektiv məlumat sürətini azaldır.
Bir neçə keçmişampüst xərclər bunlardır:
- eyni bankdakı sətirlərə daxil olmaq üçün əvvəlcədən doldurma vaxtı (Giriş ünvanı eyni sətir səhifəsində deyil)
- yazmadan oxumağa girişə keçmək üçün bərpa müddətini yaz
- oxumaqdan yazmağa girişə keçmək üçün avtobusun işləmə müddəti
Effektiv Bandwidth = Peak Bandwidth * Effektivlik
MIG Dizayn Nəsil
MIG IP və keçmiş haqqında addım-addım təfərrüatlar üçün UG586 Fəsil 1-ə baxınampdizayn nəsli.
MIG 7 Series performans simulyasiyasını işə salmazdan əvvəl simulyasiya mühitinizin yaxşı olduğundan əmin olmaq üçün aşağıdakıları edin. MIG ex açınampMüvafiq kitabxanaları dizayn edin və xəritələşdirin, simulyasiyanı işə salın və transkriptdə “testdən keçdi” mesajını görə bildiyinizə əmin olun.
Axını nümayiş etdirmək üçün xc7vx690tffg1761-2 üçün MIG IP yaratdım və keçmişample dizayn.
Qeyd edilməli olan iki şey yaddaş ünvanı bitləri və yaddaş ünvanının xəritələşdirilməsi seçimidir.
məsələnample, yaddaş hissəsi açılan seçimlər altında MT41J128M8XX-125 seçdim.
Şəkil-1-dən seçilmiş yaddaş hissəsi üçün sətir = 14, sütun = 10 və bank = 3, buna görə də app_addr_width = sətir + sütun + bank + dərəcə = 28
Siz BANK_ROW_COLUMN və ya ROW BANK Sütununu seçə bilərsiniz.
Mən standart ünvan xəritələşdirilməsi olan ROW BANK Sütununu tərk etdim.
Example dizayn sintez edilə bilən test dəzgahı ilə simulyasiya
Simulyasiya parametrləri altında QuestaSim/ModelSim Simulator seçin və tərtib edilmiş kitabxanaların yerləşdiyi yerə baxın.
Üçüncü tərəf alətlərinin quraşdırma yoluna işarə etmək, hədəf simulyatoru seçmək və kitabxanaların tərtib edilməsi və xəritələşdirilməsi ilə bağlı təfərrüatlar üçün (UG900) Vivado Design Suite İstifadəçi Təlimatı Məntiq Simulyasiyasına müraciət edə bilərsiniz.
Simulyasiyanı GUI vasitəsilə işə salın (layihə menecerində Simulyasiyanı İşlət sekmesini klikləyin) və transkriptdə “testdən keçdi” mesajını gördüyünüzə əmin olun.
Performans Simulyasiyası RTL modifikasiyaları
- Mənbələr sekmesini sağ klikləyin, “simulyasiya mənbələri əlavə edin və ya yaradın” seçin və mig7_perfsim_traffic_generator.sv ünvanına keçin. file və əlavə etmək üçün bitirmək üzərinə klikləyin.
- Mənbələr sekmesini sağ klikləyin, “simulyasiya mənbələri əlavə edin və ya yaradın” seçin, perfsim_stimulus.txt ünvanına keçin və əlavə etmək üçün bitir düyməsini basın.
- Keçmişi şərh edinampsim_tb_top.v-də le_top nümunəsi file.
- Aşağıdakı RTL sətirlərini sim_tb_top,v-ə əlavə edin
- 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;
- tel [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- tel [2:0] c0_ddr3_app_cmd;
- tel c0_ddr3_app_en;
- tel [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- tel c0_ddr3_app_wdf_end;
- tel [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- tel c0_ddr3_app_wdf_wren;
- tel [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- tel c0_ddr3_app_rd_data_end;
- tel c0_ddr3_app_rd_data_valid;
- tel c0_ddr3_app_rdy;
- tel c0_ddr3_app_wdf_rdy;
- tel c0_data_compare_error;
- tel ui_clk;
- tel ui_clk_sync_rst;
- tel app_sr_req = 0;
- tel app_ref_req = 0;
- tel app_zq_req =0;
- tel c0_app_wdf_mask =0;
FPGA Yaddaş Nəzarətçisinin yaradılması
mig_7series_0_mig u_mig_7series_0_mig (
// Yaddaş interfeysi portları
- .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),
// Proqram interfeysi portları
- .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),
// Sistem Saatı Portları
- .sys_clk_i (sys_clk_i),
// İstinad Saat Portları
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Performans trafik generatorunun yaradılması
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_trafik_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. Yaddaş hissəsi seçiminizə uyğun olaraq APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH və BANK_WIDTH-i dəyişdirin.
Dəyərləri buradan əldə etmək olar _mig.v file. - Sarı ilə vurğulanmış nümunə adı mig_7series_0_mig IP yaradılması zamanı komponent adınıza görə dəyişə bilər, fərqli ad seçdiyinizi yoxlayın və müvafiq olaraq dəyişdirin.
- IP yaradıldıqdan sonra açın _mig.v file və LHS siqnal adlarında hər hansı dəyişikliyi yoxlayın və onları düzəldin.
- app_sr_req, app_ref_req və app_zq_req 0-a başlamalıdır.
- Əvvəlki kimiample_top.v şərh edilib və yenidir files əlavə olunduqda, yəqin ki, “?” görəcəksiniz. yanında
mig_7series_0_mig.v file simulyasiya mənbələri altında.
Düzgün xəritə üçün file, mig_7series_0_mig.v üzərinə sağ klikləyin, “Mənbə əlavə et” seçin,
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
və mig_7series_0_mig_sim.v əlavə edin file. - Əgər "?" əsas üçün files, bütün RTL əlavə edin files clocking, controller, ip_top,phy və UI qovluqlarında.
- RTL dəyişiklikləri və bütün lazımi dəyişikliklər edildikdən sonra files Simulyasiya Mənbələrinizə əlavə olunarsa, İerarxiya Şəkil 5-ə bənzəməlidir.
The fileqırmızı ilə vurğulananlar yeni əlavə edilir və “?” ECC ilə əlaqəli modullarda gözlənilir, çünki seçilmiş yaddaş konfiqurasiyası ECC seçimini deaktiv edib.
Stimul File Təsvir
Hər bir stimul nümunəsi 48 bitdir və format Şəkil 6-1-dən 6-4-ə qədər təsvir edilmişdir.
Ünvan Kodlaması (Ünvan [35:0])
Ünvan Şəkil 7-1-dən Şəkil 7-6-ya uyğun olaraq stimulda kodlanır. Bütün ünvan sahələri onaltılıq formatda daxil edilməlidir. Bütün ünvan sahələri onaltılıq formata daxil olmaq üçün dördə bölünə bilən genişlikdir. Test dəzgahı yalnız ünvan sahəsinin tələb olunan bitlərini Yaddaş Nəzarətçisinə göndərir.
məsələnample, səkkiz bank konfiqurasiyasında yalnız bank Bitləri [2:0] Yaddaş Nəzarətçisinə göndərilir və qalan bitlər nəzərə alınmır. Ünvan sahəsi üçün əlavə bitlər ünvanı onaltılıq formatda daxil etməyiniz üçün verilir.
Daxil edilmiş dəyərin verilmiş konfiqurasiyanın eninə uyğun olduğunu təsdiq etməlisiniz.
- Sütun Ünvanı (Sütun[11:0]) – Stimulda Sütun Ünvanı maksimum 12 bit təmin edilir, lakin siz bunu dizaynınızda təyin edilmiş sütun eni parametrinə əsasən həll etməlisiniz.
- Sıra Ünvanı (Sıra[15:0]) – Stimulda sətir ünvanı maksimum 16 bit təmin edilir, lakin dizaynınızda təyin edilmiş sıra eni parametrinə əsasən bunu həll etməlisiniz.
- Bank ünvanı (Bank[3:0]) – Stimulda bank ünvanı maksimum dörd bitlə təmin edilir, lakin siz bunu dizaynınızda müəyyən edilmiş bank eni parametrinə əsasən həll etməlisiniz.
- Rütbə Ünvanı (Rank[3:0]) – Stimulda dərəcə ünvanı maksimum dörd bitlə təmin edilir, lakin siz bunu dizaynınızda təyin edilmiş rütbə genişliyi parametrinə əsasən həll etməlisiniz.
Ünvan yuxarı səviyyəli MEM_ADDR_ORDER parametrinə əsasən yığılır və istifadəçi interfeysinə göndərilir
Komandanın təkrarı (Command Repeat [7:0])
Komandanın təkrar sayı müvafiq əmrin İstifadəçi İnterfeysində təkrarlanma müddətinin sayıdır. Hər təkrar üçün ünvan 8 artırılır. Maksimum təkrar sayı 128-dir.
Test dəzgahı sütun sərhədini yoxlamır və artımlar zamanı maksimum sütun həddinə çatdıqda ətrafa sarılır.
128 Əmr səhifəni doldurur. 0-dan başqa hər hansı bir sütun ünvanı üçün 128 təkrar sayı sütunun sərhədini keçərək sütun ünvanının başlanğıcına qədər bükülür.
Avtobus İstifadəsi
Avtobusdan istifadə istifadəçi interfeysində Oxunma və Yazmaların ümumi sayı nəzərə alınmaqla hesablanır və aşağıdakı tənlikdən istifadə edilir:
- BL8 dörd yaddaş saatı dövrü alır
- end_of_stimulus bütün əmrlərin yerinə yetirildiyi vaxtdır.
- calib_done kalibrləmənin tamamlandığı vaxtdır.
Example Naxışlar
Bunlar keçmişamples BANK_ROW_COLUMN olaraq təyin edilmiş MEM_ADDR_ORDER-ə əsaslanır.
Tək Oxuma Nümunəsi
00_0_2_000F_00A_1 – Bu nümunə 10-cu sütundan, 15-ci sıradan və ikinci bankdan bir oxunuşdur.Tək Yazma Modeli
00_0_1_0040_010_0 – Bu nümunə 32-ci sütuna, 128-ci sıraya və birinci sıraya tək yazıdır.Eyni ünvana tək yazın və oxuyun
00_0_2_000F_00A_0 – Bu nümunə 10-cu sütuna, 15-ci sıraya və ikinci sıraya tək yazıdır.
00_0_2_000F_00A_1 – Bu nümunə 10-cu sütundan, 15-ci sıradan və ikinci bankdan bir oxunuşdur
Eyni ünvanla birdən çox yazır və oxuyur
0A_0_0_0010_000_0 – Bu, sütunda görünən ünvanı 10-dan 0-ə qədər olan 80 yazıya uyğundur.
0A_0_0_0010_000_1 – Bu, sütunda görünə bilən 10-dan 0-ə qədər ünvanla 80 oxunuşa uyğundur.
Yazı zamanı səhifənin sarılması
0A_0_2_000F_3F8_0 – Bu, bir yazıdan sonra səhifənin başlanğıcına bükülmüş sütun ünvanı ilə 10 yazıya uyğundur.
Performans Trafik Generatorunun simulyasiyası
Bu nöqtədə MIG ex ilə işiniz bitdiampdizayn simulyasiyası. Bu o deməkdir ki, simulyasiya quraşdırmanız hazırdır, siz performans simulyasiyası RTL modifikasiyalarını etmisiniz, yeni simulyasiya iyerarxiyası düzgündür və siz stimullaşdırma nümunələrini başa düşmüsünüz. Perfsim_stimulus.txt-də 16 yazma və oxuma ilə simulyasiyanı bir daha işə salın.
Hamısını işə salın, init_calib_complete siqnalı təsdiqlənənə qədər gözləyin və siz təklif olunan yazı və oxunma sayını görə biləcəksiniz. Bundan sonra simulyasiya dayanacaq.
Simulyasiyadan çıxmağınız xahiş edildikdə, Xeyr seçin və performans statistikasını görə biləcəyiniz transkript pəncərəsinə keçin.
Əgər seçsəniz "simulyasiyadan çıx" performans statistikası a yazılacaq file adlı mig_band_width_output.txt sim_1/behave-də yerləşir qovluq.
Example kataloq yolu: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Niyə faizlə maraqlana bilərsiniztage avtobusdan istifadə 29-dur. Eyni IP parametrləri ilə simulyasiyanı təkrar işə salın, ancaq stimulu dəyişdirin file 256 yazı və 256 oxunuş
ff_0_0_0000_000_0
ff_0_0_0000_000_1
İndi faizi görəcəksiniztage kimi 85, bu o deməkdir ki, DDR3 uzun yazma və oxunuş ardıcıllığı üçün avtobusdan daha yaxşı istifadə təklif edir.
Performansın yaxşılaşdırılmasının ümumi yolları
Səmərəliliyə təsir edən amilləri iki hissəyə bölmək olar:
- Yaddaş Xüsusi
- Nəzarətçi Xüsusi
Şəkil 9 sizə bir başa verirview yaddaşa xas olan terminlərdən.
SRAM və Blok Yaddaşlarından fərqli olaraq DDR2 və ya DDR3 performansı təkcə maksimum məlumat sürəti deyil.
Bu, bir çox vaxt amillərindən asılıdır, o cümlədən:
- tRCD: Sıra Əmrinin Gecikməsi (və ya gecikmə ilə).
- tCAS(CL): Sütun ünvanı strobe gecikməsi.
- tRP: Sıra əvvəlcədən doldurma gecikməsi.
- TRAS: Sıra Aktiv Vaxt (əvvəlcədən dəyişdirmək üçün aktivləşdirin).
- tRC: Sıra dövrü vaxtı. tRC = tRAS + tRP
- TRAC: Radom giriş gecikməsi. tRAC = tRCD + tCAS
- tCWL: Cas yazma gecikməsi.
- tZQ: ZQ kalibrləmə vaxtı.
- tRFC: Sətir Yeniləmə Döngüsü Vaxtı
- tWTR: Oxu gecikməsinə yazın. Oxu əmri vaxtına son yazma əməliyyatı.
- tWR: Bərpa vaxtını yazın. Öncədən yükləmə müddətinə son yazan əməliyyat
Bütün sadalanan parametrlərin vaxtı istifadə olunan yaddaş növündən və yaddaş hissəsinin sürət dərəcəsindən asılıdır.
Təriflər və vaxt spesifikasiyası haqqında daha ətraflı məlumatı DDR2 DDR3 JEDEC-də və ya hər hansı yaddaş cihazının məlumat cədvəlində tapa bilərsiniz.
Səmərəlilik əsasən yaddaşa necə daxil olunduğundan asılıdır. Fərqli ünvan nümunələri fərqli səmərəlilik nəticələri verir.
Yaddaş vaxtı əlavə xərcləri
- Eyni bankda yeni banklara/sətirlərə keçərkən və ya cərgələri dəyişdirərkən aktivləşdirmə vaxtı və Əvvəlcədən doldurma vaxtı.- Beləliklə, cərgə dəyişikliyini azaltsanız, bu, tRCD və tRP-ni silə bilər.
- Davamlı yazma və ya oxu əmrlərini göndərin - tCCD vaxtının saxlanması.
- Oxumaq üçün yazmağı minimuma endirin və yazmaq üçün oxuyun əmr dəyişikliyi - Oxu girişlərinə dəyişmək üçün bərpa vaxtını yazın, oxumaqdan yazmağa dəyişmək üçün avtobusun işləmə müddətini yazın
- Düzgün yeniləmə intervalını təyin edin.
- DDR3 SDRAM orta dövri tREFI intervalında Yeniləmə dövrlərini tələb edir.
- Maksimum 8 əlavə Yeniləmə əmri əvvəlcədən verilə bilər ("çəkilən"). Bu, yeniləmələrin sayını azaltmır, lakin iki ətrafdakı Yeniləmə əmrləri arasındakı maksimum interval 9 × tREFI ilə məhdudlaşır.
- Bütün banklardan istifadə edin - Uyğun ünvanlama mexanizminə üstünlük verilir.
- Sıra Bank-Sütun: Ardıcıl ünvan məkanı üzərində baş verən əməliyyat üçün nüvə mövcud sıranın sonuna çatdıqda əməliyyatı davam etdirmək üçün avtomatik olaraq DRAM cihazının növbəti bankında eyni sıranı açır. Ardıcıl ünvan yerlərinə böyük məlumat paketlərinin partlamasını tələb edən proqramlar üçün yaxşı uyğundur.
- Sıra-Sütun: Sıra sərhədini keçərkən cari sıra bağlanacaq və eyni bankda başqa cərgə açılacaq. MSB müxtəlif banklardan keçid üçün istifadə edilə bilən bir bank ünvanıdır. Müəyyən müddət ərzində bir yaddaş blokuna daha qısa, daha təsadüfi əməliyyatlar və sonra başqa bloka (bank) keçid üçün uyğundur.
- Partlayış Uzunluğu
- BL 8 3 seriyasında DDR7 üçün dəstəklənir. BC4 50%-dən az olan çox aşağı səmərəliliyə malikdir. Bunun səbəbi BC4-ün icra müddətinin BL8 ilə eyni olmasıdır. Məlumat sadəcə komponentin içərisində maskalanır.
- Tam burst yazmaq istəmədiyiniz hallarda ya məlumat maskası, ya da oxuduqdan sonra yazmaq nəzərdən keçirilə bilər.
- Düzgün ZQ intervalını təyin edin (Yalnız DDR3)
Nəzarətçi həm ZQ Qısa (ZQCS) həm də ZQ Long (ZQCL) Kalibrləmə əmrlərini göndərir.- DDR3 Jedec Standartına riayət edin
- ZQ Kalibrasiyası JEDEC Spec JESD5.5-79 DDR3 SDRAM Standartının 3-ci bölməsində müzakirə olunur.
- ZQ Calibration, VT-də dəyişiklikləri nəzərə almaq üçün müntəzəm fasilələrlə On Die Termination (ODT) kalibrləyir.
- Məntiq bank_common.v/vhd-də var
- Parametr Tzqcs yaddaşa ZQ Kalibrləmə əmrinin göndərilmə sürətini müəyyən edir
- t sayğacı söndürmək və app_zq_req istifadə edərək əl ilə göndərmək mümkündür, bu, Yeniləməni əl ilə göndərməyə bənzəyir.
Ətraflı məlumat üçün (Xilinx Cavab 47924) baxın.
Nəzarətçinin qaimə xərcləri
- Dövri Oxumalar – Baxın (Xilinx Cavab 43344) ətraflı məlumat üçün.
- Oxuma müddətini dəyişməyin
- Yazılar zamanı dövri oxunuşları keçin və əsl oxunmazdan əvvəl buraxılmış oxunuşların sayını verin
- Yenidən sıralama – Baxın (Xilinx Cavab 34392) ətraflı məlumat üçün.
İstifadəçi və AXI İnterfeys dizaynları üçün bunun aktiv olmasına üstünlük verilir.- Yenidən sıralama qabaqcadan bir neçə əmrə baxan və yaddaşdan kənar əmrlərin etibarlı bant genişliyini tutmaması üçün istifadəçi əmrlərinin sırasını dəyişdirən məntiqdir. Performans həmçinin faktiki trafik modelinə aiddir.
- Ünvan nümunəsinə əsaslanaraq, yenidən sıralama əvvəlcədən doldurmanı atlamağa və əmrləri aktivləşdirməyə kömək edir və tRCD və tRP-nin məlumat diapazonunun genişliyini tutmamasını təmin edir.
- Bank Maşınlarının sayını artırmağa çalışın.
- Nəzarətçinin məntiqinin çox hissəsi bank maşınlarında yerləşir və onlar DRAM banklarına uyğun gəlir
- Verilmiş bank maşını istənilən vaxt bir DRAM bankını idarə edir.
- Bank maşınının təyinatı dinamikdir, ona görə də hər bir fiziki bank üçün bank maşınının olması lazım deyil.
- Bank maşınları konfiqurasiya edilə bilər, lakin bu, sahə və performans arasında bir uzlaşmadır.
- Bank maşınlarının icazə verilən sayı 2-8 arasında dəyişir.
- Varsayılan olaraq, 4 Bank Maşınları RTL parametrləri vasitəsilə konfiqurasiya edilir.
- Bank Maşınlarını dəyişdirmək üçün memc_ui_top Ex-də olan nBANK_MACHS = 8 parametrini nəzərdən keçirin.amp8 Bank Maşınları üçün le – nBANK_MACHS = 8
İndi performansa təsir edən amillərdən xəbərdarsınız.
Sizə hər paketə 512 data bayt verən yuxarı axını proqramı nəzərdən keçirin və siz onları müxtəlif yaddaş yerlərində saxlamalısınız. 512 məlumat baytı 64 DDR3 məlumat partlayışına bərabər olduğundan, keçmişi yenidən işə salınampbir stimul ilə dizayn file 512 yazı, 512 oxunuş və hər 64 yazı və ya oxunuş üçün sıra keçidi ehtiva edir:
- 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
Simulyasiyanın sonunda avtobusdan istifadənin 77 faiz olduğunu görəcəksiniz.
Şəkil 11: 512 yazma və 512 oxunuş üçün Performans Statistikası – 64 yazma və ya oxuma üçün sıra keçidi.
İndi səmərəliliyi artırmaq üçün əvvəlki bölmədə öyrənilən bilikləri tətbiq edə bilərsiniz. İlə view sıra dəyişmək əvəzinə bütün banklardan istifadə etmək üçün aşağıda göstərildiyi kimi bankı dəyişmək üçün ünvan modelini dəyişdirin.
Bu, MIG GUI-də yaddaş ünvanının xəritələşdirilməsi parametrində ROW_BANK_Column təyin edilməsinə bərabərdir.
- 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
Simulyasiyanın sonunda görəcəksiniz ki, əvvəlki 77 Faiz Avtobus İstifadəsi indi 87-dir!
Əgər hələ də daha yüksək effektivliyə ehtiyacınız varsa, 1024 və ya 2048 baytlıq böyük paket ölçülərinə keçə və ya əl ilə yeniləməni nəzərdən keçirə bilərsiniz.
Qeyd: Xilinx, məlumatların etibarlılığına təsir edən Jedec avtomatik yeniləmə vaxtı ilə tanış olub-olmayacağınıza əmin olmadığımız üçün nəzarətçinin yenilənməsindən yan keçməyi təşviq etmir.
Nəzarətçi tərəfdən siz nBANk_MACH-i dəyişə və performansın yaxşılaşmasına baxa bilərsiniz.
Bununla belə, bu, dizayn vaxtınıza təsir edə bilər, lütfən baxın (Xilinx Cavab 36505) nBANk_MACH haqqında ətraflı məlumat üçün
core_name_mig_sim.v açın file və nBANK_MACHS parametrlərini 4-dən 8-ə dəyişdirin və simulyasiyanı yenidən işə salın. Parametr dəyərinin aparatda qüvvəyə minməsi üçün siz core_name_mig.v-ni yeniləməlisiniz file.
87% avtobusdan istifadə etdiyimiz eyni nümunədən istifadə etdim (şəkil -12).
nBANK_MACHS 8-ə təyin edildikdə, səmərəlilik indi 90% təşkil edir.
Həmçinin qeyd edin ki, ½ və ¼ nəzarətçilər gecikmələri səbəbindən səmərəliliyə mənfi təsir göstərir.
məsələnample, biz yalnız hər 4 CK dövründən bir əmrlər göndərə bildiyimiz üçün bəzən minimum DRAM zamanlama xüsusiyyətlərinə riayət edərkən əlavə doldurma olur ki, bu da nəzəridən səmərəliliyi azalda bilər.
Səmərəlilik tələbinizə uyğun olanı tapmaq üçün müxtəlif nəzarətçiləri sınayın.
İstinadlar
- Zynq-7000 AP SoC və 7 Seriya FPGA MIS v2.3 [UG586]
- Xilinx MIG Həll Mərkəzi http://www.xilinx.com/support/answers/34243.html
Təftiş Tarixçəsi
13/03/2015 – İlkin buraxılış
PDF yükləyin: Xilinx DDR2 MIG 7 Performans Qiymətləndirmə Bələdçisi