Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Новая экстенсивная эра



А как же все-таки будут наращивать производительность самих процессоров? Неужели прекратят? Ответ на этот вопрос лежит на поверхности новостийных линеек и пресс-релизов: с практически 100% степенью уверенности, можно утверждать, что обе компании пойдут по пути интеграции в процессор нескольких ядер (CMP). Нескромно, конечно, хвалить самого себя, но этот курс очень хорошо ложится на рассмотренные выше проблемы роста производительности — выигрыш от CMP может быть получен только при наличии дополнительной оптимизации программного обеспечения. Как минимум, его нужно сделать многопоточным. С другой стороны, проектирование многоядерного процессора, по идее, не представляет большой сложности т.к. единственное его отличие от одноядерного состоит в том, что соответствующие блоки присутствуют в удвоенном количестве. Разумеется, можно и переделать ядро, но я очень сильно сомневаюсь в том, что переделки будут существенными: если бы Pentium 4 или K8 можно было доработать таким образом, чтобы увеличить их производительность — то почему не сделать это прямо сейчас, не дожидаясь перехода на CMP? Тогда становится понятным и молчание обоих производителей относительно будущих CPU: говорить-то, собственно, не о чем… «Все то же, только в удвоенном количестве» — вот и описание «очередной революции в процесоростроении» :).

Есть, правда, одна небольшая интрига: если с AMD все понятно — поместят в один чип два ядра K8 — и готов новый процессор, то насчет преемника нынешнего Pentium 4 ходят упорные слухи, что, дескать, NetBurst больше не жилец, и скоро будет нам всем глобальное счастье в виде наследника Banias/Dothan на десктопе. Этот момент, несмотря на всю его очевидность, придется все-таки прокомментировать особо. НЕ ВЕРЮ. Причин тому несколько. Во-первых, ядро Pentium M проектировалось специально для мобильных процессоров. И уж если Intel пошла на то, чтобы не дорабатывать десктопное ядро, а разрабатывать уникальное — то, наверное, не для того, чтобы оставить основные приоритеты в неприкосновенности. Следовательно, изначально была поставлена задача сделать экономичный и «холодный» процессор. Верите ли вы в то, что это удалось сделать без ущерба для производительности, заложенного на уровне самой архитектуры? Я — нет. А зачем Intel на десктопе (тем более учитывая наличие серьезного конкурента в лице AMD!) процессор, который замедлен на архитектурном уровне? Это первый, самый очевидный довод.

Во-вторых, — давайте вспомним то, о чём уже говорилось выше, о предрасположенности архитектуры NetBurst к хорошо оптимизированным программам. Под CMP программы все равно придется оптимизировать — иначе никакого прироста производительности от второго ядра не будет. Это с одной стороны. С другой стороны, — у нас есть архитектура, которая начинает очень хорошо «играть» именно после оптимизации ПО. Пусть мы говорим об оптимизациях немного разного сорта — но если уж программистов заставят что-то переписывать, то вряд ли они из принципа сделают только многопоточность, а от других путей доработки откажутся. Тут ведь, как говорится, главное чтобы «процесс пошел» ;). Стало быть, на новой волне переписывания программ у Pentium 4 есть шанс заиграть яркими красками даже в том программном обеспечении, в котором он раньше чувствовал себя не очень комфортно из-за нежелания разработчика заниматься переписыванием кода. Глупо было бы от этого шанса отказаться. Тот же довод, но немного с другой стороны: даже на данный момент существует уже очень много программного обеспечения, оптимизированного под Pentium 4. Отказываясь от NetBurst, Intel рискует начать проигрывать даже там, где до этого стабильно выигрывала.

Наконец, в-третьих, - пресловутые 64 бита. То, что в Prescott и Nocona (новейшие ядра Intel для десктопов и серверов) поддержка EM64T (она же x86-64, она же AMD64) физически уже присутствует — это, в общем-то, секрет Полишинеля. И совершенно очевидно, что «откроют» ее довольно скоро — AMD и так собрала слишком много сливок с рынка, на каждом углу рассказывая про то, что у нее есть 64 бита на x86, а у Intel — нет. Стало быть, в интересах Intel как можно скорее этот разрыв сократить. Так вот: учитывая опять-таки специфику процессора Pentium M и его разработки, а также то, что в основе его, судя по всему, действительно лежит модифицированное ядро Pentium III, автор делает вполне разумное предположение о том, что поддержки 64-битных инструкций в Pentium M нет — даже в скрытом виде. Это, как минимум, логично: так или иначе, но 64-битный процессор все равно больше чем 32-битный по количеству транзисторов, а Pentium M разрабатывался с прицелом на низкое энергопотребление, и лишние транзисторы ему совершенно без надобности. Кроме того, основной бонус от 64 бит — это работа с большими объемами памяти, а ноутбуков даже с 4 GB ОЗУ мне, честно говоря, видеть не доводилось ни разу в жизни (интересно, сколько такое чудо сможет от батарей работать? час?...).

Подытоживая: доводы против перевода на Pentium M-подобное ядро десктопной линейки Intel — весьма существенны, поэтому несмотря на всю шумиху по этому поводу в нетехнических компьютерных масс-медиа, автору такое развитие событий представляется крайне маловероятным.

Можно, конечно, выдумать еще один вопрос: не будет ли означать наличие двух ядер на будущих процессорах Intel отказ от Hyper-Threading? Однако ответ на него элементарен: разумеется, не будет. А зачем? Технология отлажена, транзисторов требует минимум. А вот эффект падения производительности при включении Hyper-Threading на одном процессоре (очень редкое, но все-таки существующее явление), по идее, должен пропасть — потому что теперь у нас физических ядер тоже два.

На этом, пожалуй, можно закончить. Еще некоторое время x86 проживет — за счет 64-битных расширений, введения многопроцессорности на уровне чипа, и вялотекущего роста частоты. Намного интереснее другое: что нас ждет после, когда и эти ресурсы окажутся исчерпанными? Четырехъядерные процессоры, или все-таки отказ от x86? Вот тут даже моя фантазия пасует…

 

Лекция 11. Память.

Классификация оперативной памяти (ОЗУ)

Введение

Оперативное запоминающее устройство является, пожалуй, одним из самых первых устройств вычислительной машины. Она присутствовала уже в первом поколении ЭВМ по архитектуре (“Информатика в понятиях и терминах”), созданных в сороковых — в начале пятидесятых годов двадцатого века. За эти пятьдесят лет сменилось не одно поколение элементной базы, на которых была построена память. Поэтому автор приводит некоторую классификацию ОЗУ по элементной базе и конструктивным особенностям.

Энергозависимая и энергонезависимая память

ЭВМ первого поколения по элементной базе были крайне ненадежными. Так, среднее врем работы до отказа для ЭВМ “ENIAC” составляла 30 минут. Скорость счета при этом была не сравнима со скоростью счета современных компьютеров. Поэтому требования к сохранению данных в памяти компьютера при отказе ЭВМ были строже, чем требования к быстродействию оперативной памяти. Вследствие этого в этих ЭВМ использовалась энергонезависимая память.

Энергонезависимая память позволяла хранить введенные в нее данные продолжительное время (до одного месяца) при отключении питания. Чаще всего в качестве энергонезависимой памяти использовались ферритовые сердечники. Они представляют собой тор, изготовленных из специальных материалов — ферритов. Ферриты характеризуются тем, что петля гистерезиса зависимости их намагниченности от внешнего магнитного пол носит практически прямоугольный характер.

Вследствие этого намагниченность этого сердечника меняется скачками (положение двоичного 0 или 1, смотри рисунок B.1.) Поэтому, собрав схему, показанную на рисунке B.2, практически собран простейший элемент памяти емкостью в 1 бит. Память на ферритовых сердечниках работала медленно и неэффективно: ведь на перемагничивание сердечника требовалось время и затрачивалось много электрической энергии. Поэтому с улучшением надежности элементной базы ЭВМ энергонезависимая память стала вытесняться энергозависимой — более быстрой, экономной и дешевой. Тем не менее, ученые разных стран по-прежнему ведут работы по поиску быстрой энергозависимой памяти, которая могла бы работать в ЭВМ для критически важных приложений, прежде всего военных.

Полупроводниковая память.

В отличие от памяти на ферритовых сердечниках полупроводниковая память энергозависимая. Это значит, что при выключении питания ее содержимое теряется.

Преимуществами же полупроводниковой памяти перед ее заменителями являются:

· малая рассеиваемая мощность;

· высокое быстродействие;

· компактность.

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

SRAM и DRAM.

Полупроводниковая оперативная память в настоящее время делится на статическое ОЗУ (SRAM) и динамическое ОЗУ (DRAM).

SRAM. Замечания.

Статическое ОЗУ —дорогой и неэкономичный вид ОЗУ. Поэтому его используют в основном для кэш-памяти, регистрах микропроцессорах и системах управления RDRAM.

DRAM. Что это такое?

Для того, чтобы удешевить оперативную память, в 90-х годах XX века вместо дорогого статического ОЗУ на триггерах стали использовать динамическое ОЗУ (DRAM). Принцип устройства DRAM следующий: система металл-диэлектрик-полупроводник способна работать как конденсатор. Как известно, конденсатор способен некоторое время “держать” на себе электрический заряд. Обозначив “заряженное” состояние как 1 и “незаряженное” как 0, мы получим ячейку памяти емкостью 1 бит. Поскольку заряд на конденсаторе рассеивается через некоторый промежуток времени (который зависит от качества материала и технологии его изготовления), то его необходимо периодически “подзаряжать” (регенерировать), считывая и вновь записывая в него данные. Из-за этого и возникло понятие “динамическая” для этого вида памяти.

