Смекни!
smekni.com

Анализ операций умножения и деления в конкретной модели АЛУ

Московский ГосударственныйУниверситет

Экономики,Статистики и Информатики.


Институтинформационныхсистем.


Кафедравычислительных систем, сетей и телекоммуникаций.


Курсоваяработа по теме:

АнализсоставаАЛУ и принципывыполненияопераций умноженияи деления вконкретноймодели ЭВМ”


Выполнилстудент группыДП-201:

ЗеленовА.В.

Руководитель:

профессорЧерняк Н. Г.


Москва,1998 год.

Заданиена курсовуюработу на тему:

“АнализсоставаАЛУ и принципывыполненияопераций умноженияи деления вконкретноймодели ЭВМ”

студентагруппы ДП-201Зеленова А.В.


  1. Введение( структурнаясхема ЭВМ , местоАЛУ и его взаимодействиес другимиустройствами)

  2. Основныепараметры иклассификацияАЛУ

  3. Алгоритмвыполненияопераций умноженияи деления вАЛУ конкретноймодели ЭВМ

  4. Заключение( сравнительныйанализ выполненияарифметическихкоманд )


Исполнитель:

ЗеленовА.В.

Руководитель:

профессорЧерняк Н. Г.

30


Введение

Созданиефирмой Intelпервогомикропроцессорав 1971 году положилоначалоэпохе компьютеризации.“Благодарямикропроцессорамкомпьютерыстали массовым,общедоступнымпродуктом ”,-заявил ТедХофф, один изизобретателейпервого процессора.Его имя, вместес именами егоколлег - ФедерикоФеджина и СтиваМейзора, внесенов список лауреатовНациональногозала славыизобретателейСША, а самоизобретениепризнано однимиз величайшихдостиженийХХ века.

Зачуть более чемчетвертьвековуюисторию микропроцессорыпрошли поистинегигантскийпуть. Первыйчип Intel4004 работална частоте 750Кгц, содержал2300 транзисторови стоил около200 долларов.Производительностьего оцениваласьв 60 тысяч операцийв секунду. Насегодняшнийдень рекордныепоказателипринадлежатмикропроцессорамAlpha 21264фирмы DECи составляют:600 МГц,15.2 миллионатранзисторов,2 миллиардаопераций всекунду и около300 долларовсоответственно.

Сравнениеприведенныхзначений подтверждаетоценку успеховмикропроцессорнойиндустрии,данную основателеми председателемсовета директоровфирмы Intel ГордономМуром: “Еслибы автомобилестроениеэволюционировалосо скоростьюполупроводниковойпромышленности,то сегодня“Роллс-Ройс”стоил бы 3 доллара,мог бы проехатьполмиллионамиль на одномгаллоне бензинаи было бы дешевлеего выбросить,чем платитьза парковку”[ “Intel на Comtek’98”CDROM - perspectives.html ].

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

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

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

Типымикропроцессоров

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

Цифровыесигнальныепроцессорырассчитанына обработкув реальномвремени цифровыхпотоков, образованныхпутем оцифровыванияаналоговыхсигналов. Этообусловливаетих сравнительномалую разрядностьи преимущественноцелочисленнуюобработку.Однако современныесигнальныепроцессорыспособны проводитьвычисленияс плавающейточкой над32-40 разряднымиоперандами.Кроме того,появился классмедийных процессоров,представляющихсобой законченныесистемы дляобработкиаудио- и видеоинформации.

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

Вданной курсовойработе на примерецифровогосигнальногопроцессорасемействаADSP-21xxпроизводитсяразбор командумножения иделения, выполняемыхв АЛУ.

Обобщеннаяструктурнаясхема персональногокомпьютера





Центральныйпроцессор вперсональныхкомпьютерахпредставляетсобой микропроцессор,то есть построенна одной микросхеме(БИС,СБИС). В егосостав входят:

  • Центральноеустройствоуправления- комплекс средствавтоматическогоуправленияпроцессамипередачи иобработкиинформации;

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

  • Внутренняяпамять процессора:

  • Регистроваяпамять

  • Постояннаяпамять устройствауправления

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

Микропроцессорявляется ядромЭВМ (рис.1). Оносуществляетобработкуданных и функцииуправлениясистемой. Кфункциям управлениясистемой относятся:

  • инициированиеоперацийввода-вывода

  • управлениедоступом косновной памяти( работа с виртуальнойпамятью )

  • обработкасистемныхсобытий - прерываний

  • организациямногозадачныхрежимов работы

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

  • средстваобработкиинформации

  • локальнаяпамять

  • средствауправлениясистемой ипрограммами

  • управлениеинтерфейсоми каналами

Структурноэти средстваразбиваютсяна центральноеустройствоуправления,АЛУ, внутреннююпамять и управляющиеустройства,связанные сконкретнымиустройствамивычислительноймашины.

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

Внутренняяпамять входитв состав первогоуровня и связанас АЛУ и другимиблоками центральногопроцессоранепосредственнои имеет скоростьработы соизмеримуюсо скоростьюработы блоковпроцессора.

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

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

Арифметико-логическоеустройство

Общиесведения, функциии классификация

Арифметико-логическоеустройствофункциональноможно разделитьна две части:

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

б) операционноеустройство(АЛУ), в которомреализуетсязаданнаяпоследовательность микрокоманд(команд).


Структурнаясхема АЛУ и егосвязь с другимиблоками машиныпоказаны на рисунке 2. В составАЛУ входятрегистры Рг1– Рг7, в которыхобрабатываетсяинформация, поступающаяиз оперативнойили пассивнойпамяти N1, N2,...NS; логические схемы, реализующиеобработку словпо микрокомандам,поступающимиз устройствауправления.

Закон переработкиинформациизадает микропрограммаМ, котораязаписывается в виде последовательностимикрокомандA1,A2, ..., Аn-1,An.При этом различают два вида микрокоманд:внешние, тоесть такиемикрокоманды,которые поступают в АЛУ от внешнихисточникови вызывают внем те или иныепреобразованияинформации (на рис. 2микрокомандыA1,A2,...,Аn),и внутренние,которые генерируютсяв АЛУ и воздействуютна микропрограммноеустройство,изменяя естественный порядок следованиямикрокоманд.Например, АЛУможет генерироватьпризнаки взависимостиот результатавычисленийj,w,Qи др. (j –признак переполнения, w – признакотрицательногочисла, Q– признак равенства0 всех разрядовчисла), На рис.2эти микрокомандыобозначеныр1,p2,...,рm.

Результатывычисленийиз АЛУ передаютсяпо кодовымшинам записиу12,...,уs,в ОЗУ.

Функции регистров,входящих в АЛУ:

  • Рг1 – сумматор(или сумматоры)– основнойрегистр АЛУ,в котором образуется результатвычислений;


  • Рг2, РгЗ – регистрыслагаемых,сомножителей,делимого илиделителя (взависимости от выполняемойоперации);
  • Рг4 – адресныйрегистр (илиадресные регистры),предназначендля запоминания(иногда и формирования)адреса операндови результата;

  • Ргб – k индексныхрегистров,содержимоекоторых используетсядля формированияадресов;

  • Рг7 – l вспомогательныхрегистров,которые пожеланию программистамогут бытьаккумуляторами,индекснымирегистрамиили использоватьсядля запоминанияпромежуточныхрезультатов.

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

  • сумматор,

  • индексныерегистры,

  • некоторыевспомогательныерегистры.

остальныерегистрыпрограммно-недоступные,так как они немогут бытьадресованыв программе. Операционныеустройстваможно классифицироватьпо виду обрабатываемой информации,по способуобработкиинформациии логическойструктуре.ПодробнаяклассификацияАЛУ показанана рис. 3.

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

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

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

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

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

Алгоритмысложения (вычитания)и умноженияв АЛУ

Структурнаясхема микропрограммысложения показанана рис. 4. Выполнениеэтого алгоритмасостоит в следующем:

  1. Первоеслагаемое аустанавливаетсяна Рг1, анализируетсяего знак: еслизнак отрицательный,то операндинвертируетсяи передаетсяна Рг3, еслиположительный- передаетсябез инверсиичерез Рг2 наРг3

  2. Второеслагаемоетакже устанавливаетсяна Рг1 и анализируетсяего знак: еслизнак отрицательный,то операндинвертируется,если положительный- сразу начинаетсясуммированиеоперандов наРг2 ( сумматоре)

  3. Послесуммированияанализируетсязнак результата:если результатотрицательный,то он инвертируется,если положительный- добавляется“+1” ЦП к младшемуразряду результатаи выполняетсяанализ признаковпереполнения


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

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


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

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

  3. Анализируетсямладший разрядмножителя:если он имеетзначение “1”,то к сумме частичныхпроизведенийприбавляетсямножимое.


  1. Производитсясдвиг суммычастичныхпроизведенийи множителяна один разрядвправо.
  2. Действия3 и 4 повторяютсяnраз ( n- разрядностьсомножителей)

