64-bit: không chỉ là RAM

Lời mở đầu Nếu bạn có tham gia làm thành viên của một forum tin học nào đó, hẳn bạn đã biết về một số phiên bản mới nhất của Microsoft. Còn nếu bạn chưa biết, thì hãy mau mau ra khỏi cái hang của bạn và bắt đầu cập nhật đi thôi!

Một trong số những thay đổi lớn nhất gần đây đó là sự chuyển biến từ từ sang hệ điều hành phiên bản 64 bit. Cuộc cách mạng này được nhắc đến khá nhiều trên các forum, thường là dưới dạng:

Thành viên 1: "Chào mọi người, tôi đang tính chuyện mua một bộ máy tính mới, và tôi không biết nên sử dụng bản Vista 64-bit hay 32-bit? Tôi nghe nhiều lời đồn đại liên quan đến tính tương thích của nó. Mong mọi người giúp đỡ.”

Thành viên 2: "Xin chào! Tôi vừa mới đọc bài viết của bạn. Tất nhiên là bạn nên sử dụng bản 32 bit, bởi bản 64bit gặp rất nhiều vấn đề về tính tương thích (Cứ trông  XP-64 thì rõ). Hơn nữa, sự khác nhau duy nhất giữa chúng là bản 64-bit có thể sử dụng triệt để thanh RAM 4GB.

Thành viên 1: "Ồ vậy ah! Cám ơn!"

Câu hòi dặt ra là: đoạn đối thoại trên có gì không ổn? Câu trả lời là: rất nhiều. Lúc nào cũng có những quân sư rởm đời luôn khẳng định rằng sự khác biệt cơ bản giữa 32-bit và 64-bit nằm ở giới hạn bộ nhớ. Nhưng sự thực có phải như vậy không? Chắc chắn là có – nhưng câu trả lời này thiếu đến 99% sự khác biệt thực sự. Nếu theo logic đó, thì điều giúp bạn phân biệt giữa bộ máy chơi game Nintendo 8 bit với bộ Xbox 360 là ở tốc độ xử lý. Nhiều người cũng có chung suy nghĩ này, nhưng điều đó là hoàn toàn sai.

Vậy thì, nếu như bộ nhớ chỉ là một trong vô số những thay đổi từ 32 bit lên 64 bit, thì nó đóng vai trò gì? Như thế nào? Điều quan trọng hơn là, tại sao chúng ta lại phải quan tâm đến nó? Trong bài báo này, chúng ta sẽ trả lời lần lượt từng câu hỏi; nhưng trước tiên, hãy củng cố lại một số khái niệm rồi mới chuyển sang chủ đề bộ nhớ. 

Rốt cuộc thì hệ thống máy tính 64 bit là gì? Đầu tiên, hãy giải thích khái niệm này một cách đơn giản, bởi tiếp theo đây sẽ là một loạt định nghĩa phức tạp hơn rất nhiều. Còn bây giờ, nếu như bạn chưa biết thì tôi xin nhắc lại, 64 bit liên quan tới cách máy tính của bạn xử lý dữ liệu, được gọi là những “từ” - Word.

Những Word (bao gồm một phần dữ liệu hoặc câu lệnh dùng để thao tác dữ liệu, hoặc là cả hai) là chìa khoá dẫn tới mọi tính toán của máy tính. Như vậy, kích thước của một từ mà hệ thống máy tính chấp nhận có thể ảnh hưởng rất lớn đến tốc độ xử lý dữ liệu và độ chính xác của dữ liệu đó - từ càng dài, thì thông tin chuyển qua bộ xử lý trong mỗi xung nhịp đồng hồ, hay số lượng câu lệnh áp dụng trên dữ liệu đó càng lớn.

Khái niệm “Word” là một khái niệm rất dễ gây nhầm lẫn, và chúng ta sẽ đi sâu hơn vào vấn đề này ở phần sau, nhưng hiện tại, điều quan trọng cần biết là: theo lý thuyết, máy tính 64 bit có thể xử lý được gấp đôi lượng dữ liệu trong mỗi xung nhịp. Tuy nhiên, điều này khác với việc tốc độ tăng lên gấp đôi!
 

