Федеральне Агентство освіти Російської Федерації Пензенський державний університет Кафедра "Інформаційна безпека систем і технологій"
РЕФЕРАТ
по темі:
"Організація пам'яті СП. Доступ до пам'яті. Блоки пам'яті. Зовнішня пам'ять. Кеш-пам'ять "
Дисципліна: ЦіМПТ
Група:
Виконав:
Керівник роботи:
Пенза 2006
Зміст
Введення
Метод подвійного доступу до пам'яті
Кеш-команди і звернення до даних по шині пам'яті
Шини пам'яті і генерація адрес
Звернення до блоку пам'яті і конфлікти
Обмеження при зверненні до простору пам'яті
Інтерфейс зовнішньої пам'яті
Банки зовнішньої пам'яті
Небанковая пам'ять
Вибір початкового завантаження пам'яті
Синхронізація звернення до зовнішньої пам'яті
Зовнішня пам'ять
Шини пам'яті і генерація адрес
Обмін даними між шинами пам'яті
Простір внутрішньої пам'яті ADSP-21062
Простір внутрішньої пам'яті ADSP-21061
Простір пам'яті багатопроцесорної системи
Висновок
Введення
Для зберігання програм і даних
процесори ADSP-2106x мають великий обсяг двохпортової пам'яті, розташованої на кристалі. Пам'ять ділиться на два блоки, які називаються блок 0 і блок 1. Обсяг пам'яті, доступної в
процесорах ADSP-2106x, наведено нижче:
Характеристики SRAM
| ADSP-21060
| ADSP-двадцять одна тисяча шістьдесят дві
| ADSP-21061
|
Повний обсяг
| 4 Мбіт
| 2 Мбіт
| 1 Мбіт
|
Обсяг блоку
| 2Мбіт
| 1 Мбіт
| 0.5 Мбіт
|
число 48-розрядних слів
| | | |
на блок
| 40 Кслов
| 20 Кслов
| 8 Кслов
|
число 32-розрядних слів
| | | |
на блок
| 64 Кслова
| 32 Кслова
| 16 Кслов
|
число 16-розрядних слів
| | | |
на блок
| 128 Кслов
| 64 Кслова
| 32 Кслова
|
Через зовнішній порт
процесора ADSP-2106x можна адресувати до 4 гігаслов додаткової пам'яті, що знаходиться поза
кристалом.
32-розрядні слова використовуються для представлення даних з плаваючою точкою одиночної точності
стандарту IEEE.48-розрядні слова містять команди або 40-розрядні дані з плаваючою комою з високою точністю. Крім
того, для представлення цілочисельних або дробових даних ADSP-2106х підтримує формат 16-розрядних коротких слів.
У кожному
процесорі ADSP-2106x пам'ять з'єднується з іншими функціональними пристроями через три внутрішні
шини: шину пам'яті програми (РМ), шину пам'яті даних (DM), шину вводу-виводу (I / O). Шина РМ і шина DM спільно використовують один порт пам'яті, а шина I / O - інший. Внутрішні шини РМ і DM управляються ядром процесора, шина I / O управляється пристроєм введення-виведення (ЮР), розташованим на кристалі ADSP-2106x. Шина I / O дозволяє здійснювати паралельну передачу даних між будь-яким блоком пам'яті і портами зв'язку ADSP-2106x (лінк-портами, послідовними портами і зовнішнім портом).
При такій двохпортової структурі звернення до внутрішньої пам'яті ядра процесора і пристрої введення-виведення здійснюються незалежно по відношенню один до одного. В одному циклі до кожного блоку пам'яті можуть звертатися і ядро процесора, і
пристрій введення-виведення, причому коли ядро процесора і пристрій введення-виведення звертаються до одного й того ж блоку, то додаткових циклів не потрібно.
Ядро процесора і пристрій вводу-виводу мають доступ до зовнішніх шин (DATA
47 0, ADDR
310) через зовнішній порт ADSP-2106x. Зовнішній порт забезпечує доступ до пам'яті, розміщеної поза кристалом, і до периферійних пристроїв. Через нього можна звертатися до внутрішньої пам'яті інших ADSP-2106х, з'єднаних в багатопроцесорну систему. Схема з'єднання із загальною шиною дозволяє реалізовувати одне об'єднане адресний простір, в якому можуть зберігатися і код, і дані.
Зовнішня пам'ять може бути 16 -, 32 - або 48-розрядна;
контролер прямого доступу в пам'ять (DMA)
автоматично упаковує зовнішні дані в слова
відповідної розрядності: 48-розрядні команди або 32-розрядні дані. Зауважимо, що внутрішня пам'ять розділена на два
блоки, звані блок 0 і блок 1, а зовнішній простір пам'яті розділене на
чотири банки.
Метод подвійного доступу до пам'яті
У процесорах сімейства ADSP-2100 і ADSP-21 тисячу пам'ять традиційно поділяється на пам'ять програми (для зберігання команд) та на пам'ять даних (для зберігання даних). Для модифікованої гарвардської архітектури
процесорів характерна можливість зберігання даних у пам'яті програми. У ADSP-2106x підтримується поділ розташованих на кристалі шин на окремі шини: для пам'яті програми і пам'яті даних (як у сімействі ADSP-+21000), але не обмежується використання одного з двох блоків пам'яті для зберігання програми, а іншого - для зберігання даних. Така
організація дозволяє вільно конфігурувати пам'ять для зберігання різних комбінацій коду і даних.
Наявність незалежних шин пам'яті програми і пам'яті даних дозволяють ядру процесора ADSP-2106x одночасно звертатися до команд і даних в обох блоках пам'яті. Якщо необхідно звернутися до двох слів в одному і тому ж блоці пам'яті (по одній і тій же шині) за допомогою однієї команди, то буде потрібно додатковий цикл. Команди вибираються з пам'яті по шині пам'яті програми або з кеша команд. До даних можна звертатися по шині пам'яті даних (використовуючи DAG1) і по шині пам'яті програми (використовуючи DAG2). Схема з'єднання шин в ADSP-2106x показана на рис.5.1.
Два блоки пам'яті процесорів ADSP-2106x можуть бути сконфігуровані для зберігання різних комбінацій 48-розрядних команд і 32-розрядних даних. Тим не менш, максимальна ефективність (тобто виконання двох команд доступу до даних за один цикл) досягається, коли в одному блоці знаходяться команди і дані пам'яті програми, а в іншому блоці - тільки дані пам'яті даних. Це означає, що для команди, що вимагає двох звернень до даних, шина РМ (і DAG2) буде використовуватися для звернення до даних з блоку, що містить і команди, і дані, а шина DM (і DAG1) буде використовуватися для звернення до даних з блоку , який містить тільки дані,
причому обрана команда повинна бути доступна з кеша. Інший спосіб полягає в тому, щоб зберігати один операнд у зовнішній пам'яті, а інший - у будь-якому блоці внутрішньої пам'яті.
При реалізації цифрових фільтрів і швидкого
перетворення Фур'є (FFT) з використанням процесорів при виконанні деяких команд повинні бути доступні два операнда даних. У цифровому фільтрі, наприклад, коефіцієнти фільтра можуть зберігатися у вигляді 32-розрядних слів у тому ж самому блоці пам'яті, який містить 48-розрядні команди, в той час як 32-розрядні вибірки даних зберігаються в іншому блоці. Це дозволяє виконати в одному циклі команду з подвійним доступом до даних, коли коефіцієнти фільтра вибираються по шині РМ з використанням DAG2, а команда - з кеша.
Щоб забезпечити паралельний доступ до двох областей пам'яті за один цикл, необхідно виконати наступні умови:
дві адреси повинні розміщуватися в різних блоках пам'яті (тобто один в блоці 0, інший в блоці 1);
одну адресу повинен генеруватися DAG1, а інший - DAG2;
адреса DAG1 не повинен вказувати на той же самий блок пам'яті, з якого буде обрана команда;
команда повинна бути наступного типу:
Compute, Rx = DM (10-17, М0-М7), Ry = PM (18-115, М8-М15); (Зауважимо, що
читання і запис взаємозамінні).
Запам'ятайте, що якщо протягом передачі з використанням DAG2 обраній команди немає в кеші, то відбудеться невдале звернення до кеша.
Кеш-команди і звернення до даних по шині пам'яті
Зазвичай в ADSP-2106x команди вибираються по 48-розрядній шині даних пам'яті програми (PMD). Однак коли
процесор виконує команду з подвійним доступом до даних, яка вимагає, щоб дані зчитувалися або записувалися по шині
PMD, то виникає
конфлікт при використанні цієї шини. Кеш команд дозволяє вирішити цей конфлікт, забезпечуючи команду (якщо тільки вона збереглася в кеші після того, як була виконана вперше).
Забезпечуючи команду, кеш дозволяє ядру процесора звернутися до даних по шині
PMD; ядро процесора вибирає команду з кеша замість того, щоб вибирати її з пам'яті, так що в процесорі одночасно з вибором команди можуть передаватися дані по шині
PMD. У кеш розміщуються лише ті команди , при виборі яких з пам'яті виникає конфлікт зі зверненням до даних по шині
PMD. Кеш команд дозволяє здійснювати звертання до даних по шині РМ без додаткових циклів, якщо команда, яка повинна бути обрана, вже кешуватися. Навіть якщо команда і дані знаходяться в різних блоках пам'яті, але для їх вибірки використовується одна і та ж шина, то у випадку невдалого звернення до кеша завжди буде додаватися додатковий цикл.
Шини пам'яті і генерація адрес
У процесорі ADSP-2106x є три внутрішні шини, з'єднані з його двохпортової пам'яттю: шини РМ, DM і шина I / O.
Шини РМ і DM спільно використовують один порт пам'яті, а шина I / O - інший порт.
Програмний
автомат і генератори адреси даних (DAG1 і DAG2) формують адреси пам'яті. Програмний автомат виводить 24-розрядний адресу на шину РМ для вибору команди. DAG1 і DAG2 забезпечують адреси для
читання і запису даних (див. рис.5.1).
Два генератора адреси даних дозволяють виконувати непряму адресацію даних. DAG1 виводить 32-розрядний адресу на шину адреси DM. DAG2 виробляє 24-розрядний адреса для звернення до даних по шині даних РМ. DAG1 і DAG2 можуть генерувати адреси одночасно - по шині РМА і шині DMA - для подвійних операндів читання / запису, якщо команда, яка повинна бути обрана, доступна з кеша.
48-розрядна шина PMD використовується для передачі команд (і даних), 40-розрядна шина DMD використовується для передачі даних. Розрядність шини PMD - 48 біт у відповідність з довжиною командного слова. Коли ця шина використовується для передачі 32-розрядних даних з плаваючою крапкою або 32-розрядних даних з фіксованою точкою, то дані вирівнюються до 32 старшим розрядам шини.
40-розрядна шина DMD забезпечує шлях для передачі за один цикл вмісту будь-якого регістра в процесорі в будь-який інший регістр або в будь-яку клітинку зовнішньої пам'яті. Адреси даних беруться з одного з двох джерел: абсолютної величини, визначеної в команді (пряма адресація), або з виходу генератора адреси даних (непряма адресація) .32-розрядні дані з фіксованою точкою і 32-розрядні дані з плаваючою точкою одиночної точності також вирівнюються до 32 старшим розрядам шини.
Регістри РХ, що з'єднують шини, дозволяють виконувати
обмін даними між 48-розрядною шиною PMD і 40-розрядною шиною DMD або між 40-розрядним реєстрових файлом і шиною PMD. Ці регістри містять апаратні засоби для усунення відмінності в розрядності шин.
Три шини: РМ, DM і I / O - об'єднуються в зовнішньому порте процесора, утворюючи поза кристалом поодинокі
шини даних (DATA47_0) та адреси (ADDR31 _0)
Звернення до блоку пам'яті і конфлікти
За будь-якої з трьох внутрішніх шин ADSP-2106x можна звертатися до одного з блоків внутрішньої пам'яті в будь-який час. До кожного блоку двохпортової пам'яті може звернутися і ядро процесора (по шині РМ або шині DM), і пристрій введення-виведення (по шині I / O) за один цикл. Якщо ядро процесора і пристрій введення-виведення звертаються до одного й того ж блоку пам'яті, то додаткових циклів не потрібно.
Однак коли ядро процесора здійснює два звернення до одного блоку пам'яті в одному і тому ж циклі, наприклад, по шині РМ (використовуючи програмний автомат або DAG2) і по шині DM (використовуючи DAG1), то виникає конфлікт. Якщо це відбувається, то потрібен додатковий цикл. Спочатку виконується звернення по шині DM, а потім в додатковому циклі виконується звернення по шині РМ.
Обмеження при зверненні до простору пам'яті
Три внутрішніх
шини (DM, РМ і I / O) ADSP-2106x можуть використовуватися для звернення до карти пам'яті процесора згідно з такими правилами:
По шині DM можна звертатися до всього простору пам'яті.
По шині РМ можна звертатися тільки до простору внутрішньої пам'яті і до 12 молодшим мегасловам простору зовнішньої пам'яті.
По шині I / O можна звертатися до всього простору пам'яті, за винятком відображених в карті пам'яті регістрів ЮР (у просторі внутрішньої пам'яті).
Зауважимо, що у
Версії кристала 1.0 (Silicon Revision 1.0) і більш ранніх версіях при операції адресації з предмодіфікаціей не повинно змінюватися простір пам'яті адреси. Наприклад, предмодіфікація адреси в просторі внутрішньої пам'яті не повинна давати адресу в просторі зовнішньої пам'яті. Є одне виключення з цього правила: команда непрямого переходу (JUMP) або команда виклику (CALL) з перед-модифікацією адреси
можуть викликати перехід з внутрішньої пам'яті в зовнішню.
Версії кристала 2.0 (Silicon Revision 2.0) і більш пізні версії не мають обмежень на предмодіфікацію .
Інтерфейс зовнішньої пам'яті
Процесор ADSP-2106x забезпечує адресацію через зовнішній порт до 4 гігаслов пам'яті, розташованої поза кристалом. Це зовнішнє адресний простір включає простір пам'яті багатопроцесорної системи (пам'ять на кристалі інших ADSP-2106x, об'єднаних в багатопроцесорну систему), а також простір зовнішньої пам'яті (область пам'яті, розташованої поза кристала).
Сигнали управління пам'яттю дозволяють здійснювати пряме з'єднання з швидкими статичними пристроями пам'яті (SRAM). Можуть також використовуватися відображені в карті пам'яті
периферійні пристрої та більш повільна пам'ять до обумовленої користувачем комбінацією програмованих станів очікування і апаратних
сигналів підтвердження зв'язку. Висновки SBTS (
переклад шини в третій стан) і PAGE (межа сторінки) можуть використовуватися для інтерфейсу з динамічною пам'яттю (DRAM).
У зовнішній пам'яті можуть зберігатися і команди, і дані. Зовнішня шина даних (DATA47) повинна бути 48-розрядної для передачі команд і / або 40-розрядних даних з плаваючою комою з високою точністю, або 32-розрядної для передачі даних з плаваючою точкою одиночної точності. Якщо зовнішня пам'ять містить лише дані або упаковані команди, які будуть передаватися по DMA, то зовнішня шина даних може бути 16 - або 32-розрядної. У системі такого типу пристрій введення-виведення процесора ADSP-2106х здійснює розпакування вхідних даних і упаковку виходять даних.
Банки зовнішньої пам'яті
Зовнішня пам'ять розділена на чотири рівних банку; кожен з цих банків пов'язаний з власним генератором станів очікування. Це дозволяє відображати більш повільні периферійні пристрої в карту пам'яті того банку, для якого визначено конкретну кількість станів очікування. Відображаючи периферійні пристрої в різних банках, ви можете забезпечити роботу пристроїв I / O, які мають різні вимоги до синхронізації.
Банк 0 починається з адреси 0x0040 0000 у зовнішній пам'яті, за ним слідують банки 1, 2 і 3. Коли ADSP-2106x генерує адресу, що знаходиться усередині одного з чотирьох банків, то активізуються
відповідні лінії вибору пам'яті MSo.
Висновки можуть використовуватися як
вибір кристалу для пам'яті або інших зовнішніх пристроїв, усуваючи тим самим необхідність у зовнішній декодуючої логіці. MSo забезпечує лінію вибору банку динамічної пам'яті DRAM, коли він використовується в комбінації з
сигналом PAGE (див. "Виявлення
межі сторінки DRAM").
Розмір банків пам'яті може бути від 8 кілослов до 256 мегаслов і повинен бути дорівнює ступеню двійки.
Вибір розміру банку пам'яті виконується за допомогою поля біт MSIZE регістру SYSCON наступним чином:
MSIZE = log, (бажаний розмір банку) - 13.
Лінії MSi-o ~ лінії декодованого адреси пам'яті, стан яких змінюється в той же самий час, що і в інших ліній адреси. Коли немає
звернення до зовнішньої пам'яті, то лінії MS-io неактивні. Однак вони активні, коли виконується умовна команда звернення до пам'яті, незалежно від того, істинно умова або нет.д.ля забезпечення правильної роботи умовні команди запису в пам'ять не повинні застосовуватися в системах,
використовують
сигнал SW> якщо таке звернення в пам'ять не може бути перервано.
Зауважимо, що внутрішня пам'ять ADSP-2106x розділена на два
блоки, звані блок 0 і блок 1, у той час як простір зовнішньої пам'яті розділене на
чотири банки. Небанковая пам'ять
Область пам'яті вище банків 0-3 називається небанковим простором зовнішньої пам'яті. Для доступу в це адресний простір лінії вибору пам'яті MS
X НЕ
виставляються. Доступ до небанковому простору пам'яті може також
мати стану очікування, визначені в полях UBWS і UBWM регістру WAIT.
Вибір початкового завантаження пам'яті
Сигнал на лінії вибору пам'яті J3MS виставляється (низький рівень), тільки коли ADSP-2106x налаштований для початкового завантаження з EPROM. Це дозволяє здійснювати початкове завантаження з окремого зовнішнього простору пам'яті.
Стану очікування небанковой пам'яті і режим
стану очікування використовуються для звернення пристроїв, що визначаються сигналом J3MS.
Висновок J3JV1S управляється тільки провідним ADSP-2106x.
Синхронізація звернення до зовнішньої пам'яті
Синхронізація доступу до пам'яті для простору зовнішньої пам'яті і простору пам'яті багатопроцесорної системи описана нижче. Для отримання точних технічних даних по синхронізації звертайтеся до Переліку технічних характеристик ADSP-2106x.
Зовнішня пам'ять
ADSP-2106x може взаємодіяти з зовнішньою пам'яттю і з відображеними в карті пам'яті периферійними пристроями асинхронно, тобто незалежно від CLKIN. У багатопроцесорній системі ADSP-2106x повинен бути провідним для того, щоб звертатися до зовнішньої пам'яті.
Читання з зовнішньої пам'яті відбувається в наступній
послідовності ADSP-2106x виводить адресу читання і виставляє
сигнал вибору пам'яті (MSj-o) щоб вказати вибраний
банк.
Сигнал вибору пам'яті не скидається междупоследовательнимі зверненнями в один і той же
банк пам'яті.
ADSP-2106x виставляє строб читання (якщо звернення в пам'ять не переривається через умовної команди).
ADSP-2106x перевіряє, чи необхідні стану очікування. Якщо так, то сигнал вибору пам'яті і строб читання залишаються активними на додатковий (і) цикл (и). Наявність станів очікування визначається станом
сигналу зовнішнього підтвердження (АСК), внутрішнім програмованим
лічильником станів очікування або комбінацією обох.
ADSP-2106x фіксує дані.
ADSP-2106x скидає строб читання.
При ініціалізації іншого звернення до пам'яті ADSP-2106x виводить адресу і сигнал вибору пам'яті в наступному циклі.
Зауважимо, що якщо зчитування з пам'яті є частиною умовної команди, яка не виконується через те, що умова помилкова, то ADSP-2106x виводить адресу і сигнал вибору пам'яті для читання, але не виставляє строб читання і не зчитує дані.
Запис у зовнішню пам'ять, режим провідного Запис в зовнішню пам'ять відбувається в наступній послідовності:
ADSP-2106x виводить адресу запису і виставляє сигнал вибору пам'яті, щоб вказати вибраний банк. Сигнал вибору пам'яті не скидається між послідовними зверненнями в один і той же банк пам'яті.
ADSP-2106x виставляє строб запису і виводить дані (якщо звернення в пам'ять не переривається через умовної команди).
ADSP-2106x перевіряє, чи необхідні стану очікування. Якщо так, то сигнал вибору пам'яті і строб записи залишаються активними на додатковий (і) цикл (и). Наявність станів очікування визначається станом сигналу зовнішнього підтвердження (АСК), внутрішнім програмованим лічильником станів очікування або комбінацією обох.
ADSP-2106x скидає строб записи в кінці циклу.
ADSP-2106x переводить свої висновки даних в третій стан.
При ініціалізації іншого звернення до пам'яті ADSP-2106x виводить адресу і сигнал вибору пам'яті в наступному циклі.
Зауважимо, що якщо запис в пам'ять є частиною умовної команди, яка не виконується через те, що умова помилкова, то ADSP-2106x виводить адресу і сигнал вибору пам'яті для запису, але не виставляє строб запису і не виводить ніяких даних.
Шини пам'яті і генерація адрес
У процесорі ADSP-2106x є три внутрішні шини, з'єднані з його двохпортової пам'яттю: шини РМ, DM і шина I / O. Шини РМ і DM спільно використовують один порт пам'яті, а шина I / O - інший порт.
Програмний автомат і генератори адреси даних (DAG1 і DAG2) формують адреси пам'яті. Програмний автомат виводить 24-розрядний адресу на шину РМ для вибору команди. DAG1 і DAG2 забезпечують адреси для читання і запису даних (див. рис.5.1).
Два генератора адреси даних дозволяють виконувати непряму адресацію даних. DAG1 виводить 32-розрядний адресу на шину адреси DM. DAG2 виробляє 24-розрядний адреса для звернення до даних по шині даних РМ. DAG1 і DAG2 можуть генерувати адреси одночасно - по шині РМА і шині DMA - для подвійних операндів читання / запису, якщо команда, яка повинна бути обрана, доступна з кеша.
48-розрядна шина PMD використовується для передачі команд (і даних), 40-розрядна шина DMD використовується для передачі даних. Розрядність шини PMD - 48 біт у відповідність з довжиною командного слова. Коли ця шина використовується для передачі 32-розрядних даних з плаваючою крапкою або 32-розрядних даних з фіксованою точкою, то дані вирівнюються до 32 старшим розрядам шини.
40-розрядна шина DMD забезпечує шлях для передачі за один цикл вмісту будь-якого регістра в процесорі в будь-який інший регістр або в будь-яку клітинку зовнішньої пам'яті. Адреси даних беруться з одного з двох джерел: абсолютної величини, визначеної в команді (пряма адресація), або з виходу генератора адреси даних (непряма адресація) .32-розрядні дані з фіксованою точкою і 32-розрядні дані з плаваючою точкою одиночної точності також вирівнюються до 32 старшим розрядам шини.
Регістри РХ, що з'єднують шини, дозволяють виконувати
обмін даними між 48-розрядною шиною PMD і 40-розрядною шиною DMD або між 40-розрядним реєстрових файлом і шиною PMD. Ці регістри містять апаратні засоби для усунення відмінності в розрядності шин.
Три шини: РМ, DM і I / O - об'єднуються в зовнішньому порте процесора, утворюючи поза кристалом поодинокі шини даних (DATA47_0) та адреси (ADDR31 _0).
Обмін даними між шинами пам'яті
Регістр РХ забезпечує обмін даними між внутрішніми шинами: між 48-розрядною шиною PMD і 40-розрядною шиною даних DMD.48-розрядний регістр РХ складається з двох регістрів: 16-розрядного РХ1 і 32-розрядного РХ2. РХ1 і РХ2 можуть незалежно використовуватися в командах, а також розглядатися як об'єднаний регістр РХ.
Будь-який з двох регістрів РХ1 і РХ2 або об'єднаний регістр РХ можуть використовуватися при передачі даних між універсальними регістрами чи між пам'яттю і регістром. Ця передача даних може виконуватися по шині PMD або по шині DMD. Регістри РХ можуть зчитуватися в регістровий
файл даних або записуватися з нього по шині PMD або по шині DMD.
При передачі даних з використанням регістра РХ дані вирівнюються в ньому так, як показано на ріс.5.3. Коли дані передаються між РХ2 і шиною PMD, то використовуються 32 старших розряду шини. При передачі даних з РХ2 16 молодших розрядів шини PMD заповнюються нулями. Коли дані передаються між РХ1 і шиною PMD, то використовуються 16 середніх розрядів шини РМ. При передачі даних з РХ1 біти 15-0 і біти 47-32 заповнюються нулями. Коли об'єднаний регістр РХ використовується для передачі даних по шині PMD, то всі 48 розрядів можуть зчитуватися з пам'яті програми або записуватися в неї. РХ2 містить 32 старших розряду, а РХ1 містить 16 молодших розрядів 48-розрядного слова.
Наприклад, якщо необхідно записати по шині PMD 48-розрядне
слово в область пам'яті, звану Portl, то можна використовувати наступні команди:
R0 = 0x9A00; / * завантаження в R0 16 молодших біт * /
Rl = 0xl2345678; / * завантаження в R1 32 старших біта * / PX1 = RO; PX2 = R1;
РМ (Portl) = РХ; / * запис 16 молодших біт бітами 15-0 * /
/ * І 32 старших біта бітами 47-16 шини PMD * /
Простір внутрішньої пам'яті ADSP-21062
Обсяг пам'яті процесорів ADSP-двадцять одна тисяча шістьдесят два і ADSP-21060 різний (див. нижче)
Процесор Загальний Обсяг Максимальний Обсяг Максимальний обсяг пам'яті пам'яті даних пам'яті програми ADSP-21060 4Мбіта128 К х 3280 До х 48
ADSP-двадцять одна тисяча шістьдесят дві 2Мбіта64 К х 3240 До х 48
Пам'ять у ADSP-двадцять одна тисяча шістьдесят два розділена на два рівних блоки - блок 0 і блок 1, таким же чином, як і в ADSP-21060.
Простір пам'яті багатопроцесорної системи і простір зовнішньої пам'яті у процесорів ADSP-21 062 і ADSP-21060 однакові.
Блок 0 в ADSP-двадцять одна тисяча шістьдесят два розташовується в адресному просторі нормальних слів, починаючи з адреси 0x0002 0000, блок 1-е адреси 0x0002 8000. Карта 2-х Мбіт внутрішньої пам'яті ADSP-21062 наведена на ріс.5.7а і в табл.5.2а. Діапазон адрес
псевдонімів блоку 1 буде фактично розташовуватися в блоці 1, 0x0002 8000 - 0x0002 FFFF в адресному просторі нормальних слів, 0x0005 0000 - 0x0005 FFFF в адресному просторі коротких слів.
Простір внутрішньої пам'яті ADSP-21061
Об'єм пам'яті у процесорів ADSP-21061 і ADSP-21060 різний (див. нижче).
Процесор
| Загальний обсяг
| Максимальний обсяг
| Максимальний обсяг
|
| пам'яті
| пам'яті даних
| пам'яті програми
|
ADSP-21060
| 4 Мбіта
| 128 До х 32
| 80 К х 48
|
ADSP-двадцять одна тисяча шістьдесят дві
| 1 Мбіт
| 32 До х 32
| 16 До х 48
|
Пам'ять, розташована на кристалі процесора ADSP-21061, розділена на два рівних блоки, блок 0 і блок 1, так само як і пам'ять ADSP-21060. Простір пам'яті багатопроцесорної системи і простір зовнішньої пам'яті у процесорів ADSP-21061 і ADSP-21060 однакові.
Блок 0 процесора ADSP-21061 розташовується в адресному просторі нормальних слів, починаючи з адреси 0x0002 0000, блок 1-е адреси 0x0002 4000. Карта пам'яті для 1 Мбіта внутрішньої пам'яті ADSP-21061 показана на ріс.5.7б і в
таблиці 5.2б. Діапазон адрес псевдонімів блоку 1 буде фактично розташовуватися в блоці 1, 0x0002 4000 - 0x0002 7FFF в адресному просторі нормальних слів, 0x0004 8000 - 0x0004 FFFF в адресному просторі коротких слів.
Для полегшення перенесення кодів між
процесорами ADSP-2106x використовується система створення псевдонімів блоку 1, яка усуває необхідність у зміні кодів. Наприклад, блок 0 в ADSP-21 062 починається в просторі адрес нормальних слів з адреси 0x0002 0000. Блок 1 в ADSP-двадцять одна тисяча шістьдесят два починається в кінці блоку 0 зі суміжними (триваючими) адресами. Залишаються адреси у внутрішній пам'яті діляться на блоки, звані
псевдонімами блоку 1. Створення псевдонімів дозволяє зберігати будь-який код або дані з блоку 1 в ADSP-21060 з тим же самим адресами в ADSP-+21062 - ці адреси будуть псевдонімами фактичного блоку 1 процесора. Подібна структура створення псевдонімів формується і в ADSP-21061. (Див. карти пам'яті для процесорів ADSP-21061 і ADSP-двадцять одна тисяча шістьдесят-два).
Простір пам'яті багатопроцесорної системи
Простір пам'яті багатопроцесорної системи відображається у внутрішню пам'ять інших процесорів ADSP-2106x багатопроцесорні системи. Це дозволяє кожному ADSP-2106x звертатися до внутрішньої пам'яті і до відображеним в карті пам'яті регістрів ЮР інших процесорів.
Коли поле адреси Е нульове, а поле М ненульове, то утворюється адресу простору пам'яті багатопроцесорної системи, як показано на рис.5.5. Значення поля М визначає ідентифікатор (Ш, о) того зовнішнього процесора ADSP-2106x, до якого буде здійснюватися звернення, і тільки цей процесор буде реагувати на цикли читання / запису. Якщо поле М = 111, то виконується широковещательная запис у всі процесори. Всі процесори реагують на цю адресу, як якщо б використовувався ідентифікатор, що дозволяє запис в їх внутрішню пам'ять.
Замість прямого звернення до власної внутрішньої пам'яті ADSP-2106x може також звертатися до неї через простір пам'яті багатопроцесорної системи, використовуючи власний ID. У цьому випадку процесор просто зчитує з власної внутрішньої пам'яті або записує в неї і не робить спробу доступу із зовнішньої системної шини, (зауважимо, що це звернення до власної внутрішньої пам'яті через простір пам'яті багатопроцесорної системи здійснюється тільки за адресою, створеному в ядром процесора, а не за адресою, створеному в
контролером DMA).
Якщо обидва поля Е і М адреси на зовнішній шині нульові, тоді адресу буде ігноруватися. Виняток становить лише
випадок, коли ID процесора також не дорівнює нулю, тобто М = Ш, 0 = 000. Адреси з М = Ш, 0 = 000 дозволені тільки в системах з одним процесором.
Якщо ADSP-2106x намагається звернутися за помилковою адресою в простір пам'яті багатопроцесорної системи, то запис даних буде проігнорована, а при зчитуванні будуть отримані неправильні дані.
Організація внутрішньої пам'яті та розмір слова У внутрішній SRAM розміщуються наступні типи слів:
48-розрядні команди, 32-розрядні дані з плаваючою точкою, 16-розрядні короткі слова даних.
40-розрядні слова даних з плаваючою комою з високою точністю розміщуються в 48-розрядних словах.40 біт вирівнюються по лівому краю (біти 47-8).
Якщо ядро процесора звертається до своєї внутрішньої пам'яті, то розмір слова визначається згідно з такими правилами:
При вибірці команди завжди зчитується 48-розрядне слово;
При читанні / запису з використанням адресації нормальних слів проводяться операції з 32-розрядними або 48-розрядними словами в залежності від того, як блок пам'яті сконфигурирован в регістрі SYSCON;
При читанні / запису з використанням адресації коротких слів завжди проводяться операції з 16-розрядними словами;
При читанні / запису регістра РХ по шині РМ (DAG 2) завжди проводяться операції з 48-розрядними словами (якщо не використовується адресація коротких слів);
При читанні / запису регістра РХ по шині DM (DAG 1) завжди проводяться операції з 40-розрядними словами (якщо не використовується адресація коротких слів).
У програмі не повинно виконуватися звернення до однієї і тієї ж фізичної комірці пам'яті як до 32-розрядному слову і як до 48-розрядному слову. У внутрішній пам'яті використовується схема зворотного запису, в результаті чого виникають помилки, якщо відбувається
такий вид звернення.
Обмеження при зверненні до простору пам'яті Три внутрішні шини (РМ, DM і I / O) можуть використовуватися для звернення до карти пам'яті процесора
відповідно до наступних правил:
По шині пам'яті даних (DM) можна звертатися у всі простору пам'яті.
По шині пам'яті програми (РМ) можна звертатися тільки до простору внутрішньої пам'яті і молодшим 12 мегасловам простору зовнішньої пам'яті.
По шині вводу-виводу (I / O) можна звертатися у всі простору пам'яті, за винятком відображених в карті пам'яті регістрів ЮР (у просторі внутрішньої пам'яті).
Зауважимо, що у Версії кристала 1.0 (Silicon Revision 1.0) і раніше
операція адресації з перед-модифікацією не повинна змінювати адресуються простір пам'яті. Наприклад, перед-модифікація адреси в просторі внутрішньої пам'яті ADSP-2106x не повинна генерувати адресу у просторі зовнішньої пам'яті. Є одне виключення з цього правила: команда непрямого переходу (JUMP) або команда виклику (CALL) з перед-модифікацією адреси можуть викликати перехід з внутрішньої пам'яті в зовнішню. Версії кристала 2. x (Silicon Revision 2. x) і пізніше не мають цих обмежень.
Змішування 32-х і 48-розрядних слів в блоці пам'яті 32-розрядні дані і 48-розрядні команди можуть зберігатися в одному блоці пам'яті за умови, що адреси всіх команд молодшої адрес даних. Жодна команда не може зберігатися за адресою старше, ніж самий молодший адресу будь-якого слова даних. Це обмеження необхідно для запобігання перекриття адрес 32-розрядних і 48-розрядних слів. Команди повинні зберігатися, починаючи з молодшого адреси блоку.
Короткі 16-розрядні слова При зчитуванні 16-розрядних коротких слів в регістри ADSP-2106x слова автоматично розширюються до 32-розрядних чісел.16 старших розрядів заповнюються нулями або доповнюються по знаку. Це визначається значенням біта SSE в регістрі MODEL Якщо SSE = 0, то 16 старших розрядів заповнюються нулями. Якщо SSE = 1, то 16 старших розрядів доповнюються за знаком (винятком є зчитування короткого слова з регістру РХ - в цьому випадку старші розряди завжди заповнюються нулями).
Висновок
Процесор ADSP-21060 містить 4 Мбіта статичної оперативної пам'яті, організованою як два блоки по 2 Мбіта, які можуть конфігуруватися для різних комбінацій зберігання коду та даних. ADSP-двадцять одна тисяча шістьдесят дві містить 2 Мбіта пам'яті, 2 блоки по 1 Мбіт В одному циклі до кожного блоку пам'яті можуть незалежно звертатися ядро процесора і пристрій введення-виведення або контролер DMA. Використання двохпортової пам'яті та окремих шин дозволяє виконати за один цикл дві передачі даних з ядра і одну з пристрою введення-виведення.
Звернення до пам'яті може виконуватися до 16-розрядним, 32-розрядним або 48-розрядним словами. У ADSP-21060 пам'ять може містити максимум 128 кілослов 32-розрядних даних, 256 кілослов 16-розрядних даних, 80 кілослов 48-розрядних команд (і 40-розрядних даних) або комбінацію слів різної розрядності обсягом до 4 Мбіт. У ADSP-21 062 пам'ять може містити максимум 64 кілослова 32-розрядних даних, 128 кілослов 16-розрядних даних, 40 кілослов 48-розрядних команд (і 40-розрядних даних) або комбінацію слів різної розрядності обсягом до 2 Мбіт. У ADSP-21061 пам'ять може містити максимум 32 кілослова 32-розрядних даних, 64 кілослова 16-розрядних даних, 16 кілослов 48-розрядних команд (і 40-розрядних даних) або комбінацію слів різної розрядності, обсягом до 1 Мбіта.
Підтримується формат зберігання 16-розрядних даних з плаваючою точкою, що подвоює кількість даних, які можуть зберігатися на кристалі.
Перетворення між 32-розрядним форматом з плаваючою комою та 16-розрядним форматом з плаваючою точкою виконується за допомогою однієї команди.
Хоча кожен блок пам'яті може зберігати комбінації коду і даних, звернення до пам'яті виконується найбільш ефективно, коли в одному блоці зберігаються дані і для їх передачі використовується шина DM, а в іншому блоці - команди і дані, а для їх передачі використовується шина РМ. Таке використання шини DM і шини РМ - де кожній виділено блок пам'яті - гарантує виконання за один цикл двох передач даних. У цьому випадку команда повинна бути доступна з кеша. Передача операнда даних через зовнішній порт також відбувається за один цикл.
Інтерфейс зовнішньої пам'яті і периферійних пристроїв Зовнішній порт процесора ADSP-2106x забезпечує інтерфейс з зовнішньою пам'яттю та периферійними устройствамі.4 гігаслова зовнішнього адресного простору включаються до об'єднаного адресний простір ADSP-2106x. Роздільні шини на кристалі - адреси РМ, даних РМ, адреси DM, даних DM, адреси I / O і даних I / O - об'єднуються в зовнішньому порте і утворюють зовнішню системну шину з одного 32-розрядною шиною адреси і однієї 48-розрядною шиною даних . Зовнішня SRAM може бути як 16, 32, так і 48-розрядної; розташований на кристалі контролер DMA автоматично упаковує зовнішні дані в слова відповідної розрядності: або 48-розрядні команди, або 32-розрядні дані.
Адресація зовнішньої пам'яті полегшується за рахунок декодування старших адресних ліній для генерування сигналів вибору банку пам'яті. Для спрощення адресації динамічної оперативної пам'яті (DRAM) з сторінкової
організацією генеруються окремі
сигнали управління.
Процесор ADSP-2106x використовує програмовані стану очікування при зверненні до зовнішньої пам'яті і
сигнали квитирования для зовнішньої пам'яті, щоб забезпечити інтерфейс з DRAM і периферійними пристроями з різним швидкодією.