OSDev

для всех
Текущее время: 29 мар 2024, 04:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 22 фев 2015, 16:02 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Yoda писал(а):
а поскольку аппаратных задач до 1024, то существует до 1023 неработающих кешей по 2к каждый, правильно?

ну да, реально не 2к а 8к. так как регистры тоже не используются

Цитата:
Вот я и спрашиваю, - если сброс кеша не делается, то что происходит, когда данные по этому несброшенному адресу обновились в другой задаче? Это и есть проблема когерентности кешей.

в кеше логические адреса , не физические
если часть памяти смапирована в другую задачу, то можно эту область объявить не кешируемой

Цитата:
В вашей диаграмме не отмечено, где хранятся теневые копии этих специальных регистров. Вероятно, в "3к ещё чего-нибудь" :).

да
просто я не определился со спец регистрами


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 16:14 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
imsushka писал(а):
ну да, реально не 2к а 8к. так как регистры тоже не используются

Я сейчас не про регистры, их теневое существование (в отличие от кеша) проблем не вызовет.

imsushka писал(а):
в кеше логические адреса , не физические
если часть памяти смапирована в другую задачу, то можно эту область объявить не кешируемой

Согласен, для разных адресных пространств так поступать можно. А как быть с потоками (т.е. с разными задачами, которые работают в общем адресном пространстве)?

И кстати, если этот аппаратный теневой файл вынесен из общего адресного пространства, то совершенно не обязательно его привязывать к какой-то линейной структуре и думать, куда приткнуть 3к.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 16:44 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Yoda писал(а):
Согласен, для разных адресных пространств так поступать можно. А как быть с потоками (т.е. с разными задачами, которые работают в общем адресном пространстве)?

И кстати, если этот аппаратный теневой файл вынесен из общего адресного пространства, то совершенно не обязательно его привязывать к какой-то линейной структуре и думать, куда приткнуть 3к.


поток = подпрограмме
мне плювать что делает задача в своем адресном пространстве и когда
пусть задача свой шедулер организует

единственная проблема - задача может выполняться только на 1 процессоре (4 ядра)
и нельзя параллелить потоки 1 задачи

аппаратно кратные адреса проще обрабатывать


Вложения:
Presentation2.ppt [35.5 КБ]
Скачиваний: 374
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 17:53 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
imsushka писал(а):
мне плювать что делает задача в своем адресном пространстве и когда
пусть задача свой шедулер организует

И разные стеки тоже сама организует (в общем адресном пространстве)? И переключение потоков?

Yoda писал(а):
Согласен, для разных адресных пространств так поступать можно.

Тут, кстати, я забыл добавить, - можно, но это будет неэффективно, т.к. межпроцессное взаимодействие будет всегда работать мимо кеша, то есть в сотни раз медленней. Либо надо добавлять атрибут к странице памяти, что она "кешируема, но только не на первом уровне", хотя и это уже будет бессмысленно замедлять работу.

imsushka писал(а):
единственная проблема - задача может выполняться только на 1 процессоре (4 ядра)
и нельзя параллелить потоки 1 задачи

Да у вас в одном утверждении сразу две проблемы, а вы говорите "единственная". Я их тут уже ворох нарыл. А то, что нельзя параллелить потоки - это серьёзнейший минус.
Я вас всё подвожу к мысли, что не надо хранить теневой кеш, проблем от этого много, а выгоды никакой.

imsushka писал(а):
аппаратно кратные адреса проще обрабатывать

Так я не про адреса. Лишнюю физическую память можно вообще не реализовывать.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 18:16 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Цитата:
И разные стеки тоже сама организует (в общем адресном пространстве)? И переключение потоков?

адресное пространство ее, только ее
и переключение потоков и стек легко реализуются на процессорах без ММУ
да всем ли задачам нужна многопоточность ?

пример:
комп АСУ ТП - нужна 1 задачная ОС с графическим интерфейсом. Шоб больше ничо нельзя было делать на этом компе.
А нету. В основном сименсковое программное обеспечение под винду.

Цитата:
Тут, кстати, я забыл добавить, - можно, но это будет неэффективно, т.к. межпроцессное взаимодействие будет всегда работать мимо кеша, то есть в сотни раз медленней. Либо надо добавлять атрибут к странице памяти, что она "кешируема, но только не на первом уровне", хотя и это уже будет бессмысленно замедлять работу.

1 уровня кеш - ЛОГИЧЕСКИЕ АДРЕСА, НЕ ФИЗИЧЕСКИЕ !!!!!!
указывают только на пространство задачи.


Цитата:
Да у вас в одном утверждении сразу две проблемы, а вы говорите "единственная". Я их тут уже ворох нарыл. А то, что нельзя параллелить потоки - это серьёзнейший минус.
Я вас всё подвожу к мысли, что не надо хранить теневой кеш, проблем от этого много, а выгоды никакой.

при переключении задачи кеш не сбрасывается

Цитата:
Так я не про адреса. Лишнюю физическую память можно вообще не реализовывать.

ну может быть


для задач получается что процессор не многозадачный, а 1 задачный
1 большое адресное пространство, единоличное 1 задачи
нету прямой связи между задачами

4 ядра (ну может и больше если поместится) - задача может выполнятся на любом так как регистровый файл общий
поэтому нет понятия приорететный процессор/ядро


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 18:34 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
предыстория попадания меня сюда

на хабре год назад появилась статья про l4 ядро и проц к ней
я на их форуме написал что типа есть проц под микроядро, но народ не заинтересовался

на неделе на хабре появилась 2 статья от них же
с распиской о системе команд

народ сделал очередной MIPS

в коментах была ссылка сюды


народ делает новую ось, но она состоит только из загрузчика или один в один юникс
народ делает процессор, но он один в один мипс
почему ?
нету идей? консерватизм? только исходники юникса видели?

и зачем писать на асме ?
изучить асм ?
напиши алгоритм на ЯВУ потом оптимизируй алгоритм
и только потом если уже ничего не получается - попробуй асм
хотя уже давно компиляторы оч хорошо компилируют и от написанного на асме не сильно отличается


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 19:06 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
imsushka писал(а):
адресное пространство ее, только ее

Как же вы организуете межпроцессное взаимодействие? Или сферическая ОС не предполагает никакого взаимодействия?

imsushka писал(а):
да всем ли задачам нужна многопоточность ?

Ну если только вы не делаете простейшее встраиваемое решение... а так, сейчас даже в смартфонах потоки.

imsushka писал(а):
1 уровня кеш - ЛОГИЧЕСКИЕ АДРЕСА, НЕ ФИЗИЧЕСКИЕ !!!!!!

Тем более непонятно. А что если два логических адреса отображены на один физический? Тогда у вас даже для одной задачи внутри кеша предполагаются проблемы?

imsushka писал(а):
указывают только на пространство задачи.

Опять же, что там предполагается с межпроцессным взаимодействием?

imsushka писал(а):
при переключении задачи кеш не сбрасывается

Т.е., сэкономили постепенное (в процессе работы нового кода) вытеснение 2к кеша первого уровня и поимели кучу геморроя? Опять же, что там с 0.1% эффективностью использования кеш-памяти?

imsushka писал(а):
нету прямой связи между задачами

Нуууу, приехали...

imsushka писал(а):
предыстория попадания меня сюда
...
народ сделал очередной MIPS
...
почему ?
нету идей? консерватизм? только исходники юникса видели?

Вот вы скажите, а в чём существенное преимущество вашей архитектуры над MIPS? Недостатки я уже увидел.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 19:11 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Зачем нужны потоки? Да потому что ...
А вообще да не нужны. Можно и процессами обойтись.

Программисту нужны простые инструменты. Потоки это один из них. Мы имеем параллельность при этом у нас нет защиты. Зато мы может дотянуться до любого объекта из любого потока. Просто при помощи указателей и не надо городить фронтенд для организации канала сообщений и последующего разбора данных.
Но напрямую работать с объектами из других потоков не следует так как это нарушает потока безопасность.

Параллельность нужна везде. Хотя бы по-тому что графический интерфейс должен быть отзывчивым. И реагировать на команды немедленно.

В том же АСУТП - нужно параллельно выполнять задачи.
1. Читать данные.
2. Обрабатывать.
3. Выводить на экран.
4. Выводить команды на устройства
5. Протоколировать данные. Т.е писать на жёсткий диск.

