0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TC3xx内部模块框图和各种内部总线及存储器访问方式

832065824 来源:汽车电子嵌入式 作者:汽车电子嵌入式 2022-11-04 14:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

TriCore是英飞凌自主开发的私有内核。早在2000年,英飞凌发布了第一代TriCore单片机产品。英飞凌为TriCore申请了注册商标,在一个内核架构里集成了RISC精简指令集单片机,MCU微控制器DSP数字信号处理的功能,是一款计算能力强大的32位实时单片机内核架构。TC3xx系列MCU是基于TC1.6P作为其内核的。本系列文章将记录Infineon芯片的学习笔记。本文首先介绍TC3xx的内部模块框图和各种内部总线以及存储器访问方式,接着介绍TC1.6.2的内核架构,这其中主要介绍了寻址方式,通用寄存器,上下文管理,中断机制,Trap机制,MPU机制等内容。

c77e21ec-5bfc-11ed-a3b6-dac502259ad0.png

1.Architectural Overview

c797935c-5bfc-11ed-a3b6-dac502259ad0.png

图1:TC3xx相比于TC2xx改进部分

如图一所示,TC3xx内部最多支持6个核,这些核间使用SRI总线进行通信,每个核都有自己的Memory。TC3xx在核架构上相比于TC2xx做了如下改进:

1.1 Performanc

1)支持Tricore 1.6.2的内核

2)增加了新的指令

3)最多支持6个核,最大主频达到300MHz

4)每个CPU有自Local的Flash bank,也就是说有自己的Local的总线可以访问自己Local的Flash bank,速度更快

5)

1.2 Memories

1)更大的SRAM

2)更强大的内存保护单元MPU。数据和代码保护的Register的设置更多。

1.3 ADC

1)TC2xx有队列模式,自动扫描模式,背景扫描模式,TC3xx只有队列扫描模式,更加的灵活。

1.4 Delta-Sigma

1.5 HSM

1)支持非对称加密算法

1.6 Standby control unit

专门的低功耗管理单元

1.7 IO Pads

支持5/3.3v两种硬件系统

1.8 Ethernet

1)支持千M以太网,支持一部分TSN/AVB的功能

1.9 Safety

1.10 ADAS

增强的SPU

c7d1ca72-5bfc-11ed-a3b6-dac502259ad0.png

图2:TC3xx系列资源概况

2.Memory Concept

2.1 Memory architecture

c8089f20-5bfc-11ed-a3b6-dac502259ad0.png

图3:TC3xx内存架构

主要关注PFlash和LMU部分。

每个CPU都可以通过一个私有的LPB总线访问各自3M的PFlash的bank,访问速度比较快。外部有个LMU的Ram,分为两种,一种叫dLMU,另一种叫LMU。每个cpu可以通过私有的总线访问dLMU,对于LMU,CPU只能通过SRI总线来访问,速度相对dLMU的访问较慢。

c8388cb2-5bfc-11ed-a3b6-dac502259ad0.png

图4:TC3xx内存访问速度

PSPR,DSPR,DLMU都是Local的SRAM,CPU访问自己的Local Ram的熟读非常的快,例如CPU读写local DSPR都是0等待时间的。CPU也能范围其他核的Local Ram,但是读/写/取指的速度就会变慢。

c87f0ade-5bfc-11ed-a3b6-dac502259ad0.png

图5:内存范围起始地址

对于同一款内存可以使用cache的访问方式或者非cache的访问方式。例如对于PFLASH的访问如果使用cache则起始地址是0x80000000,非cache的访问方式的起始地址是0xA0000000。同样,LMU也存在0x90000000/0xB00000000两个起始地址。

对于每个CPU内部的PSPR和DSPR都不需要使用cache,CPU等待时间是0ws。

每个CPU都有3M的local PFLASH的bank,CPU通过LPB总线访问PFLASH。这个LPB总线在使能了AB SWAP之后就会被disable掉,这么做的原因是为了让code运行在A Bank还是B Bank的performence都是一样的(是能ab swap和disable lpb总线的操作在UCB的一块区域操作)。

2.2 Memory and connectivity

c89ddafe-5bfc-11ed-a3b6-dac502259ad0.png

图6:CPU内部总线连接图

CPU通过SRI Master Interface连接到其他core的SRI Slave Interface来范围其他核的memory。

2.3 Memory map

c8c4bb9c-5bfc-11ed-a3b6-dac502259ad0.png

c980d71e-5bfc-11ed-a3b6-dac502259ad0.png

c9b24696-5bfc-11ed-a3b6-dac502259ad0.png

图7:内存映射图

3.On-chip Bus Connectivity

ca229662-5bfc-11ed-a3b6-dac502259ad0.png

图8:SRI总线

Tricore里面,内核之间的相互访问和通信都是通过SRI总线进行的。Tricore 1.6.2里面SRI总线有3个Domain,Domain 1包括CPU0-3,通过SRI0进行相互访问。其他类似。SRI直接通过S2S Bridge连接。

ca521428-5bfc-11ed-a3b6-dac502259ad0.png

图9:SRI总线连接图

ca709e16-5bfc-11ed-a3b6-dac502259ad0.png

图10:SRI总线间最差延迟时间

ca9cfbbe-5bfc-11ed-a3b6-dac502259ad0.png

图11:TC39x内部SRI总线连接图

每个SRI总线都有一个SRI Master Interface和一个SRI Slave Interface,对于一个SRI总线的SRI Slave Interface就存在同一时间多个SRI Master Interface访问的问题,那么就需要SRI具有仲裁的功能。

4.TC1.6.2 Architecture

4.1 TriCore concept

cacc021a-5bfc-11ed-a3b6-dac502259ad0.png

图12:TriCore定义

TriCore的含义:既有RISC精简指令集的特性,也集成了DSP数字信号处理器的性能,同时也可以实现实时控制。

cb520ab8-5bfc-11ed-a3b6-dac502259ad0.png

图13:英飞凌TriCore的发展图

4.2 Address range

cb810cfa-5bfc-11ed-a3b6-dac502259ad0.png

图14:TriCore的寻址空间

4G的寻址空间,16个Segment,小端系统。

4.3 Pipeline

cbea91ca-5bfc-11ed-a3b6-dac502259ad0.png

图15:Pipline

整型的Pipline主要组数据的运算,类似数据的加减乘除。Load/Store Pipline主要用来做数据的读取和存储,Loop Pipline主要做数据的循环处理。三个Pipline可以并行处理。

4.4 Instructions

cc566f26-5bfc-11ed-a3b6-dac502259ad0.png

ccbecf94-5bfc-11ed-a3b6-dac502259ad0.png

图16:指令

支持16位和32位指令格式,op1的bit 0为1则是32位指令,op1的bit 0为0则是16位指令。

支持位操作

支持MAC乘加指令,除法指令,单周期多数据处理指令SIMD。

4.5 Data Types

ccf75af8-5bfc-11ed-a3b6-dac502259ad0.png

图17:支持的数据类型

支持大部分数据类型。

4.6 Addressing Modes

cd265740-5bfc-11ed-a3b6-dac502259ad0.png

图18:寻址方式

支持绝对地址寻址,相对地址寻址,先加减后运算寻址,先运算后加减寻址。

4.7 Core Registers

cd54f5f0-5bfc-11ed-a3b6-dac502259ad0.png

cd74d0f0-5bfc-11ed-a3b6-dac502259ad0.png

图19:核寄存器

通用寄存器:和ARM核(r0 - r15)不一样,数据寄存器和地址寄存器分开。数据运算和地址运算不冲突,这样可以提高寻址和数据处理的效率。

系统寄存器:PC指针,程序状态字寄存器,系统控制寄存器(比如设置系统在Run/Halt/Sleep状态)

上下文寄存器:

中断和陷阱控制寄存器:ICR寄存器可以控制全局中断的开关。BIV是中断向量表的起始地址,BTV是陷阱向量表的起始地址。

内存保护寄存器:

栈中断寄存器:通用寄存器里面的A10是user stack pointer,而ISP是interrupt stack pointer,通过PSW寄存器可以设置是否使用ISP,如果使用了ISP的话,通常情况下系统使用A10作为栈指针,一旦产生中断后系统把ISP指向的地址赋值给A10,也就是中断使用另一块内存作为栈空间。