Структурнаясхема микропрограммыумноженияпоказана нарис. 6. Ввидугромоздкостиделение здесьне рассматривается.

Теперь,можно приступатьк рассмотрениюконкретногоАЛУ, что и будетсделано. В качествепримера возьмемАЛУ цифровогосигнальногопроцессора- специализированногопроцессорас RISCархитектурой,предназначенногодля решениязадач цифровойобработкисигналов. Труднонайти такуюобласть техники,где не моглибы применятьсясигнальныепроцессоры.Это цифроваяфильтрация,кодированиеи декодированиеинформации,обработка звукаи распознаваниеречи, обработкаизображений,медицина,измерительнаятехника, управляющиесистемы и многоедругое.

Цифровыесигнальныепроцессоры

Чемже отличаетсяцифровой процессорот обычногомикропроцессора? В первую очередь- архитектуройи системойкоманд. В основупостроенияDSP (DigitalSignal Processor) положеныследующиепринципы :

  • использованиегарвардскойархитектуры

  • сокращениедлительностикомандногоцикла

  • применениеконвейеризации

  • применениеаппаратногоумножителя

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

Гарвардскаяархитектураподразумеваетхранение программи данных в двухраздельныхзапоминающихустройствах.Соответственнона кристаллеимеются раздельныешины адресаи данных ( внекоторых типахпроцессоров- несколько шинданных и адреса). Это позволяетсовмещать вовремени выборкуи исполнениекоманд

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

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

Алгоритмвыполнениясложения иделения варифметико-логическомустройстве,на примерецифровогосигнальногопроцессорасемействаADSP-21xx.

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

Арифметикаи типы данных

Строкибитов

Этопростейшаяформа записи;16 бит составляютстроку битов.Примерамиопераций, вкоторых используетсяэтот формат,являются логическиеоперацииNOT,AND,OR,XOR.Эти операции,исполняемыеАЛУ, считают,что их аргументыстроки битови не заботятсяо знаке или оположениидесятичнойточки

Числабез знака

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

Числасо знаком вформе дополнениядо двух

Дляарифметикипроцессоровсемействатермин “знаковый”всегда обозначаетчисла. Записанныев форме дополнениядо двух. Многиеинструкциипроцессораподразумеваютили поддерживаютарифметикупо модулю 2.

Дробь1.15

Арифметическиеинструкциипроцессоровсемействаоптимизированыдля операцийв дробном двоичномформате 1.15. В этомформате левыйбит числа обозначаетего знак, и 15оставшихсябит представляютсобой числаот -1 до почти1 ( из-за несимметричностипредставлениязнаковых чисел).

Арифметическиеоперации АЛУ

Всеарифметико-логическиеоперации трактуютсвои операндыи получаютрезультатыкак 16 разрядныебитовые строки,за исключениемпримитивовзнаковогоделения (DIVS).Различные флагитрактуют результатыкак числа сознаком: флагпереполнения(AV)и флаг отрицательногочисла (AN).

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

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

АрифметикаМАС

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

Всепроцессорысемействаподдерживаютдва форматакоррекциирезультатаумножения :

  • дробный (1.15 )

  • целый ( такженазывается16.0 )

Когдапроцессорумножает два1.15 операнда,результатявляется числомв формате 2.30 ( двазнаковых битаи 30 дробных бит). В дробном режимеМАС автоматическисдвигает результатумножения влевона один битперед переносомего в регистррезультата( MR ).После этогосдвига форматрезультатастановится1.31, что позволяетокруглить егодо формата1.15.

Вцелочисленномрежиме сдвигвлево не происходит.Например, еслиоперанды формата16.0, то 32-битныйрезультатумножения будетв формате 32.0. Болеетого здесьсдвиг не нужен,ибо он изменитзначение результата.

Арифметикаустройствасдвига

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

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

АЛУ

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

СтруктураАЛУ

Нарисунке 7показана блок-схемаАЛУ.

АЛУимеет три 16-битныхрегистра, доступныхдля программиста: X,Y-регистрыоперандов, аR - регистррезультата.АЛУ используетвходной сигналпереноса ( CI), которыйозначает битпереноса врегистреарифметическогосостояния (ASTAT ).АЛУ генерируетшесть статусныхсигналов :

  • результат 0 (AZ )

  • отрицательный( AN )

  • перенос( AC )

  • переполнениерезультата( AV )

  • знак (AS)

  • состояниечастного (AQ )

Вконце циклавсе сигналыарифметическогостатуса изменяютсостояниясоответствующихбитов в регистреарифметическогостатуса ( ASTAT).

Входнойпорт Xможет приниматьданные из двухисточников: из блокарегистровАХ или с шинырезультата.Шина результатов( R )соединяетвыходные регистрывсех вычислительныхустройств,позволяя имбыть непосредственнооперандамиинструкций.Блок регистровАХ состоит издвух регистров: АХ0 и АХ1. Этирегистры читаемыи могут бытьзаписаны черезшину DMD.Выход блокарегистров АХтаков, что одиниз них может



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

Входнойпорт Y также можетприниматьданные из двухисточников: из набора регистровАY илииз регистраобратной связиAF.Блок регистровAY состоитиз двух регистровAY0 и AY1.Эти регистрычитаемы и могутбыть записанычерез шину DMD,а также могутбыть записанычерез шину PMD.Выход блокарегистров AY совпадаетпо своим возможностямс блоком регистровАХ.

Результатработы АЛУзагружаетсялибо в регистробратной связиAF,либо в регистррезультатаAR.Регистр обратнойсвязи - внутреннийрегистр АЛУ,который позволяетиспользоватьрезультатнепосредственно,как операндY.Регистр результатаAR можетзаписыватьсякак на шинуDMD,так и на шинурезультатов.Он также непосредственнозагружаем сшины DMD.

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

Любыерегистры, связанныес АЛУ могут какчитаться, так и писаться водном цикле.Регистры читаютсяв начале циклаи записываютсяв конце. Новоезначение, записанноев регистр, неможет бытьсчитано доначала следующегоцикла.

АЛУ содержитдва наборарегистров AR,AF, АХО, АХ1, AYО, AY1. Вкаждый моментвремени домен лишь один набор.Дополнительныйнабор регистровможет бытьсделан активным(например, приобработкепрерывания)для очень быстрогопереключенияконтекстов.Новая задача,такая, как обработкапрерывания, может бытьвыполнена беззапоминаниятекущего состояниярегистров АЛУ.

Выбор первичногоили вторичногонабора регистровконтролируется битом 0 в регистрережима и статусапроцессора(MSTAT). Если этотбит нулевой,используетсяпервичныйнабор, если жеон единица, тоиспользуется вторичныйнабор регистров.

Стандартныефункции

Вот списокстандартныхфункций АЛУ:


R=X+Y сложениеХ и Y
R=X+Y+Cl сложениеХ и Y с переносом
R=X – Y вычестьY из Х
R=X – Y – Cl – 1 вычестьY из Х с заемом
R=Y – Х вычестьХ из Y
К=Y – X – Cl –1 вычестьХ из Y с заемом

R= – X

арифметическоеотрицание Х
R= – Y арифметическоеотрицание Y
R=Y+1 инкрементY
R=Y – 1 декрементY
R=PASS Х результатравен операндуХ
R=PASS Y результатравен операндуY
R=O (PASS 0) очиститьрезультат
R=ABS Х результатравен абсолютномузначению Х
R=X AND Y логическоеи (AND) Х и Y
R=X OR У логическоеили (OR) Х и У
R=X XOR У исключающеелогическоеили (XOR) Х и У
R=NOT Х логическоеотрицание Х
R=NOT Y логическоеотрицание У