За те годы, которые прошли со времени создания первых микросхем DRAM, их развитие шло “семимильными" шагами по сравнению с SRAM.

Динамическое ОЗУ.

Конструктивные особенности.

Динамическое ОЗУ со времени своего появления прошло несколько стадий роста, и процесс ее совершенствования не останавливается. За свою десятилетнюю историю DRAM меняла свой вид несколько раз. Вначале микросхемы динамического ОЗУ производились в DIP-корпусах. Затем их сменили модули, состоящие из нескольких микросхем: SIPP, SIMM и, наконец, DIMM и RIMM.

Устаревшие модификации.

DIP.

DIP- корпус —это исторически сама древняя реализация DRAM. DIP-корпус соответствует стандарту IC. Обычно это маленький черный корпус из пластмассы, по обеим сторонам которого располагаются металлические контакты.

Микросхемы (по-другому, чипы) динамического ОЗУ устанавливаются так называемыми банками. Банки бывают на 64, 256 Кбайт, 1 и 4 Мбайт. Каждый банк состоит из девяти отдельных одинаковых чипов. Из них восемь чипов предназначены для хранени информации, а девятый чип служит для проверки четности остальных восьми микросхем этого банка.

Чипы памяти бывают одно и четырехразрядными, и иметь емкость 64 Кбит, 256 Кбит, 1 и 4 Мбит.

Следует отметить, что памятью с DIP-корпусами комплектовались персональные компьютеры с микропроцессорами i8086/88, i80286 и, частично, i80386SX/DX. Установка и замена этого вида памяти была нетривиальной задачей. Мало того, что приходилось подбирать чипы для банков памяти одинаковой разрядности и емкости. Приходилось прилагать усилия и смекалку, чтобы чипы правильно устанавливались в разъемы. К тому же необходимо было не разрушить контакты механически, не повредить их инструментом, статическим электричеством, грязью и т.п. Поэтому уже в компьютерах с процессором i80386DX эти микросхемы стали заменять памяти SIPP и SIMM.

SIPP (SIP) —модули памяти.

Одной из незаслуженно забытых конструкций модулей памяти являются SIPP-модули. Эти модули представляют собой маленькие платы с несколькими напаянными микросхемами DRAM.

SIPP является сокращением слов Single Inline Package. SIPP-модули соединяются с системной платой с помощью контактных штырьков. Под контактной колодкой находятся 30 маленьких штырьков, которые вставляются в соответствующую панель системной платы.

Модули SIPP имели определенные вырезы, которые не позволяли вставить их в разъемы неправильным образом.

SIMM-модули.

Аббревиатура SIMM расшифровывается как Single Inline Memory Module (Модуль памяти с однорядным расположением выводов.) Он включает в себя все то, что для DIP называлось банком.

Модули SIMM могут иметь объем 256 Кбайт, 1, 2, 4, 8, 16 и 32 Мбайт. Соединение SIMM-модулей с системной платой осуществляется с помощью колодок.

Модуль вставляется в пластмассовую колодку под углом 70 градусов, а потом зажимается пластмассовым держателем. При этом плата встает вертикально. Специальные вырезы на модуле памяти не позволит поставить их неправильным образом.

Модули SIMM для соединения с системной платой имеют не штырьки, а позолоченные полоски (так называемые pin, пины).

Сравнение SIMM-модулей.

SIMM-модули в своем развитии прошли два этапа. Первыми представителями SIMM-модулей были 30-пиновые SIMM FPM DRAM. Их максимальная частота работы — 29 МГц. Стандартным же временем доступа к памяти считалось 70 нс. Эти модули уже с трудом работали на компьютерах с микропроцессорами i80486DX2, и были вытеснены сначала 72-пиновыми FPM DRAM, а затем EDO RAM.

SIMM EDO RAM имеют только 72 пина и могут работать на частоте до 50 МГц. Этими модулями памяти оснащались компьютеры с процессорами Intel 80486DX2/DX4, Intel Pentium, Pentium Pro и Pentium MMX, а также AMD 80586 и K5. Эти модули устанавливались на платах с чипсетом Intel 440TX, 440EX, 440LX, 450NX; VIA Apollo MVP 3/4, Pro/Pro+; ALI Alladin 4/4+/V/PRO II, ALI Alladin TNT2.

В настоящее время SIMM-модули, как 30-pin, так и 72-pin не удовлетворяют по своим характеристикам требованиям новых шин и процессоров. Поэтому они все активнее заменяютс модулями DIMM.

Причины повышения скорости работы EDO RAM.

Не смотря на небольшие конструктивные различия, и FPM, и EDO RAM делаются по одной и той же технологии, поэтому скорость работы должна быть одна и та же. Действительно, и FPM, и EDO RAM имеют одинаковое время считывания первой ячейки — 60 —70 нс. Однако в EDO RAM применен метод считывания последовательных ячеек. При обращении к EDO RAM активизируется не только первая, но и последующие ячейки в цепочке. Поэтому, имея то же время при обращении к одной ячейке, EDO RAM обращается к следующим ячейкам в цепочке значительно быстрее. Поскольку обращение к последовательно следующим друг за другом областям памяти происходит чаще, чем к ее различным участкам (если отсутствует фрагментация памяти), то выигрыш в суммарной скорости обращения к памяти значителен. Однако даже для EDO RAM существует предел частоты, на которой она может работать. Несмотря ни на какие ухищрения, модули SIMM не могут работать на частоте локальной шины PCI, превышающей 66 МГц. С появлением в 1996 году процессора Intel Pentium II и чипсета Intel 440BX частота локальной шины возросла до 100 МГц, что заставило производителей динамического ОЗУ перейти на другие технологии, прежде всего DIMM SDRAM.

DIMM

Аббревиатура DIMM расшифровывается как Dual Inline Memory Module (Модуль памяти с двойным расположением выводов). В модуле DIMM имеетс 168 контактов, которые расположены с двух сторон платы и разделены изолятором. Также изменились и разъемы для DIMM-модулей.

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

Модуль памяти SDRAM

Аббревиатура SDRAM расшифровывается как Synchronic DRAM (динамическое ОЗУ с синхронным интерфейсом). Этим они отличаются от FPM и EDO DRAM, работающих по асинхронному интерфейсу.

С асинхронным интерфейсом процессор должен ожидать, пока DRAM закончит выполнение своих внутренних операций. Они обычно занимают 60 нс. В DRAM с синхронным управлением происходит защелкивание информации от процессора под управлением системных часов. Триггеры запоминают адреса, сигналы управления и данных. Это позволяет процессору выполнять другие задачи. После определенного количества циклов данные становятся доступными, и процессор может их считывать. Таким образом, уменьшается время просто процессора во время регенерации памяти.

Другое преимущество синхронного интерфейса —это то, что системные часы задают временные границы, необходимые DRAM. Это исключает необходимость наличия множества стробирующих импульсов, обязательных дл асинхронного интерфейса. Это, во-первых, уменьшает трафик по локальной шине (нет “лишних”сигналов), а во-вторых, позволяет упростить операции ввода-вывода (в операциях пересылки центральный процессор либо контроллер DMA уже не должен выделять полезную информацию среди служебных стробирующих импульсов и битов четности). В-третьих, все операции ввода/вывода на локальной шине стали управляться одними и теми же синхроимпульсами, что само по себе хорошо.

Хотя SDRAM появилась уже давно, использование ее тормозилось высокой (на 33%) ценой по сравнению с EDO RAM. “Звездный час”SDRAM настал в 1997 году, после появления чипсета 440BX, работающего на частоте 100 МГц. Вследствие этого доля рынка SDRAM за год выросла в два раза (с 25% в 1997 году до 50% в 1998 году.)

В настоящее время выпускаютс модули SDRAM, работающие на частотах 100 и 133 МГц. Также разработаны SDRAM на частоты 143 МГц и выше.

ESDRAM.

Следующим оригинальным решением, увеличившим частоту работы SDRAM, явилось создание кэша SRAM на самом модуле динамического ОЗУ. Так появилась спецификация Enhanced SDRAM (ESDRAM). Это позволило поднять частоту работы модуля до 200 МГц. Назначение кэша на модуле точно такое же, что и кэш второго уровн процессора —хранение наиболее часто используемых данных.

SDRAM II.

Спецификация SDRAM II (или DDR SDRAM) не имеет полной совместимости с SDRAM. Эта спецификаци позволяет увеличить частоту работы SDRAM за счет работы на обеих границах тактового сигнала, то есть на подъеме и спаде. Однако SDRAM II использует тот же 168-ми контактный разъем DIMM.

 

SLDRAM.

Как и SDRAM II, эта спецификаци использует обе границы тактового сигнала и имеет в себе SRAM. Однако благодаря протоколу SynchLink Interface эта память способна работать на частоте до 400 МГц.

Память от Rambus (RDRAM, RIMM).

RDRAM представляет собой спецификацию, созданную и запатентованную фирмой Rambus, Inc. За счет использования обоих границ сигнала достигается частота работы памяти в 800 МГц.

Подсистема памяти Direct Rambus включает в себя следующие компоненты:

· Direct Rambus Controller.

· Direct Rambus Channel.

· Direct Rambus Connector.

· Direct Rambus RIMM(tm).

· Direct Rambus DRAMs.

Рассмотрим эти компоненты поподробнее:

Контроллер Direct Rambus —это главна шина подсистемы памяти. Он помещается на чипе логики, как и PC-чипсет, микропроцессор, графический контроллер. Физически можно поместить до четырех Direct Rambus —контроллеров на одном чипе логики. Контроллер —это интерфейс между чипом логики и памятью Rambus, и в его обязанности входит генерация запросов, управление потоком данных, и ряд других функций.

Direct Rambus Channel создает электрические соединения между Rambus Controller и чипами Direct RIMM. Работа канала основана на 30-ти сигналах, составляющих высокоскоростную шину. Эта шина работает на частоте 400 МГц и, за счет передачи данных на обеих границах тактового сигнала, позволяет передавать данные на 800 МГц. Два канала данных (шириной в байт каждый) позволяет получать пиковую пропускную способность в 1,6 Гбайт/с. Канал соответствует форм-фактору SDRAM.

Разъем Direct Rambus —это разъем со 168 контактами. Контакты расположены на двух сторонах модуля, по 84 с каждой стороны. Разъем представляет собой низкоиндуктивный интерфейс между каналом на модуле RIMM и каналом на материнской плате.

Модуль RIMM —это модуль памяти, который включает в себя один или более чипов и организует непрерывность канала. По существу, RIMM образует непрерывный канал на пути от одного разъема к другому. Поэтому оставлять свободные разъемы недопустимо.

Существуют специальные модули только с каналом, называемые continuity modules. Они не содержат чипов памяти и предназначены для заполнени свободных посадочных мест.

Модули RIMM имеют размеры, сходные с геометрическими размерами SDRAM DIMMs. Модули RIMM поддерживают SPD, которые используются на DIMM'ах SDRAM. В отличие от SDRAM DIMM, Direct Rambus может содержать любое целое число чипов Direct RDRAM (до максимально возможного).

Один канал Direct Rambus максимум может поддерживать 32 чипа DRDRAM. На материнской плате может использоваться до трех RIMM модулей. Используются 64 Мбит, 128 Мбит и 256 Мбит устройства.

Чтобы расширить память сверх 32-х устройств, могут использоваться два чипа повторителя. С одним повторителем канал может поддерживать 64 устройства с 6-ю RIMM модулями, а с двумя —128 устройств на 12 модулях.

Чипы DRDRAM. Чипы DRDRAM составляют часть подсистемы Rambus, запоминающие данные. Все устройства в системе электрически расположены в канале между контроллером и терминатором. Устройства Direct Rambus могут только отвечать на запросы контроллера, который делает их шину подчиненной или отвечающей. Устройства включают в себя статическое и динамическое ОЗУ.

Оперативная кэш-память.

Как уже отмечалось, для динамической оперативной памяти необходима периодическая ее регенерация. В компьютере это осуществляетс централизовано: организуется цикл прямого чтения/записи содержимого динамического ОЗУ. Эта операция осуществляется с помощью специальной микросхемы. В процессе регенерации микропроцессор переходит в режим ожидания, что снижает производительность системы не менее чем на 5%.

Минимальный цикл обращени микропроцессора к оперативной памяти состоит из двух состояний шины. Подсчитано, что около 70% всех обращений процессора к шине компьютера составляет чтение команд, 20% — чтение и запись данных, и только оставшиеся 10% составляют обращения к устройствам ввода-вывода. Поэтому введение даже одного состояния ожидания при обращении к памяти значительно снижает производительность компьютера. Таким образом, существенный рост быстродействия системы может быть достигнут только при сбалансированной работе подсистемы памяти.

Для старых персональных компьютеров (на основе микропроцессоров Intel i8088, i8086, i80286 и процессоре i80386/20 МГц) была характерна одноуровневая система организации памяти. По этой системе разработчики были вынуждены устанавливать дешевые DRAM с быстродействием 80 —120 нс, либо применять дорогостоящие SRAM с быстродействием 40 —60 нс. Для сокращени среднего времени ожидания при обращении к операционной системе использовались (и используются в настоящее время) методы интерливинга и страничной организации.

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

Преимущество систем с интерливингом проявляется при обращении к последовательным ячейкам и считывании сразу 32-х бит информации. В противном случае интерливинг не дает никаких преимуществ.

В системах со страничной организацией памяти вся память делится на фиксированные по размеру зоны адресов —страницы. Обращение к памяти в пределах страницы происходит без ожидания, а при смене страницы —как обычно, с состояниями ожидания.

При страничной организации память делится на строки и столбцы. Адрес обращения к двойному слову содержит 9-ти разрядный номер строки и 9-ти разрядный номер столбца. При обращении к странице сигнал выбора номера строки поддерживается неизменным, а сигнал выбора столбца переставляется на столбец, откуда нужно прочитать данные.

