首页
社区
课程
招聘
[讨论]部分64位处理器的特征
发表于: 2006-1-21 22:58 6777

[讨论]部分64位处理器的特征

2006-1-21 22:58
6777
现在AMD率先出了64位处理器了~
究竟对软件有什么影响?今天去上海书城看了看,看到本好书
《64位微处理器及其编程》售价38RMB,感觉还行吧~
废话不多说,我摘要几段给没书的朋友~

传统的32位处理器只拥有32条地址线,可管理4G的内存,而64位微处理器则拥有64条地址线,可以管理16T的内存空间!

64位架构是简单而功能强大的64位结构,他向后兼容扩展了X86架构的工业标准。他增加了64位寻址并扩展了寄存器资源,以便支持重新编译的更高性能的64位程序。同时他还支持传统的16位和32位的应用程序和操作系统而不必修改和重新编译他们。Intel 64位技术和AMD64实际上是同一架构,两者相互兼容。

AMD64架构的特征
AMD64架构引入了以下新的特征:

寄存器的扩展
8个新的通用寄存器(GPR)
所有的16个GPR都是64位字宽
8个新的128位XMM寄存器
对于所有的GPR都用统一的字节寄存器寻址
访问扩展寄存器的64位指令前缀

长模式
升到64位虚拟地址(最大支持)
64位指令指针(RIP)
新的“相对指针的寻址”模式
线性地址空间

以上都是部分文字说明而已,其实配有图的,不过不好贴上来,各位有兴趣的,自己去搜索一下吧~

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
通过你贴的,我看这本书不怎么样
你贴的第一句就是错误的 “传统的32位处理器只拥有32条地址线,可管理4G的内存,而64位微处理器则拥有64条地址线,可以管理16T的内存空间!”
应该说32位的操作系统 是这样的,CPU早已超过, 这样基础的概念都分不清楚,这本书能好到哪去?

后面对寄存器的介绍更是云里雾里,这样的书,不如去AMD网站看它的手册
2006-1-21 23:08
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
他后面的寄存器介绍,本来有图的~
光文字介绍我也觉得很盲目~
非常抱歉~
2006-1-21 23:18
0
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
主要是他开篇就将定义弄错了
说明一个问题,作者并不真正懂,书里的东西是四处抄来的
2006-1-21 23:24
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
或许吧~
看来又浪费钱了~
2006-1-21 23:27
0
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
还可以比没有强。哈哈
2006-1-22 01:19
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
7
怪不得,便宜没好货.
2006-1-22 09:25
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
2的32次方是4294967296
2的64次方是18446744073709551616是184亿G不是16T..
2006-1-22 18:22
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
9
最初由 Ivanov 发布
通过你贴的,我看这本书不怎么样
你贴的第一句就是错误的 “传统的32位处理器只拥有32条地址线,可管理4G的内存,而64位微处理器则拥有64条地址线,可以管理16T的内存空间!”
应该说32位的操作系统 是这样的,CPU早已超过, 这样基础的概念都分不清楚,这本书能好到哪去?

后面对寄存器的介绍更是云里雾里,这样的书,不如去AMD网站看它的手册


我同意书作者的说法,没有问题呀。
2006-1-22 20:02
0
雪    币: 176
活跃值: (100)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
10
最初由 无情小猪 发布
2的32次方是4294967296
2的64次方是18446744073709551616是184亿G不是16T..

按1024算的话,是16T
2006-1-22 20:41
0
雪    币: 99
活跃值: (2448)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
最初由 波导终结者 发布

按1024算的话,是16T

应该是16E(=16KP=16MT=16GG)
2006-1-23 20:21
0
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谁说传统32位的只能管理4GB内存 通过物理地址扩充Physical Address Extension以及Enterprise Memory Architecture能够寻址8 GB,而Data Center Server甚至达到64 GB。

另外什么叫传统 32位? 32位还分传统不传统的? 你看就是东拼西凑的翻译材料

另外,目前64位CPU只可以寻址范围 1TB,理论上的寻址能力还没开放
2006-1-23 21:37
0
雪    币: 222
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
不懂,学习
2006-1-23 22:05
0
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
由于早期内存紧张,每个指针4个字节,老盖他们愁得没办法,想出了个浑招,创建了“资源表”,就是把当前调入内存的所有资源的信息登记到一个清单。这样一来,当应用程序要求系统调用一个资源时,系统调用后就不给它配发指针了,而是直接告诉应用程序该资源在资源表中的序号。 这样一个序号之占2字节,可以节省一半当时看起来真是好,可以是它就如同千年虫一样,隐患在后面,如果允许系统使用4字节的序号,那么在这个"位数限制 "下,可以有几十亿个不同的序号可供使用。但如果只准系统使用2字节序号,能用的序号就会锐减到65536个。于是,资源表就不能无限的拉长。其中的序号最多只有65536个,咔咔,问题找来了。当调用了65536个资源后,再想调用更多的资源,纵然内存空间还有16TB,足以存储数不清个资源,但只有2字节的资源表却无法生成更多的序号!没有序号,就意味着无法将各资源区分开来,应用程序自然无法使用这些没有"非法移民"的资源!事实上,因为没有序号可用,系统根本无法同时调用65536个以上的资源。

解决不了这个,64位和32位就没有什么本质的区别,那么就目前而言,他们最主要区别在哪呢? 他们最主要的区比在 32位的内存是操作系统寻址4GB内存,操作系统自身分配2GB,剩余的2GB用于应用堆栈, 而64位取消了这一限制,每个应用堆栈都能使用最多4GB,这样一来,逼着你要尽可能的加大内存,来使得内存出现富余系统好使用;

搂主买的那本书,都是CPU制造商的说明书和广告上的东西,根本不涉及实质问题,是一个用广告宣传册子拼凑的
2006-1-23 22:07
0
雪    币: 222
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
15
楼上讲得好 Bill Gates是挺懒的,只顾挣钱了 能讲讲linux是如何处理64位的吗?
2006-1-23 22:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
64位操作系统一个int型应该是8字节了吧
32位操作系统运行16位程序是在虚拟机里面运行的,这是CPU所支持的虚拟8086模式,除了实模式,保护模式的第三种模式,16位程序的性能不会有提升
64位操作系统运行32位程序性能也不会有所提升的吧
CPU内部的地址线和外部的地址线条数是倍数关系,内部64条,外部应该有128条了
2006-1-27 15:10
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
看来其实大家都讨论的是64位的内存问题,现在32位OS(NT)是采用平坦模式的内存分布,64位我想还是要利用虚拟内存来管理内存的把?对于每个进程来说有64位的页目录和页表,个人认为其实32位与64位在软件实现上差别是不大的,内存环境在NT中是与进程相互联系的,每个32位操作系统中进程对应4G的内存虚拟内存空间,不同进程之间的4G内存高端除外,相互的虚拟地址空间都是隔离的.理论上说只要进程需要的内存不超过4G内存中保留给系统使用的外需求都会满足(通过物理页贞与磁盘虚拟内存的交换),当然实际内存越多这种交换就越少.速度越快.64位每个进程可以操作64位的虚拟地址空间不需要把高端保留给系统使用,估计这里是一个革新.对应还是看以后64位操作系统出来后的介绍把.
2006-1-28 23:09
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
18
最初由 Ivanov 发布
谁说传统32位的只能管理4GB内存 通过物理地址扩充Physical Address Extension以及Enterprise Memory Architecture能够寻址8 GB,而Data Center Server甚至达到64 GB。

另外什么叫传统 32位? 32位还分传统不传统的? 你看就是东拼西凑的翻译材料

另外,目前64位CPU只可以寻址范围 1TB,理论上的寻址能力还没开放


传统 32 位处理器是只可以管理 4GB 的物理内存,因为它的地址
总线的宽度为 32 位, 例如 80386、80486。而 pentinum 处理器
可以管理 64GB 的物理内存,因为它的地址总线的宽度为 36 位(它就不是传统的),
但是它也是 32 位处理器, 因为它的主要
通信寄存器是 32 位的。

软件必须顺着硬件,如果硬件只支持 1 MB 的内存(如 8086),什么
样的操作系统和软件都是没法改变的。

个人观点。
2006-1-29 15:03
0
游客
登录 | 注册 方可回帖
返回
//