Рубрика «Анализ и проектирование систем» - 127

Графический VGA-контроллер на SoC без знаний HDL - 1
Всем привет!
В одной из предыдущих статей мой коллега Des333 реализовал фреймбуфер для LCD, работающего на графическом контроллере ILI9341. Однако, его написание потребовало существенного опыта в разработке RTL-кода.

К тому же, не у каждого под рукой есть embedded LCD-дисплей, зато наверняка есть монитор с VGA-входом.Что же делать, если опыта разработки под FPGA мало, но есть SoC, а сделать что-то интересное хочется?

В этой статье мы расскажем, как разработать графический контроллер, имея на руках плату с SoC (Altera Cyclone V), дисплей с VGA и минимальные знания языков HDL (в нашем случае — Verilog).

Для примера будем использовать наши платки, но всё описанное заработает и на других.
Кому интересно, прошу под кат.

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

В этой статье я отклонюсь от традиционной для меня темы систем хранения FAS и подниму тему объектного хранения данных в системах NetApp StorageGrid WebScale. Если кратко, то объектное хранение — это третий тип хранения наряду с NAS и SAN. Представьте себе, что каждый файл состоит из данных и метаинформации (владелец, права, время модификации и т.д.), так вот объектное хранение позволяет разъединить эти части и хранить их в виде «ключ/значение». Такой подход хранения информации открывает возможности децентрализованного, распределённого хранения данных огромных масштабов с прозрачной миграцией данных, репликацией и прозрачным переключением конечных потребителей между нодами объектного кластера. В широком смысле объектное хранилище может быть реализовано как на уровне устройства (жесткого диска), при помощи специализированных SCSI команд (Object-based Storage Device Commands), так и на уровне протокола доступа к системе хранения, которая состоит из нескольких дисков (которые, в свою очередь, вовсе не обязаны быть объектными). В обоих случаях используется Ethernet для подключения и IP протокол для передачи данных. Примером реализации объектного хранилища на уровне устройства являются жесткие диски линейки Seagate Kinetic Open Storage platform. Примером систем хранения данных в облаке может быть Microsoft Azure BLOB, Amazon S3. В этой статье я остановлюсь на объектных СХД, которые можно развернуть у себя на сайте и при необходимости подключить к облаку.
Объектное хранилище NetApp StorageGrid - 1
Читать полностью »

Как дата-центры меняются прямо сейчас: Энергоэффективность, хранение данных и «облака» - 1

На этой неделе мы говорили о плюсах и минусах виртуальной ИТ-инфраструктуры и рассказывали о том, как выбрать направление для развития ИТ-проекта на основе своего опыта работы над провайдером виртуальной инфраструктуры 1cloud.

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

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

В течение времени инструменты управления проектами перешли от карандаша и листа бумаги (иногда они и возвращаются в виде Канбан доски в офисе) к софту для управления проектами и спредшитам (как оффлайн, так и онлайн, от простого плана проекта с использованием диаграммы Ганта и Канбан досок, заканчивая комплексными системами), призванными облегчить управление, которые так просто выбрать… и пролететь, потому что непонятно, для чего и в чем премущества.

4 инструмента по полочкам. Управление проектами с WBS, Диаграммой Ганта, CPM и Time-Cost - 1

Поэтому, так или иначе, выбор инструментов не стоит начинать с софта (кстати, здесь был большой список из 43 систем для управления проектами). Беру на себя смелось перевести неплохой гайд по четырем инструментам управления проектами от TakingITGlobal, являющихся базой для многих систем.

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

Термин «О-большое», знакомый нам из курса матанализа, был введён Паулем Бахманом в конце XIX века для описания асимптотического поведения функций. В конце 1970-х Дональд Кнут придумал применять этот термин для оценки эффективности и ресурсоёмкости алгоритмов, благодаря чему с «О-большим» знакомо большинство программистов. Понимание асимптотики быстродействия и ресурсоёмкости даёт возможность выбрать наиболее подходящий метод решения задачи в зависимости от текущих потребностей. «Плохая» асимптотика позволяет сразу же отбросить неподходящий метод.

«А как всё хорошо начиналось...», или О пользе O-нотации не только для анализа алгоритмов - 1

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

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

Интернет вещей на реальном примере — система поиска автомобиля - 1

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

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

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

Flume — управляем потоками данных. Часть 2 - 1

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

Немного истории

На заре вычислительной техники динамическая память вполне себе работала на частоте процессора. Мой первый опыт работы с компьютером был связан с клоном компьютера «ZX Spectrum». Процессор Z80 осуществлял обработку инструкций в среднем по 4 такта на операцию, при этом два такта использовалось на осуществление регенерации динамической памяти, что дает нам при частоте в 3,5 МГц, не более 875 000 операций в секунду.

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

Давайте рассмотрим что представляет из себя оперативная память компьютера сейчас, и что с ней можно сделать, чтобы увеличить быстродействие компьютерной системы.
Быстродействие динамической оперативной памяти и нелепая идея как ее увеличить - 1

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

Введение
Понимание, каким образом программная переменная принимает значение физического сигнала и как значение программной величины превращается в конкретный сигнал, может помочь разработчикам программного обеспечения систем управления при расчете задержек, решении задач оптимизации, обеспечении устойчивости, разработке интерфейсов и подключении к процессорам и контроллерам периферии: датчиков, исполнительных механизмов, и др.
В этой работе рассматриваются вопросы, связанные с прямым и обратным преобразованием “программная переменная – сигнал”: особенности построения каналов передачи данных, подключения периферии к шинам процессора, вопросы адресной приёма-передачи данных и работа гипотетического процессора при обмене данными с внешним устройством.

Формирование канала передачи данных
Рассмотрим канал передачи данных, который имеет всего два состояния, например, наличие или отсутствие напряжения. Передатчик должен устанавливать напряжении в линии в соответствии с передаваемыми данными, а приемник по измеряемому напряжению выделять данные линии. Простейший передатчик включает источник напряжения и идеальный ключ, который изменением собственного сопротивления (ноль или бесконечность) замыкает или размыкает провода. В качестве идеального приемника используется измеритель напряжения (мультиметр) с бесконечным входным сопротивлением.
image
Рис. 1. Схема с неопределенным напряжением в линии передачи. В реальной схеме функцию ключа может выполнять транзистор.

В схеме Рис. 1 при замыкании ключа приёмнику передается 5В источника, однако, когда ключ разомкнут на входе приемника находится неопределенное напряжение.
Этой неопределенности нет в схеме Рис. 2, которая имеет два устойчивых состояния 5В или 0В. Сопротивление R добавлено в схему передатчика для ограничения тока через замкнутый ключ. Переходный процесс в линии пропорционален произведению ёмкости линии на выходное сопротивление передатчика, которое отличается при установлении и сбросе напряжения в линии. При установке напряжения в линии происходит заряд ёмкости через сопротивление R. Во время сброса напряжения ёмкость разряжается через сопротивление замкнутого ключа.
image
Рис. 2. Передача двух состояний 5В и 0В. Тождественные схемы. Постоянная времени (R*C) перехода из 0В в 5В (заряда емкости) больше постоянной разряда линии через идеальный ключ с нулевым сопротивлением.
Читать полностью »

Введение:

На мой взгляд, одна из основных проблем между бизнес аналитиками и пограммистами баз данных – это их взаимодействие. Многие современные BI решения предлагают, по сути, перенести работу аналитиков на программистов. Либо поднять технический уровень аналитиков, приблизив их к программистам. Вместо этого, я предлагаю рассмотреть решение, которое берет информацию у программистов БД и отдаёт её бизнес-аналитикам. Это решение позволит каждому заниматься своим делом, а не становиться программистом и бизнес аналитиком в одном лице.

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


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