Jurnalis teknologi Igor Oskolkov dari
3DNews.ru baru-baru ini menguji versi yang tersedia untuk umum dari papan evaluasi atau, sebagaimana vendor menyebutnya, kompleks perangkat lunak-pengembang, di bawah nama kode BFK 3.1 dengan SoC Baikal-T1 Rusia berdasarkan MIPS Arsitektur P5600 Warrior. Ini terjemahan bahasa Inggris dari teksnya, yang
pertama kali diterbitkan dalam bahasa Rusia oleh servernews.ru .
Untuk memulainya, kita harus menekankan bahwa BFK 3.1 adalah kompleks perangkat lunak-perangkat lunak pengembang (kami akan terus menyebutnya papan) dan bukan dasar untuk membangun produk akhir. Tidak ada yang waras akan menggunakan papan ini untuk membangun sistem. Pertama, sistem seperti itu akan sangat mahal. Kedua, gagasan semacam itu agak tidak berarti. Papan ini diperlukan untuk mengembangkan dan men-debug perangkat lunak, dan untuk mengevaluasi kinerja prosesor dan kompatibilitasnya dengan peralatan lain. Tidak benar membandingkan BFK 3.1 dengan komputer mikro papan tunggal seperti Raspberry Pi atau Cubieboard, meskipun secara formal sangat dekat dengan mereka.

Papan pengembangan serupa ditawarkan oleh vendor prosesor lainnya. Tergantung pada jenis dan peralatan yang tertanam, harga untuk papan tersebut dapat bervariasi mulai dari ratusan hingga ribuan dolar AS. Yang penting dengan papan BFK 3.1, bahwa itu adalah papan pertama dengan Baikal-T1 SoC, yang tersedia secara praktis untuk semua orang, dan tidak terbatas pada lingkaran sempit individu dan organisasi, seperti dulu dengan prosesor Rusia sebelumnya. . Harganya cukup mahal - 650 USD - mahal, tetapi vendor tidak dapat menawarkan harga yang lebih rendah, dengan mempertimbangkan volume produksi papan ini yang relatif kecil.
Apa yang didapatkan pelanggan setelah mendaftarkan produk adalah akses ke perpustakaan dokumentasi teknik akses terbatas dan desain papan sirkuit tercetak dalam format Altium Designer. Ini akan secara signifikan mempercepat dan menyederhanakan proses menciptakan solusi perangkat keras dan perangkat lunak sendiri berdasarkan papan BFK 3.1 dan Soal Baikal-T1.
Papan itu sendiri dilengkapi dengan prosesor dengan pengikat dasar. Hampir semua antarmuka prosesor memiliki output ke board, hanya port 10GbE yang belum. Papan itu sendiri berukuran 229 Γ 191 mm (FlexATX). Ini memiliki dua port SATA-3 (versi pengontrol 3.1), satu slot SO-DIMM untuk modul memori DDR3-1600, dua port Gigabit Ethernet RJ-45, satu konektor USB 2.0 Tipe A, dua port USB Mini-B yang diperlukan untuk debugging , satu konektor PCI-E 3.0 x4. Ada juga GPIO 40-pin (pengontrol utamanya adalah 32-bit).


Untuk catu daya, seseorang memerlukan modul ATX 2.0 dengan 200 watt atau lebih tinggi. Nilai ini jelas diberikan dengan margin besar, bahkan dengan mempertimbangkan konsumsi perangkat PCI-E dan SATA. Papan memiliki tombol "on / off" dan "power reset" yang terpisah. Memulai papan sangat sederhana: pasang modul memori, sambungkan PSU, sambungkan PC dengan port mini-USB, jalankan emulator terminal favorit Anda dengan dukungan untuk port COM (
Anda mungkin memerlukan driver untuk jembatan itu sendiri - gunakan tautan ini ). Nah, itu dia, tekan tombol "on" dan pilih item yang diinginkan di menu boot.


Papan ini memiliki dua modul memori NOR: 16 MB dan 32 MB. Yang pertama adalah bootable, ini berisi firmware itu sendiri. Di sini semuanya standar: U-Boot + Linux-kernel + minimal gambar BusyBox. Booting dari jaringan melalui server NFS atau TFTP dimungkinkan. Untuk embedded system, itu sudah cukup. Dalam kasus seperti itu, produk akhir adalah papan yang relatif kompak dengan RAM dan ROM yang telah dilas dengan volume yang diperlukan dan lingkungan perangkat lunak yang telah diprogram dan dioptimalkan untuk berbagai tugas tertentu. Sebagai contoh, orang dapat memikirkan router SOHO.

Opsi kedua untuk menggunakan board ini adalah peluncuran OS penuh. Itu yang akan kita lakukan untuk tes.
Vendor menawarkan versi Debian 9 yang sedikit dimodifikasi dengan kernel dari SDK. Harap dicatat bahwa mereka tidak merakit ulang semua perangkat lunak sendiri. Repositori siap pakai dari cabang-cabang Debian mipsel digunakan, sehingga tidak ada optimasi untuk prosesor khusus ini. Namun, ada juga rakitan Edisi Khusus Astra Linux untuk perangkat Tavolga Terminal 2BT1 dengan Baikal-T1 SoC yang sama. Tapi sayangnya, mereka tidak tersedia secara terbuka. Juga, dukungan untuk Alt Linux dan Buildroot diharapkan dan ada kemungkinan untuk menjalankan OpenWRT / LEDE.

Untuk memulai OS Debian, seseorang perlu mengambil gambar kernel, firmware dan ramdisk dari SDK. SDK itu sendiri juga termasuk alat bantu untuk kompilasi silang, skrip untuk membangun image ROM dan VM yang disiapkan untuk QEMU, di mana Anda dapat melakukan pra-debug program Anda. Pengalaman dengan Debian 9 pada BFK 3.1 masih belum sepenuhnya mulus: setelah instalasi kita harus menggali ke dalam pengaturan dan menginstal beberapa perangkat lunak, tetapi tidak ada masalah khusus dengan ini. Sayang sekali belum ada dokumentasi lengkap untuk forum ini: kita harus mencari tahu melalui coba-coba atau tanyakan langsung kepada vendor.

Untuk menjalankan tes yang menghubungkan papan ke kuno dengan standar hari ini Kingston SSDNow V untuk OS dan modul memori Samsung DDR3L-1600 4 GB. Ini cukup untuk berkenalan dengan kemampuan SoC. Ada satu lagi nuansa - karena fitur pengendali tidak semua memori modul SO-DIMM terlihat. Poin penting lainnya berkaitan dengan build dasar program pengujian dari kode sumber: semuanya telah dilakukan secara langsung pada BFK 3.1. Bila perlu kunci kompiler ditentukan.

Kita harus mengatakan bahwa proses pembangunannya tidak selalu menyakitkan. Di suatu tempat kami harus menggali ke dalam parameter optimasi untuk mencapai hasil yang lebih baik. Sesuatu berjalan dengan baik, tetapi ketika dieksekusi, gagal atau tidak berfungsi dengan benar. Kadang-kadang, ada perasaan umum bahwa vendor tidak mencurigai keberadaan platform selain x86. Dan ini tidak hanya berlaku untuk perangkat lunak. Secara khusus, pada PCI-E, kemungkinan besar, GPU modern tidak akan berfungsi, karena, menurut vendor, hampir semuanya membutuhkan kehadiran UEFI / BIOS x86. Selain itu, mungkin ada masalah dengan perangkat yang menggunakan, misalnya, jembatan PCI PCI-E.
Baikal-T1 SoC KarakteristikMari kita tinjau sebentar prosesor itu sendiri sebagai permulaan. Baikal-T1 memiliki dua core 32-bit berdasarkan arsitektur P5600 Warrior (MIPS32 Release 5) dengan dukungan perangkat keras untuk virtualisasi. Setiap core menerima 64 KB L1-cache untuk data dan instruksi. Kedua core memiliki satu cache L2 1 MB yang umum. Juga, masing-masing inti memiliki FPU sendiri yang mendukung SIMD 128-bit. Semua core, L2 dan FPU beroperasi pada frekuensi 1,2 GHz yang sama. Prosesor ini mampu melakukan hingga empat operasi integer, hingga dua operasi pada angka floating point presisi ganda atau empat presisi tunggal per siklus clock. Itu memberikan kinerja puncak teoritis 4,8 GFlops FP64 (2 core 1,2 GHz Γ 2 FP64) atau 9,6 GFlops FP32. Namun, pada tingkat praktis, untuk membuka potensi SoC (seperti orang suka memposting dalam komentar), optimalisasi kode secara manual, dan kompiler, yang "tahu" tentang FPU / SIMD, fitur-fitur diperlukan.

