?

Log in

No account? Create an account
 

kincajou — компьютеры — ЖЖ

About Уничтожить всех уродов

Это у тебя что? 25 окт, 2020 @ 15:19
- Это процессор!
- Это?.. не.. это не процессор... ВОТ ПРОЦЕССОР!
Tags:

Любопытная новость. 24 окт, 2020 @ 07:59
Министерство финансов США в пятницу объявило о новом расширении санкционных списков, внеся в них московский Центральный институт химии и механики (ЦНИИХМ).

Как считают в Соединенных Штатах, специалисты именно этого исследовательского центра разработали компьютерный вирус Triton, также известный как TRISIS и HatMan и предназначенный для взлома сетей на промышленных объектах.


Зная о том, какие ребятки сидят в ЦНИИХМе, смею усомниться в точности результатов расследования американцев.
Утверждать, что они ошиблись, не буду - всё-таки я давно уже сбежал из этого прекрасного места. Но вот в то, что с тех пор там что-то сильно улучшилось, верится с трудом.

Короче, вот понадобилась всё-таки Windows 7 и я её поставил, но 23 апр, 2020 @ 11:51
штатным образом не получалось НИКАК ВООБЩЕ, перепробовал все варианты советов на тему "как поставить семёрку на Ryzen" - ничего не помогло.
Но ведь у меня есть линукс.
В линуксе настроил виртуалку так, чтобы она подцепила физические диски.
Поставил винду там, пошаманил с BCD, перегрузился уже в "физическую" систему, там уже установил драйверы AMD, NVidia и Xonar.. и вот я в свеженькой, сияющей незасранным реестром Винде7!
Tags:

wxMaxima 27 фев, 2020 @ 05:18
Открыл для себя этот замечательный пакет компьютерной алгебры. Вернее, сам пакет это Maxima, он из командной строки работает, а wxMaxima - один из вариантов GUI, не единственный из возможных.
Может быть, тут нет чего-то, что есть в MathCAD, но для моих простеньких расчётов всё необходимое присутствует и даже в избытке.
И бесплатно!
Есть туториалы и т.п., я уже освоил несложный синтаксис - замечательная штука.

Платка-шестихвостка. 15 янв, 2020 @ 17:42
Плата 2019 года на процессоре 2013 года (реализация складских остатков?) с шестью COM-портами. Очевидно, мать для встраиваемых решений и прочих POS-терминалов, о чём, собсно, пишет производитель. Старые процессоры вполне работоспособны и в таких приложениях какая-то зубодробительная производительность не важна, а вот низкая цена -- очень даже. Но автор обзора этого не понял :(

Дяди решают. 15 янв, 2020 @ 10:32
Правильно ли я понимаю, что новая политика обновлений, которую MS использует в windows 10, такова:
1) обновления устанавливаются принудительно и автоматически
2) совместимость следующего релиза с предыдущим не гарантируется
3) после установки обновления устройство может стать необратимо нефункциональным (если нет возможности воспользоваться какой-нибудь альтернативной системой)?

И никто не виноват, ведь "вы согласились с пользовательским соглашением".

Т.е. какой-то менегер в США может решить, что мой компьютер слишком старый и мне пора покупать новый - и бриканёт его?

4K видео + PNG файл размерами 20791x19201 = ... 29 дек, 2019 @ 16:14
..и четырёхгигагерцовый восьмипоточный процессор с 32 гигами памяти говорит, что на рендеринг одной минуты уйдёт где-то примерно полтора часа ;)

Надо чё-то придумать. Порезать картинку, штоль...

И вообще, такое ощущение, что софт хоть и 64-битный, но где-то у него внутри 32-битные указатели ещё есть.

"Не видишь? МИ КЮЩАИМ!"
Screenshot_3

"Не дождётесь!" (с) 5 дек, 2019 @ 23:51
В прошлые выходные у меня сгорел компьютер.
Я имею в виду, буквально сгорел - с пиротехникой, громкими хлопками и дымом. В комнате до сих пор воняет гарью.

Не очень старый и вроде бы неплохой (на момент покупки) блок питания Corsair CX750 утянул с собой в могилу материнку (ASrock 990FX Extreme3), проц (FX 8350) и память (4 планки HyperX DDR3 по 4 гига).
Видюха и винты, как ни странно, выжили - чему я очень рад.

В итоге всего этого ужаса и нескольких дней мучительного ожидания и тестов на совместимость*, я разжился Ryzen 2500X на материнке Gigabyte B450M DS3H ажно с 32 гигами DDR4, рубящими байты на умопомрачительных (хоть и не рекордных) 2666 мегагерцах.

Тихий кулер (называется "be quiet! Pure Rock Slim"), новый блок питания (Chieftec Navitas GPM-750S).

Сейчас думаю, что делать с системой - W7 ругается на слишком новый проц, мол, "не будем вам секьюрити!" - а W10 сцыкотно.

Заодно и та проблема отпала.
---

* Если вдруг надумаете собирать систему с памятью DDR4 - не только AMD, у Intel ровно те же проблемы - обязательно штудируйте список совместимости для вашей материнской платы. Производители выкладывают на странице продукта документы под названием QVL-чего-то-там, в них -- перечни гарантированно совместимого и работоспособного оборудования. Я обжёгся на этом два раза, пришлось подбирать память по этому списку, сравнивая partnumberы со складом магазина. Совместимые нашлись и даже недорого, но их расхватывают со страшной скоростью (типа, если утром их на складе более 50 штук, то вечером может уже и не быть совсем!).

Если покупаете память, которой нет в списке совместимости, то это лотерея. Может заработать сразу, может не заработать вообще, может работать только в двух слотах из четырёх имеющихся и т.п.

Хоть DDR4 и стандарт, но технология уже превращается в магию -- поэтому "всё стандартное, всё правильно, но вместе ваще не работает!!!" это дело обычное.
Tags:

Как найти причину периодических тормозов компа? 28 ноя, 2019 @ 00:24
Всё работает нормально, но время от времени, с периодом в несколько минут какая-то хрень жёстко грузит систему так, что даже звук хрипит.
Потом отпускает и всё нормально до следующего раза.
В списке задач не видно ничего подозрительного.
Антивирус ничего не нашёл, утилита для удаления malware ничего не нашла, сервисы понаотключал уже.
Короче, как поймать злодейский фактор?
Какой-нибудь профайлер не для софта, а для системы в целом существует - чтобы поглядеть, что именно так грузит хотя бы?
Никаких грузящих программ на фоне вроде не запущено, диски новые, система (W7) обновлена по последнему слову техники.

Прыгунчик 28 авг, 2019 @ 14:47
Я так понимаю, произошло невозможное?
Ждём комментариев главных диванных экспертов по компьютерной графике, теории реактивного движения и баллистике.
Other entries
» worklog: регистры приехали
ЙААААЗЬ!!Свернуть )
» worklog: побайтовый доступ к 32-битной памяти
А как, собсно, это работает? У чипов SDRAM, насколько мне известно, нет возможности записывать только часть битов*. У некоторых широких SRAM, наоборот, есть (например, 16-битная шина и два отдельных строба, типа BH и BL). Как же это сделать? Считать полностью слово, заменить байт, записать обратно? Bus turn-around - это же ммммммееееддленнно

* Или я всё понял неправильно и "data masking" (сигналы типа DQML/DQMH в терминологии Micron) это оно и есть?

[подумав] Да, похоже на то, что я недоглядел - сигналы DQM в самом деле нужны для этого (но не только). При записи они управляют блокировкой, собсно, записи - если строб установлен в 1, запись в указанном канале НЕ осуществляется. Нушож, это хорошо.

Значит, внешняя шина будет из 32 бит данных, 32 бит адреса, стробов rd/wr и индикатора размера данных (байт/полуслово/слово). И где-то там, уже снаружи процессора, будет хитрый контроллер SDRAM... который уже придётся делать на ПЛИС, наверное. Но, мобыть, и нет.
» worklog: невыровненный доступ и конечный автомат
Т.к. я хочу соорудить процессор, способный работать ещё и со сжатыми командами, тоСвернуть )
» worklog: заказал платы регистров
Пять плат всего, но сборку заказал только двух, ибо недешёвое удовольствие - сама сборка как бы бесплатная, но детальки-то производство всё равно закупает и в итоге 128 недорогих микросхем (32 регистра по 4 микросхемы в каждом) превращается почти в сотню баксов на каждую из собранных плат.

И вроде как жаба душит, но собирать эти платы вручную я точно не хочу :)
» worklog: двоичный компаратор - работает!
Это просто великолепно, несмотря даже на то, что в плате оснастки дефект (то ли металлизации в переходнике нет, то ли одно из двух -- нет контакта в одном сигнале; решил пробросом навесного проводка прям внутрь платы компаратора). Всё равно этот блок буду переделывать, чтобы добавить проверку платы CSR, заодно и закажу в более надёжном месте*.

Операции EQ, NEQ, LT, GE, ULE, UGE (равно, не равно, меньше, больше или равно, беззнаковое меньше, беззнаковое больше или равно; всё это нужно для условных переходов) фунциклируют как надо; флаги TRUE/FALSE выдаются; константы для инструкций SLT/SLTU формируется.

Вообще сравнение можно было бы сделать и на арифметике, но я решил, что так будет проще - два разных отдельных блока могут работать одновременно, например, чтобы вычислять условные переходы: компаратор сравнивает регистры, а арифметика в этот момент вычисляет предполагаемый адрес. Если сравнение не сработало, вычисленное значение просто отбрасывается, а если сработало - загружается в Program Counter. Поэтому отдельный флажок COND_TRUE очень даже нужен и полезен.

Отступать некуда - надо собирать АЛУ, а потом ещё блок регистров общего назначения; затем дешифратор команд (с поддержкой сжатых инструкций, так уж и быть); program counter с костылями для branch prediction; блоки выборки памяти инструкций и данных; блок форвардинга и ожидания; прочую мелочь...

----

* у китайцев, с электротестом. Этот экземпляр я заказал в Дефолт-Сити и пожадничал на электротест - вот мне и урок: экономия пары сотен рублей (или сколько он там стоит, я не помню) оборачивается бессонной ночью и бессильными злобными матюками в никуда.
» worklog: сдвиготрон заработал
60 микросхем буферов, из которых собран монстрический пятистадийный 32-разрядный мультиплексор. Каждый чип - 20 контактов.
4 логических чипа, на которых сделана логика переключения, по 14 пинов на каждый.
Итого 1256 контактов... и ОДИН непропай - оттуда и вылезал этот неуловимый Джо.

Джо пойман и пропаян. Сдвиготрон фигачит направо-налево, логические и арифметические сдвиги. Задержка выход-выход всего около 25 нс, если я правильно промерял. Это должно быть пять раз по Tpropagation, а документация обещает 4 нс типичное значение; плюс ещё задержка на меди. По порядку величины очень даже сошлось.

Прям-таки гора с плеч. Итого, первый кусок будущего мегадивайса -- собран!
» worklog: арифметико-логический ломтик
ALU slice, то бишь.
При помощи свежесобранного анализатора погонял по операциям: работает! Суммирование/вычитание, AND/OR/XOR -- всё как надо.

Теперь надо собраться с силами и собрать ещё три "ломтика", поставить их на объединяющую плату со схемой переноса и подумать над тем, как правильно проверить 32-битную арифметику. Если 8-битную можно просто прогнать по всем возможным значениям, то тут такой прямолинейный подход точно не годится, ибо Вселенная распадётся и погаснет раньше, чем закончится перебор.
» worklog: двоичный компаратор - платы приехали
И ещё обновлённые платки для логического анализатора - начать надо с него.
Плюс ещё оснастка для тестирования, чтобы не на "соплях" всё подключать, а нормальными шлейфами удобной длины.
И у меня даже все детальки уже есть.
Завтра начну собирать.

А как нормально запущу анализатор, там и до сдвигателя доберусь - я ведь до сих пор не знаю, почему у него глючит старший разряд.

После компаратора - сборка АЛУ. Один слайс уже готов и проверен, осталось сделать ещё три. Обновлённая плата со схемой быстрого переноса тоже есть и ждёт своей очереди.

После сборки и проверки можно будет считать, что блок EXECUTE готов на 75% (остаётся ещё модуль CSR, с ним придётся повозиться).
» worklog: блок управления форвардингом
Блок работает внутри стадии Decode (Fetch - Decode - Execute - Memory - Writeback).

эскизСвернуть )

Нужен для проброса данных "против течения" конвейера - когда блоку вычислений понадобятся результаты работы следующих стадий, ещё не успевшие осесть в регистрах, то их надо выдёргивать прямо с промежуточных участков. Для этого должны выполниться определённые условия:
1) если надо читать из регистра с тем же индексом, в который писала предыдущая или пред-предыдущая операция (находящиеся, соотв., на стадиях Execute или Memory),..
2) и это не регистр ZERO (потому что в него выбрасываются данные, которые надо забыть; читается всегда ноль)

Если предыдущая операция была загрузкой из памяти и при этом ещё выполнились два предыдущих условия, тогда конвейер надо придержать (STALL) на минимум 1 щелчок. Пред-предыдущая загрузка из памяти задержку по-умолчанию не требует (если память успела их предоставить за 1 такт, конечно же).

Соотв., при выполнении этих условий включается мультиплексор на входе стадии E, который либо копирует данные с её же выхода (но с предыдущего такта), либо с выхода стадии M (т.е. с пред-предыдущего такта). При этом у стадии E приоритет над M, потому что если обе этих стадии нацеливают запись в один и тот же регистр, то запись из E всё равно сотрёт данные от M. Запись в регистры общего назначения не имеет побочных эффектов, поэтому перезаписанные данные не важны - важно только текущее значение.

В финальной схеме, управляющей обоими каналами RS1 и RS2, сигнал LOAD_STALL формируется как (DE_RS1 OR DE_RS2) AND E_IS_LOAD: вне зависимости от того, в какой канал надо положить данные, задержка нужна одна и та же.
» worklog: двоичный компаратор
оптимизировал схемуСвернуть )
» Могу скромно заявить, что ST прислушалось к моим советам ;)
Пару лет назад у них был конкурс на закрытом форуме (туда пригласили несколько десятков человек с открытого форума) на "лучшее предложение по развитию линейки STM32". Призов, правда, никаких не обещали, но.. я тогда предложил таки влезть в нишу более мощных процессоров, подняться выше Cortex-M и сделать многоядерный чип, на котором можно было бы запускать индустриальный линукс.

И вот надо же....
Поприветствуем!
STM32MP1:
    Dual Cortex®-A7 cores running at 650 MHz
        32-Kbyte L1 Instruction cache
        32-Kbyte L1 Data cache
        256-Kbyte Level 2 cache

    Cortex®-M4 core running at 209 MHz
        a single-precision floating point unit (FPU)
        a full set of digital signal processor (DSP) instructions
        memory protection unit for enhanced application security

Память DDR3, все дела.
Я уже знаю, на чём сделаю свою следующую микроконтроллерную платку ;)
надо будет таки обзавестись средствами надёжной пайки BGA

И самое главное - обещанный 10-летний срок поддержки выпуска.
» worklog: протестировал barrel shifter
Это вообще первое включение было.

Ну чё, влево он сдвигает, индекс от 0 до 15 работает как родной (правда, я пока не все входные биты проверил). А вот когда включается старший бит индекса сдвига (от 16 до 31), начинается полный бред - на выходе какие-то почти рандомные числа (рандомный "почти" потому, что паттерн повторяется, но систему я в нём пока не уловил).

Вправо не работает, тоже бредятина на выходе: даже если сдвигаю один бит (число типа 0x00001000), то на выходе могут появиться сдвоенные-строенные биты. Замыканий в плате вроде нет... буду думать.

Надо только соорудить оснастку поудобнее, а то китайские "дюпонты" слишком уж дубовые.
» RISC-V64 + AI всего за недораха
https://www.seeedstudio.com/Sipeed-MAIX-I-module-WiFi-version-1st-RISC-V-64-AI-Module-K210-insid-p-3206.html

вот, кстати, не понял я одну штуку. У RISC-V в priveleged спецификации есть описание нескольких команд типа FENCE, но само описание настолько туманное, что я читал и перечитывал, но пока не понял, как это всё должно работать, хотя и понял, что это всё именно про управление памятью - сохранение когерентности и всё такое.

Например, непонятно, как реализовать точное управление кэшем. Ну, например, в ситуации, когда система только включилась и в кэше мусор - причём флажки valid могут быть установлены (ибо - мусор). Т.е. кэш сначала надо сбросить весь, но если записи в память ещё не было, то FENCE не имеет смысла (или я чего-то не понял?), а вот конкретно как инвалидизировать весь кэш или, что ещё интереснее, отдельные его куски - ващщще непонятно.
» worklog: вычисление адреса перехода
BEQ, BNE, BLT, BLTU, BGE и BGEU - команды условного перехода (например, в конструкции if/else).

Операция сравнения ("равно", "не равно", "меньше", "меньше беззнаковое", "больше или равно" и "больше или равно беззнаковое") выполняется над исходными регистрами rs1 и rs2 и, в случае выполнения условия, к текущему PC прибавляется 12-битное смещение (закодированное прямо в самой этой команде), т.е. переходв озможен на расстояние до +-4К инструкций. Записи в регистр нет.

JAL и JALR - команды безусловного перехода.

JAL извлекает смещение (20 бит) из своего опкода и прибавляет его к текущему PC, в регистре назначения сохраняется значение [PC+4] (т.е. адрес инструкции, следующей за текущей) чтобы можно было перейти обратно. Т.е. возможны переходы на расстояние до +-1М от текущей инструкции.

JALR извлекает 12-битное смещение и прибавляет его к регистру rs1 (base), результат заносится в PC, а в регистре назначения сохраняется значение [PC+4]. Если смещение равно нулю, то осуществляется просто переход по адресу из регистра rs1, а если регистр назначения это r0 (нулевая "затычка"), тогда эту инструкцию можно использовать, например, для возврата из функций.

Команды LUI ("load upper immediate") и AUIPC ("add upper immediate to PC") используются для записи 20-битных констант в регистры. Братец LUI просто заносит в старшие биты указанного регистра 20 бит своего кода, а AUIPC действует ещё хитрее: 20 (старших) бит кода суммируются с текущим PC и результат загружается в регистр назначения. То есть, если выполнить такой условный код (не в каноничной нотации RISC-V):
AUIPC R3, 1000 ; помещаем в R3 результат суммирование [PC+1000]
JALR R2, R3, 20 ; сохраняем [PC+4] в R3, к R3 прибавляем 20 и загружаем результат в PC
...

То мы прыгнем по адресу PC+1000+20, а адрес следующей после JALR инструкции будет сохранён в R2.

Если вместо AUIPC использовать LUI, то переход будет по фиксированному адресу. AUIPC позволяет простым способом реализовать перемещаемый код, т.к. вся адресация становится относительной.

Проблема в том, что раз процессор конвейерный, то на момент выполнения команды JALR результат предыдущей операции AUIPC ещё "едет" по завершающим стадиям конвейера и в R3 лежит что-то совсем не то. И надо либо ждать полного выполнения инструкции (а это ещё два такта для классического пятистадийного конвейера), либо надо как-то извлекать значение результата вычислений прямо с выхода АЛУ, не дожидаясь полного окончания цикла.

