Search
Write a publication
Pull to refresh
1
Alexander Stellove @AlLSTLread⁠-⁠only

Software Engineer

Send message

Что под капотом чипа DRAM, этапы развития технологии

Reading time10 min
Views13K
“Всем знаком закон Мура, описывающий уменьшение размеров транзисторов в логических схемах. Для того, чтобы он продолжал работать, технологам приходится идти на все новые и новые ухищрения, однако их работу несколько усложняет то, что все чипы очень разные по структуре. А что было бы, если бы можно было оптимизировать технологию под конкретный дизайн микросхемы? Ответ на этот вопрос может дать динамическая память.”

Классический пример работы закона Мура — ячейка статической памяти. Ее схема давно известна и широко используется, занимая десятки процентов площади современных микропроцессоров и систем на кристалле. Именно площадь ячейки статической памяти стали использовать как мерило плотности упаковки новых технологий, когда стало понятно, что длина канала транзистора больше не может быть эталоном проектных норм. Учитывая важность статической памяти, технологи стараются подбирать параметры процессов так, чтобы не только в принципе увеличивать плотность упаковки элементов на кристалле, но и заботиться конкретно о статической памяти. Однако, на чипе всегда есть множество других схем, и если очень сильно упираться в оптимизацию именно памяти, это может выйти боком. Но что было бы, если бы технологию можно было полностью подчинить нуждам схемотехники? Ответ на этот вопрос может дать динамическая память.

Читать дальше →

Автоматизированное проектирование радиоэлектронной аппаратуры

Reading time13 min
Views33K
В популярной форме освещаются вопросы автоматизированного проектирования радиоэлектронной аппаратуры (РЭА) на конструкциях печатных плат, основные этапы становления и эволюции систем автоматизированного проектирования (САПР) РЭА, содержание задач автоматизации, организация сквозного цикла выполнения проектных работ с использованием средств автоматизации.

Целью публикации является ознакомление инженерно-технических работников с одним из бурно развивающихся направлений в современной индустрии информационных технологий.

Читать публикацию

2D-полупроводники спасут закон Мура?

Reading time3 min
Views8.7K


Использование дисульфида молибдена в качестве смазки известно с 17 века, когда переселенцы применяли его для смазывания осей тележек. С 1940-х годов вещество широко используется как компонент смазочных материалов. В природе дисульфид молибдена встречается в виде минерала — молибденита (на фото)

Закон Мура — эмпирическое предположение, что число транзисторов в интегральных схемах удваивается каждые несколько лет. Однако этот закон начал давать сбои, поскольку транзисторы теперь настолько малы, что современные технологии на основе кремния не могут предложить дальнейших возможностей для уменьшения их физических размеров.

Группа учёных из Университета Нового Южного Уэльса (Австралия) и Калифорнийского университета в Лос-Анджелесе (UCLA) опубликовала описание технологии производства двумерных полупроводников, которые теоретически могут решить проблему.
Читать дальше →

Металлизация алмаза: превращение изолятора в полупроводник

Reading time10 min
Views6.3K


Преобразование одного вещества в другое, изменение свойств материала под собственные нужды, трансформация материи. Все эти действия сочли бы за колдовство и ересь буквально пару сотен лет назад. Сейчас же это вполне обыденные процессы, которые можно наблюдать в современных лабораториях. Однако есть нечто, что сделать по факту нереально или, как минимум, крайне сложно. В рассматриваемом нами сегодня исследовании ученые из МТИ (Массачусетский технологический институт, США) решили радикально изменить электрические свойства алмаза, превратив его из диэлектрика в проводник. Как это было достигнуто, каковы характеристики алмаза-проводника, и где может пригодиться подобная разработка? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →

Гальваническая развязка. Кто, если не оптрон?

Reading time7 min
Views150K

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

