PCI Express yuvası: PCIe interfeysi nədir? PCI Express interfeysinin müxtəlif iş rejimlərində NVMe diskləri: verilənlərin ötürülməsi tapşırıqlarında interfeys miqyasının praktiki tədqiqi PCI Express x2, x4, x8, x12, x16 və x istifadə edən qurğuların növləri.

Kompüterlərin çoxdan avtobusu var PCI Express v3.0 x16; Müasir video adapterlərin sınaqları bu avtobusda təxminən 12 GB/s sürəti göstərir. Mən FPGA-da eyni sürətə malik modul etmək istərdim. Bununla belə, mövcud FPGA-larda yalnız PCIe v3.0 x8 üçün HARDWARE nəzarətçi var; SOFT IP Core tətbiqləri mövcuddur, lakin onlar çox bahalıdır. Ancaq bir çıxış yolu var.

FPGA Virtex 7 VX330T iki PCI Express v3.0 x8 nəzarətçisinə malikdir; Açıq həll yolu, yan tərəfdə x16 konnektoru və FPGA-ya qoşulmuş iki x8 avtobusu olan bir keçid yerləşdirməkdir. Bu belə bir quruluşla nəticələnir:


HighTechGlobal-dan HTG-728 modulu bu sxemdən istifadə etməklə qurulmuşdur.

Alpha-Data şirkəti fərqli bir yol tutur. ADM-PCIE-KU3-X16 modulunda keçid yoxdur. Lakin x16 konnektoru iki x8 avtobusu çıxarır. FPGA iki müstəqil nəzarətçi həyata keçirə bilər. Bunun üçün FPGA-da iki sıfırlama siqnalı və iki istinad tezliyi var. Lakin bu modul yalnız iki x8 konnektorunun x16 konnektoruna çıxış olduğu xüsusi anakartlarda işləyəcək. Mən belə anakartları görməmişəm, amma görünür, onlar mövcuddur.

Şirkətimiz daxili keçid ilə FMC122P modulunu tətbiq etmək qərarına gəldi. Əsas vəzifə maksimum mübadilə sürətini yoxlamaq idi. Daha az vacib olmayan başqa bir vəzifə, mövcud olanlarla uyğunluğa nail olmaqdır proqram təminatı və FPGA komponentləri.

Virtex 7 üçün PCI Express nəzarətçi Virtex 6, Kintex 7 üçün nəzarətçilərdən köklü şəkildə fərqlənir. Daha rahat oldu, lakin fərqlidir. Şəkil göstərir struktur sxemi nəzarətçi:

Nəzarətçinin hər birində iki AXI_Stream avtobusu olan Completer və Requester adlı iki hissə var. PCI Express avtobusundan sorğular Completer node vasitəsilə gəlir. Bu sorğular m_axis_cq avtobusuna göndərilir. s_axis_cc avtobusu İstifadəçi komponentindən cavab almalıdır. Adətən bu, FPGA-nın daxili registrlərinə giriş qovşağıdır.

s_axis_rq avtobusundakı Requester node vasitəsilə DMA nəzarətçisi PCI Express avtobusuna sorğular göndərir. Cavablar m_axis_rc avtobusu vasitəsilə gəlir.

Avtobus simulyasiyası

IP Core onun necə işlədiyini başa düşməyə kömək edə biləcək nümunə layihə daxildir. Layihə Verilogda yazılmışdır və təəssüf ki, o, həm də inkişaf etməmək üçün nümunə ola bilər. Nümunə blok diaqramına baxaq.

Bu diaqram IP Core təsvirindən götürülmüşdür. İlk baxışdan hər şey qaydasındadır - bu gözəl şəkildir, siz onu menecerlərə, layihə menecerlərinə və müştərilərə göstərə bilərsiniz. Problemlər icradan başlayır. Bu sistemdə Verilog imkanlarının mütləq bir yoldan istifadə edərək obyektlərə daxil olmaq üçün istifadə edildiyi bir çox yer var. Fikrimcə, bu sistemdə bunun əsaslandırıldığı yeganə yer PIPE səviyyəsində modelləşdirmə üçün GTP qovşaqlarından yan keçməkdir. Lakin mütləq yollardan istifadə edərək userapp_tx və userapp_rx arasında əlaqə yaratmağa qətiyyən ehtiyac yoxdur.

Layihədə bu belə görünür:

pci_exp_usrapp_tx komponentinin funksiyası var TSK_SİSTEMİ_İSTƏNİLMƏSİ pci_exp_userapp_cfg-dən funksiyanı mütləq yol vasitəsilə çağırır:

board.RP.cfg_usrapp.TSK_WRITE_CFG_DW(bundan sonra tapşırıq vasitəsilə Verilogda təsvir olunan funksiyanı çağırıram). Biz pci_exp_userapp_cfg komponentinə baxırıq, gördüyümüz şey: cfg_ds_bus_number<= board.RP.tx_usrapp.RP_BUS_DEV_FNS;

