Khorina · 9月12日

芯片杂谈 -- 内核包含哪些模块

目录

  1. R52内核速览

2. 处理器模块详解

  1. 内核的功能安全测什么?
  2. 小结

最开始接触到汽车MCU大都来自NXP、Infineon、Renesas,例如MPC5748、TC275、RH850 P1X等等;

而各大OEM、供应商等等发布的JD通常都会要求熟悉AURIX、PowerPC、G3KM等等内核。

其实我从来没明白这个所谓熟悉,是哪种程度?而面试者通常也不会问太多内核的东西。

但是出于好奇,我去研究了目前非常火的ARM Cortex-R52 处理器,总结一下内核里的东西,算是一个入门小科普。

1. R52内核速览

Cortex-R52处理器是一款中等性能、有序、超标量处理器,主要用于汽车和工业应用。参考模型如下图所示:

image.png

该处理器包含如下部件:

  • Core,内核;
  • TCM,Tightly Coupled Memories,最靠近内核的一段RAM,不能cache,速度最快;对应Tricore的DSPR\PSPR等。
  • 总线接口,AXIM\S、Flash 接口、LLPP(Low-latency Peripheral Port)接口;
  • GIC,Generic Interrupt Controller中断控制器;
  • PMC,Programmable MBIST Controller,用于执行内部MBSIT测试等
  • ....

目前已经有大厂基于此核做区域控制器,例如S32Z、E。

image.png

根据文档描述每个处理器(Processor)可以下挂1-4个内核(Core),因此从这里就引出了Cluster的概念,以S32Z为例,它总共分为了2个Cluster:

image.png

每个Cluster里包含4个内核,如果需要锁步,那就配置为两对锁步核使用;也可以一个cluster配置锁步,另一个cluster配置4个普通核;更有甚者可以直接配置2 * 4个普通核使用。

那如果是配置为8个核使用,没有锁步,处理器的功能安全如何保证?

为此,我们就必须对处理器的内存进行一些测试,那么就有必要搞懂里面到底包含了哪些模块。

2. 处理器模块详解

R52内核采用 Harvard memory 架构,从内部视角看就分为了两个独立路径来访问指令和数据,如下所示:

image.png

从上图,我们可以看到,指令侧仅仅是取指,所以是一个单向接口;

数据侧可以读写数据,但是只有从AXIM取写数据,所以Flash接口是一个单向接口,AXIM是一个双向的。

除此之外,R52提供了A\B\C TCM,可以实现最快速地访问,因此这块RAM里面可以运行时间要求很高的代码。

有了上述逻辑之后,我们进一步来看Core里面应该包括哪些模块?

由于没有找到R52内部的细节,所以从基于M33依葫芦画瓢总结如下:

image.png

首先是获取数据的指令侧和数据侧,在使用BIU(Bus Interface Unit)用于总线仲裁,处理Flash接口、AXIM接口的访问冲突;

其次,我们汇编常用的load store指令,则有LSU(Load Store Unit)控制访问其他外设系统等;

当LSU完成基本操作后后,统一送到DPU(Data Processing Unit)进行处理,DPU是内核最重要的单元,它包含了ALU(Arithmetic and Logic Unit)、异常响应、取指译码执行等。异常的来源通常有GIC提供。

为了加快运行速度,PFU(Prefetch Unit)可以从Cache中预取指令,送到DPU进行处理。

总结下来,一个Core内部至少应该包括如下单元:

  • DPU:Data Processing Unit,取指译码执行指令、处理异常;
  • LSU:Load Store Unit,控制外设访问的load、store操作;
  • PFU:Prefetch Unit,预取Cache指令;
  • BIU:Bus Interface Unit,处理不同总线接口访问冲突;
  • TCU:TCM Control Unit,控制TCM的load store操作;

至于R52内部还有哪些单元,看后续有无公开资料可以看看。 

3.内核的功能安全测什么?

首先可以确定的是,online test模式下,内核LBIST是没法做了,不然芯片重启了都完蛋,PBIST上电搞一次可以了,后面就持续监控,那能做的只有MBIST;

MBIST在R52里是由PMC-52进行控制,那具体可以测什么内容呢?

TCM是可以测试的,其次就是核里自带的Cache,包括指令Cache、数据Cache。

其实从这点来看,TC3xx的MTU设计还是非常厉害的,它仅用MTU+SSH就可以覆盖全芯片的Memory测试,而如果使用R52内核的MCU会如何设计MBIST,确实非常让人好奇。

4.小结

用了很小的篇幅来描述内核里的各种单元,有个初步印象,后续准备多多对比几家汽车MCU的内核,看看那些自研内核会不会有相似之处。

就酱,债见!

作者:快乐的肌肉
文章来源:汽车MCU软件设计

推荐阅读

更多物联网安全,PSA等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA技术交流群,请备注研究方向。
推荐阅读
关注数
4569
内容数
186
Arm发布的PSA旨在为物联网安全提供一套全面的安全指导方针,使从芯片制造商到设备开发商等价值链中的每位成员都能成功实现安全运行。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息