更新时间:2023-01-11 07:06
在计算机科学中,二进制地址,也叫实地址(real address)、物理地址(英语:physical address),它是在地址总线上,以电子形式存在的,使得数据总线可以访问主存的某个特定存储单元的内存地址。在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个独立的存储器地址。
在和虚拟内存的计算机中,二进制地址这个术语多用于区分虚拟地址。尤其是在使用内存管理单元(MMU)转换内存地址的计算机中,虚拟和物理地址分别指在经MMU转换之前和之后的地址。
在计算机网络中,二进制地址有时又是MAC地址的同义词。这个地址实际上是用于数据链路层,而不是如它名字所指的物理层上的。
地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。它是用二进制数来表示的,是无符号整数,书写格式为十六进制数。
它是在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
根据计算机体系的不同,对内存的不对齐的访问对计算机的性能可能会有所损害。例如,像Intel 8086这种数据总线为16位的计算机,对偶数地址的访问会更有效率。在那种情况下,获取一个16位的值只要读一次内存以及在数据总线上传送一次数据。显然,如果那16位的值储存在奇数地址上,处理器实际上要读两次内存,即,一次用于读存储在低地址的部分,另一次读存储在高地址的部分;两次都要把读到的数据丢弃一半。
和ip地址类似,每一个电脑都有一个ip,但并不是一个,是可以通过设置改变的。一个电脑网卡对应一个物理地址所以对一台计算机来说,物理地址是它独立的网络标志,是无法改变的。这样,如果一台电脑访上网,网站上会记下你的IP地址已经物理地址,但是IP地址是活的,但是物理地址是死的,因此有些网站做一些投票,等活动的时候之所以能让一台电脑之能投一次,就是它记住了地址,如果更换他就会当作其他电脑来处理 。还有在校园网,任何一个局域网中的用户在上网时,做出了不符合规定的上网行为(比如:在论坛里乱讲、恶意攻击网站等),网络管理员可以迅速定位到做出这些行为的客户端(也就是那台机器的物理地址)。
在实地址方式下,二进制地址是通过段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上段内偏移地址即可得到物理地址。
20位物理地址计算方法如下:
只有在Intel实模式下,逻辑地址才和二进制地址相等(因为实模式没有分段或分页机制,CPU不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。逻辑地址与二进制地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->二进制地址映射正好差这个值。这个值是由操作系统指定的。