X86_64 là gì

Đây là thông số rất quen thuộc. Trong phần lớn các gói phần mềm bạn tải về sẽ thường có ký hiệu x86 hoặc x64. Một số bản phân phối windows cũng được đánh dấu x86 hoặc x64. Vậy thì ý nghĩa của các ký hiệu này là gì ?

x86 và x64

x86 là tên một tập lệnh chỉ dẫn của CPU. Tập lệnh này được sử dụng lần đầu cho các dòng CPU 8086, các CPU kế nhiệm 8086 cũng vẫn giữ đuôi 86. Đây là lý do lịch sử khiến tập lệnh này có tên là x86. Tập lệnh này áp dụng cho các CPU 32 bits. Đối thủ của x86 là ARMv7. x64 cũng là phiên bản 64 bits của tập lệnh x86 kể trên. Tập lệnh này còn có nhiều tên gọi khác nhau như x86_64 trong apple , amd64 trong các hệ thống nhân linux, ia-32e hay EMT64 trong intel. Đối thủ của x64 là ARMv8.

Vậy một câu hỏi đào sâu nữa lại xuất hiện 32 bits và 64 bits là gì ?

Thực tế, 32 bits hay 64 bits có thể được dùng để áp dụng cho CPU hoặc phần mềm.

CPU 32 bits và CPU 64 bits

CPU 32 bits hay 64 bits nghĩa là CPU đó được thiết kế với độ dài thanh ghi là 32 bits hay 64 bits. Để hiểu rõ hơn, chúng ta sẽ xem xét sơ lược kiến trúc CPU.

Kiến trúc CPU

Dưới đây là một kiến trúc CPU đã được giản lược:

Trên hình vẽ, chúng ta sẽ thấy processor chính là CPU có ba khối cơ bản chính: Control unit sẽ phát ra các tín hiệu read hoặc write đến memory nhằm thông báo cho memory biết CPU muốn lấy data hay ghi data. ALU là khối tính toán cơ bản. ALU sẽ thực hiện các phép tính số học, logic... Register dùng để lưu trữ data phép toán phục vụ cho ALU. Register có nhiều loại, có loại để lưu data, có loại để lưu địa chỉ, có loại dùng để lưu cả data và địa chỉ. Chính vì vậy, trên hình vẽ, bạn thấy từ register có đường address bus và data bus chạy đến memory. Con đường này có thể hai chiều với data bus [Khi đọc thì data từ memory chuyển vào register của CPU. Khi ghi thì data từ register sẽ chuyển vào memory] hoặc một chiều với address bus. CPU sẽ ra lệnh cho memory gửi data có địa chỉ mà CPU đó muốn qua address bus hoặc thông báo cho memory chuẩn bị sẵn một ô nhớ có địa chỉ xác định mà CPU chỉ định để ghi data vào đó. Register là một thanh nhớ nằm trong CPU, có tốc độ xử lý nhanh gần hoặc bằng CPU. Chính vì không có đồng bộ về tốc độ giữa các thành phần lưu trữ register với memory với disk nên sẽ có một số khoảng thời gian chết khi mà memory bận không đáp ứng kịp đòi hỏi của CPU. Đây là một sự lãng phí. Hạn chế về công nghệ không cho phép các thiết bị lưu trữ ngoài CPU đạt được tốc độ nhanh bằng CPU nên các kỹ sư đã phải khắc phục bằng cách bổ sung cho CPU các bộ nhớ cache. Bộ nhớ cache sẽ lưu các data thường được sử dụng, CPU sẽ thay vì phải đợi memory cung cấp sẽ tận dụng data trong cache trước.

Ý nghĩa của CPU với hoạt động máy tính

Đây là thành phần cực kỳ quan trọng. Bản chất mọi thao tác trên máy tính đều là một chuỗi tính toán được thực hiện bởi CPU. Bất cứ khi nào bạn hiển thị một hình ảnh, máy tính đều cần thực hiện vô vàn các tính toán để xác định tọa độ các điểm ảnh, vị trí kích thước ảnh, sắc độ ảnh. Bất cứ khi nào bạn gõ một phím, phím đó cũng được chuyển dịch chuỗi nhị phân phức tạp để tính toán hiển thị ra chữ cái. Có thể thấy mọi hoạt động của máy tính đều cần năng lực tính toán của CPU.

