Chúng ta có thể nhận được bao nhiêu địa chỉ bộ nhớ với bộ xử lý 32 bit và ram 1gb?


12

Chúng ta có thể nhận được bao nhiêu địa chỉ bộ nhớ với bộ xử lý 32 bit và ram 1gb và bao nhiêu địa chỉ với bộ xử lý 64 bit?

Tôi nghĩ rằng nó là một cái gì đó như thế này:

1GB ram chia cho 32 bit hay chia cho 4? để lấy số lượng địa chỉ bộ nhớ?

Nhưng tôi không chắc chắn. Đó là lý do tại sao tôi hỏi.

Tôi đỏ trên wikipedia rằng 1 địa chỉ bộ nhớ rộng 32 bit hoặc 4 octet (1 octet = 8 bit), so với bộ xử lý 64 bit trong đó 1 địa chỉ bộ nhớ hoặc 1 số nguyên rộng 64 bit hoặc 8 octet. Nhưng không biết tôi có hiểu đúng không.


Hầu như tất cả các hệ thống hiện đại đều có địa chỉ byte, nghĩa là 32 bit có thể giải quyết khoảng 4 gigabyte (nếu có nhiều RAM được cài đặt). Trong lịch sử, đã có các sơ đồ địa chỉ từ, với "từ" là 12, 15, 16, 17, 24, 32, 36 hoặc 48 bit, và có thể là một số khác, cộng với các máy thập phân có địa chỉ 4 hoặc 6 bit đơn vị. Nhưng cũng nên nhớ rằng hầu hết các hệ thống hiện đại đều sử dụng bộ nhớ ảo, có nghĩa là bộ xử lý có thể giải quyết nhiều bộ nhớ hơn cả những gì được cài đặt.
Daniel R Hicks

@DanielRHicks Bộ nhớ ảo không ảnh hưởng đến lượng RAM có thể được xử lý.
Jamie Hanrahan

@JamieHanrahan - Để bộ nhớ ảo hoạt động, phải có một số cơ chế đánh địa chỉ mở rộng phạm vi địa chỉ ảo (của một quy trình). Điều này có thể được thực hiện với mô phỏng phần mềm, nhưng điều đó khá kém hiệu quả, vì vậy trong hầu hết các hệ thống, phạm vi địa chỉ của bộ xử lý được tạo ra đủ lớn để kết hợp không gian địa chỉ tối đa của một quy trình.
Daniel R Hicks

@DanielRHicks Chắc chắn, nhưng điều đó không ảnh hưởng đến lượng RAM có thể được giải quyết. RAM là bộ nhớ vật lý, không phải ảo. Địa chỉ ảo không phải là địa chỉ RAM và bộ nhớ ảo không phải là RAM.
Jamie Hanrahan

@JamieHanrahan - Bạn không có ý nghĩa gì cả. Nếu bạn không thể giải quyết các trang của RAM trong không gian địa chỉ ảo thì RAM là vô dụng. (Tôi biết rất rõ cách thức hoạt động của bộ nhớ ảo, đã làm việc với các thiết kế bộ nhớ ảo từ năm 1972.)
Daniel R Hicks

Câu trả lời:


38

Câu trả lời ngắn: Số lượng địa chỉ khả dụng bằng với địa chỉ nhỏ hơn:

  • Kích thước bộ nhớ tính bằng byte
  • Số nguyên không dấu lớn nhất có thể được lưu trong từ máy của CPU

Câu trả lời dài và giải thích về những điều trên:

Bộ nhớ bao gồm các byte (B). Mỗi byte bao gồm 8 bit (b).

1 B = 8 b

1 GB RAM thực sự là 1 GiB (gibibyte, không phải gigabyte). Sự khác biệt là:

1 GB  = 10^9 B = 1 000 000 000 B
1 GiB = 2^30 B = 1 073 741 824 B

