概要
本文主要对英飞凌TC3XX系列的PFI模块进行介绍,针对该芯片,系统的片上通信主要包括两种:
1、SRI:共享资源互联(crossbar,64位数据总线)
2、PFI:高速外设互联(多主机互联,32位数据总线,包括SPB、BBB)
FPI旨在让系统处理器单元能够快速获取外设信息。本文主要基于FPI进行展开。
一、功能概述
FPI旨在让系统处理器单元能够快速获取外设信息。对请求,地址,数据进行并行的流水线式传输(pipelining of transfer)保证了传输能始终工作在接近最大带宽。
FPI总线包含两条总线:
① SPB:系统外设总线,非ADAS相关的系统和通信外设总线
② BBB:仿真设备及ADAS相关总线
主要功能特性如下:
-针对高速和高性能进行了优化
-支持多主机的流水线任务传输
-32位带宽地址和数据总线
-8、16、32位数据传输
-64、12、256位块传输
-从机控制的等待状态插入
-超时检测和处理
-支持CPU原子指令操作
-灵活的仲裁机制
-饥饿预防机制可以保证低优先级的请求也能得到传输
-地址信息包含主机TAG ID及监督模式信息
-所有从属模块均采用基于TAG ID的访问保护,为控制寄存器提供通用写保护
-信息完整性支持,包括地址信息,传输信号及控制信号
挂载在PFI总线上的功能单元可以作为主机(master)也可以作为从机(slave),主机可发起FPI传输,也可作为从机,从机只能响应和反馈FPI总线传输请求,进行从机寄存器的读取和写入。
FPI主机需要发起传输时,会首先向总线控制单元(SBCU)发出总线所有权请求的信号。当得到授权后,可以发起FPI总线的读取或写入传输,传输的目标单元即为FPI从机,并进行请求的响应
二、功能详述
1)传输类型
1、单次传输:单词传输进行8位,16位,32位的传输
2、块传输:传输方式和单次传输一致,但是在每个地址之后会跟着多个数据阶段。块传输可以是2word、4word、8word传输
3、原子传输:读和写的原子传输总是锁定的并且不会被任何的总线master中断。可以保证传输的完整性
2)传输过程
FPI数据传输包括以下三个过程:
1、请求/授权周期:FPI总线主机请求获得总线授权进行读或写的传输请求
2、地址周期:主机将地址传输至FPI总线,所有的从机确认它们是否在接下来的数据周期被寻址
3、数据周期:主机将数据传输至FPI总线,由从机进行读取或写入。
note:当两个主机同时请求授权时,优先级高的主机优先获得授权
3)FPI总线控制单元及总线仲裁
对不同的FPI总线,总线控制单元不同
SBCU: SPB总线控制单元
EBCU: BBB总线控制单元
总线仲裁
BCU的仲裁单元在请求总线访问的主机之间进行仲裁。每个主机的优先级在寄存器PRIOH和PRIOL中定义。如果没有待处理的请求,则总线将被授予默认主机。如果没有总线主机占用总线,BCU本身将把FPI总线设置为空闲状态。BCU始终在当前地址阶段结束时进行仲裁,并决定应授予哪个主机。越低的优先级数表示越高的优先级,0的优先级最高。
默认主机:任何FPI主机都必须能够充当默认主机。如果没有主机请求总线访问,则最近授予的FPI主机将被授予默认主机。重置后,优先级为0的主机将成为默认主机
仲裁算法:
BCU中的仲裁算法为三层仲裁(需保证两个FPI主机优先级不为相同优先级,8除外)
①有未决请求时,优先级驱动的主机仲裁
②针对最多8组的优先级为8的轮询仲裁算法
③饥饿预防机制可以提高主机的优先级用于仲裁
三、故障检测及处理
1)BCU诊断及处理
①故障类型:
-错误确认:FPI从机对传输事务做出错误响应(寄存器访问保护机制:BCU控制寄存器通过该机制进行保护,包括基于TAG ID的访问保护,若检测到访问保护被违背,会发出错误确认)
-无响应地址错误:无FPI从机对传输事务进行响应
-超时:从机未能在规定的时间窗口内对事务进行响应
②故障处理:
当传输事务导致故障,相应事务的地址和数据会捕获并存储在寄存器中
寄存器:
BCU_EADD:故障地址
BCU_EDAT:故障数据
BCU_ECON:故障状态信息【包括以下状态:读RDN,写WRN,监控模式SVM,确认ACK,准备RDY,退出ABT,超时TOUT,主机ID TAG,事务操作码OPC】
2)EDC诊断及处理
所有通过FPI进行的事务传输均由EDC(Error Detection mechanism)机制进行保护,机制可以检测以下故障:
-事务地址阶段错误
-事务数据阶段错误
-传输数据中的错误
-传输无从机、错误的从机、多个从机错误
-多主机并行获得授权错误
在BCU检测到响应错误后会发送alarm给SMU,获取进一步的分析和处理决策。BCU提供额外信息,以识别检测到FPI EDC错误的连接FPI从/主接口。
EDC机制只提供错误检测功能,ECC(Error Correction Codes)可以对检测到的错误进行纠正
3)BCU报警机制
BCU在以下情况下会向SMU发送报警信号
-通过BCU检测到FPI总线故障报警
-检测到超时报警
-检测到EDC错误报警