Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций.doc
Скачиваний:
24
Добавлен:
11.06.2015
Размер:
8.29 Mб
Скачать

Курс лекций

По дисциплине “ОРГАНИЗАЦИЯ ЭВМ”

Лекция N1

Тема лекции:

Эволюция развития ВТ

2. Общие принципы организации ЭВМ.

Начало развития вычислительной техники.

Началом развития вычислительной техники считается период 30-х годов 19 в. Именно в этот период в 1833 г. английский математик Ч. Бэббидж предложил проект счетно-аналитической машины. Архитектура этой С.А.М. была во многом схожа с архитектурами современных компьютеров, которая должна была иметь память, вычислительное устройство, устройство ввода вывода информации. Машина естественно должна была быть механической. Проект до конца так и не был реализован и только спустя 100 лет идеи Бэббиджа были реализованы вначале на релейных элементах, а затем на электронных.

Первая попытка создания релейной машины была сделана немецким математиком Конрадом Зусом (ZиЗе) в Германии в 1938 году. Зус конструировал свою машину, не зная о разработках и идеях Бэббиджа.

Первым кто воспользовался идеями Бэббиджа был Говард Айкен под руководством которого была создана электронно-механическая цифровая вычислительная машина «MARK-1» ( в 1937-1944 гг. 1937-1944 гг.).

Машина была релейного типа, содержала 72 23-х разрядных десятичных числа для обработки (память данных). Программа для обработки этих чисел вводилась с перфокарт, т.е. по сути, были две независимые памяти: команд и данных.

Первой электронной цифровой машиной стала машина EHIAC(ElectronicHumericalIntegratorandComputer) – разработанная под руководством Моушли в США.

Работа над машиной была закончена в 1946 году и практически не эксплуатировалась, т.к. заказ на ее разработку сделало Министерство Обороны США для военных целей, и необходимость ее использования к этому моменту отпала.

Архитектура этой машины была подобна архитектуре релейной машины Говарда Айкена и была использована в проекте EDVAC(ElectronicDiscreteViziableComputer), которому суждено было не реализоваться.

Но результаты исследований и наработок в области Ц.В.М. не прошли даром. Интерес к этой области возрос благодаря пропаганде Моушли и его помощника Экерта.

Были разработаны другие Ц.В.М.

EDSAC(1949) автор Морис Уилкс (Кембридж)

ILLIAC- Университет Иллинойс

IYANIAC– Лаборатория Лос Алмос

WEIZAC- Институт Вайцмана (Израиль)

В то время когда Моушли с Экертом работали над проектом EDVACодин из участников проекта, Фон-Нейман, ушел из группы и решил создать свою собственную версиюEDVAC, которую назвалIAS–ImmediateAdressStorage.

Основной проект, который Фон-Нейман хотел реализовать в своей машине, содержал два радикальных новшества, которые определили принципиальные отличия от предшествующей архитектуры.

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

Во-вторых, и это было, по сути, революционным решением

- использовать общую физическую память для хранения программ и данных, тем самым упростить систему доставки кодов команд и данных из памяти в операционное устройство (АЛУ), используя для этого общий тракт.

Именно благодаря этим новшествам, которые впервые в полном объеме были использованы в машине EDSACМорисом Уилксом, архитектура этой машины стала называться фон-неймановской.

Архитектура же с раздельным хранением программ и данных стала называться гарвардской по названию университета, где была создана «MARK-1».

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

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

Вот тогда-то Гарвардская модель с раздельным хранением данных дала возможность одновременной выборки данных и команд и подачи их в операционное устройство, а это позволило организацию 2-х ступенчатого конвейера в котором совмещалась обработка операции в АЛУ и выборка следующей команды из памяти команд.

Таким образом, решалась проблема повышения производительности ЭВМ.

1948 год в истории развития вычислительной техники считается производительным. Помимо EDSAC, которая практически была создана, в Манчестере был запущен компьютер с 1-ой программой, который положил начало развитию программного обеспечения и языков программирования.

В этом же году фирма IBMвыпустила свой первый компьютерSSEC–SelectivSeguenceElectronicCalculatorи анонсировала свой первый электронный калькуляторIBM604. По настоящему, фирмаIBMстала заниматься разработкой компьютеров с 1953 года, выпустив компьютерIBM701. Он стал первым компьютером, лидирующим на рынке в течение следующих 10 лет.

Этот год считается началом развития вычислительной техники в СССР, хотя первая электронная машина была выпущена под руководством Лебедева в 1947 г.

История развития вычислительной техники в СССР.

Вычислительная техника развивалась по мере возникновения потребности использования ее в той или иной отрасли. В связи с этим и производились разработки разного класса машин.

Начальным этапом развития В.Т. в настоящее время считается 1948 год, когда по специальному приказу ЦК был организован СКБ 2-45 при заводе САМ г. Москва. Именно этому К.Б. было поручено разработка средств вычислительной техники для целей обороны и научно-технических целей Академией Наук СССР. Это промежуточный класс ЭВМ для этих целей.

Дальнейшее развитие средств В.Т. было связано с целесообразностью применения их в управлении технологическим процессом при решении задач экономического характера. Так появился класс управленческих машин и машин универсального подкласса. Центром развития управленческих машин стал г. Киев, руководитель акад. Глушков.

Развитие средств В.Т. связывают с несколькими поколениями, которые характеризуются не только архитектурными решениями, но технологической элементной базой:

- электронные лампы

- полупроводники

-микросхемы

-Бис

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

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

Такие приемы как расслоение памяти, использование КЭШ, конвейерная обработка, используемые в современных микропроцессорах были использованы в отечественных машинах 2-го поколения БЭС 2,4, (преимущественно) позволили увеличить в несколько раз производительность (БЭСМ) до 1 млн.опер./сек

Развитие средств радиолокации, решение задач метеорологии и прогноза погоды потребовало разработки специализированных высокопроизводительных ЭВМ, которые положили начало разработки суперкомпьютеров, используемых для векторных и матричных исчислений, которые впоследствии стали так и называться и относиться к классу SIMD–SinInstMubDatа в классификации компьютеров с параллельными вычислениями.

Так были созданы ЭВМ «Погода» для Гидрометцентра, которые производили вычисление сумм произведений (векторные операции), «Полет» для управления летательными аппаратами и «Кристалл» для Ф.Х.И. им. Карповадля исследования структур кристаллов.

Для обработки радиолокационных данных были созданы специальные компьютеры. Среди них 5786, передвижной вариант имеющий Гарвардскую архитектуру.

Среди мощных суперкомпьютеров, выполняющих векторные и матричные операции следует отметить систему М9 и ее числовую часть М10.

За счет разнообразия признаков вычислений и многомашинной организации производительность компьютера достигла 1 млрд.опер/сек. Это при технологической базе 2-го поколения.

Расширялась не только номенклатура средств В.Т., но и география устройств разработки средств. Так уже в 1955 году был организован филиал СКБ 2-45 ВНИИМК в г.Пензе на производственной площади завода САМ (ВЭМ) была создана целая серия вычислительных машин серии УРАЛ (4,11,66).

Отмечая этот факт, следует заметить, что эта серия представляет высокопроизводительные ЭВМ, программно совместимые имеющие развитую систему прерывания до 64 уровней. Их одноадресная архитектура была использована для задач обработки больших массивов данных. По сути, эти ЭВМ предназначались для решения задач с технологией SIMD, они были ни векторными, ни матричным процессорами, но их одноадресная архитектура команд и возможность обращения к массиву в одной команде, начиная с УРАЛ 14, позволило решать вышеуказанный класс задач. Основной заказ был Министерства обороны. Кроме того машины этого класса (УРАЛ 11, 14, ) имели возможность подключения к существующим тогда стандартным каналам связи, а механизм многоканальных переключателей для устройств управления внешним устройством (компьютеры) и объединение ЭВМ в многомашинные комплексы не только на уровне внешних устройств, но и межпроцессорных связей, позволяло создавать многомашинные комплексы и многопроцессорные комплексы географически распределенные на разных территориях страны.

Так устройство сопряжения с каналом связи обеспечивает пропускную способность до 1 мб/сек. Ни одна ЭВМ не имела таких устройств.

Поэтому эти ЭВМ, вначале используемые в оборонных целях, были использованы для организации системы «Банк» в СССР. Представляют программно-аппаратный комплекс с распределительной структурой (региональными центрами) по всей стране, обеспечивающей контроль и управление движения финансовых потоков по всей территории.

Центрами разработки универсальных вычислительных машин различного класса производительности, выполняющих как задачи экономического характера, так и программы научно-технического характера стали г. Минск, г. Казань, в последствии, г. Ереван.

Серия машин Минск ЭВМ 2-го поколения стала основной для оснащения вычислительных центров по всей стране, создаваемых на предприятиях (АСУП) в 70-е годы.

Это была серия, подобно УРАЛ, программно-совместимых машин.

Отмечая возможности этой серии, следует указать, что МИНСК-32 последняя модель этой серии (М2-М22-М3) была многопрограммной ЭВМ с развитой операционной системой и системой ввода-вывода на базе каналов ввода-вывода (процессор в/выв). Эта система в/выв. обеспечивала подключение больше пар внешних устройств, имеющих широкий диапазон по емкости хранения информации и скорости передачи между ЭВМ и внешней памятью.

Наличие средств передачи данных на дальние расстояния (М.П.Д.) по телеграфным каналам пусть с наименьшей скоростью (к операционному устройству можно было подключить 32 телеграфных канала) давало возможность работать с удаленными терминалами, с которых информация поступала в центр обработки (В.Ц.). Машины М-32 имели возможность подключить и организовать межмашинный комплекс (кольцо из 8 ЭВМ).

Заканчивалась эра машин 2-го поколения. К этому времени отечественная отрасль В.Т. имела разнообразные виды ЭВМ от суперкомпьютеров (БЭСМ-6), специализированных ЭВМ 57826, «Погода», «Кристалл», серии УРАЛ, машины со своими архитектурными решениями, обеспечивающими программную совместимость, многопрограммный режим и возможность организации многомашинных комплексов с объединением их в сеть (класс управляющих машин Днепр).

Начало периода ЭВМ 3-го поколения для развития средств В.Т. в стране было связан не только с элементной базой, но и коренными изменениями архитектуры ЭВМ. Дальнейшее отечественное развитие таких серий как Минск, Урал, М-22 были прекращены. Отрасль была переориентирована на архитектурные разработки американской фирмы IBM, в то время не имеющей конкурентов на Западном рынке средств В.Т. Базовой моделью сталаIBM-360 со своим набором команд, форматом данных.

Причины этих перемен были как объективного, так и субъективного характера.

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

Программные продукты наших ЭВМ не имели также широкого ассортимента и распространения. Это то и определило переориентацию на упомянутую архитектуру.

Так как архитектура ЭВМ не патентуется, патентуется только аппаратная реализация и компьютерный программный продукт, а не система команд, было принято решение на создание серии ЕС ЭВМ в разработку которой включены страны социалистического лагеря: ГДР, Венгрия, Болгария, Польша.

Центром разработки в СССР стал ВНИЦВ.Т. организован в 1968 г.

Начался период выпуска ЕС ЭВМ, которые по архитектурным решениям классифицировали на ряд I,II,III.

Несмотря на копирование архитектуры в ЕС ЭВМ с IBM360,370 следует отметить оригинальную разработку аппаратных средств в наших ЭВМ в этот период развития В.Т. В частности заслуживает внимания магистральная структура ЕС 1033, микроархитектурный уровень ЕС 1045,1046 в частности реализация микропрограмм управления и комплекс микропрограмм и создание на базе ЕС 1045, 1046 вычислительного комплекса ВК из 2-х ЭВМ.

В серию ЕС ЭВМ Ряд Iвошли отечественные разработки ЕС 1020, ЕС 1030, ЕС 1050 соответственно с производительностью 20,100 и 500 тыс.опер./сек.

ЕС 1033 за счет магистральной структуры дала производительность до 200 тыс. опер./сек

За счет конверсии организации в ЭВМ 1050 была достигнута производительность до 500 тыс. опер./сек.

Серия ЭВМ Ряд IIимела новшества в архитектурном решении. Это и наличие КЭШ (буфер памяти), и организация виртуальной памяти, реализуемой средством динамической переадресации (IBM370), загружающего микропроцессора. К этому классу относится ЕС 1035, ЕС 1045, ЕС 1060.

ЭВМ Ряд IIIЕС 1046, ЕС 1036, ЕС 1066 кроме упомянутых архитектурных решений в рядII, имели аппаратную поддержку в виде набора микропроцессоров реализующим группу системных команд для реализации режима виртуальных машин.

Развитая системы диагностики с использованием системы, отображающей текущее состояние ЭВМ не на пульте инженера, а с использованием сервисного процессора на экране монитора повысила производительность инженерных работ при наладке и эксплуатации, а автоматизированная система обнаружения неисправностей в ТЭЗАХ способствовала выполнению этих работ.

Был разработан проект ЭВМ Ряд IV, которому не суждено было осуществиться. Этим проектом предусматривалось дальнейшее усовершенствование архитектуры, в частности канальной системы с использованием очередей запросов, которая сейчас успешно используются в архитектуре серверовIBM(Z-архитектураZ9,7 990). А также организация систем виртуальных машин не на платформе одной операционной системы, а с использованием многообразия операционного режима (LPAR) которые также используются сейчас в серверахZ-apxитектуры.. Проекту не суждено было сбыться. Как причина – отсутствие технологической базы, так и по этическим мотивам (развал СССР). Единственной ЭВМ в исходном варианте стала ЕС 1187 (архитектура 1066 на элемент базе матричной бис)

В период развития ЕС ЭВМ (70-80 годы) развивались и другие направления средств В.Т.

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

Так, используя стандартный модуль СМ, были разработаны многопроцессорные комплексы ПС 2000 и ПС 3000.

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

По сути это был матричный процессор, имеющий архитектуру одномерной матрицы в узлах которой и находились О.Ц.

За счет параллельной обработки этот многопроцессорный комплекс достиг производительности 200 млн. опер./сек. Комплекс был успешно использован для обработки данных геологоразведки и сейсмических данных.

Само направление машин класса СМ имело цель производства малых машин, являющихся базовой структурой для производства А.Р.М. Решение о производстве малых машин было принято в 1974 году. По всей архитектуре машин этого класса имелись зарубежные аналоги ЭВМ PDPIIDECкомпанииDEC

В заключение следует еще сказать о так называемых Р.В.М. – рекурсивных вычислительных системах.

Разработка их была начата при отсутствии высокопроизводительных компьютеров (разработки М9, М10 были закрыты и предназначались только для оборонных целей), а потребность систем подобных ПС 2000 была достаточно острой.

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

По сути это был связной или коммуникационный процессор, который был в дальнейшем разработан фирмой «MOTOROLA» или транскомпьютер, разработанный в Англии. Начало разработки было положено в 1972 году (в 1973 году была создана М10).

Архитектура Р.В.М. очень схожа с архитектурой современных управляющих компьютеров, а также суперкомпьютеров.

BLU-Gимеет подобную архитектуру в узлах которой стоят элементы, подобные тем, которые были использованы в Р.В.М.

Некоторые исторические аспекты развития архитектуры манфреймов фирмы IBM

7 апреля 1964 г. Томас Дж. Уотсон-младший, бывший в то время президентом компании IBM, объявил о выпуске семейства ЭВМ System/360 (Система 360, или S/360). Это был один из самых дорогостоящих проектов в истории вычислительной техники. Целью проекта была разработка семейства различных по производительности и стоимости компьютеров, позволяющих удовлетворить любые запросы пользователей (это отражено в названии семейства: цифра 360 - это полная окружность в градусах). Компьютеры этого семейства получили название "мэйнфреймы" (mainframe), по названию типовых стоек IBM, в которых размещалось оборудование центрального процессора. Каждый из компьютеров семейства создавался из набора унифицированных аппаратных и программных модулей, совместимых на информационном (представление и кодирование информации), программном (единая система команд и программистская модель) и аппаратном (схемотехническая база, электрические сигналы, кабели, разъемы и конструктивы) уровнях. Это позволяло пользователю конфигурировать систему: выбирать процессоры, память, устройства ввода-вывода и компоновать из них систему с необходимыми параметрами. Таким образом удалось достичь высокой степени универсальности System/360 и существенно расширить сферы ее применения. Концепция программно-совместимого семейства компьютеров стала стандартом для всей компьютерной промышленности.

С помощью мэйнфреймов решались самые разные задачи - от расчета заработной платы до управления полетом искусственных спутников Земли. Компьютеры IBM использовались в американской Лунной программе, в режиме реального времени обрабатывались данные во время экспедиций "Аполлонов". На базе System/360 была создана первая в мире система резервирования билетов.

Компьютеры System/360 породили новое явление в компьютерной индустрии, создав так называемую "платформу" - стандарт на аппаратно-программное обеспечение с частично или полностью открытой архитектурой. Независимые компании получили возможность производить периферийное оборудование и строить собственные системы на этой платформе.

Все последующие поколения семейства поддерживали программную совместимость "снизу-вверх", включая последние модели zSeries, построенные на основе z/Architecture. Такой подход позволил осуществлять эволюционное развитие программных продуктов, существенно снижая затраты пользователей при переходе на новые аппаратные средства.

В 1970-1971 годах появились первые модели компьютеров семейства System/370 (Система 370), основанного на тех же принципах, что и System/360, в 1990 - компьютеры System/390 (Система 390). С 2000 года начался выпуск серии ЭВМ, получившей название zSeries. Этот новый этап в развитии мэйнфреймов начался с проекта Mach 1, целью которого было создание линеек серверов под общим названием IBM eServer. Серверы eServer ориентированы на новую структуру электронного бизнеса, в которой вычислительная мощность распределяется в высокоскоростной сети, интегрирующей серверы различной мощности и приложения для выполнения конкретных задач. При этом каждый серверIBM eServer должен обладать необходимой гибкостью, оперативностью, надежностью и отвечать другим требованиям, жизненно важным для сферы электронного бизнеса.

При разработке IBM eServer использовался широкий спектр новых решений, сформулированных в проекте eLiza, который трансформировался впоследствии в стратегическую инициативу компании IBM - программу построения самонастраивающихся (самоорганизующихся) систем (Autonomic Computing). Название проекта - eLiza, сокращение от electronic Lizard ("электронная ящерица"), подчеркивает, с одной стороны, уровень компьютерного интеллекта, сопоставимого с интеллектом живых существ, а с другой стороны - самоорганизацию системы в критических ситуациях, возникающих как при внутренних сбоях, так и вследствие неблагоприятных воздействий: атак хакеров, резкого увеличения потока заявок, стихийных бедствий и т.д. В основу систем положен принцип саморегуляции, позаимствованный из живой природы. Проблемы самоорганизации вычислений, решаемые проектом eLiza, сочетаются с задачами Grid-вычислений (Grid computing), и эти инициативы развиваются согласованно. Технология Grid-вычислений позволяет виртуализировать ресурсы и данные для распределенных вычислений, такие, как процессорные мощности, полоса пропускания сети, емкость запоминающих устройств. Это позволяет оптимально распределять ресурсы системы, предоставляя их по мере необходимости.

Основными целями создания самонастраивающихся систем являются:

создание интеллектуальных механизмов внутренней самоорганизации вычислительных систем;

обеспечение динамической адаптации вычислительных систем к условиям деловой активности предприятия.

Для реализации указанных целей предлагается использовать четыре основных принципа.

1. Автоматическая конфигурация (Self-configuring)

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

2. Автоматическое восстановление (Self-healing)

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

3. Автоматическая оптимизация (Self-optimizing)

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

4. Самозащита (Self-protecting)

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

Большинство современных серверов IBM eServer уже обладают признаками, соответствующими принципам построения самонастраивающихся систем:

многопроцессорная, многоузловая реализация с включением процессоров разных типов;

практически неограниченные возможности масштабирования серверов и их консолидация;

наращивание ресурсов по требованию;

обеспечение логического разделения - партиций, при котором один серверпредставляется в виде нескольких отдельных виртуальных компьютеров с разными операционными средами и единым центром управления и средствами взаимодействия;

широкий спектр средств контроля и восстановления работоспособности;

гарантии высочайшего уровня готовности;

минимизация эксплуатационных затрат.

Мэйнфреймы zSeries образуют одну из линеек серверов eServer.

Название zSeries, как и z/Architecture, включает сокращение от "zero down time", означающее нулевое время простоя, что отражает одно из главных качеств сервера- высочайшую надежность, позволяющую непрерывно поддерживать работу сервера на заданном уровне производительности по схеме 7 × 24 (т.е. 24 часа в сутки) × 365 (дней). Это достигается благодаря централизации вычислительной мощности в рамках одного сервера с развитой системой контроля и возможностью "горячей" замены отказавших элементов.

К другим важным характеристикам серверов zSeries можно отнести:

Масштабируемость архитектуры сервера по количеству процессоров, объему памяти, средствам ввода-вывода и другим параметрам. Это позволяет оперативно наращивать вычислительную мощность, пропускную способность ввода-вывода и другие характеристики, как по запросу пользователей, так и автоматически при возникновении критических нагрузок.

Высокая концентрация вычислительной мощности достигается за счет использования КМОП - интегральной технологии и многочиповых модулей - MultiСhip Module (MCM). Каждый такой модуль может содержать несколько десятков интегральных чипов микропроцессоров, КЭШ-памяти, управления и обмена, а также все соединения между ними в относительно небольшом корпусе размером примерно 12×12 см. Один или несколько таких MCM-модулей полностью обеспечивают вычислительную мощность центральной части или ядра сервера.

Высокая пропускная способность системы ввода-вывода (около 200 GB/s) обеспечивается большим числом разнообразных высокоскоростных каналов, управляемых специализированными процессорами. Такие процессоры выполняют канальные программы, находящиеся в основной памяти и реализующие операции ввода-вывода. Это позволяет, с одной стороны, освободить центральные процессоры от большинства рутинных и медленных операций, связанных с вводом-выводом, а с другой стороны, распараллелить выполнение таких операций.

Кластеризация серверов zSeries позволяет создавать системы IBM Parallel Sysplex, в которых могут быть консолидированы серверы разных поколений. Кластеры существенно расширяют масштабируемость систем, обладают повышенной готовностью, динамически перераспределяют пиковые нагрузки, позволяют сохранить преемственность при замене серверов и т.д.

Серверы zSeries в наибольшей степени отвечают концепции самонастраивающихся систем и реализуют многие из зафиксированных в ней технологий.

В деятельности компании IBM значительное место занимают и разработки в области программного обеспечения. Внимание к этой сфере деятельности - это следствие одного из основополагающих принципов компании IBM - стремления к наиболее полному и всестороннему удовлетворению потребностей пользователей. Луис Герстнер, генеральный директор IBM в период с 1993 по 2002 год, отмечал в [1.1], что конкурентное преимущество IBM - в способности компании интегрировать все составляющие информационной системы для покупателя. И далее: "Без операционной системы, системы управления базами данных, системы обработки транзакций, языков программирования S/360 была бы бесполезной".

Развитие и совершенствование операционных систем (ОС) для мэйнфреймов шло по нескольким направлениям. Первое направление ведет свою историю от операционной системы OS/360 и c начала 70-х годов базируется на технологии управления памятью MVS (Multiple Virtual Storage). Данное направление, позиционируемое IBM как стратегическое, включает наиболее популярные и широко используемые сегодня операционные системы OS/390, z/OS и z/OS.e.

Другие ветви эволюции операционных систем также не стали тупиковыми. Среди них семейство операционных систем, построенных на основе концепции "виртуальных машин". К этому семейству относится z/VM, которая дает возможность запускать на мэйнфрейме сотни образов различных ОС, включая z/OS. Для малых и средних по мощности конфигураций мэйнфреймов по-прежнему используется операционная система VSE, начавшая свою историю с первой версии, известной под названием DOS.

В 1999 году родилось новое направление, связанное с созданием ориентированных на мэйнфрейм версий популярной операционной системы Linux. Это неординарное решение дает возможность перенести на серверы IBM существующие приложения и системы, работающие в среде Linux, что в совокупности с z/VM и z/OS позволяет создавать гибкие, легко масштабируемые и в то же время мощные и защищенные информационные системы на базе мэйнфрейм

Архитектура мэйнфреймов прошла в своем развитии несколько стадий, основные из них представлены в таблице 1.1.

Таблица 1.1. Стадии развития мэйнфреймов

 

Система 360 (System/360)

Система 370 (System/370)

Система 370 с расширенной архитектурой (370-ХА)

Система 370 с архитектурой ESA (ESA/370)

Система 390 с архитектурой ESA (ESA/390)

Система z9XX, z8XX с расширенной архитектурой ESA или z/Architecture (ESAME)

Год создания

1964

1970

1972

1983

1986

1988

1990

1994

1998

2000

2002

2003

2004

Модели

IBM 360: 101, 250,315,400,501

IBM 370: 115, 125, 135,145, 155, 165

IBM 370: 148, 158, 168

IBM 43хх: 4381, 4300 IBM 30хх:3033, 3081,3090

IBM 9370 IBM 370ESA

IBM 370ESA

ES9000

S390:G1, G2, G3

S390:G4, G5, G6

z900

z800

z990

z890

Разрядность адреса

24

24

26

24, 31

24, 31

24, 31

24, 31

24, 31

24, 31

24,31,64

24,31,64

24,31,64

24,31,64

Архитек-турные особенности

Базовая архитектура

Расширенное управление, управляющие регистры

Виртуализация ОП (2-уровневое ДПА), двойное адресное пространство (главное и до-полнительное). Мультипро-цессорность, префиксация адреса

Расширен-ная ОП

Сетевые техноло-гии

Регистры доступа, дополнительное базовое адресное пространство и множественное адресное пространство данных на основе режима регистров доступа

Последо-вательный оптичес-кий ин-терфейс ESCON, парал-лельный сисплекс

Серверы (coupling facility), крипто-графичес-кий про-цессор, сетевые средства OSA

Последова-тельные опти-ческие интер-фейсы FICON

64-разрядная обработка и регистры общего назначения, учетверенные слова-операнды. Команды с 64-разрядной и смешанной адресацией. Исключение расширенной ОП

Число процессоров

1

1

1-2

1-6

1-10

1-10

1-12

1-16

1-4

1-32

1-4

Элементная база

ИС

СИС

СИС, БИС

СИС, БИС, TCM

MCM, TCM

MCM

MCM

MCM

MCM

MCM, book

book book

В таблице 1.2 приведены основные характеристики последних поколений серверов eServer.

Таблица 1.2. Серверы IBM семейства eServer

Модель

Количество/период синхронизации микропроцеcсоров

Емкость КЭШ L2 MB

Емкость основной памяти GB

Каналы ввода-вывода (Parallel / ESCON / FICON / FICON Express / OSA-Express / HiperSockets)

S/390 G5

RA6, R16

1 / 2.6 ns

4

1 - 12

3÷96 / 4÷256 / 0÷24 / 0/ 0 / 0

RB6, R26

2 / 2.6 ns

RC6

3 / 2.6 ns

RD6

4 / 2.6 ns

R36÷R96, RX6

3 ÷ 9,10 / 2.4 ns

8

2 - 24

Y36÷Y96, YX6

3 ÷ 9,10 / 2.0 ns

8

8 - 24

S/390 G6

X17 ÷ X97,

1÷9,10,11,12/1.8 ns

16

5 - 32

3÷96 / 4÷256 / 0÷36 / 0/ 0 / 0

Z17 ÷ Z97, ZX7, ZY7, ZZ7

1÷9,10,11,12/1.57 ns

z900

101 ÷ 109

1 ÷ 9 / 1.3 ns

16

5 - 32

0÷88 / 0÷256 / 0÷96 / 0÷96 / 0÷24 / 0÷4 /

1C1 ÷ 1C9

1 ÷ 9 / 1.3 ns

32

10 - 64

2C1 ÷ 2C9

1 ÷ 9 / 1.09 ns

110 ÷ 116

10 ÷ 16 / 1.3 ns

210 ÷ 216

10 ÷ 16 / 1.09 ns

z800

0E1, 0A1, 0B1, 0C1, 001

1 / 1.6 ns

8

8 - 32

0 / 0÷240 / 0 / 0÷32 / 0÷24 / 0÷4 /

0X2, 0A2, 002

2/ 1.6 ns

003

3/ 1.6 ns

004

4/ 1.6 ns

z990

A08

8/ 0.83 ns

32

8 - 64

0 / 0÷1024 / 0 / 0÷120 / 0÷48 / 0÷16 /

B16

16/ 0.83 ns

64

8 - 128

C24

24/ 0.83 ns

96

8 - 192

D32

32/ 0.83 ns

