Створи компютер для програмування з старих компонентів

Чи задумувався хтось з вас про повторне використання процесорів з минулого століття?

Власноруч розроблений і спаяний компютер з б/у комплектуючих 2000-х років, стане чудовим досвідом в схемотехніці і побудові систем на фізичному рівні.

Думаю більша частина вже про це неодноразово думала, і ще менша частина втілювала це в своїх проектах. Не важливо, вмієш ти програмувати, чи лише вирішив спробувати все одно рано чи пізно з своїм розвитком вирішиш спробувати написати свою власну програму на власноруч створеному пристрої.

Шлях в програмуванні дозволяє створювати програми не знаючи того що під капотом. Та мій шлях лежить прямісінько по ТТЛ і далі по КМОН периферіях внутрішніх будов.

Багато хто розуміє, що сучасна бізнес логіка працює на зростання вартості технології в першу чергу за для власного розширення та збільшення прибутку, і вже потім стратегія перевіряється і суміщується з потребами кінцевих користувачів методом часткового здешевлення. Це стосується всього сегменту розробки нових технологій. І якщо окремі виробники з усього стеку звязані певними процедурами і суворо контролюються, то звичайні любителі задля власного використання можуть творити справжні архітектурні шедеври.

Хоча схемотехнічна архітектура SRAM в поєднанні з DRAM на перший погляд здасться складною для новачка, для більшості любителів технологій це вже пройдений або частково пройдений шлях. Розуміючи архітектуру Ви з легкістю створите свій пристрій з вживаних компонентів. Окремої уваги треба надати можливостям керування та виводу інформації. Для пристроїв з високою функціональністю знадобиться деякі знання в програмуванні на низькому рівні, а
точніше вміння обєктно бачити процеси: додавати їх, віднімати, ділити, множити і тому подібне.

Початківцям раджу обмежитись 16-ти бітним процесором в корпусі TQFP з можливістью працювати на частоті до 40 МГц і виконанням простих інструкцій до 50 нс. Це повністю покриє більшість з ваших завдань, звісно якщо Ви не плануєте зробити пристрій для обробки відеографіки. В таких випадках даних характеристик буде замало, та для простої цілком функціональної невеликої рекурентної або повнозв’язаної нейромережі SLM / Micro-NN цих параметрів достатньо. Це так би мовити низькорівневий прародич сучасної LLM. Для виводу інформації оберем дисплей з можливістю підключення по SPI або за допомогою шини не більше 8 біт і максимальною роздільною здатністю 640 на 480 точок. Панель вводу (клавіатуру) теж можна виготовити самому, або скористатись існуючими в наявності трохи модифікувавши їх.

Чому саме процесори з минулого століття. Справа в тому що мікроелектроніка 2000-их років чудово піддається монтажу і зворотньому демонтажу. До того ж дозволить в певній мірі ігнорувати деякі інженерні розрахунки впливу сторонніх фізичних сил і параметрів, а саме наводок і паразитних ємностей. За наявності у вільному доступі даташиту на процесор всі ці аспекти легко вкладуться у Ваш майбутній виріб. Та якщо його немає, не біда. Орінтуючись на платі з легкістью можна знайти всі призначення виводів. Тимчасовою проблемою скоріш стане пошук конфігурацій управління ним. Але як говорить мій батько, цитую «Все піддається методу научного тику». Озброєвшись саморобним генератором сигналу, за потреби та подавши струм на процесор, топологія, біт за бітом, розповість про себе все. Значно пришвидьшить такий процес осцилограф і аналізатор шини адрес і даних, який я пропоную теж зробити самому.
Далі слід обрати, які функції може і буде виконувати пристрій окрім вводу, обробки й виводу інформації. Проводячи аналогії з сучасними готовими модулями для розробки можна відзначити наявність каналів обміну даними (інтерфейсів звязку UART, I2C, SPI). Якщо процесор має певні інтерфейси то ок, але можна створити свої додаткові канали з власноруч створеним інтерфейсом.

Якщо данний етап Вами вже пройдений і вам здалось це не цікавим, а Ви б хотіли створити повнофункціональну конячку з виходом в інтернет, маєте розуміти принцип роботи мережевих технологій, а саме моделі OSI, обрати інтерфейс (зазвичай це розповсюджений RJ45) і вивчити структури пакетів які описані в стандарті RFC. Лише після детального вивчення можна будувати свою мережеву карту, та не варто забувати про обмеження обчислювальних можливостей вашого процесору.