访问核寄存器只能只用专用的MTCR,MFCR指令。

A11类似ARM核里面的LR寄存器。

所谓Global Address也就是进入中断或者进行函数调用的时候是不存这些内容的。

数据和地址寄存器可以两个合起来作为一个64位的寄存器(P0/D0)。

4.8 Context Management

cd9f54a6-5bfc-11ed-a3b6-dac502259ad0.png

图20:上下文管理

cdd01c3a-5bfc-11ed-a3b6-dac502259ad0.png

图21:上下文存储区域

TriCore的上下文处理比较特殊。对于通用MCU(ARM 核)在进入中断或者函数调用时候的上下文内容一般存放在栈里面的,但是TriCore的上下文存放在一个叫CSA的区域的。Upper Context 的内容由硬件自动处理,而Lower Context的内容需要一些特殊的指令操作。

ce0d2526-5bfc-11ed-a3b6-dac502259ad0.png

图21:上下文事件和指令

对于绝大部分简单的ISR, Trap, 函数调用都比较简单的话只要保存Upper context就足够了,也就不会产生后面的BISR,SVLCX,STLCX,STUCX指令。

ce3efe52-5bfc-11ed-a3b6-dac502259ad0.png

图22:CSA存放地址

CSA可以存放在DSPR(一般存放在这里),DLMU,External Memory里面,通过修改连接ld文件来配置。

FCX: 指向空闲的CSA的起始地址。

PCX: 指向已经使用的CSA的地址。

LCX: 指向空闲CSA的结束地址。

4.8 Interrupt System

ce694518-5bfc-11ed-a3b6-dac502259ad0.png

ce8fdad4-5bfc-11ed-a3b6-dac502259ad0.png

cec9de78-5bfc-11ed-a3b6-dac502259ad0.png

图23:中断系统

TriCore 1.6.2中最多有7个中断服务提供对象,分别是CPU0-5以及DMA。每一个Service Provider对应一个中断控制单元ICU,中断服务请求节点SRN最多有1024个,8个GPSR可以用作软中断做来核间通信。

cef89a7e-5bfc-11ed-a3b6-dac502259ad0.png

图24:中断仲裁

ICU能够仲裁处理多个SRN同时的请求。

cf1d5396-5bfc-11ed-a3b6-dac502259ad0.png

图25:中断保护

中断寄存器也有保护机制,SRC有ECC的保护措施,在写完SRC寄存器后会自动生产一个ECC的Code,然后这个SRC的内容在被读取的时候就会做ECC的check。

SRC寄存器的权限也可以设置。比如,每个Bus Master总线都会有一个TAG-ID,我们可以设置SRC寄存器可以被哪些TAG-ID表示的总线访问。

cf442fca-5bfc-11ed-a3b6-dac502259ad0.png

图26:服务请求控制寄存器SRC

cf6304a4-5bfc-11ed-a3b6-dac502259ad0.png

图27:中断控制寄存器ICR和中断向量表地址寄存器BIV

VSS寄存器设置中断向量表是8字节对齐还是32字节对齐。

cf8ed8b8-5bfc-11ed-a3b6-dac502259ad0.png

图28:中断向量表

在TricCore里面,中断向量表不是固定的,是跟着中断优先级走的,也就是整个中断向量表内中断服务的排序是会跟着中断优先级的变化而变化的(和其他内核不一样)。

d02a596e-5bfc-11ed-a3b6-dac502259ad0.png

图29:中断处理过程

4.9 DMA service requests

d0c8261c-5bfc-11ed-a3b6-dac502259ad0.png

图30:DMA服务请求

SRN目标也可以选择DMA的,选择DMA的时候,TOS要设置成1。中断优先级要设置成和DMA的通道号一样,也就是中断优先级在选择DMA的时候就是DMA的通道号,这个很关键。

4.10 Traps

d0fab8fc-5bfc-11ed-a3b6-dac502259ad0.png

图31:Trap

Trap的概念就类似ARM里面的Exception vector异常向量。Trap也有自己的Trap向量表,Trap是为了检查一些非法的访问,例如NMI中断,内存保护。Trap有自己的类型TCN和ID TIN。

d151b0bc-5bfc-11ed-a3b6-dac502259ad0.png

图32:Trap类型

Trap类型一般有两种划分方式,同步或者异步,硬件或者软件。

同步Trap:CPU在执行的过程中发生的Trap,比如说中断溢出,取值错误,内存非法访问等。Trap发生的时候,CPU会把Trap发生的指令的下一条指令作为返回地址保存到A11寄存器当中,所以在Trap的handler里面可以读取A11来定位Trap发生的位置。

异步Trap:和中断类似,一般由外设或一些协处理器的错误造成的。比如说FPU上发生的一些Trap。异步Trap发生的时候,A11中的内容不具备参考意义的。

硬件Trap:比如说CPU执行的指令是非法的,内存保护错误等。

软件Trap:软件调用了一些系统调用指令,比如assert。

d1f8ee90-5bfc-11ed-a3b6-dac502259ad0.png

d257cd98-5bfc-11ed-a3b6-dac502259ad0.png

图33:具体的Trap

d291b6e8-5bfc-11ed-a3b6-dac502259ad0.png

图34:Trap处理过程

关键点,D15保存了Trap的ID号,可以在handler中读取D15获取Trap ID。

d2d81b2e-5bfc-11ed-a3b6-dac502259ad0.png

图35:Trap保护机制

4.11 Permission Privilege Levels

d3019e9a-5bfc-11ed-a3b6-dac502259ad0.png

图36:权限设置

d32c1c24-5bfc-11ed-a3b6-dac502259ad0.png

d358e4d4-5bfc-11ed-a3b6-dac502259ad0.png

d3874a86-5bfc-11ed-a3b6-dac502259ad0.png

图37:不同模式下的访问权限

User0模式允许访问外设寄存器,不允许访问内核寄存器,也不允许访问中断系统寄存器。

User1模式可以访问中断系统寄存器。

Supervisor模式可以访问核寄存器。

4.12 Memory protection

d3a7324c-5bfc-11ed-a3b6-dac502259ad0.png

d3d632cc-5bfc-11ed-a3b6-dac502259ad0.png

图38:内存保护

实际上就是6组MPU保护,6*18的数据保护,6*10的代码保护。

Bus MPU: 可以设置哪些Master Interface可以访问Local SRAM

d402f122-5bfc-11ed-a3b6-dac502259ad0.png

d42c199e-5bfc-11ed-a3b6-dac502259ad0.png

图38:增强的内存保护

4.13 Temporal Task Protection

实时操作系统对于内存访问错误可以通过MPU内存保护来识别和定位问题,但是对于任务超时该怎么来监控了?-- TriCore提供了时间任务保护机制来实现任务超时监控。

d4537318-5bfc-11ed-a3b6-dac502259ad0.png

d4ed8c64-5bfc-11ed-a3b6-dac502259ad0.png

d5099ddc-5bfc-11ed-a3b6-dac502259ad0.png

图39:时间任务保护

5.Summary

d5a32eac-5bfc-11ed-a3b6-dac502259ad0.png

d5d39be6-5bfc-11ed-a3b6-dac502259ad0.png

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英飞凌
    +关注

    关注

    68

    文章

    2561

    浏览量

    143135
  • 存储器
    +关注

    关注

    39

    文章

    7754

    浏览量

    172172
  • 总线
    +关注

    关注

    10

    文章

    3057

    浏览量

    91864