Mỗi byte bộ nhớ có địa chỉ riêng, bất kể từ máy CPU lớn đến đâu. Ví dụ. CPU Intel 8086 là 16 bit và nó được xử lý theo bộ nhớ theo byte, do đó, CPU 32 bit và 64 bit hiện đại cũng vậy. Đó là nguyên nhân của giới hạn đầu tiên - bạn không thể có nhiều địa chỉ hơn byte bộ nhớ.

Địa chỉ bộ nhớ chỉ là một số byte mà CPU phải bỏ qua từ đầu bộ nhớ để đến địa chỉ mà nó đang tìm kiếm.

  • Để truy cập byte đầu tiên, nó phải bỏ qua 0 byte, vì vậy địa chỉ của byte đầu tiên là 0.
  • Để truy cập byte thứ hai, nó phải bỏ qua 1 byte, vì vậy địa chỉ của nó là 1.
  • (và kể từ đó trở đi...)
  • Để truy cập byte cuối cùng, CPU bỏ qua 1073741823 byte, vì vậy địa chỉ của nó là 1073741823.

Bây giờ bạn phải biết 32-bit thực sự có nghĩa là gì. Như tôi đã đề cập trước đây, đó là kích thước của một từ máy.

Từ máy là lượng bộ nhớ CPU sử dụng để giữ số (trong RAM, bộ đệm hoặc các thanh ghi bên trong). CPU 32 bit sử dụng 32 bit (4 byte) để giữ số. Địa chỉ bộ nhớ cũng là số, vì vậy trên CPU 32 bit, địa chỉ bộ nhớ bao gồm 32 bit.

Bây giờ hãy nghĩ về điều này: nếu bạn có một bit, bạn có thể lưu hai giá trị trên đó: 0 hoặc 1. Thêm một bit nữa và bạn có bốn giá trị: 0, 1, 2, 3. Trên ba bit, bạn có thể lưu tám giá trị : 0, 1, 2 ... 6, 7. Đây thực sự là một hệ thống nhị phân và nó hoạt động như thế:

Decimal Binary
0       0000
1       0001
2       0010
3       0011
4       0100
5       0101
6       0110
7       0111
8       1000
9       1001
10      1010
11      1011
12      1100
13      1101
14      1110
15      1111

Nó hoạt động chính xác như bổ sung thông thường, nhưng chữ số tối đa là 1, không phải 9. Số thập phân 0 là 0000, sau đó bạn thêm 1 và nhận 0001, thêm một lần nữa và bạn có 0010. Điều gì xảy ra ở đây cũng giống như có số thập phân 09và thêm một: bạn thay đổi 9 thành 0 và tăng chữ số tiếp theo.

Từ ví dụ trên, bạn có thể thấy rằng luôn có một giá trị tối đa bạn có thể giữ trong một số có số bit không đổi - bởi vì khi tất cả các bit là 1 và bạn cố gắng tăng giá trị lên 1, tất cả các bit sẽ trở thành 0, do đó phá vỡ con số. Nó được gọi là tràn số nguyên và gây ra nhiều vấn đề khó chịu, cho cả người dùng và nhà phát triển.

   11111111    = 255
+         1
-----------
  100000000    = 0   (9 bits here, so 1 is trimmed)
  • Trong 1 bit, giá trị lớn nhất là 1,
  • 2 bit - 3,
  • 3 bit - 7,
  • 4 bit - 15

Số lớn nhất có thể luôn là 2 ^ N-1, trong đó N là số bit. Như tôi đã nói trước đây, một địa chỉ bộ nhớ là một số và nó cũng có giá trị tối đa. Đó là lý do tại sao kích thước của từ máy cũng là một giới hạn cho số lượng địa chỉ bộ nhớ khả dụng - đôi khi CPU của bạn không thể xử lý số lượng đủ lớn để giải quyết nhiều bộ nhớ hơn.

