вторник, 10 сентября 2013 г.

Реконфигурируемые структуры

Довольно давно я стал задумываться о архитектуре многоядерных компьютеров. Мультиконвеер можно организовать из множества одинаковых процессоров расположенных в виде решетки. Каждый процессор имеет свою локальную память и узел коммутации с возможностью транзитного прохождения через него сигнала без задержек. С помощью системы коммутации между процессорами можно реализовать различные топологии обработки данных, звезду, пирамиду или довольно сложный граф на основе поставленной задачи. Роутинг может быть статическим или динамическим. При динамическом путь прохождения сигнала от источника до приемника ищется непосредственно при отправке запроса, для потока данных может открываться долговременное соединение, для повторяющихся запросов кэшируются пути.
Периферийные процессоры соединены с унифицированными модулями ввода-вывода через которые осуществляется обмен данными с внешней памятью и другими устройствами.
Похожая реализация используется в процессоре Tilera.

Позднее я стал изучать программируемые логические интегральные схемы (ПЛИС). На данный момент есть несколько процессоров общего назначения таких как MIPS, ARM, x86 реализованных на основе ПЛИС.
Примеры можно найти на http://opencores.org/.
Думаю что будущее вычислительных систем за динамически создаваемыми схемами внутри ПЛИС(FPGA). Под конкретную задачу - своя схема. Конфигурация в ПЛИС должна храниться в быстрой SRAM памяти для ускорения загрузки, кроме того, должна быть возможность в частичном обновлении схемы "на лету".

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

А в последнее время нашел несколько статей по этой теме. Видно что активно ведутся работы в этом направлении.

четверг, 24 января 2013 г.

Сложное или простое?

Программирование... Множество языков, множество областей применения.
Языки отличаются разным уровнем абстракции, степенью похожести на человеческий язык или степенью непохожести на язык машин.
Самый "далекий" от человека язык - ассемблер. В нем происходит простая замена определенных лексем(элементов языка) в команды процессора.(Процессор - это такой кусочек кремния с очень сложной структурой, состоящей из множества логических элементов и связей между ними.)

Схема реобаса

Прорабатывая эту тему наткнулся на эту статью, жаль я мало имел дела с AVR-контроллерами.

О последовательных интерфейсах

Сейчас в компьютерах есть по крайней мере 3 последовательных интерфейса: USB, SATA и PCI-e тоже является набором последовательных линий.

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

На программном же уровне каждый интерфейс имеет свой протокол в зависимости от длины линии, помехозащищенности канала.

Думаю в скором будущем производители придут к единому стандарту интерфейсов для коммуникации компонентов внутри компьютера и с внешним миром. Хорошим кандидатом на эту роль считаю LVDS. У процессора будет достаточно большой пул унифицированных последовательных портов с возможностью объединения в группы подключенные к одному устройству для увеличения пропускной способности. Через эти интерфейсы к нему будет подключаться практически всё: RAM, ROM, монитор, звуковой кодек и другие периферийные устройства. Как раньше в модемах будет стандартный низкоскоростной протокол, который поддерживают все устройства. С помощью этого протокола при включении устройства договариваются о методе передачи, шифровании, количестве линий, определяется тип устройства.

Такие вот мечты о светлом будущем разработчика.

воскресенье, 20 января 2013 г.

Управление ключами

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