接下来该看redistributor了。
图1 gic-600 redistributor
跟distributor连接的部分就不说了。cpu\_active是指示cluster或core的状态,可以用于idle管理。ppi\_id用于多核设计时,区分每个redistributor。ppis就是ppi中断线,在gic-600是这么描述ppi的:
图2 ppi描述
从上面可以看出来,所谓的“私有”是说这些中断信号是core专有的。对于ppi,armv8定义了三种规格,8,12和16。所以对于不同的core来说,可能ppi数量不一样。
图3 generic timer
上面是armv8-a的架构spec里,关于timer的图。我们可以看到,core的timer会发ppi,而中断控制器返回fiq或者irq给core。细心的同学可能会问了,在redistributor上面没有fiq和irq的信号啊?其实在第一篇文章里就说了,在现有的gicv3架构下,关于中断fiq和irq,以及系统寄存器等放在了cluster/core端,对外留出了一组接口,叫cpu interface(在gicv2中实现在中断控制器这一侧),也就是图1中最下面的接口。其实这是一组简化的axi4-stream。
图4 gic stream协议接口
由于是双向,所以是两组信号
图5 redistributor到cpu的信号
图6 cpu到redistributor的信号
既然是简化的总线协议,为了更便于cpu和redistributor通信,arm又规定了具体的数据包格式。下图是cpu端发出的命令格式,具体的解释请查阅gicv3的文档,此处就不过多的贴图了。
图7 cpu interface命令
至此,就剩下最复杂的its了,这一部分是为了实现基于消息的中断。前面介绍过,lpi是一种基于消息的中断。也就是中断信息不在通过中断线进行传递。its就是要将接收到的lpi中断进行解析。
图8 gic-600的its组件
既然是信息中断,就一定要有区分这些中断的方法,这样才能找到合适的中断处理对策。所以这里有两个概念。
eventid,用来表示外设发送中断的事件类型
deviceid,用来表示哪一个外设发起lpi
而its需要将外设发送的deviceid,eventid,通过一系列查表,得到lpi的中断号,再使用lpi中断号查表得到该中断的目标cpu。为此,its需要维护几张表,分别是device table,interrupt translation tableh和collection。
图9 its表
当外设写gits\_translater寄存器,产生了lpi。这时its首先要拿着deviceid,从device table中选择索引为deviceid的表项。从该表项中,得到interrupt translation table的位置;然后再根据eventid,从interrupt translation table中选择索引为eventid的表项。得到中断号,以及中断所属的collection号;最后,使用collection号,从collection table中,选择索引为collection号的表项。得到redistributor的映射信息,最后根据collection表项的映射信息,将中断信息路由发送给对应的redistributor。
最后,提一句,gicv3中开始支持亲和性路由(affinity routing)。请原谅我偷点懒,直接把文档中的部分贴出来:
这里要解释一下什么是亲和性,我最初接触这个概念的时候简直是一头雾水,直到有一天看操作系统相关的书才明白是咋回事(忽略我的无知吧~~)。cpu亲和性是一种调度属性(scheduler property),linux调度器会根据affinity的设置让指定的进程运行在绑定的cpu上,而不会在别的cpu上运行。其中有一个好处是,可以提高cache的命中率。当一个进程在某个cpu上运行时,会在该cpu的缓存中维护许多状态。下次该进程在相同的cpu上运行时,由于缓存中的数据而执行的更快。
因此,多处理器的调度器应该考虑这种亲和性,尽可能的进程保持在同一个cpu上。同理,对于并发程序也是有好处的。感慨一下,做cpu设计,到了最后肯定要与操作系统相爱相杀,哈哈哈~~~
亿航与广州市政府合作将把广州市打造成全球首个空中交通试点城市
iphone8什么时候上市?iphone8最新消息:iPhone 8或将取消指纹识别,启用人脸识别?
传感器在哪三个领域中有着广大作用?
物联网和区块链合力,打造良性循环生态产业圈
3D芯片/封装/ PCB协同设计优化系统怎样操作
介绍redistributor的相关知识
placeholder属性和value属性的差别
以太网的5G蜕变:FlexE Tunnel
温度传感器探头长度要求 pt100温度传感器探头分析
荣耀9、小米6对比评测:这对难兄难弟,外观、价格也都差不多该如何抉择
中芯国际蒋尚义:应提前布局先进工艺和先进封装
百度世界2023看点 大模型改变世界
我们该如何提升汽车继电器运行的稳定性
基于鸿蒙OS的多源数据融合水质监测系统设计
无锡华润微电子突发火灾 原因仍在调查中
简述全电压灯丝灯方案设计
国内外固态电池进展及布局情况分析
影响到晶振频率的因素有哪些?
设备中的PLC故障点解析以及处理方法
高清超窄边广告机的优势