Уровни организации ЭВМ.

Архитектура ЭВМ.

 

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

Структура организации вычислительной системы (ВС):

 

  Прикладные программы  
  Системы программирования  
  Управление логическими устройствами  
  Управление физическими устройствами  
Аппаратные средства
                 

 

 

Основой функционирования любой ЭВМ является ее способность выполнять заданные действия. Аппаратные средства любой ЭВМ способны выполнять только ограниченный набор сравнительно простых команд. Эти примитивные команды составляют так называемый машинный язык машины. Говоря о сложности аппаратуры компьютера, машинные команды целесообразно делать как можно проще, но примитивность большинства машинных команд делают их использование неудобным и трудным. Вследствие чего разработчики вводят другой набор команд более удобный для человеческого. Большинство современных ЭВМ включают 6-7 уровней виртуализации. Нижние уровни, начиная с машинного более консервативны к изменениям. Многие коммерческие ЭВМ принципиально могут не иметь уровня нанопрограммирования, но и даже микропрограммирования (по крайней мере, на уровне пользователя). В современных ЭВМ машинные команды, как правило, интерпретируются с помощью микропрограмм. Уровень ОС обычно является смешанным уровнем, т.к. большинство супервизорных команд являются командами машинного уровня. В состав уровня ОС дополнительно включаются команды, которые фактически являются некоторыми типовыми программами машинного уровня (команды ввода-вывода, переключения между программами). Во многих ЭВМ были варианты, когда отдельные программы ОС непосредственно интерпретируются микропрограммами. В современных ЭВМ прослеживается тенденция все боле тесной связи уровня ОС с микропрограммным уровнем. Можно также найти массу команд уровня ОС, реализованных, на уровне ассемблирования. Простые пользователи, как правило, ограничиваются уровнем изучения начиная с машинного. Нижние уровни необходимы для разработчиков.

 

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

 

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

 

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

  Прикладные программы  
  Системы программирования  
  Управление логическими устройствами  
  Управление физическими устройствами  
Аппаратные средства
                 

 

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

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

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

 

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

 

Определяя ЭВМ как цифровую вычислительную машину дискретного действия (полное имя ее ЭЦВМ) следует помнить, что буква Э служила для исключения от рассмотрения класса ЦВМ, сконструированных на механических (машина Бэббиджа) и электромеханических (Марк-1) элементах. Только совокупность электронных элементов, выполненных на радиолампах и транзисторах, дает право на букву "Э". Усложнение периферии ЭВМ и появление многопроцессорных систем породили осторожный термин "вычислительные системы", "платформы", "вычислительные среды" и т.д. Вероятно, в настоящее время, наиболее полное интуитивное понятие ЭВМ - это цифровая вычислительная машина, выполненная как единое устройство. С другой стороны, в понятие ЭВМ можно включить и специализированный микропроцессор управления "рукой" робота, и персональный компьютер, и суперкомпьютер, который, как элемент сети может именоваться также мэйнфреймом. Общим при этом является функциональное назначение ЭВМ - обеспечение потребностей прикладной области. На современном компьютерном рынке наблюдается большое разнообразие различных типов компьютеров. Поэтому возникает вопрос — как оценить возможности конкретной модели компьютера, и каковы его отличительные особенности от компьютеров других типов. Рассмотрения для этого одной лишь только структурной схемы компьютера недостаточно, так как она мало, чем различается у разных машин: у всех компьютеров есть оперативная память, процессор, внешние устройства. Различными являются способы, средства и используемые ресурсы, с помощью которых компьютер функционирует как единый механизм. Чтобы собрать воедино все понятия, характеризующие компьютер с точки зрения его функциональных программно-управляемых свойств, существует специальный термин — архитектура ЭВМ. Впервые понятие архитектура ЭВМ стало упоминаться с появлением машин 3-го поколения для их сравнительной оценки. Архитектурой ЭВМ принято считать совокупность принципов системной, функциональной, логической и физической организации аппаратных и программных средств ЭВМ, в частности и способ организации работы процессора и его система команд, организация памяти, системы адресации, и ввода – вывода данных. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.

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

Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники являются архитектуры CISC и RISC. Основоположником CISC-архитектуры можно считать компанию IBM с ее базовой архитектурой /360, ядро которой используется с1964 года и дошло до наших дней, например, в таких современных мейнфреймах как IBM ES/9000.

Лидером в разработке микропроцессоров c полным набором команд (CISC - Complete Instruction Set Computer) считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно: сравнительно небольшое число регистров общего назначения; большое количество машинных команд, некоторые из которых нагружены семантически аналогично операторам высокоуровневых языков программирования и выполняются за много тактов; большое количество методов адресации; большое количество форматов команд различной разрядности; преобладание двухадресного формата команд; наличие команд обработки типа регистр-память.

Основой архитектуры современных рабочих станций и серверов является архитектура компьютера с сокращенным набором команд (RISC - Reduced Instruction Set Computer). Зачатки этой архитектуры уходят своими корнями к компьютерам CDC6600, разработчики которых (Торнтон, Крэй и др.) осознали важность упрощения набора команд для построения быстрых вычислительных машин. Эту традицию упрощения архитектуры С. Крэй с успехом применил при создании широко известной серии суперкомпьютеров компании Cray Research. Однако окончательно понятие RISC в современном его понимании сформировалось на базе трех исследовательских проектов компьютеров: процессора 801 компании IBM, процессора RISC университета Беркли и процессора MIPS Стенфордского университета.

Разработка экспериментального проекта компании IBM началась еще в конце 70-х годов, но его результаты никогда не публиковались и компьютер на его основе в промышленных масштабах не изготавливался. В 1980 году Д.Паттерсон со своими коллегами из Беркли начали свой проект и изготовили две машины, которые получили названия RISC-I и RISC-II. Главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и использование регистровых окон. В 1981году Дж.Хеннесси со своими коллегами опубликовал описание стенфордской машины MIPS, основным аспектом разработки которой была эффективная реализация конвейерной обработки посредством тщательного планирования компилятором его загрузки.

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

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

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

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

Следует отметить, что в последних разработках компании Intel (имеется в виду Pentium P54C и процессор следующего поколения P6), а также ее последователей-конкурентов (AMD R5, Cyrix M1, NexGen Nx586 и др.) широко используются идеи, реализованные в RISC-микропроцессорах, так что многие различия между CISC и RISC стираются. Однако сложность архитектуры и системы команд x86 остается и является главным фактором, ограничивающим производительность процессоров на ее основе.

 

Наиболее распространены следующие архитектурные решения.

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

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

Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры — устройства управления периферийными устройствами.