Cтраница 2
Наличие в системе команд операций над числами с двойной точностью ( 64 двоичных разряда) позволяет существенно сократить время моделирования сложных динамических систем по сравнению с использованием обычных команд. Большое количество команд и РОН в процессоре облегчает работу программистов и позволяет создавать более эффективные программы. [16]
К тому имеются две причины. Во-первых, при большом количестве команд возникают трудности, связанные с разветвлениями команд. Можно, конечно, сделать попытку предсказывать места таких разветвлений, основываясь на информации, хранящейся в счетчиках индекс-регистров. Однако если такая информация отсутствует, то в отдельных случаях будет возникать необходимость возврата для исправления неправильно принятого решения. Вторая трудность возникает при достаточно частом поступлении сигналов прерывания. Прерывания и прогнозирования по существу своему противоречат друг другу, поскольку каждый сигнал прерывания разрушает результат прогнозирования. [17]
В данной статье рассматриваются некоторые принципы разработки программных средств форматирования. Реализация этих методов дает системному программисту доступ к большому количеству разнообразных команд и механизмов, позволяющих разрабатывать гибкие и мобильные программные средства. В то же время для пользователя существует ограниченное количество команд, предоставленное ему системным программистом, что облегчает его работу. [18]
Существует две основные формы параллелизма: параллелизм на уровне команд и параллелизм на уровне процессоров. В первом случае параллелизм осуществляется в пределах отдельных команд и обеспечивает выполнение большого количества команд в секунду. Во втором случае над одной задачей работают одновременно несколько процессоров. Каждый подход имеет свои преимущества. В этом разделе мы рассмотрим параллелизм на уровне команд, а в следующем - параллелизм на уровне процессоров. [19]
Эта технология, впервые предложенная Уилксом в 1951 году, позволяла разрабатывать простые дешевые компьютеры, которые, тем не менее, могли выполнять большое количество команд. [20]
Распределение памяти машины осуществляется еще до того, как написана программа. Так как обычно заранее неизвестно число команд и промежуточных результатов, которые должны одновременно храниться в ОЗУ, то, особенно в случае программ, содержащих большое количество команд, распределение памяти представляет собой не простую задачу. Ее решение еще более усложняется, если вся нужная информация не может быть одновременно размещена в оперативной памяти. [21]
К несчастью, архитектура VAX с самого начала разрабатывалась с использованием интерпретатора, а производительности уделялось мало внимания. Это привело к появлению большого количества команд второстепенного значения, которые трудно было выполнять сразу без интерпретации. [22]
Интерпретатор разбивает команды на маленькие шаги. Таким образом, машина с интерпретатором может быть гораздо проще по строению и дешевле, чем процессор, выполняющий программы без интерпретации. Такая экономия особенно важна, если компьютер содержит большое количество сложных команд с различными опциями. [23]
Сама вычислительная машина способна выполнять большую техническую работу и точно, и быстро. Поэтому представляется возможным составить программу вычислений для ЭВМ таким образом, чтобы ввести в запоминающее устройство вычислительной машины команды на одном языке и осуществить их перевод ( трансляцию) на другой язык. Такая программа будет сложной и может потребовать такого большого количества команд, что возникнут трудности с их размещением в памяти машины. Степень сложности транслирующей программы ( программы-транслятора) пропорциональна сложности языка, который предъявляется вычислительной машине для перевода. [24]
![]() |
Внутренняя структура блока вызова / декодирования ( в упрощенном виде. [25] |
Поскольку в наборе команд Intel, который часто называют IA-32 ( 32-разрядная архитектура для процессоров Intel), содержатся команды разной длины и различного формата, на следующей стадии, IFU1, происходит анализ потока байтов, чтобы определить начало каждой команды. В случае необходимости на стадии IFU1 может рассматриваться до 30 команд архитектуры IA-32 вперед. К сожалению, вследствие этого обычно встречаются 4 или 5 условных переходов, не все из которых правильно прогнозируются, поэтому в обработке такого большого количества команд заранее нет особого смысла. На стадии IFU2 команды выравниваются, поэтому в следующей стадии они без труда декодируются. [26]
Программы по-разному загружают процессоры ВС. Решение обыкновенного дифференциального уравнения ( задачи Коши) нуждается в предварительном вводе программы, коэффициентов, правых частей и начальных условий. Затем ВС переходит к численному интегрированию уравнения шаг за шагом на заданном интервале аргумента. В этой задаче на единицу входных данных приходится большое количество выполненных команд. [27]
Компьютер должен начинать выполнение большого числа команд. В современных компьютерах используется много различных способов для увеличения производительности, главное из которых - возможность обращаться к как можно большему количеству команд в секунду. Процессор 500 - MIPS способен приступать к выполнению 500 млн команд в секунду, и при этом не имеет значения, сколько времени занимает само выполнение этих команд. Этот принцип предполагает, что параллелизм может играть главную роль в улучшении производительности, поскольку приступать к большому количеству команд за короткий промежуток времени можно только в том случае, если одновременно может выполняться несколько команд. [28]