Архив за 08 февраля 2016 - 8

Можно ли добавить в микропроцессор инструкции (команды)? Если вы используете микросхемы ПЛИС / FPGA с реконфигурируемой логикой и микропроцессорное ядро, которые синтезирутся из описания на языках Verilog и VHDL, то можете. Причем это будет «честное», настоящее расширение системы команд, а не трюк типа программной эмуляции инструкции в обработчике исключения от зарезервированной команды, и не «микрокод», популярный в исторических процессорах 1970-х годов. Команды, добавленные в современный синтезируемый процессор с помощью модификации его исходников на Verilog или VHDL, могут работать в конвейере и обрабатываться процессором как его собственные, без временных задержек.

Главная проблема с модификацией исходников дизайна процессора на Verilog или VHDL — трудоемкость. Нужно понять, как работает логика различных блоков и избежать нежелательных побочных эффектов. К счастью, существует способ расширения процессора, который превращает семестровый студенческий проект в нечто, что студент может спроектировать за одну лабораторную работу. Этот способ — интерфейс CorExtend / UDI (User Defined Instructions) в микропроцессорном ядре MIPS microAptiv UP, которое используется в пакете для образования MIPSfpga.

В рамках университетской программы MIPSfpga компании Imagination Technologies можно скачать настоящий индустриальный код на Verilog процессора MIPS microAptiv UP.
https://community.imgtec.com/university/resources/

Одним из распространенных применений UDI является манипуляции битами в алгоритмах шифрования. Другой пример — создание специальных инструкций для ускорения алгоритмов ЦОС Accelerating DSP Filter Loops with MIPS® CorExtend® Instructions.

Однако в наборе документации к MIPSfpga интерфейс между ядром и CorExtend описан недостаточно подробно. Подробная документация предоставляется только лицензиатам ядер. В этой статье представлено мое описание данного интерфейса на основе изучения исходного кода. Его можно также скачать в формате pdf MIPS microAptiv UP Processor CorExtend UDI interface protocol guide.

CorExtend занимает следующее место в RTL иерархии ядра m14k microAptiv.

CorExtend RTL Hierarchy
Читать полностью »

На Хабре не так уж много статей, посвященных Vert.x, раз, два и обчёлся. Поэтому решил внести свой вклад и опубликовать небольшой урок, в котором рассказано, как написать простой чат с помощью Vert.x 3.

Пишем чат на Vert.x 3 - 1
Читать полностью »

Предлагаю вашему вниманию небольшую историю моего провала и того как, порой, бывают безлики проверки на умение "решать задачи/проблемы" во время собеседований.

image

Читать полностью »

Сервис онлайн-бронирования отелей Oktogo получил $2 млн инвестиций от польского инвестфонда MCI Capital, сообщила газета «Ведомости». Средства планируется направить на увеличение числа прямых контрактов с российскими отелями.

MCI Capital уже является акционером Oktogo, Читать полностью »

Школа Данных «Билайн», для менеджеров - 1

Привет!

Итак, мы запустили третий курс Школы Данных «Билайн». Подробный отчет о занятиях от одного из участников можно почитать здесь.

Отчеты о работе Школы мы также будем выкладывать на официальной странице Школы в Facebook. Там же будем отвечать на вопросы, которые также можно направлять на dataschool@beeline.digital.

Набираем 4-ый курс, который стартует с 4 апреля. Запись, как всегда, на странице Школы.

Однако, данный пост не только об этом. До сих пор в Школе Данных мы учили аналитиков, учили тому, как применять методы машинного обучения для решения практических задач. Однако, практически любая практическая задача начинается с бизнес-потребности и бизнес- постановки.

Мы сейчас не будем говорить о том, что на заре больших данных считалось, что основные инсайты и применения аналитики идут скорее от данных. Это безусловно есть, но в нашей практике это происходит в соотношении 80 к 20, где 80 процентов всех задач для аналитика или даже больше рождается от бизнеса.

Однако, как же бизнес генерит эти задачи, если он, бизнес, не разбирается в аналитике данных? Да, очень просто. В нашей компании мы потратили какое-то время на объяснение бизнесу возможностей аналитики данных и теперь разные подразделения заваливают нас заказами придумывая все новые применения этим инструментам.
Читать полностью »

Когда и как покупать акции перспективных стартапов: Мнение инвестора - 1

Известный финансовый эксперт и сооснователь сервиса Crowdability Уэйн Маллиган (Wayne Mulligan) написал материал о том, как купить акции перспективного стартапа еще до его IPO. Мы представляем вашему вниманию главные мысли этой заметки.Читать полностью »

image

Ни для кого не секрет, что все мы имеем право время от времени брать отпуск. Исследование, опубликованное в The Wall Street Journal, доказало, что длительная работа без отдыха приводит к снижению продуктивности, ухудшению творческих способностей и даже может стать причиной конфликтов среди коллег. Кроме того, такой режим плохо влияет на физическое здоровье человека. Что скажут насчет отпусков Ричард Брэнсон, Марисса Майер, Джон Донахоу и другие всемирно известные личности? Читать полностью »

Людям очень интересно узнать больше о сексуальной жизни Cortana и Siri, а также новых виртуальных ассистентов Robin, Amy и Molly. Разработчики «очеловечивают» свои творения, чтобы сблизиться с людьми, а пользователи, в свою очередь, жаждут грязных разговоров.

Даже виртуальные помощники подвергаются сексуальным домогательствам - 1
Читать полностью »

Недавно в нашем проекте возникла необходимость программно получать информацию о перечислениях (enum), например, имена констант в виде строк, а также общий список всех имеющихся в enum-е констант.

enum Suit { Spades, Hearts, Diamonds, Clubs };

Обычно решение данной задачи базируется на дублировании значений, например, внутри switch-а:

switch(value)
{
    case Spades:   return "Spades";
    case Hearts:   return "Hearts";
    case Diamonds: return "Diamonds";
    case Clubs:    return "Clubs";
    default:       return ""
};

И возможно, для небольших перечислений такое решение действительно является приемлемым, однако если значений много, и особенно, если они время от времени меняются, то рано или поздно разработчик может забыть дописать или изменить соответствующие строки в switch. Сюда прибавляются и другие очевидные минусы, например сам факт необходимости дублирования значений уже вызывает у меня некоторое недовольство.

Поэтому я постарался найти путь, который вообще не требовал бы дублирования, но при этом полностью справлялся бы с поставленной задачей. Думаю, у меня получилось.

Далее в статье я опишу способ, позволяющий организовать рефлексию для enum-ов. Кому интересно — добро пожаловать под кат.
Читать полностью »

Email и безопасность: Можно ли защитить почтовую переписку - 1

В нашем блоге на Хабре мы много пишем о создании почтовых рассылок и работе с электронной почтой. Сегодня речь пойдет о нечасто затрагиваемой, но важной теме — насколько безопасны подобные коммуникации, и как защититься при использовании email? Именно этим вопросом задались пользователи ресурса Quora. Мы представляем вашему вниманию лучший ответ, который дал Билл Франклин, бывший сотрудник защищенного почтового сервиса Lavaboom (проект закрылся летом 2015 года). Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js