Кіріспе

Super Harvard Architecture Single Chip Computer (SHARC) – Analog Devices компаниясының жоғары өнімділігі бар, қозғалатын және қатаң нүктелі DSP процессорлары. SHARC процессорлары аудио өңдеуден бастап, бір процессормен басқарылатын артиллериялық оқ-дәрілерге дейін, және 1000 процессорлық горизонттан әрі қарай радарлық өңдеу жүйелеріне дейін, сигнал өңдеудің алуан түрлі салаларында қолданылады. Алғашқы жобалау 1994 жылғы қаңтар айына жуық уақытта жасалған. SHARC процессорлары көбінесе жақын орналасқан басқа SHARC процессорларымен көптеген тізбектік байланыстарға ие болуы тиіс, бұл оларды SMP-ге арзан балама ретінде пайдалануға мүмкіндік береді.

Сәулет

SHARC – Гарвард архитектурасы негізіндегі VLIW процессоры; ол 8 биттік немесе 16 биттік мәндерді талмайды, себебі әрбір адрес 32 биттік сөздің толық бөлігіне сілтеме жасайды, жай ғана октет емес. Сондықтан ол кішкентай эндиан да, үлкен эндиан да емес, алайда компилятор 64 биттік деректерді қолданса және/немесе бірнеше 8 биттік немесе 16 биттік мәндерді бір 32 биттік сөзге жинау мүмкіндігі болса, кез келген конвенцияны қолдана алады. C тілінде символдар 32 биттік, өйткені стандарт бойынша олар адрестелетін ең кішкентай сөз болып табылады. Нұсқаулар үшін сөздің мөлшері 48 бит, бүтін сандар мен стандартты қалқыма нүкте үшін 32 бит, ал кеңейтілген қалқыма нүкте үшін 40 бит. Код пен деректер әдетте чиптегі жадтан алынады, оны пайдаланушы қалауынша әртүрлі сөз мөлшеріне ие аймақтарға бөлуі керек. Кішкентай дерек түрлерін үлкен жадта сақтауға болады, бірақ бұл тек қосымша орынды ысыраптаумен аяқталады. 40 биттік кеңейтілген қалқыма нүктелерді қолданбайтын жүйелер чиптегі жадты екі бөлікке бөлуі мүмкін: біреуі код үшін 48 биттік, ал қалғаны – 32 биттік. Жадқа қатысты CPU нұсқауларының көпшілігі 48 биттік жадтың барлық биттеріне қол жеткізе алмайды, бірақ осы мақсат үшін арнайы 48 биттік регистр қарастырылған. Арнайы 48 биттік регистрге кіші регистрлер жұбы ретінде қол жеткізуге болады, бұл стандартты регистрлерге және олардан деректерді жылжытуға мүмкіндік береді. SHARC-пен чиптен тыс жадты пайдалануға болады. Бұл жадты тек бір мөлшерге ғана конфигурациялауға болады. Егер чиптен тыс жад ысырапты болдырмау үшін 32 биттік сөздер ретінде конфигурацияланса, онда кодты орындау және кеңейтілген қалқыма нүкте үшін тек чиптегі жадты ғана пайдалануға болады. Операциялық жүйелер бұл мәселені шешу үшін 48 биттік деректерді орындау үшін қажет болған жағдайда чиптегі жадқа көшіру үшін үстіне жабыстыруды қолдана алады. Осы үшін DMA механизмі қарастырылған. Шынайы беттеу сыртқы MMU болмаса мүмкін емес. SHARC-та 32 биттік сөздік адрес кеңістігі бар. Сөздің мөлшеріне байланысты бұл 16 ГБ, 20 ГБ немесе 24 ГБ (8 биттік «байттың» әдеттегі анықтамасын пайдалану). SHARC нұсқауларында 32 биттік дереу операнд болуы мүмкін. Бұл операндсыз нұсқаулар әдетте екі немесе одан да көп операцияны бір уақытта орындай алады. Көптеген нұсқаулар шартты және құрастыру тілінде «егер шарт» түрінде көрсетілуі мүмкін. x86 флагтарының тізілімінде ұсынылған сияқты, бірнеше шартты таңдаулар бар. Екі кешіктірілген орындалу ұясы бар. Секіруден кейін, секіруден кейінгі екі нұсқау әдетте орындалады. SHARC процессоры циклдық басқаруды қолдайды. 6 деңгейге дейін пайдалануға болады, бұл әдеттегі тармақталу нұсқауларын және циклден шығумен байланысты бухгалтерлік есептеулерді қажет етпейді. SHARC-та жалпы мақсаттағы екі толық регистр жиынтығы бар. Код олардың арасында жылдам ауысуға болады, бұл қолданба мен операциялық жүйе арасында немесе екі жіп арасында жылдам контексттік ауысуға мүмкіндік береді.