Одним из недостатков работы со старыми транспьютерными устройствами Inmos является редкость и стоимость оригинального кремния. Очевидно, что вы не можете отказаться от приобретения процессора — если только вы не эмулируете его, — но как насчет замены микросхемы IMS C011/C012 link? Вам нужна эта (дорогостоящая) деталь для сопряжения транспьютера с программирующим хостом, но, как обнаружил [Эртурк Коджалар], вполне возможно уговорить подростка выполнить эту работу за вас с таким же успехом. Необычная двухбитовая начальная последовательность отличает пакет данных от подтверждения. Ее легко имитировать, если использовать LSB 9-разрядного слова в качестве фиктивного начального бита! Транспьютеры работают, используя множество разрядных последовательных интерфейсов для подключения сети устройств, что позволяет выполнять совместные вычисления для задач, которые слишком велики, чтобы поместиться на одном устройстве. На канальном уровне этот протокол представляет собой простую асинхронную последовательную передачу битов с 11-битными сообщениями данных и необработанным двухбитовым кадром для подтверждения. Устройство C011 по своей сути является всего лишь специализированным интерфейсом UART — оно принимает 8-битные параллельные данные от хоста, осуществляя обмен данными, и передает их на первый транспьютер в цепочке со скоростью 5, 10 или 20 Мбит/с, но в инвертированном виде и с двумя начальными битами и одним конечным битом. Параллельно он выполняет ту же задачу в обратном направлении.
[Erturk] понял, что у крошечного UART есть инвертированный режим и, что особенно важно, 9-битный режим передачи данных. Это позволяет сгенерировать второй начальный бит как бит 0 слова, а остальные восемь битов образуют полезную нагрузку. Все просто. Кроме того, крошечный UART способен поддерживать максимальную скорость передачи данных в 20 Мбит/с без особых усилий.
Однако существует небольшая проблема, заключающаяся в том, что нет способа напрямую отправить или получить двухтактный кадр подтверждения. Поскольку бит остановки протокола является низким, это можно реализовать, просто отправив фиктивное слово данных со всеми 9 низкими битами данных (поскольку подтверждение является шаблоном ‘1’, ‘0’). В одном конкретном случае, когда выполняется операция прямого доступа к памяти, команда синхронизируется с транспьютером, который отправляет обратно двухтактный запрос подтверждения, за которым почти сразу следует 11-тактный пакет данных с результатом. Но, поскольку крошечный UART все еще занят «поддельным декодированием» полного 11-битного фиктивного сообщения ACK, он полностью пропустит пакет данных. Оказывается, самый простой способ обойти это — ускорить соединение и работать с максимальной скоростью 20 Мбит/с. Таким образом, Teensy полностью получит чрезмерно длинный запрос подтверждения задолго до того, как транспьютер выполнит команду PEEK и начнет передавать результат. Причина, по которой вы добровольно замедлили переход по ссылке, ускользает от нас, как только вы определились с дизайном и надежностью, в любом случае.
Нам нравятся транспьютеры — крутая технология, которая умерла слишком рано. Вот краткое руководство по этим инновационным устройствам. Некоторые люди, как и этот человек, действительно увлекаются транспьютерным оборудованием. Наконец, имея настоящее аппаратное обеспечение, с которым сложно работать, оно дорогое и его трудно найти, вы можете воспользоваться своим надежным веб-браузером и вычеркнуть его из списка самых популярных.