[FFmpeg-user] CPU and GPU
Mark Filipak
markfilipak.windows+ffmpeg at gmail.com
Tue Mar 3 09:47:34 EET 2020
I hope what the analogies below will help folks better understand the
technology we use.
Transistors are to logic gates as quarks are to electrons, protons, and
neutrons. Logic gates come in 2 flavors: AND and OR, and it's from them
alone that all other digital elements are made.
Logic gates are to FSMs (finite state machines) as electrons, protons,
and neutrons are to atoms.
FSMs are to CPU units (code crackers, execution units, cache
controllers) as atoms are to molecules. Microcode is relatively simple
sequences that operate on CPU units in the way that RNA sequences
operate on ribosomes.
CPU units are to CPU cores as ribosomes are to cells.
CPU cores are to main boards as cells are to organs. Machine code
coordinates the operations of CPU cores in the way that hormones
coordinate the operations of organs.
Main boards are to computers as organs are to organisms. Programs
determine computer behavior in the way that instincts (and sometimes,
thoughts) determine the behaviors of organisms.
So, you see, programs are layers removed from machine code and machine
code is layers removed from microcode. Microcode requires no execution
environment. Machine code requires a CPU environment. Programs require a
computer environment.
FPGAs are collections of configurable logic gates that can be configured
to make anything that can be made with logic gates, including any type
of processor or sequencer in addition to static logic.
Since they are configurable, much capacity is lost to connections not
made, for example, to redundant input/output transistors not utilized,
to routing channels only partly used, etc.
However, in addition to a sea of uncommitted gates, some FPGAs contain
hand crafted (compact), commonly needed peripherals (e.g., SPI, HDMI)
and even cores (e.g., ARM).
SoS (software-on-silicon) licensors such as NGCodec are companies that
have developed the particular configurations (i.e., circuitry) to make
an FPGA (such as are made by Xilinx, which purchased NGCodec), that are
particular to a specific task such as processing video streams or
network protocols.
So. you see, thinking about the logic gates in FPGAs and what can be
built with them is like thinking about electrons, protons, and neutrons
and what can be built with them.
More information about the ffmpeg-user
mailing list