Cảnh báo: đây là một câu hỏi phức tạp hơn một chút so với bạn có thể nhận ra, và chắc chắn nhiều hơn hầu hết các câu trả lời đã được miêu tả. Để cố gắng kể ít nhất một chút về câu chuyện, bài đăng này khá dài ...
Trước hết, tình huống với bộ nhớ video. Toàn bộ bộ nhớ của card màn hình không (ít nhất là bình thường) hiển thị trực tiếp trong không gian địa chỉ của CPU. Bạn thường có một "cửa sổ" khoảng 128-256 megabyte bộ nhớ video hiển thị cho CPU. GPU có thể ánh xạ các phần khác nhau của bộ nhớ vào cửa sổ đó, vì vậy bạn thường có thể ghi vào hầu hết bộ nhớ GPU từ CPU, nhưng bạn cần thông báo cho GPU trước những gì bạn sẽ viết trước khi bạn có thể làm như vậy. Ví dụ, khi bạn đang sử dụng DirectX và bạn muốn ghi trực tiếp vào bộ nhớ đồ họa, bạn có thể làm điều đó - nhưng để làm điều đó, bạn bắt đầu bằng cách gọi LockRect
để đưa GPU ánh xạ bộ nhớ phù hợp vào cửa sổ (và như ngay sau khi bạn hoàn thành, bạn gọiUnlockRect
để nó có thể ánh xạ bộ nhớ khác khi cần thiết). Ít nhất trong trường hợp điển hình, bạn có thể điều chỉnh kích thước cửa sổ video trong thiết lập BIOS.
Thứ hai, ngay cả ở chế độ 32 bit, bộ xử lý x86 hỗ trợ cái gọi là Tiện ích mở rộng địa chỉ vật lý (PAE), cho phép CPU xử lý hơn 4 Gig. của bộ nhớ. Microsoft không hỗ trợ PAE trong một số phiên bản Windows - nhưng chỉ có phiên bản Enterprise Server tương đối đắt tiền. Ngoài ra, chương trình phải được viết riêng để sử dụng AWE. Chỉ có một vài chương trình (ví dụ: SQL Server Enterprise Edition) đã từng làm như vậy. Điểm mấu chốt: có thể, nhưng khá hiếm.
Theo như đọc 64 bit tại một thời điểm: bộ xử lý cuối cùng chỉ đọc dữ liệu 32 bit là 486. Bắt đầu với Pentium, tất cả các bộ xử lý đã có bus dữ liệu 64 bit. Lưu ý rằng bus địa chỉ không giống như bus dữ liệu, vì vậy việc mở rộng lên bus dữ liệu 64 bit không cho phép bộ xử lý hoạt động với nhiều bộ nhớ hơn (mặc dù, như đã xảy ra, PAE đã được thêm vào Pentium Pro, vì vậy nó đã gần như đồng thời với việc mở rộng đến một bus dữ liệu 64-bit).
Mặc dù Pentium có thể đọc 64 bit dữ liệu trong một chu kỳ xung nhịp đơn, nhưng bên trong nó (hầu hết) đã xử lý dữ liệu 32 bit mỗi lần. Bus rộng hơn chủ yếu giúp bù cho sự khác biệt về tốc độ giữa CPU và bộ nhớ chính. Các hướng dẫn MMX của Pentium MMX hỗ trợ xử lý dữ liệu trong các đoạn 64 bit, nhưng nó khá vụng về khi sử dụng và (đặc biệt) hầu hết các trình biên dịch không tạo mã MMX, vì vậy bạn phải viết bằng ngôn ngữ lắp ráp để sử dụng nó . Pentium cũng hỗ trợ các hoạt động 64 bit (và 80 bit) cho các số dấu phẩy động, nhưng chỉ được sử dụng cho một nhóm thiểu số khá nhỏ trong hầu hết các chương trình (và nói chung là chậm hơn so với làm việc với các số nguyên).
Thiết kế x86-64 có số lượng thanh ghi mục đích chung gấp đôi so với thiết kế x86 32 bit và mỗi thanh ghi đó rộng 64 bit. Tuy nhiên, khi CPU đang chạy ở chế độ 32 bit, chỉ có thể sử dụng tập hợp con của các thanh ghi tồn tại trên CPU 32 bit.
Quay trở lại điểm nổi trong giây lát, ở chế độ 32 bit, toán học dấu phẩy động được thực hiện bằng cách sử dụng bộ hướng dẫn ban đầu được thiết kế cho bộ đồng xử lý toán học Intel 8087. Điều này sử dụng một mô hình khiến cho việc sử dụng đầy đủ các khả năng của nó khá khó khăn. Intel (và AMD) gần đây đã thêm "Tiện ích mở rộng SIMD" hoặc SSE. Hầu hết các trình biên dịch 64 bit tạo mã có thể / không sử dụng SSE thay vì dấu phẩy động tương thích 8087. "SIMD" trong SSE là viết tắt của "một lệnh, nhiều dữ liệu". Điều này có nghĩa là một lệnh SSE có thể thực hiện hai phép toán dấu phẩy động trên hai phần dữ liệu riêng biệt. Mặc dù điều này không nhất thiết phải tăng gấp đôi tốc độ, nhưng nó thường cải thiện tốc độ ít nhất một chút.
Cuối cùng, tôi có lẽ nên chỉ ra rằng có một phần của sự so sánh nói chung hơi bất công. Khi bạn cài đặt một HĐH mới, nó gần như luôn luôn nhanh hơn một chút so với một HĐH đã được sử dụng trong một thời gian dài. Các chương trình lưu trữ dữ liệu trong sổ đăng ký, trên ổ cứng, v.v. Bạn càng thêm nhiều dữ liệu, càng có nhiều công việc có xu hướng liên quan đến việc tìm kiếm dữ liệu bạn muốn tại bất kỳ thời điểm nào. Mặc dù các công ty bán "chất tẩy rửa đăng ký" và thường xuyên phóng đại hiệu ứng này, nhưng dù sao thì nó cũng đúng. Như vậy, nếu tất cả những gì bạn đã làm là định dạng lại ổ cứng của bạn và cài đặt lại chính xác cùng một HĐH, bạn có thể thấy một số cải thiện về tốc độ - và nếu bạn đã cài đặt HĐH cũ trong một thời gian dài , sự cải thiện đó (tự nó) có thểlà khá đáng kể. Ít nhất là một phần của cải thiện tốc độ mà bạn thấy có thể độc lập với bất kỳ sự khác biệt thực sự nào giữa hai hệ điều hành.
Có nhiều hơn thế, tất nhiên, nhưng bạn bắt đầu có ý tưởng. Đây không phải là vấn đề của một tính năng duy nhất tạo ra sự khác biệt lớn, vì rất nhiều tính năng thường tạo ra sự khác biệt khá nhỏ riêng lẻ, nhưng nhiều trong số chúng cộng lại (hoặc thậm chí nhân lên) để tạo ra sự khác biệt khá lớn về tổng thể.