128

8 - 256

z890

110 ÷ 170

1/ 1.0 ns

32

8 - 32

0 / 0÷420 / 0 / 0÷40 / 0÷40 / 0÷16 /

210 ÷ 270

2/ 1.0 ns

310 ÷ 370

3/ 1.0 ns

410 ÷ 470

4/ 1.0 ns

Серверы S390 G5, G6 были построены на основе 32-разрядных микропроцессоров и непосредственно предшествовали появлению серверов zSeries 900, впервые реализовавших концепцию 64-разрядной z/Architecture. Серверы zSeries 800 были разработаны в дополнение к zSeries 900 и отличались более скромными характеристиками, такими, как уменьшенные число процессоров, объем памяти, количество каналов ввода-вывода и т.д., что позволило существенно снизить цену на эти системы. Модель zSeries 990 можно отнести к самым мощным серверам, ее максимальная производительность достигает 9000 Mips. Сервермасштабируется от 1 до 32 процессоров и может поддерживать до 30 логических разделов, в каждом из которых можно создавать большое число виртуальных серверов.

Общие принципы организации ЭВМ

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

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

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

Следовательно задача приемника- это прием информации из физической среды ,соответствующей каналу связи, преобразование ее в форму, для обработки в физической среде, соответствующей вычислительной системе.

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

Программа, представляющая последовательность команд интерпретируется в последовательность управляющих сигналов или в поток управляющей информации в той же форме, что и информация в потоке данных. Таким образом в физической среде, состоящей из функциональных элементов и соединенных между собой физическими линиями, по которым распространяется информация, объединяются два вида потоков информации: данных и управления, поступающих асинхронно друг относительно друга. Поэтому для обеспечения работы системы используется третий поток ,поток синхронизации, который активизирует момент срабатывания функциональных узлов. В Результате взаимодействия трех потоков на входах функциональных элементов системы на их выходах появляется информация выходного потока, которая и является результатом обработки ,соответствующим моменту синхронизации. Таким образом выполнение команды в ЭВМ а следовательно и программы разбивается на дискретные временные интервалы, соответствующие периоду следования синхроимпульсов. Для запоминания результатов обработки информации в каждом такте с целью их последующего использования служат запоминающие элементы, выполняющие функции памяти, благодаря которым осуществляется информационная связь между отдельными временными интервалами при выполнении команды. Следовательно, по окончанию выполнения команды формируется результат операции и признак результата, которые уже на командном уровне используются в программе. Исходя из вышесказанного, следует, что ЭВМ имеет многоуровневую организацию и как минимум три уровня.

Уровень машинных команд

Уровень интерпретации машинных команд

Аппаратный уровень

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

Микроархитектурный уровень или уровень интерпретации команд определяет функциональные возможности системы и осуществляет классификацию ЭВМ по способу хранения данных и команд.

Уровень машинных команд, который представляет набор команд выполняемых в процессоре и определяет функциональные возможности этих команд, разделяет процессоры на два вида их архитектуру RISCиCISC. В дальнейшем появление операционной системы и языков программирования высокого уровня привели к формированию дополнительных абстрактных уровней в многоуровневой организации ЭВМ.

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

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

Уровень операционной системы по своему функциональному назначению является самым привилегированным и приоритетным уровнем в системе .На этом уровне выполняется ряд системных команд и макрокоманд применение которых запрещено в программах пользователей. Так все операции ввода вывода выполняются только на уровне операционной системы и при попытке их выполнения в пользовательских программах формируется запрос на прерывание ,вызывающее прекращение выполнения программы в процессоре. Только уровень операционной системы имеет доступ к физическим ресурсам в системе, хотя в некоторых современных системах даже этот уровень лишен возможности прямого доступа к части этих ресурсов. Например, в серверах Zархитектуры операционная система оперирует только с логическими адресами процессоров, физическое распределение ресурсов в системе осуществляется планировщиком на уровне микрокода , то есть на микроархитектурном уровне.

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

Для реализации привилегированного положения программ уровня операционной системы перед программами пользователя в ЭВМ используются как программные так аппаратные средства .Каждый разработчик той или иной вычислительной системы эту проблему решает по- своему. Наиболее типовые решения мы рассмотрим позже в разделе “процессор”.

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

ЭВМ это прежде всего информационно- вычислительная система ,в которой основные физические процессы имеют детерминированный характер, определяемый алгоритмом выполняемой программы. А так как физические объекты ( линии связи ,микросхемы, модули, и т.д.), составляющие аппаратную часть ЭВМ подвергаются воздействиям внешней среды, то на эти детерминированные процессы накладываются случайные, которые могут быть причиной нарушения работы системы. Поэтому одним из положений концепции организации ЭВМ –это обеспечение достоверности передачи и обработки информации в системе. На аппаратном уровне это достигается за счет требований, предъявляемых к значениям и формам входных и выходных сигналов, допустимых значений питающих напряжений и пульсаций при которых происходит устойчивое срабатывание функциональных элементов аппаратной логики, то есть реализация логических функций в системе. Что же касается микроархитектурного уровня контроль за достоверностью обработки информации осуществляется за счет дополнительных функциональных схем ,формирующих корректирующие коды и контрольные биты при передачи информации между функциональными элементами уровня в системе. Схемы диагностики, активизация которых происходит во время автономного тестирования системы или во время работы специальной системной командой “ДИАГНОСТИКА” не смотря на избыточность аппаратного оборудования в системе, повышают надежность ее работы. Современные информационно –вычислительные системы имеют достаточно гибкую подсистему контроля, диагностики и восстановления их работоспособности. В случае выхода из строя элементов путем их блокировки и вводом в действие резервных система продолжает функционирование, но при этом фиксирует информацию о своем состоянии в специально отведенных для этих целей областях системной памяти и информирует об этом эксплуатационные службы.

Рассматривая концепцию архитектуры современных вычислительных систем нельзя не остановиться на одном из ее положений о защите информации в этих системах. По сути, проблема защиты информации в ЭВМ возникла с появлением уровня операционной системы и мультипрограммного режима ее работы. Во-первых, программы уровня операционной системы находятся в привилегированном положении по отношении к программам пользователя и требуют программно-аппаратных средств защиты своих системных данных от случайного или преднамеренного обращения к ним программы пользователя. Мы уже упоминали выше о привилегированном положении программ операционной системы, когда рассматривали вопрос о необходимости использования в них привилегированных команд, поэтому для однопрограммного режима работы ЭВМ эти две проблемы можно объединить в одну, фиксируя ,например состояние системы двумя положениями супервизор или задача путем установки флага в единичное или нулевое состояние. Но этого не достаточно для мультипрограммного режима так как в этом случае будет односторонняя защита программа- операционная система и не будет защиты между программами пользователей. Следовательно ,требуются дополнительные меры для исключения возможного вмешательства одной программы в другую. Так как коды программ и данные размещаются в оперативной памяти, то простейшим решением защиты информации в ЭВМ было бы выделение каждой программе пользователя фиксированной области памяти во время ее выполнения в процессоре ,а защиту осуществлять путем контроля значений адресов обращения к памяти, чтобы их значения не выходили за пределы области, выделенной программе. Именно такая технология применялась в первых многопрограммных ЭВМ. В дальнейшем были разработаны более совершенные методы ,о которых мы поговорим позже в соответствующих разделах. Но у всех этих методов было одно и тоже слабое место- защите а точнее контролю подвергалась не сама информация то есть ее содержимое и тип ,а ее ссылка в память или по другому значение ее адреса в памяти. Не каждый элемент в области, а область в целом. Такое положение вещей было вполне удовлетворительным, пока ЭВМ не объединили в сети, сделав частями информационных систем и подключенных к интернету. Именно это слабое место в средствах защиты и было использовано разработчиками вирусных программ, и используется до сих пор. Хотя следует отметить, что была разработана и технология защиты и самой информации и даже была внедрена в одну из серий отечественных ЭВМ ЭЛЬБРУС1,2 и в спроектированном на ее базе микропроцессоре Е2К. Суть заключалась в том, что при обращении в память контролю подвергалось содержимое тегов, в которых указывался тип выбираемых данных. Теги размещались в области контрольных разрядов данных, сформированных в соответствии с кодом Хемминга, и в силу избыточности этого кода не используемые комбинации этого кода были использованы для кодирования типа данных. Таким образом, считанный тип данных сравнивался с ожидаемым аппаратными средствами и в случае несовпадения фиксировалась ошибка, тем самым обнаруживались типы данных , расположение которых в памяти не было предусмотрено программой. Этот метод защиты не исключал заражения вирусами программы, но увеличивал вероятность обнаружения их аппаратными средствами.

Основными положениями концепции организации ввода вывода в ЭВМ являются:

-принцип программного управления

-адресуемость элементов системы ввода вывода

-многоуровневая организация

-параллельная работа элементов системы ввода вывода

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

Адресуемость элементов системы ввода вывода, то есть их идентификация- это необходимое условие протокола связи внешних устройств с программным обеспечением ЭВМ. Система ввода вывода имеет многоуровневую организацию ,поэтому на каждом уровне используется свой способ идентификации. Верхний уровень пользовательской программы ,не имеющий прямого доступа к физическим ресурсам системы, для идентификации внешних устройств использует логическую адресацию. Уровень операционной системы для связи с внешними устройствами использует специальные программы-драйвера, которые реализуют операции ввода вывода на аппаратном уровне и используют наряду с логической адресацией, физическую, осуществляя операцию ввода вывода на системной шине, или передают физические адреса устройств в каналы сиcтемы ввода вывода.

Способ физической адресации устройств в архитектуре канальной системы и общая шина представляет собой многоступенчатую организацию в силу того, что аппаратная часть этих архитектур имеет также иерархическую структуру. То есть внешнее устройство в канальной системе подключено по цепочке: канал –контроллер – устройство ,в которой каждый элемент цепочки имеет свой идентификатор, причем числовое значение каждого идентификатора определяется группой разрядов одного многоразрядного числа, в котором старшие разряды кодируют номер канала, средние разряды номер контроллера ,подключенного к каналу, младшие номер устройства подключенного к контроллеру. Таким образом, формируется жесткая привязка устройства к ЭВМ. Подобная технология используется и в системах “общая шина”, только идентификация устройств на шине состоит из двух ступеней: устройство-порт. Группа младших адресов в физическом адресе отводится под адресацию портов, представляющих группу регистров, имеющих входы и выходы ,связанные с системной шиной. Такая технология дает возможность реализации программного управления вводом выводом.

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

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

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

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

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

Что же касается канальной системы механизм прерывания используется начиная с уровня канал- процессор. Таким образом, повышая степень совмещения не только операций ввода вывода в системе, но и всех операций системы в целом.

Лекция N 2.

Тема лекции: Физическая и логическая организация памяти.

1.Физическая и логическая организация памяти вычислительных систем.

Прежде чем рассматривать технологию физической организации памяти в ЭВМ, необходимо отметить следующее:

  1. Память в ЭВМ имеет многоуровневую организацию.

2.Память классифицируется по способу доступа к данным.

- все виды памятей ,имеющих адресные структуры, функционируют по принципу взаимно- однозначного соответствия между каждым элементом множества адресного пространства и каждым элементом множества данных, хранимых в памяти.

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

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

3. По способу хранения.

-статические

- динамические

- постоянные

-флэш память

4.Память в ЭВМ имеет модульную структуру. В основе которой лежит модульное построение, дающее возможность формирование переменного объема накопительного блока путем наращивания или уменьшения числа модулей в конфигурации.

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

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

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

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

Контроллер памяти является координатором оперативной памяти, он связан с интерфейсами с процессором и системой ввода вывода, получая от них запросы за данными как для записи их память ,так чтение из нее.

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

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

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

Для уменьшения влияния циклов регенерации на производительность памяти стали использовать различные методы. Это, во-первых, использование модульной технологии построения ЗУ с организацией банков и чередованием адресов, то есть с размещением данных с четными и нечетными адресами в разных модулях(микросхемах) памяти к которым возможно одновременное обращение в цикле памяти, таким образом совмещая выборку данных в одном модуле с циклом регенерации в другом, при отсутствии режима пакетной выборки то есть одновременной выборки данных по четному и нечетному адресу.

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

Что касается архитектуры самих ЗУ, которые предназначены для хранения,

записи и считывания данных можно отметить следующее.

Используя в качестве запоминающих элементов на первоначальном этапе развития вычислительной техники электронные трубки, а в последствии ферритовые сердечники и в конечном результате перейдя на полупроводниковую технологию ,в которой стали использовать емкостные свойства изолированного стока полевого транзистора. конечной целью этих изменений было и будет решение следующих задач:

- увеличение емкости памяти

-увеличение быстродействия

-повышение надежности хранения и снижение энергоемкости памяти.

Если системная память современных 32х разрядных компьютеров ,имеющих адресную шину обращения к памяти в 32 разряда, дает возможность наращивать свою емкость до 4ГБТ, то для ЭВМ 2и 3 поколений, имеющих ферритовую память, емкость даже суперкомпьютеров того времени исчислялась только десятками и сотнями кбт Так емкость памяти БЭСМ6 отечественного суперкомпьютера в свое время составляла около768кбт,даже не доходя до мегабайтной границы.

Скачок в объеме оперативной памяти произошел с введением полупроводниковой технологии при изготовлении запоминающих устройств памяти ,благодаря которой емкость оперативной памяти перешагнула мегабайтный рубеж. Одной из первых ЭВМ, которая имела такую память была IBM7030 в1961году.Размер ее памяти составлял 2МГБТ. Конструкторские наработки в этой машине были использованы позже в известных сериях машин IBM360 и IBM370. Эти машины, имеющие адресные шины обращения к памяти в 24 разряда имели возможность наращивания объемов своих памятей до16 МГБТ. С внедрением 32х разрядной шины в таких ЭВМ как ESA370, IBM4381 память хоть и не перешла гигабайтную границу, но имела возможность наращивания от 16 до64мгбт.

Современные мейнфреймы Zархитектуры такие ,например, как Z9BC имеют возможность наращивания до 64ГБТ,имея 64 разрядную шину, а ЭВМZ10 даже до 1,5ТРБТ.

Что же касается наших отечественных ЭВМ объем оперативной памяти машин ЕС Ряд 3(ЕС1046,ЕС1066) достиг 8Мгбт, машин которым суждено было закончить свой исторический путь развития на этом этапе.

Были еще ЭВМ класса суперкомпьютеров, предназначенных для оборонных целей системы ПРО ,которые имели емкость памяти большего размера, например, проект М13(объем оперативной памяти этого суперкомпьютера имел возможность расширения до34мгбт).

Следующей одной из основных характеристик физической организации памяти является время выборки данных ,которое составляло для ЭВМ 2ого поколения, имеющих память на магнитных сердечниках, 10-12мкск. И только с внедрением полупроводниковой памяти время выборки данных сократилось на порядок и стало от 1,5 до0,5мкск.

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

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

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

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

Реальная память стала разбиваться на физические страницы, размеры которых соответствовали размеру виртуальных страниц.

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

Следовательно вычислительная система ,реализующая механизм виртуализации памяти должна иметь механизм перемещения содержимого виртуальных страниц с внешней памяти в оперативную и обратно в процессе выполнения программ. Такой механизм носит название файловой системы, a механизм динамической переадресации ,например, в системах фирмы IBM или механизм страничного преобразования в процессорах INTEL осуществляют преобразования виртуальных адресов в физические.

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

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

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

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

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

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

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

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

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

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

Рассмотрим, какие аппаратные средства необходимы для преобразования логических адресов в физические.

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

Поэтапный механизм преобразования логического адреса в физический( при разбиении старшей части логического адреса на две части) происходит в следующем порядке:

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

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

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

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

И так в соответствии с вышеописанным алгоритмом аппаратными средствами поддержки преобразования логических адресов в физические являются:

  1. Область оперативной памяти, выделяемой для хранения таблиц. Эта область является пространством, в котором не действует механизм преобразования.

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

  3. Сумматор для выполнения операций сложения адресной арифметики.

  4. Наличие буферных регистров или кэш памятей полностью ассоциативных для хранения результатов этапов преобразований логических адресов в физические.

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

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

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

В серверах Zархитектуры размер виртуального адреса был увеличен до64 разрядов, что дало возможность адресовать виртуальную память объемом до 16 эксабайт. Что же касается многомерности логической памяти в этих серверах, то аппаратная часть их дает возможность иметь до4х типов виртуальных независимых друг от друга адресных пространств с количеством пространств в двух из них по 64К и в двух оставшихся по 16 со своими табличными преобразованиями для каждого типа, которые используются для построения виртуальных логических образований- логических партиций ,в каждой из которых функционирует своя операционная система . Каждый тип виртуальных адресов, связан с типом своей виртуальной памятью подвержен одному и тому же механизму преобразования со своими наборами таблиц. Следовательно, следуя понятиям и терминологии, рассмотренными выше, память в этих серверах можно считать набором из 4х типов одномерных виртуальных памятей с пятиэтапным преобразованием ,имеющими пять видов областей: страница, сегмент, регион1, регион2, регион3.

Схема преобразования виртуальных адресов в серверах Zархитектуры

Структура логической памяти ПК

Для ПК характерно стандартное распределение непосредственно адресуемой памяти между ОЗУ, ПЗУ и функционально ориентированной информацией. (рис. 1) Основная память в соответствии с методами доступа и адресации делится на отдельные, иногда частично или полностью перекрывающие друг друга области, имеющие общепринятые названия. В частности, укрупнено логическая структура основной памяти ПК общей емкостью, например, 16 Мбайт представлена на рисунке 1.

Стандартная память 640 Кбайт

Верхняя память 384 Кбайт

64 Кбайта Область служебных программ и данных ОС

576 Кбайт Область программ и данных пользователя

256 Кбайт Область видеопамяти дисплея и служебных программ

128 Кбайт Область программ начальной загрузки ОС и др.

ОЗУ

ПЗУ

Рис. 1. Распределение 1-Мбайтной области ОП

Непосредственно адресуемая память

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

Стандартная (обычная) память (СМА)

Верхняя память (блоки UMA)

Высокая память (HMA)

640 Кбайт

384 Кбайта

64 Кбайта

 

Рис. 2. Логическая структура основной памяти

Прежде всего основная памятькомпьютера делится на две логические области: непосредственно адресуемая память, занимающую первые 1024 Кбайта ячеек с адресами от 0 до 1024 Кбайт - 1, и расширенную память, доступ к ячейкам которой возможен при использовании специальных программ-драйверов.Драйвер- специальная программа, управляющая работой памяти или внешним устройством ЭВМ и организующая обмен информацией между МП, ОП и внешними устройствами ЭВМ.Стандартной памятью(CMA - Conventional Memory Area) называется непосредственно адресуемая память в диапазоне от 0 до 640 Кбайт. Непосредственно адресуемая память в диапазоне адресов от 640 до 1024 Кбайт называется верхней памятью (UMA - Upper Memory Area). Верхняя память зарезервирована для памяти дисплея (видеопамяти) и постоянного запоминающего устройства. Однако обычно в ней остаются свободные участки - "окна", которые могут быть использованы при помощи диспетчера памяти в качестве оперативной памяти общего назначения.Расширенная память- это память с адресами 1024 Кбайта и выше. Непосредственный доступ к этой памяти возможен только в защищенном режиме работы микропроцессора.

В реальном режиме имеются два способа доступа к этой памяти, но только при использовании драйверов: == по спецификации XMS (эту память называют тогда XMA - eXtended Memory Area); == EMS (память называют EM - Expanded Memory).

Доступ к расширенной памяти согласно спецификации XMS (eXtended Memory Specification) организуется при использовании драйверов XMM (eXtended Memory Manager). Часто эту память называют дополнительной, учитывая, что в первых моделях персональных компьютеров эта память размещалась на отдельных дополнительных платах, хотя термин Extended почти идентичен термину Expanded и более точно переводится как расширенный, увеличенный. Спецификация EMS(Expanded Memory Specification) является более ранней. Согласно этой спецификации доступ реализуется путем отображения по мере необходимости отдельных полей Expanded Memory в определенную область верхней памяти. При этом хранится не обрабатываемая информация, а лишь адреса, обеспечивающие доступ к этой информации. Память, организуемая по спецификации EMS, носит название отображаемой, поэтому и сочетание слов Expanded Memory (ЕМ) часто переводят как отображаемая память. Для организации отображаемой памяти необходимо воспользоваться драйвером EMM386.EXE (Expanded Memory Manager) или пакетом управления памятью QEMM.

Расширенная памятьможет быть использована главным образом для хранения данных и некоторых программ ОС. Часто расширенную память используют для организации виртуальных (электронных) дисков.

Исключение составляет небольшая 64-Кбайтная область памяти с адресами от 1024 до 1088 Кбайт (так называемая высокая память, иногда ее называют старшая: HMA - High Memory Area), которая может адресоваться и непосредственно при использовании драйвера HIMEM.SYS (High Memory Manager) в соответствии со спецификацией XMS.HMA обычно используется для хранения программ и данных операционной системы.

Логическая организация памяти или логическая память вычислительной системы является предметом рассмотрения уровня операционной системы и рассмотренная в качестве примера структура логической памяти ПК является частным случаем ее организации. Но тем не менее можно отметить общие черты, характерные для логической структуры памяти независимо от того будь это ПК или мейнфрэйм.

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

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

На выше приведенных рисунках приведены схемы распределения областей физической памяти по функциональному назначению( структура логической памяти)

Дадим краткую характеристику некоторым областям .

VGAиMDAобласти памяти (0A000-0BFFFF)

Видео карты используют эти полученные в наследство области адресного пространства для маркировки своих буферов. По умолчанию доступ к этим областям передается на хаб- интерфейс, связывающий северный мост(MCH)cюжным мостом (ICH), на котором расположены контроллеры всех интерфейсов ввода вывода. Однако ,если биты доступности кVGAустановлены в конфигурационном регистре северного моста, то транзакции из этих областей пересылаются в графический адаптерAGP, подсоединенный к северному мосту то есть эти области передаются в распоряжениеAGP. Но если в системе при конфигурации обнаружен монохромный адаптер, то область адресного пространства в памятиMDAпередается безусловно этому адаптеру и все транзакции направленные в эту область переадресуютcя вMCHв южный мост.

Область 0C0000-FFFFFF

Эта область памяти разбивается на три части

- расширенная область для ISAшины( 000C0000-000D0000)

-расширенная область BIOS(000E0000-000EFFFF)

-область системного BIOS(000F0000-000FFFFF) по умолчанию после сброса эта область закрыта для чтения и записи и все обращения к ней транслируются на хаб – интерфейс к микросхемеBIOS.

Однако MCHможет копироватьBIOSв свою память при установке соответствующего режима в контроллере памяти.

Распределение областей памяти выше 1МГБ.

ISA HOLE MEM. SPASE(окно в памяти дляISA)

BIOSможет открыть окно между 15мгб и 16мгб для переадресации транзакций на хаб- интерфейс, вместо того чтобы завершить на системной памяти.

TSEGSMM(Сегмент области памяти для режимаSMM)

Эта область памяти находится под управлением программного обеспечения, осуществляющего режим SMMв системе ,этот регион памяти может быть размером от 128клб до1мгб. Доступ в эту область возможен, если она открыта илиMCHполучает специальный код транзакции на системной шине. В случае если область открыта, а агент на шине пытается обратится с несанкционированным для него обращением в эту область, транзакция аннулируется.

Верхняя область памяти для режима SMM(FEDA0000-FEDBFFFF)

Эта кэшируемая область адресного пространства дает возможность переадресации при обращении к ней в совместимую некэшируемую область между 000A0000-000BFFFF.

Область AGP/PCI

Технология горячей замены выделяет дляAGPдостаточное пространство для всех устройств , расположенных за мостомPCI-PCI,соединяющимAGPcсистемной шиной. Все обращения в эту область декодируются и передаются вAGP.

Область памяти I/O APIC (FEC00000-FEC7FFFF)

Эта область используется для связи контроллеров прерывания APIC, которые могут быть размещены на системной шине. Ввиду использования технологии горячей замены возникают трудности с идентификацией их на шине ,поэтому для них отводится область фиксированных адресов в памяти ,то есть используется технология адресации внешних устройств с отображением на адресное пространство памяти. Все обращения в областьI/OAPICсо стороны процессора пересылаются на хаб- интерфейс в южный мост.

Область для фиксации прерываний на системной шине (FEE00000-FEEFFFF)

Эта область используется для передачи прерываний на системную шину. Любое устройство на AGPили на хаб- интерфейсе может формировать цикл обращения по записи в память по адресу 0FEEх хххх.MCHпринимает эту запись совместно с данными на шине согласно протокола шиныPCIи продвигая дальше на шину как сообщение о прерывании, блокируя цикл записи в память.

Лекция N3

Тема лекции :

1.Физические структуры адресных запоминающих устройств и их классификация.

2. Динамическая память DRAM. Функционирование, физические процессы при записи /считывании данных, временные параметры и характеристики

3.Средства повышения производительности памяти. Модульное построение памяти. Регенерация динамической памяти.

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

Значение адреса выражают величиной двоичного n-разрядного числа, то есть всевозможные комбинации этого числа, определяемые какN=2*nбудут определять число элементов данных по- другому ее объем.

Так что же представляет собой элемент данных в памяти

Минимальным элементом в двоичном коде является бит значение которого принимает 0или1.

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

И так обращаясь за байтом в оперативную память мы в тоже время обращаемся ко всем битам входящим в состав байта а это возможно только в случае ,если все биты байта адресовать одним и тем же значением адреса.

В случае обращения за группой байт мы обязаны откинуть (не учитывать) младшие разряды адреса в количестве p=lognпо основанию2 аn-количество одновременно выбираемых байт.

Технологически решить эту задачу можно по разному.

Можно организовать физическую структуру, в которой происходит обращение к одному биту и объединить несколько таких структур с запараллеливанием их соответствующих адресных входов.

А можно организовать обращение к нескольким элементам памяти одновременно внутри самой структуры путем их подключения к одной и той же линии выборки.

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

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

В зависимости от применения одного из способов или их совместного применения классифицируют различные структуры учитывая при этом еще и количество шин управления подводимых к элементам данных в памяти.

Исходя из выше сказанных замечаний рассмотрим различные физические структуры адресных запоминающих устройств.

Для того чтобы осуществить запись или чтение в адресные ЗУ к каждому элементу этого ЗУ хранящему минимальную информацию (бит) необходимо подавать управляющую информацию в виде адресных и информационных (данных) сигналов в зависимости от количества физических линий, используемых для этих целей и их использование для передачи логических значений сигналов различают структуры 2D,3D, 2.5D, 2DM.

Где D(dimension)- размер

А число - определяющее число линий адресных, и линий записи/считывания подводимы к каждому элементу памяти. Причем при подсчете линий записи и линий чтения принимают за 1. Структура 2D,3D, 2.5Dхарактерны были при использовании элементов на магнитные сердечники, которые мы и рассмотрим.

Структура 2DMхарактерна для современных памятей, при организации матриц из элементов собираемых на базе транзисторов, в которых в качестве запоминающего элемента используется емкость изолированного стока, выполняющая функцию конденсатора.

Структура 2D

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

не связанная с шиной адреса используется для управления разрядом в слове при записи и считывании. Координата представляет две гальванически развязанные шины шину записи и шину считывания, к которым подключены усилители записи и считывания соответственно.

с

читыв

Фзап1

Зап 1

Счит 1

Фзап1

1

Блок –схема памяти 2D

Запись Чтение

В режиме записи и считывания в координатную обмотку подаются токи разного направления, причем ток осуществляющий считывание по величине в два раза больше и должен осуществлять

перемагничивание сердечника (перевод его в нулевое состояние)

В случае единичного состояния сердечника при считывании в обмотке считывания наводится ЭДС величина тока которой определяет считывание единицы. Если сердечник находился в состоянии нуля, то ток в обмотке считывания отсутствует, так как отсутствует изменение магнитного потока, а ток помехи, возникающий от перемагничивания по частичному циклу усилителем чтения не воспринимается.

Ток записи должен быть по амплитуде равным 1/2

тока чтения и быть направлен в противоположном направлении и только в случае тока записи, подаваемого в обмотку записи разряда и имеющего то же направление, что и ток записи в адресной обмотке по сумме двух токов осуществляется перевод сердечника в состояние “1”.

В случае записи нуля ток в обмотке записи отсутствует, а величина тока записи в адресной обмотке не достаточна чтобы перевести сердечник в состояние ‘1’.

Анализируя вышесказанное можно сделать следующий вывод:

Данная структура при использовании в качестве элемента памяти магнитный сердечник при каждом обращении независимо от вида операции (запись или чтение) реализует два смежных цикла ЧТЕНИЕ-ЗАПИСЬ, с той лишь разницей, что при чтении считанные данные возвращаются обратно в память, а при записи, в предварительно обнуленные ячейки в цикле чтения, новые данные

управляют усилителями записи.

Функциональная схема элемента памяти в структуре 2DM.

Структура 2DM

Структура 2DMстала представлять дальнейшую модификацию уже существовавших ранее структур 2Dи 2,5D.

От архитектуры 2Dв 2DMиспользована возможность одновременной активизацииnэлементов (слова, страницы); от 2,5Dвзята возможность управления поразрядного считывания и записи из матрицы, другими словами говоря в матрице 2DMстали размещать элементы не одного разряда а нескольких как в 2Dпри чем объединив гальванически три шины в одну ,а именно, координатнуюY, разрядной записи и разрядной шины считывания

благодаря использованию в качестве запоминающего элемента транзистора с изолированным стоком, используемого в качестве обкладки накопительного конденсатора. Отметим еще раз что структура 2Dна магнитных элементах ,функционирующих на принципе закона электромагнитной индукции такого объединения не допускает.

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

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

1.В режиме хранения ЛВ пассивна транзистор закрыт.

При выборке элемента на линию выборки подается напряжение, открывающее транзистор.

2. Перед активизацией выборки элемента на линию ЛЗС через ключ 3 подается напряжение V/2. Как только будет подан сигнал на линию выборки (ЛВ) ключ к3 размыкается.

С момента подключения С заряда к линии записи/считывания начинается процесс перезаряда выравнивание потенциалов между С лзс и С заряда. Предположим что С заряда была разряжена до 0(запись 0) тогда т.к С лзcбыла заряжена напряжениемV/2 то

Qлзс=Слзс*V/2

После перезаряда исходя из закона сохранения заряда Qлзс=(Cлзс+С3)*(V/2-∆U)

Откуда величина ∆U=V*Cзаряда/2*Слзс

Величина ∆Uтем больше, чем меньше Слзс. В случае записи 1 в элементе Слзс будет подзаряжено до величиныV/2+∆U

Для повышения уровня ∆Uв технологии изготовления матриц в структуре 2DMс элементом памяти полупроводников также используют следующие технологические приемы:

А) увеличение емкости С заряда за счет диэлектрика, имеющего высокую диэлектрическую постоянную.

Б) уменьшение емкости ЛЗС за счет разрезания ЛЗС на 2 части и распределение запоминающих элементов поровну между ними. При этом для считывания данных из элементов памяти в разрыв включают дифференциальный усилитель, формирующий выходной сигнал считывания на значении разности потенциалов поступающих на его 2 входа.

Вкачестве примера рассмотрим работу схемы усилителя-регенератора используемого в памяти 2DM.

Схема представляет триггерный усилитель, функционирующий при подачи на затворы Т1П и Т2П сигнала «Подготовка», который формируется при считывании данных из запоминающего элемента с линий ЛЗСА или ЛЗСВ. Переключение триггера будет зависеть от значений потенциалов формирующихся при считывании, т.к. активной будет только одна линия, другая всегда будет сохранять значение предварительного перезаряда, которым были заряжены обе линии перед считыванием.

И так если с ЛЗСА если 1 то

Vлза=V/2+∆i

Vлзсв=V/2

Триггер принимает состояния Т2-отрытый, Т1- закрытый, формируя на Vлзсв=0,Vлзса=V, осуществляя регенерацию на линии считывания ЛЗСА, откуда производилось считывание, т.е. элемент считывания будет дозаряжен до значенияV. Если с ЛЗСА был считан 0, то триггер принимает состояние противоположное выше описанному. Т1 будет открыт, а Т2 закрыт т.к.Vлзса=V/2-∆U,Vлзсв=V/2

И запоминающий элемент будет разряжен до 0. При считывании информации с линии ЛЗСВ например 1

Vлзсв=V/2+∆U,Vлзса=V/2 и состояние триггера будет такое же как при считывании 0 к линии ЛЗСА и при считывании 0 будет такое же как при считывании 1 с ЛЗСА.

Для того чтобы иметь однозначные значения триггера независимо от считываемой линии организуют инверсионную запись информации в одну из линий, Таким образом фиксируя значения триггера при считывании 0 или 1 независимо от линий считывания

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

Современная архитектура памяти с произвольным доступом имеет матричную организацию массива запоминающих элементов. Адрес для выбора соответствующего элемента, хранящего информацию, подаётся на модуль памяти за 2 такта (адрес строки, и адрес столбца) с целью экономии числа адресных имен, использую мультиплексирование.

1. Выбор (доступ к элементу памяти) начинается с подачи , по которому во внутреннем контроллере памяти запускается формирователь ФТС1, формирующийи. Поосуществляется приём адреса строки в буферный регистр и активация ДШХ, на выходе которого активизируется одна из линий выборки в результате чего осуществляется подключение запоминающих элементов к линиям ЛЗСА или ЛЗСВ

2. Одновременно сигнал блокирует ключи КЛ1

1) Снимая с ЛЗСА и ЛЗСВ, потенциал одной из которых будет определяться значением потенциала ,которым обладает информационная емкость С , а другая (пассивная) сохранять значение

3. Формируется сигнал по которому подается питание на усилитель- формирователь триггерного типа . С этого момента начинается процесс регенерации и потенциал активной линии ЛЗСАV, а пассивной ЛЗСВ0 (считывание 1 с ЛЗСа)

4. К моменту должен при высокомзапускается ФТС2 и формируютсяв результате действия которых осуществляется прием кода столбца его дешифрация в результате чего на одном из выходов дешифратора появится активный уровень ,открываются ключи 2 и считанная информация при условии, что открыт ключ 4 поступает на внешнюю шину.

5.Состояние триггерного усилителя- формирователя сохраняется в течении длительности , которая должна быть достаточной для приёма информации из модуля следующим звеном передачи информации в процессор.

6. Сигналвыполнив свою функцию совместно сстановятся высокими,, подготавливая модуль памяти для следующего обращения.

Время между двумя должно быть достаточным для того, чтобы восстановить на ЛЗСА, ЛЗСВ значение. Для того, чтобы можно было обратиться кстроке.

Дадим определения основным временным параметрам работы памяти.

ТRСD- время ,определяющее задержку подачи сигналаCASотносительноRAS.Эта задержка необходима для дешифрации адреса строки , активизации линии выборки и отключения линий ЛЗС от источника предзаряда.

TCL- время появления данных на линиях записи считывания от начала активизации сигналаCAS. Время отводимое для приема адреса столбца на дешифрацию и переключение ключа КЛ4,разрешающего выдачу данных с шин ЛЗС

TRAS-полное время цикла записи считывания данных из памяти.

TPR- время предзаряда шин ЛЗС, по другому, время необходимое для восстановления значения напряжения на линиях ЛЗС до величиныV/2 в нашем случае , определяется временем срабатывания ключей КЛ1 и постоянной заряда линий ЛЗС

TRAS+TRP- минимальное время, через которое возможно следующее обращение к памяти.

.

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

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

Такая организация позволяет управлять размером области информационного пространства системной памяти , добавляя или удаляя модули из памяти.

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

Так ,например, выбрав для адреса банков младший разряд адреса обращения к памяти мы размещаем четные элементы в одном банке а нечетные в другом а используя технологию чередования адресов обращения к памяти повышаем ее производительность.

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

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

Модуль чет адресов

Рег адр чтен

D

MUX

1

А

D

Модуль нечет адресов

Рег адр зап

D

Схема выбора модуля

Чтение/запись

Как следует из анализа работы схемы, и временной диаграммы работы памяти строка находится в активном состоянии на протяжении всего времени длительности сигнала , а величины потенциаловопределяются значениями выходов триггера усилителя - регенератора пока на него подаётся питание во время длительности Ф2.

V

ЛЗСА ЛЗСВ

Ф2

И так если предположить, что оставляя состояние длительное время, строка будет активной и Ф2 зафиксировать на триггере, а подавая серию, и адреса столбцов в модуль памяти, получим увеличение быстродействия. Именно в таком режиме работаетFPM.

FPM

CAS

счит.данных

Частота следования , определяет время необходимое для передачи данных из памяти в процессор.

Так вот если ввести буферный регистр, который будет сохранять данные, то частоту следов. можно увеличить.

RAS

CAS

шАROW

буфер

Данные считываются и принимаются в буфер

row col1 col2

ШД

date1 date2

В памяти ЕДО серия поступает из контроллера памяти в модуль.

Дальнейшее увеличение быстродействия было реализованоBEDO-BestExternalDataOutпутём введения в модуль счётчикачисло импульсов которого определяется длинной пакета, а адрес колонки передается в память только при первом обращении.

RAS

ROW

CAS ВЕDО

.col1

ША

внутренний счетчикCAS

ШИНА ДАННЫХ

Архитектура памяти SDRAM.

Хотя SDRAMсодержит внутри памятьDRAM, работающую какEDO, принцип управления модулемSDRAMсовершенно другой, а улучшение производительности достигнуто путем “ скрытой” внутренней работыDRAMспециальными методами по другому внедрением аппаратных средств, а именно:

1.Синхронизация всех операций в памяти тактовой частотой системной шины .

2.Разделение микросхемы SDRAMна внутренние банки (логические) . Такое решение позволило реализовать режим чередования страниц, давший возможность исключить задержки, связанные с регенерацией, и организовать непрерывность потока данных.

3.Конвейерная обработка данных позволила производить обращение по новому адресу столбца в каждом тактовом цикле, кроме того подобно EDOмикросхемаSDRAMимеет внутренний счетчик потока, определяющий количество слов в потоке, и устанавливаемый из регистра режима.

4.Регистр режима предназначен не только для хранения размера потока но и информации о типе потока(последовательное считывание или с чередованием) то есть SDRAMявляется устройством с программируемыми параметрами, которые и заносятся в выше упомянутый регистр.

Запись в него осуществляется в специальном цикле из внешнего контроллера памяти, данные передаются по адресной шине.

После такта записи в регистр режима следует обязательно пустой такт NOP. По окончании двух тактов инициализации начинается цикл обращения к памяти с команды “активизация”, во время выполнения которой из внешнего контроллера вSDRAMпередается адрес внутреннего банка по шинам адреса и адрес строки в банке.

Указав на архитектурные особенности SDRAM,остановимся на них подробнее. Ну , во-первых, в архитектуреSDRAMвводится понятие логического банка. Вначале мы упоминали о модульном построении памяти , так вот распространяя выше упомянутую технологию на внутреннюю архитектуру самой микросхемы памяти мы приходим к понятию логический банк.

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

Возникает вопрос. Так почему же эти внутренние банки микросхемы назвали логическими.

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

Такое разрезание сделало независимыми строки разных банков, что позволило открывать последовательностью команд “активизация” их в банках в каждом цикле работы памяти и производить независимые обращения .

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

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

Как видно из схемы для организации пакетного режима из внешнего контроллера необходимо передать адрес первой колонки(начало пакета) и значение загружаемое в счетчик(длину пакета) . Из вышесказанного следует что для организации пакетного режима требуется подготовительная операция ,которая и осуществляется в специальной команде “установка регистра режима”из внешнего контроллера.

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

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

сброс(cаморегенерация)-000

nop(нет операции) -001

все банки закрыть -010

уст регистра режима -011

регенерация - 110

нормальная операция - 111

МОДУЛЬНОЕ ПОСТРОЕНИЕ ПАМЯТИ

Так как микросхемы памяти по глубине своего адресного пространства, которое определяется числом входов подаваемых на адресные входы микросхем не обеспечивает в большинстве случаев объем системной памяти, то при расчете в первую очередь проводят расчет субмодуля - узла из количества микросхем, обеспечивающих ширину выборки.

:

:

m

L/m– количество микросхем,

емкость субмодуля

:

: m

Ввиду того, что из памяти считывается Lразрядов одновременно, где количество считываемых байт равноL/8, а в памяти адресуется каждый байт, то для адресации одновременно считываемых байт из памяти мы обязаны откинуть справа в адресной сетке «Р» разрядов.

. Или- количество одновременно считываемых байт. Оставшиеся разряды будут использованы следующим образом:

- число субмодулей

- емкость микросхем

- шина выборки

+- емкость субмодуля

tразрядовkp

А[0÷k-1]

Субмодуль

(2^k)хе

ДШ

Старшие

tразрядов : :

Субмодуль

(2^k)хе

: :

РЕГЕНЕРАЦИЯ ПАМЯТИ

Динамическая память требует восстановления информации после обращения в неё за данными и в процессе хранения ввиду саморазряда конденсаторов, которые используют в качестве запоминающего элемента.

Как было рассмотрено при анализе DRAMиSDRAM, для регенерации достаточно активизировать только строки, при этом происходит автоматическое восстановление информации во всей строке. Т.е. через определённое время каждый элемент памяти требует к нему обращения с целью восстановления хранимой в нём информации. Различные системы реализуют этот процесс по-разному.

Так в системах с шинной организацией, где на шине данных и адреса кроме данных находятся другие агенты шины, контролер шины вынужден через определенные промежутки времени организовывать запрос к процессору на владение шиной.

Так в свое время в режиме регенерации был задействован один из каналов DMA(прямого доступа памяти), в котором хранилась информация адреса, на котором останавливался предыдущий цикл.

Блок-схема

Генератор вырабатывает импульсы и через делитель частоты организует импульсы запросов на регенерацию процессор. В случае подтверждения устанавливает ТРЕГ=1, разрешая работу счетчика, формирующего адреса регенерации (строк) и сопровождающиеся сигналом RAS. На время регенерации блокируются сигналыRASиCASот процессора. Цикл регенерации определяет время работы счетчика и заканчивается по сигналу переполнения. Для подачи адреса строки на модуль используется мультиплексор, управляющий триггером регенерации.

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

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

MemoryRefresh.

Циклы регенерации могут быть организованы различными способами. Классическим способом является цикл без импульса CAS, сокращенноROR(RASonlyrefresh)

Вторым распространенным способом является CBR(CASbeforeRAS). Данный способ в частности используется вSDRAM, т.к. последовательныйRORв этой памяти воспринимается как команда «АКТ» - активизация строки. Кроме организации циклов регенерации со стороны внешнего контроллера используется режим само регенерации. Адрес регенерируемой строки берется из внешнего контролера для циклаRORи из внутреннего счетчика регенерации для циклаCBR. Т.е. дляSDRAMадрес регенерируемой строки хранится в самой микросхеме памяти. Активизация цикловCBRиз внешнего контролера происходит через определенные промежутки времени.

Само регенерация.

Режим само регенерации организуется в микросхеме при переводе сигнала CKE(clockenable) в низкий уровень со стороны внешнего контролера.

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

1) выполнение инструкции HULTв процессоре. В результате процессор переходит в состояниеS1

S1 – останавливает таймеры системной платы , но сохраняются данные в системной памяти.

2) S2 – дополнительно отключается питание КЭШ, системной платы и процессора, но сохраняется состояние оперативной памяти

3) S3 – обесточиваются все компоненты системной платы, кроме оперативной памяти

Примечание: выполнение ‘SLEEP’ [S1,S2,S3] может произойти в случае ‘shutdown’, когда операционная система обнаруживает аварийную ситуацию.

Лекция N4.

Кэш память . Принцип организации кэш. Виды КЭШей.

Механизм LRUзамены строк в кэш.

КЭШ ПАМЯТЬ

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

Так как системная память является адресным устройством с произвольным доступом, то в качестве тэгов используются адреса ячеек системной памяти (полный или частичный в зависимости от архитектуры КЭШ)

Различают в основном 3 типа КЭШ:

- полностью ассоциативная,

- прямого отображения

- наборно-ассоциативная.

Полностью ассоциативная КЭШ.

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

Но с другой стороны схема поиска о наличии данных в таком КЭШ является сложной, так как требует одновременного анализа всех ячеек тэговой части.

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

БЛОК-СХЕМА

Как видно из блок схемы в режиме чтения текущий адрес данных подается на схемы сравнения, количество которых определяется количеством ячеек в КЭШ. На другой вход схем сравнения поступают значения адресов (тэги записанные в каждую из ячеек теговой части в процессе записи в КЭШ).

Та схема сравнения, которая обнаружит совпадения

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

Говоря о структуре содержимого ячеек теговой памяти, необходимо отметить, что данные в КЭШ используются не только для чтения но и для их изменения в процессе обработки в процессоре.

Возникает вопрос: «Что делать с такими данными?»

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

Если эти изменённые данные являются промежуточным результатом и используются для дальнейших вычислений, то их можно записать в КЭШ и только получив конечный результат можно отправить в системную память.

Как долго измененные данные могут находится в КЭШ? Это время тоже является очень важным по той же причине, что в системе кроме процессора обычно присутствуют другие агенты, имеющие прямой доступ к памяти (контроллер жёсткого диска).

Даже эти вопросы обнажают проблемы, которые необходимо решать при вводе КЭШ в систему.

Отсюда вывод:

Для решения всех этих задач, которые связанны с так называемой когерентностью КЭШ и системной памяти, наличие только адреса данных в тэговой части НЕДОСТАТОЧНО. Необходима дополнительная информация отображающая состояние данных в системе (КЭШ) (биты достоверности).

КЭШ-память прямого отображения.

В основу построения КЭШ прямого отображения положен следующий принцип:

Общее пространство оперативной памяти разбивается на равные блоки, размер которых равен размеру КЭШ памяти.

КЭШ память кроме накопительного блока имеет блок хранения тэгов, являющихся признаком наличия запрашиваемых данных в КЭШ.

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

При такой архитектуре в КЭШ прямого отображения на каждую строку в КЭШ будет претендовать количество строк из основной памяти равное количеству блоков, на которое разбита основная память, т.е - где k- количество разрядов тэга.

КРАТКОЕ ОПИСАНИЕ РАБОТЫ КЭШ ПРЯМОГО ОТОБРОЖЕНИЯ ПО БЛОК_СХЕМЕ

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

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

Как только значение адреса фиксируетя на шине адреса с задержкой, определяемой логикой работы схемы сравнения и временем счиывания из теговой памяти формируется сигнал “miss”(промах) или “hit”(совпадение) и с учетом бита достоверности (V=1) определяется нахождение данных в кэш. Если данные в кэш, то соответствующий сигнал разрешает выдачу данных из кэш на шину данных. Если данные в кэш отсуствуют, то формируется запрос к системной памяти и данные считываются из нее в режиме чтения.

Если “ данные в кэш” формируется при записи ,то это значит что процессор брал данные из кэш изменил их и обязан записать их в кэш установив при этом бит V:=0 (грязный) в том случае ,если цикл записи в основную память будет произведен с задержкой(политика обратной записи). Если запись в основную память следует без задержки, то контроллер кэш оставляет битVв единице,(политика прямой записи) таким образом отслеживая когерентность данных в основной памяти и кэш.

Наборно-ассоциативная КЭШ состоит, как и КЭШ прямого отображения, из накопительного блока и тэгового.

Накопительный блок состоит из четырёх отделений А, В, С, D. (четырёх канальная КЭШ).

Обращение к каждому отделению (адрес) формируется из двух частей:

a) адрес строки внутри отделения (набор).

б) адрес номера отделения.

В представленной архитектуре адрес номера отделения (2 разряда) представляются двумя старшими разрядами КЭШ, которые формируются контроллером кэш и не входят в разрядную сетку адресной шины

отделения А 0 0 XXXXX

B 0 1 X X X X X

C 1 0 X X X X X

D1 1 X X X X X

т.е. набор представлен как подмножество из 4-ех одноимённых (имеющих одни и те же значения адреса строк в отделениях) строк в отделениях.

Формирование адреса отделения формируется по разному в зависимости от операции (чтение или запись)

Как видно из блок схемы, выбор отделения при чтении, осуществляется по сигналам CPBA,CPBB,CPBC,CPBD, однозначно его определяющие.

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

a) CPBA, CPBB, CPBC, CPBD

б) , , ,

в) биты отслеживающие

обращение в отделение КЭШ

,,

в соответствии с порядком перечисленным выше эти группы сигналов в таком приоритете участвуют в формировании адресов отделения .

1.При формировании одного из сигналов сравнения то есть hit=1 выбор отделения осуществляется по соответствующему сигналу сравнения.

2. В случае отсутствия сигнала «hit» запись осуществляется после проверки бит ),,,; в случае обнаружения=0 в одном из отделений, запись осуществляется в этот отделение.

Если ====1, то в действие вступает алгоритмLPU, на основании которого формируется номер отделения, к которому не было в обращения в предыдущих 2-ух циклах выборки из КЭШ.

Схема обновления битов ,,контролирует все обращения при чтении устанавливая их и сбрасывая в 0 в соответствии с алгоритмом, и каждый раз по окончании цикла чтения записывает их обновлённые значения в блок памятиLPU.

Что касается содержимого тэговой памяти ясно, что кроме значения тэгов (старшей части адреса) в строках тэгов памяти хранятся биты достоверности и значения ,,.

И так в основе архитектуры наборно-ассоциативной кэш используется тот же принцип построения как в КЭШ прямого отображения с той лишь разницей, что в архитектуре наборно-ассоциативной КЭШ вводятся элементы ассоциативного характере при доступе к данным.

Структуру такой КЭШ можно представить как КЭШ с размером строк в несколько раз больше чем ширина выборки из основной памяти и определяемое числом отделений в КЭШ, но размер строки скрыт от системы и адресуется как в кэш прямого отображения, таким образом являясь собственностью контроллера кэш и поэтому строку в ней называют набором. Контроллер имея в своем распоряжении набор размещает в нем данные согласно выше указанному алгоритму, а при чтении из кэш осуществляет поиск данных подобно как это реализуется в ассоциативной кэш ,обращаясь в одном такте одновременно к теговым памятям отделений.

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

Запись ,как мы уже говорили, строки набора происходит по выбранному алгоритму, реализованному в контроллере КЭШ, и, как наиболее часто используемых в таких системах, известен как механизм LPU. Суть которого заключается в том, что при записи используется строка к которой дольше всего не было обращения.

LeastRecentlyUsed

Например, для того, чтобы производить анализ количества обращений в КЭШ с 4 отделениями и выделить строку к которой подряд 2 раза не было обращения достаточно 3 разрядов (триггеров).

- триггер (бит) фиксирующий обращение к паре отделений из 2-ух возможных.

- Фиксированное обращение к отделениям в 1-ой паре.

- фиксированное обращение к отделениям во 2-ой паре.

Схема формирования ,,

Установка триггеров ,, ясна из самой схемы. Значение разрядов номера отделения формируются на значениях,, из памятиLPUна основе таблиц указанных на схеме. Значения эти используются в случае, если значения битов достоверности во всех отделениях тэговой памяти имеют====1

Если в каком либо отделении бит достоверности будет равен 0, то данные безусловно будут записаны в это отделение.

Схема установки (сброса) ,,

C

S

R

R

PBACPBB

C

S

R

R

S

R

R

PBCCPBD

CPBA

CPBB

CPBC

CPBD

Для того чтобы понять как работает механизм LRUрассмотрим все возможные комбинации триггеровB0,B1,B2 и соответствующие им обращения к отделениям.

Анализируя полученные варианты, можно заметить ,что при отсутствии обращения к отделению Aсостояние триггераB2 может принимать как 0 так и 1,а состояния триггеровB0 иB1 “10”соответственно.

При отсутствии обращения к отделению BтриггераB0B1 находятся в 1, а состояниеB2 безразлично.

Если не было обращений к отделению C, тоB0 иB2 имеют нулевые состояния, а состояниеB1 безразлично.

При отсутствии двух обращений к отделению DB0 в нулевом состоянии,B2 в единичном, аB1 в безразличном.

Обращение B0 обращениеB1 обращениеB2 не было к

AvB 1 B 0 D 0 C

AvB 1 В 0 C 1 D

AVB 1 A 1 D 0 C

AVB 1 A 1 C 1 D

CVD 0 B 0 D 0 A

CVD 0 B 0 C 1 A

CVD 0 A 1 D 0 B

CVD0A1C1 B

Результирующая таблица

0 1 х запись в B

0 0 xзапись вA

1x0 запись вC

1 x 1 запись вD

корректировка B0,B1,B2. И запись в блок хранения

ЛЕКЦИЯ N5

ТЕМА ЛЕКЦИИ: “ ПРОЦЕССОР”

Что такое процессор сейчас знает любой школьник. Он даже вам похвалится, что ему удалось разогнать свой 4х ядерник в своем комке на играх до предельных частот ,измеряемых гигагерцами, не подозревая того ,что когда-то на заре развития вычислительной техники ,когда частота работы процессора измерялась всего лишь сотнями килогерц, в лучшем случае мегагерцами и емкости оперативных памятей также измерялись в сотнях килобайт, разработчики ЭВМ даже не могли представить ,что такое возможно. Тогда то, что мы называем процессором в нашем компьютере, размещался в ЭВМ в нескольких шкафах, подобных тем, которые, может быть, еще сохранились у прабабушек в деревенских домах. Но этот школьник должен знать, что его ” четырехядерник” в комке, который размером со спичечный коробок- это результат научных поисков многих ученых и конструкторов, а многие идеи ,выдвинутые ими ,которые реализованы в этом ”коробке”были выдвинуты еще в те давние времена, часть из которых была уже реализована в тех шкафах. Так, например, внедрение кэш памятей, принципов конвейерной обработки команд в процессоре были реализованы еще в ЭВМ второго поколения, в том числе и наших отечественных.

Многие идеи просто не могли быть тогда реализованы в силу как объективных, так и субъективных причин, одной из которых была та элементная база, на которой производилась аппаратная часть ЭВМ. И только благодаря новым технологиям ,давшим возможность реализовать высокую степень интеграции аппаратных элементов в ЭВМ наш школьник разгоняет свой четырехядерник до таких частот. Но пусть он также знает, что функциональные элементы аппаратной логики ,которыми начинен его коробок, остались те же самыми, которыми были заполнены прабабушкины шкафы ,а настройка частоты синхронизации в процессоре синхронная работа всех его элементов была делом высококвалифицированных профессионалов. А поэтому тому ,кто хочет знать основательно как устроен его компьютер, необходимы знание и схемотехники и знания работы базовых элементов аппаратной логики: триггеров ,счетчиков ,регистров ,и других элементов аппаратной логики.

Так все-таки что же такое процессор, и какое место он занимает по своему функциональному назначению в вычислительных системах?

В общих словах можно ответить так.

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

Из этого определения следует, что в процессоре сходятся все информационные потоки системы, которые можно разделить на две категории:

-потоки управляющей информации

-потоки данных

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

Так каким образом эти потоки взаимодействуют между собой в процессоре в процессе выполнения программы?

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

Так как каждая команда обрабатывает ”свои”данные, то здесь только два варианта: размещать данные для обработки в самой команде, тогда два патока объединятся в один и проблема синхронизации обработки данных в командах устраняется сама собой. Да, этот способ используется в современных процессорах как частный случай способов адресации данных в командах, носящий название способа непосредственной адресации. Более того один из способов адресации в процессорах INTELпозволяет размещать данные непосредственно за командами, указывая на это в формате самой команды, таким образом сокращая цикл ее выполнения в процессоре. Размещение данных совместно с кодом операции над ними в одном формате используется на микропрограммном уровне в микрокомандах в тех же процессорах фирмыINTEL.

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

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

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

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

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

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

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

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

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

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

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

Блок-схема архитектуры Фон-Неймана.

Комментарий к блок-схеме архитектуры Фон-Неймана

Наличие жестко заданного набора исполняющих команд и программ было характерно для первых компьютеров, которые конструировались, как теперь принято называть, по Гарвардской архитектуре.

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

Как видно из блок-схемы, процессор связан шинами адреса, команд/данных. Для разделения потока команд и данных внутри процессора используются (в зависимости от архитектуры) как аппаратные, так и микропрограммные средства, реализующие специальные циклы (такты) работы процессора, фиксирующие запросы в оперативную память за командой или данными.

БЛОК-СХЕМА ГАРВАДСКОЙ АРХИТЕКТУРЫ ЭВМ

Комментарий к блок-схеме гарвардская архитектура ЭВМ.

В гарвардской архитектуре существует две физически раздельные памяти:

1) память команд

2) память данных

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

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

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

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

Другими словами говоря данную архитектуру можно рассматривать как двух ступенчатый конвейер.

Недостаток данной схемы –две адресные шины. На практике для сокращения числа шин адреса команд и данных передают по соответствующим шинам используя мультиплексирование.(см. рис.2)

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

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

Рассмотрим кратко назначение узлов на блок-схеме.