Статья под катом посвящена различным способам гальванической развязки цифровых сигналов. Расскажем зачем оно вообще нужно и как производители реализуют изоляционный барьер «внутри» современных микросхем.
Читать дальше →

Реверс-инжиниринг TL431, крайне распространенной микросхемы, о которой вы и не слышали

Reading time14 min
Views111K
Кен, как и планировал, провёл реверс-инжиниринг микросхемы по фотографиям, сделанным BarsMonster. Барс в статье упомянул своё общение с Кеном, но этой переводимой статьи тогда еще не было.

Фото кристалла интересной, но малоизвестной, микросхемы TL431, используемой в блоках питания, даёт возможность разобраться в том, как аналоговые схемы реализуются в кремнии. Несмотря на то, что схема на фото выглядит как какой-то лабиринт, сама микросхема относительно проста, и может быть исследована без большого труда. В своей статье я попытаюсь объяснить каким образом транзисторы, резисторы и другие радиодетали запакованы в кремний для выполнения своих функций.


Фото кристалла TL431. Оригинал Zeptobars.
Читать дальше →

IDA Pro и техники реверс-инжиниринга

Reading time27 min
Views121K

0x00 start


; {EN} entry point, do nothing, just run _main {EN}


Статья для начинающих “воинов тьмы”, тех, кто хочет погрузиться в темную сторону силы: реверс-инжиниринг. На нашем “операционном столе” будет небольшой кустарный сервер, который работает по протоколу TCP/IP. Для анализа протокола обмена данными нам поможет стандарт де-факто в области реверса — IDA Pro.


Статей по реверс-инжинирингу и по IDA Pro уже написано немало (хотя и не столько, как по PHP), но поскольку процесс реверса — исследовательский, то мысли, как с "другого боку" подойти к задаче обратной разработки, полезны новичкам. По крайней мере, как автор, я руководствовался тем, чтобы изложить основные практики и техники, о которых говорю в первые дни всем стажерам и на первых парах курса по реверс-инжинирингу в университете.


Чего не будет в статье?

Поиска уязвимостей и разработки эксплоитов для Google Chrome или Apple iPhone… Поэтому если вы исследователь со стажем и с большим количеством CVE на счету, маловероятно, что вы найдете для себя что-то новое.



"Once you start down the dark path, forever will it dominate your destiny".

Читать дальше →

Проводим моделирование системы для проверки работоспособности головы USB-анализатора

Reading time7 min
Views1.4K
В прошлых статьях мы прошли достаточно большой путь к созданию шинного анализатора USB. Мы разработали логический анализатор, набив руку на самой технологии, дальше – разработали голову USB-анализатора. Затем – выяснили, что код получился сложным, так что его следует отмоделировать. Но вот беда, доступная модель микросхемы ULPI разработана на языке SystemC. Мы научились работать с этим языком. Наконец-то, мы владеем всеми необходимыми навыками и готовы провести проверку нашего ядра. Приступаем!



Читать дальше →

Практические опыты с USB-анализатором на базе Redd

Reading time18 min
Views3.3K
Три статьи назад мы сделали голову для шинного анализатора USB, после чего – обсуждали вопросы моделирования и гоняли эту голову на моделях. Правда, всё это было не зря. В прошлой статье я показательно нашёл пару сбоев логики, а в реальности их было чуть больше. Поэтому, начни я всё проверять сразу в железе — сидел бы и сокрушался: «А чего оно так себя ведёт?» Теперь же я уверен, что в поведенческой модели вся логика делает именно то, что было задумано. Что дальше? Те, кто делает серьёзные большие проекты, дальше переходят к моделированию синтезированной модели, а в конце — модели, привязанной к реальной топологии упаковки в ПЛИС (так называемое Gate-Level моделирование). Там уже учитываются задержки на всех трассировочных ресурсах при именно этом результате компиляции. Но проект нашей сложности этого не требует. Нам было достаточно убедиться, что вся логика реализована верно. И теперь мы можем перейти к сборке реального анализатора и проверке его работы на практике.