Phần mềm 32 bits và 64 bits

Phần mềm 32 bits hay 64 bits là phần mềm sử dụng tập lệnh chỉ dẫn x86 hay x64 lên CPU. Hệ điều hành cũng là một phần mềm. Bạn có thể thấy các phiên bản Ubuntu 32 bits hoặc 64 bits được release. Tất nhiên CPU phải có kiến trúc 64 bits thì bạn mới cài được hệ điều hành x64. Các application khi cài đặt lên hệ điều hành cũng phải có kiến trúc tương ứng. Một application 32 bits vẫn có thể chạy trong hệ điều hành 64 bits nhưng application 64 bits thì không thể chạy trong một hệ điều hành 32 bits. [Tôi sẽ giải thích lý do trong đoạn viết về bất lợi khi gia tăng độ dài thanh ghi từ 32 bits lên 64 bits]

Để xem kiến trúc CPU cũng như hệ điều hành trong Ubuntu bạn dùng:

lscpu

Architecture:          i686 -> Hệ điều hành 32 bits

CPU op-mode[s]:        32-bit, 64-bit -> CPU hỗ trợ cả 32 bits và 64 bits, suy ra CPU có độ dài register phải là 64 bits.

Gia tăng độ dài register từ 32 bits lên 64 bits sẽ có được một số lợi ích như sau

  • Độ dài register lớn hơn cho phép lưu được nhiều data hơn nên thực hiện các phép toán số lớn nhanh hơn. Ví dụ một thanh ghi có độ dài 1, thì chỉ lưu được 1 số nên với phép toán 12 + 34 nó sẽ phải thực hiện hai phép toán 1+2 và 3+4 sau đó ghép kết quả, nhưng với thanh ghi có độ dài 2 thì nó sẽ chỉ cần một phép toán trực tiếp là xong. Số phép toán sẽ giảm đi nên tăng tốc độ thực hiện thuật toán lên.
  • Như đã nói, register cũng dùng để lưu địa chỉ memory. Với register 32 bits thì CPU sẽ chỉ truy xuất được dải gồm 2^32 địa chỉ, tương đương khoảng 4GB. Vô hình chung, một máy tính có CPU 32 bits đã hạn chế lượng memory mà máy tính này có thể sử dụng. Nhưng với register 64 bits thì CPU sẽ không còn hạn chế này vì 2^64 là một con số cực kỳ lớn.
  • Đồng thời với tăng độ dài register, số register và số chỉ dẫn trong tập lệnh cũng tăng theo. Có nhiều register cho phép CPU có thể lưu lại kết quả của phép toán trước đó để phục vụ cho phép toán sau đó. Ví dụ CPU có hai register, sau khi tính toán xong, CPU sẽ xóa data một register để lưu kết quả phép toán nhưng khi CPU có ba register, CPU sẽ không cần phải thực hiện hành động thừa thãi là xóa nữa. Số thao tác giảm đi nên tăng tốc thực hiện thuật toán.
  • Số chỉ dẫn tăng lên cho phép CPU thực hiện các phép toán phức tạp hơn. Ví dụ trước kia để thực hiện 2*3 thì CPU sẽ thực hiện 2+2+2 nhưng giờ CPU có thể thực hiện trực tiếp phép toán CPU do đã được bổ sung chỉ dẫn trong tập lệnh.

Vậy bất lợi khi gia tăng độ dài register từ 32 bits lên 64 bits là gì ?

  • Thay đổi lại kiến trúc CPU. Viết lại tập lệnh chỉ dẫn để tận dụng tối đa độ dài 64 bits.
  • Các phần mềm 32 bits có thể hoạt động tốt trên CPU 64 bits tuy không tận dụng được hiệu năng nhưng các phần mềm 64 bits lại không thể hoạt động trên CPU 32 bits. Do tập lệnh chỉ dẫn sử dụng khác biệt. Quay lại ví dụ 12+34, register có độ dài là 2 thì vẫn có thể chấp nhận CPU thực hiện 2 phép toán 1+3 và 2+4 nhưng register có độ dài là 1 thì không thể chấp nhận CPU thực hiện chỉ 1 phép toán 12+34.
  • Hiện tại vẫn có một số lượng lớn các máy tính có CPU 32 bits đang được sử dụng. Việc chuyển đổi không thể diễn ra ngay lập tức. Trong quãng thời gian này, developer muốn tận dụng lợi thế 64 bits phải viết thêm phiên bản application dành riêng cho kiến trúc này. 
Trên các dòng CPU hiện nay, thông tin về bộ chỉ thị CPU sử dụng và độ dài thanh ghi của CPU thường được biểu hiển bởi thông số Instruction Set. Ví dụ: //ark.intel.com/products/75794/Intel-Xeon-Processor-E5-4607-v2-15M-Cache-2_60-GHz có Instruction Set: 64 bits chứng tỏ đây là CPU có thanh ghi 64 bits và hỗ trợ bộ chỉ thị x64.

Tham khảo

Bài viết được dựa chủ yếu trên tinh thần của bài:

 //tinhte.vn/threads/vi-xu-li-64-bit-la-gi-va-no-giup-ich-nhu-the-nao-cho-cac-thiet-bi-dien-toan.2173158/

Page 2

32-bit ᴠà 64-bit là gì? х86 ᴠà х64 là gì? httpѕ://ᴡᴡᴡ.ᴄdѕpninhthuan.edu.ᴠn/imageѕ/ᴄomputer/bo-хu-lу-32-bit-ᴠa-64-bit.jpg
Viết bởi ᴄdѕpninhthuan.edu.ᴠn Chuуên mụᴄ: Phần ᴄứng ᴠi tính Đượᴄ đăng: 06 Tháng 4 2019 Cập nhật mới ngàу 06 Tháng 4 2019

Bạn ᴄó thể thấу ᴄáᴄ tùу ᴄhọn 32-bit ᴠà 64-bit mỗi khi bạn tải хuống một ứng dụng hoặᴄ một trò ᴄhơi. Máу ᴠi tính ᴄủa bạn thậm ᴄhí ᴄó thể đượᴄ dán nhãn ᴄho biết nó ᴄó bộ хử lý 64-bit. Vậу 32-bit haу 64-bit là gì? Nó ᴄó thật ѕự quan trọng?

Bâу giờ ᴄhúng ta ѕẽ nói ᴠề 32-bit ᴠà 64-bit, tuу nhiên ѕẽ không đi ѕâu ᴠào kiến trúᴄ máу tính ᴠì nó quá rộng lớn ᴠà ѕẽ không ᴄần thiết đối ᴠới những người ѕử dụng thông thường.

Bạn đang хem: X86 là gì, х64 х86 là gì, ᴄáᴄh хem máу bạn Đang ᴄhạу 32 х86 ᴠà х64 là gì

x86 là gì? Program Files [x86] có nghĩa là gì trong Windows?

x86 là gì?

x86 là một kiến ​​trúc CPU Intel được sử dụng để biểu thị họ bộ vi xử lý được phát hành sau bộ xử lý 8086 ban đầu. Nó được bắt nguồn từ bộ vi xử lý 8086 16-bit vào năm 1978, biểu thị họ bộ vi xử lý trên cơ sở bộ vi xử lý Intel 8086 và 8088. Nói chung, X86 là thuật ngữ chỉ bộ xử lý Intel bao gồm bộ xử lý 286, 386, 486 và 586. Trong thời hiện đại, thuật ngữ “x86” được sử dụng để biểu thị cho bất kỳ bộ xử lý 32 bit nào đảm bảo khả năng tương thích ngược cho các kiến ​​trúc tập lệnh x86. Vì tên đầy đủ của các bộ xử lý là 80286, 80386, 80486 và 80586; do đó, thuật ngữ x86 là viết tắt của 80×86. Thông thường, “80” được sử dụng để tránh dư thừa.

Đặc điểm của kiến trúc x86 là gì?

Ban đầu, x86 bắt đầu với tập lệnh 8 bit, sau đó khi công nghệ phát triển từng ngày và nó bắt đầu với tập lệnh 16 bit và 32 bit. Trong hầu hết mọi loại máy tính, bộ vi xử lý X86 đều có thể chạy; máy chủ máy tính và máy tính xách tay, và từ siêu máy tính đến máy tính để bàn. Tuy nhiên, phần mềm có thể không chạy bởi bộ xử lý cũ hơn mà cần được tối ưu hóa cho bộ xử lý x86 mới hơn. Nhiều tính năng mới đã được thêm vào kiến ​​trúc x86 trong 40 năm tồn tại của nó. Thành tựu đáng chú ý của nó là gần như hoàn toàn tương thích ngược.

Bộ xử lý 64 bit hiện đại có thể được gọi là amd64; tuy nhiên, chúng còn được gọi là x86_64. Vào đầu những năm 2000, về mặt nhãn amd64, nó đi đầu trong công nghệ xử lý 64-bit. Thuật ngữ x86 được tạo ra trên cơ sở chip Intel 8086 ban đầu hoàn thiện với số 86. Các thanh ghi phân đoạn bổ sung được bao gồm trong bộ xử lý x86 giúp nó có khả năng truy cập một số phân đoạn dữ liệu trong cùng một khoảng thời gian. Bất kể thanh ghi phân đoạn, nó cũng hỗ trợ thanh ghi phân đoạn mã và thanh ghi phân đoạn ngăn xếp bổ sung.

Một máy tính sử dụng bộ xử lý Intel [không phải AMD hoặc PowerPC] nếu thông số kỹ thuật của nó mô tả rằng nó dựa trên kiến ​​trúc x86. Các số không được đăng ký nhãn hiệu; họ chỉ đưa ra một cách đơn giản để phân biệt các loại bộ xử lý. Đây là lý do mà bộ vi xử lý 586 của Intel được gọi là bộ vi xử lý Pentium. Tuy nhiên, các con số được sử dụng bởi các nhà phát triển phần mềm để chỉ các bộ xử lý.

Với sự trợ giúp của việc đặt cờ chế độ 8086 ảo, bộ xử lý x86 có thể được chuyển đổi thành bộ xử lý 8086 tốc độ cao. Hiệu quả của các nền tảng dựa trên x86, với sự trợ giúp của ảo hóa, cải thiện đáng kể khi xem xét các hệ điều hành, máy chủ đơn và một ứng dụng duy nhất.

Khi xử lý các giao dịch dữ liệu và cơ sở dữ liệu, khối lượng công việc của doanh nghiệp liên quan đến máy tính cao cấp, x86, có những nhược điểm đáng kể so với các bộ xử lý khác. Phải xem xét các yêu cầu về khả năng mở rộng, kiến ​​trúc, hồ sơ khối lượng công việc và hệ điều hành trong khi lựa chọn các nền tảng dựa trên x86.

Lý do tại sao x86 đề cập đến hệ thống 32 bit trong khi x64 đề cập đến hệ thống 64 bit được đưa ra dưới đây:

Bộ xử lý 8086 được thiết kế theo một cách và phổ biến hơn có khả năng hiểu được ngôn ngữ máy bit lúc đầu. Chúng 8086 được gọi là kiến ​​trúc x86 vì chúng giữ 86 ở cuối số kiểu. X64 là kiến ​​trúc cho phép mã 64-bit, vì nó là tên của phần mở rộng cho tập lệnh x86. Nó được gọi là x86-64 vào thời điểm phát triển ban đầu. Tuy nhiên, sau đó nó đã được rút ngắn thành x64 hiện tại vì nó quá dài.

Xuất sứ và lịch sử của X86

Các bộ vi xử lý x86 bắt đầu được sản xuất bởi các công ty như DM&P, NexGen, UMC, AMD, Fujitsu, Cyrix, C&T, OKI, Siemens, STM; nó được thiết kế cho máy tính cá nhân và hệ thống nhúng. Ban đầu, bộ vi xử lý 16-bit tương thích; tuy nhiên, các thiết kế 32-bit đã được thiết kế và phát triển sau nhiều thời gian. Khoảng năm 1990, số lượng thực bắt đầu xuất hiện với các bộ vi xử lý tương thích i386 và i486. Bộ xử lý x86 hoặc x87 được thiết kế hoặc sản xuất bởi các công ty khác; một số là Weitek, National Semiconductor, ITT Corporation và ULSI System Technology.