Дляобработки чиселс повышеннойточностьюпредусмотренсигнал переносаи флаг переноса(AC). Операциясложения спереносом (+Cl) предназначенадля сложения"верхних" частейчисел с повышенной точностью.Вычитание сзаемом (+CI-1) предназначенодля вычитания"верхних" частейчисел с повышеннойчетностью.

Режим“насыщения”и “защелки”

Регистр AR имеетрежим работыкогда он автоматическиустанавливается в максимальноеположительноеили максимальноеотрицательное число привозникновениипереполненияЭтот режимвключаетсяустановкой бита 3 в регистрережима и статусапроцессора(MSTAT) . При включенном режиме насыщения,значение, получаемоев АR, зависитот флагов переноса и переполнения,сгенерированныхАЛУ в текущемцикле. Нижеприведена таблица, показывающаясодержимоеAR в зависимостиот флагов при включенномрежиме насыщения.

Реализациярежима насыщениясущественноотличаетсяот таковой вМАС-е, где режимнасыщенияуказываетсяв самой инструкции.

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

Режим "защелки"переполненияАLU, разрешаемыйбитом 2 в регистре режима и статусапроцессора(MSTAT), приводит ктому, что флаг переполненияАV остаетсяподнятым послепереполнения,несмотря нато, что последующиеинструкциимогут не генерироватьпереполнения.В этом режимефлаг АV можетбыть очищентолько прямойзаписью нулячерез шинуDMD.

Деление

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

Деление с одинарнойточностью, с32-битным делимыми 16-битным делителем,дающее 16-битноечастное, выполняетсяза 16 циклов. Такжемогут бытьвычисленычастные меньшейи большейразрядности.Делитель можетсодержатьсяв АХ0, АХ1 или любомиз R регистров.Старшая часть знаковогоделимого можетсодержатьсяв АY1 или AF. Старшаячасть беззнаковогоделимого можетсодержатьсятолько в AF. Младшаячасть делимогодолжна бытьв АY0. После завершенияоперации делениячастное находитсяв AY0.

Первыйиз двух примитивовделения, "делитьзнак" (DIVS), выполняетсяв начале деленияпри делениизнаковых чисел.Эта инструкция получает знаковыйбит делимого,проведя операцию“исключающееили” со знакамиделимого иделителя. РегистрAY0 сдвигаетсяна 1 разряд, такчто вычисленныйзнаковый битпомещаетсяв самый младший(правый) разряд.Полученныйзнаковый биттакже загружаетсяво флаг АQ регистра арифметическихфлагов. Самыйстарший (левый)бит AYO сдвигаетсяв младший битAF, а оставшиесястаршие 15 битAF загружаютсяиз 15 младшихбит регистраR из АЛУ, что всвою очередьпересылаетсодержимое входного регистраY прямо в регистррезультатаR. Последовательный эффект состоитв том, чтобысдвинуть влевопару регистровAF-AYO и переслатьзнак частногов самый младшийразряд. Рисунок8 иллюстрируетоперацию DIVS.


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

Второйпримитив деления– инструкция"делить частное"(DIVQ), которая генерирует1 бит частногоза цикл и выполняетсяповторно, чтобы подсчитатьоставшиесяразряды частного.Для беззнаковогоделения с одинарнойточностьюинструкцияDIVQ выполняется16 раз, чтобыполучить 16 битчастного. Длязнаковогоделения с одинарнойточностьюинструкция DI VQ выполняется15 раз, послевычислениязнакового битаинструкцией DI VS. Инструкциясдвигает регистрAYO влево на 1 биттак, что новыйбит частногопомещаетсяв младший бит.Состояние флагаАQ (полученноево время предыдущихопераций) определяетинструкцию,используемуюдля получениячастичногоостатка. ЕслиAQ=1, то АЛУ добавляетделитель кчастичномуостатку в AF. ЕслиAQ=O, то АЛУ вычитаетделитель из частичногоостатка в AF. РегистррезультатаК загружаетсясо смещениемв AF так, как этоописано дляинструкцииDIVS. Флаг AQ считаетсякак исключающеелогическоеили (XOR) старшегобита делителяи старшего бита регистрарезультатаАЛУ, а очереднойбит частногополучается инвертированиемэтого значения.Полученныйбит частногозагружаетсяв младший битрегистра АYО,который затемсдвигаетсявлево на 1 бит. Рисунок 9 иллюстрируетоперацию DlVQ.

Форматчастного длялюбого представленияможет бытьопределен из формата делимогои делителя.Пусть NL равноколичествубит слева отдесятичнойточки, NR равноколичествубит справа отдесятичнойточки делимого;DL равно количествубит слева отдесятичнойточки, DR равно количествубит справа отдесятичнойточки делителя;тогда количествобит




слева отдесятичнойточки частногоесть NL–DL+l ,a количествобит справа отдесятичнойточки частногоесть NR–DR–1.

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

Чтобыразделить 2целых (делимоев формате 32.0 иделитель вформате 16.0) иполучить целыйрезультат (вформате 16.0),надосдвинуть делимое на 1 бит влево(получить формат1.31) перед делением.

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

МАС(умножитель/аккумулятор)

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

Блок-схемаМАС

Рисунок10 показываетблок-схему МАС.Умножительимеет два входных16-битных порта– Х и У и один 32-битный выходнойпорт результатаР. 32-битное произведениепередается 40-битному сумматору,который прибавляетили вычитаеттекущий результатк региструрезультата(MR) или непосредственнопомещает текущийрезультат врегистр MR. Ширинарегистра MRсоставляет40 бит. Фактическион состоит изтрех регистров:MRО и MR1, 16-битных,и 8-ми битногоMR2.



Сумматор имеетширину, большуючем 32 бита длятого, чтобы разрешитьпромежуточныепереполненияпри выполнениинескольких операций подряд.Флаг МV (multiplier overflow,переполнениеумножителя) устанавливается,если значащиебиты появилисьвыше 32-битнойграницы регистраМR.

Входные/выходныерегистры МАС,а также запись/чтениев них, аналогичнытаковым дляАЛУ.

Результатработы сумматоразагружаетсялибо в регистробратной связи МF, либо в регистррезультатаMR. Регистр обратнойсвязи MF позволяет использоватьбиты 16-31 результатанепосредственно,как операндY в следующемцикле. Регистррезультата(MR) шириной 40 битсостоит из трех регистров:MR0,MR1 и MR2. Каждый изэтих регистровможет быть напрямую загруженчерез шину DMDи записан черезшину DMD или на шину промежуточныхрезультатовR.

MАС,аналогичноАLU, содержитвторой банкрегистров, какпоказано нарисунке 4.6, запервичнымирегистрами.Выбор первичногоили вторичногонабора регистровконтролируетсябитом 0 в регистрережима и статусапроцессора(MSTAT).

ОперацииМАС

СписоквыполняемыхМАС-ом операций:



Х*Y

MR+X*Y

MR–X*Y

0


умножитьХ на Y

умножитьХ на Y и добавитьрезультат ксодержимомуMR

умножитьХ на Y и вычестьрезультат изсодержимогоMR

очиститьрегистр результатаMR


МАСобеспечиваетдва стандартныхрежима умножения/аккумулирования:дробный режим(для чисел вформате 1.15) и целыйрежим для целыхв формате 16.0.

Вдробном режимеформат 32-битноговыходногорегистрарегулируется,то есть, происходитзнаковое расширениеи сдвиг содержимого на 1 бит влевоперед добавлениемв MR. Например,31-ый бит регистраР соответствует32-му биту регистраMR (что в своюочередь соответствует биту 0 регистраMR2), a нулевой битрегистра Рсоответствует1-му биту регистраMR (что в своюочередь соответствуетбиту 1 регистраMRO). Младший битMR просто очищается.Оставшиесясемь бит MR2 заполняютсязнаком регистраР (то есть 31 битомР).

Вцелом режиме32-битный регистррезультатане сдвигаетсяпри добавлениик регистру MR.Восемь бит MR2заполняютсязнаком Р.

Режимвыбирается4-ым битом регистрарежима и состояния(MSTAT). Единица вэтом бите означаетцелочисленныйрежим; нольозначает дробныйрежим. В обоихрежимах содержимоерегистра Рподается навход сумматора,который прибавляетили вычитаетновое произведениеиз текущегосодержимогорегистра MR, чтобысформироватьокончательный результат вR.

Дляреализациивычисленийс повышеннойточностью,умножитель позволяетосуществлятьлюбые комбинацииоперандов Хи Y (умножатьзнаковое назнаковое(SS),беззнаковоена знаковое(US), беззнаковоена беззнаковое(UU), знаковое набеззнаковое(SU) ).

