К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 105
Текст из файла (страница 105)
Рассмотрим 16-разрядное число с плавающей запятой в формате, подобном описанному в упражнении 6.25, с 6-разрядным порядком и 9-разрядной нормализованной дробной мантиссой. Основание масштабного множителя равно 2, а порядок представлен в формате с избытком 31. а) Сложите приведенные ниже числа А и В: Представьте ответ в нормализованной форме. Помните, что слева от двоичной запятой располагается подразумеваемая единица, не включенная в форматы чисел А и В.
Для получения результирующей нормализованной 9-разрядной мантиссы выполните округление. Упражнения 449 6.27. 6.28. 6.29. 6.30. 6.31. 6,32. 6.33. 6.34. б) Используя десятичные числа ге,х, у и г, выразите наибольшее и наименьшее (ненулевое) значения, которые можно представить в описанном выше нормализованном формате с плавающей запятой. Форма ответа должна быть такой: Наиболыпее - ге х 2' Наименьшее - у к 2 ' Как представление с избытком х порядка числа с плавающей запятой в формате, приведенном на рис. 6.24, а, упрощает сравнение относительного размера двух чисел с плавающей запятой? (Подсказка: предположим, имеется комбинационная логическая схема, сравнивающая относительные размеры двух 32-разрядных целых чисел без знака.
Используйте зту схему и дополнительные логические вентили для разработки схемы, сравнивающей числа с плавающей запятой.) В упражнении 6.25, а применялся способ преобразования простых десятичных чисел в двоичный формат с плавающей запятой. Однако если десятичные числа заданы в формате с плавающей запятой, процесс преобразования более сложен, поскольку нельзя по отдельности конвертировать мантиссу и показатель степени масштабного множителя. Ведь в общем случае в уравнении 10' 2" оба числа, хну, не могут быть целыми.
Предположим, имеется таблица двоичных чисел с плавающей запятой гь где г; - 10'' для х; в представимом диапазоне. Опишите процедуру преобразования заданного десятичного числа с плавающей запятой в число двоичного формата с плавающей запятой. Используйте любые поддерживаемые компьютером команды — как целочисленные, так и с плавающей запятой. Представьте десятичное число 0,1 в виде 8-разрядной двоичной дроби в формате, описанном в разделе 6.7. Если число нельзя преобразовать в 8-разрядный формат без потери точности, определите его приближенные значения, используя три метода усечения, описанные в разделе 6.7.3. Приведите пример, демонстрирующий, что для получения правильного результата вычитания двух положительных чисел нужно три разряда защиты.
Какой из четырех 6-разрядных результатов, полученных при решении задачи 6.2, а, неточен? Для каждого из случаев приведите три 6-разрядных значения, которые соответствуют трем типам усечения, описанным в разделе 6.7.3. Выведите логические формулы, определяющие выходы сложения/вычитания и Бх комбинационной схемы управления на рис. 6.26. Если коэффициент объединения по входу ограничен четырьмя вентилями, какой должна быть комбинационная реализация блока сдвига на рис. 6.26? а) Нарисуйте логическую венгильную схему, реализующую мультиплексор, показанный на рис. 6.26.
б) Как структура схемы 3%'АР (рис. 6.26) связана с вашим решением упражнения 6.34, а? 460 Глава 6. Арифметика беззнаковыми двоичными дробями и генерирует результат в виде значения со знаком. Обсуждая рис. 6.26, мы утверждали, что для данного формата входных и выходных операндов удобна арифметика дополнения до единицы. При сложении двух чисел со знаком в формате дополнения до единицы для получения правильного ответа к результату должен прибавляться перенос из знакового разряда. Эта операция называется поправкой луглем циклического переноса. Рассмотрим два примера сложения (рис. У6.3), в которых операнды и ответ представлены в форме 4-разрядных чисел со знаком в системе дополнения до единицы. Система дополнения до единицы удобна в случаях, когда результат требуется сгенерировать в формате значения со знаком, так как для преобразования числа, представленного в формате дополнения до единицы, в формат значения со знаком достаточно заменить разряды, находящиеся справа от знакового разряда, их дополнениями.
Если использовать арифметику дополнений до двух, для преобразования отрицательного числа в формат значения со знаком требуется выполнить прибавление единицы. В случае применения сумматора с параллельным переносом можно включить операцию циклического переноса, выполняемую при сложении чисел со знаком в формате дополнения до единицы, в логику параллельного переноса. Создайте полную схему сумматора-вычитателя для схемы, приведенной на рис. 6.26. (3) н-(-5) (6) 0 1 1 0 +( 3) н- 1 1о110оОо 3 0 0 ! 1 +0 1о011оОо 1 1 0 1 0 1 1 0 1 Рис. Х6.3.
Сложение в упражнении 6.66 0 0 1 1 6.35. Какова логическая реализация детектора ведущих нулей на рис. 6.26? 6,36. Сумматор-вычитатель мантисс на рис. 6.26 оперирует положительными Глава 7 Процессор + Как процессор выполняет команды + Внутренние функциональные блоки процессора и их взаимодействие + Аппаратное обеспечение, генерирующее внутренние управляющие сигналы + Микропрограммная организация процессорного устройства Настоящая и несколько следующих глав посвящены описанию процессорного устройства, которое выполняет машинные команды и координирует действия других устройств. Его часто называют процессором псстеми команд (1пзйгпсс1оп 8ес Ргосеззог, 15Р) или просто процессором. Мы проанализируем внутреннюю структуру процессора н расскажем о том, как он осуществляет выборку, производит дешифрацию и выполняет команды программы.
Процессорное устройство компьютера обычно называют центральным процессором (Сепсга) Ргосезз1пя Ушц СРП). Термин «центральный» в свое время отвечал реальному положению дел, поскольку в компьютере был только один процессор команд, но теперь во многих современных компьютерных системах имеется по нескольку процессоров, а следовательно, данный термин явно устарел. Внутренняя организация процессоров постоянно совершенствуется, отражая развитие технологий и потребность рынка во все более производительных устройствах. Общая стратегия создания высокопроизводительных процессоров направлена на обеспечение параллельной работы как можно большего количества различных функциональных устройств.
В частности, такие процессоры имеют конвейерную организацию, при которой выполнение очередной команды начинается до завершения предыдущей. При другом подходе, называемом суперскалярным функционированием, из памяти выбираются и одновременно выполняются несколько команд. Более подробно о конвейерной и суперскалярной архитектуре будет рассказано в главе 8. В настоящей же главе мы сконцентрируем внимание на основных идеях, общих для всех процессоров.
Типичная компьютерная задача состоит из цепочки шагов, определяемых последовательностью машинных команд программы, Каждая команда разбивается процессором на ряд элементарных машинных операций. Эти операции и принципы управления их выполнением и являются темой данной главы. 452 Глава 7. Процессор 7.1. Базовые концепции Для выполнения программы процессор по одной выбирает команды из памяти и выполняет определяемые ими действия.
Команды выбираются из последовательных адресов памяти, пока не встретится команда перехода или ветвления. Для этого в счетчике команд, РС, отслеживается адрес очередной подлежащей выполнению команды. После выборки этой команды содержимое регистра РС обновляется, чтобы он указывал на следующую команду в памяти в порядке расположения адресов.
Команда ветвления может загрузить в РС другой адрес. Еще одним важнейшим регистром процессора, связанным с выполнением команд, является регистр команды, 1К. Предположим, что каждая команда имеет длину 4 байта и хранится в одном слове памяти. Для ее выполнения процессор должен произвести следующие шаги. 1. Выбрать из памяти слово, на которое указывает РС. Содержимое этого слова интерпретируется как команда и загружается в регистр 1К. Символически зто можно записать так: (( П 2. Если память адресуется побайтово, следует увеличить содержимое регистра РС на 4: РС < — (РС1 + 4 3. Выполнить действия, определяемые командой, которая находится в 1К. Если команда занимает более одного слова, шаги 1 и 2 повторяются столько раз, сколько нужно для выборки всей кома~щы.
Эти два шага обычно называют фазой выборки, а шаг 3 составляет фазу выполнения. Для детального изучения указанных операций нам прежде всего нужно проанализировать внутреннюю структуру процессора. Главные его блоки представлены на рис. 1.2.
Их организация и связи между ними, как вы помните, могуг быть разными. Мы начнем с самой простой организации. Позже в этой главе, а также в главе 8 вы познакомитесь с более сложными структурами, предназначенными для обеспечения высокой производительности. Па рис. 7.1 показана архитектура процессора, при которой арифметико-логическое устройство (АЛУ) и все регистры соединены одной общей шиной. Это внутренняя шина процессора, которую не следует путать с внешней шиной, соединяющей процессор с основной памятью и устройствами ввода-вывода. Линии данных и адреса внешней шины памяти на рис.
7.1 соединены с внутренней шиной процессора через регистр данных памяти, МПК, и регистр адреса памяти, МАК. У регистра М1Ж имеется два входа и два выхода. Данные могут загружаться в него либо с внешней шины памяти, либо с внутренней шины процессора. Хранящиеся в МГЖ данные также могут быть помещены на любую нз зпп шин. Вход регистра МАК соединен с внутренней шиной, а его выход — с внешней.
Управляющие линии шины памяти соединены с дешифратором команды 7.1. Базовые концепции 453 и управляющим логическим блоком. Это устройство отвечает за выдачу сигналов, которые управляют работой всех устройств внутри процессора и взаимодействием с шиной памяти. Количество регистров процессора с именами от ВО до К(п-1) в различных процессорах может быть совершенно разным.
Это регистры общего назначения, используемые программистами для нужд программ. Некоторые из них могут быть выделены как регистры специального назначения, например как индексные регистры или указатели стека. Три показанных на рис. 7.1 регистра — У, Е и ТЕМР— мы еще не упоминали. Эти регистры прозрачны для программиста — о нвх не нужно думать, поскольку в командах они никогда явно не указываются и используются процессором для временного хранения информации в ходе выполнения некоторых команд.