惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - yooooooo

【ARM CoreLink 系列 5 -- CI-700 控制器介绍 】 ARM CoreLink 系列 4.3 -- NI-700 Component and interface identifiers ARM CCI-500 与 NI0700 的关系. ARM NIC-400 与 NI-700 的区别 claude code命令使用 【ARM Trace32(劳特巴赫) 使用介绍 2.2 -- TRACE32 进阶命令之 DIAG 弹框命令】 trace32 .cmm脚本和.t32文件的区别 【ARM Trace32(劳特巴赫) 使用介绍 2.1 -- TRACE32 Practice 脚本 cmm 脚本学习】 【ARM Trace32(劳特巴赫) 使用介绍 1.1 - Veloce 环境中使用trace32 连接 Cortex-M33】 PCIe 总线的 ASPM 和 链路状态机制总结 fw_devlink 功能 I3C协议详解 UART 协议规范 BPF 调度器 sched_ext 实现机制、调度流程及样例 Android Camera性能分析 录像Buffer Path详解 【UEFI基础】Protocol介绍 【UEFI实战】在库中使用全局变量 sched feature TTWU_QUEUE edk2构建编译流程 UEFI:FDF文件及FD、FV、FFS EDK II PCD的概念、类型、使用 PELT算法浅析 load_balance函数代码详解 - yooooooo UEFI Boot Manager Linux misfit task Linux 内核中sched_prio_to_weight转换关系 CFS任务放置代码详解 CFS任务的负载均衡(load balance)
【ARM CoreLink 系列 4.2 -- NI-700 Function units 详细介绍】
yooooooo · 2025-11-26 · via 博客园 - yooooooo

ASNI 介绍

CoreLink NI-700的ASNI( AXI系统网络接口 )完成者单元负责接收并处理来自 AXI 请求者设备的请求。这些单元将事务打包成根据NI-700通用传输(GT)协议的Flits,并将GT响应Flits解包成AXI响应。ASNI执行以下功能:

  • AXI与GT协议之间的请求、数据和响应事务的转换 :确保AXI事务可以被NI-700网络正确处理,并将GT协议的响应正确转换回AXI响应。
  • 入站事务的突发拆分 :如果事务跨越条带边界(stripe boundary ),或者事务的突发大小大于程序中设置的ASNI突发拆分大小,则ASNI会拆分这些突发。
  • 通过内部缓冲对读数据和写响应事务进行重排序 :提高数据处理效率,保证数据传输的一致性和顺序性。
  • 硬质量和软质量的服务(QoS)带宽调节 :根据QoS参数对带宽进行管理,保证关键事务的优先级和系统的整体性能。
  • 与外部请求者和网络的时序隔离(Timing isolation) :提高系统的稳定性和可靠性,减少时钟域冲突的影响。
  • 低线模式(Low‑wire mode) :在此模式下,GT请求和响应通道在读写之间共享,减少了所需的线路数量,节省资源。
  • 高线模式(High‑wire mode) :在此模式下,GT请求和响应通道对于读写是独立的,提高了数据传输效率和性能。
  • 事务地址解码为
    • 目标ID(Target ID)
    • 路由向量(Route vector)
    • 对于请求访问超出范围存储区域的解码错误(DECERR)指示
    • 数据宽度调整指示
    • 条带指示(Stripe indication)

AMNI 介绍

CoreLink NI-700的AMNI( AXI内存网络接口 )单元负责接收并处理来自NI-700网络层的通用传输(GT)数据包。这些单元将GT数据包解包,将其转换为AXI请求事务,并将其转发给连接的AXI完成者设备。此外,AMNI还从完成者设备接收AXI响应,并将它们打包成GT响应Flits。AMNI执行以下功能:

  • 网络GT请求与AXI事务之间的转换 :确保网络层的GT数据包可以正确转换为AXI事务,以便于完成者设备处理。
  • 路由读写响应信道流量回请求发起者 :保证数据能够正确返回给发起请求的设备或单元。
  • 事务的突发拆分 :如果原始事务的大小大于AMNI能够发出的最大突发大小,AMNI会拆分这些突发,保证数据传输的有效性。
  • 数据宽度调整 :根据目标设备或网络的需求,调整数据的宽度,以提高兼容性和传输效率。
  • 通过VAXQoSAcccept进行内存控制器带宽调节 :根据设定的服务质量(QoS)参数,管理内存 控制器 的带宽利用率,以优化整体系统性能。
  • 与外部完成者和网络的时序隔离 :提高系统的稳定性和可靠性,降低不同时钟域之间的影响。
  • 低线模式 :在该模式下,GT请求和响应通道在读写之间共享,减少了所需的线路数量,有效节省资源。
  • 高线模式 :在该模式下,GT请求和响应通道对于读写是独立的,提高了数据传输的效率和性能。

HSNI 介绍

CoreLink NI-700的 HSNI 完成者单元负责接收并处理来自AHB和AHB-Lite请求者设备的请求。这些单元将AHB和AHB-Lite事务转换成通用传输(GT)数据包,并将GT读写响应数据包解码为AHB响应。HSNI外部接口可以配置为AHB或AHB-Lite完成者接口,或作为AHB或AHB-Lite镜像请求者接口。

2

AHB请求者接口

此选项提供了AHB请求者所期望的所有AHB信号,因此它不具备HSEL或HREADY输出信号。输入的AHB就绪信号被命名为HREADY,而不是HREADYOUT。

AHB镜像完成者接口

此选项为完成者提供了所有AHB信号,包括HSEL、HREADY输入和HREADY输出信号。使用这一选项可以实现AHB完成者直接连接到HMNI。

HMNI执行以下功能:

  • AHB与GT协议之间请求、数据和响应事务的转换 :确保AHB事务能够被GT协议处理,反之亦然,以便在NI-700网络内部进行高效传输。
  • 事务地址解码成路由向量 :确定事务的目的地,以便正确路由数据。
  • 与外部完成者和网络的时序隔离 :减少不同时钟域之间的干扰,提高系统的稳定性和可靠性。
  • 低线模式 :在此模式下,GT请求和响应通道在读写之间共享,有效减少所需的线路数量,节省资源。
  • 非阻塞流量控制 :通过支持多个即将到来的资源平面(RPs)来处理并发流量,确保数据流畅传输。
  • 处理入站的WRAP和INCR突发 :优化对突发事务的处理,提高数据传输效率。
  • 突发转换和拆分 :处理稀疏写入和非对齐访问,在拆分任何不可修改的突发时,HMNI会断言HMASTLOCK,防止其他请求者在拆分序列期间访问相同的内存位置。
  • 处理下游完成者的错误响应 :确保即使面临错误情况,数据流也能够被妥善管理和路由。

PMNI 介绍

CoreLink NI-700的PMNI(外设映射网络接口)单元负责将GT(通用传输)数据包转换成APB(高级外设总线)事务,并将APB读写响应数据包解码为GT数据包。NI-700兼容APB3和APB4协议。

PMNI执行以下功能:

  • 大小转换 :从GT到固定的32位数据宽度的大小转换,确保数据包与APB协议的数据宽度匹配。
  • 突发拆分 :将入站的突发拆分成多个单独的APB节拍,以适应APB协议不支持突发传输的特性。
  • 低线模式下处理多路复用的读写流量 :在单个通道上处理读写流量,通过共享GT请求和响应通道优化线路使用。
  • 非阻塞流量控制 :通过支持多个即将到来的资源平面(RPs)处理并发流量,确保数据流畅传输。
  • 使用地址解码器将读写响应路由回发起者 :保证响应能够正确地返回给请求的发起者。
  • 支持最多16个APB接口 :在单个PMNI上可以支持多达16个APB接口,每个接口可以单独指定为APB3或APB4。内部解码器用于生成APB PSELx信号,以选择特定的APB请求者接口。
  • 仅支持WriteNoSnoop和ReadNoSnoop操作码

所有不支持的操作码将按以下方式处理:

  • 对于写请求,写数据将被排空而不是转发到APB总线上。发出带有错误的写响应。
  • 对于读请求,将转发全零的读数据节拍,并发出带有错误的读响应。

PCDC 介绍

CoreLink NI-700的PCDC(电源和时钟域交叉)单元在不同的时钟域、电源域或同时在时钟和电源域之间形成桥梁。当GT(通用传输)Flits在运行于不同时钟速度的域之间传输时,PCDC单元同步Flits到新的时钟速度。如果你的设计包含多个时钟域、电源域或时钟和电源域,PCDC单元用于控制电源和时钟域的交叉。为了允许Flits的进入和退出,PCDC单元具有一个GT输入端口和一个GT输出端口。PCDC单元对于每个配置的电源域都有Q-Channel LPI(低功耗接口),以实现电源域控制。同样,每个配置的时钟域也有一个Q-Channel LPI以实现时钟域控制。这些Q-Channel LPI在NI-700的顶层组合,为每个时钟和电源域分别提供单个Q-Channel和P-Channel。

PCDC单元执行以下功能:

  • 电源和时钟域交叉 :确保Flits可以在不同的电源和时钟域之间安全地传输,同时管理和同步这些域之间的交叉点。
  • 根据资源平面(RPs)重新排序Flits :PCDC单元在穿越模块时不会改变Flits的内容,但会根据资源平面的要求对Flits进行排序,以确保数据的连续性和顺序性。
  • 控制电源域的静默 :管理电源域的活动,以在不需要时减少能量消耗,通过控制电源域的进入和退出,以实现电源域的高效管理。
  • 控制时钟域的静默 :管理时钟域的活动,允许在不需要时钟信号时停止时钟,减少能量消耗,同时确保当时钟信号需要恢复时能够无缝切换。

Routers 介绍

CoreLink NI-700的路由单元在互连的网络层中传输GT(通用传输)Flits(流片段)。路由器执行以下功能:

  • 根据Flit路由字段,在可配置数量的输入端口和输出端口之间传输GT Flits 。这意味着路由器根据预定的路由信息,将数据从一个端口转发到另一个或多个端口,以实现数据在芯片内部的正确传递。
  • 根据资源平面(RPs)路由Flits 。如果路由器有多个输出端口,它会更新Flit的路由字段。除了这种更新外,路由器在通过该单元路由Flits时不会改变Flits的其他信息。

SERDES 介绍

CoreLink NI-700的 SerDes(串行/并行转换)单元在互连的网络层中调整GT Flits(流片段)的大小。SerDes单元具有以下连接:

  • 一个GT输入端口
  • 一个GT输出端口
  • 一个阈值控制输入

SerDes单元执行以下功能:

  • 转换Flits的宽度 :根据网络层之间的需求调整数据传输的宽度,以优化数据传输效率或适应不同接口的需求。
  • 在实现放大功能时,将多个连续输入Flits整合为单个输出Flit :这使得能够将较小的数据包整合成更大的单元,从而减少处理和传输次数,提高效率。
  • 在实现缩小功能时,将单个输入Flit拆分为一系列输出Flits :这一功能适用于需要将大块数据分配到需要较小数据宽度的多个处理单元或通道的情况。
  • 根据资源平面(RPs)重新排序Flits :在传输过程中,根据定义的资源平面规则对数据进行排序,确保数据按照预定的优先级和路径传递,优化流量管理和数据一致性。

通过上述功能,SerDes单元为CoreLink NI-700提供重要的数据转换和调整能力,支持高效的数据流在互连网络内的传输。这些单元通过动态调整数据宽度,不仅可以提高传输效率,还能保证数据在传输过程中的灵活性和兼容性,是构建高性能系统级芯片(SoC)设计的关键组件之一。

PMU 介绍

CoreLink NI-700的性能监视单元(PMU)用于统计互连功能单元生成的性能事件。性能事件用于监控SoC的各种行为。PMU分布在NI-700的所有时钟域中。

1

在每个时钟域内,PMU组件包括:

  • 八个32位软件可见事件计数器
  • 一个64位周期计数器,分布在两个32位寄存器中
  • 一个可编程的交叉开关,用于选择特定事件让计数器监测
  • 一个控制网络接口,用于编程和从NI-700配置内存空间读取访问请求

NI-700中的某个时钟域内的功能单元,如ASNIs,可以生成性能事件。生成的性能事件被复用到8位事件总线上,并路由到该时钟域的事件计数器。

每个事件计数器都有阴影快照寄存器,因此所有事件计数器可以同时被采样。事件计数器还具有溢出功能。如果事件计数器或周期计数器溢出,将触发一个中断。这个中断连接到顶级中断 <CLKNAME>_nPMUINTERRUPT 。你可以通过使用PMU控制和配置寄存器来确定哪个计数器溢出,并使用这些寄存器清除任何计数器溢出标志,以便清除中断。

可以使用局部事件编程寄存器配置组件内的功能交叉开关。通过配置交叉开关,你指示一个事件类型转发到八个可用的时钟域计数器之一。