авторефераты диссертаций БЕСПЛАТНАЯ  БИБЛИОТЕКА

АВТОРЕФЕРАТЫ КАНДИДАТСКИХ, ДОКТОРСКИХ ДИССЕРТАЦИЙ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ

Астрологический Прогноз на год: карьера, финансы, личная жизнь


Pages:   || 2 |
-- [ Страница 1 ] --

Чекменев С. Е.

«Архитектура вычислительных систем»

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

05.13.01 «Системный анализ,

управление и обработка информации»

Лекция 1

Структура курса:

Основные определения и понятия. История развития

1.

вычислительных систем (ВС) история развития ЭВМ;

принципы деления ЭВМ на различные поколения;

классическая архитектура фон Неймана (АФН), ее достоинства и ограничения.

2. Вычислительные системы традиционной архитектуры устройство и базовый цикл работы центрального процессора (ЦП);

архитектура набора инструкций;

архитектура памяти;

организация внешнего обмена;

организация устройства управления (УУ).

3. Высокопроизводительные ВС закон Амдала;

варианты классификации ВС;

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

4. ВС нетрадиционной архитектуры Архитектура и прогаммирования компьютера потока данных.

5. САПР вычислительных систем проблема проектирования сложных ВС;

моделирование работы цифровых схем;

языки описания дискретных устройств (HDL);

системы VHDL и Verilog.

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

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

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

Именно на таких «профессиональных пользователей» в первую очередь ориентирован данный курс лекций. И именно этим определяется название дисциплины – «АРХИТЕКТУРА вычислительных систем (ВС)».

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

На первое место при этом выдвигаются следующие аспекты рассмотрения предмета:

- единство и взаимозаменяемость программных и аппаратных средств ВС;

- определяющая роль межмашинного и человеко-машинного взаимодействия (интерфейсный подход);

- иерархическая (многоуровневая) организация ВС;

- эволюционный подход.

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

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

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

1. Основные определения и понятия. История развития вычислительных систем (ВС) 1.1 Понятие ВС и их классификация В узком смысле под ВС понимают совокупность технических средств, в которую входит не менее двух процессоров, связанных общей системой управления и использования общесистемных ресурсов (память, периферийные устройства, программное обеспечение и т.п.) [1,2].

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

Комментарий. Любая попытка классификации как естественных, так и антропогенных систем – задача, не имеющая точного и однозначного решения. Часто приводится пример из «китайской энциклопедии» Борхеса, где содержится классификация животных, согласно которой животные делятся на: а) принадлежащих Императору;

б) набальзамированных;

в) прирученных;

г) молочных поросят;

д) сирен;

е) сказочных;

ж) бродячих собак;

з) включнных в эту классификацию;

и) бегающих как сумасшедшие;

к) бесчисленных;

л) нарисованных тончайшей кистью из верблюжьей шерсти;

м) прочих;

н) разбивших цветочную вазу;

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



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

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

Начнм с анализа терминов, входящих в название курса «Архитектура вычислительных систем».

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

Если вам показалось, что это определение слишком абстрактное, то вот другие.

Например, в системном анализе существуют такие определения системы:

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

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

система — отражение в сознании субъекта (исследователя, наблюдателя) свойств объектов и их отношений в решении задачи исследования, познания.

Лекция 1.2 Основные свойства систем Связанные с целями и функциями:

- синергичность — максимальный эффект деятельности системы достигается только в случае максимальной эффективности совместного функционирования е элементов для достижения общей цели;

- эмерджентность — появление у системы свойств, не присущих элементам системы;

принципиальная несводимость свойства системы к сумме свойств составляющих е компонентов (неаддитивность);

- целенаправленность — наличие у системы цели (целей) и приоритет целей системы перед целями е элементов;

- альтернативность путей функционирования и развития (организация или самоорганизация).

Связанные со структурой:

- структурированность — возможна декомпозиция системы на компоненты, установление связей между ними;

- иерархичность — каждый компонент системы может рассматриваться как система;

сама система также может рассматриваться как элемент некоторой надсистемы (суперсистемы).

Связанные с ресурсами и особенностями взаимодействия со средой:

- коммуникативность — существование сложной системы коммуникаций со средой.

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

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

- интерактивность;

- обособленность — свойство, определяющее наличие границ с окружающей средой.

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

Иначе говоря, система должна обладать возможностью изменять сво состояние в ответ на возможное возмущение;

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

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

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

Например, двухразрядный счтчик по модулю 4 не различает количество состояний более 4-х.

Сложная система (СС). Ещ более загадочное понятие.

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

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

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

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

элементов.

Типичные примеры СС:

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

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

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

синтеза управляющих воздействий.

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

библиотеку стандартных программ, а также средства автоматизации программирования (алгоритмические языки, трансляторы, среды разработки ПО, CASE-средства);

средства обслуживания и контроля вычислений и др.

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

системный анализ, системотехника, общая теория систем и др.

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

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

многообразие возможных форм связи элементов системы между собой;

сложное функционирование;

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

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