\"\"

Mặc dù hệ thống 64 bit có vẻ như là một phát minh khá mới mẻ, nhưng thực ra nó đã có mặt từ lâu trước khi máy tính để bàn xuất hiện. Hệ thống 64 bit đầu tiên chính là máy tính 7030 Stretch của IBM, ra đời năm 1961. Kể từ đó, hệ thống 64 bit đã trải qua một quá trình phát triển im lìm, nhưng đầy hiệu quả trong các máy chủ cao cấp cũng như các siêu máy tính. 

Và hệ thống 64 bit đã phải mất rất nhiều năm mới có thể len lỏi được đến tầng lớp máy chủ thông thường. Năm 1994, Intel lần đầu tiên thông báo kế hoạch chuyển sang máy chủ 64 bit khi hợp tác với HP. Chưa đầy một năm sau đó, Sun phát hành loại hệ thống máy tính SPARC 64 bit đầu tiên dành cho máy tính trạm trong môi trường xí nhiệp . Có vẻ như cuối cùng thì một số thứ cũng đã chuyển sang 64 bit. 

Sáu năm sau đó, Intel lần đầu tiên cung cấp dòng sản phẩm có tên Itanium vào năm 2001, kết quả của sự hợp tác giữa họ với HP từ năm 1994. Tuy vậy, sản phẩm này vẫn nhằm vào dòng máy chủ mà bỏ quên người dùng máy tính để bàn. Cuối cùng, năm 2003, hệ thống 64 bit cũng đã tấn công thị trường máy tính để bàn với sự ra mắt của chip Opterons và Athlon 64 do AMD sản xuất. Mặc dù những loại chip này không thực sự dựa trên cấu trúc 64 bit (bởi chúng phải giữ nguyên tính tương thích với các loại phần mềm và máy tính hiện thời), nhưng chúng cũng đã sử dụng một nhóm các câu lệnh 64-bit mở rộng có tên gọi x86-64.

Vấn đè ở đây là, dù hệ thống đó có là 64-bit nguyên bản, hay chỉ là x86-64, thì chúng cũng không thể hoạt động được nếu thiếu một hệ điều hành có khả năng sử dụng chúng. Ngoài ra, cũng chẳng có sản phẩm nào mà người dùng bình thường có khả năng sử dụng lại hỗ trợ 64 bit. Chỉ đến khi Microsoft thực hiện một số nỗ lực nửa vời nhằm cải biến lại Windows XP vào năm 2005, mọi việc mới thay đổi. Trái ngược với quan niệm thông thường, Hệ điều hành X không hỗ trợ cấu trúc 64 bit nguyên bản, bởi bộ xử lý PowerPC dùng cho máy tính Mac và bao gồm G5 thực ra không phải là bộ xử lý 64 bit, mặc dù G5 có thể sử dụng câu lệnh 64 bit. Nhưng trước hết, hãy cùng hãy cùng xem lại mọt số khái niệm cơ bản về 64 bit.  

Từ - Word

Trước khi tìm hiểu cái mà các lập trình viên thường gọi là khác biệt “cao cấp” (việc lập trình phần mềm), chúng ta cần phải hiểu một số khác biệt “cấp thấp”. Nào, hãy cùng trở lại với khái niệm “từ - Word”.

Như đã giải thích ở trên, một Word là một nhóm thông tin được xử lý cùng nhau. Đó có thể là dữ liệu chương trình, hoặc là một câu lệnh giúp thay đổi dữ liệu đó. Đôi khi, những câu lệnh hoặc dữ liệu có kích thước quá lớn và phải cần nhiều Word khác nhau để thể hiện .

Vậy thì nếu như một số câu lệnh quá nhỏ, còn một số khác lại quá lớn, thì điều gì quyết định kích thước của từ? Câu trả lời là: một phần dựa trên lịch sử, còn một phần khác dựa trên một nhân tố hết sức quan trọng là thanh ghi bộ xử lý ( Processor Register ) .   

Thanh ghi là nhóm dữ liệu lớn nhất mà CPU có thể xử lý cùng 1 lúc, và cần có flag để biểu thị nội dung của nó (chiếm một phần thanh ghi). Do đó, kích thước của Word cũng tương đương với độ lớn thanh ghi. Và theo cách này, CPU luôn có khả năng thao tác tất cả các câu lệnh nhận được.   

\"\"
 

Nếu theo giải thích ở trên, thì lịch sử có vai trò gì? Thực ra, về mặt lịch sử, cấu trúc x86 được hoàn thành bằng Word có độ dài 16-bit dành cho 8086. Tức là mỗi câu lệnh, mỗi nhóm dữ liệu, và mỗi địa chỉ bộ nhớ đều phải dài chính xác 16 bit.

Khác với máy tính ngày nay, những bộ xử lý sơ khai thường không cho phép dữ liệu được dàn trải ra quá một Word ,  làm giới hạn chức năng, trong khi tốc độ đồng hồ vốn đã rất chậm chạp. Còn nếu như dữ liệu có kích thước lớn hơn 16 bit, nó sẽ bị cắt bớt, và việc này sẽ khiến máy bị treo.

Mặc dù tốc độ xử lý đã tăng theo cấp số mũ và độ phức tạp của Word cũng ngày càng tăng, nhưng những bộ xử lý phù hợp với cấu trúc x86 vẫn cần có Word với độ dài 16 bit. Vì thế, để giải quyết nhu cầu ngày càng tăng về không gian dữ liệu, các kỹ sư nhanh nhạy của chúng ta đã phát triển khái niệm “cắt khúc” đường truyền, gửi nhiều Word 16 bit cùng một lúc.

Chính từ thuật ngữ này mà giờ đây chúng ta mới có khái niệm 32 bit và 64 bit. Một bộ xử lý 32 bit chuyên thao tác với các từ đôi ( DWORD ) , gồm hai Word 16 bit được thao tác cùng một lúc. Và các máy tính x86-64 thì xử lý 4 Word ( QWORD ) 16 bit cùng lúc.

Vậy thì tại sao lại phải duy trì quy tắc cổ điển này trong khi không có bộ xử lý nào ngày nay lại dùng từ 16 bit? Nguyên nhân rất đơn giản – đó là tính tương thích những gì đã có trước kia. Mục đích chủ yếu của cấu trúc x86 là nhằm tạo ra một tiêu chuẩn hoạt động. Một bộ xử lý 64 bit thực sự (như Itanium hay SPARC) không biết làm như thế nào với Word 16-bit cũng như bộ vi xử lí 16-bit không biết làm thế nào với Word 64-bit . Đơn giản là hai cấu trúc này hoàn toàn không tương thích. 

Bộ nhớ 

Sau khi tìm hiểu về thanh ghi CPU, chúng ta có thể chuyển sang một nhân tố của cấu trúc "64-bit" mà mọi người đều nói tới: chính là bộ nhớ. Một trong số những loại thanh ghi CPU quan trọng nhất là địa chỉ bộ nhớ - một Single-Word (tức là nó không thể bị cắt ngắn được nữa) giúp đưa nhóm dữ liệu cuối cùng ra khỏi CPU.

Nghe có vẻ phức tạp quá phải không? thực ra là không – hãy cứ nghĩ về nó như thể việc bạn có thể đi tới nhà bạn bè bằng tàu hoả, tàu điện ngầm… bất cứ loại phương tiện giao thông công cộng nào bạn thích. Bạn có thể đến ga tàu bằng đường bộ. Nhưng tàu điện hiếm khi đưa bạn đến chính xác điểm bạn muốn – đôi khi bạn phải chuyển ga. Làm sao bạn biết được cần xuống ga nào? Vào thời điểm nào? Khi xuống ga thì phải đến đâu? 

Đây chính là những điều được địa chỉ bộ nhớ giải quyết – nó dẫn đường cho dữ liệu khi ra khỏi CPU cho đến khi bạn cần sử dụng nó lại một lần nữa . Dữ liệu di chuyển qua Bus tới CPU, được thao tác, chuyển đổi… Nhưng hiếm khi một chuyến đi qua CPU là đủ - vì vậy dữ liệu cần phải được chuyển tới RAM để dùng vào việc sau này.

Tất nhiên, cách giải thích này đã được đơn giản hoá hết mức có thể, nhưng nó cũng cho ta một số hiểu biết cơ bản về địa chỉ bộ nhớ. Word có kích thước càng lớn thì khả năng kết hợp càng lớn hoặc những địa chỉ cũng càng lớn.

Đây chính là hạn chế mà nhiều người nghĩ tới khi tự hỏi tại sao cả 4 GB của RAM không được dùng hết . Một hệ điều hành 32 bit chỉ có thể nhận địa chỉ chính xác 4 G, và cả 4 G này đều phải được chia sẻ bao gồm nhân, và những xử lí chứa địa chỉ bộ nhớ ảo. Chính vì nguyên nhân này mà người dùng Windows XP không thể nhìn thấy toàn bộ 4GB bộ nhớ - phần lớn chỉ khoảng 3.2GB nếu dùng Service Pack 2.

Câu lệnh 

Vậy là chúng ta đã xong chủ đề địa chỉ bộ nhớ. Tất cả đã được giải quyết rồi chăng? Không nhanh như vậy đâu. 

Rõ ràng bộ nhớ là phần dễ nhận thấy nhất của cấu trúc 64 bit, và có lẽ đó cũng chính là lý do tại sao nhiều người cho rằng đây là điểm khác biệt duy nhất. Tuy nhiên, khả năng sử dụng nhóm 4-Word (QWORD )  thay vì nhóm 2-Word (DWORD ) không chỉ giúp tăng kích thước địa chỉ, mà còn giúp tạo ra những câu lệnh dài hơn và nhóm dữ liệu lớn hơn.

Những câu lệnh trong máy tính để bàn 64 bit thường nằm trong nhóm x86-64, như AMD64 và EM64T (phiên bản của Intel). Cần chú ý rằng thực ra toàn bộ những câu lệnh trong EM64T đều được Intel copy lại từ AMD64, vì thế hai tập lệnh này gần như giống hệt nhau. Nhưng còn tập lệnh IA-64 nằm trong bản Itanium của Intel lại hoàn toàn khác biệt. Hiện tại đây là tập lệnh 64 bit thực sự duy nhất được sử dụng rộng rãi, còn AMD thì vẫn chưa có bộ xử lý 64 bit thực sự nào.

Mặc dù AMD bắt đầu sử dụng câu lệnh x86-64 từ năm 2003, nhưng phải đến giữa năm 2004, Intel mới ra mắt bộ chip tương thích x86-64 đầu tiên trong dòng Prescott. Sau khi phát hành vi cấu trúc Core, Intel đã đổi tên phiên bản này thành Intel 64, được hỗ trợ trên tất cả các chip Core.

AMD64/Intel 64 thực sự đem lại nguồn sinh khí mới cho thế giới x86. Đối với những người mới bắt đầu, x86-64 có bước tiến dài cho những nhà lập trình bằng những lệnh “liên quan tới những con trỏ - Pointer “ . Nói một cách đơn giản, con trỏ là chỉ tới mã lệnh (trong trường hợp này là mã chương trình dịch , hoặc hợp ngữ - Assembly), mà nói cho chương trình biết bước tiếp theo hoặc tìm đoạn dữ liệu tiếp theo ở đâu . Trước đây, các con trỏ này cần phải chính xác tuyệt đối, tức là bạn cần phải biết địa chỉ bộ nhớ hoặc thanh ghi cụ thể mà bạn muốn truy cập.   

Cách lập trình như vậy rất thiếu hiệu quả và đòi hỏi bạn phải biết chính xác địa chỉ và thanh ghi nào đang trống trong thời điểm đó. Còn nếu vì một lý do nào đó mà tất cả các địa chỉ và thanh ghi đều không còn chỗ trống, chương trình có thể bị treo do lỗi bảo vệ chung. Điều này cũng đồng nghĩa với việc những đoạn chương trình kích có kích thước nhỏ sẽ  các thanh ghi và địa chỉ bộ nhớ trống mằn rải rác thay vì được tổ chức một cách thông minh. 

\"\"

Cấu trúc AMD64 là loại 64 bit đầu tiên.

Bằng cách sử dụng những con trỏ liên quan, mỗi chương trình đều có thể chạy trong “không gian ảo” thay vì trong một vị trí cụ thể trên CPU và bộ nhớ. Điều này giúp cho việc tải và giải phóng bộ nhớ trở nên hiệu quả và hợp lý hơn, giúp tăng tốc bộ nhớ và quá trình xử lý dữ liệu hạng nặng so với cấu trúc 32-bit.

Một trong số những tính năng gây tranh cãi nhất của tập lệnh x86-64 là sự xuất hiện của một câu lệnh mang tên NX Bit (viết tắt của “No eXecute”), có nhiệm vụ bảo vệ nhân. NX có khả năng đánh dấu nhiều thanh ghi và địa chỉ bộ nhớ, giúp hệ điều hành có thể ngăn chặn việc xử lý mã mà không gặp lỗi – hãy xem nó như một khoá “bảo vệ ghi” cho những thanh ghi và bộ nhớ.

NX bit được bổ sung nhằm hạn chế một trong số những nhược điểm của cấu trúc x86 vốn đã tồn tại từ thời 286 - tràn bộ nhớ đệm. Tất nhiên nó còn có nhiều công dụng khác nữa, bao gồm khả năng sử dụng ở DRM cấp độ phần cứng.   

Nói chung, hệ thống 64 bit vẫn có nhiều ưu điểm nổi trội so với 32 bit. Cả bộ xử lý của Intel lẫn AMD đều có khả năng tăng gấp đôi một số câu lệnh 32 bit hay chạy hai lệnh cùng một lúc trong mỗi xung nhịp. Mặc dù hệ thống 64 bit không hẳn là vượt trội đối với một số câu lệnh hay dữ liệu, nhưng nó vẫn làm tăng tốc độ tổng thể.   

Khả năng truyền tải

Đối với tất cả các loại câu lệnh, việc tăng tối đa kích thước dữ liệu và địa chỉ bộ nhớ cũng chẳng có ý nghĩa gì nếu như hệ thống không có khả năng truyền tải lượng thông tin có kích thước hệt như vậy. Đặc biệt, dữ liệu phải được chuyển qua giữa NorthBridge, RAM và CPU với ít nhất là cùng kích thước như vậy để giúp những chức năng mở rộng 64 bit hoạt động tốt.   

May mắn thay, độ rộng bus có vẻ như đã đi trước thời đại một bước. Tất cả các Chipset NorthBridge do Intel sản xuất kể từ G915 đều hỗ trợ bus 64-bit, cũng như phần lớn chipset A64 của Nvidia kể từ nForce3.

Với Intel, băng thông bộ nhớ thực sự là vấn đề bởi nó thiếu mạch điều khiển bộ nhớ tích hợp trong CPU ( với cấu trúc lõi Nehalem của Intel sẽ giải quyết vấn đề này , nhưng chúng ta phải chờ tới cuối năm 2008 ) , khiến hệ thống chạy chậm hẳn đi do dữ liệu và câu lệnh phải chuyển qua NorthBridge trước khi được lưu vào bộ nhớ. 

Tuy nhiên, HyperTransport của AMD đã khắc phục được điểm yếu của mình - để tương thích với kiểu xử lý 32-bit, HyperTransport gửi hai Word có kích thước 32-bit cùng một lúc. Và để liên kết hai Word này lại với nhau, mỗi Word sẽ dành ra vài bit để làm từ định danh chung. Trước khi hệ thống hoàn thành việc đánh dấu mỗi Word vào địa chỉ bộ nhớ, quyết định địa chỉ đó có phải là không gian NX hay không, và bổ sung bit liên kết, thì bus 64 bit chỉ có thể sử dụng địa chỉ bộ nhớ 40 bit. 

Trong thực tế, tình trạng sụt giảm địa chỉ bộ nhớ từ 64 bit xuống còn 40 bit có tác động rất lớn, nhưng chắc chắn còn vượt quá những gì mà người dùng bình thường có khả năng gặp phải. Việc giảm từ 16 exabyte xuống còn xấp xỉ 1TB (240 )  - vẫn lớn hơn rất nhiều so với dung lượng RAM mà một máy tính để bàn hiện đại có thể đạt tới trong tương lai gần, và rất có thể sẽ vượt quá thời điểm hiện tại, ngay cả khi mọi người bắt đầu chuyển sang cấu trúc 128 bit. 

