Отговори на тема  [ 8 мнения ] 
Memory mapped vs IO mapped периферия 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 9:39 pm
Мнения: 2277
Мнение Memory mapped vs IO mapped периферия
Да спорим... :)
Според мен IO mapped е по-добрият вариант. Няма шанс като "изпуснеш" някой указател и ръката/кракът на робота да утрепе някого... :(

п.п.
Пускам темата тук с надеждата да е полезна за повече хора.

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!


Пет Юни 19, 2026 7:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12765
Местоположение: София
Мнение Re: Memory mapped vs IO mapped периферия
А може ли някакъв кратък контекст - като за блондинките като мен? :D


Пет Юни 19, 2026 9:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: Memory mapped vs IO mapped периферия
Ами от една страна уж е по-защитено, от друга .... дали ще омажеш самия регистър или някоя променлива която го определя каква е разликата? Чисто теоретично количеството IO е в пъти по-малко от изпозлваната памет, т.е. всякакви проблеми с паметта имат по-голяам шанс да се проявят в самите ти променливи от колкото в IO-то.


Пет Юни 19, 2026 10:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: Memory mapped vs IO mapped периферия
ако само ти си "администратор" на кода и IO-то, прави го както ти е най-лесно и бързо

_________________
main[-1u]={1};


Пет Юни 19, 2026 10:40 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: Memory mapped vs IO mapped периферия
Това не помага защото пази само регистъра. Това което се записва в него си стои в нормалната памет. Достатъчно е един грешен указател да прецака стойността едно ниво по-нагоре и драйвера пише грешката в периферията.

Ако целта е хардуерна изолация слагаш MPU. То real-time ядрата като Cortex-M7 си идват с такъв. Изолираш кода на драйвера и регистрите и ако нещо тръгне да пипа по погрешка директно дава fault. Не е пълно спасение, но ограничава пораженията.

А ако е нещо наистина критично пишеше на memory-safe език със силна типизация като Rust. Там подобни достъпи гърмят още при компилация. Самото писане до регистъра ще е в unsafe блок, но тази част на драйвера я четете двама до пълно разбиране и така.

Отделно гледаш дали логиката е коректна. Познавам хора, които нищо друго не правят, освен да доказват формално отсъствието на грешки. Пишат на Rust и верифицират с Kani/Creusot. А ако не става въпрос за real-time доказваш в Rocq/Gallina директно екстрактваш към OCaml.

И пак няма гаранция, че няма да отрепеш някой. Там си трябват системни концепции за защита на различни нива, често независими едно от друго с известно ниво на редундантност.

Хардуеристите сме свикнали, пишем на VHDL и яко verification coverage и formal. Та от тази гледан точка АИ-то може да не замини програмистите ами изцяло да замени софтуера с хардуер :)


Съб Юни 20, 2026 12:57 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 9:39 pm
Мнения: 2277
Мнение Re: Memory mapped vs IO mapped периферия
itso.t написа:
А може ли някакъв кратък контекст - като за блондинките като мен? :D


При x86 четене от периферия
Код:
mov al, 20h
in al, dx ; входно-изходна операция

При mc6800 по спомен
Код:
ldaa 20h

В първия случай ако объркаш нещо с указателите например напишеш memset(0, 0, 256) периферията няма да пострада(ще омажеш таблицата на векторите с прекъсвания...). Във втория резултатът ще бъде неясно какъв...

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!


Съб Юни 20, 2026 8:41 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Memory mapped vs IO mapped периферия
HCL написа:
Това не помага защото пази само регистъра. Това което се записва в него си стои в нормалната памет. Достатъчно е един грешен указател да прецака стойността едно ниво по-нагоре и драйвера пише грешката в периферията.

Ако целта е хардуерна изолация слагаш MPU. То real-time ядрата като Cortex-M7 си идват с такъв. Изолираш кода на драйвера и регистрите и ако нещо тръгне да пипа по погрешка директно дава fault. Не е пълно спасение, но ограничава пораженията.

А ако е нещо наистина критично пишеше на memory-safe език със силна типизация като Rust. Там подобни достъпи гърмят още при компилация. Самото писане до регистъра ще е в unsafe блок, но тази част на драйвера я четете двама до пълно разбиране и така.

Отделно гледаш дали логиката е коректна. Познавам хора, които нищо друго не правят, освен да доказват формално отсъствието на грешки. Пишат на Rust и верифицират с Kani/Creusot. А ако не става въпрос за real-time доказваш в Rocq/Gallina директно екстрактваш към OCaml.

И пак няма гаранция, че няма да отрепеш някой. Там си трябват системни концепции за защита на различни нива, често независими едно от друго с известно ниво на редундантност.

Хардуеристите сме свикнали, пишем на VHDL и яко verification coverage и formal. Та от тази гледан точка АИ-то може да не замини програмистите ами изцяло да замени софтуера с хардуер :)

То това работи като става на въпрос за случайни грешки - но нищо не помага като имаш лоша архитектура или грешна логика. И с защита на паметта и със следене на типовете - все тая ...

_________________
Мразя да мразя ...


Пет Юни 26, 2026 4:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: Memory mapped vs IO mapped периферия
Ами случай със грешка може да се случи навсякъде, от тази гледна точка няма съществена разлика, вариант сигналите се гласуват ....ама и там идва момента къде ще настъпи грешката ....ако някоя заблудена частица удари на подходящо място и логиката с гласуване може да се окаже ненадеждна ...е да изхода и той трябва да е сейфти ....за да дойде накрая чичо плъх и да ти пикае на сейфтито след като закуси с изолацията му :)


Пет Юни 26, 2026 6:20 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни