Лисья Нора
Обо мне
Привет! Это просто мой блог.
Существует же NAOTO-64? Да. Надо сделать Slowpoke-64. Что он уметь будет? Всё. Ну, почти...
Мне от того что постоянно надоело изобретать 16-битный процессор, сразу захотелось создать 64-х битный x86, его небольшое подмножество для теста. Но с огромными приколами: регистры будут храниться не в регистрах LE, а в блоках памяти! И это будет жесть. И вообще, весь процессор будет задуман так, чтобы тормозить как можно более основательно, чтобы жизнь мёдом не казалась.
Да, именно 64 битная адресация и 64 битные регистры. Прямо вот сразу с 16 битного процессора на 64 битный переезд. Для чего? Да просто надоело уже колупаться в одной и той же проблеме. Выкину я этот 16-битный адрес вообще, оставлю только 32 или 64 бит. Ну и остальное, как и обычно, 8/16/32/64 регистры.
И еще там будет экран 32 на 30, как у Денди, для полного безумия, еще и черно-белый. Это надо же, да, сделать 64х битный процессор и выводить экран Денди, складывая 2+2 с Хелло Ворлдом.
Что необходимо реализовать из минимума, чтобы заработала простая выдача?
  • Конечно же все АЛУ базовые (ADD, SUB, ADC, SBC, AND, XOR, OR и CMP)
  • Инструкции сдвига на минимуме (но все 8)
  • Инструкции MOV
  • Переходы – условные или безусловные
  • Инкремент-декремент
  • Работа со стеком, вызов и возврат из процедур
Из того что хотел бы сказать: для 1024 битов регистров требуется 2500 LE (из 10240, например). На этом у меня точно всё.
Теги: безумие, процессор
20 фев, 12:01
Могу еще раз снова сказать: понравился мне этот процессор. Он оказался самым простым в изготовлении, по сравнению с теми, которые я рассматривал ранее. Даже 6502 не такой простой, несмотря на нереально ограниченный набор инструкции, у RISC-V их вообще всего лишь около 50. Да, вот столько мало, это факт, с которым трудно не согласиться.
Неспешными шагами и очень постепенно я создаю программную оболочку для собственного эмулятора, который уже написал, но не знаю, отладил ли, поскольку некоторые проблемы всё-таки наблюдаются с эмуляцией, особенно когда я запустил soft-float и там всё попадало, как карточный домик, построенный до небес, так что отладку придётся проводить. Несмотря даже на это, простые программы без особых страданий запускаются и вычисляются корректно: я уже добавил ввод ASCII кодов с клавиатуры, вывод на экран строк, печать в текстовом режиме и рисование в графических 320x200 и 640x400.
Это всё хорошо, но надо бы двигаться дальше и что-то не только выводить на экран монитора, а еще и начать перекладывать вычисления в верилог, делать программу для ПЛИС и я почему-то слегка побаиваюсь. Нет, я смогу сделать, это же не так и сложно. Меня как всегда пугают эти 32 бита, которые надо считывать одновременно из памяти. Однако, я придумал как сделать так чтобы быстро это всё дело работало. Так как в чипах ПЛИС есть блоки BRAM, и они равны в среднем по 1024 байт, а также они двухпортовые, то я просто могу создать "бутерброд" из этих блоков и обращаться к ним одновременно! Да, и тогда можно будет и читать и писать сразу же по 4 байта без задержек благодаря этому сэндвичу из микросхем памяти.
Раз с этим всё хорошо, то переходим к следующему. Да, конечно же, круто, что у меня 308К памяти – только вот, этого явно не хватит для запуска более сложных программ, с большим количеством данных, которые надо хранить в ОЗУ и мне придётся сделать контроллер SDRAM, и помимо него, еще и контроллер памяти для хранения кеша. Как я выяснил, кеш – ведь не настолько сложная, тут достаточно считывать кеш-линии по 64 байта из медленной памяти и туда-сюда эти данные гонять, проверяя Dirty-байты перед этим. Создание кеш-контроллера задача отдельная, как и создание контроллера памяти в целом. Мне бы хотелось однажды его сделать и может быть когда-то сделаю.
И третий вопрос, программное обеспечение. Один из самых насущных вопросом. Допустим еще что кеш и контроллер памяти можно не делать, ограничившись использованием 308К памяти BRAM на первое время, но вот какие-то программы сделать бы стоило, и я о чем подумал: может быть, сделать мини-игры. Да, простые игры, там сокобан, тетрис, змейка, понг, арканоид и так далее. И платформа начнет каким-то образом уже быть полезной и интересной.
Теги: riscv, процессор
13 фев, 07:49
Сегодня я выделил отдел "Тридэ" (Куб) из раздела Математики и остался доволен "просто-рисуемым-кубом-иконки", потому что красиво получилось и наглядно. Сразу видно, что тут рисуют только кубы и достигли в их рисовании абсолютного совершенства.
Одной поздней ночью, лежа, как обычно, без сна ни в одном глазу и просматривая всю свою никчемную жизнь, я наткнулся на странный и непонятный алгоритм. Для того чтобы рисовать трехмерную графику, совсем не нужно держать в "памяти" огромный буфер глубины, да и вообще можно даже без него обойтись. Достаточно строчку за строчкой, пиксель за пикселем вырисовывать треугольники. Без вычислений конечно, не обойтись, ясное дело – если надо нарисовать какую-то просто текстуру, то надо всё равно делить да умножать, тут не деться никуда. Но можно просто полностью обойтись без буфера глубины! Вообще.
Единственной и однозначной проблемой будет только то, что рисовать придётся ровно кадр. А что есть кадр? Это 320 на 200 точек, то есть 64К пикселей и при скорости 25 мгц можно нарисовать 390 таких кадров (25М / 64K ~ 390). Если, допустим, я рассчитываю на 60 FPS, то в самом наихудшем однопоточном режиме я нарисую 6 треугольников на линии по всей длине и будет даже 60 кадров в секунду. Но зачем мне однопоток? Я вполне могу сделать 8 или даже 16 потоков (хотя кто знает), и вот уже магические 48 треугольников на линии появляются почти что ниоткуда, вот в чём штука и соль! И еще даже можно распараллелить на другие части, например, рисовать по 4 за раз. Тоже вариант.
Итак, это перспективное направление, и стоит копать в эту сторону хотя бы для того чтобы убедиться, что всё прошло гладко. Меня ведь даже 30 кадров в секунду полностью устроит. А куб... там максимум 4 треугольника на линию. Нарисовать такой куб вообще никакого труда не составит и даже еще останется. И это только однопоток! Так что, знаете, я всё-таки постараюсь сделать эту штуку, ибо зачем не делать, когда можно попробовать, правильно?
Теги: графика, трехмерное
04 фев, 08:34
Что я могу сказать? Не так страшен был чёрт, с которым я боялся встретиться. Когда встретился, понял – у меня чересчур сильная прокрастинация, откладывал довольно простые вещи на очень дальний срок просто так.
Короче говоря, я просто заставил себя изучать архитектуру процессора, и это мне удалось. А иначе и не могло быть – она настолько простая, что там даже разбираться негде особо. Да, инструкции длинные, по 32 бита каждая, это даже не 16 бит как в AVR и тем более не 1 байт, как в x86. Но там вообще инструкции до невозможности громадные бывают, иногда и 16 байт могут достигать. А тут всего 4 байта в любой ситуации, даже в непонятной, даже если надо сделать просто NOP.
Не долго думая, сразу же создал одноименный раздел на сайте и туда начал записывать все свои наблюдения относительно процессорной архитектуры. Получилось неплохо, но дополнять есть чем ещё. Я лишь сосредоточился на базовой конфигурации RV32I, даже не используя -M расширение с делением и умножением, хотя там тоже пару пустяков. Сложнее будет сделать деление на верилоге, чем разобраться с новыми 8 инструкциями. Да что там... я даже уже разобрался с регистрами CSR по ходу дела.
Процессор весьма перспективный и я рад тому что начал его делать. Следующим моим шагом станет разработка его на Си, запуске программ, а потом портирование на JS, и далее на верилог. Так что делать придется много и долго. Но мне нравится, а это главное.
Теги: riscv, процессор
31 янв, 16:09
Недавно я сидел и думал: ну вот я сделал процессоры 8086, z80, 6502, avr и еще кучу своих – целая огромная гора процессоров, реализованная вдоль и поперёк. А что мне, на самом деле, мешает просто взять себя в руки и реализовать, наконец, процессор RISC-V? Ведь для него есть компилятор GCC! И он даже проще чем ARM.
Думаю, что ответ был простой. Всё дело в том, что у него 32 регистра по 32 бита каждый, а также 32х битные инструкции, работающие в одном адресном пространстве с данными, что тоже вызывало во мне какой-то иррациональный испуг. Да, 32 бита и 32 регистра – 1024 бита, столько логических единиц и нулей.
Вопрос: у меня что, ПЛИС маленькие что ли? Нет! Я не знаю куда девать логические элементы на своих ПЛИС-ах, о какой вообще экономии идет речь? Если о той, которая Марсоход-2, с 10к элементами, то может, их бы и не хватило. А может, и хватило бы даже. Я же даже не пробовал.
Так что всё, пора прокрастинировать уже, собрать свои лапы и начать кодить ими. Этот процессор далеко не такой сложный. Что я постоянно всего боюсь и экономлю каждый логический вентиль? Да это просто вздор! Никогда я не экономил вентили, да и не вижу в этом смысла вообще-то.
Теги: riscv, процессор
27 янв, 11:14
Заметил я одну интересную особенность всех моих постов. В каждом из них я пишу о завершении чего-то, словно готовлюсь к чему-то. Судя по характеру таких записей, мне важно закрыть свои собственные задачи, убрать свои длинные хвосты куда подальше и подготовиться к чему-то другому, возможно. А может и нет, откуда мне знать?
С большим удивлением могу отметить что прошло 19 дней, а это больше чем 2 недели, даже почти 3 недели, а я продолжаю заниматься сайтом почти непрерывно, создавая новые статьи о процессоре 8086, о его написании на верилоге, оформленные в виде глав достаточно сложной, но важной для меня книги.
Зачем я это делаю, мне совершенно ясно. Около 10 лет занимаюсь созданием эмулятора этого процессора и мне хочется закрыть его раз и навсегда, чтобы более не возвращаться и начать делать что-то новое. Для меня написание подробного руководства по созданию процессора 8086 с нуля – это и завершающая, и отправная точка для разработки собственного GPU и возможно, дальнейших, не менее интересных проектов.
В последнее время я очень много пишу, ищу свой творческий путь в том числе, пробую также написать и художественные вещи, но я их уже не показываю никому, потому что пишу и для себя, и на сайте мне нет нужды это показывать. Так что у меня, так сказать, достаточно насыщенная текстами, жизнь. Это любопытно, это что-то новое.
Теги: мысли, разработка, сайт
19 янв, 09:37
Вот и подходит импровизированный отпуск на 12 дней к концу, вот уже отгремели тик-таки на часах в 00:00 ночи 1 января, пробежало мимо Рождество с выпученными глазами, и медленно затухают бенгальские свечи к 11 января, оставляя след в сердцах, искры из глаз и особенное послевкусие салатов на языке.
Я всё это время активно работал над сайтом и новыми материалами. Кое-что переносил со старого сайта, что-то писал новое. Особенно я упёрся сейчас в написание руководства по самостоятельной сборке процессора x86-й архитектуры (или нет), на верилоге. Я всегда опасаюсь говорить о том что я делаю "8088" или какой-то либо из этих процессоров. Это совместимый процессор по ISA (Instruction Set Architechure), но вовсе не по внутреннему содержанию, потому что это чистого рода эмулятор.
Сайт полон всяческими материалами, но в нём нет жизни, поскольку я давно не пишу именно о себе и о своих мыслях. Частично всё так печально из-за новой черно-белой палитры. Это еще хорошо что я пока не придумал сделать вообще чисто 2х-цветный вариант (чистый черный и белый), а то я могу, знаете ли... Но ладно, это еще может будет, а может и не будет.
Что у меня было в жизни? Знаете, ничего особенного. Всё как всегда. За 12 дней я так и не смог сделать то что я хотел всегда – отдохнуть и хорошо расслабиться. Это всё инерция и постоянное желание что-то делать, не останавливаясь ни на одну секунду. Это и хорошо и плохо одновременно, смотря как посмотреть. Расслабиться не получается, но зато я не бездельничаю.
Как и всегда, мои мысли одолевают планы того что мне хочется сделать на сайте. А сделать я хочу вот что:
  • Сначала, завершить руководство по разработке 8088
  • Начать новый цикл рассказов о разработке графического 3D-видеопроцессора
  • Добавить новые разделы, такие как "Истории", где я бы делился своими воспоминаниями или рассказами, не касающимися каких-то технических вещей. Короче, художественная литература
  • Перенести оставшиеся данные из старого сайта
Планов столько, что на год хватит. Так что надо не останавливаться. Да, я конечно, полностью изолировал себя от внешнего мира, в том числе от любого общения с людьми, так что мои дороги начали расходиться с человечеством, но я пока все еще... Лис. Да, в своей лисьей норе. Я уже почти не человек. А может, никогда им и не был.
Теги: планы, процессор, сайт
11 янв, 10:29
§ Проблема
Есть одна тема, которая не дает покоя мне вот уже на протяжении примерно 10 лет: это эмулятор процессора 86-й архитектуры. Как только я его не делал, и на С++, и на JS, и на Verilog. Всё заканчивалось тем, что процессор бросался где-то посередине, никогда логически не заканчиваясь ни на одном варианте. Это не то чтобы неприятно, это очень плохо! Это хуже не бывает! Вопрос риторический: сколько можно уже парить себе мозг, ни разу не доделывая ничего до конца? Ответ, конечно, очевиден – пора уже с этим завязывать и сделать, наконец, этот злополучный процессор.
§ И как?
Для этого я завел специальный отдел на сайте, который назвал "Свой 386". Частично в нем уже есть материал из старых статей, но я переписываю все как всегда, с самого начала, чтобы всё было в одном отделе. Конечно, сразу же возникает резонный вопрос – а доделаю ли я в этот раз? В каком-то роде, я могу сказать что "да", поскольку у меня есть готовый как 8086-й, так даже и 32-битная его вариация без поддержки защищенного режима.
На деле, моя цель в том чтобы сначала рассказать о том, как по шагам разработать код для исполнения инструкции 8086-го процессора, а позже дополнить и перейти к 32-битному варианту, и далее, после этого, и к защищенному режиму процессора. Естественно, уровня ao486 мне достичь даже теоретически не удастся из-за того что там огромное количество рабочей периферии, но не в этом цель. Я хочу завершить процессор и рассказать об этом в своих статьях.
§ Сроки исполнения
Ничего не обещаю. Это может быть и месяц, это может быть и год, а может и вообще никогда. Я слишком хорошо знаю себя, чтобы давать какие-то обещания. Всё будет зависеть от того, какие у меня будут возможности, поскольку сейчас, когда идут новогодние праздники, у меня есть время на то чтобы писать текст, код, рисовать и разрабатывать что-либо. Что будет дальше, мне абсолютно неизвестно.
Надеюсь на лучшее.
Теги: 8086, плис, разработка
06 янв, 17:44
furlisa.jpg
В конце 2025 года я додумался до того, чтобы начисто снести свой собственный сайт.
Не знаю, как так получилось, но почему-то и какое-то время мне было настолько плохо, что я даже не мог смотреть ни на свой, ни на какой-либо сайт вообще. Скажу, что ничего не прошло зря, хоть мне и придется восстанавливать сайт несколько месяцев: в итоге, я решил что создам полностью черно-белый вариант с самым минимально возможным набором стилей и навигации на полностью новом (конечно же, самописном) ядре. Который #номер движка по счету, уже не могу сказать, их было так много.
§ Новый дизайн
Старый дизайн канул в Лету. Не сказать, что он был чем-то плох или хорош, он был самобытный, своеобразный, необычный, что могло выделять мой сайт и блог, и вообще, меня, среди тысяч и тысяч других блогеров, вебмастеров, программистов или дизайнеров, иными словами, работников IT-сектора. Но, как можно увидеть, не совсем лишен моих новых черт характера – теперь сайт из синего цветастого дизайна времен Windows XP превратился в абсолютно серую, унылую пустыню с дизайном в стиле почти что крайнего минимализма – чёрно-белым и скучным, как вся моя бессмысленная жизнь. Ничего не осталось от прежнего дизайна, кроме верхнего обесцвеченного блока и надписи "Лисья Нора", коим мой сайт и является.
§ Cookie
Также я решил еще отказаться не только от визуального оформления, но и от вообще всех cookies, сведя их использование к абсолютному нулю и предоставляя лишь только информацию или определенные сервисы, которые куки не используют. На самом деле, даже если куки не будут использоваться, это не отменяет использование local storage в браузере для будущих или уже существующих javascript-приложений. Я не считаю это cookies, так как данные не передаются на сторону сервера, а остаются в личном владении пользователя браузера.
Помимо кук, я также исключил свой сайт (пока что) из google-поиска, ну и конечно же, удалил все возможные метрики, чтобы и не видеть кто посещает сайт и не знать об этом. Конечно, на момент, когда мой сайт был удален и вообще, изъят из google-поиска, посещения как раз постепенно росли, но мне было всё равно.
§ Статьи
Важным изменением я считаю то, как теперь будут систематизированы статьи. Они не исчезли, архив статей хранится у меня в отдельном пространстве, и статей немало – свыше 550! Для меня и самого это явилось открытием, особенно в то время, когда я сортировал статьи. Сейчас (на текущее число записи блоговой записи) мне за месяц удалось перенести около 100 статей из примерно 550. Сколько я буду переписывать их, даже не представляю, возможно, еще месяц или даже полгода, но в итоге я всё-таки их восстановлю и не просто восстановлю, а вычитаю и систематизирую по папкам и категориям. А также одним из интересных добавлений, которые я решил предпринять: перерисовка иконок на главной странице полностью вручную.
Помимо старых статей у меня есть желание писать и новые, но я также решил отказаться и от информационной панели, которая бы показывала, какие есть обновления на сайте, так что единственным способом узнать об обновлениях будет только этот блог, либо же самостоятельное изучение сайта, что, конечно же, никто делать не будет. У меня и так до этого мало кто вообще заходил целенаправленно на сайт, а тут и подавно никто не будет. Особенно после моих разрушительных действий в отношении сайта, да и себя в целом.
§ Пересмотр ценностей
Могу сказать, что помимо уничтожения и последующей попытки восстановления сайта в обновленном виде, разрушению также подверглись и мои собственные мысли и отношение в целом, к темам, о которых я рассказывал на сайте.
Сайт никогда, по своей сути, не являлся обучающим или приносящим некие новые знания или даже справку. На деле мой сайт – это отражение меня, моей личности, мыслей, творческого поиска и жизненного пути. Как можно заметить, в "подвале" сайта указана дата создания – 2011 год, и это так, и в то же время, не совсем так. Собственный сайт, откуда я впервые и взял дизайн, был создан еще в 2007-2008 годах, во времена WAP-интернета, и назывался он иначе, но идейно текущий мой сайт был еще задолго до существования домена "Нейрофокс". Но даже срок в 15 лет – это практически, половина моей жизни на данный момент.
Вот уже практически полгода (почти 6 месяцев) я не притрагивался к ПЛИС, к программированию для физически существующих отладочных плат. Да, я фактически полностью утратил интерес к верилогу, и лишь в последний месяц я осторожно попробовал что-то проверить, исправить несколько багов в ядре процессора x86, который разработал достаточно давно. Несмотря ни на что, интерес к программированию на верилоге у меня потух настолько, что мне пока неизвестно, что может разжечь его заново.
Самая больная и самая неоднозначная тема для меня была и остается – это видеоблог. С этим всегда были огромные сложности и неопределенность. Одна сторона моей личности говорит о том, чтобы делать видео, потому что это хорошо, полезно, интересно, но вторая сторона, если так можно вообще выразиться, просто отрицает это и кричит о том, чтобы никогда и ни за что не притрагиваться к теме видеозаписей или стриминга. Этот тяжелый внутренний конфликт не разрешается почти 10 лет, и даже существует до сих пор, хотя мое решение уже более определенное: видеоблог и стримы – не для меня, и если моя нерешительность все еще присутствует, то лучше ничего не делать, чем делать то, что не нравится или приносит страдания.
§ Заключение
То, куда будет развиваться (или нет) мой сайт, мне неизвестно. Жизнь всё равно не стоит на месте, а этот сайт сейчас является одним из последних звеньев, которые соприкасаются с внешним миром, пусть даже и обезличенном, поскольку я никогда не знаю, кто и когда прочтёт или не прочтёт данный блог или статьи. Я никогда не могу ничего обещать, особенно после того, что делаю в отношении собственного творчества, однако я всё-таки считаю, что полностью обесценивать собственный многолетний труд я тоже не имею никакого морального права. Если этот сайт – часть моей души, открытой миру, то избавиться от самого себя – это худшее, что только я могу сделать, потому, кто его знает, что я напишу или не напишу в будущем. Творческая площадка должна быть открыта, чтобы не дать себе все уничтожить окончательно. Осторожно надеюсь на перемены к лучшему, хотя, честно говоря, я уже давно в это не верю.
До новых встреч!
Теги: обновление, сайт
31 дек, 23:59, 2025