microprocessors相关内容

是否可以将整个数组保存在 cpu 寄存器中

在下面的代码中, int main(){注册 int arr[4];/* ... */} 'arr' 是否有可能在某个 cpu 寄存器中分配.(考虑 cpu 有 4 个或更多寄存器). 否则编译器将忽略 register 数组的存储类. 解决方案 据我了解,答案是YES和NO. 没有因为, 任何数组元素都必须是可显式寻址的(例如,对于 16 位 uC/uP,其地址应始 ..

什么是 16、32 和 64 位架构?

对于微处理器和/或操作系统来说,16 位、32 位和 64 位架构是什么意思? 如果是微处理器,是指通用寄存器的最大大小还是Integer的大小或Address-line的数量或 Data Bus line 的数量还是什么? 我们所说的“DOS 是 16 位操作系统"、“Windows 在 32 位操作系统中"等是什么意思...?p> 解决方案 不同之处在于传递给通用寄存器以进行操 ..
发布时间:2022-01-11 23:18:50 其他开发

为什么是 x86 小端?

我最近一直在问自己一个真正的问题是什么设计选择使 x86 成为小端架构而不是大端架构? 解决方案 在很大程度上,出于同样的原因,在添加时从最低有效数字(右端)开始——因为进位会向更有效的数字传播.将最低有效字节放在最前面允许处理器在仅读取偏移量的第一个字节后开始添加. 在您完成足够多的汇编编码和调试之后,您可能会得出结论,小端不是一个奇怪的选择——我们人类使用大端很奇怪. ..
发布时间:2022-01-06 12:42:09 其他开发

CPU TSC fetch 操作,尤其是在多核多处理器环境中

在 Linux 世界中,要获得纳秒精度的计时器/时钟可以使用: #include int foo(){时间规格;clock_gettime(CLOCK_REALTIME, &ts);//- 剪断--} 这个答案 建议使用 asm 方法直接查询带有 RDTSC 指令. 在多核、多处理器架构中,这个时钟滴答/定时器值如何在多个核/处理器之间同步?我的理解是,在进行固有的击剑时.这种理解是否正 ..
发布时间:2021-12-18 09:07:17 其他开发

什么是 16 位、32 位和 64 位架构?

16 位、32 位和 64 位架构对于微处理器和/或操作系统意味着什么? 在微处理器的情况下,它是指通用寄存器s的最大大小还是Integer的大小或Address-lines的数量或数据总线的数量或什么? 我们所说的“DOS 是 16 位操作系统"、“Windows 32 位操作系统"等是什么意思?> 解决方案 区别在于传递给通用寄存器以进行操作的指令集的位宽.16 位可以对 2 ..
发布时间:2021-11-26 14:10:41 其他开发

什么是 16 位、32 位和 64 位架构?

16 位、32 位和 64 位架构对于微处理器和/或操作系统意味着什么? 在微处理器的情况下,它是指通用寄存器s的最大大小还是Integer的大小或Address-lines的数量或数据总线的数量或什么? 我们所说的“DOS 是 16 位操作系统"、“Windows 32 位操作系统"等是什么意思?> 解决方案 区别在于传递给通用寄存器以进行操作的指令集的位宽.16 位可以对 2 ..
发布时间:2021-11-25 05:44:29 C#

什么是 16 位、32 位和 64 位架构?

16 位、32 位和 64 位架构对于微处理器和/或操作系统意味着什么? 在微处理器的情况下,它是指通用寄存器s的最大大小还是Integer的大小或Address-lines的数量或数据总线的数量或什么? 我们所说的“DOS 是 16 位操作系统"、“Windows 32 位操作系统"等是什么意思?> 解决方案 区别在于传递给通用寄存器以进行操作的指令集的位宽.16 位可以对 2 ..
发布时间:2021-11-24 22:56:04 C#

堆栈指针和程序计数器有什么区别?

众所周知,微处理器执行任务的过程只是从内存中一条一条地执行二进制指令,并且有一个程序计数器保存下一条指令的地址.所以这就是处理器如何执行它的任务,如果我没有错的话.但是还有另一个名为 Stack Pointer 的指针,它的作用与程序计数器几乎相同.我的问题是为什么我们需要一个堆栈指针来指向内存(堆栈)的地址?有人能告诉我堆栈指针和程序计数器之间的主要区别吗? 解决方案 void show ..
发布时间:2021-11-17 22:16:56 其他开发

FIQ和IRQ中断系统有什么区别?

我想知道FIQ和IRQ中断系统在任何微处理器,例如:ARM926EJ. 解决方案 现代 ARM CPU(和其他一些 CPU)的一个特性. 来自专利: 一种快速执行的方法数字数据处理器中的中断有能力处理更多提供的中断不止一个.当一个收到快速中断请求标志被设置并且程序计数器和条件代码寄存器是存储在堆栈中.在结束时中断服务程序返回从中断指令检索条件码寄存器包含数字的状态数据处理器并检 ..
发布时间:2021-11-17 21:37:38 其他开发

如何在STM32上获得时间间隔?

我想测量单个函数在 STM32 上需要多长时间.我唯一能找到的是SysTick_Handler.但是,这是一个周期性中断,但我需要的是获取时间间隔,如: long t1 = mcu_clock();睡眠(20);长 t2 = mcu_clock();长差异 = (t2 - t1); 我尝试过 C clock(),但它不起作用并且总是返回 -1.我该怎么做? 解决方案 首先,在启动时启用 ..
发布时间:2021-08-30 19:26:53 其他开发

微处理器中使用的堆栈指针是什么?

我正在准备微处理器考试.如果程序计数器的用途是保存下一条指令的地址,那么堆栈指针有什么用? 解决方案 堆栈是一个 LIFO(后进先出 - 推入堆栈的最后一个条目是弹出时返回的第一个条目)数据通常用于保存堆栈帧(属于当前函数的堆栈位)的结构. 这包括但不限于: 退货地址. 返回值的地方. 传递参​​数. 局部变量. 您将项目推入堆栈并将其弹出.在微处理器中,堆栈可用于 ..
发布时间:2021-08-28 18:35:33 其他开发

英特尔处理器:“如果CPUID.06H:EAX.[7]= 1& quot;意义?

以下注释在英特尔处理器数据表中是什么意思?如何在Linux的驱动程序代码中进行检查? 如果是CPUID.06H:EAX.[7]= 1 我在寄存器描述表的注释列中看到了SW开发人员手册(针对Intel处理器)中的此类声明. 参考: https://software.intel.com/sites/default/files/managed/22/0d/335592-sdm-vol- ..

堆栈指针和程序计数器有什么区别?

众所周知,微处理器执行任务的过程只是从存储器一个接一个地执行二进制指令,并且有一个程序计数器保存下一条指令的地址.因此,如果我没有记错的话,这就是处理器执行任务的方式.但是还有另一个名为堆栈指针的指针,它的作用与程序计数器几乎相同.我的问题是为什么我们需要一个堆栈指针来指向内存(堆栈)的地址?有人可以告诉我堆栈指针和程序计数器之间的主要区别吗? 解决方案 void show(unsign ..
发布时间:2021-04-09 19:25:32 其他开发

Inte CPU的微体系结构中的快速LEA和慢速LEA单元是什么?

我从下面的链接中看到haswell的微体系结构,其中提到一些管道可以进行快速LEA,而某些管道可以运行慢速LEA,那么这里的快速LEA和慢速LEA是什么意思?与LEA指令有关吗?搜索结果通常偏向LEA指令,不会导致直接答案. http://www.realworldtech.com/haswell-cpu/4/ 解决方案 大多数专用ALU单元仅存在于部分执行端口上(代代之间不断进行更 ..
发布时间:2020-11-29 20:08:30 其他开发

我们是否也将寄存器RAX,RBX等称为R1,R2等?

我正在研究8086/8080微处理器。它们中使用的寄存器具有名称, RAX RBX RCX RDX 继续直到R8寄存器被命名如R8,R9 ...至R15。我想知道 我们也将寄存器RAX,RBX等称为R1,R2等吗? 解决方案 前8个寄存器的标准做法是保留其历史名称。 这样做的原因是这些名称是寄存器功能的助记符。例如, rsp 突出显示为堆栈指针; r4 不是很 ..
发布时间:2020-10-11 00:20:23 其他开发

8086微处理器的指令队列中可以存储多少条指令?

我认为,由于英特尔微处理器的内存是按字节组织的,而指令队列的大小是4个字节,答案将是4条指令? 解决方案 8086和8088芯片具有预取队列。这些存储了从指令指针(和代码段)“向前”的内存中预取的多个字节。这样,处理器就可以在空闲的总线周期中做一些“有用的事情”。 8088预取队列的深度为四个字节。 8086队列的深度为6个字节。 同样,这些不对应于一定数量的指令,而是一定数量 ..
发布时间:2020-10-11 00:18:12 其他开发

8086/8088中有多少个寄存器?

我参加了计算机体系结构课程,并且了解到处理器具有32个32位寄存器。现在,我正在研究计算机体系结构课程,在该课程中我读到8086仅具有 8个寄存器。但是我读过的书和此网站显示了许多寄存器。我对8086和8088中的寄存器感到困惑。请帮帮我。 注意: I对不同处理器中的不同寄存器大小有很好的了解。我只是对寄存器的数量感到困惑。 解决方案 8086和8088是16位处理器-它们的寄 ..
发布时间:2020-10-10 23:31:36 其他开发

堆栈在微处理器中的作用是什么?

堆栈在微处理器中的作用是什么? 解决方案 堆栈在函数调用期间主要使用,但取决于语言和编程级别可用于临时存储处理器寄存器数据或其他变量。 此外,使用递归函数将堆栈中的部分数据存储在堆栈中时,堆栈还可用于短期大规模数据存储。堆叠并再次打电话给自己。 堆栈的一般用途是例如, 返回地址 返回值 被调用函数的参数 被调用函数中的局部变量 处理器寄存器,将在被调用函数中重 ..
发布时间:2020-10-07 18:33:05 其他开发

RISC-V指令集中的FENCE指令是什么意思?

在通过RISC-V ISA时,我在内存模型部分看到了一条指令(FENCE指令)。究竟是什么意思? 解决方案 我发现仅在使用FENCE指令时才有一种情况。 示例: SoC中的某些模块通过通过HostIO总线将值写入CSR 0x783(MIPI)来生成中断。 固件跳转到中断处理程序。 处理程序尝试通过将1写入寄存器来重置用户实现设备中的“ pending”位。 该操作被编译为立即 ..