2021-08-15 11:52
现在是2021, 这个激动人心的时刻已经过去了!!!!
2014-09-16 10:31

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“七液”的评论

高级CPU上都有寄存器滑动窗口,内存自然也可以,再说好多64位处理器,寻址其实都不是64位的而是40,48位。

引用来自“JerryLin”的评论

寻址总线大于32位情况下,地址用几个32位表示?

引用来自“七液”的评论

EM64T-AMD64号称是64位可是只使用了44位的内存寻址。你觉得怎么表示?
......
2014-09-16 10:28

引用来自“PegasusCpp”的评论

坐等PC换ARM处理器
+10086
2014-09-16 01:11

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“七液”的评论

高级CPU上都有寄存器滑动窗口,内存自然也可以,再说好多64位处理器,寻址其实都不是64位的而是40,48位。

引用来自“JerryLin”的评论

寻址总线大于32位情况下,地址用几个32位表示?
EM64T-AMD64号称是64位可是只使用了44位的内存寻址。你觉得怎么表示?
2014-09-16 01:09

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“七液”的评论

高级CPU上都有寄存器滑动窗口,内存自然也可以,再说好多64位处理器,寻址其实都不是64位的而是40,48位。

引用来自“JerryLin”的评论

寻址总线大于32位情况下,地址用几个32位表示?
你可以去重新学习一下计算机原理。40位寻址空间这个很早以前就有解决方案了。16位的dos还能扩展出32位的内存寻址空间,32位的windows2003还可以扩展出128G的寻址空间你觉得是如何做到的?
2014-09-16 01:07

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“七液”的评论

内存寻址是可以扩展到64位,可是科学计算就没啥必要,比如32位的处理器也可以拥有更大的寄存器,比如64位CPU可以使用AVX-512位的寄存器,32位的自然也可以,没必要为了指令集而增加这玩意。ARM32也是有NEON指令集的。所以为了多媒体升级到64位是愚蠢的行为。。。
虽然apple升级到了64位架构,但是讽刺的是iphone6还是1G物理内存。这有啥意义呀!!!
估计是为了以后ARM版的Mac系列做铺垫。至于现在商业宣传意义更大一点。

引用来自“eel”的评论

仅仅对这句话而言: "虽然apple升级到了64位架构,但是讽刺的是iphone6还是1G物理内存。这有啥意义呀!!!" 64位寻址空间是虚拟地址,和物理地址是两个概念.
难道我不知道么?如果说没有用到超过4G的物理内存有必要去进行64位的扩展么?没必要,目前来说手机有必要超过4G内存么?至少目前来说没这个必要,所以64位的宣传意义大于实用意义。当然你可以觉得虚拟内存越大分配的越多,与其这样内存不停的分页换入换出你不如多增加点物理内存速度来的更快。理论和实际差距还是很大的,不要光看表面。
2014-09-15 21:18
赶快出arm架构cpu的笔记本吧…
2014-09-15 18:34

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“七液”的评论

内存寻址是可以扩展到64位,可是科学计算就没啥必要,比如32位的处理器也可以拥有更大的寄存器,比如64位CPU可以使用AVX-512位的寄存器,32位的自然也可以,没必要为了指令集而增加这玩意。ARM32也是有NEON指令集的。所以为了多媒体升级到64位是愚蠢的行为。。。
虽然apple升级到了64位架构,但是讽刺的是iphone6还是1G物理内存。这有啥意义呀!!!
估计是为了以后ARM版的Mac系列做铺垫。至于现在商业宣传意义更大一点。
仅仅对这句话而言: "虽然apple升级到了64位架构,但是讽刺的是iphone6还是1G物理内存。这有啥意义呀!!!" 64位寻址空间是虚拟地址,和物理地址是两个概念.
2014-09-15 17:11

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“七液”的评论

高级CPU上都有寄存器滑动窗口,内存自然也可以,再说好多64位处理器,寻址其实都不是64位的而是40,48位。
寻址总线大于32位情况下,地址用几个32位表示?
2014-09-15 16:41

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。

引用来自“理工小强”的评论

是的 的确可以的 32位的确能支持超过4GB内存 只是比较麻烦 效率低

引用来自“founder_1”的评论

要知道16位8086访问到1M内存,人家的数据线是16位,地址线是20位。如果地址线是16位再怎么分段寻址也访问不到1M。

引用来自“young7”的评论

原来如此,学习了。
ps:为何楼上不是会员都能发言?
你指的楼上是哪位?
2014-09-15 16:40

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。
内存寻址是可以扩展到64位,可是科学计算就没啥必要,比如32位的处理器也可以拥有更大的寄存器,比如64位CPU可以使用AVX-512位的寄存器,32位的自然也可以,没必要为了指令集而增加这玩意。ARM32也是有NEON指令集的。所以为了多媒体升级到64位是愚蠢的行为。。。
虽然apple升级到了64位架构,但是讽刺的是iphone6还是1G物理内存。这有啥意义呀!!!
估计是为了以后ARM版的Mac系列做铺垫。至于现在商业宣传意义更大一点。
2014-09-15 16:37

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。

引用来自“理工小强”的评论

是的 的确可以的 32位的确能支持超过4GB内存 只是比较麻烦 效率低

引用来自“founder_1”的评论

要知道16位8086访问到1M内存,人家的数据线是16位,地址线是20位。如果地址线是16位再怎么分段寻址也访问不到1M。
原来如此,学习了。
ps:为何楼上不是会员都能发言?
2014-09-15 16:37

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?
高级CPU上都有寄存器滑动窗口,内存自然也可以,再说好多64位处理器,寻址其实都不是64位的而是40,48位。
2014-09-15 16:25

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。

引用来自“理工小强”的评论

是的 的确可以的 32位的确能支持超过4GB内存 只是比较麻烦 效率低
要知道16位8086访问到1M内存,人家的数据线是16位,地址线是20位。如果地址线是16位再怎么分段寻址也访问不到1M。
2014-09-15 14:02

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。
是的 的确可以的 32位的确能支持超过4GB内存 只是比较麻烦 效率低
2014-09-15 13:50

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“中山野鬼”的评论

别的不知道哦。ac3的解码代码,我用dsp写的汇编,包括核心的fft等等。cpu是公司自己开发的,24位,之所以用24位不用32位,是为了省面积便宜,哈,主控还用z80呢。够用就好,不用16位,如你说的,累加16位不够,不过25位浪费。哈。至于视频,c版本,dsp版本,编解码大多数标准都做过(内核)外部应用系统没做过。只做8bits精度,10bits,16bits的不玩,那是专业场合应用。哈。至于整除算法?能用查表的都用查表,内部解码我影响中没有直接除法(无论浮点,定点),哈。估计你说的是3d graph的处理吧。音视频不存在。
哦,整数算法,写成整除算法了。就普通的算法,浮点计算能查表的太少了,都是改写成整数相乘,然后移位的。所以32位计算的精度就比64位要差了。
2014-09-15 13:38

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。

引用来自“中山野鬼”的评论

哈,不针对你的个人,只是你的两篇言论都有误区,所以集中讨论一下。我请教你个问题,地址总线只有32位,怎么寻址 4g以上的物理空间?你可以参考下20位总线和16位系统的故事。哈。
误会我意思了,我意思是说,前端总线可以扩展,只是里面寄存器什么都不用改,这个不是系统问题,还是CPU的构架问题。16位CPU的寄存器是16位,就注定了只能用16位系统。否则我怎么说64位是一步到位呢。前端总线是必须改,不然对不上齿轮的。
2014-09-15 13:13
NEON 只是似是而非的并行向量处理吧。它其实只是这样一个方法,节省了存取的时间,而实际指令并没有做向量的优化。貌似调用了一个指令,但是里面却是分成多个指令执行了。
2014-09-15 12:57

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节

引用来自“Greatim”的评论

当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。
哈,不针对你的个人,只是你的两篇言论都有误区,所以集中讨论一下。我请教你个问题,地址总线只有32位,怎么寻址 4g以上的物理空间?你可以参考下20位总线和16位系统的故事。哈。
2014-09-15 12:53

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。
别的不知道哦。ac3的解码代码,我用dsp写的汇编,包括核心的fft等等。cpu是公司自己开发的,24位,之所以用24位不用32位,是为了省面积便宜,哈,主控还用z80呢。够用就好,不用16位,如你说的,累加16位不够,不过25位浪费。哈。至于视频,c版本,dsp版本,编解码大多数标准都做过(内核)外部应用系统没做过。只做8bits精度,10bits,16bits的不玩,那是专业场合应用。哈。至于整除算法?能用查表的都用查表,内部解码我影响中没有直接除法(无论浮点,定点),哈。估计你说的是3d graph的处理吧。音视频不存在。
2014-09-15 12:45
13楼,你发的是什么玩意?给小白们科普一下!
2014-09-15 11:14

27 ;//Input Arguments
28pSrc RN 0
29pDst RN 1
30step RN 2
31
32;//Local Variables
33Return RN 0
34;// Neon Registers
35
36X0 DN D0.S8
37X1 DN D1.S8
38X2 DN D2.S8
39X3 DN D3.S8
40X4 DN D4.S8
41X5 DN D5.S8
42X6 DN D6.S8
43X7 DN D7.S8
44
45 M_START omxVCCOMM_Copy16x16
46
47
48 VLD1 {X0,X1},[pSrc@128],step ;// Load 16 bytes from 16 byte aligned pSrc and pSrc=pSrc + step after loading
49 VLD1 {X2,X3},[pSrc@128],step
50 VLD1 {X4,X5},[pSrc@128],step
51 VLD1 {X6,X7},[pSrc@128],step
52
53 VST1 {X0,X1,X2,X3},[pDst@128]! ;// Store 32 bytes to 16 byte aligned pDst
54 VST1 {X4,X5,X6,X7},[pDst@128]!
55
2014-09-15 11:07

引用来自“PegasusCpp”的评论

坐等PC换ARM处理器

引用来自“Greatim”的评论

等PC能用Arm处理器,显卡估计就贵起来了,因为复杂运算都移到显卡上了。PC处理一条指令,Arm要处理很多条,更加没有MMX SSE等等流式处理。两者根本不是一个等级的,不要光看着频率说事。
在我毕业的时候ARM就已经有NEON指令集了
2014-09-15 11:05
效果就是:该换手机了。
2014-09-15 09:58

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?

引用来自“young7”的评论

同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节
当年16位CPU怎么支持1M内存的?16位按理最多支持64K啊。做法无法就是做两个16位表示一个大数据的能事了。把内存分成每16字节一个基地址。程序开始定位了一个基地址,之后基本上就是在64位内存里面操作,当然也可以访问超过16位的,只是周折一点,改变段寄存器,所以老的程序开发,指针都分短指针和长指针两种,长指针垮段了,短指针在本段。


所以32位也可以做类似的处理,而且32位做这个也是够用了,很少有这个必要,一定用大于4G的“连续内存”。

当然64位一步到位更好,只是成本高,如果不是64位还有其他各种好处的话,估计32位也会走老路,要再过几年才用上64位。
2014-09-15 09:40
64位的ARM处理器可以用来做非计算密集型的服务器,比如CDN服务器.
Linaro项目正在致力于让Linux设备更好地运行在ARM处理器上.
2014-09-15 09:30

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。

引用来自“JerryLin”的评论

32位怎么超4G内存分段寻址?
同问,16位的cpu就算再怎么分段寻址,它能利用的内存也不可能超过2^16=65535个字节
2014-09-15 09:19

引用来自“Greatim”的评论

乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。
32位怎么超4G内存分段寻址?
2014-09-15 09:09

引用来自“PegasusCpp”的评论

坐等PC换ARM处理器
等PC能用Arm处理器,显卡估计就贵起来了,因为复杂运算都移到显卡上了。PC处理一条指令,Arm要处理很多条,更加没有MMX SSE等等流式处理。两者根本不是一个等级的,不要光看着频率说事。
2014-09-15 09:02
再吐槽一下,文章还有个问题是,只是说了64位CPU有什么好处,压根没有说64 Arm的意义。当然,这点我也不知道。我进来看文章只是以为作者想说, 64位 Arm对于Arm的意义,比对其他CPU的意义大很多。
2014-09-15 08:59
坐等PC换ARM处理器
2014-09-15 08:56
乱扯,为什么就32位处理器不能用100个寄存器,超过4G内存为什么不能学16位系统那样分段寻址?都没说到重点。

64位的提升,除了寻址超过4G之外。最重要的是多媒体数据处理的需要。我们知道多媒体的各种算法开始构想都是浮点原型,而快速算法一般都是改写成整除算法。但是32位整数可表示的数值范围比浮点差远了。必须降低计算过程中的精度。对于这点,64位的使用可以提高精度,直接效果就是音视频更清晰了。

另一点,多媒体有很多计算,利用到了整数累加,一个16位的音频,累加没多久就整数溢出,每次都要做溢出判断,而用64位,在大多数情况下,要处理的数据量是极有限的,完全可以假设数据不会溢出。所以计算速度得到质的提升。

第三点,时间的表示。为了表达精确的时间,很早开始,各系统就已经使用64位来表示时间,但是都是用两个32位来表示,CPU计算时间很麻烦。换成64位之后,关于时间的计算更快了。一般来说,这种计算也是多媒体用得最多。
2014-09-15 08:29
只有制程的改良才能带来大幅度的进步,话说ARM的处理器什么时候上14nm?
2014-09-15 07:14
性能比较,就应该跑 benchmark。扯这么多模模糊糊的淡有啥用。

记忆中,x64 对比 x32,大多数 benchmark 性能基本不变,极少数加密或者视频编码啥的大幅上升
回复 @
{{emojiItem.symbol}}
返回顶部
顶部