Vì vậy, trên 32 bit, bạn có thể giữ các số từ 0 đến 2 ^ 32-1 và đó là 4 294 967 295. Nó không chỉ là địa chỉ lớn nhất trong RAM 1 GB, do đó, trong trường hợp cụ thể, lượng RAM của bạn sẽ là yếu tố giới hạn.

Giới hạn RAM cho CPU 32 bit về lý thuyết là 4 GB (2 ^ 32) và đối với CPU 64 bit là 16 EB (exabyte, 1 EB = 2 ^ 30 GB). Nói cách khác, CPU 64 bit có thể xử lý toàn bộ Internet ... 200 lần;) (ước tính bởi WolframAlpha ).

Tuy nhiên, trong các hệ điều hành đời thực, CPU 32 bit có thể giải quyết khoảng 3 GiB RAM. Đó là do kiến ​​trúc bên trong của hệ điều hành - một số địa chỉ được dành riêng cho các mục đích khác. Bạn có thể đọc thêm về cái gọi là rào cản 3 GB trên Wikipedia . Bạn có thể nâng giới hạn này với Tiện ích mở rộng địa chỉ vật lý .


Nói về địa chỉ bộ nhớ, có vài điều tôi nên đề cập: bộ nhớ ảo , phân đoạnphân trang .

Bộ nhớ ảo

Như @Daniel R Hicks đã chỉ ra trong một câu trả lời khác, các hệ điều hành sử dụng bộ nhớ ảo. Điều đó có nghĩa là các ứng dụng thực sự không hoạt động trên các địa chỉ bộ nhớ thực, nhưng các ứng dụng được cung cấp bởi HĐH.

Kỹ thuật này cho phép hệ điều hành di chuyển một số dữ liệu từ RAM sang cái gọi là Pagefile (Windows) hoặc Swap (* NIX). HDD chậm hơn vài lần so với RAM, nhưng nó không phải là vấn đề nghiêm trọng đối với dữ liệu hiếm khi được truy cập và nó cho phép HĐH cung cấp cho ứng dụng nhiều RAM hơn so với thực tế bạn đã cài đặt.

Phân trang

Những gì chúng ta đã nói về cho đến nay được gọi là sơ đồ địa chỉ phẳng.

Phân trang là một lược đồ địa chỉ thay thế cho phép giải quyết nhiều bộ nhớ hơn mà bạn thường có thể với một từ máy trong mô hình phẳng.

Hãy tưởng tượng một cuốn sách chứa đầy những từ 4 chữ cái. Giả sử có 1024 số trên mỗi trang. Để giải quyết một số, bạn phải biết hai điều:

  • Số lượng trang mà từ đó được in.
  • Từ nào trên trang đó là từ bạn đang tìm kiếm.

Bây giờ, đó chính xác là cách CPU x86 hiện đại xử lý bộ nhớ. Nó được chia thành 4 trang KiB (mỗi trang 1024 từ) và những trang đó có số. (thực tế các trang cũng có thể là 4 MiB lớn hoặc 2 MiB với PAE ). Khi bạn muốn đánh địa chỉ ô nhớ, bạn cần số trang và địa chỉ trong trang đó. Lưu ý rằng mỗi ô nhớ được tham chiếu bởi chính xác một cặp số, đó sẽ không phải là trường hợp phân đoạn.

Phân khúc

Chà, cái này khá giống với phân trang. Nó được sử dụng trong Intel 8086, chỉ để nêu tên một ví dụ. Các nhóm địa chỉ hiện được gọi là phân đoạn bộ nhớ, không phải trang. Sự khác biệt là các phân đoạn có thể chồng lấp và chúng trùng nhau rất nhiều. Ví dụ, trên 8086, hầu hết các ô nhớ đều có sẵn từ 4096 phân đoạn khác nhau.


Một ví dụ:

Giả sử chúng ta có 8 byte bộ nhớ, tất cả đều giữ các số 0 trừ byte thứ 4 bằng 255.

Minh họa cho mô hình bộ nhớ phẳng:

 _____
|  0  |
|  0  |
|  0  |
| 255 |
|  0  |
|  0  |
|  0  |
|  0  |
 -----

Minh họa cho bộ nhớ phân trang với các trang 4 byte:

 PAGE0
 _____
|  0  |
|  0  |
|  0  |  PAGE1
| 255 |  _____
 -----  |  0  |
        |  0  |
        |  0  |
        |  0  |
         -----

Minh họa cho bộ nhớ được phân đoạn với các phân đoạn 4 byte được dịch chuyển bởi 1:

 SEG 0
 _____   SEG 1
|  0  |  _____   SEG 2
|  0  | |  0  |  _____   SEG 3
|  0  | |  0  | |  0  |  _____   SEG 4
| 255 | | 255 | | 255 | | 255 |  _____   SEG 5
 -----  |  0  | |  0  | |  0  | |  0  |  _____   SEG 6
         -----  |  0  | |  0  | |  0  | |  0  |  _____   SEG 7
                 -----  |  0  | |  0  | |  0  | |  0  |  _____
                         -----  |  0  | |  0  | |  0  | |  0  |
                                 -----   -----   -----   -----

Như bạn có thể thấy, byte thứ 4 có thể được xử lý theo bốn cách: (địa chỉ từ 0)

  • Phân đoạn 0, bù 3
  • Phân đoạn 1, bù 2
  • Phân đoạn 2, bù 1
  • Phân đoạn 3, bù 0

Nó luôn luôn là cùng một ô nhớ.

Trong các triển khai thực tế, các phân đoạn được thay đổi hơn 1 byte (đối với 8086, nó là 16 byte).

Điều tồi tệ về phân khúc là nó phức tạp (nhưng tôi nghĩ bạn đã biết điều đó;) Điều tốt là bạn có thể sử dụng một số kỹ thuật thông minh để tạo các chương trình mô-đun.

Ví dụ: bạn có thể tải một số mô-đun vào một phân đoạn, sau đó giả vờ phân khúc đó nhỏ hơn thực tế (chỉ đủ nhỏ để giữ mô-đun), sau đó chọn phân đoạn đầu tiên không trùng với phân đoạn giả nhỏ hơn và tải mô-đun tiếp theo , và như thế. Về cơ bản những gì bạn nhận được theo cách này là các trang có kích thước thay đổi.


1
Một hệ điều hành có thể cung cấp không gian địa chỉ ảo 4GiB đầy đủ (có thể trừ một trang - 4KiB cho x86) cho quy trình người dùng, nhưng nó khiến các cuộc gọi hệ thống trở nên đắt hơn do phải thay đổi không gian địa chỉ. Với PAE và các cơ chế tương tự, lượng bộ nhớ vật lý mà hệ thống có thể truy cập được có thể tăng lên mặc dù địa chỉ vẫn bị giới hạn ở 32 bit.
Paul A. Clayton

Đó không phải là những gì tôi đang tìm kiếm, nhưng dù sao đó cũng là thông tin tốt! Cảm ơn bạn đã giải thích tốt về max. điều chữ số (1 = tối đa như trong nhị phân 9 là tối đa) để so sánh bảng nhị phân và thập phân. Thực sự là một cách tốt để suy nghĩ về điều này. Tôi đã học được một cái gì đó mới. :) Cảm ơn!
johan smohan

Gibi và Giga này rất khó hiểu ... Bởi vì trên một số trang web tôi đọc rằng bộ nhớ được đo bằng Gibi và trên các trang khác là ở Giga ... Bạn có nguồn nào đáng tin cậy / tốt không?
johan smohan

Wikipedia có một bài viết về tiền tố nhị phân, bao gồm một số nền tảng lịch sử. Hầu hết các số liên quan đến phần cứng sử dụng tiền tố thập phân, ngoại lệ đáng chú ý nhất có lẽ là RAM và có thể là thang màu - ví dụ. LCD có màu 16M có ba kênh màu 8 bit (2 ^ 24). Trả lời câu hỏi của bạn trực tiếp: Trong trường hợp này, số lượng địa chỉ khả dụng bằng với số byte bộ nhớ, vì RAM được xử lý trên cơ sở mỗi byte. CPU 32 bit có thể xử lý tối đa 2 ^ 32 B, 64 bit một - 2 ^ 64.
gronostaj

Cảm ơn! Tôi cần điều này cho các kỳ thi ở trường. :) Tôi nghĩ rằng tôi hiểu hầu hết mọi thứ bây giờ. Điều duy nhất vẫn làm phiền tôi là tại sao 2 ^ 32 B, nếu đó là bộ xử lý 32 bit chứ không phải 32byte?
johan smohan

3

Ngoài những điều trên, lưu ý rằng địa chỉ ảo được sử dụng, cùng với nhiều không gian địa chỉ . Vì vậy, mặc dù bạn chỉ có 1GB RAM, một chương trình có thể sử dụng tối đa 4GB bộ nhớ ảo (mặc dù hầu hết hệ điều hành sẽ giới hạn ở mức thấp hơn mức này). Và về mặt khái niệm bạn có thể có một số lượng (gần) vô hạn các không gian địa chỉ 4GB như vậy.

Kích thước RAM không giới hạn (rất nhiều) kích thước tối đa của một chương trình hoặc số lượng chương trình bạn có thể chạy, nhưng thay vào đó hạn chế hiệu suất. Khi bộ nhớ thực trở nên "quá mức" và hệ thống bắt đầu "đập" khi nó "tráo đổi" "trang" bộ nhớ qua lại giữa RAM và đĩa, hiệu suất giảm mạnh.


2

Dung lượng RAM 1GB sẽ chiếm 1024 * 1024 * 1024 byte, hoặc 1.073.741.824 byte.

Bộ xử lý 32 bit luôn có 4 * 1024 * 1024 * 1024 byte hoặc 4.294.967.296 byte không gian địa chỉ 1Gbyte RAM xuất hiện trong không gian này. Trên bộ xử lý Intel, một số RAM cần xuất hiện ở địa chỉ 0 cho các vectơ ngắt, vì vậy RAM vật lý bắt đầu ở địa chỉ 0 và tăng lên.

Những thứ khác xuất hiện trong không gian địa chỉ đó, chẳng hạn như BIOS và ROM tùy chọn (ở 384Kbyte trên trong 1Mbyte đầu tiên), các thiết bị I / O (như APIC) và RAM video. Một số điều kỳ lạ cũng xảy ra với chế độ quản lý hệ thống "SMRAM" mà tôi chưa hoàn toàn hiểu được.

Lưu ý đây là không gian địa chỉ vật lý, theo quan điểm của kernel. MMU có thể sắp xếp lại tất cả những điều này theo bất kỳ cách nào cho quy trình không gian người dùng.


Tôi đỏ trên wikipedia rằng 1 địa chỉ bộ nhớ rộng 32 bit hoặc 4 octet (1 octet = 8 bit), so với bộ xử lý 64 bit trong đó 1 địa chỉ bộ nhớ hoặc 1 số nguyên rộng 64 bit hoặc 8 octet. Bạn đã đúng về không gian địa chỉ 4 * 1024 * 1024 * 1024 byte, nhưng tôi đã tìm kiếm không gian địa chỉ bộ nhớ, mà tôi nghĩ là 1GB / 32 bit, nhưng tôi vẫn không biết liệu mình có đúng hay không. :) Cảm ơn về câu trả lời của bạn!
johan smohan

