Back to Basics: FLOPs and Embedded Systems

In recent client discussions on FLOPs and the process of selecting embedded SoCs, I found it essential to share some insights here.

FLOPs or Floating Point Operations per second, is a metric used by computing folks to measure how many floating point operations your device can do per second. The larger the FLOPs, the faster the system processes computations. There are variants like GFLOPs, TFLOPs, PFLOPs denoting Giga, Tera, Peta, indicative of higher compute capabilities. Due to marketing pressures, we usually, see the theoretical FLOP numbers being mentioned in datasheets. The practical scenario introduces various factors, such as data access speed, that reduce this value heavily. FLOPs are usually practically calculated by having an equation similar to (a+(b*c)) involving 2 floating point operations of add and multiply called Fused Multiply Add (FMA), where processors with FMA support perform floating-point multiply-add operations in a single fused step.

While FLOPs are a relevant metric their significance in the embedded domain depends on the nature of the applications the embedded system will be running. Higher FLOPs often translate to a larger power budget, a potential deal-breaker for battery-operated systems. Embedded systems often require a balance between performance and power efficiency. Remember that.

Personally, I find CoreMark scoring to be a superior metric for embedded applications. It offers a singular figure per MHz or per mA indicating processing capabilities for power consumed.. I discuss CoreMark in older posts on my website, explaining why it stands out as a benchmark. But Alas, it hasn’t gained widespread traction, and manufacturers seldom include it in datasheets. It will change in the future I am sure.

In essence, the right processor for an embedded application rests on the specific requirements of that application. Just don’t go chasing FLOPs alone.

If you liked the post, Share it with your friends!

Back to Basics: What does p in 1080p stand for?

Yesterday I was doing some research into display drivers for a project and got to learn about how the TV displays evolved. One of the things I learned was contrary to popular belief, it’s not pixels – it stands for “progressive.” Let me explain.

The “1080” part of 1080p stands for the number of pixels in the vertical direction of your display. It can be 720, 1440, 2160, etc. When you are trying to display something on a screen(called “scanning” the screen), there are 2 ways of doing it. Interlaced scan and Progressive scan. In an interlaced scan, the image to be displayed is divided into two fields, and only half of the lines are shown at a time. The first field includes the odd-numbered lines(1,3,5,..,1079), and the second field includes the even-numbered lines(2,4,6,…,1080). These fields are then displayed alternately to create a complete frame. Meaning, that at a single time, only half the screen is refreshed to a newer image. This was done in the olden days of CRT Displays to show higher-quality images on screen with only half the bandwidth. It reduced the transmission rate needed for videos. But this has drawbacks for fast-moving scenes, you may observe some stripes/artifacts in the screens for these videos.

Now Progressive scans, on the other hand, displays or “scans” every 1080 lines one by one, top to bottom, and refreshes every pixel on the screen at the same time. That means full bandwidth is needed to show a frame. Progressive scan provides a smoother, faster, and more detailed image, making it a preferred choice for modern displays. You don’t find interlaced formats that much these days.

Now you know what “p” means. Who knew pixels could be so progressive? ????

If you liked the post, Share it with your friends!
1 38 39 40 41 42 73