CYPRESS Memory Mapped Access to SPI F-RAM AN229843 Кіраўніцтва карыстальніка
1 Уводзіны
Энерганезалежную памяць Cypress SPI F-RAM можна выкарыстоўваць рознымі спосабамі. Па-першае, іх набор інструкцый сумяшчальны з класічным паслядоўным EEPROM і флэш-памяццю. Гэтая функцыя дазваляе распрацоўнікам кіраваць прыладамі F-RAM, такімі як EEPROM або Flash, з выкарыстаннем існуючых праграмных драйвераў.
З іншага боку, прылады F-RAM валодаюць характарыстыкамі аператыўнай памяці і перавагаміtages: яны могуць быць прачытаны і запісаны імгненна на аснове байт за байтам без неабходнасці сцірання або апытання, як прылады Flash. Удасканаленыя сучасныя кантралёры SPI могуць генераваць неабходныя паслядоўнасці каманд на хаду ў апаратным забеспячэнні і падтрымліваюць доступ да адлюстравання памяці праз паказальнікі. Гэта робіць паслядоўныя прылады F-RAM падобнымі на звычайную аператыўную памяць для прыкладанняў.
Дзве мадэлі выкарыстання прадстаўлены і параўноўваюцца падрабязна ў наступных раздзелах.
Доступ у стылі 2 EEPROM/Flash
Калі паслядоўная F-RAM выкарыстоўваецца як EEPROM або флэш-прылада, то тыповы паток кіравання:
- Адкрыйце спецыяльны прыбор file
- Усталюйце file зрушэнне да пэўнай пазіцыі
- Зрабіце выклік для чытання або запісу.
Крокі 2 і 3 паўтараюцца па меры неабходнасці.
Дадаць падтрымку F-RAM да існуючых драйвераў EEPROM/Flash звычайна проста. У многіх выпадках дастаткова дадаць толькі новы ідэнтыфікатар прылады ў спіс падтрымоўваных прылад у зыходным кодзе драйвера, каб прылады запрацавалі. Каманды SPI для чытання і запісу даных сумяшчальныя паміж EEPROM/Flash і F-RAM, а каманды сцірання проста ігнаруюцца прыладай F-RAM. Большасць прыкладанняў не абапіраюцца на значэнне па змаўчанні толькі што сцёртай памяці (напрыклад, 0xFF), таму гэта нармальна. У асаблівых выпадках, калі гэта адбываецца, сцёртая вобласць памяці можа быць відавочна ўстаноўлена ў чаканае значэнне па змаўчанні з дапамогай функцыі сцірання. Акрамя таго, код апытання, які выкарыстоўваецца ў праграмных драйверах EEPROM/Flash для выяўлення заканчэння праграмных аперацый, не ўплывае на F-RAM. Для такіх драйвераў праграмнага забеспячэння прылады F-RAM адразу ж выконваюць любую праграму або аперацыю сцірання, і кіраванне вяртаецца пасля адной ітэрацыі апытання. Акрамя таго, апытанне можа быць цалкам адключана для F-RAM у драйверах.
У Linux, як канкрэтны эксample, метад доступу патрабуе ад карыстальніка адкрыцця прылады памяці (MTD) або спецыяльнай прылады EEPROM file і выдаваць два сістэмныя выклікі для кожнага чытання або запісу. Па-першае, выклік sleek() для размяшчэння file дэскрыптара да жаданага зрушэння, а другі - сістэмны выклік read() або write() для чытання або запісу даных. Для вялікіх блокаў даных звязаныя сістэмныя выклікі і іх накладныя выдаткі нязначныя і імі можна занядбаць. Прапускная здольнасць - найважнейшы параметр у такіх выпадках. Для невялікіх памераў дадзеных (напрыклад,ample, зменныя 1-16 байт), аднак накладныя выдаткі сістэмнага выкліку выклікаюць прыкметныя затрымкі.
Што робіць рэчы больш складанымі для прыкладанняў, так гэта неабходнасць выдзялення і кіравання буферамі, якія перадаюцца функцыям чытання і запісу. Вельмі часта пры гэтым метадзе доступу даныя капіююцца ўзад і назад некалькі разоў, у і з буфераў у дадатку, а затым ізноў з буфераў у FIFO кантролера SPI ў драйверы прылады і наадварот. Гэтыя аперацыі капіравання негатыўна ўплываюць на прапускную здольнасць хуткіх сістэм.
3 Адлюстраваны доступ да памяці
Буферы даных, якія кіруюцца карыстальнікам, і перамяшчэнне даных уручную не патрэбныя для доступу да адлюстравання памяці (таксама вядомага як Memory Mapped I/O або MMIO). У гэтым метадзе доступу праграмы могуць чытаць і запісваць у F-RAM, проста разыменоўваючы паказальнікі на аб'екты дадзеных патрэбнага памеру.
Дапамога праграмнага забеспячэння патрэбна толькі падчас ініцыялізацыі для праверкі прылады і пазней для наладжвання адпаведнага адлюстравання адрасоў для прыкладання. Пасля ўстаноўкі гэтага супастаўлення ўсе доступы для чытання і запісу выконваюцца цалкам апаратна. Гэта забяспечвае лепшы ўзровень прадукцыйнасці ў параўнанні з класічным доступам у стылі EEPROM/Flash. У першую чаргу затрымкі меншыя, што прыводзіць да значна лепшых вынікаў для невялікіх памераў даных.
Акрамя таго, доступ з адлюстраваннем памяці спрашчае код прыкладанняў. Дадзеныя не трэба капіраваць наперад і назад паміж буферамі, і сістэмныя выклікі не патрэбныя для доступу да памяці F-RAM пасля ініцыялізацыі.
Нарэшце, дадатковыя функцыі, такія як выкананне кода непасрэдна з SPI F-RAM (XIP), магчымыя толькі пры наладцы адлюстравання памяці. Хаця прыкладанні толькі для чытання таксама магчымыя з дапамогай SPI Flash у наладах адлюстравання памяці, адлюстраваныя запісы не атрымліваюцца на гэтых прыладах з-за іх патрабаванняў да апытання і сцірання.
Праблема можа заключацца ў тым, што ў драйверы праграмнага забеспячэння неабходна дадаць спецыфічны код наладкі кантролера. Універсальны код драйвера наўрад ці магчымы.
4 Прыклад
Каб даследаваць перавагі прадукцыйнасці адлюстраванага доступу да памяці, NXP i.MX8QXP SoC з Cypress Exelon Ultra CY15B104QSN F-RAM выкарыстоўваецца для забеспячэння сучаснай платформы параўнальнага аналізу.
Аперацыйнай сістэмай у гэтым выпадку з'яўляецца Linux (ядро 4.14.98), якая запускае Версія стэка драйвераў Cypress SPI Memories v19.4. Гэты праграмны драйвер падтрымлівае як класічны MTD, так і доступ да адлюстравання памяці. CY15B104QSN працуе ў рэжыме QPI на тактавай частаце SPI 100 МГц SDR. Такім чынам, максімальная тэарэтычная прапускная здольнасць як для аперацый чытання, так і для запісу абмежавана 50 МіБ/с1.
Кантролер i.MX8QXP FlexiSpot падтрымлівае доступ да карты памяці праз невялікую канфігураваную табліцу. Гэтая табліца пошуку (LUT) можа змяшчаць да 32 паслядоўнасцей для апаратнага сінтэзу транзакцый шыны SPI на хаду. Індэксныя рэгістры ў кантролеры могуць быць устаноўлены, каб інфармаваць працэсар, якую паслядоўнасць(-і) выконваць для чытання і запісу, адлюстраваных у памяці, напрыкладample, калі паказальнік разыменаваны. Гэта можа быць адна паслядоўнасць або набор некалькіх паслядоўнасцей, напрыкладample, калі каманда Write Enable плюс каманда Program павінны быць выдадзены для аперацыі запісу. Для чытання і запісу QPI у F-RAM можна выкарыстоўваць наступныя запісы/паслядоўнасці LUT:
Заўвага што CY15B104QSN мае ліпкі біт WREN (Write Enable) у рэгістры стану. Пасля таго, як гэты біт быў усталяваны, прыладзе больш не патрэбныя відавочныя каманды Write Enable перад кожнай аперацыяй запісу ў памяць. Такім чынам, для шляху запісу выкарыстоўваецца толькі другая паслядоўнасць з пералічанай пары паслядоўнасці.
Іншы метад аптымізацыі, які выкарыстоўваецца, - гэта папярэдняя выбарка, якая можа выконвацца аўтаматычна кантролерам i.MX8QXP FlexSPI. Гэтая функцыя ўплывае і паскарае шлях чытання для ўсіх метадаў доступу. Ён заўсёды загружае блокі даных поўнымі 2 кБ з F-RAM у некаторыя апаратныя буферы. Затым запыты на чытанне ад праграмнага забеспячэння абслугоўваюцца з гэтых буфераў.
Табліца 1 абагульняе вымераныя вынікі і паказвае перавагі прадукцыйнасці прамога доступу да адлюстравання памяці. У прыватнасці, затрымкі значна меншыя ў параўнанні са стандартным метадам доступу ў стылі Flash (больш чым у 20 разоў). Надзвычай кароткія затрымкі выкарыстоўваюць функцыю імгненнай энерганезалежнасці F-RAM і дапамагаюць у сітуацыях, калі сістэма рэзка губляе харчаванне. Адлюстраваны доступ да памяці становіцца дадатковым патрабаваннем у такіх выпадках, скарачаючы часовае акно, калі дадзеныя знаходзяцца пад пагрозай.
У гэтым эталоне вынікі прапускной здольнасці вымяраюцца шляхам чытання або запісу ўсёй прылады. У выпадку адлюстравання памяці memcpy() выклікаецца для капіявання ўсіх даных асноўнага масіва з F-RAM у звычайную сістэмную DRAM ці наадварот. Глядзіце Дадатак A для некаторых спецыфічных аптымізацый memcpy() для ARMv8-A. Калі апаратная папярэдняя выбарка адключана, прапускная здольнасць чытання таго ж парадку, што і прапускная здольнасць запісу.
Затрымкі азначаюць затрымку пасля аперацыі запісу або чытання, выкананай праграмным дадаткам, да фізічнай перадачы дадзеных па шыне SPI. У гэтым эталоне затрымкі вымяраюцца шляхам выканання невялікіх аперацый чытання і запісу памерам 1 байт.
5 Кэшаванне працэсара
Па змаўчанні кэшаванне працэсара адключана на большасці платформаў для ўсёй прасторы памяці ўводу-вываду. Гэта забяспечвае ўпарадкаваны і раз'яднаны доступ да памяці і з'яўляецца абавязковым, напрыкладample, для запаўнення апаратных файлаў FIFO або для праграмавання або выдалення флэш-прылад.
Для памяці F-RAM, аднак, кэш працэсара можа быць уключаны ў спалучэнні з доступам да адлюстравання памяці, каб павысіць прадукцыйнасць яшчэ далей. Пры кэшаванні працэсара натуральны памер пакета на шыне SPI для чытання і запісу складае адзін радок кэша (64 байта на i.MX8QXP). Гэта дазваляе лепш выкарыстоўваць даступную прапускную здольнасць шыны SPI у параўнанні з серыяй меншых перадач. Аднак падчас падзення магутнасці даныя могуць быць страчаны, калі яны знаходзяцца ў радку кэша, які яшчэ не быў запісаны назад у F-RAM. У той час як для звычайнай памяці RAM такія паводзіны цалкам прымальныя, для F-RAM гэта не так.
Уключэнне простай схемы кэшавання чытання (гэта значыць з палітыкай запісу праз кэш) бяспечна для F-RAM, паколькі ў гэтай канфігурацыі даныя адразу запісваюцца назад у масіў F-RAM.
Калі праграма мае дакладныя кропкі сінхранізацыі (напрыклад,ample, захаванне поўных выяваў з камеры), то можа быць уключана нават палітыка зваротнага запісу. Меншыя аперацыі запісу можна аб'яднаць з гэтай схемай для стварэння высокаэфектыўнай поўнай запісу ў радок 64-байтнага кэша. Аднак да кропак сінхранізацыі зыходнага кода неабходна дадаць інструкцыі па абслугоўванні бар'ераў і кэша, у дадзеным выпадку для час ад часу ачысткі кэша. Такія інструкцыі прымушаюць даныя, назапашаныя ў кэшы працэсара, быць відавочным зваротным запісам і, такім чынам, ліквідаваць рызыку страты даных.
6 Заключэнне
Большасць сучасных кантролераў SPI падтрымліваюць доступ да знешніх прылад з адлюстраваннем памяці. Такім чынам, з дапамогай гэтых кантролераў доступ да адлюстравання памяці стаў жыццяздольным варыянтам для разгляду, і кліенты могуць атрымаць ад гэтага карысць, асабліва ў выпадку F-RAM.
Доступ да F-RAM з адлюстраваннем памяці мае відавочныя перавагі ў прадукцыйнасці і спрашчае код прыкладання ў параўнанні з класічным паслядоўным метадам доступу EEPROM/Flash. Ён універсальны, гнуткі і лёгка інтэгруе F-RAM у сучасную сістэму.
Уважліва аналізуючы і аптымізуючы код прыкладання, камбінацыя адлюстраванага доступу да памяці з кэшаваннем працэсара можа яшчэ больш палепшыць як прапускную здольнасць, так і затрымку.
Дадатак A. Аптымізаваны 16-байт memcpy() для ARMv8-A
Рэалізацыя memcpy() па змаўчанні для ARMv8-A ў Linux выкарыстоўвае інструкцыі зборкі пары загрузкі і пары захоўвання, якія перамяшчаюць два 8-байтавыя рэгістры адначасова. На жаль, гэтыя інструкцыі запускаюць два 8-байтных пакета SPI на шыне замест аднаго 16-байтавага пакета. Каб палепшыць сітуацыю, memcpy() можа быць аптымізаваны для выкарыстання 16-байтавага рэгістра FP/SIMD плюс адпаведныя інструкцыі загрузкі/захоўвання, як паказана ніжэй. Гэта змяненне стварае патрэбныя 16-байтныя пакеты SPI на шыне.
Гісторыя дакументаў
Назва дакумента: AN229843 – Доступ да SPI F-RAM, адлюстраваны ў памяці, Нумар дакумента: 002-29843
Продажы і падтрымка дызайну па ўсім свеце
Cypress падтрымлівае сусветную сетку офісаў, цэнтраў рашэнняў, прадстаўнікоў вытворцаў і дыстрыб'ютараў. Каб знайсці бліжэйшы да вас офіс, наведайце нас у Cypress Locations.
прадукты
Мікракантролеры Arm® Cortex® cypress.com/arm
Аўтамабільны cypress.com/automotive
Гадзіннік і буферы cypress.com/clocks
Інтэрфейс cypress.com/інтэрфейс
Інтэрнэт рэчаў cypress.com/iot
Памяць cypress.com/memory
Мікракантролеры cypress.com/mcu
PSoC cypress.com/psoc
Мікрасхемы кіравання харчаваннем cypress.com/pmic
Датчыкі cypress.com/touch
USB кантролеры cypress.com/usb
Бесправоднае падключэнне cypress.com/wireless
Рашэнні PSoC®
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP | PSoC 6 MCU
Супольнасць распрацоўшчыкаў Cypress
Супольнасць | Код Прampлес | Праекты | Відэа | Блогі | Навучанне | Кампаненты
Тэхнічная падтрымка
cypress.com/support
Усе іншыя гандлёвыя маркі або зарэгістраваныя гандлёвыя маркі, на якія спасылаецца тут, з'яўляюцца ўласнасцю іх адпаведных уладальнікаў.
Паўправаднік Cypress
Кампанія Infineon Technologies 198 Champіённы суд
Сан-Хасэ, Каліфорнія 95134-1709
© Cypress Semiconductor Corporation, 2020. Гэты дакумент з'яўляецца ўласнасцю Cypress Semiconductor Corporation і яе даччыных кампаній («Cypress»). Гэты дакумент, у тым ліку любое праграмнае забеспячэнне або ўбудаванае праграмнае забеспячэнне, уключанае або згаданае ў гэтым дакуменце («Праграмнае забеспячэнне»), належыць Cypress у адпаведнасці з законамі аб інтэлектуальнай уласнасці і дагаворамі Злучаных Штатаў і іншых краін па ўсім свеце. Cypress пакідае за сабой усе правы ў адпаведнасці з такімі законамі і пагадненнямі і не дае ніякіх ліцэнзій у адпаведнасці са сваімі патэнтамі, аўтарскімі правамі, гандлёвымі маркамі або іншымі правамі на інтэлектуальную ўласнасць, за выключэннем выпадкаў, спецыяльна пазначаных у гэтым параграфе. Калі Праграмнае забеспячэнне не суправаджаецца ліцэнзійным пагадненнем і ў вас няма іншага пісьмовага пагаднення з Cypress, якое рэгулюе выкарыстанне Праграмнага забеспячэння, Cypress гэтым дае вам персанальную, невыключную ліцэнзію без права перадачы (без права субліцэнзіі ) (1) у адпаведнасці са сваімі аўтарскімі правамі на Праграмнае забеспячэнне (a) для Праграмнага забеспячэння, прадстаўленага ў форме зыходнага кода, змяняць і прайграваць Праграмнае забеспячэнне выключна для выкарыстання з апаратнымі прадуктамі Cypress, толькі ўнутры вашай арганізацыі, і (b) распаўсюджваць Праграмнае забеспячэнне ў форме двайковага кода звонку для канчатковых карыстальнікаў (прама ці ўскосна праз рэсэлераў і дыстрыб'ютараў), выключна для выкарыстання на апаратных прадуктах Cypress, і (2) у адпаведнасці з тымі патрабаваннямі патэнтаў Cypress, якія парушаны Праграмнае забеспячэнне (прадстаўленае Cypress, без змяненняў) для стварэння, выкарыстання, распаўсюджвання і імпарту праграмнага забеспячэння выключна для выкарыстання з апаратнымі прадуктамі Cypress. Любое іншае выкарыстанне, прайграванне, мадыфікацыя, пераклад або кампіляцыя Праграмнага забеспячэння забароненыя.
У МЕРЫ, ДАЗВОЛЕНАЙ ДЫЮЧЫМ ЗАКАНАДАЎСТВАМ, CYPRESS НЕ ДАЕ НІЯКІХ ГАРАНТЫЙ, ЯВНЫХ АБО РАЗУМЕВАННЫХ, ДА ГЭТАГА ДАКУМЕНТА АБО ЛЮБЫХ ПРАГРАМНЫХ ЦІ СУПРАЦОЎНЫХ АПАРАТУРНЫХ ЗАБЕСПЯЧЭННЯЎ, УКЛЮЧАЮЧЫ, АЛЕ НЕ АБМЯЖУЮЧЫСЯ МІМ, РАЗУМЕВАЕМЫЯ ГАРАНТЫІ КАМЕНТАЦЫЙНАСЦЬ І ПРЫДАТНАСЦЬ ДЛЯ ПЭЎНЫХ МЭТ.
Ніякая вылічальная прылада не можа быць абсалютна бяспечнай. Такім чынам, нягледзячы на меры бяспекі, прынятыя ў апаратных і праграмных прадуктах Cypress, Cypress не нясе адказнасці за любое парушэнне бяспекі, напрыклад, несанкцыянаваны доступ да прадукту Cypress або выкарыстанне яго. CYPRESS НЕ ЗАЯВЛЯЕЦЬ, НЕ ГАРАНТУЕ І НЕ ГАРАНТУЕ, ШТО ПРАДУКТЫ CYPRESS АБО СІСТЭМЫ, СТВОРАНЫЯ З ВЫКАРЫСТАННЕМ ПРАДУКЦЫІ CYPRESS, НЕ БУДУЦЬ АД КАРУПЦЫІ, АТАКАЎ, ВІРУСАЎ, УМЕШАННЯЎ, УЗЛОМАЎ, СТРАТЫ ДАННЫХ АБО КРАДЗЕЖАЎ АБО ІНШЫХ ПАРУШЭННЯЎ БЯСПЕКІ (разам, «Парушэнне бяспекі»). Cypress адмаўляецца ад любой адказнасці, звязанай з любым Парушэннем бяспекі, і вы абавязваецеся і гэтым вызваляеце Cypress ад любых прэтэнзій, пашкоджанняў або іншай адказнасці, якія вынікаюць з любога парушэння бяспекі. Акрамя таго, прадукты, апісаныя ў гэтых матэрыялах, могуць утрымліваць канструктыўныя дэфекты або памылкі, вядомыя як памылкі, якія могуць прывесці да адхілення прадукту ад апублікаваных спецыфікацый. У межах, дазволеных дзеючым заканадаўствам, Cypress пакідае за сабой права ўносіць змены ў гэты дакумент без дадатковага паведамлення. Cypress не нясе ніякай адказнасці, якая вынікае з прымянення або выкарыстання любога прадукту або схемы, апісаных у гэтым дакуменце. Любая інфармацыя, прадстаўленая ў гэтым дакуменце, у тым ліку любыя sampінфармацыя аб дызайне або праграмны код прадастаўляецца толькі ў даведачных мэтах. Карыстальнік гэтага дакумента нясе адказнасць за правільнае распрацоўванне, праграмаванне і тэсціраванне функцыянальнасці і бяспекі любога прыкладання, створанага з гэтай інфармацыяй, і любога выніковага прадукту. «Прылада высокай рызыкі» азначае любую прыладу або сістэму, няспраўнасць якой можа прывесці да траўмаў, смерці або пашкоджання маёмасці. напрыкладampПрылады высокай рызыкі - гэта зброя, ядзерныя ўстаноўкі, хірургічныя імплантаты і іншыя медыцынскія прылады. «Крытычны кампанент» азначае любы кампанент Прылады высокай рызыкі, няспраўнасць якой, як можна разумна чакаць, прывядзе, прама ці ўскосна, да адмовы Прылады высокай рызыкі або паўплывае на яе бяспеку або эфектыўнасць. Cypress не нясе адказнасці, цалкам або часткова, і вы вызваляеце Cypress ад любых прэтэнзій, пашкоджанняў або іншай адказнасці, якая ўзнікае ў выніку любога выкарыстання прадукта Cypress у якасці найважнейшага кампанента ў прыладзе высокай рызыкі. Вы абавязаны вызваліць Cypress, яго дырэктараў, службовых асоб, супрацоўнікаў, агентаў, філіялаў, дыстрыб'ютараў і праванаступнікаў ад усялякіх прэтэнзій, выдаткаў, пашкоджанняў і выдаткаў, якія вынікаюць з любой прэтэнзіі, уключаючы прэтэнзіі аб адказнасці за прадукт, цялесныя пашкоджанні або смерць, або пашкоджанне маёмасці ў выніку любога выкарыстання прадукту Cypress у якасці найважнейшага кампанента ў прыладзе высокай рызыкі. Прадукты Cypress не прызначаныя і не дазволеныя для выкарыстання ў якасці крытычнага кампанента ў любой прыладзе высокай рызыкі, за выключэннем абмежаванай ступені, калі (i) у апублікаваным тэхнічным аркушы прадукту Cypress прама сцвярджаецца, што Cypress кваліфікаваў прадукт для выкарыстання ў канкрэтнай прыладзе высокай рызыкі. Прылада, або (ii) Cypress загадзя даў вам пісьмовы дазвол на выкарыстанне прадукту ў якасці крытычнага кампанента ў канкрэтнай прыладзе высокай рызыкі, і вы падпісалі асобнае пагадненне аб кампенсацыі.
Cypress, лагатып Cypress, Spansion, лагатып Spansion і іх камбінацыі, WICED, PSoC, CapSense, EZ-USB, F-RAM і Traveo з'яўляюцца гандлёвымі маркамі або зарэгістраванымі гандлёвымі маркамі Cypress у Злучаных Штатах і іншых краінах. Каб атрымаць больш поўны спіс таварных знакаў Cypress, наведайце cypress.com. Іншыя назвы і брэнды могуць быць заяўлены як уласнасць іх адпаведных уладальнікаў.
Дакументы / Рэсурсы
![]() |
Адлюстраваны доступ да памяці CYPRESS да SPI F-RAM AN229843 [pdfКіраўніцтва карыстальніка CYPRESS, адлюстраванне памяці, доступ да, SPI, F-RAM, AN229843 |