Мы уже выяснили, что специализация и структурированность затронули мозг в большей мере, нежели чип: и то сказать, на стороне мозга миллиарды лет эволюции! Однако в одном процессор почти догнал своего органического, так сказать, коллегу. Это память.
Тут процессор и мозг демонстрируют редкое единодушие: оба стремятся держать информацию в специально отведённом для неё месте, хотя и обращаются с ней по-разному.
Среди множества свойств и функций нервной системы памяти стоит отвести особое место: любая мало-мальски сложная когнитивная операция без неё просто невозможна. Наша личность определяется тем, что мы помним и как мы помним, от голых фактов до эмоциональных переживаний. Но даже если не возноситься к вершинам психологии и ограничиться простейшими примерами — скажем, чтением книги, — мы всегда запоминаем прочитанную фразу и соотносим её с последующей, иначе ничего не поняли бы. Или когда мы подсчитываем, сколько денег останется после того-то и того-то, наш мозговой «вычислительный центр» обращается к затверженным некогда арифметическим правилам, чтобы приложить их к числам, которые опять-таки удерживаются в памяти.
Если говорить о мозге, то память в нём можно классифицировать самыми разными способами. Например, по содержанию — тогда мы говорим об эмоциональной, образной, моторной памяти (последняя хранит информацию об автоматических движениях, и именно её мы имеем в виду, когда говорим: «А руки-то помнят»). Или по тому, через какой канал к нам пришла информация: в этом случае память будет визуальной, моторной (или кинестетической), звуковой, вкусовой. Можно классифицировать память относительно того, преднамеренно мы запоминали что-то или же безо всякого умысла. Но ближе всего к интересующей нас компьютерной схеме будет деление памяти по временным характеристикам — то есть на долговременную и кратковременную.
У компьютера разные виды памяти можно легко пощупать руками: вот жёсткий диск — воплощение, так сказать, долговременной памяти, а вот штуковины, которые вставляются в материнскую плату, — кратковременная память. Однако мы ведь сейчас не обо всём компьютере, а только о процессорах. Есть ли у них память?
Разумеется. Процессоры располагают собственной памятью, называемой встроенным кешем. Мозговым аналогом кеша можно назвать сенсорную память, которая хранит информацию, только что пришедшую от рецепторов. Данные в сенсорной памяти содержатся доли секунды, после чего направляются на анализ в различные участки головного мозга. Есть и другая, может быть, более корректная, но и более тонкая аналогия кеша с рабочей, а не с сенсорной памятью, но к рабочей памяти мы вернёмся чуть позже.
Структура кеш-памяти в четырёхъядерном процессоре (иллюстрация: «Компьюлента» / AMD).Кеш-память хранит информацию, требующуюся центральному процессору в данный момент. Кеш использует небольшую, но очень быструю память, в которую записываются часто используемые данные из основной памяти. Скорость отклика — главная характеристика кеша; чтобы дотянуться до остальных видов памяти, процессору нужно потратить не в пример больше времени, причём под остальными видами мы понимаем как долговременную (винчестерную) память, так и оперативную, расположенную на материнской плате. В кеш попадают данные, которые нужны для работы именно сейчас, и нужны постоянно.
За скорость работы приходится платить: она диктует особенности конструкции, которые уменьшают объём памяти и увеличивают её стоимость (денежную). Речь идёт о различиях между DRAM- и SRAM-памятью. DRAM составлена из транзисторов с конденсаторами, более компактна и потому позволяет хранить больше информации на единице площади, ёмкость DRAM-микросхем исчисляется гигабайтами. SRAM же составлена только из транзисторов, что дороже; кроме того, одни транзисторы занимают больше места, чем комбинации транзисторов и конденсаторов.
Однако, во-первых, SRAM работает гораздо быстрее, поскольку транзисторы тут собраны в триггеры, а переключение триггера при записи в него информации происходит намного оперативнее, чем перезарядка конденсатора. Во-вторых, SRAM не нужно обновлять: состояния триггеров устойчивы и при наличии питания могут сохраняться бесконечно долго, а вот из конденсаторов DRAM заряд постепенно исчезает; чтобы вслед за ним не пропала информация, этот заряд нужно регулярно «освежать».
Микросхемы оперативной памяти, относящиеся к классу DRAM, требуют периодического обновления заряда на конденсаторах, чтобы не «забыть» хранящуюся в них информацию (фото: Shutterstock).Структуру DRAM обычно оставляют оперативной памяти, а для процессорного кеша используют SRAM: переключения процессорных триггеров происходят очень быстро, и это позволяет кеш-памяти работать на тех же частотах, что и самые передовые процессоры, — до нескольких ГГц. В то же время ёмкость кеша по описанным выше причинам невелика: её можно измерить мегабайтами.
В качестве примера можно привести современные десктоп-чипы AMD FX и серверные Opteron. Они оснащены трёхуровневым кешем, то есть данные, которые процессору нужны «вотпрямщас» и которые он загружает в себя, дополнительно структурируются, что повышает эффективность системы. Самым быстрым, но и самым маленьким по объёму является первый уровень (L1): этот кеш работает напрямую с процессорными ядрами, обеспечивая наименьшее время доступа к данным. Он представляет собой буфер между процессором и более медленным кешем второго уровня (L2), объём которого может достигать 12 Мб. Наконец, кеш третьего уровня (L3), хотя и самый медленный из всех, всё равно гораздо более производителен, нежели оперативная память. Объём L3-кеша может превышать 20 Мб. (Существует также четвёртый уровень кеша, но его можно встретить только в многопроцессорных высокопроизводительных серверах. Обычно он реализован отдельной микросхемой.)
Структурирование кеш-памяти можно обнаружить ещё и в том, что ячейки оперативной памяти жёстко привязываются к логическим зонам кеша, поэтому если процессору нужно положить себе «под руку» какую-то инструкцию, то он положит её в заранее определённое место и в дальнейшем будет обращаться именно к этой области. В противном случае ему пришлось бы перебирать весь кеш, что свело бы на нет выигрыш от встроенной памяти.
Ещё раз повторим, что в кеш собираются данные, которые процессору нужно читать очень часто, — к примеру, сведения о файловых каталогах. Работу процессора с кешем и оперативной памятью (ОЗУ) можно сравнить с тем, как делаются заказы в супермаркете с электроникой. Прилавок с небольшими по размеру товарами (скажем, смартфонами, фотоаппаратами и планшетами) примем за кеш-отдел, а склад с крупногабаритными товарами (такими как плоскопанельные телевизоры, холодильники и стиральные машины) — за отдел ОЗУ. Продавец за прилавком по требованию покупателя может быстро выдать ему нужное устройство, но места для хранения таких товаров не очень много. С другой стороны, на складе предостаточно площадей для всех имеющихся запасов, но поиск и доставка нужного потребителю предмета занимает намного больше времени… Для более полного сравнения тут нужно бы ещё допустить, что за мелкими товарами приходят во много раз чаще — и тем более нет резона хранить их все в огромном подвале: проще переместить часть прямо в магазин.
Или, например, другая аналогия, которая уже мелькала выше, — с книжным шкафом и письменным столом. На стол выгружаются книги, в которых постоянно нужно что-то искать. А на полках остаются томики, которые нужны гораздо реже. Правда, это сравнение тоже прихрамывает: если бы мы поступали как процессор, то копировали бы нужные книги себе на стол и, разумеется, раскладывали бы копии в заранее установленном порядке.
Стоит также добавить, что без кеш-памяти невозможно было бы скоординировать работу ядер. Связующий ядра кеш — кеш второго уровня, и либо этот блок памяти общий для всех ядер и доступен каждому из них в равном объёме, либо это разные блоки, принадлежащие разным ядрам, но связанные специальным контроллером памяти, который опять же принадлежит процессору.
Выше мы говорили, что кеш-память процессора весьма напоминает рабочую память мозга. Её часто называют кратковременной, но, по некоторым представлениям, кратковременная память входит в состав рабочей, захватывающей ещё и часть долговременной памяти. Из долговременной в рабочую поступает та информация, которая нужна для активной работы, и на неё накладываются также данные из кратковременной памяти, которые только что пришли. Надо сказать, что в функциональной структуре рабочей памяти выделяют так называемый центральный управляющий элемент, который как раз манипулирует информацией из разных источников, — то есть получается что-то вроде процессора, который тут, правда, сам рассматривается как часть памяти. Что же до hardware рабочей памяти, то учёным удалось найти нейронные структуры, которые отвечают за её работу, причём разные нейронные компоненты рабочей памяти работают на разносрочные процессы, одни — на кратко-, другие — на долговременные. То есть рабочую память можно, как и кеш, пощупать руками, однако названиями этих самых нейронных структур мы, пожалуй, утомлять вас не будем. Не сегодня!
Расположение в мозге базальных ганглиев — древних многофункциональных структур, участвующих среди прочего в поддержке рабочей памяти (рисунок: Jonathan Rosenfeld).Рабочая память человека обладает некоторыми любопытными особенностями — например, в ней есть встроенная система шумоподавления, когда не относящиеся к делу стимулы просто отсекаются от важных информационных процессов. Скажем, когда мы одновременно в двух чатах разговариваем с двумя людьми на совершенно разные темы, последние не путаются и не смешиваются у нас в мозге; мы не начинаем нежно ворковать с деловыми партнёрами и не переходим на канцелярит, флиртуя, — и всё благодаря тому, что рабочая память умеет избавляться от ненужных (в конкретной ситуации) стимулов.
С другой стороны, наша рабочая память не всегда подконтрольна сознанию. Например, когда вы читаете книгу и замечаете, что безо всякого внимания проскочили несколько страниц, это означает, что рабочая память занята каким-то другим (бессознательным) процессом, который мозг посчитал более важным. Как ни парадоксально, исследователи пришли к выводу, что такое отвлечение случается при большом объёме рабочей памяти, который, как считается, зависит от уровня IQ. При малом объёме рабочей памяти она полностью загружается текущей задачей, и на витание в облаках просто не остаётся места.
Важное отличие кратковременной (или рабочей) памяти человека в том, что она, по сути, никогда не отключается: в ней просто меняются задачи, а данные, которые в неё поступили извне, или какие-то выводы, к которым человек пришёл в результате размышлений, перемещаются в долговременную. Именно так происходит и в компьютере, за тем лишь исключением, что в нём оперативная память и процессорный кеш теряют все свои данные при отключении электрического тока. В долговременной же памяти — на жёстком диске — информация хранится и без постоянного притока электричества, в идеале — вечно.
Как происходит запись информации извне на жёсткий диск компьютера, мы знаем: всё-таки и жёсткий диск, и процессор, который руководит преобразованием памяти, сделаны человеком. Что же до мозга, то тут о процессе формирования памяти и превращении кратковременной памяти в долговременную можно сказать одно: темна вода во облацех. Любая мозговая активность сопровождается нейронными импульсами, однако импульсы эти бегут не беспорядочно, а по нейронным сетям: группам соединённых между собой нервных клеток, активность в которых соответствует той или иной задаче. Считается, что информация записывается в память благодаря выделенным для неё нейронным структурам, и сохранность памяти зависит от того, насколько эти нейронные конгломераты долговечны.
И вот тут стоит вспомнить о том, чего нет у компьютера и что есть в нейронных сетях, — о синапсах, специфических соединениях между нейронами, обеспечивающих переход сигнала от клетки к клетке. Благодаря синапсам нейронные сети могут формироваться и разрушаться, нейрон может разрушить связь с одним соседом и установить синапс с другим, и это будет уже другая нейронная сеть.
Синапс чутко реагирует на электрический импульс: если импульсы идут через него часто — значит, этот нейронный путь востребован, и синапс укрепляется. Если же импульсы идут редко, то и поддерживать эту сеть не нужно — и тогда синапс слабеет и рвётся. Но в случае памяти нейронную сеть, которая хранит некую информацию, нужно поддерживать как можно дольше, даже если импульсы по ней будут идти редко. И над этим вопросом бьются специалисты в молекулярной и клеточной биологии: как клетка укрепляет синапс? Считается, что память зависит от группы специальных белков, которые синтезируются именно тогда, когда нужно что-то запомнить, и эти белки поддерживают синапс в рабочем состоянии долгое время. И число таких белков постоянно растёт: учёные открывают всё новые и новые их виды.
Но это лишь часть проблемы. Вот не менее интригующий вопрос: как кратковременная память в мозге превращается в долговременную? Многие, возможно, слышали слово «гиппокамп» — так называется мозговая структура, считающаяся одним из главных центров памяти. В том, что она нужна и для кратковременной, и для долговременной памяти, сейчас уже никто не сомневается, но в том, как гиппокамп работает, до сих пор не могут разобраться. По одной из версий, он хранит оба вида памяти, по другой — лишь способствует переводу кратковременной в долговременную. Кстати, согласно одной весьма распространённой гипотезе, такое перекодирование памяти происходит во сне: мол, в эту сладкую пору идёт обмен данными между тремя зонами мозга, среди которых есть центры кратковременной памяти, гиппокамп и кора, и кора объясняет остальным, какие данные нужно оставить в памяти надолго. Всё это опять же сопровождается молекулярной активностью по укреплению одних синапсов и ослаблению ненужных.
Этот процесс называют консолидацией памяти, и его зависимость от сна более или менее признана. И в этом, кстати, мозг явно уступает компьютеру: просто представим на минутку, как процессор заявляет вам, что он не может ничего записать на жёсткий диск, пока не поспит…
Чем компьютер выгодно отличается от мозга, так это тем, что ему не нужно поспать, чтобы записать что-то на свой жёсткий диск (фото: Shutterstock).Другое отличие памяти человека от памяти компьютера состоит в том, что процессор, обращаясь к памяти, вызывает не образ, не сами данные, а лишь адрес той ячейки, где эти данные находятся. Если представить память в виде камеры хранения, то мы обратились бы к ней с просьбами «Дайте мне небо» и «Дайте шум моря», тогда как процессор говорит просто: «Дайте мне содержимое ячеек №23486 и №95389000». Тут, впрочем, необходимо заметить, что и у мозга есть некая каталогизация информации. Недавно выяснилось, что явления, слова и объекты группируются в мозге по времени возникновения и значению, и, например, слова со сходным смыслом снабжаются неким общим нейронно-импульсным рисунком, описывающим связь между ними. С одной стороны, конечно, удивительно, а с другой — вполне понятно, так как без структуризации мозгу было бы трудно найти что-то в море информации, которая в нём плещется…
(В последнее время между компьютерной памятью и человеческой стали вдруг находить много общего. Оказалось, что мозг при запоминании фрагментирует информацию на куски, подобно тому как фрагментируются файлы при записи на диск, и что при обучении мозг разбивается на кластеры, в пределах которых межнейронные связи укрепляют и поддерживают друг друга. Однако всё это наводит на аналогии скорее с жёстким диском, а не с процессором.)
Ну и, наконец, вспомним о главном биче человеческой памяти — о том, что она неизбежно слабеет. Старые воспоминания утрачивают подробности, обесцвечиваются, подобно старым фотографиям, и для этого вовсе не нужно болеть ни синдромом Альцгеймера, ни чем-то похожим. Связано это, по мнению учёных, с тем, что при каждом обращении к долговременной памяти информация поднимается из «хранилища» в рабочую память, а потом снова перекодируется в долговременную. И вот при таком перекодировании в нейронной механике происходит отбор нейронов, которые будут продолжать кодировать эту информацию; часть нейронов при этом замолкает, и это модифицирует само воспоминание. То есть получается, что память работает по принципу «испорченного телефона», когда после каждого воспоминания у нас в голове откладывается не первоначальная информация, а воспоминание о воспоминании о воспоминании…
Тут, конечно, можно вспомнить про конденсаторы DRAM, память которых утекает вместе с утечкой заряда, однако и в процессоре, и в оперативной памяти, и в жёстком диске всё сделано так, чтобы предотвратить потерю информации. Наша же память, хотя и может хранить абсолютно всё (из того, что с нами было), постоянно что-то теряет, и это, в отличие от компьютера, в порядке вещей. Впрочем, здесь нельзя не упомянуть оригинальную работу американских учёных, которые сумели записать на электронную микросхему принцип последовательности нейронных импульсов в определённом участке гиппокампа крыс. Когда эту микросхему подключили к крысам, у которых способность к формированию долговременной памяти была нарушена, животные всё вспомнили! При этом исследователи вовсе не кодировали информацию в импульсах, а просто, скажем так, записали и передали слова на незнакомом им языке, сам же язык нейронных импульсов и его связь с нейронной структурой и информационным содержанием для нас пока загадка. Однако, возможно, винчестеры, подключаемые к мозгу, — это не такая уж фантастика.
Надеемся, после всего, что мы наговорили тут про память, читатель уже не будет спрашивать, зачем мы посвятили ей целую главу. Но не будем забывать, что память — это ещё не самое главное. Что данные, хранящиеся в ней, нужны для неких манипуляций. Эти действия с данными нужно как-то организовывать, как-то распределять их по тем самым специализированным структурам, о которых говорилось в прошлой главе. И делать это нужно эффективно и безопасно. А потому в следующей части мы наконец-то расскажем, как мозг и процессор организуют информационные потоки и как следят за собственной безопасностью. И, разумеется, попытаемся найти в этом нечто общее — то, что свойственно и мозгу, и чипу.
Кеш процессора — структурная часть процессора, в которую копируется информация, могущая быть запрошенной с наибольшей вероятностью. Доступ к данным в кеше осуществляется намного быстрее, чем к данным из других видов памяти, однако объем кеша значительно меньше, чем у хранилища исходных данных.
DRAM и SRAM — разновидности энергозависимой полупроводниковой памяти, различающиеся по ёмкости (больше у DRAM) и скорости доступа (больше у SRAM).
Рабочая память — разновидность памяти, позволяющая удерживать в быстром доступе небольшие фрагменты информации, необходимые для сиюминутной мыслительной деятельности — к примеру, для решения логической задачи или осознания сложной информации.
Гиппокамп — парный отдел мозга, преобразующий кратковременную память в долговременную, участвующий также в механизмах формирования эмоций.