|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.02.2015, 21:47 | #11 | |||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
И что мне делать если камушек это потребуется в контроллере, где память вся плоская и открытая? Цитата:
Цитата:
Цитата:
Цитата:
Приведи пример на стандартном ассемблере и твоем с демонстрацией экономии.
I'm learning to live...
|
|||||
09.02.2015, 22:03 | #12 |
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Основной причиной выбора двухадресного кода было желание сделать простые инструкции короче. И чтобы код на уровне HDL было как можно проще. Спроектированная система команд довольно просто и вполне оптимально реализуется на Verilog.
Если возникнет необходимость в трехадресных командах, то они будут размещены в области зарезервированных инструкций. |
09.02.2015, 22:12 | #13 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Т.е., вариации на тему аля-ассеблер? Плоско.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
09.02.2015, 22:35 | #14 | |||||
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
Спецификация L4X2 (которой мы стараемся придерживаться в нашей разработке) предлагает два способа передачи данных между адресными пространствами - копирование области памяти и маппинг страниц. Поскольку мы не можем передать указатель между адресными пространствами, то формируя сообщение для обмена между процессами, мы указываем регион памяти, которой будет переписан из адресного пространства передатчика в адресное пространство приёмники. Или, быстрый вариант, в случае которого, в процессе передачи сообщения, виртуальная страницы отображается в адресное пространство приёмника сообщения. Однако хочу сразу оговориться - виртуальную память мы будем реализовывать после завершения аппаратной многозадачности и реализации синхронных сообщений. Цитата:
Цитата:
Это один из примеров использования макросов. Цитата:
Цитата:
Пример 2: Условный вызов подпрограмм - добавление префикса NOTCH, например, к инструкции условновго перехода, сработает так, как если бы это был условный вызов подпрограммы. Пожалуй, надо пояснить: Код:
Код:
И что касается многозадачности - в процессоре используется несколько блоков регистров общего назначения - запись значения в определённый порт мгновенно переключает задачу. Сделано это в микрокоде и программист не может явно писать в этот порт. |
|||||
09.02.2015, 22:45 | #15 | ||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ну и ну. Цитата:
Цитата:
Цитата:
I'm learning to live...
|
||||
10.02.2015, 00:35 | #16 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
в целом, могу преположить, что изначально нужна была железячная заточка под весьма специфическую задачу (сегодня это как правило задачи медицины/медицинского оборудования). на момент, когда заточка была успешно завершена, она стала никому нафиг не нужна, потому что новые CPU/GPU общего назначения показывают результаты не сильно хуже заточки, да и потребитили отдают предпочтение системам, которые не нужно менять на новые после каждой публикации авторитетного доктора про то как можно улучшить диагностику на пол волосни. ну, и теперь, чтобы дать проекту вторую жизнь и добавить ему некоторую гибкость решено добавить ему софтовый уровень. надо понимать, что теперь в теме нет индустриальных партнеров и преследуется чисто академический интерес. |
|
10.02.2015, 07:37 | #17 |
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
|
10.02.2015, 08:03 | #18 | ||
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Префикс один байт, инструкция загрузки 2,3 или 4 байта. В среднем, четыре байта на операцию. На один байт меньше чем инструкция загрузки абсолютного адреса. И конечно же позиционная независимость. Макрос LEA необходим исключительно для адресации констант и глобальных переменных.
Что касается двух операций, то да, в нынешней реализации это две операции, но будь на ПЛИС Марсохода2 чуть больше логических элементов, то можно было бы отимизировать для одновременного выполнения префикса и инструкции. Архитектурных проблем для такой оптимизации нет, всё упирается в количество доступных логических элементов на ПЛИС. Цитата:
Цитата:
Давайте посчитаем сколько байт займёт вот эта конструкция на x86 Код:
Код:
Таким образом условный вызов подпрограммы позволяет экономить на двух вещах - реализация более компактна и работа со стеком переносится на другой уровень. В некоторых случая адрес возврата даже в "нетерминальных" функциях можно не сохранять в память, а копировать в другой регистр. |
||
10.02.2015, 08:08 | #19 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
10.02.2015, 08:13 | #20 | |
Пользователь
Регистрация: 09.02.2015
Сообщений: 31
|
Цитата:
Собственно, вот несколько слов о системе команд: http://everest.l4os.ru/cpu_commands_map_v1_1/ Если побродите по сайту, надеюсь, найдёте много интересного. Этот процессор ждёт небольшая операционная система: http://l4os.ru/ Прототипу системы более 10 лет. Именно под неё и делается "железка". Самая большая проблема в том, чтобы совместить эти проекты - в компиляторе. Система "Хамелеон" с дуру написана с применением классов С++ и очень серьёзно на них ориентирована. Поэтому даже Си-компилятор не решит польностью проблему - переписывать 100000 строк кода с С++ на Си никто не будет. А вот тут эксперименты с ассемблером - глядя как от нас разбегаются люди при упоминании ассемблера, мы решили сделать его более дружелюбным. Вот что из этого получается: http://everest.l4os.ru/aliases_for_registers/ Последний раз редактировалось almandrykin; 10.02.2015 в 08:18. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка программного обеспечения, с кем обсудить? | BioWat | Общие вопросы по программированию, компьютерный форум | 6 | 06.09.2013 01:05 |
Как узнать архитектуру процессора на неттопе? | qewertyns | Компьютерное железо | 8 | 16.04.2013 23:22 |
Желающим обсудить идею создания он-лайн игры | ringu2 | Фриланс | 0 | 03.01.2011 17:06 |
Какую архитектуру выбрать? | k376 | Помощь студентам | 2 | 23.04.2008 23:57 |