В области ИТ полезно опредление СС, данное Г.Бучем [7]:

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

иерархичность;

субъективное ограничение иерархичности;

наличие сильных и слабых связей;

принцип развития.

Это уже гораздо лучше. Хоть что-то конкретное появляется. Надо комментировать каждый из принципов Буча? (Разврнутый комментарий).

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

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

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

Как говорил великий компьютерный учный и конструктор Сеймур Крэй:

«Каждый может сделать быстрый процессор. Проблема - сделать быструю систему» (см. ниже о нм).

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

Одна из основных задач курса – показать, как этот компромисс достигается в некоторых конкретных конструктивных решениях.

Лекция Понятие архитектуры ВС. Пожалуй, нет в области ВТ понятия более неопределенного и вольно трактуемого, чем архитектура. Нередко можно встретить такие выражения, как «архитектура фон Неймана», «архитектура ЭВМ 1-го поколения», «32-разрядная архитектура», «скалярная архитектура», «архитектура с общей шиной» и т.д. Понятно, что в каждом из перечисленных случаев речь идт о разных точках зрения на предмет (см. наше предыдущее обсуждение классификационных систем), но, тем не менее, всякий раз используется термин «архитектура» [3].

Рассмотрим некоторые устоявшиеся варианты применения термина «архитектура».

1. Архитектура, как наиболее общее представление ВС, характеризующее е с определнной точки зрения. Здесь, следуя Карцеву [2], будем определять архитектуру как совокупность характеристик ВС, существенных с точки зрения пользователя, т.е. ключевым понятием является способ использования ВС.

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

«интерфейсный подход».

3. Более узкое понятие архитектуры относится к специальным аспектам рассмотрения ВС: адресность, разрядность ЦП, тип набора инструкций (RISC, CISC, WLIV и т.д.) Примечание. Не будет преувеличением сказать, что развитие ВС во многом стимулировалось преодолением т.н. «узкого места АФН». Т.е., сначала оно было создано, а потом с ним боролись всю оставшуюся жизнь.

Отметим также, что с середины 60-х годов прошлого века, когда, собственно, и появилось понятие «архитектура ВС», стало очевидно, что оно объединяет в себе как аппаратную, так и программную часть ВС.

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

Здесь нам понадобятся следующие простые рассуждения.

Рассмотрим стандартный цикл работы дискретного вычислителя.

Типичные операции, например, сложение и умножение требуют от любого (!) вычислительного устройства стандартной последовательности действий:

1) выборка инструкции из основной памяти;

2) выборка операндов из ОП и/или регистров (для арифметики, обычно, двух);

3) выполнение инструкции;

4) фиксация результата (запись в память, в регистр;

не обязательно).

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

Всегда надо иметь (взять откуда-то) то, что обрабатывается;

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

Ещ один подход к классификации архитектур. Принстонская и гарвардская архитектура. В 30-х годах прошлого века правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии. И в конце 1930-х годов в Гарвардском университете Говардом Эйкеном была разработана архитектура, называемая по имени этого университета (реализация – 1944, 5 тонн, 700 км.

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

Гарвардская архитектура использовалась советским учным А. И. Китовым в ВЦ-1 МО СССР.

В чм же отличие?

Вспомним базовый вычислительный цикл (см. выше).

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

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





В некоторых системах инструкции могут храниться в памяти «только для чтения» (ROM – Read Only Memory), в то время как, для сохранения данных, обычно требуется память с возможностью как чтения, так и записи (RAM – Random Access Memory). В некоторых системах требуется значительно больше памяти для инструкций, чем памяти для данных (поскольку данные обычно могут подгружаться с внешней, более медленной памяти). Это, конечно, приводит к увеличению разрядности шины адреса памяти инструкций по сравнению с шиной адреса памяти данных.

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

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

канал передачи (шина) инструкций и канал данных также физически разделены;

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

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

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

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

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

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

Дж. фон Нейман Ему потребовались мощные вычислительные ресурсы, а существующие не устраивали. Что делать? Он решил вмешаться в процесс становления ВТ.

Основные положения АФН были сформулированы автором в известной работе «Предварительный отчт по проекту EDVAC» (First Draft...) [33].

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

Обычно АФН отождествляется с так называемым принципом хранимой программы. Хотя это, безусловно, очень важный признак, не следует забывать и об остальных особенностях этой архитектуры, которые перечислены ниже (как ранее говорилось, в очень адаптированном варианте, возможно, отличным от других интерпретаций):

1) единообразие представления программ и данных: как программы, так и данные любого вида представляются и обрабатываются в ЭВМ в виде чисел (точнее – кодов);

2) принцип хранимой программы: программы, так же, как и данные, хранятся в единой (основной) памяти ЗУ;

3) линейная организация памяти: машинные слова расположены в памяти последовательно в виде одномерного массива в едином линейно упорядоченном пространстве адресов, которым присвоены порядковые номера 0, 1, 2, 3,...;

4) последовательное выполнение: программные инструкции извлекаются из памяти и выполняются последовательно одна за другой в соответствии с порядком их расположения, если не встретится специальная инструкция перехода;

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

комментарии);

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

6) электронная реализация вычислительной схемотехники: вычислительная машина является полностью электронным устройством.

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

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

Адресуемость памяти. Структурно, основная память состоит из пронумерованных ячеек;

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

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

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

Наличие т.н. узкого места АФН (УМАФН, англ. – bottleneck) (рис. 1), т.е.

магистрали передачи команд/данных между АЛУ и ОП. (Внимание! См.

Гарвардская архитектура!) Компьютеры, построенные на этих принципах, относят к типу фон Неймановских.

Сейчас чаще называют такие архитектуры тьюринговскими. (вопрос: почему?) Несмотря на то, что АФН доминирует в настоящее время, ей присущи существенные недостатки. Возможно, развитие архитектуры ЭВМ вытекает из анализа этих недостатков.

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

Ответ – бывает нужно, а когда – ответить самостоятельно.

ПРОЦЕССОР УСТРОЙСТВО УПРАВЛЕНИЯ ОСНОВНАЯ ПАМЯТЬ УСТРОЙСТВО АРИФМЕТИКО внешняя ВВОДА- ЛОГИЧЕСКОЕ среда УСТРОЙСТВО ВЫВОДА УМАФН Рис. 1. ЭВМ архитектуры фон Неймана.

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

Лекция 1.5 История развития ВС. Поколения ЭВМ Доисторический (докомпьютерный) период развития дискретных вычислительных устройств мы просто пропускаем, т.к. эти вопросы хорошо представлены в многочисленной научно-популярной литературе. Палочки, счты, абак, «Феликс» и т.д.

Также, пропускаем, к сожалению, историю аналоговых ЭВМ. А ведь когда-то любой учебник по ЭВМ начинался словами: «ЭВМ бывают аналоговыми и цифровыми …»

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

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

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

1.5.1 ЭВМ 1-го поколения (1945-1954) Основу элементной базы ЭВМ 1-го поколения составляли (П1) полупроводниковые приборы, выполненные по электронно-вакуумной технологии, т.е. электронные лампы (рис. 2).

а) б) Рис. 2. Внешний вид электронных ламп: а) одни из первых;

б) современные.

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

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

ПОЭТОМУ: многие вполне очевидные конструкторские решения просто не могли быть реализованы в силу технологических ограничений.

Основным способом использования ЭВМ-П1 был монопольный доступ.

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

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

Архитектура компьютера IAS. ЭВМ IAS была первым электронным вычислительным устройством, созданным в 1945-1951 г.г. в Institute for Advanced Study (IAS) в Принстоне (США). В основе разработки – идеи фон Неймана (см. раздел «архитектура фон Неймана»).

Основные особенности:

1) физическая реализация элементной базы – электронные лампы;

2) способ использования – монопольный доступ.

Рис. 3. ЭВМ IAS + Дж. фон Нейман.

Рис. 4. Архитектура ЭВМ IAS.

R – внешнее запоминающее устройство;

АС – 40-разрядный аккумулятор;

MQ – 40-разрядный регистр произведения/частного MDR – 40-разрядный регистр памяти данных IBR – 40-разрядный регистр буфера инструкций IR – 20-разрядный регистр инструкций PC – 12-разрядный регистр счтчика инструкций MAR – 12-разрядный регистр адреса памяти Это была ЭВМ с 40-разрядным двоичным словом, в котором размещались две 20-разрядных инструкции. В памяти хранилось 1024 слов (5,1 Кб). В машине было два универсальных (в смысле адресуемых) регистра:

Аккумулятор (АС) и Регистр произведения/частного (MQ). А также встроенных (внутрисистемных) регистров.

Хотя считается, что в этой машине был впервые применн принцип хранимой программы (хранение в общей памяти как программ, так и данных), на самом деле это было использовано на 4 года раньше в 1948 г. в системе (Манчестерская малая Manchester Small Scale Experimental Machine экспериментальная машина).

Фон Нейман впервые показал, как совмещение инструкций и данных в единой памяти можно использовать, например, для организации циклов, с изменением счтчика циклов на каждой итерации. Недостаток такой архитектуры (как продолжение е достоинств) проявился в т.н. «узком месте АФН» (Von Neumann Bottleneck) (см. рис. 1).

Время сложения составляло 62 микросекунды;

умножения – 713 микросекунд.

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

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

В СССР наиболее ярким представителе ЭВМ-П1 была, пожалуй, знаменитая М 20 (рис. 5).

Рис. 5. ЭВМ М-20.

Оперативная память (ОП) М-20 содержала 4096 45-разрядных ячеек (машинных слов). В составе машины имелось внешнее запоминающее устройство (ВЗУ) на трх магнитных барабанах, мкость каждого из которых равнялась мкости ОП. Помимо барабанов, в составе М-20 предусмотрено ВЗУ на магнитных лентах. (Что это за «барабаны» - отдельный и очень интересный вопрос).

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

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

КП КОП А1 А2 А 3 р. 6 р. 12 р. 12 р. 12 р.

Рис. 6. Формат машинного слова ЭВМ М-20.

Здесь:

- КП – код признаков;

- КОП – код операции;

- А1-А3 – коды адресов операндов.

Под каждым полем указана его разрядность.

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

Формат перфокарты представлен на рис. 7.

Рис. 7. Формат перфокарты ЭВМ М-20.

Лекция 1.5.2 ЭВМ 2-го поколения (1955-1964) Примерно с середины 50-х годов прошлого века, твердотельные полупроводниковые приборы начали активно вытеснять электронно-вакуумные лампы из всех сфер применения бытовой и промышленной электроники.

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

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

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

Статистика впечатляла: до 70-80% времени самая дорогостоящая подсистема того периода – процессор, простаивала! А почему? А благодаря способу использования, тесно связанному с технологией элементной базы.

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

Можно сказать, что основные усовершенствования аппаратной части, последовавшие во 2-м поколении, были сделаны «в интересах оборудования» и за счет интересов пользователя.

Одно из последствий: произошла вначале частичная, а затем полная физическая изоляция пользователя от ЭВМ.

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

Вот основные этапы «хождения по мукам»:

1. Оформить заявку и заказать в диспетчерской машинное время.

2. Записать исходный текст программы на специальных бланках и передать эти бланки в отдел подготовки данных (срок исполнения – 1 рабочий день и более).

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

4. Сдать подготовленные на носителе данные для контрольной распечатки (срок исполнения – 1 рабочий день и более).

5. Тщательно проверить правильность данных по контрольной распечатке.

Если есть ошибки, исправить их и перейти к п. 1. Если ошибок нет (и такое иногда бывает), перейти к следующему пункту.

6. Наконец-то сдать подготовленное и проверенное задание на 1-ю отладку.

Именно на отладку и именно на 1-ю! Потому что все знают, что нет такой программы, которая сразу же правильно заработает (срок исполнения – рабочий день;

обычно - более).

7. Получить отладочную распечатку, исправить некоторые из обнаруженных ошибок, попутно сделав новые, и перейти к п. 1.

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

Примечание. Многие усовершенствования архитектуры, связываемые обычно с ЭВМ-П2, на самом деле появились во времена электронных ламп и гибридной элементной базы. Так, классическая ламповая ЭВМ IBM-704 имела индексные регистры, формат чисел с плавающей запятой и подобие операционной системы (E.Polad). Поздние выпуски моделей IBM-704 и 709 уже имели специализированные процессоры ввода-вывода, которые назывались «синхронизаторами данных» или «каналами», при этом термин «вычислительная система» приобрл реальный смысл.

Сказанное не противоречит идее периодизации ЭВМ.

1,5 мм 1 мм Рис. 8-а. Перфокарта (геометрия).

Рис. 8-б. Перфокарта (внешний вид).

Рассмотрим уникальный во всех отношениях носитель данных – перфокарту (Рис. 8-а,б, см. также Рис. 7). Это - целая эпоха: от табуляторов до ЭВМ-П3.

Т.н. «формат IBM» был введн аж в 1928 г. (!) Перфокарта представляет собой прямоугольный лист тонкого картона с размеченными под перфорацию полями в количестве 80колонок на 12строк, размером 187,325 82,55 мм.

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

Ширина отверстий и перемычек – примерно 1-1,5 мм. Средняя скорость подачи перфокарты - 10 шт. в секунду. Т.о., на перемещение ПК от колонки к колонке затрачивается около 0,001 сек. По человеческим меркам это очень маленькое время, а по компьютерным – очень большое. При условной производительности ЭВМ П2, например, 200.000 операций в секунду, за время, пока ПК «ползт» в картоводе от пробивки к пробивке, можно обработать 200 300 инструкций.

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

Именно эти соображения и лежат в основе подхода к организации вычислений в ЭВМ П2.

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

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

Пакетная обработка – основной режим использования ЭВМ-П2.

Поскольку выяснилось, что простои оборудования в ЭВМ П1 (и, главным образом, самой дорогой, – центральной части), недопустимо велики, а чемпионом по неэффективности использования оказалась самая дорогая центральная часть, переходим к НОВОМУ режиму использования.

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

Это можно сделать по-разному. А сделали так: совместили медленные операции внешних устройств с быстрыми операциями процессора.

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

Именно так и делаем. И приходим к идее децентрализации внешнего обмена.

А как было до этого?

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

При децентрализации ВО, в составе ВС появляется новое устройство – специализированный процессор внешнего обмена (ввода-вывода). При этом любая операция обмена передатся для выполнения этому процессору, после чего главный процессор (Main Processor Unit) продолжает обработку программы. Такое специализированное устройство обычно называют канальным процессором, или просто каналом.

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

Вот тут-то мы и приходим к необходимости т.н.

«мультипрограммирования».

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

Этих «некоторых программ» может быть несколько (а сколько?). В идеале, такой «пакетный конвейер» должен работать в следующем режиме:

1) собирается «пакет» из некоторого количества заданий (лучше – не меньше 3-х);

2) после ввода пакета, активируется 1-е задание и для него начинается ввод данных;

3) запускается одновременно расчт по 1-му заданию и ввод данных для второго;

4) начиная с 3-го задания устанавливается нормальный порядок прохождения пакета: одновременно в ЭВМ обрабатываются задания: вывод по 2-му, расчт по 3-му и ввод по 4-му заданию.

Управлением этими процессами занимается системная программа супервизор (на ранних этапах – пакетный монитор).

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

- появления операционной системы (е не было в ЭВМ-П1);

- выделения привилегированных операций ОС.

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

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

Если в ЭВМ-П3 для этих целей предусмотрена специальная аппаратура, то для ЭВМ-П2 – в основном программная реализация.

Заметим: никакие другие функции на ОС ЭВМ-П2 не возлагались. Более того, ОС ЭВМ-П2 не воспринималась конструкторами и пользователями, как часть архитектуры.

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

Таким образом, основная характеристика ЭВМ-П2:

- физическая реализация элементной базы – твердотельные полупроводниковые приборы;

- способ использования – режим пакетной обработки;

- архитектурные особенности – классическая АФН.

И, кроме того:

- появление системы прерываний;

- оперативные запоминающие устройства (ОЗУ) на ЭЛТ и ртутных линиях задержки заменяются ОЗУ на ферритовых магнитных сердечниках и магнитных барабанах;

- совершенствование управления памятью: появление индексного регистра (чрезвычайно важный момент!);

- появление специализированных процессоров ввода-вывода, которые разгружали ЦП от второстепенных временно-емких задач;

- появление языков программирования высокого уровня, таких как ALGOL, COBOL, и FORTRAN ;

- иерархической организации памяти;

- развитие системного программного обеспечения, такого как пакетные мониторы, компиляторы и библиотеки подпрограмм, поставляемого вместе с ЭВМ.

Лекция 1.5.3 ЭВМ 3-го поколения (1965-1974) Так же, как и при переходе от 1-го ко 2-му поколению, можно обнаружить довольно продолжительный переходный период, во время которого мирно сосуществовали различные технологии и архитектурные решения.

При переходе от ЭВМ-П2 к ЭВМ-П3 не произошло столь значительных изменений архитектуры, как при переходе от П1 к П2.

Главное изменение:

1) элементная база от дискретных тврдотельных полупроводников эволюционировала к интегральным микросхемам;

2) способ использования ВС изменился от пакета к режиму разделения времени.

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

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

Режим разделения (квантования) времени состоит в том, что каждому пользователю ВС выделяется (средствами ОС) определнный промежуток времени (фиксированный, или переменный).

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

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

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

ЭВМ и ВС «следующих поколений» (“Next Generation”). История развития ЭВМ первых 4-х поколений является хорошей иллюстрацией действия законов диалектики. А дальше – уже … как получится. Пожалуй, можно ещ выделить т.н. «ЭВМ 5-го поколения» - это известный японский проект «интеллектуального компьютера». Можно смело сказать, что он провалился, но оставил существенный след в истории ВТ и принс множество положительных частных результатов как в архитектурных, так и в программных решениях.

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

Первое поколение (1900-1955) связано с технологией перфокарт, когда запись данных представлялась на них в виде двоичных структур.

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

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

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

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

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

Лекция 2. Вычислительные системы традиционной архитектуры 2.1 Устройство и функционирование центральной части ВС Вспомним, в чм состоит базовый цикл работы ЦП:

1) выборка инструкции из ОП;

2) выборка, если необходимо, операндов из ОП;

3) выполнение заданной операции над выбранными операндами;

4) запись результата в ОП;

5) переход к п. 1.

Как реализовать этот цикл?

Есть варианты. Но прежде вернмся к рассмотрению такого важного понятия, как машинное слово.

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

Номер МС называется его адресом. Каждое МС представлено упорядоченным набором двоичных разрядов (битов), рассматриваемых как единое целое.

Количество битов в МС называется его длиной, или разрядностью.

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

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

Пословная организация памяти была характерна для первых ЭВМ-П1.

Пример: в известной отечественной ЭВМ 1-го поколения М-20 (см. выше) машинное слово состояло из 45 двоичных разрядов (всего 4096 слов).

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

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

В соответствии с принципами фон Неймана, машинные слова могут определять как данные, так и инструкции (команды).

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

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

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

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

Архитектура набора инструкций определяется следующими характеристиками:

- количество и тип операций;

- количество и формат представления операндов;

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

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

В общем случае следует указать четыре адресных поля (Рис. 9-а), обозначенных А1-А4, где А1 и А2 – адреса операндов, над которыми выполняется заданная операция (для преобладающих двухместных операций), А3 – адрес, по которому необходимо записать результат, А4 – адрес следующей инструкции, подлежащей исполнению.

a) А КОП А А2 А б) А1 А КОП А А КОП А в) А КОП г) Рис. 9. Адресные форматы инструкций.

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

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

Схема выполнения трехадресной команды имеет вид:

[А1] @ [А2] -- А3.

Здесь [А1] и [А2] – содержимое ячеек памяти, по адресам А1 и А2, в которых хранятся первый и второй операнды соответственно;

@ – знак обобщенной операции (например, сложение, умножение и т.д.), задаваемой полем кода операции (КОП). Знак -- обозначает передачу результата операции в ячейку памяти с адресом А3.

Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c ( c = a + b ) требуется всего одна команда такого формата:

КОп А1 А2 А ADD a b c Здесь ADD – код операции сложения.

Применим принцип умолчания ещ раз.

Формат двухадресной команды представлен на рис.6-в. Выполнение операции с помощью такой команды проходит по следующей схеме:

[А1] @ [А2] -- А или [А1] @ [А2] -- А2.

Выполнение того же самого действия c = a + b в двухадресной системе кодирования потребует уже двух команд, например:

КОп А1 А ADD a b a = a + b MOV c a c = a Здесь команда MOV – это пересылка операнда по адресу.

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

Рис. 10. Схема выполнения операции в ЭВМ с одноадресной системой команд.

Последовательность выполнения операции на ЭВМ с одноадресной системой команд имеет вид:

[А)] @ [РР] -- А или [А] @ [РР] -- РР.

Операцию c = a + b в одноадресной системе команд можно выполнить следующим образом:

КОп А MOVR a РР = a ADD b РР = РР + b MOVS c c = РР Комментарий. Рассмотренные форматы команд используются при так называемом естественном порядке выполнения программы. При этом подразумевается, что, после выполнения любой команды, не меняющей в явном виде порядок выполнения программы, очередная команда выбирается из ячейки ЗУ, располагающейся сразу же вслед за ячейкой (или ячейками), содержащей код текущей команды. При четырехадресной системе кодирования команд (см. рис.6-а) первые три адреса выполняют те же функции, что и в трехадресной команде, а четвертый адрес указывает адрес ячейки, где хранится следующая выполняемая команда. Такая система обеспечивает принудительный порядок выполнения команд программы. Она, хотя и повышает гибкость программирования, но практического применения не получила. Основной причиной этого является существенное увеличение размера каждой команды и, соответственно, увеличение объема ЗУ, необходимого для размещения программы, в то время как реальной потребности в такой кодировке каждой команды не существует.

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

Обращение к ячейкам такой памяти производится последовательно с помощью специального указателя стека (УС), определяющего рабочую в данный момент ячейку. Каждая ячейка снабжена тэгом – специальным признаком хранимой информации. Такая ЭВМ имеет структуру, представленную на рис. 8. В ее состав, помимо АЛУ, входят два специальных буферных регистра РР1 и РР2.

Здесь значение тэгов следующее: Op – в данной ячейке хранится операнд, C – признак наличия в ячейке кода операции.

Рис. 11. Схема выполнения операции в ЭВМ с безадресной системой команд.

Проиллюстрируем работу такой ЭВМ на примере вычисления выражения (a + b) * c - d) / e На первых двух тактах работы из памяти извлекаются операнды a и b и помещаются в рабочие регистры РР1 и РР2. Считав следующую ячейку стековой памяти, устройство управления по ее тэгу определяет, что данная информация представляет собой код операции. Этот код направляется в АЛУ, где и проводится сложение хранящихся в регистрах операндов с записью результата в один из рабочих регистров. Так как в следующей ячейке хранится операнд, то он направляется в РР, свободный от записанного результата. После этого производится выполнение следующей операции, и так далее.

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

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

Такая структура ЭВМ обеспечивает высокое быстродействие, но требует весьма сложного программирования. Основная нотация, используемая для программирования стековой ЭВМ – т.н. ПОЛИЗ (ПОЛьская Инверсная Запись, англ. – RPN). Так, при переводе инфиксной записи терма (a + b) * c в постфиксную (ПОЛИЗ), получим терм а b + c *.

Лекция Классификация архитектур по типу и формату набора инструкций RISC- и CISC-архитектуры. RISC-архитектура широко используется во многих современных микропроцессорах и микроконтроллерах, выпускаемых различными компаниями. Первые RISC-процессоры, разработанные в Стенфордском и Калифорнийском университетах США в начале 80-х годов, выполняли относительно небольшой набор команд — 50–100 вместо 100200, выполняемых обычными CISC (Complex Instruction Set computer — компьютер со сложным набором команд) процессорами. Эта особенность определила название данного класса процессоров — RISC (Reduced Insruction Set Computer — компьютер с сокращнным набором команд). Однако в последующих разработках RISC-процессоров набор команд значительно расширен, включая команды обработки чисел с плавающей точкой. В настоящее время определились следующие характерные особенности современных RISC процессоров:

расширенный объм регистровой памяти: от 32 до нескольких сотен регистров общего назначения, входящих в состав микропроцессора;

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

отказ от аппаратной реализации сложных способов адресации (с постинкрементом или предекрементом, косвенная адресация и др.);