Счетчик команд представляет автоинкрементный счетчик с параллельной загрузкой либо из стека либо с шины команд. Автоинкремент используется на линейном участке программы. Загрузка счетчика команд с младших разрядов шины команд осуществляется при условных и безусловных переходах.

Стек используется для возврата из подпрограмм.

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

Архитектура фон-Неймана ввиду своей более простой реализации стала основным направлением в проектировании ЭВМ на период времени от середины сороковых годов до начала восьмидесятых. Сам принцип размещения команд и данных в общей физической памяти определил структуру и формат команд, выполняемых в процессоре, в функции которых были заложены обращение к памяти за данными и их обработка в процессоре. Кроме того стремление увеличить производительность работы программиста привело к необходимости перенести часть его работы на микроархитектурный уровень за счет увеличения функциональных возможностей команд и как следствие усложнения их структуры. Команды содержали в своих форматах кроме кода операций и адресных полей в памяти ,адреса регистров в процессоре, поля констант и даже поля для размещения данных.Команды были в основном переменной длины доходили до размера от 1 до 16 байт. Процессора выполняющие такой тип команд стали относить позже к классу CISCпроцессоров.

Увеличение производительности ЭВМ, как мы уже отмечали, шло в основном по направлению сокращения времени выполнения команд в процессоре за счет разработки элементной базы и интеграции аппаратных элементов в процессоре. Архитектура ЭВМ оставалась практически неизменной, за исключением суперЭВМ, количество которых исчислялось десятками ,а время требовало пересмотра самой архитектуры ЭВМ, выполняющей команды последовательно одну за другой ,выполняющей следующую только по окончанию предыдущей. Технология параллельных вычислений применялась только в суперЭВМ, так называемых матричных и векторных процессорах, в ЭВМ массового производства уровень параллельных вычислений не поднимался выше уровня выполнения микроопераций. Даже выполнение параллельных операций на уровне микрокоманд требовало введение отдельных операционных блоков и блоков микропрограммного управления. Такие блоки использовались, например, для выполнения операций умножения и логических операций в свое время в отечественных ЭВМ ЕС рядаII. Введение технологии параллельных вычислений на уровне микрокоманд и команд стало необходимым и требовало пересмотра основных идей ,заложенных в архитектуре фон-Неймана.

Первоначальной модернизации стал подвергаться этап чтения из выборки команды из процессора путем внедрения дополнительных буферных регистров для последующих команд, а затем и ввода дополнительной памяти для их хранения (БПК, КЭШ команд).

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

С внедрением БПК (КЭШ команд) шина данных и шина команд были разделены внутри процессора. А это уже было частичным внедрением Гарвардской архитектуры, несмотря на то что команды и данные хранились в общей памяти ,такая архитектура была в ЕС ЭВМ ряд II.

В дальнейшем уже в архитектуре ПК (Intel) была введена КЭШ данных, и это уже была модель модифицированной Гарвардской архитектуры в компьютере. А общая память в вычислительной системе работала по принципу Фон-Неймана, поставляя и принимая команды и данные в процессор по общей шине.

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

CISC архитектура

Большой набор команд.

Команды достаточно сложны, со сложной структурной адресацией операндов, зачастую имеют нефиксированный формат от 1 до 16 байт.

Имеют действия с операндами, находящимися как в общих (программных) регистрах процессора, так и в формате команды или оперативной памяти, адреса которых формируются на основании кодировки, указанной в самой команде (байт-модификатор)

Выполняются в зависимости от формата от нескольких единиц до десятков и сотен тактов процессора.

ФорматRR,RX,

команда содержит адрес ОП

и адрес регистра

БУ – блок управления

РФ – регистровый файл

ОУ – оперативное устройство

ОП – оперативная память

RISCархитектура

Команды простые, выполняются за 1, 2 тактов компьютера.

Формат фиксирован, что упрощает управление потоком команд в процессоре.

Процессорное ядро содержит регистровый файл, формат команд RR.

Для доставки данных из памяти и записи результата в память используются команды LOADиSTORE.

(1) формат RR

(3) (2) формат STORE

(3) формат LOAD

(2) (1)

СТРУКТУРЫ И ФОРМАТЫ КОМАНД И ДАННЫХ В ПРОЦЕССОРЕ.

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

Именно вышеперечисленные исходные параметры определяют микроархитектуру процессора.

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

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

По характеру выполняемых операций различают следующие основные группы команд

Исходя из определения команды, код ее должен в общем случае состоять из двух частей : операционной и адресной для которых в формате команды отводят группы разрядов(поля). Если операционная часть во многих случаях определяется одним полем, то адресная часть состоит из нескольких полей. Наличие нескольких полей в адресной части дает возможность кодировать одно, двух и трех адресные команды и различные способы адресации с использованием механизмов базирования и индексирования.

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

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

И так код поля операции и количество разрядов в поле определяет множество выполняемых команд в системе.

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

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

Что же касается наличия числа адресных полей в формате команд, то наиболее простым вариантом было бы использование четырех полей:

Два поля для источников операндов

Поле для хранения результата операции

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

То есть использовать принудительный порядок выборки команд.

Такая технология на уровне программного кода не используется а используется в микропрограммах, для которых характерны алгоритмы с детерминированными связями между операторами.

Использование трех адресных команд было характерно для первых ЭВМ команды которых имели вид:

ОП[A3] : =ОП[A2] *ОП[A1]

Операция производится над содержимым ячеек с адресами A1 иA2

Результат записывается в память по адресу A3.

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

Для сокращения длины команды используют двух адресный формат

ОП[A1] : = ОП[A1]* ОП[A2]

Применение одноадресного формата команды, в которой указывается адрес одного операнда целесообразно использовать для обработки данных с размещением по последовательным адресам в памяти для которой оператор имеет следующий вид:

АККУМ : = АККУМ*ОП[A1]

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

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

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

Так что при разработке архитектуры процессора необходимо учитывать этот фактор, фактор который в свое время стал одним из определяющих в направлениях развития CISCиRISCархитектур процессоров.

Способы адресации.

1. Непосредственная.

Операнд размещается в формате команды

R1: = [R1]*const.

2. Прямая.

Аисп = [A] где [A]-содержимое поля адресной части команды. Использовалась в первых ЭВМ. Может быть реализована как частный случай относительной адресации, если базирование не используется.

3. Относительная адресация

Aисп =Aбазы +Aсмещ

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

Варианты относительной адресации

Индексная адресация.

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

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

Косвенная адресация.

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

Последовательная обработка команд в процессоре.

1)Начало выполнения любой команды в процессоре начинается с выборки её из памяти, размещении в регистре команд и модификация адреса счетчика команд в зависимости от длинны команды , поступающий на обработку в процессор.

2) На следующем этапе осуществляется декодирование команды её полей, содержащих информацию о месте нахождения операндов; кода операции для логических и арифметических команд, а для команд управления, в частном случае переходов, расшифровка условий перехода и формирование адреса перехода.

3) По окончании декодирования и подготовительных операций начинается выполнение команд. Блок управления координирует работу всех узлов процессора «разбивая» выполнение команды на временные интервалы ( такты, микрокоманды, микрооперации) в зависимости от архитектуры его реализации «жесткая логика» или «микропрограммное управление».

Блок операций в различных архитектурах реализуется по-разному.

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

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

обеспечивающих параллельную обработку на аппаратном уровне.

Блок операций результат своих вычислений размещает в регистровый файл или в оперативную память. Для RISC архитектур связь оперативной памяти осуществляется специальными микрооперациями или командами STORE и LOAD.

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

ЛЕКЦИЯ N6

ТЕМА : “ПРОЦЕССОР”

БЛОК ВЫБОРКИ КОМАНД.

БЛОК УПРАВЛЕНИЯ.

БЛОК ВЫБОРКИ КОМАНД

При разработке архитектуры Б.В.К. необходимо учитывать следующие обстоятельства:

1) Процессор производит обмен информацией с памятью за один цикл группой байт, в которой количество байт определяется числом младших разрядов, не участвующих в адресации.

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

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

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

В системах с конвейерной организацией, осуществляющих запуск нескольких команд за один цикл Б.В.К. проделывает предварительную разметку пакета команд, поступающих на декодирование.

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

4)Современные системы работают с виртуальной памятью. Для этого аппаратные средства содержат блок трансляции логических адресов в физические. Адрес команды также подвергается этим преобразованиям при обращении к системной памяти, а вот содержимое регистров адресов команд -это эффективные адреса, то есть блок выборки команд в своих адресах отслеживает адреса команд в рамках страницы, поэтому в случае обнаружения выхода за рамки страницы в процессе модификации адресов Б.В.К. должен сформировать сигнал прерывания в процессоре.

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

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

Блок выборки в таких компьютерах сохраняет в своем составе основные узлы ,которые содержат Б,В.К. в процессоре с последовательным выполнением с одним существенным отличием. Это узел формирования адреса, обращения к КЭШ инструкции. Адрес этот формируется блоком предсказания переходов(ВranchtagetbufferB.Т.В.), исходя из практики что % предсказания ≥90% , данная технология дает положительный результат.

На первоначальном этапе блок выборки команд представлялся счетчиком адреса очередной команды, отслеживающей выполнение команд (программа в процессоре). Источником для загрузки переданной команды для выполнения являлась оперативная память адреса, которая определялась регистром адреса команды ( IP). Выполнение следующей команды, а точнее её выборка из памяти начиналась только после выполнения предыдущей. Повышение производительности вычислений за счет аппаратных средств привело к организации иерархической структуры памяти, а точнее к появлению КЭШ, и нескольким буферным регистрам для команд, дававшим возможность предварительной выборки из памяти очередной порции команд, ждущих выполнение в процессоре. Выборка команд по-прежнему осуществлялась по общей шине команд/данных, связывающих процессор-память, сохраняя классический принцип организации Фон-Неймана, но только с уменьшением количества запросов за командами в память, благодаря наличию буферных регистров для команд.

С другой стороны усложнение системы адресации данных для выполнения на первоначальном этапе, а именно базирования и индексирования привело к необходимости для вычисления адресов использовать основной сумматор блока арифметики. И только внедрение дополнительного оборудования «адресной арифметики» в структуру блока выборки команд позволило освободить основной сумматор и совместить в процессоре этап выполнения очередной команды с этапом подготовки следующей для выполнения, включающий в себя выборку из буферных регистров, декодирование, формирование адреса операндов для обращения в память. Но в такой архитектуре не был по-настоящему применен принцип гарвардской архитектуры, и только с появлением КЭШ команд, являющихся результатом идеи увеличения емкости буферных регистров, привело к появлению отдельной адресной шины команд в структуре блока выборки команд для обращения к этой памяти. Но эта КЭШ команда была и остается не изолированной от системной шины данных/команд, связывающей процессор и память. Шина это по-прежнему остается основной магистралью заполнения командной информации КЭШ команд. кроме того она является поставщиком команд в блок выборки. Команда из основной памяти и КЭШ непосредственно поступают в буферные регистры блока в случае отсутствия (промаха) команд в КЭШ команд. Таким образом, формируя модифицированную гарвардскую архитектуру характеризующуюся наличием связи шины команд и данных в случае необходимости. Таким элементом связи в структуре блока является КВД – коммутатор выдачи данных.

В связи с вышесказанным можно отметить, что БВК имеет основные источники для обработки команд:

А) системная память

Б) буферная память ( КЭШ данных и команд )

В) буферная память команд

Следует отметить, что в дальнейшем в архитектуре компьютера появилась и отдельная КЭШ данных. Таким образом,увеличилась глубина проникновения принципов гарвардской архитектуры.

Б

лок выборки команд имеет в своем составе:

А) Буферные регистры

Б) Схему контроля за продвижение команд в ней

В) Регистры для хранения адресов команд

Адресный узел блока выборки команд

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

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

а) формирование адреса обращения за командой в кэш команд

б) формирование значения адреса при обращении за командой в буферную или системную память с учетом свободного места в буфере FIFOна момент запроса

в) сохранение логического адреса обращения за командой в память вышестоящего уровня (кэш или системную память) и возвращение его в адресный тракт при загрузке команд из нее.

Схема управления продвижения команд в буферных регистрах осуществляет продвижение команд на основе информации полученной из блока микропрограммы управления ( микрооперация IFTN).

Схема и в целом блок БВК работали следующим образом. Для управления БВК в микропрограмме реализующей выполнение команды вводились следующие микроприказы.

А) микроприказ IFTN, по которому происходило продвижение команды по конвейеру, анализ наличия свободных буферов, модификация адреса команды. Анализ наличия команд в БПК и их загрузка из БПК в РБК при двух пустых буферных регистрах.

Б) микрооперация FIB, организующая запрос за командой в КЭШ данных или системную память в случае отсутствия в КЭШ памяти команд.

Эти две микрооперации размещались в следующем порядке

Формирование значения адреса следующей команды определялось не только зависимостью от длины предыдущей, этот алгоритм работал на линейном участке программы. Как известно, существуют команды переходов и особые случаи, возникающие в процессе выполнения команд и механизм прерываний в процессоре. Поэтому блок выборки команд имел дополнительный тракт формирования адреса команды перехода.

В представленной блок схеме таким трактом являлся тракт загрузки регистра РАК2 из процессора через его регистр RZиз местной памяти.

На схеме представлена архитектура буферных регистров блока выборки команд.

Загрузка команд производится через коммутатор, на входы которого заведены разряды шины команд/данных процессора. Прием в буферные регистры ,как видно из схемы, происходит под управлением блока микропрограммного управления в специальных микрооперациях. Сдвиг команд в сторону дешифраторов осуществляет схема , управляемая также блоком микропрограммного управления: она же и определяет наличие свободного места в буфере, корректируя адрес для запроса в память за очередной порцией команд.

Код операции в зависимости от расположения команды в буферных регистрах из за различной длины команд поступает на коммутатор из первой или второй половины буферного регистра РБК1. По той же причине на вход коммутатора смещения подаются разные группы разрядов регистров РБК1и РБК2.

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

Заключение: Рассмотренная архитектура блока выборки команд в свое время была использована в наших отечественных ЭВМ ЕС1045,ЕС1046.В этих ЭВМ был всего лишь двухступенчатый конвейер, совмещающий выполнение текущей командой с выборкой из памяти последующих.

Выбор данной архитектуры не случаен, так как решения, использованные при проектировании во многом схожи с решениями, использованными позже при проектировании современных процессоров, например в PentiumIIиIII, в которых используется наборCISCкоманд, как и выше рассмотренной архитектуре.

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

Классификация блоков управления по способам реализации выполнения команд: cжесткой логикой, микропрограммное управление

Блок управления.

Выполнение машинной команды в процессоре, как было отмечено ранее, разбивается на этапы называющимися машинными циклами.

Реализация этих этапов в процессоре осуществляется двумя способами управления: 1) микропрограмма ; 2) жесткая логика.

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

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

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

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

Микропрограммное управление.

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

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

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

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

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

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

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

Блок микропрограммного управления

1) структура микрокоманды.

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

а) с горизонтальным кодированием;

б) с вертикальным кодированием;

в) вертикально-горизонтальным кодированием;

г) горизонтально-вертикальным кодированием.

1)Структуры с горизонтальным кодированием

Где каждый разряд операционного поля указывает на наличие 1 или отсутствие 0 микрооперации. Достоинства: возможность одновременного выполнения микроопераций в одном такте. Недостаток: большая разрядность микрокоманд.

2)Вертикальное кодирование

Операционное поле представляет двоичный код микрокоманды.

При количестве mразрядов общее число микроопераций =2m.

Недостаток- возможно выполнение только одной микрооперации в такте

Горизонтально-вертикальное кодирование(гибрид двух способов).

При данном способе кодирования операционная часть микрокоманды разбивается на несколько полей, каждое из которых

обычно управляет однородными узлами в процессоре. Например, в поле микроопераций АЛУ кодируются арифметические действия над операндами а их местонахождения кодируются адресами операционных регистров в соответствующих полях микрокоманды.

Для анализа состояния узлов в процессоре отводят поля переходов, по кодам которых происходит аппаратная проверка того или иного флага или триггера в процессоре и в зависимости от его нулевого или единичного состояния формируется сигнал установки разряда

адреса следующей микрокоманды.

Вертикально-горизонтальный способ кодирования.

Принцип данного способа заключается в том, операционное поле микрокоманды разбивается на две части;

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

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

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

Блок-схема блока с микропрограммным управлением

1)Каждое управляющее слово расположено в УП по определенному адресу.

2)Часть разрядов микрокоманд отведена для размещения адреса следующей микрокоманды.

3)Одновременно с выполнением текущей микропрограммы формируется адрес следующей микрокоманды.

4)Для организации ветвления в микропрограмме( ближний переход) в микрокоманде отводят поле для анализа условий переходов(обычно для формирования младших разрядов регистрового адреса микрокоманд).

5)Для перехода в другие микрокоманды используются технологии перехода как и в программах с использованием регистрового адреса возврата.

6)В управления памяти микропрограмм находятся следующие вызовы микропрограмм:

а)микропрограммы операций;

б) микропрограммы выборки команд;

в) микропрограммы обработки прерываний;

г) микропрограммы пульт. операций;

д)микропрограммы продвижение таймеров;

е

Коммутатор адреса микроком.

Из каналов в.выв

) микропрограммное восстановление после машинных ошибок;

ж) диагностические микропрограммы

Блок перехода к микропрограммам с использованием

р

егистра адреса возврата

Установки

ТХР

Адреса

возврата

Микропрограммные управления в Zархитектурах.

Идея использования микрокода в Zархитектурах базируется на следующих положениях:

1) микрокод размещается в системной памяти ( HSA–hardwaresystemaddress) области предназначен для описания аппаратных средств, а не как во всех предыдущих архитектурах в отдельной памяти со своей структурой микрокоманд.

2) Структура микрокода (формат) такой же, как и для всех команд в системе. Имеет вертикальное кодирование, то есть это не микрокоманда, а обычная системная команда.

3) Рутины ( микропрограмм ) могут использовать только те команды, которые непосредственно выполняются в процессоре, то есть использование экстракодов, представляющих комплекс команд, запрещено.

4) Кроме того в набор команд микрокода входит около 70-ти инструкций, которые могут быть использованы в рутинах микрокодах. Эти инструкции обрабатывают уникальные данные, доступ к которым для системных команд запрещен.

5) Для обработки данных в рутинах микрокода выделяются специальные регистры, а так же для хранения адресов с целью доступа к областям памяти пользователя и к областям HSA.

6) Микрокод использует аппаратные средства предсказания переходов в блок ВТВ, так же как и инструкции системных команд.

7) Использование в составе блока восстановления в процессоре регистров доступных микрокоду обеспечить интерфейс для управления аппаратными средствами процессора.

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

Активизация блока управления с жесткой логикой происходит при выполнении команды по коду операции, который подается на дешифратор, на одном из выходов которого формируется управляющий сигнал, действующий во время выполнения команды в процессоре.

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

Количество тактов вырабатываемых распределителем берется из условия выполнения самой сложной команды в процессоре требующей для выполнения наибольшее количество тактов.

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

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

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

Использование П.Л.М. в блоке управления «жесткой логикой»

ЛЕКЦИЯ N7

Тема лекции:

Блок операций.

Конвейерная обработка команд в процессоре.

Блок операций.

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

Преобразования эти в первую очередь связаны с арифметическими и логическими действиями над операндами, поэтому блок операций

идентифицируют как АЛУ.

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

Примером тому могут быть матричный или векторный процессор, которые выполняют однотипные операции над большими массивами данных.

При проектировании процессора общего назначения в котором основная масса операций связана с выполнением разнотипных действий над элементами массива, целесообразно иметь классическое операционное устройство в виде многофункционального АЛУ, в котором в зависимости от выполняемой операции активизируется соответствующий узел или схема.

Например, при обработке последовательных кодов в реальном масштабе применяются АЛУ побитной обработки.

При последовательной обработке команд в процессоре целесообразно иметь многофункциональное многоразрядное АЛУ,

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

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

Логический использует одновременное умножение на два или более разрядов множителя. Комбинационная схема анализирует группу разрядов, активизирует работу сумматора и сдвигателя.

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

Операция умножения в этом случае выполняется за один такт.

Кроме арифметических операций операционный блок выполняет ряд логических действий над операндами. Это И, ИЛИ, сложение по модулю два.

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

Для ускорения выполнения логических операций за счет аппаратных издержек стали использовать отдельный блок логических операций, по другому стали применять блочную структуру операционного устройства. Мы уже говорили о блочном построении АЛУ для операций с плавающей точкой, так вот тенденция этого направления стала определяющей при внедрении конвейерной обработке команд в процессоре.

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

Так, например, при побайтной обработке при расположении операнда в границах двойного слова (а именно такова ширина шины выборки из памяти команд/данных во многих архитектурах) требуется четыре такта. Максимум для подачи байтов слова в УЛК и плюс такт на подачу второй части двойного слова на сдвигатель, то для выравнивания при обработке словами в четыре байта потребуется всего два такта.

Конвейерная обработка.

Конвейерная обработка команд в процессоре.

Конвейерная обработка команд в процессоре и её проектирование относится к так называемому методу «совмещения операций», который кроме вышеуказанной конвейеризации включает еще и параллелизм.

Параллелизм является более высокой ступенью обработки команд в процессоре и совмещения операций в нем достигается путем использования нескольких копий аппаратных средств, из-за чего и достигается высокая производительность. Примером использования параллелизма может служить аппаратная поддержка организаций технологии ……………. в «INTEL», которая за счет дублирования части аппаратных средств позволяла организовывать двух поточную обработку команд и соответственно организации двух логических процессоров на базе одного физического кристалла.

Другим примером может служить принцип работы POWER5SMT. Другими словами технология параллелизма это промежуточная архитектура или организация аппаратного комплекса между конвейерной организацией скалярных и суперскалярных процессоров и многопроцессорной системой..

Конвейерная организация в общем случае основана на разделении подлежащих к исполнению функций на более мелкие части, называющиеся ступенями, и выделений для каждой из них отдельного блока аппаратуры. При этом конвейерную обработку можно использовать для совмещения этапов разных команд. Производительность при этом возрастает не за счет сокращения времени выполнения одной команды, а за счет одновременной обработки команд на конвейере. Подобная технология «расчленения» выполнения команды на более мелкие этапы была еще использована в процессорах СISCархитектуры с микропрограммным управлениям; но эта технология предполагала монополизацию аппаратных средств микропрограммой на все время выполнения команды в процессоре. В принципе организация конвейерной обработки с микропрограммным управлением возможна, но для этого каждая ступень конвейера должна иметь свои микрокоманды и память для их хранения. А это связанно с аппаратными изменениями. Хотя попытки такой организации были. Примером тому был блок акселератора со своей памятью микропрограмм для выполнения операций сдвига, умножения, деления. Акселератор получал управления от основной микропрограммы, реализующей выполнение команды. Микропрограмма акселератора запускалась и шла параллельно выполнению микропрограмм. Для временного согласования работы акселератора и микропрограммы процессора микрокоманды содержат специальные микрооперации, осуществляющие остановку микропрограмм в случае необходимости.

Но в этом случае параллельная обработка осуществлялась только в рамках одной команды, это сокращало время её выполнения. Максимум чего добивалась CISCархитектура это организация двухступенчатого конвейера благодаря применению модифицированной гарвардской архитектуры в структуре блока выборки команд. За счет совершения этапов выборки команды и выполнения. И так в начале 80-х стало ясно, этоCISCархитектура процессора на базе принципа Фон-Неймана – совместной командной шины и данных стала тормозом для дальнейшего повышения производительности работы процессора.

Для осуществления вышеуказанных задач необходимы другие принципы, которые были реализованы в RISCархитектуре. Но с другой стороны те наработки в программном обеспеченииCISCпроцессоров нельзя было откинуть. Пример томуINTEL, которая для сохранения программного продукта оставила «старый» уровень архитектуры команд и для реализации конвейера в своих процессорах стала «резать» свои команды на микрооперации аппаратными средствами после выборки команд из памяти и размещения в буферных регистрах. При этом используемые для этих целей сложные декодеры( 3 штуки ) таким образом осуществляют поставку микроопераций вRISCядро своих процессоров. В случае сложного декодирования команд, которые интерпретировались больше чем три микрооперации, используется микрокод, записанный в специальную память и представляющий набор микроопераций для выполнения этой сложной команды. Для указания принадлежности микроопераций в одной команде используется специальный бит в формате микрооперации, который устанавливается в «1» во всех микрооперациях принадлежащих команде, кроме последней ,в которой он устанавливается в 0 – указывая конец цепочки. Но конвейерная обработка команд в процессоре поставила перед разработчиками процессоров новые задачи, решение которых было связано с устранением конфликтов возникающих при работе конвейеров.

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

1) конфликт по данным

2) структурный конфликт – возникает при распределении аппаратных ресурсов при выполнении команд, когда не возможно их одновременное использование.

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

Структурные конфликты

Прежде чем рассматривать подробно эти конфликты и способы их устранения, определим основные этапы выполнения команды в процессоре

IF-чтение команды из памяти

ID-декодирование и формирование адреса операндов ,подготовка операции для выполнения

EX-выполнение операций

MEM-если операнд находится в оперативной памяти(КЭШ) необходим такт для запроса за операндом.

WB-запись результата операции в регистровый файл.

Предполагаем RISCархитектуру ,с использованием командSTOREиLOAD(чтение и запись результата в память) стадия МЕМ.

Пример: структура конфликта

IFIDEX….EXWB

IFID…….. .EXWB

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

Пример2:

IF ID EX MEM WB LOAD R1(R6)

IFIDEX[задержка из-за того ,]WBADDR2R3R4

[что регистровый файл имеет только один порт записи]

,где []-задержка

Пример3: 1- IFIDEXMEMWB

2- IF ID EX [ ] WB

3- IF ID EX [ ] WB 4- [ ] IF ID EX WB

Конфликт четвертой команды с первой одновременный запрос в память за данными и командой. Конфликт будет устранен при раздельном хранении команд и данных(гарвардская архитектура)

Конфликт по данным

ADDR1R2R3IFIDEXWB

SUB R4 R1 R5 IF [ ] ID EX WB

Невозможна одновременная запись и чтение в R1.

Вариант обхода конфликта

Конфликты по управлению

Конфликты по управлению, как было сказано раннее, связаны с командой перехода, которые в любой системе команд являются условными или безусловными.

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

Рассмотрим пример четырех случаев конвейера с предположением , что целевой адрес вычисляется на этапе работы блока выполнения(Е)

Команды перехода:

Еще больше задержки возникают при выполнении условного перехода ,когда результат зависит от выполнения предыдущей команды в большинстве случаев и переход может быть определен только после анализа результата, тогда количество удаляемых команд будет зависеть от времени получения результата.

В связи с изложенной проблемой возникает задача: разработка способов, позволяющих уменьшить данные издержки.

Динамические предсказания переходов

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

Такая схема эффективна в циклах.

Существует несколько способов организации таких таблиц .В сущности ее можно организовать в форме КЭШ памяти, где в качестве тега храниться адрес команды перехода. Данная схема эффективно в том случае если задержка в вычислении целевого адреса минимальна.

Для улучшения работы схем в КЭШ можно записывать целевой адрес,вычисленный при 1 процессе.

СЧАК- счетчик адреса команд

БВК- блок выборки команд

Однобитовая схема

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

Для увеличения вероятности предсказания применяется двухбитная схема предсказания.

00-очень малая вероятность перехода, предсказание отсутствует .

01-малая вероятность перехода

10-большая вероятность перехода, предсказание делают переход

11- очень большая вероятность , предсказание делают переход.

нет перехода

Б

ЕЗУПОРЯДОЧЕННОЕ ВЫПОЛНЕНИЕ

Еще одним способом повышения производительности работы конвейера является использование метода без упорядоченного выполнения команд в процессоре, суть которого заключается в обработке команд на конвейере с изменением последовательности программного кода. Для наглядности приведем промер:

1 2 3 4 5 6 7 8 9 10 11

1.Load R1 m RAW ID m m m m m w

2. ADD R3R1R2 ID EX W

3.SUB R4R5R6 ID EX W

В данной последовательности команд команды 1, 2 имеют зависимости RAW которая не может быть устранена т.к. 2ая команда ждет операнда из памяти, обращение к которому может занимать несколько циклов, а в случае «промаха» в кэш, количество их будет увеличено.

Сдругой стороны команда 3 не связана по данным с 1й и 2й командой, и перестановка ее в позицию 2 не скажется на результате программы. Таким образом будет устранен простой конвейера.

1 2 3 4 5 6 7 8 9

Load R1 m ID m m m m m W

SUB R4R5R6 ID EX W

ADD R3R1R2 ID EX W

Предположение что возможно одновременно чтение и запись в регистровый файл.