|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Особенности RISC-архитектурВ начале 80-х годов 20-го века в одной микросхеме процессора было всего несколько десятков тысяч транзисторов. Этого количества транзисторов было недостаточно для создания полноценного процессора. В связи с этим разработчики процессоров начали искать, что же можно упростить в архитектуре процессора для того, чтобы реализовать ее в одной микросхеме. Для начала разработчики свели к минимуму набор команд и их форматов, количество режимов адресации оперативной памяти. В классическом варианте RISC из команд, обращающихся к оперативной памяти, были оставлены только две (LOAD - загрузить данные в регистр и STORE - сохранить данные из регистра; так называемая LOAD/STORE-архитектура), и не было ни одной «сложной» команды вроде вычисления синуса, косинуса или квадратного корня. В некоторых первых RISC-процессорах пытались отказаться даже от трудно реализуемого аппаратного умножения и деления. В дальнейшем от этих намерений отказались. Второе важное усовершенствование RISC-процессоров, целиком вытекающее из LOAD/STORE-архитектуры, - увеличение числа регистров общего назначения. Варианты, у которых меньше шестнадцати регистров общего назначения - большая редкость, причем почти все эти регистры были полностью равноправны, что позволяло компилятору свободно распоряжаться ими, сохраняя большую часть промежуточных данных именно там, а не в стеке или оперативной памяти. В некоторых более поздних RISC-архитектурах, типа SPARC, EPIC "регистровость" была возведена в абсолют, в некоторых - оставлена на разумном уровне; однако почти любой RISC-процессор обладает куда большим набором регистров, чем даже самый продвинутый CISC-процессор. Для сравнения, в СISC-архитектуре IA-32 было всего 8 регистров общего назначения, причем некоторым из них приписано то или иное "специальное назначение" (скажем, в регистре ЕSP хранится указатель стека) затрудняющее или делающее невозможным его использование. Среди прочих усовершенствований, внесенных в RISC-архитектуры, - такие нетривиальные идеи, как условные команды или режимы работы команд. Например, некий модификатор в команде показывает, должна ли команда фиксировать по результатам своего выполнения определенные флаги, которые потом может использовать команда условного перехода, или не должна. Это позволяет разнести в пространстве команду, выполняющую вычисление условия, и команду собственно условного перехода - что в конвейерных структурах зачастую позволяет ядру процессора не "гадать", будет совершен переход или нет, а сразу достоверно это знать. "В чистом виде" идею "легкого" RISC-процессора можно встретить у фирмы ARM с ее простыми и весьма эффективными 32-разрядными процессорами. Но простота далеко не главный показатель процессора, и как самоцель подход RISC в целом себя, наверное, не оправдал бы - резко уменьшившаяся сложность процессоров и сопутствующее увеличение частоты и ускорение выполнения команд хорошо уравновешивались возросшими размерами программ и сильно упавшей их вычислительной плотностью (среднее количество вычислений на единицу длины машинной программы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |