问题标签 [microcoding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
microcontroller - ALU 溢出状态位 & COND 地址
COND 字段或微指令字是 2 位,有四种可能的不同代码:
00 表示不跳转;如果 N=1 则为 01 跳转;如果 Z=1,则为 10 跳转;11 总是跳跃。
如果需要其中一个代码来测试新实现的 ALU 溢出状态位,您会建议我牺牲四个代码中的哪一个?另外,我很想听听为什么。
谢谢!
microcontroller - 在 Proteus 中通过带有 PIC18f2455 的按钮,LED 不亮
我在 Proteus 中按 PUSH Button 时四处搜寻以点亮 LED。但是 LED 亮起并且在按下 Proteus 中的按钮时不会关闭。我正在使用 PIC18F2455 进行仿真,这是 MicroC 代码。
assembly - 什么是微码指令?
我看过很多引用微编码指令的文献。
这些是什么以及为什么使用它们?
bytecode - 字节码和微码有什么区别?
我在维基百科上阅读机器码、微码和字节码。
微码似乎比机器码更底层,而字节码似乎更高级。
我并没有真正了解某些东西如何比机器代码更底层,更一般地说,它们都与机器代码相关。
cpu-architecture - 微码术语:是否有不同“风格”微码的名称?
我一直在看微码,想知道术语。
微码的“经典”用途是用微码代替处理器控制逻辑来生成处理器控制信号。但是有一些系统走得更远,用微码实现操作系统的低级部分,最著名的是 Xerox Alto,还有像 Datapoint 6600 和较小范围内的 IBM 360 这样的系统。在这些系统中,执行指令只是微码的一项任务,而不是微码的重点。这种风格的微码有什么说法吗?“微编程”几乎适合,但通常用于微代码编程。
我想知道的第二个维度:在某些系统中,微架构与程序员级架构几乎相同,可能还有一些额外的内部寄存器,例如 68000。但在其他系统中,可见架构本质上是在微架构中无法识别。例如,不同的 IBM 360 模型具有完全不同的微体系结构,但具有相同的程序员级体系结构。我的第二个问题是,是否有一个术语来描述微架构与可见架构完全不同的系统?
(我知道垂直微码与水平微码,但这是不同的。另外,我使用的示例很旧,但这不是一个逆向计算问题。)
linux - Intel微码更新版本号含义
我需要为同一个 CPU 提供两个微码版本,以了解哪个较新(包括来自另一个的修复)。微码版本不是单调的,因此它可以随着更新而减少。
根据我所见,微码版本是一个小于 0x1000 的数字,但在某些情况下,它还设置了更高的位,例如 0x2000064
我的观察是微码版本仅通过将那些较高的部分归零而随着更新而降低,而较低的部分总是增长。
有没有人了解版本号是如何形成的:什么是在较高部分编码的,而低部分真的总是在增长吗?
谢谢你。
embedded - 微程序与嵌入式系统之间的连接
微程序和嵌入式系统之间有什么联系?
微程序是一种机器语言吗?
微编程和微代码一样吗?
嵌入式系统是否仅使用微编程制造?
或者它不是使用微编程的嵌入式系统的排他性吗?
如果可能,请举例说明。谢谢!
performance - 内存目标 BTS 如何比加载/BTS reg,reg/store 慢得多?
在一般情况下,可以占用内存或寄存器操作数的指令怎么会比内存操作数更慢,然后是 mov + mov -> 指令 -> mov + mov
根据在Agner Fog 的指令表中找到的吞吐量和延迟(在我的案例中查看 Skylake,p238),我看到btr/bts
指令的以下数字:
我看不出这些数字怎么可能是正确的。即使在最坏的情况下没有可用的寄存器并且您将一个存储在临时内存位置,它会更快:
bts m,r
在最坏的情况下,这比(4 < 5)具有更好的吞吐量。(编者注:当它们有不同的瓶颈时,将吞吐量相加是行不通的。您需要考虑 uops 和端口;这个序列应该是 2c 吞吐量,瓶颈是 1/clock 存储吞吐量。)
并且微码指令有自己的一组寄存器,因此看起来不太可能实际需要。任何人都可以解释为什么bts
(或通常任何指令)可以比使用最坏情况移动策略具有更高的内存吞吐量,寄存器操作数。
(编者注:是的,微码可以使用一些隐藏的临时寄存器。类似的东西add [mem], reg
至少在逻辑上只是加载到其中一个然后存储结果。)
cpu-architecture - 究竟什么是机器指令?
主存中的用户程序由机器指令和数据组成。相反,控制存储器保存一个固定的微程序,临时用户无法更改。微程序由微指令组成,这些微指令指定执行寄存器微操作的各种内部控制信号。每条机器指令在控制内存中启动一系列微指令。这些微指令生成微操作以获取主存储器的指令;评估有效地址,执行指令指定的操作,并返回控制获取阶段以重复下一条指令的循环
我在这里并不完全理解机器指令、微指令和微操作之间的区别。我当然明白,根据给定段落的微指令是指令的中间级别,但另外两个中的哪一个更接近机器语言。CLA、ADD、STA、BUN、BSA 等是机器指令还是微操作?