|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Подходы к функциональной организации ВМФункциональная организация ВМ
Большинство современных ВМ по своей структуре отвечают принципу программного управления. Устройства ВМ, с помощью которых он может быть реализован определены еще фон Нейманом (см.рис.4.42) и включают: память, устройство управления (УУ), арифметико-логическое устройство (АЛУ) и устройство ввода/вывода (УВВ).
Рис. 4.42 Фон-неймановская ВМ УВВ или модулем ввода/вывода (МВВ) ВМ называют совокупность портов ввода и вывода. Термином порт обозначают аппаратуру сопряжения периферийного устройства с ВМ и управления им. Периферийные устройства (ПУ) в свою очередь позволяют обмениваться ВМ информацией с окружающим миром. Информация из УВВ запоминается в основной памяти (ОП), а затем переносится во вторичную память (ВП), для длительного хранения. Чтобы программа могла исполняться, ее команды и данные должны располагаться в ОП. ОП современных ВМ в основном состоит из полупроводниковых оперативных запоминающих устройств (ОЗУ), обеспечивающих как считывание, так и запись информации. Для таких ЗУ характерна энергозависимость - хранимая информация теряется при отключении электропитания. Если необходимо, чтобы часть основной памяти была энергонезависимой, в состав ОП включают постоянные запоминающие устройства (ПЗУ). Хранящаяся в ПЗУ информация может только считываться (но не записываться). Для долговременного хранения больших программ и массивов данных в ВМ обычно имеется ВП. Она энергонезависима и чаще всего реализуется на базе магнитных дисков. УУ - важнейшая часть ВМ, организующая автоматическое выполнение программ (путем реализации функций управления) и обеспечивающая функционирование ВМ как единой системы. Для пояснения функций УУ ВМ следует рассматривать как совокупность элементов, между которыми происходит пересылка информации, в ходе которой эта информация может подвергаться определенным видам обработки. Пересылка информации между любыми элементами ВМ инициируется своим сигналом управления (СУ), то есть управление вычислительным процессом сводится к выдаче нужного набора СУ в нужной временной последовательности. Цепи СУ показаны на рис. 4.42 пунктирными линиями. Основной функцией УУ является формирование управляющих сигналов, отвечающих за извлечение команд из памяти в порядке, определяемом программой, и последующее исполнение этих команд. Кроме того, УУ формирует СУ для синхронизации и координации внутренних и внешних устройств ВМ. АЛУ обеспечивает арифметическую и логическую обработку двух входных переменных, в результате которой формируется выходная переменная. Функции АЛУ обычно сводятся к простым арифметическим и логическим операциям, а также операциям сдвига. Помимо результата операции АЛУ формирует ряд признаков результата (флагов), характеризующих полученный результат и события, произошедшие в процессе его получения (равенство нулю, знак, четность, перенос, переполнение и т. д.). Флаги могут анализироваться в УУ с целью принятия решения о дальнейшей последовательности выполнения команд программы. УУ и АЛУ тесно взаимосвязаны и их обычно рассматривают как единое устройство, известное как просто процессор. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения (РОН), служащих для промежуточного хранения информации в процессе ее обработки. Достоинством данного подхода к функциональной организации ВМ можно считать возможность развязки «узких мест» путем улучшения структуры и характеристик только определенных связей, что экономически может быть наиболее выгодным решением. Здесь таким «узким местом» является канал пересылки данных между процессором и памятью, и «развязать» его достаточно непросто (как правило, применяют каналы ввода/вывода позволяющие разделить процессы ввода-вывода информации и ее обработки). Кроме того, такая ВМ плохо поддаются реконфигурации. Наряду с классическим фон-неймановским подходом (яркий пример ВМ с непосредственными связями) в настоящее время примерно одинаковое распространение получил способ построения вычислительных машин на основе шины. Здесь все устройства ВМ подключены к магистральной шине, служащей единственным трактом для потоков команд, данных и управления (рис. 4.43). Наличие общей шины существенно упрощает реализацию ВМ, позволяет легко менять состав и конфигурацию машины. Благодаря этим свойствам шинная архитектура получила широкое распространение в мини- и микроЭВМ.
Рис. 4.42 ВМ на основе общей шины Вместе с тем, именно с шиной связан и основной недостаток архитектуры: в каждый момент передавать информацию по шине может только одно устройство. Основную нагрузку на шину создают обмены между процессором и памятью, связанные с извлечением из памяти команд и данных и записью в память результатов вычислений. На операции ввода/вывода остается лишь часть пропускной способности шины. Для разрешения этого противоречия при построении ВМ используют иерархию шин, где помимо магистральной шины имеется еще несколько дополнительных шин. Они могут обеспечивать непосредственную связь между устройствами с наиболее интенсивным обменом, например процессором и кэш-памятью. Другой вариант использования дополнительных шин - объединение однотипных УВВ с последующим выходом с дополнительной шины на магистральную. Все эти меры позволяют снизить нагрузку на общую шину и более эффективно расходовать ее пропускную способность. Представленные выше подходы не до конца формируют картину функциональной организации ВМ, так как рассматривают проблему построения вычислительных машин лишь со стороны создателей аппаратуры, без учета нужд разработчиков программного обеспечения. Средства вычислительной машины, которые видны и доступны программисту, принято называть системой команд (еще системой команд ВМ называют полный перечень команд, которые она способна выполнять). Ее можно рассматривать как линию согласования нужд разработчиков программного обеспечения с возможностями создателей аппаратуры вычислительной машины. На сегодня сформировались два подхода к классификации систем команд: 1) по составу операций, выполняемых вычислительной машиной, и их сложности; 2) по месту хранения операндов. Первый подход связан с проблемой семантического разрыва (переход к языкам программирования высокого уровня (ЯВУ) породил серьезную проблему: сложные операторы, характерные для них, существенно отличаются от простых машинных операций, реализуемых в большинстве вычислительных машин). Здесь различают системы: · с полным набором команд: CISC (Complex Instruction Set Computer); · с сокращенным набором команд: RISC (Reduced Instruction Set Computer); · с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word). В вычислительных машинах типа CISC проблема семантического разрыва решается за счет расширения системы команд, дополнения ее сложными командами, семантически аналогичными операторам ЯВУ. Для CISC ВМ типично: наличие в процессоре сравнительно небольшого числа регистров общего назначения; большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ; разнообразие способов адресации операндов; множество форматов команд различной разрядности; наличие команд, где обработка совмещается с обращением к памяти. Рассмотренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности ВМ в целом. В RISC ВМ проблема семантического разрыва решается за счет ограничении списка команд ВМ наиболее часто используемыми простейшими командами, оперирующими данными, размещенными только в регистрах процессорах. Обращение к памяти допускается лишь с помощью специальных команд чтения и записи. Это приводит к резкому уменьшению количества форматов команд и способов указания адресов операндов. Сокращение числа форматов команд и их простота, использование ограниченного количества способов адресации, отделение операций обработки данных от операций обращения к памяти позволяет существенно упростить аппаратные средства ВМ и повысить их быстродействие. Концепция VLIW базируется на RISC -архитектуре, где несколько «простых» RISC -команд объединяются в одну сверхдлинную команду и выполняются параллельно. В плане системы команд VLIW сравнительно мало отличается от RISC. Появляется лишь дополнительный уровень параллелизма вычислений, в силу чего VLIW логичнее относить не к вычислительным машинам, а к вычислительным системам. Второй подход дает ответ на вопрос о том, где могут храниться операнды и каким образом к ним осуществляется доступ. С этих позиций различают следующие виды систем команд: · стековую; · аккумуляторную; · регистровую; · с выделенным доступом к памяти. Выбор той или иной архитектуры влияет на принципиальные моменты: сколько адресов будет содержать адресная часть команд, какова будет длина этих адресов, насколько просто будет происходить доступ к операндам и какой, в конечном итоге, будет общая длина команд. Стеком называется память, образованная множеством логически взаимосвязанных ячеек, взаимодействующих по принципу «последним вошел, первым вышел» (LIFO, Last In First Out). Верхнюю ячейку стека называют вершиной стека. Для работы со стеком предусмотрены две операции: push (проталкивание данных в стек) и pop (выталкивание данных из стека). Запись возможна только в верхнюю ячейку стека, при этом вся хранящаяся в стеке информация предварительно проталкивается на одну позицию вниз. Чтение допустимо также только из вершины стека. Извлеченная информация удаляется из стека, а оставшееся его содержимое продвигается вверх. В вычислительных машинах, где реализована система команд на базе стека (их обычно называют стековыми), операнды перед обработкой помещаются в две верхних ячейки стековой памяти. Результат операции заносится в вершину стека. Основные узлы и информационные тракты одного из возможных вариантов стековой ВМ показаны на рис. 4.43. Рис. 4.43 Стековая ВМ К достоинствам такой ВМ следует отнести возможность сокращения адресной части команд, поскольку все операции производятся через вершину стека, то есть адреса операндов и результата в командах арифметической и логической обработки информации указывать не нужно. Код программы получается компактным. Достаточно просто реализуется декодирование команд. С другой стороны, стековая ВМ по определению не предполагает произвольного доступа к памяти, из-за чего компилятору трудно создать эффективный программный код, хотя создание самих компиляторов упрощается. Кроме того, стек становится «узким местом» ВМ в плане повышения производительности. В силу упомянутых причин, в чистом виде стековые ВМ встречаются крайне редко (JEM1, JEM2, Clip, IGNITE), хотя команды работы со стеком присуще практически всем существующим сегодня ВМ (их системам команд). Аккумулятор это выделенный регистр в составе процессора для хранения одного из операндов арифметической или логической операции. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда. Изначально оба операнда хранятся в основной памяти, и до выполнения операции один из них нужно загрузить в аккумулятор. После выполнения команды обработки результат находится в аккумуляторе и, если он не является операндом для последующей команды, его требуется сохранить в ячейке памяти. Типичная архитектура ВМ на базе аккумулятора показана на рис. 4.44. Рис. 4.44 ВМ на базе аккумулятора Достоинствами аккумуляторной ВМ можно считать короткие команды и простоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти. Тем не менее, практически все современные образцы процессоров имеют в своем составе регистр-аккумулятор. Регистры общего назначения это массив регистров (регистровый файл), для хранения недавно использовавшихся данных. Размер регистров обычно фиксирован и совпадает с размером машинного слова. К любому регистру можно обратиться, указав его номер. Количество РОН в архитектурах типа CISC обычно невелико (от 8 до 32), и для кодирования номера конкретного регистра необходимо не более пяти разрядов, благодаря чему в адресной части команд обработки допустимо одновременно указать номера двух а зачастую и трех регистров (двух регистров операндов и регистра результата) RISC -архитектура предполагает использование существенно большего числа РОН (до нескольких сотен), однако типичная для таких ВМ длина команды позволяет определить в команде до трех регистров. Регистровая ВМ допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах. С учетом возможного размещения операндов здесь выделяют три подвида команд обработки: · регистр-регистр; · регистр-память; · память-память. Вариант «регистр-регистр» является основным в вычислительных машинах типа RISC. Команды типа «регистр-память» характерны для CISC -машин. Наконец, вариант «память-память» считается неэффективным, хотя и остается в наиболее сложных моделях машин класса CISC. Возможную структуру и информационные тракты регистровой ВМ иллюстрирует рис. 4.45. Рис. 4.45 Регистровая ВМ Две из трех шин, расположенных между массивом РОН и АЛУ обеспечивают передачу в арифметико-логическое устройство операндов. Третья служит для занесения результата в выделенный для этого регистр. Эти же шины позволяют загрузить в регистры содержимое ячеек основной памяти и сохранить в ОП информацию, находящуюся в РОН. Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами. К достоинствам регистровых ВМ следует отнести: компактность получаемой кода, высокую скорость вычислений за счет замены обращений к основной памяти на обращения к быстрым регистрам. С другой стороны, данная архитектура требует более длинных инструкций по сравнению с аккумуляторной архитектурой. Примерами машин на базе РОН могут служить все современные персональные компьютеры. Правомочно утверждать, что в наши дни этот вид ВМ является преобладающим. В ВМ с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load и store. В английской транскрипции данную архитектуру называют Load/Store architecture. Команда load (загрузка) обеспечивает считывание значения из основной памяти и занесение ее в регистр процессора (в команде обычно указывается адрес ячейки памяти и номер регистра). Пересылка информации в противоположном направлении производится командой store (сохранение). Операнды во всех командах обработки информации могут находиться только в регистрах процессора (чаще всего в РОН). Результат операции также заносится в регистр. В данной ВМ отсутствуют команды обработки, допускающие прямое обращение к основной памяти. Допускается наличие в системе команд ограниченного числа команд, где операнд является частью кода команды. Структура и информационные тракты ВМ с выделенным доступом к памяти практически идентичны регистровой ВМ (основное отличие – отсутствие регистра данных). Система команд с выделенным доступом к памяти характерна для всех вычислительных машин с RISC -архитектурой. Команды в таких ВМ, как правило, имеют трехадресный формат. Основное достоинство таких ВМ - простота декодирования и исполнения команды. Несмотря на различие в системах команд разных ВМ, некоторые основные типы операций могут быть найдены в любой из них: · команды пересылки данных; · команды арифметической и логической обработки; · команды работы со строками; · команды SIMD; · команды преобразования; · команды ввода/вывода; · команды управления системой; · команды управления потоком команд. Команды пересылки данных - обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Это наиболее распространенный тип машинных команд. В таких командах должна содержаться следующая информация: · адреса источника и получателя операндов (адреса ячеек памяти, номера регистров процессора или информация о том, что операнды расположены в стеке); · длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно; · способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда. Команды арифметической и логической обработки - обеспечивают арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в системе команд обычно предусматривается некий стандартный набор операций: · операции с целыми числами; · операции с числами в форме с плавающей запятой; · логические операции; · операции сдвигов; · операции с десятичными числами. Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: Z (Zero) - нулевой результат; N (Negative) - отрицательный результат; V (oVer-flow) - переполнение разрядной сетки; С (Carry) - наличие переноса. Команды для работы со строками обеспечивают перемещение, сравнение и поиск строк. В большинстве машин перечисленные операции просто имитируются за счет других команд. SIMD-команды (Single Instruction Multiple Data - буквально «одна инструкция - много данных») - обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами), в отличие от обычных команд, оперирующих двумя числами. Операнды таких команд обычно представлены в одном из упакованных форматов. Команды типа SIMD стали неотъемлемым элементом систем команд микропроцессоров фирм Intel и AMD. Поводом послужило широкое распространение мультимедийных приложений. Видео, трехмерная графика и звук в ВМ представляются большими массивами данных, элементы которых чаще всего обрабатываются идентично. SIMD-команды позволяет существенно ускорить подобные вычисления. Команды преобразования осуществляют изменение формата представления данных. Примером может служить преобразование из десятичной системы счисления в двоичную или перевод 8-разрядного кода символа из кодировки ASCII в кодировку EBCDIC, и наоборот. Команды ввода/вывода могут быть подразделены на команды управления периферийным устройством (служат для запуска ПУ и указания ему требуемого действия), проверки его состояния (применяются для тестирования различных признаков, характеризующих состояние МВВ и подключенных к нему ПУ.), ввода и вывода (обмен информацией с ПУ). Команды управления системой являются привилегированными и могут выполняться, только когда центральный процессор ВМ находится в привилегированном состоянии или выполняет программу, находящуюся в привилегированной области памяти (обычно привилегированный режим используется лишь операционной системой). Так, лишь эти команды способны считывать и изменять состояние ряда регистров устройства управления. Команды управления потоком команд позволяют нарушить естественный порядок следования команд и передать управление в иную точку программы. В адресной части таких команд содержится адрес точки перехода (адрес той команды, которая должна быть выполнена следующей). Переход реализуется путем загрузки адреса точки перехода в счетчик команд (вместо увеличения содержимого этого счетчика на длину команды). В системе команд ВМ можно выделить три типа команд, способных изменит последовательность вычислений: · безусловные переходы; · условные переходы (ветвления); · вызовы процедур и возвраты из процедур. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |