Entry tags:
История языка Balsa
Вначале была статья Тони Хоара "Communicating Sequential Processes" 1978 года. Да, сэр Хоар - тот самый, который разработал язык Алгол-60 и получил за это Тьюринговскую премию. В статье он описывает некий вариант языка программирования с концепцией существенного параллелизма. Он не ставил задачу полностью определить язык, так только, набросал несколько идей с высоты своего гения. Насколько я знаю, никто так и не сделал реальный язык програмирования, но математикам идея понравилась, и они часто используют нотацию Хоара в своих статьях для рассуждения о параллельных процессах.
Пример программы в нотации Хоара: решето Эратосфена.
[SIEVE(i:1..100):: p,mp:integer; SIEVE(i-l)?p; print!p; mp := p; comment mp is a multiple of p; *[m:integer; SIEVE(i-l)?m -> *[m > mp -> mp := mp + p]; [m = mp -> skip []m < mp -> SIEVE(i + l)!m ] ] ||SIEVE(0)::print!2; n:integer; n := 3; *[n < 10000 -> SIEVE(1)!n; n := n + 2] ||SIEVE(101)::*[n:integer; SIEVE(100)?n -> print!n] ||print::*[(i:0..101) n:integer; SIEVE(0?n --> ...] ]Гении не ходят в одиночку. В 1985 году в Калифорнийском технологическом институте Алан Мартин обнаружил, что такой язык замечательно преобразуется в асинхронные цифровые схемы. Его статья "Compiling Communicating Processes into Delay-Insensitive VLSI Circuits" стала отправной точкой для многочисленных последователей. Мартин не изобретал язык, его увлекала исключительно возможность построения схем. Но главное - он распахнул дверь в огромную неисследованную область. Забегая вперед, стоит упомянуть, что два года назад Калтех отмечал 25-летие первого в мире асинхронного процессора, созданного под руководством профессора Алана Мартина.
Мощная бронебойная сила подошла в виде голландского математика Kees van Berkel из университета Eindhoven. В своей основополагающей работе 1993 года "Handshake circuits: an asynchronous architecture for VLSI programming" (ранний вариант в виде PDF) он досконально математически исследовал всю область асинхронных цифровых цепей и элементарных составных компонентов. Осталось дело за практиками. По ходу дела ван Беркель доопределил язык, унаследованный от Хоара, и назвал его Tangram. Вот к примеру простейший компонент типа буфер:
(a?W & c!W) · |[ x, y: var W | a?x; #[(a?y || c!x); (a?x || c!y)] ]|Он преобразуется в следующую схему:

Идею Танграма подхватила фирма Philips. В недрах её исследовательского отделения была разработана коммерческая реализация тулчейна, а в 2003 отпочкована в виде отдельной фирмы. Первым продуктом компании был асинхронный процессор 80с51. В 2006 году был разработан асинхронный процессор с архитектурой ARM. По слухам, большинство чипованных кредитных карт и биометрических паспортов в мире сделано на процессорах этой фирмы. По каким-то причинам в 2009 году Филипс решил закрыть этот бизнес. Фирма Handshake Solutions внезапно канула в небытие вместе со всем софтом.
Но технология не умерла, нет: на помощь пришли британцы. С конца 90-х в университет Манчестера разрабатывался альтернативный вариант реализации идей ван Беркеля: упомянутый в предыдущем посте язык Balsa. Хотя работа и остановилась несколько лет назад, исходные тексты вполне доступны. Имеется описание языка и софта. Язык сильно ушёл от Хоара и стал вполне читабельным. Показанный выше буфер на Бальсе выглядит так:
type word is 8 bits procedure buffer (input a: word; output c: word) is local variable x, y: word begin a -> x; loop a -> y || c <- x; a -> x || c <- y end end
no subject
Он ведь тоже для асинхронных схем.
no subject
no subject
no subject
Смотрите раздел 2.2 Handshake Circuits в этой статье Питерса: http://www.win.tue.nl/async-bib/pdf/Peeters96.pdf
Страницы 11-18.
no subject
Одно время Оккам пытались приспособить для разработки хардвера, но он оказался не особо удачным.
Есть хорошая статья на эту тему: http://apt.cs.manchester.ac.uk/ftp/pub/apt/papers/euro97.pdf
no subject
no subject
Интерес к Оккаму вдруг резко возник в конце 80-х, когда в Советский Союз каким-то образом попали несколько транспьютерных комплектов. Я имел возможность наблюдать, как наши 'вычислительные' физики изучали новинку и пытались как-то приспособить к делу. Отсутствие Фортрана подкашивало на корню. Оккам не вдохновил.
no subject
no subject
no subject
"In 2011, Intel acquired Fulcrum Microsystems, an asynchronous startup producing high-speed networking chips, in a move industry analysts regarded as a bid to compete with Cisco Systems. Intel’s current FM5000/FM6000 family of switch chips, which supports industry-leading 40 gigabit Ethernet, includes a fully-asynchronous high-speed crossbar switch that provides high bandwidth, low latency, support for flexible link topologies, and high energy efficiency."
no subject
no subject
МИКРОпроцессора, конечно, потому что просто процессоры бывали асинхронные как минимум 50 лет назад.
no subject
А я вот не уверен, что асинхронные процессоры существовали в древности.
Вроде бы синхросигнал присутствовал с самого начала.
Ты не путаешь с serial-процессорами?
no subject
no subject
no subject
И до него были асинхронные, типа ORDVAC, он же ILLIAC.
Кстати, не от Атласа ли БЭСМ унаследовала термины индекс-регистр, экстракод, режим супервизора?
no subject
no subject
Floating-point add, no modification – 1.61 microseconds
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Arjan Bink and Mrk de Clercq, Handshake Solutions, and Richard York, ARM. ARM996HS Synthesizable CPU with Clockless Technology (2006);
Denis Bechet, Sylvain Lippi. Universal Boolean Systems (2008);
Denis Bechet, Sylvain Lippi. Hard combinators (2008).
Я положил все три документа в виде PDF на Dropbox:
https://www.dropbox.com/sh/mv6a1x9lql6y3wg/AAAdSDegYkE7wRRSBFsWfOTra
no subject
Проштудирую.
no subject
no subject
no subject
no subject