Np. CPU Intel có hai không gian địa chỉ: "Bộ nhớ" và "I / O". Những thứ khác ngoài RAM xuất hiện trong không gian "Bộ nhớ". Những thứ khác như thiết bị I / O hoặc ROM có thể ở những điểm không được RAM sử dụng. Nói chung chỉ có các thiết bị I / O xuất hiện trong không gian địa chỉ I / O.
LawrenceC

@johansmohan Cả hai số của bạn và câu trả lời của Lawrence đều không đúng. Không có mối quan hệ cố định giữa "độ rộng bit" của bộ xử lý và độ rộng của các địa chỉ RAM mà nó có thể sử dụng. Bộ xử lý x86 chỉ 32 bit có thể giải quyết 64 GB RAM. bộ xử lý x64 bắt đầu ở không gian địa chỉ vật lý 40 bit và hiện tại là 52 bit. Đối với không gian địa chỉ ảo, điều đó cũng có thể khác nhau. Trên x64, mặc dù các địa chỉ ảo cần 64 bit để lưu trữ, nhưng chỉ có 48 bit được triển khai, với VAS là 256 TiB thay vì 16 EiB mà bạn mong đợi từ 64 bit.
Jamie Hanrahan

0

Bộ xử lý 32 bit có thể xử lý tối đa 2 ^ 32 byte bộ nhớ riêng lẻ (khoảng 4GB), nhưng có bộ nhớ 1GB sẽ tạo ra bộ nhớ byteof có thể định địa chỉ 1 * 1024 * 1024 * 1024 (mặc dù bạn có thể vẫn có không gian địa chỉ ảo 2 ^ 32 ). Một CPU 64 bit có thể giải quyết 2 ^ 64 byte riêng lẻ, nhưng tôi nghĩ rằng hầu hết các hệ thống chỉ sử dụng 48 bit cho các địa chỉ bộ nhớ làm giới hạn trên. địa chỉ byte 2 ^ 48.


Ý bạn là 1024 * 1024 * 1024 chứ không phải 1 * 1024 * 1024 phải không?
johan smohan

Một bộ xử lý 32 bit có thể xử lý tối đa 2 ^ 32 octet hoặc bit? Chỉ cần kiểm tra, bởi vì tôi phải biết nó chắc chắn.
johan smohan

@johan smohan Đúng, nó phải là 1 * 1024 * 1024 * 1024
AcId

@johan smohan Bộ xử lý 32 bit có thể xử lý tối đa 2 ^ 32 byte, với một byte là 8 bit (một octet t bit)
AcId

0

Câu trả lời được chấp nhận cho một lời giải thích tốt. Nhưng tôi không nghĩ rằng đó là câu trả lời. Nó không chứa bất cứ điều gì về xe buýt địa chỉ . Và kích thước của nó thực sự là lý do chính của các hạn chế bộ nhớ. Ví dụ 8080 là bộ xử lý 8 bit (kích thước của bus dữ liệu của nó là 8 bit), nhưng nó có bus địa chỉ 16 bit. Nó có thể giải quyết 2 ^ 16 = (2 ^ 6) * (2 ^ 10) = 64 * 1024 byte = 64KB.

Bạn có thể tìm thêm ở đây (32-bit) trong phần "Lịch sử kỹ thuật".


Tôi đồng ý. Lưu ý rằng các mô hình sau của PDP-11 16 bit có bus địa chỉ 22 bit (và do đó có thể giải quyết 4 MB RAM), HP 1000MX, cũng "16 bit", cuối cùng đạt 16 MB RAM (24 địa chỉ -bit); VAX là CPU 32 bit nhưng có không gian địa chỉ vật lý 30 bit, nhưng một nửa được dành cho không gian I / O, cho giới hạn RAM là 512 MB; "16-bit" 8086, 1 MB; "16-bit" 80286, 16 MB; v.v. Và khi PAE được giới thiệu với Pentium Pro, x86 32 bit có thể giải quyết tối đa 64 GB RAM (không gian địa chỉ vật lý 24 bit, mặc dù ba bit thứ tự thấp không bao giờ thực sự ra khỏi CPU).
Jamie Hanrahan

-2

Tôi tin rằng thông tin cơ bản nhất bị mất trong cuộc trò chuyện này, vì vậy đây là câu trả lời của tôi:

Nói "Đây là bộ xử lý 32 bit" có nghĩa là kích thước lệnh hoặc kích thước lệnh, cpu có thể hiểu và làm việc cùng một lúc là 32 bit. Tương tự như vậy với bộ xử lý 64 bit: chúng có thể xử lý các hướng dẫn tối đa 64 bit.

Hãy nghĩ về điều này giống như một máy tính cơ học cũ: bạn chỉ có rất nhiều chữ số, vì vậy đơn giản là không thể nhập bất kỳ số nào dài hơn.

Bây giờ, một địa chỉ mà CPU có thể sử dụng cũng phải phù hợp với cùng một không gian đó, vì vậy đối với bộ xử lý 32 bit, địa chỉ mà nó sử dụng cũng chỉ có thể là tối đa 32 bit. Vì vậy, từ đây chúng ta chỉ cần tính toán số lượng địa chỉ tối đa (nghĩa là lượng RAM tối đa mà CPU có thể sử dụng):

2 ^ 32 = 4294967296 (= 4 GB)

hoặc là

2 ^ 64 = 18446744073709551616 (= cách hơn;)

Hoặc, như một ví dụ thú vị, chiếc Commodore 64 cũ của tôi có CPU 16 bit, vì vậy nó có khả năng quản lý bộ nhớ:

2 ^ 16 = 65536 byte (= 64 KB)

Đây là logic cơ bản, nhưng, như đã nêu trước đây, có nhiều cách xung quanh giới hạn này, như không gian địa chỉ ảo, ánh xạ bộ nhớ, v.v.


2
Sự khác biệt đáng kể giữa bộ xử lý 32 và 64 bit là phạm vi địa chỉ (ảnh hưởng đến không gian địa chỉ ảo nhiều hơn "thực"). Bộ xử lý sử dụng nhiều thủ thuật đến mức khó có thể nói độ rộng đường dẫn dữ liệu thực tế là gì, trong nhiều trường hợp. Và độ dài lệnh không liên quan nhiều đến "chiều rộng" của bộ xử lý.
Daniel R Hicks

Lời giải thích là hoàn toàn chính xác. Giả sử bạn không có nghĩa là kích thước chip thực tế tính bằng centimet khi nói "chiều rộng bộ xử lý", trong trường hợp đó bạn sẽ đúng khi nói nó không liên quan, bạn đang nhầm lẫn các kỹ thuật ánh xạ bộ nhớ / không gian địa chỉ ảo với địa chỉ bộ nhớ vật lý. Ngoài ra, những gì bạn nói có liên quan nhiều hơn đến việc triển khai kernel, bạn có thể muốn kiểm tra hạt nhân linux PAE.
Tuncay Göncüoğlu

2
Độ dài của một lệnh hoàn toàn không có mối quan hệ nào với "chiều rộng" của bộ xử lý trong các hệ thống hiện đại. Các giá trị phù hợp nhất là chiều rộng của các thanh ghi (mặc dù có thể bị đánh lừa), độ rộng của đường truyền giữa bộ xử lý và bộ nhớ và kích thước tính theo bit của một địa chỉ bộ nhớ. Nhưng 3 giá trị này có thể rất dễ dàng khác nhau.
Daniel R Hicks

1
@DanielRHicks Daniel Hicks là chính xác. "Độ rộng bit" của CPU không nhất thiết phải liên quan đến "kích thước lệnh hoặc kích thước lệnh". Đã có những CPU được chế tạo theo cách đó nhưng bộ xử lý hàng hóa ngày nay (x86 / x64) không nằm trong số đó.
Jamie Hanrahan
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.