Якщо центральний процесор має 16-бітну шину адреси та 8-бітові слова, скільки пам'яті він може адресувати?


23

Я навчаюсь на закінчення семестрового іспиту і плутаюсь із наступним питанням. Якщо процесор має 16-бітну адресну шину та 8 бітових слів, на скільки пам'яті в КБ він може адресувати? Моє розуміння сказало б мені, що воно може адресувати 64 КБ, однак для цього я просто використав 2 ^ 16 = 65,536. Цей розрахунок ніколи не враховував 8-бітових слів, тому я не впевнений, чи правильно він. Також що означає 8 бітних слів?

Ура


16
Ви використовували це побічно: загальний об'єм адресируемой пам'яті становить 2 ^ 16 * 8 біт. Оскільки один байт = 8 біт, це 2 ^ 16 байт, тобто 65536 байт або 64 KiB. Зауважте, що K - префікс SI на 1000. Якщо ви маєте на увазі 1024, використовуйте Ki.
jcaron

2
Зверніть увагу на різницю між кілобаксами префікса SI (1000 байт) та бінарними префіксами кібібайт (1024 байти). 2 ^ 16 = 65,536 = 64 кібі ~ 65,5 кіло. Шукана відповідь, ймовірно, така, де кілограм прийнято означати кібі, але бувають випадки, коли різниця справді має значення. Якщо ви хочете бути повністю впевненими, скористайтеся безпечним маршрутом і вкажіть кількість байтів , і запропонуйте переклад на більш зручні одиниці, такі як кілобайти або кібібайти, як зручність для вашого вчителя. Порівняйте Вікіпедію: Бінарний префікс . Мікросхеми пам'яті зазвичай задають, наприклад, 65,536x8 біт.
CVn


3
Я припускаю, що ви не допускаєте жодних банківських змін. Більшість 16-бітних процесорів використовують певну форму заміни банку, що робить це дуже важко відповісти.
Джошуа

1
@ MichaelKjörling У запитанні сказано KB, який завжди означав 1024 байти.
kasperd

Відповіді:


38

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

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

Отже, ваш процесор зможе адресувати 64 КБ (2 ^ 16), але зможе перенести лише за одну операцію 8 біт.


3
Я впевнений, що це відповідь, за якою йде вчитель, але чи це насправді правильна? Не могли б ви використовувати щось на зразок PAE, щоб дозволити ієрахію 3 рівня (або навіть більше), щоб дозволити процесору отримати доступ більше 64 КБ? Я не фахівець з обладнання, але хіба Commodore 128 навіть не встиг зробити щось подібне на 8-бітній слові, 16-бітній шині, дозволяючи перемикати банки оперативної пам'яті?
Давидго

5
Не зовсім впевнений, я розумію, що ваше речення "зможе перенести лише за одну операцію 256B (2 ^ 8)"? Він може коли-небудь перенести 1 слово = 1 байт = 8 біт за одну операцію.
jcaron

8
@davidgo досі PAE вимагає відповідного розміру адресної шини. Процесорні процесори Intel, що підтримують PAE, мають адресну шину 36 біт.
Дмитро Григор'єв

6
PAE - це більш-менш назва бренду / функції, характерна для сучасних процесорів x86. Так, схеми опосередкованої адреси більшої кількості пам’яті впроваджувались протягом віків (наприклад, XMS), зрештою, вони підходять до підсистеми пам'яті як до периферійного пристрою, який можна конфігурувати постійно для викриття різної пам’яті у менший адресний простір. Також дивіться сегментовану модель пам'яті
Old

6
@Overmind ви повинні трохи уточнити свою відповідь. Ніхто насправді не використовує єдину B як одиницю, і причина саме в тому, що тут сталося - ви плутаєте біти і байти. ОП зазначає "8-бітні слова * - тому кожне слово має 8 біт (1 байт) і може перенести це лише за одну операцію. 256 - це просто кількість можливих значень, яке має кожне слово, а не скільки передається.
adelphus

21

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

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

8-бітний адресний блок у поєднанні з 16-бітовою шиною адреси становить 64 Кбіт оперативної пам'яті, на який може звертатися процесор.


3
Але я використовував машини, де одиницею роздільної здатності було 16 біт. (Отже, концепція є змістовною.)
Мартін Боннер підтримує Моніку

4
@MartinBonner Тим не менш, це не має прямого відношення до розміру слова CPU.
glglgl

1
@glglgl - Це дуже пов'язано. Я не вірю , що є якісь - архітектури , які не мають адресу одиниці або 8 біт або їх розмір слова.
Жуль

1
Я не згоден із твердженням, що слово - це найбільша одиниця , якою центральний процесор може керувати в цілому. Intel i7 має 64-бітну шину даних і досі може використовувати 256-бітні SIMD-інструкції. Якщо Вікіпедія правильна, то слово стосується ширини шини даних, а не внутрішнього матеріалу процесора.
Томас Веллер

1
@ThomasWeller: 8088 має 8-бітну шину даних, але все ще 16-бітну інструкцію. Насправді це 8086 з меншою шиною даних. Примітка: ширина шини даних і фактична передача також відрізняються (подумайте, несогласовані дані).
Джакомо Катенацці

1

Також що означає 8 бітних слів?

У контексті розмір слова відповідає розміру адреси для опису шини пам'яті. У пам'ять входить 16 біт, тому вона може вибирати 64кі місця. Потім кожне місце розташування містить 8 біт.

Розмір слова тут може або не збігається з розміром обчислювальної одиниці процесора, і це може або не може відповідати логічній деталізації в адресації.

Наприклад, центральний процесор може рекламувати 16-бітну шину (для цієї мети). Він використовує 16-бітові адреси в своїх інструкціях, і, як і ваш приклад, має 64ki. Але він має 15 біт шини адреси та 16 біт шини даних. Потрібно лише 32ki адреси та завжди отримує 2 байти з кожною локацією. (Якщо інструкція хотіла 1 байт, вона відправлятиме адресу з найменшим відсутнім бітом, отримує обидва байти на цьому кроці, а потім перегляне найменший біт потрібної адреси, щоб визначити, яку половину використовувати.)

Зауважте, що банківські комутації, PAE тощо, згадані іншими, тут не стосуються. Блок управління пам’яттю може використовувати 16-бітні адреси та мати 20-бітну апаратну адресу, тому процесору потрібно перемикати та картати речі, щоб використовувати фактичний 20-бітний діапазон адрес чіпів оперативної пам’яті, на які можна звернутись.

Обов’язково вкажіть одиниці у своїх відповідях. "64кі". Якого? 8-бітові слова, що робить (поки що) 64кі байт адресної оперативної пам’яті. Цей крок усуває плутанину і створює подібні дрібниці.


0

Ви також повинні використовувати розмір слів в обчисленнях. Відповідь - 64 Кб.

Ви можете адресувати 2 ^ 16 слів, і кожне слово - 8 біт (= 1 байт). Тому це 64 Кб.

Якщо розмір слова був 16 біт. Відповідь буде 128 Кб.


1
Ваш обчислення не відповідає звичайним 32-бітовим процесорам, які все ще можуть адресувати 2 ^ 32 байти пам'яті (4 ГБ), а не (2 ^ 32) * 4 (16 ГБ).
Дмитро Григор’єв

Сучасні процесори мають більші "рядки" та мають менше рядків адрес. Питання говорить про адресну шину, про фізичну сторону речей. Тож множення на розмір слова цієї шини (а не розмір регістру процесора) є правильним.
JDługosz

0

У цьому є дві сторони: те, що ваш інструктор, ймовірно, хоче, щоб ви сказали йому, і яка реальність.

Спочатку те, що ваш інструктор, ймовірно, хоче, щоб ви йому сказали.

"16 біт можуть адресувати 2 ^ 16 місць пам'яті, кожне місце розташування - 8 біт. Отже, ми можемо адресувати 524288 біт (65536 октетів) пам'яті."

Однак це відображає досить спрощений світогляд. Реальність є більш складною, і щоб дати остаточну відповідь, потрібно більше інформації. Деякі із способів реальної системи можуть бути складнішими, ніж ця.

  • У багатьох процесорах немає спеціальної карти вводу-виводу, тому частини адресного простору пам'яті, можливо, потрібно використовувати для речей, крім пам’яті.
  • "Розмір слова" процесора не є таким самим, як ширина шини даних пам'яті або найменшої адресної одиниці пам'яті.
  • Деякі автобуси дозволяють переміщувати одиниці даних різної величини. Це вимагає подальшої адреси, яка може або не може оброблятися бітами основної шини адреси.
  • Деякі автобуси мультиплексують різні сигнали на одних і тих же лініях. Наприклад, SDRAM використовує одні й ті ж адреси адрес двічі для надсилання "адреси рядка" та "адреси стовпця".
  • У багатьох системах використовуються підходи до комутації банків, щоб дозволити програмам отримати більше пам’яті, ніж процесор міг би спочатку звертатися.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.