Читать дальше →

The Kernel-Bridge Framework: мостик в Ring0

Reading time7 min
Views9.7K
Хотели ли Вы когда-нибудь заглянуть под капот операционной системы, посмотреть на внутреннее устройство её механизмов, покрутить винтики и посмотреть на открывшиеся возможности? Возможно, даже хотели поработать напрямую с железом, но считали, что драйвера — rocketscience?

Предлагаю вместе пройтись по мостику в ядро и посмотреть, насколько глубока кроличья нора.

Итак, представляю драйвер-фреймворк для kernel-хакинга, написанный на C++17, и призванный, по возможности, снять барьеры между ядром и юзермодом или максимально сгладить их присутствие. А также, набор юзермодных и ядерных API и обёрток для быстрой и удобной разработки в Ring0 как для новичков, так и для продвинутых программистов.

Основные возможности:

  • Доступ к портам ввода-вывода, а также проброс инструкций in, out, cli и sti в юзермод через IOPL
  • Обёртки над системной пищалкой
  • Доступ к MSR (Model-Specific Registers)
  • Набор функций для доступа к юзермодной памяти других процессов и к памяти ядра
  • Работа с физической памятью, DMI/SMBIOS
  • Создание юзермодных и ядерных потоков, доставка APC
  • Юзермодные Ob*** и Ps***-каллбэки и фильтры файловой системы
  • Загрузка неподписанных драйверов и ядерных библиотек

… и многое другое.
Читать дальше →

Написание собственного неплохого менеджера памяти

Reading time4 min
Views16K
Доброе время суток, читатель. Возможно, вы уже читали мои предыдущие статьи, и знаете, что я занимаюсь написанием собственной ОС. Сегодня мы поговорим, и рассмотрим несложный и достаточно быстрый алгоритм для управления памятью — менеджер памяти — критически важная часть ОС, ведь быстрая, надежная и нерастратная работа с памятью залог хорошей ОС.
Искал я несложные и адекватные идеи для менеджера и в рунете, и на англоязычных сайтах — всё никак не мог найти никаких хороших статей про адекватный, работающий не за O(N) аллокатор. Что же, сегодня мы рассмотрим более хорошую идею для менеджера памяти, продолжение помещаю под кат.
Читать дальше →

Реверс-инжиниринг. История. Моя

Reading time9 min
Views53K


Всем привет,


На этот раз статья будет не технической (хотя в ней и будут попадаться какие-то технические термины/моменты), а скорее автобиографической, если так можно выразиться. Эта статья о том, как я докатился до такой жизни пришёл в реверс-инжиниринг, что читал, чем интересовался, где применял, и т.д. И, я почему-то уверен, что моя история будет иметь множество отличий от твоей. Поехали…

Читать дальше →

Proteus и два с половиной hello world для UART и USB на микроконтроллере

Reading time11 min
Views74K
Недавно разгребал папки на Dropbox и наткнулся на свои первые поделки. Когда делал первые шаги с микроконтроллерами, почти сразу меня стали посещать мысли и идеи об управлении моими поделками с ПК, либо каким-либо образом с этим самым ПК общаться. Это казалось увлекательным и «серьезным». Сейчас я стараюсь все сразу тестировать в железе, но в начале наступать на грабли и стрелять себе в ногу хотелось безболезненно и быстро. В этом мне неизменно помогал Proteus. Десятки раз пересобирая проекты было важно, чтобы можно было экспериментировать с комфортом, если так можно сказать. Это потом я уже купил фирменную отладку и что в Proteus, что в железе — все стало одинаково быстро.
В первую очередь мне хотелось попробовать UART и USB, а потом уже и Ethernet. Каждому желанию я придумывал свой «проект». Многие идеи так и остались в виде проекта для Proteus — идея надоедала сразу после реализации программной части.
Надеюсь, данный пост поможет всем, кто хотел попробовать сделать свое USB устройство или просто увидеть, что это все не так сложно; более того, мне хотелось, чтобы можно было попробовать сразу в симуляторе. Рассказать как новичок для новичка — чтобы захотелось открыть гугл и начать читать, чтобы сделать больше, узнать лучше.
Я не буду рассказывать о регистрах, режимах. Я сомневаюсь, что это поможет зажечь огонь в глазах. Возможно, кто-то захочет сделать что-то полезное для себя и у простых примеров больше шансов затянуть в это крайне увлекательное творчество (а для меня уже практически наркотик). А прежде чем бежать на ebay или начинать считать дни с момента отправки отладочной платы из Китая, можно попробовать свои силы в виртуальном микроконтроллере.
Я хотел бы попробовать сделать два своеобразных hello world проекта, которые, тем ни менее, не сильно сложнее стандартного LED blinking. Под катом много изображений.
Читать дальше →