Все эти 5 операций как правило присутствую везде.
Так как есть требования к реальному времени то должны они работать по принципу конвейера.
Как на конвейере рабочие выполняет свою работу параллельно. Так и здесь задачи должны работать параллельно. С передачей данных по цепочке.
При этом также они должны быть защищены. А это значит что изолированны друг от друга.
А по хорошему ещё и за дублированы в памяти.
Если какая-то задача выйдет из строя остальные продолжат работу.
В данном случае выход из строя 3 и 5 задачи не критичны. Более того если мы будем получать дублирующую информацию с датчиков и читать их в разных задачах. Т.е задублируем 1 задачу. То отказ одной из копий 1 задачи не приведёт к сбою.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 19:37 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Цитата:
Как же вы организуете межпроцессное взаимодействие? Или сферическая ОС не предполагает никакого взаимодействия?

как в микроядре все общаются ? сообщения

Цитата:
Ну если только вы не делаете простейшее встраиваемое решение... а так, сейчас даже в смартфонах потоки.

да там потоки ява машиной организованны.

Цитата:
Тем более непонятно. А что если два логических адреса отображены на один физический? Тогда у вас даже для одной задачи внутри кеша предполагаются проблемы?

как они могут быть отображены на 1 физический ??? только мапированием, а мы договорились что мапирование не кешируется


Цитата:
Опять же, что там предполагается с межпроцессным взаимодействием?

как в микроядре все общаются ? СООБЩЕНИЯ

Цитата:
Т.е., сэкономили постепенное (в процессе работы нового кода) вытеснение 2к кеша первого уровня и поимели кучу геморроя? Опять же, что там с 0.1% эффективностью использования кеш-памяти?

какой новый код? у нас 1 задача
для 1 задачи и будет менятся содержимое кеша

Цитата:
Нуууу, приехали...

как в микроядре все общаются ? СООБЩЕНИЯ !!!!!!!!!!!!!!!!!!!!!

Цитата:
Вот вы скажите, а в чём существенное преимущество вашей архитектуры над MIPS? Недостатки я уже увидел.

ну если гонять линукс то да никакого приимущества
но вот если микроядро ....


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 фев 2015, 19:46 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Цитата:
Зачем нужны потоки? Да потому что ...
А вообще да не нужны. Можно и процессами обойтись.

Программисту нужны простые инструменты. Потоки это один из них. Мы имеем параллельность при этом у нас нет защиты. Зато мы может дотянуться до любого объекта из любого потока. Просто при помощи указателей и не надо городить фронтенд для организации канала сообщений и последующего разбора данных.
Но напрямую работать с объектами из других потоков не следует так как это нарушает потока безопасность.

защищать програмиста от него самого ?
это его задача, он ее писал. если он кулхацкер и не следит за памятью, то руки по вырывать надо ему
у меня скайп еже суточно по 50 мег памяти жрал, за неделю гиг получалось.
комп не выключается никогда.
после обновления вроде улучшилось.

если ему нужны потоки пусть реализует или пусть использует библиотеку
в андроиде потоки ява машиной реализованы


Цитата:
Параллельность нужна везде. Хотя бы по-тому что графический интерфейс должен быть отзывчивым. И реагировать на команды немедленно.

В том же АСУТП - нужно параллельно выполнять задачи.
1. Читать данные.
2. Обрабатывать.
3. Выводить на экран.
4. Выводить команды на устройства
5. Протоколировать данные. Т.е писать на жёсткий диск.

Все эти 5 операций как правило присутствую везде.
Так как есть требования к реальному времени то должны они работать по принципу конвейера.
Как на конвейере рабочие выполняет свою работу параллельно. Так и здесь задачи должны работать параллельно. С передачей данных по цепочке.
При этом также они должны быть защищены. А это значит что изолированны друг от друга.
А по хорошему ещё и за дублированы в памяти.
Если какая-то задача выйдет из строя остальные продолжат работу.
В данном случае выход из строя 3 и 5 задачи не критичны. Более того если мы будем получать дублирующую информацию с датчиков и читать их в разных задачах. Т.е задублируем 1 задачу. То отказ одной из копий 1 задачи не приведёт к сбою.

блиииин и как я это смог сделать на 675 пике с флешем на 1024 слова и 64 байта памяти ????
ума не приложу
и обработка софверного сом порта (ну нету в пике аппартного) и опрос кнопок и работа с ацп

а на мастере так ваше 4 софтверных уарта и еще работа с хостом
ой блин. что ж я наделал
мне ж минимум коре ай3 ставить надо было


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB