2010-03-28 80 views
20

Tôi gặp sự cố khi hiểu sự khác biệt giữa bộ xử lý 32 bit và bộ xử lý 64 bit. Tôi biết rằng một bộ xử lý 32 bit có thể truy cập 32 bit cùng một lúc trong khi bộ vi xử lý 64 bit có thể truy cập 64 bit tại một thời điểm. Nhưng chính xác thì nó có ý nghĩa gì khi truy cập vào một số bit nhất định cùng một lúc?32 so với 64 bit ... hoặc, chính xác 'thông tin xử lý' có nghĩa là gì

+1

Điều này quá mơ hồ và mơ hồ – Earlz

Trả lời

24

Tôi đoán câu trả lời thực sự là nó phức tạp. Ẩn dụ là điều duy nhất bên cạnh nghiên cứu chuyên dụng mà sẽ cung cấp cho bạn một ý tưởng cơ bản. Wallyk đang đi đúng hướng.

Một vài thứ thúc đẩy bộ xử lý. Một là bao nhiêu thao tác có thể thực hiện trong một giây (được đo bằng Hertz). Trong khi kiến ​​trúc ngăn cản một câu trả lời đơn giản, một bộ xử lý lõi đơn 1Ghz thực hiện 1.000.000.000 phép tính mỗi giây. Khoảng chừng.Trong khi nó có thể nhận được một câu trả lời cụ thể hơn, nó sẽ không làm rõ trường hợp này. Một bộ xử lý cũng là những thứ khác, như bộ điều khiển bộ nhớ (trong i7), ALU và FPU, và các mạch chuyên dụng khác, đó là những gì làm cho ngay cả một câu hỏi khó trả lời.

Vì mục đích và mục đích của bạn, mọi bộ xử lý đều có đăng ký. Đăng ký giống như không gian đầu (nhanh hơn bộ nhớ) cho một bộ xử lý để lưu trữ một lượng nhỏ dữ liệu trong khi nó hoạt động trên đó. Chúng được sao lưu bằng cache L1 và L2 (đôi khi L3), cũng rất nhanh. Về cơ bản, 64-bit đề cập đến kích thước của không gian đầu (và bằng proxy, đường ống kết nối thanh ghi vào bộ đệm, vì dữ liệu được nạp vào và ra cùng một lúc).

Không gian đầu lớn hơn có nghĩa là bạn có thể thực hiện nhiều thao tác hơn mà không cần đọc thông tin mới từ bộ nhớ cache hoặc bộ nhớ. Tuy nhiên, chỉ vì nó có thể được thực hiện không có nghĩa là nó sẽ luôn luôn. Một chương trình thường phải được biên dịch với hỗ trợ 64 bit để tận dụng tốc độ, và thậm chí sau đó bạn thường sẽ không thấy sự khác biệt trừ khi bạn đang thao tác dữ liệu lớn hơn 32 bit có thể lưu trữ. Đó là một câu hỏi cho một lập trình viên hệ thống.

Một bộ xử lý cũng cần phải theo dõi những gì trong bộ nhớ (như trong, sử dụng và những gì không.) Nó thực hiện điều này bằng cách sử dụng thanh ghi đặc biệt. Lý do tại sao một bộ vi xử lý 32-bit thường không thể giải quyết nhiều hơn 4GB RAM đã làm với kích thước của thanh ghi này. Trong khi các phần mở rộng của bộ vi xử lý như PAE cho phép các hệ điều hành 32 bit trên bộ vi xử lý 32 bit xử lý 64 GB RAM, hầu hết các hệ điều hành thường không hỗ trợ nó.

TL; DR, bộ xử lý 64 bit cung cấp khả năng lập trình đúng để thực hiện các thao tác trên khối dữ liệu lớn hơn cùng một lúc và giải quyết nhiều bộ nhớ hơn. Khác sau đó, không có một sự khác biệt rất lớn.

CHỈNH SỬA: Người thân nhất có ý tưởng sai, bởi "hoạt động" tôi không đề cập cụ thể đến các hoạt động (bổ sung, nhân, v.v.). Tệ của tôi, tôi đã tập trung trả lời câu hỏi thay vì đưa ra một giới thiệu đầy đủ về kiến ​​trúc vi xử lý.

+4

Từ quan điểm của lập trình viên, đó chính xác là ý nghĩa của nó. Trước những điều phức tạp hơn như tối ưu hóa hướng dẫn hoặc xem xét liệu dữ liệu đã có trong bộ nhớ cache hay phải được lấy từ bộ nhớ, Hertz chỉ định số lượng hoạt động được thực hiện mỗi giây, ngay cả khi thao tác đó chưa hoàn tất. Một số hoạt động mất nhiều thời gian hơn (phân chia/nhân/mô đun là đáng chú ý, vì chúng được xây dựng liên tục từ các hoạt động cộng/trừ). Có lẽ bạn muốn khai sáng cho tôi một câu trả lời/giải thích, chứ không phải chỉ là một câu trả lời và lên án? Đây không phải là nơi để trả lời sao? – emcee

+0

Giải thích tuyệt vời. Tôi ở đây vì Apple vừa tung ra iPhone5S với bộ vi xử lý 64 bit, vì vậy đã tự hỏi đó là điều lớn lao. –

+0

@emcee Chỉ cần tò mò, bạn nói "bộ vi xử lý 32-bit thường không thể giải quyết nhiều hơn 4GB RAM". Giới hạn RAM trên 64-bit là gì? –

4

Về cơ bản, điều đó có nghĩa là có thể thực hiện các phép toán trên các số có kích thước như vậy (thêm chúng chẳng hạn). Mặc dù có nhiều sự khác biệt giữa kiến ​​trúc 32bit và 64bit so với điều này.

-3

Đó là thước đo sức mạnh xử lý. Thay vì giống như một chiếc xe có thể chở 4 hành khách, hoặc 12, với cùng một lượng năng lượng. Ví dụ: 32 bit giữ 4 byte hoặc 4 ký tự thông thường và 64 bit là 8 byte và — cho các ngôn ngữ lãng mạn — tám ký tự. Những người có thể được thao tác cùng một lúc cho nhiều loại hoạt động cho chiều rộng dữ liệu kiến ​​trúc tương ứng.

Tuy nhiên, một cách khác để xem nó là một số nguyên lớn mà kiến ​​trúc có thể làm việc trực tiếp. Đối với mỗi người trong các độ rộng, phạm vi tương ứng là

8 bit: 0 đến 255/-128 đến 127
16 bit: 0 đến 65.535/-32.768-32.767
32 bit: 0 đến 4294967295/-2147483648 để 2,147,483,647
64 bit: 0 đến 18,446,744,073,709,551,615/-9,223,372,036,854,775,808 đến 9.223.372.036.854.775.807

+2

Điều đó không đúng chút nào. Bộ xử lý 32 bit không nhất thiết phải kém hơn 64bit. – Earlz

+0

Tất nhiên. Nó không chỉ mang tính biểu diễn tổng thể hơn là chuyển động của một động cơ cụ thể. – wallyk

0

các Wikipedia entry for 64-bit tỏa sáng một số ánh sáng đẹp về chủ đề

+0

Điều này về lý thuyết có thể trả lời câu hỏi, nhưng [nó sẽ là thích hợp hơn] (// meta.stackoverflow.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây cho người dùng trong tương lai và cung cấp liên kết để tham khảo. – Mogsdad

1

nó không phải là một biểu hiện rất chính xác, nhưng tôi mang nó đến có nghĩa là chiều dài của địa chỉ bộ nhớ. Ví dụ, 32 bit có nghĩa là 4 GiB (2 bytes) có sẵn cho các chương trình.

(Đối với một sự đùa cợt, hãy kiểm tra các kiến ​​trúc IBM s390 đó là 31 bit.)

Ngoài ra, nó không phải lúc nào cũng là số tiền tối đa của dữ liệu mà CPU có thể đọc hoặc hoạt động trên cùng một lúc. Ví dụ, bộ vi xử lý AMD/Intel 64 bit có một loạt các bộ nhớ đệm trên chip có thể lấy dữ liệu từ bộ nhớ chính trong các khối lớn. Họ cũng có thanh ghi SSE 128 bit.

1

tôi nhận thấy bạn gắn thẻ nhớ, vì vậy tôi sẽ có câu trả lời rằng:

Trong một bộ xử lý 32bit, bộ vi xử lý chỉ có thể sử dụng 32 bit để địa chỉ bộ nhớ. Điều này có nghĩa là có 2^32 kết hợp độc đáo, do đó, bộ xử lý chỉ có thể xử lý 2^32 byte. (4Gb)

Trong bộ xử lý 64 bit, bộ xử lý có thể (theo lý thuyết) sử dụng 64 bit để giải quyết bộ nhớ hoặc 2^64 byte bộ nhớ địa chỉ. Tôi tin rằng số tiền đó là 16 Exo Bytes, đó là một số tiền khổng lồ gần như đến mức đếm số lượng phân tử trong máy của bạn. Tuy nhiên, trong thực tế, hầu hết các CPU trên dòng ngày nay chỉ cho phép bạn giải quyết 42 bit bộ nhớ vật lý và 48 bit bộ nhớ ảo do các ràng buộc phần cứng hiện tại.

+1

32 bit không phải là về bus địa chỉ. Có rất nhiều máy 32 bit với các bus địa chỉ 36 bit (PAE và PSE-36 trên các kiến ​​trúc Intel), ví dụ). –

+0

Yea, nhưng nó không liên quan gì cả. Tôi đoán tôi nên đã chỉ ra một bộ xử lý 32bit có thể có nhiều hơn hoặc ít hơn 32 bit địa chỉ của bộ nhớ – Earlz

+0

@ downvoter, lý do xin vui lòng? – Earlz

Các vấn đề liên quan