Lumina Blocks
Veri sıkıştırma
Önizleme · v0.1.0

LM-LZS-E

LZ4/Snappy veri sıkıştırıcı

  • Standartlara uygun çerçeveleme doğrudan bloktan
  • Yapılandırılabilir arama penceresi
  • Sıkıştırılmamış blok yedeği
  • Her FPGA'ya taşınabilir

LM-LZS-E, FPGA ve SoC tasarımları için kayıpsız bir sıkıştırma bloğudur.

Motor, veriyi donanımda LZ4 ya da Snappy formatına sıkıştırır ve standartlara uygun çerçevelemeyi doğrudan bloktan üretir: checksum'larıyla bir LZ4 frame'i, bir Snappy ham stream'i ya da chunk başına maskelenmiş CRC-32C ile Snappy framing formatı. Arama penceresi, formatların izin verdiği aralık boyunca yapılandırılabilir; sıkışmayan bir blok büyütülmek yerine sıkıştırılmadan yazılır.

Blok, üreticiden bağımsız SystemVerilog olarak teslim edilir ve AMD, Altera ve Efinix cihazlarında aynı kaynaktan derlenir. AMBA AXI arayüzleri ve bir register haritası içerir; hedef platforma hızlı entegrasyon için ANSI C sürücüleri sağlanır.

Ölçülmüş FPGA sonuçları

Ürün top'ı, bağlam dışı (out of context) ve hedef saatte kısıtlanmış olarak. AMD ve Efinix LUT, Altera ALM raporlar; ikisi hiçbir zaman birleştirilmez.

CihazKonfigürasyonMantıkFFBellekDSPFmax
Altera Agilex 3A3CW135BM16AE6S · quartus-pro 26.1.1HIST_B=128, LZ4_EN=1, SNAPPY_EN=1, STORED_EN=11.327 ALM1.534392 Kb M20K2208,5 MHzhedef 205
AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1HIST_B=128, LZ4_EN=1, SNAPPY_EN=1, STORED_EN=11.829 LUT1.08813 BRAM3311,4 MHzhedef 300
AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1HIST_B=128, LZ4_EN=1, SNAPPY_EN=1, SNAPPY_FRAMING_EN=1, STORED_EN=12.059 LUT1.22113 BRAM3316,7 MHzhedef 300
Efinix Titanium Ti375Ti375N1156 · efinity 2026.1HIST_B=128, LZ4_EN=1, SNAPPY_EN=1, STORED_EN=19.840 LUT6.72749 RAM3216,1 MHzhedef 205

Özellikler

Formatlar

  • LZ4 frame formatının tamamı: magic, descriptor, blok başlıkları, EndMark
  • Snappy ham stream formatı
  • Snappy framing formatı: stream tanımlayıcısı, blok başına bir chunk, maskelenmiş CRC-32C
  • Format çalışma zamanında seçilir

Sıkıştırma

  • 128 bayttan 32 kB'a yapılandırılabilir arama penceresi
  • Yapılandırılabilir maksimum blok boyutu
  • Sıkıştırılmamış blok yedeği: sıkışmayan bir blok sıkıştırılmadan yazılır; böylece çıkış girişi çerçeveleme payından fazla aşmaz
  • LZ4 frame'i için xxHash-32 checksum'ları: başlık, blok başına ve içerik

Güvenilirlik

  • Arama belleğinde isteğe bağlı SECDED hata düzeltme
  • Düzeltilemeyen bir hata, bozuk çıkış üretmek yerine stream'i sonlandırır

Entegrasyon

  • AMBA AXI4-Lite kontrol, AXI4-Stream giriş ve çıkış
  • Birbirinden bağımsız giriş ve çıkış genişlikleri
  • İki teslim top'ı: eksiksiz AXI ürünü ya da kendi yapınız için yalın sıkıştırıcı
  • ANSI C sürücüsü, UVM RAL, IP-XACT, SystemRDL register tanımı

Uygulamalar

  • Depolama ve dosya sistemi sıkıştırmasını donanıma aktarma
  • Ağ ve RPC payload sıkıştırması
  • Log ve telemetri verisini kaynağında azaltma
  • Veritabanı sayfa ve sütun sıkıştırması
  • Firmware ve konfigürasyon imajı paketleme

Blok diyagramı


Arayüzler

ArayüzTürGenişlikTaşıdığı
s_axilAXI4-Lite slave32 bityetenekler, kontrol, komut, durum, hata çifti, sayaçlar, stream_len
s_axisAXI4-Stream sinkIN_W, tkeep, tlastsıkıştırılmamış stream
m_axisAXI4-Stream sourceOUT_W, tkeep, tlastsıkıştırılmış stream
irqseviye1 bittamamlanma ve hata olayları

Snappy, sıkıştırılmamış uzunluğu ilk bayttan önce ister. Bu formatın girişi, uzunluğu taşıyan ve sıkıştırılmış verilerden önce yazılan bir varint'tir; bu yüzden stream_len stream başlamadan önce yazılır. LZ4'ün buna ihtiyacı yoktur; frame'i boyutları sonradan taşır.


Bant genişliği

Bu blokta tek bir blok motoru vardır ve ölçülmüş kararlı durum hızı bu sayfadaki ölçülmüş sonuçlarla birlikte yayımlanır. Mimarinin tavanı saat başına bir giriş baytının altındadır ve bunun nedeni ayar değil, yapıdır: bir tarama konumu ve doğrulanmış bir bayt ayrı ayrı birer saate mal olur ve bunlar farklı saatlerdir; taranıp sonra eşleşmeyle uzatılan bir baytın bedeli iki kez ödenir.

Bütçesi daha fazla bant genişliği gerektiren bir entegratör birden fazla motor örnekler; üstlerine bir giriş zamanlayıcı ve sıralı çıkış birleştirme koyar. Değerin arkasındaki ölçülmüş saat dağılımı (uzatmada, taramada, sequence devrinde ve bank reddinde geçen çevrimlerin oranı) değerle birlikte yayımlanır; böylece tavana güvenmek yerine onu denetleyebilirsiniz.

cnt_in, cnt_out ve cnt_cycles, host'un kendi trafiği üzerinde ulaşılan hızı ölçmesini sağlar.


Sıkıştırma oranı

Oran bir register değildir. Oran, sürücünün önemli olan pencere üzerinde hesapladığı cnt_in bölü cnt_out değeridir. Donanımın raporladığı bir oran, donanımın seçtiği bir anda yuvarlanmış bir sayıdır.

Referans yazılım kodlayıcılarına karşı varsayılan ayarlarda, adı verilen derlemler üzerinde ölçülen oranlar; derlem, pencere ve blok boyutu belirtilerek ölçülmüş sonuçlarla birlikte yayımlanır.


Konfigürasyon

ParametreTürEtkisi
HIST_Belaborationbayt cinsinden arama penceresi, 128 ile 32768 arası; alanı en çok etkileyen parametre
MAX_BLOCKelaborationmaksimum blok boyutu
IN_W, OUT_Welaborationbirbirinden bağımsız stream genişlikleri
LZ4_EN, SNAPPY_EN, STORED_ENelaborationformatlar ve sıkıştırılmamış blok yolu
SNAPPY_FRAMING_ENelaborationSnappy framing katmanı
CHECKSUM_EN, ECC_ENelaborationxxHash-32 checksum'ları, arama belleği SECDED
format seçimiçalışma zamanıLZ4 ya da Snappy

Kaynaklar ve performans

Her hedef cihaz için kaynak kullanımı ve maksimum saat frekansı bağlam dışında (out of context) ölçülür ve bu sayfadaki ölçülmüş sonuçlarda, daha büyük bir pencerenin alan maliyeti görülebilsin diye pencere kademeleri boyunca hedef bazında yayımlanır. AMD ve Efinix satırları LUT, Altera satırları ALM raporlar; ikisi hiçbir zaman birleştirilmez.


Teslimat içeriği

Öğeİçerik
RTLparametrik, üreticiden bağımsız SystemVerilog
Modelbit doğruluğunda C++ modeli; aynı zamanda kodlamanın spesifikasyonu
Register'larSystemRDL kaynağı ve üretilmiş altı dışa aktarım
DoğrulamaUVM RAL, formal property wrapper'ları, derlem ve vektör sürücüleri
Yazılımüretilmiş başlık dosyası ve JSON ile ANSI C referans sürücüsü
PaketlemeIP-XACT, IEEE 1685-2022
Gerçeklemeher FPGA üreticisi için çalıştırılabilir akış script'i, dosya listesi, SDC
Dokümantasyonentegrasyon kılavuzu

Gizlilik ayarları

Bu sitenin neleri kullanabileceğini seçin. Kararınızı her sayfanın altındaki Gizlilik ayarları bağlantısından dilediğiniz zaman değiştirebilirsiniz.

Sitenin çalışması için gerekenler ve burada yaptığınız seçimin kaydı. Kayıt tarayıcınızda tutulur; çerez kullanılmaz.

Her zaman açık

Ziyaretleri saymamıza ve hangi sayfaların işe yaradığını görmemize olanak tanır; reklam ya da siteler arası takip içermez. Şu anda hiçbir analitik aracı kullanmıyoruz, yani seçiminiz ne olursa olsun hiçbir şey yüklenmez.

Çerez politikası · Gizlilik politikası