在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    2331

    瀏覽量

    140307
  • 存儲器
    +關注

    關注

    38

    文章

    7641

    瀏覽量

    166657
  • 總線
    +關注

    關注

    10

    文章

    2956

    瀏覽量

    89464

原文標題:學習筆記 | Aurix TC3xx Architecture

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CYPD3177-24LQXQT是否實現內部存儲器

    CYPD3177-24LQXQT 是否實現內部存儲器?(例如 內存)? BCR 數據表中似乎沒有提及這一點。
    發表于 05-07 07:23

    請問tc3xx如何配置多個dedicatedRxBuffersNumber?

    tc3xx如何配置多個dedicatedRxBuffersNumber?
    發表于 04-21 07:53

    請問STM32訪問FPGA內部SRAM部分區域為何只能讀不能寫?

    采用STM32F427+FPGA+Flash。 STM32通過FMC總線訪問FPGA內部SRAM,起始地址為0x60000000; Flash中存儲FPGA的配置數據,STM32和FP
    發表于 03-12 07:59

    高速緩沖存儲器是內存還是外存,高速緩沖存儲器是為了解決什么

    高速緩沖存儲器(Cache)是內存的一種特殊形式,但它與通常所說的主存儲器(RAM)有所不同。在計算機存儲體系中,Cache位于CPU和主存儲器之間,用于
    的頭像 發表于 01-29 11:48 ?1247次閱讀

    優化TC3xx系統運行效率的策略

    的先后順序、數據類型、對齊方式等等做了介紹,詳細分析了上述操作不同寫法對于CPU的通用寄存器使用效率上的影響,這給我留下了一點印象,但不多。 而最近我在用ADS驗英飛凌LMU、DSPR、PSRP等等訪問
    的頭像 發表于 11-16 11:00 ?1228次閱讀
    優化<b class='flag-5'>TC3xx</b>系統運行效率的策略

    存儲器主要用來存儲什么

    存儲器內部存儲器)是計算機硬件的重要組成部分,它直接與中央處理(CPU)相連,用于存儲正在運行的程序和當前處理的數據。內
    的頭像 發表于 10-14 09:55 ?2312次閱讀

    存儲器分為隨機存儲器和什么

    ,Read-Only Memory)。 一、隨機存儲器(RAM) 隨機存儲器的定義和特點 隨機存儲器(RAM)是一種可讀寫的存儲器,其特點是可以隨機
    的頭像 發表于 10-14 09:54 ?2655次閱讀

    存儲器訪問速度最快的是什么

    在探討存儲器訪問速度最快的是哪一種時,我們首先需要了解計算機存儲系統的層次結構以及各類存儲器的特性和功能。計算機存儲系統通常包括多個層次的
    的頭像 發表于 10-12 17:01 ?3649次閱讀

    靜態隨機存儲器的定義和工作原理

    靜態隨機存取存儲器(SRAM)是隨機存取存儲器(RAM)的一種,以其獨特的靜態存儲方式而著稱。所謂“靜態”,意味著只要保持通電狀態,SRAM內部
    的頭像 發表于 09-26 16:25 ?5453次閱讀
    靜態隨機<b class='flag-5'>存儲器</b>的定義和工作原理

    存儲器芯片的內部結構及其引腳類型

    內部結構和引腳類型對于它們的功能和與外部設備的兼容性至關重要。 存儲器芯片的內部結構 存儲單元 :存儲器芯片的核心是
    的頭像 發表于 09-18 11:04 ?2248次閱讀

    外部存儲器有哪些

    外部存儲器是指用于存儲數據的獨立設備,它們通常與計算機或其他電子設備連接,并提供額外的存儲空間,允許用戶在不改變主設備內部存儲的情況下保存和
    的頭像 發表于 09-05 10:42 ?4940次閱讀

    內部存儲器有哪些

    內部存儲器,也稱為內存(Memory),是計算機系統中用于暫時存儲程序和數據的重要組件。它直接與CPU相連,是CPU處理數據的主要來源。內部存儲器
    的頭像 發表于 09-05 10:42 ?4112次閱讀

    請問AURIX TC3xx tricore架構下浮點運算和將浮點數小數點去掉變成整數來計算哪種方式更加節省算力?

    AURIX TC3xx tricore架構下浮點運算和將浮點數小數點去掉變成整數來計算哪種方式更加節省算力? 比如一個浮點數12.89V,如果將其寫成12890mV,再參與計算,哪種方式更加節省算力
    發表于 08-26 06:54

    微控制內部存儲器有哪些

    微控制(MCU)內部存儲器是微控制系統的重要組成部分,它負責存儲程序代碼、數據以及控制邏輯等信息。這些
    的頭像 發表于 08-22 10:41 ?1362次閱讀

    ram存儲器和rom存儲器的區別是什么

    非易失性存儲器,主要用于存儲固件、操作系統和其他重要數據。 存儲方式: RAM存儲器使用動態存儲器
    的頭像 發表于 08-06 09:17 ?1292次閱讀
    主站蜘蛛池模板: 伊人久久99 | 男人天堂伊人 | 亚洲综合色一区 | 丁香六月婷婷精品免费观看 | 黄色福利小视频 | 农村妇女野外一级毛片 | 欧美精品二区 | 好骚综合在线 | 国产精品久久久久久久久久妇女 | 1000部啪啪未满十八勿入中国 | 日本不卡免费高清一级视频 | 在线观看网站黄 | 久久精品亚瑟全部免费观看 | 色四月婷婷 | 可以免费观看的黄色网址 | 天天干夜夜玩 | 欧美三级色图 | 日本黄a| 理论视频在线观看 | 中文天堂最新版在线精品 | 欧美1314www伊人久久香网 | 亚洲一级毛片免观看 | 天天看天天操 | 男人的天堂久久精品激情 | 欧美极品bbbbⅹxxxx | 女人又色又爽又黄 | yiren22亚洲综合高清一区 | 久久精品1 | 在线国产高清 | 91夜夜人人揉人人捏人人添 | 最近在线视频免费观看2019 | 国产午夜三区视频在线 | 欧美色视频日本片高清在线观看 | 久久精品国产免费中文 | 久久精品亚洲 | 天天狠狠干 | 特黄特黄特色大片免费观看 | 国产黄色小视频在线观看 | 国产h在线观看 | 国产三级精品播放 | 日本三级免费看 |