news 2026/4/18 3:28:13

TCM学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCM学习

第一部分:由浅入深——TCM 到底是什么?

想象你是一个大厨(CPU),正在厨房里忙着炒菜。

  1. Flash(硬盘/闪存):是你的地窖。空间巨大,存放着所有的食材(代码和数据)。但是地窖离厨房很远,去取一次菜要花很长时间。
  2. RAM(主内存):是你的大冰箱。比地窖近,但每次拿菜还是要转身、开门、寻找。
  3. Cache(缓存):是你的帮厨。他会观察你,试图猜你下一秒要用什么,提前把菜递到你手边。
    • 问题是:帮厨虽然快,但他可能会猜错(Cache Miss)。如果你急着要“盐”,他却递给你“糖”,你就得停下来自己去冰箱拿,这会打断你的炒菜节奏(由于延迟导致性能波动)。
  4. TCM(紧耦合内存):就是你面前的砧板和调料盒
    • 特点:它就在你手边(物理距离离 CPU 最近)。
    • 确定性你知道盐就在调料盒的第一个格子里。伸手就能拿到,绝对不需要等待,也不会拿错。
    • 专用性:这个调料盒是你专用的,别人(其他设备)不能随便乱动。

总结:TCM 就是一块贴在 CPU 核心边上的、速度极快、完全由你控制的“私有小仓库”。


第二部分:TCM 与 Cache 的核心区别(小白必看)

这是新手最容易晕的地方。它们都是快存储,有什么不一样?

特性Cache (缓存)TCM (紧耦合内存)
谁来管理?硬件自动管理。像自动驾驶,你不用管,但有时候会“抽风”。程序员手动管理。像手动挡赛车,你想存什么就存什么,完全受控。
速度稳定性忽快忽慢。猜对了(Hit)极快,猜错了(Miss)很慢。永远极快。只要你把数据放进去,读取时间是固定的(通常 1 个时钟周期)。
物理位置也是在 CPU 旁边,但逻辑稍微复杂一点。通过专用总线直接连到 CPU 核心,不经过拥堵的系统总线。
适用场景看视频、刷网页等对时间不敏感的任务。汽车刹车、电机控制、AI加速等绝对不能卡顿的任务。

第三部分:TCM 里面通常分两块

为了效率更高,TCM 通常被设计成两部分(这就好比“左手拿菜,右手拿刀”):

  1. ITCM (Instruction TCM - 指令 TCM)
    • 专门用来存代码(指令)
    • 放什么?那些最关键的代码。比如:中断服务程序(发生紧急情况时必须马上运行的代码)、死循环控制代码(电机每毫秒都要调整一次的逻辑)。
  2. DTCM (Data TCM - 数据 TCM)
    • 专门用来存数据(变量)
    • 放什么?那些 CPU 频繁读写的变量。比如:AI 模型的权重数据音频处理的中间数据飞控算法的传感器数据

第四部分:为什么要用 TCM?(应用场景)

既然 Cache 那么方便,为什么还要费劲用 TCM?因为有些场景**“伤不起”**。

1. 实时性要求极高的场景(硬实时)
  • 例子汽车安全气囊控制器
  • 原因:当传感器检测到碰撞,CPU 必须在几毫秒内引爆气囊。如果这时候用 Cache,刚好发生了 Cache Miss(数据没在缓存里),CPU 被迫去慢速内存取指令,耽误了 0.1 毫秒,可能气囊就弹晚了,人就没命了。
  • TCM 的作用:把气囊控制代码死死地锁在 ITCM 里,保证任何时候触发,CPU 都能瞬间执行。
2. AI 和信号处理(密集计算)
  • 例子NPU 计算卷积
  • 原因:NPU 计算就像流水线,一秒钟要算几亿次乘法。如果数据供应跟不上(断流),流水线就停了。Cache 的替换算法(LRU)对于这种规律性扫描大数据的场景往往很笨。
  • TCM 的作用:利用 DTCM,程序员可以精准控制:“先把第一行的图片数据搬进来算,算完扔掉,再搬第二行”。这种**“乒乓操作”**能让计算效率达到最高。

第五部分:作为程序员,我该怎么用 TCM?

既然 TCM 是“手动挡”,你就不能指望它自动工作。通常的开发流程是这样的:

  1. 分配地址:在编译器的配置文件(Linker Script / Scatter File)里,告诉编译器:“把Critical_Function()这个函数,给我放到 ITCM 的地址段去。”
  2. 搬运数据
    • 芯片刚上电时,TCM 里面是空的(因为它断电不保存数据)。
    • 代码通常存储在 Flash(硬盘)里。
    • 你需要写一段启动代码(Startup Code),把那些关键函数和数据,从慢速的 Flash复制(Copy)到快速的 TCM 里。
  3. 运行:之后 CPU 运行这些函数时,就会直接去 TCM 里取,享受飞一般的速度。

总结

  • TCM是 CPU 的“贴身口袋”。
  • 不靠猜,靠程序员手动安排
  • 它保证了绝对的速度确定性
  • 它是实时控制(如机器人、汽车)和高性能计算(如 AI 芯片)不可或缺的组件。

在硬件上设计TCM也比普通Cache简单

1. 硬件上的“减负”:TCM 少了什么?