Kenyataannya, misalnya, versi Linpack yang tidak dioptimalkan, yang disusun oleh GCC terbuka, menghasilkan hasil yang jauh dari yang diharapkan. Situasi seperti itu cukup normal untuk arsitektur baru atau spesifik (seperti Elbrus). Ini harus diperhitungkan saat mengevaluasi hasil yang diberikan di bawah ini. Poin penting lain yang perlu dikhawatirkan adalah kelemahan Meltdown dan Spectre yang terkenal. Blok komputasi dalam MIPS32r5 adalah superscalar dan mampu melakukan eksekusi instruksi luar biasa, tetapi jelas tidak ada pembicaraan spekulasi yang mendalam.
Vendor inti mengeluarkan peringatan tentang kemungkinan kehadiran Specter (bukan Meltdown) di inti P5600 / P6600 "bersih". Menurut vendor, dalam kasus Baikal-T1, kode verifikasi kerentanan resmi tidak membuahkan hasil, tetapi terlalu dini untuk menyatakan dengan pasti bahwa SoC tidak terpengaruh oleh kerentanan. Vendor berencana untuk mengatur hackathon untuk mengecek keamanan SoC.

Inti SoC berkomunikasi melalui bus AXI dengan seluruh komponen. Semua antarmuka kecepatan tinggi memiliki dukungan DMA. Pengontrol memori satu saluran itu sendiri mendukung DDR3-1600 dengan ECC. Kapasitas CPU maksimum yang didukung RAM adalah 8 GB. Ada nuansa lain - pengontrol memori memiliki bus data 32 bit dan 8 bit ECC dan mendukung kerja dengan chip memori dengan lebar 8 hingga 32 bit. Untuk produk jadi dengan modul yang sudah disolder, tidak ada masalah, tetapi dewan hanya akan melihat setengah dari volume yang dinyatakan dengan SO-DIMM konvensional, karena biasanya βterlihatβ ke luar dengan antarmuka 64-bit. Dan kecepatannya, jelas, akan lebih rendah - hingga 6,4 GB / s.
Bagian dalam SoC dapat
dikagumi di tautan ini .
SoC membutuhkan tegangan 0,95 V untuk catu daya dan konsumsi daya yang diklaim tidak lebih dari 5 watt. Selama pengujian, CPU menghangat hingga 60 dengan derajat plus kecil Celcius. Pendinginan aktif tidak diperlukan, namun dalam kasus tertutup radiator tidak akan berlebihan. Frekuensi inti disesuaikan secara dinamis dalam kisaran dari 200 hingga 1500 MHz, tetapi ini membutuhkan dukungan OS, sejauh ini dalam pembangunan Debian saat ini frekuensi dapat diatur pada startup sistem. Dalam kasus apa pun, selama operasi beban rendah satu inti dapat mati secara otomatis. Harga 65 USD Baikal-T1 diproduksi di TSMC 28-nm fab.
CoremarkSekarang mari kita langsung menuju tolok ukur. Yang pertama dalam antrian - CoreMark - adalah patokan khusus, yang digunakan untuk mengevaluasi kinerja prosesor dan SoC untuk sistem embedded. Singkatnya, dengan pengumuman rekor CoreMark baru, Imagination Technologies mulai menceritakan kisah tentang keunggulan inti MIPS P5600 Warrior. Yang benar adalah, pada saat itu itu adalah inti simulasi-FPGA berjalan pada 20 MHz. Kemudian itu semua tentang catatan dalam megahertz per core nilai CoreMark: 5,61, tetapi pada kenyataannya itu layak dihitung pada nilai sekitar 5. Vendor inti bahkan menunjukkan efisiensi yang lebih besar dari P5600 dibandingkan dengan CPU Intel desktop . Secara formal, Baikal-T1 adalah pemimpin dalam hal megahertz dan megahertz per inti. Dalam praktiknya, untuk mencapai kinerja secara absolut, vendor menggunakan metode yang luas, meningkatkan frekuensi dan jumlah core.

Sayangnya, basis hasil CoreMark tidak diisi dengan sangat hati-hati, jadi kami harus memilih tes untuk chip dual-core secara manual dengan karakteristik frekuensi yang dekat dengan Baikal-T1 dan juga indikasi eksplisit bahwa tes tersebut menggunakan dua aliran. Sebagai perbandingan, kami sengaja memasukkan spesimen empat inti. Secara umum, seseorang dapat menentukan peringkat hasil benchmark dengan beberapa kriteria. Namun, itu segera menghasilkan banyak nuansa: pertama, ARM dan MIPS IP-core dilisensikan kepada perusahaan pihak ketiga, sehingga implementasi desain yang sama dapat sangat bervariasi; kedua, banyak tergantung pada optimalisasi kode perangkat lunak, build dan runtime-nya.
Untuk pengujian dasar kami, kami menggunakan GCC 6.3 dengan opsi berikut: -O3 -DMULTITHREAD = 2 -DUSE_PTHREAD -funroll-all-loop -fgcse-sm - fgcse-las -finline-limit = 1000 -mhard-float -mtune = p5600 .
Tes dari vendor juga termasuk lingkungan komersial Sourcery CodeBench. Selanjutnya dalam tabel penunjukan berikut diterima: "tes resmi" - untuk hasil yang diposting di situs web vendor; "Precomp" - untuk menjalankan file benchmark biner yang disediakan oleh vendor CPU; "A / pilih." - build kami sendiri dari kode sumber terbuka dengan kunci yang ditunjukkan; "Memilih." - kompilasi silang dengan SDK dan utilitas komersial oleh "resep" vendor. Optimalisasi manual memungkinkan untuk mencapai kinerja yang lebih baik, yang sangat jelas terlihat di tabel hasil. Namun, kita tidak perlu memilah-milah kunci dan menggali ke dalam kode, sedangkan pengembang perangkat lunak Baikal-T1 pasti harus menghadapinya secara teratur.
Tolok ukur klasikDari
dokumen yang sama orang dapat memilih hasil dari tolok ukur klasik "sekolah tua". Tes Stream untuk bandwidth memori dikompilasi untuk satu utas dengan kunci berikut: -mtune = p5600 -O2 -funroll-all-loop. Hasilnya sekitar setengah dari kecepatan RAM teoritis.

Semua yang dikatakan di atas tentang CoreMark berlaku untuk Dhrystone2 (yang berkaitan dengan komputasi integer), yang dikompilasi di pangkalan dengan minimum kunci: -O3 -funroll-all-loop -mtune = p5600. Sayangnya, seperti pada contoh di atas, basis pengukuran bukanlah contoh akurasi. Sebagai perbandingan, beberapa hasil diambil untuk perhitungan 32-bit dengan indikasi eksplisit optimasi. Sayangnya, mereka tidak memposting model CPU tertentu atau setidaknya generasi. Selain itu, masalah ini diperumit dengan kehadiran TurboBoost atau jangka pendek serupa (dan tes ini hanya singkat) peningkatan frekuensi dasar prosesor, yang melumasi keseluruhan gambar. Sekali lagi, situasi berulang dalam pengujian dengan CoreMark - dalam hal megahertz, kinerja P5600 tidak buruk.

Tetapi CPU modern lainnya meningkatkan kinerja baik dengan meningkatkan frekuensi, dengan mendukung instruksi 64-bit, dan juga dengan jumlah core pada saat bersamaan. Hasil Whetstone sebagian besar sama, hanya perbedaan dari peningkatan fluks dan penggunaan instruksi vektor bahkan lebih mencolok. Oh ya, untuk membangun semua ini, kami harus sedikit menyesuaikan kode dengan menghapus panggilan yang tidak penting ke perakitan x86 dan pemeriksaan ekstensi x86, yang hanya diperlukan untuk identifikasi CPU.

Untuk pemeriksaan cepat Gigabit Ethernet adapter kami menggunakan utilitas iperf 3.1.3, yang menunjukkan bahwa untuk koneksi satu arah kecepatan diperlukan 940 Mb / s, tetapi dalam dupleks, sayangnya, kecepatannya di 1.2 Gb / s. Ketika menjelaskan fakta ini, perlu dicatat, bahwa penyetelan kecil di tingkat perangkat lunak diperlukan untuk mendapatkan kinerja penuh.
Phoronix Test SuiteKami tahu ide ini berbau seperti kegilaan, karena PTS (https://www.phoronix-test-suite.com/) umumnya tidak dirancang untuk sistem seperti itu. Pembuatannya berlangsung langsung pada mesin uji, jadi dalam kasus Baikal-T1 ini hanya sangat lama, serta durasi sebagian besar tes. Kami mengecualikan beberapa tes yang dikecualikan dari suite: yang gagal dikompilasi, atau dilakukan tidak sopan untuk waktu yang lama bahkan pada PC "dewasa". Masalah pertama, secara teori, dapat ditangani secara manual, menyesuaikan parameter build. Tetapi sekali lagi, kami tidak memiliki tugas seperti itu dan bagaimanapun hasil tes tidak mungkin mencapai nilai maksimum yang mungkin.

Semua hasil tes tersedia di
tautan ini. Sebenarnya, semua itu adalah cadangan untuk masa depan, karena saat ini kami tidak dapat membandingkan. Nanti kita akan dapat melihat, seberapa jauh lebih baik (atau tidak) hasilnya setelah memperbaiki membangun dan optimasi. Untuk yang penasaran, hanya dapat menyebutkan beberapa konfigurasi tolok ukur kebetulan secara acak dari prosesor Cina Loongson Godson 3A3000 (4 core @ 1,5 Hz, L2-cache 1 MB, L3-cache 8 MB, 28 nm, 30 W). Kedua CPU serupa dalam arsitektur baru dan masalah optimasi perangkat lunak untuk arsitektur ini. Sejauh ini, Cina berada di depan dengan margin besar dalam hal absolut, tetapi dalam hal inti, MHz dan konsumsi hasilnya sedikit kurang jelas.

Kesimpulan
Baikal-T1 terkenal sebagai produk modern, pengembang Rusia mampu menerapkan oleh tim yang relatif kecil dalam waktu yang diterima industri. Ini cukup murah (dibandingkan dengan prosesor Rusia lainnya) dan tersedia di pasar. Tetapi keberhasilannya (atau kegagalan) benar-benar dapat dievaluasi hanya setelah satu atau dua tahun - itu semua tergantung pada siapa dan berapa volume yang akan menggunakan SoC ini dalam produk mereka. Saat ini, hanya beberapa produk akhir yang diumumkan secara publik - https://baik.al/sdelano. Semua ini adalah contoh khas dari area aplikasi Baikal-T1, kami juga ingin melihat lebih banyak solusi NAS / SAN, IoT dan SDR. Namun, ini bukan tentang perangkat keras lagi. CPU itu sendiri sangat bagus, terutama ketika mengevaluasi kinerjanya, daripada absolut, kinerjanya. Tetapi masih ada banyak masalah dan kekasaran perangkat lunak. Berbicara secara khusus tentang papan BFK3.1, ia memiliki dokumentasi yang sangat lemah. Secara global pertanyaannya adalah ini: siapa yang akan menggunakan perangkat lunak untuk arsitektur ini? Siapa yang akan mengembangkan alat yang membuat proses ini semudah mungkin? Apakah akan ada komunitas pengembang perangkat lunak yang cukup kuat? Sebagai contoh, dukungan untuk virtualisasi perangkat keras, yang disebutkan dalam deskripsi CPU, hanya muncul di musim panas tahun lalu, dengan rilis kernel Linux 4.12. Dan secara umum, kami bertanya-tanya apa yang akan terjadi di sebelah arsitektur MIPS. Lima tahun lalu pilihan arsitektur khusus untuk produk baru ini sangat masuk akal. Dan sekarang? Itu adalah pertanyaan ...