Overview of Computer Engineering
Why Robots Need to Understand Computer Engineering
A robot is a complex computing system. From sensor data acquisition to actuator output, the entire process relies on the coordination of computer hardware and software. Understanding the fundamentals of computer engineering helps us:
- Select appropriate computing platforms: Different tasks have different requirements for computing power, power consumption, and latency
- Optimize system performance: Identify bottlenecks and optimize accordingly
- Debug hardware issues: Quickly locate communication faults, timing problems, etc.
- Design reliable systems: Avoid common pitfalls such as resource contention and deadlocks
From Transistors to Operating Systems: Abstraction Layers
The core idea of computer systems is Layered Abstraction. Each layer hides the complexity of the layers below and provides a clean interface to the layers above.
graph TB
A[Application Layer] --> B[Operating System]
B --> C[Driver Layer]
C --> D[Microarchitecture]
D --> E[Logic Gates]
E --> F[Transistors]
F --> G[Physics Layer]
style A fill:#e1f5fe
style B fill:#b3e5fc
style C fill:#81d4fa
style D fill:#4fc3f7
style E fill:#29b6f6
style F fill:#03a9f4
style G fill:#0288d1
Layer Descriptions
| Abstraction Layer | Key Concepts | Robotics Correspondence |
|---|---|---|
| Physics Layer | Semiconductor physics, transistors | Chip fabrication process (7nm, 5nm) |
| Logic Gates | AND, OR, NOT, flip-flops | Logic units in FPGAs |
| Microarchitecture | Pipeline, cache, branch prediction | Internal structure of CPU/GPU |
| ISA (Instruction Set Architecture) | x86, ARM, RISC-V instructions | Basis for choosing a processor platform |
| Driver Layer | Device drivers, interrupt handling | Sensor drivers, motor control drivers |
| Operating System | Process scheduling, memory management | Linux, RTOS |
| Application Layer | ROS2 nodes, deep learning inference | Navigation, perception, planning algorithms |
The Von Neumann Model
The fundamental architecture of modern computers follows the Von Neumann Architecture:
graph LR
A[Input Device<br>Input] --> B[Memory<br>Memory]
B --> C[Control Unit<br>Control Unit]
B --> D[Arithmetic Logic Unit<br>ALU]
C --> D
D --> B
B --> E[Output Device<br>Output]
subgraph CPU
C
D
end
Core Characteristics
- Stored program: Instructions and data are stored in the same memory
- Sequential execution: The program counter (PC) points to the next instruction in sequence
- Binary encoding: All information is represented in binary
The Von Neumann Bottleneck
The limited data transfer bandwidth between the CPU and memory is the well-known Von Neumann Bottleneck:
In robot systems, this bottleneck manifests as:
- High-resolution camera data streams require large bandwidth
- Loading deep learning model weights is limited by memory bandwidth
- Contention when multiple sensors concurrently access memory
The Robot Computing Stack
A typical robot system computing stack:
graph TB
subgraph Application Layer
A1[Perception]
A2[Planning]
A3[Control]
end
subgraph Middleware Layer
B1[ROS2]
B2[DDS Communication]
end
subgraph OS Layer
C1[Linux Kernel]
C2[Device Drivers]
C3[Real-time Scheduling]
end
subgraph Hardware Layer
D1[Main SoC<br>Jetson / RPi]
D2[Co-processor<br>MCU / FPGA]
D3[Sensors<br>Camera / LiDAR / IMU]
D4[Actuators<br>Motor / Servo]
end
A1 --> B1
A2 --> B1
A3 --> B1
B1 --> B2
B2 --> C1
C1 --> C2
C2 --> C3
C3 --> D1
D1 --> D2
D2 --> D3
D2 --> D4
Heterogeneous Computing
Modern robot systems typically employ a Heterogeneous Computing architecture:
| Compute Unit | Strengths | Typical Tasks |
|---|---|---|
| CPU (ARM Cortex-A) | General-purpose computing, complex logic | ROS2 nodes, path planning |
| GPU (CUDA cores) | Massively parallel computing | Deep learning inference, point cloud processing |
| MCU (Cortex-M) | Real-time control, low power | Motor PID control, sensor acquisition |
| FPGA | Low latency, customizable | Image preprocessing, communication protocols |
| NPU/TPU | Neural network acceleration | Dedicated AI inference |
Performance Metrics
Clock Frequency and Actual Performance
Clock frequency does not directly equal performance. Actual performance depends on:
Where:
- Instruction Count: Total number of instructions executed by the program
- CPI (Cycles Per Instruction): Average number of clock cycles per instruction
- Clock Period: \(T = 1/f\), where \(f\) is the clock frequency
Power Consumption and Thermal Dissipation
For battery-powered mobile robots, power consumption is a critical constraint:
Where \(\alpha\) is the activity factor, \(C\) is the equivalent capacitance, \(V\) is the voltage, and \(f\) is the frequency.
Methods for Reducing Power Consumption
- Lower voltage (DVFS, Dynamic Voltage and Frequency Scaling)
- Disable idle modules (Clock Gating)
- Use more advanced manufacturing processes
Comparison of Common Robot Computing Platforms
| Platform | Processor | GPU | AI Performance | Power | Typical Use |
|---|---|---|---|---|---|
| Raspberry Pi 5 | BCM2712 (Cortex-A76) | VideoCore VII | - | 5-12W | Education, lightweight robots |
| Jetson Orin Nano | Cortex-A78AE | Ampere (1024 cores) | 40 TOPS | 7-15W | Visual navigation, small robots |
| Jetson Orin NX | Cortex-A78AE | Ampere (2048 cores) | 100 TOPS | 10-25W | Autonomous mobile robots |
| Jetson AGX Orin | Cortex-A78AE | Ampere (2048 cores) | 275 TOPS | 15-60W | Autonomous driving, humanoid robots |
| STM32H7 | Cortex-M7 (480MHz) | - | - | <1W | Motor control, sensor acquisition |
Latency Analysis
For real-time robot systems, end-to-end latency is a critical metric:
graph LR
A[Sensor Acquisition<br>~10ms] --> B[Data Transfer<br>~2ms]
B --> C[Preprocessing<br>~5ms]
C --> D[Inference/Planning<br>~20ms]
D --> E[Control Computation<br>~1ms]
E --> F[Actuator Response<br>~5ms]
Latency Budget
For a 1000Hz control loop, the total budget is only 1ms. For 30FPS visual processing, the budget is approximately 33ms. The time for each stage must be carefully allocated.
Summary
Computer engineering provides the complete computational foundation from hardware to software for robot systems. Key takeaways:
- Layered abstraction makes complex systems manageable
- The Von Neumann architecture is the foundation for understanding computer systems
- Heterogeneous computing is standard for robot systems
- Performance, power consumption, and latency must be balanced
- Computing platform selection should match specific application requirements
References
- Patterson, D. A., & Hennessy, J. L. Computer Organization and Design: The RISC-V Edition
- NVIDIA Jetson Documentation: https://developer.nvidia.com/embedded/jetson
- ARM Architecture Reference Manual