System Processors: cpu, gpu, fpga
Key Points
References
Reference_description_with_linked_URLs_______________________ | Notes______________________________________________________________ |
---|---|
Evolution-processor-architectures-future-computing-ashvit–xwelc/ Evolution of Processor Architectures and the Future of Computing _ LinkedIn.pdf file Evolution of Processor Architectures and the Future of Computing _ LinkedIn.pdf. link | |
Processor Architectures - 2014 - Jeremy Faircloth). | good overview in 2014 of common architectures *** |
Key Concepts
https://www.linkedin.com/pulse/evolution-processor-architectures-future-computing-ashvit–xwelc/
The Best CPUs for 2025 - pc mag
What Are the Leading Processor Architectures? - 2024 - WNDRVR.
AMD vs ARM: Which One to Choose? - 2024 - Karthik.
CISC
RISC
Power
ARM
Qualcomm
Samsung
FPGA processor
An FPGA processor, which stands for "Field Programmable Gate Array" processor, is a type of integrated circuit that can be reconfigured after manufacturing to perform specific functions by programming its internal logic blocks, essentially allowing designers to customize the hardware to suit their exact needs, unlike traditional processors with fixed functionality; this makes FPGAs ideal for applications requiring high flexibility and rapid prototyping
Key points about FPGA processors:
- Reprogrammable:Unlike standard processors, FPGAs can be reprogrammed on-the-fly to adapt to changing requirements.
- Hardware Description Languages (HDLs):To configure an FPGA, engineers write code in languages like Verilog or VHDL, which describes the desired logic circuits.
- Parallel Processing:FPGAs excel at parallel processing due to their array of configurable logic blocks, making them efficient for computationally intensive tasks.
- Applications:FPGAs are commonly used in areas like signal processing, image processing, telecommunications, high-performance computing, and custom hardware design.
https://en.wikipedia.org/wiki/Field-programmable_gate_array
A FPGA configuration is generally written using a hardware description language (HDL) e.g. VHDL, similar to the ones used for application-specific integrated circuits (ASICs)
The logic blocks of an FPGA can be configured to perform complex combinational functions, or act as simple logic gates like AND and XOR. In most FPGAs, logic blocks also include memory elements, which may be simple flip-flops or more sophisticated blocks of memory.[1] Many FPGAs can be reprogrammed to implement different logic functions, allowing flexible reconfigurable computing as performed in computer software.
FPGAs also have a role in embedded system development due to their capability to start system software development simultaneously with hardware, enable system performance simulations at a very early phase of the development, and allow various system trials and design iterations before finalizing the system architecture.[2]
FPGAs are also commonly used during the development of ASICs to speed up the simulation process.
Xilinx produced the first commercially viable field-programmable gate array in 1985[3] – the XC2064.[5] The XC2064 had programmable gates and programmable interconnects between gates, the beginnings of a new technology and market.[6] The XC2064 had 64 configurable logic blocks (CLBs), with two three-input lookup tables (LUTs)
As FPGA designs employ very fast I/O rates and bidirectional data buses, it becomes a challenge to verify correct timing of valid data within setup time and hold time.[19] Floor planning helps resource allocation within FPGAs to meet these timing constraints.
Some FPGAs have analog features in addition to digital functions. The most common analog feature is a programmable slew rate on each output pin. This allows the user to set low rates on lightly loaded pins that would otherwise ring or couple unacceptably, and to set higher rates on heavily loaded high-speed channels that would otherwise run too slowly.[20][21] Also common are quartz-crystal oscillator driver circuitry, on-chip RC oscillators, and phase-locked loops with embedded voltage-controlled oscillators used for clock generation and management as well as for high-speed serializer-deserializer (SERDES) transmit clocks and receiver clock recovery. Fairly common are differential comparators on input pins designed to be connected to differential signaling channels. A few mixed signal FPGAs have integrated peripheral analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) with analog signal conditioning blocks, allowing them to operate as a system on a chip (SoC).[22] Such devices blur the line between an FPGA, which carries digital ones and zeros on its internal programmable interconnect fabric, and field-programmable analog array (FPAA), which carries analog values on its internal programmable interconnect fabric.
Programming FPGA
The most common HDLs are VHDL and Verilog. National Instruments' LabVIEW graphical programming language (sometimes referred to as G) has an FPGA add-in module available to target and program FPGA hardware. Verilog was created to simplify the process making HDL more robust and flexible. Verilog has a C-like syntax, unlike VHDL.[34][self-published source?]
To simplify the design of complex systems in FPGAs, there exist libraries of predefined complex functions and circuits that have been tested and optimized to speed up the design process. These predefined circuits are commonly called intellectual property (IP) cores, and are available from FPGA vendors and third-party IP suppliers. They are rarely free, and typically released under proprietary licenses. Other predefined circuits are available from developer communities such as OpenCores (typically released under free and open source licenses such as the GPL, BSD or similar license). Such designs are known as open-source hardware.
In a typical design flow, an FPGA application developer will simulate the design at multiple stages throughout the design process. Initially the RTL description in VHDL or Verilog is simulated by creating test benches to simulate the system and observe results. Then, after the synthesis engine has mapped the design to a netlist, the netlist is translated to a gate-level description where simulation is repeated to confirm the synthesis proceeded without errors. Finally, the design is laid out in the FPGA at which point propagation delay values can be back-annotated onto the netlist, and the simulation can be run again with these values.
More recently, OpenCL (Open Computing Language) is being used by programmers to take advantage of the performance and power efficiencies that FPGAs provide. OpenCL allows programmers to develop code in the C programming language.[35] For further information, see high-level synthesis and C to HDL.
Most FPGAs rely on an SRAM-based approach to be programmed. These FPGAs are in-system programmable and re-programmable, but require external boot devices. For example, flash memory or EEPROM devices may load contents into internal SRAM that controls routing and logic. The SRAM approach is based on CMOS.
Potential Value Opportunities
Potential Challenges
Candidate Solutions
GEEKOM A7 Mini PC AMD Ryzen 9 7940HS - $750
- AMD Ryzen™ 9 7940HS.
- AMD Radeon™ graphics 780M.
- Dual-channel DDR5 5600MT/s, up to 64GB.
- Wi-Fi6E and Bluetooth5.2.
- Ultra-slim, space-saving design.
- Windows 11 Pro is pre-installed.
Step-by-step guide for Example
sample code block