фиксированный формат команд (обычно 4 байт) вместо переменного формата (от 1 до 15 байт), характерного для CISC-процессоров;

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

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

В настоящее время данный вид СБИС выпускают практически все ведущие производители микропроцессорной техники — Motorola, Intel, Hewlett-Packard, IBM и другие, а также ряд компаний, специализирующихся в этой области: Sun Microsystems, MIPS.

Широкую популярность получили RISC-процессоры и RISC-контроллеры семейства PowerPC. Начало созданию этого семейства было положено ещ в 1991 году, когда компании IBM, Motorola и Apple Computers объявили об организации консорциума для совместной разработки и внедрения RISC микропроцессоров новой архитектуры.

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

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

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

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

1. Подразумеваемый (неявный) адрес (см. выше: принцип умолчания).

2. Непосредственная адресация. В поле адреса расположен операнд, т.е.

[Аi] = Аi.

3. Прямая адресация. В этом режиме не происходит преобразования адресного кода, т.е.

Аи = Ак.

4. Относительная адресация. Это уже сложнее. Возможны варианты.

Базирование: Аи = Ак + Аб, или Аи = [Рб]+D Здесь Аб – базовый адрес;

Рб – базовый регистр;

D – смещение, т.е., на самом деле, это тот же Ак, но смещением он назван, т.к. появилась база, т.е.

граница участка адресного пространства, относительно которой и задатся смещение. В расширенном варианте: Аи = [Рб]+D + [I], где I - индексный регистр.

5. Косвенная адресация: в поле адреса – адрес операнда. Этот вид адресации удобен, например, при реализации указателей (данных ссылочного типа).

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

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

Рис. 12. Уплотнение в памяти фрагментов программных модулей различных задач.

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

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

Создание «чистых» процедур. Реентерабельность.

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

Организация памяти ЭВМ быстрая и дорогая Регистры Кэш Основная память Большая память (МД) Память архива(МЛ) медленная и дешвая Рис. 13. Иерархическая организация памяти.

Рассмотрим некоторые уровни этой иерархии.

Термин кэш-память или просто кэш (англ. caсhe – тайник, склад) происходит от французского слова caсher - прятать, скрывать (в отечественной литературе часто - сверхоперативное запоминающее устройство (СОЗУ). В иерархии памяти ВС кэш занимает промежуточное место между регистровой и основной (оперативной) памятью. Функционально кэш представляет собой буферное ЗУ с высокими динамическими характеристиками, предназначенное для согласования высокой скорости работы процессора и относительно медленной скорости ОП.

Принцип локальности. Известно, что во время выполнения программы большинство обращений к памяти происходит по относительно небольшому количеству адресов. В типичном случае 90% времени программа «проводит» в области примерно 10% кода. При каждом обращении программы к некоторой области памяти существует высокая вероятность того, что вскоре это обращение повторится. Это свойство называется временнОй локальностью.

Кроме того, наиболее вероятно, что очередное обращение произойдт по адресу памяти, находящемуся вблизи от адреса предыдущего обращения;

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

Именно принцип локальности лежит в основе организации кэш-памяти.

На Рис. 14 представлены основные схемы организации СОЗУ (кэш-памяти): а) более гибкая;

б) более простая в реализации.

КЭШ КЭШ ЦП ЦП ОП ОП а) б) Рис. 14. Основные схемы организации СОЗУ.

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

Вводится понятие математического и физического адреса страницы.

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

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

централизованный и автономный.

Программно-управляемый ввод/вывод. Простейшим видом централизованного обмена является программно-управляемый ввод/вывод (PIO - Programmed Input/Output), который называют также поллингом (от англ.

polling – опрос, голосование).

В этом случае, при выполнении операции вывода, ЦП проверяет состояние готовность ПУ (готово/занято), подсчитывает количество переданных единиц данных.

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

Ввод/вывод (внешний обмен), управляемый прерываниями. При этом способе обмена устраняются многие недостатки поллинга. (Однако, ЦП по прежнему вынужден управлять обменом).

Децентрализация внешнего обмена. Для организации автономного, или децентрализованного, обмена необходимо наличие специального дополнительного оборудования. Основная задача такого оборудования – организация, создание и управление магистралью данных (datapath) между ПУ и основной памятью, минуя ЦП. В этом случае говорят, что обмен происходит в режиме прямого доступа к памяти (ПДП, или DMA – Direct Memory Access).

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

Необходимо заметить, что при этом может возникнуть конфликт: коллизия одновременного доступа УПДП и ЦП к памяти. Негативные последствия этого конфликта зависят от интенсивности обмена данными между ПУ и ОП. При этом обычно выполняется аппаратная приостановка ЦП на время обращения УПДП к памяти.

Первые устройства подобного типа появились в ЭВМ 2-го поколения и получили название канального процессора, или просто канала.

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

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

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

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

Проектирование УА в значительной степени затрудняется из-за его нерегулярной структуры.

Обычно на устройство управления (УУ) ЦП возлагаются следующие функции:

выборка очередной инструкции;

1) декодирование выбранной инструкции;

2) выборка, если необходимо, операндов;

3) управление (вентилями) функциональными узлами с целью выполнения 4) декодированной инструкции;

5) изменение состояния процессора для выработки условий выполнения следующей инструкции;

6) запись, если необходимо, результата операции в регистр, или ОП;

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

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

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

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

Рис. 15. Упрощенная структура микропроцессора с набором из 4-х инструкций.

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

T0-T3 для выборки каждой инструкции:

T0: СчА_чт, РА_зп T1: ОП_чт, СчА_инкр T2: РД_чт, РК_зп T3: декодирование КОП в РК T4-T6 для инструкции загрузки (КОП 00):

T4: РК_чт(АЧ), РА_зп T5: ОП_чт T6: РД_чт, АК_зп, сброс в T T4-T7 для инструкции сложения (КОП 01):

T4: РК_чт(АЧ), РА_зп T5: ОП_чт T6: АК_чт, АЛУ+ T7: РС_чт, АК_зп, сброс в T T4-T6 для инструкции сохранения (КОП 10):

T4: РК_чт(АЧ), РА_зп T5: АК_чт, РД_зп T6: ОП_зп, сброс в T T4-T5 для инструкции УП по нулю (КОП 11):

T4: if (АК=0) then {РК_чт(АЧ), СчА_зп} T5: сброс в T Откуда получаем систему логических уравнений:

АК_зп = (Загр & T6) (Слож & T7) АК_чт = (Сохр & T5) + (Слож & T6) АЛУ+ = Слож & T РК_зп = T РК_чт(АЧ) = (Загр & T4) + (Слож & T4) + (Сохр & T4) + (УП & АК=0 & T4) РА_зп = T0 + (Загр & T4) + (Слож & T4) + (Сохр & T4) РД_зп = Сохр & T РД_чт = T2 + (Загр & T6) СчА_зп = УП & АК=0 & T СчА_чт = T СчА_инкр = T ОП_чт = T1 + (Загр & T5) + (Слож & T5) РС_чт = Слож & T ОП_зп = Сохр & T А теперь есть два варианта:

1) аппаратная реализация УУ по заданной системе уравнений;

2) микропрограммная реализация УУ.

Для варианта 1) приведм фрагмент функциональной схемы УУ для реализации управляющего сигнала АК_зп (запись в аккумулятор).

Загр & T 1 АК_зп Слож & T Рис. 16. Функциональная схема узла формирования управляющего сигнала АК_зп.

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

Рис. 17. Управляющая память для 4-х командного МП.

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

Результат: повышение регулярности при проектировании УУ.

Лекция 3. Высокопроизводительные ВС Почему суперкомпьютеры работают так быстро? Есть два ответа: развитие элементной базы и использование новых решений в архитектуре.

За полвека производительность компьютеров выросла почти в миллиард раз.

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

Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь. Принцип, вроде бы, прост. Если один вычислитель выполнит работу за 100 единиц времени, то система из N устройств ту же работу вроде бы выполнит за 100/N единиц времени. Но это в идеале. Подобные аналогии можно найти и в жизни: если один солдат вскопает огород за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справятся с той же работой за 12 минут – принцип параллельности в действии! Да, но пусть 50 чел. вскопают грядку 1 кв.м. Сразу возникает проблема. Точно так же как и при параллельных вычислениях.

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

Что можно ожидать от внедрения параллельных архитектур?

Частично ответ на этот вопрос дат известный закон Амдала.

Закон Амдала и его следствия. Предположим, что в некоторой программе доля операций, которые нужно выполнять последовательно, равна f, где 0 = f = 1 (при этом доля понимается не по статическому числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f = 0) и полностью последовательным (f = 1) программам. Так вот, для того, чтобы оценить, какое ускорение S может быть получено на компьютере из p процессоров при данном значении f, можно воспользоваться т.н. законом Амдала:

Если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз, получить, в принципе, невозможно, вне зависимости от качества реализации параллельной части кода и числа используемых процессоров (ясно, что 10 получается только в том случае, когда время исполнения параллельной части равно 0).

Посмотрим на проблему с другой стороны: а какую же часть кода надо ускорить (а значит и предварительно исследовать), чтобы получить заданное ускорение? Ответ можно найти в следствии из закона Амдала: для того чтобы ускорить выполнение программы в q раз необходимо ускорить не менее, чем в q раз не менее, чем (1-1/q)-ю часть программы. Следовательно, если есть желание ускорить программу в 100 раз по сравнению с ее последовательным вариантом, то необходимо получить не меньшее ускорение не менее, чем на 99.99% кода, что почти всегда составляет значительную часть программы!

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

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

s= Do i = 1, n s = s + a(i) EndDo По своей природе он строго последователен, так как на i-й итерации цикла требуется результат с (i-1)-й, и все итерации выполняются одна за другой.



Pages:   || 2 |
 

Похожие работы:





 
2013 www.netess.ru - «Бесплатная библиотека авторефератов кандидатских и докторских диссертаций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.