Чи взагалі має значення порядок контактів для цієї ОЗП?


11

Я намагаюся направити мікросхему pic32 на 128 КБ SRAMмікросхема і трохи важко підключити всі 17 адресних рядків і всі 8 ліній даних. Я намагаюся прив’язати перші 16 адресних контактів до portB штифтів 0-15, а шпильки даних до portD 0-7. Поміркувавши про це деякий час, я зрозумів, що, напевно, я ускладнюю своє життя, намагаючись вирівняти rb0 з a0, rb1 з a1 і т. Д. Все, що я дійсно хочу вміти, - це написати 16-бітове значення portB і більшість адрес завантажені та готові. Якщо я буду робити призначення PIN-кодів на основі простоти маршрутизації, логічна адреса буде відрізнятися між mcu та ram, але вона, принаймні, повинна бути послідовною. Оскільки більше нічого не потрібно спілкуватися з оперативною пам’яттю, я не думаю, що це буде проблемою, якщо mcu запитає адресу 0x101, а оперативна пам’ять надає їй адресу 0x110.

Однак мені цікаво, чи це гарна ідея. Якщо є якась внутрішня структура оперативної пам’яті, призначена для того, щоб зробити послідовне читання більш ефективним, або щось подібне, я, можливо, захочу перейти до проблеми їх маршрутизації 1: 1. Розташування штифтів на обох чіпах мені дещо випадкове, тому мені було б набагато простіше, якби я міг ігнорувати конкретні цифри. Чи є якась вагома причина, чому я повинен чи не повинен цього робити?

Відповіді:


12

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

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


Загальне:

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

Деякі ранні динамічні запам'ятовування покладаються на послідовність адрес та час доступу, щоб досягти оновлення комірки пам'яті. Ви навряд чи зустрінете багатьох із цих сьогодні.

Деякі спогади (спалах, eerom, деякі інші) мають тривалість життя, які залежать від кількості доступу, яка може бути за один доступ (читати чи записувати) або більше, як правило, лише для запису, а також може бути залежно від місця пам'яті або для якогось підмножини комірок пам'яті . В останньому випадку, якщо ви кодите рядки адрес, ви можете заважати алгоритмам вирівнювання зносу. Це буде лише потенційною проблемою з досить спеціалізованими пристроями, а аркуші даних можуть бути чітко зрозумілими щодо вимог


+1 для кваліфікатора "У цьому випадку" та пояснення, коли це може бути не так.
SplinterReality

5

Ні, замовлення не має значення. Рядки адреси в будь-якому порядку, як і рядки даних.

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