Đây có phải là kích thước bus địa chỉ hay kích thước bus dữ liệu xác định các hệ thống 8 bit, 16 bit, 32 bit, 64 bit không?


15

Hiểu đơn giản của tôi là như sau.

Bộ nhớ (RAM) bao gồm các bit, nhóm 8 tạo thành byte, mỗi byte có thể được xử lý và do đó bộ nhớ có thể định địa chỉ byte.

Bus địa chỉ lưu trữ vị trí của một byte bộ nhớ.

Nếu một bus địa chỉ có kích thước 32 bit, điều đó có nghĩa là nó có thể chứa tới 2 32 số và do đó nó có thể tham chiếu tới 2 32 byte bộ nhớ = 4GB bộ nhớ và bất kỳ bộ nhớ nào lớn hơn đều vô dụng.

Bus dữ liệu được sử dụng để gửi giá trị được ghi vào / đọc ra bộ nhớ. Nếu tôi có một bus dữ liệu có kích thước 32 bit, điều đó có nghĩa là có thể ghi tối đa 4 byte vào / đọc bộ nhớ tại một thời điểm. Tôi thấy không có mối quan hệ giữa kích thước này và kích thước bộ nhớ tối đa có thể.

Nhưng tôi đọc ở đây rằng:

Mặc dù hầu hết các hệ thống đều có địa chỉ byte, nhưng thật hợp lý khi bộ xử lý di chuyển càng nhiều dữ liệu xung quanh càng tốt. Điều này được thực hiện bởi bus dữ liệu và kích thước của bus dữ liệu là nơi đặt tên hệ thống 8 bit, hệ thống 16 bit, hệ thống 32 bit, hệ thống 64 bit, v.v. Khi bus dữ liệu rộng 8 bit, nó có thể truyền 8 bit trong một hoạt động bộ nhớ. Khi bus dữ liệu rộng 32 bit (như phổ biến nhất tại thời điểm ghi), nhiều nhất, 32 bit có thể được di chuyển trong một hoạt động bộ nhớ duy nhất.

Điều này nói rằng kích thước của bus dữ liệu là cái mang lại cho HĐH tên, 8 bit, 16 bit, v.v. Điều gì là sai với sự hiểu biết của tôi?


" Điều gì là sai với sự hiểu biết của tôi? " - Bạn đang cố gắng làm cho một định nghĩa phù hợp với những điều khác nhau. Bộ mô tả kích thước bit đã được sử dụng tại các thời điểm khác nhau cho những thứ khác nhau.
mùn cưa

1
Nó có nghĩa là bất cứ điều gì nhà sản xuất nói nó có nghĩa. Nói chung đó sẽ là một cái gì đó tương tự như kích thước đăng ký, nhưng có nhiều cách để giả / làm mờ nó.
Daniel R Hicks

Câu trả lời:


12

Nói chung kích thước của cơ sở dữ liệu được xác định bởi kích thước của các thanh ghi bộ xử lý. Thông thường, kích thước của các thanh ghi bộ xử lý xác định loại HĐH (64 so với 32). Các kích thước xe buýt vật lý về mặt kỹ thuật có thể khác với điều này (ví dụ 8088), nhưng rất hiếm khi tác giả của trích dẫn của bạn có thể liên kết cả hai lại với nhau.

Nói chung, kích thước con trỏ cũng tuân theo kích thước thanh ghi nhưng độ rộng bus địa chỉ vật lý có thể lớn hơn (như với 8086 16 bit ở 20) hoặc nhỏ hơn (như với AMD 64 ở 48)


2
" Độ rộng bus địa chỉ vật lý có thể lớn hơn " - Đặc biệt với bộ xử lý 4 bit và 8 bit!
mùn cưa

Được chứ. Nhưng tôi đang cố gắng để hiểu nó một cách tầm thường. Tôi không thể tìm thấy mối quan hệ giữa kích thước của cơ sở dữ liệu và bộ nhớ tối đa có thể, như tôi có thể giải thích với kích thước bus địa chỉ. Vì vậy, câu trả lời dường như là "KHÔNG PHẢI THÊM KÍCH THƯỚC XE TẢI mà là KÍCH THƯỚC XE DATA" (vì nó thường lớn như các thanh ghi bộ xử lý). Tui bỏ lỡ điều gì vậy?
người học

@learner Điều đó đúng, sự nhầm lẫn cũng nằm ở chỗ kích thước con trỏ tối đa của một hệ thống là kích thước của các thanh ghi bộ xử lý. Trong một không gian địa chỉ phẳng như với hầu hết các hệ thống hiện đại tương đương với việc bị giới hạn bởi kích thước của các thanh ghi bộ xử lý, do đó các giới hạn địa chỉ như bạn đã chỉ ra. Một số bộ xử lý, đặc biệt là các bộ xử lý cũ, sử dụng các thủ thuật như địa chỉ phân đoạn đặc biệt để khắc phục điều này.
Dougvj

@Dougvj, Được rồi, nó đang trở nên rõ ràng hơn. Nhưng tại sao họ làm cho kích thước bus địa chỉ khác với kích thước đăng ký bộ xử lý? Nó sẽ không có ý nghĩa hơn để giữ chúng như nhau? Và tôi bối rối về nơi giữ địa chỉ? (xe buýt địa chỉ hoặc đăng ký bộ xử lý?) Cảm ơn bạn
người học

1
@learner Đúng vậy. Để tóm tắt: Chỉ định HĐH tương ứng chính xác với kích thước của các thanh ghi bộ xử lý. Bus địa chỉ có thể có hoặc không cùng kích thước với các thanh ghi bộ xử lý, do đó RAM có thể định địa chỉ tối đa có thể độc lập với điều đó. Tuy nhiên, bộ xử lý bên trong hầu như luôn luôn có một số loại lược đồ địa chỉ liên quan đến các con trỏ có cùng kích thước với các thanh ghi bộ xử lý.
Dougvj

1

Đó là kích thước thanh ghi và xử lý bộ nhớ trong bộ xử lý.

Sử dụng các thủ thuật, một bộ xử lý 16 bit có bus địa chỉ 20 bit, do đó, nó không phải là bộ nhớ ngoài của bộ xử lý.


1

Không có hệ thống 32 hoặc 64 bit "thuần túy", và do đó, các điều khoản chỉ là xấp xỉ.

Ví dụ: hãy lấy câu lệnh của bạn "Bộ nhớ (RAM) bao gồm các bit, nhóm 8 tạo thành byte, mỗi byte có thể được xử lý" . Điều đó không phổ biến lắm. PC có RAM trên các mô-đun DIMM và chúng rộng 64 bit. Quay trở lại những năm 90, bạn đã có SIMM và chúng có chiều rộng 32 bit.

Trong một số hệ thống, các DIMM phải hoặc có thể được ghép nối ("ganged" / "kênh kép"), đó sẽ là một cơ sở dữ liệu 128 bit. Khái niệm này có trước bộ xử lý được gọi là "64 bit" của AMD và Intel.

Các nhóm 64 bit từ một DIMM đơn lẻ thực sự có thể được chia thành 8 byte. Điều đó được thực hiện khá rõ ràng bởi CPU của bạn. Nó cũng có thể phá vỡ 64 bit trong 4 * 16 bit, 2 * 32 bit hoặc chỉ sử dụng tất cả 64 bit làm một biến duy nhất.

Tuy nhiên, câu hỏi quan trọng nhất là độ rộng của một địa chỉ. Mỗi byte trong bộ nhớ có địa chỉ riêng, nhưng không phải mỗi bit. Điều đó có nghĩa là 64 bit bạn nhận được từ một DIMM duy nhất có 8 địa chỉ. Thấp nhất trong số này luôn là bội số của 8: Bây giờ, CPU hỗ trợ bao nhiêu địa chỉ? Có hai câu trả lời chung, ít nhất là trên lý thuyết. Một số CPU hỗ trợ 2 32 địa chỉ khác nhau, một số hỗ trợ 2 64 . Sự khác biệt này là sự phân biệt phổ biến nhất giữa các hệ thống 32 và 64 bit.

Trong thực tế, các hệ thống 64 bit ngày nay hỗ trợ ít hơn 2 64 byte RAM. Điều đó sẽ không phù hợp và dù sao cũng sẽ không phù hợp với một PC bình thường. Bộ nhớ đó sẽ nặng vài triệu tấn!


Đây có phải là thanh ghi bộ xử lý nơi lưu giữ địa chỉ hay là địa chỉ bus? Bạn nói "một số CPU hỗ trợ 2 ^ 32 địa chỉ khác nhau ...". Họ bị giới hạn chính xác bởi những gì?
người học

Thông thường, cả kích thước thanh ghi và MMU (Đơn vị quản lý bộ nhớ, một phần của CPU chịu trách nhiệm trực tiếp cho bộ nhớ).
MSalters

0

Cả hai thực sự.

Các bit trên CPU thường là tham chiếu đến kích thước của các thanh ghi bên trong của nó. CPU 32 Bits có các thanh ghi 32 Bits có thể hoặc không thể chia thành các phần.

Thật hợp lý khi có CPU 32 bit với bus dữ liệu 32 bit vì bạn có thể chuyển tất cả dữ liệu từ bộ nhớ trực tiếp sang các thanh ghi, nhưng bạn có thể có bất kỳ kích thước bus dữ liệu nào. Vì vậy, CPU 32 Bit thường có bus dữ liệu 32 Bit để giúp dễ dàng truyền dữ liệu từ và sang nó.

Và cũng có ý nghĩa để có một bus Địa chỉ 32 bit vì hai lý do. Một bus địa chỉ lớn hơn sẽ khó thực hiện địa chỉ gián tiếp hơn vì bạn sẽ không có đăng ký đủ lớn hơn để lưu địa chỉ bộ nhớ hoặc CPU sẽ cần đăng ký chuyên biệt để đánh địa chỉ bộ nhớ, lưu ý rằng các CPU cũ như Intel 8080 là 8 bit và có Xe buýt địa chỉ 16 bit. Ngược lại, một bus địa chỉ nhỏ hơn đăng ký chỉ là một sự lãng phí tài nguyên. Có vi điều khiển sử dụng bus địa chỉ nhỏ hơn.

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.