Страничная организация памяти требует для своей реализации особые микросхемы. Они имеют специальный режим – страничный доступ со статической выборкой столбцов (static column decode).

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

Основным фактором, определяющим вероятность попадания, является емкость кэш-памяти. Как правило, при объеме кэша в 2 Кбайта вероятность попадания составляет от 50 до 60%. Поскольку размер кэш-памяти на современных компьютерах превышает 256 Кбайт, то вероятность попадания будет выше 90% (дл компьютеров с объемом памяти ~ 16 Мбайт.)

Для реализации кэш-памяти в настоящее время разработаны эффективные однокристальные контроллеры. Наиболее широкое распространени получили контроллеры i82385 фирмы Intel и A38152 фирмы Asustec Microsystems.

Контроллер i82385 поддерживает 32 Кбайта кэш-памяти, и может работать в двух конфигурациях:

· Кэш-память с прямым отображением.

· Двухканальная модульно-ассоциативна кэш-память.

Первая конфигурация характеризуется простотой реализации, однако она оказывается неэффективной при работе в мультизадачных системах. В двухканальной реализации кэш-память разбивает все 4 Гбайтное адресное пространство на 262144 страницы по 16 Кбайт. 32-х разрядный физический адрес состоит из четырнадцатиразрядного адреса, определяющего информацию в кэш-памяти, и восемнадцатиразрядного тега, определяющего номер страницы. Каждый адрес оперативной памяти может быть отображен в одну из двух ячеек кэш-памяти.

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

Однокристальный контроллер кэш-памяти фирмы ASUSTEC, совместно с памятью данных 32 Кбайта обеспечивает вероятность попадания более 95%. Это достигается благодаря использованию четырехканального модульно-ассоциативного обращения, который отображает адрес оперативной памяти в одну из четырех ячеек кэш-памяти. При этом, вследствие организации последовательного обращения к памяти данных, требуется подключени всего одного банка памяти данных.

Контроллер A38152 фирмы Asustec имеет аппаратные и программные средства, обеспечивающие связанность информации: логика слежения за шиной, которая обеспечивает ликвидацию копий блоков в кэш-памяти, задани области адресов, не отображаемой в кэш-память (например, для сопроцессора фирмы Weitec и устройств ввода/вывода).

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

...Уже до появления микропроцессора i80486 фирмы Intel стало ясно, что скорость обмена данных процессор-память по системной шине происходит очень медленно даже при использовании внешней кэш-памяти. Поэтому уже в микропроцессоре i80486 фирма Intel стала использовать кэш-память, находящейся в самом процессоре. В процессоре i80486 осуществляется кэширование системных регистров —путем введения “теневых" регистров. Когда программа загружает селектор в системный регистр, процессор автоматически считывает (“кэширует”) нужный системный регистр в теневом регистре. После этого обращения к памяти достаточно сложить эффективный адрес с базовым адресом сегмента в теневом реестре, и получить линейный адрес. Это так называемый кэш первого уровня. В микропроцессоре Pentium кэшированию стали подвергать не только системные регистры, но и регистры данных и предвыборки команд.

Логическим продолжением явилось размещение кэш-памяти и ее контроллера не на материнской плате, а на самом процессоре. При этом решаются две задачи:

Упрощение шины передачи данных.

Появилась возможность работы кэш-памяти не на частоте шины, а на частоте процессора. При этом скорость работы кэш-памяти увеличивается.

Исходя из всего этого, в микропроцессоре Pentium стала использоватьс встроенная в него кэш-память второго уровня. Благодаря ней скорость работы процессора на тех же системных платах возросла. Необходимо, однако, отметить, что изготовление кэш-памяти второго уровня на кристалле процессора намного усложняет стоимость самого микропроцессора. Именно для недорогих моделей компьютеров фирма Intel стала изготовлять процессоры без кэша второго уровня или с кэш-памятью меньшего размера. Примером такого процессора являетс процессор Intel Celeron. Он аналогичен процессору Intel Pentium II, однако либо не содержит кэш второго уровня (в первых моделях), либо он небольшой (в новых версиях этого процессора.) Благодаря этому упала его цена и производительность.

Постоянное запоминающее устройство.

К постоянной памяти относят постоянное запоминающее устройство, ПЗУ (в англоязычной литературе - Read Only Memory, ROM, что дословно перводится как "память только для чтения"), перепрограммируемое ПЗУ, ППЗУ (в англоязычной литературе – Programmable Read Only Memory, PROM), и флэш-память (flash memory). Название ПЗУ говорит само за себя. Информация в ПЗУ записывается на заводе-изготовителе микросхем памяти, и в дальнейшем изменить ее значение нельзя. В ПЗУ хранится критически важная для компьютера информация, которая не зависит от выбора операционной системы. Программируемое ПЗУ отличается от обычного тем, что информация на этой микросхеме может стираться специальными методами (например, лучами ультрафиолета), после чего пользователь может повторно записать на нее информацию. Эту информацию будетневозможно удалить до следующей операции стирания информации.

