Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ураков А.Р. Технологические особенности проектирования вычислительной техники.doc
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
839.17 Кб
Скачать

1.3. Себестоимость хранения и скорость доступа

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

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

Прежде всего, здесь необходимо отметить следующее. Если при изготовлении устройств хранения информации применяется та же технология, что и для устройств обработки, то и себестоимость хранения и скорость доступа к данным могут быть сведены к энергоемкости так, как это описано выше (в этом случае из 4-х критических параметров остается лишь 2). Однако, при изготовлении устройств обработки себестоимость изготовления элементов переключения может быть достаточно высокой (так как себестоимость изготовления повышается до тех пор, пока это позволяет понизить энергоемкость), поэтому устройства хранения, изготовленные таким способом, получаются сравнительно дорогими. В частности, стоимость устройства, способного хранить объем информации, который требуется для решения некоторой задачи, будет настолько превышать стоимость устройства обработки, что потеряется смысл в развитии устройств обработки. На практике для производства устройств хранения и для производства устройств обработки используют разные технологии, поэтому имеют значения оба параметра. Можно обобщить все это следующим образом: 1) энергоемкость и надежность определяют уровень развития устройств обработки; 2) надежность, себестоимость хранения и скорость доступа определяют уровень развития устройств хранения.

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

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

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

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

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

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