Распределение функций по отделам, хранение памяти в специально отведённом для неё месте — всё, о чём мы говорили до этого, — нужно мозгу и процессору для большей эффективности при работе с информацией.
Но это, конечно, не всё: управление информационными потоками и в процессоре, и в мозге обеспечивается целым рядом структурно-функциональных «примочек», которые помогают отделять важное от второстепенного, формировать расписание задач, поддерживать собственную безопасность и т. д. Но если процессору для этого в большинстве случаев нужны лишь программа и воля пользователя, то у мозга такое «приложение» встроено в саму его структуру.
В предыдущих заметках говорилось, что мозг и процессор могут хранить и обрабатывать данные в неких специализированных отделах, но при этом мы помалкивали о том, что управляет такой обработкой, какие контролирующие механизмы «рулят» собранной информацией. Та же память без таких механизмов — просто бесполезный склад сведений; чтобы польза от неё стала очевидной, нужны алгоритмы, которые будут сортировать сведения по важности, нужности, которые будут искать между ними ассоциации и т. д. От устройства таких алгоритмов зависит эффективность системы, которая проявляется, во-первых, в результатах работы с данными, а во-вторых, в том, как система контролирует собственную работу, следит за своим самочувствием и безопасностью.
Самоконтроль и безопасность тут можно разделить на две части: физиологическую и программную (в случае с мозгом такое разделение в каких-то отношениях выглядит некоей натяжкой, но об этом мы поговорим чуть позже). Что до физиологической части, то в этом сравнить мозг с процессором проще простого — потому что «физиологии» того и другого разнятся кардинально. В смысле чувствительности к грубым внешним воздействиям та белково-липидная сопля в нашем черепе, которую мы называем мозгом, не идёт ни в какое сравнение с железо-кремниевыми микросхемами. Соответственно, эволюции пришлось изрядно потрудиться над тем, чтобы защитить мозг от множества угроз извне, которые могли бы нарушить его работу.
Долго живописать физиологические системы защиты мозга мы не будем, скажем лишь, что все они нужны для того, чтобы обеспечивать абсолютное постоянство всевозможных физических и химических показателей. Огромное число кровеносных сосудов, объединённых в специальную сосудистую оболочку мозга, доставляют ему кислород, глюкозу как источник энергии, отводят продукты метаболизма, а заодно охлаждают наш «центральный процессор». Ни один мозг не выдержит и десятой доли тех перепадов температур, которые терпят компьютерные чипы, поэтому защита мозга от перегрева и замерзания — одна из первоочередных задач нашего организма (считается, что даже зевание отчасти предназначено для охлаждения мозга).
Мозг исключительно чувствителен к водно-солевому балансу и к проникновению каких-либо посторонних молекул. Между ним и кровеносной системой стоит так называемый гематоэнцефалический барьер — чудовищной силы физиологический брандмауэр, который не пропускает даже иммунные клетки (кои, впрочем, сами воспринимают клетки мозга как чужеродное образование — так уж причудливо пошла эволюция). Вирусы, понятное дело, научились проникать в мозг, минуя все системы защиты, так что мозгу пришлось обзавестись собственным департаментом иммунной системы, да ещё и наделить иммунными функциями нейроны, раз уж основной иммунитет не имел права в него входить. (В компьютере есть части, которые очень чувствительны к составу окружающей среды, — это жёсткие диски, для которых создают особые «физиологические условия», но речь сейчас не о них.) И это уже не говоря о целом классе глиальных клеток, которые прямо в мозге находятся среди нейронов и заботятся об их самочувствии, обеспечивая в том числе иммунную защиту.
Нейрон (справа) и астроцит; астроциты выполняют в мозге множество функций, среди которых — поддержание гематоэнцефалического барьера и питание нейронов. (Фото Dennis Kunkel Microscopy, Inc. / V.)Что до процессора, то ему из всех физиологических проблем мозга близка только одна — перегрев (при этом мы помним, что процессор в силу своей неорганической природы легко выдерживает перепады от 40 до 60–70 °С без особых последствий, и вообще способен работать при отрицательных температурах, например при охлаждении азотом). Однако слишком высокие температуры ему вредны, и тогда в дело вступает температурный датчик, который посылает сигнал тревоги в BIOS, а тот реагирует на это тем, что приказывает процессору снизить частоту или пропустить некоторое количество рабочих тактов. Это замедлит работу, но зато защитит от «теплового удара».
Пора нам оставить «сравнительную физиологию» процессора и мозга и перейти к тем особенностям, которые определяют характер манипуляции данными в мозге и процессоре и вообще контролируют работу системы. Но тут мы наталкиваемся на высоченный барьер, поскольку именно в этом пункте оба устройства несопоставимы — не в том смысле, что одно лучше, а другое хуже, нет, просто непонятно, как сравнивать. С одной стороны, мы сами делаем процессоры, а потому знаем о них всё. О том же, как реализуются высшие нервные функции в мозге, мы цельной картины не имеем (несмотря на то, что много чего узнали за последние годы). С другой стороны, если взять процессор, то мы увидим, что очерёдность обработки данных и прочие важные вещи зависят преимущественно от программного обеспечения и непосредственно от пользователя. Сама же физическая структура процессора как раз тем и замечательна, что позволяет множество программных решений. (В этом месте нельзя не сделать важное примечание: многие «программные решения», например, прогресс в ОС, были бы невозможны без усовершенствования процессоров, без появления многоядерности и пр.)И тут мы натыкаемся на одно из самых фундаментальных отличий мозга от процессора: в мозге почти нельзя разделить программную и аппаратную части. Это такое удивительное устройство, что изменения в «программе» влекут за собой изменения в «физике»: синапсы слабеют, одни нейронные связи разрываются, другие устанавливаются и т. д. Это можно сравнить с тем, как если бы в зависимости от выполняемых задач микросхемы сами меняли свой рисунок, грубо говоря, «перепаивались».
В общем, мы попробуем рассказать ещё о нескольких занимательных особенностях высших уровней обработки информации в мозге и процессоре, однако заранее извинимся за известную сдержанность в отношении мозга (всё-таки там безбрежное море научных сведений) и за излишне натянутые аналогии между мозгом и процессором.
Для начала вот несколько слов о распределении процессорного времени, коль скоро это имеет прямое отношение к очерёдности выполнения тех или иных операций. Будет ли процессор в первую очередь заниматься, например, обновлением антивирусной программы, или же всё-таки отдаст все силы игре, в которую играет пользователь, зависит от планировщика задач. Это чисто программный элемент, и приоритет задач можно выставить в нём либо вручную, либо поручить это операционной системе, скажем, понизив приоритет того же антивируса для предоставления бóльших ресурсов прочим приложениям. Сопоставить это можно с тем, как мы фокусируем внимание на той или иной задаче, но о внимании в мозге речь пойдёт ниже.
Вообще, у процессора в принципе нет какого-либо вшитого программного обеспечения, а загрузка компьютера возможна лишь благодаря BIOS — небольшой компьютерной программе, называемой начальным загрузчиком и содержащейся на специальной микросхеме. Сразу после включения питания компьютера при помощи программ, записанных в BIOS’ах процессора и других компонентов материнской платы, происходит самопроверка аппаратного обеспечения. Убедившись, что с «железом» всё в порядке, эти вшитые программы обращаются к программе-загрузчику, отвечающей за запуск операционной системы. Однако некоторые особенности ПО работают в столь тесной связке с «физикой» процессора, что тут можно говорить (с известной долей огрубления) о неразрывности программы и аппарата.
Микрочип BIOS на компьютерной материнской плате. (Иллюстрация ExtremeTech.)Это касается довольно специальной, но весьма важной проблемы обеспечения безопасности тех же BIOS’ов, гипервизоров и прочих программ, от которых зависит работа компьютера в целом и запуск которых предшествует старту ОС и обычных «пользовательских» приложений. Понятно, что такие сверхважные программы должны быть сверхзащищены, что им ничто не должно мешать. Поэтому они имеют исключительный доступ к ресурсам компьютера, и никакое другое ПО на их территорию, на их микросхемы зайти не может.
Некоторые производители применяют в этих целях технологию Trusted Execution (TXT), с помощью которой на процессоре физически выделяются ресурсы для работы программ, пользующихся особым доверием; естественно, физические ресурсы подкреплены логическими, а рабочие данные шифруются и передаются по конфиденциальным каналам. Если же в предстартовых процессах и аппаратных частях, необходимых для запуска, завелась несанкционированная активность, Trusted Execution запрещает загрузочные процессы в соответствующем месте, благодаря чему несанкционированная активность (вполне способная оказаться вирусом) не распространится на все физические и логические компоненты системы.
Схема процессора ARM Cortex-A5 (вверху) с двухчастным кешем для данных инструкций, и схема блока TrustZone (внизу), разделяющего программную среду на мир защищённый и «мир общего пользования». (Иллюстрация ARM.)AMD решает ту же задачу с помощью ядра ARM Cortex-A5, которое можно интегрировать в чип и которое должно поддерживать технологию TrustZone. Она позволяет формировать зоны защищённых приложений, в которых они могут работать независимо от незащищённых. При этом одно и то же процессорное ядро способно обрабатывать код из обычной и защищённой зон, избавляя от необходимости применять специализированное ядро, что упрощает конструкцию чипа и снижает его энергопотребление.
В ARM обычную и защищённую зоны называют мирами. Виртуально они представляют собой две платформы, в каждой из которых может быть запущена своя операционная система. При этом из защищённого мира предоставляется доступ ко всем аппаратным ресурсам — памяти, устройствам и пр. В обычном мире есть ограничения: здесь доступ возможен только к определённым участкам памяти и некоторым устройствам. Для переключения между мирами предназначен специальный мониторинговый режим работы процессора.
Грубо говоря, и Trusted Execution, и TrustZone занимаются созданием VIP-зон (физических и/или логических), где особо важные программы могут работать, имея самые широкие полномочия и не беспокоясь насчёт «посторонних». В общем, как видим, всё опять же сводится к оценке важности задачи и к перераспределению потоков информации, что и в процессоре, и в мозге происходит постоянно.
И нельзя, конечно, не упомянуть ещё одну информационно-управляющую хитрость в процессоре — устройство, занимающееся предсказанием ветвлений. Представим, что процессор работает с программой, в которой предусмотрен условный переход: проверяется какое-то условие, и если оно выполняется, ход программы меняется. Например, процессор может быть занят сложением чисел, но до тех пор, пока он, перебирая какие-то числа, в сумме не получит «4». Если процессор получает «4», то программа просит его перестать складывать и, допустим, начать вычитать — ну или просто вывести результат на экран. Иными словами, произойдёт условный переход.
Когда процессору нужно выполнить условный переход (а таких переходов может быть очень много), он обращается к новому набору инструкций — например, как вычитать или как показать результат на экране. Что понятно — до этого он занимался сложением и ни о чём, кроме него, не думал. И вот теперь он ждёт загрузки новых инструкций, и на это, конечно, уходит время. Но если у процессора есть предсказатель перехода (отдельный модуль в структуре процессора), то он может заранее подготовиться к этому и запросить те инструкции, которые понадобятся в дальнейшем. Более того, процессор может даже начать действовать в соответствии с новыми инструкциями, нарабатывая данные, так сказать, про запас.
Для предсказания ветвлений могут применяться статические и динамические методы. В первом случае прогнозируемое направление перехода выбирается в силу определённых соображений и не изменяется в течение всего времени работы программы: к примеру, все переходы «вперёд» разрешены, а «назад» — нет. Динамический метод более эффективен: он опирается на историю ветвлений, и направление перехода может изменяться при исполнении программы.
В принципе, работу системы предсказания ветвлений можно пояснить на примере того же магазина электроники, который мелькал у нас в связи с кратковременной и долговременной памятью. Если продавец действует по статическому методу, то он чётко выполняет инструкции старшего менеджера, и если покупатель отказался от покупки первоначально выбранного им же товара, то продавец «переходит назад» и ищет нового клиента. В случае динамического подхода продавец будет действовать по своему усмотрению: либо «перейдёт назад», либо — «вперёд», если клиент хочет что-то приобрести, но затрудняется с моделью/маркой товара.
Все эти условные переходы, планирование важности задач и резервирование места под особо важные приложения можно наблюдать и в работе мозга, только тут они реализуются с бóльшим многообразием — «важными приложениями» для нас может стать всё что угодно. Но и в мозге, чтобы как-то менять потоки данных, должен быть некий инструмент. И вот совсем недавно нейробиологи обнаружили в мозге такой информационный переключатель, представляющий собой комплекс наиболее, информированных подразделений мозга. Таких информационных центров оказалось 12, и они отличаются бóльшим количеством и разнообразием связей с другими областями. Причём они формируют что-то вроде клуба, то есть не являются отдельно стоящими коллекторами информации, а постоянно обмениваются между собой полученными данными. Среди этих «топ-менеджеров» оказались и некоторые участки коры, и подкорковые структуры, вроде уже знакомого вам гиппокампа и таламуса.
(Тут же, кстати, заметим, что упомянутый нами таламус занят тем, что сортирует сенсорные впечатления, поступающие от всех рецепторов, кроме обонятельных, и распределяет их по соответствующим зонам коры. То есть «визуальность» или «аудиальность» сигнала определяется именно здесь, в таламусе, который работает сверхспециализированным диспетчером, или, если угодно, менеджером среднего звена.)
Характерным признаком таких участков является то, что они выполняют широкий набор поведенческих и когнитивных функций, а не специализируются на чём-то одном — вроде обработки зрительной информации или управления конечностями. Если вывести из строя любого члена сети, это коснётся всего мозга — и почти не останется таких нервных процессов, которые не будут затронуты. Если же повреждение касается участка, лежащего за пределами «коллегии избранных», нарушится лишь какая-то единичная функция — условно говоря, подвижность руки или ноги. Ни память, ни речь, ни способность анализировать зрительные ощущения при этом не пострадают. Другой особенностью этой сверхструктуры считается то, что данные по ней бегут во много раз быстрее, — то есть это не просто сборщик информации, но ещё и сверхскоростной её проводник.
В целом, этот комплекс самых информированных зон мозга можно сравнить с процессором, и здесь, пожалуй, это будет более справедливым, нежели сопоставлять с процессором весь мозг. И тут даже можно выделить своеобразные специализированные «ядра»: например, подраздел, объединяющий лобные и теменные участки коры, включается при необходимости выполнения некоего нового, нестандартного задания. Исследователи буквально в этом году выяснили, как работает этот фрагмент: оказалось, что при появлении незнакомой задачи лобно-теменной комплекс переключает связи между другими специализированными зонами мозга, создавая новые комбинации из нейронных сетей. Диспетчер-хаб объединяет зоны, воспринимающие новые условия и данные, с зонами, которые хранят прошлый опыт. И чем быстрее он перенаправляет информационные потоки между другими зонами, тем быстрее человек решает задачу. То есть, как видим, здесь опять-таки имеет место выделение какого-то информационного потока, а заодно и его ускорение по «выделенной шине».
Унифицированный северный мост процессоров AMD. (Изображение производителя.)(Кстати, если искать аналогии этой управляющей структуре внутри самого процессора, то у процессоров Trinity есть встроенный унифицированный северный мост, содержащий контроллер оперативной памяти. Блок этот отвечает за взаимодействие вычислительных ядер, видеоадаптера и памяти. А отсюда пусть и отдалённая, но аналогия с кругом «топ-менеджеров» в мозге.)
Функциональные зоны мозга (числом около 300, обозначены кружками) объединяются в несколько сетей, каждая из которых имеет связь с сетью-диспетчером. (Иллюстрация Washington University in St. Louis.)Но это распределение информации на глобальном, комплексном уровне, а как наш внутренний «планировщик задач» понимает, к примеру, каким сигналам от органов чувств следует уделить первоочередное внимание? И тут есть любопытные данные, что мозг в этом случае просто определяет число нейронов, задействованных в обработке того или иного сенсорного возбуждения. Вот такая, не побоимся этого слова, компьютерная технология: посчитать, сколько нейронов отозвалось на визуальный импульс и на слуховой, и сравнить их количество. Правда, у разных людей один и тот же стимул может вызывать разное возбуждение, кроме того, такая нейронная бухгалтерия может зависеть от высших когнитивных центров.
Например, восприятие способно меняться в зависимости от того, какую цель индивидуум перед собой поставил. Многие могли убедиться в этом на собственном опыте, но недавно исследователи увидели то же самое на уровне импульсов, которые шли из соматосенсорной коры мышей в разные стороны, в зависимости от того, что животные собирались делать. (Можно ли тут провести аналогию с процессорным «ветвлением»? — Наверное, да.) Кроме того, на выделение какого-то потока данных из ряда других влияют эмоции: было показано, что эмоциональные центры связаны с таламусом особо широким каналом связи, и если в таламус приходят зрительные импульсы особой чувственной важности, центр эмоций приказывает ему сосредоточиться сначала на обработке именно этих сигналов.
Вообще, то, как мозг концентрирует внимание на конкретном объекте и как это внимание вообще проявляется в работе нейронов, — один из самых захватывающих вопросов в нейробиологии. Считается, что сосредоточенность на каком-то виде импульсов (обычно в таких случаях объектом исследования становится зрительное внимание) создаёт выделенный нейронный канал, благодаря чему нужный сигнал выделяется на фоне кучи остальных раздражителей. Также считается, что таламус, специализированный сенсорный хаб, даёт сигнал соответствующим анализаторам, чтобы они организовались и согласованно обслужили важный импульс.
Механизмы внимания, равно как и механизмы прочих высших когнитивных функций, продолжают исследоваться, но уже сейчас ясно, что реализованы они за счёт уникальной способности мозга перестраиваться под текущую задачу с помощью молекулярных, клеточных и физиологических механизмов. В последней — пятой — главе мы ещё раз вспомним те характерные черты, которые делают мозг и процессор не похожими друг на друга, добавим к ним новые, а заодно подумаем, действительно ли эти особенности так уж непреодолимы для конструкторов микросхем.
Гематоэнцефалический барьер (ГЭБ) — физиологический барьер между кровеносной и центральной нервной системами; защищает нервную ткань от циркулирующих в крови микроорганизмов, токсинов, компонентов иммунной системы, которые воспринимают ткань мозга как чужеродную. ГЭБ выполняет функцию высокоселективного фильтра, через который из кровеносного русла в мозг поступают питательные вещества, а в обратном направлении выводятся продукты жизнедеятельности нервной ткани.
BIOS — микропрограммы, хранящиеся в специальной микросхеме, которые запускаются первыми, определяют аппаратное самочувствие элементов компьютера, после чего предоставляют доступ к нему операционной системе.
Гипервизор — программа или аппаратная схема, которая обеспечивает или позволяет одновременное, параллельное выполнение нескольких операционных систем на одном и том же компьютере. Кроме того, гипервизор изолирует операционные системы друг от друга, обеспечивает безопасность, разделение и управление ресурсами между различными запущенными ОС.
Модуль предсказания переходов (прогнозирования ветвлений) — устройство, входящее в состав микропроцессоров, которое предсказывает, понадобится ли в исполняемой программе условный переход к другим инструкциям. Предсказание ветвлений позволяет сократить время простоя конвейера за счёт предварительной загрузки и исполнения инструкций после условного перехода.