2. ОЗУ с чередованием
Пусть типичная длина слова данных, запрашиваемая программами, равна L, тогда сделаем следующее:
1. Организуем ОЗУ из двух отдельных частей, называемых банками. При этом если выборка слова происходит из одного банка, то другой банк выборке не участвует, а значит и не должен будет потом восстанавливаться.
2. Адреса в ОЗУ между банками распределяются следующим образом:
|
Банк1
|
Lc
|
|
|
|
Банк2
|
|
|
|
|
|
|
Банк1
|
|
|
|
|
|
|
Банк2
|
|
|
|
|
|
Банк 1 – ячейки памяти, размещенные в банке 1.
Банк 2 – ячейки памяти, размещенные в банке 2.
Группы ячеек банка 1 и банка 2 чередуются между собой.
Lc – длина слова, или число ячеек памяти в группе. Величина Lc при конструировании ОЗУ выбирается равной L.
Результат: пусть из памяти происходит последовательная выборка слов длины L, тогда каждое новое слово будет выбираться из нового банка и не потребуется ждать восстановления. А второй банк, из которого выбиралось предыдущее слово, будет восстанавливаться. Добились того, что при последовательной выборке словами длиной L восстановление микросхем не играет отрицательной роли.
Заметим, что механизм будет срабатывать не всегда, а только при выполнении условий:
1 Выборка последовательная.
2 Все выбираемые слова расположены в пределах одного банка. Для того, чтобы при реальной работе машины эти условия почаще выполнялись, применяется специальный способ размещения данных в памяти “ размещение данных с выравниванием на границу слова”.
Выравнивание на границу слова
Размещение данных при способе размещения без выравнивания:
Результат: поскольку многие соседние слова данных оказались либо в одном банке, либо одно слово переходит через границу банка – чередование не работает и выборка данных замедляется в два раза.
Размещение данных при способе размещения с выравниваем на границу слова:
Результат: каждое очередное слово – в отдельном банке.
Do'stlaringiz bilan baham: |