OSDev http://osdev.su/ |
|
давай новые архитектуды двигать http://osdev.su/viewtopic.php?f=18&t=1056 |
Страница 5 из 5 |
Автор: | Bargest [ 23 фев 2015, 19:02 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
Цитата: клонирование - создание какая разница смысл в том что создается новая задача у которой часть или все АП общее с другой задачей Разница большая. Клонирование - это копирование всего уже существующего. Никакого клонирования нет, есть создание, с установкой указателя директории страниц на уже существующую директорию. Да, смысл в этом. Цитата: ага 25 лет было, а тут раз и пропало у меня ВыньХП - так что у меня есть Да чего вы никак не поймете? Механизм есть в x86, но его уже нет после перехода в x64. И при этом даже под x86 его никто не использует. Винда в том числе. В винде переключение сделано программно в ядре. Мне один участник (Phoenix) писал про багу в VirtualBox, как раз в аппаратном переключении. На что оракулы ответили, что "никто этот механизм все равно не использует, и все популярные ОСи работают на vBox-е и так." |
Автор: | imsushka [ 23 фев 2015, 19:09 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
Bargest писал(а): Разница большая. Клонирование - это копирование всего уже существующего. Никакого клонирования нет, есть создание, с установкой указателя директории страниц на уже существующую директорию. андроид - линукс, а раз линукс то значит форк Цитата: Да чего вы никак не поймете? Механизм есть в x86, но его уже нет после перехода в x64. И при этом даже под x86 его никто не использует. Винда в том числе. В винде переключение сделано программно в ядре. Мне один участник писал про багу в VirtualBox, как раз в аппаратном переключении. На что оракулы ответили, что "никто этот механизм все равно не использует, и все популярные ОСи работают на vBox-е и так." есть в ХП так как там v86 запускается еще, совметимость с досом в 7 это уже выкинуто и сделали что то типа досбокса самое главное что от темы темы отошли |
Автор: | Yoda [ 24 фев 2015, 12:18 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
scuter писал(а): вот это двинули. Вот пришёл человек с новой "архитектудой", мы пытаемся её подвигать. Всё в порядке. |
Автор: | Yoda [ 24 фев 2015, 12:20 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
imsushka писал(а): ну они ж реализованы программно, не аппаратно значит их можно сделать везде Но при этом вы получите только часть их функциональности. Как вы уже заметили, в вашем процессоре потоки одной задачи не могут быть запущены на разных ядрах. imsushka писал(а): зачем 1 задаче одна страница по двум адресам ? Зачем - это уже другой вопрос. Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических? imsushka писал(а): если у нас 1 задача и 1 процессор - проблема будет ? Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"? imsushka писал(а): Yoda писал(а): Скажите, каким образом передаются сообщения? Что, кем и куда пишется и читается, - процесс опишите, пожалуйста. а я не знаю я на сообщениях и тормознулся когда ось писал точнее я тормознулся на всем IPC соответсвенно в железе тоже не реализовал Ну вот, видите. Как же можно разрабатывать процессор под ОС, не изучив сначала концепции ОС? Вкратце поясняю. В процессе передачи сообщений выделяется совместно используемая группа страниц памяти (shared memory). Одна задача что-то пишет в эту память, другая задача читает из неё. Конечно можно изобрести альтернативные аппаратные механизмы, но они (как следствие) будут иметь аппаратные ограничения, что крайне нежелательно. Например, при операциях файлового ввода-вывода объём данных, передаваемых между двумя задачами, может быть вообще ничем не ограничен. Таким образом, отображение одной физической страницы в два разных адресных пространства в двух задачах - совершенно необходимый механизм (а значит должна быть решена и проблема когерентности кешей). А чтобы обмен данными при этом не тормозил напрасно в сотни раз, необходимо, чтобы кеш работал на физических адресах, а не на логических. imsushka писал(а): отсутсвие тормозов при постоянном переключении задач (то что решено) Вообще-то, в классических процессорах нет сильных тормозов при переключении задач (если не считать постепенное вытеснение рабочих данных и кода из кешей 2 и 3 уровней новой задачей, но эту проблему ваш процессор не решит). Парадокс заключается в том, что аппаратное переключение задач на x86 работает медленней, чем программное. imsushka писал(а): передача сообщений (не решено) Увы, ваш процессор не имеет возможности передавать сообщения, по крайней мере, я пока что такого механизма не вижу. imsushka писал(а): кароче проц заточенный под микроядро А поскольку работа микроядра чуть более чем полностью заточена на обмен сообщениями, то ваш процессор именно для этого типа ядер совершенно непригоден. И опять же, я не вижу, в чём именно вы видите преимущества. imsushka писал(а): вот чо я хотел реализовать То, что описано, - это некоторая программная абстракция, которая должна быть реализована поверх конкретного аппаратного механизма. imsushka писал(а): так нужен поток параленьный? ну заводи 2 задачу с мапированной общей памятью данных, объяви эту область не кешируемой (в 1 уровня кеше) и наслаждайся жизнью Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном? imsushka писал(а): смысл в том что создается новая задача у которой часть или все АП общее с другой задачей Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования. imsushka писал(а): андроид - линукс, а раз линукс то значит форк Так ведь у вас и форк работать не будет. |
Автор: | imsushka [ 24 фев 2015, 16:05 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
Yoda писал(а): Но при этом вы получите только часть их функциональности. Как вы уже заметили, в вашем процессоре потоки одной задачи не могут быть запущены на разных ядрах. на 1 процессоре (4 ядра) могут быть запущены на любом ядре, в любой момент времени, без потери кеша Цитата: Зачем - это уже другой вопрос. Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических? да ничо не произойдей, пожалуйста отображай Цитата: Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"? дык из за того что переключается все (регистры, кеш, тлб), процессор видится как 1 ядреный однозадачный Цитата: Ну вот, видите. Как же можно разрабатывать процессор под ОС, не изучив сначала концепции ОС? Вкратце поясняю. В процессе передачи сообщений выделяется совместно используемая группа страниц памяти (shared memory). Одна задача что-то пишет в эту память, другая задача читает из неё. Конечно можно изобрести альтернативные аппаратные механизмы, но они (как следствие) будут иметь аппаратные ограничения, что крайне нежелательно. Например, при операциях файлового ввода-вывода объём данных, передаваемых между двумя задачами, может быть вообще ничем не ограничен. Таким образом, отображение одной физической страницы в два разных адресных пространства в двух задачах - совершенно необходимый механизм (а значит должна быть решена и проблема когерентности кешей). А чтобы обмен данными при этом не тормозил напрасно в сотни раз, необходимо, чтобы кеш работал на физических адресах, а не на логических. ну просто я не смог реализовать красиво, и потом приорететы поменялись (жизненные) вот и не доделал просто я не хотел через шаред, а через шаред пожалуйста работает Цитата: Вообще-то, в классических процессорах нет сильных тормозов при переключении задач (если не считать постепенное вытеснение рабочих данных и кода из кешей 2 и 3 уровней новой задачей, но эту проблему ваш процессор не решит). Парадокс заключается в том, что аппаратное переключение задач на x86 работает медленней, чем программное. то что шас крутиться на классических процессорах - монолит я же хотел микроядро Цитата: Увы, ваш процессор не имеет возможности передавать сообщения, по крайней мере, я пока что такого механизма не вижу. жерез шаред меморю Цитата: А поскольку работа микроядра чуть более чем полностью заточена на обмен сообщениями, то ваш процессор именно для этого типа ядер совершенно непригоден. И опять же, я не вижу, в чём именно вы видите преимущества. вот и надо придумать Цитата: То, что описано, - это некоторая программная абстракция, которая должна быть реализована поверх конкретного аппаратного механизма. да, но идея хороша Цитата: Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном? ?????????????????????? Цитата: Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования. кеш 1 уровня да, на 2 уровне нет запрета Цитата: Так ведь у вас и форк работать не будет. злые вы |
Автор: | Yoda [ 24 фев 2015, 17:34 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
imsushka писал(а): Yoda писал(а): Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических? да ничо не произойдей, пожалуйста отображай Хорошо, спрошу по-другому. Если два разных логических адреса отображены на один физический, что будет, если произвести запись по первому адресу, а затем чтение по второму? imsushka писал(а): Yoda писал(а): Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"? дык из за того что переключается все (регистры, кеш, тлб), процессор видится как 1 ядреный однозадачный Так я пока что из-за такого переключения вижу только проблемы, а не преимущества! imsushka писал(а): ну просто я не смог реализовать красиво, и потом приорететы поменялись (жизненные) вот и не доделал просто я не хотел через шаред, а через шаред пожалуйста работает Вы не поняли. Ваша беда в том, что у вас и "через шаред" не работает. Собс-но, с этого мы и начали, открутите цепочку цитат назад. imsushka писал(а): то что шас крутиться на классических процессорах - монолит я же хотел микроядро Объясните, пожалуйста, чем отличаются механизмы переключения задач в монолите и микроядре? imsushka писал(а): Yoda писал(а): Увы, ваш процессор не имеет возможности передавать сообщения, по крайней мере, я пока что такого механизма не вижу. жерез шаред меморю Так ведь у вас shared memory невозможна. imsushka писал(а): Yoda писал(а): И опять же, я не вижу, в чём именно вы видите преимущества. вот и надо придумать Вот и придумайте! imsushka писал(а): Yoda писал(а): Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном? ?????????????????????? Ну вы же говорите, что для разделения памяти надо отключать её кеширование. А это значит, снижать производительность в десятки, а то и в сотни раз. А т.к. для двух потоков вся память совместная, значит, всё приложение замедлится в сто раз. imsushka писал(а): Yoda писал(а): Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования. кеш 1 уровня да, на 2 уровне нет запрета То есть, страница должна иметь два разных флага - запрет на кеширование вообще и запрет только на кеширование первого уровня, о чём я вам раньше и говорил. Но даже в этом случае ваша архитектура будет сильно тормозить при работе потоков (см выше) и крайне неэффективно расходовать драгоценное место на кристалле (вот эти самые 1024 буфера задач размером до 8 мегабайт), но я, пожалуй, не буду объяснять, почему. imsushka писал(а): злые вы Никоим образом. Вы пришли обсудить архитектуру. Обсуждение подразумевает критический взгляд. Недоброжелательности с нашей стороны нет, мы лишь указали на слабые места в вашей концепции. |
Автор: | imsushka [ 24 фев 2015, 18:05 ] |
Заголовок сообщения: | Re: давай новые архитектуды двигать |
да тяжело гениям проц состоит из 4 (или больше) ядер, регистрового файла и кеша 2 уровня у ядер нету собственного ничего, только декодирование инструкций и АЛУ регистровый файл состоит из блоков (от 1 до ...) каждый блок состоит из РОНа, кеша д/к, тлб и еще чавонить ядра могут обращаться к блокам произвольным образом, естественно к 1 блоку может единовременно обратиться только одно ядро в кеше 1 уровня используются логические адреса которые относятся только к 1 адресному пространсву в кеше 2 уровня адреса физические кеш 2 уровня общий для всего проца тут все понятно ? |
Страница 5 из 5 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |