noc 片上网络

目录

一,NOC理论基础

1. 多层多通道的互连结构

2. 服务质量保证

3. 专用带宽通道

4. 与DDR控制器的紧密耦合

二,rk3288的NOC

1,内存映射关系

2,NOC 地址空间布局

3,NOC 层次

三,注意事项


这个资料不全,厂家保密,所以学习的不够细,只能了解整体思路了。

一,NOC理论基础

在传统的SoC设计中,各个IP核(如CPU、GPU、VPU、内存控制器等)通常通过共享总线(如AMBA AXI)进行通信。但随着芯片内模块增多、数据流复杂化,总线容易成为性能瓶颈。

NOC 可以理解为 芯片内部的“高速公路网”或“交换网络”。它将多个并行的数据通道和交换节点集成在片上,允许多个主设备(如CPU、GPU)和从设备(如DDR、外部接口)之间同时进行高速、低延迟的数据传输,极大提升了内部带宽和效率。

类比:城市交通系统
SoC 总线系统 ≈ 城市交通系统
NOC 控制器  ≈ 交通指挥中心
QoS 控制器  ≈ 各个路口的红绿灯
性能监控    ≈ 交通监控摄像头
各功能模块 ≈ 不同区域的车辆
关键点理解
NOC 是基础架构:负责所有模块的互连和基本路由

QoS 是策略控制:根据不同场景优化访问优先级

性能监控是眼睛:实时查看系统状态,用于调试

电源域是供电管理:与QoS协同工作,实现能效优化

设计哲学
模块化:每个功能模块有自己的QoS控制器

可配置:运行时动态调整,适应不同场景

可监控:完善的性能计数,便于优化

分层管理:系统级(NOC)和模块级(QoS)分离

1. 多层多通道的互连结构

NOC不是一个单一总线,而是一个分层、分区的交换网络。它通常包含:

  • 多个主端口:连接不同的主设备(CPU簇、GPU、视频处理单元VPU、显示处理器VOP、各种DMA控制器等)。

  • 多个从端口:主要连接到双通道DDR内存控制器,也连接到一些高速配置总线。

  • 内部的交叉开关:用于路由数据包,允许多个传输同时进行。

2. 服务质量保证

这是NOC最关键的特性。NOC实现了QoS机制

  • 带宽分配:可以为不同的主设备或数据流(如显示输出、视频解码、GPU渲染)设置不同的带宽权重或上限。

  • 优先级控制:高优先级的请求(如显示实时读取帧缓冲)会被优先处理和响应,确保画面不卡顿。

  • 仲裁策略:智能的仲裁器根据配置的QoS规则,决定多个并发请求的响应顺序。

3. 专用带宽通道

对于最关键的子系统使用专用数据通路来绕过公共部分的竞争:

  • 显示路径:从内存到显示控制器(VOP)的读请求具有极高优先级和专用通道,这是保证UI流畅和视频播放不掉帧的基石。

  • 视频编解码路径:VPU与内存之间的数据通道也经过特别优化,保证大块视频码流输入和输出帧的稳定传输。

4. 与DDR控制器的紧密耦合

NOC直接与高效的双通道32位DDR3/LPDDR2/LPDDR3内存控制器对接。NOC负责将内部多路请求,高效地调度并转换为对DDR物理层的访问命令,最大化利用DDR带宽。

二,rk3288的NOC


┌───────────────────────────────────┐
│         NOC 控制器 (系统级)                                               │
│           0xFFAC0000                                                          │
├──────────┬─────────┬──────────────┤
│ 性能监控           │ 路由仲裁        │ 配置管理                    │
└──────────┴─────────┴──────────────┘
              ↓
┌───────────────────────────────────┐
│        QoS 控制器 (模块级)                                                │
│       按功能区域分布                                                         │
├─────┬──────┬──────┬─────┬─────────┤
│ GPU     │ 视频       │ 显示        │ VPU     │ 外设              │
└─────┴──────┴──────┴─────┴─────────┘
              ↓
┌─────────────────────────────────────┐
│       各功能模块 (应用层)                                                        │
│   VOP/ISP/RGA/GPU/VPU/HEVC等                                     │
└─────────────────────────────────────┘

QoS (服务质量) 工作流程,QoS:控制模块的访存优先级和带宽
模块请求 → QoS 控制器 → NOC 仲裁 → DDR 访问
    ↓                        ↓                     ↓               ↓
设置优先级 → 分配带宽 → 调度访问 → 完成传输

1,内存映射关系

// NOC 主控制器和监控
#define NOC_BASE          0xFFAC0000
#define NOCP_CORE_BASE    0xFFAC0400  // CPU
#define NOCP_GPU_BASE     0xFFAC0800  // GPU
#define NOCP_PERI_BASE    0xFFAC0C00  // 外设
#define NOCP_VPU_BASE     0xFFAC1000  // VPU
#define NOCP_VIO0_BASE    0xFFAC1400  // VIO0
#define NOCP_VIO1_BASE    0xFFAC1800  // VIO1
#define NOCP_VIO2_BASE    0xFFAC1C00  // VIO2

// QoS 控制器
#define QOS_GPU_R_BASE    0xFFAA0000  // GPU读
#define QOS_GPU_W_BASE    0xFFAA0080  // GPU写
#define QOS_VIO1_VOP_BASE 0xFFAD0000  // VIO1 VOP
#define QOS_VIO0_VOP_BASE 0xFFAD0400  // VIO0 VOP 
#define QOS_VIDEO_BASE    0xFFAE0000  // 视频编解码
#define QOS_HEVC_R_BASE   0xFFAF0000  // HEVC读
#define QOS_HEVC_W_BASE   0xFFAF0080  // HEVC写,

2,NOC 地址空间布局


0xFFAC0000 - 0xFFAC1FFF: NOC 主控制器
   +0x0400: nocp_core      (CPU 性能监控)
   +0x0800: nocp_gpu       (GPU 性能监控)
   +0x0C00: nocp_peri      (外设性能监控)
   +0x1000: nocp_vpu       (VPU 性能监控)
   +0x1400: nocp_vio0      (VIO0 性能监控)
   +0x1800: nocp_vio1      (VIO1 性能监控)
   +0x1C00: nocp_vio2      (VIO2 性能监控)

0xFFAA0000 - 0xFFAAFFFF: GPU QoS 区域
   0xFFAA0000: qos_gpu_r   (GPU 读 QoS)
   0xFFAA0080: qos_gpu_w   (GPU 写 QoS)

0xFFAD0000 - 0xFFADFFFF: 视频 QoS 区域
   0xFFAD0000: qos_vio1_vop
   0xFFAD0100: qos_vio1_isp_w0
   0xFFAD0180: qos_vio1_isp_w1
   0xFFAD0400: qos_vio0_vop     (关键节点)
   0xFFAD0480: qos_vio0_vip
   0xFFAD0500: qos_vio0_iep
   0xFFAD0800: qos_vio2_rga_r
   0xFFAD0880: qos_vio2_rga_w
   0xFFAD0900: qos_vio1_isp_r

0xFFAE0000: qos_video           (视频编解码 QoS)
0xFFAF0000: qos_hevc_r/qos_hevc_w (HEVC QoS)


3,NOC 层次


CPU Cluster
    ├── CPU0/1/2/3
    └── 通过 NOC 连接其他模块

NOC 总线结构:
├── CPU 子系统 (nocp_core)
├── GPU 子系统 (nocp_gpu, qos_gpu_r/w)
├── VPU 子系统 (nocp_vpu)
├── 视频子系统 (nocp_vio0/1/2, qos_vio*)
│   ├── VOP (显示控制器)
│   ├── ISP (图像信号处理)
│   ├── VIP (视频输入)
│   ├── IEP (图像增强)
│   └── RGA (2D图形加速)
├── 视频编解码 (qos_video, qos_hevc_r/w)
└── 外设子系统 (nocp_peri)

三,注意事项

配置顺序:先配置优先级,再配置带宽,最后启用仲裁器

时钟要求:NOC模块需要PCLK和ACLK时钟

复位影响:软复位不会清除NOC寄存器,需要手动复位

性能影响:不正确的QoS配置可能导致系统性能下降

安全限制:某些安全区域配置需要TrustZone权限

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值