Флэш-память.

Особо следует рассказать о флэш-памяти. Flash по-английски – это "вспышка, проблеск". Флэш-память является энергонезависимой памятью, (как и ПЗУ и ППЗУ). При выключении компьютера ее содержимое сохраняется. Однако содержимое flash-памяти можнр многократно перезаписывать, не вынимая ее из компьютера (в отличие от ППЗУ). Запись происходит медленнее, чем считывание, и осуществляется импульсами повышенного напряжения. Вследcтвие этого, а также из-за ее стоимости, флэш память не заменит микросхемы ОЗУ.

CMOS-память.

CMOS-память – энергозависимая, перезаписываемая память, которая при своей работе , однако, почти не потребляет энергии. CMOS переводится как complementary metal oxode semiconductor – "комплиментарный металл - оксид - полупроводниковый". Достоинства этой памяти – низкое потребление энергии, высокое быстродействие. В CMOS - памяти компьютера находятся важные для его работы настройки, которые пользователь может менять для оптимизации работы компьютера. Питается эта память от небольшого аккумулятора, встроенного в материнскую плату.

Недостатки перезаписываемой памяти.

Основной недостаток ПЗУ – невозможность обновить информацию в этом виде памяти, – одновременно является и его преимуществом: данные невозможно потерять случайно и умышленно. Особенно это стало актуальным на рубехе XX – XXI веков, с вытеснением микросхем ПЗУ на CMOS и flash-память.

Распределение памяти в компьютерах

Область ПЗУ

Системная область занимает следующие 384 Кбайт адресного пространства. Распределение адресов в этой области в наибольшей степени зависит от фирмы-производителя и модели компьютера. Эта область впервые выделилась в компьютерах на основе процессора 8088. В них эта область содержала видеопамять, BIOS, дополнительный BIOS и, кроме того, содержала внутренний интерпретатор с языка Бейсик. В начале видеопамять 000С:0000 – 000С:FFFFh (размером 64 Кбайт). Затем видеопамять возросла до 128 Кбайт (EGA- VGA режимы высокого разрешения), и стала занимать пространства адресов с 000А:00000h до 000B:FFFFh. Соответственно область BIOS сдвинулась в пространстве адресов 000E:0000h – 000F:FFFFh. В настоящее время и SVGA-видеокарты в режиме высокого разрешения видеопамять в RAM (системной области оперативной памяти) занимает те же 128 Кбайт , а доступ к остальной части видеопамяти (размер которой может превышать 4 мегабайта), осуществляется постранично. Управление постраничным выделением памяти (по 128 Кбайт каждая страница) осуществляется с помощью ПЗУ на самой видеоплате.

Область памяти с адресами 000С:0000h – 000D:FFFFh занимает либо страница дополнительной (expanded) LIM-памяти, либо дополнительное ПЗУ (BIOS) пользователя. Это ПЗУ позволяет превратить обычный офисныйый компьютер в специализированную ЭВМ. В современных компьютерах эта область содержит ПЗУ USB (Universal Serial Bus), поэтому для дополнительной памяти надо выделять другие адреса.

Уже у компьютеров серии PC/AT системное ПЗУ было расширено до 64 Кбайт, и в частности, за счет исключения интерпретатора с языка Бейсик. Важно отметить, что в последних 16 байтах области системной памяти (которая занимает пространство адресов с 000Е:0000h по 000F:FFFFh) находится стартовый адрес микропроцессора при включении питания и который не должен быть переопределен ни в коем случае.

Конечно, для современных компьютеров размеры системного ПЗУ в 64 Кбайта (и даже в 128 Кбайт!) уже недостаточно, поскольку число различных подключаемых к компьютеру устройств велико. Поэтому большинство устройств содержат собственные ПЗУ (BIOS) прямо на самой плате-контроллере , а доступ к нему осуществляется с помощью устройств прямого доступа к памяти (DMA). Задача системного BIOS – переправлять сигналы операционной системы в ПЗУ периферийного устройства на обработку, и корректно возвратить обратно полученный ответ. Именно поэтому разделение системного адресного пространства на области весьма условно.

Распределение (карта) памяти шиноцентричных Intel-совместимых компьютерах.

В августе 1981 года фирма IBM выпустила свой первый персональный компьютер, основанный на микропроцессоре Intel 8088. Этот процессор способен был адресовать 1 Мбайт оперативной памяти, которой, как тогда казалось, персональным компьютерам хватит надолго. В связи с этим проблеме распределения памяти уделили меньше внимания, чем другим проблемам. С легкой руки компании Microsoft это распределение памяти "укоренилось" в мире и стало стандартом де-факто для всех Intel-совместимых компьютеров.

В памяти Intel-совместимых компьютеров можно выделить три зоны памяти:

 

 

· Базовая (Conventional) память - первые 640 Кбайт памяти с адресами 0000:0000h - 0009:FFFFh.

· Старшая (Upper) память - следующие 384 Кбайта (адреса 000A:0000h - 000F:FFFFh).

· Расширенная (Extended) - вся остальная память. Она начинается с адреса 0010:0000h. Максимальное значение адреса - FFFF:FFFFh.

Рассмотрим эти три зоны по-подробнее.

Базовая память.

Со времен микропроцессора 8088 здесь находятс все исполняемые программы, в том числе и операционная система. Эта преемственность сохранилась до сих пор. В самом начале этой области находится:

· Таблица векторов прерываний. Она всегда находится в диапазоне адресов 0000:0000h - 0000:0400h (первый килобайт памяти). Таблица определяет адреса прерываний - готовых процедур операционной системы, которые компьютер вызывает для выполнения определенной задачи. Программы прерываний стандартизованы для всех операционных систем фирмы Microsoft.

· Файл надстройки над системой BIOS - файл IO.SYS. В этом файле находятся программы-прерывани ввода/вывода, специфичные для операционной системы Microsoft.

· Система обработки прерывания (Int 21h) системы MS-DOS - файл MSDOS.SYS Примечание: эта часть отсутствует в операционных системах Windows. Она целиком помещается в файле IO.SYS.

· Стеки операционной системы MS-DOS. Эти стеки используются исключительно программами - прерываниями операционной системы. Число стеков варьируется в MS-DOS в пределах от 8-ми до 64-х, а их размер - от 32-х до 512-ти байт. Стеки устанавливаются командой STACKS в файле Config.sys.

· Системное окружение. Здесь расположены переменные окружения операционной системы (задаваемые командами SET, PATH, Prompt, Lastdrive и некоторыми другими.) Размер системного окружени задается в опциях команды SHELL файла Config.sys.

· Буфера ввода/вывода дисковых накопителей. Число буферов ввода/вывода задается командой Buffers файла Config.sys. На каждый буфер выделяется по 532 байта.

· Дескрипторы открытых файлов. На каждый дескриптор отводится 64 байта. Число дескрипторов устанавливается командой FILESфайла Config.sys.

· Драйверы, запускаемые командой Device файла Config.sys. Среди них могут быть драйверы расширенной памяти Himem.sys, дополнительной памяти Emm386.exe, а также совмещенный драйвер Quemm386.sys.

· Резидентные программы, загружаемые в память командой Install файла Config.sys.

· Резидентная часть командного процессора Command.com.

· Резидентные программы, загружаемые из файла Autoexec.bat и командной строки.

Вся остальная базовая память доступна для программ MS-DOS. Общий объем базовой памяти, занятой системными программами, не должен превышать 256 Кбайт, а рекомендуемый максимальный размер этой области - 128 Кбайт. Только при свободном объеме 512 Кбайт большинство программ DOS будут чувствовать себя комфортно.

Конечно, любой драйвер подключенного к компьютеру устройства, любая запущенна резидентная программа забирает под свои нужды определенную часть памяти, и лимит в 128 Кбайт может быть достигнут очень быстро. Чтобы избежать этого, возможны два сценария:

· (Для MS-DOS версий 5.0 и выше.) Загрузить большинство резидентных программ и драйверов, а также часть основных файлов MS-DOS в верхнюю и старшую память.

· (Для всех операционных систем.) Создать несколько конфигураций из файлов Config.sys и Autoexec.bat (или им подобных), содержащих необходимый минимальный набор драйверов и резидентных программ, и переключаться между конфигурациями путем перезагрузки компьютеров.

Любой из сценариев имеет свои достоинства и недостатки. Поэтому выбор любого сценария либо их комбинации должен решаться индивидуально.

Расширенная память.

Зоны в расширенной памяти.

Не вся область расширенной памяти доступна дл выполнения программ. В этой области памяти находится зона теневого BIOS (Shadow RAM) и зона микропроцессора Weitec.

Зона теневого BIOS.

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

При создании теневого BIOS необходимо учитывать следующее: ПЗУ от ОЗУ отличается тем, что его содержимое нельзя изменить. Поэтому, в принципе, содержимое теневого BIOS можно изменить. Чтобы избежать этого, в настройках материнской платы необходимо 1запретить доступ программ "на 1запись" к теневому BIOS.

Зона теневого BIOS расположена по адресам памяти 00FE:0000h - 00FF:FFFFh. При этом зона системного BIOS расположена в первых 64 Кбайт этой области. Остальное пространство используется дл теневого BIOS плат расширения. Весьма нежелательно, чтобы эта область памяти фрагментировалась.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.