cache
cache 的功能:
buffer近期访问的数据,提高数据存取的效率,减小BUS的带宽消耗。
总线的带宽指的是这条总线在单位时间内可以传输的数据总量,它等于总线位宽与工作频率的乘积。
cache 的读行为:
若hit,cpu直接从cache读取数据。
若miss
1 read through 从内存中读取,但是不缓存到cache。
2 read allocate,从内存读取,同时缓存到cache。
cache 的写行为:
片上总线数据传输原理
片上总线的作用:
1 建立两个模块间的(master/slave)间数据传输的通道。
2 保证2个(多个)模块间数据的正确性。
3 考虑两个模块间数据的传输效率,带宽。
数据传输靠主设备master发起:
主设备靠地址线表明需要访问的从设备slave。
互联总线靠地址线路由访问(command/data),并最终选中目标从设备slave。
bus arbiter: 一个时间看过去只有一个master和一个slave建立传输
bus NOC : 一个周期看过去可以有多个master和多个slave建立传输
APB:
用于慢速外设模块
AHB
用于高性能,高时钟工作频率模块。
AMBA总线规范,AHB为其中一部分,AHB用于高性能,高时钟频率表的系统结构,典型的应用如ARM核与系统内部RAM,DMA的连接。
AHB总线可以将微控制器CPU、高带宽的片上RAM,高带宽的外部存储器接口,DMA总线master等等连接起来构成一个独立完整的SOC系统。不仅如此,还可以通过AHB-APB桥来连接APB总线系统,
AHB总线的组成:
AHB总线由AHB总线主机、AHB总线从机和infrastructure构成。 infrastructure由仲裁器、数据多路选择器、地址控制多路选择器、译码器构成。
AHB 主机: 总线主机能够通过提供地址和控制信息发起读写操作。任何时候只允许一个总线主机处于有效状态并能使用总线。
AHB 从机: 总线从机在给定的地址空间范围内响应读写操作。总线从机将成功、失败或者等待数据传输的信号返回给有效的主机。
AHB 仲裁器: 总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能够根据应用要求而得到执行。AHB 必须只包含一个仲裁器,尽管在单总线主机系统中这显得并不重要。
AHB 译码器: AHB 译码器用来对每次传输进行地址译码并且在传输中包含一个从机选择信号。所有 AHB 执行都必须仅要求有一个中央译码器。
信号描述
AMBA信号的命名都用名称的第一个字母来指示信号和哪个总线相关联。H表示一个AHB信号。 n表示低电平有效。
AHB arbiter 接口:
AHB仲裁器保证了任意时刻只有一个master可以接入总线。 arbiter决定哪个发出接入请求的master可以接入总线,这通过优先级算法实现。
总线操作:
有需要占用总线的Master向arbiter发出请求,arbiter授权给指定的master。任意时间周期只有一个master可以接入总线,对指定的slave进行读写操作。
获得授权的总线开始AHB传输,首先发出地址和控制信号,提供地址信息,传输方向,带宽和brust类型。总线统一规划slave的地址,译码器根据地址和控制信号确定哪个slave和master进行数据通信。数据传输通过数据总线完成。
AHB将读写总线分开,写数据总线用于从master到slave的数据传输,读数据总线用于slave到master的数据传输。每笔传输包括一个地址和控制周期,一个或者多个数据周期。
基本传输:
地址 ,数据传输。
传输分为 单次传输signal,和突发传输brust(多次连续传输,传输一串数据)
1 没有等待状态的单次传输: singal transfer
2 slave 插入等待状态的单次传输:
送机可以及时处理主机请求,但也可能存在从机太慢不能立即处理的情况,这时需要从机插入一些等待的状态。
3 多个signal transfer 的流水线 pipline操作
AHB控制信息:
HTRANS: 进行一次传输时的传输类型,这个信号由主机根据自己要进行的传输类型生成的控制信号。
这个信号只有在突发传输时候出现,当从机收到这个信号时,表明当前的传输是一个突发中的某一拍,这时总线的控制信号应当与之前保持一致,地址视情况递增或者回环。
协议支持增量和回环操作:
增量突发访问连续地址并且突发中的每次传输地址仅是 前一次地址的一个增量。