Как математический «фокус» спас физику частиц

Reading time7 min
Views11K

Перенормировка, возможно, оказалась самым важным прорывом в теоретической физике за последние 50 лет



Не нужно анализировать поведение отдельных молекул воды, чтобы понять поведение капель, или анализировать капли, чтобы понять волны. Возможность переключать фокус между разными масштабами – это и есть суть перенормировки

В 1940-х годах физики-первопроходцы наткнулись на новый слой реальности. Место частиц заняли поля – всеобъемлющие и волнующиеся сущности, заполнявшие всё пространство на манер океана. Одна небольшая рябь в таком поле могла обозначать электрон, другая – фотон, а их взаимодействия, судя по всему, могли объяснить все электромагнитные явления.

Была только одна проблема – вся эта теория держалась на надеждах и молитвах. Только при помощи такой техники, как "перенормировка", позволявшей тщательно скрывать бесконечные величины, исследователи могли обойти бессмысленные предсказания этой теории. Схема работала, но даже те, кто разрабатывал эту теорию, подозревали, что она может оказаться карточным домиком, держащимся за счёт извращённого математического трюка.
Читать дальше →

Как процессор 8086 работает с питанием и сигналами тактовой частоты

Reading time11 min
Views6.5K
Одна из недооценённых характеристик ранних микропроцессоров – сложность в распределении питания внутри интегральной схемы. У современного процессора может быть 15 слоёв металла с проводниками, но у чипов из 1970-х, например, у 8086, был всего один металлический слой, из-за чего разводка проводников представляла собой проблему. Сигналы тактовой частоты (синхросигналы) тоже нужно доводить до всех частей чипа, чтобы все они работали синхронно.

На фото ниже показан кристалл 8086 под микроскопом. Виден металлический слой сверху чипа, под которым прячутся кремниевая подложка и поликремниевый слой с проводниками. По периметру кристалла снаружи крохотная проволочная разварка соединяет площадки кристалла с внешними ногами. У 8086 площадка питания расположена сверху, а площадки земли – сверху и снизу. У каждой из них есть два проводка проволочной разварки, что удваивает величину поддерживаемого тока. Видны широкие металлические дорожки, идущие от площадок питания и земли. Они распределяют питание по чипу.
Читать дальше →

Трансивер UART для 8-битного компьютера на макетной плате

Reading time7 min
Views6.7K
В последнее время мне всё больше нравится собирать 8-битные компьютеры из ТТЛ чипов. Я вдохновился замечательными роликами Бена Итера с ютуба, а также различными проектами с сайта Hackaday. В процессе проектирования и сборки собственного 8-битного компьютера я задумался над тем, насколько сложно было бы реализовать UART-трансивер на базе ИС серии 7400.


Итоговая схема: готовый UART-трансивер, собранный из ИС серии 7400

В первую очередь разберёмся, что такое UART. Это универсальный асинхронный приёмопередатчик – простой протокол, позволяющий асинхронно отправлять и получать 8-битные данные, благодаря чему процессор или компьютер могут общаться с внешним миром. Это и само по себе полезно – мой 8-битный компьютер может общаться с ноутбуком и использовать программу для мониторинга последовательного порта (типа putty) в качестве интерфейса для ввода и вывода текста. Что ещё интереснее, я могу запрограммировать загрузчик ОС для своего 8-битного компьютера, а потом программировать его через UART соединение с ноутбука! Поскольку Bluetooth модули типа HC-05, по сути, общаются с CPU через UART, я даже могу использовать Bluetooth модуль для программирования своего 8-битного компьютера на расстоянии! Это было бы очень круто.
Читать дальше →

Физика радиационных эффектов, влияющих на электронику в космосе

Reading time14 min
Views291K
Технологический процесс с проектными нормами 32 нм.
Два ядра ARMv7 с тактовой частотой 1,3 ГГц
Оперативная память – 1 Гбайт.


Технологический процесс с проектными нормами 150 нм.
Одно ядро PowerPC с тактовой частотой 200 МГц.
Оперативная память – 256 Мбайт.


Сверху – параметры центрального процессора iPhone5, внизу – марсохода Curiosity. Бортовой компьютер марсохода стоит приблизительно в двести раз дороже нового айфона. Почему так? Центральный процессор космического аппарата должен быть устойчивым к воздействию радиации. На Хабре уже была хорошая обзорная статья о космической электронике, а я постараюсь подробнее рассказать о физических принципах и эффектах, стоящих за сбоями и отказами в космосе.
Читать дальше →

Алгоритмы поиска простых чисел

Reading time6 min
Views202K
«Самое большое простое число 232582657-1. И я с гордостью утверждаю, что запомнил все его цифры… в двоичной форме».
Карл Померанс

Натуральное число называется простым, если оно имеет только два различных делителя: единицу и само себя. Задача поиска простых чисел не дает покоя математикам уже очень давно. Долгое время прямого практического применения эта проблема не имела, но все изменилось с появлением криптографии с открытым ключом. В этой заметке рассматривается несколько способов поиска простых чисел, как представляющих исключительно академический интерес, так и применяемых сегодня в криптографии.
Читать дальше →

Что нужно запомнить программисту, переходящему на Python

Reading time11 min
Views52K

Когда-то давно, в студенческие годы, меня укусил питон, правда инкубационный период затянулся и получилось так, что я стал программистом на перле.


Однако в какой-то момент перл исчерпал себя и я решил заняться питоном, сначала просто делал что-то и разбирался с тем, что нужно для данной задачи, а потом понял, что нужны какие-то систематизированные знания и прочитал несколько книг:


  • Билл Любанович «Простой Python. Современный стиль программирования»
  • Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
  • Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»

Которые мне показались вполне подходящими для понимания основных тонкостей языка, хотя не помню, чтобы в них упоминалось про slots, но и не уверен, что это реально нужная фича — если уже по памяти прижало, то скорее всего одного этого способа будет недостаточно, но конечно это всё зависит от ситуации.


В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.

Читать дальше →

GPU NVIDIA позволят проводить операции на работающем сердце

Reading time1 min
Views27K
Скоро для операции на сердце — не будет нужды его останавливать и вскрывать грудную клетку пациента. Операцию будет производить хирург с помощью манипуляторов, подведенных к сердцу через небольшие проколы в груди пациента. Микрокамеры в реальном времени оцифровывают бьющееся сердце, строя его трёхмерную модель, а специальные алгоритмы предсказывают следующее положение области интереса сердца, и манипулятор следует вслед за ней — хирург работает в сопровождающей системе координат, в которой сердце неподвижно. Такой огромный поток данных невозможно обработать на обычных процессорах, но по словам разработчиков — производительности видеокарт хватает для обеспечения нужной скорости обработки информации.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity