【CHI】(十三)链路层

这篇具有很好参考价值的文章主要介绍了【CHI】(十三)链路层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        本章介绍了链路层,链路层为节点之间的基于数据包的通信和跨链路的互连提供了一种简化的机制。它包含以下几部分:

 

  • Introduction
  • Link
  • Flit
  • Channel
  • Port
  • Node interface definitions
  • Increasing inter-port bandwidth
  • Channel interface signals
  • Flit packet definitions
  • Protocol flit fields
  • Link flit

1. Introduction

链路层定义了packet和flit格式,以及跨链路的流控。

下图示例了一种基于link的通信典型系统:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

2. Link

Link通信是在transmitter和receiver之间的,在transmitter和receiver之间的连接称为link,一个节点和互连之间的双向通信需要一对链路,如下图所示:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN 

outbound link :Transmitter发包的link,也就是我们所说的TX方向

inbound link  :Receiver收包的link,也就是我们所说的RX方向

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN 

3. Flit

        Flit是链接层中传输的基本单元,packets被转换成多个filts并通过link传输。有以下两种类型的flits:

Protocol flit

Protocol flit的payload携带protocol packet。在CHI协议里,每个packet就是一个 flit。

Link flit

Link flit携带的messages用于链路维护。例如在断链的过程中,transmitter使用link flit返回Link Layer Credit(L-Credit)给receiver。Link flits来源于transmitter,终结于链路另一边的receiver。

4. Channel

        在本规范中,链路层提供了一组通道用于flit通信。每个通道有确定的flit格式,每个通道有很多field域,且有些field的位宽可以有多重可选值。在某些情况下,所定义的flit格式可以在入站通道和出站通道上同时使用。表13-1显示了通道,以及通道在RN和SN组件上的映射。

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

通道依赖关系

CHI协议的channel之间允许有以下依赖关系。

对于RN

  • RN的inbound SNP channel和outbound REQ channel不能存在依赖关系
  • RN的outbound RSP channel允许(但不要求)等待inbound SNP channel;
  • RN的inbound SNP channel允许(但不要求)等待outbound DAT channel;
  • RN的inbound RSP通道不能和其它任何通道有依赖关系;
  • RN的inbound DAT通道不能和其它任何通道有依赖关系;

注意:要求RN的inbound RSP和inbound DAT channel不能和其它通道有依赖关系,意味着对于所有还没有发送CompAck responses的outstanding transactions,RN必须有能力接收所有的Comp和CompData响应。

对于SN:

  • SN的outbound RSP channel允许(但不要求)等待inbound REQ channel;
  • SN的inbound REQ channel不能和outbound DAT channel有依赖关系;
  • SN的inbound DAT channel不能和其它任何通道有依赖关系;

5.Port

Port是一个节点接口上所有的link的集合。下图是links、channels和port之间的关系:

(Port>link>channel > signal)

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

 

6.Node interface definitions

节点之间的通讯是通过使用node interface来交换link flits,本小节主要描述node interface,包含Request Nodes和Subordinate Nodes。每个节点中LINKACTIVE interface相关的信号和管脚将在14章《Link Handshake.》中描述。

6.1 Request Nodes(RN)

本节描述的RN接口包括:

  • RN-F
  • RN-D
  • RN-I

RNF

RN-F接口使用全部的channel,用于完全一致性的requester,比如coer或cluster如下图所示: 

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN 

RND

RN-D interface也使用了全部通道,用于处理DVM messages的IO 一致性节点,但是SNP通道只用于处理DVM 事务。如下图所示:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

RNI

        RN-I 接口使用除了SNP的其它通道,用于IO coherent RN,比如GPU或IO bridge。因为RN-I节点不需要包含硬件一致性cahce或TLB,所以无需SNP通道。如下图所示:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

6.2 Subordinate Nodes(SN)

SN分为SN-F和SN-I。SN-I和SN-F的interface一样,包括:

  • RX request channel   *1
  • TX response channel    *1
  • TX data channel  *1
  • RX data channel  *1

SN从ICN上接收request messages,给ICN返回response messages。但是RN-I和RN-F接收不同的事务类型。下图展示了SNF/SNI的接口:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

7. lncreasing inter-port bandwidth

一个节点接口上的可用带宽可以通过几种方式来增加。这里介绍以下两种允许的架构方法:

  1. Multiple interfaces(多接口)
  2. Replicated channels on a single interface(单接口,复制通道)

7.1 Multiple interfaces

为一个组件增加可用带宽的最简单的方法是有多个接口。可以复制(重复)一个完整的接口。

节点上接口重复的次数是实现者自定义的。

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

通过两个接口增加带宽的方法的主要特点是:

  • 每个接口都有自己的:

        ——节点ID

        ——TxnID pool

        ——SACTIVE信号集
        ——LINKACTIVE信号集

        ——SYSCOREQ/SYSCOACK信号集

        ——可选广播控制引脚集

  • 每个重复的接口必须视为独立接口

        ——如果一个接口分配了cache line,则另一个复制接口无法释放该cache line。

        ——当响应请求时,完成者必须在与请求所使用的接口相同的接口上发送响应。

        ——必须将snoop发送到用于导致cache line分配的事务的相同接口。

        ——两个接口之间的事务不能有依赖关系。

  • 即使只有一部分通道需要增加带宽,也必须复制所有通道

Address striping

        可选优化:RN通过指定address striping在多个接口之间进行选择。

        一个Home节点通常可以基于一个snoop filter来过滤snoop。如果SF是精确的,那么它可以跟踪缓存cache line的请求者的节点ID,并向单个接口上的同一缓存行发送后续请求的snoop。如果SF不能精确跟踪,或者是追踪的系统组件的数量而不是请求节点接口的数量,将无法隔离需要发送snoop的单个接口,除非SF知道且使用RN相同的address striping算法。

        当RN没有声明它正在使用的address striping算法时,SF要么需要做的更大,要么Home节点将不得不发送冗余的snoop。因此建议RN声明它正在使用的address striping算法。

        通常使用hash函数。Hash是我们的老朋友了,就不举例了。

7.2 Replicated channels on a single interface

        与通过更复杂的方法复制一个完整的接口不同,增加可用接口带宽的一种更有效的方法是有选择性地复制需要更大带宽的信道。

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

Features:

每个通道都可以被选择性地复制。对被复制的通道没有任何限制。通常,通道的复制是基于该通道上所需的预期带宽。例如,在图13-10中,TXREQ被复制为TXREQ0,TXREQ1,而RXSNP没有被复制,只有RXSNP0。复制的通道接口的特点是:

  • 与单个DAT通道对应的所有复制的DAT子通道必须具有相同的位宽。
  • 完整的接口必须使用:

        ——相同的NodeID

        ——单个TxnID池

  • 事务中的message可以使用任何子通道:

        ——响应消息不需要使用与请求相同的子通道。例如,TXREQ0上的请求可以在RXRSP0或RXRSP1上给出响应。

        ——针对单个请求的多个响应消息可以在任何子通道上出现。例如,一个写入事务的DBIDResp可以在RXRSP0上接收,而相应的Comp可以在RXRSP1上接收。

  • 与非复制通道一样,复制通道不提供任何通道内排序保证。
  • 所有Link信用证都是在子通道的基础上完成的。

        ——不能使用TXREQ0的信用证来发送TXREQ1上的flit。

        ——接收方必须在所有子通道上提供信用证。

  • 协议信用证是对合并后的TXREQ通道而言。
  • 不支持单独关闭子通道的电源。
  • DVM snoop的两个部分可以放在任何一个子通道上。即每个部分都可以在不同的子通道上。
  • 两个已连接的接口上的子通道数必须匹配。
  • 只能有一组 SACTIVE、LINKACTIVE和SYSCOREQ/SYSCOACK信号,以及可选的广播控制引脚。
  • 当接口包含复制的DAT通道时,不允许将接口属性CCF_Wrap_Order设置为True。

8. Channel interface signals

主要包含以下内容:

  • Request, REQ, channel
  • Response, RSP, channel
  • Snoop, SNP, channel
  • Data, DAT, channel

​​​​​​​8.1 Request, REQ, channel

图13-11 显示了REQ通道接口信号引脚,“R”:REQFLIT的位宽

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

下表是对上述信号的详细描述:(其他通道信号之相似,后文不再重复)

信号名

描述

REQFLITPEND

比flit提前一拍置起,表示下个时钟周期可能会有flit传输

REQFLITV

Request flit valid

REQFLIT

Request flit

REQLCRDV

Request L-Credit valid ,接收者将此信号置起以返还一个请求通道的L-Credit给发送者。

​​​​​​​8.2 Response, RSP, channel

下图显示了RSP通道接口管脚,T是RSPFLIT的位宽,发送和接收方向的RSP通道 接口信号是一样的。

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN 

下表是信号详细描述:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

8.3 Snoop, SNP, channel

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

8.4 Data, DAT, channel

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

9. Flit packet definitions

9.1 Request flit

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

9.2 Response flit

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

  

9.3 Snoop flit

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

9.4 Data flit

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

 

10. Protocol flit fields

Protocol flit的opcode域值不为0,本节的所有域段都可应用于Protocol flit。下面将分别介绍Protocol field的各个域段。

简写

全称

描述

QoS

Quality of Service

事务的服务质量,QoS值越大,优先级越高

TgtID

Target Identifier

目标节点ID,message都有携带,是message要发送节点的组件NodeID,ICN可以根据这个将message正确发送到目的地

SrcID

Source Identifier,

源节点ID,ICN可以根据这个确定哪个port发送的message

HomeNID

Home Node Identifier

原始请求的HomeId,Requester在收到CompData之后,用这个域值来决定CompAck的TgtID;用于CompData和DataSepResp,在其他data message中该域值必须为0;

ReturnNID

Return Node Identifier

用于决定SN发送的CompData, DataSepResp或者 Persist response的目标节点,该值可以是HN或原始Requester的NID;用于HN发往SN的ReadNoSnp, ReadNoSnpSep, CleanSharedPersistSep, WriteNoSnp,

WriteNoSnpDef, Combined Write,Atomic requests.

其他不适用的请求该字段必须为0.

FwdNID

Forward Node Identifier

用于DCT传输中CompData响应要发给的Requester,该值必须等于原始请求的Requester的NID,只应用于Forward type snoops,在其它snoop requests中无用且必须为0;

注:在range-based TLBI DVM操作中,该字段为DVM payload

LPID

Logical Processor Identifier

在一个RN包含多个 processing agent时需要用其标识;在request中,和SrcID可以唯一标识一个logical processor;

PGroupID

Persistence Group Identifier

请求者使用此字段来处理不同的 CleanSharedPersistSep事务集,通过将它们分组并使用PGroupID标识每个事务集。

只用于 CleanSharedPersistSep、Write*CleanShPerSep requests和Persist、CompPersist

Responses。

StashNID

Stash Node Identifier

用于标识Stash request的目的地,在StashNIDValid有效时必须是有效值;只应用于Stash request中,在其它requests中无用且必须为0;

StashNIDValid

Stash Node Identifier Valid

在Stash命令中指示StashNID是否有效;在其它requests中无用

StashLPID

Stash Logical Processor Identifier

用于Stash request和Stash type snoop request中,和StashNID一块确定唯一的Logical Processor;在其它requests中必须为0;

StashLPIDValid

Stash Logical Processor Identifier Valid

用于Stash request和Stash type snoop request中,指示StashLPID是否有效;在其它requests中无用

StashGroupID

Stash Group Identifier

请求者使用此字段来处理不同的 StashOnceSep事务集,通过将它们分组并使用StashGroupID标识每个事务集。

TxnID

Transaction Identifier

Message的事务ID,如果同个源发起的outstanding transactions,需要使用不同的TxnID

ReturnTxnID

Return Transaction Identifier

用于下级节点返回CompData和DataSepResp响应的TxnID,它的值可以是HN产生TxnID,或者是原始requester产生的TxnID;

FwdTxnID

Forwarding Transaction Identifier

等于原始request的TxnID,用于snoop request中;

DBID

Data Buffer Identifier

Completer返回的响应里携带,Requester用于CompAck或WriteData的TxnID

Opcode

Channel opcodes

Opcode决定了每个message的操作,不同channel支持的Opcode不一样。 

在表格后文详细展开。

Deep

Deep persistence

Requester用来表示在之前的写操作完成之前不能发送Persist response。

适用于CleanSharedPersist* request and Combined Write request with CleanSharedPersistSep

Addr

Address

支持44-52bits的地址

NS

Non-secure

该字段与NSE结合,建立一个访问的PAS物理空间。

NSE

Non-secure extension

Size

Size of transaction data

指定该笔transaction的data size大小

MemAttr

Memory Attribute

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

SnpAttr

Snoop Attribute

0: non-snoopable

1:snoopable

DoDWT

Do Direct Write Transfer

直接写传输,数据从RN直接发到SN

LikelyShared

Likely Shared,

指示的requested data可能在其它RN中存在

Order

Ordering requirements

指定保序要求

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

 

Excl

Exclusive

独占访问

CAH

CopyAtHome

PBHA

Page-based Hardware Attribute

Endian

Endian

0:小端模式

1:大端模式

AllowRetry

Allow Retry

指示transaction是否可以被Retry;

ExpCompAck

Expect Completion Acknowledge

指示transaction是否包含CompAck响应;

SnoopMe

SnoopMe

指示HN是否需要给Requester发送snoop request,仅用于Atomic requests

RetToSrc

Return to Source

指示Snoopee是否需要返回一份cacheline data给HN;适用于除了DVMop外的所有snoop

DataPull

Data Pull

指示snoop response中是否包含Read request

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN 

DoNotGoToSD

Do not transition to SD state

指示Snoopee的cache line能否允许是SD态;

PCrdType

Protocol Credit Type

指示grant或return的credit类型;

TagOp

Tag Operation,

Tag

Tag

TU

Tag Update

TagGroupID

Tag Group Identifier,

TraceTag

Trace Tag

MPAM

Memory System Performance Resource Partitioning and Monitoring

RespErr

Response Error

该域段用于指示Response的error status

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

 

Resp

Response status

FwdState

Forward State

CBusy

Completer Busy

CCID

Critical Chunk Identifier

 太晚了,一些字段后续再补充

Opcode:

REQ channel opcode:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

Atomic opcode:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

RSP channel opcode:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

SNP channel opcode:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

DAT channel opcode:

【CHI】(十三)链路层,ARM硬件开发,ARM,CHI,一致性总线,CMN

 

11. Link flit

LINK flit用于在断链过程中将L-Credits返回给接收方。LINK flit起源于链路发射器,终止于链路另一边的链路接收器。

Link flit通过opcode字段设为0来标识,TxnID字段也要求为0。其余的字段不被使用,并且可以取任何值。文章来源地址https://www.toymoban.com/news/detail-663752.html

到了这里,关于【CHI】(十三)链路层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM AMBA5 CHI 2 -- CHI 链路层详细介绍 】

    请阅读 【ARM AMBA 总线 文章专栏导读】

    2024年02月05日
    浏览(46)
  • NXP i.MX 8M Plus工业开发板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

    本文主要介绍创龙科技TLIMX8MP-EVM评估板硬件接口资源以及设计注意事项等内容。 创龙科技TLIMX8MP-EVM是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 + 单核ARM Cortex-M7异构多核处理器设计的高性能工业评估板,由核心板和评估底板组成。ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM

    2024年02月11日
    浏览(86)
  • 【ARM AMBA5 CHI 入门 12.1 -- CHI 链路层详细介绍 】

    请阅读 【ARM AMBA 总线 文章专栏导读】

    2024年02月08日
    浏览(42)
  • ARM 多核 SoC 面临缓存一致性困境

    快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 联系方式-加入交流群 ---- 联系方式-加入交流群 在此探索 Cadence IP ARM 正在通过多核处理器将其固有的低功耗架构提升到更高的性

    2024年02月03日
    浏览(67)
  • ARM一致性总线CMN600AE

            CoreLink CMN-600 Coherent Mesh Network 是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采

    2024年01月16日
    浏览(38)
  • 一致性总线CMN600AE-ARM系列

    主要介绍一致性总线CMN600AE,根据arm官网的spec来概述其模块。 提示:以下是本篇文章正文内容,下面案例可供参考 CMN600ae是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做

    2024年02月04日
    浏览(44)
  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(56)
  • 硬件开发软件介绍

      本文主要简单介绍一下硬件开发过程中所用到的软件,并简要说明一下优缺点   立创EDA集成了原理图设计、PCB设计的功能,器件库、封装库丰富(而且共享),同时器件可以直接在立创商城采购,pcb制板和芯片贴片都可以在嘉立创进行生产加工,总之,立创集团提供了

    2024年02月08日
    浏览(38)
  • ISO 26262系列文章之————5 硬件开发

    目录 A 名词解释 A.1 HSR A.2 DFA A.3 FMEA A.4 FMEDA A.5 FTA A.6 FTA与FMEDA的交互 A.7 TSC A.8 SPF A.9 SPFM A.10 LF A.11 LFM A.12 PMHF A.13 1 FIT A.14 PPM A.15 ISO 26262-2018与 ISO 26262-2011在part5的文档的差异性 A.16 ISO 26262-2018与 ISO 26262-2011在part5的工作成果差异性 1 硬件开发流程 1.1 与传统硬件设计的

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包