Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RISC_2009.DOC
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.19 Mб
Скачать

3. Приклад для розрахунку формату адреси для кеш-пам’яті

Розрахувати формати адрес для кеш з наступними параметрами:

  • Кеш команд: 128 K, 64 блоки

  • Кеш даних: 256 K, 128 блоки.

  • Основна пам’ять: 256 Мб.

Процесор звертається до пам’яті за фізичною адресою, а кеш перехоплює це звернення без відома процесора та трактує адресу за своїм форматом, визначеним відносно параметрів кешу.

Вся основна пам’ять ділиться на секції розміром пам’яті кешу. У свою чергу секція ділиться на блоки, а кількість байт у блоці рівна розміру блоку.

Кожний із кешів має свої параметри: розмір пам’яті та кількість блоків. Тому формат адреси для кожного із кешів різні.

Визначення розрядності полів формату адреси кешу команд:

  • розмір зовнішньої пам’яті MemSize = 256 M = 268435456 Byte;

  • розмір пам’яті кешу команд InstructionCacheSize = 128 K = 131072 Byte;

  • розрядність поля Section рівна: NSection=]log2(MemSize/InstructionCacheSize)[=]log2(268435456/131072)[=11;

  • кількість блоків рівна BlockNumber = 64;

  • розрядність поля Block рівна: NBlock= ]log2(BlockNumber)[=]log2(64)[= 6;

  • розмір блоку BlockSize = InstructionChacheSize/BlockNumber = 131072 /64 = 2048 Byte;

  • розрядність поля Byte рівна NByte =]log2(BlockSize)[=]log2(2048)[= 11.

Формат адреси кешу команд наведено на рис. 8.

31 21

20 15

14 4

3 0

Byte(11)

Block(6)

Section(11)

(4)

Рис. 8. Формат адреси кешу команд

Визначення розрядності полів формату адреси кешу команд:

  • розмір зовнішньої пам’яті MemSize = 256 M = 268435456 Byte;

  • розмір пам’яті кешу команд DataChacheSize = 256 K = 262144 Byte;

  • розрядність поля Section рівна: NSection=]log2(MemSize/DataChacheSize)[=]log2(268435456 /262144 Byte)[=10;

  • кількість блоків рівна BlockNumber = 128;

  • розрядність поля Block рівна: NBlock= ]log2(BlockNumber)[=]log2(128)[= 7;

  • розмір блоку BlockSize = DataChacheSize/BlockNumber = 262144 /128= 2048 Byte;

  • розрядність поля Byte рівна NByte =]log2(BlockSize)[=]log2(2048)[= 11.

Формат адреси кешу даних наведено на рис. 9.

31 21

20 15

14 4

3 0

Byte(11)

Block(7)

Section(10)

(4)

Рис. 9. - Формат адреси кешу даних

4. Приклад розрахунку розрядності шини адрес для взаємодії з основною пам’яттю

Розрахувати кількість елементів пам’яті, з яких побудована основна пам’ять, кількість комірок заданої розрядності та мінімальну розрядність шини адрес для доступу до основної пам’яті з наступними параметрами:

  • Розрядність шини даних: 16 біт;

  • Елементи пам’яті, на яких

побудована основна пам’ять

комп’ютера: 1Кх8;

  • Об’єм основної пам’яті: 32 Мб.

Розрахунок кількості елементів пам’яті:

Позначення елементів пам’яті 1Кх8 слід розуміти таким чином:

1К - кількість комірок в пам’яті;

8 - розрядність (кратна байту).

Для побудови основної пам’яті об’ємом 32 Мб на елеменах пам’яті 1Кх8 нам необхідно:

  1. Визначити об’єм основної пам’яті в Кілобайтах: ММ=32*1024=32768 Кбайт.

  2. Визначити об’єм одного елемента пам’яті в Кілобайтах: SM=1*x Кбайт. (х=у/8, де у-розрядність елемента пам’яті.)

Визначити кількість елементів пам’яті N можна поділивши об’єм основної пам’яті ММ на об’єм пам’яті одного елемента SM. N=32768/1=32768.

Розрахунок кількості комірок:

Об’єм основної пам’яті ММ=32768 Кб, розрядність кожної комірки пам’яті R=16.

Для визначення кількості комірок NM нам потрібно визначити об’єм основної пам’яті в бітах ММb та поділити його на розрядність комірки R.

MMb=MM*1024*8=32768*1024*8=268435456.

NM=MMb/R=268435456/16=16777216.

Розрахунок розрядності шини адрес:

Розрядність шини адрес RA визначається за формулою:

RA = ]Log2NM[ = ]Log216777216[ = 24.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]