Cache 之所以复杂,是因为它要处理**“不确定性”**。为了实现“让程序员感觉不到我在工作”,Cache 内部必须塞进大量的逻辑电路。而 TCM 把这些全砍掉了:

硬件组件Cache (缓存)TCM (紧耦合内存)结果
Tag RAM (标签存储器)必须有。用来记录当前存的数据属于主内存的哪个地址。不需要。地址是固定的,不需要“身份证”。省面积
Comparator (比较器)必须有。每次读数据,都要把地址和 Tag 进行比对,看是否命中。不需要。只要地址在 TCM 范围内,直接给数据。省功耗
Replacement Logic (替换逻辑)非常复杂。满了之后踢谁走?LRU(最近最少使用)算法?随机算法?不需要。数据是程序员放进来的,硬件不负责清理。电路简单
Valid/Dirty Bits (状态位)必须有。记录数据是否有效,是否被修改过(需要写回)。不需要。TCM 里的数据永远默认为“就是这里的数据”。逻辑简单

一句话总结硬件区别:

Cache 是一半存数据,一半存“管理逻辑”;TCM 几乎全是存数据的 SRAM 单元,没有任何“废话”电路。

2. “没有复杂的规则”意味着什么?

因为去掉了上面那些复杂的电路,TCM 在硬件层面实现了**“极简主义”**:

  1. 物理寻址更直接
    • Cache:CPU 发出地址 -> 查 Tag -> 比较 -> 没命中 -> 暂停 CPU -> 去内存搬运 -> 重试。这中间任何一步都可能卡顿。
    • TCM:CPU 发出地址 -> 译码器判断在 TCM 范围内 ->直接给数据。整个过程就像电流流过一根导线一样顺滑。
  2. 没有“命中率”的概念
    • 设计 Cache 时,工程师要绞尽脑汁算“多大的 Cache 能保证 90% 的命中率”。
    • 设计 TCM 时,工程师只需要问:“你需要存多少 K 的代码?”然后放多大的 SRAM 就行了。规则就是:要么在,要么不在(地址越界),不存在“可能在”的情况。

3. 但是!守恒定律:复杂度的转移

这里有一个计算机系统的核心哲学:复杂度不会消失,只会转移。

TCM 在硬件设计上变简单了,省去了 Cache 那些自动管理的复杂规则,那么这部分“管理责任”去哪了呢?

全部转移到了“软件工程师”也就是你的头上。

  • Cache 的规则(硬件负责):“你随便写代码,我负责帮你搬进搬出,虽然偶尔会慢,但你不用操心。”
  • TCM 的规则(你负责):“硬件只给你一个空房间。你必须自己决定把哪个函数放进来,你必须自己写代码在上电时把数据搬进来,如果空间不够了,你必须自己设计覆盖策略。”

4. 总结:给新手的比喻

为了让你彻底理解这种“简单”的代价,我们用自动挡 vs 手动挡来比喻:

  • Cache 是自动挡汽车
    • 硬件复杂:变速箱结构复杂,有液力变矩器、复杂的电控逻辑。
    • 使用简单:你只管踩油门(写代码),车子自己决定什么时候换挡(数据换进换出)。
  • TCM 是赛车的手动挡/直连齿轮
    • 硬件简单:结构极其简单,就是一个齿轮咬合,没有复杂的电控。
    • 使用困难你必须自己决定什么时候挂 1 档,什么时候挂 2 档(手动管理数据位置)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:26:49

5个实用技巧:让AI图像识别准确率翻倍的提示词设计方法

还在为AI图像识别结果不准确而烦恼吗?你的提示词可能出了问题!本文将分享5个立竿见影的技巧,帮你设计出专业级的计算机视觉提示词,让普通AI模型也能发挥专家水准。 【免费下载链接】awesome-prompts 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/4/18 1:19:29

2026产品经理简历模板评测榜:如何清晰展现从策略到落地的能力

产品经理作为连接用户、技术与商业的核心岗位,其重要性与日俱增。然而,面对日益激烈的竞争,一份平庸的简历往往会让你错失良机。如何打造一份既能展现专业素养,又能凸显项目经验,并契合未来趋势的产品经理简历&#xf…

作者头像 李华
网站建设 2026/4/18 3:25:34

卡马替尼Capmatinib精准治疗MET突变肺癌——全面解析

在非小细胞肺癌(NSCLC)的治疗领域,靶向治疗已成为推动个体化医疗发展的核心力量。针对MET基因异常的精准治疗药物——卡马替尼(Capmatinib,商品名Tabrecta),凭借其独特的作用机制和显著的临床疗…

作者头像 李华
网站建设 2026/4/13 15:40:40

Wan2.2-T2V-A14B在非遗文化数字化传播中的应用探索

Wan2.2-T2V-A14B在非遗文化数字化传播中的应用探索 你有没有想过,一段关于“苗族老人在阳光下刺绣凤凰图案”的文字,下一秒就能变成一段画面细腻、光影柔和的高清视频?不是动画,不是CG建模,而是由AI直接从文字“画”出…

作者头像 李华
网站建设 2026/4/7 16:21:50

Ultimate ASI Loader完整指南:游戏模组加载工具一键配置

Ultimate ASI Loader完整指南:游戏模组加载工具一键配置 【免费下载链接】Ultimate-ASI-Loader ASI Loader is the tool that loads custom libraries with the file extension .asi into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/Ultimat…

作者头像 李华