Gəlin pci_exp_userapp_rc komponentinə baxaq, orada da eyni şey var: board.RP.com_usrapp.TSK_PARSE_FRAME(`RX_LOG);

Bu təkcə stilistik cəhətdən düzgün deyil. Bu, modeli layihənizdə tətbiq etməyinizə mane olur. Birincisi, öz layihənizdə yuxarı səviyyəli faylın board adlandırılması və eyni iyerarxiyanın orada qalması heç də lazım deyil. İkincisi, iki komponent ola bilər. Hər iki hal başımıza gəldi. Verilog ilə işləməli oldum, baxmayaraq ki, heç xoşuma gəlmir. Göründüyü kimi, bir az yenidən tənzimləmə ilə bütün root_port komponenti tamamilə iyerarxik formaya gətirilə bilər. Nəticədə komponent faylları bunlar idi:

  • xilinx_pcie_3_0_7vx_rp_m2.v
  • pci_exp_usrapp_tx_m2.v
  • pci_exp_usrapp_cfg_m2.v
Və funksiyaları olan fayllar:
  • task_bar.vh
  • task_rd.vh
  • task_s1.vh
  • task_test.vh
Bu, modelə iki root_port komponentini daxil etməyə imkan verdi. VHDL komponentində iki root_portu aktivləşdirmək belə görünür:

kök_port

gen_rp0: if(is_rp0=1) rp0 yaradır: xilinx_pcie_3_0_7vx_rp_m2 ümumi xəritə(INST_NUM => 0) port xəritəsi(sys_clk_p => sys_clk_p, sys_clk_n => sys_clk_n, sys_nst =-sys_nrsd w => cmd_rw, -- İmza oxumaq-yazmaq: 0 - oxumaq, 1 - yaz cmd_req => cmd_req, -- 1 - Əməliyyat sorğusu cmd_ack => cmd_ack, -- 1 - əməliyyatın təsdiqi cmd_adr => cmd_adr, -- oxumaq-yazmaq əmri üçün ünvan cmd_data_i => cmd_data_i , -- cmd_data_o yazmaq üçün verilənlər => cmd_data_o, -- verilənləri oxumaq cmd_init_done => cmd_init_done_0 -- 1 - başlatma tamamlandı); son yaratmaq; gen_rp1: if(is_rp1=1) rp1 yaradır: xilinx_pcie_3_0_7vx_rp_m2 ümumi xəritə(INST_NUM => 1) port xəritəsi(sys_clk_p => sys_clk_p, sys_clk_n => sys_clk_n, sys_nst => sys_clk_n, sys_nst d_init_done_1 -- 1 - başlatma tamamlandı) ; son yaratmaq;


rp0 komponenti vasitəsilə 32 bitlik sözləri yazmaq və ya oxumaq üçün girişlər edilir. rp1 komponenti yalnız işə salmağı həyata keçirir.

Təəssüf ki, simulyasiya PIPE səviyyəsində həyata keçirilsə belə, bunun simulyasiyası çox uzun vaxt tələb edir. Tipik bir modelləşdirmə sessiyası təxminən on dəqiqədir (və ya daha çox, xatırlamıram). üçün əməliyyat işi Bu, DMA kanalı ilə işləmir. Bu vəziyyətdə, PCI Express kontrollerini modeldən çıxarmaq üçün tamamilə təbii bir qərar verildi. Üstəlik, artıq öyrənilib.

Nəzarətçinin blok diaqramı

Ümumiləşdirilmiş nəzarətçi diaqramı şəkildə göstərilmişdir.

İki eyni core256_top_engine komponenti iki nəzarətçi EP0, EP1-ə girişi təmin edir. core256_top_engine bunun üçün PCI Express tərəfdən registrlərə girişi təmin edir, yalnız EP0 və reg_access komponenti istifadə olunur; dma_access komponenti nəzarətçini idarə etmək üçün əsas məntiqi ehtiva edir. Onun blok diaqramı aşağıdakı şəkildə göstərilmişdir:

Hər şey ctrl_main node tərəfindən idarə olunur. ctrl_dsc qovşağında deskriptorlar bloku var. ctrl_adr qovşağı deskriptoru dörd kilobaytlıq blok ünvanlarının ardıcıllığına çevirir. Ünvanlar core256_top_engine qovşaqları ilə mübadilə üçün cmd0 və cmd1 qovşaqlarına göndərilir;

FPGA-nın istifadəçi tərəfində iki 512 bitlik geniş avtobus var. Lakin bu avtobuslar haqqında məlumatlar 4 kilobaytlıq bloklarda və ciddi şəkildə növbə ilə ötürülməlidir. Bu, ram0, ram1 yaddaş qovşaqlarının ardıcıl doldurulması üçün tələb olunur. Hər yaddaş qovşağında 4 kilobaytlıq dörd blok var. Bu yaddaş qovşaqlarında orijinal 512 bitlik geniş axın iki 256 bitlik axına bölünür. Gələcəkdə iki 256 bitlik axın tamamilə müstəqildir. Yayım datası yalnız burada tapılacaq təsadüfi giriş yaddaşı kompüter, onlar qonşu ünvanlarda bitəcəklər.

dma_access modelləşdirilməsi

dma_access node nəzarətçinin ən mürəkkəb hissəsidir. Buna görə, xüsusilə diqqətlə modelləşdirilməlidir. Yuxarıda yazdığım kimi, iki PCI Express nüvəsini simulyasiya etmək çox uzun vaxt aparır. Sürətləndirmək üçün core256_top_engine əvəzinə birləşdirən model hazırlanmışdır. dma_access üçün eyni interfeys qaldı və modelləşdirmə sürəti böyüklük sırası ilə artdı. Bu layihə, PROTEQ layihəsi kimi, tcl faylı vasitəsilə testlərin avtomatik işə salınmasından istifadə edir.

Budur tcl faylının bir parçası:

Run_test "stend_m4" "test_read_8kb " 6 "50 us" run_test "stend_m4" "test_read_16kb " 7 "100 us" run_test "stend_m4" "test_read_49blk " 8 "150 us" run_test "stend_m4" run_test "stend_m4" "_test_read15"x stend_m4" "test_read_128x1_cont " 12 "200 us" run_test "stend_m4" "test_read_16kbx2" 13 "150 us" run_test "stend_m4" "test_read_step " 14 "200 us" run_test "test_kbx2" stend_1g" us" "stand_m4" " test_read_64x1" 16" 100 us"
Bu avtomatik olaraq doqquz testi həyata keçirir. Nümunə olaraq, bir test üçün kod budur:

test_read_4kb

prosedur test_read_4kb (siqnal cmd: out bh_cmd; --! əmr siqnalı ret: bh_ret-də --! cavab) dəyişən adr: std_logic_vector(31-dən 0-a qədər); dəyişən verilənlər: std_logic_vector(31-dən 0-a qədər); dəyişən str: xətt; dəyişən L: xətt; dəyişən xətası: integer:=0; dəyişən dma_complete: tam ədəd; dəyişən data_expect: std_logic_vector(31-dən 0-a qədər); begin write(str, string"("TEST_READ_4KB")); writeline(log, str); ---- Deskriptorlar blokunun formalaşdırılması --- for ii 0-dan 127-yə qədər dövrədə adr:= x"00100000"; adr: =adr + ii*4; int_mem_write(cmd, ret, adr, x"00000000"); ret, x"00100080", x"00008000"); -- int_mem_write(cmd, ret, x"00000100" x"001001F8", x"00000000"_,d_m); "001001FC", x"762C4953"); ---- Proqramlaşdırma DMA kanalı ---- block_write(cmd, ret, 4, 8, x"00000025"); -- DMA_MODE block_write(cmd, ret, 4, 9, x"00000010"); -- DMA_CTRL - FIFO blok_yazmasını RESET (cmd, ret, 4, 20, x"00100000"); -- PCI_ADRL block_write(cmd, ret, 4, 21, x"00100000"); -- PCI_ADRH block_write(cmd, ret, 4, 23, x"0000A400"); -- LOCAL_ADR block_write(cmd, ret, 4, 9, x"00000001"); -- DMA_CTRL - START 20 bizi gözləyin; block_read(cmd, ret, 4, 16, data); -- STATUS write(str, string"("STATUS: ")); hwrite(str, data(15 down to 0)); if(data(8)="1") then write(str, string"(" - Təsvirçi düzgündür")); else write(str, string"(" - Okuma təsviri xətası"); error:= error + 1; end if; writeline(log, str); if(error=0) onda ---- DMA-nın tamamlanmasını gözləyirik -- -- dma_complete:= 0; ii üçün 0-dan 100-ə qədər dövrə blok_oxu(cmd, ret, 4, 16, data) -- STATUS write(str, string"("STATUS: ")); hwrite(küç, data(15-dən 0-a qədər); if(data(5)="1") sonra yazın(str, string"(" - DMA tamamlandı ")); dma_complete:= 1; end if; writeline(log, str); if(dma_complete=1) sonra çıxın ; end if; writeline (log, str=0) sonra write(str, string"("Xəta - DMA tamamlanmadı")); yazı xətti(log, küç); xəta:=xəta+1; bitərsə; bitərsə; ii üçün 0-dan 3-ə qədər dövrə blok_oxu (cmd, ret, 4, 16, məlumat); -- STATUS write(str, string"("STATUS: ")); hwrite(str, data(15 down to 0)); writeline(log, str); 500ns gözləyin; end loop; block_write(cmd, ret, 4, 9, x"00000000"); -- DMA_CTRL - STOP yazmaq(str, string"("Oxu:")); yazı xətti(log, küç); data_expect:= x"A0000000"; for ii in 0 - 1023 loop adr:= x"00800000"; adr:=adr + ii*4; int_mem_read(cmd, ret, adr, data); if(data=data_expect) then fprint(çıxış, L, "%r: %r - Ok\n", fo(ii), fo(data)); fprint(log, L, "%r: %r - Ok\n", fo(ii), fo(data)); else fprint(çıxış, L, "%r: %r Gözlənilən: %r - Xəta \n", fo(ii), fo(data), fo(data_expect)); fprint(log, L, "%r: %r Gözlənilir: %r - Xəta \n", fo(ii), fo(data), fo(data_expect)); xəta:=xəta+1; bitərsə; data_expect:= data_expect + 1; son döngə; -- block_write(cmd, ret, 4, 9, x"00000010"); -- DMA_CTRL - FIFO-nu RESET -- block_write(cmd, ret, 4, 9, x"00000000"); -- DMA_CTRL -- block_write(cmd, ret, 4, 9, x"00000001"); -- DMA_CTRL - START fprint(çıxış, L, "\nTest vaxtı: %r \n", fo(indi)); fprint(log, L, "\nTest vaxtı: %r \n", fo(indi)); -- fayla çıxış -- writeline(log, str); if(error=0) then write(str, string"("TEST uğurla başa çatdı")); cnt_ok:= cnt_ok + 1; else write(str, string"("TEST ERR ilə tamamlandı")); cnt_error:= cnt_error + 1; bitərsə; yazı xətti(log, küç); yazı xətti(log, küç); -- konsola çıxış -- writeline(çıxış, str); if(error=0) then write(str, string"("TEST uğurla başa çatdı")); else write(str, string"("TEST ERR ilə tamamlandı")); bitərsə; yazma xətti (çıxış, küç); yazma xətti (çıxış, küç); test_read_4kb bitir


int_mem_write əmrləri kompüterin HOST RAM-a yazır. Bu testdə orada deskriptorlar bloku yazılır. Block_write və block_read əmrləri nəzarətçinin DMA registrlərinə girişi təmin edir. Nəzarətçi proqramlaşdırılır, işə salınır və mübadilə tamamlanır. Bundan sonra int_mem_read əmrləri alınan məlumatları oxuyur və yoxlayır. Bu testin kodu opencores.org saytında açıq mənbə layihəsi kimi dərc etdiyim PCIe_DS_DMA nəzarətçisinin testi ilə demək olar ki, tamamilə eynidir; Orijinalla müqayisədə, alınan məlumatların yoxlanışı əlavə edilmişdir.

Nəzarətçinin məntiqi təşkili

Registr səviyyəsində nəzarətçi FPGA Virtex 4, Virtex 5, Virtex 6, Kintex 7 üçün əvvəlki kontrollerlərimizi tamamilə təkrarlayır; Təşkilat PCIe_DS_DMA layihəsində tapıla bilər.
Bütün nəzarətçilərin xüsusiyyəti tək deskriptorların deskriptorlar blokunda birləşməsidir. Bu, parçalanmış yaddaşdan istifadə edərkən sürətdə dramatik artım verir.

Noutbuklara qoşulma

Bu nəzarətçini noutbuklarımıza qoşmaq bizim üçün vacibdir. Əvvəlki məqalədə tetradların nə olduğunu yazmışdım: “ADM interfeysi: tetrad nədir”. 512 bitlik avtobusla işləmək yanaşmada dəyişiklik tələb edirdi. Notebooku birləşdirmək üçün əlavə repaklayıcı qurğudan istifadə etməli olduq. Blok diaqram şəkildədir.

Repacker iki problemi həll edir:

  • çip boyunca avtobus marşrutu, bunun üçün boru kəmərinin əlavə mərhələlərinin sayını təyin edə bilərsiniz
  • 64 və 128 bitlik avtobuslarla noutbuklara qoşulma
Yaddaş istifadəsi

Nəzarətçinin hazırlanması və tetradlara qoşulmanın son məqsədi ADC-dən kompüterə davamlı məlumat axını almaqdır. Və burada biz PCI Express avtobusunun sabit sürət təmin etməməsi ilə qarşılaşırıq. Avtobusda gecikmələr ola bilər. Bu, xüsusilə yüksək valyuta məzənnələrində nəzərə çarpır. Gecikmələr digər cihazların işləməsi səbəbindən baş verir. Gecikmənin miqdarı fərqli ola bilər, 5 - 10 μs və ya daha çox ola bilər. 11 GB/s sürətlə 10 μs gecikmə 110 kilobaytlıq yaddaş blokuna uyğun gəlir. üçün daxili yaddaş hətta müasir FPGA-lar çoxdur. Ancaq gecikmə daha uzun ola bilər. Əgər məlumat axını dayandırıla bilmirsə və bu, ADC-lərdən istifadə edildikdə belədirsə, onda yeganə seçim buferdir. xarici yaddaş. Üstəlik, yaddaş 22 GB/s sürətlə işləyə bilməlidir. Modulda quraşdırılmış iki SODIMM DDR3-1600 var. Yaddaş 800 MHz tezliyində işləyir. Bu, 8400 MB/s davamlı məlumat axınına uyğundur. Bu rəqəm eksperimentlə təsdiqlənib. Qeyd etmək istərdim ki, 8400 MB/s sürət iki 1800 MHz ADC quraşdırılmış ən sürətli submodulumuzun məlumat çıxış sürətini üstələyir.

İzləmə

Ekran görüntüsü PlanAhead proqramında izləmənin nəticəsini göstərir:

Şəkildə iki PCI Express nəzarətçisi (sarı və yaşıl rənglərlə vurğulanır) və iki yaddaş nəzarətçisi (PCI Express-in yanında) göstərilir.

Məlum olub ki, belə bir layihə Vivado üçün çox çətindir və onun öhdəsindən çox zəif gəlir. Vivado-da layihə zəif inkişaf etdirilir və çox vaxt sadəcə işləmir. ISE daha stabil nəticələr göstərir. PCI Express qovşaqları Xilinx tövsiyələrinə uyğun olaraq yönləndirildi, lakin onların çip üzərində aralıq olduğu ortaya çıxdı. Və bu, artıq qalan çox gigabitlik xətlərin paylaşılmasında problem yaradır.

nəticələr

Modulun işləməsi bir neçə kompüterdə sınaqdan keçirilmişdir. Nəticələr olduqca maraqlıdır.

Intel Core i7 4820K P9X79WS DDR3-1866 11140 MB/s
Intel Core i7 5820K X99-A DDR4-2400 11128 MB/s
Intel Core i7 3820K P9X79 DDR3-1600 11120 MByte/s

Bu, yoxlama olmadan məlumatların daxil olma sürətidir. Məlumat davamlı olaraq sistem yaddaşı sahəsində ayrılmış 1 GB-lıq buferə daxil edilir, yəni fiziki ünvanlar arasında davamlıdır. Orta giriş sürəti ən azı 1 dəqiqəlik intervalla ölçülür.

DDR3-1600 yaddaşı olan kompüterdə yoxlama aktiv olduqda sürət 8500 MB/s-ə düşür.

DDR3-1866 ilə kompüterdə sürət bir modul və yoxlama aktiv olduqda azalmır.

Test edilmədən DDR3-1866 ilə kompüterdə iki FMC122P modulu da hər modul üçün təxminən 11000 MB/s maksimum sürət göstərir. Lakin yoxlama aktiv olduqda sürət aşağı düşür.

Bu ölçmələrlə 1 MB 1024 kbayt, 1 kbayt isə 1024 bayt olduğu qəbul edilir.

Qeyd edim ki, bu əsərdə böyük bir kollektivin əməyinin nəticəsini təqdim edirəm. Bu layihədə əla iş görən Dmitri Avdeyevə xüsusi təşəkkürlər.

P.S.İnkişaf davam edərkən, Virtex 7 köhnəldi. Kintex Ultrascale istifadə etmək artıq daha rahatdır. Və Kintex Ultrascale+ artıq PCI Express v3.0 x16 HARD blokuna malikdir - ona görə də belə bölgü artıq lazım deyil.

P.S.S. Ancaq Kintex Ultrascale+ da PCI Express v4.0 x8 HARD blokuna malikdir - bəlkə ayırma hələ də faydalı olacaq?

PCI Express standartı əsaslardan biridir müasir kompüterlər. PCI Express slotları uzun müddətdir ki, istənilən masaüstü kompüterin anakartında güclü yer tutur və PCI kimi digər standartları sıxışdırıb. Ancaq hətta PCI Express standartının da bir-birindən fərqlənən öz varyasyonları və əlaqə nümunələri var. Yeni anakartlarda, təxminən 2010-cu ildən başlayaraq, bir ana platada portların tam səpələnməsini görə bilərsiniz. PCIE və ya PCI-E, sətirlərin sayına görə fərqlənə bilər: bir x1 və ya bir neçə x2, x4, x8, x12, x16 və x32.

Beləliklə, sadə görünən PCI Express periferik portu arasında niyə belə qarışıqlığın olduğunu öyrənək. Və hər bir PCI Express x2, x4, x8, x12, x16 və x32 standartının məqsədi nədir?

PCI Express avtobusu nədir?

Hələ 2000-ci illərdə, köhnəlmiş PCI (genişlənmiş - periferik komponentlərin qarşılıqlı əlaqəsi) standartından PCI Express-ə keçid baş verəndə, sonuncunun bir böyük üstünlüyü var idi: əvəzinə serial avtobus PCI olan , bir nöqtədən nöqtəyə giriş avtobusundan istifadə etdi. Bu o demək idi ki, hər bir fərdi PCI portu və orada quraşdırılmış kartlar, PCI bağlantısında olduğu kimi, bir-birinə müdaxilə etmədən maksimum ötürmə qabiliyyətindən tam istifadə edə bilər. O günlərdə kəmiyyət periferik cihazlar Genişləndirmə kartlarına daxil edilmiş çoxlu kartlar var idi. Şəbəkə kartları, audio kartlar, TV tünerləri və s. - bütün bunlar kifayət qədər miqdarda PC resursları tələb edirdi. Lakin paralel qoşulmuş bir çox qurğu ilə məlumatların ötürülməsi üçün ümumi şindən istifadə edən PCI standartından fərqli olaraq, PCI Express, ümumiyyətlə nəzərə alındıqda, ulduz topologiyası olan paket şəbəkəsidir.


PCI Express x16, PCI Express x1 və PCI bir lövhədə

Sadə dillə desək, masaüstü kompüterinizi bir və ya iki satış işçisi olan kiçik bir mağaza kimi təsəvvür edin. Köhnə standart PCI bir ərzaq mağazası kimi idi: hamı xidmət üçün eyni sırada gözləyirdi, piştaxta arxasında bir satıcının məhdudlaşdırılması ilə xidmət sürəti ilə bağlı problemlər var idi. PCI-E daha çox hipermarkete bənzəyir: hər bir müştəri ərzaq məhsulları üçün öz fərdi marşrutunu izləyir və kassada bir neçə kassir eyni anda sifariş qəbul edir.

Aydındır ki, hipermarket xidmət sürəti baxımından adi mağazadan bir neçə dəfə sürətlidir, çünki mağaza bir kassa aparatı ilə birdən çox satıcı tutumunu ödəyə bilmir.

Həmçinin hər bir genişləndirmə kartı və ya quraşdırılmış anakart komponentləri üçün xüsusi məlumat zolaqları ilə.

Xətlərin sayının ötürmə qabiliyyətinə təsiri

İndi mağazamızı və hipermarket metaforasını genişləndirmək üçün təsəvvür edin ki, hipermarketin hər bir şöbəsinin yalnız onlar üçün ayrılmış öz kassirləri var. Çoxlu məlumat zolağı ideyası burada meydana çıxır.

PCI-E yarandığı gündən bəri bir çox dəyişikliklərdən keçdi. Bu günlərdə yeni ana platalar adətən standartın 3-cü versiyasını istifadə edir, daha sürətli versiya 4 daha geniş yayılmışdır, 5-ci versiya isə 2019-cu ildə gözlənilir. Amma müxtəlif versiyalar eyni fiziki bağlantılardan istifadə edir və bu əlaqələr dörd əsas ölçüdə edilə bilər: x1, x4, x8 və x16. (x32 portları mövcuddur, lakin adi kompüter anakartlarında olduqca nadirdir).

PCI-Express portlarının müxtəlif fiziki ölçüləri onları eyni vaxtda qoşulma sayına görə aydın şəkildə ayırmağa imkan verir. ana plata: Fiziki olaraq port nə qədər böyükdürsə, o, karta və ya karta ötürə bilən maksimum bağlantılar o qədər çox olar. Bu əlaqələrə də deyilir xətlər. Bir xətt iki siqnal cütündən ibarət bir yol kimi düşünülə bilər: biri məlumat göndərmək üçün, digəri isə qəbul etmək üçün.

PCI-E standartının müxtəlif versiyaları hər zolaqda fərqli sürətlərə imkan verir. Ancaq ümumiyyətlə desək, tək bir PCI-E portunda nə qədər çox zolaq varsa, periferiya və kompüterin qalan hissəsi arasında məlumat bir o qədər sürətli axacaq.

Metaforamıza qayıdaq: əgər bir mağazada bir satıcıdan danışırıqsa, x1 zolağı bir müştəriyə xidmət edən bu yeganə satıcı olacaq. 4 kassiri olan mağazanın artıq 4 xətti var x4. Və s., kassirləri 2-ə vuraraq xətlərin sayına görə təyin edə bilərsiniz.


Müxtəlif PCI Express kartları

PCI Express x2, x4, x8, x12, x16 və x32 istifadə edən cihazların növləri

PCI Express 3.0 versiyası üçün ümumi maksimum məlumat ötürmə sürəti 8 GT/s-dir.

Beləliklə, məsələn, PCI-E x1 portundan istifadə edən bir cihaz aşağı gücə malikdir səs kartı və ya Wi-Fi antenası maksimum 1 Gbit/s sürətlə məlumat ötürə biləcək.

Fiziki olaraq daha böyük bir yuvaya uyğun bir kart - x4 və ya x8 məsələn, USB 3.0 genişləndirmə kartı məlumatı müvafiq olaraq dörd və ya səkkiz dəfə daha sürətli ötürə biləcək.

PCI-E x16 portlarının ötürmə sürəti nəzəri olaraq maksimum 15 Gbit/s ötürmə qabiliyyəti ilə məhdudlaşır. Bu, 2017-ci ildə NVIDIA və AMD tərəfindən hazırlanmış bütün müasir qrafik kartları üçün kifayətdir.


Əksər diskret qrafik kartları PCI-E x16 yuvasından istifadə edir

PCI Express 4.0 protokolu 16 GT/s, PCI Express 5.0 isə 32 GT/s istifadə etməyə imkan verir.

Lakin hazırda bu sayda zolaqdan maksimum ötürmə qabiliyyəti ilə istifadə edə biləcək komponentlər yoxdur. Müasir yüksək səviyyəli qrafik kartları adətən x16 PCI Express 3.0 istifadə edir. X16 portunda yalnız bir zolaqdan istifadə edəcək şəbəkə kartı üçün eyni zolaqlardan istifadə etməyin mənası yoxdur, çünki Ethernet portu yalnız saniyədə bir giqabitə qədər məlumat ötürməyə qadirdir (bu, ötürmə qabiliyyətinin təxminən səkkizdə bir hissəsidir). bir PCI-E zolağı - yadda saxlayın: bir baytda səkkiz bit).

Bazarda x4 portunu dəstəkləyən PCI-E SSD-lər var, lakin onlar sürətlə inkişaf edən yeni M.2 standartı ilə əvəz olunacaq. PCI-E şinini də istifadə edə bilən SSD-lər üçün. Yüksək keyfiyyət şəbəkə kartları və RAID nəzarətçiləri kimi həvəskar aparat x4 və x8 formatlarının birləşməsindən istifadə edir.

PCI-E portu və zolaq ölçüləri fərqli ola bilər

Bu, PCI-E ilə bağlı ən qarışıq problemlərdən biridir: port x16 forma faktorunda edilə bilər, lakin məlumatı, məsələn, sadəcə x4 vasitəsilə ötürmək üçün kifayət qədər zolaqlara malik deyil. Bunun səbəbi, PCI-E-nin qeyri-məhdud sayda fərdi əlaqə daşıya bilməsinə baxmayaraq, çipsetin bant genişliyi tutumunun praktiki məhdudiyyəti hələ də var. Aşağı səviyyəli çipsetləri olan daha ucuz anakartlarda yalnız bir x8 yuvası ola bilər, hətta bu slot fiziki olaraq x16 forma faktorlu kartı yerləşdirə bilsə belə.

Bundan əlavə, oyunçular üçün nəzərdə tutulmuş anakartlara x16 ilə dördə qədər tam PCI-E yuvası və maksimum ötürmə qabiliyyəti üçün eyni sayda zolaq daxildir.

Aydındır ki, bu problemlər yarada bilər. Anakartda iki x16 yuvası varsa, lakin onlardan birində yalnız x4 zolaqlar varsa, o zaman yenisini birləşdirin. qrafik kartı birincinin məhsuldarlığını 75%-ə qədər azaldacaq. Bu, təbii ki, yalnız nəzəri nəticədir. Ana plataların arxitekturası elədir ki, performansda kəskin azalma görməyəcəksiniz.

İki video kartın tandemindən maksimum rahatlıq istəyirsinizsə, iki qrafik video kartının düzgün konfiqurasiyası tam olaraq iki x16 yuvasından istifadə etməlidir. Ofisdəki təlimat sizə müəyyən bir yuvanın anakartınızda neçə xəttin olduğunu öyrənməyə kömək edəcək. istehsalçının veb saytı.

Bəzən istehsalçılar hətta yuvanın yanında anakart PCB-də xətlərin sayını qeyd edirlər

Bilməlisiniz ki, daha qısa x1 və ya x4 kartı fiziki olaraq daha uzun x8 və ya x16 yuvasına uyğunlaşa bilər. Elektrik kontaktlarının pin konfiqurasiyası bunu mümkün edir. Təbii ki, əgər kart fiziki olaraq yuvadan böyükdürsə, onu daxil edə bilməyəcəksiniz.

Buna görə də, genişləndirmə kartlarını satın alarkən və ya mövcud kartları təkmilləşdirərkən, həmişə həm PCI Express yuvasının ölçüsünü, həm də tələb olunan zolaqların sayını yadda saxlamalısınız.

NVMe protokolunu dəstəkləyən bərk vəziyyətdə olan sürücü üçün hansı interfeysdən istifadə edilməli olduğunu soruşsanız, istənilən şəxs (hətta NVMe-nin nə olduğunu bilən) cavab verəcək: əlbəttə ki, PCIe 3.0 x4! Düzdür, çox güman ki, haqq qazandırmaqda çətinlik çəkəcək. Ən yaxşı halda, belə sürücülərin PCIe 3.0 x4-ü dəstəklədiyinə cavab alacağıq və ötürmə qabiliyyəti interfeys əhəmiyyətlidir. Budur, lakin bu barədə bütün söhbətlər yalnız bəzi əməliyyatlarda bəzi sürücülər "müntəzəm" SATA çərçivəsində sıxlaşdıqda başladı. Lakin onun 600 MB/s ilə (eyni şəkildə nəzəri) 4 GB/s arasında PCI interfeysi e 3.0 x4 çoxlu seçimlərlə dolu sadəcə uçurumdur! Bir PCIe 3.0 xətti kifayətdirsə, bu SATA600-dən bir yarım dəfə böyükdürsə? Yanğına yanacaq əlavə edən, büdcə məhsullarında PCIe 3.0 x2-ə keçməklə hədələyən nəzarətçi istehsalçıları, eləcə də bir çox istifadəçinin belə və ya belə olmamasıdır. Daha doğrusu, nəzəri olaraq var, lakin onlar yalnız sistemi yenidən konfiqurasiya etməklə və ya hətta orada etmək istəmədiyiniz bir şeyi dəyişdirməklə buraxıla bilər. Ancaq ən yaxşısını al bərk hal sürücüsü- İstərdim, amma bundan heç bir fayda verməyəcəyi ilə bağlı qorxular var (hətta test kommunallarının nəticələrindən mənəvi məmnunluq).

Amma bu doğrudur, yoxsa yox? Başqa sözlə, həqiqətən dəstəklənən iş rejiminə diqqət yetirmək lazımdırmı - yoxsa hələ də praktikada mümkündürmü? prinsiplərdən imtina edin? Bu gün yoxlamaq qərarına gəldiyimiz şey budur. Çek cəld olsun və özünü tam kimi göstərməsin, amma alınan məlumat (bizə göründüyü kimi) heç olmasa bu barədə düşünmək üçün kifayət qədər olmalıdır... Hələlik qısaca nəzəriyyə ilə tanış olaq.

PCI Express: mövcud standartlar və onların bant genişliyi

PCIe nədir və bu interfeysin hansı sürətlə işlədiyindən başlayaq. O, tez-tez "avtobus" adlanır, bu bir qədər ideoloji cəhətdən düzgün deyil: beləliklə, bütün cihazların qoşulduğu avtobus yoxdur. Əslində bir sıra nöqtə-nöqtə əlaqələri mövcuddur (bir çox digərlərinə bənzər serial interfeyslər) ortada nəzarətçi və ona qoşulmuş qurğular (hər biri özlüyündə növbəti səviyyənin mərkəzi ola bilər).

PCI Express-in ilk versiyası təxminən 15 il əvvəl ortaya çıxdı. Kompüter daxilində istifadəyə diqqət (çox vaxt eyni lövhədə) standart yüksək sürəti etməyə imkan verdi: saniyədə 2,5 giqatransaksiya. İnterfeys serial və tam dupleks olduğundan, tək PCIe zolağı (x1; effektiv olaraq atom vahidi) 5 Gbps-ə qədər məlumat ötürmə sürətini təmin edir. Bununla belə, hər bir istiqamətdə bunun yalnız yarısı, yəni 2,5 Gbit/s təşkil edir və bu, “faydalı” deyil, interfeysin tam sürətidir: etibarlılığı artırmaq üçün hər bayt 10 bitlə kodlanır, ona görə də nəzəri ötürmə qabiliyyəti bir PCIe zolağı 1.x hər tərəfdən təxminən 250 MB/s-dir. Praktikada hələ də xidmət məlumatlarını ötürmək lazımdır və sonda ≈200 MB/s istifadəçi məlumatlarının ötürülməsindən danışmaq daha düzgündür. Bununla belə, o zaman nəinki əksər cihazların ehtiyaclarını ödəyirdi, həm də möhkəm ehtiyat təmin edirdi: sadəcə xatırlayın ki, kütləvi sistem interfeysləri seqmentində PCIe-nin sələfi, yəni PCI şin 133 MB/// s. Və yalnız kütləvi tətbiqi deyil, həm də bütün PCI variantlarını nəzərə alsaq belə, maksimum 533 MB / s idi və bütün avtobus üçün, yəni belə bir PS ona qoşulmuş bütün cihazlara bölündü. Burada hər bir xətt üçün 250 MB/s (PCI üçün də faydalı ötürmə qabiliyyəti adətən verildiyi üçün) - eksklüziv istifadədə. Və daha çox ehtiyac duyan cihazlar üçün əvvəlcə bir neçə xətti bir interfeysdə, iki gücündə birləşdirmək mümkün idi - 2-dən 32-ə qədər, yəni standart tərəfindən nəzərdə tutulmuş x32 versiyası hər birində 8 GB/s-ə qədər ötürə bilərdi. istiqamət. Fərdi kompüterlərdə müvafiq nəzarətçiləri və cihazları yaratmaq və naqil etmək mürəkkəbliyi səbəbindən x32 istifadə edilmədi, buna görə də 16 sətirdən ibarət seçim maksimum oldu. Əsasən video kartlar tərəfindən idi (və hələ də istifadə olunur), çünki əksər cihazlar çox şey tələb etmir. Ümumiyyətlə, onların xeyli hissəsi üçün bir xətt kifayətdir, lakin bəziləri həm x4, həm də x8-dən uğurla istifadə edirlər: yalnız saxlama mövzusunda - RAID nəzarətçiləri və ya SSD-lər.

Zaman dayanmadı və təxminən 10 il əvvəl PCIe-nin ikinci versiyası ortaya çıxdı. Təkmilləşdirmələr təkcə sürətlərlə bağlı deyildi, həm də bu baxımdan irəliyə doğru bir addım atıldı - interfeys eyni kodlaşdırma sxemini saxlayaraq saniyədə 5 gigatransaction təmin etməyə başladı, yəni ötürmə qabiliyyəti iki dəfə artırıldı. Və 2010-cu ildə yenidən ikiqat artdı: PCIe 3.0 saniyədə 8 (10 deyil) gigatransaction təmin edir, lakin ehtiyat azaldılıb - indi əvvəlki kimi 160 deyil, 128-i kodlaşdırmaq üçün 130 bit istifadə olunur. Prinsipcə, sürəti ikiqat artıran PCIe 4.0 versiyası artıq kağız üzərində görünməyə hazırdır, lakin yaxın gələcəkdə onu aparatda görməyəcəyik. Əslində, PCIe 3.0 hələ də PCIe 2.0 ilə birlikdə bir çox platformalarda istifadə olunur, çünki sonuncunun performansı sadəcə olaraq... bir çox proqramlar üçün lazım deyil. Və lazım olduqda, xətlərin birləşməsinin köhnə üsulu işləyir. Yalnız onların hər biri son illər ərzində dörd dəfə daha sürətli olmuşdur, yəni PCIe 3.0 x4 2000-ci illərin ortalarında kompüterlərdə ən sürətli slot olan PCIe 1.0 x16-dır. Bu seçim ən yüksək səviyyəli SSD nəzarətçiləri tərəfindən dəstəklənir və ondan istifadə etmək tövsiyə olunur. Aydındır ki, belə bir imkan varsa, çox şey az deyil. Bəs o yoxdursa? Problemlər olacaqmı və əgər varsa, bunlar nədir? Bu, bizim həll etməli olduğumuz sualdır.

Test metodologiyası

PCIe standartının müxtəlif versiyaları ilə testlər aparmaq çətin deyil: demək olar ki, bütün kontrollerlər yalnız dəstəklədiklərini deyil, həm də bütün əvvəlkiləri istifadə etməyə imkan verir. Zolaqların sayı ilə daha çətindir: bir və ya iki PCIe zolağı ilə seçimləri birbaşa sınaqdan keçirmək istədik. Adətən istifadə etdiyimiz Asus H97-Pro Gamer lövhəsidir Intel çipset H97 tam dəsti dəstəkləmir, lakin x16 "prosessor" yuvasına (adətən istifadə olunur) əlavə olaraq, PCIe 2.0 x2 və ya x4 rejimlərində işləyən başqa bir yuvaya malikdir. Fərqin olub olmadığını qiymətləndirmək üçün biz bu üçlüyü istifadə edərək ona PCIe 2.0 “prosessor” slot rejimini əlavə etdik. Yenə də, bu halda, prosessor və SSD arasında kənar "vasitəçilər" yoxdur, lakin "çipset" yuvası ilə işləyərkən var: çipsetin özü, əslində eyni PCIe 2.0 x4 ilə prosessorla birləşdirilir. . Daha bir neçə iş rejimi əlavə etmək mümkün idi, lakin biz hələ də tədqiqatın əsas hissəsini başqa sistem üzərində aparacaqdıq.

Fakt budur ki, biz bu fürsətdən istifadə etmək və eyni zamanda bir "şəhər əfsanəsini" yoxlamaq qərarına gəldik, yəni sürücülərin sınaqdan keçirilməsi üçün ən yaxşı prosessorlardan istifadənin faydalılığına inam. Beləliklə, biz səkkiz nüvəli Core i7-5960X-i götürdük - adətən testlərdə istifadə olunan Core i3-4170-in qohumu (bunlar Haswell və Haswell-E), lakin dörd dəfə çox nüvəyə malikdir. Bundan əlavə, qutularda tapılan Asus Sabertooth X99 lövhəsi əslində x1 və ya x2 kimi işləyə bilən PCIe x4 yuvasının olması səbəbindən bu gün bizim üçün faydalıdır. Bu sistemdə biz prosessordan üç x4 variantını (PCIe 1.0/2.0/3.0) sınaqdan keçirdik və çipset PCIe 1.0 x1, PCIe 1.0 x2, PCIe 2.0 x1 və PCIe 2.0 x2 (bütün hallarda çipset konfiqurasiyaları diaqramlarda qeyd olunub) (c)). Standartın yalnız bu versiyasını dəstəkləyən və NVMe cihazından yükləyə bilən tək bir lövhənin çətin olduğunu nəzərə alsaq, indi PCIe-nin ilk versiyasına müraciət etməyin mənası varmı? Praktik baxımdan, yox, lakin PCIe 1.1 x4 = PCIe 2.0 x2 və buna bənzər apriori ehtimal olunan nisbəti yoxlamaq bizim üçün faydalı olacaq. Test avtobusun miqyaslılığının nəzəriyyəyə uyğun olduğunu göstərirsə, bu o deməkdir ki, biz hələ praktik olaraq əldə edə bilməmişik. mənalı yollar PCIe 3.0 x1/x2 əlaqələri: birincisi PCIe 1.1 x4 və ya PCIe 2.0 x2 ilə eyni olacaq, ikincisi isə PCIe 2.0 x4 ilə eyni olacaq. Və bizdə bunlar var.

Proqram təminatı baxımından biz özümüzü yalnız Anvil's Storage Utilities 1.1.0 ilə məhdudlaşdırdıq: o, sürücülərin müxtəlif aşağı səviyyəli xüsusiyyətlərini olduqca yaxşı ölçür və başqa heç nəyə ehtiyacımız yoxdur. Tam əksinə: sistemin digər komponentlərinin hər hansı təsiri son dərəcə arzuolunmazdır, buna görə də bizim məqsədlərimiz üçün aşağı səviyyəli sintetikanın alternativi yoxdur.

Biz “işçi maye” kimi 240 GB Patriot Hellfire istifadə etdik. Sınaq zamanı aşkar edildiyi kimi, bu, performans baxımından rekordçu deyil, onun sürət xüsusiyyətləri nəticələrə tam uyğundur ən yaxşı SSD eyni sinif və eyni tutum. Bəli və daha çox yavaş cihazlar artıq bazarda var və daha çox olacaq. Prinsipcə, testləri daha sürətli bir şeylə təkrarlamaq olardı, amma fikrimizcə, buna ehtiyac yoxdur - nəticələr proqnozlaşdırıla bilər. Ancaq gəlin özümüzdən qabağa getməyək, amma nə əldə etdiyimizi görək.

Test nəticələri

Cəhənnəm atəşini sınaqdan keçirərkən, ardıcıl əməliyyatlar üçün maksimum sürətin yalnız çox yivli yükdən "sıxıla biləcəyini" gördük, buna görə də bunu gələcək üçün nəzərə almaq lazımdır: nəzəri ötürmə qabiliyyəti yalnız nəzəri xarakter daşıyır, çünki " real” məlumatlarında qəbul edilmişdir müxtəlif proqramlar müxtəlif ssenarilərə görə onlar artıq ondan asılı olmayacaqlar, məhz bu proqramlardan və ssenarilərdən asılı olacaqlar - o halda, təbii ki, fors-major hallar mane olmadıqda :) Biz indi məhz belə halları müşahidə edirik: yuxarıda artıq deyilib. ki, PCIe 1 .x x1 ≈200 MB/s-dir və biz bunu görürük. İki PCIe 1.x zolağı və ya bir PCIe 2.0 zolağı iki dəfə sürətlidir və gördüyümüz də məhz budur. Dörd PCIe 1.x zolağı, iki PCIe 2.0 və ya bir PCIe 3.0 hətta iki dəfə sürətlidir, bu, ilk iki seçim üçün təsdiqlənib, buna görə də üçüncünün fərqli olması ehtimalı azdır. Yəni, prinsipcə, miqyaslılıq, gözlənildiyi kimi, idealdır: əməliyyatlar xəttidir, flaş onları yaxşı idarə edir, buna görə də interfeys vacibdir. Flaş dayanır yaxşı öhdəsindən gəlmək qeyd üçün PCIe 2.0 x4-ə (bu o deməkdir ki, PCIe 3.0 x2 də uyğundur). "Ola bilər" oxumaq daha çox ola bilər, amma son addım artıq bir yarım verir, ikiqat deyil (potensial olaraq olmalıdır). Həm də qeyd edirik ki, çipset və prosessor nəzarətçiləri və platformalar arasında nəzərəçarpacaq fərq yoxdur. Bununla belə, LGA2011-3 bir az irəlidədir, ancaq bir qədər.

Hər şey hamar və gözəldir. Amma şablonları cırmır: bu testlərdə maksimum 500 MB/s-dən bir qədər çoxdur və bu, hətta SATA600 və ya (bugünkü sınaq tətbiqində) PCIe 1.0 x4 / PCIe 2.0 x2 / üçün kifayət qədər qabiliyyətlidir. PCIe 3.0 x1. Düzdür: PCIe x2 üçün büdcə kontrollerlərinin buraxılması və ya daha çox ehtiyac olmadığı halda bəzi lövhələrdəki M.2 yuvalarında yalnız bu qədər çox xəttin (və standartın 2.0 versiyası) olmasından narahat olmayın. Bəzən o qədər də lazım deyil: kütləvi istehsal proqramları üçün xarakterik olmayan 16 əmrdən ibarət növbə ilə maksimum nəticələr əldə edildi. Daha tez-tez 1-4 əmrdən ibarət bir növbə var və bunun üçün ilk PCIe və hətta ilk SATA-nın bir xətti ilə əldə edə bilərsiniz. Bununla belə, əlavə xərclər və başqa şeylər var, buna görə də sürətli interfeys faydalıdır. Ancaq çox sürətli olmaq bəlkə də zərərli deyil.

Həmçinin, bu testdə platformalar fərqli davranır və tək komanda növbəsi ilə - əsaslı şəkildə fərqlidir. “Problem” o deyil ki, bir çox nüvələr pisdir. Onsuz da burada istifadə edilmir, bəlkə də biri istisna olmaqla və gücləndirmə rejimi tam tətbiq olunduğu qədər deyil. Beləliklə, əsas tezlikdə təxminən 20% və keş yaddaşında bir yarım dəfə fərqimiz var - Haswell-E-də nüvələrlə sinxron deyil, daha aşağı tezlikdə işləyir. Ümumiyyətlə, yüksək səviyyəli platforma yalnız böyük komanda növbəsi dərinliyi ilə ən çox yivli rejim vasitəsilə maksimum “Yops”u silmək üçün faydalı ola bilər. Yeganə təəssüf ki, praktik iş nöqteyi-nəzərindən bu, vakuumda tamamilə sferik sintetikadır :)

Səsyazmada vəziyyət əsaslı şəkildə dəyişməyib - hər mənada. Ancaq gülməli olan odur ki, hər iki sistemdə “prosessor” yuvasındakı PCIe 2.0 x4 rejimi ən sürətli oldu. Hər ikisində! Və çoxsaylı yoxlamalar/təkrar yoxlamalar ilə. Bu anda ehtiyacınız olub olmadığını düşünməyə kömək edə bilməzsiniz bunlar sizin yeni standartlarınızdır Yoxsa heç yerə tələsməmək daha yaxşıdır...

Müxtəlif ölçülü bloklarla işləyərkən, nəzəri idil interfeysin sürətini artırmaq hələ də məna kəsb edir. Əldə edilən rəqəmlər elədir ki, bir neçə PCIe 2.0 zolağı kifayət edər, lakin əslində bu halda performans bir neçə dəfə olmasa da, PCIe 3.0 x4-dən aşağıdır. Və ümumiyyətlə, burada büdcə platforması ən yaxşısını daha çox "bağlayır". Lakin məhz bu cür əməliyyat əsasən tətbiqi proqram təminatında olur, yəni bu diaqram reallığa ən yaxın olanıdır. Nəticədə, qalın interfeyslərin və dəbli protokolların heç bir "vay" effekti verməməsi təəccüblü deyil. Daha doğrusu, mexanikadan keçənlərə veriləcək, lakin hər hansı bir interfeysi olan hər hansı bir bərk-dövlət sürücüsü onu təmin edəcək.

Ümumi

Xəstəxananın mənzərəsini bütövlükdə qavramağı asanlaşdırmaq üçün proqramın verdiyi baldan (cəmi - oxumaq və yazmaq üçün) istifadə etdik, onu "çipset"ə görə normallaşdırdıq. PCIe rejimi 2.0 x4: açıq Bu an o, ən çox mövcud olanıdır, çünki o, hətta LGA1155 və ya AMD platformalarında video kartı "incitməyə" ehtiyac olmadan tapılır. Bundan əlavə, büdcə kontrollerlərinin mənimsəməyə hazırlaşdıqları PCIe 3.0 x2-ə bərabərdir. Bəli və davam edir yeni platforma AMD AM4, yenə diskret video karta təsir etmədən əldə edilə bilən rejimdir.

Bəs biz nə görürük? Mümkünsə, PCIe 3.0 x4 istifadəsinə üstünlük verilir, lakin zəruri deyil: o, orta səviyyəli NVMe sürücülərinə (əvvəlcə ən yüksək seqmentində) sözün həqiqi mənasında 10% əlavə performans gətirir. Və hətta bundan sonra - ümumiyyətlə praktikada tez-tez rast gəlinməyən əməliyyatlara görə. Niyə bu xüsusi variant bu halda həyata keçirilir? Birincisi, belə bir imkan var idi, amma ehtiyat cibinə çatmır. İkincisi, sınaq Patriot Hellfire-dan daha sürətli sürücülər var. Üçüncüsü, "atipik" fəaliyyət sahələri var masa üstü sistemi yüklər olduqca tipikdir. Üstəlik, burada məlumat saxlama sisteminin performansı və ya ən azı onun bir hissəsini çox sürətli etmək qabiliyyəti ən kritikdir. Amma adi halına fərdi kompüterlər bunların hamısı əhəmiyyətsizdir.

Onlarda, gördüyümüz kimi, PCIe 2.0 x2 (və ya müvafiq olaraq, PCIe 3.0 x1) istifadəsi performansın kəskin azalmasına səbəb olmur - cəmi 15-20%. Və bu, bu vəziyyətdə nəzarətçinin potensial imkanlarını dörd dəfə məhdudlaşdırmağımıza baxmayaraq! Bir çox əməliyyatlar üçün bu ötürmə qabiliyyəti kifayətdir. Bir PCIe 2.0 xətti artıq kifayət deyil, buna görə də nəzarətçilərin PCIe 3.0-ı dəstəkləməsi məntiqlidir - və xətlərin ciddi çatışmazlığı şəraitində. müasir sistem bu olduqca yaxşı işləyəcək. Bundan əlavə, x4 eni faydalıdır - sistemdə PCIe-nin müasir versiyaları üçün heç bir dəstək olmasa belə, daha çox və ya daha az geniş bir yuva varsa, yenə də normal sürətlə işləməyə imkan verəcəkdir (potensialdan daha yavaş olsa da). .

Prinsipcə, flaş yaddaşın özünün darboğaza çevrildiyi çox sayda ssenari (bəli, bu mümkündür və təkcə mexanikaya xas deyil) PCIe-nin üçüncü versiyasının dörd zolağının buna səbəb olmasına səbəb olur. sürücü birincidən təxminən 3,5 dəfə sürətlidir - bu iki halın nəzəri ötürmə qabiliyyəti 16 dəfə fərqlənir. Bu, əlbəttə ki, çox yavaş interfeysləri mənimsəməyə tələsmək lazım olduğunu ifadə etmir - onların vaxtı həmişəlik keçdi. Sadəcə olaraq, sürətli interfeyslərin bir çox imkanları yalnız gələcəkdə həyata keçirilə bilər. Və ya orta istifadəçinin olduğu şərtlər altında adi komputer həyatda heç vaxt birbaşa qarşı-qarşıya gəlməyəcək (özünü kim bilir nə ilə müqayisə etməyi sevənlər istisna olmaqla). Əslində, hamısı budur.

WiFi modulları və digər oxşar cihazlar. Bu təkərin inkişafı başladı Intel şirkəti 2002-ci ildə. İndi qeyri-kommersiya təşkilatı PCI Special Interest Group bu avtobusun yeni versiyalarını hazırlayır.

Hazırda PCI Express avtobusu AGP, PCI və PCI-X kimi köhnəlmiş avtobusları tamamilə əvəz edib. PCI Express avtobusu anakartın aşağı hissəsində üfüqi vəziyyətdə yerləşir.

PCI Express, PCI avtobusu əsasında hazırlanmış bir avtobusdur. PCI Express və PCI arasındakı əsas fərqlər buradadır fiziki səviyyə. PCI paylaşılan avtobusdan istifadə edərkən, PCI Express ulduz topologiyasından istifadə edir. Hər bir cihaz ayrı bir əlaqə ilə ümumi keçidə qoşulur.

PCI Express proqram modeli əsasən PCI modelini izləyir. Buna görə də, mövcud olan əksər PCI nəzarətçiləri PCI Express avtobusundan istifadə etmək üçün asanlıqla dəyişdirilə bilər.

Ana platada PCI Express və PCI yuvaları

Bundan əlavə, PCI Express avtobusu yeni funksiyaları dəstəkləyir, məsələn:

  • Cihazların isti qoşulması;
  • Zəmanətli məlumat mübadiləsi sürəti;
  • Enerji idarəetməsi;
  • Ötürülmüş məlumatların bütövlüyünün monitorinqi;

PCI Express avtobusu necə işləyir?

PCI Express avtobusu cihazları birləşdirmək üçün iki istiqamətli rabitədən istifadə edir. serial əlaqə. Üstəlik, belə bir əlaqə bir (x1) və ya bir neçə (x2, x4, x8, x12, x16 və x32) ola bilər. ayrı-ayrı xətlər. Belə xətlərdən nə qədər çox istifadə olunursa, o qədər çox olur daha yüksək sürət Məlumat ötürülməsi PCI Express avtobusu ilə təmin edilə bilər. Dəstəklənən xətlərin sayından asılı olaraq, anakartdakı sinif ölçüsü fərqli olacaq. Bir (x1), dörd (x4) və on altı (x16) xətti olan yuvalar var.

PCI Express slot ölçülərinin vizual nümayişi

Bundan əlavə, hər hansı bir PCI Express cihazı, əgər slotun eyni və ya daha çox xətti varsa, istənilən yuvada işləyə bilər. Bu, x1 konnektorlu PCI Express kartını anakartdakı x16 yuvasına quraşdırmağa imkan verir.

PCI Express bant genişliyi zolaqların sayından və avtobus versiyasından asılıdır.

Gbit/s ilə bir yol/hər iki yol

Sətirlərin sayı

PCIe 1.0 2/4 4/8 8/16 16/32 24/48 32/64 64/128
PCIe 2.0 4/8 8/16 16/32 32/64 48/96 64/128 128/256
PCIe 3.0 8/16 16/32 32/64 64/128 96/192 128/256 256/512
PCIe 4.0 16/32 32/64 64/128 128/256 192/384 256/512 512/1024

PCI Express cihazlarının nümunələri

PCI Express ilk növbədə diskret video kartları birləşdirmək üçün istifadə olunur. Bu avtobusun meydana çıxmasından bəri tamamilə bütün video kartlar ondan istifadə edir.

GIGABYTE Qrafik Kartı GeForce GTX 770

Bununla belə, PCI Express avtobusunun edə biləcəyi bütün bunlar deyil. Digər komponentlərin istehsalçıları tərəfindən istifadə olunur.

SUS Xonar DX səs kartı

SSD sürücüsü OCZ Z-Drive R4 Enterprise

Bu kartdan istifadə edərək iki əlavə etdi USB portu 3.0 kompüterinizə. Ana plata Onun yerli portları yoxdur və hələ təkmilləşdirmək istəyi yoxdur. Üstəlik, qədimlik dərəcəsindən asılı olaraq, bu da prosessorun, operativ yaddaşın, enerji təchizatının və korpusun dəyişməsinə səbəb olur. Buna görə də bir PCI-E nəzarətçisi ilə kifayətləndim.

Oflayn mağazalarda belə bir nəzarətçi almaqda heç bir problem yoxdur. Amma mənə elə gəldi ki, belə bir xırda şey üçün qiymət bahadır. Ümumiyyətlə, pişik mağazalarında komponentlər sifariş etməyin sərfəli olduğunu görmədim, amma burada, DE-də nəzarətçi yarı qiymətə çıxdı.
400 rubla qərar verdim. çünki ala bilərsiniz Cihaz faydalıdır. Varsa xarici sərt sürücü, sonra USB 3.0 vasitəsilə qoşulmaq daha xoşdur.

Mən üç ay əvvəl almışam. Paketin məzmunu: nəzarətçi olan qutu, əlavə enerji adapteri, sürücüləri olan mini disk.

bax


Qutu mağazadakı kimi deyil. Lövhə özü komputerdədir, çıxarmamışam, təsvirdəki kimi görünür.


Mən onu pulsuz PCI-E-yə quraşdırdım, ikinci video kart üçün olan x4 istifadə etdim. Güc adapterinə ehtiyac yoxdu, çünki Sürücünü gücləndirən enerji mənbəyindən kabeli götürdüm.

bax




Windows 7 altında quraşdırmaq üçün diskdəki sürücüdən istifadə etdim. Təlimatlarda olduğu kimi NEC kimi müəyyən edilmişdir. O, həmçinin MAC və Linux-un dəstəklənmədiyini söyləyir.

bax



İstifadəsi baxımından ondan heç bir fərqi yoxdur adi USB limanlar. Sadəcə yeni uzatma kabeli almalı oldum.

Dok stansiyasında (AgeStar) xarici HDD (ST32000542AS) istifadə edərkən nəticələr:
Ardıcıl qeyd sürəti ~70 Mb/s.
Ardıcıl oxu sürəti ~80 Mb/s.

Yeni anakartlarda quraşdırılmış USB3 ilə müqayisədə. lövhələr - nəticə təxminən eynidır.

Ümumiyyətlə, satın ala bilərsiniz. O, həqiqətən köhnə USB-lərdən daha sürətli surət çıxarır və ucuzdur.

+8 almağı planlaşdırıram Seçilmişlərə əlavə et Rəyi bəyəndim +9 +13

Kateqoriyalar