0

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

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

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

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

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

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

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

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

谢谢,--鲁迪

4

3 回答 3

2

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

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

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

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

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

于 2014-03-06T09:49:47.523 回答
0

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

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

于 2013-11-13T10:04:17.420 回答
0

“将 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 ?

于 2015-12-16T09:55:29.333 回答