回答
不,没有。 (但在“正常”的CPU上,有点是)。
x86-64是64位体系结构,带有64位整数寄存器,但是它only has 48-bit virtual address space(如果需要,将来可扩展到64位)。指针是64位整数,但前16位必须是低48位的符号扩展。最初的实现(AMD K8)仅支持40位物理地址。该page-table format allows up to 52-bit physical addresses, but current implementations only support 48-bit (256TiB of RAM)。 32位x86具有分段和分页功能,所以它可以从cs,ss,ds,es,fs和gs中的每一个寻址4GiB。 (这是非常不方便的,所以所有主要的操作系统都只使用一个4GiB内存空间)。
大多数8位CPU可以使用一对8位寄存器作为16位指针。 AVR(具有32个8位寄存器的8位RISC微控制器)仍然如此。
术语32位或64位体系结构相当模糊。这是否意味着寄存器大小,数据总线宽度,指针宽度?人们(有时包括营销部门)随心所欲地打电话给他们。 Skylake-avx512在执行单元和L1D缓存之间有一个512位路径(用于矢量加载/存储)。那么它是一个512位SIMD架构吗?是的,我想是的。这也是一个64位体系结构。 AMD Ryzen将256b AVX指令拆分为两个128b半部分。它是一个256位SIMD架构吗?当然,为什么不呢。 体系结构上,寄存器宽度为256b。它是否也是128b SIMD架构?是。
大多数现代架构字节寻址,但有些(如可能的DSP?)只是字寻址。每个地址可以是整个机器字(例如,在一些奇怪的CPU上是36位)。在这种情况下,32位地址会为您提供每字4GiB *字节的地址空间,但您必须加载+ shift &掩码才能将其用作许多单独的字节。
- 1. 确定JRE架构32位和64位
- 2. 关于32位和64位架构上PHP的区别?
- 3. 在64位OSX上构建32位libcurl
- 4. 为32位和64位构建文件
- 5. 在64位架构上的32位操作系统
- 6. 32位和64位架构总线有多宽?
- 7. 错误在后端:32位绝对寻址64位模式
- 8. 64位debian和32位酒
- 9. C# - 在32位和64位
- 10. 在32位和64位
- 11. 32位和64位性能
- 12. 32位和64位的ODP.NET
- 13. ODBC .NET 32位和64位
- 14. Gluegen 32位和64位库
- 15. Java 32位和64位
- 16. 32位和64位CPU/OS
- 17. Windows 7(64位)上的IIS 7和Ms Access 32位32位
- 18. 在32位和64位平台上总是处理32位?
- 19. 32位与64位定制框架
- 20. Win 7 64位和Win Server 2003上的ODP.NET 32位64位
- 21. 使用64位构建32位llvm-gcc
- 22. 构建gtest的MSVC:32位或64位?
- 23. 构建32位OpenCV的64位平台
- 24. 32位/秒64位体系结构 - 虚拟地址空间
- 25. VC++ 2005:自动构建32和64位
- 26. 在scons中检测CPU架构(32位/ 64位)
- 27. XOR高32位,低32位,64位数
- 28. MySQL 32位或64位 - Apache 32位Windows 64位?
- 29. JVM和Glassfish的32位和64位
- 30. 为什么valgrind在64位架构上仅限于32 Gb?