К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 12
Текст из файла (страница 12)
Каким будет соотношение между временем реализации программы в режиме параллельной обработки и в режиме последовательной обработки для набора программ при условии, что каждая программа состоит из равного количества операций, производящих вычисления, ввод и вывод? Учитывать относительно небольшое время, уходящее на выполнение программ операционной системы, не нужно. Глава 1. Базовая структура компьютеров 1.5. а) Для некоторой программы, написанной на языке высокого уровня, нуж но оценить время ее выполнения Т, определяемое формулой из раздела 1.6.2.
Программа может выполняться как на компьютере В?ЯС, так и на компьютере С?5С. В обоих компьютерах применяется конвейерная обработка, но в ИВС-машине она реализована эффективнее. В частности, эффективное значение параметра о'в формуле для вычисления Т машины В?5С равно 1,2, а для машины С?5С вЂ” 1,5. У обеих машин одна и та же тактовая частота Л. Каково наибольшее допустимое значение параметра Ж, представляющего количество команд, которые реализуются на С?5С-компьютере, выраженное в процентах от значения параметра ?У для В?ЯС-компьютера, если время выполнения программы на С?5С-машине не должно превышать времени выполнения программы на ИВС-компьютере? б) Повторите предыдущую задачу, но при условии, что тактовая частота Л ИБС-машины на 15 % выше тактовой частоты С?5С-компьютера.
1.6. а) Обратимся к кашу процессора, схематически показанному на рис. 1.5 и описанному в разделе 1.6. Предположим, что время выполнения программы прямо пропорционально времени доступа к команде и что время доступа к команде в каше в 20 раз меньше времени доступа к команде в основной памяти. Допустим также, что вероятность наличия запрошенной команды в каше составляет 0,96, но в том случае, если она там не будет обнаружена, то должна сначала быть считана из памяти в кэш, а затем выбрана из каша и выполнена. Вычислите соотношение времени выполнения программы без использования каша и времени выполнения программы с использованием каша Это соотношение часто называют коэффициентом ускорения, обеспечиваемого наличием каша.
б) Предположим, что с увеличением вдвое размера кеша в столько же раз уменыпается вероятность отсутствия в нем команды. Повторите предыдущую задачу при условии, что размер кэша увеличен. Глава 2 Машинные команды и программы + Машинные команды, выполнение программ и подпрограмм + Представление чисел, сложение и вычитание в системе дополнения до двух + Способы адресации для доступа к регистрам и памяти + Язык ассемблера для представления машинных команд, данных и программ + Управляемые программой операции ввода-вывода + Операции со стеком, очередью, списками, связными списками и массивами В настоящей главе процесс выполнения программы компьютером рассматривается с точки зрения машинных команд. Вы уже знакомы с общей концепцией хранения в памяти команд программы и обрабатываемых ею данных.
Теперь речь пойдет о пересылке последовательности команд программы из памяти в процессор и их выполнении. Вы познакомитесь со способами адресации, используемыми для доступа к операндам в памяти и регистрах процессора. Обо всем этом мы поговорим на уровне базовых концепций. Будет приведено общее описание машинных команд и методов адресации операндов, типичных для коммерческих процессоров. Рассматриваемых в этой главе команд вполне достаточно для создания полноценных реальных программ, выполняющих простые задачи. Для написания таких программ используется не машинный язык, а язык ассемблера, в котором команды и информация об адресах операндов представляются посредством символических имен.
Полный набор команд, которые может выполнять данный процессор, часто называют архитектурой систлемы команд процессора (1пзггпсг1оп Бег АгсЫгесгиге, 1БА) или просто системой команд. Система команд определяет не только сами команды, но еще и методы адресации, используемые для доступа к операндам в памяти и регистрах процессора. Для того чтобы рассмотреть базовые концепции, представленные в этой главе, не обязательно изучать всю систему команд компьютера, поэтому здесь приведены лишь наиболее часто используемые.
Для иллюстрации излагаемых положений дается много примеров. 50 Глава 2. Машинные команды и программы В главе 3 представлены системы команд трех коммерческих процессоров, производимых компаниями АКМ, Молото!а и 1пге!. Примеры программ из этой главы, написанные на универсальном языке ассемблера (условном языке, содержащем типичные команды ассемблера, но не являющимся набором команд какого-нибудь конкретного процессора), в главе 3 будут повторены для трех конкретных процессоров с использованием их реальных систем команд.
Подавляющее большинство программ пишется на языках высокого уровня, таких как С, С«-+ Дача и ГОКТКАХ. Для этой книги мы выбрали язык ассемблера, который наилучшим образом позволяет показать, как работает компьютер. Компьютер сможет выполнить программу, написанную на языке высокого уровня, лишь при условии, что эта программа сначала будет переведена на машинный язык. Языки высокого уровня очень далеки от машинного языка, и их команды часто транслируются в длинные последовательности машинных команд.
Иное дело язык ассемблера. Фактически зто просто читабельная форма машинного языка. Так что, изучая его, вы изучаете команды машинного языка, непосредственно выполняемые процессором. Взаимосвязь между языками высокого уровня и машинным языком обязательно должна учитываться при разработке компьютера. И мы с вами еще не раз вернемся к этому вопросу. Все компьютеры работают с числами. У них имеются команды для осуществления базовых арифметических операций с данными.
Кроме того, при выполнении машинных команд программы выполняется ряд арифметических операций, генерирующих числовые адреса для доступа к хранящимся в памяти операндам. Для того чтобы понять, как решаются эти задачи, читатель должен знать, как числа представлены в компьютере и каким образом они складываются и вычитаются. Именно с этого вопроса мы и начнем изложение материала данной главы. Подробное описание логических схем, реализующих компьютерную арифметику, приведено в главе 6, Компьютеры работают не только с числовыми данными, но и с символами и даже со строками символов, то есть наряду с числовой информацией оперируют и текстовой. Поэтому наряду с числами и операциями над ними будет рассмотрено машинное представление символов.
2.1. Числа, ариФметические операции и симВОлы Компъютеры состоят из логических схем, которые обрабатывают информацию в виде электрических сигналов, принимающих два значения (см. приложение А). Мы обозначаем их цифрами 0 и 1. Количество информации, представленной таким сигналом, измеряется в битах (Слово «бит» произошло от английского словосочетания Ъ|пагу г((й1Ц что переводится как «двоичная цифрам) Наиболее естественный способ представления числа в компьютерной системе заключается в использовании строки битов, называемой двоичным числом.
Символ текста тоже может быть представлен строкой битов, называемой кодом символа. Для начала мы опишем представление чисел и арифметические операции над ними в двоичной системе счисления, а затем поговорим о представлении символов. 2.1. Числа, арифметические операции и символы 51 2.1.1. Представление чисел Рассмотрим л-разрядный вектор В - Ь„ь..ЬФо Здесь Ь; — 0 или 1 при 0 ~1 < п-1. Этот вектор может представлять беззнаковое це- лочисленное значение Р в диапазоне от 0 до 2" — 1, где У(В) = Ъ„, х 2" '+,+Ь, х 2' + Ьо х 2 Совершенно очевидно, что нам необходимо как-то представлять и положительные, и отрицательные числа.
Существуют три системы представления чисел со знаком: + значение со знаком; + дополнение до единицы; + дополнение до двух. Во всех трех системах крайний слева бит, называемый самым стпаршимразрядом (Мов1 518шйсап1 В11, МБВ), равен 0 в случае положительных чисел и 1— в случае отрицательных. На рис. 2.1 все три представления показаны на примере 4-разрядных (4-битовых) чисел. Положительные значения во всех трех системах представляются одинаково, а отрицательные — по-разному. В системе значения со знаком отрицательные числа отличаются от соответствующих положительных чисел тем, что значение самого старшего бита (Ьз на рисунке) в векторе В равняется не О, а 1. Например, число +5 представляется как 0101, а число — 5 как 1101.