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



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

Date: 2007-05-19 15:02 (UTC)
From: [identity profile] skolk.livejournal.com
Как сделан выход? Часть программной конфигурации - Application note EE-256
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.
А распространять через Мастер-Кит, например.

Цена

Date: 2007-05-20 12:32 (UTC)
From: [identity profile] skolk.livejournal.com
А по-моему - самое неспортивное вылазить за $100 на микросхемы+плату.

Использование 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)?

Назначение

Date: 2007-05-20 12:38 (UTC)
From: [identity profile] skolk.livejournal.com
Прочел упоминание о полевой шине и подумал - а, может, ящик и вправду должен быть индустриального или военного исполнения??

И винчестер ему ни к чему, и ЦАП в VGA...

Тогда все слова забираю обратно.

Спецификация

Date: 2007-05-23 10:12 (UTC)
From: [identity profile] skolk.livejournal.com
Наверно, все-таки надо определиться - мы делаем полевой (мобильный) компьютер или комнатный (домашний, учебный). Строго говоря, "однорукий бандит" - изделие полевое, работающее в жестких условиях. Да и "полевой день" - мероприятие интересное ;-)

Однако для комнатного применения, по-моему, лучше оставить 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 роутеров быстрее в этом деле...)?
Заодно огромное Вам спасибо за оригиналы стандартов! :-)

SDRAM DIMM

Date: 2007-05-23 10:46 (UTC)
From: [identity profile] skolk.livejournal.com
У SDRAM есть одно приятнейшее свойство - в отличие от по крайней мере DDR входы DQM влияют не только на запись, но и на чтение, следовательно, данные одного модуля можно запараллелить (DQ0 - DQ16 - DQ32 - DQ48, DQ1 - DQ17 - DQ33 - DQ49, ..., DQ15 - DQ31 - DQ47 - DQ63), защелкнуть 2 дополнительных бита адреса, и сформировать DQMB с помощью '155 (если микроконтроллер не поддерживает банки). Приведен вариант с 16-битной шиной, какая остается у Blackfin и некоторых других при использовании 16 линий PPI для VGA. Если есть 32 бит - аналогично (DQ0 - DQ32, DQ1 - DQ33, ..., DQ31 - DQ63; защелкиваем только 1 бит адреса).

Таким образом, установив слот SDRAM DIMM вместо планарных корпусов, мы можем обеспечить значительную экономию средств и легкость приобретения комплектующих.

На плате, по-моему, нужно все же развести оба варианта - запаянная память на материнской плате нужна при:
- запайке ее в Китае вместе с процессором,
- изготовлении компьютера повышенной надежности,
- установке малого объема ОЗУ в целевые изделия.

JAMMA

Date: 2007-05-23 20:58 (UTC)
From: [identity profile] skolk.livejournal.com
JAMMA - краевой разъем в игровых автоматах, с его помощью к контроллеру подсоединяется вся периферия - т.е. у корпуса (ящика, кабинета) есть слот, куда вставляется материнка. К нему подведены кнопки (1 конец, второй на корпусе), лампочки (мощные, на плате нужны драйвера!), монетоприемник и т.п. Во времена 15 кгц строчной развертки на нем же был и компонент с совмещенным синхросигналом. Теперь используется стандартный VGA.

http://pinouts.ru/Slots/jamma_pinout.shtml
http://www.larwe.com/coinop/jamma.html

Лампочки, видимо, не из оригинальной версии, а от болгарского Casino Technology. Сейчас не нахожу :-(