Intel Native Loopback Accelerator Functional Unit (AFU)
Babagan Dokumen iki
Konvensi
Tabel 1. Konvensi Dokumen
Konvensi | Katrangan |
# | Sadurunge printah sing nuduhake printah kanggo ngetik minangka ROOT. |
$ | Nuduhake prentah sing kudu diketik minangka pangguna. |
Font iki | Filejeneng, printah, lan tembung kunci dicithak ing font iki. Garis printah dawa dicithak ing font iki. Senajan baris printah dawa bisa mbungkus kanggo baris sabanjuré, bali ora bagean printah; aja pencet enter. |
Nuduhake teks placeholder sing katon ing antarane kurung sudut kudu diganti karo nilai sing cocog. Aja ngetik kurung sudut. |
Akronim
Tabel 2. Akronim
Akronim | Ekspansi | Katrangan |
AF | Fungsi Akselerator | Gambar Compiled Hardware Accelerator dileksanakake ing logika FPGA sing nyepetake aplikasi. |
AFU | Unit Fungsi Akselerator | Hardware Accelerator dipun ginakaken ing logika FPGA kang offloads operasi komputasi kanggo aplikasi saka CPU kanggo nambah kinerja. |
API | Antarmuka Pemrograman Aplikasi | Sakumpulan definisi subrutin, protokol, lan piranti kanggo mbangun aplikasi piranti lunak. |
ASE | Lingkungan Simulasi AFU | lingkungan Co-simulasi sing ngijini sampeyan kanggo nggunakake aplikasi inang padha lan AF ing lingkungan simulasi. ASE minangka bagéan saka Intel® Acceleration Stack kanggo FPGA. |
CCI-P | Antarmuka Cache inti | CCI-P minangka antarmuka standar sing digunakake AFU kanggo komunikasi karo host. |
CL | Cache Line | 64-bait baris cache |
DFH | Header Fitur Piranti | Nggawe dhaptar header fitur sing disambung kanggo nyedhiyakake cara sing bisa ditambahake kanggo nambah fitur. |
FIM | Manajer Antarmuka FPGA | Hardware FPGA ngemot Unit Antarmuka FPGA (FIU) lan antarmuka eksternal kanggo memori, jaringan, lsp.
Fungsi Accelerator (AF) sesambungan karo FIM nalika mlaku. |
FIU | Unit Antarmuka FPGA | FIU minangka lapisan antarmuka platform sing dadi jembatan antarane antarmuka platform kaya PCIe *, UPI lan antarmuka sisih AFU kayata CCI-P. |
terus… |
Intel Corporation. Kabeh hak dilindhungi undhang-undhang. Intel, logo Intel, lan merek Intel liyane minangka merek dagang saka Intel Corporation utawa anak perusahaan. Intel njamin kinerja produk FPGA lan semikonduktor kanggo specifications saiki miturut babar pisan standar Intel, nanging nduweni hak kanggo owah-owahan ing sembarang produk lan layanan ing sembarang wektu tanpa kabar. Intel ora tanggung jawab utawa tanggung jawab sing muncul saka aplikasi utawa panggunaan informasi, produk, utawa layanan sing diterangake ing kene kajaba sing disepakati kanthi tinulis dening Intel. Pelanggan Intel disaranake njupuk versi paling anyar saka spesifikasi piranti sadurunge ngandelake informasi sing diterbitake lan sadurunge nggawe pesenan kanggo produk utawa layanan. * Jeneng lan merek liyane bisa uga diklaim minangka properti wong liya.
Akronim | Ekspansi | Katrangan |
MPF | Pabrik Properti Memori | MPF minangka Blok Bangunan Dasar (BBB) sing bisa digunakake dening AFU kanggo nyedhiyakake operasi pambentukan lalu lintas CCI-P kanggo transaksi karo FIU. |
Pesen | Pesen | Pesen - kabar kontrol |
NLB | Loopback asli | NLB nindakake maca lan nulis menyang link CCI-P kanggo nyoba konektivitas lan throughput. |
RdLine_I | Waca Baris Ora Sah | Permintaan Waca Memori, kanthi tandha cache FPGA disetel dadi ora bener. Garis kasebut ora di-cache ing FPGA, nanging bisa nyebabake polusi cache FPGA.
Cathetan: Cache tag trek status request kanggo kabeh panjalukan pinunjul ing Intel Ultra Path Interconnect (Intel UPI). Mulane, sanajan RdLine_I ditandhani ora sah sawise rampung, iku nganggo cache tag sauntara kanggo trek status request liwat UPI. Tumindak iki bisa nyebabake pengusiran garis cache, sing nyebabake polusi cache. Advantage nggunakake RdLine_I iku ora dilacak dening direktori CPU; mangkono ngalangi snooping saka CPU. |
RdLine-S | Waca Line Shared | Panjaluk maca memori kanthi pitunjuk cache FPGA disetel kanggo dienggo bareng. Ana nyoba kanggo nyimpen ing cache FPGA ing negara sambungan. |
WrLine_I | Tulis Baris Ora Sah | Panjaluk Tulis Memori, kanthi tandha cache FPGA disetel dadi Ora Sah. FIU nulis data kasebut tanpa niat nyimpen data ing cache FPGA. |
WrLine_M | Tulis Line Modified | Panjaluk Tulis Memori, kanthi tandha cache FPGA disetel menyang Diowahi. FIU nulis data lan ninggalake ing cache FPGA ing negara sing diowahi. |
Glosarium Akselerasi
Tabel 3. Akselerasi Stack kanggo Intel Xeon® CPU karo FPGAs Glosarium
istilahe | Singkatan | Katrangan |
Intel Acceleration Stack kanggo Intel Xeon® CPU karo FPGAs | Tumpukan Akselerasi | Koleksi piranti lunak, perangkat kukuh, lan piranti sing nyedhiyakake konektivitas sing dioptimalake kinerja antarane Intel FPGA lan prosesor Intel Xeon. |
Intel FPGA Programmable Acceleration Card (Intel FPGA PAC) | Intel FPGA PAC | kertu akselerator FPGA PCIe. Ngandhut FPGA Interface Manager (FIM) sing dipasangake karo prosesor Intel Xeon liwat bus PCIe. |
Native Loopback Accelerator Functional Unit (AFU)
Native Loopback (NLB) AFU Swaraview
- NLB sample AFUs kalebu sakumpulan Verilog lan Sistem Verilog files kanggo nguji memori maca lan nulis, bandwidth, lan latensi.
- Paket iki kalebu telung AFU sing bisa dibangun saka sumber RTL sing padha. Konfigurasi kode sumber RTL sampeyan nggawe AFU iki.
NLB SampFungsi Akselerator (AF)
$OPAE_PLATFORM_ROOT/hw/samples direktori nyimpen kode sumber kanggo NLB s ing ngisor ikiamplan AFU:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Cathetan: $DCP_LOC/hw/samples direktori nyimpen NLB sampkode sumber le AFUs kanggo paket release 1.0.
Kanggo mangerteni NLB sample struktur kode sumber AFU lan carane mbangun, deleng salah siji saka Pandhuan Mulai Cepet ing ngisor iki (gumantung saka Intel FPGA PAC sing sampeyan gunakake):
- Yen sampeyan nggunakake Intel PAC karo Intel Arria® 10 GX FPGA, waca IntelProgrammable Acceleration Card karo Intel Arria 10 GX FPGA.
- Yen sampeyan nggunakake Intel FPGA PAC D5005, waca Intel Acceleration Stack Quick Start Guide kanggo Intel FPGA Programmable Acceleration Card D5005.
Paket release nyedhiyakake telung s ing ngisor ikiamplan AF:
- Mode NLB 0 AF: mbutuhake hello_fpga utawa sarana fpgadiag kanggo nindakake tes lpbk1.
- Mode NLB 3 AF: mbutuhake sarana fpgadiag kanggo nindakake tes trupt, maca, lan nulis.
- mode NLB 0 stp AF: mbutuhake hello_fpga utawa fpgadiag sarana kanggo nindakake test lpbak1.
Cathetan: Nlb_mode_0_stp iku AFU padha karo nlb_mode_0 nanging karo Signal Tap fitur debug aktif.
Utilitas fpgadiag lan hello_fpga mbantu AF sing cocog kanggo diagnosa, nyoba lan laporan babagan hardware FPGA.
Intel Corporation. Kabeh hak dilindhungi undhang-undhang. Intel, logo Intel, lan merek Intel liyane minangka merek dagang saka Intel Corporation utawa anak perusahaan. Intel njamin kinerja produk FPGA lan semikonduktor kanggo specifications saiki miturut babar pisan standar Intel, nanging nduweni hak kanggo owah-owahan ing sembarang produk lan layanan ing sembarang wektu tanpa kabar. Intel ora tanggung jawab utawa tanggung jawab sing muncul saka aplikasi utawa panggunaan informasi, produk, utawa layanan sing diterangake ing kene kajaba sing disepakati kanthi tinulis dening Intel. Pelanggan Intel disaranake njupuk versi paling anyar saka spesifikasi piranti sadurunge ngandelake informasi sing diterbitake lan sadurunge nggawe pesenan kanggo produk utawa layanan. * Jeneng lan merek liyane bisa uga diklaim minangka properti wong liya.
Gambar 1. Native Loopback (nlb_lpbk.sv) Top Level Wrapper
Tabel 4. NLB Files
File jeneng | Katrangan |
nlb_lpbk.sv | Pambungkus tingkat paling dhuwur kanggo NLB sing nggawe panjaluk lan arbiter. |
arbiter.sv | Instantiates tes AF. |
panjaluk.sv | Nampa panjalukan saka arbiter lan format panjalukan miturut spesifikasi CCI-P. Uga ngleksanakake kontrol aliran. |
nlb_csr.sv | Ngleksanakake 64-bit maca / nulis Control lan Status (CSR) ndhaftar. Register ndhukung 32- lan 64-bit maca lan nulis. |
nlb_gram_sdp.sv | Ngleksanakake RAM dual-port umum karo siji port nulis lan siji port maca. |
NLB minangka implementasi referensi saka AFU sing kompatibel karo Intel Acceleration Stack kanggo Intel Xeon CPU karo FPGAs Core Cache Interface (CCI-P) Reference Manual. Fungsi utama NLB yaiku kanggo validasi konektivitas host nggunakake pola akses memori sing beda. NLB uga ngukur bandwidth lan maca / nulis latensi. Tes bandwidth duwe pilihan ing ngisor iki:
- 100% maca
- 100% nulis
- 50% maca lan 50% nulis
Informasi sing gegandhengan
- Intel Acceleration Stack Quick Start Guide kanggo Intel Programmable Acceleration Card karo Arria 10 GX FPGA
- Tumpukan Akselerasi kanggo CPU Intel Xeon karo FPGAs Core Cache Interface (CCI-P) Referensi Manual
- Intel Acceleration Stack Quick Start Guide kanggo Intel FPGA Programmable Acceleration Card D5005
Native Loopback Control lan Status Register Descriptions
Tabel 5. Jeneng CSR, Alamat lan Katrangan
Alamat Byte (OPAE) | Tembung Alamat (CCI-P) | Akses | jeneng | Jembar | Katrangan |
0x0000 | 0x0000 | RO | DFH | 64 | Header Fitur Piranti AF. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID kurang. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID dhuwur. |
0x0018 | 0x0006 | Rsvd | CSR_DFH_RSVD0 | 64 | Wajib Reserved 0. |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | Wajib Reserved 1. |
0x0100 | 0x0040 | RW | CSR_SCRATCHPAD0 | 64 | Daftar Scratchpad 0. |
0x0108 | 0x0042 | RW | CSR_SCRATCHPAD1 | 64 | Daftar Scratchpad 2. |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASE L | 32 | Ngisor 32-bit alamat basis AF DSM. Ing ngisor 6 bit 4×00 amarga alamat didadekake siji kanggo 64-bait ukuran baris cache. |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASE H | 32 | 32-bit ndhuwur alamat basis AF DSM. |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | Miwiti alamat fisik kanggo buffer sumber. Kabeh panjalukan maca target wilayah iki. |
0x0128 | 0x004A | RW | CSR_DST_ADDR | 64 | Miwiti alamat fisik kanggo buffer tujuan. Kabeh panjalukan nulis target wilayah iki |
0x0130 | 0x004c | RW | CSR_NUM_LINES | 32 | Jumlah garis cache. |
0x0138 | 0x004E | RW | CSR_CTL | 32 | Ngontrol alur tes, wiwitan, mandheg, rampung pasukan. |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | Konfigurasi paramèter tes. |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | Watesan ambang ora aktif. |
0x0150 | 0x0054 | RW | CSR_INTERRUPT0 | 32 | SW nyedhiyakake ID APIC lan Vektor Interrupt menyang piranti. |
Peta Offset DSM | |||||
0x0040 | 0x0010 | RO | DSM_STATUS | 32 | Status test lan ndhaptar kesalahan. |
Tabel 6. CSR Bit Fields karo Examples
Tabel iki nampilake kolom bit CSR sing gumantung saka nilai CSR_NUM_LINES, . Ing mantanample ngisor = 14.
jeneng | Bidang Bit | Akses | Katrangan |
CSR_SRC_ADDR | [63:] | RW | 2 ^ (N + 6) MB alamat selaras TCTerms kanggo wiwitan buffer diwaca. |
[-1:0] | RW | 0x0. | |
CSR_DST_ADDR | [63:] | RW | 2 ^ (N + 6) MB didadekake siji alamat titik kanggo wiwitan nulis buffer. |
[-1:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:] | RW | 0x0. |
terus… |
jeneng | Bidang Bit | Akses | Katrangan |
[-1:0] | RW | Jumlah garis cache kanggo maca utawa nulis. Ambang iki bisa uga beda kanggo saben AF tes.
Cathetan: Mesthekake yen sumber lan panggonan buffer cukup gedhe kanggo nampung ing garis cache. CSR_NUM_LINES kudune kurang saka utawa padha karo . |
|
Kanggo nilai ing ngisor iki, anggep =14. Banjur, CSR_SRC_ADDR lan CSR_DST_ADDR nampa 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | 1MB alamat selaras. |
[13:0] | RW | 0x0. | |
CSR_DST_ADDR | [31:14] | RW | 1MB alamat selaras. |
[13:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:14] | RW | 0x0. |
[13:0] | RW | Jumlah garis cache kanggo maca utawa nulis. Ambang iki bisa uga beda kanggo saben AF tes.
Cathetan: Mesthekake yen sumber lan panggonan buffer cukup gedhe kanggo nampung ing garis cache. |
Tabel 7. Bidang Bit CSR tambahan
jeneng | Bidang Bit | Akses | Katrangan |
CSR_CTL | [31:3] | RW | dilindhungi. |
[2] | RW | Meksa rampung test. Nulis flag completion test lan counters kinerja liyane kanggo csr_stat. Sawise rampung tes meksa, negara hardware identik karo rampung tes sing ora dipeksa. | |
[1] | RW | Miwiti eksekusi tes. | |
[0] | RW | Reset test kurang aktif. Yen kurang, kabeh paramèter konfigurasi ganti dadi nilai standar. | |
CSR_CFG | [29] | RW | cr_interrupt_testmode tes interrupts. Ngasilake interupsi ing pungkasan saben test. |
[28] | RW | cr_interrupt_on_error ngirim interupsi nalika ana kesalahan | |
deteksi. | |||
[27:20] | RW | cr_test_cfg ngatur prilaku saben mode test. | |
[13:12] | RW | cr_chsel milih saluran virtual. | |
[10:9] | RW | cr_rdsel ngatur jinis panjalukan diwaca. Encodings duwe | |
nilai valid ing ngisor iki: | |||
• 1'b00: RdLine_S | |||
• 2'b01: RdLine_I | |||
• 2'b11: Mode campuran | |||
[8] | RW | cr_delay_en ngaktifake selipan wektu tundha acak antarane panjalukan. | |
[6:5] | RW | Ngonfigurasi mode tes, cr_multiCL-len. Nilai sing bener yaiku 0,1, lan 3. | |
[4:2] | RW | cr_mode, ngatur mode test. Nilai ing ngisor iki sah: | |
• 3'b000: LPBK1 | |||
• 3'b001: Waca | |||
• 3'b010: Tulis | |||
• 3'b011: TRPUT | |||
terus… |
jeneng | Bidang Bit | Akses | Katrangan |
Kanggo informasi luwih lengkap babagan mode test, waca ing Mode Test topik ing ngisor iki. | |||
[1] | RW | c_cont milih rollover test utawa mandap test.
• Nalika 1'b0, test mungkasi. Nganyari status CSR nalika Jumlah CSR_NUM_LINES wis tekan. • Nalika 1'b1, tes digulung menyang alamat wiwitan sawise tekan CSR_NUM_LINES count. Ing mode rollover, tes mung mandheg yen ana kesalahan. |
|
[0] | RW | cr_wrthru_en ngalih antarane jinis panjalukan WrLine_I lan Wrline_M.
• 1'b0: WrLine_M • 1'b1: WrLine_I |
|
CSR_INACT_THRESHOLD | [31:0] | RW | Watesan ambang ora aktif. Ndeteksi durasi stall sajrone test run. Ngitung jumlah siklus nganggur berturut-turut. Yen ora aktif count
> CSR_INACT_THRESHOLD, ora ana panjaluk sing dikirim, ora ana tanggapan ditampa, lan sinyal inact_timeout disetel. Nulis 1 kanggo CSR_CTL [1] ngaktifake counter iki. |
CSR_INTERRUPT0 | [23:16] | RW | Nomer Vektor Interrupt kanggo piranti kasebut. |
[15:0] | RW | apic_id punika APIC OD kanggo piranti. | |
DSM_STATUS | [511:256] | RO | Kesalahan dump formulir Test Mode. |
[255:224] | RO | Pungkasan Overhead. | |
[223:192] | RO | Miwiti Overhead. | |
[191:160] | RO | Jumlah Nulis. | |
[159:128] | RO | Jumlah Wacan. | |
[127:64] | RO | Jumlah Jam. | |
[63:32] | RO | Test register kesalahan. | |
[31:16] | RO | Mbandhingake lan ngganti counter sukses. | |
[15:1] | RO | ID unik kanggo saben nulis status DSM. | |
[0] | RO | Gendéra rampung tes. |
Mode Test
CSR_CFG [4:2] ngatur mode test. Ana papat tes ing ngisor iki:
- LPBK1: Iki minangka tes salinan memori. AF nyalin CSR_NUM_LINES saka buffer sumber menyang buffer tujuan. Sawise tes rampung, piranti lunak mbandhingake sumber lan buffer tujuan.
- maca: Tes iki nandheske jalur maca lan ngukur bandwidth utawa latensi maca. AF maca CSR_NUM_LINES wiwit saka CSR_SRC_ADDR. Iki mung tes bandwidth utawa latensi. Ora verifikasi data sing diwaca.
- Tulis: Tes iki nandheske jalur nulis lan ngukur bandwidth nulis utawa latensi. AF maca CSR_NUM_LINES wiwit saka CSR_SRC_ADDR. Iki mung tes bandwidth utawa latensi. Ora verifikasi data sing ditulis.
- TRPUT: Tes iki nggabungake maca lan nulis. Iki maca CSR_NUM_LINES wiwit saka lokasi CSR_SRC_ADDR lan nulis CSR_NUM_LINES menyang CSR_SRC_ADDR. Uga ngukur bandwidth maca lan nulis. Tes iki ora mriksa data. Maca lan nulis ora duwe dependensi
Tabel ing ngisor iki nuduhake enkoding CSR_CFG kanggo papat tes. Tabel iki set lan CSR_NUM_LINES, =14. Sampeyan bisa ngganti jumlah garis cache kanthi nganyari daftar CSR_NUM_LINES.
Tabel 8. Mode Test
Diagnostik FPGA: fpgadiag
Utilitas fpgadiag kalebu sawetara tes kanggo diagnosa, nguji, lan nglaporake hardware FPGA. Gunakake sarana fpgadiag kanggo mbukak kabeh mode test. Kanggo informasi luwih lengkap babagan nggunakake sarana fpgadiag, waca bagean fpgadiag ing Pandhuan Piranti Open Programmable Acceleration Engine (OPAE).
Mode NLB0 Hello_FPGA Alur Tes
- Piranti lunak miwiti Memori Status Piranti (DSM) dadi nol.
- Piranti lunak nulis alamat DSM BASE menyang AFU. Tulis CSR(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Piranti lunak nyiapake buffer memori sumber lan tujuan. Persiapan iki khusus kanggo tes.
- Piranti lunak nulis CSR_CTL[2:0]= 0x1. Tulis iki ndadekke test metu saka reset lan menyang mode konfigurasi. Konfigurasi mung bisa ditindakake nalika CSR_CTL[0]=1 & CSR_CTL[1]=1.
- Piranti lunak ngatur paramèter tes, kayata src, destaddress, csr_cfg, num lines, lan liya-liyane.
- Software CSR nyerat CSR_CTL[2:0]= 0x3. AF miwiti eksekusi tes.
- Tes rampung:
- Hardware rampung nalika tes rampung utawa ndeteksi kesalahan. Sawise rampung, AF hardware nganyari DSM_STATUS. Polling piranti lunak DSM_STATUS[31:0]==1 kanggo ndeteksi tes rampung.
- Piranti lunak bisa meksa rampung tes kanthi nulis CSR nulis CSR_CTL[2:0]=0x7. Hardware AF nganyari DSM_STATUS.
Riwayat Revisi Dokumen kanggo Pandhuan Pangguna Native Loopback Accelerator Functional Unit (AFU).
Versi Dokumen | Intel Akselerasi Versi tumpukan | Owah-owahan |
2019.08.05 | 2.0 (didhukung karo Intel
Quartus Prime Pro Edition 18.1.2) lan 1.2 (didhukung karo Intel Quartus Prime Pro Edition 17.1.1) |
Dhukungan ditambahake kanggo platform Intel FPGA PAC D5005 ing rilis saiki. |
2018.12.04 | 1.2 (didhukung karo Intel
Quartus® Prime Pro Edition 17.1.1) |
release pangopènan. |
2018.08.06 | 1.1 (didhukung karo Intel
Quartus Prime Pro Edition 17.1.1) lan 1.0 (didhukung karo Intel Quartus Prime Pro Edition 17.0.0) |
Dianyari lokasi kode sumber kanggo NLB samping AFU NLB SampFungsi Akselerator (AF) bagean. |
2018.04.11 | 1.0 (didhukung karo Intel
Quartus Prime Pro Edition 17.0.0) |
Rilis wiwitan. |
Intel Corporation. Kabeh hak dilindhungi undhang-undhang. Intel, logo Intel, lan merek Intel liyane minangka merek dagang saka Intel Corporation utawa anak perusahaan. Intel njamin kinerja produk FPGA lan semikonduktor kanggo specifications saiki miturut babar pisan standar Intel, nanging nduweni hak kanggo owah-owahan ing sembarang produk lan layanan ing sembarang wektu tanpa kabar. Intel ora tanggung jawab utawa tanggung jawab sing muncul saka aplikasi utawa panggunaan informasi, produk, utawa layanan sing diterangake ing kene kajaba sing disepakati kanthi tinulis dening Intel. Pelanggan Intel disaranake njupuk versi paling anyar saka spesifikasi piranti sadurunge ngandelake informasi sing diterbitake lan sadurunge nggawe pesenan kanggo produk utawa layanan. * Jeneng lan merek liyane bisa uga diklaim minangka properti wong liya.
Dokumen / Sumber Daya
![]() |
Intel Native Loopback Accelerator Functional Unit (AFU) [pdf] Pandhuan pangguna Unit Fungsional Loopback Native AFU, Native Loopback, Unit Fungsional Akselerator AFU, Unit Fungsional AFU |