原文标题:学习笔记 | Aurix TC3xx Architecture

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32F030 RAM存储器的介绍

    时钟频率进行访问 •支持奇偶校验功能 3 RAM 存储器操作 用户可执行的 RAM 存储器操作包括:读操作、写操作。 对 RAM 的读写操作支持 8bit、16bit 和
    发表于 01-12 06:33

    请问单片机程序存储器64KB是外扩的还是外扩加内部的呢?

    单片机程序存储器64KB是外扩的还是外扩加内部的呢?
    发表于 01-06 08:24

    AURIX™ TC3xx 电机控制电源板:设计解析与特性洞察

    AURIX™ TC3xx 电机控制电源板:设计解析与特性洞察 一、引言 作为一名电子工程师,在电机控制领域不断探索新的解决方案是我们的日常工作。今天要给大家介绍的 AURIX™ TC3xx 电机控制
    的头像 发表于 12-21 15:50 744次阅读

    英飞凌AURIX™ TC3xx安全应用套件快速上手

    英飞凌AURIX™ TC3xx安全应用套件快速上手 在电子工程师的日常工作中,快速且有效地掌握新的硬件套件是一项必备技能。今天,我们就来探讨一下英飞凌AURIX™ TC3xx安全应用套件的快速启动
    的头像 发表于 12-19 14:30 823次阅读

    TriBoard TC3X9:功能强大的评估板深度解析

    TC399 5V评估板.pdf 一、概述 TriBoard TC3X9评估板是一款多功能工具,它配备了多种存储器和外设,方便与外部环境进行
    的头像 发表于 12-19 11:20 895次阅读

    请问如何利用CW32L083系列微控制内部Flash存储器进行程序升级和数据存储

    如何利用CW32L083系列微控制内部Flash存储器进行程序升级和数据存储
    发表于 12-15 07:39

    芯源MCU的RAM存储器的操作

    用户可执行的RAM 存储器操作包括:读操作、写操作。 对RAM 的读写操作支持8bit、16bit 和32bit 三种位宽,用户程序可以通过直接访问绝对地址的方式完成读写, 但要注意读写的数据位宽
    发表于 11-21 07:46

    芯源的片上存储器介绍

    片上FLASH 闪存由两部分物理区域组成:主FLASH 存储器和启动程序存储器。 ●● 主 FLASH 存储器,共 64KB,地址空间为 0x0000 0000 - 0x0000 FFFF。该区
    发表于 11-12 07:34

    Everspin存储器8位并行总线MRAM概述

    在需要高速数据写入与极致可靠性的工业与数据中心应用中,Everspin推出的8位位并行接口MRAM树立了性能与耐用性的新标杆。这款Everspin存储器MRAM与SRAM引脚兼容的存储器,以高达35
    的头像 发表于 10-24 16:36 806次阅读

    请问如何仅使用软件和 TC375 精简板来测量函数调用的堆栈使用情况?

    我想测量 AURIX TriCore™ TC3xx 项目的函数调用的堆栈使用情况。 我不知道该怎么做。 我知道事实上作为硬件我只有一个 TC375 lite 开发板,没有 BlueBox 或任何
    发表于 08-08 07:28

    TC3XX 的端口可以同时被 EvADC 和 DSADC 用于 ADC 转换吗?

    1、TC3XX 的端口可以同时被 EvADC 和 DSADC 用于 ADC 转换吗? 例如,TC36X系列的AN1引脚 2、同时重新分配同一个引脚,是否会影响EVAADC和DSADC的转换结果的精度和速度?
    发表于 08-07 08:19

    两片TC3XX芯片之间的时钟同步可以实现吗?

    实现两片TC3XX芯片之间的时钟同步,希望两片芯片的PWM输出能够同步。类似功能的芯片能实现上述操作吗?期待你的答复。非常感谢!!!
    发表于 08-04 07:51

    TC3XX /TC1.6.2OCDS如何通过软件启用核心调试控制

    如何通过软件启用核心调试控制?也就是说可以通过软件读取DBGSR.DE =1。参考TriCore™ TM TC1.6.2 核心架构手册第 1 卷。
    发表于 07-30 06:27

    简单认识高带宽存储器

    HBM(High Bandwidth Memory)即高带宽存储器,是一种基于 3D 堆叠技术的高性能 DRAM(动态随机存取存储器)。其核心设计是通过硅通孔(TSV)和微凸块(Microbump
    的头像 发表于 07-18 14:30 5437次阅读

    CYPD3177-24LQXQT是否实现内部存储器

    CYPD3177-24LQXQT 是否实现内部存储器?(例如 内存)? BCR 数据表中似乎没有提及这一点。
    发表于 05-07 07:23