Что такое мозк компьютера
Всем привет, дорогие друзья. Рад вас видеть! Компьютеры входят в нашу жизнь все плотнее, а значит - мы просто обязаны знать больше о том, как они все-таки работают. Начнем пожалуй!
Интерфейсы для управления киборгами (чипирование живых организмов)
Авторы работы [4] создали киборга путем хирургического соединения портативного микростимулятора с нервами антенн живого таракана. Применяя специальную микростимуляцию, киборгом можно дистанционно управлять поворотами влево и вправо. Намерение движения может быть получено из человеческого мозга через интерфейс мозг-компьютер. Электроэнцефалография (ЭЭГ) на основе установившегося визуального вызванного потенциала (SSVEP) использовалась для передачи намерений человека. Были разработаны и проведены эксперименты с различными вариантами испытаний для проверки производительности предложенной системы. Результаты экспериментов показали, что средние показатели успешности реакций человеческого ИМК и киборга в одном решении превышали 85%. Киборгом можно было успешно управлять через человеческий мозг, чтобы он мог пройти по заранее заданным дорожкам с 20% успешностью.
Структура разработанной системы показана на рис. 1. ИМК на основе SSVEP с тремя состояниями использовался для декодирования намерения контроллера. Три мигающих квадратных блока представляли источник стимуляции SSVEP , которые были расположены отдельно вверху в середине, внизу слева и внизу справа на экране ПК. Частота мерцания каждого блока была установлена равной 12,5, 8,33, 6,818 Гц, обозначая команды управления покоя, левого и правого поворота соответственно. Человек (контролер) сидел перед экраном ПК, чтобы управлять направлением, с портативным устройством захвата ЭЭГ.
Таракан-киборг был разработан после несложной хирургической операции. Авторы хирургическим путем установили микростимулятор на таракана, вставив три крошечные серебряные иглы (левый, правый, заземляющий электрод) в усики таракана и в грудную клетку. Схема электростимуляции для киборга представляла собой прямоугольный импульс с амплитудой 1,5 В, частотой 50 Гц, коэффициентом заполнения 50% и шириной 500 мс. Такая конфигурация могла вызвать умеренную и правильную реакцию киборгов и, следовательно, гарантировать хорошую производительность онлайн-контроля.
Были созданы три таракана-киборга. В каждом эксперименте таракана помещали на расстоянии около 1,5 м от главного компьютера. Для каждого испытуемого киборга было проведено десять контрольных онлайн-испытаний. Перед онлайн-контролем каждый таракан сначала прошел 120-секундный тренировочный прогон для оптимизации классификатора SSVEP. Между двумя последовательными испытаниями давали 120-секундный отдых, чтобы свести к минимуму эффекты от усталости как у людей, так и у насекомых. Кроме того, в этом исследовании были проведены эксперименты для контрольных групп. Для системы в экспериментах были спроектированы и испытаны два типа трасс: S-образная трасса и трасса для обхода препятствий.
Результаты экспериментов показали, что средний показатель успешности онлайн-экспериментов, достигнутых с этой системой, составил 20% для S-образной дорожки. При использовании трассы с препятствиями вероятность успешного онлайн-контроля может достигать 40%. Демонстрационное видео успешной навигации по S-образному треку:
Двоичный код
Двоичный код, как система сохранения данных, появился очень давно. Известно, что ещё во времена древних инков использовался данный принцип передачи информации. На верёвке завязывались узелки, которые означали единицу, а отсутствие узелка означало ноль. Позже система была забыта, но с появлением электроники, снова возродилась. Чтобы найти золотую середину, необходимо познать обе крайности. Это правило актуально и для электроники.
Учитывая несовершенство первых компьютеров, проще было обозначить само наличие сигнала или его отсутствие, чем пытаться опираться на прочие характеристики электрического тока, которые могли быть сильно искажены помехами, но которые пытались использовать — как альтернативный путь развития кодирования. Одно время, разрабатывались процессоры, которые также реагировали на частоту электрического тока. Каждая частота имела собственное значение.
Слабое место подобного метода заключается в том, что любые помехи могут искажать исходный сигнал, что приведет к искажению данных — ошибке. Защитить устройство от посторонних помех довольно сложно, да и генерация импульсов различной частоты тоже усложняет задачу. Поэтому подобный путь передачи и хранения данных не получил широкого распространения.
Инженеры пошли более простым и безошибочным путем. Наличие сигнала, в определенный промежуток времени, стали рассматривать — как единицу, отсутствие сигнала, за такой же промежуток времени, взяли за ноль. Таким образом, сформировалась основа двоичного кода, которой присвоили обобщенное название бит . Для этого случая вполне справедлива поговорка: Отсутствие результата — тоже результат . И действительно, в двоичном коде, единица это один бит информации. Ноль (отсутствие сигнала) также является одним битом информации.
Один бит (ноль или единица) занимает одну ячейку памяти. Правда, из одного бита информации, даже из двух — много пользы не выжмешь. Можно поиграть с их чередованием. Скажем, выражение 00 имеет одно значение, выражению 01 можно присвоить — другое, следовательно, появляется возможность записать ещё два значения: 10 и 11. Всего четыре комбинации из двух битов.
Этого явно недостаточно для передачи и сохранения сложной информации. Если же использовать не два, а три бита, то возможных вариантов становится уже не четыре, а восемь: 000, 001, 010, 100, 101, 110, 011, 111. Увеличение количества бит всего на один — увеличивает количество возможных вариантов вдвое. Использование восьми бит даёт уже 256 вариантов комбинаций и этого вполне достаточно для того, чтобы присвоить каждому варианту свой собственный символ или определенную команду. Получается, что восемь бит уже могут иметь определенное значение и смысл. По этой причине, запись, состоящая из восьми бит, получила название байт .
Подобная схема и легла в основу BIOS , благодаря чему компьютер способен понимать буквы латинского алфавита, цифровые значения от 0 до 9, а также — специальные символы, использующиеся в программировании.
Интерфейсы для реабилитации
Облегчение восстановления корковой активности на основе ИМК, связанной с началом походки после разовой многоуровневой хирургии при церебральном параличе.
Во многих случаях развитие вторичных костно-мышечной патологии при ДЦП способствует потере функции, ухудшению походки, усталости, ограничению активности и ограничению жизнедеятельности. Одна из основных методик - многоуровневая ортопедическая хирургия, направленная на исправление всех деформаций и улучшение походки. После этой процедуры часто требуется период до 2 лет, чтобы выйти на уровень функционального плато.
Большинство методов реабилитации после хирургического вмешательства основаны на периферической реорганизации моторного контроля, инициируемой периферической физиотерапией. Однако ЦП поражает в первую очередь структуры мозга. Это говорит о том, что и периферическая нервная система (ПНС), и центральная нервная система (ЦНС) должны быть интегрированы в физиотерапевтическую и когнитивную реабилитационную терапию. Именно такой подход предлагается в этом направлении создания интерфейсов мозг-компьютер.
Предлагается [5] система ИМК, состоящая из двух этапов: первая - как повторное обучение корковой активности, связанной с походкой (см. Рис. 3): была разработана виртуальная среда, в которой было предложено представить, что они начали ходить. Второй - активный контроль реабилитационной терапии на роботизированной платформе. Таким образом, первый месяц после операции, когда пациент обездвижен, является наиболее подходящим периодом для подготовки мозга к новым образцам походки, которые позже будут продвигаться в процессе физической реабилитации с помощью роботов. С таким подходом удаётся снизить период реабилитации до 2 месяцев.
Речевые интерфейсы
1) ИМК на основе ЭКоГ на основе слухового внимания к естественной речи
Люди, страдающие тяжелыми нейродегенеративными заболеваниями (например, поздней стадией бокового амиотрофического склероза (БАС)), в конечном итоге теряют мышечный контроль и больше не могут жестикулировать или говорить. Недавние исследования показывают, что электрокортикографические (ЭКоГ) сигналы в гамма-диапазоне (т.е. 70–170 Гц) могут использоваться для определения идентичности звуковых речевых стимулов.
В своей работе [1] авторы изучают эту возможность, реализуя систему реального времени на основе BCI2000, которая использует сигналы ЭКоГ для идентификации присутствующего говорящего.
Задача испытуемого заключалась в том, чтобы выборочно проявить внимание к одному из двух одновременно выступающих говорящих. Авторы смешали две (монофонические) речи в бинауральную презентацию, в которой поток, передаваемый каждому уху, содержал 20% ∶ 80% громкости одного говорящего и 80% ∶ 20% громкости другого, соответственно.
Созданный интерфейс получает звуковой сигнал через микрофон или предварительно загруженный файл. Затем фильтр корреляции сигналов вычисляет значения корреляции, то есть корреляцию между двумя (монофоническими) речами, чтобы определить, на какого говорящего пользователь направляет свое внимание. Наконец, фильтр увеличения обратной связи увеличивает громкость обслуживаемого докладчика и уменьшает громкость другого говорящего, чтобы обеспечить обратную связь с субъектом
2) Распознавание непрерывной речи с помощью интерфейса мозг-компьютер
В течение последних двух десятилетий исследования в области интерфейса мозг-компьютер (ИМК) работали над практическими и полезными приложениями для коммуникации и управления. Тем не менее, многие методы. использующие ИМК, страдают от неестественного взаимодействия или трудоемкого обучения пользователей. Поскольку непрерывная речь обеспечивает очень естественный подход к общению, долгое время стоял вопрос, можно ли разработать ИМК, которые распознают речь по активности коры головного мозга. Воображаемая речь как парадигма ИМК для ограниченных пациентов означала бы значительное улучшение скорости общения и удобства использования без необходимости громоздкого написания с использованием отдельных букв .
В исследовании с 7 участниками [2] авторы впервые показали, что непрерывная речь представлена в мозгу как последовательность фонем(звуков). Эти фонемы могут быть декодированы из записей электрокортикографии (ЭКоГ) и позволяют составить произнесенные слова. Все участники перенесли операцию в связи с трудноизлечимой эпилепсией и согласились участвовать в нашем эксперименте. Расположение электродов определялось исключительно исходя из клинических потребностей пациентов.
Распознавание отдельных фонем
В эксперименте авторы одновременно записывали ЭКоГ-активность и форму звуковой волны, в то время как участники читали вслух разные тексты, состоящие из детской литературы, фанфиков или политических выступлений. Авторы согласовали нейронные данные по времени с маркировкой фонем, полученных из звуковых данных, с помощью собственного инструментария распознавания речи BioKIT. Это позволило идентифицировать нейронную активность, соответствующую производству каждой фонемы.
Затем авторы объединили фонемное(звуковое) представление корковой активности с языковой информацией, используя технологию автоматического распознавания речи, чтобы реконструировать слова в мысленно произнесенных фразах. Информация о языке включается в процесс декодирования через языковую модель и словарь произношения. Словарь произношения содержит отображения фонемных последовательностей в слова. Языковая модель статистически моделирует синтаксическую и семантическую информацию, предсказывая следующие слова с учетом предшествующих слов.
Результаты показали, что с ограниченным набором слов в словаре интерфейс может восстанавливать полные предложения. На рисунке показаны различные этапы декодирования непрерывно произносимых фраз из нейронных данных.
Например, последовательность воображаемых фонем (звуков)
Интерфейс распознает и произнесёт как
Более подробно о разделении на клиент-сервер
Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.
Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.
Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.
Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:
64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.
Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.
Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.
Насколько глубоко мы погрузимся в тему?
Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.
Уровень операционной системы. ОС можно рассматривать как:
- Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
- Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
- Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).
Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.
Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.
Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.
Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.
Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.
Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.
Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.
Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.
Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.
Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.
Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.
Основы Операционной Системы
Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.
На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.
Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:
- Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
- Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
- Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
- DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
- Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.
Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.
Принцип работы
При включении питания компьютера, в первую очередь, блок питания подаёт напряжение на материнскую плату, а через неё уже на все прочие устройства компьютера. Следующим этапом происходит чтение информации из постоянного запоминающего устройства BIOS, что позволяет компьютеру обнаружить все внутренние устройства, которые к нему подключены. В соответствии с настройками BIOS производится загрузка с дискеты, компакт-диска, запоминающего устройства подключенного к USB-порту или HDD.
В классической настройке BIOS приоритеты были расставлены следующим образом: В первую очередь производится загрузка с диска "A" или "B" - эти буквы всегда отводились под дискету (флоппи-диск). Если указанные дисководы пусты, осуществить загрузку с диска "C" - Жесткий диск компьютера. Позже, когда дискеты практически вышли из обихода, настройку BIOS изменили. Приоритет загрузки отдали устройству чтения компакт-дисков CD-ROM. Если в этом устройстве нет диска, произвести загрузку, опять же, с диска "C". Подобная настройка BIOS позволяла без лишних хлопот установить операционную систему с загрузочного диска. Достаточно было вставить компакт-диск с установочными файлами операционной системы в дисковод, и компьютер начинал загружаться с компакт-диска, выходил в режим установки операционной системы. Позже, когда компьютеры стали продаваться с уже заранее установленной операционной системой, настройку BIOS поменяли и принудили компьютер в любом случае загружаться с диска "C", игнорируя другие устройства. Итак, загрузив BIOS, определив подключенные устройства, компьютер начинает загрузку операционной системы. В большинстве случаев это происходит с жесткого диска "C" или из раздела "C" находящегося на жестком диске. Помимо загрузки самой операционной системы, производится загрузка всех необходимых драйверов для обнаруженных устройств, подключенных в данный момент к компьютеру. В процессе работы, компьютер четко следует заданному алгоритму.
Говоря простым языком, компьютер четко выполняет инструкции, которые написаны для него человеком (программистом). Компьютер не может ошибаться, это было исключено ещё на заре развития кибернетики. Частично поврежденные элементы исключаются из работы. Либо, если повреждения значительны, компьютер отказывается работать совсем. Таким образом, все ошибки, возникающие в работе компьютера, полностью лежат на совести программиста. Если программа была написана с нарушением компьютерной грамматики, компьютер, обнаружив ошибку, откажется выполнять программу. Однако, чаще бывает, что программа написана безукоризненно, но содержит логическую ошибку, которую компьютер обнаружить не способен. Говоря простым языком, все команды написаны верно, но среди них отсутствует необходимая, либо присутствует команда, которая противоречит другой команде. Тогда компьютер берется выполнять программу, пока не дойдет до ошибки, где и происходит сбой в работе или зависание. Чаще всего, ошибки возникают по той причине, что программы были написаны разными программистами, которые не могли учесть всех тонкостей, не зная заранее — что написано другим.
Алгоритм это четкая, пошаговая инструкция, предусматривающая различные варианты развития событий. Без учета различных вариантов, работа компьютера с пользователем ограничивалась бы только запуском и выполнением программы, следующей одним, заранее написанным сценарием. Возможность менять ход сценария, делает компьютер уникальным и единственным устройством в своем роде.
Видеокарта
Видеокарта выводит изображение на экран, а также выполняет ряд других функций - например, она может делать просчеты сцены (профессиональные видеокарты), рендерить кадры в играх, а также использоваться при расчетах (видеокарты Nvidia Tesla, которые очень дорогие).
У видеокарты есть своя память, которая используется для нужд графического процессора - видеопамять. Это как оперативная память, только несколько быстрее, при этом хранит только информацию для нужд ГП (текстуры, карты света в играх и т.д).
Видеокарты бывают трех видов - офисные, игровые, профессиональные. Первые активно заменяются интегрированной в процессор графикой, тогда как чем отличаются вторые и третьи я подробно расписывал в одной из статей (ссылка будет в конце). Продолжим.
Видеокарта, как и процессор, состоит из ядер, способных обрабатывать потоки информации. Вот только если у процессора несколько "умных" и мощных ядер, то у видеокарты - пара тысяч "глупеньких", такое исполнение обусловлено задачами, для которых видеокарты и нужны.
Кстати, не забудь подписаться на нашу группу ВК со статьями, смешными картинками, а также обсуждениями и криворуким оператором.
Теперь подытожим. Процессор - мозг компьютера, который отдает все команды. Оперативная память - связующий узел, который хранит всю нужную информацию. Видеокарта - глаза компьютера, которые, к тому же, умеют хорошо обрабатывать графику.
Статья затянулась, поэтому на этом рассказ завершаю. Во второй части мы рассмотрим устройства хранения данных, устройства ввода-вывода, а также системы охлаждения и корпуса. Подписывайтесь, чтобы не пропустить! До скорого!
Технология интерфейса мозг-компьютер (ИМК) была впервые разработана как инструмент, обеспечивающий базовое взаимодействие, такое как общения, без движения. В последние несколько лет произошел сдвиг в сторону новых групп пациентов и приложений, таких как помощь пациентам с инсультом в восстановлении движения или помощь нейрохирургам в более точном картировании мозга для более быстрого и безопасного проведения операций.
Рассмотрим детальнее основные виды современных интерфейсов мозг-компьютер. Их можно разделить на четыре основных группы:
Речевые интерфейсы мозг-компьютер
Интерфейсы для управления киборгами (чипирование живых организмов)
Интерфейсы для реабилитации
Собственный интерфейс
Для разрабатываемой мною роботизированной руки
Было решено, в качестве одной из систем управления, попытаться реализовать некое подобие ИМК. Пока что это только двухэлектродный энцефалограф, но в дальнейшем планируется сборка полноценного медицинского энцефалографа.
Электрическая схема, схема электродов были взяты из работ других пользователей, и не представляют собой каких-либо новаторских решений. Данным устройством удалось считать реакцию на моргание
Источники
Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.
Оперативная память
Оперативная память хранит в себе всю информацию, которая может понадобиться для выполнения текущей задачи. К примеру, при игре в игру, в оперативную память будет загружаться все от текста диалогов, до указаний процессора к видеокарте - где нужно взаимодействовать с текстурой.
Оперативная память также работает на транзисторах, но их число, как правило, меньше, чем в процессорах. Останавливаться на ней особого смысла не вижу - просто запомните, что это "буфер" - связующее звено между всеми комплектующими, которое хранит информацию, которая может понадобиться вот прямо сейчас.
Процессор
Выглядит данное устройство следующим образом:
Состоит процессор из текстолитовой подложки, кристалла, крышки. Интересует нас только кристалл, ибо в нем находится главный орган любого современного компьютера - транзистор.
Число транзисторов в процессоре может переваливать за несколько десятков миллиардов, и именно они, как я уже и говорил, выполняют основную работу.
Работа процессора возложена на транзисторы, однако самому процессору нужно взаимодействовать с системой, обмениваться данными, а также где-то хранить базовый набор инструкций, чтобы "знать" как выполнять то или иное действие. Для этого существует кэш.
Если вкратце - то это буфер между процессором и оперативной памятью, который бывает нескольких видов:
- L1 - самый быстрый и немногочисленный
- L2 - медленнее, но его больше
- L3 - медленный, но имеет самый большой объем
- L4 - очень редко встречается. Имеет огромный объем, но самую низкую скорость работы
Принцип работы хорошо описал Паша с канала "Этот компьютер". Допустим процессор - это школьник, который делает уроки. В таком случае для решения задачи ему нужна нужная страница учебника - это кэш L1.
Если нужной информации на данной странице нет, то нужно пролистать учебник - это кэш L2.
Если информации и там нет, то нужно взять другой, более подробный учебник - это кэш L3.
Если у процессора нет кэша 4-го уровня, то приходится идти вниз к книжному шкафу, чтобы найти нужную книгу - это оперативная память. Кэш L4 в данном случае - что-то вроде книжной свалки на столе.
Из чего состоит Windows?
Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:
Давайте быстренько пробежимся по её компонентам снизу вверх:
- Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
- HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.
Наступила пора вычислений, вдохновлённых устройством мозга. Алгоритмы, использующие нейросети и глубинное обучение, имитирующее некоторые аспекты работы человеческого мозга, позволяет цифровым компьютерам достигать невероятных высот в переводе языков, поиске трудноуловимых закономерностей в огромных объёмах данных и выигрывать у людей в го.
Но пока инженеры продолжают активно развивать эту вычислительную стратегию, способную на многое, энергетическая эффективность цифровых вычислений подходит к своему пределу. Наши дата-центры и суперкомпьютеры уже потребляют мегаватты – 2% всего потребляемого электричества в США уходит на дата-центры. А человеческий мозг прекрасно обходится 20 Вт, и это малая доля энергии, содержащейся в потребляемой ежедневно еде. Если мы хотим улучшать вычислительные системы, нам необходимо сделать компьютеры похожими на мозг.
С этой идей связан всплеск интереса к нейроморфным технологиям, обещающий вынести компьютеры за пределы простых нейросетей, по направлению к схемам, работающим как нейроны и синапсы. Разработка физических схем, похожих на мозг, уже довольно неплохо развита. Проделанная в моей лаборатории и других учреждениях по всему миру работа за последние 35 лет привела к созданию искусственных нервных компонентов, похожих на синапсы и дендриты, реагирующие и вырабатывающие электрические сигналы почти так же, как настоящие.
Так что же требуется для того, чтобы интегрировать эти строительные блоки в полномасштабный компьютерный мозг? В 2013 году Бо Марр, мой бывший аспирант из Технологического института Джорджии помог мне оценить наилучшие современные достижения в инженерном деле и нейробиологии. Мы пришли к выводу, что вполне возможно создать кремниевую версию коры человеческого мозга при помощи транзисторов. Более того, итоговая машина занимала бы меньше кубического метра в пространстве и потребляла бы менее 100 Вт, что не так уж сильно отличается от человеческого мозга.
Я не хочу сказать, что создать такого компьютер будет легко. Придуманная нами система потребует несколько миллиардов долларов на разработку и постройку, и для придания ей компактности в неё войдут несколько передовых инноваций. Также встаёт вопрос того, как мы будем программировать и обучать подобный компьютер. Исследователи нейроморфизма пока ещё бьются над пониманием того, как заставить тысячи искусственных нейронов работать вместе и как найти полезные приложение для псевдомозговой активности.
И всё же тот факт, что мы можем придумать такую систему, говорит о том, что нам недолго осталось до появления чипов меньшего масштаба, пригодных для использования в портативной и носимой электронике. Такие гаджеты будут потреблять мало энергии, поэтому нейроморфный чип с высокой энергоэффективностью – даже если он возьмёт на себя лишь часть вычислений, допустим, обработку сигналов – может стать революционным. Существующие возможности, такие, как распознавание речи, смогут работать в шумных условиях. Можно даже представить себе смартфоны будущего, проводящие перевод речи в реальном времени в разговоре двух людей. Подумайте вот о чём: за 40 лет с момента появления интегральных схем для обработки сигналов, закон Мура улучшил их энергоэффективность примерно в 1000 раз. Очень похожие на мозг нейроморфные чипы смогут с лёгкостью превзойти эти улучшения, уменьшив потребление энергии ещё в 100 млн раз. В результате вычисления, для которых раньше нужен был дата-центр, уместятся у вас на ладони.
В идеальной машине, приблизившейся к мозгу, нужно будет воссоздать аналоги всех основных функциональных компонентов мозга: синапсы, соединяющие нейроны и позволяющие им получать и реагировать на сигналы; дендриты, комбинирующие и проводящие локальные вычисления на базе входящих сигналов; ядро, или сома, регион каждого нейтрона, объединяющий вход с дендритов и передающий выход на аксон.
Простейшие варианты этих основных компонентов уже реализованы в кремнии. Начало этой работе дал тот же самый металл-оксид-полупроводник, или MOSFET, миллиарды экземпляров которого используются для построения логических схем в современных цифровых процессорах.
У этих устройств много общего с нейронами. Нейроны работают при помощи барьеров, управляемых напряжением, и их электрическая и химическая активность зависит в основном от каналов, в которых ионы двигаются между внутренним и наружным пространством клетки. Это гладкий, аналоговый процесс, в котором происходит постоянное накопление или уменьшение сигнала, вместо простых операций типа вкл/выкл.
MOSFET тоже управляются напряжением и работают при помощи движений отдельных единиц заряда. А когда MOSFET работают в «подпороговом» режиме, не достигая порога напряжения, переключающего режимы вкл и выкл, количество текущего через устройство тока очень мало – менее одной тысячной того тока, что можно найти в типичных переключателях или цифровых затворах.
Идею о том, что физику подпороговых транзисторов можно использовать в создании мозгоподобных схем, высказал Карвер Мид из Калтеха, способствовавший революции в области сверхбольших интегральных схем в 1970-х. Мил указал на то, что разработчики чипов не пользовались многими интересными аспектами их поведения, применяя транзисторы исключительно для цифровой логики. Этот процесс, как писал он в 1990-м, похож на то, будто «всю прекрасную физику, существующую в транзисторах, сминают до нолей и единиц, а затем на этой основе мучительно строят затворы AND и OR, чтобы заново изобрести умножение». Более «физический» или основанный на физике компьютер мог бы выполнять больше вычислений на единицу энергии, чем обычный цифровой. Мид предсказал, что такой компьютер и места будет занимать меньше.
В последовавшие годы инженеры нейроморфных систем создали все базовые блоки мозга из кремния с высокой биологической точностью. Дендриты, аксон и сому нейрона можно сделать из стандартных транзисторов и других элементов. К примеру, в 2005 году мы с Итаном Фаркухаром создали нейронную схему из набора из шести MOSFET и кучки конденсаторов. Наша модель выдавала электрически импульсы, очень похожие на то, что выдаёт сома нейронов кальмара – давнего объекта экспериментов. Более того, наша схема достигла таких показателей с уровнями тока и потребления энергии близкими к существующим в мозгу кальмара. Если бы мы захотели использовать аналоговые схемы для моделирования уравнений, выведенных нейробиологами для описания этого поведения, нам пришлось бы использовать в 10 раз больше транзисторов. Выполнение таких расчётов на цифровом компьютере потребовало бы ещё больше места.
Синапсы и сома: транзистор с плавающим затвором (слева вверху), способный хранить различное количество заряда, можно использовать для создания координатного массива искусственных синапсов (слева внизу). Электронные версии других компонентов нейрона, типа сомы (справа), можно сделать из стандартных транзисторов и других компонентов.
Синапсы эмулировать чуть сложнее. Устройство, ведущее себя, как синапс, должно уметь запоминать, в каком состоянии оно находится, отвечать определённым образом на входящий сигнал и адаптировать свои ответы со временем.
К созданию синапсов есть несколько потенциальных подходов. Наиболее развитый из них – обучающийся синапс на одном транзисторе (single-transistor learning synapse, STLS), над которым мы с коллегами в Калтехе работали в 1990-х, когда я была аспирантом у Мида.
Впервые мы представили STLS в 1994-м, и он стал важным инструментом для инженеров, создающих современные аналоговые схемы – к примеру, физические нейросети. В нейросетях у каждого узла сети есть связанный с ним вес, и эти веса определяют, как именно комбинируются данные с разных узлов. STLS был первым устройством, способным содержать набор разных весов и перепрограммироваться на лету. Кроме того, устройство энергонезависимо, то есть запоминает своё состояния, даже когда не используется – это обстоятельство значительно уменьшает потребность в энергии.
STLS – это разновидность транзистора с плавающим затвором, устройства, используемого для создания ячеек в флэш-памяти. В обычном MOSFET затвор управляет проходящем через канал током. У транзистора с плавающим затвором есть второй затвор, между электрическим затвором и каналом. Этот затвор не соединён напрямую с землёй или любым другим компонентом. Благодаря такой электроизоляции, усиленной высококачественными кремниевыми изоляторами, заряд долгое время сохраняется в плавающем затворе. Этот затвор способен принимать разное количество заряда, в связи с чем может давать электрический отклик на многих уровнях – а это необходимо для создания искусственного синапса, способного варьировать свой ответ на стимул.
Мы с коллегами использовали STLS, чтобы продемонстрировать первую координатную сеть, вычислительную модель, пользующуюся популярностью у исследователей наноустройств. В двумерном массиве устройства находятся на пересечении линий ввода, идущих сверху вниз, и линий вывода, идущих слева направо. Такая конфигурация полезна тем, что позволяет программировать соединительную силу каждого «синапса» отдельно, не мешая другим элементам массива.
Благодаря, в частности, недавней программе DARPA под названием SyNAPSE, в области инженерного нейроморфинга произошёл всплеск исследований искусственных синапсов, созданных из таких наноустройств, как мемристоры, резистивная память и память с изменением фазового состояния, а также устройства с плавающим затвором. Но этим новым искусственным синапсам будет тяжело улучшаться на основе массивов с плавающим затвором двадцатилетней давности. Мемристоры и другие виды новой памяти сложно программировать. Архитектура некоторых из них такова, что обратиться к определённому устройству в координатном массиве довольно сложно. Другие требуют выделенного транзистора для программирования, что существенно увеличивает их размер. Поскольку память с плавающим затвором можно запрограммировать на большой спектр значений, её легче подстроить для компенсации производственных отклонений от устройства к устройству по сравнению с другими наноустройствами. Несколько исследовательских групп, изучавших нейроморфные устройства, пробовали внедрить наноустройства в свои разработки и в результате стали использовать устройства с плавающим затвором.
И как же мы совместим все эти мозгоподобные компоненты? В человеческом мозге нейроны и синапсы переплетены. Разработчики нейроморфных чипов тоже должны избрать интегрированный подход с размещением всех компонентов на одном чипе. Но во многих лабораториях такого не встретишь: чтобы с исследовательскими проектами было проще работать, отдельные базовые блоки размещаются в разных местах. Синапсы могут быть размещены в массиве вне чипа. Соединения могут идти через другой чип, программируемую пользователем вентильную матрицу (FPGA).
Но масштабируя нейроморфные системы, необходимо убедиться, что мы не копируем строение современных компьютеров, теряющих значительное количество энергии на передачу битов туда и сюда между логикой, памятью и хранилищем. Сегодня компьютер легко может потреблять в 10 раз больше энергии на передвижение данных, чем на вычисления.
Мозг же, наоборот, минимизирует энергетическое потребление коммуникаций благодаря высокой локализации операций. Элементы памяти мозга, такие, как сила синапсов, перемешана с передающими сигнал компонентами. А «провода» мозга – дендриты и аксоны, передающие входящие сигналы и исходящие импульсы – обычно короткие по сравнению с размером мозга, и им не требуется много энергии для поддержания сигнала. Из анатомии мы знаем, что более 90% нейронов соединяются только с 1000 соседних.
Другой большой вопрос для создателей мозгоподобных чипов и компьютеров – алгоритмы, которые должны будут работать на них. Даже слабо похожая на мозг система может дать большое преимущество перед обычной цифровой. К примеру, в 2004 году моя группа использовала устройства с плавающим затвором для выполнения умножения в обработке сигнала, и на это потребовалось в 1000 раз меньше энергии и в 100 раз меньше места, чем цифровой системе. За прошедшие годы исследователи успешно продемонстрировали нейроморфные подходы к другим видам вычислений для обработки сигналов.
Но мозг всё ещё остаётся в 100 000 раз эффективнее этих систем. Всё оттого, что хотя наши текущие нейроморфные технологии используют преимущества нейроноподобной физики транзисторов, они не используют алгоритмы подобные тем, что использует мозг для своей работы.
Сегодня мы только начинаем открывать эти физические алгоритмы – процессы, которые смогут позволить мозгоподобным чипам работать с эффективностью, близкой к мозговой. Четыре года назад моя группа использовала кремниевые сомы, синапсы и дендриты для работы ищущего слова алгоритма, распознававшего слова в аудиозаписи. Этот алгоритм показал тысячекратное улучшение в энергоэффективности по сравнеию с аналоговой обработкой сигналов. В результате, уменьшая напряжение, подаваемое на чипы и используя транзисторы меньшего размера, исследователи должны создать чипы, сравнимые по эффективности с мозгом на многих типах вычислений.
Когда я 30 лет назад начинала исследования в области нейроморфизма, все верили в то, что разработка систем, похожих на мозг, даст нам удивительные возможности. И действительно, сейчас целые индустрии строятся вокруг ИИ и глубинного обучения, и эти приложения обещают полностью преобразовать наши мобильные устройства, финансовые учреждения и взаимодействие людей в общественных местах.
И всё же эти приложения очень мало полагаются на наши знания о работе мозга. В следующие 30 лет мы без сомнения сможем увидеть, как эти знания всё более активно используются. У нас уже есть множество основных аппаратных блоков, необходимых для преобразования нейробиологии в компьютер. Но мы должны ещё лучше понять, как эта аппаратура должна работать – и какие вычислительные схемы дадут наилучшие результаты.
Считайте это призывом к действию. Мы достигли много, используя очень примерную модель работы мозга. Но нейробиология может привести нас к созданию более сложных мозгоподобных компьютеров. И что может быть лучше использования нашего с вами мозга для понимания того, как сделать эти новые компьютеры?
Для того чтобы понять основные принципы работы компьютера, не помешает ознакомиться с его устройством, хотя бы в общих чертах.
Основой компьютера является материнская плата , к которой подключаются все остальные устройства.
От архитектуры (конфигурации) материнской платы зависит и то, сколько дополнительных устройств может быть подключено к компьютеру. Также, материнская плата является распределителем питания для всех устройств.
BIOS — Basic Input/Output System — (Базовая Система Ввода/Вывода) — первичный программный код, который записан в постоянное запоминающее устройство, находящееся на материнской плате. По своей сути BIOS это первичный язык (азбука) компьютера, который позволяет ему обнаруживать все внутренние подключенные к материнской плате устройства, работать с ними, а также содержит первичные базовые команды, которые позволяют компьютеру осуществлять загрузку более серьезного программного обеспечения.
Если сравнить компьютер с новорожденным ребенком, то BIOS это набор первичных инстинктов, с которыми ребенок рождается на свет. Он ещё ничего не знает, но уже может смотреть, кричать, хаотично двигать ручками и ножками, слышать звуки, ощущать прикосновения, запоминать какую-то незначительную информацию. У новорожденного ребенка уже всё работает, но совершенно хаотично и несистематизировано. Возможности новорожденного ребенка сильно ограничены.
Процессор — мозг компьютера. Процессор совершает все вычислительные операции. Вычислительной операцией называется абсолютно всё. Пользователь может видеть на экране текст, либо цветные картинки, либо слышать музыку из динамиков, для компьютера это всё — вычислительные операции. Компьютер работает с цифровыми значениями. Для него существуют только цифры и сочетания цифр. Все исходные данные, а также результаты вычислений записываются в оперативную память.
Оперативная память сохраняет информацию только при поддержке питания. При обесточивании, вся информация из оперативной памяти безвозвратно исчезает. Оперативная память работает в паре с процессором и от её объема зависит продуктивность процессора. К примеру, если требуется обработать файл, который может быть целиком загружен в оперативную память, он будет обработан в ней процессором, а потом сохранен на жесткий диск.
В этом случае, недостаточный объем оперативной памяти может быть частично компенсирован её быстродействием. Если обмен данными происходит быстро, то пользователь не обнаружит задержки — когда часть обработанного файла была сохранена на жесткий диск, а на освободившееся в оперативной памяти место был загружен следующий фрагмент файла.
Жесткий диск в обиходе имеет несколько названий. Иногда его называют HDD — сокращение от Hard Disk Drive, а также можно услышать: Винчестер, Винт, Хард или Хард-диск . Жесткий диск является постоянным запоминающим устройством, которое способно хранить информацию даже при полном отключении электроэнергии.
Когда возникают сбои в работе компьютера или перепады напряжения в электросети, та информация, которая была сохранена на жестком диске, не утрачивается и не теряется.
Видеокарта служит для просчета изображения и вывода его на экран. По своей сути, видеокарта это мини-компьютер, который находится внутри большого компьютера. Видеокарта имеет свой собственный процессор и свою собственную оперативную память, в которой происходит просчет изображений и виртуальных сцен.
Видеокарта берёт на себя часть задач, связанных с просчетом изображения, чтобы этим не приходилось заниматься основному процессору компьютера.
Файл подкачки это зарезервированная область на жестком диске, которая используется для хранения виртуальных страниц и создаётся операционной системой автоматически. Обычно, система создаёт файл подкачки в полтора раза больше, чем имеется в наличии оперативной памяти, если пользователь не указал иные размеры. Файл подкачки позволяет расширить общий объем виртуальной памяти и обеспечивает быстрый доступ к уже просчитанным виртуальным страницам, чтобы избавить компьютер от необходимости просчитывать страницу каждый раз при обращении к ней.
Звуковая карта это аналог видеокарты, с той разницей, что звуковая карта занимается воспроизведением звука, дабы не отвлекать на эту задачу центральный процессор компьютера. Но поскольку воспроизведение звука не является столь сложной задачей, как воспроизведение видео, в большинстве случаев, звуковая карта интегрирована в материнскую плату и является её неотъемлемой частью.
Дополнительную звуковую карту устанавливают только в тех случаях, когда требуется высококачественный, студийный звук, который будет выводиться не на компьютерные колонки, а на профессиональную аудиоаппаратуру. В других случаях, использование отдельной звуковой карты не имеет смысла.
CD/DVD-ROM это устройство чтения компакт-дисков формата CD или DVD. Устройство используется для воспроизведения (чтения) аудио или видеофайлов, просмотра фотоальбомов, а также — установки операционной системы с загрузочного компакт диска на жесткий диск компьютера. Помимо чтения дисков, такое устройство может производить запись на CD или DVD диск.
Порты USB универсальные порты, которые были разработаны для подключения к компьютеру различных внешних устройств: смартфон, цифровая камера, флеш-накопители, мышь, клавиатура, съемные жесткие диски, устройства беспроводной связи и многое другое. При подключении устройства к порту USB, устройство сообщает компьютеру свою модель и другие исходные данные, которые позволяют компьютеру "найти общий язык" и работать с подключенным устройством.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
Моторные интерфейсы
Интерфейс мозг-машина для управления движением пальцев
Одно из направлений исследования интерфейса мозг-машина (ИММ) - разработку усовершенствованных нейронно-контролируемых протезов для восстановления или замены двигательной функции у пациентов с параличом верхней конечности. Чтобы развить высокоэффективный моторный ИММ, необходимо понимать, как сигналы, полученные от нервных имплантатов, кодируют грубые и тонкие движения верхних конечностей.
Электрокортикография (ЭКоГ) широко изучалась для моторного декодирования и контроля сигналов. По сравнению с другими инвазивными и неинвазивными методами нейронной записи, ЭКоГ обеспечивает хороший компромисс между степенью охвата, качеством сигнала и стабильностью сигнала.
Хотя принципы представления движений рук и пальцев в моторной коре не до конца понятны, некоторая степень разделимости может быть обнаружена в сигналах ЭКоГ, записанных с сенсомоторной коры во время движений отдельных пальцев.
Сетка ЭКоГ с высокой плотностью 8 × 16 была имплантирована субдурально в сенсомоторные области 20-летнего мужчины, страдающего трудноизлечимой эпилепсией. Матрица высокой плотности охватывала центральную борозду предполагаемых сенсомоторных областей руки.
Предварительное картирование высокой гамма-активации на сетке hd-ECoG было выполнено с использованием задачи постукивания пальцем и пассивной вибротактильной стимуляции.
Иерархический классификатор использовался для предсказания того, какой палец двигался, на основе корреляторов гамма движений пальцев. Классификатор сначала произвел двоичную классификацию того, двигается ли палец или нет. Если движение пальца имело место, то выполнялась последующая 5-ступенчатая классификация того, какой палец двигался.
Исследование впервые показало, что сигналы ЭКоГ, записанные с сенсомоторной коры головного мозга человека, могут быть использованы для онлайн-контроля движений отдельных пальцев на подвижной протезной руке. Модель декодирования, использованная в этом исследовании, не требовала длительного периода обучения или изучения нового отображения для управления движениями пальцев. Вместо этого она извлекала информацию из нейронных сигналов, связанных с движениями пальцев, что позволяло естественным образом управлять пальцами протеза. Анализируя точность декодирования нейронных активаций, которые предшествуют временной шкале сенсорной обратной связи, авторы обнаружили, что, вероятно, ИМК может обеспечить индивидуальный контроль пальцев даже при отсутствии сенсорной афферентной информации, например, в случае пациентов с травмами спинного мозга.
Начнем с основ
Я уже писал о том, из чего состоит компьютер, однако мало времени уделил именно принципу работы комплектующих. В данной статье я расскажу о том, как именно работают основные комплектующие (а во второй части разберем НЕ основное железо).
В основе всего лежит вот эта штука:
Это транзистор, и он имеет два положения - "0" (нет) и "1" (да). Этим, к слову, обусловлено использование двоичной системы счисления в компьютерах. И да, транзисторы в комплектующих далеко не такие, как на картинке.
Это - процессор под микроскопом. То, что вы видите на картинке - транзисторы, соединенные между собой дорожками. Ширина такой дорожки - всего несколько нанометров.
Это - процессор под микроскопом. То, что вы видите на картинке - транзисторы, соединенные между собой дорожками. Ширина такой дорожки - всего несколько нанометров.
Читайте также: