В.А. Фисун - Прикладное программирование в задачах математической физики. Архитектурные принципы построения ЭВМ (pdf) (1127762), страница 7
Текст из файла (страница 7)
Основная электроннаяпамять ЭВМ – ОЗУ реализуется на элементах динамической памяти(DRAM) и располагается на отдельном кристалле.Для ускорения работы микросхемы памяти используются различныесистемы управления доступа к данным. Основные способы повышения производительности следующие:1.
Многопортовые системы памяти ( multiport memory access).Многопортовые микросхемы допускают одновременную обработку нескольких запросов к памяти. Так, в двухпортовой памяти дублируются адресные, информационные и управляющие шины. Число возможных параллельных запросов, число портов, определяется коэффициентом размноженияшин. Проблемы корректности записи в ячейку памяти одновременно с попыткой прочитать её содержимое решается аппаратной схемой арбитража.2. Пакетный режим (burst mode) обращения к памяти.Большинство команд считываются последовательно из соседних ячеекпамяти.
Последовательная выборка и запись данных является массовой операцией ряда вычислительных алгоритмов. Если обеспечить одновременныйПособие 17.09.0925доступ к содержимому соседних ячеек памяти и выбор большого кванта памяти целиком в регистры, то команды и данные последовательных запросов можно брать из этого пакета.3. Конвейерная (pipelining) обработка запросов к памяти.Архитектура памяти позволяет начать цикл считывания из памяти, недожидаясь окончания считывания текущего.
При этом очередной доступвыполняется, не дожидаясь окончания предыдущего (если запросы независимы).Так как память разбита на множество банков с независимыми системами управления, то можно управлять очередью запросов к памяти. Если запрашиваются данные из разных банков, то последующий запрос можно делать, не дожидаясь окончания обработки предыдущего запроса.4. Чередование адресов (расслоение) памяти (interleaved memory).Расслоение памяти реализуется для памяти, состоящей из банков с независимыми устройствами управления.
Адресация байтов в М банках организуется так, что при регулярной выборке данных повторное обращение кодному банку произойдет через М обращений, поэтому возможно совмещение времени выборки. Такая адресация называется иногда карусельной. Длячетырех банков одинаковой емкости: Б1, Б2, Б3, Б4 при расслоении распределение адресов памяти по банкам будет таким.Адреса в банках012Б1048Б2159Б32610Б43711Распределение первых12 адресов памятиПри такой схеме расслоения два младших бита в адресе байта определяют банк памяти, из которого по старшим битам адреса будет происходитьобращение к байту.
Расслоение можно использовать как при пакетном, так иконвейерном доступе к памяти. При конвейерном доступе при М-кратномрасслоении и регулярной выборке данных доступ к памяти возможен с интервалом, равным 1/М времени цикла памяти. Но возможны конфликты подоступу, если шаг регулярной выборки коррелируется с числом банков памяти. Обычно коэффициент расслоения выбирается кратным двойки. Поэтому выборку данных с шагом, кратным двойке, следует избегать. Механизм расслоения реализуется как для оперативной памяти, так и для кэш память, причем выбор коэффициента расслоения для банков кэша - не тривиальная задача.3.2. Адресная и ассоциативная памятьЕдиницей программно адресуемых данных в оперативной памяти – ОЗУ- является байт. Такой вид памяти, при котором необходимая информацияопределяется номером строки памяти (байта), называется "адресной".
Приразмещении данных в составных элементах: в полуслове (16 бит – 2 байта),Пособие 17.09.0926в слове (32 бита – 4 байта), в двойном слове (64 бита – 8 байтов), - возникаетпроблема выбора старшинства байтов в этих элементах. Пусть код 32битового целого числа без знака, записанного в обычном порядке, при котором бит с наименьшим весом записывается последним, состоит из байтовБ1, Б2, Б3, Б4. Порядок записи этого кода, при которой старший байт (Б1)расположен, начиная с младшего адреса памяти, называется big-endian (тупоконечный). Такой порядок принят в микропроцессорах фирм IBM, HP иеще в некоторых других. Тогда целое число “один” будет храниться в двухбайтовом формате в виде 0000 0001, в четырехбайтовом – 0000 0000 00000001.Альтернативный порядок размещения байтов (Б4, Б3, Б2, Б1) – младшиеразряды в младших адресах памяти - называется little-еndian (остроконечный), он принят фирмами Intel (IA32), VAX и др.
Здесь единица будет храниться в двухбайтовом формате записи в виде 0001 0000, в четырехбайтовомформате – 0001 0000 0000 0000.Достоинства каждого порядка размещения байтов преувеличиваетсяразработчиками оборудования, в котором применятся тот или иной порядокстаршинства записи байтов в памяти.
Некоторые процессоры поддерживаютоба порядка записи, а выбором порядка размещения байтов составных элементов можно управлять программно. Экзотические названия порядковразмещения байтов в составных элементах взяты у Д. Свифта, Гулливер которого насмехался над расколом в неком обществе, возникшем по поводувыбора конца вареного яйца, с которого следует его разбивать.
При побитовом программировании, например, при формировании логических шкал,следует иметь в виду, что выбранный порядок размещения байтов в составных структурах может не совпадать с порядком нумерации битов в байтах.Содержимое этого восьмибитового кода может интерпретироваться как целое число без знака из диапазона 0-256, как логическая шкала или литераалфавита, например, стандарта ANSII.
В коммутационных системах уточняется старшинство битов в байте. Так, целое число 7 может быть закодировано байтом 00000111, а также – 11100000, то при побитовых пересылках байта учитывается (задается) порядок пересылки битов. А если учесть существование схем адресации, при которых составной элемент ОЗУ (страница памяти, например) идентифицируется не первым, а последним байтом, разбираться со схемами адресации памяти на уровне битов непросто.
Поэтому кприведенным выше терминам о тупо и остроконечности можно добавитьсентенцию того же автора: “Все истинные верующие должны разбивать яйцас правильного конца”.К составным элементам относятся также символьные строки, причемпервый символ имеет наибольший вес, выбор порядка последовательностизаписи символов строки такой же, как и для чисел.Из составных элементов можно формировать массивы, тогда ОЗУ будетпредставляться двумерным массивом. Обращение за содержимым строкипроизводится заданием номера (адреса) нужной строки - Ai. При записи,Пособие 17.09.0927кроме адреса строки, указывается регистр, содержимое которого следует записать в эту строку. Пусть в памяти из трех строк хранятся номера телефонов:192402194483043336167Для получения номера телефона второго абонента следует обратиться:load (А2) и получить в регистре ответа 9448304.Другой вид оперативной памяти – "ассоциативное запоминающее устройство" (АЗУ) - можно рассматривать также как двумерную таблицу, но укаждой строки таблицы есть дополнительное поле, поле ключа.
Например:Поле ключа СодержимоеИванов1924021Петров9448304Сидоров3336167После обращение к ассоциативной памяти с запросом: load (Петров) получим ответ: 9448304. Здесь задание координаты строки памяти производится не по адресу, а по ключу - Петров. Но при состоянии ассоциативнойпамяти:КлючСодержимоеА11924021А29448304А33336167можно получить номер телефона из второй строки запросом: load (А2), поключу А2. Этот пример служит для иллюстрации возможной имитации адресной памяти на ассоциативной памяти.Ассоциативная память имеет очевидное преимущество по сравнению садресной памятью.
Однако у нее есть большой недостаток - ее аппаратнаяреализация при современном состоянии техники невозможна для памятибольшого объема. Привлекательность ассоциативной схемы хранения и поиска информации вызвала к жизни целый набор механизмов имитации ассоциативной памяти при помощи адресной. В общем случае задача сводятсяк нахождению так называемой хэш-функции f. Эта функция отображенияключа K в адрес памяти (адресной) a = f(K).Пример тривиальной хеш-функции для организации телефонной книги.Адресная память, выделенная для реализации телефонного архива, делитсяпополам.В первой части памяти записаны ключи (фамилии), во второй - соответствующие номера телефонов. Алгоритм работы хэш-функции очевиден:сначала перебором содержимого первой части памяти находится индекс,который соответствует заданной фамилии. Затем по этому индексу из второй части памяти выбирается номер телефона. Такая функция непригоднадля систем, критичных к времени выборки.Пособие 17.09.0928Опуская промежуточные схемы, реализация быстрой схемы выборкиданных из адресной памяти по ассоциативному принципу такова.
Опятьтривиальная хэш-функция: текст ключа – фамилия - рассматривается какдвоичное число и используется в качестве адреса в обычной адресной памяти, в которой хранятся номера телефонов. Обеспечивая скорость выборкиданных, равной по характеристикам обычной, адресной памяти, такаяфункция очень расточительно использует память. Поэтому хэш-функциивыбирают, используя особенности множеств, из которых формируютсяключи. Так, если ключи – тексты фамилии в байтовой кодировке - разрядность кодов ключей может быть сокращена при сжатии текстовой записи.3.3. Виртуальная памятьВиртуальная память – линейная модель памяти, она же сплошная, плоская (flat), позволяет обращаться к памяти ЭВМ единообразно.
Механизмвиртуальной памяти позволяет: снять ограничения, связанные с объемомпамяти, при разработке алгоритмов; предоставлять программисту областьпамяти в виде логически непрерывного пространства; способствовать болееэффективному управлению физической памятью.По определению, исполнительный адрес, сформированный в процессоре, может указывать на любой элемент памяти виртуального адресногопространства (байта) из диапазона: 0 – (N-1), где N=2n , а n ассоциируется сразрядностью внутрипроцессорных интерфейсов. Современные процессорыимеют 32-разрядные шины, а некоторые - уже 64-разрядные.
Так, для i486процессоров (архитектура IA32) с 32-разрядной шиной объем виртуальногоадресного пространства равен 4 Гбайт. Программа, выполняемая на процессоре, имеет право использовать для адресации элементов своего объектногокода и данных в общем случае весь объем виртуальной памяти. Обычновиртуальное пространство программ укорачивается на размер общедоступных системных процедур (библиотек, оболочек, пакетов), к которым обращаются программы всех пользователей. Реальное физическое пространстводля отображения всего объема виртуального пространства программы может быть обеспечено только на жестких магнитных дисках, физическая память процессора - ОЗУ, которая используется при выполнении программы,имеет гораздо меньший объем (1-32 Мбайт). Однако, согласно принципусуществования в вычислительных приложениях точек сгущения, можнопредположить, что программы в течение некоторого времени используютлокальные фрагменты текста программы и ее данных, возможно, расположенных на различных участках виртуального пространства.Поэтому можно использовать физическую оперативную память процессора в качестве буфера, куда будут переписываться требуемые фрагментыпрограммного приложения с жесткого диска по мере необходимости.