Архитектура ЭВМ и систем
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Омский государственный технический университет
Архитектура ЭВМ и систем
Конспект лекций
Составитель к.т.н., доцент В.Н. Цыганенко
Омск
2015
СОДЕРЖАНИЕ
1. Основные понятия об организации ЭВМ и систем 4
1.1. Общее понятие об архитектуре 4
1.2 Архитектура фон Неймана. 4
1.3. Микропрограммное управление и CISC-процессоры 5
1.4. Организация множества микропрограмм 7
1..5. Основные принципы работы RISC-процессоров. 9
2. ОРГАНИЗАЦИЯ ПРОЦЕССОРОВ 11
2.1. Функции и структура процессоров 11
2.2. Различные уровни рассмотрения организации процессора. 12
2.3. Основные характеристики процессоров. 13
2.4. Методы адресации и типы данных. 16
2.4.1. Методы адресации 16
2.4.2. Типы и размеры операндов 17
2.5. Типы процессоров, в зависимости от способа инициирования команд. 18
2.6. Конвейерная реализация команд 19
2.7. Организация обращений к памяти 21
3. СПОСОБЫ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СОВРЕМЕННЫХ ПРОЦЕССОРОВ 22
3.1. Тенденция к параллелизму и конвейеризации в обработке 22
3.2. Блоки вычислений с плавающей точкой 23
3.3. Блок предсказаний правильного адреса перехода 24
3.4. Динамическое переупорядочивание команд 24
3.5. Совмещение RISC и CISC архитектур 25
3.6. Организация кэш-памяти 25
3.7. Мультимедийное расширение системы команд 26
4.ОБЩИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ПАМЯТИ 27
4.1. Функции и структура памяти. 27
4.1.1.Функции памяти 27
4.1.2. Требования, предъявляемые к памяти 27
4.1.3. Влияние структуры данных на организацию памяти 27
4.2. Элементы и устройства памяти 28
4.2.1. Общее представление 28
4.2.2. Полупроводниковая память 30
4.2.3. Магнитная запись 31
4.2.4. Оптические ЗУ. 34
5.Иерархическая структура памяти 36
5..1 Многоуровневая система памяти 36
5.2.Управление памятью 37
5.2.1. Элементы управления памятью 37
5.2.2. Процедура управления 38
5.3. Буферная память 38
5.3.1. Краткое описание 38
5.3.2. Система управления 39
5.4. Виртуальная память 42
5.4.1. Система виртуальной адресации 42
5.4.2. Управление распределением основной памяти 45
5.4.3. Виртуальное представление 45
5.5. Современные способы согласования скорости памяти и процессора 46
Организация пакетной выборки. 46
Увеличение времени удержания на выходе 46
6. Основы вввода/вывода в ЭВМ 51
6.1. Архитектура ввода-вывода 51
6.2. Устройства ввода-вывода различных типов 52
6.3. Управление вводом-выводом 53
6.3.1. Системы управления вводом-выводом 53
6.3.2. Понятие о прямом доступе к памяти 54
6.4. Принципы организации системы прерываний. 55
6.5. Понятие об интерфейсе ввода/вывода. 56
6.6. Системные шины современных ЭВМ (для ПК). 57
6.7. Интерфейсы периферийный устройств. Интерфейсы ввода/вывода. 60
1. Основные понятия об организации ЭВМ и систем
1.1. Общее понятие об архитектуре
Термин «архитектура системы» употребляется в узком и широком смысле этого слова. В узком смысле под архитектурой понимается описание структуры данных и регистров, необходимое для уяснения системы команд вычислительной машины и интерпретации этих команд. Иначе говоря, этим понятием охватываются те минимальные знания, которые могут понадобиться программисту для составления программы на машинном языке. В широком смысле архитектура подразумевает понятие организации системы в виде совокупности отдельных функциональных модулей и определенных связей между ними, включая систему памяти, структуру системной шины, организацию ввода/вывода и т.п. к такому расширению понятия архитектуры привели распространение виртуальной памяти, а также расширение многообразия и повышение эффективности средств управления вводом-выводом. Сюда можно отнести конвейерную обработку, параллельное управление и другие приемы. Без знания этих средств невозможно составить эффективную программу.
Применительно к вычислительным системам термин «архитектура» может быть определен как распределение функций, реализуемых системой, между ее уровнями. Архитектура первого уровня определяет, какие функции по обработке данных выполняются системой в целом, а какие возлагаются на внешний мир (администраторов, операторов, пользователей и др.) Система взаимодействует с миром через набор интерфейсов, а именно, языки и системные программы. На каждом уровне имеется свой набор интерфейсов и функций. Более подробно уровни архитектуры рассматриваются в соответствующих курсах.
Уже длительное время сохраняется устойчивая тенденция, когда доля затрат на аппаратные средства в общей сумме расходов, необходимых для обработки информации, снижается. В то же время относительная стоимость программного обеспечения в общих издержках на обработку информации растет и достигает сейчас почти 90 % этих издержек. И хотя в целом стоимость обработки информации постоянно снижается, наблюдается торможение в создании новых архитектурных принципов. Вычислительная система, созданная по новым архитектурным принципам, требует колоссальных вложений в создание нового математического обеспечения или адаптацию старого. Современные компьютеры претерпевают, в основном, мягкий эволюционный рост, направленный на повышение производительности.
Повышение производительности связано с наращиванием разрядности обрабатывающих компонентов системы и совершенствованием технологии производства микросхем. Это позволяет производить обработку на более высоких частотах. Кроме того, существуют и другие, чисто архитектурные приемы, рассмотренные ниже.
1.2 Архитектура фон Неймана.
Принцип работы фон Неймана сформулирован в 1945 г. и воплощен в реальный компьютер в 1949 г. Согласно этому принципу компьютер включает в себя (рис.1.1.) :
1. Арифметико-логическое устройство (АЛУ);
2. Устройство управления (УУ);
3. Запоминающее устройство (ЗУ);
4. Внешние устройства (ВУ) и интерфейсы.
Для данного компьютера характерно наличие следующих черт:
1. Хранимая в ЗУ программа вводится в УУ.
2. УУ считывает содержимое ячейки памяти и организует ее выполнение.
3. Изменение порядка выборки ячеек происходит с помощью команд управления.
4. ВУ для обращения за обслуживание используют прерывания.
Рис.1.1. Архитектура фон Неймана.
В настоящее время большинство разрабатываемых и производимых компьютеров имеют именно фоннеймановскую архитектуру.
Устройства управления (УУ) задает порядок следования, положение во времени и напрвление прохождения информации внутри каждого блока ЭВМ.
Функции УУ:
1.Выборка машинной команды.
2.Декодирование соответствующей последовательности действий.
3.Управление конкретными вентилями с целью выполнения операций над данными.
4.Изменение состояния вычислительной машины, которое делает возможным выполнение следующей команды.
Пример:
Рассмотрим сложение содержимого двух регистров R и АСС с помещением результата в R. Известно, что адрес команды находится в счетчике команд СО.
1.Содержимое СО посылается в регистр адреса управляющей памяти УП одновременно направляется в АЛУ, где инкрементируется. Таким образом в некотором регистре появляется адрес следующей команды.
2.Чтение команды из УП,в СО посылается адрес следующей микрокоманды.
3.Анализ команды схемой управления и ее декодирование.
4.Cодержимое R и АСС направляется в АЛУ через буферные регистры и там складываются.
5.Результат записывается в R.
6.Если все в порядке (например, нет переполнения), то переходят к следующей команде.
Таким образом, данной команде может соответствовать более чем одна управляющая последовательность.
1.3. Микропрограммное управление и CISC-процессоры
Среди компьютеров, работающих по принципу фон Неймана можно выделить два основных направления: компьютеры со сложным набором команд (CISC) и компьютеры с сокращенным набором команд (RISC).
Ярким представителем первого направления являются процессоры серии х86. Первоначальный набор команд в них постепенно пополнялся командами, все более напоминающими команды языков высокого уровня. Этот прием позволяет упростить компилирование, так как язык команд процессора все больше приближается к высокоуровневым языкам средней сложности. Для CISC процессоров характерно большое количество форматов команд. Различные типы команд выполняются за различное время, причем разброс временных параметров очень большой. Внутри таких процессоров, как правило, реализовано микропрограммное управление.
Микропрограммирование (МП) - это принцип управления вычислительной машиной. Идея микропрограммного управления была впервые высказана в 1951 году профессором Кембриджского университета Уилксом, который предложил микропрограммирование как упорядоченное и гибкое средство технической реализации управления ЭВМ. Практически МП нашло воплощение с появлением машин 3-го поколения, особенно в компьютерах фирмы IBM серии 360. Популярность микропрограммирования объясняется несколькими причинами. Во-первых, это постоянное усложнение типов команд в ЭВМ. Многие команды, например, команды, работающие со списками, таблицами, числами с плавающей точкой и т.д. трудно реализовать чисто схемными методами. Во-вторых, роль математического обеспечения в организации работы ЭВМ постоянно возрастает. Доля стоимости средств математического обеспечения в общей стоимости разработки компьютеров постоянно растет, поэтому особенно важно обеспечить совместимость старых и новых моделей. При решении этих задач микропрограммирование это хорошая альтернатива аппаратному способу технической реализации управления ЭВМ.
аппаратный микропрограммный программный
Рис.1.2 Способы реализации управления ЭВМ.
Программа, задаваемая вычислительной машине с целью решения той или иной задачи, представляет последовательность операторов языка высокого уровня. Каждому оператору языка высокого уровня соответствует программа на ассемблере. Наличие в машине микропрограммного управления означает, что каждая машинная команда, воспринимаемая программистом, как неделимый элемент программы, на самом деле интерпретируется в машине заранее составленной стандартной микропрограммой, которая является в свою очередь последовательностью микрокоманд. Каждая микрокоманда является совокупностью микроопераций. Микропрограммы записываются в специальной управляющей памяти, обычно постоянной.
Микропрограмма - последовательность микрокоманд.
Микрокоманда - совокупность микроприказов.
Микроприказ - простейшее элементарное действие, выполняемое вычислительной машиной +,Чт,Ri, установка триггера.
Совместимые микроприказы, это такие микроприказы, которые можно выполнять одновременно без искажения информации. Например, нельзя одновременно читать и писать в один и тот же регистр, нельзя в АЛУ выполнять более одной операции в один момент времени.
1 .Чтение М и запись в М -несовместимы.
2. RM А,СО А -несовместимы.
3. Чтение М и АА В -совместимы.
4. RM А, А ,Р ,ААС В, В, Р, В,АЛУ- совместимы.
Таким образом, микрокоманда- совокупность совместимых микроприказов и соответствующих обозначений. Микрокоманда занимает такое же место по отношению к команде, как команда по отношению к программе.
Программа на Программа на Микропрограмма
СИ (оператор) ассемблере (микрокоманда)
(команда)
Рис.1.3. Основной принцип микропрограммирования.
Микропрограммы записываются в специализированной памяти, которая называется памятью микропрограмм, памятью микрокоманд, контроля, управления и т.д. Команда интерпретируется как обращение к памяти микропрограмм. Обращение производится по адресу первой микрокоманды, соответствующей микропрограммы считываемое слово, как слово основной памяти помещается в регистр. С помощью чисто комбинационных схем после несложного поразрядного преобразования слова (декодирования) определяются микроприказы, управляющие непосредственно схемами вычислительной машины.
ЭВМ может быть описана как некоторый массив логических схем и связей между ними. Логические схемы представляют функциональные узлы: счетчики, сумматоры, сдвиговые регистры, схемы подсчета четности, схемы маскирования и др. Каждый из узлов сконструирован, чтобы выполнять конкретные микроприказы. ФУ связаны между собой шинами, которые позволяют передавать данные от одного узла к другому с целью их запоминания или преобразования. Эти связи необходимо расчленять управляющими вентилями, что дает возможность управлять данными между узлами. Управляющие сигналы формируются из тактовых сигналов, служащих для синхронизации, декодирования, задания последовательности действий и проверки состояния.
Все операции управления делятся на статические и последовательностные. Статические (комбинационные) осуществляют действия над полями данных. Последовательностные приводят ЭВМ в состояние необходимое для осуществления следующего действия. Важно понятие управляющего вентиля. Вентиль-логическая цепь с двумя или более входами, которая предназначена для реализации определенной логической функции над сигналами поступающими на эти выходы.
Таким образом основная задача УУ заключается в том, чтобы задавать условия отпирания той или иной группы вентилей.
По традиции, (аппаратным способом) мы встраиваем в систему группы дешифраторов и триггеров. При этом разработчики строят логические блок-схемы, пока не получают матрицу взаимосвязанности логических схем, отвечающую заданному состоянию машины и удовлетворяющую требованиям управления последовательностью заданных действий.
Т.е. в аппаратном случае мы имеем дерево из запоминающих элементов и проводов совершенно неупорядоченной структуры, в которую тяжело внести изменения. В МП способе управления используется другая элементная база: ПЗУ или ПЛМ различных типов.
Микропрограммирование аналогично обычному программированию. Программист указывает, что надо делать, а микропрограммист как это делать. Совпадают понятия циклов, подпрограмм, условий, условной и безусловной передачи управления, мультипрограммирования и мультиобработки. Но МП несколько сложней и богаче, т.к. надо знать функции каждого узла, степень существующего в системе параллелизма.
1.4. Организация множества микропрограмм
Будучи однажды запущенной, ЭВМ продолжает выполнять один и тот же цикл. Фаза вызова заключается в том, чтобы начинать считывание по адресу, который содержится в ячейке памяти, называемом счетчиком команд(СК) и который непрерывно уточняется в ходе выполнения программ.
В течении фазы содержимое СК увеличивается на 1, приобретая адрес следующей команды последовательности. Содержимое СК может изменяться командой перехода в ходе ее исполнения. В конце фазы вызова команда, которая должна исполняться, посылается в специальный регистр, называемый регистром команд. Таким образом, видно, что фаза вызова является общей для всех команд и можно составить микропрограмму этой последовательности, записав ее один раз для всех команд.
Вызов команды
Исполнение команды
Рис.1.4. Фаза команды.
На практике эта блок-схема не имеет такой простой структуры. В действительности целесообразно считывать операнды и начинать выполнять операции, определяемые командой как можно раньше, например, во время декодирования. С другой стороны, если одна или несколько команд выполняются почти одинаково, то разработчики стремятся найти как можно больше общих последовательностей обработки этих команд, что приводит к организации компактного множества микрокоманд. Наоборот, многочисленные ответвления имеют тот недостаток, что приводят к проблеме определения следующего адреса в микрокомандах. Их стараются исключить, но для этого приходится пользоваться более сложным методом определения следующего адреса в памяти микрокоманды. Таким образом, в организацию микропрограммного управления заложена идея конвейеризации и параллелизма.
Микропрограммы записываются в специализированной памяти, называемой памятью микропрограмм или же памятью микрокоманд, контроля, управления, и т.д. При такой организации ЭВМ команда интерпретируется как обращение к памяти микропрограмм. Обращение производится по адресу первой микрокоманды соответствующей микропрограммы. Считанное слово, как и слово, извлеченное из основной памяти, помещается в регистр. С помощью комбинационных схем после поразрядного преобразования считанного слова - будем называть это преобразование декодированием - определяются сигналы микрокоманд, управляющие схемами ЭВМ.
Часть команды, характеризующая код операции, служит для установки регистра адреса памяти микрокоманды.
Рассмотрим основные способы организации кодирования микрокоманд.
1.. Горизонтальное: 1 разряд- 1 микрооперация.
Достоинство: отсутствие дешифратора, увеличение быстродействия.
Недостаток: большая длина команды
2. Вертикальное. Длина команды=log2 (возможное число микрокоманд).
Достоинство: минимальная разрядность.[Микропроцессор 580]
Недостаток: наиболее сложный дешифратор.
3. Кодирование независимыми полями.
При этом отдельно выделяются поля, отвечающие за обработку и отдельно за пересылки. Каждое поле имеет свой дешифратор и только один.
4. Кодирование косвенное. Имеется поле, которое отвечает за содержимое остальных полей и способ их кодирования.
5. Микрокоманда типа команды: скопирована с первых вычислительных машин.
Рассмотрим также основные способы получения следующего адреса.
1. Последовательная (автоинкремнтная адресация).Следующей выполняется микрокоманда, адрес которой на один больше. Содержимое счетчика микрокоманд инкрементируется.
2. Непосредственное указание следующего адреса. Прямая адресация. Один возможный переход.
3. Микроподпрограмма. Аналогично подпрограмма.
4. Косвенная адресация: адрес формируется в одном из регистров. Один возможный переход.
5. Адресация одновременно в несколько адресов. В СК подгружается часть регистра состояния 3-4 разряда. Таким образом возможен переход по одному из 8-16 адресов.
а) i
б)
Поле 1
Поле 2
Поле 3
Поле 4
Деш. 1
Деш. 2
Деш. 3
Дешю4
в)
Поле формата
Поле1
Поле 2
Поле 3
Деш. 0
Поле формата
Поле 4
Поле 5
Поле 6
Деш.1
Деш.2
Деш. 3
Деш. 4
Деш. 5
Деш. 6
г)
Код операции
Адрес РОН
управление
Адрес приемник
Код операции
Адрес РОн
Константа
Рис 1.5. Различные способы кодирования микрокоманды. а) горизонтальное;
б) кодирование независимыми полями; в) косвенное кодирование; г) микрокоманды типа команды.
Недостатки и преимущества микропрограммирования.
Достоинства:
1. МП - это упорядоченная методика проектирования устройства управления в противовес импровизированным аппаратным приемам. МП использует однотипную элементную базу, что снижает стоимость.
2. МП позволяет разделить процесс проектирования на создания аппаратной части и создания микропрограмм, которые выполняются разными людьми.
3. МП позволяет создавать серии машин с одним языком ассемблер и разным внутренним содержанием.
4. Возможность гибко вносить модификации в проект.
5. Возможность эмуляции (т.е. одна машина работает как другая).
Недостатки:
1. Снижение быстродействия.
2. Требование высокой квалификации микропрограммиста.
3. Отсутствие стандартного языка ассемблера. Микропрограммист вынужден писать в машинных кодах или писать доморощенный ассемблер.
1..5. Основные принципы работы RISC-процессоров.
Альтернативой CISC-процессорам являются процессоры с сокращенным набором команд или RISC (Reduced Instruction Set Computer). В конце 70-х , начале 80-х годов состояние технологии производства микросхем было таково, что CISC-процессоры не удовлетворяли потребностям в быстродействии. Поэтому потребовались новые архитектурные решения, чтобы поднять скорость обработки данных. Исследователи пошли по пути сокращения набора команд, так как известно, что 80% команд используется очень редко.
В ЭВМ с сокращенным набором команд повышение эффективности достигается за счет применения компилятора для непосредственной трансляции программ, написанных на языках высокого уровня, и выполнения их в виде микропрограмм. На первый взгляд набор команд сужается до уровня, принципиально достижимого в математическом обеспечении, но повышение эффективности обеспечивается за счет 100 %-й реализации возможностей микропрограммирования. Использование вызова подпрограмм вместо традиционной выборки команд определяет необходимость наличия специальных аппаратных средств, обеспечивающих эффективное выполнение действий по вызову и выполнению подпрограмм. Таким механизмом является расширение количества регистров, отделение медленной памяти от высокоскоростных регистров и создание регистровых окон.
В пользу разработки RISC-машин свидетельствует то обстоятельство, что в отличие от универсальных ЭВМ, где соотношение времени обращения к памяти и времени выполнения команд обычно составляет примерно 5:1, в микропроцессорах это соотношение лежит вблизи 2:1, поэтому проблема увеличения частоты обращения к памяти здесь не столь критична.
Для повышения эффективности ЭВМ наиболее широко используются следующие способы: (1) переложение на аппаратную часть как можно большего числа функций программного обеспечения, (2) конвейеризация процесса обработки информации, (3) распараллеливание обработки, (4) аппаратная реализация средств контроля и защиты памяти.
Нет необходимости доказывать важность контроля и защиты памяти в вычислительных системах. Отметим, что информационные системы на компьютерах становятся важным инструментом, обусловливающим прогресс человеческого общества, поэтому контроль и защита памяти вышли за рамки проблемы повышения эффективности ЭВМ и в значительно большей степени предназначены для предотвращения несанкционированного доступа к памяти и связанных с таким доступом преступлений, которые могут иметь место при использовании ЭВМ. Конечно, желательно такую высокоуровневую функцию, как контроль и защита памяти, опираясь на преимущества СБИС, реализовать с помощью аппаратных средств.
RISC-архитектура в своем развитии претерпела множество модификаций, но на настоящий момент основными ее особенностями следует считать:
а) большое число регистров (32, 64 и более) по сравнению с 8-16 регистрами в CISC-процессорах;
б) ограниченное число форматов команд (2-4 формата по сравнению с 20-30 форматами в CISC-процессорах);
в) выполнение команд занимает 1-2 машинных такта, а не 4-40 в CISC-процессорах;
г) преимущественная ориентация на аппаратную реализацию логики выполнения команд, в противовес преимущественно микропрограммному подходу в CISC-процессорах.
Остальные преимущества RISC-архитектуры, такие как параллелизм обработки, конвейеризация, предсказание ветвлений и другие приемы в настоящее время широко используются в компьютерах с разной архитектурой команд.
2. ОРГАНИЗАЦИЯ ПРОЦЕССОРОВ
2.1. Функции и структура процессоров
Вычислительная система состоит из устройства управления, операционного устройства, памяти и блоков управления вводом-выводом, а также самих устройств ввода-вывода. Устройство управления вместе с операционным устройством принято называть процессорным устройством, или процессором. Процессором называется устройство, непосредственно осуществляющее обработку данных и программное управление этим процессом. Он дешифрует и выполняет команды программы, организует обращение к памяти, инициализирует работу периферийных устройств, воспринимает и обрабатывает запросы прерываний, поступающих из других устройств и внешней среды. По мере распространения и специализации вычислительных систем, обусловленных развитием техники БИС, разрабатываются все новые основные устройства компьютера, повышается сложность схем их соединения, средств управления и форм распределения функций между этими средствами. Все это приводит к затруднению в проведении четкой классификации процессорных устройств по сравнению с другими устройствами компьютера.
Обобщенная структурная схема процессора.
АЛУ – арифметико-логическое устройство
УУ – устройство управления
БУР – блок управления регистров
БСОП – блок связи с основной памятью
БРП – блок регистровой памяти
ОП – основная память (ПЗУ или ОЗУ, L2 кэш)
АЛУ выполняет логические и арифметические операции над данными в принятом в данном процессоре формате. В процессоре может быть одно универсальное АЛУ или несколько специализированных.
УУ вырабатывает последовательность управляющих сигналов, организующих выполнение соответствующих последовательностей микроопераций в соответствии с дешифрированным кодом команды, прочитанной из ОП.
БУР предназначен для временного хранения обрабатываемой информации и представляет собой местную сверхбыстродействующую память (СОЗУ).
БСОП организует обмен информацией, защиту основной памяти, а также обеспечивает интерфейс с другими, внешними по отношению к процессору устройствами.
Принято выделять следующие функции процессоров:
1. Функции обработки.
2. Функции управления обработкой.
3. Функции хранения и передачи данных
4. Функции управления передачей данных.
5. Функции поддержки интерфейса и операций ввода-вывода.
Для выполнения этих групп функций в процессоре существуют разнообразные компоненты. Общие сведения о составе этих компонентов можно почерпнуть из системы команд и краткого описания процессора, предоставляемого разработчиком для программистов. Более конкретная реализация обычно является предметом коммерческой тайны.
Обычно программисту предоставляются сведения о выполняемых логических и арифметических операциях, типах сдвигов, количестве регистров и ограничениях по их использованию, наборе признаков и способах реализации переходов и ряд других сведений, записываемых в руководствах по ассемблеру.
С точки зрения ассемблерного подхода функции обработки реализуются арифметико-логическим устройством в рамках набора команд. Функции управления обработкой и управления передачей данных реализуются устройством управления, возможно, реализованным микропрограммным способом. Для реализации функций хранения и передачи данных процессор имеет набор регистров и внутренние массивы памяти, частично программно-недоступные. Однако, это только один из уровней рассмотрения структуры процессора.
2.2. Различные уровни рассмотрения организации процессора.
Структуру и функции процессора можно рассматривать на различных уровнях (концептуальный уровень, уровень высокоуровневых языков, уровень машинных команд, уровень регистровых передач и уровень вентилей), отражающую определенные уровни абстрагирования представления обработки.
1 Концептуальный уровень. На этом уровне пользователь анализирует содержание задачи, требующей решения, и определяет спецификацию обработки как одного из уровней абстрагирования путем описания содержания обработки и концептуального проектирования.
2. Уровень высокоуровневых языков. Пользователь изучает алгоритм решения задачи, и после составления детального проекта решения пишет программу на языке высокого уровня. Обычно используются языки высокого уровня, обладающие некоторой универсальностью и созданные для определенных классов задач. C точки зрения конкретных применений универсальные высокоуровневые языки не имеют достаточного функционального наполнения, т. е. между уровнем этих языков и концептуальным уровнем существует разрыв, который приводит к увеличению нагрузки на пользователя, занятого программированием (благодаря использованию различных пакетов готовых программ нагрузку, связанную с программированием, можно уменьшить.) При этом пользователю нет необходимости иметь представление о работе компьютера на уровне машинных команд и ниже.
3. Уровень машинных команд. Этот уровень обеспечивает связь аппаратных и программных средств вычислительной системы. Архитектура компьютера в узком смысле означает структуру «операции — данные» и спецификацию структуры управления именно на этом уровне. Для системного специалиста, который разрабатывает компьютеры и операционные системы, достаточно представлять работу компьютера на уровне машинных команд и обычно не требуется знания более низких уровней.
Программа пользователя, написанная на специализированном или универсальном языке высокого уровня, обычно преобразуется компьютером в программу на уровне машинного языка. Когда функциональный уровень машинных команд близок к функциональному уровню языка высокого уровня, например в CISC-процессорах, преобразования между этими уровнями просты, что влечет снижение нагрузки на компилятор и ускорение выполнения программы. Компьютеры, снабженные набором машинных команд, функционально ориентированных на специализированные или универсальные языки высокого уровня, и аппаратными средствами, обеспечивающими реализацию этого набора, называются специализированными машинами и машинами языков высокого уровня. Например, в машинах, специализированных на обработке графической информации, набор машинных команд включает также команды функциональных операций, таких, как преобразование координат, масштабирование, преобразование развертки и т. д. Машина может обрабатывать графическую информацию, непосредственно используя команды специального языка высокого уровня. В универсальных компьютерах между функциями различных языков высокого уровня и функциональным содержанием уровня машинных команд существует разрыв. В процессе преодоления этого разрыва увеличивается нагрузка на системного программиста и снижается скорость обработки. Этот разрыв имеет специальное название - семантический разрыв.
Можно выделить три способа инициирования выполнения машинных команд. В соответствии с первым из них машинные команды векторных операций суперкомпьютеров и машинные команды универсальных вычислительных машин поступают в процессор в порядке их расположения в программе и выполняются последовательно. Второй и третий способы предусматривают независимое инициирование и одновременное выполнение машинных команд. Так работают машины, управляемые данными и машины, управляемые запросами.
В структурах вычислительных машин, предусматривающих использование СБИС, можно ожидать повышения быстродействия за счет параллельного выполнения множества машинных команд и операций в составе одной машинной команды. Для эффективной реализации параллельной обработки желательно, чтобы способность к параллельной обработке была заложена в самой структуре высокоуровневого языка. Существующие универсальные языки высокого уровня в основном предназначены для последовательной обработки, поэтому сейчас ведутся интенсивные исследования в области построения разнообразных вычислительных систем с параллельной обработкой.
4. Уровень регистровых передач. С этим уровнем связаны проектировщики аппаратных средств и специалисты по микропрограммированию. На этом уровне производится проектирование аппаратных средств компьютера, удовлетворяющих спецификации машинных команд, требованиям по производительности и стоимости, а также другим заданным условиям.
Машинные команды, выработанные компилятором, расшифровываются и затем выполняются путем управления такими функциональными модулями, как арифметико-логическое устройство, регистровые блоки, и соединяющими их шинами данных. Проектировщик аппаратной части ЭВМ может разработать ее, используя в качестве структурных элементов строительных блоков функциональные модули, не вникая в подробности устройства этих модулей. За исключением особых случаев, когда машинные команды имеют упрощенную форму и низкий функциональный уровень или когда требуется сверхбыстрая обработка, управление аппаратной частью машины на уровне регистровых передач обычно осуществляется с помощью средств микропрограммного управления
При заданном перечне машинных команд можно либо ввести в аппаратные средства функциональные модули высокого уровня (например, скоростной умножитель и т. д.), либо использовать низкофункциональные модули (например, сумматоры и т. д.), управляя их работой в соответствии с микропрограммами (например, реализовывать умножение в виде последовательности операций суммирования). Предпочтение использованию того или иного подхода отдается на основе критерия «стоимость — производительность» путем нахождения компромисса между аппаратной частью компьютера и его микропрограммными средствами.
Значительное влияние на смещение границ в поиске компромиссов между аппаратной частью и микропрограммными средствами оказывают высокофункциональные модули: арифметические устройства с плавающей запятой, скоростные умножители и другие устройства.
5 Уровень вентилей. Функциональные модули аппаратной части, такие как АЛУ и другие, выполняются в виде комбинационных (логических) и последователыюстных схем. Эти схемы в свою очередь состоят из вентилей И, НЕ, ИЛИ и др. В настоящее время все больше применяются етоды проектирования, основанные на применении регулярных структур (например, методы на основе программируемых логических матриц (ПЛМ), повторяющихся структур элементарных процессоров и т. д.) и таких средств поддержки проектирования, как системы автоматизированного проектирования.
В дальнейшем в рамках данного пособия мы будем рассматривать организацию ЭВМ и систем в рамках третьего уровня.
2.3. Основные характеристики процессоров.
1. Система команд процессора – набор поддерживаемых данным процессором команд, который обуславливает программную совместимость разных процессоров. В настоящее время существует две основные группы систем команд:
а) CISC-архитектура (Complex Instruction Set Computer – расширенный набор команд);
б) RISC-архитектура (Redjust Instruction Set Computer – ограниченный набор команд).
2. Способы адресации (рассмотрены в п.2.4.).
3. Разрядность:
– регистров;
– шин:
а) данных;
б) адреса.
4. Наличие кэш-памяти
5. Поддержка режимов работы:
– однопрограммный режим;
– многопрограммный или многозадачный режим;
– режим виртуальной машины.
6. Тактовая частота.
Классификация команд или операций процессора.
Вся система команд разделяется на следующие группы выполняемых операций:
1. Команды передачи данных (reg-reg, reg-mem и т.д.);
2. Арифметические операции (add, subtr – так называемые «короткие» операции, mul, div – так называемые «длинные» операции – чисел с фиксированной и плавающей точками), десятичная арифметика (выполнение операций в BCD-формате), индексная арифметика;
3. Логические операции и операции сдвига;
4. Команды передачи управления или команды управления потоком данных;
5. Обработка цепочек;
6. Команды управления процессором (флаговые операции, стековые, блокировка шин и т.п.).
Структура команды с разметкой разрядной сетки называется форматом команды.
Число двоичных разрядов в коде операции определяет количество операций данного процессора и связано соотношением n log2m, где n – количество операций данного процессора, а n – количество двоичных разрядов, выделенных для кода операции.
Количество двоичных разрядов в адресной части должно также соответствовать соотношению nA log2mA, где mА – количество прямо адресуемых ячеек памяти, а nА – количество разрядов в адресной части.
Для сокращенного выделения количества разрядов в команде (в первую очередь в адресной части) в современных процессорах используют различные способы адресации информации.
КОП
А1
А2
А3
А4
Правила адресации в ЭВМ зависят от принятого порядка выборки команд. Различают принудительный и естественный. При принудительном порядке выборки в формате команды явно указывается адрес следующей выбираемой команды. Поэтому в адресной части кроме А1 и А2 адресов 1-го и 2-го операндов и А3 – адреса результата – должен присутствовать и адрес А4 следующей команды.
В современных процессорах используется любой (естественный) порядок выборки команд. В этом случае за выполнением команды по некоему адресу k будет выполняться команда по адресу k + l, где l – понятно что (хотя, special for ID, это – длина текущей команды). При необходимости естественных порядок выборки может нарушаться с помощью команд переходов.
Большинство типов команд не представляют особой сложности для организации процесса вычислений. Исключение составяют команды управления потоком данных.
В английском языке для указания команд безусловного перехода, как правило, используется термин jump, а для команд условного перехода - термин branch, хотя разные поставщики необязательно придерживаются этой терминологии. Например, компания Intel использует термин jump и для условных, и для безусловных переходов.
Можно выделить четыре основных типа команд для управления потоком команд: условные переходы, безусловные переходы, вызовы процедур и возвраты из процедур. Частота использования этих команд по статистике примерно следующая. В программах доминируют команды условного перехода. Среди указанных команд управления на разных программах частота их использования колеблется от 66 до 78%. Следующие по частоте использования - команды безусловного перехода (от 12 до 18%). Частота переходов на выполнение процедур и возврата из них составляет от 10 до 16%. При этом примерно 90% команд безусловного перехода выполняются относительно счетчика команд. Для команд перехода адрес перехода должен быть всегда заранее известным. Это не относится к адресам возврата, которые не известны во время компиляции программы и должны определяться во время ее работы. Наиболее простой способ определения адреса перехода заключается в указании его положения относительно текущего значения счетчика команд (с помощью смещения в команде), и такие переходы называются переходами относительно счетчика команд. Преимуществом такого метода адресации является то, что адреса переходов, как правило, расположены недалеко от текущего адреса выполняемой команды и указание относительно текущего значения счетчика команд требует небольшого количества бит в смещении. Кроме того, использование адресации относительно счетчика команд позволяет программе выполняться в любом месте памяти, независимо от того, куда она была загружена. То есть этот метод адресации позволяет автоматически создавать перемещаемые программы.
Реализация возвратов и переходов по косвенному адресу, в которых адрес не известен во время компиляции программы, требует методов адресации, отличных от адресации относительно счетчика команд. В этом случае адрес перехода должен определяться динамически во время работы программы. Наиболее простой способ заключается в указании регистра для хранения адреса возврата, либо для перехода может разрешаться любой метод адресации для вычисления адреса перехода.
Одним из ключевых вопросов реализации команд перехода состоит в том, насколько далеко целевой адрес перехода находится от самой команды перехода? И на этот вопрос статистика использования команд дает ответ: в подавляющем большинстве случаев переход идет в пределах 3 - 7 команд относительно команды перехода, причем в 75% случаев выполняются переходы в направлении увеличения адреса, т.е. вперед по программе.
Поскольку большинство команд управления потоком команд составляют команды условного перехода, важным вопросом реализации архитектуры является определение условий перехода. Для этого используются три различных подхода. При первом из них в архитектуре процессора предусматривается специальный регистр, разряды которого соответствуют определенным кодам условий. Команды условного перехода проверяют эти условия в процессе своего выполнения. Преимуществом такого подхода является то, что иногда установка кода условия и переход по нему могут быть выполнены без дополнительных потерь времени, что, впрочем, бывает достаточно редко. А недостатками такого подхода является то, что, во-первых, появляются новые состояния машины, за которыми необходимо следить (упрятывать при прерывании и восстанавливать при возврате из него). Во-вторых, и что очень важно для современных высокоскоростных конвейерных архитектур, коды условий ограничивают порядок выполнения команд в потоке, поскольку их основное назначение заключается в передаче кода условия команде условного перехода.
Второй метод заключается в простом использовании произвольного регистра (возможно одного выделенного) общего назначения. В этом случае выполняется проверка состояния этого регистра, в который предварительно помещается результат операции сравнения. Недостатком этого подхода является необходимость выделения в программе для анализа кодов условий специального регистра.
Третий метод предполагает объединение команды сравнения и перехода в одной команде. Недостатком такого подхода является то, что эта объединенная команда довольно сложна для реализации (в одной команде надо указать и тип условия, и константу для сравнения и адрес перехода). Поэтому в таких машинах часто используется компромиссный вариант, когда для некоторых кодов условий используются такие команды, например, для сравнения с нулем, а для более сложных условий используется регистр условий. Одним из наиболее заметных свойств большинства программ является преобладание в них сравнений на условие равно/неравно и сравнений с нулем. Поэтому в ряде архитектур такие команды выделяются в отдельный поднабор, особенно при использовании команд типа "сравнить и перейти".
Говорят, что переход выполняется, если истинным является условие, которое проверяет команда условного перехода. В этом случае выполняется переход на адрес, заданный командой перехода. Поэтому все команды безусловного перехода всегда выполняемые. По статистике оказывается, что переходы назад по программе в большинстве случаев используются для организации циклов, причем примерно 60% из них составляют выполняемые переходы.
Вызовы процедур и возвраты предполагают передачу управления и возможно сохранение некоторого состояния. Как минимум, необходимо уметь где-то сохранять адрес возврата. Некоторые архитектуры предлагают аппаратные механизмы для сохранения состояния регистров, в других случаях предполагается вставка в программу команд самим компилятором. Имеются два основных вида соглашений относительно сохранения состояния регистров. Сохранение вызывающей (caller saving) программой означает, что вызывающая процедура должна сохранять свои регистры, которые она хочет использовать после возврата в нее. Сохранение вызванной процедурой предполагает, что вызванная процедура должна сохранить регистры, которые она собирается использовать. Имеются случаи, когда должно использоваться сохранение вызывающей процедурой для обеспечения доступа к глобальным переменным, которые должны быть доступны для обеих процедур.
2.4. Методы адресации и типы данных.
2.4.1. Методы адресации
В машинах к регистрами общего назначения метод (или режим) адресации объектов, с которыми манипулирует команда, может задавать константу, регистр или ячейку памяти. Для обращения к ячейке памяти. процессор прежде всего должен вычислить действительный или эффективный адрес памяти, который определяется заданным в команде методом адресации.
В таблице 2.1. представлены основные методы адресации операндов. Адресация непосредственных данных и констант обычно рассматривается как один из методов адресации памяти (хотя значения данных, к которым в этом случае производятся обращения, являются частью самой команды и обрабатываются в общем потоке команд). Адресация регистров, как правило, рассматривается отдельно. Методы адресации, связанные со счетчиком команд (адресация относительно счетчика команд) рассматриваются отдельно. Этот вид адресации используется главным образом для определения программных адресов в командах передачи управления.
В таблице 2.1. на примере команды сложения (Add) приведены наиболее употребительные названия методов адресации, хотя при описании архитектуры в документации разные производители используют разные названия для этих методов. Знак "(") используется для обозначения оператора присваивания, а буква М обозначает память (Memory). Использование сложных методов адресации позволяет существенно сократить количество команд в программе, но при этом значительно увеличивается сложность аппаратуры.
Таблица 2.1.
Методы адресации
Метод адресации
Пример команды
Смысл команды
Регистровая
Add R4,R3
Сложить содержимое R3 и R4 и результат записать в R4
Непосредственная
Add R4,#3
Сложить содержимое регистра с константой и результат записть в регистр
Базовая со смещением
Add R4,100(R1)
Сложить содержимое регистра R4 и ячейки памяти, адрес которой получается путем сложения содержимого регистра R1 и смещения 100
Косвенная регистровая
Add R4,(R1)
Сложить содержимое регистра R4 и ячейки памяти, адрес которой хранится в R1
Индексная
Add R3,(R1+R2
Сложить содержимое R3 (индекса) и ячейки памяти адресуемой суммой регистров R1(база) иR2
Прямая
Add R1,(1000)
Сложить содержимое R1 и ячейки с адресом 1000
Косвенная
Add R1,@(R3)
Сложить содержимое регистра R1 и ячейки памяти адрес которой хранится по адресу, указанному в R3
Автоинкрементная
Add R1,(R2)+
Сложить содержимое регистра R1 и ячейки памяти, адрес которой указан в R2. Содержимое R2 затем увеличивается на 1.
Автодекрементная
Add R1,(R2)-
Сложить содержимое регистра R1 и ячейки памяти, адрес которой указан в R2. Содержимое R2 затем уменьшается на 1
Важным вопросом построения любой системы команд является оптимальное кодирование команд. Оно определяется количеством регистров и применяемых методов адресации, а также сложностью аппаратуры, необходимой для декодирования. Именно поэтому в современных RISC-архитектурах используются достаточно простые методы адресации, позволяющие резко упростить декодирование команд. Более сложные и редко встречающиеся в реальных программах методы адресации реализуются с помощью дополнительных команд, что вообще говоря приводит к увеличению размера программного кода. Однако такое увеличение длины программы с лихвой окупается возможностью простого увеличения тактовой частоты RISC-процессоров.
2.4.2. Типы и размеры операндов
Имеется два альтернативных метода определения типа операнда. В первом из них тип операнда может задаваться кодом операции в команде. Это наиболее употребительный способ задания типа операнда. Второй метод предполагает указание типа операнда с помощью тега, который хранится вместе с данными и интерпретируется аппаратурой во время выполнения операций над данными. Этот метод использовался, например, в машинах фирмы Burroughs, но в настоящее время он практически не применяется, и все современные процессоры пользуются первым методом.
Обычно тип операнда (например, целый, вещественный с одинарной точностью или символ) определяет и его размер. Однако часто процессоры работают с целыми числами длиною 8, 16, 32 или 64 бит. Как правило, целые числа представляются в дополнительном коде. Для задания символов (1 байт = 8 бит) в машинах компании IBM используется код EBCDIC, но в машинах других производителей почти повсеместно применяется кодировка ASCII. Еще до сравнительно недавнего времени каждый производитель процессоров пользовался своим собственным представлением вещественных чисел (чисел с плавающей точкой). Однако за последние несколько лет ситуация изменилась. Большинство поставщиков процессоров в настоящее время для представления вещественных чисел с одинарной и двойной точностью придерживаются стандарта IEEE 754.
В некоторых процессорах используются двоично кодированные десятичные числа, которые представляются в упакованном и неупакованном форматах. Упакованный формат предполагает, что для кодирования цифр 0-9 используются 4 разряда и что две десятичные цифры упаковываются в каждый байт. В неупакованном формате байт содержит одну десятичную цифру, которая обычно изображается в символьном коде ASCII. В большинстве процессоров, кроме того, реализуются операции над цепочками (строками) бит, байт, слов и двойных слов.
Регистровые структуры процессоров.
Набор и разрядность регистровых структур является важной характеристикой архитектуры процессора и существенно влияет на его производительность. Во всех регистровых моделях процессоров принято выделять две группы регистров – программно доступные регистры с возможностью их адресации программистом и программно недоступные, используемые для внутрисистемных целей.
Понятие о состоянии процессора. Вектор состояния.
Состояние регистровых структур процессора после выполнения каждого цикла команды изменяется. Совокупность всех состояний регистров процессора носит название вектора состояния процессора и этот вектор содержит всю необходимую информацию, достаточную для восстановления прерванной программы или повторного пуска программы с данной точки.
В вектор состояния входят не все регистры процессора. Считается, что часть информации может быть восстановлена или загружена из основной памяти. Обычно по вектором состояния понимают следующую совокупность: регистры состояния процессора, регистр команд, аккумулятор и некоторые другие регистры.
2.5. Типы процессоров, в зависимости от способа инициирования команд.
В зависимости от способа организации вычислительного процесса процессоры имеют следующие разновидности: «один поток команд, один поток данных» (SISD— Single Instruction, Single Data), «один поток команд, много потоков данных» (SIMD — Single Instruction, Multiple Data), операционные конвейеры и многопроцессорные системы. (По классификации М. Дж. Флинна из Стэнфордского университета США системы управления процессором делятся на SISD, SIMD, MISD («много потоков команд, один поток данных») и MIMD («много потоков команд, много потоков данных»). По этой классификации мультипроцессорные системы, системы, управляемые данными, и системы, управляемые по запросам, относятся к типу MIMD, что затрудняет получить четкое представление об их особенностях. Кроме того системы с операционным конвейером, в зависимости от интерпретации категории «данные», по этой классификации могут быть отнесены к SISD, SIMD или MISD, что также создает много неясностей. Однако, такая классификация является широко распространенной, поэтому рассмотрим ниже ее основные определения.
В системе SISD имеется только одно операционное устройство; при выполнении в ней одной машинной команды формируется одиночный результат. Типичными примерами системы SISD могут служить универсальные машины и машины высокоуровневых языков.
В архитектуре SIMD команда, выделяемая управляющим устройством, одновременно передается множеству операционных элементов с одинаковой структурой, и все операционные блоки параллельно выполняют одну и ту же операцию. Управляющее устройство разрешает или запрещает выполнение операций на основе информации о состоянии каждого операционного элемента. Выполнение операций разрешается только тем операционным элементам, в которых выполняются определенные условия. Поскольку поток команд является одиночным, в случае необходимости условного перехода по результатам проверки выполнения условий заданные операции выполняются только теми операционными элементами, для которых результаты проверки подтверждают выполнение условий, а затем только теми операционными элементами, для которых результаты проверки говорят о том, что условия не выполняются. Следовательно, сначала запрещается выполнение операций операционным элементам с отрицательными результатами проверки условий, а затем — элементам, в которых проверяемые условия выполняются. Управляющее устройство контролирует взаимосвязь между всеми операционными блоками и управляет обращением к общей памяти.
Память программ
процессор устройство управления поток команд
поток поток
данных команд процессоры
память память
а) б)
конвейер из процессоров
процессоры
потоки команд потоки команд
память память
в) г)
Рис2.2. типы процессоров а) SISD; б) SIMD; в)MISD; г) MIMD.
В системе MISD процессор (многофункциональное процессорное устройство) содержит множество операционных устройств. С точки зрения организации обработки параллельные процессоры занимают промежуточное положение между SISD и SIMD
Мультипроцессорные системы представляют собой один из вариантов реализации архитектуры MIMD; они предназначены для распараллеливания обработки за счет взаимодействия множества процессоров. Типичными примерами таких систем могут служить системы, составленные из нескольких универсальных процессоров с целью распределения нагрузки и повышения надежности, комплексы микропроцессоров (мультимикропроцессоры) и т. д..
2.6. Конвейерная реализация команд
Машинные команды выполняются с помощью ряда последовательных элементарных действий: выборки команды (считывания ее из памяти, IF), декодирования команды (интерпретации, D), формирования адресов операндов (ОА), выборки операндов (OF), выполнения операции (ЕХ) п запоминания результата (S). В машине с простой структурой аппаратной части выборка следующей машинной команды производится лишь после завершения выполнения предыдущей команды. С другой стороны, в современных компьютерах машинах с конвейерной организацией команд, как показано на рис. 2.3, допустимо одновременное выполнение нескольких команд путем совмещения во времени различных фаз этих команд. Если считать, что на выполнение каждого из этапов (шагов) команды затрачивается одинаковое время, равное машинному циклу (в машинах некоторых фирм один шаг соответствует нескольким машинным циклам), то в идеальном случае можно получать результаты операций в каждом машинном цикле. Конвейерное выполнение команд основано на тех же принципах, что п поточные .методы производства. Оно имеет максимальную эффективность, когда продолжительность выполнения всех этапов команд одинакова, бесперебойно подаются команды и данные и на каждом этапе отсутствуют “мертвые””- временные зоны (ожидание выполнения аналогичного этапа очередной команды).
К факторам, нарушающим непрерывность конвейерной реализации команд, можно отнести следующие.
1 Когда для выполнения. следующей команды требуется результат действий, реализованных предыдущей командой, или когда предыдущей командой определяется адрес операнда следующей команды (модификация адреса), возникает задержка начала выполнения следующей команды, связанная с ожиданием выборки операнда следующей команды или с преобразованием адресов.
2. При ветвлении программы по результатам проверки условий командой условного перехода команды, находящиеся в процессе конвейерной обработки, остаются невыполненными, и требуется повторная загрузка конвейера, начиная с момента выборки команды условного перехода.
3. Когда в кэш-памяти отсутствуют требуемые данные или команды, необходимо еще передать их в кэш-память из основной памяти. При конфликтном обращении к кэш-памяти (например, при наложении друг на друга этапов IF, OF, S команд, следующих одна за другой) запросы с относительно низкими приоритетами будут находиться в стадии ожидания.
4. Когда предшествующая команда изменяет содержание последующей или когда изменяется содержимое регистра состояния программы, задающего область выполнения (команда «Load PSW»—загрузка слова состояния программы), последующая команда должна ожидать завершения предшествующей команды.
5. В случае возникновения прерывания и перехода к программе его обработки команды, находящиеся в это время на командном конвейере, остаются незавершенными (стадии, на которых прерывается их выполнение, зависят от вида прерывания), и приходится заново загружать конвейер командами, входящими в программу обработки прерывания.
Машинная команда 1 Машинная команда 2
IF D OA OF EX S IF D OA OF EX S
а)
Машинная команда 1
IF D OA OF EX S
Машинная команда 2
IF D OA OF EX S
Машинная команда 3
IF D OA OF EX S
б)
Рис.2.3. Командный конвейер. а)Система SISD без командного конвейера ; б) Система SISD с командным конвейером.
IF- выборка команды; D – декодирование; OA – формирование адресов операндов; OF – выборка операндов; EX – выполнение операции; S – запоминание результата.
6. Когда операция, реализуемая машинной командой, имеет сложный характер, как, например, операция с плавающей точкой или действие команды операционной системы, и для ее выполнения требуется много машинных циклов, последующая команда долго не может достичь стадии выполнения операции.
Чтобы предельно ограничить влияние перечисленных выше факторов, нарушающих работу конвейера команд, в больших универсальных машинах совершенствуется структура аппаратной части и оптимизируется компиляция потока информации, поступающего на конвейер команд.
2.7. Организация обращений к памяти
Известно, что в вычислительных системах обращение к основной памяти обычно носит локальный характер. В пределах небольших временных интервалов, обращения к основной памяти за командами и данными сосредоточиваются в ограниченной области основной памяти. В универсальных машинах это обстоятельство находит отражение в том, что скорость обращения к памяти увеличивается за счет автоматического перемещения информации из часто запрашиваемой области основной памяти, имеющей относительно большое время обращения, в кэш-память (буферную память), обладающую высоким быстродействием. Чем выше вероятность наличия в кэш-памяти запрашиваемых данных и команд (коэффициент удачного обращения к кэшу), тем выше эффективность этой памяти. При отсутствии в кэш-памяти необходимых данных или команд (при неудачном обращении к кэшу) происходит их выборка из основной памяти, что является одной из причин сбоя конвейера команд.
Когда адресное пространство основной памяти, к которому происходят обращения в соответствии с конкретной последовательностью машинных команд (программой, составленной пользователем), является чрезмерно большим или когда основная память используется совместно многими программами различных пользователей, обычно применяется виртуальная организация памяти, снимающая ограничения, налагаемые физической емкостью основной памяти.
В составе процессорных устройств в качестве памяти с максимальным быстродействием очень часто используются регистры. Регистры - это быстродействующая память, обращение к которой может происходить непосредственно по адресам, указанным в составе машинных команд. При этом отпадает необходимость в таких этапах выполнения команд на командном конвейере, как преобразование адреса, выборка операндов из основной памяти (ОА и OF) и запоминание результата (S), а запись и считывание можно осуществлять в ходе выполнения операции (ЕХ). Частота обращений к основной памяти снижается, уменьшается количество сбоев конвейера, вызываемых конфликтными ситуациями, которые возникают в процессе обращения к основной памяти. Выполнение машинной команды с использованием регистров складывается из трех этапов: IF— вызов команды, D—декодирование и ЕХ—выполнение.
Язык машинных команд предусматривает наличие в составе команды операционного поля (кода операции) и нескольких полей операндов. В операционном поле команды задаются арифметические и логические операции, операции над последовательностями символов, различные виды передачи данных, действия по управлению последовательностью выполнения операций, управлению вводом-выводом и другие. Поля операндов различаются в зависимости от команд; число операндов обычно равно 0 – 3. В соответствии с их количеством команды называют 0, 1, 2 или 3-операндными. Адреса исходных данных и результатов формируются в зависимости от используемых режимов адресации. При адресации с указанием регистров объектом записи и считывания является содержимое регистров, находящихся в операционном устройстве. При непосредственном задании данных в составе команды операционное устройство обрабатывает значения, взятые из полей операндов команды. При указании командой необходимости обращения к основной памяти логический адрес для считывания или запоминания данных определяется путем модификации базового адреса, индексного адреса, прямого или относительного адреса или путем преобразования адреса на основе совместного использования этих видов модификации.
Машинные команды можно классифицировать и в соответствии с числом обращений к основной памяти, требуемых для выполнения команды.
1. Двух-трехадресные команды. Обращения к основной памяти производятся в соответствии с информацией, содержащейся в двух или трех полях операндов, что позволяет выполнять операции типа ААВ или С АВ. В машинах, предназначенных для финансово-экономических расчетов, часто применяется именно этот тип команд, удобный при обработке данных переменной длины и при многократной передаче последовательностей символов внутри основной памяти.
2. Одноадресные команды. В составе команды имеются два поля операндов, в которых содержатся указания на обращения либо к регистру и к основной памяти, либо к двум регистрам. Команды этого типа находят применение преимущественно в машинах, предназначенных для научно-технических расчетов, где используются числовые данные с фиксированной длиной; повышение скорости обработки достигается за счет временного хранения промежуточных результатов в регистрах. Типичным примером таких регистровых машин (машин с регистрами общего назначения), аппаратная часть которых спроектирована на базе команд этого типа, являются машины IBM.
3. Безадресные команды. В командах этого типа, называемых стековыми, операнды не указываются. При использовании стековых команд адреса считывания операндов и запоминания результатов выполнения операционных команд ограничены несколькими словами, находящимися в верхней части стека (Stack Top); в четком указании их в поле операнда нет необходимости. Стек представляет собой одномерную память, начинающуюся с так называемой вершины стека. Допускается выполнение следующих основных операций со стороны этой вершины. При операции PUSH (Push Down—проталкивание)] данные загружаются в стек, причем новые данные поступают в зершину и «проталкивают» ранее записанные в нижние ячейки стека. При операции POP (Pop up — выталкивание) содержимое стека выталкивается из него, данные выводятся через вершину стека. В процессе выполнения арифметических и логических операций, например суммирования (ADD), производится сначала выталкивание (POP) двух слов данных, начиная с находящихся в вершине стека, а затем загрузка (PUSH) результата операции в стек. При выполнении операции загрузки (STORE) данные подвергаются выталкиванию из вершины стека (POP) и записываются в основную память.
3. СПОСОБЫ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СОВРЕМЕННЫХ ПРОЦЕССОРОВ
Для повышения производительности в современных компьютерах используется множество приемов даже для сравнительно дешевых массовых процессоров. Среди них можно выделить
• суперскалярную архитектуру;
• раздельное кэширование программного кода и данных;
• блок предсказания правильного адреса переходов;
• высокопроизводительный блок вычислений с плавающей точкой;
• расширенную 64-битовую шину данных;
• конвейерную обработку;
• динамическое переупорядочивание команд;
• объединение в одном процессоре RISC и CISC архитектур;
• и ряд других технических решений
Рассмотрим основные нововведения, используемые, в частности, в процессорах фирм Intel и AMD.
3.1. Тенденция к параллелизму и конвейеризации в обработке
Для повышения производительности современных процессоров, необходимо предусмотреть параллельность обработки (суперскалярность). Процессор с единственным конвейером называется скалярным, одновременно на ступень декодирования (вблизи начала конвейера) может попасть только одна команда. Процессор с несколькими конвейерами носит название суперскалярный.
При производстве массовых процессоров проблема распараллеливания обработки приобретает, по крайней мере, два аспекта. Первый из них связан с тем, что для удешевления СБИС необходимы большие масштабы производства и как можно меньшая их номенклатура, и тем самым определяет необходимость максимально возможного применения параллельной обработки. В настоящее время в ряде областей физики (например, в молекулярной физике), в технике распознавания и некоторых других сферах существует необходимость исследования посредством имитационного моделирования сверхпараллельных систем, степень параллельности процессов, в которых достигает 106, что создает предпосылки для реализуемости высокопараллельных систем обработки.
Второй аспект связан со степенью распараллеливания в самом кристалле. При степени параллельности порядка 106 желательно, чтобы на один кристалл приходилось примерно 103 параллельных процессов. Следует подчеркнуть, что при создании таких СБИС стоимость межсоединений может значительно превысить стоимость вентилей. В условиях существования ограничений на количество слоев межсоединений площадь, занимаемая вентилями и соединениями, непосредственным образом сказывается на стоимости процессора; поэтому необходимо в равной степени учитывать площади, занимаемые как вентилями, так и коммутационными линиями.
Математические алгоритмы зачастую предусматривают последовательное выполнение процедур обработки. Использование при программировании алгоритмических языков в значительной степени обусловливает последовательную обработку информации в ЭВМ, что, естественно, затрудняет внедрение идеи параллелизма. В особенностях мышления и программирования заключаются основные препятствия для использования параллельной обработки в ЭВМ. Даже когда процессу обработки присущ внутренний параллелизм, на этапах алгоритмизации и программирования этого процесса последовательный принцип преобладает над принципом параллельности.
Конвейерная обработка представляет собой параллельное выполнение всех ступеней обработки в пределах одного и того же процесса; эти ступени при первоначальном описании процесса могут располагаться во времени последовательно. Другими словами, это распараллеливание по временной оси. При разработке современных процессоров усилия по внедрению конвейерной обработки были сосредоточены на уровне действий, связанных с извлечением команд.
Не все суперскалярные процессоры построены одинаково. Так микропроцессоры Pentium фирмы Intel могут обрабатывать по две команды, поэтому они называются двухпотоковыми. Большинство современных процессоров имеет больше двух потоков. Ни один из процессоров не может при любых обстоятельствах обрабатывать одновременно максимально допустимое для его архитектуры число команд. В процессоре Pentium, например, наложены строгие ограничения на типы команд, которые могут обрабатываться одновременно.
Конвейер в различных процессорах имеет различное число ступеней, от 5 в процессоре Pentium, до 12 и более в RISC процессорах. Количество стадий конвейерной обработки называется глубиной конвейеризации.
3.2. Блоки вычислений с плавающей точкой
Одно из свойств, которым RISC- процессоры исторически отличаются от CISC-поцессоров, - сверхвысокая производительность при вычислениях с плавающей точкой. В большинстве коммерческих прикладных программ мало операций с плавающей точкой или их не вообще; даже если вы используете числа с плавающей точкой, они часто представляются в процессоре в целом виде. Долгое время блок вычислений с плавающей точкой оформлялся в отдельном кристалле, как сопроцессор. Компьютер мог комплектоваться, а мог не комплектоваться сопроцессором.
В настоящее время повышение производительности сопроцессорных блоков – особая забота фирм-разработчиков аппаратуры.
Следующие приемы позволяют дополнительно повысить производительность вычислений с плавающей точкой:
• использование наименьшей точности, пригодной для проводимых вычислений;
• отказ от переключения режима округления при преобразовании чисел с плавающей точкой в целые (округлении);
• очистка стека данных с плавающей точкой после выполнения вычислений;
• разделение вычислений с плавающей точкой и команд MMX™ для снижения затрат на переключение режима работы.
3.3. Блок предсказаний правильного адреса перехода
Переходы встречаются в среднем через каждые 6 команд. Поскольку условные переходы (ветвления) обычно разрешаются только на исполнительной ступени конвейера, процессор не знает, какие команды следует направлять в конвейер непосредственно вслед за командой перехода.
Лучший вариант действия процессора, встретившего команду условного перехода – сделать предположение о пути ветвления такой метод называется прогнозированием ветвлений. Без этого процессору пришлось бы выбрасывать частично выполненные команды из конвейеров при каждом переходе.
В любом случае процессор начинает выборку команд с предсказанного им адреса перехода еще до того, как он узнает, верным ли был его прогноз. Процессор может даже начать выполнение некоторых из этих команд до разрешения условия перехода. Этот метод называется исполнением по предположению. Некоторые процессоры обеспечивают несколько уровней предсказания ветвления. Когда процессор делает неправильное предположение, он должен отменить все выполненные по предположению команды и очистить конвейеры.
Для прогнозирования ветвлений используется буфер адреса перехода, обычно на 256 позиций. Чтобы помочь сделать прогноз, этот буфер отслеживает и хранит данные о результатах 256 последних ветвлений, иногда вместе с результатами вызовов подпрограмм и возвратов из них.
3.4. Динамическое переупорядочивание команд
Главным ограничением методов конвейерной обработки является выдача для выполнения команд строго в порядке, предписанном программой: если выполнение какой-либо команды в конвейере приостанавливается, следующие за ней команды также приостанавливаются. Таким образом, при наличии зависимости между двумя близко расположенными в конвейере командами возникает приостановка обработки многих команд. Таким образом многие функциональные устройства могут оказаться незагруженными. Если команда j зависит от длинной команды i, выполняющейся в конвейере, то все команды, следующие за командой j должны приостановиться до тех пор, пока команда i не завершится и не начнет выполняться команда j. Например, рассмотрим следующую последовательность команд:
DIVD F0,F2,F4
ADDD F10,F0,F8
SUBD F8,F8,F14
Команда SUBD не может выполняться из-за того, что зависимость между командами DIVD и ADDD привела к приостановке конвейера. Однако команда SUBD не имеет никаких зависимостей от команд в конвейере. Это ограничение производительности, которое может быть устранено снятием требования о выполнении команд в строгом порядке.
Процессоры типа Pentium используют упорядоченное выполнение и обработку, а также упорядоченное завершение. Это значит, что все, что останавливает один конвейер, останавливает и другой. Пи наличии трех и более конвейеров, такой способ конструирования процессора является неэффективным.
Архитектуры с неупорядоченным завершением позволяют одному из конвейеров работать при заторе в другом. При этом команды, стоящие в программе позже, могут быть фактически выполнены раньше предыдущих, застрявших в конвейере. Процессор при этом должен гарантировать, что результаты не будут записаны в память, а регистры модифицироваться в неправильной последовательности, поскольку при этом могут получиться неправильные результаты.
Неупорядоченная обработка развивает ту идею дальше, позволяя процессору выдавать и обрабатывать команды также не в порядке их следования в программе. Для реализации неупорядоченной обработки обычно требуется буфер команд или окно команд между ступенями декодирования и исполнения конвейера. Если процессор определяет, что в текущий момент команда исполняться не может, он посылает в исполнительный блок следующую команду. Иногда используется небольшое окно команд, называемое накопителем, перед входом в каждый исполнительный блок.
Тем не менее, некоторые операции просто нельзя завершить до выполнения других. Такая зависимость называется истинной зависимостью по данным или зависимостью «чтение после записи».
Производительность может также снижаться ложными взаимозависимостями. Например, если две следующие друг за другом команды выполняют отдельные вычисления, но записывают свои результаты в один и тот же регистр, то выполнение второй команды после первой, может привести к взаимозависимости «запись после записи» Другой тип ложной взаимозависимости называется «запись после чтения» и возникает тогда, когда вторая команда может испортить данные, необходимые в качестве входных для первой. При ограниченном числе регистров, например в архитектуре х86, такие зависимости могут существенно снизить производительность суперскалярных процессоров.
Для повышения производительности используется переименование регистров или создание внутренних стеков. Процессоры с переименованием регистров фактически имеют больше программно-доступного числа регистров. Процессор динамически ставит в соответствие логическому регистру один из более многочисленных физических регистров. Такие переименования действуют, пока команды продвигаются по конвейерам.
Переименование регистров не может совсем исключить возникновение истинных взаимозависимостей, поэтому в некоторых процессорах используются обходы или продвижения данных. При обходах результаты выполнения одной команды сразу пересылаются следующей, так что исключается модификация и повторное чтение из регистра или памяти. Продвижение данных позволяет процессору выполнять некоторые команды параллельно, которой они не потребуются до более поздней ступени конвейерной обработки.
3.5. Совмещение RISC и CISC архитектур
Быстрое декодирование команд – необходимое условие для обработки нескольких команд за такт, и каждый из процессоров использует для этой цели свой механизм. Главная проблема при декодировании CISC-команд состоит в том, чтобы определить, где кончается одна команда и начинается другая, а затем расположить команды в такой последовательности, чтобы они более эффективно обрабатывались дешифратором.
Современные процессоры шестого поколения для каждого байта, загружаемого в кэш-память команд формируют биты предварительного декодирования. Каждый байт имеет несколько, например , пять бит связанных с ним данных, показывающих, где начинается и где заканчивается команда и сколько основных RISC-подобных операций требуется для ее выполнения. Процесс предварительного декодирования лишь незначительно снижает производительность (или вообще не снижает ее), так как происходит при выборке команд из основной памяти в кэш-память команд до выполнения стандартных конвейерных операций. Однако, этот процесс требует расширенного объема кэш-памяти.
После определения границ команд процессор передает содержимое памяти в специальные преобразователи, которые и переводят обычные команды в RISC-подобные. Некоторые особо сложные команды пересылаются в микропрограммируемый блок, который обрабатывает их, формируя серии RISC-операций. Полученные RISC-подобные операции выполняются далее в нескольких конвейерах в среднем со скоростью две CISC- команды за такт. В организации данного механизма возможны варианты, связанные с количеством одновременно декодируемых байт
3.6. Организация кэш-памяти
Более подробно организация кэш=памяти будет рассмотрена в следующих главах. Рассмотрим только основные особенности. .Чтобы сократить потери, связанные с доступом к внекристалльной памяти в состав высокопроизводительных процессоров включают внутреннюю кэш-память. Наиболее популярна в процессорах гарвардская архитектура кэш-памяти с разделением ее на отдельные секции команд и данных. Ее альтернатива, общая кэш-память привлекает возможностью динамически распределять память при работе программ, занимающих большой объем памяти или обрабатывающих большие массивы данных, но имеет существенный недостаток, связанный с возникновением конфликтов между доступом к коду и данным на различных стадиях конвейерной обработки.
Как правило, все процессоры содержат логику синхронизации кэш-памяти для работы в многопроцессорных конфигурациях.
3.7. Мультимедийное расширение системы команд
Одним из актуальных требований к современным вычислительным системам является поддержка мультимедиа. Эта задача может быть решена различными способами. Известно, что мультимедиа предъявляет повышенные требования к скорости обработки. Поэтому одним из способов создания мультимедиа-системы может быть использование в ней одного или нескольких RISC-процессоров с повышенной рабочей частотой. Такие системы имеют высокую производительность для любой задачи, но они очень дороги и применяются в узкоспециальных областях, например, при производстве полнометражных фильмов. Другим способом является применение графических сопроцессоров, объединенных с обычным процессором в единый конвейер графической обработки. Обычный процессор рассчитывает геометрические параметры изображения, а графический сопроцессор производит растеризацию, т.е. рассчитывает параметры цвета для каждого элемента изображения. По такому пути идут разработчики массовых мультимедиа-систем, причем функции, выполняемые графическим сопроцессором, постоянно усложняются.
Однако, качественная поддержка произвольного сопроцессора невозможна без введения в собственно процессор средств поддержки мультимедиа. Поэтому в последнее время в систему команд процессоров, особенно СISС-процессоров, добавляются специальные команды, направленные на убыстрение обработки графической информации.
Современные процессоры фирмы Intel, начиная с Pentium-MMX имеют встроенные средства поддержки графических команд, реализующих функции свертки, преобразования Фурье, алгоритмы фильтрации и другие средства поддержки видео- и аудиообработки. Новые команды реализованы по принципу SIMD, несмотря на то, что в основном процессор работает как SISD-устройство. При этом повышается скорость обработки трехмерной графики и фильтрация изображения. Расширяется количество типов обрабатываемых данных, добавляются упакованные байты, упакованные слова, упакованные двойные и четверные слова. Такие изменения требуют внесения изменений в архитектуру процессора, а именно добавление специальных регистров, которые для поддержки совместимости с предыдущими версиями процессоров, имитируют работу блока с плавающей точкой, хотя на самом деле обрабатываются целочисленные данные.
Внесение подобных изменений повышает производительность процессоров на 10-20%, а для отдельных приложений на 60%, разумеется при использовании специально откомпилированного кода.
4.ОБЩИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ПАМЯТИ
4.1. Функции и структура памяти.
4.1.1.Функции памяти
Память является очень важным структурным элементом в системе ЭВМ. Содержимое памяти обычно относится к одной из четырех категорий:
1. Коды программы;
2. Данные (постоянные);
3. Промежуточные результаты обработки (переменные);
4. Состояние ЭВМ..
В процессе обработки коды программы и данные заносятся в относительно более быстродействующие запоминающие устройства - основную память самой ЭВМ или на магнитные диски. В ходе выполнения программы постоянно производится распределение областей памяти, используемой для информации третьего типа, между всеми переменными, а их обработка осуществляется в соответствии с информацией первого типа. Промежуточные результаты записываются и считываются один за другим. Устройство, производящее их обработку, строится из логических схем. Обычно оно представляет собой последовательностную схему, имеющую несколько состояний. Для запоминания состояний и обрабатываемых данных в устройстве обработки имеются элементы памяти - триггеры, регистры и т. п.
Таким образом, можно выделить три основные функции памяти:
1. Хранение программ и данных;
2. Запоминание промежуточных результатов, используемых в ходе обработки;
3. Работа в качестве элемента устройства обработки.
Элементы памяти могут быть весьма разнообразными. Запоминающие устройства (ЗУ), созданные на их основе, обладают различными параметрами; в каждом случае выбирается тот вид памяти, который наиболее оптимален для данной цели применения.
4.1.2. Требования, предъявляемые к памяти
Главными требованиями, которым должно удовлетворять 3У, являются достаточно большие емкость и быстродействие. Желательно, чтобы при минимальных физических размерах память обладала как можно большей информационной емкостью, обеспечивала быструю запись и считывание информации и при этом была бы экономически выгодной с точки зрения технической реализации. Удовлетворить все эти требования одновременно в одном устройстве весьма затруднительно, поэтому обычно комбинируют несколько ЗУ с различными параметрами, добиваясь создания комплексного ЗУ с требуемыми характеристиками. Виртуальная память является типичным примером памяти с большой информационной емкостью, а буферная память — средством повышения быстродействия ЗУ. Одним из обязательных требований, которое необходимо добавить к указанным выше, является требование высокой надежности.
4.1.3. Влияние структуры данных на организацию памяти
Основная память ЭВМ обычно представляет собой последовательность областей памяти. Для обращения к ним в качестве адреса каждой из областей служат целые числа от 0 до N, т. е. имеет место одномерная система адресации. Однако подобный способ адресации, заключающийся в прямом указании адреса, не всегда удобен. Часто используется косвенная адресация, при которой указывается адрес области памяти, в которой находится адрес запрашиваемой области памяти, или относительная адресация, при которой указывается положение адреса вызываемой области по отношению к некоторому текущему значению адреса. Последние два способа адресации наряду со значительным упрощением программы положительно влияют на скорость обращения к памяти.
В современных языковых программных средствах высокого уровня широко применяются структуры данных в виде массивов, матриц обслуживания, стеков, таблиц, деревьев. При использовании памяти, имеющей линейную организацию, возникает проблема эффективного представления в ней подобных структур данных; поэтому желательно строить ЗУ и устройства управления ими с ориентацией на особенности структур данных. Примерами таких способов организации памяти могут служить стековая память, кэш-структуры, ассоциативная память и др.
4.2. Элементы и устройства памяти
4.2.1. Общее представление
Обычно ЗУ имеет структуру, показанную на рис. 4.1. Основная часть устройства состоит из множества ячеек памяти (по одной ячейке на 1 бит). В эти ячейки записываются значения 1 или 0, подаваемые извне, или же содержимое ячеек в виде этих значений считывается наружу. Указатель, предназначенный для идентификации каждой ячейки памяти, называется адресом, а действие, связанное с использованием требуемых ячеек памяти,— выборкой или обращением к ЗУ. Кроме того, элементами ЗУ называют и кристаллы БИС (например, по 64 Кбит), из которых создаются многие виды ЗУ.
Рис.4.1. Схема адресного ЗУ
БАВ – блок адресной выборки.
ЗМ – запоминающий массив – это совокупность определенным образом соединенных запоминающих элементов (другое название – запоминающая матрица).
ЗМ имеет систему адресных и разрядных линий. Адресные линии используются для выделения по адресу совокупности элементов, которым устанавливается режим чтения или записи. Разрядными линиями осуществляется выделение отдельных разрядов, по которым передается записываемая в запоминающий элемент информация или информация о состоянии запоминающего элемента. Адресные и разрядные линии имеют общее название – линии выборки.
БУС – блок усилителей считывания.
ШД – шина данных.
Р2И – информационный регистр, т.е. регистр для приема считанной информации или информации, которую надо записать.
БУЗ – блок усилителей записи.
БУП – блок управления памятью, формирует последовательность управляющих сигналов в зависимости от принимаемых сигналов «обращения» и «операции».
Interleaving Mode – режим с чередованием адресов – используется для уменьшения времени доступа к DRAM (т.е. разделение ЗМ на банки, чтение из которых осуществляется поочередно).
При работе с кэш-памятью обращение к основной памяти носит характер пакетного, т.е. одновременно читаются несколько слов. В этом случае можно организовать чтение пакета в пределах страницы, т.е. не выставлять каждый адрес строки RA.
Реальная структура оперативной памяти существенно зависит от типа используемого запоминающего элемента. Бывают такие структуры: 2D, 3D, 2.5D, 2.5D-M – 2-х координатные, 3-х координатные, двух с половиной координатные, двух с половиной координатные модернизированные.
Современные ОЗУ строятся на 2.5D, а SRAM – на 2.5D-M.
Разнообразные элементы памяти можно классифицировать по физическому принципу хранения данных следующим образом:
1 Элементы, работающие на основе реализации свойств магнитных материалов;
2. Элементы с использованием накопления электрических зарядов;
3. Элементы на основе активных приборов (т. е. приборов, обладающих усилительными свойствами);
4. Элементы, в которых используется эффект временной задержки;
5. Элементы на основе оптической техники.
На элементах первого типа построена память на магнитных сердечниках, магнитных барабанах, магнитных дисках, магнитных лентах и цилиндрических магнитных доменах. На элементах второго типа строится динамическая память на МОП-структурах, приборах с зарядовой связью (ПЗС) и т. д. Классическими представителями элементов памяти третьего типа являются статические триггеры. Память на элементах четвертого типа не имеет широкого применения, к их числу можно отнести линии задержки. В элементах пятого типа запоминание информации происходит благодаря оптическому отображению ее на поверхности материала, осуществляемому лучом лазера.
По типу обращения к ячейкам памяти можно выделить следующие группы ЗУ:
1. С постоянной скоростью обращения (произвольная выборка).
2. С циклическим обращением (последовательная выборка).
В ЗУ первой группы допускается выборка с одинаковой скоростью для каждой из множества областей ЗУ. К этому виду памяти относятся полупроводниковые ЗУ с произвольной выборкой. В ЗУ второй группы области памяти располагаются последовательно в ряд или в виде петли, и выборка необходимой области производится путем последовательного просмотра всех областей ряда пли петли. К памяти этого типа относятся ЗУ с носителями на магнитных дисках и лентах (МД и МЛ) и др.
По характеру работы с памятью можно выделить ЗУ, допускающие многократную запись и считывание, ЗУ, допускающие только считывание после однократной записи (ПЗУ), ассоциативные ЗУ с выборкой областей памяти по их содержимому, а не по адресу и др.
Кроме того, имеются элементы памяти, содержимое которых теряется или утрачивается при выключении источника питания, а также элементы, сохраняющие содержимое независимо от состояния источника питания. Память на элементах первого типа называется энергозависимой. К их числу относятся оперативное ЗУ с произвольной выборкой, ЗУ на приборах с зарядовой связью и др. Память с магнитной или оптической записью информации, а также ПЗУ построены на элементах второго типа. Память на этих элементах называется энергонезависимой.
К числу наиболее важных качественных показателей ЗУ относятся следующие: плотность записи (бит/см2); информационная емкость (бит); время выборки; время цикла; надежность; стоимость на один бит. Первая характеристика показывает плотность хранения данных на носителе ЗУ, вторая — общую емкость ЗУ, третья и четвертая являются показателями быстродействия. Время выборки представляет собой промежуток времени с момента поступления сигнала считывания до момента выдачи считываемой информации, а время цикла - минимальный временной интервал, в течение которого можно выполнить подряд операции считывания и записи. Пятый параметр характеризует частоту появления ошибок и измеряется средним временем наработки устройства на отказ. Шестой параметр является экономическим показателем устройства.
4.2.2. Полупроводниковая память
ЗУ с произвольной выборкой
По принципу запоминания ЗУ с произвольной выборкой '(ЗУПВ) делятся на статические и динамические. В ЗУПВ статического типа в качестве ячеек памяти используются триггеры. В ЗУ динамического типа запоминание бита информации осуществляется путем накопления электрических зарядов. Ячейка динамической памяти занимает очень небольшую площадь на кристалле БИС, что способствует достижению значительной информационной емкости кристалла. Однако в динамическом ЗУ в силу утечки электрических зарядов необходимо через определенные интервалы времени восстанавливать содержимое памяти, т. е. требуется так называемая регенерация памяти.
В процессе развития динамических ЗУВП с ростом их емкости основным вопросом стоимости таких микросхем был вопрос о количестве адресных линий и стоимости соответствующего корпуса. В те годы было принято решение о необходимости мультиплексирования адресных линий, позволившее сократить наполовину количество контактов корпуса, необходимых для передачи адреса. Поэтому обращение к динамическому ЗУПВ обычно происходит в два этапа. Первый этап начинается с выдачи сигнала RAS - row-access strobe (строб адреса строки), который фиксирует в микросхеме поступивший адрес строки, второй этап включает переключение адреса для указания адреса столбца и подачу сигнала CAS - column-access stobe (строб адреса столбца), который фиксирует этот адрес и разрешает работу выходных буферов микросхемы. Названия этих сигналов связаны с внутренней организацией микросхемы, которая, как правило, представляет собой прямоугольную матрицу, к элементам которой можно адресоваться с помощью указания адреса строки и адреса столбца.
Дополнительным требованием организации динамического ЗУПВ является необходимость периодической регенерации ее состояния. При этом все биты в строке могут регенерироваться одновременно, например, путем чтения этой строки. Поэтому ко всем строкам всех микросхем динамического ЗУПВ основной памяти компьютера должны производиться периодические обращения в пределах определенного временного интервала порядка 8 миллисекунд.
Это требование кроме всего прочего означает, что система основной памяти компьютера оказывается иногда недоступной процессору, так как она вынуждена рассылать сигналы регенерации каждой микросхеме. Разработчики динамического ЗУПВ стараются поддерживать время, затрачиваемое на регенерацию, на уровне менее 5% общего времени. Обычно контроллеры памяти включают в свой состав аппаратуру для периодической регенерации динамического ЗУПВ, в некоторых компьютерах это делает таймер.
В отличие от динамических, статические ЗУПВ не требуют регенерации и время доступа к ним совпадает с длительностью цикла. Для микросхем, использующих примерно одну и ту же технологию, емкость динамического ЗУВП по грубым оценкам в 4 - 8 раз превышает емкость статического ЗУПВ, но последние имеют в 8 - 16 раз меньшую длительность цикла и большую стоимость. По этим причинам в основной памяти практически любого компьютера, проданного после 1975 года, использовались полупроводниковые микросхемы динамической памяти (для построения кэш-памяти при этом чаще применялись статическая память). Естественно были и исключения. В отдельных суперкомпьютерах например, в оперативной памяти суперкомпьютеров компании Cray Research использовались микросхемы статической памяти.
Постоянные ЗУ .(ПЗУ)
ПЗУ — это память, предназначенная только для хранения и считывания информации. Она обладает свойством энергонезависимости, т. е. обеспечивает сохранность содержимого и при выключении энергопитания. В ПЗУ обычно хранятся фиксированные программы, используемые для начальной загрузки основной памяти ЭВМ, константы и др. По характеру изготовления и применения ПЗУ делятся на следующие типы:
1.Масочные ПЗУ;
2. Программируемые ПЗУ с плавкими перемычками (полупроводниковыми переходами);
3. СППЗУ—стираемые программируемые ПЗУ.
В ПЗУ масочного типа запись осуществляется в процессе их изготовления путем задания конфигурации одной из технологических масок БИС. Этот тип ПЗУ наиболее экономически выгоден при массовом производстве. В ПЗУ второго типа нет необходимости производить запись содержимого в процессе их изготовления. Занесение данных осуществляется уже в период их использования. Для записи информации в программируемые ПЗУ производится выжигание путем короткого замыкания соответствующих перемычек или переходов эмиттер — база кристалла БИС. В СППЗУ в отличие от ПЗУ предыдущих двух типов допускается еще и стирание записанного содержимого с помощью ультрафиолетового облучения.
ПЗС-память
ЗУПВ и ПЗУ позволяют производить выборку данных в любом порядке и с одинаковой скоростью. В противоположность им ЗУ на ПЗС — это память с последовательной выборкой. ЗУ на ПЗС имеет очень простую структуру—тонкая оксидная пленка на кремниевой подложке и множество электродов. Электрические заряды, накопленные под электродами, передаются от одного электрода к другому электроду вправо с помощью последовательного возбуждения импульсами трех выводов. Наличие или отсутствие под электродом электрического заряда соответствует одному биту информации, т. е. ЗУ на ПЗС функционирует как сдвиговый регистр. Коэффициент переноса зарядов не достигает 100 %, поэтому на пути их передвижения требуется механизм регенерации зарядов. Простая структура ЗУ на ПЗС позволяет достигнуть большей степени интеграции, чем для ЗУПВ. Можно предположить, что ЗУ на ПЗС как устройства памяти большой емкости восполнят пробел в параметрах между основной памятью ЭВМ и памятью на магнитных дисках. Однако интенсивное развитие ЗУПВ не позволяет выделить для ЗУ на ПЗС соответствующую их характеристикам специфичную область применения.
4.2.3. Магнитная запись
Устройства памяти вычислительных систем делятся на ЗУ с прямым доступом от процессора и ЗУ с обращением к ним через каналы и другие средства. Первые относятся к внутренней, а вторые — к внешней памяти ЭВМ. ЗУ первого типа представляют собой так называемую основную память компьютера. В качестве этой памяти преимущественно используются полупроводниковые ЗУПВ. Второй тип памяти называется вспомогательной памятью. Типичные ее представители — накопители на магнитных дисках, на магнитных лентах и другие магнитные ЗУ.
В свою очередь магнитные ЗУ делятся на два основных класса: ЗУ с записью на магнитной поверхности и ЗУ с записью на цилиндрических магнитных доменах. Кроме этих магнитных ЗУ имеются еще ЗУ на ферритовых кольцеобразных сердечниках и ЗУ на проводниках и тонких магнитных пленках из пермаллоя. В прошлом последние три типа магнитных ЗУ использовались широко, но в настоящее время они почти повсеместно заменены на полупроводниковую память. В широком распространении остались только ЗУ с записью на магнитной поверхности
Рис.4.2. Принципы магнитной записи: а) структура; б) порядок намагничивания; в)способы кодирования.
Особенностями магнитных ЗУ являются высокая плотность записи информации и энергонезависимость. При записи на магнитную поверхность применяются магнитные среды с большой площадью рабочей поверхности, что позволяет весьма экономно записывать большие объемы информации.
При использовании полупроводниковой памяти энергонезависимость достигается с большим трудом, в то время как магнитным средам записи внутренне присуща способность долгосрочного хранения информации без потребления на это энергии.
Обычно в ЗУ с записью на поверхности информация запоминается путем намагничивания рабочей магнитной поверхности из магнитотвердых материалов, таких, как Fe2O3, СгО2 и др., нанесенных или напыленных на подложку. Магнитные носители записи могут быть конструктивно оформлены в виде магнитных дисков (МД), магнитных лент (МЛ) и других устройств.
При пропускании электрического тока через обмотку магнитной головки, намотанную на магнитный сердечник с рабочим зазором, вблизи зазора в соответствии с направлением и величиной тока возникает магнитное поле утечки. Если приблизить к этому зазору магнитную поверхность, то она этим полем намагничивается. Таким образом, информация записывается на поверхности среды записи в форме остаточного намагничивания, и после удаления магнитной головки сохраняется в этой среде в виде ориентированных вдоль поверхности мельчайших постоянных магнитов.
Существует несколько способов установления однозначного соответствия между намагничиванием поверхности среды записи и записываемой двоичной информацией, состоящей из нулей и единиц. Типичные из них представлены на рис. 4.2. Способ записи без возвращения к нулю — БВН (NRZ) используется широко, так как он обеспечивает небольшое число перемагничиваний на бит информации. Способы с частотной (FM) и фазовой (РМ) модуляцией характеризуются большим числом перемагничиваний, но зато и простым выделением синхронизирующих сигналов. Оба этих способа наряду с модифицированным способом с частотной модуляцией (MFM) удобны для высокоплотной магнитной записи.
Реализация высокоплотной записи информации на магнитных средах независимо от используемых способов записи сопряжена с принятием таких мер, как уменьшение влияния размагничивающих сил в среде записи, уменьшение толщины магнитного слоя среды, увеличение коэрцитивной силы и повышение максимальной плотности потока насыщения путем выбора магнитных материалов.
Рис. 4.3. Устройство управления магнитным диском.
Магнитные диски
В качестве рабочей среды на МД служит тонкий магнитный слой, нанесенный на подложку. Запись информации на МД производится по концентрическим дорожкам. Использование на одной оси приводного механизма накопителя нескольких дисков позволяет в значительной степени увеличить его информационную емкость. Одно из важных преимуществ вспомогательного ЗУ на МД — это возможность произвольного доступа к записанным в нем данным.
Структура накопителя на МД показана на рис. 4.3. Схема управления в соответствии с управляющим сигналом и адресной информацией, поступающими от контроллера накопителя, определяет положение магнитной головки относительно требуемой дорожки. После выхода магнитной головки на эту дорожку по считываемой информации определяется положение головки на дорожке и с помощью сигналов синхронизации производится считывание или запись данных. На каждой дорожке записывается индексная информация, указывающая начало дорожки, ее адрес и положение дорожки по отношению к другим дорожкам МД, адресная информация о разбиении дорожки на секторы. По совокупности этой информации и определяется область записи или считывания данных.
В накопителях на жестких МД между рабочей поверхностью диска и магнитной головкой имеется зазор, величина которого определяется динамическим равновесием подъемной силы от воздушного потока вращающегося диска, подчиняющейся законам аэродинамики, и силы действия пружины, прижимающей магнитную головку к диску. Величина зазора в процессе такой бесконтактной записи обычно находится в пределах от единиц микрон до десятых долей микрона.
Основные параметры накопителя на МД — емкость памяти, среднее время поиска, среднее время ожидания сектора на дорожке, число цилиндров, число поверхностей записи, скорость передачи данных. Среднее время поиски представляет собой усредненное время, необходимое для установки магнитной головки на требуемую дорожку. Среднее время ожидания сектора на дорожке — это усредненное время поворота диска до заданного положения; оно равно периоду полуоборота диска. Цилиндром называется совокупность концентрических дорожек одного радиуса на всех МД накопителя. Число цилиндров определяется числом концентрических дорожек на одном диске; таким образом, общее число дорожек равно числу цилиндров, умноженному на число рабочих поверхностей накопителя.
Накопители на гибких МД.
Накопители на гибких МД — это ЗУ со сменной средой записи в виде эластичного МД, помещенного для удобства пользования в тонкий пластмассовый конверт. Запись в этих накопителях производится контактным методом, т. е. при непосредственном контакте магнитной головки со средой записи. Накопители на гибких МД отличаются низкой стоимостью, неприхотливостью в обслуживании, а используемая в них среда записи занимает небольшое пространство. Они весьма удобны для записи информации объемом порядка 1 Мбайт и применяются как простые файловые ЗУ.
Накопители на МЛ
Использование накопителей на МЛ в качестве внешнего ЗУ имеет давнюю историю. ЗУ на МЛ работают в режиме последовательной выборки и отличаются очень низкой стоимостью среды записи, приходящейся на 1 бит информации. Благодаря высокой объемной плотности записи носитель этих накопителей занимает небольшое пространство, что и определило основное использование МЛ для хранения и переноса больших массивов данных и для последовательной обработки данных.
4.2.4. Оптические ЗУ.
Существуют оптические ЗУ, в которых цифровая информация записывается непосредственно, и ЗУ голографического типа, в которых запись производится на основе явления интерференции. В ЗУ второго типа записывается интерференционная картина, получаемая вследствие наложения световых лучей от источника освещения и лучей лазера, отраженных от физического объекта. Оптическая память этого типа пока нашла применение для записи изображений, в качестве же периферийной памяти компьютеров используются оптические ЗУ первого типа, которые и будут рассмотрены ниже. В качестве носителей оптической памяти этого типа могут служить оптические диски, микрофильмы, микрофиши и т. д. Среди них относительно более широкое применение находят диски с постоянной записью, т. е. оптические ПЗУ. Они имеют следующие преимущества:
1. Малые физические размеры при большой информационной емкости;
2. Возможность работы в режиме произвольной выборки.
3. Долговечность, являющаяся следствием бесконтактного воспроизведения информации;
4. Продолжительный срок хранения среды записи.
Эти преимущества позволяют использовать оптические ПЗУ-диски для больших файлов изображений, текстов, данных.
Одна из конструкции оптического диска показана на рис. 4.4.. Диск из прозрачной смолы имеет концентрические канавки, используемые в системе слежение за дорожкой в качестве направляющих. На внутреннюю сторону диска перед его герметичной сборкой наносится пленка теллура. С помощью
Рис. 4.4.. Образец оптического диска.
сфокусированного луча лазера, проходящего по выступам концентрических дорожек, в пленке теллура в соответствии с записываемыми данными выжигаются отверстия, так называемые пиксели.
Кроме выжигания, существуют способы записи на оптических дисках путем изменения с помощью лазера коэффициента отражения поверхности диска.
Магнитооптическая память.
Если направить луч лазера на намагниченную пленку TbFe, GdTbFe или другого подобного материала, то в зависимости от состояния намагниченности в месте падения луча лазера изменяются поляризация, фаза и интенсивность отраженного луча. На основе этих магнитооптических эффектов сейчас разрабатываются оптические ЗУ большой емкости, допускающие многократную перезапись информации. Принцип записи на таких дисках основан на перемагничивании участков среды с помощью перемагничивающей катушки, находящейся над диском, при локальном разогреве этих участков лучом лазера. Считывание производится путем обнаружения поляризации отраженного луча лазера небольшой мощности (эффект Фарадея). Один бит информации занимает 1 мкм дорожки. По сравнению с магнитной записью от магнитооптической записи можно ожидать 5—10-кратного повышения плотности записи.
5.Иерархическая структура памяти
5..1 Многоуровневая система памяти
Желательно, чтобы память ЭВМ обладала как можно большей емкостью и как можно большим быстродействием. Трудно, однако, найти тип ЗУ, который бы удовлетворял этим противоречащим друг другу требованиям одновременно. Тенденция развития ЗУ такова, что более быстродействующие из них имеют и более высокую стоимость. Поэтому реализовать память, обладающую большой емкостью и высоким быстродействием, можно при совместном использовании дешевых ЗУ большой емкости и небольших по емкости, но быстродействующих ЗУ. В оптимальном сочетании таких ЗУ и состоит суть многоуровневой структуры памяти.
На рис. 5.1. показан классический пример памяти с многоуровневой структурой. Емкость памяти на каждом из уровней этой памяти увеличивается в направлении от процессора в следующей последовательности: буферная память, основная память, вспомогательная (внешняя память), архивная память, а повышение быстродействия этих устройств происходит в обратном порядке.
Рис.5.1 Многоуровневая организация памяти.
С точки зрения программиста основная память рассматривается как ЗУ с произвольной выборкой и одномерной адресацией. Наличие буферного ЗУ лишь увеличивает эквивалентную скорость выборки из основного ЗУ, не внося никаких изменений в используемую программой систему адресации. Буферное ЗУ называется кэш-памятью.
Память, в организации которой используется механизм расширения ограниченной емкости основной памяти с помощью устройств вспомогательной памяти, например накопителей на МД, МЛ и др., называется виртуальной памятью. В виртуальной памяти без увеличения физической емкости основного ЗУ образуется расширенное, единое, с точки зрения программиста, фиктивное адресное пространство, адресация которого не зависит от физических характеристик составляющих его устройств, и тем самым обеспечивается использование программой большой емкости памяти.
Как отмечалось выше, многоуровневая организация связана с передачей информации между разнотипными ЗУ и обеспечивает одновременно и быстродействие, и большую емкость памяти ЭВМ. Но в основе такой организации заложен принцип локального обращения к ЗУ. Это означает, что расстояние между областями памяти, к которым происходят обращения, должно быть, как правило, небольшим, т. е. часть адресного пространства, пределами которого оно ограничено в течение какого-то интервала времени, должна быть по возможности небольшой. При этом данные, обращение к которым происходит часто, размещаются в быстродействующих ЗУ, что способствует повышению быстродействия многоуровневой памяти в целом.
5.2.Управление памятью
5.2.1. Элементы управления памятью
Управление памятью осуществляется либо со стороны программы пользователя, либо с помощью операционной системы. В первом случае можно производить более детальное управление на основе особенностей самой программы. Однако, введение функций управления памятью в пользовательские программы по сути не относится к прикладному программированию и ложится на пользователя тяжелым бременем. При использовании второго (системного) варианта управления памятью оно становится менее детальным, но зато обеспечивается автоматическое управление памятью в масштабах всей вычислительной системы и снижается нагрузка на пользователя.
Обычно память разбивается на так называемые единицы управления. Такие единицы существуют и для управления многоуровневой памятью, причем между уровнями памяти производится передача данных этими же единицами, которые называются блоками. С увеличением размеров блоков детальное управление становится все более затруднительным, что в свою очередь может привести к снижению эффективности использования памяти. Наоборот, чрезмерное уменьшение блоков может вызвать резкое увеличение доли непроизводительных вспомогательных операций (overhead). Блоки могут быть выбраны фиксированной или переменной длины, что при правильном выборе позволяет достигнуть компромисса между степенью управления и эффективностью использования памяти.
Процесс управления памятью осуществляется с помощью следующих систем:
1.Управления адресным пространством памяти;
2.Согласования передачи блоков;
3. Выбора блоков для замены.
С помощью первой системы ведется учет незанятых зон пространства памяти и устанавливается характер реакции на запросы в этих зонах памяти. Обычно при использовании блоков фиксированной длины управление ими не представляет особой проблемы, но в случае блоков переменной длины возникают трудности при поиске незанятых зон памяти и перераспределении их для объединения свободных зон памяти (фрагментация памяти). На рис. 5.2 приведен пример системы управления зонами памяти, разбитой на несколько блоков разной длины. Пустые блоки с учетом их длины объединяются через указатели блоков и образуют цепи. При поступлении запроса на зону памяти предоставляется минимальный блок, удовлетворяющий этому запросу.
Управляющая таблица
Пустые блоки
Рис.5.2. Управление зонами памяти.
Система согласования управляет передачей блоков из памяти низшего уровня в память более высокого уровня (более высоким считается уровень памяти, теснее связанный с процессором). При этом система осуществляет передачу блока либо только в тот момент, когда содержащаяся в нем информация действительно необходима, либо когда потребность в этой информации для памяти высокого уровня определена заранее с учетом ее необходимости в ближайшее время. Обычно чаще всего применяется первый из названных вариантов управления как более простой для реализации.
Система выбора блоков замены устанавливает очередность пересылки блоков информации из памяти более высокого уровня в память низкого уровня, когда в первой отсутствуют свободные зоны для приема необходимой информации из памяти низкого уровня. Обычно для удаления необходимо выбрать блок, обращение к которому в ближайшее время не предполагается. Из-за трудности нахождения такого блока чаще всего применяются различные приближенные способы оценки.
5.2.2. Процедура управления
Процедура управления памятью включает следующие операции:
1. Предотвращение наложения блоков памяти;
2. Обмен (перекачка) данных;
3. Разбиение памяти на страницы (листание страниц памяти);
4. Деление памяти на сегменты.
В настоящее время, когда получила широкое распространение виртуальная память, основными операциями управления памятью являются третья и четвертая, а первые две операции имеют вспомогательный характер. Остановимся сначала на них.
С помощью операции первого вида устанавливаются границы зон памяти, к которым могут обращаться выполняемые программы, и обеспечивается более эффективное использование переменных. Операциями управления обменом данных регулируется передача информации, обращение к которой в ближайшее время не предполагается, из основной памяти во вспомогательную память. Например, в случае мультипрограммного использования ЭВМ в системе постоянно существует несколько процессов, причем некоторые из них стоят в очереди на обслуживание их процессором, а другие ожидают ввода-вывода данных. Обычно время ожидания ввода-вывода значительно больше времени ожидания процессора, поэтому хранить в основной памяти программы для их выполнения нецелесообразно. Программы, которые находятся в состоянии длительного ожидания, переводятся во вспомогательную память, а программы, вышедшие из состояния ожидания, вызываются в основную память. Тем самым обеспечивается более эффективное использование памяти. Эта система перераспределения памяти называется перекачкой, причем запись в основную память называется подкачкой, а возвращение данных во вспомогательную память — откачкой. Обычно эта процедура применяется в вычислительных системах с разделением времени.
5.3. Буферная память
5.3.1. Краткое описание
Буферная память (кэш-память) предназначена для повышения быстродействия процесса обращения к основной памяти. В ее структуру, как показано на рис. 5.3, входят массив данных и справочник. В массив данных копируются соответствующие блоки основной памяти, а их адреса заносятся в справочник. Блок обработки команд процессора обычно обращается к буферной памяти. При отсутствии в ней требуемых блоков они переписываются в нее из основной памяти.
Рис.5.3. Организация кэша.
По мере повышения быстродействия элементов вычислительной техники повышается быстродействие и процессора. При этом сокращается и время обращения к буферной памяти. Однако в силу постоянно растущих требований к увеличению объема памяти время обращения к основной памяти существенно уменьшить трудно, что приводит к снижению эффективности буферной памяти.
Система буферизации может быть применена и для обмена данными между основной памятью и памятью на магнитных дисках. Используя буферную память емкостью несколько десятков мегабайт, реализованную на запоминающих элементах СБИС, можно увеличить эквивалентную скорость обращения к магнитным дискам примерно в 2—10 раз.
5.3.2. Система управления
Основная и буферная память состоят из блоков; в ходе обращения процессора к памяти производится сопоставление запрашиваемых адресов с адресами, хранящимися в справочнике буферной памяти. При обнаружении в справочнике нужного адреса происходит выборка блока из буферной памяти. С целью упрощения механизма сравнения адресов предложены различные способы организации взаимодействия основной и буферной памяти.
Основная и буферная память могут делиться на несколько наборов блоков; размещение блоков происходит в пределах соответствующих наборов. Например, из набора 2 в массиве данных буферной памяти могут иметь копии только блоки основной памяти с номерами 2, 10, 18, ... (не более двух блоков одновременно). Значение поля, определяющего адрес набора, направляется в справочник, и содержимое справочника по этому адресу сравнивается со старшими разрядами адреса. Их совпадение означает наличие указанных блоков в соответствующей части массива данных буферной памяти. Выбор в кэш-памяти блоков, которые могут быть заменены на вновь поступающие, производится с использованием стратегий LRU, FIFO и др.
Наиболее рациональной является стратегия замещения LRU (Least Recently Used—«дольше всех не используемый»), в соответствии с которой, из основной памяти удаляется блок, последнее обращение к которому имело место раньше, чем к другим блокам. Для этого при каждом обращении к кэш-памяти необходимо корректировать «историю» этих обращений. В соответствии со стратегией FIFO (First In First Out — первым пришел, первым ушел) из кэша удаляется блок, который был записан ранее других.
Стратегия обновления основной памяти (при чтении все типы кэш-памяти действуют одинаково):
а) сквозная запись (Write Through);
б) буферизированная сквозная запись (BWT);
в) обратная запись (Write Back).
В соответствии с первым способом блок, записываемый в кэш-память, одновременно записывается в основную память, в результате чего содержимое одноименных блоков на обоих уровнях памяти обычно совпадает. При использовании второго способа блок, записываемый в кэш, в основную память не заносится. При подкачке буфера, когда объектом замены становится блок, содержимое которого в кэше обновлялось, данные этого блока передаются в основную память и тем самым осуществляется обновление содержимого основной памяти.
При сквозной записи передача блоков между основной памятью и кэшем происходит редко и относительно более проста организация управления в мультипроцессорной вычислительной системе, но при каждой записи информации в кэш требуется обращение к основной памяти, что может стать причиной снижения быстродействия системы. При буферизации время занятости основной памяти относительно меньше, так как обновление информации в каждом блоке, находящемся в кэше, происходит многократно.
Одна из существенных проблем, возникающих при управлении кэш-памятью, связана с коллективным использованием основной памяти. Когда, как показано на рис. 5.4., основная память совместно используется мультипроцессором, каналами связи и т. д., возможно возникновение конфликтов между кэшами, между кэш-памятью и основной памятью, поэтому необходимы меры, обеспечивающие их согласованную работу.
Рис.5.4.
Если в мультипроцессорной системе применяется сквозная запись в память, то при записи информации в какой-либо блок его адрес сообщается всем другим процессорам (а не только тому, в кэше которого выполняются изменения данных). В этих других процессорах проверяется, нет ли данного блока в их кэшах, и, если есть, в дальнейшем информация этого блока в их кэшах считается недостоверной. При использовании записи с подкачкой управление производится таким образом, что обновление блока происходит только в кэше одного процессора, а в остальных процессорах этот блок считается недостоверным. При обращении для считывания информации к блоку, содержимое которого обновлялось в кэше другого процессора, это обновленное содержимое передастся в основную память, затем блок переносится в кэш, к которому имело место обращение для считывания, после чего происходит считывание.
Стратегия размещения информации (отображение содержимого основной памяти на кэш и преобразование адресов) реализуется несколькими способами:
а) прямое отображение;
б) частично-ассоциативное отображение;
в) полностью ассоциативное;
В случае прямого отображения адрес складывается из тэга, номера строки и номера смещения(рис. 5.5.). Считывание происходит, если совпадает тэг, иначе чтение должно идти из основной памяти или строка должна быть заменена. Достоинством этого метода являются низкие затраты на управление. Подобная адресация используется в процессорах Intel386, Alpha21066.
тэг
Строка
смещение
0010
001
100
2
Рис.5.5. Прямое отображение в кэш памяти
При полностью ассоциативном доступе адрес складывается только из тэга и смещения, что требует больших аппаратных затрат(рис.5.6.) Как и в предыдущем случае выборка происходит, если совпадает тэг.
тэг
Смещение
17
100
79
63
44
17
81
10
7
40
Рис.5.6. Полностью ассоциативный кэш
В частично-ассоциативной архитектуре, иногда называемой наборно-ассоциативной, адрес складывается из тэга, смещения и номера набора(ри.5.7.). Вся память разделена на наборы (группы строк). Как и в двух предыдущих случаях, выборка из кэш происходит при совпадении тэга.. Подобная память чаще других применяется в процессорах Pentium.
тэг
набор
Смещение
00100
01
100
19
4
Рис.6.7. Частично-ассоциативный кэш.
5.4. Виртуальная память
5.4.1. Система виртуальной адресации
Виртуальная память представляет собой единое адресное пространство, в котором физическая ограниченность емкости основной памяти скрыта от программиста. Таким образом, для программиста создается видимость произвольной адресации с отсутствием ограничений на емкость используемой памяти, что значительно облегчает программирование. Кроме того, использование виртуальной организации памяти способствует повышению взаимозаменяемости программ между вычислительными системами.
Реально существующую основную память называют физической, а ее адреса – физическими, логическую память – виртуальной, а ее адреса – виртуальными (логическими). Соответствие между физическими и виртуальными адресами устанавливается совместно аппаратными средствами ЭВМ и ее операционной системой. Обычно виртуальное адресное пространство размещается во внешней памяти, например на магнитных дисках. Часть этого пространства, необходимая для выполнения программ в данный момент, копируется из основной памяти.
Для реализации виртуальной памяти необходимо разделить все адресное пространство памяти на части и организовать соответствующий обмен между основной и внешней памятью. При этом память разбивается на страницы и сегменты.
Разбиение на страницы
При разбиении на страницы виртуальное и реальное адресные пространства делятся на части фиксированной длины, называемые страницами. Адрес каждой страницы виртуального пространства ставится в соответствие адресу страницы физического адресного пространства. Взаимосвязь между адресами обоих типов устанавливается таблицей преобразования адресов (таблицей страниц).Перенос страницы виртуального пространства в основную память называется загрузкой страницы (подкачкой страницы в оперативную память), а обратное действие—удалением страницы (откачкой страницы из оперативной памяти).
Сегментация
Сегментацией называется разделение адресного пространства памяти на части (сегменты) по логическим признакам, устанавливаемым программистом. Обычно сегмент соответствует программе или подпрограмме и в отличие от страницы имеет переменную длину. Виртуальный адрес состоит в этом случае из номера сегмента и относительного адреса в пределах сегмента; он преобразуется в физический адрес по таблице сегментов. Поскольку в каждом сегменте адресное пространство является линейным, виртуальное адресное пространство в целом оказывается двумерным. С учетом того что сегмент является логической единицей, можно организовывать защиту информации и управление для коллективного использования сегментированной информации.
Многоуровневая страничная организация
Расширение виртуального пространства влечет за собой увеличение таблицы страниц. Одним из способов устранения этого неудобства служит многоуровневое разбиение на страницы. Суть этого разбиения состоит в том, что одномерное виртуальное пространство подразделяется на два уровня — сегментов и страниц, а преобразование виртуального адреса производится по двухуровневой таблице. Это дает возможность обойтись без ведения таблицы неиспользуемых страниц и, следовательно, экономит объем памяти, выделяемый для таблицы страниц. Сегмент в этом случае не является полностью двумерным пространством, но при необходимости в процессе использования его можно сделать двумерным.
Мультиплексное виртуальное пространство
Мультипрограммирование ориентировано на параллельную обработку нескольких задач и реализуется посредством системы виртуальной памяти следующими двумя методами. Первый метод основан на разделении виртуального пространства между несколькими задачами. По второму методу для каждой задачи создается отдельное виртуальное пространство адресов. Такая память называется мультиплексной виртуальной памятью.
Рис.5.8. Реализация страничной организации.
Для управления мультиплексным виртуальным адресным пространством организуется несколько таблиц преобразования адресов, которые переключаются при переходе от задачи к задаче. Для этого в один из регистров устройства управления процессора вводится указатель, по которому выбирается соответствующая таблица преобразования адресов. Преимущество этой системы заключается в том, что пространство памяти, используемое каждой задачей, полностью заполняет рамки виртуального пространства. Одновременно обеспечивается высокоэффективная защита памяти, так как никакая задача не может сформировать адрес, относящийся к другой задаче.
Для реализации виртуальной адресации применяются следующие средства.
Механизм динамического преобразования адресов
Обращение к таблице преобразования адресов при преобразовании виртуального адреса в реальный занимает относительно много времени. Для ускорения этой процедуры на основе использования аппаратных средств разработан так называемый механизм динамического преобразования адресов.
Смысл этого механизма состоит в том, что в ассоциативной памяти заранее записываются номера наиболее часто используемых в данное время страниц и номера блоков, соответствующих этим страницам в основной памяти; в ходе преобразования адресов прежде всего проверяется эта ассоциативная память, и если в ней обнаруживаются сведения о необходимых страницах, эти сведения могут быть сразу же использованы, т. е. сокращается длительность процедуры преобразования адресов.
Рис.5.9. Механизм виртуального преобразования адресов.
Подобный буфер для высокоскоростного преобразования адресов называется буфером динамической трансляции адресов виртуальной памяти.
Процедура замены страниц
Когда требуемая страница в основной памяти отсутствует, она переписывается в нее из внешней памяти. Если же в основной памяти не оказывается свободного блока для загрузки страницы, то необходимо удалить какую-либо из страниц, находящихся в ней. Связанные с этим действия называются заменой страниц.
Известны следующие стратегии замены страниц.
1. Стратегия FIFO, в соответствии с которой из основной памяти удаляются страницы, раньше других занесенные в нее.
2 Стратегия LRU, при использовании которой удаляется та страница, обращение к которой имело место раньше, чем к другим.
3 Стратегия WS (Working Set—рабочее множество), в соответствии с которой удаляются страницы, не содержащиеся в так называемом рабочем множестве, т. е. наборе страниц, к которым за определенный истекший интервал времени зафиксировано обращение.
Две из этих стратегий замены страниц—LRU и WS—основаны на предположении, что страницы, использовавшиеся в последний период, будут часто использоваться и впредь. По сравнению с ними реализация стратегии FIFO проще, но эффективность ее относительно ниже. На практике обычно используются стратегии LRU и WS, а также их сочетание и модификации.
5.4.2. Управление распределением основной памяти
Одна из проблем параллельной обработки состоит в том, каким образом распределить блоки основной памяти между всеми программами, участвующими в этой обработке. В общем случае, чем больше объем распределяемой основной памяти, тем реже приходится производить ее перераспределение. Для повышения эффективности выполнения каждой из параллельно обрабатываемых программ необходимо обеспечить их определенным объемом основной памяти. При чрезмерном увеличении уровня мультиплексирования программ уменьшается объем памяти, отводимой каждой из них, повышается частота обмена страниц, что приводит к резкому снижению эффективности всей системы мультипрограммной обработки. Возникает так называемое дробление памяти. Для устранения этого явления управление заменой страниц осуществляется с учетом обеспечения наибольшей эффективности использования центрального процессора. Хотя реализация этого управления занимает время, ситуация в целом улучшается благодаря своевременному сокращению степени мультиплексирования.
5.4.3. Виртуальное представление
Метод виртуального представления может быть распространен не только на виртуальную память вычислительной системы, но и на системы ввода-вывода и архитектуру самих ЭВМ. Обобщая, можно сказать, что виртуальное представление используется, когда в процессе логического анализа каких-либо объектов не принимаются во внимание технические особенности их построения.
Виртуальный ввод-вывод и процедура виртуального обращения
Метод организации ввода-вывода, в соответствии, с которым часть адресного пространства основной памяти используется для обращений к устройствам ввода-вывода, называется виртуальным. В такой системе благодаря использованию единого механизма виртуальной памяти возможен обмен информацией между основной памятью и внешней памятью без выполнения специальных операций ввода-вывода.
Виртуальная ЭВМ
Виртуальной машиной принято называть воображаемую вычислительную машину, функционирующую на основе реальной системы, которая состоит из процессора, основной памяти, устройств ввода-вывода и снабжена операционной системой. Имитация вариантов организации виртуальных машин производится путем перераспределения ресурсов реальной ЭВМ с помощью программы управления виртуальными ЭВМ. Подобное моделирование позволяет реализовать различные варианты построения операционных систем и является удобным инструментом их разработки и отладки; кроме того, концепция виртуальности является эффективным средством достижения взаимозаменяемости ЭВМ.
Виртуальные периферийные устройства
Обычно вычислительная система содержит множество периферийных устройств и терминалов, которые различаются по назначению и способам управления. Совместное управление всеми этими устройствами представляет определенные сложности, попытки преодоления которых привели к созданию концепции виртуальной системы ввода-вывода; в такой системе последовательность действий по управлению вводом-выводом абстрагирована и унифицирована по отношению к особенностям конкретных устройств. Устройства ввода-вывода с таким управлением называются виртуальными.
В настоящее время виртуальные устройства разрабатываются, как технические средства сетей ЭВМ, хотя концепция виртуальных устройств может быть продуктивной и применительно к отдельной ЭВМ.
Одноуровневая память
Виртуальная память—это метод расширения адресного пространства основной памяти за счет ее совместного использования с внешней памятью. Следующий шаг—расширение пространства основной памяти путем представления внешней памяти как файла основной и слияния ее тем самым с основной памятью, т. е. организация так называемой одноуровневой памяти. Для управления файлами при их вводе в общее адресное пространство с программами необходимо, чтобы прежде всего размер этого пространства был достаточно большим и имелась возможность прямого обращения к файлам как к некоторым логическим объектам. В этих целях эффективна система сегментации и разбиения на страницы, снабженная справочным механизмом, которая обеспечивает системный контроль множества логических объектов и присвоение имен этим объектам.
5.5. Современные способы согласования скорости памяти и процессора
Кроме кэш памяти разработан еще ряд приемов, направленных на согласование скоростей памяти и процессора. Большинство этих приемов уменьшают время выборки из памяти за счет изменения в ее архитектуре, так как физический принцип работы основной памяти (DRAM) изменить очень трудно.
Организация пакетной выборки.
Пакетный режим (burst) в персональных компьютерах реализован, начиная с Intel486. Он предусматривает, что вместе с запрашиваемым словом, считывается еще три. Таким образом, происходит экономия времени на выставление адреса. Данный режим основан на том предположении, что из памяти чаще считываются массивы, или хотя бы последовательности слов, а не отдельные слова.
Настройки Setup позволяют изменять параметры пакетного режима, которые представляются в виде таблицы. Так для Intel 486 это 6-3-3-3, для Pentium 3-2-2-2, для кэша 2-1-1-1, т.е. одно слово в кэше считывается за 2 такта, остальные за один такт.
Увеличение времени удержания на выходе
В память EDO (extended Data Out) добавлены регистры защелки, поэтому данные удерживаются на выходе даже в течение следующего запроса к микросхеме памяти. Производительность памяти EDO на 20-25%выше, чем у обычной памяти. Долгое время EDO была стандартом для системных плат.
Двухпортовость.
Специально для видеоадаптеров была разработана память VRAM. Поскольку в видеоадаптерах направление потока данных всегда происходит только на чтение (для вывода на экран), такая архитектура позволяет резко поднять производительность. У VRAM две шины данных, одна обычная, а другая, направленная на вывод. Такая память требует специального контроллера, который вместе с ней и поставляется.
WRAM (Windows RAM) подобен VRAM, и тоже является двухпортовой памятью. Ее два порта обеспечивают осуществление одновременного ввода и вывода информации. Пока графические данные передаются и размещаются в буфере экрана, изображение на экране продолжает обновляться за счет графической информации, поступающей из того же буфера экрана и в то же время. Эта память поддерживает также двойную буферизацию. К сожалению, этот тип памяти поддерживает ограниченное число производителей.
Многобанковость.
Многобанковая (Multibank) DRAM или MDRAM, организована в виде большого массива независимых банков памяти с высокой пропускной способностью. Банки памяти MDRAM организованы вокруг внутренней высокоскоростной общей шины внутри чипа памяти. Чрезвычайно большой объем данных может передаваться по этой шине. Каждый банк памяти вдоль шины также способен обрабатывать большой объем данных. Главная выгода от использования MDRAM, это возможность получить пиковую пропускную способность в 800 Мбит/с. В чистом виде многобанковая память поддерживалась только компанией Ati Tech, но идея многобанковости употребляется в различных других видах памяти.
Введение в память простейших устройств обработки.
Память 3DRAM имеет встроенные вычислительные средства. Она оптимизирована под выполнение трехмерных операций. Кроме того 3DRAM имеет двухпортовую архитектуру и встроенную развитую логику, которая обеспечивает параллелизм операций.
Синхронизация.
Синхронная оперативная память (SDRAM) - это первая технология оперативной памяти со случайным доступом (DRAM) разработанная для синхронизации работы памяти с тактами работы центрального процессора с внешней шиной данных. SDRAM основана на основе стандартной DRAM и работает почти также, как стандартная DRAM, но она имеет несколько отличительных характеристик, которые и делают ее более прогрессивной:
SDRAM, в отличие от стандартной и асинхронной DRAM, имеет таймер ввода данных. Таким образом системный таймер, который пошагово контролирует деятельность микропроцессора, может также управлять работой SDRAM. Это означает, что контроллер памяти знает точный цикл таймера, на котором запрошенные данные будут обработаны. В результате, это освобождает процессор от необходимости находиться в состоянии ожидания между моментами доступа к памяти.
Банки ячеек - это ячейки памяти внутри чипа SDRAM, которые разделяются на два, независимых банка ячеек. Поскольку оба банка могут быть задействованы одновременно, непрерывный поток данных может обеспечиваться простым переключением между банками. Этот метод называется чередованием, и он позволяет снизить общее количество циклов обращения к памяти и увеличить, в результате, скорость передачи данных. пакетный режим ускорения - это техника быстрой передачи данных, при которой автоматически генерируется блок данных (серия последовательных адресов), в каждый момент, когда процессор запрашивает один адрес. При этом он исходит из предположения о том, что адрес следующих данных, которые будут запрошенных процессором, будет следующим, по отношению к предыдущему запрошенному адресу, который обычно истинный (это такое же предсказание, которое используется в алгоритме работы кэш-памяти). Пакетный режим может применятся как при операциях чтения (из памяти), так и при операциях записи (в память).
Даже при том, что SDRAM основана на стандартной DRAM архитектуре, комбинация указанных выше трех характеристик позволяет получит более быстрый и более эффективный процесс передачи данных. SDRAM уже может передавать данные со скоростью вплоть до 100MHz, что почти в четыре раза быстрее работы стандартной DRAM. Это ставит SDRAM в один ряд с более дорогой SRAM (статическое ОЗУ) используемой в качестве внешней кэш-памяти.
Первоначально, SDRAM была предложена в качестве более дешевой по стоимщсти альтернативы для дорогой видеопамяти VRAM (Video RAM), используемой в графических подсистемах. Тем не менее, она быстро получила применение во многих приложения и стала кандидатом номер один на роль основной памяти для следующих поколений PC.
SDRAM производится на основе стандартной DRAM и работает также, как стандартная DRAM - осуществляя доступ с строкам и колонкам ячеек данных. Только SDRAM объединяет свои специфичные свойства синхронного функционирования банков ячеек, и пакетной работы, для эффективного устранения состояний задержек-ожидания. Когда процессору необходимо получить данные из оперативной памяти, он может получить их в требуемый момент. Таким образом, фактическое время обработки данных непосредственно не изменилось, в отличии от увеличения эффективности выборки и передачи данных. Существует ряд разновидностей SDRAM.
Synchronous DRAM II, или DDR (Double Data Rate - удвоенная скорость передачи данных) - следующее поколение существующей SDRAM. DDR основана на тех же самых принципах, что и SDRAM, однако включает некоторые усовершенствования, позволяющие еще увеличить быстродействие. Основные отличия от стандартного SDRAM: во-первых используется более "продвинутая" синхронизация, отсуттствующая в SDRAM; а во-вторых DDR использует DLL (delay-locked loop - цикл с фиксированной задержкой) для выдачи сигнала DataStrobe, означающего доступность данных на выходных контактах. Используя один сигнал DataStrobe на каждые 16 выводов, контроллер может осуществлять доступ к данным более точно и синхронизировать входящие данные, поступающие из разных модулей, находящихся в одном банке. DDR фактически увеличивает скорость доступа вдвое, по сравнению с SDRAM, используя при этом ту же частоту. В результате, DDR позволяет читать данные по восходящему и падающему уровню таймера, выполняя два доступа за время одного обращения стандартной SDRAM. Дополнительно, DDR может работать на большей частоте благодаря замене сигналов TTL/LVTTL на SSTL3. DDR начнет производиться в 1998 году.
SLDRAM, продукт DRAM-консорциума, является ближайшим конкурентом Rambus. Этот консорциум объединяет двенадцать производителей DRAM. SLDRAM продолжает дальнейшее развитие технологии SDRAM, расширяя четырехбанковую архитектуру модуля до шестнадцати банков. Кроме того, добавляется новый интерфейс и управляющая логика, позволяя использовать пакетный протокол для адресации ячеек памяти. SLDRAM передает данные так же как и RDRAM, по каждому такту системного таймера.
Совмещение статической и динамической памяти на одном кристалле
В обычную динамическую память встраивается небольшой участок статической памяти, т.е. микросхема имеет внутренний кэш. Память типа CDRAM (Cached DRAM – кэшированная память) состоит из 4 или 16 Мбит DRAM и 16 Кбит SRAM. CDRAM используется в качестве текстурной памяти. При размещени элементов тектур в кэше минимизируется время случайного чтения текселов и обеспечивается прирост производительности до 800 Мб/с.
Изменение архитектуры шины.
На данный момент существует только один способ повышения пропускной способности любой подсистемы - это увеличение либо частоты коммутации шины, либо ее "ширины" (разрядности). Совместное увеличение этих параметров довольно проблематично и имеет быстрое "насыщение", поскольку влияние электромагнитной интерференции (ЭМИ) и эмиссий в этом случае возрастает нелинейно. Это обстоятельство вынуждает разработчиков идти на компромисс. В противовес технологии SDRAM, где используется 64bit магистраль и частоты до 133 MГц, современная технология RDRAM (Rambus) предоставляет 16bit шину данных и результирующую частоту до 800 МГц соответственно. Узкая шина и колоссальная частота значительно повышают эффективность использования памяти и загрузку, максимально освобождая протокол от временных задержек. Итак, детально рассмотрим технологию RDRAM.
Существует три разновидности памяти RDRAM (Rambus DRAM), представляющие собой некую эволюцию развития технологии: Base, Concurrent и Direct (таблица 5.1.). Отличие первого и второго совсем небольшие, а вот изменения последнего просто революционны. Причем, технологии Base и Concurrent настолько сильно переплетаются, что, в принципе, это одно и тоже.
Таблица 5.1.
Основные типы технологии RDRAM
Параметр
Base RDRAM
Concurrent RDRAM
Direct RDRAM
Частота синхронизации
250-300 MГц
300-350 MГц
400 MГц
Результирующая частота (с учетом DDR)
500-600 MГц
600-700 MГц
800 MГц
Пиковая пропускная способность
500-600 Mбайт/с
600-700 Mбайт/с
1.6 Гбайт/с
Шина данных (базовая/ECC)
8/9 бит
8/9 бит
16/18 бит
Загрузка 32bit протокола
60%
80%
97-100 %
Технология Direct Rambus разработана компанией Rambus и представляет собой высокоскоростную замкнутую систему которая имеет свою адаптированную логику управления и точно рассчитанные параметры. Direct Rambus позволяет достичь очень больших скоростей передачи данных: до 1.6 Гбайт/с на один канал и до 6.4 Гбайт/с при четырех каналах. Вся подсистема состоит из следующих компонентов: основной контроллер (RMC - Rambus Memory Controller), канал (RC - Rambus Channel), разъем для модулей (RRC - Rambus RIMM Connector), модуль памяти (RIMM - Rambus In-line Memory Module), генератор дифференциальных импульсов (DRCG - Direct Rambus Clock Generator) и сами микросхемы памяти (RDRAM - Rambus DRAM). Физические, электрические и логические принципы и согласования, применяемые в системе, определены компанией Rambus и должны строго выполняться всеми производителями для соблюдения абсолютной совместимости ее частей, так она функционирует на очень большой частоте 600/711/800 МГц, синхронизируясь сигналом 300/350/400 MГц соответственно.
Суммируя вышесказанное, можно выделить общие свойства памяти Rambus:
1. Общается с контроллером по мультиплексированной 800-мегагерцовой шине, что резко снижает необходимое число контактов и энергопотребление интерфейсных схем
2. Использует полностью параллельное соединение разъемов под модули SIMM, что гарантирует временное согласование сигналов, сколько бы модулей не было вставлено. Отсюда - возможность работы на 800 Мгц.
3.Адресует модули независимо, что резко увеличивает число независимых банков памяти, а значит, позволяет выполнять частично перекрывающиеся во времени обращения чаще.
4.Позволяет делать конвейерные выборки из памяти, причем передача адреса может выполняться одновременно с передачей данных. Отсюда - возможность сильного перекрытия запросов к памяти во времени. Контроллер может передать в память до 4-х запросов (причем возможно перемежать считывание и запись), которые будут выполнены последовательно.
Итого, на практике контроллер может выжать из шины памяти 95% ее максимальной теоретической производительности, которая равна 1.6 гигабайта в секунду (800мгц, два байта за такт). Правда, на сегодня пиковая производительность реальных схем - 600 мегабайт в секунду, но это уже очень хорошо. А запас в гигабайт в секунду карман не тянет.
Переход на другие физические способы хранения информации.
В качестве альтернативы статической и динамической энергозависимой памяти предлагаются различные варианты носителей информации. Одним из них является FERAM – энергонезависимый тип памяти, аналогичный Flash памяти. Пока чипы такой памяти имеют маленькую емкость, не более 1 Мбит.
Делаются попытки создать чипы памяти по магнитному принципу, голографическую и молекулярную память
Широкие перспективы в этом плане открывает технология оптической записи, известная как голография: она позволяет обеспечить очень высокую плотность записи при сохранении максимальной скорости доступа к данным. Это достигается за счет того, что голографический образ (голограмма) кодируется в один большой блок данных, который записывается всего за одно обращение. А когда происходит чтение, этот блок целиком извлекается из памяти. Для чтения или записи блоков голографически хранимых на светочувствительном материале (за основной материал принят ниобат лития, LiNbO3) данных ("страниц") используются лазеры. Теоретически, тысячи таких цифровых страниц, каждая из которых содержит до миллиона бит, можно поместить в устройство размером с кусочек сахара. Причем теоретически ожидается плотность данных в 1TБ на кубический сантиметр (TB/sm3). Практически же исследователи ожидают достижения плотности порядка 10GB/sm3, что тоже весьма впечатляет, если сравнивать с используемым сегодня магнитным способом - порядка нескольких MB/sm2 - это без учета самого механизма устройства. При такой плотности записи оптический слой, имеющий толщину около 1cm, позволит хранить около 1ТВ данных. А если учесть, что такая запоминающая система не имеет движущихся частей, и доступ к страницам данных осуществляется параллельно, можно ожидать, что устройство будет характеризоваться плотностью в 1GB/sm3 и даже выше.
Другой радикально иной подход в создании устройств хранения данных - молекулярный. Группа исследователей центра "W.M. Keck Center for Molecular Electronic" уже относительно давно получила прототип подсистемы памяти, использующей для запоминания цифровые биты молекулы. Это - молекулы протеина, который называется бактериородопсин (bacteriorhodopsin). Он имеет пурпурный цвет, поглощает свет и присутствует в мембране микроорганизма, называемого halobacterium halobium. По оценкам исследователей данные, записанные на бактериородопсинном запоминающем устройстве, должны сохраняться приблизительно пять лет. Другой важной особенностью бактериородопсина является то, что эти два состояния имеют заметно отличающиеся спектры поглощения. Это позволяет легко определить текущее состояние молекулы с помощью лазера, настроенного на соответствующую частоту.
Был построен прототип системы памяти, в котором бактсриородопсин запоминает данные в трехмерной матрице. Такая матрица представляет собой кювету (прозрачный сосуд), заполненную полиакридным гелем, в который помещен протеин. Кювета имеет продолговатую форму размером 1x1x2 дюйма. Протеин, который находится в bR-состоянии, фиксируется в пространстве при полимеризации геля. Кювету окружают батарея лазеров и детекторная матрица, построенная на базе прибора, использующего принцип зарядовой инжекции (CID - Charge Injection Device), которые служат для записи и чтения данных.
6. Основы вввода/вывода в ЭВМ
6.1. Архитектура ввода-вывода
Ввод данных в ЭВМ обычно производится с гораздо меньшей скоростью, чем выполняемая обработка информации, и асинхронно с ее работой. Устройства вывода действуют со значительно меньшей скоростью, чем ЭВМ. Архитектура ввода-вывода должна обеспечивать обмен информацией между ЭВМ и устройствами ввода-вывода без снижения производительности машины.
На рис. 6.1. представлены основные виды архитектуры систем ввода-вывода. На рис. 6.1, а) показан вариант архитектуры, в котором обмен данными с устройствами ввода-вывода выполняется процессорным устройством ЭВМ. В системе, показанной на рис. 6.1,6), обмен данными, подлежащими вводу в процессорное устройство или выводу из него, происходит между этим устройством и памятью, а последняя связана с устройствами ввода-вывода через канал или процессор ввода-вывода. При любой форме взаимодействия с ЭВМ аппаратура ввода-вывода обычно состоит из собственно устройства ввода-вывода и устройства управления этой аппаратурой. Интерфейс между устройством управления и каналом ввода-вывода называется шинным интерфейсом, а интерфейс между устройством управления и аппаратурой ввода-вывода — интерфейсом ввода-вывода. Шинный интерфейс, как правило, является общим для всех видов устройств ввода-вывода, а интерфейсы ввода-вывода специализированы для конкретных видов устройств ввода-вывода.
Шинный интерфейс
Интерфейс ввода-вывода
Рис.6.1. Архитектура ввода-вывода
а) система непосредственного ввода-вывода; б) система канального ввода-вывода.
Обычно при вводе-выводе принципиально необходимы действия, связанные с синхронизацией обмена данными ввода-вывода и распределением отводимых для них зон памяти. В структуре, показанной на рис. 6.1, а), такие действия приходится выполнять процессору ЭВМ, а в структуре на рис. 6.1,6) их выполнение возложено на канал ввода-вывода. Ввод-вывод инициируется, когда в каком-либо из пользовательских процессов, обслуживаемых ЭВМ, имеется указание на определенное устройство ввода-вывода. В зависимости от количества одновременно обслуживаемых процессов различаются устройства ввода-вывода индивидуального и коллективного пользования. Индивидуальное устройство обслуживает в данный момент только один процесс; устройство коллективного пользования работает одновременно с несколькими процессами. Печатающее устройство (принтер), магнитная лента и др. приводятся в действие только для одного процесса. Накопитель на магнитных дисках, устройство многоканальной связи и некоторые другие устройства могут обслуживать одновременно несколько процессов.
Процесс пользователя формирует указания относительно данных, подлежащих вводу или выводу, их форматы, заносит эти данные в память и дает распоряжение на ввод-вывод, сообщая при этом адрес памяти и указывая необходимое устройство ввода-вывода. Процедура из этих операций представлена на рис. 6.2. Операционная система определяет состояние устройств ввода-вывода, переводит символьные имена указанных процессом устройств ввода-вывода в их физические адреса, устанавливает последовательность ввода-вывода, распределяет каналы передачи данных между процессами, необходимые для ввода-вывода. Для устройств ввода-вывода коллективного пользования, таких, например, как накопители на магнитных дисках, уже формирование физического названия устройства ввода-вывода представляет собой сложную процедуру. После этих подготовительных операций осуществляется собственно ввод-вывод, в процессе которого производится синхронизация передачи данных и обеспечивается определенная физическая форма этих данных.
Подготовка
Формирование данных, их форматирование Указание адреса данных, устройств ввода-вывода
Распределение
Физическое представление символьного названия Назначение линии передачи
Выполнение
Обеспечение синхронизации, формы выдачи Передача данных
Рис. 6.2. Процедура ввода-вывода.
Из всех операций, перечисленных на рис. 6.2, операции, относящиеся к подготовке ввода-вывода, распределению памяти и каналов, выполняются процессором, а действия, связанные с вводом-выводом — каналом и устройствами ввода-вывода. Распределение функций, относящихся к процессу ввода-вывода, между процессором, каналом, устройством управления и исполнительным устройством ввода-вывода претерпевало сложные изменения в зависимости от характеристик этих устройств и текущего уровня техники.
6.2. Устройства ввода-вывода различных типов
Информация может поступать в ЭВМ в виде символов, знаков, рисунков, изображений, соответствующих зрительной информации человека и имеющих двумерную структуру. Кроме того, в ЭВМ могут поступать сигналы от контрольно-измерительного оборудования, звуковые сигналы и другие виды информации, которые имеют одномерную структуру, изменяющуюся со временем.
Устройства ввода символов и знаков
Устройство ввода символов обычно представляет собой клавиатуру, подобную клавиатуре пишущей машинки. Клавиши на клавиатуре располагаются в двумерном порядке. Число клавиш может быть минимальным — в пределах десяти цифр и двух специальных знаков * и #. В стандартной или так называемой полной клавиатуре имеется 48 клавиш для символов и 10 клавиш для управления. К ним могут быть добавлены клавиши цифр и арифметических операций. С клавиатуры выдается координатная информация. Эта информация преобразуется в коды символов, соответствующих клавишам, с помощью генератора кодов, реализуемого аппаратными или программными средствами.
Устройство, предназначенное для ввода только алфавитных символов, обычно работает по двухрегистровому принципу. Для клавиатуры графических символов или мозаичных рисунков требуется дополнительный регистр.
Наличие блокировки клавиш переключения регистров при их случайном нажатии делает пользование клавиатурой более удобным. В ЭВМ чаще всего используются прописные буквы, поэтому для прописных и строчных букв предусматриваются соответствующие состояния блокировки; при снятии блокировки прописные и строчные буквы могут выбираться произвольно путем переключения регистров.
Средства указания положения вводимой информации
Для ввода линий рисунков, графиков и ручных надписей, а также для указания размещения знаков и исходных точек индикации изображения на экране необходимы так называемые указания положения.
Указание положения обычно производится при наличии устройства индикации, помогающего следить за работой устройства ввода путем наблюдения вводимой информации на экране индикатора. Имеются два типа устройств указания положения: для задания абсолютного положения вводимой информации в соответствии с изображением на экране дисплея и для задания относительного смещения от положения некоторой точки отсчета, индицируемой на экране в данный момент.
В знаковых устройствах ввода указание положения можно выполнять с помощью индицируемого на экране курсора, перемещая его вверх-вниз и влево-вправо с шагом, равным однобуквенному интервалу. Для управления курсором часто используется джойстик, представляющий собой рукоятку с нижней точкой опоры; изменяя наклон рукоятки, можно задавать перемещение точки индикации на экране. При этом могут быть использованы два способа перемещения этой точки: с постоянной скоростью в направлении, заданном рукояткой, независимо от степени ее наклона и с переменной скоростью, определяемой углом наклона рукоятки джойстика.
Приспособление типа «мышь» также является устройством указания относительного положения вводимой информации. При перемещении по столу «мышь» с помощью механических или оптических средств выясняет направление своего перемещения и тем самым задает направление перемещения индицируемой точки, или курсора, на экране дисплея.
6.3. Управление вводом-выводом
6.3.1. Системы управления вводом-выводом
Как видно из структур, приведенных на рис. 6.1, ввод и вывод данных осуществляются путем обмена данными между основной памятью ЭВМ и устройствами ввода-вывода. Данные, находящиеся в основной памяти, подаются на устройства вывода, а от устройств ввода данные поступают для занесения в основную память. Для управления этим обменом необходимо обеспечить выполнение следующих функций.
1. Управление адресацией всех данных, подлежащих вводу и выводу, обновление адресов при передаче каждого байта или слова.
2. Преодоление асинхронности в работе устройств ввода-вывода и основной памяти, выполнение считывания и записи данных в основном ЗУ с учетом сравнительно низкой скорости работы устройств ввода-вывода.
3. Управление работой устройств ввода-вывода. Необходимо осуществлять не только передачу данных, но и ряд таких операций, как перевод строки в дисплее, перемотка МЛ, перемещение магнитной головки над МД и т. д. Информация для реализации всех этих управляющих действий обычно формируется заранее в основной памяти еще до начала ввода-вывода и передается на устройство ввода-вывода. В соответствии с этой информацией и осуществляется управление работой устройства.
4. Преобразование информации, передаваемой по шинам. Обычно основная память связана с внутренней шиной ЭВМ, а связь с устройством ввода-вывода может осуществляться по-разному в зависимости от специфики этого устройства. Поэтому необходим интерфейс, обеспечивающий согласование шин. При передаче информации между внутренней шиной ЭВМ и общей системной шиной должно осуществляться ее преобразование. Устройства ввода-вывода могут быть связаны со стандартной системной шиной. Преобразование при передаче информации по шинам между основной памятью и устройствами ввода-вывода должно осуществляться постоянно.
В простейшем случае перечисленные выше функции выполняет центральный процессор. При реализации этих функций за пределами центрального процессора используются различные канальные устройства.
Таким образом, характеристики системы управления вводом - выводом определяются требованиями к эффективности управления упомянутыми действиями и степенью их распределения между центральным процессором и специализированными процессорами ввода-вывода.
6.3.2. Понятие о прямом доступе к памяти
Рис. 6.3. иллюстрирует принципы обеспечения взаимодействия основной памяти и устройств ввода-вывода с помощью контроллера прямого доступа к памяти (ПДП). Центральный процессор связан с основной памятью и схемой управления вводом-выводом посредством адресной шины, шины данных и шины управления. Обменом данными между основной памятью и схемой управления вводом-выводом может управлять центральный процессор, но вместо процессора эту функцию может выполнять контроллер прямого доступа к памяти. В контроллере имеется адресный регистр и регистр-счетчик. Внутренняя структура контроллера ПДП представлена на рис. 6.4..
Рис.6.3. Схема организации прямого доступа в память.
Основное назначение контроллера ПДП состоит в том, чтобы передавать данные от схемы управления вводом-выводом в память по адресу, указанному в адресном регистре контроллера, или пересылать их в обратном направлении. Эти операции включают следующие действия.
1. Схема управления вводом-выводом выдает на контроллер ПДП сигнал запроса DRQ.
2. Контроллер ПДП выдает запрос на захват шин HRQ в центральный процессор.
3. Центральный процессор по принятии запроса HRQ отвечает на него сигналом HLDA, приводя в состояние высокого импеданса свои схемы связи с адресной шиной и шиной данных. Тем самым контроллеру ПДП предоставляется право управления шинами.
4. На запрашивающее устройство ввода-вывода возвращается сигнал DACK, и схема управления вводом-выводом приводится в действие.
5. Контроллер ПДП генерирует адреса и сигналы управления вводом-выводом (MEMR — Memory Read, IOR — Input/Output Read, MEMW — Memory Write, IOW — Input/O utputWrite), после чего между схемой управления вводом-выводом и памятью происходит обмен данными.
6. По завершении передачи данных сигналы DACK и HRQ сбрасываются, и тем самым центральный процессор извещается об освобождении шин.
7. По завершении передачи данных содержимое адресного регистра контроллера увеличивается на единицу, а содержимое регистра-счетчика уменьшается на единицу.
Описанные действия повторяются каждый раз, когда схема управления вводом-выводом выдает сигнал DRQ и, заняв у центрального процессора один машинный цикл управления шинами, выполняет операции ввода-вывода.
Для управления этими операциями центральный процессор заносит информацию в адресный регистр, регистр-счетчик и регистр режима контроллера ПДП. На адресный регистр подается начальный адрес передачи данных при прямом доступе к памяти, а на регистр-счетчик—число передаваемых байтов. Регистр режима указывает направление передачи данных (считывание или запись). Сообщая все эти сведения, центральный процессор обращается к контроллеру ПДП как к схеме управления вводом-выводом. Запись этой информации в регистры производится через буферы данных и адреса.
Рис.6.4. Структура контроллера ПДП.
После выполнения контроллером ПДП передачи данных в объеме, указанном в регистре-счетчике, в регистре состояния формируются сведения о завершении работы контроллера ПДП. Поскольку регистр состояний также входит в число узлов контроллера, к которым может обращаться центральный процессор, последний может получить информацию об окончании работы контроллера ПДП путем опроса регистра состояния.
Для непосредственного извещения центрального процессора о завершении ввода-вывода данных необходимо соответствующим образом установить сигнал на специальной линии внешнего извещения в момент, когда регистр-счетчик принимает нулевое значение; по этому сигналу приводится в действие схема прерывания центрального процессора.
6.4. Принципы организации системы прерываний.
Прерыванием называется реакция вычислительной системы на некоторый запрос и выполнение специальной программы, предназначенной для обработки данного запроса. Каждое событие, требующее прерывания, сопровождается специальным сигналом – «запрос на прерывание». Эти запросы могут формироваться как внутри самой машины, так и во внешней по отношению к вычислительной системе среде.
Запросы прерываний могут формироваться следующими параллельными во времени процессами:
1. Выполнение самой программы;
2. Контроль правильности функционирования ЭВМ;
3. Процессы I/O;
4. Взаимодействие с внешними объектами.
Система прерываний в ЭВМ выполняет в общем случае следующие функции:
1. Приоритетный выбор запроса на обслуживание;
2.Запоминание вектора состояния процессора и осуществление перехода к прерывающей программе;
3. Восстановление состояния прерванной программы и возврат к ее продолжению.
Под системой прерываний в ЭВМ понимается аппаратно-программный комплекс, выполняющий эти функции. Функция приоритетного выбора на обслуживание предполагает:
1. Определение одного из нескольких запросов, имеющий наивысший приоритет и обслуживание которых должно осуществляться в первую очередь;
2. Определение, имеет ли данный запрос право прерывать текущую программу.
Характеристики систем прерываний.
1. Общее число входов;
2. Время реакции, издержки прерывания;
3. Глубина прерывания;
4. Число уровней прерывания;
5. Дисциплина обслуживания.
Время реакции – это время между появлением запроса и началом выполнения прерывающей программы.
Время издержки прерывания tи = tз + tв, где tз – время запоминания прерываемой программы, tв – время восстановления прерываемой программы.
Глубина прерывания – это наименьшее число программ, которые могут прерывать друг друга. Обычно она совпадает с числом уровней приоритета. Система с большей глубиной прерываний обеспечивает большую реакционную способность вычислительной системы.
Число уровней (классов) прерывания – это совокупность запросов, трактующихся одним уровнем приоритета, или инициирующих одну и ту же обрабатывающую программу. Число уровней прерываний обычно совпадает с глубиной прерываний.
Дисциплина обслуживания: различают программные, аппаратные и векторные дисциплины обслуживания. При программной обычно циклически опрашиваются входы системы прерываний и приоритет запроса соответствует расположению этого запроса в регистре флагов (регистре признаков). Аппаратное прерывание не осуществляет циклического опроса, а основано на схемах жесткой логики. При векторном прерывании циклического опроса не происходит, используется либо регистр масок, либо специальные регистры типа дескрипторных, в которых хранится начальный адрес прерывающей программы.
В современных процессорах широко развит механизм динамического перераспределения приоритетов путем установления динамического порога прерываний, либо установления масок прерываний.
6.5. Понятие об интерфейсе ввода/вывода.
Центральный процессор и память образуют так называемое ядро вычислительной системы и ее характеристики (производительность и т.д.) зависят от характеристик ядра, способа взаимодействия ЦП с основной памятью и характеристик других периферийных устройств вычислительной системы.
В вычислительной технике все операции вывода информации из ядра называются операциями вывода, а операции приема информации в ядро – операциями ввода. Связь всех устройств ЭВМ между собой осуществляется с помощью специальных сопряжений, называемых интерфейсами.
Интерфейс – это совокупность линий, шин, сигналов, электрических схем и алгоритмов, предназначенных для обмена информации между устройствами.
Основные функции интерфейса:
1. Возможность построения вычислительной системы с переменным составом оборудования;
2. Обеспечение параллелизма работы ЦП и периферийных устройств (особенно важно для высокопроизводительных систем);
3. Обеспечение независимости программирования операций ввода/вывода и особенностей того или иного периферийного устройства;
4. Автоматическое распознавание и реакция ядра вычислительной системы на многообразие возникающих ситуаций в периферийных устройствах.
Эти функции реализуются благодаря следующим концепциям:
а) модульность построения ВС;
б) унификация (по форматам данных, форматам и набору команд и по управляющим линиям или шинам).
6.6. Системные шины современных ЭВМ (для ПК).
Системная шина – это внутренний интерфейс для взаимодействия устройств ядра ЭВМ и высокоскоростных периферийных устройств.
Разновидности общих шин ПК:
• XT;
• AT (ISA) – Inductrial Standart Architecture;
• EISA – Enhanced ISA;
• MCA – Microchannel Architecture (IBM).
Локальные шины:
• VLB (VESA Local Bus);
• PCI
• AGP.
Шина XT: 8-разрядная шина по данным, адресация 1 Мб, 4 IRQ, 4 DMA, рабочая частота 4,77 МГц, пропускная способность 4,5 Мб/с.
Шина ISA применяется только на машинах с i286 и выше. Имеет 16 разрядов по данным, 24 разряда по адресу, 15 IRQ, 7 DMA, рабочая частота 8 МГц, предусматривает возможность работы на разных с процессором частотах, обеспечивает скорость 16 Мб/с.
Шина EISA: 32-разрядный обмен данными, 32 разряда по адресу, поддерживает многопроцессорную архитектуру, возможность автоматической конфигурации системы и плат расширения, расширена система прерываний и система DMA, пропускная способность 33 Мб/с, поддерживает оборудование ISA.
Локальные шины были разработаны для повышения производительности канала ядра вычислительной системы (процессор, память и высокоскоростные ПУ, графическая подсистема, винчестер, сетевой адаптер).
Шина VLB: разработана как продолжение удлинения системной шины процессора i486, поддерживает не больше трех подключенных устройств (как правило, это контроллер ЖД и видеоадаптер). VLB 1.0 – 32 разряда по данным, 32 разряда по адресу, работает на частоте процессора (если в нем нет удвоения, утроения частоты), обеспечивает пропускную способность до 132 Мб/с. VLB 2.0 – 64 разряда по данным, пропускная способность до 400 Мб/с (эта версия VLB так и не вышла).
Шина PCI: процессорно-независимая шина, позволяет подключать до 10 устройств, поддерживает блочную передачу данных, мультиплексирование (возмож-ность последовательной передачи данных по адресам). Наличие акселератора PCI позволяет одновременно производить чтение данных из памяти и передачу к устройствам ПК.
Пропускная способность:
PCI 1.0 (33 МГц) – 135 Мб/с (i486);
PCI 2.0 (33 МГц) – 200-300 Мб/с (Pentium);
PCI 2.1 (66 МГц) 32- и 64-разрядная – 500 Мб/с
Рис.6.5. Шинная организация персональной ЭВМ
PCI (Peripheral Component Interconnect bus) - шина для подсоединения периферийных устройств. Стала массово применяться для Pentium-систем, но используется и с 486 процессорами. Частота шины от 20 до 33 МГц, теоретически максимальная скорость 132/264 Мбайт/с для 32/64 бит. В современных материнских платах частота на шине PCI задается как 1/2 входной частоты процессора, т.е при частоте 66 MHz на PCI будет 33 MHz, при 75 MHz - 37.5 MHz.
Имеет версии с питанием 5V, 3.3V и универсальную (с переключением линий +VI/O c 5V на 3,3V). Ключами являются пропущенные ряды контактов 12, 13 и 50, 51. Для слота с питанием 5V ключ расположен на месте контактов 50, 51, для 3,3 В - 12, 13, а для универсального - два ключа: 12, 13 и 50,51. 32-битный слот заканчивается контактами А62/В62, 64-битный - А94/В94.
Слот PCI самодостаточен для подключения любого контроллера (VLB не работала без ISA), на системной плате может сосуществовать с любой из других шин ввода-вывода.
Шина PCI - первая шина в архитектуре IBM PC, которая не привязана к этой архитектуре. Она является процессорно-независимой и применяется, например, в компьютерах Macintosh.
В отличие от остальных шин, компоненты расположены на левой поверхности плат PCI-адаптеров. По этой причине крайний PCI-слот обычно разделяет использование посадочного места с соседним ISA-слотом (Shared slot).
Процессор через так называемые мосты (PCI Bridge) может быть подключен к нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между независимыми каналами PCI (возможно только в спецификации 2.1).
Автоконфигурирование устройств (выбор запросов прерывания, каналов DMA) поддерживается средствами BIOS материнской платы по образу и подобию стандарта Plug & Play. В настоящее время действует спецификация PCI 2.1.
Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода-вывода.
На PCI определены два основных вида устройств - инициатор (по ГОСТ - задатчик), т.е. устройство, получившее от арбитра шины разрешение на захват ее и устройство назначения, цель (target) с которым инициатор выполняет цикл обмена данными.
• Поддержка "горячей" замены PCI устройств, называемой в стандарте как PCI Hot-Plug. Ввод этой функции позволит добавлять/изымать PCI платы без выключения компьютера. Такая возможность особенно необходима для серверных платформ
• Система управления энергопотреблением для устройств на шине PCI. Позволяет управлять энергопотреблением как для внешних PCI плат так и для встроенных на материнской плате устройств. Механизм управления подстроен под стандарт ACPI для облегчения управления энергопотреблением PCI устройств со стороны операционной системы.
Как следует из названия, шины расширения (Expansion Bus) предназначены для подключения различных адаптеров периферийных устройств, расширяющих возможности компьютера. Интерфейсы шин расширения PC начали свою историю с 8-битной шины ISA. Ее открытость обеспечила появление широкого спектра плат расширений, позволяющих использовать PC в различных сферах, вплоть до применения в качестве управляющего компьютеров различных системах автоматизации. С появлением AT-286 шина была расширена, что позволило подключать большее количество адаптеров и повысить производительность обмена. Шина EISA явилась откликом на потребности в высокопроизводительном обмене для серверов. Эта довольно дорогая шина распространена не так широко, но она уже содержит прогрессивные идеи автоматизации конфигурирования (прототип системы PnP). В шину EISA можно устанавливать и ISA-адаптеры. Шина MCA, выдвинутая фирмой IBM как прогрессивная альтернатива ISA, не была поддержана производителями клонов PC, так как ее спецификация не была открытой. В результате она практически отмерла вместе с семейством компьютеров IBM PS/2. С появлением процессора 486 появилась потребность в резком повышении производительности системной шины и родилась локальная шина VLB. Однако она являлась дополнением к слоту ISA/EISA и использовалась в основном лишь для графических карт и дисковых контроллеров. Принципиальная привязка к шине процессора 486 не обеспечила ей долгого существования - пришла пора Pentium. С процессорами 486 появилась и другая скоростная шина - PCI. Она является новым "этажом" в архитектуре PC, к которому подключаются шины типа ISA/EISA. Воспринимаемая поначалу как некоторая экзотика, шина PCI укрепила свои позиции и сейчас является стандартной для компьютеров 4, 5 и 6 поколений. Более того, она используется и в компьютерах "не-PC" - Power PC и некоторых других мощных платформах. Развитием шины PCI, нацеленным на дальнейшее повышение производительности обмена явился порт AGP, специально предназначенный для подключения мощных графических адаптеров."
"X-Bus внутренняя шина системной платы, к которой подключены микросхемы ROM BIOS, контроллера клавиатуры, CMOS-памяти и таймера, контроллеры портов и гибких дисков и прочие 8-битные "мелочи" из состава аксессуаров PC.
Для "маленьких" компьютеров, поначалу имевших достаточно закрытую (нерасширяемую) архитектуру, потребность в подключении разнообразной периферии привела к появлению стандартизированной шины PCMCIA, впоследствии переименованной в PC Card."
В стандарт PCI были заложены так называемые мосты, выполняющие функции соединителей цифровых схем с различными характеристиками с синхронной шиной PCI, что позволяет объединить как синхронную, так и асинхронную передачу данных. Причем, эта шина не обладает выделенным направлением и соответственно «главным» соединителем, что позволяет на ее основе собирать многопроцессорные системы.
Главный мост (Host Bridge) используется для подключения PCI к системной шине (шине процессора или процессоров). Одноранговый мост (Pear-to-Pear Bridge) используется для соединения двух шин PCI. ... Каждый мост программируется - ему указываются диапазоны адресов пространств памяти и ввода/вывода, отведенные абонентам его шин. ...Совокупность мостов, расположенных вокруг шины PCI, выполняет маршрутизацию (routing) обращений ко всем связанным шинам. В общем случае считается, что устройство с конкретным адресом может присутствовать только на одной из шин данного компьютера, а на каком именно - "знают" запрограммированные мосты. ... Обращения, не востребованные абонентами PCI, обычно перенаправляются на шину (E)ISA.
В стандарт PCI заложена технология Plug & Play. Ее основа - это пространство конфигурации. Каждое устройство содержит массив байтов. Все массивы устройств и образуют это пространство. Количество этих массивов ограничено числом устройств, которые установлены и места, в которые устройства могут быть установлены.
Порт AGP основан на спецификации PCI 66. К стандартным линиям PCI добавлено еще 17 линий. Порт создан для увеличения скорости обмена между оперативной памятью и видео картой. Система определяет AGP как вторую PCI шину. Устройство AGP конфигурируется, так же как и PCI устройство. Тактовая частота AGP 66МГц. Через AGP разъем проведен USB канал для управления настройками монитора.
Из-за специфичности работы видео платы можно внести определенные усложнения в интерфейс ее соединения с функциональным блоком процессор/память. К надстройкам над PCI относятся:
• конвейерная передача данных с большой глубиной конвейера;
• не мультиплексированная адресация благодаря отдельным линиям
адреса/команды (SBA[7:0]);
• операции передачи данных с различным приоритетом;
• передача от 1 двойного слова (DWORD) до 4 за один такт порта.
Физически 32 линии данных в AGP, но минимальная посылка данных 8 байт. Поэтому AGP считают 64 разрядным.
Для поддержки AGP в контроллер памяти внесены дополнительные функции для получения «скрытого» обмена данными между видео картой и оперативной памятью.
Шины, используемые в ПК фирм Sun и Gray.
В этих машинах в основном используется ЦП SPARC.
SBUS – шина ввода/вывода, 400 Мб/с (аналоги в IBM-совместимых – USB и IEEE 1394).
MBUS – 50 МГц, 64 разряда по данным, 32 разряда по адресу, пропускная способность 400 Мб/с, поддерживается стандарт SMP (симметричная мультипроцессорность). Эта шина похожа на PCI в IBM-совместимых машинах.
XDBUS – пропускная способность более 400 Мб/с, поддерживает до 64 процессоров.
6.7. Интерфейсы периферийный устройств. Интерфейсы ввода/вывода.
В современных персональных ЭВМ можно выделить следующие типы интерфейсов:
• IDE (Integrate Device Electronics), другое название – ATA (AT Attachment).
• SCSI (Small Computer Sysytem Interface).
• Ранее использовался ST504 (Shugart Technology).
• ESDI (Enhanced Small Device Interface).
Основные характеристики интерфейсов:
1. Количество поддерживаемых устройств;
2. Пропускная способность.
Интерфейсы:
1. ST506/412: два устройства соединены по типу дэйзи-цепочки (ведущий и ведомый накопители – Master и Slave), пропускная способность менее 5 Мб/с, максимальная емкость накопителя 130 Мб.
2. ESDI: разделитель (сепаратор) данных располагается не на контроллере ЖД, а на самом накопителе (это основное отличие от ST). Пропускная способность увеличена до 10 Мб/с, количество устройств – два.
3. SСSI: был изобретен в конце 70-х гг. В 86 году получил название SCSI после стандартизации. Является скорее системной шиной по своим особенностям. Позволяет подключить 8 устройств, включая одно активное (Host Adepter). Если необходимо подключить более 7 устройств, то можно использовать несколько Host Adapter’ов (до четырех), к каждому из которых можно подключить по 7 устройств. SCSI является интерфейсом не приборного уровня, а логического, т.е. не оперирует напрямую с физическими параметрами периферийных устройств, т.е. работает с любыми накопителями: винчестеры, CD-ROM’ы, магнито-оптические диски, в отличие от других интерфейсов.
Существует несколько стандартов SCSI:
• SCSI-1 (см. выше) – 50 адресных линий, 8-битная передача, в синхронном режиме пропускная способность 1,5-3 Мб/с, в асинхронном режиме 3-4 Мб/с.
• SCSI-2: Wide SCSI-2 – 74 адресных линий (16-битный режим, пропускная способность 10 Мб/с) и Fast SCSI-2 (8-битный режим, производительность 5 Мб/с).
• Wide/Fast SCSI-2 – самый быстрый: 8-битный – 20 Мб/с, 16-битный – 40 Мб/с.
• SCSI-3: спецификация расширена (более гибкий интерфейс), но производительность не изменилась).
SCSI является параллельным интерфейсом в отличие от других интерфейсов.
4. Сейчас активно внедряется последовательный интерфейс Fibro Channel (производительность до 100 Мб/с).
5. IDE – появился в середине 70-х гг. как дешевая альтернатива SCSI, в 87 г. был стандартизирован и получил название ATA. Обеспечивает пропускную способность 5-10 Мб/с, поддерживает два устройства (только ЖД, суммарная емкость которых менее 1 Гб, это связано с int 13h BIOS’а).
6. На смену IDE пришел EIDE: количество поддерживаемых устройств – четыре, ограничение емкости одного накопителя – 8,4 Гб (т.к. применяется режим LBA – Logical Block Access); поддерживает не только HDD, но и также CD-ROM, магнито-оптические диски, стримеры. Появились режимы PIO Mode 3 и 4 (программируемый ввод/вывод), т.е. в передаче данных между ОЗУ и устройствами участвует ЦП. PIO Mode 3 обеспечивает 11,1 Мб/с, PIO Mode 4 – 16,1 Мб/с; режимы Mode 1 DMA, Mode 2 DMA (Direct Memory Access, т.е. минуя ЦП). Mode 1 DMA – 13,3 Мб/с, Mode 2 DMA – 16,1 Мб/с. DMA эффективен в многозадачных режимах.