This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR5969:处理器在字节和字词方面的工作是否优于位?

Guru**** 2582405 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/614549/ccs-msp430fr5969-do-processors-work-better-on-byte-and-words-than-bits

部件号:MSP430FR5969

工具/软件:Code Composer Studio

您好,

我浏览了TI的CRC指南- 第3页 ,我发现其中有一条陈述  

"处理器在字节和文字上的操作比比特更好" 

有人能澄清这里的"更好"是什么意思吗? 是否按照说明执行的机器循环次数? 如果我没记错,那么最后一次,我检查了每个指令的机器周期,字节指令(如DIV和MUL)为古老的英特尔CPU花费了4个机器周期,这比任何其他指令都要多。 当我说与字节操作相比,左移或右移等位操作效率低下时,我是否错了?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果要更改某个位,您要么必须为每个位使用单独的单字节变量,要么必须屏蔽该位,以便变量中的其他位不受影响。

    MSP430具有用于设置/清除位的BIS/BIC指令,但这仍需要两个指令:

    //一个字节
    a = new_value;
    
    //一位
    a &=~bit_mask;
    a |= new_bit; 

    如果您不知道位号,则必须添加更多的shitfting指令。

    MSP430没有料筒换档器;更多的换档步骤需要更多的循环。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我很抱歉,但我的关注仍然是一样的。 请允许我举一个例子来解释我的疑虑。


    假设int x =2;在另一个变量int result=0中,我应该得到变量x的两倍 现在,在(案例1)中,我使用算术运算符,我写了如下内容:

    结果= x * 2; 

    而在(案例2)中,我使用轮班操作员并写一些类似的内容:

    结果= x<1;
    

    您能否详细说明哪种情况可能会更快地执行?为什么?
    CRC pdf文档中的陈述适用于大多数CPU还是仅适用于MSP430?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MSP430 CPU没有乘法指令,因此移位速度要快得多。

    但是CRC不使用乘法;它是在位流上定义的,这就是应用程序说明所讨论的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Clemens Ladisch 说:
    但CRC不使用乘法;它是在位流上定义的,这就是应用程序注释所说的。[/QUOT]

    谢谢。 我的大部分问题几乎都可以解决。