0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【CHI】Transaction structure

冬至子 来源:子墨祭 作者:子墨祭 2023-11-06 15:08 次阅读

这篇开始讲述事务可以完成的方式。它显示了参与事务的各种组件可以使用的所有允许的选项。
注: 除了PCrdReturn 和PrefetchTgt之外,其他的事务在开始的时候都可以包含一个Retry的序列,也就是说可能会发生Retry。

一、Read transactions

Read事务分为Allocating Read和Non-allocating Read。
1.1 Allocating Read

1.png

Allocating Read事务的顺序是:

一、该事务从请求者向Home发出Allocating Read请求开始。初始请求是以下请求之一:
—— ReadClean
—— ReadNotSharedDirty
—— ReadShared
—— ReadUnique
—— ReadPreferUnique
—— MakeReadUnique

二、可选方案(Alt) 1-6显示了Home处理事务的不同方式:

1.Combined response from Home
Home向请求者(一般为RNF)返回一个组合的数据和响应CompData(读取数据+响应)。通常,当Home可以同时返回数据和响应时,就会使用此选项。例如,数据在本地缓存。

2.Separate data and response from Home
Home向请求者返回一个单独的响应( RespSepData),和读取的数据(DataSepResp)。通常,当Home返回的响应比提供的数据更快时,就会使用此选项。

3.Combined response from Subordinate
——HNF向SNF发送读请求ReadNoSnp。
——可选地,当HNF请求 ReadReceipt响应时(即order !=0),SNF将返回一个ReadReceipt给HNF。
——SNF向RNF返回一个组合的响应和数据,CompData。
通常,HNF会使用此选项来减少消息计数或降低设计复杂性。

4.Response from Home, Data from Subordinate
——HNF向RNF返回一个单独的响应,RespSepData。
——HNF向SNF发送读数据请求ReadNoSnpSep。
——SNF返回一个ReadReceipt;注意HNF并不需要等待ReadReceipt才发RespSepData。
——SNF将读取数据DataSepResp返回给请求者。
通常,当HNF可以快速返回响应,但它没有可用的数据,并且需要下属返回数据时,它将使用此选项。

注:请求者在收到RespSepData即可返回CompAck,而不需要等到DataSepResp数据返回之后再发。

5.Forwarding snoop
Home请求Snoopee将读取数据Snp*Fwd转发给请求者。
**snoopee:接收snoop请求的RNF。
也就是说,数据直接通过snoopee转发给请求者,而不需要再通过HNF转一道。

此处又有4个可选项:
Alt 5a.With response to Home
——Snoopee向请求者返回一个组合的响应和读取数据,CompData。
——Snoopee向HNF返回一个snoop响应,SnpRespFwded。
通常,当Snoopee可以将数据转发给请求者,并且不需要向HNF提供数据副本时,它就会使用此选项。
Alt 5b.With data to Home
——Snoopee向请求者返回一个组合的响应和读取数据,CompData。
——Snoopee向HNF返回一个带数据的snoop响应,SnpRespDataFwded。
注意:通常,当Snoopee可以将数据转发到请求者,但也必须向主页提供数据副本时,将使用此选项。例如,当Snoopee持有缓存行的dirty副本,但返回给请求者的数据必须是clean的时,就会发生这种情况。当HNF请求数据副本时,也会发生这种情况。
Alt 5c.Failed, must use alternative
snoopee返回了一个SnpResp给HNF。
HNF必须使用前面描述的其他替代方案来完成对请求者的事务。
Alt 5d.Failed, must use alternative
Snoopee返回了一个带数据的snoop响应给HNF,SnpRespData或 SnpRespDataPtl。
HNF必须使用前面描述的其他替代方案来完成对请求者的事务。
6.MakeReadUnique only
HNF返回给请求者的完成响应Comp。
此选项只适用于不需要读数据消息时的MakeReadUnique。

三、当请求者向HNF发送完成确认CompAck时,事务就结束了。

只能在接收到 CompData或者 RespSepData后发送。

允许在发送CompAck之前等待DataSepResp,但不是必需的。
(也就是说RNF必须在收到响应之后才能给HNF发送完成确认CompAck,而不需要等到收到数据)**

1.2 Non-allocating Read transactions

Non-allocating Read transactions的顺序序列是:

2.png

一、事务从请求者向HNF发出读取请求开始。

Non-allocating Read事务包括:
—— ReadNoSnp
—— ReadOnce
—— ReadOnceCleanInvalid
—— ReadOnceMakeInvalid
这些请求如果包含了以下字段的话,会影响事务的传输flow:
—— Order(order要求通过ReadReceipt保序)
—— ExpCompAck(必须回复CompAck)

二、可选的Alt 1-6 显示了HNF可以处理事务的不同方式。

1.Combined response from Home
——(可选的)当原始请求有order保序要求时,HNF向请求者返回一个ReadReceipt。
——HNF向请求者返回一个组合响应和读取数据,CompData。
2.Separate data and response from Home
——Home向请求者返回一个单独的响应,RespSepData;以及一个单独的读数据,DataSepResp。如果请求有order要求,且不需要完成确认,则不能使用此替代方案。
3.Combined response from Subordinate
——(可选的)当原始请求有order保序要求时,HNF向请求者返回一个ReadReceipt。
——HNF向SN发送读请求ReadNoSnp。
——(可选的)当HNF请求读接收响应时,SN将返回ReadReceip给HNF。当不需要完成确认时,HNF必须这样做。
——SN向请求者返回一个组合响应和读取数据,CompData。
注:如果请求需要order要求,且没有要求完成确认时,不能使用这种处理方式。
4.Response from Home, data from Subordinate
——HNF向请求者返回一个单独的响应RespSepData,并向SN发ReadNoSnpSep。
——(可选的)当HNF请求读接收响应时,SN将返回ReadReceipt给HNF。HNF必须要求ReadReceipt,除非原始要求表明order要求和(completion acknowledge)完成确认响应。
允许(但不要求),HNF等待ReadReceipt,然后返回RespSepData给请求者。
——SN将读取数据DataSepResp返回给请求者。
5.Forwarding snoop
又有4个可选处理方式: (同allocating-read)
Alt 5a. With response to Home
——Snoopee向请求者返回一个组合的响应和读取数据,CompData。
——Snoopee向HNF返回一个snoop响应,SnpRespFwded。
Alt 5b. With data to Home
——Snoopee向请求者返回一个组合的响应和读取数据,CompData。
——Snoopee向HNF返回一个带数据的snoop响应,SnpRespDataFwded。
Alt 5c. Failed, must use alternative
——snoopee返回了一个SnpResp给HNF。
——HNF必须使用前面描述的其他替代方案来完成对请求者的事务。
Alt 5d. Failed, must use alternative
——Snoopee返回了一个带数据的snoop响应给HNF,SnpRespData或 SnpRespDataPtl。
——HNF必须使用前面描述的其他替代方案来完成对请求者的事务。

三、如果原始请求有ExpCompAck,请求者只能在以下情况之后提供CompAck响应:

——至少接收到一个CompData的packet。
——如果请求没有order要求,收到RespSepData即可。在这种情况下,允许但不要求等待DataSepResp。
——如果请求有order要求,收到RespSepData之后,还必须收到DataSepResp的一个packet之后,才能回复CompAck。
如果原始请求有order要求,则允许(但不要求)请求者在发送CompAck之前等待ReadReceipt。
下表列出了RN中ReadNoSnp和ReadOnce*允许的DMT和DCT事务:
(Y:允许
N:不允许

:不适用)

3.png

二、Write Transactions

写事务分为以下几种类型:
Immediate Write
Write Zero
CopyBack Write
Combined Immediate Write and CMO
 Combined Immediate Write and Persist CMO
Combined CopyBack Write and CMO
2.1 Immediate Write

4-1.png

4-2.png

Immediate Write事务的顺序是:

一、Requester发送一个Immediate Write请求到HNF开始。

Immediate Write包括:
— WriteNoSnpPtl
— WriteNoSnpFull
— WriteNoSnpDef
— WriteUniquePtl
— WriteUniqueFull
— WriteUniquePtlStash
— WriteUniqueFullStash
注:为完成这些事务而生成的Snoop请求被视为来自Home的独立事务,并且不显示在此flow中。向下游SN而生成的非DWT流程的写入请求,被视为独立事务,不显示在该流程中。
这些请求如果包含了以下字段的话,会影响事务的传输flow:
—— TagOp(需要返回TagMatch响应)
—— ExpCompAck(必须回复CompAck)
三、Home可以选择使用DWT或无DWT来完成事务传输。事务流的其余部分还将取决于原始请求是否需要完成确认响应,这将由ExpCompAck字段来确定。在备选方案1-3中描述了这些组合:
1.HNF使用DWT。
——Home向SN发送下游写入请求,WriteNoSnpPtl, WriteNoSnpFull,
WriteNoSnpDef,使用DoDWT = 1。
——SN会向请求者返回一个数据请求,即DBIDResp。
——请求者向下级发送写入数据,NCBWrData或取消写入数据,WriteDataCancel。请求者必须仅在收到DBIDResp后才发送。
——SNF返回完成响应Comp给到HNF。
——HNF向请求者返回一个完成响应,Comp。允许(但不要求),HNF等待SNF返回的Comp,再给请求者发Comp。
——可选地,当请求需要TagMatch响应时,SNF将向请求者返回TagMatch响应。在返回TagMatch之前可以等待写数据,但不是必需的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接收机
    +关注

    关注

    8

    文章

    1122

    浏览量

    52648
  • CMO
    CMO
    +关注

    关注

    0

    文章

    11

    浏览量

    8517
  • DCT
    DCT
    +关注

    关注

    1

    文章

    55

    浏览量

    19737
  • SNF
    SNF
    +关注

    关注

    0

    文章

    2

    浏览量

    3706
