【问题标题】:Microcode on Time Processing Unit (TPU)时间处理单元 (TPU) 上的微码
【发布时间】:2013-11-13 02:05:47
【问题描述】:

我阅读了微码,并试图理解它的含义。但是,我很难理解它。有人可以澄清我的一些困惑吗?

显然,微码是一种内置代码,位于 ROM 上,在硬件电路级别执行机器代码的硬件级别指令实现。机器语言运行在硬件抽象的上层,而微码运行在底层的基于电路的操作。

但这意味着什么?这是否意味着每个 CPU 都必须在某种闪存或 ROM 上嵌入微码,否则机器代码将无法在 CPU 中进行翻译?

但微码不应该是特定于应用程序的代码吗?它怎么会坐在那里知道该做什么? 例如,假设一个应用程序将寄存器 1 (R1) 的值移动到寄存器 2。 但是我有第二个应用程序,它接受 R1 并将其乘以 2,然后将其移动到 R2。

那么,这是否意味着我的两个应用程序有两个不同的微码?

此外,飞思卡尔使用称为 eTPU(时间处理单元)的东西制造了一堆处理器

http://www.ashware.com/etpu-tpu.htm

但是,我真的不确定这意味着什么。它说 eTPU 中总共有 64 个通道。但是,渠道的定义是什么?它指的是单个 I/O 引脚吗?他们在上面的文章中的例子对我来说有点混乱,有人可以举一个更清楚的例子来说明我们如何利用 eTPU 编写自定义微码?

谢谢, --鲁迪

【问题讨论】:

    标签: assembly processor microprocessors


    【解决方案1】:

    我是一名 eTPU 专家,我们人数不多。对 TPU 进行微编码曾经是 15 年前的常规开发方式,然后它变成了 eTPU,然后实际上是因为像 Bytecraft 和 Ashware 产品这样的编译器的开发,根据我的经验,使用微码是一个历史性的遗产。

    微码的概念实际上是从前甚至汇编被认为是一种高级语言。如今,当您将其与 Python 之类的东西进行比较时,这是一种可悲的情况,但从历史上看,情况就是如此。微码实际上是机器码,它是直接与硬件接口之下的未驯化层。这通过诸如内存访问之类的事情在使用场景中表现出来,比如我想将数据从位置 A 移动到位置 B。通常在汇编中,您会期望长或短的 MOV 来处理它。在微码中,游戏并不那么清晰,因为您可能需要加载分页寄存器,或者将地址推送到硬件定义的多个寄存器中,等等。现在这并不意味着它不会在汇编中发生,它确实......但是,程序集被认为是一个抽象层。

    eTPU 没有 64 个通道,它有 32 个。您确实获得了双 eTPU 处理器,尽管这将在两个内核中有 64 个通道。处理器的基本架构为每个引脚分配一个通道,这是基本规则……但是,通过工具创新和交易技巧,您可以从给定通道访问多个引脚。需要将通道视为与给定引脚关联的独立控制线程,但是...

    eTPU 是开发时间紧迫的响应、触发和跟踪情况的绝佳工具。非常适合跟随汽车发动机的位置;机器人控制;需要大量处理和快速响应的多渠道信息。多年来,它一直用于电机控制和此类应用。它可以用于 PSB 控制、数据端口等的老板栗。它带来的奇妙资产是它几乎是第二个独立的核心,但具有显着的专业化。

    在我看来,eTPU 是一个未被充分利用的平台,另一个您可能会看到的更容易掌握基本原理的平台是 Texas CLA,它在其 C2000 处理器上提供。同样的想法,没有那么强大,但更简单,更便宜。

    【讨论】:

      【解决方案2】:

      微码实际上是机器码的硬件辅助解释器。它用于某些 CPU(包括 x86)中,使用微码通常意味着架构过于复杂而无法在硬件中实现。粗略地说,Intel CPU 不直接执行 x86 指令,而是运行一个为看起来更简单的 ISA 编写的小程序,称为微码,它解释 x86 指令。在大多数架构(包括 Intel/AMD)中,微码是绝密的“先烧后读”。微码一词有时也被错误地用于任何非通用 ISA。

      关于频道...它可能意味着任何...尝试查找一些文档。

      【讨论】:

        【解决方案3】:

        “将 etpu 视为微控制器内部的微控制器” 由于 eTPU/TPU 是 RISC 实现,因此我们使用控制 TPU 处理器 微码“直接控制微处理器的最低级指令” ETPU 在一个 ETPU 引擎中有 32 个通道,因此飞思卡尔控制器有两个 ETPU 引擎。

        频道被映射到一个引脚 每个引脚都可以配置为输入引脚/输出引脚 输入时,引脚可以检测转换(可以实现UART) 输出的时候可以产生PWM,还可以做其他的事情

        现在,为了让 etpu 做一些事情,必须指导 etpu 引擎。 etpu引擎从共享内存中获取指令 我们在该位置使用寄存器写入来使其工作 现在etpu理解的是微码 它如何工作和编写是一件复杂的事情 我是 etpu 新手,如果你看一下链接会很好 您可以参考以下链接 1.http://www.nxp.com/products/microcontrollers-and-processors/power-architecture-processors/mpc5xxx-5xxx-32-bit-mcus/mpc56xx-mcus/enhanced-time-processor-unit:eTPU?

        【讨论】:

          猜你喜欢
          • 2019-03-22
          • 2021-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-25
          • 1970-01-01
          相关资源
          最近更新 更多