Егоров 0 17 августа, 2013 Опубликовано 17 августа, 2013 · Жалоба А мне больше нравиться архитектура, когда в одном программном слове указатели на данные и их формат. Одна инструкция содержит до 11 скрытых операций: . Мало кода, четкая параллельность... Прошу прощения, если невпопад, давно отошел от этих дел. Но то, что Вы описали - система команд, не архитектура. Архитектура тут одна - микропрограммное выполнение инструкций. Можно при одной и той же архитектуре ЦП создать множество систем команд, было бы умение прошить микропрограммник. Да, код сокращает, но время обработки растет даже непропорционально и с обработкой прерываний сложности возникают. Прервать можно безболезненно программу, а длиннючую микропрограмму уже рисковано. По-настоящему архитектуру ЦП затрагивают другие критерии. Например, в одной разработке нужно было за один такт, а не побитно подпрограммой, развернуть слово , младший разряд в старший и т.д, наоборот. Вот там в архитектуру был включен специальный аппаратный блок. Ну и еще фундаментальные общие определения архитектуры - гарвардская, фон-неймановская, теговая. Это относится к взаимодействию ЦП и памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corner 0 21 августа, 2013 Опубликовано 21 августа, 2013 · Жалоба http://multiclet.com/ - будущее российских систем на кристалле. Сколько не читал так и не понял, что тут за архитектура и на каких частотах работает. Такое ощущение, что это несколько ALU с шедулером и КП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavia 0 21 февраля, 2014 Опубликовано 21 февраля, 2014 · Жалоба Изучаю verilog, делаю свой процессор. Чувствую что застрял. Какие есть архитектуры процессоров и что по ним можно прочитать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 21 февраля, 2014 Опубликовано 21 февраля, 2014 · Жалоба Изучаю verilog, делаю свой процессор. Чувствую что застрял. Какие есть архитектуры процессоров и что по ним можно прочитать? Computer Architecture A Quantitative Approach осторожно трафик -> http://eecs.oregonstate.edu/research/vlsi/...ve_approach.pdf http://electronix.ru/forum/index.php?showtopic=88548 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ynicky 0 24 февраля, 2014 Опубликовано 24 февраля, 2014 (изменено) · Жалоба Мне очень помогло это: lec9_2.pdf http://www.kurtm.net/archive/2003-Fall-cs1..._html/lecnotes/ Изменено 24 февраля, 2014 пользователем Ynicky Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 29 апреля, 2014 Опубликовано 29 апреля, 2014 (изменено) · Жалоба Позвольте и мне показать "микропроцессор". Это 32-х битное ядро, которое выглядит так: Ядро использует собственную систему команд, нескромно названную "Эверест": 16 регистров общего назначения позиционно независимый код большой запас для расширения системы команд Частичное описание системы команд: http://everest.l4os.ru/core/ Несколько слов об ассемблере: http://everest.l4os.ru/assembler/ Пример пошаговой отладки ядра: http://everest.l4os.ru/test_of_strlen/ Выполнение команд занимает 2-3 клока, не считая тактов ожидания внешних устройств. Ядро проверено на плате "Марсоход2" и показало возможность работы на 100МГц. В перспективе возможна реалиазция конвейерного исполнения команд. В более далёкой перспективе - одновременное выполнение нескольких команд за такт. Причём, параллельное выполнение некоторых команд можно достичь с небольшими издержками за счёт коротких команд и 40-битной входной шины. Т.е. в перспективе ожидается параллельное выполнение нескольких команд, если они не взаимозависимы и целиком поместились на входную 40-битную шину. Впрочем, это отдалённые перспективы, потому что... Процессор создаётся с надеждой на то, что в скором будущем он обзаведётся аппаратным планировщиком и расширенным MMU с поддержкой универсальных страниц виртуальной памяти. В результате процессор станет первым в мире микропроцессором с аппаратно реализованным микроядром L4. Если успеет... :) Собственно, ради реализации аппаратного микроядра и был затеян этот проект. Процессор создаётся под уже существующую микроядерную операционную систему (точнее - рабочий прототип ОС). Изменено 29 апреля, 2014 пользователем alman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба Разреште поделиться небольшим успехом - процессор научился программно писать в последовательный порт. Подробности по клику: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 9 мая, 2014 Опубликовано 9 мая, 2014 · Жалоба Такое живое обсуждение процессоров в этой теме :) Между тем, процессор "Everest" научился читать из последовательного порта. И кое-чему ещё, о чём можно узнать перейдя по ссылке. Для этого достаточно кликнуть на картинку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 21 мая, 2014 Опубликовано 21 мая, 2014 (изменено) · Жалоба В соседней теме кипят нешуточные страсти и люди (язык не поворачивается сказать "народ") активно делятся идеями и наработками. Между тем, кто-то продолжает "тянуть лямку" и не жалея сил продолжает готовить процессор для встраивания в него аппаратного микроядра планировщика. Сегодня расскажу ещё об одном устройстве, выполнящиюм функции арбитра шины. Сейчас оно выглядит как-то вот так: Как видно из картинки, устройство почти полностью симметрично показанному выше ядру, за исключением добавленных ног - serial_rx, serial_tx. Внутри этого устройства находится UART, ПЗУ с микрокодом и два региона ОЗУ. ПЗУ и ОЗУ сгенерированы с помощью мегафункций Altera. Один блок ОЗУ зарезервирован для регистров собщений, второй блок ОЗУ - кэш инструкций. Но это в будущем, а в настоящий момент эти два региона ОЗУ задействованы для тестирования отладки. Выглядит это так. После старта в подключенном терминале появляется следующее меню: ┌────────────────────────> Welcome to Everest core <───────────────────────────┐ │ 1 - Load binary file via X-modem protocol │ │ 2 - Run previously loaded binary file │ │ 3 - Show RAM (0x100000-0x100140) │ │ 4 - Test of message registers │ │ 5 - Show previously loaded ANSI picture │ │ 6 - Show built-in ANSI pic #1 │ │ 7 - Show built-in ANSI pic #2 │ └──────────────────────────────────────────────────────────────────────────────┘ А дальше всё тривиально - после нажатия клавиши 1, устройство ожидает принятия файла по протоколу X-modem Нажатие клавиши 2 в терминале запустит загруженный файл. И т.д. Устройство постепенно обрастает библиотечными функциями. Последние из реализованных - _mul - умножение двух целых числел, _div - деление целых числел, _print_dec - вывод числа в десятичной форме в терминал. Изменено 21 мая, 2014 пользователем alman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 21 мая, 2014 Опубликовано 21 мая, 2014 · Жалоба В соседней теме кипят нешуточные страсти... Есть две платы с Cyclone III и StratixII. На обоих у меня было несколько проектов на NiosII, при работе с программатором USB Blaster. А как поработать на этих ПЛИС с Вашим ядром, это коммерческая тема или есть доступ для тестирования? То есть, как сравнить все, что относится к NiosII с Вашими наработками по Эвересту... Просмотрел Ваши сайты, но пока еще не разобрался... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 21 мая, 2014 Опубликовано 21 мая, 2014 (изменено) · Жалоба Есть две платы с Cyclone III и StratixII. На обоих у меня было несколько проектов на NiosII, при работе с программатором USB Blaster. А как поработать на этих ПЛИС с Вашим ядром, это коммерческая тема или есть доступ для тестирования? Если согласны не передавать исходный код ядра третьим лицам, то могу передать архив с проектом, например, расшарив его через Google диск. Формат QAR, помещённый в запароленный ZIP будет удобен? Пароль сообщу личным сообщением. Прошу понять меня правильно - сам по себе процессор ценности почти не имеет - он создан для реализации аппаратного microkernel совместимого с L4. Таким образом "просто процессор" готов раздать всем желающим, на условиях нераспространения его исходного кода. А вот что касается микроядра, то его пока нет и если оно будет реализовано, то будет коммерческим. p.s. Откровенно, Ваш вопрос выбил меня из колеи. Уже как-то привык, что никакого отклика, а как получил первый вопрос, то лишился дара речи. p.p.s. Прошивку для платы Марсоход2 можно скачать здесь - форум "Марсохода". Изменено 21 мая, 2014 пользователем alman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 21 мая, 2014 Опубликовано 21 мая, 2014 · Жалоба А не поздно ли в нашем "болоте" ядрами заниматься? Понятно, что отстали технологически, ну оч намного. Откуда у вас вера в коммерцию для вашего ядра, вот чего не пойму. В той же калифорнии, полно обанкротившихся компаниями с шикарными решениями ядер, причем у них под боком ну оч приличная топо технология. И вы туда же? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alman 0 21 мая, 2014 Опубликовано 21 мая, 2014 · Жалоба А не поздно ли в нашем "болоте" ядрами заниматься? Понятно, что отстали технологически, ну оч намного. Откуда у вас вера в коммерцию для вашего ядра, вот чего не пойму. Вы будете смеяться, но вся вера построена на одном допущении. Предистория такова - в 2003 году был перенсён код самописной файловой системы из консольного тестового проекта MS Visual Studio в задачу, исполняющуюся поверх микроядра L4Ka::Pistachio на архитектуре ia32. С учётом того, что микроядро L4 синхронное, файловая система заблокировала всю систему в момент чтения со stdin (проще говоря - система заблокировалась в ожидании нажатия клавиши на клавиатуре). Самое смешное, что все писатели операционных систем, использующих синхронные микроядра, сталкиваются с этой проблемой и решают её по своему. В результате, почти случайно, было найдено оригинальное решение развязывания синхронных вызовов в асинхронные, которое давало минимальный оверхед по ресурсам. Собственно, многолетняя убеждённость в том, что решение удачное, уникальное и никому пока ещё не пришло в голову - вот эта убеждённость и придаёт силы. В той же калифорнии, полно обанкротившихся компаниями с шикарными решениями ядер, причем у них под боком ну оч приличная топо технология. И вы туда же? Когда работа ведётся много лет на энтузиазме и вере, когда в работу вкладываюся собственные средства, когда нет кредиторов и хозяев, диктующих что и как делать, то обанкротится сложно. Сильно рисковать желания нет, пусть со стороны это выглядит как риск, а изнутри это смотрится как целенаправленная многолетняя работа. Кстати, собственно почему пришла идея сделать свой микропроцессор? Такие мысли были давно, но желание превратилось в намерение после переноса операционной системы "Хамелеон" с x86-32 на x86-64. В какой-то момент перенести удалось, но само микроядро L4-Pistachio работает нестабильно на 64-битах. Это очень нехорошее чувство, когда то, на что опирается ваш код, работает нестабильно, а трудозатраты на исправление чужого кода сопоставимы с трудозатратами при разработке с нуля. В общем, тут сам Бог велел забыть о "чужих" проблемах и недоработках, а сделать то, что нужно самому. Не то, чтобы в Калифорнии никто не делал аппаратных планировщиков - такие исследования проводились разными командами, но вот чтобы кто-то реализовал аппаратно синхронное микроядро (microkernel) - такого ещё не сделал никто. Во всяком случае не сделал нечто, опирающееся на идеи из вот этой спецификации - http://www.l4ka.org/l4ka/l4-x2-r7.pdf Простите за многословность. Я теряю самообладаение когда речь идёт об микроядре L4. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 26 мая, 2014 Опубликовано 26 мая, 2014 · Жалоба ...Прошивку для платы Марсоход2 можно скачать... Прочел ссылки, и на мой взгляд, Вы синтезируете аппаратный диспетчер для многозадачных процессов, с целью ускорения работы операционных систем. Но могу и ошибаться… Меня же пока интересует маленький процессор на 8 или 16 разрядов, с ограниченным набором команд, который загружался бы в ПЛИС типа Cyclone III, например, с EPCS16. И помимо процессора, чтобы можно было загружать программы к нему, а также другую аппаратную обвязку. Для подобных загрузок надо знать, как вместе с процессором разместить в EPCS программу к нему, и как все это из EPCS выгрузить. Для NiosII это решается интегрированной средой и с применением jic-файла, но не понятны детали, как это все делать и увязать самому. Конечно, NiosII удовлетворяет с лихвой, но есть задачи и для души... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 26 мая, 2014 Опубликовано 26 мая, 2014 · Жалоба Меня же пока интересует маленький процессор на 8 или 16 разрядов, с ограниченным набором команд, который загружался бы в ПЛИС типа Cyclone III, например, с EPCS16. И помимо процессора, чтобы можно было загружать программы к нему, а также другую аппаратную обвязку. Для подобных загрузок надо знать, как вместе с процессором разместить в EPCS программу к нему, и как все это из EPCS выгрузить. Для NiosII это решается интегрированной средой и с применением jic-файла, но не понятны детали, как это все делать и увязать самому. Конечно, NiosII удовлетворяет с лихвой, но есть задачи и для души... У меня есть на сайте статьи "микропроцессор своими руками"... А вообще маленький микроконтроллер делается быстро. Самое главное - это сделать систему команд. И еще 2 стека: стек возвратов и стек данных. Двухпортовка в качестве регистрового файла... И команды перехода по выбору бита из байта. Будут вопросы - могу подробнее объяснить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться