FLASH, RAM и регистровая память
-
maksimdag0
- Прорезались зубы
- Сообщения: 225
- Зарегистрирован: Чт апр 08, 2021 09:46:48
FLASH, RAM и регистровая память
Добрый день! Помогите разобраться с кашей в голове. Вопрос связан с памятью микроконтроллера(например в stm32f407). В микроконтроллере имеется FLASH, RAM и регистровая память.
Главный вопрос: физически, это несколько разных памяти?
FLASH имеет ограниченный ресурс записи/стирания, а RAM не имеет почему?
Регистровая память насколько я понял тоже не имеет ресурса?
Почему считывания с RAM осуществляется быстрее чем с FLASH?
Если легче обьяснить по аналогии какой-то памяти, то обьясните по аналогии FLASH, с FLASH мне все понятно.
У меня нет четкого представления и правильно понимания как это памяти физически существуют, и как с ним обращаться можно а как нельзя.
Главный вопрос: физически, это несколько разных памяти?
FLASH имеет ограниченный ресурс записи/стирания, а RAM не имеет почему?
Регистровая память насколько я понял тоже не имеет ресурса?
Почему считывания с RAM осуществляется быстрее чем с FLASH?
Если легче обьяснить по аналогии какой-то памяти, то обьясните по аналогии FLASH, с FLASH мне все понятно.
У меня нет четкого представления и правильно понимания как это памяти физически существуют, и как с ним обращаться можно а как нельзя.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: FLASH, RAM и регистровая память
Проще всего провести аналогию с обычным компьютером. Регистры в процессоре. RAM это основная память куда программы загружаются и где работают. Они без напряжения питания теряют информацию. А ещё есть FLASH на SSD, где информация хранится без напряжения питания. Плата за хранение данных без напряжения - ограниченное количество записей.
В микроконтроллере абсолютно то же самое, только всё запихнули в одну микросхему. Разница только в том, что программа может из flash выполняться.
В микроконтроллере абсолютно то же самое, только всё запихнули в одну микросхему. Разница только в том, что программа может из flash выполняться.
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: FLASH, RAM и регистровая память
Ha аглицком теxно-арго "flash" (вcпышка ? ) означает
электрическим полем перезаписываемую как-бы-пocтоянную память
с хранением эл.заряда в так называемом "плaвaющем" затворе пoлевого транзистора.
При перезаписи происходит "туннелирование" зарядов, чтo постепенно ухудшает диэлектрик.
Bпрочем дабы не троллить местную рыбу Baм бы пo-xopoшему надо бы поизучать "мат.часть".
Hy a Random-Acsess-Memory cуть Память-c-Произвольным-Доступом( нo в pyccкоязычной литepaтуре принято нaзывать "Oперативнoe-Зaпоминающее-Уcтройство ) построена на триггераx (нe путать c чeтвериггерами !
)
Peгистры тоже - вooбще peгистр суть нecколько триггеров ( 4 или 8 или 16 или 32 )
электрическим полем перезаписываемую как-бы-пocтоянную память
с хранением эл.заряда в так называемом "плaвaющем" затворе пoлевого транзистора.
При перезаписи происходит "туннелирование" зарядов, чтo постепенно ухудшает диэлектрик.
Bпрочем дабы не троллить местную рыбу Baм бы пo-xopoшему надо бы поизучать "мат.часть".
Hy a Random-Acsess-Memory cуть Память-c-Произвольным-Доступом( нo в pyccкоязычной литepaтуре принято нaзывать "Oперативнoe-Зaпоминающее-Уcтройство ) построена на триггераx (нe путать c чeтвериггерами !
Peгистры тоже - вooбще peгистр суть нecколько триггеров ( 4 или 8 или 16 или 32 )
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: FLASH, RAM и регистровая память
Да. Впрочем, "регистровая" это не совсем память, хотя и используется для хранения информации. Но в большей степени это часть процессора.maksimdag0 писал(а):В микроконтроллере имеется FLASH, RAM и регистровая память. Главный вопрос: физически, это несколько разных памяти?
Именно потому что разные технологии. Флеш (и eeprom), как и сказал petrenko, хранят информацию в количестве электронов, проскочивших сквозь диэлектрик к слою проводника, расположенному между каналом транзистора и его затвором. Если электроном много - транзистор открыт, если мало - закрыт. Сами по себе электроны через диэлектрик не бегают (на то он и диэлектрик), но под действием высокого напряжения все же могут туннелировать. Но это со временем разрушает диэлектрик.maksimdag0 писал(а):FLASH имеет ограниченный ресурс записи/стирания, а RAM не имеет почему?
А ОЗУ - схема на обычных транзисторах, работающих в обычных режимах. Где-нибудь в усилителе или блоке питания транзисторы ведь без ограничений переключаются. Вот и здесь так же.
На самом деле, хороший вопрос. Казалось бы, тоже транзистор, пусть и странной конструкции. Что мешает считать с него информацию мгновенно.maksimdag0 писал(а):Почему считывания с RAM осуществляется быстрее чем с FLASH?
Возможно, ради увеличения плотности хранения, в одном транзисторе хранят не один бит, а несколько - разными величинами заряда в затворе. Тогда лишнее время уходит на декодирование. В "компьютерных" флешках это применяется, но в контроллерных - не знаю. Возможно, сама конструкция такого транзистора увеличивает паразитную емкость (хотя в ОЗУ сравнимого объема это почему-то не мешает).
В тех схемах, которые я находил, разница между ОЗУ и регистрами все же есть. Регистры это именно регистры (D-триггеры со всей нужной обвязкой, то есть куча транзисторов). А ячейка ОЗУ - два встречно включенных инвертора, и запись происходит, когда сигнал записи "передавливает" выход одного из них. То есть гораздо более простая штука.petrenko писал(а):Hy a Random-Acsess-Memory построена на триггераx
Ну неправильно к ним обращаться это еще надо постараться.maksimdag0 писал(а):У меня нет четкого представления и правильно понимания как это памяти физически существуют, и как с ним обращаться можно а как нельзя.
К регистрам у вас будет доступ только если вы пишете на ассемблере, и работа с ними вообще не похожа на работу с памятью. Если же пишете на Си, с ними работает компилятор.
В ОЗУ будут временные переменные, которые существуют только от включения до выключения, а то и меньше.
А в ПЗУ (flash) - статические данные, которые меняться не будут. Код программы, какие-то константы. Случайно перезаписать вы их не сможете: в большинстве контроллеров это специальный сложный процесс.
---
А, еще есть регистры периферии, к которым доступ тоже через общее пространство памяти, так называемые Memory-Mapped Input-Output, MMIO. Но они могут быть организованы вообще как угодно.
Re: FLASH, RAM и регистровая память
в некоторых mcs регистры это часть аддресного пространства встроенной ram, напр в avr.COKPOWEHEU писал(а):"регистровая" это не совсем память, хотя и используется для хранения информации. Но в большей степени это часть процессора.
и еще замечание - мгновенно считать (и записать) данные, даже когда это простой бинарный бит
мешают емкости и индуктивности и сопротивления проводников в схемах. в любых. нужно некое время, сейчас для ядер быстрых процессоров оно измеряется десятками и сотнями pS.
простейшая ячейка cmos sram это 4транзистора триггера хранения (2 закольцованных инвертора) и минимум 1 транзистор выбора этой ячейки в 2мерной матрице (чаще 2 транзистора для ускорения переключения) тоесть 5-6 транзисторов на ячейку=бит.
в случае dram и nvram сама ячейка упрощается с 4 до 1 транзистора с плавающим затвором, либо вообще до конденсатора (затвора без транзистора под ним для dram), в случае nvram усложняется коммутация ячейки для записи, в сумме 1(dram) -3(nvram) транзистора на ячейку. ну и такие ячейки могут хранить до 3 бит (8 уровней потенциала).
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: FLASH, RAM и регистровая память
Ни разу не видел, чтобы этим кто-то пользовался.AlexS4 писал(а):в некоторых mcs регистры это часть аддресного пространства встроенной ram, напр в avr.
[uquote="AlexS4",url="/forum/viewtopic.php?p=4683396#p4683396"]и еще замечание - мгновенно считать (и записать) данные, даже когда это простой бинарный бит
мешают емкости и индуктивности и сопротивления проводников в схемах. в любых. нужно некое время, сейчас для ядер быстрых процессоров оно измеряется десятками и сотнями pS.[/uquote]
Но конвейеризация эту проблему частично устраняет.
Самое интересное все-таки с флеш. Почему из SRAM чтение "мгновенное", а из флеша, при том же объеме - медленное.AlexS4 писал(а):простейшая ячейка
Re: FLASH, RAM и регистровая память
Однако - сколько здесь готовых обучать голосовую модель ИИ на больших массивах текстовых данных... 
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683402#p4683402"]Ни разу не видел, чтобы этим кто-то пользовался.[/uquote]Запустите компилятор для STM8 - увидите.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683349#p4683349"]В ОЗУ будут временные переменные, которые существуют только от включения до выключения, а то и меньше.
А в ПЗУ (flash) - статические данные, которые меняться не будут. Код программы, какие-то константы. Случайно перезаписать вы их не сможете: в большинстве контроллеров это специальный сложный процесс.[/uquote]FRAM/MRAM ломает всю вашу логику.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683402#p4683402"]Ни разу не видел, чтобы этим кто-то пользовался.[/uquote]Запустите компилятор для STM8 - увидите.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683349#p4683349"]В ОЗУ будут временные переменные, которые существуют только от включения до выключения, а то и меньше.
А в ПЗУ (flash) - статические данные, которые меняться не будут. Код программы, какие-то константы. Случайно перезаписать вы их не сможете: в большинстве контроллеров это специальный сложный процесс.[/uquote]FRAM/MRAM ломает всю вашу логику.
Re: FLASH, RAM и регистровая память
конвейеризация как и любое другое распараллеливание процессов увы не могут сделать реакцию алгоритма мгновенной, никогдаCOKPOWEHEU писал(а):Но конвейеризация эту проблему частично устраняет.
теоретический предел это автомат выражденый до 1 огромной логической функции и соответственно времени срабатывания этого огромного логического элемента который, как мы знаем, всегда можно представить 2ступенчатой схемой ORxN-AND (или ANDxN-OR), и кстати увеличение схемы неизбежно увеличивает задержки... так что ооочень "частично"
Добавлено after 14 minutes 37 seconds:
если сравнивать одинаковые архитектуры доступа, и одинаковый техпроцесс, и одинаковую емкость, и хранение только бинарных данных во флэше,COKPOWEHEU писал(а):Самое интересное все-таки с флеш. Почему из SRAM чтение "мгновенное", а из флеша, при том же объеме - медленное.
то SRAM по скорости чтения будет даже чуть проигрывать флэшу из-за ~ в 2раза менее плотной упаковки (5-6 транзисторов против 3)
(тоесть увеличение задержек ~ в квадратный корень из ~2 раз на 2мерной структуре, при прочих равных)
просто архитектуры доступа у встроенной в msc sram и у флэш диска с sata интерфейсом оочень разные...
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: FLASH, RAM и регистровая память
Спасибо, но настраивать компилятор под новую архитектуру ради подобной проверки что-то не хочется. Лучше так, в двух словах скажите что именно я там должен увидеть.jcxz писал(а):Запустите компилятор для STM8 - увидите.Ни разу не видел, чтобы этим (адресацией регистров AVR через память) кто-то пользовался.
Каким образом? Ну, не говоря о том, что многие вещи я сознательно упрощал для ТСа.jcxz писал(а):FRAM/MRAM ломает всю вашу логику.
Она может сделать так, чтобы к моменту выполнения команды данные уже были готовы. А что весь цикл выполнения команды может занимать больше одного такта, и вообще может быть сдвинут, это другой вопрос.AlexS4 писал(а):конвейеризация как и любое другое распараллеливание процессов увы не могут сделать реакцию алгоритма мгновенной
Про sata мы вообще не говорим, какой sata внутри контроллера.AlexS4 писал(а):если сравнивать одинаковые архитектуры доступа, и одинаковый техпроцесс, и одинаковую емкость, и хранение только бинарных данных во флэше,
то SRAM по скорости чтения будет даже чуть проигрывать флэшу из-за ~ в 2раза менее плотной упаковки
Нет, я говорю про встроенную флеш и встроенную ОЗУ. В stm32 для работы из флеш на максимальной скорости приходится вводить несколько wait-state-ов. А из RAM - нет. При том, что объемы памяти почти одинаковые.
Re: FLASH, RAM и регистровая память
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683578#p4683578"]Спасибо, но настраивать компилятор под новую архитектуру ради подобной проверки что-то не хочется. Лучше так, в двух словах скажите что именно я там должен увидеть.[/uquote]
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683578#p4683578"]
И сиё вельми удобно.
Добавлено after 6 minutes 57 seconds:
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683578#p4683578"]В stm32 для работы из флеш на максимальной скорости приходится вводить несколько wait-state-ов. А из RAM - нет.[/uquote]Это на STM32. А на ней свет клином не сошёлся. Например XMC4xxx просто имеют шину к FLASH шириной = 256 бит. Что позволяет блоку предвыборки на линейных участках кода успевать читать код почти без задержек на макс.скорости.
Хотя wait states там тоже есть. Скорее - для ветвлений и чтения const-данных.
PS: Tiva от TI насколько помню - тоже имеют 256-битную шину к FLASH.
Кроме того - IAR для STM8 создаёт ещё несколько виртуальных регистров. В качестве которых выступают младшие адреса ОЗУ.Адреса регистров CPU в STM8:
Регистры процессора (CPU) отображены в нулевую страницу памяти (адреса 0x00–0x3F), что позволяет к ним быстро обращаться.
Регистр Адрес Описание
CCR (Condition Code Register) 0x7B00 Регистр флагов
A (Accumulator) 0x7B01 Аккумулятор
XH (High byte of X register) 0x7B02 Старший байт регистра X
XL (Low byte of X register) 0x7B03 Младший байт регистра X
YH (High byte of Y register) 0x7B04 Старший байт регистра Y
YL (Low byte of Y register) 0x7B05 Младший байт регистра Y
SPH (High byte of Stack Pointer) 0x7B06 Старший байт указателя стека
SPL (Low byte of Stack Pointer) 0x7B07 Младший байт указателя стека
Эти регистры можно читать и записывать, но чаще всего используются внутренне ядром.
Быстрый доступ через короткие адреса:
Некоторые из этих регистров можно также адресовать в нулевой странице (0x00–0x3F) для более эффективного доступа.
Пример:
CCR доступен по адресу 0x00
A доступен по адресу 0x01
XH и XL доступны по 0x02 и 0x03
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683578#p4683578"]
Каким образом?[/uquote]Тем, что на МК, имеющих FRAM вместо FLASH, программист сам может назначать - какая часть FRAM у него в программе == volatile memory (ОЗУ), а какая == non-volatile memory (ПЗУ). Т.е. - нет жёсткой зависимости: ОЗУ/ПЗУ <=> FRAM. Скорее это больше будет зависеть от настроек модуля защиты памяти.jcxz писал(а):FRAM/MRAM ломает всю вашу логику.
И сиё вельми удобно.
Добавлено after 6 minutes 57 seconds:
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683578#p4683578"]В stm32 для работы из флеш на максимальной скорости приходится вводить несколько wait-state-ов. А из RAM - нет.[/uquote]Это на STM32. А на ней свет клином не сошёлся. Например XMC4xxx просто имеют шину к FLASH шириной = 256 бит. Что позволяет блоку предвыборки на линейных участках кода успевать читать код почти без задержек на макс.скорости.
Хотя wait states там тоже есть. Скорее - для ветвлений и чтения const-данных.
PS: Tiva от TI насколько помню - тоже имеют 256-битную шину к FLASH.
Re: FLASH, RAM и регистровая память
[uquote="jcxz",url="/forum/viewtopic.php?p=4683628#p4683628"]Это на STM32. А на ней свет клином не сошёлся. Например XMC4xxx просто имеют шину к FLASH шириной = 256 бит. Что позволяет блоку предвыборки на линейных участках кода успевать читать код почти без задержек на макс.скорости.[/uquote]
STM32 c 256-ти битной шиной к флешу тоже есть, но у них частота 550 MHz, а не 144, как у XMC4xxx, потому и 3WS может быть.
STM32 c 256-ти битной шиной к флешу тоже есть, но у них частота 550 MHz, а не 144, как у XMC4xxx, потому и 3WS может быть.
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: FLASH, RAM и регистровая память
В тех исчезающе редких случаях, когда контроллер вообще оборудован FRAM - возможно. Но таких мало. Да и вообще, мы в теме по stm32.jcxz писал(а):Тем, что на МК, имеющих FRAM вместо FLASH, программист сам может назначать - какая часть FRAM у него в программе == volatile memory (ОЗУ), а какая == non-volatile memory (ПЗУ).
В stm32 тоже ширина шины команд намного больше 32 бит и тоже есть блок предвыборки. Но это все костыли, чтобы хоть как-то компенсировать медленный доступ к флеш. А вопрос-то был не про костыли, а про физику.jcxz писал(а):апример XMC4xxx просто имеют шину к FLASH шириной = 256 бит. Что позволяет блоку предвыборки
-
maksimdag0
- Прорезались зубы
- Сообщения: 225
- Зарегистрирован: Чт апр 08, 2021 09:46:48
Re: FLASH, RAM и регистровая память
Добрый вечер! Замотался последние дни, не было времени почитать, ответить. Сейчас, хоть в 1:50 почитал все, наверное нужно будет на свежую голову еще прочитать все)
Кажется я не правильно понимаю что такое конретно"регистровая память", ведь под этим выражением я имел в виду регистры периферии. Я так понял "регистрвоая память" это регистры, которые находятся в процессоре "R0, R1, R2 и тд"? Если да, то регистры периферии прцоессора(например FPU, NVIC) они относятся "к регистровой памяти"? регистры процессора и регистры периферии по технологии одинковые? Возможно вопрос глупый, но сейчас особо голова не варит, и пока каша в голове не ушла, не судите строго.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683349#p4683349"]А, еще есть регистры периферии, к которым доступ тоже через общее пространство памяти[/uquote]
К чему бы не обращались, к RAM, FLASH и или регистрам, мы всегда обращаемся через общее пространство памяти, разве нет?
Кажется я не правильно понимаю что такое конретно"регистровая память", ведь под этим выражением я имел в виду регистры периферии. Я так понял "регистрвоая память" это регистры, которые находятся в процессоре "R0, R1, R2 и тд"? Если да, то регистры периферии прцоессора(например FPU, NVIC) они относятся "к регистровой памяти"? регистры процессора и регистры периферии по технологии одинковые? Возможно вопрос глупый, но сейчас особо голова не варит, и пока каша в голове не ушла, не судите строго.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4683349#p4683349"]А, еще есть регистры периферии, к которым доступ тоже через общее пространство памяти[/uquote]
К чему бы не обращались, к RAM, FLASH и или регистрам, мы всегда обращаемся через общее пространство памяти, разве нет?
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: FLASH, RAM и регистровая память
Признавайтесь, трудно жить с баном в гугле?
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: FLASH, RAM и регистровая память
[uquote="VladislavS",url="/forum/viewtopic.php?p=4684288#p4684288"]Признавайтесь, трудно жить с баном в гугле?[/uquote]

IVL ex UA6PJ
- HardWareMan
- Мучитель микросхем
- Сообщения: 429
- Зарегистрирован: Ср сен 02, 2015 07:47:20
Re: FLASH, RAM и регистровая память
[uquote="maksimdag0",url="/forum/viewtopic.php?p=4684263#p4684263"]ажением я имел в виду регистры периферии. Я так понял "регистрвоая память" это регистры, которые находятся в процессоре "R0, R1, R2 и тд"? Если да, то регистры периферии прцоессора(например FPU, NVIC) они относятся "к регистровой памяти"? регистры процессора и регистры периферии по технологии одинковые? Возможно вопрос глупый, но сейчас особо голова не варит, и пока каша в голове не ушла, не судите строго.[/uquote]
Если вы говорите "память" то подразумеваете именно временное хранение некого числа. Т.е., функционал запомнить без изменений и вернуть когда надо. И это действительно обычные GPR (General-Purpose Registers, т.е. регистры общего назначения). Но если вы говорите за то, что значение в регистре должно хранить настройку аппаратуры, то это уже не GPR а SFR (Sepcial Function Register, т.е. регистр особой функции) и предназначен он не временно хранить какое-то число а хранить настройку или статус оборудования. А вот находиться SFR может как внутри ядра процессора (например, уже упомянутый NVIC для ARM) так и снаружи него на стороне оборудования (например, UART или SPI).
Если вы говорите "память" то подразумеваете именно временное хранение некого числа. Т.е., функционал запомнить без изменений и вернуть когда надо. И это действительно обычные GPR (General-Purpose Registers, т.е. регистры общего назначения). Но если вы говорите за то, что значение в регистре должно хранить настройку аппаратуры, то это уже не GPR а SFR (Sepcial Function Register, т.е. регистр особой функции) и предназначен он не временно хранить какое-то число а хранить настройку или статус оборудования. А вот находиться SFR может как внутри ядра процессора (например, уже упомянутый NVIC для ARM) так и снаружи него на стороне оборудования (например, UART или SPI).
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: FLASH, RAM и регистровая память
Есть такая электронная схема - регистр. Соответственно под регистровой памятью логично рассматривать именно память, собранную из регистров. Для сравнение, SRAM собрана не на регистрах, а на встречно включенных инверторах. DRAM вообще на одном конденсаторе. Flash на одном транзисторе необычной структуры.maksimdag0 писал(а):Кажется я не правильно понимаю что такое конретно"регистровая память", ведь под этим выражением я имел в виду регистры периферии. Я так понял "регистрвоая память" это регистры, которые находятся в процессоре "R0, R1, R2 и тд"?
Регистры периферии могут быть устроены как угодно. Скажем, GPIO->IDR наверняка будет не регистром, а массивом повторителей с ножек порта. GPIO->ODR - регистром. GPIO->BSRR - специальной схемой, которая обращается к тому же GPIO->ODR. И это только примеры регистров GPIO - самой простой периферии.maksimdag0 писал(а):я имел в виду регистры периферии
Так периферии или процессора? Еще раз: регистры процессора (r0, r1, ft0 (не знаю используются ли в arm специальные FPU-регистры) и т.п.) это регистры, они устроены по одному принципу. А периферия (GPIO, Timer, NVIC) - каждая по-своему, в зависимости от задачи.maksimdag0 писал(а):то регистры периферии прцоессора(например FPU, NVIC) они относятся "к регистровой памяти"?
Строго говоря, не всегда. Скажем, к регистрам в ARM обратиться через память, кажется, нельзя. В AVR к периферии можно обратиться как через память, так и специальными инструкциями in, out, sbi, ... В risc-v есть специальные ядерные CSR-регистры, к которым обращение возможно только через специальные инструкции.maksimdag0 писал(а):К чему бы не обращались, к RAM, FLASH и или регистрам, мы всегда обращаемся через общее пространство памяти, разве нет?
Re: FLASH, RAM и регистровая память
увы, регистровыми (или буфферными) называются микросхемы dram,COKPOWEHEU писал(а):Есть такая электронная схема - регистр. Соответственно под регистровой памятью логично рассматривать именно память, собранную из регистров. Для сравнение, SRAM собрана не на регистрах, а на встречно включенных инверторах.
внутри которых на шинах адреснов и/или данных стоят регистры-буферы,
позволяющие изменить диаграмы доступа так, что схема становится менее чувствительной к емкости шины,
за счет удлииннения некоторых фаз обмена,
и соответственно позволяет навешать побольше чипов на 1 шину.
например в серверных мамках обычно до 24 модулей c буфферными чипами
а в бытовых - только 2-4 безбуферных модуля.
а применение кольца слабеньких инверторов для хранения бита - это оптимизация: всего 4+1 или 4+2 транзистора, если взять набор(регистр) из rs триггеров то транзисторов на бит ячейки станет 8+5 - это в 2+! раза больше. ...а если взять d триггер то вообще