Схемотехника процессора: Структурная схема процессора — Информатика, информационные технологии
|
Новостная лента
|
|
Устройство материнской платы компьютера: схема и компоненты
Современные материнские платы состоят из множества различных компонентов. Устройство материнской платы компьютера таково, что она содержит в себе: транзисторы (мосфеты), клокеры, резисторы, электролитические и керамические конденсаторы, диоды, катушки индуктивности, а также различные микрочипы, которые припаиваются непосредственно к материнской плате.
Сама же материнская плата (мать) представляет из себя кусок многослойного текстолита, на котором тончайшим слоем нанесены дорожки (проводники). Слои в нем располагаются примерно так же, как этажи в многоэтажных домах, а их количество может достигать от 10 до 15.
Мосфеты необходимы для усиления, генерации и преобразования электрических сигналов. Резисторы нужны для создания в электрической цепи сопротивления, обеспечивая тем самым регулирование электрической энергии между элементами материнской платы. Клокеры необходимы для формирования тактовых частот, используемых на материнской плате и в процессоре. Конденсаторы нужны для выравнивания напряжения или блокировки тока в цепи.
Они (конденсаторы) имеют свойство выходить из строя и буквально вздуваться. И, наконец, катушка (дроссель) — используется для смягчения скачков тока при запуске, очень часто дросселя располагают возле сокета процессора. Все остальные компоненты материнской платы условно можно разделить на группы:
- Разнообразные порты для подключения как внутренних устройств (сокет процессора, слоты ОЗУ, слоты видеокарты), так и внешних — жестких дисков, оптических приводов, USB накопителей.
- Разъемы питания: процессора, вентиляторов. На самой материнке есть самый главный 24-pin порт питания, по которому она получает питание от БП.
- Разъемы на задней «стенке» системного блока, это аж целый блок портов для подключения устройств «ввода-вывода»: монитора, принтера, мышек, клавиатуры, динамиков, сетевого кабеля и др.
- Радиаторы и трубки охлаждения.
- Перемычки (управляющие штырьки), генераторы тактовых частот (клокеры) и батарейка, чипы (BIOS, аудиочип и др.). К чипам еще можно отнести северный и южный «мосты», или по-другому — чипсет.
Изображение кликабельно
Итак, перед вами схема материнской платы. Начнем, пожалуй, с чипсета. А состоит он из двух компонентов: южного моста и северного моста. Этим специфическим термином «мост» — обозначается набор микросхем, которые отвечают за работу всех компонентов материнской платы и их связи с процессором. Чипсет не случайно делится на две составляющие: северную и южную, ведь на них возлагаются принципиально разные задачи.
К примеру, северный мост далеко не просто так называется, а именно из-за своего положения, относительно центра материнской платы. Северный мост всегда находится ближе к процессору (а в современных пк он вообще уже встроен в сам процессор, Начиная с процессоров на базе архитектур Intel Nehalem и AMD Sledgehammer) и обеспечивает связь между ним, оперативной памятью и графическим ускорителем (видеокартой).
Южный же — отвечает за работу всех периферийных устройств, включая принтер, сканер, флеш-накопители, внешние жесткие диски и т.п.). А также делает возможной работу: базовой системы «ввода-вывода» (BIOS), аудиочипа и интернета. Между собой северный и южный мосты также «общаются» по определенному протоколу. А сам чипсет связывается с процессором по следующим интерфейсам: FSB, DMI, HyperTransport, QPI.
Подробнее о чипсете я уже писал в одной из своих предыдущих статей, а именно вот здесь.
Чуть правее чипсета располагается процессорный сокет, обратите внимание на скопление тех самых катушек (дросселей), которые, как уже упоминалось выше, производитель старается расположить поближе к процессору. С чем конкретно это связано утверждать не берусь, но если кто в комментариях напишет свою версию — буду признателен (неправильные ответы тоже принимаются).
А еще обратите внимание на обилие радиаторов охлаждения, один расположен прямо над процессорным сокетом, а два других — на северном и южном мостах. Это действительно необходимость, ведь в процессе работы некоторые зоны материнской платы нагреваются очень ощутимо, а без должного охлаждения пайка, например, на южном мосту может разрушиться и наш южный мост уйдет в свободное плавание, или, того хуже — просто сгорит. Кроме того, на процессор обычно ставится кулер, у которого тоже есть свой отдельный радиатор, эффективно отводящий тепло.
Система охлаждения материнской платы может быть представлена не только в виде обычного радиатора, но и в виде жидкостного охлаждения с подводящими трубками + радиаторы, как на фото выше
Процессор питается от материнской платы через специальный 4-х пиновый разъем (на схеме он обозначен как «P4»), а сама материнка — через 24-х пиновый разъем, на фото он находится в самом низу. Также, энергия требуется и различным вентиляторам и кулерам, которых может быть больше 3. Процессорный кулер подключается через 4-х контактный разъем, который расположен ближе всего к сокету. Остальные вентиляторы запитываются от 3-х контактных разъемов, которые «натыканы» по всей плате.
Если перевести взгляд в левый нижний угол — можно увидеть небольшую круглую батарейку, без которой все настройки BIOSа, в том числе текущее время и дата, будут удалены. Срок службы такой батарейки редко превышает порог в 7 лет, иными словами, если вы на своем компьютере обнаружили подобную проблему (каждый раз при включении сбивается время и дата), первым делом поменяйте батарейку, благо стоит она совсем не дорого и найти ее можно практически в любом компьютерном магазине.
Также, по всей материнской плате размещены всевозможные интегральные микросхемы, к ним можно отнести:
- Аудио-чип
- Контроллеры портов (1394 и SATA)
- Super I/O чип
- FirmWare Hub (FWH) чип
- Чипсет для беспроводных сетей
Для любых портов должен быть предусмотрен свой контроллер, иначе они не будут работать. Контроллера USB-портов на схеме не видно, просто потому, что он встроен в южный мост, как вы уже могли догадаться. FWH отвечает за работу BIOS. А вот с чипом Super I/O не все так просто. Он выполняет целый ряд функций, в нем находятся: контроллер флоппи-дисков (которые «конкретно» устарели и ныне не используются), датчик температуры и скорости вращения вентилятора (кулера), а еще он отвечает за инфракрасный порт и клавиатуру с мышью, только не usb, а ps/2. Найти чип Super I/O на материнке можно по названию производителя, в частности: Fintek, ITE, National Semiconductor, Nuvoton, SMSC, VIA, и Winbond.
Порт 1394 (он же FireWire) используется для подключения различных мультимедийных устройств, например ip-камер, и является значительно более быстрым, нежели usb. Про разъемы (гнезда) задней панели рассказывать тут не вижу смысла, ибо это тема отдельной статьи (а эта и так уже получилась большая), ну а про другие порты, такие как: ATA(IDE), SATA я уже упоминал в статье под названием «интерфейсы жесткого диска», рекомендую к прочтению.
Перемычки, они же переключатели, они же джамперы (Jumpers) — выполняют сразу несколько задач. С помощью них вы можете запустить аварийное восстановление биоса, переключить и настроить звуковой чип, выполнить сброс настроек биоса и многое другое. Все зависит от конкретного производителя материнки. Если речь идет о игровых моделях, в них могут встречаться джамперы, позволяющие «разгонять» ОЗУ или саму материнскую плату, менять приоритеты загрузки жестких дисков и т.д. Как-нибудь я постараюсь рассказать об этом подробнее (но уже не в этой статье).
Ну и пару слов про так называемую «FPanel», или по-другому разъемы передней панели. На схеме они обозначены как «коннекторы фронтальной панели». На фото вы можете видеть провода с колодками, которые как раз подключаются к этим штырькам на материнской плате. Однако, тут важно соблюсти определенную последовательность подключения, иначе все кнопки и индикаторы не будут работать. А что вообще туда подключается? А вот что: кнопка подачи питания и перезагрузки компьютера, индикатор загруженности жесткого диска, встроенный динамик (пищалка).
Опять же, для каждой платы может быть своя последовательность и полярность подключения, все это, как правило, в обязательном порядке указывается на первых страницах инструкции к вашей материнской плате. Если такой инструкции у вас нет, или вы покупали мат. плату с рук — попробуйте найти ее в интернете. Конкретно для платы ASUS P5AD2-E, рассматриваемой в данной статье, последовательность такая:
Изображение кликабельно
Регулятор напряжения питания процессора материнских плат: развенчиваем миф об усиленных фазах | by ASUS Russia
Регулятор напряжения питания процессора материнских плат: развенчиваем миф об усиленных фазах
Очень часто при обсуждении статьей по материнским платам приходится сталкиваться с комментариями, что плата полный отстой, потому что в VRM-модуле процессора фазы питания не настоящие. И даже уважаемые авторы, которые обозревают материнские платы в авторитетных изданиях, иногда несут всякую чушь, обнаружив, что на плате нет привычных удвоителей фаз питания, высказывают довольно странные мысли. Совсем недавно, наткнулся на одном известном и уважаемом ресурсе на обзор платы ROG Maximus XI Extreme (Intel Z390) от компании ASUS, где автор пишет следующее: “Удвоителей фаз на плате нет, поэтому сразу приходит мысль о традиционной уже для Asus схеме программного управления фазами. Asus декларирует новый подход к системе питания, используя свои «умные» контроллеры“. Ну и далее фэнтези в том же духе, которые не хочется повторять.
Собственно, именно это и побудило написать данный пост. Давайте разберемся что же скрывается за новым подходом ASUS к системе питания и чем лучше/хуже традиционного.
Начну с небольшого экскурса. В дальнейшем, буду предполагать, что читатель имеет базовые знания относительно VRM-модуля, поэтому лишь вкратце напомню основные моменты. Тем более, что подробных видео и статей на эту тему более чем достаточно.
Итак, VRM (Voltage Regulation Module) — это импульсный регулятор напряжения питания, который преобразует напряжение 12 В от блока питания в напряжение питания процессора (порядка 1 В). Такие регуляторы называют также DC-DC buck converter.
Простейший импульсный понижающий преобразователь напряжения питания состоит из нескольких обязательных элементов. Это управляющий PWM-контроллер (ШИМ-контроллер), MOSFET-драйверы, MOSFET-транзисторы (верхний и нижний) и сглаживающий LC-фильтр. PWM-контроллер формирует последовательность прямоугольных управляющих импульсов напряжения, которые, через драйвер, управляют включением и выключением электронных ключей. Ключи подключают/отключают нагрузку (в нашем случае процессор) к шине 12 В, делая это с огромной скоростью. Однако, этого недостаточно, поскольку напряжение на нагрузке должно быть не импульсным, а постоянным (на сколько это возможно). Поэтому, используется еще и LC-фильтр (емкость + индуктивность) который сглаживает импульсы напряжения, усредняя их до нужной величины. Упрощенная схема однофазного (одноканального) регулятора напряжения питания показана на рис. 1.
Рис. 1 Упрощенная схема однофазного регулятора напряжения питания (Buck converter)
При неизмененном значении индуктивности и емкости, а также при неизменном значении периода следования PWM-импульсов, усредненное значение напряжение на выходе такой схемы будет зависеть от длительности PWM-импульсов. То есть, меняя длительность PWM импульсов (меняя скважность), можно менять напряжение на нагрузке от 0 до 12 В!
Понятно, что выходное напряжение, полученное таким образом, будет иметь пульсации. Теоретически, если поставить в схему конденсатор бесконечной емкости, то пульсацией не будет, но таких конденсаторов не бывает. Однако, чем больше емкость в сглаживающем фильтре, тем меньше пульсация напряжения. Кроме того, снизить пульсацию можно также увеличивая индуктивность дросселя, однако, тут зависимость не столь очевидна и изменение индуктивности в большей степени приводит к изменение среднего значения выходного напряжения. Есть и еще один способ уменьшения пульсаций — увеличение частоты PWM-импульсов. Но и тут есть свои ограничения, поскольку частота должны быть согласована с возможностями электронного ключа. И чем больший ток может пропустить через себя ключ, тем ниже частота его переключения.
В PWM-контроллерах, которые сегодня используются на материнских платах, частота составляет от сотен килогерц, до нескольких мегагерц.
Теперь чуть подробнее о самом электронном ключе. В схемах питания таких ключей всегда два (верхний и нижний) и они всегда находятся в противофазе (один замкнут, другой разомкнут). В качестве таких ключей используются силовые MOSFET-транзисторы, которые могут находится лишь в двух состояниях: открытый (ключ замкнут) или закрытый (ключ разомкнут). Для управления переключениями MOSFET-транзисторов управляющие сигналы подаются на затворы этих транзисторов. Управляющий сигнал PWM-контроллера используется для того, чтобы переключать MOSFET-транзисторы, однако этот сигнал подается не непосредственно на затворы транзисторов, а через специальную микросхему, называемую драйвером MOSFET-транзисторов. Эта микросхема усиливает сигнал до нужного значения и формирует инверсный сигнал для нижнего MOSET.
И последнее замечание относительно канала питания. Очень часто оба MOSFET-транзистора вместе с драйвером упаковываются в одну микросхему. Можно даже встретить такое название, как DrMOS (Driver+MOSFETs). Это как раз чип, объединяющий перечисленные элементы.
И чтобы продемонстрировать все вышеизложенное на примерах, давайте обратимся к простейшей компьютерной симуляции одноканального VRM-модуля и посмотрим, как влияет емкость, индуктивность и частота PWM-контроллера на пульсации выходного напряжения.
На рис. 2 показано изменение амплитуды пульсации выходного напряжения при увеличении частоты PWM с 50 кГц до 100 кГц. При частоте 50 кГц амплитуда пульсаций составляет 22 мВ, а при частоте 100 кГц — 11 мВ, то есть, в два раза меньше.
Рис. 2. Изменение пульсации напряжения при увеличении частоты PWM
На рис. 3 показано изменение амплитуды пульсации выходного напряжения при увеличении емкости сглаживающего конденсатора в два раза: с 10 мкФ до 20 мкФ. И здесь наблюдается аналогичная картина — амплитуда пульсаций уменьшается почти вдвое (с 25 мВ до 12 мВ).
Рис. 3. Изменение пульсации напряжения при увеличении емкости конденсатора
На рис. 4 показано изменение выходного напряжения и амплитуды пульсации выходного напряжения при увеличении индуктивности в десть раз: с 10 мкГн до 100 мкГн. Амплитуда пульсаций уменьшается с 25 мВ до 17 мВ.
Рис. 4. Изменение пульсации и среднего значения выходного напряжения при увеличении индуктивности
3:16
Рассмотренная схема VRM является однофазный (один канал питания). Ее главный недостаток в том, что есть ограничения по максимальному току (соответственно, и по мощности). К примеру, для MOSFET-транзисторов, которые используются в регуляторах напряжения материнских плат, ограничение по току составляет порядка 30–60 A. В то же время, сами процессоры при напряжении питания порядка 1 В и энергопотреблении свыше 100 Вт потребляют ток свыше 100 A. Понятно, что если при такой силе тока использовать однофазный регулятор напряжения питания, то его элементы просто «сгорят».
Другой недостаток однофазного регулятора напряжения питания в том, что невозможно полностью избавиться от нежелательных пульсаций выходного напряжения. Поэтому, на практике используют многофазные регуляторы напряжения питания.
В многофазных регуляторах каждая фаза образована драйвером управления переключениями MOSFET-транзисторов, парой самих MOSFET-транзисторов и сглаживающим LC-фильтром. При этом используется один многоканальный PWM-контроллер, к которому параллельно подключается несколько фаз питания (рис.2).
Рис. 5 Упрощенная схема многофазного регулятора напряжения питания
Применение N-фазного регулятора напряжения питания позволяет распределить ток по всем фазам, а, следовательно, ток, протекающий по каждой фазе, будет в N раз меньше тока нагрузки (в частности, процессора). Однако, если все фазы питания будут работать синхронно, то есть, от всех каналов PWM-контроллера поступает синхронизированная по фазе последовательность импульсов, то это не позволит уменьшить пульсации выходного напряжения. Для демонстрации на рис. 6 показана пульсация напряжения в двухфазном VRM, когда фазы PWM-контроллера синхронны. Точно такие же пульсации будут и в варианте однофазного VRM.
Рис. 6. Пульсации напряжения в двухфазном VRM при синхронных фазах PWM
Для уменьшения пульсации выходного напряжения в многофазных регуляторах каждый канал PWM-контроллера формирует одинаковые последовательности управляющих импульсов, однако, с временным сдвигом друг относительно друга (сдвиг по фазе). Если T — это период PWM-импульсов и используется N фаз, то временной сдвиг по каждой фазе составит T/N. (рис.7)
Рис. 7. Фазы PWM-контроллера c временным сдвигом
Поскольку пульсации выходного напряжения и тока по каждой фазе сдвинуты по временной оси друг относительно друга, суммарные пульсации сглаживаются. На рис. 8 для примера показан двухфазный VRM в варианте с сигналами PWM не сдвинутыми друг относительно друга и в варианте с сигналами PWM сдвинутыми друг относительно друга по фазе на 180 градусов.
Рис. 8. Влияние сдвига фаз на пульсацию напряжения
Собственно, все изложенное выше — это прописные истины, которые всем (кто в теме) известны.
Но, пойдем дальше. На современных материнских платах топового и даже среднего сегмента часто используются 8 фазные PWM-контроллеры. Как правило, эти контроллеры могут иметь различные режимы работы, типа 8+0, 7+1 или 6+2. То есть, фактически, это уже два PWM-контроллера в одном чипе. Две фазы могут использовать для питания графического ядра процессора, а еще шесть — для питания ядер процессора. Но… как показывает практика, на материнских платах используются 10-, 12- или даже 16-фазные VRM. Означает ли это, что используются 16-фазные PWM-контроллеры? Отнюдь. Таких просто не бывает. Не делают PWM-контроллеров с таким числом фаз. Они просто не нужны.
Использую 8-фазный PWM-контроллер можно вполне получить 16 фаз. Честных или Нечестных — это уже для любителей повозмущаться, что их все и на каждом шагу пытаются жестко обмануть.
Есть два способа увеличить количество фаз питания. Первый, классический, способ заключается в использование удвоителей фаз (даблеров). То есть, с каждой фазы PWM-контроллера сигнал подается не на MOSFET-драйвер, а на удвоитель фаз, два выхода которого уже используются для двух фаз (каналов) питания. Тут важно следующее. Выходные фазы удвоителя выдают управляющую последовательность импульсов напряжения с временным сдвигом друг относительно друга. Делается это за счет того, что частота PWM сигнала, поступающего на удвоитель, в два раза выше частоты PWM сигналов, которые снимаются с каждой фазы удвоителя. К примеру, если на вход удвоителя поступает PWM-импульсы с частотой 400 кГц, то на каждом выходе удвоителя частота PWM-импульсов составит 200 кГц. (рис. 4)
Рис. 9. Использование удвоителей фаз питания
Теперь представим себе, что мы имеем 4-фазный PWM-контроллер c частотой 400 кГц, на основе которого реализован 8-фазный VRM через четыре удвоителя. На выходе каждого удвоителя мы получаем PWM-сигналы с частотой 200 Гц. Фактически, схема 8-фазного VRM-модуля на базе 4-фазного PWM контроллера с частотой 400 кГц эквивалентна схеме «честного» 8-фазного VRM-модуля на базе 8-фазного PWM контроллера, но с частотой 200 кГц.
Второй способ удвоения числа фаз питания в VRM-модуле заключается в том, что на каждой фазе PWM-контроллера просто параллельно сажается два канала питания без использования удвоителей. Иногда такой способ называют усиленной фазой. Есть и другие варианты названия в англоязычной литературе, например, Teamed. Такой подход сегодня также используется на материнских платах. К примеру, на платах компании ASUS с чипсетами AMD X570 и Intel Z390 используются именно усиленные фазы питания.
Естественно, возникает вопрос, а что лучше: 16 усиленных фаз питания на восьми фазах PWM-контроллера или же 16 фаз питания на удвоителях через восемь фаз питания PWM-контроллера.
Для простоты посмотрим это в режиме симуляции на примере двухфазного VRM.
Первый вариант — это две «честные» фазы PWM с временным сдвигом, а второй — одна фаза с использованием удвоителя. В режиме «честных» фаз амплитуда пульсаций составляет 6 мВ, а в режиме с удвоителем — 18 мВ. (рис. 10).
Рис. 10. Сравнение амплитуды пульсаций напряжения для «честных» фаз PWM и для удвоителя фаз питания
Теперь рассмотрим вариант двух «честных» фаз PWM с временным сдвигом против усиленной фазы на одном канале PWM. В режиме «честных» фаз амплитуда пульсаций составит 6 мВ, а в режиме усиленной фазы — 26 мВ. (рис. 11).
Рис. 11. Сравнение амплитуды пульсаций напряжения для «честных» фаз PWM и для усиленной фазы питания
Осталось лишь сравнить схему с использованием удвоителя фаз со схемой усиленной фазы питания (рис. 12). В режиме с использованием удвоителя амплитуда пульсаций выходного напряжения будет меньше, чем в режиме усиленной фазы (18 мВ против 26 мВ).
Рис. 12. Сравнение амплитуды пульсаций схемы с удвоителем и схемы с усиленной фазой
То есть, если отталкиваться от пульсации выходного напряжения, то наименьшая пульсация будет в схеме с фазовыми сдвигами PWM импульсов («честные» фазы). Далее идет схема с удвоителями фаз питания и на последнем месте схема с усиленными фазами.
Однако, пульсация напряжения — это лишь одна их характеристик VRM и основываться только на ней было бы неправильно. Тем более, что при современных частотах PWM-контроллеров (до нескольких мегагерц) проблема пульсации выходного напряжения уже не является проблемой при любых схемах VRM.
Ну и кроме того, уж если в компании ASUS, которая имеет 30-летний опыт в производстве материнских плат и является лидеров на этом рынке, решили перейти со схемы удвоителей фаз питания на схему усиленных фаз, то, наверное, тому есть обоснование.
Итак, давайте посмотрим, в чем тут дело. Как я уже отмечал, обычно приводят только один довод в пользу схемы с удвоителями фаз питания в сравнении со схемой усиленных фаз: пульсации напряжения в схеме с удвоителями фаз питания меньше. Это действительно так, и мы уже убедились в этом на примере двухфазной схемы в режиме компьютерной симуляции. В этом же можно убедиться путем измерения в реальных схемах (рис. 13).
Рис. 13. Пульсация напряжения питания для схемы с удвоителями фаз питания и схемы усиленных фаз
Однако, в схеме с усиленными фазами питания пульсация напряжения вполне допустимая (особенно, если учесть частоту PWM-контроллера). А вот по другим показателям более выигрышной является схема с усиленными фазами питания. В частности, такая схем приводит к меньшему нагреву (хотя разница в плане нагрева очень незначительная), что демонстрируется на рис. 14.
Рис.14. Сравнение нагрева для схем с удвоителями фаз питания и усиленных фаз
Кроме того, при эквивалентной эффективности передачи мощности, схема с усиленной фазой оказывается более стабильной по напряжению при изменении частоты фазы. Поясню, о чем идет речь. В схеме с удвоителями фаз питания изменение частоты PWM-импульсов (все PWM-контроллеры имеют рабочий диапазон частоты, которая меняется в зависимости от нагрузки) приводит к увеличению выходной пульсации напряжения. В схеме с усиленной фазой такого эффекта не наблюдается. Это демонстрируется на рис. 15.
Рис. 15. Сравнение изменения пульсаций выходного напряжения при изменении частоты фазы для схем с удвоителями и усиленной фазы.
Итого
Что ж, подведем итог. Во-первых, на современных материнских платах, если это не самый бюджетный сегмент, не встречается «честных» фаз питания, когда каждый канал питания реализован на отдельной фазе PWM-контроллера. Причина проста — нет PWM-контроллеров с числом фаз более восьми, а на платах, как правило, больше каналов питания. Кроме того, просто не нужны PWM-контроллеры с количеством фаз боле восьми, поскольку проблема пульсации напряжения решается увеличением частоты PWM-контроллеров.
Во-вторых, схема с удвоителями фаз питания не только не имеет преимуществ над схемой с усиленными фазами, но и проигрывает ей по ряду факторов. Так что переход компании ASUS на новый дизайн VRM-модулей — это не попытка сэкономить на удвоителях, как пишут некоторые доморощенные эксперты, а попытка улучить качество материнских плат!
P.S. Компьютерная симуляция VRM-схем производилась в бесплатно программе Circuit Simulator 1.2.0, для освоения которой потребуется не более 10 мин.
Процессоры (ЦАП-DAC)
Возможность модернизации для воспроизведения форматов Super Audio CD или 24-бит/96кГц.
Модульность конструкции некоторых цифровых процессоров позволяет относительно легко приспособить их для воспроизведения одного из новых высокоразрешающих цифровых форматов звука.
Как работает ЦАП (DAC)
Приводимая здесь информация адресована тем, кто хочет понять, что происходит внутри этих металлических «монументов» на стойке с вашей аппаратурой. Главные компоненты процессора: источник питания, входной приемник, цифровой фильтр, каскад цифро-аналогового преобразования, преобразователь тока в напряжение и аналоговый выходной каскад.
Входной приемник получает S/PDIF-сигнал от цифрового источника и преобразует последовательный поток данных в необработанные данные цифрового звука. Он также вырабатывает тактовый сигнал по тактовым импульсам, имеющимся в цифровом потоке (более подробно это описано в данной главе ниже). Схема фазовой автоподстройки частоты (ФАПЧ) сравнивает частоту входного сигнала (тактовые импульсы) с опорной частотой (обычно вырабатываемой кварцевым генератором) и создает новый тактовый сигнал, синхронизированный по фазе с тактовыми импульсами входного потока данных. Эти так называемые «восстановленные» тактовые импульсы становятся задающим тактовым сигналом для процессора. Входной приемник является основным источником джиттера в тактовом сигнале и может оказывать большое влияние на то, как звучит процессор. Для минимизации джиттера, создаваемого входным приемником, в последнее время используют двойные системы ФАПЧ и заказные модули с низким значением джиттера. Цифровые данные с входного приемника поступают на цифровой фильтр.
Для того, чтобы подавить паразитные спектры сигнала с центральными частотами, кратными частоте дискретизации, требуется фильтр. Фильтр может создать новые отсчеты сигнала, расположенные между исходными отсчетами звука, увеличивая таким образом частоту дискретизации. Этот процесс, называемый передискретизацией, увеличивает действующую частоту дискретизации с 44.1 кГц до кратной величины. Например, цифровой фильтр с восьмикратной передискретизацией может путем интерполяции вычислить семь новых отсчетов для каждого исходного отсчета, давая частоту дискретизации 352,8 кГц (8×44,1 кГц). Паразитные спектры по-прежнему имеются, но теперь они далеко отодвинуты от диапазона звуковых частот.
У производителей CD-проигрывателей и цифровых процессоров есть два варианта выбора: купить готовую микросхему фильтра, выполняющего восьмикратную (8х) передискретизацию, или создать нестандартный фильтр на основе универсальной микросхемы цифрового сигнального процессора (DSP). Разработчик такого фильтра должен написать программу, которая управляет микросхемой DSP, что дорого и требует времени. Следовательно, нестандартные фильтры намного дороже, но они дают разработчику CD-проигрывателя возможность творчески управлять звучанием аппарата. К тому же нестандартные цифровые фильтры могут работать быстрее, чем однокристальные фильтры с восьмикратной передискретизацией. Нестандартный фильтр можно сделать для работы с 16-, 32- и даже 64-кратной передискретизацией. Сторонники этого решения — особенно фирмы «Кгеll», «Theta» и «Wadia» — считают, что программное обеспечение для их нестандартной фильтрации лучше содержащегося в обычных интегральных микросхемах цифровых фильтров. В частности, большинство нестандартных цифровых фильтров оптимизированы по параметрам работы во временной области, а не в частотной. Например, процессоры «Wadia» превосходно ведут себя во временной области, — их отличает почти безупречное воссоздание прямоугольных импульсов и отсутствие предварительного и последующего эха в импульсном отклике. Такие прекрасные свойства во временной области порой достигаются ценой некоторого спада в полосе звуковых частот. Фильтры «Wadia» обладают спадом около 3 дБ на частоте 20 кГц. Процессор «The Meitner Intelligent Digital Audio Translator» (IDAT) использует комбинацию фильтров, чтобы добиться идеальных характеристик как во временной, так и в частотной областях
В некоторых цифровых процессорах используются так называемые однобитные ЦАП’ы, которые правильнее называть ЦАП’ами с формированием шума, делъта-сигма-ЦАП’ами или ЦАП’ами с передискретизацией. Эти преобразователи также известны по их торговым маркам: «Bitstream» (фирмы «Philips»), «MASH» («Matsushita», разработка «Nippon Telephone and Telegraph»), а также «РЕМ» (разработка ,JVC»). Все эти преобразователи работают по одному и тому же принципу: для преобразования двоичного кода в аналоговый сигнал вместо резисторной матрицы с различными весами битов однобитный ЦАП использует только два состояния — ноль и единицу. Однобитный код — это серия изменяющихся по продолжительности импульсов постоянной амплитуды. От ширины импульса зависит напряжение на аналоговом выходе. Этим объясняется, почему однобитное кодирование называют также широтно-импульсной модуляцией.
Однобитный код достаточно высокочастотный (кратность передискретизации от 64 до 256), благодаря чему возможно восстановление звукового сигнала из двух логических состояний при помощи схемы с коммутируемым конденсатором. Поэтому однобитный ЦАП не требует такой точности, как ЦАП’ы на основе резисторной матрицы. В ЦАП’ах с передискретизацией амплитудное разрешение заменяется на разрешение по времени. По природе своей они имеют хорошую линейность и без подстройки MSB (собственно, MSB там и нет). ЦАП’ы с передискретизацией не требуют и преобразователя тока в напряжение.
Фазы питания процессора – что это. Разъяснение сути и терминологии
Когда речь заходит о материнских платах, разговор практически никогда не обходится без того, сколько фаз питания процессора применено в той или иной модели. Этот параметр не часто указывается в спецификациях на материнскую плату, но непременно фигурирует в обзорах той или иной модели, да и на многочисленных форумах и обсуждениях системных плат и/или чипсетов о питании CPU речь заходит всегда. Иногда упоминание о количестве фаз присутствует в рекламных материалах или на коробке материнской платы. Фазы питания процессора – что это, что они делают, для чего нужны и сколько их вообще надо? Давайте разбираться.
Что такое фазы питания
Чтобы знать, о чем собственно речь, давайте обратимся к фотографии материнской платы, вернее, к части ее, расположенной возле процессорного сокета. Вот типичная картина того, что можно увидеть на любой плате.
Что-то похожее вы сможете найти и на своей. Разница будет только в количестве компонентов, окружающих сокет.
Если рассматривать устройство каждой фазы питания, то можно выделить несколько блоков по своему назначению.
Все обозначения постепенно станут понятны.
Итак, что это такое? Современные блоки питания (БП) выдают напряжения ±12 В, ±5 В и ± 3.3 В. Однако современным процессорам необходимо гораздо меньше – порядка одного вольта, отклоняясь в ту или иную сторону в зависимости от нагрузки. При этом, если посмотреть на спецификации CPU, мы найдем такой параметр, как «Расчетная мощность» (он же TDP – расчетная тепловая мощность). В данном случае это величина, относящаяся к системе охлаждения, которая должна справляться с такой тепловой мощностью. Данное значение не эквивалентно энергопотреблению процессора, тем более оно меняется в зависимости от нагрузки и нагрева, но весьма близко к нему.
Так, если обратиться к спецификации CPU Intel Core i7-7700, то расчетная мощность составляет 65 Вт. В нашем случае не столь важно, сколько точно потребляет данный процессор. Просто предположим, что его энергопотребление и составляет 65 Вт.
Значит, система питания CPU должна обеспечить подвод такой мощности. Т. к. готового напряжения от блока питания мы не получаем, значит, придется подготовить нужное его значение. Для этого и служит система питания CPU.
Устройство и принцип действия
В качестве исходного напряжения берется +12 В, которое поступает непосредственно от используемого БП. Теперь надо выполнить преобразование, понизив напряжение до нужного значения. Этим занимается VRM (Voltage Regulation Module — модуль регулирования напряжения).
Сам VRM состоит из нескольких частей, это:
- PWM-контроллер (ШИМ-контроллер).
- Драйвер.
- MOSFET-транзисторы.
- Дроссель (индуктивность).
- Конденсатор.
Сейчас часто драйвер и пара MOSFET-транзисторов объединены в один корпус, а не являются дискретными элементами. Сути дела это не меняет. В одном корпусе или в разных — все это перечень компонентов, составляющих фазу питания CPU.
Основным управляющим элементом выступает PWM-контроллер. (Напомню, что аббревиатура PWM расшифровывается как широтно-импульсная модуляция – ШИМ). Он генерирует прямоугольные импульсы с установленной частотой, амплитудой и скважностью. Они подаются на электронный ключ (драйвер).
Скважность импульса определяет уровень выходного напряжения, которая вычисляется как отношение периода к длительности импульса. Таким образом, этот электронный ключ постоянно подключает/отключает входное напряжение, равное +12 В, к этому напряжению подключена нагрузка.
Сам электронный ключ состоит из пары MOSFET-транзисторов (n-канальные полевые МОП-транзисторы) под управлением драйвера. Эти транзисторы попеременно открываются-закрываются таким образом, что при открытии одного второй закрыт. Один из транзисторов своим стоком подключен к шине питания 12 В, второй — истоком к общему проводу. Сигнал от PWM-контроллера поступает на затворы, открывая и закрывая их в соответствии с частотой подаваемых сигналов.
Полученный модулированный сигнал с амплитудой 12 В поступает в LC-фильтр, т. е. через последовательно включенный дроссель (индуктивность) и параллельно подключенный конденсатор, что является нагрузкой. Возникающая ЭДС индукции не позволяет току возрастать мгновенно. В это же время происходит и заряд конденсатора. После закрытия электронного ключа та же ЭДС обеспечивает прежнее направление тока и не допускает резкого его снижения, помогает и разряжающийся конденсатор.
Чтобы не вдаваться в подробности, скажу так: в конечном итоге из импульсного сигнала выделяется постоянная составляющая, и на выходе со сглаживающего LC-фильтра получаем постоянное напряжение нужного значения. Правда, выходное напряжение будет содержать некоторый уровень пульсаций относительно среднего значения.
Для минимизирования пульсаций используют несколько таких цепей, т. е. фаз питания, которые работают таким образом, что подаваемые от PWM-контроллера импульсы в каждую фазу смещены друг относительно друга. Величина этого смещения зависит от количества используемых фаз. Т. е. смещение вычисляется как отношение периода переключения MOSFET-транзисторов к количеству фаз.
Тем самым выходной сигнал с каждого сглаживающего фильтра также смещен по отношению к другому. Также смещены будут и пульсации выходного напряжения. Результирующее напряжение будет иметь уже гораздо меньший уровень пульсаций. И это одно из преимуществ именно многофазных цепей питания – получение более стабильного уровня подаваемого на процессор напряжения.
Регулирование выходного напряжения
Современные процессоры требуют разного напряжения питания в процессе работы. Зависит это от нагрузки, и не забудем про разгон, при котором также необходимо изменять напряжение, в данном случае повышать его. Каким образом происходит автоматическая регуляция?
PWM-контроллер получает требуемое значение напряжения, считывая специальный 8-битный сигнал VID (Voltage Identifier), который может задавать до 256 уровней напряжения.
Зная требуемое значение, остается его сравнить с тем, которое подается в нагрузку. Для этого существует цепь обратной связи. Сравнение референсного напряжения и того, которое считано с нагрузки, позволяет определить, требуется ли изменить его уровень. Делается это изменением скважности PWM-импульсов. Таким образом поддерживается оптимальное напряжение питания процессора.
Почему нельзя обойтись одной фазой
Одну из причин я уже назвал – сглаживание пульсаций выходного напряжения. Есть и еще как минимум одна причина – мощность. Используемые MOSFET-транзисторы, конденсаторы, дроссели имеют предел по максимальному току. Если взять для примера CPU, потребляющий 65 Вт при питающем напряжении в 1 В, ток будет исчисляться несколькими десятками ампер.
Так, используемые элементы могут быть рассчитаны на ток до 30, 40 или более ампер, но, скорее всего, это все равно будет меньше максимального потребления электроэнергии процессором. При этом должна быть возможность установки другого CPU, у которого потребление может оказаться больше, например, 95 Вт.
Для того, чтобы гарантированно обеспечить запас мощности, и используют несколько фаз. Тем самым заодно снижается нагрузка на каждую из них и, соответственно, их нагрев. Это дает возможность использовать большое количество процессоров.
Сколько фаз действительно необходимо? Скажем так, от 4 до 8 в зависимости от процессора и при отсутствии разгона. Этого более чем достаточно. Впрочем, большее их количество не так уж и плохо, особенно при использовании мощных «камней», да еще с разгоном. В разумных пределах, конечно.
Чем отличаются верхний и нижний транзисторы
Тут надо прояснить один момент. Нередко можно встретить разные конфигурации цепей VRM. Например, у MSI Z490-A Pro используется по одному транзистору OnSemi 4C029N в верхнем плече и 4C024N в нижнем. У первого максимальный ток равен 46 А, у нижнего — 78 А.
У Gigabyte X570 GAMING X конфигурация несколько иная — верхний транзистор один, ONSemi 4C10N (макс. ток до 40 А), а нижних сразу два, ONSemi 4C06N (макс. ток до 69 А каждый). В последнем случае используется схема 1h3L, т. е один верхний (high) транзистор и два нижних (low).
Зачем такой разброд и шатания? Здесь надо обратить внимание на условия работы этих транзисторов. У верхнего на входе 12 В, а на выходе около 1 В. При заданной мощности ток не особо велик, и составляет, предположим, несколько ампер, ну пусть даже десяток-другой в особо сложных случаях.
А что нижний транзистор? Его диапазон напряжений работы от 1 (примерно) вольта до нуля. При той же мощности токи, которые он должен выдерживать, гораздо выше. Потому и ставят более мощный силовой элемент, или даже пару.
Кстати, если посмотреть на схему силовой сборки, в которую заключены все силовые MOSFET вместе с драйвером, то элемент нижнего плеча изображается более крупным. Теперь понятно почему.
Может быть и такая ситуация, когда для цепей питания ядер процессоров используют схему 1h3L (один верхний транзистор и два нижних), а для питания SoC, графического чипа, используется более простая схема 1h2L, т. е. по одному транзистору в каждом плече.
В случае использования сборок, для ядер может использоваться одна модель силовых элементов, а для SoC другая. Например, на платы ASRock B550 Extreme4 установлены двенадцать Vishay SIC654 и пара Vishay SIC632. Хотя по максимальному току сборки одинаковые, все же сам элемент SIC632 несколько проще.
Встроенная графика не слишком обременительна в плане энергопотребления и до значений в десятки ампер тут дело обычно не доходит. Посему можно использовать меньшее количество элементов или более простые.
Кстати, дискретные элементы в цепях питания процессора используются в моделях материнских плат нижнего ценового диапазона. В материки среднего класса и в топовые модели ставят силовые сборки.
Всегда ли фаза действительно фаза
Маркетинг играет большую роль в нашей жизни. Смартфон с камерой на 16 мегапикселей априори считается лучше такого же, но с камерой «всего лишь» на 13 мегапикселей. Ну а если используется 23 мегапикселя – то это уже вообще круть!
Аналогично и с материнскими платами. В описаниях, спецификациях или рекламных материалах на ту или иную модель можно найти гордое упоминание о системе питания, использующей -дцать фаз. А у конкурента схожая по функционалу плата вполне может имеет -дцать и еще 4 фазы. Чтобы не ходить далеко за примером, возьмем плату ASRock X370 Taichi под новехонькие Ryzen. Если обратиться к сайту производителя, то в спецификациях видим упоминание, что используется 16-фазная система питания.
А ведь используемый PWM-контроллер IR35201 – восьмифазный. Получается, производитель платы врет? Нет, ну может, немного лукавит. Дело в том, что дросселей, конденсаторов, электронных ключей и проч. действительно 16. Тонкость в том, что используются устройства, называемые делителями (doublers).
Суть работы этих элементов следует из названия – разделить, распределить сигналы от одного канала PWM-контроллера на две цепочки «драйвер-ключ-фильтр». На выходе очень похоже на две фазы, только управляются они одним сигналом, работают синфазно, никакого смещения между ними для сглаживания пульсаций нет. Тогда зачем они?
Ответ – мощность. Данная плата гарантирует поддержку процессоров с потреблением до 300 Вт! Распределяя нагрузку по такому количеству фаз, удается снизить проходящий через каждую из них ток и, как результат, уменьшить нагрев силовых элементов. Впрочем, если используется действительно мощный CPU, да еще и с разгоном, то для охлаждения просто необходим радиатор. Лучше бы даже с обдувом.
В итоге, на самом деле это не 16-фазная система питания, а 8-фазная по 2 канала в каждой. Кстати, используемые на упомянутой материнской плате дроссели рассчитаны на ток до 60 А.
Думаю, все сказанное хорошо проиллюстрирует следующая картинка.
Возможен вариант без использования делителей. В таком случае ставится несколько PWM-контроллеров, которые работают синхронно. Если использовать уже упомянутый восьмифазный IR35201, установив 2 таких на плату, то вполне можно получить на выходе 16 фаз. Почти честных фаз, т. к. временнОго сдвига по всем фазам не будет.
По одной фазе от каждого PWM-контроллера будет работать синхронно, т. е. получим 8 пар (при условии, что используются 2 PWM-контроллера) фаз без временного смещения управляющего сигнала. Строго говоря, сглаживание будет такое же, как и при использовании 8 фаз, но вот мощность будет существенно выше.
А ведь можно найти платы, в которых и по 24 фазы…
Заключение. Фазы питания процессора – что это
«Режим питания нарушать нельзя», говорил один мультяшный персонаж. И это питание должно быть не только качественным, но и подаваться без сбоев. Причем в переложении на компьютерный мир необходимо учитывать изменяющиеся условия, при которых не только потребление процессора изменяется при разных ситуациях, но и он сам может быть заменен более прожорливым.
Система питания CPU, содержащая n-ое количество фаз, обеспечивает надежную его работу. Кстати, все сказанное верно и для видеокарт. Электропитание GPU осуществляется аналогично. А то, что производители стараются запихнуть на свои материнские платы, особенно дорогие, побольше этих фаз… С этим придется смириться. Вряд ли есть реальная необходимость в 24-х фазах, но покупатель всегда ведь ведется на красивые слова и любит большие цифры, конечно, если только это не ценник.
Пошаговая процедура ремонта материнской платы ноутбука
Материнская плата ноутбука не включается. На примере ASUS A6F рассмотрим общий принцип ремонта и поиска неисправностей, которые препятствуют запуску материнской платы и поможет нам в этом POWER On Sequence (такая страничка имеется во многих схемах ноутбуков).
По диаграмме можно отследить всю процедуру запуска материнской платы, начиная с момента включения питания и вплоть до готовности процессора выполнять инструкции BIOS и определить, на каком из этапов у нас происходит ошибка. В той же pdf-ке к материнской плате, можно найти более детальную схему распределения напряжений:
0-1 Входные напряжения питания A/D_DOCK_IN и AC_BAT_SYS
Первым делом следует убедиться в наличии питающего напряжения 19 вольт на входе материнской платы и, желательно, напряжения с АКБ (аккумуляторной батареи). Отсутствие входных напряжений A/D_DOCK_IN и АС_ВАТ_SYS представляется достаточно частой проблемой и проверку следует начинать с блока питания и разъёма на плате.
Если напряжение на участке (разъём — P-mosfet) отсутствует, то необходимо разорвать связь между сигналами A/D_DOCK_IN и AC_BAT_SYS. Если напряжение со стороны A/D_DOCK_IN появилось, то причина неисправности скрывается дальше и надо разбираться с участком (P-mosfet — нагрузка):
Необходимо исключить вариант короткого замыкания (КЗ) по AC_BAT_SYS (19В). Чаще всего, КЗ заканчивается не дальше, чем на силовых транзисторах в цепях, требующих высокой мощности (питание процессора и видеокарты) или на керамических конденсаторах. В ином случае, необходимо проверять все, к чему прикасается AC_BAT_SYS.
Если КЗ отсутствует, то обращаем внимание на контроллер заряда и P-MOS транзисторы, которые являются своеобразным «разводным мостом» между блоком питания и аккумулятором. Контроллер заряда выполняет функцию переключателя входных напряжений. Для понимания процесса работы, обратимся к datasheet, в котором нас интересует минимальные условия работы контроллера заряда:
Как видно по схеме, контроллер MAX8725 управляет транзисторами P3 и P2, тем самым переключая источники питания между БП и аккумулятором — P3 отвечает за блок питания, а P2 за аккумулятор. Необходимо проверить работоспособность этих транзисторов.
Разберем принцип работы контроллера. При отсутствии основного питания, контроллер автоматически закрывает транзистор P3 (управляющий сигнал PDS) тем самым перекрывая доступ блока питания к материнской плате и открывает транзистор P2 (управляющий сигнал PDL). В таком случае плата работает только от аккумулятора.
Если мы подключим блок питания, контроллер должен перекрыть питание от аккумулятора закрывая P2 и открывая P3, обеспечив питание от внешнего блока питания и зарядку аккумулятора.
При диагностике входного напряжения от сети мы не используем аккумулятор и проверяем только сигнал PDS. В нормальном режиме он должен «подтягиваться» к земле, тем самым открывая P-MOS и пропуская 19В на плату. Если контроллер неправильно управляет транзистором P3, то необходимо проверить запитан ли сам контроллер. Затем проверяем основные сигналы DCIN, ACIN, ACOK, PDS. При их отсутствии, меняем контроллер и, на всякий случай, P-MOS транзисторы.
Если проблем с входными напряжениями нет, но плата все равно не работает, переходим к следующему шагу.
1-2 Питание EC контроллера
Embedded Contoller (EC) управляет материнской платой ноутбука, а именно включением/выключением, обработкой ACPI-событий и режимом зарядки аккумулятора. Также эту микросхему ещё называют SMC (System Management Controller) или MIO (Multi Input Output).
Контакты микросхемы EC контроллера программируются под конкретную платформу, а сама программа, как правило, хранится в BIOS или на отдельной FLASH микросхеме.
Вернувшись к схеме запуска материнской платы, первым пунктом видим напряжение +3VA_EC, которое является основным питанием EC контроллера и микросхемы BIOS. Данное напряжение формирует линейный стабилизатор MIC5236YM:
Благодаря присутствию сигнала AC_BAT_SYS, микросхема должна выдать напряжение +3VAO, которое с помощью диагностических джамперов преобразуется в +3VA и +3VA_EC.
+3VA и +3VA_EC питают Embedded контроллер и BIOS, при этом запускается основная логика платы, которая отрабатывается внутри EC контроллера. Основными причинами отсутствия +3VA и +3VA_EC могут служить короткое замыкание внутри компонентов (ЕС, BIOS и т.д.), либо повреждение линейного стабилизатора или его обвязки.
3 Дежурные напряжения (+3VSUS, +5VSUS, +12VSUS)
После того как был запитан EC и он считал свою прошивку, контроллер выдает разрешающий сигнал VSUS_ON для подачи дежурных напряжений (см. пункт 3 последовательности запуска). Этот сигнал поступает на импульсную систему питания во главе которой стоит микросхема TPS51020:
Как видно на схеме, нас интересуют напряжения, отмеченные на схеме зеленым цветом +5VO, +5VSUS, +3VO, +3VSUS. Для того, что бы эти напряжения появились на плате необходимо что бы микросхема была запитана 19В (AC_BAT_SYS) и на входы 9, 10 приходили разрешающие сигналы ENBL1, и ENBL2.
Разрешающие сигналы на платформе A6F формируются из сигналов FORCE_OFF# и VSUS_ON.
В первую очередь нужно обратить внимание на VSUS_ON который выдается EC контроллером, а сигнал FORCE_OFF# рассмотрим чуть позже. Отсутствие сигнала VSUS_ON говорит о том, что либо повреждена прошивка (хранящаяся в BIOS), либо сам EC контроллер.
Если же напряжение ENBL присутствует на плате и TPS51020 запитан, то значит TPS51020 должен формировать +5VO, +5VSUS, +3VO, +3VSUS (проверяется мультиметром на соответствующих контрольных точках).
Если напряжения +5VO, +3VO не формируются, проверяем эти линии на КЗ или заниженное сопротивление. В случае обнаружения КЗ, разрываем цепь и выясняем, каким компонентом оно вызвано.
При отсутствии или после устранения КЗ, снова проверяем напряжения и если их нет, то меняем сам контроллер вместе с транзисторами которыми он управляет.
4 Сигнал VSUS_GD#
На этом этапе контроллер дежурных напряжений сообщает EC контроллеру о том, что дежурные питания в норме. Проблем тут быть не должно.
5 Сигнал RSMRST#
На этом этапе EC контроллер выдает сигнал готовности системы к включению — RSMRST# (resume and reset signal output). Этот сигнал проходит непосредственно между EC и южным мостом. Причиной его отсутствия может быть сам контроллер, южный мост или прошивка EC.
Прежде чем искать аппаратные проблемы, сначала прошейте BIOS. Если результата нет, отпаиваем и поднимаем соответствующую сигналу RSMRST# 105 ножку EC, и проверяем выход сигнала на EC контроллера. Если сигнал все равно не выходит, то меняем контроллер.
Если сигнал выходит, но до южного моста не доходит, то проверяем южный мост и часовой кварц, в худшем случае меняем сам южный мост.
6 Кнопка включения (сигнал PWRSW#_EC)
На этом этапе необходимо проверить прохождение сигнала от кнопки включения до EC контроллера. Для этого меряем напряжение на кнопке и проверяем ее функциональность, если после нажатия напряжение не падает, то проблема в кнопке. Так же можно закоротить этот сигнал с землей и проверить включение.
7 Сигнал включения (сигнал PM_PWRBTN#)
После того как сигнал от кнопки включения попадает на EC, тот в свою очередь передает этот сигнал в виде PM_PWRBTN# на южный мост.
Если южный мост его успешно принял, то следующим этапом является выдача ответа в виде двух сигналов PM_SUSC#, PM_SUSB#, которые, в свою очередь, являются разрешением южного моста EC контроллеру включать основные напряжения платы (если южный мост никак не реагирует на сигнал PM_PWRBTN#, то проблема скрывается в нем).
8-9 Основные напряжения
Каким образом EC контроллер обрабатывает ACPI-события? В предыдущем пункте было сказано, что южный мост отправляет на EC два сигнала PM_SUSC#, PM_SUSB#. Эти сигналы еще называют SLP_S3# и SLP_S4# (отмечено красным блоком на след схеме):
Рассмотрим более подробно ACPI состояния:
- S0 — Working Status
- S1 — POS (Power on Suspend)
- S3 — STR (Suspend to RAM), Memory Working
- S4 — STD (Suspend to Disk), H.D.D. Working
- S5 — Soft Off
Так вот, состояние этих сигналов отвечает за ACPI состояние питания на материнской плате:
Мы будем рассматривать случай, когда оба сигнала SLP_S3# и SLP_S4# , соответственно сигналы SUSC_EC#, SUSB_EC# в состоянии HI. То есть, материнская плата находится в режиме S0 (полностью работает, все напряжения присутствуют).
Как видно из последовательности запуска, при появлении сигналов SUSC_EC#, SUSB_EC#, на плате должны появиться следующие напряжения:
- SUSC_EC#, отвечает за напряжения: +1.8V, +1.5V, +2.5V, +3V, +5V, +1V;
- SUSB_EC#, отвечает за напряжения: +0.9VS, +1.5VS, +2.5VS, +3VS, +5VS, +12VS
Если хоть одного из этих напряжений не будет, плата не запустится, по этому, проверяем каждую систему питания, начиная от +1.8V, заканчивая +12VS.
Сигналы SUSC_EC#, SUSB_EC#, поступают как на ENABLE отдельных импульсных систем питания (например 1.8V DUAL — питание памяти), так и на целые каскады напряжений преобразовывая уже существующие ранее дежурные напряжения в основные:
10 Питание процессора
Проверяем разрешающий сигнал VRON, который с определенной задержкой поступает на контроллер питания CPU сразу после выдачи сигналов SUSC_EC#, SUSB_EC#. Далее на CPU должно появится напряжение, если такого не произошло, разбираемся с контроллером питания и его обвязкой. Причин неработоспособности системы питания CPU достаточно много. Основная из них — это выход из строя самого контроллера. Необходимо проверить минимальные условия работы, для этого не помешает даташит контроллера и сама схема.
11 Включение тактового генератора
После того, как на плате появилось напряжениеCPU, контроллер должен выдать 2 сигнала, это IMVPOK# (Intel Mobile Voltage Positioning — OK) и CLK_EN#. Сигнал IMVPOK# уведомляет EC о том, что питание процессора в норме, а сигнал CLK_EN# включает тактовую генерацию основных логических узлов. Что бы проверить работоспособность клокера ICS954310 необходимо измерить частоту хотя бы на одном из выводов на котором тактовая частота наименьшая, или такая, которую словит ваш осциллограф. Выберем для этого 12 ножку ICS954310, которая отвечает за выдачу FSLA/USB_48MHz. Если нет генерации, то проверяем минимальные условия для работы ICS954310. Это кварц 14Mhz и питание 3VS и 3VS_CLK.
12 Завершающий сигнал готовности питания (PWROK)
Если этот сигнал присутствует, и логика EC исправна, то это значит, что все напряжения на плате должны быть включены.
13 PLT_RST#, H_PWRGD
PLT_RST# – сигнал reset для северного моста, H_PWRGD сообщает процессору о том, что питание северного моста в норме. Если возникли проблемы с этими сигналами, то проверяем работоспособность северного и южного моста.
Проверка мостов — тема, довольно обширная. Вкратце, можно сказать, что необходимо проверять сопротивления по всем линиям питания этих мостов и при отклонении от нормы мосты нужно менять.
В принципе, обычной диодной прозвонкой сигнальных линий можно определить неисправный мост, но так как микросхемы выполнены в корпусе BGA, добраться до их выводов практически невозможно. Не все выводы приходят на элементы, которые легко достать щупом тестера, поэтому используют специальные вспомогательные диагностические платы (например есть диагностические платы для проверки северного моста и каналов памяти).
14 Завершающий этап
H_CPURST# — сигнал reset, выдаваемый северным мостом CPU. После завершения последовательности начинается выполнение инструкций BIOS.
Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Схемотехника ЭВМ | ||
Угрюмов Е.П. Цифровая схемотехника: учебн. пособие для вузов. — 3-е изд. перераб. и доп. — СПб.: — БХВ-Петербург, 2010. | ||
| ||
Схемотехника ЭВМ: Учебник
для студентов вузов по спец. ЭВМ / Под ред. Г.Н. Соловьева. М.: Высш. шк., 1985. | ||
| ||
Применение интегральных
микросхем в электронной вычислительной технике: Справочник / Р.В. Данилов, С.А. Ельцова, Ю.П. Иванов и др.; Под ред. Б.Н. Файзулаева, Б.В. Тарабрина. М.: Радио и связь, 1986. | ||
| ||
Пухальский Г.И.,
Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. М.: Радио и связь, 1990. | ||
| ||
Схемотехника ЭВМ. Лабораторный практикум: учебное пособие / Под ред. Б.Н. Ковригина. Изд. 3-е, перераб. и доп. М.: МИФИ, 2006. Авторы: М.Н. Ёхин, Б.И. Кальнин, Б.Н. Ковригин, В.Г. Тышкевич, И.М. Ядыкин. | ||
| ||
Электронная версия (архивированный файл) | ||
Ковригин Б.Н. Введение в инструментальные средства проектирования и отладки цифровых устройств на ПЛИС. Учебно-методическое пособие. М.: МИФИ, 2006. | ||
| ||
Электронная версия (архивированный файл) | ||
Схемотехника ЭВМ. Сборник задач: учебное пособие. М.: НИЯУ МИФИ, 2012. Авторы: Н.А. Дмитриев, М.Н. Ёхин, М.А. Иванов, Б.Н. Ковригин, Г.Г. Новиков, В.Г. Тышкевич, И.М. Ядыкин. | ||
| ||
Электронная версия (архивированный файл) | ||
Грушвицкий Р.И., Мурсаев А.Х., Угрюмов Е.П. Проектирование систем на микросхемах программируемой логики. СПб.: BHV — Санкт-Петербург, 2002. | ||
| ||
Сергиенко А.М. VHDL для проектирования вычислительных устройств. Киев: Диасофт. 2003 г. | ||
| ||
Зотов В. Ю. Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE. — М.: Горячая линия-Телеком. 2003 г. | ||
| ||
Проектирование процессора ЭВМ: учебное пособие / Зуев В.И., Ковригин Б.Н., Любенцов В.М., Тышкевич В.Г., Ядыкин И.М.; Под ред. Б.Н. Ковригина. 2-е изд., перераб., М.: МИФИ, 2006. | ||
| ||
Электронная версия (архивированный файл). | ||
Ковригин Б.Н. Алгоритмы умножения. М.: МИФИ, 2007. | ||
| ||
Электронная версия | ||
Содержание пояснительной записки к домашнему заданию по проектированию процессора ЭВМ. | ||
Титульный лист пояснительной записки к курсовому проекту по проектированию процессора ЭВМ. | ||
Описание логического анализатора. | ||
Инструкция по работе с логическим анализатором. | ||
Воробьев Н.В.
Мультиплексор как многофункциональный узел. CHIPNEWS, 1999, №2. | ||
| ||
Воробьев Н.В.
Сумматоры: определения, классификация, уравнения, структуры и применение. CHIPNEWS, 2000, №2. | ||
Воробьев Н.В.
Сумматоры: определения, классификация, уравнения, структуры и применение. Часть 2. CHIPNEWS, 2000, №3. | ||
| ||
Китаев Ю.В. Цифровые и микропроцессорные устройства | ||
| ||
Новиков Ю.В. Введение в цифровую схемотехнику | ||
|
Simple CPU 🙂 — обновлено 30.10.2019
Simple CPU v1
Рисунок 1: Простой ЦП
Современные процессоры — это сложные звери, высоко оптимизированные и непонятные. Из-за этого очень трудно понять, почему он был построен таким, каким он был. Частично проблема заключается в требовании обратной совместимости, то есть новый процессор должен иметь возможность запускать код предыдущих поколений. Это постепенное развитие может привести к очень запутанному набору инструкций и «загроможденной» аппаратной архитектуре.Кроме того, когда вы начинаете копаться в литературе, многие вещи не всегда раскрываются полностью, то есть для защиты этих промышленных секретов. Однако, по сути, все процессоры являются простыми машинами и в некоторых отношениях не так сильно изменились с 1940-х годов, то есть они все еще используют инструкции и выполняют цикл Fetch-Decode-Execute. Поэтому, чтобы доказать, что процессоры на самом деле очень просты в сборке и понимании, я разработал простую 8-битную архитектуру ЦП, которая может быть реализована в FPGA.Если честно, на самом деле он не был разработан, он эволюционировал, поэтому оборудование можно было немного оптимизировать. Однако цель состояла в том, чтобы разбить процессор на его фундаментальные строительные блоки, то есть логические логические элементы. Затем объединяя их, чтобы сформировать более сложные компоненты, например. сумматоры, мультиплексоры, триггеры, счетчики и т. д., которые лежат в основе любого компьютера. Базовая блок-схема этого компьютера показана на рисунке 1, очень простая машина, состоящая из регистров, мультиплексоров и сумматора. Работа этой машины и ее компонентов будет объяснена снизу вверх, логические элементы «Hello World», реализованные в ПЛИС Spartan 3, ее аппаратное обеспечение определено на схемах.Исходные файлы для каждой версии этого процессора можно загрузить (ссылки в каждом разделе) и смоделировать с помощью инструмента Xilinx ISE 14.7 ISim.
Содержание
Назад к основам — simpleCPU_v1
Тестирование: «Hello World»
Тестирование: полностью протестировано 🙂
ПРИМЕЧАНИЕ , некоторые принципиальные схемы довольно большие, поэтому вы не сможете увидеть названия сигналов / компонентов, если будете просматривать их с этой страницы. Однако, если вы нажмете на изображение, вы получите изображение с высоким разрешением, но некоторые из них довольно большие, поэтому загрузка может занять некоторое время.PDF-файлы также доступны для некоторых изображений.
Назад к основам — simpleCPU_v1
Рисунок 2: Логические вентили, символы (вверху), форма сигнала (внизу)
На самом низком уровне каждая операция в компьютере выполняется логическими вентилями, подобными показанным на рисунке 2, для получения дополнительной информации о булевой логике см .: (Link) (Link). Используя эти базовые строительные блоки, мы можем построить четыре основных компонента любого компьютера:
- Логика: каждый блок в компьютере можно рассматривать как созданный из логических вентилей, однако эта категория относится к конкретным более крупным логическим блокам. E.грамм. сумматоры, декодеры адресов, декодеры команд и т. д.
- Мультиплексоры: с одной точки зрения компьютер просто перемещает информацию из одной точки в другую. Путь, по которому проходит эта информация, контролируют мультиплексоры: переключающие соединения, позволяющие передавать информацию между функциональными блоками.
- Регистры: быстрая, кратковременная память. В рамках цикла Fetch-Decode-Execute компьютер должен запомнить свое состояние, инструкцию, которую нужно обработать, и любые сгенерированные результаты.
- Память: этот компьютер использует классическую архитектуру фон Неймана, то есть одну память, в которой хранятся как программа (инструкции), которые должны быть выполнены, так и данные, которые должны быть обработаны, в одном устройстве памяти.
Вернувшись к рисунку 1, вы можете увидеть, что этот процессор имеет три мультиплексора (MUX), управляющих шинами данных и адреса. Примечание , в простейшей форме шина — это просто группа проводов, по которым передаются двоичные числа (ссылка). Мультиплексоры — это переключатели, позволяющие процессору выбирать информацию из нескольких источников и направлять ее в один пункт назначения.Чтобы выбрать, какой источник данных следует использовать, мультиплексор имеет одну или несколько линий управления, как показано на рисунке 3. Этот мультиплексор 2: 1 имеет два входа данных (A, B), один выход (Z) и вход (SEL), выбирая какой из двух входов данных должен быть подключен к его выходу, как определено его таблицей истинности, показанной в нижней части рисунка 3. Когда SEL = 0, вход A подключен к выходу Z. Когда SEL = 1, вход B подключен к вывод З.
Рисунок 3: 2: 1-битный мультиплексор, принципиальная схема (вверху), таблица истинности (внизу)
Этот мультиплексор может выбирать между двумя битами (двоичными цифрами), однако внутри процессора нам нужно выбирать между 8-битными (байтовыми) шинами i.е. альтернативные данные или значения адреса. Для этого мультиплексор дублируется восемь раз, то есть по одному на бит в шине, как показано на рисунке 4. Примечание , каждый прямоугольник (символ) mux2_1_1 содержит схему, показанную на рисунке 3. Для экономии места я только показал Первые три мультиплексора, полная принципиальная схема доступна здесь: (Ссылка). Символ схемы для этого 8-битного мультиплексора показан на рисунке 5, его интерфейс имеет три 8-битных шины (толстые линии) и один сигнал (тонкие линии):
- A (7: 0) — входная шина, восьмибитные значения, биты с метками A7, A6, A5, A4, A3, A2, A1, A0
- B (7: 0) — входная шина, восьмибитные значения, биты с метками B7, B6, B5, B4, B3, B2, B1, B0
- Z (7: 0) — выходная шина, восьмибитные значения, биты помечены как Z7, Z6, Z5, Z4, Z3, Z2, Z1, Z0
- SEL — входной сигнал, логический, выбирает, какой вход подключен к выходу
Рисунок 4: Схема мультиплексора 2: 1 байта (только первые три ступени)
Рисунок 5: байтовый мультиплексор 2: 1, символ (вверху), форма сигнала (внизу)
Примечание , этот подход с использованием иерархических схем является хорошим примером фундаментального принципа проектирования в информатике. I.е. абстракция. Определение ключевых функций, разделение их на отдельные компоненты, которые затем могут быть повторно использованы при построении других компонентов или систем, упрощение схематической компоновки, конструкции и скрытие ненужных деталей.
Очевидно, что проектирование сложных вычислительных систем — это сложный процесс, существует большой разрыв между требованиями пользователя и реализацией системы, которую «сложно» (невозможно) выполнить за один шаг. Чтобы упростить этот процесс проектирования, мы разбиваем систему на несколько функциональных блоков e.грамм. блок-схема верхнего уровня, показанная на рисунке 1. Затем мы можем постепенно дорабатывать эти компоненты до окончательной реализации, игнорируя несущественные детали.
В дополнение к мультиплексорам 2: 1, показанным на рисунке 1, ALU также нуждается в мультиплексоре 4: 1 (обсуждается позже), то есть мультиплексоре, который имеет четыре входа и один выход. Он может быть построен из трех байтовых мультиплексоров 2: 1, как показано на рисунке 6. Примечание , каждый прямоугольник (символ) mux2_1_8_v1 содержит схему, показанную на рисунке 3 i.е. 3 x 8 x 4 = 96 логических вентилей. Схемы и символы Xilinx для этих мультиплексоров можно скачать здесь: (Ссылка). Для получения дополнительной информации о мультиплексорах см .: (Ссылка).
- A (7: 0) — входная шина, восьмибитные значения, биты с метками A7, A6, A5, A4, A3, A2, A1, A0
- B (7: 0) — входная шина, восьмибитные значения, биты с метками B7, B6, B5, B4, B3, B2, B1, B0
- C (7: 0) — входная шина, восьмибитные значения, биты с метками C7, C6, C5, C4, C3, C2, C1, C0
- D (7: 0) — входная шина, восьмибитные значения, биты помечены как D7, D6, D5, D4, D3, D2, D1, D0
- Z (7: 0) — выходная шина, восьмибитные значения, биты помечены как Z7, Z6, Z5, Z4, Z3, Z2, Z1, Z0
- SEL0 — входной сигнал, логический, выбор первой ступени
- SEL1 — входной сигнал, логический, выбор второй ступени
Рисунок 6: Мультиплексор байтов 4: 1, принципиальная схема и таблица истинности
Вся обработка чисел выполняется в арифметико-логическом блоке (ALU), реализующем основные арифметические функции ЦП.Для реализации функции ADD (одной из основных инструкций любого компьютера) существует ряд различных аппаратных решений, каждое из которых имеет свои преимущества и недостатки. Однако, чтобы избежать подробного обсуждения их относительных достоинств, я буду придерживаться основного полусумматора, как показано на рисунке 7. Для получения дополнительной информации о сумматорах обратитесь к: (Ссылка) (Ссылка). Эта схема складывает два бита A и B, получая сумму и перенос. Работая с таблицей истинности, вы можете увидеть процесс сложения 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1.Поскольку это двоичная машина (с основанием 2), максимальное значение, которое может сохранить любая цифра, равно 1, поэтому, когда A = B = 1, выход Sum не может представлять результат 2, поэтому генерируется перенос. Затем этот перенос будет добавлен к следующей цифре в номере.
Рисунок 7: Полусумматор, принципиальная схема (вверху), таблица истинности (внизу)
Сам по себе полусумматор не так полезен, поскольку нам нужно складывать 8-битные числа, но его можно использовать в качестве строительного блока для полного сумматора, как показано на рисунке 8. Примечание , каждый прямоугольник (символ) half_adder содержит схему, показанную на рисунке 7. Эта схема может складывать вместе три бита: A, B и Cin. Другой способ подумать об этой схеме — это подсчитать количество единиц:
- 0 + 0 + 0 = 00: все нули, результат 00
- 0 + 0 + 1 = 01: one 1, результат 01
- 0 + 1 + 1 = 10: две единицы, результат 10 или десятичное число 2
- 1 + 1 + 1 = 11: три единицы, результат 11 или десятичное число 3
Рисунок 8: Полный сумматор, принципиальная схема (вверху), таблица истинности (посередине), форма сигнала (внизу)
Опять же, на первый взгляд, возможность складывать три бита вместе может показаться не такой уж полезной, однако, если мы реплицируем это оборудование восемь раз, соединив выполнение (Cout) предыдущего этапа с переносом (Cin) следующего этапа. можно построить сумматор Ripple, как показано на рисунке 9. Примечание , снова каждый прямоугольник (символ) содержит подсхему, в данном случае full_adder , показанный на рисунке 8. Для экономии места я показал только первые три полных сумматора, полная принципиальная схема доступна здесь: (Ссылка ). Альтернативным способом рассмотрения этого оборудования является псевдокод, показанный на рисунке 10. Каждый полный сумматор представляет собой сумматор по модулю 2, концептуально процесс сложения начинается с наименее значащей цифры (LSD) и «колеблется» через оборудование до самой старшей цифры. (MSD) i.е. биты X0 и Y0 складываются вместе для получения суммы Z0 и переноса C1, этот перенос затем добавляется к следующим значащим цифрам X1 и Y1 и т. д. Такое последовательное поведение ограничивает производительность оборудования, но не забывайте, что оборудование связанные с добавлением каждой цифры, все работают параллельно, например производительность в лучшем случае: 987 + 12 = 999, переносов не будет, добавления 9 + 0, 8 + 1 и 7 + 2 будут выполняться параллельно и завершаться за одну единицу времени. Однако в худшем случае производительность: 999 + 1 = 1000, это займет четыре единицы времени из-за того, что переносы должны проходить через оборудование от LSD к MSD. Обратите внимание на , это глупо, но важно помнить, что оборудование — это не программное обеспечение. При анализе оборудования некоторые элементы могут вести себя последовательно, но ВСЕ логические элементы будут работать параллельно (активны все время).
Рисунок 9: Схема сумматора пульсаций (только первые три ступени)
Рисунок 10: Архитектура сумматора пульсаций
Рисунок 11: Символ сумматора пульсаций
Символ схемы верхнего уровня для сумматора пульсаций показан на рисунке 11 (содержащий схему, показанную на рисунке 9), интерфейс этого символа имеет три 8-битные шины (толстые линии) и два сигнала (тонкие линии):
- A (7: 0) — входная шина, восьмибитные значения, биты с метками A7, A6, A5, A4, A3, A2, A1, A0
- B (7: 0) — входная шина, восьмибитные значения, биты с метками B7, B6, B5, B4, B3, B2, B1, B0
- Cin — входной сигнал, логическое значение, перенос данных из предыдущих вычислений
- Cout — выходной сигнал, логический, вывод от сумматора пульсаций
Полная принципиальная схема ALU показана на рисунке 12.С небольшими изменениями сумматор пульсаций можно использовать для реализации функции вычитания. Аппаратное вычитание может быть реализовано с использованием дополнения до 2 (Link), то есть вычитания путем добавления отрицательных чисел. Чтобы сгенерировать отрицательное число, каждый бит инвертируется, а затем к результату добавляется 1, как показано в примере ниже.
123 45 = 000101101 123 = 01111011 001111011 - 45 inv = 111010010 + 111010011 ----- +1 = 111010011 ----------- 78 001001110 = 78 ----- ----------- 11111 1
Для инвертирования каждого бита используется массив логических вентилей XOR, bitwise_inv_v1 , как показано на рисунке 13.Эта схема имеет 8-битную входную шину (A), каждый бит подвергается операции XOR с сигналом EN. Выполнение XOR бита с 0 возвращает то же значение. Выполнение операции XOR с 1 возвращает значение, обратное этому значению. Чтобы добавить 1, сигнал переноса (Cin) в сумматор пульсаций устанавливается на 1, увеличивая конечный результат. В ALU это контролируется сигналами S2 и S3. Функции ADD и SUB можно моделировать с помощью программных средств Xilinx ISim, как показано на рисунке 14. На этой диаграмме формы сигнала выполняются вычисления 123 + 45 и 123-45.Помните, когда вы используете представление с дополнением до 2 в вычислениях, окончательный перенос игнорируется. Схемы, символы и тестовый стенд Xilinx для этого ALU можно скачать здесь: (Ссылка).
А Б Я 0 0 0 А ИСКЛЮЧАЮЩЕЕ ИЛИ 0 = А 0 1 1 A XOR 1 = НЕ А 1 0 1 1 1 0
Рисунок 12: Принципиальная схема ALU
Рисунок 13: Побитовое исключающее ИЛИ
Рисунок 14: Моделирование ALU, ADD и SUB
Вход переноса также может использоваться для выполнения функции приращения i.е. Z = А + 0 + 1. Это довольно распространенное требование в программе, например. увеличение счетчика или счетчика программы процессора. Для достижения этой функции вход B сумматора должен быть установлен на ноль. Для этого используются схемы replicate_v1 и bitwise_and_v1 , показанные на рисунках 15 и 16. Компонент replicate_v1 использует буферы (BUF) для подачи одного и того же сигнала на каждый бит своей выходной шины Z. Затем эти сигналы объединяются с данными на входе B ALU.Если они связаны с 1, значение на входе B сумматора не изменится. Если они связаны с 0, значение на входе B сумматора устанавливается на ноль. В ALU это контролируется с помощью сигналов S2 и S4. Функцию INC можно моделировать с помощью программных средств Xilinx ISim, как показано на рисунке 17. На этой диаграмме формы сигнала выполняются вычисления 123 + 1 и 45 + 1.
Рисунок 15: Реплика
Рисунок 16: Побитовое И
Рисунок 17: Моделирование ALU, INC
Компонент bitwise_and_v1 также используется в ALU для выполнения побитовой функции AND i.е. Z = A AND B, как показано в примере ниже. Примечание , на первый взгляд это может не показаться такой полезной функцией, но, как мы увидим позже, она часто используется в программах для проверки состояния внутренних регистров и т. Д.
А Б Я 10101010 0 0 0 А И 0 = 0 & 11110000 0 1 0 А И 1 = А ---------- 1 0 0 10100000 1 1 1 ----------
Для выбора функции ALU используется последний мультиплексор 4: 1, управляющие линии S0 и S1 выбирают либо выход сумматора, либо побитовое И, либо вход A, либо вход B.Полный набор управляющих сигналов показан ниже.
S4 S3 S2 S1 S0 Z 0 0 0 0 0 ДОБАВИТЬ (A + B) 0 0 0 0 1 ПОБИТУ И (A&B) 0 0 0 1 0 ВХОД A 0 0 0 1 1 ВХОД B 0 1 1 0 0 ВЫЧИСЛЕНИЕ (A-B) 1 0 1 0 0 ПРИРОСТ (A + 1) 1 0 0 0 0 ВХОД A 0 0 1 0 0 ДОБАВИТЬ (A + B) +1 0 1 0 0 0 ВЫЧИСЛЕНИЕ (A-B) -1
Рисунок 18: Символ арифметико-логического устройства (ALU)
Компьютер выполняет инструкции, используя цикл Fetch-Decode-Execute (Link), поэтому процессор должен помнить, в какой фазе он находится, чтобы перейти к следующей.Эта временная память реализована с помощью триггеров, каждый из которых хранит 1 бит данных, как определено таблицей состояний, показанной на рисунке 19. Триггер имеет входной контакт D и выходной контакт Q, значение на D записывается в Q, когда есть изменение с логического 0 на логическую 1 на выводе CLK. Другой способ думать о выводе CLK заключается в том, что это сигнал управления записью или обновлением, то есть линия CLK является импульсной для сохранения значения. Из-за электронных причин, которые я быстро пропущу, все линии CLK должны быть подключены к одним и тем же системным часам i.е. глобальный прямоугольный сигнал, определяющий скорость работы процессора. Это означало бы, что каждый триггер будет обновлять свой вывод каждый такт, что было бы не очень полезно. Поэтому, чтобы контролировать, когда разные триггеры обновляют свои выходные данные, мы используем входной контакт CE включения синхронизации. Если CE = 0, вывод CLK игнорируется. Если CE = 1, используется вывод CLK.
Рисунок 19: Откидная панель D-типа
В процессоре временные значения хранятся в регистрах, в регистре каждый бит хранится в триггере, как показано на рисунках 20, 21 и 22.Чтобы сделать регистры большего размера, несколько регистров меньшего размера сгруппированы вместе. Примечание , прямоугольные компоненты register_4 и register_8 содержат принципиальные схемы, показанные на рисунках 20 и 21 соответственно. Работа 8-битного регистра может быть смоделирована с помощью программных средств Xilinx ISim, как показано на рисунке 23. На этой диаграмме формы сигнала значения 123 и 45 сохранены в регистре, с использованием линий CLK, CLR и CE для управления, когда эти значения обновлены.Схемы Xilinx, символы и тестовый стенд VHDL для этих регистров можно скачать здесь: (Ссылка).
Рисунок 20. Четырехбитный регистр, символ (слева), схема (справа)
Рисунок 21: Восьмибитный регистр, символ (слева), схема (справа)
Рисунок 22. Шестнадцатиразрядный регистр, символ (слева), схема (справа)
Рисунок 23: Моделирование восьмибитного регистра
Как показано на рисунке 1, этот процессор имеет три основных регистра:
- Программный счетчик (ПК): 8-битный регистр, используемый для хранения адреса в памяти текущей выполняемой инструкции.
- Регистр инструкций (IR): 16-битный регистр, обновляемый в конце фазы выборки инструкцией, которая должна быть обработана (декодирована и выполнена).
- Аккумулятор (ACC): 8-битный регистр, регистр данных общего назначения, предоставляющий данные (операнд) для обработки ALU и использования для хранения любого полученного результата. Примечание , мы можем хранить в процессоре только одно 8-битное значение за раз, другие значения данных необходимо буферизовать в памяти.
Триггеры также используются для генерации последовательности управляющих сигналов, необходимых для выполнения функций, определенных каждой инструкцией.Они содержатся в блоке декодера или управляющей логики (рисунок 1), символ принципиальной схемы для этого компонента показан на рисунке 24. Внутри этого компонента находятся логика декодирования команд и генераторы последовательности, необходимые для управления процессором, как показано на рисунке. 25. Схему в высоком разрешении можно скачать здесь: (Ссылка).
- MUXA: выход, вход ALU A Управление мультиплексором
- MUXB: выход, вход ALU B Управление мультиплексором
- MUXC: выход, управление адресом MUX, выбор ПК или IR
- EN_DA: выход, управление обновлением регистра аккумулятора (ACC)
- EN_PC: выход, контроль обновления регистра программного счетчика (ПК)
- EN_IR: выход, управление обновлением регистра команд (IR)
- RAM_WE: вывод, управление разрешением записи в память
- ALU_S0: выход, линия управления ALU
- ALU_S1: выход, линия управления ALU
- ALU_S2: выход, линия управления ALU
- ALU_S3: выход, линия управления ALU
- ALU_S4: выход, линия управления ALU
- IR: входная шина, 8 бит, старший байт регистра команд, содержит код операции
- ZERO: вход, управляемый 8-битным вентилем ИЛИ-НЕ, подключенным к выходу ALU, если 1 означает, что результат равен нулю
- CARRY: ввод, управляемый выполнением (Cout) ALU
- CLK: вход, системные часы
- CE: вход, включение часов, обычно устанавливается на 1, если установлено на 0, процессор HALT
- CLR: вход, сброс системы, при высоком импульсе система будет сброшена
Рисунок 24: Символ декодера
Рисунок 25: Принципиальная схема декодера
Этот процессор имеет немного измененный цикл Fetch-Decode-Execute.Чтобы сохранить сумматор (уменьшить количество оборудования), я добавил дополнительную фазу, теперь у нее есть цикл Fetch-Decode-Execute-Increment, последняя фаза увеличивает ПК до адреса следующей инструкции (при необходимости).
Примечание , обычно обновление ПК будет выполняться на этапе выборки / декодирования, я переместил это в отдельную фазу, чтобы выделить эти типы служебных операций, которые необходимы в цикле Fetch-Decode-Execute, т.е. вам необходимо поддерживать оборудование внутри процессора, который позволяет обрабатывать инструкции и данные.
Для определения фазы процессора в генераторе последовательности используется, как показано на рисунках 26 и 27. Это простой счетчик звонков (Link), использующий закодированное значение one-hot (Link) для индикации состояния процессора, как показано на рисунке 28. Первоначально значение 1000 загружается в счетчик (код выборки), на каждом тактовом импульсе бит с одним горячим битом затем перемещается по цепочке триггеров, возвращаясь к началу после четырех циклов тактовой частоты. Чтобы определить состояние процессора, вы просто указываете, какая битовая позиция установлена на логическую 1.Одноразовое кодирование, то есть когда число имеет только один бит, очень легко декодировать аппаратно, но его разреженное кодирование означает, что вам нужно много битов для представления больших значений, поскольку используются не все состояния битов. Четырехбитное значение one-hot может представлять 4 состояния или значение от 0 до 3, используя двоичную кодировку, вы можете представить значение от 0 до 15, но вам нужно будет декодировать все биты, чтобы определить его значение, как при использовании одного- горячо нужно смотреть только на один бит.
- 1000: Получить
- 0100: декодировать
- 0010: Выполнить
- 0001: Приращение
Рисунок 26: Символ генератора последовательности
Рисунок 27: Генератор последовательности
Рисунок 28: Моделирование генератора последовательности
Во время фазы выборки текущая инструкция, на которую указывает счетчик программ (ПК), загружается в регистр команд (IR).Затем на этапе декодирования старший байт 16-битной инструкции декодируется декодером инструкций, показанным на рисунке 29. Диаграмму с высоким разрешением можно загрузить здесь: (Ссылка). Для упрощения конструкции этот процессор имеет очень ограниченный набор команд:
- ACC нагрузки kk: 0000 XXXX KKKKKKKK
- Добавить ACC kk: 0100 XXXX KKKKKKKK
- и ACC kk: 0001 XXXX KKKKKKKK
- Дополнительный ACC kk: 0110 XXXX KKKKKKKK
- Вход ACC pp: 1010 XXXX PPPPPPPP
- Выход ACC pp: 1110 XXXX PPPPPPPP
- Прыжок U aa: 1000 XXXX AAAAAAAA
- Перейти Z aa: 1001 00XX AAAAAAAA
- Прыжок C aa: 1001 10XX AAAAAAAA
- Перейти NZ aa: 1001 01XX AAAAAAAA
- Прыжок NC aa: 1001 11XX AAAAAAAA
В этом синтаксисе команды X = Не используется, K = Константа, A = Адрес инструкции, P = Адрес данных.Сложность инструкции также определяется ее режимом адресации, то есть не только тем, сколько она выполняет обработки чисел, но и тем, как она выбирает свои операнды (данные). Опять же, чтобы упростить необходимое оборудование, эти инструкции ограничены простыми режимами адресации:
- Немедленно: операнд KK, постоянное значение, оно доступно немедленно, поскольку оно хранится в регистре команд, то есть часть инструкции, считываемой во время фазы выборки.
- Абсолют: операнд AA или PP, адрес в памяти.Опять же, адрес хранится в регистре команд, либо указывая, где хранятся данные, которые должны быть обработаны, то есть инструкция INPUT, либо где полученный результат должен быть сохранен в памяти, то есть инструкция OUTPUT. Также используется для определения адреса в памяти следующей извлекаемой инструкции, то есть JUMP.
Описание уровня передачи регистров (RTL) каждой из этих инструкций:
- Нагрузка ACC kk: ACC <- KK
- Добавить ACC kk: ACC <- ACC + KK
- и ACC kk: ACC <- ACC и KK
- Дополнительный ACC kk: ACC <- ACC - KK
- Вход ACC pp: ACC <- M [PP]
- Выход ACC pp: M [PP] <- ACC
- Перейти U aa: PC <- AA
- Перейти Z aa: IF Z = 1 PC <- AA ELSE PC <- PC + 1
- Перейти C aa: IF C = 1 PC <- AA ELSE PC <- PC + 1
- Перейти NZ aa: IF Z = 0 PC <- AA ELSE PC <- PC + 1
- Jump NC aa: IF C = 0 PC <- AA ELSE PC <- PC + 1
Примечание , в синтаксисе RTL «Ссылка».
Верхние 4-6 бит каждой инструкции определяют код операции: уникальный двоичный шаблон, который позволяет ЦП определять, какую функцию необходимо выполнить, где находятся данные (операнды) и где должен быть сохранен любой полученный результат. Примечание , верхний полубайт (4 бита) каждой инструкции уникален для этой инструкции. Для тех из вас, кто знает свой машинный код, вы поймете, что эти инструкции основаны на исходном машинном коде PicoBlaze (ссылка), еще одном красивом маленьком 8-битном процессоре, который я обычно использую в лекциях.Декодер команд, показанный на рисунке 29, преобразует уникальный код операции в одноразовое значение, которое затем используется на этапах декодирования и выполнения для управления аппаратным обеспечением процессора. Чтобы гарантировать, что эти сигналы не активны во время фаз выборки и инкремента, они обнуляются (обнуляются) с помощью логического ИЛИ сигналов декодирования и выполнения от генератора последовательности, как показано на рисунке 30.
Рисунок 29: Декодер команд
Примечание , логические элементы И на рисунке 29 декодируют поле кода операции i.е. каждый ноль в полубайте кода операции проходит через вентиль НЕ, так что, когда конкретный код операции декодируется, только один вентиль И будет иметь все свои входы, приведенные к логической единице, то есть никогда не будет двух вентилей И, создающих логическую единицу на в то же время (вывод с горячим кодированием).
Рисунок 30: Полный декодер команд, схема (вверху), форма сигнала (внизу)
Процессор поддерживает безусловные и условные инструкции JUMP. Команды условного перехода основаны на результате последней операции ALU i.е. нулевой бит и бит переноса для инструкций ADD, SUB и AND. Они хранятся в 2-битном регистре, как показано на рисунке 31. Примечание , нулевой бит генерируется 8-битным вентилем ИЛИ-НЕ, подключенным к выходной шине АЛУ, то есть ИЛИ-ИЛИ производит 1 только тогда, когда все его входы равны 0.
Рисунок 31: Регистр состояния
генератор_последовательностей , декодер_ инструкций и регистр_статуса образуют основные элементы блока управления процессора (блок декодера на рисунке 1).Сигналы от этих блоков используются для генерации управляющих сигналов для системных мультиплексоров, ALU и REG, как показано на рисунке 32. Эта таблица определяет состояние каждого управляющего сигнала для каждой фазы, чтобы реализовать функцию этой инструкции. В этой таблице также определены управляющие сигналы, необходимые для фаз выборки и увеличения. Логика, которая управляет этими управляющими сигналами (правая часть рисунка 25), взята из этой таблицы.
Рисунок 32: Управляющие сигналы
Большая часть этой управляющей логики довольно интуитивно понятна, вы просто комбинируете одноразовый выходной сигнал декодера с битами состояния кольцевого счетчика для получения логической единицы в каждой строке таблицы на рисунке 32.Немного более сложный бит — это логика перехода, показанная на рисунке 33. Если процессор находится в фазе выполнения, декодер команд и сигналы состояния определяют, следует ли обновлять счетчик программ (ПК), т. Е. Следует ли загружать адрес перехода в ПК. . Если выполняется инструкция JUMP, то системе не нужно увеличивать ПК, так как она уже содержит адрес следующей инструкции. Поэтому, когда процессор находится в фазе приращения, он проверяет, был ли выполнен переход, был ли ПК не включен i.е. результат PC + 1 не сохраняется в программном счетчике.
Рисунок 33: Логика перехода
Рисунок 34: Тестовый код
Чтобы проиллюстрировать работу этого компьютера, рассмотрим простую программу на рисунке 34. Эта программа складывает два 8-битных числа без знака и проверяет их на переполнение. Если происходит переполнение, результат насыщается, т.е. устанавливается максимальное значение (255). Пошаговый анализ выполнения этой программы показан на рисунках с 35 по 37, добавлены значения данных 250 и 10.Это вызовет переполнение, в результате чего конечный результат будет насыщен до 255. Однако, если используемые значения данных равны 250 и 5, переполнения не произойдет, как показано на рисунке 37. Примечание , в каждой фазе активный адрес и пути к данным выделены темно-СИНИМ цветом.
Рисунок 35: шаги с 1 по 5
- Шаг 1: сброс, импульсный сброс линии для сброса всех триггеров, инициализация всех регистров до значений по умолчанию. Инициируются первые фазы выборки, ADDR MUX выбирает ПК i.е. значение 0, адрес памяти 0 прочитан, первая инструкция (INPUT) хранится в IR.
- Шаг 2: декодирование, декодирование поля кода операции, инструкция, идентифицированная как инструкция INPUT, управляющая логика настраивает пути данных для маршрутизации абсолютного адреса (6), хранящегося в IR, на адресную шину с использованием ADDR MUX. Чтение из памяти, доступ к данным по адресу 6 (250), данные, передаваемые на шину ввода данных, направляются через DATA MUX на вход ACC.
- Шаг 3: выполнить, ACC обновляется данными, к которым был осуществлен доступ, в конце этой фазы ACC = 250.
- Шаг 4: приращение, инструкция выполнена, процессору необходимо увеличить PC до адреса следующей инструкции. Управляющая логика конфигурирует ALU для выполнения функции приращения, ПК направляется на ALU, значение увеличивается и сохраняется обратно в ПК.
- Шаг 5: выборка, инструкция по адресу 1 считывается (ADD) и сохраняется в IR.
Рисунок 36: шаги с 6 по 11
- Шаг 6: декодирование, декодирование поля кода операции, инструкция, идентифицированная как инструкция ADD, управляющая логика конфигурирует пути данных для маршрутизации непосредственных данных (10), хранящихся в IR, в ALU.Второй операнд, хранящийся в ACC, также направляется в ALU. Управляющая логика настраивает ALU для выполнения функции добавления.
- Шаг 7: выполнить, выполняется сложение двух чисел, т. Е. 250 + 10 = 260. Поскольку это 8-битная машина, она не может сохранить результат в ACC, т. Е. Произошло переполнение (максимальное значение для 8 бит — 255). Следовательно, устанавливается флаг переноса и значение 4 сохраняется в ACC. Примечание , причина 4 сохраняется в том, что получается результат из девяти битов, т.е. 260 = 256 + 4 = 100000100. Девятый бит фактически является битом переноса, оставляя младшие 8 бит в ACC (00000100).После обновления ACC ПК переходит к следующему адресу (2).
- Шаг 8: выборка, декодирование, выполнение. Команда условного перехода JUMPNC «выполняется», поскольку перенос был сгенерирован, «переход при отсутствии переноса» не переходит на адрес 4, поэтому ПК увеличивается до адреса следующей инструкции (3).
- Шаг 9: выборка, декодирование. Следующая инструкция выбирается и декодируется, инструкция идентифицируется как инструкция ЗАГРУЗИТЬ, управляющая логика конфигурирует пути данных для маршрутизации непосредственных данных (255), хранящихся в IR, в ALU.Управляющая логика конфигурирует ALU для выполнения сквозной функции (данные без изменений).
- Шаг 10: выполнить, ACC обновляется значением 255. Затем PC увеличивается до следующего адреса (3).
- Шаг 11: выборка, декодирование. Следующая инструкция выбирается и декодируется, инструкция идентифицируется как инструкция OUTPUT, управляющая логика настраивает пути данных для маршрутизации абсолютного адреса (7) через ADDR MUX на адресную шину. Данные ACC передаются в память по шине вывода данных. Шина управления памятью установлена для индикации операции записи.
Примечание , распространенное заблуждение заключается в различиях между командами LOAD и INPUT. Для этого процессора LOAD не читает память. Чтобы прочитать содержимое области внешней памяти, мы будем использовать инструкцию INPUT. Инструкция LOAD — это внутренняя операция, копирующая непосредственное значение, хранящееся в IR, в ACC, в приведенном выше примере константа 255.
Рисунок 37: шаги с 12 по 17
- Шаг 12: выполнить, данные на шине вывода данных (255) записываются по адресу 7.В конце операции записи ПК увеличивается до адреса следующей инструкции (5).
- Шаг 13: выборка, декодирование. инструкция по адресу 5 считывается (JUMP) и сохраняется в IR. Поле кода операции декодировано, инструкция идентифицирована как безусловная инструкция JUMP, т.е. переход выполняется всегда, логика управления настраивает пути данных для маршрутизации абсолютного адреса (0), хранящегося в IR, на ПК.
- Шаг 14: Выполняется безусловная инструкция JUMP, обновляя ПК до адреса 0. Поскольку произошла инструкция перехода, фаза приращения не выполняется, поскольку ПК уже содержит адрес следующей инструкции.
- Шаг 15: повторить, управление вернулось к запуску программы, операции повторяются.
- Шаг 16: выборка, декодирование. Программа изменена, непосредственное значение, используемое инструкцией ADD, изменилось с 10 на 5, чтобы показать операцию условного перехода. Произведена операция сложения с результатом 255. Это умещается в пределах 8 бит (11111111), поэтому флаг переноса не установлен. Управляющая логика обнаруживает, что этот флаг не установлен, настраивает ALU на передачу абсолютного адреса, хранящегося в IR, без изменений, значение направляется на вход ПК.
- Шаг 17: выполнить, ПК обновлен адресом перехода (4). Поскольку произошла инструкция перехода, фаза приращения не выполняется, поскольку ПК уже содержит адрес следующей инструкции. Команда LOAD перескакивает, т.е. игнорируется.
Память, используемая в системе (рисунок 38), хранит как инструкции, так и данные, то есть архитектура фон Неймана. Его можно было бы построить из компонентов встроенной памяти, используемых в ПЛИС, но их очень сложно настроить. I.е. инициализировать с помощью необходимых инструкций (машинный код) и значений данных. Поэтому я решил схитрить и использовать немного VHDL. Это представление на языке описания оборудования (HDL) того, что должна делать память, абстрагируясь от логических вентилей низкого уровня, из которых она фактически сделана. Это позволяет мне просто вводить двоичные значения, как показано на рисунке 39. Примечание , я показал только первые несколько значений. Затем это описание синтезируется (преобразуется) инструментами Xilinx в необходимые аппаратные компоненты.Полная компьютерная система показана на рисунке 40. Диаграмму с высоким разрешением можно скачать здесь: (Ссылка).
Рисунок 38: RAM
Рисунок 39: VHDL (асинхронный, позже измененный для синхронного)
Тестовая программа, показанная на рисунке 38 (машинный код, комментарии справа выделены зеленым цветом), загружает значение, хранящееся в ячейке памяти 10, и добавляет к нему 10 (десятичное 10, а не двоичное 10). Если это не приводит к переполнению, т.е.значению больше 255, результат записывается обратно в ячейку памяти 10.Если он действительно генерирует переполнение, то есть 250 + 10, значение насыщается до максимального значения, например 255. Следовательно, программа считает от 0 до 250, а затем останавливается, как показано в моделировании, показанном на рисунке 41, посмотрите на нижнюю строку, это показывает содержимое ячейки памяти 10 как шестнадцатеричное значение (основание 16). Примечание , схемы Xilinx, символы и тестовый стенд VHDL для всей системы можно загрузить по ссылкам ниже (в следующем разделе). Поиграйте, измените значения данных или напишите свою собственную программу, а затем повторно запустите моделирование (top_level_v1_tb).
Рисунок 40: Полная система
Рисунок 41: Моделирование тестовой программы
Интересный дизайнерский момент, который я, признаться, сейчас пропустил, — это то, как организована память компьютера. SimpleCPU использует архитектуру фон Неймана, поэтому инструкции и данные хранятся в одной и той же памяти. Это вызывает конфликт относительно ширины ячейки памяти, то есть того, сколько бит хранится в каждой ячейке, поскольку инструкции имеют размер 16 бит, а данные — 8 бит.Количество адресуемых ячеек памяти фиксируется адресной шиной, в данном случае 8 бит (256 ячеек). Это дает дизайнеру несколько вариантов выбора:
- RAM 256 x 8 бит: каждая ячейка памяти хранит 8 бит, поэтому инструкция должна быть разделена на две ячейки памяти. В результате фаза выборки процессора теперь должна будет прочитать две ячейки памяти, чтобы получить старший и младший байт инструкции. Для этого требуется, чтобы ПК увеличивался дважды, поэтому добавляется дополнительная фаза к генератору последовательности, показанному на рисунке 26.В качестве альтернативы в систему можно добавить дополнительное оборудование, например инкремент, но для этого потребовался бы дополнительный вход на мультиплексор адресов для подключения ПК + 1 к шине адреса, все это увеличивает сложность оборудования. Преимущество этого подхода в том, что процессор может хранить данные по любому адресу памяти.
- RAM 256 x 16 бит: каждая ячейка памяти хранит 16 бит, поэтому инструкция может быть получена за одну транзакцию памяти. Однако, поскольку ALU и ACC являются 8-битными, теперь возникает проблема того, как 8-битное значение сохраняется в 16-битной ячейке памяти.Простое решение — сохранить данные ЦП в младшем байте и дополнить старший байт значением 0x00. Это означает, что ячейки памяти, используемые для хранения данных, теперь будут тратить 8 бит, поскольку ЦП может только читать и записывать в младший байт. Для системы только с 256 ячейками памяти потеря 50% ваших данных является большим ударом, но, для простоты, это решение, которое использует эта версия simpleCPU, то есть самое простое / наименьшее аппаратное решение.
- RAM 128 x 16 бит: память теперь имеет побайтовую адресацию, каждая ячейка памяти хранит 16-битные значения, однако процессор также может читать / записывать как старший, так и младший байт.Таким образом, эффективная адресная шина сокращается до 7 бит (128 x 16 битных ячеек), поскольку создание байтовой адресации памяти означает, что процессор все еще должен указывать 256 х 8 битных ячеек памяти. Реализовать это на оборудовании немного сложно. Самым простым решением является параллельное подключение двух запоминающих устройств 128 x 8 бит, в одной из которых хранится старший, а другой младший байт. Строки адресной шины A7 — A1 используются как «адресная шина», адресная строка A0 используется для выбора памяти, к которой следует обращаться при выполнении чтения / записи байтов. E.грамм. A0 = 0: младший байт, A0 = 1: старший байт. С помощью небольшой связующей логики это также упрощает запись байтов, поскольку неиспользуемое устройство памяти можно просто отключить, то есть при записи в младший байт нельзя изменять старший байт. Выборка инструкций может выполняться за одну транзакцию, но теперь инструкции выровнены по четным адресам, например. по адресам 0,2,4,6,8 …
Тестирование: «Hello World»
Требование при написании вашей первой программы на любом новом процессоре — вывести на экран «HELLO WORLD».Однако обычно простая задача для процессора без экрана и только с семью основными инструкциями немного сложнее. Самый простой способ добавить экран — использовать последовательный терминал (Link) (Link), а затем передавать пакеты последовательных данных (Link). Однако сначала вам понадобится выходной порт, как показано на рисунке 42. Это просто триггер, вывод CE которого включен только для определенного адреса, в этом примере адрес 0xFF (255). Когда данные записываются по этому адресу (с использованием инструкции OUTPUT), RAM обновляется как обычно, но бит данных 0 также сохраняется в этом триггере, его выход Q подключается к линии TX последовательной шины.
Рисунок 42: Последовательный выходной порт
Каждый символ в строке сообщения «HELLO WORLD» сохраняется в памяти, в ячейках от 0xF0 до 0xFD, как значение ASCII (ссылка). Чтобы упростить программу, они фактически хранятся как их перевернутые формы, например. H = 0x48 (01001000), инвертированный = 0xB7 (10110111). Программа считывает биты каждого символа и выводит их на последовательный порт. Формат пакета последовательных данных для символа «K» (0x4B = 01001011) показан на рисунке 43 (Ссылка). Каждому биту выделяется временной интервал на линии последовательного порта.Скорость по умолчанию для последовательного порта составляет 9600 бит в секунду, т.е. каждый бит действителен для 104 мкс (1/9600), пакеты начинаются со стартового бита (1) и заканчиваются стоповым битом (0). Эти пакеты принимаются терминальной программой, запущенной на удаленном компьютере, и отображаются на ее экране. Последовательные пакеты и дисплей терминала показаны на рисунках 43 — 46.
Рисунок 43: Формат последовательного пакета (ссылка на вики выше)
Рисунок 44: Последовательный пакет HELLO WORLD (захвачен осциллографом)
Рис. 45: Первые три символа «HEL» (захвачено в прицел)
Рисунок 46: Полное сообщение отображается на терминале
Программа для отправки строки сообщения «HELLO WORLD» на последовательный терминал показана ниже.Надеюсь, большая часть кода не требует пояснений :). Следующий передаваемый символ считывается из ячейки памяти 0xE0, применяется битовая маска с помощью побитового И для выбора желаемого бита. На основе этого результата условный переход затем выбирает 0 или 1, которые сохраняются в ячейке памяти 0xFF, то есть в порту вывода (последовательный бит). Это повторяется еще семь раз, пока не будут выведены все восемь битов символов. Приведенная ниже программа могла бы быть существенно сокращена, если бы была включена инструкция SHIFT.Последний поворот — это то, как программа просматривает строку сообщения. Поскольку этот процессор не поддерживает режимы косвенной адресации, для доступа к следующему символу в строке используется самомодифицирующийся код (ссылка), то есть инструкции от 0x4F до 0x58. Программа считывает инструкцию INPUT из памяти, а затем добавляет к этой инструкции 1. Поскольку поле адреса инструкции INPUT находится в младшем байте, это изменяет адрес, который будет считан, на адрес следующего символа в строке. Затем эта измененная инструкция записывается обратно в память и выполняется программой.Само собой разумеется, что самомодифицирующийся код, то есть программа, которая перезаписывает себя, не является хорошей идеей, однако в этом случае она очень полезна. Примечание , в ранних компьютерах именно так были реализованы первые подпрограммы, то есть функции. Затем программа выбирает следующий символ, сохраняя его в ячейке памяти 0xE0, если это NULL (значение 0), программа завершается, в противном случае программа переходит в ячейку памяти 0x02 и повторяет код TX. С точки зрения структуры программного обеспечения было бы неплохо, если бы процессор поддерживал подпрограммы, возможно, для версии 2.
DATA_RAM_WORD '("1010000011110000"), --00 INPUT ACC 0xF0 - загрузить первый символ DATA_RAM_WORD '("1110000011100000"), --01 OUTPUT ACC 0xE0 - обновить tx-память DATA_RAM_WORD '("0000000000000001"), --02 ЗАГРУЗИТЬ ACC 1 - Стартовый бит DATA_RAM_WORD '("1110000011111111"), --03 OUTPUT ACC 0xFF - установить высокий уровень последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --05 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000000101"), --06 JUMP NC 0x05 - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --07 INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000000001"), --08 И ACC 0X01 - бит маски 0 DATA_RAM_WORD '("1001000000001011"), --09 JUMP Z 0x0B - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --0A НАГРУЗКА ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --0B OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --0D ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000001101"), --0E JUMP NC 0x0D - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --0F INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000000010"), --10 И ACC 0X02 - бит маски 1 DATA_RAM_WORD '("1001000000010011"), --11 JUMP Z 0x13 - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --12 ЗАГРУЗИТЬ ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --13 OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --15 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000010101"), --16 JUMP NC 0x15 - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --17 INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000000100"), --18 И ACC 0X04 - бит маски 2 DATA_RAM_WORD '("1001000000011011"), --19 JUMP Z 0x1B - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --1A LOAD ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --1B OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --1D ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000011101"), --1E JUMP NC 0x1D - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --1F INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000001000"), --20 И ACC 0X08 - бит маски 3 DATA_RAM_WORD '("1001000000100011"), --21 JUMP Z 0x23 - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --22 ЗАГРУЗИТЬ ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --23 OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --25 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000100101"), --26 JUMP NC 0x25 - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --27 INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000010000"), --28 И ACC 0X10 - бит маски 4 DATA_RAM_WORD '("1001000000101011"), --29 JUMP Z 0x2B - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --2A LOAD ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --2B OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --2D ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000101101"), --2E JUMP NC 0x2D - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --2F INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000000100000"), --30 И ACC 0X20 - бит маски 5 DATA_RAM_WORD '("1001000000110011"), --31 JUMP Z 0x33 - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --32 ЗАГРУЗИТЬ ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --33 OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --35 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000110101"), --36 JUMP NC 0x35 - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --37 INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000001000000"), --38 И ACC 0X40 - бит маски 6 DATA_RAM_WORD '("1001000000111011"), --39 JUMP Z 0x3B - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --3A НАГРУЗКА ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --3B OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --3D ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110000111101"), --3E JUMP NC 0x3D - повторить 50 раз DATA_RAM_WORD '("1010000011100000"), --3F INPUT ACC 0xE0 - прочитать символ DATA_RAM_WORD '("0001000010000000"), --40 И ACC 0X80 - бит маски 7 DATA_RAM_WORD '("1001000001000011"), --41 JUMP Z 0x43 - при нулевом выходе DATA_RAM_WORD '("0000000000000001"), --42 ЗАГРУЗИТЬ ACC 1 - иначе установить 1 DATA_RAM_WORD '("1110000011111111"), --43 OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0000000011001110"), --04 ЗАГРУЗИТЬ ACC 0xCE - цикл ожидания (104us) DATA_RAM_WORD '("0100000000000001"), --45 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110001000101"), --46 JUMP NC 0x45 - повторить 50 раз DATA_RAM_WORD '("0000000000000000"), --47 LOAD ACC 0 - стоповый бит DATA_RAM_WORD '("1110000011111111"), --48 OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0100000000000001"), --49 ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110001001001"), --4A JUMP NC 0x49 - повторить 256 раз DATA_RAM_WORD '("0000000000000000"), --4B LOAD ACC 0 - стоповый бит DATA_RAM_WORD '("1110000011111111"), --4C OUTPUT ACC 0xFF - Установить бит последовательного порта DATA_RAM_WORD '("0100000000000001"), --4D ADD ACC 1 - счетчик приращения DATA_RAM_WORD '("1001110001001101"), --4E JUMP NC 0x4D - повторить 256 раз DATA_RAM_WORD '("1010000001010010"), --4F INPUT ACC 52 - инструкция чтения DATA_RAM_WORD '("0100000000000001"), --50 ADD ACC 1 - увеличить поле адреса DATA_RAM_WORD '("1110000001010010"), --51 OUT ACC 52 - инструкция обновления DATA_RAM_WORD '("1010000011110000"), --52 INPUT ACC 0xF0 - выполнить инструкцию DATA_RAM_WORD '("1110000011100000"), --53 OUTPUT ACC 0xE0 - обновить tx-память DATA_RAM_WORD '("0001000011111111"), --54 И ACC 0xFF - char NULL? DATA_RAM_WORD '("1001010000000010"), --55 JUMP NZ, 2 - нет, TX DATA_RAM_WORD '("0000000011110000"), --56 LOAD ACC 0xF0 - восстановить исходную инструкцию DATA_RAM_WORD '("1110000001010010"), --57 OUT ACC 52 DATA_RAM_WORD '("1000000001010110"), --58 JUMP 56 - да, остановка DATA_RAM_WORD '("0000000010110111"), --F0 H = 0x48 inv 10110111 DATA_RAM_WORD '("0000000010111010"), --F1 E = 0x45 inv 10111010 DATA_RAM_WORD '("0000000010110011"), --F2 L = 0x4C inv 10110011 DATA_RAM_WORD '("0000000010110011"), --F3 L = 0x4C inv 10110011 DATA_RAM_WORD '("0000000010110000"), --F4 O = 0x4F inv 10110000 DATA_RAM_WORD '("0000000011011111"), --F5' SP '= 0x20 inv 11011111 DATA_RAM_WORD '("0000000010101000"), --F6 W = 0x57 inv 10101000 DATA_RAM_WORD '("0000000010110000"), --F7 O = 0x4F inv 10110000 DATA_RAM_WORD '("0000000010101101"), --F8 R = 0x52 inv 10101101 DATA_RAM_WORD '("0000000010110011"), --F9 L = 0x4C inv 10110011 DATA_RAM_WORD '("0000000010111011"), --FA D = 0x44 inv 10111011 DATA_RAM_WORD '("0000000011110010"), --FB' CR '= 0x0D inv 11110010 DATA_RAM_WORD '("0000000011110101"), --FC' LF '= 0x0A inv 11110101 DATA_RAM_WORD '("0000000000000000"), --FD' NULL '= 0x00 DATA_RAM_WORD '("0000000000000000"), --FE DATA_RAM_WORD '("0000000000000000") --FF
Пришлось внести несколько небольших изменений в схемы и файлы VHDL, чтобы минимизировать размер оборудования. E.грамм. В нынешнем виде память реализована программными средствами как 16-битный мультиплексор 256: 1, который занимает довольно много места. Добавление часов позволяет отображать память в BlockRam, то есть в RAM по умолчанию на FPGA. Последний проект, печатающий «HELLO WORLD», можно скачать здесь: (Ссылка). ПРИМЕЧАНИЕ : эта версия содержит исправленную ниже версию с «ошибками».
Что дальше для этого компьютера, я хочу посмотреть, смогу ли я заставить его вписаться в Xilinx 9572 CPLD, который мы используем для обучения проектированию оборудования, должен будет использовать внешнее ОЗУ / ПЗУ, однако основным ограничением является то, что этот программируемый оборудование имеет очень небольшое количество оборудования e.грамм. 72 шлепанца. Обновление, отказался от этой идеи в основном из-за проблем с источниками компонентов для RAM и EPROM, необходимых для памяти инструкций и данных.
Тестирование: полностью протестировано 🙂
Первоначально этот процессор был кратким примером использования, чтобы проиллюстрировать процесс реализации простой архитектуры процессора на основе логических вентилей. Признайтесь, я проверил только оборудование, достаточное для того, чтобы получить работу «Hello World», в результате я не проверил, что все инструкции работают правильно :).Получил электронное письмо с просьбой предоставить более подробную информацию / объяснения о работе этого процессора, я подозреваю, что были некоторые опечатки / ошибки, поэтому я подумал, что лучше провести «полный» тест. Набор инструкций для этого станка:
- ACC нагрузки kk: 0000 XXXX KKKKKKKK
- Добавить ACC kk: 0100 XXXX KKKKKKKK
- и ACC kk: 0001 XXXX KKKKKKKK
- Дополнительный ACC kk: 0110 XXXX KKKKKKKK
- Вход ACC pp: 1010 XXXX PPPPPPPP
- Выход ACC pp: 1110 XXXX PPPPPPPP
- Прыжок U aa: 1000 XXXX AAAAAAAA
- Перейти Z aa: 1001 00XX AAAAAAAA
- Прыжок C aa: 1001 10XX AAAAAAAA
- Перейти NZ aa: 1001 01XX AAAAAAAA
- Прыжок NC aa: 1001 11XX AAAAAAAA
Следовательно, приведенный ниже тестовый код должен позволить мне протестировать «все» инструкции:
DATA_RAM_WORD '("0000000000000001"), --00 ЗАГРУЗИТЬ ACC 0x01 - DATA_RAM_WORD '("0100000000000000"), --01 ADD ACC, 0x00 - тест NZ NC ACC = 1 DATA_RAM_WORD '("0100000011111111"), --02 ADD ACC, 0xFF - проверка Z C ACC = 0 DATA_RAM_WORD '("0000000010101010"), --03 ЗАГРУЗИТЬ ACC 0xAA - DATA_RAM_WORD '("0001000000001111"), --04 И ACC, 0x0F - проверка NZ NC ACC = 0x0A DATA_RAM_WORD '("0001000000000000"), --05 И ACC, 0x00 - проверка Z NC ACC = 0x00 DATA_RAM_WORD '("0000000000000001"), --06 ЗАГРУЗИТЬ ACC 0x01 - DATA_RAM_WORD '("0110000000000001"), --07 SUB ACC, 0x01 - проверка Z NC ACC = 0x00 DATA_RAM_WORD '("0110000000000001"), --08 SUB ACC, 0x01 - проверка NZ C ACC = 0xFF DATA_RAM_WORD '("1110000011110000"), --09 ВЫХОДНОЙ ACC, 0xF0 - тест M [0xF0] = 0xFF DATA_RAM_WORD '("0000000000000000"), --0A НАГРУЗКА ACC 0x00 - DATA_RAM_WORD '("1010000011110000"), --0B INPUT ACC, 0xF0 - тестовый ACC = 0xFF DATA_RAM_WORD '("0100000000000000"), --0C ADD ACC, 0x00 - проверить NZ NC ACC = 0x01 DATA_RAM_WORD '("1001010000001111"), --0D JUMP NZ, 0x0F - пропустить ловушку, если верно DATA_RAM_WORD '("1000000000001110"), --0E JUMP 0x0E - ловушка DATA_RAM_WORD '("0100000000000001"), --0F ADD ACC, 0x01 - проверка Z NC ACC = 0x00 DATA_RAM_WORD '("1001000000010010"), --10 JUMP Z, 0x12 - пропустить ловушку, если правильно DATA_RAM_WORD '("1000000000010001"), --11 JUMP 0x11 - ловушка DATA_RAM_WORD '("0000000000000010"), --12 ЗАГРУЗИТЬ ACC 0x02 DATA_RAM_WORD '("0100000011111111"), --13 ДОБАВИТЬ ACC, 0xFF - проверить NZ C ACC = 0x01 DATA_RAM_WORD '("1001100000010110"), --14 JUMP C, 0x16 - пропустить ловушку, если правильно DATA_RAM_WORD '("1000000000010101"), --15 JUMP 0x15 - ловушка DATA_RAM_WORD '("0110000000000001"), --16 SUB ACC, 0x01 - тест Z NC ACC = 0x00 DATA_RAM_WORD '("1001100000011001"), --17 JUMP NC, 0x19 - пропустить ловушку, если верно DATA_RAM_WORD '("1000000000011000"), --18 JUMP 0x15 - ловушка DATA_RAM_WORD '("1000000000000000"), --19 JUMP 0x00 - цикл
Это не полный тест всех функциональных модулей со всеми возможными значениями данных или всеми возможными комбинациями инструкций, так как это может занять вечность, но этот код действительно тестирует типичное использование, поэтому должен выявить любые серьезные проблемы.Тестирование началось нормально, ЗАГРУЗИТЬ, И, ДОБАВИТЬ, казалось, все работает нормально, затем я пришел к инструкции SUB :(. Я пропустил обновление ACC, также испортил MUX_A и MUX_B. Для ADD и AND не имеет значения, какой Таким образом, операнды передаются в ALU, например (ACC = InputA, Constant = InputB) или (ACC = InputB, Constant = InputA), оба будут давать один и тот же результат. Однако нам нужно вычитание (ACC — Константа), выполняя вычитание наоборот не так полезно :(. Это было «легко» исправить, т.е. переключить пути данных от ACC и IR к двум мультиплексорам, но это означает, что я обновил логику декодера и, что еще больше раздражает, перерисовал все блок-схемы в слайдах лекции, в один прекрасный день :).Поэтому переключил шины данных и обновил декодер, теперь ACC имеет правильное значение, но, другая радость, не учел флаг переноса. ALU выполняет вычитание путем добавления отрицательного числа, поэтому, если ACC = 1, вычитание 1 установит флаг переноса, поскольку эта операция реализуется путем добавления 255. В настоящее время не знаю, как справиться с этим, я чувствую, что есть простой решение кричит на меня, но на данный момент иду на испытанный и проверенный подход игнорирования его :). Новые и улучшенные файлы проекта SimpleCPU и этот тестовый код можно скачать здесь: (Ссылка).
Это произведение находится под международной лицензией Creative Commons Attribution-NonCommercial-NoDerivatives 4.0.
Контактный адрес электронной почты: [email protected]
Назад
Понимание возможностей и ограничений процессоров квантового управления посредством определения характеристик схем
Аннотация
© 2020 Международная конференция по перезагрузке вычислений (ICRC) Продолжение масштабирования квантовых компьютеров зависит от создания классических конвейеров аппаратного управления, которые являются масштабируемыми, расширяемыми и обеспечивают отклик в реальном времени.Архитектура набора команд (ISA) управляющего процессора обеспечивает функциональные абстракции, которые отображают семантику высокого уровня квантовых языков программирования на генерацию импульсов низкого уровня аппаратными средствами. В этой статье мы предлагаем методологию количественной оценки эффективности ISA для кодирования квантовых схем для квантовых устройств промежуточного масштаба с O (102) кубитами. Модель характеризации, которую мы определяем, отражает производительность, способность соблюдать ограничения по времени, масштабируемость для будущих квантовых микросхем и другие важные соображения, делающие их полезными руководителями для будущих проектов.Используя нашу методологию, мы предлагаем скалярные (QUASAR) и векторные (qV) квантовые ISA в качестве расширений и сравниваем их с другими ISA по таким показателям, как эффективность кодирования схемы, способность удовлетворять требованиям квантовых микросхем в реальном времени и возможность масштабировать до большего количества кубитов.
Основное содержание
Загрузить PDF для просмотраПросмотреть больше
Дополнительная информация
Меньше информации
Закрывать
Введите пароль, чтобы открыть этот PDF-файл:
Отмена
Ok
Подготовка документа к печати…
Отмена
Сортировать по:
Даллас, Техас 75243 (Северо-восточный район Далласа)
Миннеаполис, MN 55414 (район Проспект-парка)
IDEX Биометрия Рочестер, штат Нью-Йорк
| Будьте первыми, кто увидит новые вакансии в области разработки схем R&D процессора
Создавая оповещение о вакансиях, вы соглашаетесь с нашими Условиями.Вы можете изменить настройки своего согласия в любое время, отказавшись от подписки или как указано в наших условиях. |
Аннотация: | Пропускная способность оптических сетей связи продолжает неослабевать. Приложения для потоковой передачи видео, социальных сетей и облачных вычислений стимулируют экспоненциальный рост трафика, передаваемого по мировым сетям ИКТ, который до сих пор поддерживается за счет увеличения количества центров обработки данных и эффективного и действенного использования существующего оптического волокна.Для удовлетворения растущих требований к пропускной способности требуются все более сложные форматы модуляции и управление спектром для достижения эффективного использования доступного спектра, обеспечиваемого оптическим волокном. Более того, технология, разработанная для оптической связи, находит все более широкое применение в других секторах, таких как центры обработки данных, беспроводная связь 5 и 6 G; лидар и радар. В конечном счете, некоторые важные функции обработки сигналов должны выполняться на скоростях, выходящих за рамки чисто электронных средств, даже с учетом ожидаемого технологического развития.Опция состоит в том, чтобы выполнять обработку сигнала в оптической области. Процессоры оптических сигналов в основном аналоговые и линейные по своей природе. Чтобы обеспечить высокую производительность, аналоговый процессор должен хорошо управляться аналогично многочисленным и сложным контроллерам, используемым в обрабатывающей промышленности. Следовательно, потребуется дальнейшее расширение управления на более глубокие уровни физического уровня, достигающие оптического уровня. Например, текущие реконфигурируемые оптические мультиплексоры ввода-вывода окрашены и направлены, а сетка каналов мультиплексирования с разделением по длине волны, формат модуляции транспондеров и маршрутизация — все фиксированные.За счет оптимизации интерфейса между физическими компонентами, датчиками и процессорами может быть достигнута технология эластичных оптических сетей за счет использования настраиваемых оптических мультиплексоров добавления-вывода с возможностью изменения цвета, направления, конкуренции, без сетки, фильтров и без промежутков центральные частоты и ширина каналов, гибкие поднесущие в суперканалах, гибкие форматы модуляции и транспондеры с прямым кодированием с контролем ошибок, а также маршрутизация и спектральное назначение с учетом искажений. Целью данной диссертации является продвижение новейших технологий в фотонных схемах и подсистемах посредством предложения новой архитектуры; изучение возможности фотонной интеграции и доказательство реализации концепции с использованием имеющихся ресурсов.Цель состоит в том, чтобы представить новые архитектурные концепции, которые позволяют эффективно использовать физические компоненты и / или оптические процессоры с пониженным энергопотреблением, занимать меньше места и обеспечивать скорость по сравнению с полностью электронными реализациями. В диссертации представлены четыре тематических исследования, основанных на одной или нескольких опубликованных статьях и дополнительных материалах, которые способствуют достижению цели диссертации. Первое исследование представляет архитектуру когерентной электрооптической схемы, которая генерирует N пространственно различных коррелированных по фазе гармонически связанных несущих с использованием обобщенного интерферометра Маха-Цендера с его сумматором N × 1, замененным оптическим дискретным преобразованием Фурье N × N.Эта архитектура включает в себя все известные архитектуры на основе интерферометра Маха-Цендера при соответствующем выборе выходного порта (ов) и размерности N, хотя основным предполагаемым применением является формирование поднесущих с фазовой корреляцией для систем оптической передачи следующего поколения. Затем теоретическое предсказание проверяется экспериментально с использованием доступной в лаборатории фотонной интегральной схемы, изготовленной для других приложений. Позже вводится новое расширение архитектуры схемы путем замены оптической сети с дискретным преобразованием Фурье с использованием комбинации правильно выбранного фазовращателя и одного ответвителя MMI.Во втором исследовании предлагаются две новые архитектуры для встроенного в кристалл панорамного спектрометра сверхвысокого разрешения и представлены их конструкция, анализ, возможность интеграции и проверка с помощью моделирования. Целевое приложение — мониторинг мощности мультиплексированных сигналов с разделением по длине волны как в фиксированной, так и в гибкой сетке по всему C-диапазону с минимальным временем сканирования и точностью частоты выше 1 ГГц. Эти две архитектуры объединяют синхронно каскад сканирующего гребенчатого фильтра и канальный фильтр грубой очистки.Тонкая фильтрация достигается с помощью кольцевого резонатора, тогда как грубая фильтрация достигается с помощью линейной волноводной решетки соответствующей конфигурации. Полностью когерентная первая архитектура оптимизирована для компактности, но основана на воспроизводимых процессах изготовления для согласования длин оптического пути между интерферометром Маха-Цендера и решеткой волновода с множеством входов. Вторая архитектура менее компактна, чем первая, но устойчива к производственным допускам, поскольку не требует согласования длины пути.Третье исследование предлагает новую архитектуру схемы для модуляции с одной боковой полосой или преобразования частоты, в которой используется каскадная архитектура модулятора Маха-Цендера, отходящая от традиционного решения с двойным параллелизмом. Теоретический анализ показывает, что схема имеет оптическое преимущество на 3 дБ и электрическое преимущество на 3 дБ по сравнению с традиционным решением. Электрическое преимущество в 3 дБ увеличивает линейный рабочий диапазон модулятора Маха-Цендера до насыщения ВЧ-усилителя. Экспериментальная проверка предложенной архитектуры обеспечивается с использованием доступной фотонной интегральной схемы.Предлагаемая схема может также выполнять сложную модуляцию. Также описана альтернативная реализация, основанная на модуляторах поляризации. Четвертое исследование представляет собой теоретическое моделирование фотонной генерации широкополосного радиочастотного фазовращателя. Предлагаемый фазовращатель может генерировать любую фазу без ограничений: сложная передача фазовращателя следует по траектории, которая вращается по единичной окружности и может огибать начало координат любое количество раз в любом направлении, что имеет большую полезность при настройке RF- фотонные системы.Затем предложенная концепция проверяется экспериментально с использованием готовых низкочастотных электронных компонентов. |
Программирование процессора PIC в цепи с использованием источника питания 3,3 В
Что вы узнаете:
- Реализация двунаправленного преобразования мощности в солнечной установке.
- Как материалы WBG играют ключевую роль в преобразовании энергии высокого напряжения.
- Разработка датчиков / мониторинга напряжения и тока с более высокой точностью.
В то время как количество фотоэлектрических солнечных установок продолжает расти, дисбаланс между спросом и предложением солнечной сети стал основным ограничением.Солнечная энергия в изобилии доступна около полудня, когда спрос невысок, что означает, что потребители платят более высокую стоимость за ватт во время пикового использования утром и вечером.
Системы накопления энергии (ESS) для жилых, коммерческих и коммунальных солнечных установок позволяют инверторам накапливать энергию, собранную в течение дня, или извлекать энергию из сети, когда спрос самый низкий, обеспечивая эту накопленную энергию, когда спрос высок. Добавляя ESS к солнечной энергосистеме, пользователи могут снизить затраты за счет практики, известной как «пиковое сглаживание».”
В этой статье я рассмотрю особенности проектирования подключенной к сети, интегрированной системы хранения солнечных батарей.
Двунаправленное преобразование мощности
Обычные солнечные установки включают однонаправленные силовые каскады постоянного и переменного тока, но однонаправленный подход представляет собой серьезное препятствие для интеграции ESS. Для этого требуется больше компонентов, модулей и подсистем, что значительно увеличивает стоимость включения ESS в существующую солнечную установку.
Добавление накопителя к существующей солнечной установке влечет за собой объединение двух путей для зарядки и разрядки батареи в один путь, включающий как коррекцию коэффициента мощности (PFC), так и каскады мощности инвертора. Но как построить двунаправленные преобразователи мощности, чтобы заменить два однонаправленных преобразователя мощности?
Продвинутая двунаправленная топология питания, показанная на Рис. 1 , обеспечивает безопасную и эффективную передачу энергии между сетью, фотоэлектрической решеткой и системой управления батареями.Микроконтроллеры (MCU), такие как MCU реального времени C2000, популярны для таких топологий питания. Каждый из этих контроллеров может управлять одним или несколькими силовыми каскадами, чтобы обеспечить двунаправленную архитектуру преобразования мощности с цифровым управлением для солнечного инвертора с поддержкой ESS. Управление с помощью микроконтроллера упрощает использование более сложных схем широтно-импульсной модуляции (ШИМ) для силовых переключателей, управляющих преобразованиями постоянного тока в переменный и постоянного в постоянный.
1. Показана блок-схема двунаправленного каскада PFC и инвертора.
Гибридный инвертор помогает ступеням преобразования достичь большей эффективности, что становится гораздо более важным в микросетях, интегрированных с ESS, поскольку происходит несколько преобразований мощности. Системы преобразователей энергии обрабатывают операции постоянного тока для зарядки и разрядки аккумуляторов, а также операции постоянного тока в переменный и переменный-постоянный, которые преобразуют энергию постоянного тока, хранящуюся в батарее, в переменный ток для подачи в сеть и обратно.
Высоковольтные батареи
В микросетевой системе с интегрированным накопителем основная функция батареи заключается в хранении фотоэлектрической энергии и подаче энергии в сеть по запросу.Литий-ионные аккумуляторные батареи предлагают гораздо более высокую емкость заряда на единицу, чем свинцово-кислотные аккумуляторы.
В связи с тем, что аккумуляторные блоки на 400 В становятся популярными в сегменте электромобилей, также наблюдается тенденция к увеличению напряжения аккумуляторов в солнечных установках электросетей, помимо аккумуляторных блоков на 48 В. Но как управлять преобразованием мощности для аккумуляторных блоков на 400 В?
Наряду с микроконтроллерами, которые обеспечивают управление системой и обмен данными, помогая ESS интегрироваться в более крупные системы, силовые переключатели с низкими потерями и высокой эффективностью также делают системы хранения энергии безопасными и надежными.Компактные силовые переключатели на основе материалов из карбида кремния (SiC) и нитрида галлия (GaN) вместе с микроконтроллерами управления в реальном времени помогают адаптировать двунаправленный преобразователь, чтобы он мог работать с различными накопителями энергии постоянного тока ( Рис.2) .
2. Конструкция преобразователя постоянного тока с двойным активным мостом обеспечивает двунаправленную работу для поддержки приложений зарядки и разрядки аккумуляторов.
Полупроводники с широкой запрещенной зоной (WBG), такие как SiC и GaN, будут играть важную роль в системах преобразования мощности, которые могут работать с увеличенными диапазонами напряжения батареи, учитывая более высокую плотность мощности преобразователя и более низкие коммутационные потери.Системы преобразования энергии также помогают аккумуляторным блокам лучше справляться с колебаниями мощности в системах распределенной генерации и делают работу сети умной и устойчивой в более высоких и более широких диапазонах напряжения.
Со временем солнечные установки могут имитировать аккумуляторные батареи, используемые в электромобилях. Растет уверенность в том, что аккумуляторные батареи, которые в настоящее время используются в электромобилях, будут переработаны для получения второй жизни в качестве ESS, подключенного к сети.
WBG Материалы для повышения эффективности и естественной конвекции
Чтобы создать элегантную настенную систему хранения, вы должны убедиться, что конструкция инвертора термически оптимизирована с минимальным охлаждением естественной конвекцией.Архитектура с распределенным питанием может распределять концентрацию тепла по всей системе. Такие архитектуры также позволяют инвертору накопителя энергии, необходимому для поддержки высоких уровней тока при различных напряжениях, и обеспечивать надежную переходную реакцию на быстро меняющиеся нагрузки.
Для такой системы потребуются драйверы затвора, которые могут поддерживать быстрое переключение и обеспечивать защиту на частотах переключения от 100 до 400 кГц. Если переключение происходит недостаточно быстро, ступени преобразования мощности могут понести огромные потери эффективности.
Вот где вступают в игру такие материалы WBG, как SiC и GaN, предлагая более быстрое переключение и более высокую плотность мощности. Эти полупроводниковые устройства упрощают проектирование систем, не требующих охлаждения с помощью вентиляторов. LMG3425R030, устройство на основе GaN со встроенным драйвером и функциями защиты, обеспечивает компактный форм-фактор, более высокую плотность мощности и возможности более быстрого переключения.
Драйвер затвора преобразует цифровой сигнал ШИМ от контроллера в ток, необходимый для полевого транзистора SiC или GaN.Контроллеры на основе ШИМ обеспечивают точную выборку напряжений и токов на нескольких этапах переключения мощности.
Двунаправленный PFC с тотемным полюсом GaN CCM высокой плотности с использованием эталонного дизайна MCU C2000 включает двунаправленный силовой каскад PFC без моста с тотемными полюсами, в котором используется MCU реального времени C2000 и GaN FET LMG3410R070 со встроенным драйвером и защитой (рис. ) . Двунаправленная конструкция мощностью 3 кВт поддерживает фазовый сдвиг и адаптивное мертвое время для повышения эффективности, а также нелинейный контур напряжения для уменьшения скачков напряжения во время переходных процессов в режиме PFC.
3. В эталонной конструкции тотемного полюса GaN CCM используется цифровое управление с использованием микроконтроллера реального времени C2000 и устройства GaN с быстрым переключением со встроенным драйвером затвора и функциями защиты.
Измерение тока и напряжения
Переключение силовой конструкции на высоких частотах включает в себя задачу точного измерения тока и напряжения. Измерения тока на основе шунта не только более точны, но и обеспечивают более быстрое время отклика, позволяющее быстро реагировать на любые изменения в сети, отключая систему в случае короткого замыкания или потери соединения с сетью.
Измерение тока является неотъемлемой частью инверторно-ориентированных конструкций, поскольку алгоритмы управления требуют измерения тока для целей управления. Доступны проектные решения для измерения изолированного тока с использованием внешних шунтов и изолированных усилителей или модуляторов и источников питания. Например, в эталонной конструкции трехуровневого трехфазного преобразователя переменного тока в постоянный SiC используется изолированный модулятор AMC1306 для контроля тока нагрузки. AMC3306 — это изолированный модулятор нового поколения со встроенным преобразователем постоянного тока в постоянный, который обеспечивает работу с одним источником питания.
Для любых цифровых сигналов, которые должны передавать данные в различных областях напряжения в приложениях с инверторным приводом, использующих более высокие напряжения, можно использовать изолирующие устройства для преодоления ограничений по напряжению. Цифровые изоляторы, такие как ISO7741, позволяют высокочастотным сигналам пересекать границы мощности, защищая при этом цифровые схемы низкого напряжения от области высокого напряжения.
Преобразователи мощности должны измерять ток сети, чтобы гарантировать, что ток находится в фазе с напряжением.Измерения тока и напряжения также контролируют ток зарядки аккумулятора, а также работу инвертора и защиту от перегрузки.
Заключение
Гибридные инверторы, которые обеспечивают двунаправленное преобразование мощности постоянного и переменного тока и постоянного тока, скорее всего, заменят традиционные солнечные инверторы через несколько лет. Гибридные инверторы позволяют разработчикам солнечных инверторов реализовать преобразование мощности с широким диапазоном выходной мощности и напряжений.
Для солнечных инверторов с возможностью накопления важны более высокие и более широкие диапазоны напряжения батареи.Наряду с потребностью в высокой эффективности и естественной конвекции, базовые строительные блоки, такие как управление на основе микроконтроллеров и полупроводники WBG со встроенным драйвером затвора и функциями защиты, могут соответствовать этим более высоким и более широким диапазонам напряжения батареи.
Микроконтроллеры реального времени C2000 и устройства на основе GaN LMG3425R030 могут обрабатывать двунаправленную передачу энергии в солнечной сети с возможностью хранения. Аналогичным образом, измерение тока и напряжения на основе шунта может гарантировать безопасную и надежную работу батарей с более высоким напряжением и быстродействующих преобразователей мощности.
Центральный процессор (ЦП) — полупроводниковая техника
Центр знаний
ЦП — это специализированная интегральная схема или IP-ядро, обрабатывающее логику и математику.
Центральный процессор (ЦП) представляет собой либо выделенную интегральную схему (ИС), либо ядро интеллектуальной собственности (IP) на ИС, которое обрабатывает логику и математику.ЦП может обрабатывать высокоуровневое предоставление ресурсов для других вычислительных элементов более эффективно, чем другие процессоры, но он неэффективен при функциях умножения и накопления.
ИС ЦП часто считается основным процессором в настольных и портативных компьютерах, но также используется во встроенных системах. Обычно ЦП разрабатываются для универсального использования, но в семействе ЦП есть варианты, предназначенные для конкретных вертикальных рынков, таких как автомобилестроение или Интернет вещей. ЦП в компьютере раньше представлял собой систему, состоящую из нескольких микросхем.Когда промышленность смогла разместить процессор компьютера на одном кристалле, он получил название микропроцессор.
ЦП
состоят из блока обработки, называемого ALU (арифметический / логический блок), блока управления, который контролирует, как данные поступают и выходят из чипа, регистры, операции (выборка, декодирование, выполнение), которые следуют архитектуре набора команд (ISA ) и ввод / вывод. ISA описывается как граница между программным и аппаратным обеспечением. ISA определяет операнды: какой тип, где хранятся (какие хранятся в памяти, какие хранятся в ЦП) и какого размера.
ЦП уменьшился в размере и масштабе благодаря закону Мура, но уменьшение размера процессора приближается к пределу полезности.
В чип можно установить несколько процессоров в качестве IP-ядер. Чтобы решить, какой тип процессора использовать в ИС, нужно изучить варианты, и в одной ИС можно использовать несколько типов процессоров. Кластеры графических процессоров могут обрабатывать потоковые данные лучше, чем один графический процессор, но они слишком энергоемкие, чтобы использовать их повсюду. Кластеры DSP могут делать то же самое для звука, но они не очень хороши в классическом вычислении чисел.Кроме того, есть встроенные FPGA для программируемости и безопасности, TPU для ускорения определенных алгоритмов и, возможно, некоторые микроконтроллеры, добавленные в смесь. Микроконтроллеры требуют меньше энергии, чем ЦП, но ЦП лучше подходит для координации множества функций, таких как то, что и где обрабатывается, что получает приоритет и как все это организуется во времени, которое часто измеряется наносекундами.
Стоматологическая продукция и оборудование для стоматологических лабораторий
В US Dental Depot Inc мы стремимся предлагать профессиональные услуги и предоставлять дополнительные бренды высококачественной продукции по конкурентоспособным ценам.Мы являемся дилерами более 65 ведущих производителей стоматологической продукции по всему миру.
Мы намерены строить прочные отношения с нашими клиентами, создавая полную уверенность как в наших знаниях, так и в круглосуточной сети поддержки. Быть ценным клиентом US Dental Depot Inc всегда было для меня уникальным опытом. Нашим главным приоритетом всегда было относиться к нашим клиентам с уважением и индивидуальным вниманием, которых они заслуживают. Делаем покупку расходных материалов и оборудования легкой и быстрой, что выгодно отличает нас от всех других конкурентов.Для наших клиентов мы позаботимся о любых особых требованиях к доставке или объединим заказы от разных поставщиков в одну отправку. Наши запасы, эффективный отдел закупок и сильные оптовые закупки позволяют нам поставлять товары по лучшим ценам и в надежные сроки. Все, что мы делаем, сосредоточено на обслуживании наших клиентов. Мы достигаем нашей цели — стать надежным советником и консультантом, предлагая нашим клиентам инструменты и знания для ведения их бизнеса наиболее эффективными и прибыльными способами.Наш интернет-магазин предоставляет клиентам US Dental Depot возможность прямого заказа, просмотра и подтверждения заказа в режиме реального времени. Кроме того, веб-сайт US Dental Depot Inc предлагает онлайн-каталог с изображениями продуктов, ценную информацию по уходу за инструментами, инструкции по эксплуатации, объявления о новых продуктах и многое другое. W e по-прежнему привержена обслуживанию наших клиентов, партнеров-поставщиков, инвесторов, общества и команды US Dental Depot Inc и твердо верит, что наши лучшие годы еще впереди.
Чистый рост компании составляет 60% в год с момента присутствия на рынке.
НАША ПОЛИТИКА
ПОЛИТИКА ВОЗВРАТА
СТОМАТОЛОГИЧЕСКИЙ ОТДЕЛ: Если вы недовольны своей покупкой, вы всегда можете вернуть ее в течение 7 рабочих дней с момента получения товара для получения кредита магазина. (Стоимость доставки не включена в возврат, и Заказчик оплачивает доставку обратно в наш офис). Товар должен быть возвращен целым, неиспользованным и в оригинальной упаковке / состоянии.Должен содержать руководство по продукту, все аксессуары и документацию для возврата, замены, если он был неисправен, или кредита в вашем аккаунте.
Во всех случаях взимается плата за возврат или переупаковку в размере 15% (если посылка не была отклонена и так и не получена). Дополнительная плата может взиматься за продукты, возвращенные с повреждениями и / или отсутствующими элементами, например руководствами и аксессуарами.
Всегда звоните заранее, чтобы получить номер RMA, иначе посылки могут быть отклонены при входе на склад.
Для производителей в США
Возврат должен быть разрешен производителем в течение 7 дней с даты получения покупателем. Пожалуйста, позвоните нам, чтобы узнать политику производителя (разрешение на возврат материалов) и другие спецификации возврата. RMA будет включать инструкции по возврату вашего продукта. После принятия производителем товара в новом состоянии в соответствии с этой политикой, покупная цена будет зачислена на кредитную карту, использованную для первоначальной покупки, за вычетом стоимости доставки и минус 15% — 30% комиссии за пополнение запасов в зависимости от политики производителя.Товары должны быть получены в течение 10 дней с момента выдачи RMA. US DENTAL DEPOT взимает административный сбор в размере 7,5% за возврат, если эквивалентная покупка не сделана у того же производителя или поставщика. НЕ ВОЗВРАЩАЙТЕ ТОВАРЫ В США DENTAL DEPOT Inc. ТОВАРЫ, ОТПРАВЛЕННЫЕ В США DENTAL DEPOT Inc. БЕЗ RMA, БУДУТ ОТКЛЮЧЕНЫ И БУДУТ ВОЗВРАЩАЮТСЯ КЛИЕНТУ ЗА СЧЕТ ЗАКАЗЧИКА. ВСЕ ВОЗВРАТЫ ДОЛЖНЫ БЫТЬ ОТПРАВЛЕНЫ НАПРЯМУЮ ПРОИЗВОДИТЕЛЮ, ЕСЛИ ФОРМАЛЬНЫЙ RMA НЕ ВЫДАЕТСЯ DENTAL DEPOT Inc.
Полный возврат средств будет предоставлен в течение 14-30 дней для всех заказов, отмененных до отгрузки продукции.Если заменяемые детали и импортные продукты не находятся в состоянии СПЕЦИАЛЬНОГО ЗАКАЗА
Все продукты должны иметь СЕРИЙНЫЙ № неповрежденный, читаемый и без царапин
ПРЕТЕНЗИИ И ДЕФЕКТНЫЕ ТОВАРЫ: Все претензии по полученным товарам, которые не соответствуют первоначальному заказу на поставку, должны быть поданы в течение 7 рабочих дней с момента получения товара. Все товары проходят проверку качества и упаковываются в идеальном состоянии с цифровыми фотографиями на момент закрытия коробки / заказа.Экспедитор принимает на себя полную ответственность за безопасную доставку всех товаров после того, как они покидают пункт отгрузки EXWORK. Все претензии должны быть задокументированы и незамедлительно поданы перевозчику. О скрытых повреждениях необходимо сообщить перевозчику сразу же после обнаружения с запросом на осмотр. Неисправные продукты могут быть возвращены только в обмен на тот же самый продукт, или, по усмотрению Us Dental Depot Inc, цена покупки будет зачислена на кредитную карту, использованную для первоначальной покупки (или, если возможно, через PayPal).Неисправные продукты могут быть возвращены только в течение 14 дней с даты, когда ваш продукт покинул склад (независимо от того, когда вы фактически приняли товар). Производитель отремонтирует или заменит любую неисправную деталь бесплатно, если не указано иное. Us Dental Depot Inc не несет ответственности за оплату труда или доставку от производителя. Us Dental Depot Inc не покрывает ущерб, возникший в результате неисправного оборудования, неправильной установки, неправильного использования или несчастных случаев, произошедших при транспортировке и транспортировке.Все претензии к перевозчику должны быть предъявлены в момент получения поврежденных предметов покупателем, как указано в счете. Ответственность за претензию несет заказчик. ПРИМЕЧАНИЕ: Us Dental Depot Inc оставляет за собой право изменять эту политику без предварительного уведомления.
Особые заказы и исключения : Следующие специальные, индивидуальные или регулируемые государством товары возврату не подлежат:
Открытые наконечники, малогабаритное оборудование и оборудование по индивидуальному заказу
Открытые расходники
Позиции специального заказа
Персонализированные и / или отпечатанные предметы возврату не подлежат
Контролируемые препараты
Опасные предметы: возврату не подлежат.
Товары с истекшим сроком годности
Некоторые предметы, не подлежащие перепродаже
ГАРАНТИЙНАЯ ПОЛИТИКА
ГАРАНТИЙНЫЕ ПРЕТЕНЗИИ И ДЕФЕКТНАЯ ПРОДУКЦИЯ:
Линии ECCO и PEGASUS
Гарантия распространяется на ЧАСТИ в течение 1 года после дня отправки устройства из офисов USDD.
Не включая затраты на рабочую силу.
Все претензии по полученным товарам, которые не соответствуют первоначальному заказу на поставку, должны быть предъявлены в течение 4 рабочих дней с момента получения товара.Пожалуйста, возвращайте все товары проверенными и упакованными в идеальном состоянии.
Экспедитор принимает на себя полную ответственность за безопасную доставку всех товаров после того, как они покидают пункт отгрузки EXWORK. Все претензии должны быть задокументированы и незамедлительно поданы перевозчику. О скрытых повреждениях необходимо сообщить перевозчику сразу же после обнаружения с запросом на осмотр.
Неисправные продукты могут быть возвращены в обмен на тот же самый продукт, или, по усмотрению Us Dental Depot Inc, покупная цена будет зачислена на кредитную карту, использованную для первоначальной покупки.
Неисправные продукты могут быть возвращены только в течение 14 дней. дней с даты, когда ваш товар покинул склад (независимо от того, когда вы фактически приняли товар).
Производитель отремонтирует или заменит любую неисправную деталь бесплатно, если не указано иное.
Us Dental Depot Inc не несет ответственности за оплату труда или доставку от производителя и обратно.
Для международных клиентов: Стоимость доставки обратно в США, затраты на импорт и обратную доставку покупателю оплачиваются покупателем, за исключением случаев, когда покупатель воспроизводит новый заказ на ту же стоимость возвращенного продукта. В этом последнем случае Us Dental Depot возместит расходы по доставке обратно клиенту, за исключением пошлин, налогов или специальных условий доставки для товаров
.
Us Dental Depot Inc не покрывает ущерб, возникший в результате неисправного оборудования, неправильной установки, неправильного использования или несчастных случаев, произошедших при транспортировке и транспортировке.Все претензии к перевозчику должны быть предъявлены в момент получения поврежденных предметов покупателем, как указано в счете. Ответственность за претензию несет заказчик.
ПРИМЕЧАНИЕ: Us Dental Depot Inc оставляет за собой право изменять эту политику без предварительного уведомления.
Особые заказы и исключения:
Следующие специальные, индивидуальные или регулируемые государством товары возврату не подлежат:
Открытые наконечники, малогабаритное оборудование и оборудование по индивидуальному заказу
Открытые расходные материалы, такие как перчатки, по соображениям безопасности
Позиции специального заказа
Персонализированные и / или отпечатанные предметы возврату не подлежат
Контролируемые препараты
Опасные предметы: возврату не подлежит
Товары с истекшим сроком годности
Определенные предметы, не подлежащие перепродаже
ГАРАНТИИ
— На все продукты распространяется гарантия производителей, хотя в большинстве случаев гарантии могут быть обработаны в наших офисах.
— Электрооборудование идентифицируется серийными номерами для последующих действий.