Чи визначає розмір адресної шини або розмір шини даних "8-бітну, 16-бітну, 32-бітну, 64-бітну" системи?


15

Моє просте розуміння полягає в наступному.

Пам'ять (ОЗП) складається з бітів, групи з 8 яких утворюють байти, кожен з яких може бути адресований, а отже, і байт-адресовану пам'ять.

Адреса Bus зберігає місце байта пам'яті.

Якщо шина адреси має розмір 32 біт, це означає, що вона може містити до 32 32 номерів, а значить, може відсилати до 2 32 байт пам'яті = 4 Гб пам'яті і будь-яка пам'ять, більша за це, марна.

Шина даних використовується для передачі значення, яке потрібно записати в / зчитувати з пам'яті. Якщо у мене шина даних розміром 32 біт, це означає, що максимум 4 байти можна записати в / зчитувати пам'ять за раз. Я не знаходжу зв'язку між цим розміром і максимально можливим розміром пам'яті.

Але я прочитав тут, що:

Незважаючи на те, що більшість систем адресовані байтом, має сенс процесор переміщати якомога більше даних навколо. Це робиться за допомогою шини даних, і розмір шини даних - це те, звідки беруться назви 8-бітна система, 16-бітова система, 32-бітова система, 64-бітова система тощо. Коли шина даних шириною 8 біт, вона може передавати 8 біт за одну операцію з пам'яттю. Коли шина даних шириною становить 32 біти (як це найчастіше відбувається під час написання), максимум, 32 біти можна переміщувати за одну операцію пам'яті.

Це говорить про те, що розмір шини даних - це те, що дає ім’я ОС, 8 біт, 16 біт тощо. Що не так у моєму розумінні?


« Що не так у моєму розумінні? » - Ви намагаєтесь зробити одне визначення відповідним різним речам. Дескриптор розміру бітів використовувався в різні часи для різних речей.
тирса

1
Це означає, що означає виробник. Як правило, це буде щось, що нагадує розмір реєстру, але існує багато способів підробити / прокрутити це.
Даніель Р Хікс

Відповіді:


12

Зазвичай розмір шини даних визначається розміром регістрів процесора. Часто саме тип ОС визначає розмір регістрів процесора (64 проти 32). Фізичні розміри шини технічно можуть відрізнятися від цього (8088 як приклад), але це так рідко, що автор вашої цитати, ймовірно, асоціює їх два разом.

Як правило, розмір вказівника також відповідає розміру регістра, але ширина шини фізичної адреси може бути більшою (як у 1686-бітових 8086 на 20) або меншою (як у AMD 64 у 48)


2
" ширина фізичної адреси адреси може бути більшою " - Особливо з 4-розрядними та 8-бітовими процесорами!
тирса

Добре. Але я намагаюся це зрозуміти тривіально. Я не міг знайти зв'язку між розміром шини даних та максимально можливою пам'яттю, як я міг би пояснити розмір адресної шини. Отже, відповідь, здається, "НЕ АДРЕСА РОЗМІР шини, а розмір шини ДАНИХ" (тому що вона зазвичай така велика, як реєструє процесор). Я щось пропускаю?
учень

@learner Це правильно, плутанина полягає також у тому, що максимальний розмір вказівника системи є розміром регістрів процесора. У просторі адресного простору, як і у більшості сучасних систем, що дорівнює обмеженню розміром регістрів процесорів, отже, обмеження адреси, як ви вказали. Деякі процесори, особливо старіші, використовували прийоми, такі як спеціальна сегментована адресація, щоб обійти це.
Dougvj

@Dougvj, Гаразд, все зрозуміліше. Але чому вони зробили розміри шини адреси різними від розмірів регістрів процесорів? Чи не було б більше сенсу тримати їх однаковими? І я розгублений, де зберігаються адреси? (адресна шина або регістр процесора?) Дякую
учень

1
@learner Це правильно. Підсумовуючи: Позначення ОС точно відповідає розміру регістрів процесора. Шина адреси може бути або не бути такої ж величини, як реєструє процесор, тому максимально можлива адресна оперативна пам'ять не залежить від неї. Внутрішній процесор, однак, майже незмінно має якусь схему адресації за участю покажчиків, що мають той самий розмір, що і регістри процесора.
Dougvj

1

Це розмір регістра та обробка пам'яті в процесорі.

Використовуючи хитрощі, один 16-бітний процесор мав 20-бітну адресну шину, тому це не пам'ять поза процесором.


1

Немає «чистої» 32 або 64-бітної системи, і тому умови в будь-якому випадку є лише наближенням.

Наприклад, візьміть заяву "Пам'ять (ОЗП) складається з бітів, груп з 8, які утворюють байти, кожен з яких може бути адресований" . Це не дуже часто. ПК мають свою оперативну пам’ять на модулях DIMM, а ширина 64 біт. Ще в 90-х у вас були SIM-карти, і вони були шириною 32 біти.

У деяких системах DIMM повинні або можуть бути спарені ("ганг" / "подвійний канал"), що буде 128-бітною базою даних. Ця концепція передує так званим "64 бітним" процесорам від AMD та Intel.

Ці групи з 64 бітів з одного DIMM дійсно можна розділити на 8 байт. Це зроблено досить прозоро вашим процесором. Він також може розбити 64 біти на 4 * 16 біт, 2 * 32 біта або просто використовувати всі 64 біти як єдину змінну.

Однак найважливішим питанням є ширина адреси. Кожен байт пам'яті має свою адресу, але не кожен біт. Це означає, що 64 біти, отримані від одного DIMM, мають 8 адрес. Найнижчий з них завжди кратний 8: Тепер, скільки різних адрес підтримує ЦП? Є два загальних відповіді, принаймні теоретично. Деякі CPU підтримують 2 32 різних адреси, деякі підтримують 2 64 . Це відмінність є найпоширенішим розмежуванням між 32 та 64 бітовими системами.

На практиці 64-бітові системи сьогодні підтримують менше 2 64 байт оперативної пам’яті. Це було б недоступно і ніяк не вписувалося б у звичайний ПК. Стільки пам'яті важило б кілька мільйонів тонн!


Це регістр процесора, де зберігається адреса, або це адресна шина? Ви кажете "деякі процесори підтримують 2 ^ 32 різних адреси ...". Чим вони точно обмежені?
учень

Як правило, і розміри реєстру, і MMU (блок управління пам'яттю, частина ЦП, яка безпосередньо відповідає за пам'ять).
MSalters

0

Обидва насправді.

Біти на процесорі зазвичай є посиланням на розмір його внутрішніх регістрів. 32-розрядний процесор має 32 бітні регістри, які можуть або не можуть бути розділені на шматки.

Має сенс мати 32-бітний процесор з 32-бітовою шиною даних, оскільки ви можете переносити всі дані з пам'яті безпосередньо в регістри, але ви можете мати будь-який розмір шини даних. Таким чином, 32-бітний процесор зазвичай має 32-бітну шину даних, щоб полегшити передачу даних з неї та на неї.

А також має сенс мати 32-бітну адресну шину з двох причин. Більш широка адресна шина ускладнюватиме непряму адресацію, тому що у вас не буде реєстру, який би більше хотів би зберігати адресу пам'яті, або процесору знадобився б спеціалізований реєстр для адресації пам'яті. 16-бітна адресна шина. Навпаки, адресна шина, менша за регістр, - це лише марнотрата ресурсів. Є мікроконтролери, які використовують меншу адресну шину.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.