Как только что было отмечено, проблемы с заполнением конвейера возникают не только при встрече с командой перехода — и на линейных участках про- граммы также могут встретиться ситуации, вызывающие простои конвейера.
Обсудим эти ситуации и способы разрешения проблем.
В стандартных архитектурах процессора все команды программы выполняются в том порядке, в котором они вызываются из памяти, то есть в естественном по- рядке, определяемом программой. Простои конвейера при такой последователь- ном выполнении команд программы вызываются взаимозависимостями между соседними командами. Различают три типа взаимозависимостей:
? RAW (от Read After Write — чтение после записи) — до завершения записи операнда нельзя начинать его чтение;
? WАW (от Write After Write — запись после записи) — до завершения записи операнда нельзя начинать следующую запись;
? WAR (от Write After Read — запись после чтения) — до завершения считыва- ния операнда нельзя начинать запись его нового значения.
Что такое команды в iOS и как настроить полезные для себя?
Рассмотрим, например, следующий фрагмент программы:
mоv ах,2 mоv bх,ах
В первой команде осуществляется запись в регистр ах кода числа 2, а в следую- щей команде код из этого регистра считывается для пересылки в регистр bх.
Очевидно, что до завершения записи в регистр ах нового кода (точнее, до ста- билизации нового содержимого регистра) пытаться что-либо читать из него бессмысленно. Аналогичным образом выглядят и остальные взаимозависимости.
На рис. 11.6 показана ситуация, в которой нарушен порядок завершения команд. Пусть выполнение команды К1 началось в момент ⅛, а спустя некоторое время в момент t2ь началось выполнение команды К2. Допустим, что выполнение ко- манды К2 занимает меньше тактов, чем выполнение команды К1, и команда К2 завершается в момент ⅛ а команда К1 — в момент ilf, ⅛
Источник: lawbooks.news
Урок 24
Принципы устройства компьютеров
§32. Принципы устройства компьютеров. §33. Магистрально-модульная организация компьютера
1. Найдите материалы, подтверждающие, что Джон фон Нейман не был единоличным автором «фон-неймановской» архитектуры ЭВМ.
2. Перечислите принципы фон-неймановской архитектуры и кратко объясните каждый из них.
3. Назовите основные компоненты вычислительного устройства. Каково их назначение? Согласны ли вы с тем, что полученный набор узлов логичен и обоснован?
4. В чём состоит принцип двоичного кодирования?
5. Вспомните, как кодируются в компьютере числа, тексты, графика. Соблюдается ли принцип двоичного кодирования?
6. По какому алгоритму вводимые в компьютер десятичные числа можно перевести во внутреннее двоичное представление? Как перевести обратно результаты расчёта?
7. Что такое ячейка памяти? Что такое адрес ячейки?
8. Что вы знаете о разрядности ячеек ОЗУ разных поколений?
Как работает процессор, просто о сложном ✌
9. Почему появилась байтовая память?
10. Можно ли заменить в ячейке памяти содержимое одного бита, не затрагивая значений соседних? Почему?
11. Приведите примеры различных типов данных и назовите их разрядность. Сколько байтов памяти потребуется для хранения данных каждого из этих типов?
12. Что такое иерархическая организация памяти?
13. Почему большая по объёму память обычно работает медленнее, чем маленькая?
14. В чём состоит принцип хранимой программы?
15. Где может храниться программа?
16. Можно ли к нечисловым данным (символам, графическим и звуковым данным) применять арифметические операции?
17. Как вы понимаете фразу «Любая обработка данных в вычислительной машине происходит по программе»? Чем компьютер в этом отношении отличается от простого калькулятора?
18. Сформулируйте основной алгоритм выполнения команды в компьютере.
19. Что такое счётчик адреса команд и какова его роль в основном алгоритме?
20. Опишите, что происходит в момент включения компьютера с точки зрения принципа программного управления.
21. Можно ли нарушить последовательность выполнения команд в программе? Для чего это может потребоваться?
22. Всегда ли в новом компьютере есть какая-либо программа?
23. Что такое конвейер и как он работает при выполнении программы? *24. Почему команды перехода нарушают работу конвейера?
25. Какие из принципов, предложенных в работе «Предварительное рассмотрение логической конструкции электронного вычислительного устройства», продолжают применяться в современных компьютерах безо всяких изменений, а какие сохранились, но в несколько изменённом виде? Объясните, почему потребовались эти изменения.
26. Что такое архитектура? Какие детали устройства компьютера к ней не относятся?
27. В чём преимущества единой архитектуры семейств ЭВМ для пользователей и для производителей?
28. Какие семейства вычислительных машин вы знаете?
Подготовьте сообщение
а) «Джон фон Нейман и его вклад в науку»
б) «Троичная ЭВС «Сетунь»»
в) «Гарвардская архитектура»
г) «Архитектуры современных компьютеров»
Следующая страница Задачи
Cкачать материалы урока
Источник: xn—-7sbbfb7a7aej.xn--p1ai
Большая Энциклопедия Нефти и Газа
Естественный порядок выполнения команд может быть нарушен: I) командами перехода ( командами передачи управления); 2) командами замещения ( Выполнение), 3) сменой состояния программы; 4) запросами прерывания программы. [2]
Естественный порядок выполнения команд может быть нарушен: 1) командами перехода ( командами передачи управления); 2) командами замещения ( Выполнение); 3) сменой состояния программы; 4) запросами прерывания программы ( см. гл. [4]
Естественный порядок выполнения команд может быть изменен только в результате подачи команды, называемой командой передачи управления. Различают команды безусловных и условных переходов. Команда безусловного перехода передает управление команде, адрес которой указан в поле операнда команды безусловного перехода. [5]
Чем отличается естественный порядок выполнения команд от принудительного. [6]
Для изменения естественного порядка выполнения команд , что может потребоваться в ходе выполнения программы, имеются специальные команды передачи управления, которые изменяют содержимое счетчика команд. [8]
Иногда возникает необходимость нарушать естественный порядок выполнения команд независимо от каких-либо условий, как это имело место в примере 4.3 после вычисления у по первой из формул. [9]
В случае необходимости изменить естественный порядок выполнения команд переход к следующей команде осуществляют специальной командой перехода. В этом случае в счетчик адресов заносится новый адрес В, по которому следует обратиться в память за следующей командой. [11]
Команды передачи управления прерывают естественный порядок выполнения команд и однозначно определяют адрес следующей команды. При выполнении команд передачи управления результат предыдущего действия сохраняется. [12]
В машине Урал-11 используется обычный естественный порядок выполнения команд с возможностью обработки 30 сигналов запроса на прерывание. [13]
Для сохранения или нарушения естественного порядка выполнения команд в зависимости от некоторого условия и служит операция условного перехода по значению со — такой командой должна завершаться начальная группа команд в программе. Этой команде должны предшествовать команды, назначение которых состоит в том, чтобы в конечном счете выработать значение со, соответствующее заданному условию. [14]
Наиболее часто в ЦВМ используется естественный порядок выполнения команд . [15]
Источник: www.ngpedia.ru
Цикл выполнения команды
Программа в ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и выполнения команды, называют циклом команды. В общем случае цикл команды включает в себя несколько составляющих (этапов):
· формирование адреса следующей команды;
· вычисление адресов операндов;
· формирование признака результата;
Перечисленные этапы выполнения команды в дальнейшем будем называть стандартным циклом команды. Отметим, что не все из этапов присутствуют при выполнении любой команды (зависит от типа команды), однако этапы выборки, декодирования, формирования адреса следующей команды и исполнения операции имеют место всегда.
В определенных ситуациях возможны еще два этапа:
· реакция на прерывание.
Стандартный цикл команды
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цикла команды. При изучении данного материала следует учитывать, что приводимое описание имеет целью лишь дать представление о сущности каждого из этапов. В то же время распределение функций по разным этапам цикла команды и последовательность выполнения некоторых из них в реальных ЭВМ могут отличаться от излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор извлекает команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоичный код команды помещается в регистр команды (РК) и с этого момента становится «видимым» для процессора. Если длина команды совпадает с разрядностью ячейки памяти, то все понятно.
Однако, система команд многих ЭВМ предполагает несколько форматов команд, причем в разных форматах команда может занимать 1, 2 или более ячеек, а этап выборки команды можно считать завершенным лишь после того, как в РК будет помещен полный код команды. Информация о фактической длине команды содержится в полях кода операции и способа адресации. Обычно эти поля располагают в первом слове кода команды, и для выяснения необходимости продолжения процесса выборки необходимо предварительное декодирование их содержимого. Такое декодирование может быть произведено после того, как первое слово кода команды окажется в РК. В случае многословного формата команды процесс выборки продолжается вплоть до занесения в РК всех слов команды.
Этап формирования адреса следующей команды
Для большинства ЭВМ характерно размещение соседних команд программы в смежных ячейках памяти. Если извлеченная команда не нарушает естественного порядка выполнения программы, то для вычисления адреса следующей выполняемой команды достаточно увеличить содержимое счетчика команд на длину текущей команды, представленную количеством занимаемых кодом команды ячеек памяти. Длина команды, а также то, способна ли она изменить естественный порядок выполнения команд программы, выясняются в ходе ранее упоминавшегося предварительного декодирования. Если извлеченная команда способна изменить последовательность выполнения программы (команда условного или безусловного перехода, вызова процедуры и т.п), процесс формирования адреса следующей команды переносится на этап исполнения операции. В силу сказанного, в ряде ЭВМ рассматриваемый этап цикла команды следует не за выборкой команды, а находится в конце цикла.
Этап декодирования команды
После выборки команды она должна быть декодирована, для чего ЦП расшифровывает находящийся в РК код команды. В результате декодирования выясняются следующие вопросы:
находится ли в РК полный код команды или требуется дозагрузка остальных слов команды;
какие последующие действия нужны для выполнения данной команды;
если команда использует операнды, то откуда они должны быть взяты (номер регистра или адрес ячейки основной памяти);
если команда формирует результат, то куда этот результат должен быть направлен.
Ответы на два первых вопроса дает расшифровка кода операции, результатом которой может быть унитарный код, где каждый разряд соответствует одной из команд. На практике вместо унитарного кода могут встретиться самые разнообразные формы представления результатов декодирования, например адрес ячейки специальной управляющей памяти, где хранится первая микрокоманда микропрограммы для реализации указанной в команде операции.
Полное выяснение всех аспектов команды, помимо расшифровки кода операции, требует также анализа адресной части команды, включая поле способа адресации.
По результатам декодирования производится подготовка электронных схем ЭВМ к выполнению предписанных командой действий.
Этап вычисления адресов операндов
Этап имеет место, если в процессе декодирования команды выясняется, что команда использует операнды. Если операнды размещаются в основной памяти, осуществляется вычисление их исполнительных адресов, с учетом указанного в команде способа адресации. Так, в случае индексной адресации для получения исполнительного адреса производится суммирование содержимого адресной части команды и содержимого индексного регистра.
Этап выборки операндов
Вычисленные на предыдущем этапе исполнительные адреса используются для считывания операндов из памяти и занесения в определенные регистры процессора. Например, в случае арифметической команды операнд после извлечения из памяти может быть загружен во входной регистр АЛУ. Однако чаще операнды предварительно заносятся в специальные вспомогательные регистры процессора, а их пересылка на вход АЛУ происходит на этапе исполнения операции.
Этап формирования признака результата
На этом этапе определяется, каким получился результат операции. Результат может быть положительным, отрицательным, равным нулю и т.п. Сформированный признак заносится в регистр признака результата (РПР) для дальнейшего использования устройством управления.
Этап записи результата
Этап записи результата присутствует в цикле тех команд, которые предполагают занесение результата в регистр или ячейку основной памяти. Фактически его можно считать частью этапа исполнения, особенно для тех команд, которые помещают результат сразу в несколько мест.
Машинный цикл с косвенной адресацией
Многие команды предполагают чтение операндов из памяти или запись в память. В простейшем случае в адресном поле таких команд явно указывается исполнительный адрес соответствующей ячейки ОП. Однако часто используется и другой способ указания адреса, когда адрес операнда хранится в какойто ячейке памяти, а в команде указывается адрес ячейки, содержащей адрес операнда.
Как уже отмечалось ранее, подобный прием называется косвенной адресацией. Чтобы прочитать или записать операнд, сначала нужно извлечь из памяти его адрес и только после этого произвести нужное действие (чтение или запись операнда), иными словами, требуется выполнить два обращения к памяти. Это, естественно, отражается и на цикле команды, в котором появляется косвенная адресация.
Этап косвенной адресации можно отнести к этапу вычисления адресов операндов, поскольку его сущность сводится к определению исполнительного адреса операнда. Иными словами, содержимое адресного поля команды в регистре команд используется для обращения к ячейке ОП, в которой хранится адрес операнда, после чего извлеченный из памяти исполнительный адрес операнда помещается в адресное поле регистра команды на место косвенного адреса. Дальнейшее выполнение команды протекает стандартным образом.
Машинный цикл с прерыванием
Практически во всех ЭВМ предусмотрены средства, благодаря которым модули ввода/вывода (и не только они) могут прервать выполнение текущей программы для внеочередного выполнения другой программы, с последующим возвратом к прерванной. Первоначально прерывания были введены для повышения эффективности вычислений при работе с медленными периферийными устройствами.
Положим, что процессор пересылает данные на принтер, используя стандартный цикл команды. После каждой операции записи ЦП будет вынужден делать паузу в ожидании подтверждения от принтера об обработке символа. Длительность этой паузы может составлять сотни и тысячи циклов команды. Ясно, что такое использование ЦП очень неэффективно. В случае прерываний, пока протекает операция ввода/вывода, ЦП способен выполнять другие команды.
В упрощенном виде процедуру прерывания можно описать следующим образом. Объект, требующий внеочередного обслуживания, выставляет на соответствующем входе ЦП сигнал запроса прерывания (ЗП). ЗП могут возникать, как в самой ЭВМ, так и в её внешней среде.
К первым относятся:
o ошибки в работе аппаратуры;
o переполнение разрядной сетки;
o попытка деления на «0»;
o выход из установленной для данной программы области памяти;
o затребование периферийным устройствам операции ввода/ вывода.
К внешним запросам относятся:
o запрос прерывания от другой ЭВМ;
o запрос от различного рода датчиков.
Перед переходом к очередному циклу команды процессор проверяет этот вход на наличие запроса. Обнаружив запрос, ЦП запоминает информацию, необходимую для продолжения нормальной работы после возврата из прерывания, и переходит к выполнению прерывающей программы. По завершении обработки прерывания ЦП восстанавливает состояние прерванного процесса, используя запомненную информацию, и продолжает выполнение прерванной программы. Описанный процесс иллюстрирует рис. 22.1.
Рис. 22.1. Передача управления при прерываниях
В терминах цикла команды сказанное выглядит так. Для учета прерываний к циклу команды добавляется этап прерывания, в ходе которого процессор проверяет, не поступил ли запрос прерывания. Если запроса нет, ЦП переходит к этапу выборки следующей команды программы. При наличии запроса процессор:
1. Приостанавливает выполнение текущей программы и запоминает содержимое всех регистров, которые будут использоваться программой обработки прерывания. Это называется сохранением слова состояния программы (ССП). В первую очередь необходимо сохранить содержимое счетчика команд, аккумулятора и регистра признаков. ССП обычно сохраняется в стеке.
2. Заносит в счетчик команд начальный адрес программы обработки прерывания. Теперь процессор продолжает с этапа выборки первой команды обработчика прерывания. Обработчик (обычно он входит в состав операционной системы) определяет природу прерывания и выполняет необходимые действия. Когда программа обработки прерывания завершается, процессор может возобновить выполнение прерванной программы с точки, где она была прервана. Для этого он восстанавливает ССП (содержимое СК и других регистров) и начинает с цикла выборки очередной команды прерванной программы.
· Вычисление адреса команды. Определение исполнительного адреса команды, которая должна выполняться следующей.
· Выборка команды. Чтение команды из ячейки памяти и занесение ее в РК.
· Декодирование команды. Анализ команды с целью выяснения типа подлежащей выполнению операции и операндов.
· Вычисление адреса операнда. Определение исполнительного адреса операнда, если операция предполагает обращение к операнду, хранящемуся в памяти или же доступному посредством ввода.
· Выборка операнда. Выборка операнда из памяти или его ввод с устройства ввода.
· Операция с данными. Выполнение операции, указанной в команде.
· Формирование признака результата. Определение признака выполненной операции.
· Запись результата. Запись результата в память или вывод на устройство вывода.
Состояния в верхней части диаграммы описывают обмен между ЦП и памятью либо между ЦП и модулем ввода/вывода. Состояния в нижней части обозначают только внутренние операции ЦП. Вычисление адреса операнда встречается дважды, поскольку команда может включать в себя чтение, запись или то и другое, однако действия, выполняемые в этом состоянии, в обоих случаях одни и те же, поэтому используется один и тот же идентификатор состояния.
Следует отметить, что диаграмма допускает множественные операнды и результаты, как того требуют некоторые команды. Кроме того, в ряде ЭВМ единственная команда может определять операцию над вектором (одномерным массивом чисел) или строкой (одномер ным массивом символов), что требует повторяющихся операций выборки и/или записи.
Рис. 22.2. Диаграмма состояний цикла команды
Диаграмма отражает также возможность этапов прерывания и косвенной адресации.
studopedia.org — Студопедия.Орг — 2014-2022 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с) .
Источник: studopedia.org
Можно ли нарушить последовательность выполнения команд в программе? для чего это может потребоваться? всегда ли в новом компьютере есть какая-либо программа? просьба ответить с обоснованием.
program; var i: byte; str: string; begin for i: =60 to 70 do begin str: =str+chr(i) ; end; writeln(str); end.
Ответ от: Гость
Ответ от: Гость
a: array [1..5,1..10] of integer;
for i: =1 to 5 do
for j: =1 to 10 do
writeln(‘меняем 1 и последнюю строки’);
for j: =1 to 10 do
for i: =1 to 5 do
for j: =1 to 10 do
var a: array [1..5, 1..10] of integer; i, j: integer; p: real;
begin for i : = 1 to 5 do begin for j : = 1 to 10 do begin a[i, j] : = random(50) + 1; write(a[i, j]: 3); end; writeln; end; writeln(‘произведения элементов строк’); for i : = 1 to 5 do begin p : = 1; for j : = 1 to 10 do p : = p * a[i, j]; writeln(p: 25: 0); end; end.
Ответ от: Гость
Похожие вопросы:
Информатика, 28.02.2019 11:00
Вася и петя друг другу сообщения, используя синий, красный и зеленый фонарики. это они делают, включая по одному фонарику на одинаково короткое время в некоторой последовательности. количество вспышек в одном сообщении – 3или 4. между сообщениями – паузы. сколько различных сообщений могут передавать мальчики?
Информатика, 28.02.2019 23:00
.(9. даны действительные числа x, y. меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением. язык си).
Информатика, 01.03.2019 14:50
Вмассиве храниться информация о стоимости товаров. составьте программу, которая определяет стоимость самого дешевого(дорогого) товара и его индекс. вот программа но в ней где-то ошибка program xxx; var a: array [1..10] of integer; i, max, min: integer; begin for i: =1 to 10 do read(a[i]); min: =1; for i: =2 to 10 do if a[i]
Информатика, 01.03.2019 19:30
Составить программу которая формирует массив из16 элементов случайных чисел от -20 до 20 и находит элементы с нулевыми значениями
Источник: otvet5.com