Щоб дізнатись про модель OSI для початку раджу прочитати цю статтю: OSI-модель: як спуститись в кролячу нору й випірнути звідти.

Що ж, процесор вже маємо, з функціоналом визначились слід обрати оперативочку. Якщо оперативна память була на платі донора процесора, сміливо можна використати її (не дрібніший за корпус TSOP-II для зручності монтажу). Якщо що доведеться рахуватись з обємом памяті.

І нарешті постійна основна память, тут доведеться пошукати. Причина полягає в тому що нам хочеться мати достатній обєм для зберігання інформації плюс важливу роль в доступі відіграє технологія. Раджу знайти мікросхему з паралельною NOR Flash памятью і конфігурацією 32M x 16 (32 мільйони слів по 16 біт). Можна далі обєднати дві таких і отримати 128 Мегабайт. Для підтримки Вашого духу зауважу, що своїм набором ми наблизились до КПК 2000 — 2005 років ))).

Я для своїх розробок також використовую спеціальну мікросхему постійної памяті в якій зберігається ядро програмного забеспечення з усіма командами і кодами ініціалізації. Вона змонтована на розємі для швидкої заміни або перепрограмування в програматорі. Це щось подібне до біосу )))). На мою думку такий підхід вартий уваги.
Наступним кроком буде побудова адресного простору нашого 16-ти бітного монстрика, щоб розділити області памяті під майбутні звернення процесора, і мати чітку уяву для використання адрес в своїх програмах. Оскільки використовуватимемо архітектуру Фон Неймана з спільною шиною, обєм памяті всіх мікросхем будем розглядати і обєднаєм як один адресний простір. Це спростить програмування і логіку в майбутньому.
Перейдемо до створення принципової схеми. Потрібно накреслити лінії підключення живлення, шини адрес і даних та лінії проміжного управління.

Якщо Вас цікавить дана тема додавайте статтю в обране і слідкуйте за її оновленням. З радістю доповню її зображеннями схем і фото (можливо й відео). Доповнюватиму поступово, тому ваші коментарі або рекомендації по темі не будуть зайвими.

Дякую.

Далі буде......

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Я думав тут ПК збирають з старих грамофонів та керосинових ламп :)
Дома є ZX Spectrum. Але в нього був дивний глюк — грати в ігри можна скільки завгодно, починаєш щось програмувати — вилітає. Не знаю чому. Тож програміста з мене не вийшло.

З грамофонів можна. А от з керосинки треба бути Старком.
Хто збирав? Самі чи купили?
Яка версія збірки?

Мені здається так — АБО олдфагія та ностальгія, АБО навчання та розвиток. Якщо це для розвитку, то краще вже якийсь RISC-V обрати.

Розвиток. Зауваження прийняте.
RISC-V
Це мабуть краще для програмування, але для монтажу виникнуть складнощі в обвязці.
Плюс частоти з їх наводками і ємностями. От якби була можливість знизити частоту.
Хоча можна (не знаю як себе буде поводити). Але знову ж таки, навіщо його тоді використовувати. До того ж управління складніше, а відповідно і розробка ядра ОС.
Функціонал буде колосальний, це факт. Думаю наступним разом.
Дякую за пропозицію.

Сучасні мікроконтролери все, що працює на високих частотах, тримають всередині, ніякі наводки та ємності на це не впливають, вилізьте зі своєї бульбашки, яку ви самі собі придумали, та подивіться назовні нарешті...

Я не писав що в бордах для розробки є проблеми з частотами і відповідно паразитними ємностями.
Я Вас не розумію. Я не заперечую про мікроконтролери і про зручність.
Вам хочеться щоб використовувався сучасний мікроконтролер? Чи готовий борд?
І до чого тут бульбашка?
Вам здається що зробити це з старих мікросхем власноруч не має сенсу ?
То й ніхто Вам цього не навязує.

якщо це ваше власне шоу і ви самі для себе хочете це зробити — то картинка зверху. Якщо ви хочете, щоб це разом з вами зробив хтось ще і чомусь при цьому дійсно навчився — то це тупиковий напрям, і вам вже декілька людей намагаються це пояснити :)

Якщо ви дійсно хочете вивчати/навчати тому, що відбувається ВСЕРЕДИНІ процесора — беріть FPGA та робіть справжню свою архітектуру, але тут, як вже говорили раніше, набагато краще починати з програмного симулятора

6502 ще можна, він, здається, і досі виробляється, і Зілог 80 тільки у 2024 зняли з виробництва.

Це взагалі було б ідеальним рішенням.
Легко паяється і схемотехніка проста.

risc-v — є екземплятри які взагалі без обвʼязки працюють (хоч це і не по документації). Підчипляєш крокодилами піни живлення, ще один крокодил на програматор — і воно вже живе і блимає.

Хоббі, наш один колена зібрав девайс ZX spectrum сумісний на сучасній елементній базі. По факту материнка типу PC, до якої підєднувались звичайний PC монітор та USB клавіатура. На флещці були усі программи та ігри які тільки бували на касетах, завантажувались звісно миттєво.
Далі він робив сходий проект із оригінальним IBM PC першого покоління з i8086.
Звісно для промислового IT, це тепер можна лише давати студентам в якості історчного екскурсу, що було таке в 1980 — а в пост СРСР на початку 90-х, 35-40 років тому назад.

Чим колега тепер займається? Якщо Вам відомо.

Хоббі, наш один колена зібрав девайс ZX spectrum сумісний на сучасній елементній базі. По факту материнка типу PC, до якої підєднувались звичайний PC монітор та USB клавіатура. На флещці були усі программи та ігри які тільки бували на касетах, завантажувались звісно миттєво.

Він це явно зробив не з мікросхем, випаяних з телевізора, і витратив на це помітну суму грошей :)

Платив замовник, або роботодавець.
А в промисловому ІТ міг спокійно сумістно використовував мікросхеми КМОН логіки або і ТТЛ серій К155,555,561, і тому подібні, або їх зарубіжні аналоги. Хоча хто його зна.
І коли платить замовник або роботодавець то витрати автоматично направлені на кінцевого споживача. Але коли робиш для себе, економія зайвою не буде.

Платив за це він сам, скоріше за все, саме тому, що це та сама трушна олдфагія :) Але це зовсім не спосіб зекономити гроші, а дуже навпаки

Ага. Такий прийшов на якусь фабрику і каже:
— Я вам тут лінію і обладнання автоматизую. Не маєте промислового компютера?
— Ні
— Я вам зараз зроблю з вашого.
— А хто за це буде платити?
— Та я сам заплачу, я на свому інтузіазмі.

Хотів би я побачити того керівника підприємства.
Всі ми люди і розуміємо що роботу і витратні матеріали треба оплачувати.
Бо й так бардак.
А стосовно зекономити, то і міг і не міг. Це відомо лише їм.

Хоббі, наш один колена зібрав девайс ZX spectrum сумісний на сучасній елементній базі. По факту материнка типу PC, до якої підєднувались звичайний PC монітор та USB клавіатура. На флещці були усі программи та ігри які тільки бували на касетах, завантажувались звісно миттєво.

Тобто ви реально вважаєте, що він його для якогось підприємства робив? :)

Про промислову електроніку то якраз про те, що в промисловому використанні це нікому не цікаво

Та ні. Це скоріше був окремий власний проект.
А вже потім він розширював можливості СОМ порту до RS232
Якусь програму написав і.т.д.

конфігурацією 32M x 16 (32 мільйони слів по 16 біт).

16-бітний процесор 32М зазвичай не вміє, там скоріше 32Kx16 SRAM потрібен буде

Я проблем не мав, схоже їх починають створювати.

А які саме 16бітні платформи ви запускали? :)

Я починав з Електроніки-60 :)

Цікаво, що Ви як спеціаліст скажете про перехід Мак-ОС з Інтел на власну архітектуру.
Дасте коментар?

Я викладу свої думки замість вашого співрозмовника.

Наскільки я знаю, перед переходом на власну платформу було проведено великий статистичний аналіз — багато чого було вилучено, а багато чого було оптимізовано на рівні кремнію, і це стосується не стільки адресації пам’яті та програмування, а про дизайн мікросхем, статистику, теорію ймовірностей та інші галузі вищої математики.

не стосується адресації пам’яті і це теж не про програмування

Ви це серезно.

а про дизайн мікросхем

Це все одне й те саме.
Дякую зрозуміло все.

це взагалі окрема спеціалізація — тут мови програмування взагалі стоять осібнячком.

Ще раз повторю — багатьом програмістам взагалі байдуже до адресації пам’яті та апаратного забезпечення, адже запускають програми у хмарі... та використовують різні віртуальні машини — на кшталт JVM.

Вам слід ретельніше підбирати заголовок теми — адже ви пишете про окрему спеціалізацію

Поправка стало «усеодно» коли орієнтовно в 2009-2010 повально усі перейшли на 64-бітні процессори, де 8 байтів розряду достаньо для адрасації 16 екзабайт, до таких об’ємів ми не дійшли, хоча колись 4 гігібайта максимум на 32 розрядному CPU було фантастикою, що стало не проблемою усього десь за 4 роки (оскільки операційна система відкушувала собі верхні 2 гігабайти, залишалось усього 2 — що вже вводило різні JBoss в екзестанційні Out Of Memory, які клали продакшн в чорну п’ятницю та кібр понедідок — регулярно).
Мати на борту 32 G — RAM, це взагалі була ємкість вінчестеру.
Ну а в 16 бітах, там повні ізврати із 640 кб, і щоб зарендирити PNG або JPG картинку 640×480 максимум по VESA — вже йшли ціли складні алгоритмічні трюки, банки пам’яті, статичний оверлей і тому подібне.
Навіть в С++ 3.11 були введені костилі в мову far та near — вказівники і т.п.

По-перше — це не власна архітектура, це ліцензована в Arm добре відома архітектура.

Далі спілкуватися на цю тему не бачу сенсу, вибачте :)

це залежить від адресної шини, а також ніхто не заважає використовувати хаки — так, на 16-бітній шині вдавалося адресувати 128 КБ

я поплутав — там шина адресна на 16б — а не процессор.
все було давно

ну MMU та page-switch нікто не відміняв, але це дуже далеко від 64MB на 16біт платформі

якщо так сильно хочеться запустити щось на «умовно повільному» обладнанні — ну, купи собі чіп на базі ESP32 — там можна навіть написати власний драйвер для Wi-Fi.

Так то так. А вдихнути перше життя в пристрій цікавіше ніж смикати чіюсь ідею.

Знаючи технічний опис, з ESP32 можна зробити що завгодно. І це стосується програмування — якщо дотримуватися назви теми.

ви там пишете, мовляв, для ознайомлення з апаратним забезпеченням, — а заголовок говорить про інше.

Це якийсь тренд чи просто зневага до тих, хто читає такі твори?

Це Ваше відносне твердження. Хоча текст сирий, без виправлень маєте зрозуміти що буде зроблений пристрій на якому можна буде програмувати, а початком і буде машинний код.
А ЗНАЙОМСТВО З ЗАЛІЗОМ ОБОВЯЗКОВО, БЕЗ НЬОГО НІКУДИ.
І жодної зневаги.

На тому ж ESP32 цьому ніхто не заважає — плата коштує 3–5 доларів на AliExpress — робіть з нею що завгодно — хоч Linux часів MS-DOS запустіть...

А для програмування зараз знання апаратного забезпечення — це нішева спеціалізація!!!

Зараз багато чого працює у віртуальних машинах та хмарі.

У мене ось є інстанс на Oracle Cloud — і мені байдуже, яке там обладнання

Коли я вчився в універі нас за галас увесь курс викладач покарав, заставив написати в якості ДЗ текст програми на 10 сторінок чертежним шрифтом, бо йому так доводилось в юності (усі хакнули систему, надрукували з Kompas в точках і обвели олівцем, та довобатись усе одно довелось).
Так що в якості екзекуції, можна заставити набрати текст hello world на С в vi (чи принаймні у vim) — або писати на асемблері в бірюзовому редакторі Norto-на, або хоча би Notepad++ і тому подібного.
Багато кого з альф та зуммерів часто в ступор ставить — дисковий телефон www.instagram.com/reel/DN-jMXiiLr3 Та навіть Рейзор www.instagram.com/reel/DKowZvGIeRI/?hl=en

благо, що я не стикався з такими ідіотами

48 bit тому назад
Звісно TuboPascal 7.1, Borland C++ 3.11, Norton Commander — TASM та MASM і FoxPro викликають певну ностальгію.

vibeauthoring detected...

Ви якось визначтесь — вам TQFP чи 16 біт чи мікросхеми DRAM/SRAM :))

Початківцям раджу обмежитись 16-бітним процесором в корпусі TQFP з можливістю працювати на частоті до 40 МГц і виконанням простих інструкцій до 50 нс.

Це якесь дуже незрозуміле самообмеження...

Не вигадуйте велосипед — просто візьміть blue-pill/black-pill/esp32-pico і починайте робити прикольні штуки на бредборді без усього цього минулого сторіччя...

для реального минулого сторіччя вам для старту треба буде 10 мікросхем зібрати, і на бредборді воно не злетить...

Даний допис не націлений на знайомство або комерцію з бредбордами.
Це допис про знайомство з желізом і історією без купівлі і капіталовкладень в будь які туркіш-апи.
Дякую за пропозицію вашої темки, та ми якось власною обійдемся.
Гарного дня.

історією без купівлі і капіталовкладень

:) У вас пару сінклерів та комодорів64 в кладовці завалялося? Звідки ті хто хоче ЗНАЙОМИТИСЬ з залізом їх візьмуть?

Чи ви хочете щоб хтось почав знайомство з залізом з реверсу якоїсь рандомної плати з рандомним процесором з одноразовим ромом?

sevik.org/robopanda/devboard.jpg

я так робив, не рекомендую :)

Підійдуть навіть плати з старих кольорових телевізорів люкс класу, знайти вдома або по знайомим не складе великих зусиль. Або в супутникових тюнерах . Це для початку.
До речі зауваження, де шукати прийняте.
Обовязково обновлю в статті.
Дякую за конструктив.

в старому кольоровому телевізорі не буде процесора в корпусі TQFP, який ви реально зможете використати для будь-чого, окрім телевізора, там не буде окремого NOR-чіпа з прошивкою та вільних ніжок для вашого блимаючого світлодіода

Плюс кожен такий телевізор буде потребувати окремого незалежного реверсу

В результаті ваш початківець відкине це заняття ще до того, як знайде всі необхідні сигнали/живлення/етц, щоб воно просто стартануло

Про які блимаючі світлодіоди йде мова?
Якщо Вам АІ написав що нема, то це не означає що таких телевізорів нема.

Якщо Ви на своїй темі гроші заробляєте то заробляйте.
Я Вас розумію. Зараз важко всім, а точніше — легко не було ніколи.

таких телевізорів точно нема у вас або у ваших знайомих в кладовці

я на цьому не заробляю, я на це кожного місяця витрачаю, щоб своїх малих вчити :)

супутникові тюнери, можливо, дещо краще, але якщо ви сподіваєтеся на моделі «минулого століття», то там будуть дуже «недружелюбні» чіпи, для яких ви навряд чи знайдете нормальні компілятори/дев-тули і т.д.

Всі програми писатимуться з нуля.

Під кожен окремий телевізор, який у кожного учня буде свій?

наприклад? вам у будь-якому разі треба зробити «platform bring up» — просто стартонути процесор і впевнитись, що ваша програма виконується

Відповідно, якщо вам «не шашечки, а їхати», то будь-який маленький девборд за 300 грн дасть вам старт за хвилину, і воно точно відразу буде працювати

Це про користь знання набутого в процесі, а не виробу

Це допис про знайомство з желізом і історією без купівлі і капіталовкладень в будь які туркіш-апи.

Так можна і на лампах схемотехніку засвоювати, повторюючи еволюцію як зародиш. Чи є в цьому сенс крім — музейного хобі, важко сказати.
В цілому для музейного повернення назад, зараз є різні віртуальні машини емулятори і т.д. які встановлюється на нормальне залізо яке можна нормально купити і нормально обслуговувати, без радіоринків барахолок і т.д. і т.п.

А можна ніфіга не робити ))))) Лінь двигун прогресу.
І час і гроші зекономимо.

Питання в перших 15 хвилинах. якщо ви не можете зробити блимаючий світлодіод за 15 хвилин — далі вам вчити буде нікого

Якщо у мене аудиторія яка очікує

блимаючий світлодіод

то робити тут їй точно нічого.

Ви хоч раз щось насправді запускали на новій платформі?

Якщо тема так загрожує вашому майбутньому, то навіщо витрачати час на нікому непотрібне. Дякую. Гарного дня.

злив зараховано, до побачення :)

Я в своєму майбутньому впевненій, дякую :)

IMHO початківцю підійде звичний сучасний десктоп чи лептоп для усіх питань. Зараз він не коштує як топовий PS на Pentium Pro з Voodo 3dfx і т.д. в часи мого отрочества, що було еквівалентом вартості нового Волга ГАЗ-31029, а простий 486 як не поганий мотоцикл, чи вживані Жигулі.

Мабуть тему треба було назвати «Власноруч розроблений і спаяний компютер з б/у комплектуючих 2000-х років»
Бо для розуміння того що я пропоную навчитись будувати систему на фізичному рівні, заголовка замало. А це головна ідея.
Ну що зробиш, бачити сенс в цьому ніхто не примушує.
Я лише хотів вкласти в слово «власний» максимальне значення, а не лише факт володіння.
Дякую. Гарного дня.

для власного, треба тоді з піску починати і транзистори або радіолампи робити :)) а то ви якось не трушно починаєте

Якщо так глибоко копати, то хто може говорити про власне?

Одним із головних надбань цивілізації був розподіл праці...