КОЛОНКА РЕДАКТОРА

     Что-то с памятью моей стало,

     Всё, что было не со мной, помню.

     Р. Рождественский

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

В своих статьях я неоднократно подчеркивал, что значение роста производительности как главного фактора развития архитектуры компьютеров широкого применения сегодня представляется сильно преувеличенным. Доминирование этого фактора обычно основывается на маркетинговом утверждении, что с увеличением производительности компьютеры приобретают и новые полезные качества. С этим никто не спорит: конечно, чтобы нормально смотреть нынешние DVD-фильмы на компьютере, процессор должен быть достаточно быстрым. Однако хорошо ли решают компьютеры те задачи, которые мы надеялись на них возложить? Становятся ли они интеллектуальными помощниками человека? Да нет, пожалуй.

Главным тормозом движения в этом направлении, на мой взгляд, сегодня является организация памяти. Как оказалось, я в своем мнении не одинок. Еще в начале 1950-х один из пионеров вычислительной техники Джон Эккерт сказал: “Архитектура машины определяется памятью”. А память почти не изменилась со времен второго поколения ЭВМ, так называемого “железного века” в компьютерной истории.

За эти полвека широко вошли в жизнь несколько идей, касающихся оперативной памяти:

- виртуальная память, впервые появившаяся в 1961-1962 г. в машине Atlas, позволила снять ограничение на размер адресного пространства;

- внедрение кэш-памяти ускорило операции доступа к ОЗУ, но породило проблему когерентности (соответствия изменений в кэш-памяти изменениям в ОЗУ);

- архитектура NUMA и ее разновидности повысили эффективность многопроцессорных систем.

А вот некоторые полезные идеи не сильно прижились: во-первых, это теги - признаки содержимого ячейки памяти, введенные на компьютерах Burroughs; во-вторых, ассоциативная память (память, выборка данных из которой производится не по заданному адресу, а по признаку содержимого). И то и другое оказалось не очень дешево, а потому было отложено до лучших времен.

Тем не менее дальнейшее развитие компьютеров не даст существенно нового качества, если оставить ОЗУ в том виде, как оно есть сейчас.

Давайте посмотрим на используемые приложения: это все больше лингвистическое ПО (в частности, синтез и распознавание речи), обучающие программы, программы извлечения знаний из данных и текста, работа с графикой, аудио и видео, поисковые системы, игры, использующие довольно мощные системы искусственного интеллекта. Для такого ПО нужна в первую очередь иная организация ОЗУ: оно должно быть объектно-ассоциативным. Что сейчас происходит, например, с программами компьютерного перевода текстов: разработчики вынуждены в словарную базу вбивать все известные им примеры употребления каждого слова, тогда как необходимо, чтобы накопление таких примеров происходило автоматически. Сейчас каждая запись в БД слов может иметь до 1500 полей. Понятно, что данный способ весьма трудоемок и неэффективен. Для этого и нужна объектно-ассоциативную память. Более того, если посмотреть, как работает петафлопный суперкомпьютер, который каждый из читателей носит на своих плечах, то окажется, что большую часть времени одна из его подсистем занята переупорядочиванием ассоциативных связей в соответствии с текущими приоритетами и долговременными установками субъекта. Это означает, что контроллер компьютерной ассоциативной памяти (или сами ячейки такой памяти) должен постоянно заниматься классификацией объектов, установлением их взаимосвязей, например, на основе анализа процесса их обработки, выявления общих признаков и т. д.

Если раньше процессор был самой дорогой частью компьютера, то уже в 1980-х г. микропроцессоры настолько подешевели, что их стало выгодно использовать в компьютере вместе (а иногда и вместо) со специализированными БИС. Сейчас ситуация такова, что простые средства обработки можно и нужно ставить в каждой ячейке памяти.

При этом есть ряд задач, связанных с объектно-ассоциативной памятью (занесение объекта в такую память, техника установления ассоциативных связей и удаление объектов из памяти), открывающих большие возможности для экспериментов. Например, при занесении нового объекта требуется выявить критерии, по которым должны создаваться связи между ним и существующими объектами. При построении ассоциативных связей между большим количеством объектов (а их число в самой простой модели среды - десятки тысяч, в реальных задачах их может быть и несколько миллионов) возникает проблема комбинационного взрыва числа связей. Поэтому конструктивно объекты должны быть упорядочены по некоторым сложным поверхностям (промежуточным средам). У человека для этого служат эмоциональная окраска, ситуационная привязка, событийное упорядочивание (история, текущий момент, планирование), на которые уходит громадная часть вычислительных ресурсов нашего мозга.

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

Следует отметить, что возможности ассоциативной памяти позволяют резко увеличить быстродействие и построенных на ее базе суперкомпьютерных систем. Архитектура такого компьютера предложена академиком В. С. Бурцевым.

Следующее устройство, которое можно сделать другим, - это обычный монитор. Проблема в том, что его графика исходно предназначалась для черчения, а не для рисования, например, акварелью. Это просто не позволяли аппаратные средства. Сейчас ситуация изменилась и можно производить автономные вычисления в каждой точке экрана монитора. Поэтому вместо изменения графическим ускорителем каждого пиксела в видеопамяти гораздо интереснее связать пикселы между собой и, дав информацию о мазке кистью в одну из точек экрана, заставить “краску” по определенным законам (например, как в клеточном автомате) растекаться по соседним пикселам. Это избавляет от хранения текстур - текстура превращается в несколько команд такого интеллектуального экрана, упрощает всевозможные графические редакторы, позволяет наряду с чертежами создавать на компьютере и живописные работы. Понятно, что графические файлы для таких мониторов в сотни раз сократятся в объемах.

К сожалению, реализация таких разработок в России не представляется возможной, и не потому, что нет денег - деньги-то в стране есть :). Однако тенденция развития ВТ такова, что в ближайшие годы компьютерная индустрия так или иначе, с нами или без нас придет к подобным решениям.

Версия для печати