Сампутер
Есть такое странное хобби: компьютеры конструировать. Но не так, чтобы купил по частям, воткнул и готово. Не-ет, сделать надо всё с самого начала. Нашёлся умелец, который спроектировал и собрал компьютер, используя только простейшие микросхемы базовой логики. И еще Си-компилятор написал, а теперь Minix переносит. Проект называется "Homebrew CPU", по аналогии с домашним пивоварением. :)



А я вот придумал другую концепцию радиолюбительского компьютера: http://vak.ru/doku.php/proj/samputer/intro
Причем на отечественном процессоре, MIPS32, да с плавающей точкой.

А я вот придумал другую концепцию радиолюбительского компьютера: http://vak.ru/doku.php/proj/samputer/intro
Причем на отечественном процессоре, MIPS32, да с плавающей точкой.
no subject
no subject
Вторая проблема - скорость. На простых FPGA типа Spartan софт-процессоры получаются нешустрые, 10-20 МГц, да без кэша. На дорогих, типа Virtex или Stratix, можно разогнаться аж до 50 МГц, с кэшом. Но это FPGA, не для любителей. Причём float point в любом случае не светит.
Мой проект (этап 2) и есть по сути development kit для софт-процессора на FPGA. Но с возможностью установки hard-процессора (этап 5), если надоест тормознутость.
no subject
no subject
no subject
no subject
no subject
Virtex это BGA, так что по любому не годится. Да и float point у них нету.
Не open source - в том смысле, что процессор имеется как данность. А в моём проекте (этап 2) можно грузить любое софт-процессорное ядро на выбор. Если кому хочется расширить систему команд какой-то расчудесной инструкцией - флаг в руки, берешь и делаешь. Или свой процессор строй, тоже прикольно.
no subject
А уж запаивать туда руками TQFP с шагом ножек в 0.5мм - брр...
Не очень понял, каким боком даровое ядро нестыкуется с open source. Его можно попросту не использовать, а грузить свой софт-процессор. А когда захочется побыстрее/потрадиционнее - включить встроенное и запустить linux.
Я-то к тому вёл, что можно использовать довольно дешёвую уже готовую плату с очень хорошей скоростью и приятной периферией для игр с собственноручно разработанным процессором и своей же OS.
no subject
А корпуса QFP, в том числе и с шагом 0.5, прекрасно паяются вручную. И, как утверждают монтажники у меня на работе, легче и быстрее чем многоногие DIPы. Главная хитрость - специальное жало.
Я в качестве "дешевой" юзаю плату Spartan-3E Starter Kit. Обошлась в 4842 рубля. Микроселлов почти столько же: 10476 против 12,312 у 4VFX12.
no subject
Я пока обхожусь Digilent Spartan-3 starter board в модификации с xc3s1000 вместо xc3s200. Мне обошлась с доставкой в россию в 4900 рублей :)
no subject
Мой проект на втором этапе должен, по идее, уложиться в эту сумму. С меньшей памятью и без Ethernet, но зато с CompactFlash, SD/MMC, клавиатурой и мышкой. А если основная плата окажется дешевле $100, то и на Ethernet хватит.
no subject
Только у меня ячеек 17 тысяч и блочной памяти больше. Брал с запасом :)
no subject
зачем тебе такой велосипед изобретать?
ты хоть представляешь сколько времени это занимает?
увы, не всё пока предельно автоматизированно
меня больше всего угнетает отсутсвие открытых (GPL например) средств синтеза и примитивные VHDL/Verilog. SystemC в целом нравится, но кроме как создавать тестбенчи в hardware-in-the-loop мы его для синтеза не используем. хотелось бы иметь что нить типа PythonHDL :)
no subject
Занимает это очень много времени, да. Но я же не всё свободное время этому отдаю. Это так, хобби.
Да и ОС у меня очень своеобразные - это форт :) У которого несколько десятков слов всего работают с аппаратурой, остальные более высокого уровня. Он очень шустрый, маленький и расширяемый. Вполне можно за несколько дней набросать что-то вида супермикро-x11. И эта наработка останется и будет работать уже на другом процессоре совсем другой архитектуры. В итоге перенос ядра на новое железо - работа одного дня.
no subject
no subject
no subject
no subject
Повторю:
http://www.nuhorizons.com/xilinx/boards/virtex-4/FX12kit/index.asp
При заказе в россию добавиться стоимость доставки (~ $20) и таможня может захотеть свои $60 (а может, кстати, и не захотеть - при определённых условиях).
no subject
кстати digilent делает очень хорошие киты, у меня есть их спартан3-плата.
доставка в EU примерно неделю, таможня иногда берёт где то 25 евро, иногда нет. заказывать можно любой кредиткой.
да, вот прямой линк:
http://digilent.us/Products/Detail.cfm?Prod=FX12&Nav1=Products&Nav2=Programmable
мне 299$ кажется не много за virtex4. нужно посмотреть спецификацию точную, что за виртекс и что за периферия на плате :)
а вот побольше их продуктов:
www.digilent.us
no subject
Я у них осенью вот это (http://webushka.livejournal.com/50370.html) покупал. С набортной xc3s1000, чтоб все мои тогдашние идеи влезли. Включая fpu :)
no subject
ну и как? многое уже до конца довёл :) ?
no subject
Следующим этапом хочу попробовать многоядерность.
no subject
Но на FPGA можно и кэш и точку реализовать. Я делал когда то АПУ с плавающей точкой на обычном спартане за 25$. Сейчас работаю с виртексами новыми 65nm, гоняем на них многоядерные решения, с очень даже неплохим кэшем. Я к чему это всё:
можно взять третий спартан помощнее (S1500 например, 75$) и реализовать на нём простое ядро и кэш. пусть будет не быстрый, но ведь можно добавить интересные DSP функции. в качестве экономии поверхности существует ещё и битстрим подход.
В общем, подход должен быть такой - меньше железа - максимум реконфигурируемости.
no subject
Но это удовольствие ресурсы FPGA кушает. А спартанов в корпусе QFP выше чем S500E не бывает... Всё-таки хочется, чтобы спаять плату мог любой умелец с руками и хорошим паяльником.
С подходом - абсолютно согласен!
no subject
офф
no subject
выбор CPU
А для полного компьютера, опять-таки по моему, главное - VGA внутри микроконтроллера, что оставляет небольшой выбор:
Cirrus ARM9 EP93xx
Atmel AVR32
Blackfin (используется параллельный порт)
Поскольку все это BGA, надо заказывать многослойки и рассылать под заказ полуфабрикаты: плата с пастой и маской и запеченными BGA-корпусами. А остальное, включая VGA R-2R (ибо микросхема слишком дорогая), пусть достает и паяет заказчик.
P.S. Ноги с шагом 0,5 мм часто можно развести в 2 слоя, может, раздвинув компоненты.
no subject
no subject
ADSP-BF531SBST400
Я думаю, для однопользовательского 32-битного компьютера полноценный MMU (диспетчер памяти) вещь необязательная ;-)
Кстати, у Cirrus Logic есть FPU. И чипы без VGA в корпусах QFP. А Blackfin с 64K цветов в QFP. Правда, GPIO не остается, надо регистры ставить...
no subject
Согласен, VGA - главный камень преткновения. Или хотя бы TFT-LCD. Схему на MCT-01 я почти закончил, но без VGA она стала совсем неинтересной.
На двухслойку рассчитывать не стоит, при таких частотах без земляной подложки сигналы начинают звенеть со страшной силой. Четыре слоя самое оно.
Blackfin в LQFP - это ценная информация, спасибо. MMU там без педжинга, ну и ладно. А как там выход видео сделан? Не могу примеров найти.
no subject
http://www.analog.com/processors/blackfin/technicalLibrary/applicationNotes/index.html
http://www.analog.com/UploadedFiles/Application_Notes/74670263ee256Rev2March706.pdf
http://www.analog.com/UploadedFiles/Associated_Docs/377016527EE256v02_March06.zip
Смотреть в последнем архиве, кажется, код для второго ядра.
Аппаратно - думаю, можно взять за основу схему от Cirrus EP9315
http://www.cirrus.com/en/pubs/manual/EDB9315A_Tech_Ref_Manual.pdf
http://arm.cirrus.com/files/schematics/edb9307/8_SCHEMATICS/pdf/9307_schematics_v_2.pdf
Кстати, рылся у себя в свалке, еще одного QFP с VGA нашел:
Winbond W90P710
http://www.winbond.com.tw/NR/rdonlyres/B8339DC2-3563-48A2-A048-66F57FE87CFB/0/W90N710CD_W90P710CDG.pdf
И, повторяю, если плату заказывать, можно заказать и монтаж BGA.
А распространять через Мастер-Кит, например.
no subject
Winbond W90P710 трудно купить, efind.ru даже цену не дает. И потом, приходилось работать с их чипами... Не верю я им больше.
BGA неспортивно, хочется всё же удержаться в рамках более доступной технологии.
Цена
Использование FPGA и российского (военного) CPU - прямая туда дорога.
К тому же для рабочего компьютера они не нужны, максимум GAL или дешевый CPLD.
Я бы даже VGA DAC попробовал сделать на R-2R (учитывая импеданс выходов, возможно, поставив защелки) - у нас ведь скорее всего 5-6 бит, а не 8.
А для расширения надо оставить ISA в формате PC/104.
Забуферировать 245-ми, отгородив от CPU+SDRAM.
Кстати, IDE (параллельный ATA) тоже надо предусмотреть, шагом 2,54.
Может, поставить стандартный ISA MIO (FDC + 2COM + LPT + IDE ~CS).
Основные применения ящика:
- терминал RDP, возможно, X11;
(по опыту, 24-битному RDP хватает 10Мбит на 5 человек)
- "однорукий бандит";
- FreePascal.
Ящик должен допускать пересборку ядра и компиляторов (самые тяжелые вещи) на нем самом и запуск минимального менеджера окон без свопа. Кстати, может поставить слабенький FPGA ради внешнего TLB и сделать, как в MIPS (TLB miss -> exception)?
Назначение
И винчестер ему ни к чему, и ЦАП в VGA...
Тогда все слова забираю обратно.
no subject
R-2R - хорошая идея. Я думал про это, но не решился. Но еще не поздно. :)
Не вижу большого смысла в ISA, IDE, FDC. В качестве жесткого и/или сменного диска сейчас удобнее flash-карточки. Самый простой интерфейс имеют карты SD.
Для пересборки ядра и компиляторов 64 мегабайт памяти должно хватить без всякого пейджинга. А для свопинга TLB, строго говоря, не нужен.
SpaceWire - и правда интересная шина. Например, можно было бы сварганить на FPGA видеоадаптер с таким интерфейсом.
Спецификация
Однако для комнатного применения, по-моему, лучше оставить IDE - ведь он ничего не стоит (дешифровать его ~CS-ы), заодно можно подключить CompactFlash, а винчестер все-таки имеет большую емкость и допускает большее число записей сектора.
ISA, с другой стороны, и особенно в формате PC/104 - стандарт для таких систем, и единственная шина, для которой привык вести разработку типичный радиолюбитель - без FPGA и специализированных микроконтроллеров с поддержкой синхронных последовательных шин.
Так что разводить эти разъемы, по-моему, надо, а вот запаивать ли их - личное дело сборщика.
По-моему, следует также сразу предусмотреть JAMMA, даже, может, сдублировав на него VGA. Хотя, может, его лучше сделать на дочерней PC/104 плате.
Место для запайки на ISA NAND flash надо предусмотреть - для несменного твердотельного носителя это стандарт.
Другие вопросы, на которые нужны ответы:
- необходимая тактовая частота:
высокая (около 1ГГц и выше) - XScale + дискретный VGA (у внутреннего недостаточное разрешение), например, бывший C&T,
средняя (175 - 400 МГц) - что и выбрано, надеюсь,
низкая;
- объем ОЗУ:
большой (512 МБ и выше),
средний (64 - 256 МБ), что и выбрано,
малый (4 - 16 МБ);
- тип полевой шины (по-моему, наиболее популярны CAN и RS-485);
- _необходимые_ шины расширения;
- USB ? (нехватка компенсируется прямой поддержкой всех флэш-карт?)
- Ethernet (нужен, хоть место под RTL8019 или CS8900), хотя, опять-таки, возможно на дополнительной плате.
Насчет свопинга без диспетчера памяти - это оверлеи, я собирал unarj под RT-11, об оверлеях должен заботится прикладной программист. (Даже когда системная поддержка самая прозрачная). Голый TLB, как в MIPS, по-моему, - самая простая аппаратная реализация диспетчера памяти, полная аппаратная реализация таблицы страниц по спецификациям IBM S/370, сделанная в i386, намного дороже (т.е. с микрокодовой отработкой TLB miss). А в MIPS этого микрокода нет, все делается обычным кодом режима супервизора.
Кстати, по-моему, 1МГц ARM = 2МГц MIPS (= 0,5Мгц AVR32), поскольку у ARM набор команд намного хитрее - как в микроЭВМ 60-х годов ;-) , а все они полный конвеер без суперскаляра, т.е. почти всегда 1 команда за такт. Т.е. при одной и той же частоте ARM намного быстрее MIPS. Для примера почитайте Вашу хэш-функцию (правда, не знаю, может у российского процессора есть все расширения набора команд, сам ничего не читал, прикидывал когда-то по S-boxes, кто из $50 роутеров быстрее в этом деле...)?
Заодно огромное Вам спасибо за оригиналы стандартов! :-)
Re: Спецификация
Ваша гипотеза о значительном превосходстве ARM не подтвердилась.
А также выяснилось, что Blackfin не сильно хуже чем Thumb.
SDRAM DIMM
Таким образом, установив слот SDRAM DIMM вместо планарных корпусов, мы можем обеспечить значительную экономию средств и легкость приобретения комплектующих.
На плате, по-моему, нужно все же развести оба варианта - запаянная память на материнской плате нужна при:
- запайке ее в Китае вместе с процессором,
- изготовлении компьютера повышенной надежности,
- установке малого объема ОЗУ в целевые изделия.
Re: SDRAM DIMM
Частота определяется выбранным микроконтроллером. Ethernet с моей точки зрения, нужен обязательно, а без USB можно и обойтись. DIMM, все-таки, слишком громоздко.
Своппинг в Юниксе изначально был реализован в ядре, пользователю про это думать не надо. А вот пейджинг появился только в 1984-м году, с выходом System V Release 2. Так что справимся.
Стандарты - пользуйтесь на здоровье. :) Оно ж всехнее, общественное.
JAMMA
http://pinouts.ru/Slots/jamma_pinout.shtml
http://www.larwe.com/coinop/jamma.html
Лампочки, видимо, не из оригинальной версии, а от болгарского Casino Technology. Сейчас не нахожу :-(
no subject