ACP:Accelerator Coherency Port

ACP是一个可选的slave interface(接口),接口协议规范是ACE-Lite协议的子集。只有访问cacheable memory空间时,ACP slave接口允许外部master通过DSU的main memory interface(Master口)访问memory空间。ACP读和写的data bus是128bit,为了提高效率,每次访问以cache line长度为边界。为了保持cache的一致性,对于ACP口的访问,需要check cluster中的所有cache locations,即L3 cache和每个core的data caches。By default(默认情况下),ACP write访问(acccess)隐含stash requests to the L3 cache,即其他master想要把数据存在(stash)L3 cache中。或者,隐含的stash request can target the L2 cache of a selected core,即将数据存在指定的core的L2 cache中。

ACP interface properties for the DSU

ACP property Supported by the DSU
Port_Type Accelerator
Continuous_Cache_Line_Read_Data Yes
Multi_Copy_Atomicity Yes
Cache_Stash_Transaction Yes
Low_Power_Signals Yes
Ordered_Write_Observation No
others...... No

ACP slave口的实现是ACE-Lite协议的子集,ACP ACE-Lite子集在AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite, ACE and ACE-Lite中有有描述。在DSU中实现的ACP Slave port还有如下额外的限制:

  • ARCACHES和AWCACHES的值仅限于:

——0b0111

——0b1011

——0b1111

  • 所有的传输(transactions)可以是Secure或Non-secure。
  • Exclusive accesses不支持。ARLOCK和AWLOCK信号不存在。
  • 通过AWDOMAINS和ARDOMAINS信号,所有的操作可以指定是Inner Shareable、Outer Shareable和Non-shareable。
  • 不支持Barriers操作。任何write transaction的BRESP响应表明该transaction可以被全局观察(global observability)到。
  • ARSIZE和AWSIZE信号不存在,默认认为是4(16 bytes)。
  • ARLENS和AWLENS限制如下:

0:  One beat

3:  Four beats

  • ARBURST和AWBURST信号不存在,默认认为是0b01,即INCR类型。
  • ARSNOOP信号不存在,默认认为是0b0000。
  • ARQOS和AWQOS信号不存在。

ACP支持的read传输类型有如下transfer size和length组合:

  • 16-byte INCR read transaction:

——ARLENS is 0 (one beat)。

——Address aligned to 16-byte boundary (ARADDRS[3:0] is 0b0000)。

  • 64-byte INCR read transaction:

——ARLENS is 3 (four beats)

——Address aligned to 64-byte boundary (ARADDRS[5:0] is 0b000000)。

ACP支持的写传输类型有如下transfer size和length组合:

  • 16-byte INCR write transaction:

——AWSTRBS,any combination of bytes,including no bytes,are valid.

——AWLENS is 0 (one beat).

——AWSNOOPS is WriteUniquePtl.

——Address aligned to 16-bytes boundary (AWADDRS[3:0] is 0b0000)

  • 64-byte INCR write transaction

——AWSTRBS,any combination of bytes,including no bytes,are valid. When AWSNOOPS is WriteUniqueFull, all bytes must be valid.

——AWLENS is 3 (four beats).

——AWSNOOPS is WriteUniquePtl or WriteUniqueFull.

——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)

ACP支持如下的Cache stash传输类型的transfer size和length组合:

  • 64-byte INCR write stash transaction:

——AWSTRBS,all bytes are valid.

——AWLENS is 3 (four beats).

——AWSNOOPS is WriteUniqueFullStash.

——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)

  • Dataless 64-byte INCR write stash transaction:

——No W-Channel transfer.

——AWLENS is 3 (four beats).

——AWSNOOPS is StashOnceShared or StashOnceUnique.

——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)

在AWSTASHLPIDENS信号有效时,AWSTASHLPIDS[3:1]信号指示选定的core number,Stash requests可以指向选定core的L2 cache。AWSTASHLPIDS[0]信号用于thread number,但不会影响stash request。

如果requests不符合这些约束(restrictions),将会在RRESPS和BRESPS通道上产生SLVERR response。下表列出了支持的ACP transactions:

ACP supported transactions

Transaction Notes
ReadOnce -
WriteUniqueFull -
WriteUniquePtl -
WriteUniqueFullStash -
StashOnceUnique -
StashOnceShared -

ACP performance:

为了提高ACP性能,ACP transaction遵循如下指导(guidelines):

  • 为了避免second transaction stalling the ACP interface直到first transaction结束,同一个master必须避免发出多个同AXI ID的outstanding transactions。如果有两笔transaction必须要保序,Arm建议second transaction等first transaction回完response后再发送出去。
  • 当writes包含full cacheline data时,会达到更高的性能。因为write小雨full cacheline data时,通常会导致read-modify write sequence,即需要先读后写(merge)
  • L3的一些资源在ACP interface和cores之间是共享的,因此在一些场景下,ACP interface拥堵的访问会降低cores的性能。

下表列出了ACP的可以接受outstanding能力:

ACP acceptance capabilities

Attribute Value Description
Write acceptance capability 33 The ACP can accept up to 33 write transactions.
Read acceptance capability 33 The ACP can accept up to 33 read transactions.
Combined acceptance capability 34 The ACP can accept up to 34 transactions. There is no performance benefit above 32 outstanding transactions.

ACP slave interface 学习相关推荐

  1. UVM 验证方法学之interface学习系列文章

    本系列文章,针对 interface 做了较全面的剖析,并结合实际工作中遇到的一些问题,以简单的例子形式,展示给读者,方便读者自行下载和修改,加深对interface的理解.文章中的例子,几乎涵盖了i ...

  2. IComponent2 Interface 学习

    Solidworks学习笔记-链接Solidworks 在此基础上学习 允许访问程序集中的组件. 属性 Name Description 备注 ComponentReference Gets or s ...

  3. IPartDoc Interface 学习笔记

    Solidworks学习笔记-链接Solidworks 在此基础上 属性 Name Description 备注 IMaterialPropertyValues Gets or sets a mate ...

  4. IDrawingComponent Interface 学习

    Solidworks学习笔记-链接Solidworks 在此基础上学习 属性 Name Description 备注 Component Gets the referenced component f ...

  5. IAssemblyDoc Interface 学习笔记

    允许访问执行装配操作的函数: 例如,添加新组件.添加配合条件.隐藏和爆炸组件. 属性 Name Description 备注 EnableAssemblyRebuild Gets or sets wh ...

  6. Introduction To AMBA 简单理解

    文章目录 前言 简介 AMBA 的演进 AMBA 演进图解 AMBA specifications AMBA1.0 1.1 Introduction to AMBA 1.2 AMBA Specific ...

  7. 阿里云云计算ACP学习---汇总

    阿里云云计算ACP 1. 阿里云整体架构 1.1 阿里云技术架构 1.2 阿里云产品架构 1.3 阿里云解决方案架构 2.ACP课程内容范围 3.ACP课程内容详解 1.弹性计算–云服务器ECS 2. ...

  8. 赛灵思的block memory generator用户手册pg058翻译和学习(AXI4 Interface Block Memory Generator Feature Summary)

    (1) 读赛灵思IP手册,block memory generator Product Guide,即内存memory系列(如RAM ROM等)的手册.本期介绍AXI4 Interface Block ...

  9. XIlinx MIG 控制DDR3 SO-DIMM内存条(二):MIG IP核学习

    目录 1 简介 2 IP核自定义 2.1 设置IP核参数 2.1.1 Pin Compatible FPGAs 2.1.2 Memory Selection 2.1.3 Controller Opti ...

最新文章

  1. 南京大学「自然指数」超越清华北大,位列全国高校第一、世界第七,突显学术实力...
  2. ECMAScript数据属性和访问器属性
  3. OpenCV均值漂移的跟踪mean-shift based tracking的实例(附完整代码)
  4. php常用的数组函数及功能,PHP 常用数组函数 (1)
  5. 硫辛酸的7種功效及副作用(10點使用禁忌要留意)
  6. 从客户端(CourseIssueContent=P财务审计师岗位认证招生简章BR...)中检测到有潜在危险的 Request.Form 值。...
  7. Apache PDFBox命令行工具:无需Java编码
  8. VMware ESXi 为虚拟机分配usb设备(硬盘)
  9. CAD环境中求算接合表面积
  10. 毕啸南专栏 | 对话智联招聘CEO郭盛:未来的社会是透明的
  11. 生物信息服务器集群,IBM刀片服务器集群推动生物信息研究
  12. C++程序设计案例实训教程第6章
  13. OSIRISV4.1使用教程(最新可用版)
  14. 【UCIe】UCIe D2D Adapter 介绍
  15. BP神经网络原理简单介绍以及公式推导(矩阵形式和分量形式)
  16. 电子合同管理有这些细节更需要注意!
  17. LINUX远程连接关闭后进程退出的解决方案
  18. [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)
  19. 剪视频一点都不难,多款超实用剪辑软件全方位评测!
  20. 安检设备是什么,有什么作用

热门文章

  1. 证券考试和基金考试有什么区别?
  2. APP项目开发-需求分析
  3. 合肥工业大学宣城校区计算机大赛,合工大宣城校区学子!全国冠军!
  4. 小红书怎么推广笔记?小红书推广笔记有什么用?
  5. QT5.11-spdlog使用教程
  6. 修改Oracle序列
  7. GetItemText
  8. 神经网络及其matlab仿真
  9. B4A +GoLang 实现手机端webserver
  10. GEANT4的B4a例子要点