Форматыоперандовзаписываютсякак часть инструкции.Поэтому онидинамическивыбираютсяиз каждой инструкцииумножения.

8-битныйрегистр MR2 призаписи/чтениирасполагаетсяв восьми младшихбитах шин данных.При чтении MR2через шину DMDили на шинупромежуточныхрезультатов(R) происходитего знаковое расширениедо 16 бит. MR1 такжеимеет возможностьавтоматического расширениязнака. ТогдаMR1 загружаетсяс шины DMD, все битыв MR2 автоматическизаполняютсязнаковым битомМR1, так что MR2 служит расширениемMR1. Чубы загрузитьв регистр МR2значение, отличноеот знаковогорасширенияMR1, надо загружатьMR2 после загрузкиМR1. Загрузкаже MR0 не влияетни на один изоставшихсярегистров;знаковое расширениене происходитпри загрузкеMR0.

Переполнение,насыщение иокружение вМAС

Сумматоргенерируетфлаг переполненияМV, которыйзагружаетсяв регистрарифметическогостатуса процессора(АSТАТ) послевыполнения каждой операцииMАС-ом. Этот битустанавливаетсяв случае, если результатаккумулятора,интерпретируемыйкак число сдополнениемдо 2, (MR) пересекает32-битную границу(МR1/МR2) .То естьфлаг МV устанавливается,если верхниедевять бит MRне все одновременноравны 0 или 1.

РегистрМR имеет возможностьвыполнятьоперацию насыщения,то есть устанавливатьсяв максимальноеположительное(отрицательное)число при переполнении.Операция насыщениязависит отфлага МV в регистре ASTAT и знаковогобита регистраMR2. Следующаятаблица показывает эффект операциинасыщения МR


ФлагMV

Старшийбит МR2


Результатпосле насыщения

0 1или 0 безизменения
1 0

000000000111111111111111 1111111111111111 -максимальноеположительноечисло

1 1

11111111 1000000000000000 0000000000000000 - максимальноеотрицательноечисло


Насыщениев МАС – это операция(в отличии отрежима в АЛУ).Она предполагаетсядля использованияпосле умножений/аккумуляций,так чтобыпредварительныерезультатыне вызывалинасыщения, ибоэто приведетк потере точности.

Переполнениевыше 40-го битарегистра MR2 недолжно допускаться. Знак числатеряется безвозвратнопри этом и насыщениеможет получить совершеннопротивоположныйрезультат. Нотребуется более255 простых переполнений(типа MV), чтобытакое моглослучиться.

Аккумуляторимеет возможностьокруглить40-битный результатR до 16-битного.Округлениедолжно бытьуказано в инструкциис помощью опции(RND). Округленныйрезультатнаправляетсяв регистр MR илиMF. Когда происходитокруглениес регистромMR в качествевыходного, содержимоеMRl представляетиз себя округленный16-битный результат,а содержимоерегистров MR2 иMR1 может рассматриватьсякак результат, округленныйдо 24 бит.

Аккумуляториспользуетнесмещеннуюсхему округления.Обычный методсмещенногоокругленияпроизводитсядобавлениемчисла 0х8000 к MR(то есть еслиMR0 больше илиравно 0х8000, тоMR1/MR2 инкрементируются),при этом округленныйрезультатнаходится вMR2 и MR1. Но этот методприводит кобщему положительномусмещению, т.к. при среднемзначении (когдарегистр MRO равен0x8000) число округляется вверх. Аккумуляторже устраняетэто смещение,всегда устанавливаябит 0 MR1 в нольпосле округления,если МR0 содержит0х8000. Таким образом,происходитокруглениечетных значенийMR1 вниз и нечетных значений MR1 вверх,что в свою очередьприводит кравнозначности операции округленияна большихвыборках чисел.


Примертипичной операцииокругления:


Пример1 MR2 MR1 MR0
Неокругленныеданные xxxxxxxx xxxxxxxx00100110 1xxxxxxxxxxxxxxx

Бит 15=1

Добавим1 к 15-му биту иучтем перенос



1 ( 0х8000)
Округленноезначение xxxxxxxx xxxxxxxx00100111 0xxxxxxxxxxxxxxx

Компенсациястановитсявидимой, еслиMRO=0x8000.


Пример2 MR2 MR1 MR0
Неокругленныеданные xxxxxxxx xxxxxxxx00100110 100000000000000

Бит 15=1

Добавим1 к 15-му биту иучтем перенос



1 ( 0х8000)
Таккак бит 16 =1, присвоимему 0


Округленноезначение xxxxxxxx xxxxxxxx00100111 000000000000000

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

ЗакончиврассмотрениеАЛУ DSP,попробуемсравнить егопроизводительностьпо арифметическимоперациям,например, сi486DX- достаточномощным универсальнымпроцессором.Начнем с того,что в АЛУ цифровогосигнальногопроцессоралюбая инструкцияисполняетсяза один цикл,вместо несколькихциклов во второмпроцессоре.Работает такойпроцессор начастоте до 33.3Мгц ( при этомi486DXработаетна частоте 50Мгц, а улучшенныеверсии на частотахдо 133Мгц ). Операциис плавающейточкой имеют40 разрядныеоперанды, вместо80 разрядных вFPU i486DX.Остальныепараметры (конвейеризация,архитектурныерешения ) практическиидентичны. Дляпримера нижедана таблица,отображающаявремя исполненияпрограммы“быстрогопреобразованияФурье” на 1024 точкидля процессоровi486DX2-66 и ADSP-21xx

Операция Время выполнения

i486DX2-66

ADSP-21xx


БПФ на 1024 точки

20ms

2.23ms



Получаютсядовольно странныерезультаты.У более мощногопроцессоравремя выполненияв 10 раз больше,чем у менеемощного. Из-зачего так происходит? Прежде всегонадо отметить,что аппаратнореализованноеумножение вDSP даетосновной выигрышв скорости.Во-вторых, DSPменее универсален,по сравнениюс i486,поэтому арифметическиеоперации у негооптимизированыдля работы вреальном времени,то есть скоростьих выше. Конечноскорость достаточносильно зависитот алгоритмовумножения,деления и сложения.Ведь какой быни была скоростьпроцессораплохо оптимизированныйалгоритм будетприводит клишним схемнымрешениям, потеревремени навыполнениелишних микрокоманди, как следствие,ухудшениепараметровпроцессора.В некоторыхпроцессорах( уже практическиотсутствующихна рынке, напримерi8080 илиего преемникZilog Z80 ) команд умноженияи деления нет.В этом случаеданные арифметическиеоперацииреализовывалисьпрограммно,через сложениеи сдвиги. Соответственнопроизводительностьпри вычисленияхпадала в несколькораз.

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

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


Списоклитературы

  1. Справочникпо цифровойвычислительнойтехнике ( процессорыи память ), ”Технiка”,1979

  2. Цифровыесигнальныепроцессоры,“Микроарт“,1996

  3. Григорьев“Микропроцессорi486“,1993

  4. СD-ROM“Intel на Comtek’98”( образ российскоговеб-сайта Intel)

  5. CD-ROM“Intel Architecture Information Library”

  6. Лекциипо курсу “Вычислительныемашины и сети”

Введение3

Типы микропроцессоров4

Обобщеннаяструктурнаясхема персональногокомпьютера4

Арифметико-логическоеустройство6

Общие сведения,функции иклассификация6

Алгоритмысложения (вычитания)и умноженияв АЛУ10

Цифровыесигнальныепроцессоры13

Алгоритмвыполнениясложения иделения варифметико-логическомустройстве,на примерецифровогосигнальногопроцессорасемействаADSP-21xx.13

Арифметикаи типы данных13

Строки битов13

Числа беззнака14

Числа сознаком в формедополнениядо двух14

Дробь 1.1514

Арифметическиеоперации АЛУ14

АрифметикаМАС14

Арифметикаустройствасдвига 15

АЛУ15

СтруктураАЛУ15

Стандартныефункции18

Режим “насыщения”и “защелки”19

Деление19

МАС (умножитель/аккумулятор)22

Блок-схемаМАС23

ОперацииМАС24

Переполнение,насыщение иокружение вМAС25

Сравнительныйанализ выполненияарифметическихкоманд в различныхтипах процессоров27

Списоклитературы29