Dung lượng RAM tối đa tôi có thể sử dụng trên một phần cứng cụ thể là bao nhiêu


26

Tôi đã có một Máy tính xách tay Asus U31SD với CPU i5-2430M . Trang web của Asus nói rằng RAM tối đa là 8 GB, nhưng Intel cho biết CPU của tôi hỗ trợ 16 GB. RAM tối đa tôi có thể sử dụng trên hệ thống này trong Ubuntu là bao nhiêu?


3
Để tổng hợp những gì mọi người đang nói, máy tính xách tay của bạn chỉ có thể sử dụng 8GB RAM, do những hạn chế của bo mạch chủ của bạn. Bạn có thể xác minh điều này bằng cách xem câu hỏi này: askubfox.com/questions/140322/ trên
Reverendj1

Đối với mọi người, tôi muốn chỉ ra rằng công ty sản xuất bộ nhớ "corsair" có bộ định vị bộ nhớ có thể cho bạn biết tổng lượng RAM tối đa mà hệ thống của bạn có thể sử dụng là bao nhiêu. Bạn cũng có thể đọc các tờ công nghệ cho hệ thống mô hình của mình bằng cách tìm kiếm chúng trực tuyến, nó sẽ cho bạn biết RAM tối đa bạn có thể sử dụng.
Thomas Ward

@ Chúa tể thời gian: liên kết nào?
0xC0000022L

Trình tìm kiếm / Bộ cấu hình Corsair cho hệ thống được tham chiếu trong câu hỏi: www2.corsair.com/configurator/iêu || Corsair Memory Finder (trang bắt đầu): corsair.com/us/learn Stewexplore (Họ sẽ quảng cáo sản phẩm của họ, nhưng tôi có thể sử dụng điều này như một cơ sở chung để tìm thông số kỹ thuật bán chính xác cho bộ nhớ tối đa
Thomas Ward

Câu trả lời:


29

Giới hạn thực sự nằm giữa phần cứng của bạn (hỗ trợ bộ nhớ bo mạch chủ và số lượng khe cắm trong đó) và phiên bản Ubuntu (32 Bit, 32 Bit + PAE, x32ABI, 64 Bit)

Nếu bạn có một bo mạch chủ hỗ trợ tối đa 4GB, thì không vấn đề gì nếu bạn sử dụng 32 Bit, 32 Bit PAE hoặc 64 Bit vì bạn sẽ có giới hạn phần cứng là 4GB.

Nhưng nếu bạn mua một bo mạch chủ hỗ trợ nhiều bộ nhớ hơn, bạn có thể chơi xung quanh với các phiên bản Ubuntu có bộ nhớ được hỗ trợ tối đa sau:

Ubuntu 32 bit - RAM 4GB

Ubuntu 32 Bit + PAE (Mở rộng địa chỉ vật lý) - RAM 64GB

Ubuntu x32ABI - RAM 4GB (Đây là kiến ​​trúc 32 bit được sửa đổi với các cải tiến 64 bit chạy trên phần cứng 64 bit. Nó chưa khả dụng.)

Ubuntu 64 Bit - RẤT NHIỀU! (Trên thực tế là 2 ^ 64) nhưng do giới hạn phần cứng và máy tính trong thế giới thực, giới hạn là khoảng 1TB (RAM 1024 GB)

Vì vậy, câu hỏi về giới hạn bộ nhớ nên được sử dụng khi bạn đang sử dụng hơn 4GB RAM. Trong trường hợp này, bạn sẽ cần 32 bit PAE hoặc 64 BIT hỗ trợ kích thước bộ nhớ thực sự lớn.

Cũng lưu ý rằng nếu bạn có ví dụ 4GB ngay bây giờ và bạn mua 16GB ram, không cần phải cài đặt lại Ubuntu hoặc thực hiện bất kỳ thay đổi nào. Chỉ cần thay đổi bộ nhớ và Ubuntu sẽ đọc và làm việc với chúng ra khỏi hộp. Không cần cấu hình. Nếu bạn có 32 Bit với RAM 4 GB và bạn cài đặt 16 GB hoặc RAM, Ubuntu sẽ tự động thay đổi từ 32 Bit sang 32 Bit PAE. Tôi có thể bảo đảm điều này vì tôi đã chuyển từ 4GB sang 16 GB vào đầu năm nay.

Đây là một liên kết đến một lời giải thích rất hay cho Ubuntu về bộ nhớ trong 32/64: https://help.ubfox.com/community/32bit_and_64bit#Memory

CẬP NHẬT - Quên thêm rằng một số bo mạch chủ có các bản cập nhật BIOS cho phép, sửa hoặc tăng cường bộ nhớ tối đa được hỗ trợ. Ví dụ, một số bo mạch chủ Intel trong quá khứ có vấn đề khi làm việc với mức tối đa mà chúng hỗ trợ. Một bản cập nhật BIOS đã sửa lỗi này. Các bo mạch chủ khác có hỗ trợ 4GB vì sự cố BIOS, sau khi nâng cấp, chúng có hỗ trợ hơn 4GB.

Đồng thời so sánh bộ nhớ được hỗ trợ tối đa cho CPU và Bo mạch chủ, Tối đa bạn có thể có là Tối thiểu của bất kỳ trong số chúng. Ví dụ:


Bộ nhớ được hỗ trợ tối đa CPU CASE 1 - Bo mạch chủ 16GB
Bộ nhớ được hỗ trợ tối đa - 8GB
Bộ nhớ được hỗ trợ tối đa của bạn - 8GB (Vì là giá trị thấp nhất giữa CPU và Bo mạch chủ)


Bộ nhớ được hỗ trợ tối đa CPU CASE 2 - Bo mạch chủ 16GB
Bộ nhớ được hỗ trợ tối đa - 32GB
Bộ nhớ được hỗ trợ tối đa của bạn - 16GB (Vì là giá trị thấp nhất giữa CPU và Bo mạch chủ)


Bộ nhớ được hỗ trợ tối đa CPU CASE 3 - Bo mạch chủ 16GB
Bộ nhớ được hỗ trợ tối đa - 64GB
Bộ nhớ được hỗ trợ tối đa của bạn - 16GB (Vì là giá trị thấp nhất giữa CPU và Bo mạch chủ)

Lý do đằng sau mối quan hệ Giới hạn bộ nhớ này với CPU là do các sửa đổi kỹ thuật của Intel với các CPU Core mới nhất.

Vì vậy, trong trường hợp của bạn, bạn có một bo mạch chủ hỗ trợ 8GB và CPU hỗ trợ 16GB. Điều này có nghĩa là mức tối đa bạn có thể có là 8GB mà bạn có thể sử dụng tùy thuộc vào số lượng khe cắm trong bo mạch chủ. Trong đó Asus bạn có 2 Slots, có nghĩa là bạn có thể có hai 4GB RAM để hoàn thành tối đa 8GB.

Thông tin thêm về x32abi:

KernelNew sở thích - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (Đề nghị đọc bình luận để dễ tìm hiểu giải thích về giới hạn bộ nhớ)

Google - http://sites.google.com.vn/site/x32abi/

Cuối cùng, kể từ Ubuntu 12.04, tất cả các phiên bản Ubuntu 32 bit đều được kích hoạt PAE theo mặc định, vì vậy tất cả 32 Bit sẽ hỗ trợ tối đa 64 GB RAM. Trong trường hợp bạn đang sử dụng 12.04+ và muốn biết nên sử dụng kiến ​​trúc nào, bây giờ bạn biết rằng bạn có thể sử dụng bất kỳ kiến ​​trúc nào miễn là bạn làm theo một số đề xuất:

  • Nếu bạn có 512 MB RAM trở xuống, rất khuyến khích sử dụng 32 Bit

  • Nếu bạn có RAM dưới 4 GB nhưng hơn 512 MB thì nên sử dụng 32 Bit (Nhưng bạn vẫn có thể sử dụng 64 Bit)

  • Nếu bạn có 4 GB RAM, bạn nên sử dụng 32 Bit (Nhưng bạn vẫn có thể sử dụng 64 Bit)

  • Nếu bạn có từ 4 GB hoặc RAM và 64 GB RAM, bạn có thể sử dụng 32 Bit hoặc 64 Bit, nhưng nên sử dụng 64 Bit.

  • Nếu bạn có hơn 64 GB RAM, bạn cần sử dụng 64 Bit


Luis bạn có chắc chắn về giới hạn 4 GB trong x32 không? Điều này sẽ buồn. Tôi đã đọc trong một bài báo (tạp chí Đức) rằng x32 hỗ trợ hơn 4 GB. Còn PAE thì sao?
turbo

@turbo - Đó là một câu hỏi rất hay mà tôi phải mất một thời gian để tìm. Tôi trả lời bằng 4GB vì phần giải thích về "x32abi này là gì?": X32 ABI cho phép chạy các chương trình ở chế độ 64 bit với con trỏ 32 bit. Vì nó hoạt động với con trỏ 32 Bit, điều này có nghĩa là bộ nhớ tối đa mà nó thực sự có thể sử dụng để làm việc với 4GB. Tất nhiên, tôi không biết có chế độ PAE x32abi hay không nhưng vì đây là cách để thực thi các chương trình 32 Bit để tận dụng một số lợi thế của 64 Bit mà không sử dụng gấp đôi ram cho các tác vụ tôi đã kết luận rằng nó bị giới hạn bởi 32 Bit đến 4GB ram.
Luis Alvarado

1
Trên thực tế, giới hạn cho 64 bit là 2 ^ 48 byte và x32 là như nhau, chỉ giới hạn ở 4 GB cho mỗi quy trình , cho các quy trình x32. x32 chạy kernel 64 bit, vì vậy nó có thể chạy một số chương trình 64 bit đầy đủ, nhưng x32 xây dựng hầu hết các chương trình để chỉ sử dụng 32 bit.
psusi

6

Đối với 32 bit, giới hạn lý thuyết là 2 ^ 32 = 4096 MB, nhưng từ Ubuntu 12.04 trên PAE (Tiện ích mở rộng địa chỉ vật lý) được bật theo mặc định với giới hạn 2 ^ 36 = 64 GB.

Đối với 64 bit, nó phải là 2 ^ 64 = 16 777 216 TB (vâng đó là Terabyte) về mặt trị liệu. Trong thực tế, dung lượng RAM được giới hạn ở mức 2 ^ 48 aka 256 TB RAM.

Vì các giới hạn lý thuyết không thể thực sự đạt được trong một máy tính xách tay bình thường, giới hạn thực tế là các khe cắm bộ nhớ (thường là 1-2) trong máy tính xách tay của bạn và sự hỗ trợ của chipset. 8-16 GB là thực tế ở đây nếu bạn sẵn sàng trả tiền nghiêm trọng cho các mô-đun 8 GB.


Vì vậy, tôi có thể mua mô-đun 2x 8gb một cách an toàn và mong đợi chúng hoạt động? (Tôi đang chạy 64 bit, hiện có ram 8gb)
crond

Vâng an toàn ...; P Các máy tính xách tay khác có Chip Intel HM65 Express hỗ trợ 16 GB (Asus G74SX-TZ293V) nên có.
turbo

6

Tôi vừa mua thêm 8GB để bật trong U31SD của mình, với tổng số 12 GB. Mặc dù trang thông số kỹ thuật của Asus cho biết 8GB là giới hạn, nhưng điều này hoạt động tốt. Đã qua memtest86 và hiển thị với Ubuntu 64 bit.

Tôi đã cài đặt bản cập nhật bios mới nhất, không chắc điều đó có khác biệt gì không.

FYI, sản lượng sudo dmidecode -t 16chỉ ra Maximum Capacity: 16 GB.


1

Đó là một hạn chế trên bo mạch chủ không phải trên CPU. CPU có thể hỗ trợ tối đa 16 GB nhưng nếu bo mạch chủ chỉ có thể mất 8GB thì đó là giới hạn của bạn.

Trong Ubuntu nếu bạn đang chạy 32 bit thì giới hạn của bạn là 4GB và nếu bạn đang chạy 64 bit thì cao hơn nhiều (không thể nhớ chắc chắn nhưng cách đó vượt quá 16 GB.

Nhưng bạn sẽ luôn bị hạn chế bởi phần cứng của bạn. Bạn phải luôn so sánh giới hạn bo mạch chủ và giới hạn CPU và lấy giá trị thấp nhất làm giới hạn của PC.


0

Trong trường hợp cụ thể của bạn, 8 GB là do bo mạch chủ của bạn không hỗ trợ nhiều hơn dung lượng RAM đó.

Nhưng bản thân Ubuntu hỗ trợ tối đa 4 GB cho 32 bit, 64 GB trên PAE 32 bit và 128 GB trên 64 bit (mặc dù về mặt lý thuyết, giới hạn này cao hơn nhiều so với 64 bit).


0

có rất nhiều câu hỏi xác định kích thước của một con trỏ. về cơ bản như một quy tắc của ngón tay cái, bạn có thể nói đây là kiến ​​trúc bộ xử lý,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Để giải quyết 8GB RAM, bạn cần 8,589,934,592 ánh xạ và con trỏ có kích thước 4 byte không thể giải quyết tất cả các giá trị có thể. Vì vậy, đây là lý do tại sao tôi không thể có nhiều hơn 4GB RAM trên kiến ​​trúc x86.

Có một số khả năng khác mặc dù:

Lượng RAM không bị giới hạn bởi kiến ​​trúc (32 hoặc 64 bit). Kiến trúc chỉ quyết định số lượng bộ nhớ có thể được xử lý tại một thời điểm, bởi HĐH và các chương trình chạy trên nó. Trên máy 32 bit, nghĩa là, máy có bus bộ nhớ rộng 32 bit, HĐH và các chương trình có thể "nhìn thấy" chỉ 4 GB bộ nhớ. Nhưng điều đó không có nghĩa là chỉ có 4 GB RAM. Nếu nhà sản xuất đã cung cấp cho nó, bạn có thể có RAM 16 GB hoặc 4 GB. Trong trường hợp đó, sẽ có thêm 2 dòng địa chỉ "ẩn" và cũng sẽ có logic được mã hóa cứng để quyết định mức của 2 dòng đó, do đó chọn bất kỳ RAM 4 GB có sẵn nào - 00 01 10 11. Các bit địa chỉ "ẩn" này không được sử dụng bởi các lớp phần mềm, vì vậy đối với các lớp này, chúng chỉ có thể sử dụng con trỏ 4 byte. Số lượng của những "ẩn"

Đây chỉ là một ví dụ. Nó phụ thuộc vào nhà cung cấp, cách họ quyết định cung cấp thêm RAM.

Xem thêm:

Trong trường hợp thông thường, một con trỏ đủ lớn để chứa nhiều địa chỉ hơn so với các đơn vị bộ nhớ trong hệ thống. Điều này đưa ra khả năng một chương trình có thể cố gắng truy cập một địa chỉ tương ứng với không có đơn vị bộ nhớ nào, vì không đủ bộ nhớ được cài đặt (tức là vượt quá phạm vi bộ nhớ khả dụng) hoặc kiến ​​trúc không hỗ trợ các địa chỉ đó. Trường hợp đầu tiên có thể, trong một số nền tảng nhất định như kiến ​​trúc Intel x86, được gọi là lỗi phân đoạn (segfault). Trường hợp thứ hai là có thể trong triển khai AMD64 hiện tại, trong đó con trỏ dài 64 bit và địa chỉ chỉ mở rộng đến 48 bit. Ở đó, các con trỏ phải tuân theo các quy tắc nhất định (địa chỉ chính tắc), do đó, nếu một con trỏ phi núi bị hủy đăng ký, bộ xử lý sẽ gây ra lỗi bảo vệ chung.

Mặt khác, một số hệ thống có nhiều đơn vị bộ nhớ hơn so với địa chỉ. Trong trường hợp này, một sơ đồ phức tạp hơn như phân đoạn bộ nhớ hoặc phân trang được sử dụng để sử dụng các phần khác nhau của bộ nhớ tại các thời điểm khác nhau. Các hóa thân cuối cùng của kiến ​​trúc x86 hỗ trợ tới 36 bit địa chỉ bộ nhớ vật lý, được ánh xạ tới không gian địa chỉ tuyến tính 32 bit thông qua cơ chế phân trang PAE. Do đó, chỉ 1/16 trong tổng số bộ nhớ có thể có thể được truy cập tại một thời điểm. Một ví dụ khác trong cùng họ máy tính là chế độ được bảo vệ 16 bit của bộ xử lý 80286, mặc dù chỉ hỗ trợ 16 MiB bộ nhớ vật lý, có thể truy cập tới 1 GiB bộ nhớ ảo, nhưng kết hợp địa chỉ và phân đoạn 16 bit các thanh ghi thực hiện truy cập hơn 64 KiB trong một cấu trúc dữ liệu cồng kềnh.

Để cung cấp giao diện nhất quán, một số kiến ​​trúc cung cấp I / O được ánh xạ bộ nhớ, cho phép một số địa chỉ tham chiếu đến các đơn vị bộ nhớ trong khi các địa chỉ khác đề cập đến các thanh ghi thiết bị của các thiết bị khác trong máy tính. Có các khái niệm tương tự như offset tập tin, chỉ mục mảng và tham chiếu đối tượng từ xa phục vụ một số mục đích tương tự như địa chỉ cho các loại đối tượng khác.

(thêm ở đây )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.