Tên thương hiệu Pentium, theo sau i486 có đường ống hoàn chỉnh, được Intel phát hành cho bộ thiết kế superscalars x86 mới của họ. Kế hoạch đặt tên của x86 hiện đã được xóa hợp pháp. Các nhà cung cấp x86 khác, đối với các sản phẩm tương thích với x86 của họ, đã phải chọn các tên khác. Các bộ vi xử lý x86 đầu tiên được thực hiện đổi tên thanh ghi để cho phép thực thi suy đoán, các dòng 5×86, 6x86MX [MII] của thiết kế Cyrix và 6×86 [M1] rất hiệu quả được sản xuất bởi IBM hợp tác với Cyrix.

Ban đầu, các phiên bản của các bộ vi xử lý này có nhược điểm là khả năng tản nhiệt. Bộ xử lý 6×86 cũng có một vài vấn đề nhỏ về khả năng tương thích. Và, Nx586 thiếu khả năng tương thích với pin và đơn vị dấu phẩy động. Ngoài ra, khi K5 được giới thiệu, nó đã có một màn trình diễn hơi đáng thất vọng. K5 bao gồm khả năng tương thích Pentium tốt hơn và so với Pentium trên mã số nguyên, 6×86 nhanh hơn rõ ràng. Các đối thủ khác như Transmeta, Rise Technology và Centaur Technology cũng có mặt ở đó.

Bộ vi xử lý C3 và C7 là những bộ vi xử lý rất tiết kiệm năng lượng của VIA Technologies, đã được bán trong nhiều năm. Chúng được thiết kế bởi công ty Centaur. VIA Nano là bộ xử lý đầu tiên của Centaur với khả năng thực thi siêu địa chỉ và suy đoán. Khi Pentium P5, Intel Atom, được giới thiệu, nó cũng được giới thiệu cùng thời điểm.

Sự khác nhau giữa x64 và x86 là gì?

Sự khác biệt chính giữa x86 và x64 là x64 đề cập đến CPU và hệ điều hành 64 bit , trong đó x86 đề cập đến CPU và hệ điều hành 32 bit . X64 có khả năng xử lý bộ nhớ vật lý 8, 16 và một số thậm chí 32 GB, trong khi một số lượng hạn chế của bộ nhớ vật lý tối đa được bao gồm trong x86, 4 GB vì các bit là viết tắt của một số chỉ có thể là 0 hoặc 1. Điều này là nguyên nhân chính khiến CPU không có khả năng sử dụng nhiều RAM là 1 và 0. Điều đó có nghĩa là bộ xử lý 32-bit chứa 4,29 tỷ vị trí bộ nhớ; tất cả đều chứa một byte dữ liệu tương đương với khoảng. Bộ nhớ 4GB.

Ngoài ra, máy vi tính có bộ xử lý 64 bit có thể hoạt động với cả chương trình 32 bit và chương trình 64 bit, trong khi máy tính có bộ xử lý 32 bit chỉ có thể hoạt động với các chương trình 32 bit. Vì vậy, lý do chính là kích thước bit của chúng khác với mức cơ bản. So với bộ xử lý 32 bit, bộ xử lý 64 bit hoạt động hiệu quả hơn trong hầu hết các trường hợp, đặc biệt là khi xử lý dữ liệu với khối lượng lớn.

Program Files [x86] có nghĩa là gì?

Người dùng có thể tìm thấy tên thư mục có Program Files [x86] trên ổ C nếu bạn đang sử dụng Windows 64-bit trên máy tính của họ. Các ứng dụng 32-bit được lưu trữ trong thư mục này, trong khi thư mục Tệp Chương trình lưu trữ tất cả các ứng dụng 64-bit mà bạn đã cài đặt. Trong thời hiện đại, 4GB là không đủ nếu bạn muốn chạy các tác vụ tải nặng và nhiều chương trình; tuy nhiên, 4GB là đủ cho các tác vụ cơ bản. Hơn nữa, so với khối 32 bit, hệ thống 64 bit có thể xử lý dữ liệu theo khối 64 bit; do đó nó hiệu quả hơn. Hệ thống 64-bit tương thích ngược và cũng có khả năng chạy các chương trình 32-bit.

Nguồn: X86 là gì? Program Files [x86] có nghĩa là gì?

Bài viết này có hữu ích với bạn không?

Video liên quan

Chủ Đề