Chương trình

Tất nhiên, song hành cùng mỗi bước tiến trong hệ thống 64 bit là một nhược điểm. Có lẽ nhược điểm lớn nhất trong số đó là: để hưởng thụ một lợi ích nào đó, thì phần mềm của bạn sẽ phải làm việc gì đó. 

Như đã đề cập từ trước, cấu trúc 64 bit không thể tương thích với 32 bit và ngược lại. Do đó, bạn không thể chạy một hệ điều hành 32 bit và mong chờ được sử dụng những tính năng xử lý 64 bit - kể cả đối với những tính năng có vẻ như nằm trong bất kỳ phương thức lập trình nào (như con trỏ tương đối chẳng hạn). Đối với phần mềm cũng vậy - nếu được lập trình trong cấu trúc 32 bit, nó sẽ chạy theo kiểu 32 bit từ đầu đến cuối.

Vì thế, nếu muốn nâng cấp lên hệ thống 64 bit thì nơi đầu tiên bạn nên để ý chính là hệ điều hành. Bởi về cơ bản, hệ điều hành không chỉ là một lớp vỏ óng ánh lung linh bao bọc quanh các chương trình trên máy tính của bạn - mục đích của nó là giúp phần mềm tương tác với phần cứng. Vì thế nếu hệ điều hành của bạn không phải là 64 bit, bạn không thể mong nó sử dụng được những lệnh mở rộng mở rộng x86-64, hay thậm chí chạy phần mềm ứng dụng 64 bit.

\"\"

Ngày nay, tất cả các hệ điều hành chủ yếu đều có bản 64 bit. Windows Vista có khá nhiều tính năng 64 bit so với Windows XP x64, nó có một giá trị nào đó nhưng cả hai vẫn chỉ là sản phẩm lai ghép. Bạn cũng có thể thêm Mac OS-X (Tiger và Leopard) vào danh sách này. Mỗi hệ điều hành đều cung cấp cả đường xử lý 32 bit lẫn 64 bit, cho phép cả hai loại câu lệnh thực hiện đồng thời với nhau, và vì thế không đòi hỏi tất cả các chương trình đều phải có bản 64 bit.   

Vì những hệ điều hành lai ghép này có thể chạy các chương trình 64 bit, nên chúng cũng sử dụng địa chỉ bộ nhớ 64 bit. Để các chương trình 32 bit có thể truy cập địa chỉ bộ nhớ cao hơn cùng với một số bit nhất định trong các câu lệnh 64-bit (phần lớn là những bit được thiết kế để đơn giản hoá lệnh 32 bit đặc trưng), các chương trình đều được chạy trong không gian bảo vệ , tương tự như không gian mô phỏng. Điều này cho phép hệ điều hành có được “điều tuyệt vời nhất của cả 2 thế giới” với mã 32 bit mà không phải hy sinh bất kỳ tính năng mã 64 bit nào. 

Trong khi đó, người dùng Linux/Unix/BSD lại được tiếp cận với một lựa chọn hoàn toàn mới. Cộng đồng ‘nix đã phát triển những nhân chuyên để chạy 64 bit, và nhiều nhà lập trình trong thế giới OSS đã tạo nên những chương trình tương thích phù hợp. Điều này khiến cho Linux trở thành sự lựa chọn tự nhiên cho những người muốn biết chính xác cấu trúc 64 bit có điểm gì nổi bật. Và họ đã thấy sự tiến bộ trong cả tốc độ, tính an toàn, khả năng dịch lệnh, và vô số những lợi ích khác nữa. 

Về mặt ứng dụng, cả người dùng của Mac lẫn Windows đều có ít lựa chọn hơn, nhưng cũng không phải là không có. Phiên bản Adobe mới nhất cùng với một số phần mềm mới đã có đầy đủ tập lệnh 64 bit. Thậm chí bạn có thể bắt gặp “tiến bộ 64 bit” trong những game như Far Cry Source với sự cải tiến rõ rệt về tốc độ đối với hệ thống 64 bit. 

Hạn chế trước mắt

\"\"

Tất nhiên, việc không đạt được bước tiến mới cũng tương đương với một bước lùi, và tính toán 64-bit cũng không phải là ngoại lệ. Nếu có điều gì cản trở sự phát triển của cấu trúc 64 bit thì đó chính là sự hỗ trợ của những nhà sản xuất dưới dạng Driver (hay module, đối với cộng đồng 'nix). Một cuộc dạo chơi quanh một số website tên tuổi như Linksys và Creative sẽ khiến bạn không khỏi cảm thấy xót xa về viễn cảnh tương lai của thế giới và tự hỏi bao nhiêu tâm huyết đã đi đâu cả rồi.

Tuy vậy, phần lớn vấn đề đối với Driver đều nằm ở tính thích ứng chậm chạp của thị trường. Việc cài đặt một hệ điều hành 64 bit đòi hỏi bạn phải mã hoá và cài đặt lại toàn bộ, một điều mà nhiều người rất ngại làm. Bên cạnh đó, phần lớn các công ty đều đang sử dụng những chiếc máy tính đã hàng năm tuổi, và phần lớn trong số đó không có khả năng hỗ trợ 64 bit do hạn chế về phần cứng.

Chính vì thế, các nhà sản xuất phần cứng tên tuổi đều không vội vàng trong việc phát triển Driver phù hợp với hệ điều hành 64 bit. Tuy nhiên, nhiều công ty trong số đó lại chỉ là đối tác cung cấp bo mạch, đặc biệt là trong hệ thống mạng lưới. Ví dụ, phần lớn card Linksys đang được sử dụng đều dùng chip Broadcomm và Railink, loại chip đã có driver 64 bit được một thời gian. Hãy gõ vài từ khoá tìm kiếm đơn giản trong một số forum, bạn sẽ tìm được một số driver phù hợp với loại phần cứng bạn đang dùng.  

Cộng đồng Linux đã sử dụng phương thức này từ lâu, vì thế phần lớn các công nghệ quen thuộc ngày nay đều đã tìm ra Driver phù hợp trong trường hợp (dù vì lý do nào đi chăng nữa), một thành phần nào đó không hoạt động được. Tuy vậy, cần chú ý rằng người viết bài báo này đã cài đặt Vista 64 với 5 thiết lập khác nhau, trên 5 loại phần cứng hoàn toàn khác nhau, nhưng vẫn chưa gặp bộ phận nào không hoạt động mà lại dễ dàng giải quyết cả.   

Lợi ích lâu dài

Ngoài hỗ trợ Driver, tính toán 64-bit còn là một bước tiến lớn trên hầu hết các mặt. Tuy nhiên, bạn không thể mong chờ tất cả những thứ đó tự đến với mình – mà bạn phải trả một chút phí tổn về mặt phần cứng. 

Đầu tiên, đối với các máy tính 64 bit, tăng bộ nhớ không chỉ giúp trang hoàng cho hệ thống, mà nó còn đem lại tiện ích đáng kể. Mỗi mã lệnh, địa chỉ bộ nhớ… sẽ chiếm nhiều dung lượng RAM và cache hơn do con trỏ và không gian bảo vệ có chiều dài lớn hơn. Nếu một hệ điều hành 32 bit có khả năng xử lý chương trình 100 MB, thì một hệ điều hành 64 bit có thể chạy một chương trình y hệt có kích thước 105-110MB. Có thể bạn thấy mức tăng này cũng không đáng kể cho lắm, nhưng đây thực sự là một điểm đáng chú ý. 

Tương tự như vậy, việc thiếu các ứng dụng thương mại dành cho hệ điều hành và máy tính 64 bit khiến cho các phần mềm chưa tận dụng triệt để ưu thế của công nghệ này. Tuy nhiên, khi máy tính 32 bit dần trở nên lỗi thời, nhiều nhà phát triển phần mềm sẽ bắt đầu để mắt đến cấu trúc này.

 

\"\"