Вощем, вырисовывается ещё один блок, который будет совмещать в себе функции обхода конвейера и заодно работать кросс-мультиплексором для команд условного перехода (где одновременно выполняется и сравнение двух каких-то регистров, и суммирование константы со значением PC, т.е. задействованы сразу и АЛУ, и компаратор).

Посчитал-прикинул. Никак не меньше чем 9 шин по 32 бита, 6 на вход в блок и 3 на выход. Схемотехнически всё просто, но растащить 288 сигналов по двухслойной плате будет интересной задачкой...

Вряд ли я буду делать BTB и прочие хитрые штуки, поэтому после каждого перехода (условного или безусловного) надо будет сбрасывать конвейер - потеря производительности неизбежна, но если не использовать обход, тогда она будет ещё больше.
» worklog: двоичный компаратор
Компаратор нужен для операций сравнения и для условных переходов. Сравнивает 32-битные двоичные числа при помощи функций "РАВНО", "НЕ РАВНО", "МЕНЬШЕ", "БОЛЬШЕ ИЛИ РАВНО" (две последние - в вариантах для чисел без знака и со знаком).

В июле он выглядел такСвернуть )

А сейчас - вот эдакСвернуть )

Схемотехнически почти что одно и то же, только добавился буфер для честного формирования результата операции типа SLT (slt, sltu, slti, sltiu) - выглядит расточительно, конечно, с учётом того, что из 32-битной выходной шины будет использоваться только младший разряд... с другой стороны, если я применю bus keeper на шине результата, то от лишних микросхем будет избавиться проще, чем их вкорячивать куда-то, если они вдруг окажутся нужны.
Переделка, в основном, под краевые разъёмы: когда я посчитал, во сколько мне обойдутся коннекторы типа DIN, то раздумал их использовать - если такой разъём всего один в конструкции, это ещё ладно, а если их штук десять, то уже не ладно, а совсем даже наоборот. Где их купить подешевле, так и не нашёл, но зато купил пару десятков слотов с шагом 1.27: по конструктиву похожи на PCI, дешёвые, удобные. Правда, тоже дефицит - похоже, я купил всё, что было у продавца и не могу найти, где бы прикупить ещё, про запас.

Скорее всего, будет одним из самых медленных узлов в конвейере - из-за трёхкаскадной схемы на 74HC85. Попробовал прикинуть схемку на отдельных логических элементах - выигрыш по скорости будет процентов 30..50% (наверное), но схема получается слишком уж громоздкой.
» worklog: потихоньку собираю barrel shifter
DSCN2869

Каждый большой чип - 20 пинов, запаял уже 36 штук.
720 контактов.
Ещё остаётся установить 24 чипа, в итоге будет 1200 контактов. Ощущаю себя персонажем анекдота про "как дойдёте до ну-его-нахуй, так это вот только половина", но на самом деле это даже ещё не треть, это всего-то один из блоков одной из ступеней конвейера.
DSCN2871

Ещё адское адище будет на сборке АЛУ. Но есть и хорошая новость: я проверил одну секцию (собсно ту, которую собрал) и она работает. Впервые в моей личной истории я сложил два 8-битных числа на кучке мелкой логики! ;) На этот моменте я почувствовал себя немного Сеймуром Крэем.

Самая жестьСвернуть )
» Китайская закладка, говорите...
Бэкдоры в микрокоде ассемблерных инструкций процессоров x86
» worklog: iMX6ULL, ещё более новая версия модуля in progress
причём так In progress, что даже похвастать нечем - после замены сокета microSD на чип EMMC пришлось развернуть чип DDR вдоль, дабы на высвободившееся место впихнуть флешку без изменения габаритов платы... и это вроде бы небольшое изменение топологии, которое я надеялся исправить за вечер, потащило за собой такой каскад правок, что я сижу уже х.з. сколько (сегодня вчера вот выпил кофе в 11 утра и сижу до наст.вр., полностью охуевший) и невпихуемое невпихивается, вот хоть тресни. Проблема ещё и в том, что я в предыдущий раз схитрил и выкрутился за счёт того, что часть внутренних выводов процессора не была задействована вообще, а щас вот их надо вытащить и эти сигналы вроде как негде просунуть (не добавлять же ещё пару слоёв из-за 6 проводников, в самом деле).

Крутил-вертел. Плюнул, сбросил всю топологию нахрен - буду делать заново, потому что иначе никак. Я уже в панике подумываю об автотрассировке.. спасает отсутствие оной. Хорошо хоть схема питания остаётся без изменений.

А так-то будет модуль с пассивкой, интегрированной ВНУТРЬ текстолита. В существующей версии некоторые кондёры лежат на нижней стороне платы, из-за чего в целевом устройстве либо надо фрезеровать окошко, либо использовать некий пассивный interposer, на котором будет лежать модуль. Вот чтобы всё это упростить для конечного пользователя, часть пассивки будет утоплена в толщу платы, наружу будут торчать только переходные.

Ещё какие-то деятели сделали аналогичный по смыслу, но иначе выполненный модуль с односторонним монтажом. Задал им пару наводящих вопросов и выяснил, что из всей кучи блокировочных конденсаторов они оставили всего несколько, растащив их по сторонам чипа, а остальное решили "оптимизацией топологии" (выпустив и испытав "несколько итераций плат"). Я решительно против такого насилия над рекомендациями производителя чипа.

В остальных случаях люди решают проблему до её возникновения - модули снабжаются маленькими мезонинными или краевыми разъёмчиками, что автоматически убирает все сложности с двухсторонним монтажом. С одной стороны, будь моя воля - я бы так же сделал, потому что это удобно. С другой стороны, даже мне понятно, что разъёмы стоят денег и снижают надёжность: ну а вдруг перед установкой модуля на контакты какая-нибудь какашка попадёт? когда модуль один, это не проблема, а если их тыщи будут?
» Кое-что бесит.
Дожив до седых волос, сделав множество работоспособных и ещё больше неработоспособных электронных штук, понял, что в моих познаниях есть некий пробел, заполненный ненадёжным туманом очень общих слов: я не знаю, как на самом деле работают микропроцессоры. Т.е. я умею ими пользоваться, я понимаю различия между архитектурами и семействами, я знаю, для чего нужно АЛУ, кэш и т.п., но я не имею ни малейшего представления о том, как оно на самом деле всё устроено. Т.е. я понимаю, что на функциональных схемах обозначают эти квадратики, но вот что у них внутри - ?..

И это беспокойное сомнение свербит мне мозг.

Полез читать и разбираться.

Начал с динозавра (стадию релейных рыб и ламповых земноводных решил пропустить) - АЛУ 74181, достославный чип, подливший бензина в пламя компьютерной революции. Почитал даташиты, заказал (ещё не получил) КМОП-версию для экспериментов. Чтобы было что пощупать, пока микросхемы в пути, написал VHDL-модельСвернуть )
» Об экстраполяциях.
Вот нам говорят - в прошлом компьютеры были ламповыми. Мол, первый программируемый компьютер универсального назначения, ENIAC, был создан в 40ых годах прошлого века, состоял из примерно 18 тысяч ламп (не считая прочих деталей) и потреблял почти 180 киловатт. Потом кто-то утверждает, что компьютеров на лампах было много и какие-то были больше этого, какие-то меньше.

Но где они все сейчас? а? почему я не могу вбить в гугл "полный комплект схем лампового компьютера UNIVAC" и получить полный комплект схем лампового компьютера UNIVAC, а? Где оно всё? А? почему в магазинах не продаётся, почему их нигде нет*, почему они не применяются, раз они были такие хорошие и прогрессивные??

Так может, их и не было вовсе?



* в каких-то музеях есть, но это не счиатется, потому что поздняя подделка
Top of Page Разработано LiveJournal.com