TGViewer
Channel Public Channel
С первой ревизии

С первой ревизии

@hardware_design

Вместе стремимся к идеалу в разработке электроники.
Рассказываю про схемотехнику, топологию и архитектуру сложных систем.
Subscribers
1.11K
Photos
128
Videos
1
Links
69

Showing posts older than #50 · Back to latest

Older Posts 12 shown
Post #49 378
Поговорим про Flash - память.
Картинки в посте ниже.

Эти микросхемы давно стали базовым компонентами плат, присутствуют буквально в каждой схеме и имеет простой интерфейс взаимодействия (чаще всего SPI). Довольно простой компонент, количество ног которого не превышает 16. Однако внутреннее устройство flash - памяти совсем не тривиально.

Базовой ячейкой, хранящей информацию является транзистор с плавающим затвором (картинка 1). В зависимости от заряда, хранимого в затворе, изменяется проводимость канала транзистора.
Один транзистор может хранить от 1 до 4 битов информации (картинка 2).
Чаще всего используется архитектура NAND, поскольку она позволяет получить больше битов при меньшем используемом пространстве кристалла. Сравнение NAND и NOR на картинке 3, реализации в кремнии на картинке 4.

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

1. Для программирования транзистора требуется приложить напряжение до 26 В к изолированному плавающему затвору. Это необходимо чтобы заряды туннелировали в затвор (картинка 5). Для этого требуется создать на кристалле дополнительный источник питания, формирующий высокое напряжения из стандартных 1.8/3.3 В.

2. При программировании конкретного бита, за счет паразитной емкостной связи между затворами транзисторов, заряд может проникать в соседние транзисторы (картинка 6). Называется данный эффект program disturb, его негативное влияние растет с ростом уровней памяти (TLC, MLC), поскольку размер зон сужается и биты становятся ближе друг к другу (картинка 7). Борются с проблемой методиками записи, позволяющими минимизировать воздействие на соседние ячейки (картинка 8). Также при чтении может дополнительно применяться NAC (Neighbor cell assisted correction), read retry. Данные процедуры, позволяют оценивать значение соседних битов и варьировать напряжение, прикладываемое к затвору для считывания бита.

3. Утечка заряда из затвора. Со временем, после множества циклов перезаписи, диэлектрик деградирует, что создает небольшой ток утечки из затвора. Вскоре, может оказаться, что из затвора утекло достаточно заряда, чтобы хранимое в ячейке значение измелилось на соседнее. Для решения проблемы применяются различные методы адаптивного считывания, например, read retry. Кроме того, заряд в затворе регулярно обновляется контроллером памяти.

4. В ходе работы некоторые фрагменты блоков памяти оказываются недействительными. Контроллер может очистить только целый блок, но т.к. в том же блоке хранятся и полезные данные, очистить его невозможно. Память расходуется бесполезно. Для переноса полезных данных в другое место и очистки блока с недействительными данными был придуман механизм garbage collection.

5. Ячейки памяти используются с разной частотой, что приводит к большему износу одних, по сравнению с другими, потенциально это может привести к отказу изношенных ячеек. Чтобы это предотвратить был создан механизм wear leveling, позволяющий уравновесить износ ячеек путем более частой записи в менее изношенные ячейки.

6. Некоторые ячейки памяти все таки выходят из строя, нарушая работу памяти. Чтобы выход из строя ячеек оказывал минимальное влияние на работоспособность памяти (вплоть до критического момента) был создан механизм ECC. Существуют различные вариации ЕСС, который может быть реализован как дополнительная ячейка/блок/страница (рисунок 9), так и при передаче данных наряду с CRC (рисунок 10).

Исходя из всего сказанного, можно сделать вывод, что микросхема
flash - памяти не такая уж и простая вещь. Технологии совершенствуются с каждым годом, создавая новые механизмы обеспечения надежности и долговечности памяти с ростом ее объема.
  • 👍 5
  • ❤ 1
Post #48 417
А слышали ли вы о предохранителе, построенном на полевых транзисторах, с временем реакции в 1мкс и способным восстанавливаться после сброса напряжения до 0?

TBU (Transient blocking unit) технология, запатентованная Bourns. Предохранитель срабатывает за микросекунду, разрывая цепь и блокируя напряжение вплоть до 6кВ. Предохранитель может восстанавливаться практически бесконечно. Применений очень много, регулярно использую его в таких интерфейсах как CAN, RS (серию без выводов питания).
  • 🔥 7
  • 👍 2
Post #47 368
Post #46 307
Неожиданно наткнулся на Российские туннельные диоды. Книга издана в 2020 году Cambridge press, авторы знаменитые Хоровиц и Хилл
  • 👍 8
  • 😁 4
  • 🫡 3
Post #45 320
Очень интересная статья с design con про построение современных систем 800G для HPC. Авторы затрагивают немного теории, архитектуру и SI с измерениями реального образца
  • 🤔 4
  • 👍 1
Post #44 325
https://www.electronicdesign.com/technologies/embedded/article/21280074/electronic-design-whats-the-difference-between-the-nanosheet-fet-and-finfet

Нашел занимательную статью про новую технологию транзисторов nanosheet, которая прийдет на замену finfet.
Она потенциально позволит продолжить снижение размера транзистора.
  • 👍 3
  • ❤ 2
Post #43 305
По поводу вчерашней задачи.

Я рассуждал следующим образом:

a) Вначале объявлено, что PORTION = 1, соотвественно цикл будет исполнен 1 раз.
base кратно 8, значит запись происходит по 8 байт.
По формуле из задачи количество циклов при сквозной записи будет:
10+5*(8/8-1) = 10

b) Сказано, что при write back политике происходит запись целого слова (32 байта), количество циклов:
10+5*(32/8-1) = 25

c) Ответ из пункта а умножается на 8, количество циклов равно 80

d) Поскольку затраты на write back составляют 25 циклов, а write through 10, требуется 3 обновления 3*10 > 25

e) Думаю write through будет выигрывать если у кэша буду происходить постоянные промахи. Но тк обычно промахи составляют не больше 10-15% write back чаще всего выиграет
  • 👍 3
  • 💯 1
Post #37 287
  • 👍 3
  • 🤩 1
Post #36 375
Почему мой источник создает пульсации сильно больше ожидаемых?
Картинке в посте ниже

Предположим ситуацию: вы взяли готовую микросхему со встроенными ключами, рассчитали выходной фильтр, включили, а пульсации напряжения превышают расчет в 10 раз. Отметем вариант неверного расчета и подбора компонентов и перейдем к типичному поведению контроллеров.

Увеличение пульсаций на выходе, скорее всего, будет означать что вы не нагрузили достаточно источник. Поэтому ток в индукторе (который вы рассчитали на полную нагрузку) спадает до 0. В этом случае источник переходит в режим прерывистого тока (DCM), или, что чаще, в режим pulse skipping или burst. Переход в последние более вероятен, поскольку современные контроллеры стараются делать энергоэффективными. Важно отметить, что частота пульсаций при это будет ниже рабочей частоты источника (картинка 1).

Pulse skipping
Классический режим современных источников. Контроллер пропускает импульсы, тем самым стабилизируя выход на нужном напряжении и обеспечивая нагрузку при малом токе (картинка 2).

Burst mode

Запатентованная технология Analog devices. Идея состоит в том, что источник посылает импульс, достаточный для обеспечения нагрузки необходимым током и далее засыпает. Выход из сна происходит в момент, когда срабатывает компаратор.(картинка 3).

Отличие данных режимов заключается в энергоэффективности и в уровне пульсаций. Burst mode более энергоэффективен, поскольку внутреннему драйверу не требуется тратить ток на переключение в течении долгого периода, контроллер также не потребляет энергию, уходя в сон. (картинка 4). В Pulse skipping контроллер работает на части периода, потребляя больше энергии. Плюсом Pulse skipping является меньшие пульсации напряжения за счет нескольких циклов передачи энергии, которые легче сгладить фильтру (картинка 5).

В любом случае пульсации вашего источника в данных режимах будут значительно больше чем в стандартном CCM (картинка 6).
  • 👍 4
  • 🙈 1
Post #29 304
Интересная задача на сравнение write-through против write-back. Эту тему я мельком затрагивал в статье выше про кэш:
В случае write through данные записываются в соответствующий кэш и в кэш уровнем ниже. При такой политике проще сохранить когерентность (о которой ниже), но она требует больших временных затрат. При политике write back данные записываются только в кэш, только когда блок с данными заменяется, он записывается в основную память. Данная политика выиграет во времени при редких промахах (снижает дополнительных затрат на запись), но увеличивает риски потери данных, например при отключении питания.

Ответ я не знаю, но позже напишу свои мысли, может у кого есть идеи? 🧐
  • ❤ 2
  • 🤯 1
Post #24 298
Иногда пассивный эквалайзер может спасти ваш глаз.
Весь фокус заключается в том, что вы уменьшаете амплитуду сигнала на низкой частоте, но открываете за счет этого глаз на высокой. А помогают нам в этом любимые нули передаточной функции.
Единственный минус, что не каждый интерфейс позволит вам занижать амплитуду сигнала. Но если у вас большой запас по уровню единицы, такая схема выглядит интересно.
  • 🔥 3
  • 🤔 2
  • ❤ 1
  • 😍 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →