HW-accelerated compression in future silicon

DrMickeyLauer
Posts: 168
Joined: Sun May 22, 2022 2:42 pm

HW-accelerated compression in future silicon

Postby DrMickeyLauer » Mon Jan 29, 2024 2:22 pm

Next to integrating a modern CAN-FD controller (I lamented about that before), I wonder whether integrating hardware-accelerated data compression would be feasible, perhaps with a dedicated cache RAM or a quick-path to the PSRAM.

MicroController
Posts: 1705
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: HW-accelerated compression in future silicon

Postby MicroController » Mon Jan 29, 2024 3:28 pm

May be feasible. - But, IMO, not going to happen.
Just imagine, if there was some dedicated cache/RAM for specialty function X. First question on the forum would be "how can we use the dedicated extra RAM for general purposes?" - Same thing for functionality: I'd rather have 50 MHz more of general computing power than dedicated hardware for a specialty function which I can easily implement in software using the extra 50 MHz, while I can also 'use' the MHz for any other purpose my application may need.

However, looking at the S3's SIMD instruction set, I feel a few sensible additions could be made which would, among other things, support data compression. Like vector->scalar min()/max() operations, or vector x scalar -> scalar "find()".

ESP_Sprite
Posts: 9727
Joined: Thu Nov 26, 2015 4:08 am

Re: HW-accelerated compression in future silicon

Postby ESP_Sprite » Tue Jan 30, 2024 12:01 am

The additional question is: is it worth doing HW-accelerated compression? I haven't really seen an use case where e.g. zlib or miniz is used but is too slow to be practical. Largest issue I see with compression is that on a 'bare' esp32 chip, it uses a fair bit of RAM, but that is generally fixed by adding external PSRAM nowadays.

MicroController
Posts: 1705
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: HW-accelerated compression in future silicon

Postby MicroController » Wed Jan 31, 2024 10:28 am

I too feel that CPU power may not necessarily be an issue in your case; it may actually be more of an API thing.

Check out Heatshrink for example, which lets you incrementally push pieces of data in so that the CPU load for an incoming stream of messages is spread along the stream.

Who is online

Users browsing this forum: MicroController and 68 guests