Программирование процессора NeuroMatrix NM 6403

Ознакомление с языком ассемблера процессора Neuro Matrix NM 6403, его возможности, особенности работы, содержание операций в регистрах, архитектура. Разработка программы для заполнения блока памяти, компилирование и отладка файла, фиксирование его адреса.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 18.10.2012
Размер файла 48,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Рязанский государственный радиотехнический университет

Кафедра ЭВМ

Отчет о лабораторной работе №2

Программирование процессора NeuroMatrix ® NM 6403

Выполнили: ст. гр. 841, бр. №3

Антипова А.А., Бекаури Я.Г.

Проверили:

Проф. каф. ЭВМ Ручкин В.Н.

Асс. каф. ЭВМ Муратов Е.Р.

Рязань, 2012 г.

Цель работы: ознакомление с языком ассемблера процессора NeuroMatrix ® NM 6403 (Л18789 ВМ1) и возможностями, которые он предоставляет программисту.

Теоретическая часть:

Процессор NM6403 работает с машинными командами 32-х и 64-х разрядного формата, причем в одной машинной команде содержится две операции процессора. В этом смысле NM6403 представляет собой скалярный микропроцессор со статической Very Long Instruction Word (V LIW) - архитектурой. При этом используются короткие и длинные инструкции. Причем короткие инструкции не содержат константы и имеют разрядность 32 бита. А длинные инструкции содержат в коде команды 32-х разрядную константу. Поэтому их разрядность составляет 64 бита. Процессор адресуется к 32-х разрядным словам. На хранение коротких инструкций отводится одна ячейка памяти, для длинных - две.

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

Все инструкции процессора NM6403 делятся на два типа:

- скалярные инструкции, которые управляют работой скалярного RISC-ядра, таймеров, осуществляют загрузку/чтение всех регистров (доступных по чтению/записи) за исключением векторных регистров, образующих очереди FIFO;

- векторные инструкции, которые управляют работой векторного процессора.

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

Все регистры процессора NM6403 можно разделить на следующие группы:

- адресные регистры;

- регистры общего назначения;

- специальные регистры;

- векторные регистры.

К основным регистрам процессора относятся 8 адресных регистров: ar0 - ar7(sp) и 8 регистров общего назначения: gr0 - gr0, которые используются в большинстве вычислительных операций процессора. Все они 32-х разрядные, доступны как по чтению, так и по записи.

Адресные регистры делятся на две равноправные группы. В первую входят ar0-ar3 , а во вторую ar4.ar7. Это связано с наличием двух адресных устройств в процессоре. Существуют ограничения на возможность использовать адресные регистры из разных групп в одной процессорной инструкции. При этом адресные регистры могут использоваться только в левой части ассемблерной инструкции.

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

Каждому адресному регистру поставлен в соответствие регистр общего назначения с тем же номером. Таким образом, образуются регистровые пары.

процессор neuromatrix программа память

Практическая часть:

1. Заполнить блок памяти размером в 8 64-разрядных слов (или, что то же самое, - 16 32-разрядных слов) элементами длинной 32 бита возрастающими с INC на INC, где INC = текущий год * (номер бригады + количество человек в бригаде + сумма цифр номера группы)

Написать программу для выполнения этого задания, скомпилировать её в выполняемый файл (*.abs) и отладить её на отладчике emudbg.exe . Зафиксировать в отчете полученный блок памяти с указанием его начального и конечного адреса.

Рисунок 1 - Исходное состояние блока памяти

2. Выполнить обработку полученного блока памяти (массива) в соответствии с вариантом для вашей бригады:

а) Умножить каждый элемент блока памяти разрядностью 8 бит на количество человек в бригаде.

Matr: long[8] = (

00000000000000002hl,

00000000000000200hl,

00000000000020000hl,

00000000002000000hl,

00000000200000000hl,

00000020000000000hl,

00002000000000000hl,

00200000000000000hl );

Рисунок 2 - Матрица весовых коэффициентов

Рисунок 3 - Умножение элементов на 2

б) Найти разность между 2-ым и 0-ым 32-разрядными элементами и записать её сразу за концом блока 64-разрядным словом с обнулением старших 32 разрядов этого слова.

Рисунок 4 - Исходные операнды и результат

Рисунок 5 - Содержимое блока регистров

Текст программы:

global __main: label;

data ".dataSeg"

Block: word[16] = (0 dup 16);

Result: long = 0hl;

INC: word = 36216;

Matr: long[8] = (

00000000000000002hl,

00000000000000200hl,

00000000000020000hl,

00000000002000000hl,

00000000200000000hl,

00000020000000000hl,

00002000000000000hl,

00200000000000000hl);

end ".dataSeg";

begin ". textAAA "

<__main>

ar0 = Block;

gr1 = 16;

gr2 = [INC];

gr0 = gr2;

gr1--;

<Loop>

if > delayed goto Loop with gr1--;

[ar0++] = gr0 with gr0+=gr2 noflags;

nul;

nb1 = 80808080h;

sb = 02020202h;

ar0 = Matr;

rep 32 wfifo = [ar0++];

ftw; // весовые коэффициенты пересылаются в теневую матрицу

wtw; // весовые коэф.копируются из теневой матрицы в рабочую

ar0 = Block;

rep 8 data = [ar0++] with vsum , data, 0;

ar0 = Block;

rep 8 [ar0++] = afifo;

ar0 = Block-1;

ar1 = Result;

gr0 = [ar0++];

gr1 = [ar0++];

gr2 = [ar0++];

gr3 = [ar0++];

gr4 = gr3 - gr1;

[ar1++] = gr4;

gr4 = 0;

[ar1++] = gr4;

return;

end ".textAAA";

Размещено на Allbest.ru


Подобные документы

  • Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.

    курсовая работа [1,2 M], добавлен 26.05.2022

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

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Рост производительности и снижение потребляемой мощности процессора. Упрощенная-схема процессора BF535. Поддержка моделей памяти. Стандарты коммуникационных протоколов. Системные регистры процессора. Регистровый файл данных. Шины связи регистрового файла.

    презентация [6,3 M], добавлен 14.12.2013

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

    лабораторная работа [1,5 M], добавлен 23.07.2012

  • Разработка структурной схемы гипотетической ЭВМ, ее функциональной или принципиальной схемы и алгоритма работы конкретного блока, входящего в состав этой ЭВМ. Принципы работы и архитектура центрального процессора и памяти, система прерывания программ.

    курсовая работа [4,1 M], добавлен 25.03.2012

  • Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.

    курсовая работа [734,9 K], добавлен 27.10.2010

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

    курсовая работа [102,4 K], добавлен 11.02.2011

  • Описание конфигурации компьютера, предназначенного для игр. Ознакомление с характеристиками процессора Intel core 2 Quad. Тестирование уменьшения объема кэш-памяти второго уровня. Анализ видеокарты ASUS Radeon HD 7850 DirectCU II, материнской платы.

    курсовая работа [3,6 M], добавлен 04.01.2016

  • Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.

    реферат [38,0 K], добавлен 21.02.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.