|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Вычисление полного времени доступаПриводя формулу (1) мы упомянули, что она дает несколько завышенное представление о производительности памяти, т.к. не учитывает ряда факторов. Настало время восполнить этот пробел, рассмотрев процесс обращения к памяти под "микроскопом". Рассмотрим следующий пример. Пусть у нас имеется 10-нс память и процессор CELERON-300A, с системной шиной на 66 MHz. Сколько тактов потребуется для чтения одной ячейки памяти? Чтобы вычислить это, разберем весь процесс обмена по "косточкам". Итак…
Итак, по меньшей мере, требуется шесть тактов системной шины на чтение одной ячейки, а в худшем случае - все четырнадцать. Поскольку, в данном случае частота ядра процессора в 4.5 раза превышает частоту системной шины, чтение ячейки занимает от тридцати (6 x 5 = 30) до семидесяти (12 x 5 = 70) тактов процессора! А теперь (интереса ради) попробуйте подсчитать: сколько тактов занимает одно обращение к памяти в системе вашей конфигурации. Заключение Сегодня, когда счет оперативной памяти пошел на сотни мегабайт, мы, программисты, наконец-то лишились "удовольствия" оптимизации своих программ по скорости и размеру одновременно. Пусть будет нужен хоть гигабайт - система выделит его за счет жесткого диска. Правда, производительность подсистемы памяти все еще оставляет желать лучшего. Причем, современная ситуация даже хуже, чем десять-пятнадцать лет тому назад. Если персональные компьютеры конца восьмидесятых - начала девяностых оснащались микропроцессорами с тактовой частотой порядка 10 MHz и оперативной памятью со временем доступа 200 нс., типичная конфигурация ПК ближайшего будущего: 1.000 - 2.000 MHz и 20 ns. Нетрудно подсчитать, что во времена главенства IBM XT/AT обращение к одной ячейке занимало буквально пару тактов процессора и это притом, что большинство арифметических команд отнимало десятки тактов! Современные же процессоры тратят на чтение произвольной ячейки порой сотни тактов, выполняя в это же самое время чуть ли не по трое вычислительных инструкций за такт. Несмотря на стремительный рост производительности оперативной памяти, наблюдающиеся в последние годы, разрыв "CPU vs Memory" растет с чудовищной быстротой. Забавно, но та же самая картина наблюдалась и тридцать-сорок лет назад, - в эпоху "больших" машин с быстродействующими (по тем временам!) процессорами и жутко медленной барабанной (а позже и ферритовой) памятью.Как же конструкторы ЭВМ выходили из этой ситуации? Откроем, например, "Структуры ЭВМ и их математическое обеспечение" Л. Н. Королева: "Для того чтобы достичь необходимого баланса между высокой скоростью выполнения арифметических и логических действий в центральном процессоре и ограниченным быстродействием блоков оперативного ферритового запоминающего устройства (время цикла работы каждого блока - 2 мксек), были предприняты следующие меры. Оперативное запоминающее устройство состоит из восьми блоков, допускающих одновременную выборку информации (командных слов и операндов), что резко повышает эффективное быстродействие системы памяти. Подряд идущие физические адреса памяти относятся к разным блокам, и если оказалось, например, так, что последовательно выбираемые операнды имеют последовательно возрастающие (убывающие) адреса, то они могут выбираться со средней скоростью, равной 2 мксек/8=0,25 мксек... Второй структурной особенностью организации обращений к оперативному запоминающему устройству является метод буферизации, или метод накопления очереди заказов к системе памяти. В машине БЭСМ-6 существуют группы регистров, на которых хранятся запросы (адреса), называемые буферами адресов слов и команд. Разумеется, что эти буфера могут работать эффективно только в том случае, если структура машины позволяет просматривать команды "вперед", т. е. загодя готовить запросы. Устройство управления БЭСМ-6 позволяет это делать. Буфера адресов позволяют в конечном итоге сгладить неравномерность поступления запросов к памяти и тем самым повысить эффективность ее использования. Третьей структурной особенностью БЭСМ-6 является метод использования сверхоперативной, не адресуемой из программы памяти небольшого объема, цель которого - автоматическая экономия обращений к основному оперативному запоминающему устройству. Эта сверхоперативная память управляется таким образом, что часто используемые операнды и небольшие внутренние командные циклы оказываются на быстрых регистрах и готовы к немедленному использованию в арифметическом устройстве или в системе управления машиной. Быстрые регистры в ряде случаев позволяют экономить до 60% всех обращений к памяти и уменьшают тем самым временные затраты на ожидание чисел и команд из основной памяти. Следует еще раз подчеркнуть, что об использовании быстрых регистров заботится аппаратура самой машины и при составлении программ об экономии обращений к памяти думать нет необходимости. Эти структурные особенности БЭСМ-6 получили название водопроводного принципа построения структуры машины. В самом деле, если подсчитать время от начала выполнения команды до его окончания, то для каждой команды оно будет очень велико, однако глубокий параллелизм выполнения, просмотр вперед, наличие буфера адресов, быстрых регистров приводят к тому, что "поток" команд и темп обработки информации очень высок. Аналогия с водопроводом состоит в том, что если проследить время, за которое частица воды проходит по некоторому участку водопровода, то оно будет большим, хотя скорость на выходе потока может быть очень велика. Четвертой структурной особенностью БЭСМ-6, имеющей очень важное значение для построения операционных систем и работы машины в мультипрограммном режиме, является принятый аппаратный способ преобразования математических, или виртуальных адресов в физические адреса машины. В машине БЭСМ-6 четко выдержано деление на физическую и математическую память, принята постраничная организация, однако способ отображения, заложенный в аппаратуру, значительно отличается от того, который был применен в машине ". Такое впечатление, что читаешь описание процессора Pentium, - настолько эти решения похожи! Создается впечатление, что никакого прогресса вообще нет. Меняются лишь технологии и проектные нормы, но эксплуатируется один и те же идеи. Хороший повод для размышлений, не правда ли, господа?
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |