Assembly 字大小和时钟速度之间的差异?

Assembly 字大小和时钟速度之间的差异?,assembly,cpu-speed,Assembly,Cpu Speed,我不知道我的问题是否相关。但我想知道的是,这两者是如何影响cpu性能的??我只知道对于具有相同架构的cpu,时钟速度越高,cpu的处理能力越快,但是字的大小呢?它将如何影响CPU的速度?哪个字真正决定CPU的速度?它是否相互矛盾?谢谢。大多数时候,CPU将数据从一个地方复制到另一个地方。如果它可以在64位粒度而不是8位粒度上实现这一点,那么速度将提高8倍 这与操作的原理相同。在32位CPU上执行32位加法的速度比不计算内存访问增益的8位CPU快4倍 编辑关于时钟速度:所有CPU操作从内存加载、存

我不知道我的问题是否相关。但我想知道的是,这两者是如何影响cpu性能的??我只知道对于具有相同架构的cpu,时钟速度越高,cpu的处理能力越快,但是字的大小呢?它将如何影响CPU的速度?哪个字真正决定CPU的速度?它是否相互矛盾?谢谢。

大多数时候,CPU将数据从一个地方复制到另一个地方。如果它可以在64位粒度而不是8位粒度上实现这一点,那么速度将提高8倍

这与操作的原理相同。在32位CPU上执行32位加法的速度比不计算内存访问增益的8位CPU快4倍


编辑关于时钟速度:所有CPU操作从内存加载、存储到内存、添加值。。。需要执行给定数量的时钟滴答声,通常RISC CPU需要一个时钟滴答声。时钟滴答声的持续时间直接取决于时钟的频率。1GHz时钟意味着每秒10亿次时钟滴答声,即每秒执行10亿次CPU操作。使用2GHz时钟,CPU可以在同一秒内执行两倍的操作。

大多数情况下,CPU将数据从一个地方复制到另一个地方。如果它可以在64位粒度而不是8位粒度上实现这一点,那么速度将提高8倍

这与操作的原理相同。在32位CPU上执行32位加法的速度比不计算内存访问增益的8位CPU快4倍

编辑关于时钟速度:所有CPU操作从内存加载、存储到内存、添加值。。。需要执行给定数量的时钟滴答声,通常RISC CPU需要一个时钟滴答声。时钟滴答声的持续时间直接取决于时钟的频率。1GHz时钟意味着每秒10亿次时钟滴答声,即每秒执行10亿次CPU操作。使用2GHz时钟,CPU可以在同一秒内执行两倍的操作。

理论上

当我们测量CPU内存读/写数据传输时,内存流(以字节/秒为单位)由以下组成:

内存字大小宽度(字节) CPU时钟速度 每次读/写的CPU周期 数据传输=字号*CpuClock/RW\u周期

编辑:

我在理论上失败了!理论上,该等式100%适用于DSP处理器或FPGL逻辑。在现代CPU下,DMA逻辑也是如此,那么为什么是-1呢

理论上

当我们测量CPU内存读/写数据传输时,内存流(以字节/秒为单位)由以下组成:

内存字大小宽度(字节) CPU时钟速度 每次读/写的CPU周期 数据传输=字号*CpuClock/RW\u周期

编辑:


我在理论上失败了!理论上,该等式100%适用于DSP处理器或FPGL逻辑。在现代CPU下,DMA逻辑也是如此,那么为什么是-1呢

这一切都会影响速度。。。内存总线大小、处理器总线大小、缓存线大小、寄存器大小、CPU不同部分的时钟速度、每条指令的周期数、指令延迟、芯片多线程、超标量执行单元、,等等。没有简单的公式来计算时钟速度和字长来比较单位,看哪个更快。显然,1mhz 8位CPU将比64位3.2ghz CPU慢,但确定1.8 ghz 64位CPU是否比2.4 ghz 32位计算机快更成问题,可能取决于确切的工作负载。分析您的工作负载是唯一真正了解情况的方法。

好吧,这一切都会影响速度。。。内存总线大小、处理器总线大小、缓存线大小、寄存器大小、CPU不同部分的时钟速度、每条指令的周期数、指令延迟、芯片多线程、超标量执行单元、,等等。没有简单的公式来计算时钟速度和字长来比较单位,看哪个更快。显然,1mhz 8位CPU将比64位3.2ghz CPU慢,但确定1.8 ghz 64位CPU是否比2.4 ghz 32位计算机快更成问题,可能取决于确切的工作负载。分析您的工作负载是唯一正确的方法。

时钟速度不受字大小的影响,因为字大小由数据总线的大小决定,因此cpu只从内存读/写一次,无论是32位还是64位。

时钟速度不受字大小的影响,因为字的大小由数据总线的大小决定,所以cpu只从内存读/写一次,不管是32位还是64位。

理论上,字的大小越大,代码的速度就越慢。原因是在64位体系结构中,指针是64位字,因此数据结构中充满了指针列表、树、哈希表。。。倾向于使用比32位体系结构上的等效代码更多的RAM。有限公司 MMO RAM速度慢,响应速度不如CPU希望的快,因此CPU嵌入了少量快速RAM,称为缓存,用于存储最常用的数据。在Intel的现代x86上,缓存大小通常为32 kB。64位指针使处理器更难存储尽可能多的数据元素,因此降低了性能

然而

以上有几个注意事项,特别是在x86平台上:

在许多应用程序中,大部分数据不是指针。例如,在3D重型应用程序游戏中,大多数数据是图片、纹理和对象坐标。此类数据不受平台默认字长的影响

64位指针允许应用程序轻松寻址超过4GB的RAM。对于需要RAM的应用程序,例如在内存超过4 GB的机器上进行摄影编辑,64位字允许使用更多的RAM,虽然速度较慢,但仍然比硬盘快得多。在同样的情况下,32位应用程序必须处理RAM和硬盘之间的数据块

在x86处理器上,这是所有现代PC和Mac上都会发生的事情,出于历史原因,64位模式不仅仅是64位寄存器;它还为应用程序提供了两倍多的寄存器,这有助于提高性能。64位模式还附带SSE2,它比以前使用的x86处理器更快地处理浮点数据

因此,在PC或Mac上,如果可能的话,更喜欢64位操作系统和应用程序。64位代码的更好性能不是因为字长更大;这是其他特性的结果,历史上,这些特性在这些体系结构上一直采用64位模式


在其他系统(如PowerPC)上,当32位和64位模式都可用时,通常首选32位,除非内存不足的应用程序希望访问超过4 GB的RAM(假设RAM大小可用),并且极少数应用程序希望对超过32位的整数执行计算,某些密码算法会出现这种情况。

理论上,字长越大,代码速度就越慢。原因是在64位体系结构中,指针是64位字,因此数据结构中充满了指针列表、树、哈希表。。。倾向于使用比32位体系结构上的等效代码更多的RAM。普通RAM速度慢,响应速度不如CPU所希望的快,因此CPU嵌入了少量快速RAM,称为缓存,用于存储最常用的数据。在Intel的现代x86上,缓存大小通常为32 kB。64位指针使处理器更难存储尽可能多的数据元素,因此降低了性能

然而

以上有几个注意事项,特别是在x86平台上:

在许多应用程序中,大部分数据不是指针。例如,在3D重型应用程序游戏中,大多数数据是图片、纹理和对象坐标。此类数据不受平台默认字长的影响

64位指针允许应用程序轻松寻址超过4GB的RAM。对于需要RAM的应用程序,例如在内存超过4 GB的机器上进行摄影编辑,64位字允许使用更多的RAM,虽然速度较慢,但仍然比硬盘快得多。在同样的情况下,32位应用程序必须处理RAM和硬盘之间的数据块

在x86处理器上,这是所有现代PC和Mac上都会发生的事情,出于历史原因,64位模式不仅仅是64位寄存器;它还为应用程序提供了两倍多的寄存器,这有助于提高性能。64位模式还附带SSE2,它比以前使用的x86处理器更快地处理浮点数据

因此,在PC或Mac上,如果可能的话,更喜欢64位操作系统和应用程序。64位代码的更好性能不是因为字长更大;这是其他特性的结果,历史上,这些特性在这些体系结构上一直采用64位模式


在其他系统(如PowerPC)上,当32位和64位模式都可用时,通常首选32位,除非内存不足的应用程序希望访问超过4 GB的RAM(假设RAM大小可用),并且极少数应用程序希望对超过32位的整数执行计算,某些加密算法会出现这种情况。

请查看我的答案,了解时钟速度对性能的影响!检查我的答案,看看时钟速度如何影响性能!