收藏 人收藏

    评论

    相关推荐

    CHI架构的基础知识

    CHI架构是一个可扩展的、支持一致性的集线器接口和由多个组件使用的片上互连。根据系统要求的PPA(performance, power, and area),CHI体系结构允许组件连接的灵活拓扑结构。
    的头像 发表于 10-30 14:39 662次阅读

    chi flat iron bowl is chi hair straightener

    if it is account the price. Obviously, the amount of a Chi Flat Iron , like any added product, differs
    发表于 10-21 22:28

    ARM系列之CHI协议介绍(一)

    的学习要换一种思路。接下来不会完全按照 spec 的顺序来分析 CHI,想到哪就写到哪了。 2、transaction 如何在系统中的节点间路由呢一个 RN 会产生 transaction(read
    发表于 04-02 14:41

    ARM系列之CHI协议介绍(二)

    1、基于CHI系统处理器的读请求开始之前,先回顾一下。一个 message 可以是 transaction request,data response,snoop request,由一个或多个
    发表于 04-06 11:17

    ARM系列之CHI协议介绍(三)

    transaction 通知其它主机。2、CHI支持两种形式的独占访问今天来看一下独占访问(Exclusive Accesses)。什么是独占访问呢?就是处理器对某个内存地址的数据,在某个时间段内享有独有的访问
    发表于 04-06 11:33

    请问Transaction interval是否可以优化?如何优化?

    的8bit中进行数据编码),只能每18bit或者27bit执行一次发送事务。在一次发送事务中,Transaction interval大约占了94.5%(20MHz SCLK见下图)。请问Transaction interval是否可以优化? 如何优化?
    发表于 03-03 06:16

    AMBA CHI协议介绍

    相干集线器接口(CHI)是AXI相干扩展(ACE)协议的演进。它是Arm提供的高级微控制器总线架构(AMBA)的一部分。AMBA是一个自由的可用的、全球采用的、开放的功能块连接和管理标准在片上系统
    发表于 08-02 13:40

    AMBA 5 CHI架构规范

    CHI架构是一种可扩展、连贯的集线器接口和片上互连,可供多个组件使用。CHI架构允许根据性能、电源和区域系统要求灵活地进行组件连接拓扑。
    发表于 08-08 07:46

    SoC Designer Plus AMBA CHI协议包的用户指南

    这是SoC Designer Plus AMBA CHI协议包的用户指南。 该协议包包含用于ARM AMBA CHI协议的SoC Designer Plus事务端口接口。 ARM AMBA CHI
    发表于 08-17 07:08

    1线文件结构-1-Wire File Structure

    Abstract: This application note discusses the 1-Wire® File Structure (OWFS). The OWFS provides
    发表于 04-24 09:48 742次阅读
    1线文件结构-1-Wire File <b class='flag-5'>Structure</b>

    MP3_chi数据手册

    MP3_chi数据手册,有需要的朋友下来看看
    发表于 08-19 17:04 1次下载

    高速信号设计-Via structure

    设计者可以根据需求,创建不同的Via structure,Via structure可以包含您所需要的设计对象,例如Via、Shape(包括RKO)、Cline等。Via structure的创建
    的头像 发表于 03-21 10:05 7221次阅读
    高速信号设计-Via <b class='flag-5'>structure</b>

    SystemVerilog中的Packed Structure

    一个packed structure有很多的bits组成,这些bit在物理上连续存储。packed structure只允许包含packed数据类型。
    的头像 发表于 11-07 10:17 1654次阅读

    全方位的Arm AMBA 协议层介绍

    根据transactions的不同可以分类为:Read、Dataless、Write、Atomic、Other、Snoop。这些类型在《CHI基本概念介绍》中有讲解,本节将按如下方式阐述Transaction structure
    的头像 发表于 04-24 10:39 2226次阅读
    全方位的Arm AMBA 协议层介绍

    UVM Transaction-Level验证组件

    如下图所示,UVM中的TLM接口为组件之间Transaction的发送和接收提供了一套统一的通信方法。
    的头像 发表于 05-29 09:31 390次阅读
    UVM <b class='flag-5'>Transaction</b>-Level验证组件