linux64位内核地址空间,64位Linux的内核和用户地址空间

32位的Linux中,0x00000000-0xBFFFFFFFFF 这3GB是 用户空间0xC00000000-0xFFFFFFFFFF 这1GB是 内核空间++++++++++++++++++++++++++++++++++++++++++x86-64From Wikipedia, the free encyclopedia(Redirected from )Jump to:,"AMD64" ...
摘要由CSDN通过智能技术生成

32位的Linux中,0x00000000-0xBFFFFFFFFF 这3GB是 用户空间

0xC00000000-0xFFFFFFFFFF 这1GB是 内核空间

++++++++++++++++++++++++++++++++++++++++++

x86-64

From Wikipedia, the free encyclopedia

(Redirected from )

Jump to:,

"AMD64" and "Intel 64" redirect here. For the Intel 64-bit architecture called IA-64, see .

x86-64 is an extension of the .

It supports vastly larger virtual and physical address spaces than are

possible on x86, thereby allowing programmers to conveniently work with

much larger data sets. x86-64 also provides general purpose registers and numerous other enhancements. The original specification was created by , and has been implemented by AMD, , , and others. It is fully backwards compatible with Intel 16-bit and 32-bit code.(p13-14)

Because the full x86 16-bit and 32-bit instruction sets remains

implemented in hardware without any intervening emulation, existing x86 executables run with no compatibility or performance penalties,

although existing applications that are recoded to take advantage of

new features of the processor design may see performance increases.

AMD's method of extending Intel's x86 32-bit instruction set to be a

subset of its x86-64 instruction set is the same technique Intel

employed to extend its .

Prior to launch, "x86-64" and "x86_64" were used to refer to the instruction set. Upon release, AMD named it AMD64 Intel initially used the names IA-32e and EM64T before finally settling on Intel 64 for their implementation. x86-64 is still used by many in the industry, while others, notably (now ) and , use x64 while the BSD family of OSs use AMD64.

The core was the first to implement the architecture; this was the first significant addition to the architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified family which was fully software-compatible with AMD's design and specification. introduced x86-64 in their VIA Isaiah architecture, with the .

The x86-64 specification is distinct from the Intel (formerly IA-64) architecture, which is not compatible on the native instruction set level with the x86 architecture.

Contents

AMD64

uid-23062171-id-3331309.html

magnify-clip.png

AMD64 logo

The AMD64 instruction set is implemented in AMD's , , , , , , , , , , and later processors.

History of AMD64

AMD64 was created as an alternative to the radically different architecture, which was designed by Intel and . Originally announced in 1999 with a full specification in August 2000,

the AMD64 architecture was positioned by AMD from the beginning as an

evolutionary way to add 64-bit computing capabilities to the existing

x86 architecture, as opposed to Intel's approach of creating an entirely

new 64-bit architecture with IA-64.

The first AMD64-based processor, the , was released in April 2003.

Architectural features

The primary defining characteristic of AMD64 is the availability of 64-bit general-purpose , e.g. rax, rbx etc., 64-bit arithmetic and logical operations, and 64-bit . The designers took the opportunity to make other improvements as well. The most significant changes include:

64-bit integer capability: All general-purpose registers (GPRs) are expanded from 32

to 64 bits, and all arithmetic and logical operations,

memory-to-register and register-to-memory operations, etc., can now

operate directly on 64-bit integers. on the are always in 8-byte strides, and are 8 bytes wide.

Additional registers: In addition to increasing the size of

the general-purpose registers, the number of named general-purpose

registers is increased from eight (i.e. eax, ebx, ecx, edx, ebp, esp,

esi, edi) in x86 to 16 (i.e. rax, rbx, rcx, rdx, rbp, rsp, rsi, rdi, r8,

r9, r10, r11, r12, r13, r14, r15). It is therefore possible to keep

more local variables in registers rather than on the stack, and to let

registers hold frequently accessed constants; arguments for small and

fast subroutines may also be passed in registers to a greater extent.

However, AMD64 still has fewer registers than many common ISAs (which typically have 32–64 registers) or -like machines such as the (which has 128 registers); note, however, that because of the number of physical registers is often much larger than the number of registers exposed by the instruction set.

Additional XMM (SSE) registers: Similarly, the number of 128-bit XMM registers (used for instructions) is also increased from 8 to 16.

Larger virtual address space: The AMD64 architecture defines a

64-bit virtual address format, of which the low-order 48 bits are used

in current implementations.(p120) This allows up to 256  (248 )

of virtual address space. The architecture definition allows this limit

to be raised in future implementations to the full 64 bits,(p2)(p3)(p13)(p117)(p120) extending the virtual address space to 16  (264 bytes). This is compared to just 4  (232 bytes) for the x86. This means that very large files can be operated on by

the entire file into the process' address space (which is often much

faster than working with file read/write calls), rather than having to

map regions of the file into and out of the address space.

Larger physical address space: The original implementation of the AMD64 architecture implemented 40-bit physical addresses and so could address up to 1 TB (240 bytes) of RAM.(p24) Current implementations of the AMD64 architecture (starting from ) extend this to 48-bit physical addresses and therefore can address up to 256 TB of RAM. The architecture permits extending this to 52 bits in the future(p24) (limited by the page table entry format);(p131) this would allow addressing of up to 4  of RAM. For comparison, 32-bit x86 processors are limited to 64 GB of RAM in (PAE) mode, or 4 GB of RAM without PAE mode.(p4)

Larger physical address space in legacy mode: When operating in the AMD64 architecture supports

(PAE) mode, as do most current x86 processors, but AMD64 extends PAE

from 36 bits to an architectural limit of 52 bits of physical address.

Any implementation therefore allows the same physical address limit as

under long mode.(p24)

Instruction pointer relative data access: Instructions can now reference data relative to the instruction pointer (RIP register). This makes , as is often used in shared libraries and code loaded at run time, more efficient.

SSE instructions: The original AMD64 architecture adopted Intel's and as core instructions. instructions were added in April 2005. SSE2 is an alternative to the instruction set's

with the choice of either IEEE 32-bit or 64-bit floating-point

mathematics. This provides floating-point operations compatible with

many other modern CPUs. The SSE and SSE2 instructions have also been

extended to operate on the eight new XMM registers. SSE and SSE2 are

available in 32-bit mode in modern x86 processors; however, if they're

used in 32-bit programs, those programs will only work on systems with

processors that have the feature. This is not an issue in 64-bit

programs, as all AMD64 processors have SSE and SSE2, so using S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值