русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Необходимость распределения памяти.


Дата добавления: 2014-03-24; просмотров: 739; Нарушение авторских прав


Невозможность непосредственного обращения и использования требуемых аппаратных ресурсов МПр;

Для запуска на МПр требуется трансляция или компиляция в язык низкого уровня (в машинный код);

Недостаточная компактность и меньшая скорость выполнения программ, чем у языков программирования первой группы;

Возможность непосредственного использования программ, составленных на определенном языке, на МПр разных типов.

Близость к человеческому языку;

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

§ Для организации циклов в программе можн использовать простые ключевые слова, такие как WHILE и IF – компилятор в процессе преобразования исходного текста в машинный код сам генерирует все необходимые для их реализации машинные команды.

В результате строка программного кода с оператором языка программирования высокого уровня транслирует примерно в три – семь машинных команд. К этой группе относятся проблемно-ориентированные языки программирования, отражающий особенности класса задач, для записи которых они предназначены. К проблемно-ориентированным языкам относятся Фортран, Алгол, Лисп. К языкам высокого уровня относятся универсальные языки программирования, не являющиеся машинно-ориентированными, но которые могут быть транслированы на различные языки. К универсальными языками может быть отнесен язык программирования Си, часто используемый в средствах связи. Си – язык программирования общего назначения, который с одной стороны по своим возможностям иногда превосходит ассемблер, с другой стороны – программы на Си могут запускаться на различных типах МПр. Язык Си поддерживает процедуры т.е. аппарат подпрограмм, используемый для решения той или иной задачи.



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

Отличительной особенностью языка программирования Си является большой набор операций, многие из которых соответствуют машинным командам, и поэтому допускают прямую трансляцию в машинный код. В результате программы, написанные на Си, сравнимы по скорости исполнения с программами, написанными на языке ассемблера. Язык Си позволяет однозначно описать алгоритм.

С учетом вышеизложенного, достоинства языков высокого уровня следующие:

§ Развитые средства автоматизации программирования и отладки программ, отсюда – высокая скорость разработки ПО;

Недостатками языков программирования высокого уровня являются:

Любой язык программирования имеет:

§ Лексику, т.е. определенный состав символов языка (A, B, C, …, Z; 0, … 9; @, $, #, … );

§ Синтаксис – правило сочетания символов в слова и предложения (GO TO, MOV, ADD);

§ Семантика – правило предписывающее смысловое значение сочетания символов (GO TO <идти к …> или <переход к …>; MOV <перенос данных>, ADD <сложить>).

Лексика определяется системой счисления; синтаксис определяется форматом команд и данных; семантика определяется смысловым содержанием команд. Рассмотрим требования к системе команд машинного языка программирования для разработки программного обеспечения управления средства связи, имея в виду прежде всего язык ассемблер. Здесь возможно предъявить следующие требования:

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

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

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

Рассмотрим используемые типы и форматы данных в языках программирования низкого уровня.

 

3.2 Типы и форматы данных

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

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

Байт – восемь последовательно расположенных бит;

Слово – два байта, имеющих последовательные алреса. Слово делится на младший байт и старший. Младший байт всегда хранится по меньшему адресу, который является адресом слова.

Существует также двойное слово – четыре байта, расположенных по последовательным адресам памяти. Двойное слово состоит из младшего слова и старшего слова. Младшее слово хранится по меньшему адресу памяти, который является адресом двойного слова. Иногда используется учетверенное слово данных – восемь байт, расположенных по последовательным адресам. Учетверенное слово делится на младшее двойное слово и старшее двойное слово. Младшее двойное слово хранится по меньшему адресу, который является адресом учетверенного слова.

В некоторых случаях применяется 128-битный упакованный тип данных – формат, который впервые появился в МПр Pentium III. Для работы с упакованным типом данных были введены специальные команды. Общее описание форматов перечисленных типов данных см. рис.1.

 

Рис.1 – Примеры форматов данных МПр

Приведенные форматы данных позволяют поддержать следующие логические данные:

Целое число со знаком (см. рис.2). Максимальное значение такого числа равно

 

Рис.2 – Формат целого числа со знаком

Основные значения целых чисел со знаком приведены в таблице 1.

Таблица 1 – Диапазоны целых чисел со знаком.

Размерность, бит Без знака Со знаком
0 … 255 - 128 … + 128
0 … 65 535 - 32 768 … + 32 767
0 … 4 294 967 295 - 2 147 483 648 … + 2 147 483 648

 

Логический «0» в начале формата на рис.2 означает положительное число; логическая «1» в начале формата на рис.2 означает отрицательное число. Для данных размерности 64 бита диапазон возможных значений составляет . Логический полноразрядный код см. на рис.3:

 

Рис.3 – Формат логического кода

К логическому полноразрядному коду относится т.н. битовое поле – непрерывная последовательность бит. Каждый бит является независимым и может рассматриваться как отдельная переменная. Логический код также можно использовать при представлении чисел в виде:

Неупакованный двоично-десятичный тип – байтовое представление десятичной цифры от 0 до 9. числа хранятся как байтовые значения без знака по одной цифре в каждом байте (в младшей тетраде);

Упакованный двоично-десятичный тип – представление двух десятичных цифр от 0 до 9. каждая цифра хранится в своей тетраде (цифра старшего разряда – в старшей тетраде, цифра младшего разряда – в младшей тетраде).

Тип данных с плавающей точкой – специальные типы данных для обработки чисел с плавающей точкой в математическом сопроцессоре. Математический сопроцессор – сопроцессор, выполняющий операции над числами, представленными в форме с плавающей точкой. Сопроцессор – вспомогательный процессор, предназначенный для выполнения математических и логических действий, не входящих в стандартный набор команд ЦПУ.

Формат числа с плавающей точкой (вещественные числа) приведен на рис.4:

 

Рис.4 – Формат чисел с плавающей точкой

Диапазон возможных значений вещественных чисел приведен в таблице 2:

Таблица 2 – Диапазон значений вещественных чисел

 

Кроме приведенных двух основных форматов, данные могут записываться в виде формата «кусок» данных или «фрагмента данных» (см.рис.4):

 

Рис.4 – Формат «куска» данных

Для работы с «куском» или фрагментом необходимо указать начало «куска». «Куском» или фрагментом могут являться целые числа или логически полноразрядный код.

Еще одним способом предоставления данных является массив данных. Под массивом данных понимается упорядоченная совокупность слов данных или команд, которые располагаются в смежных ячейках ЗУ. Массивы данных содержат тематически близкую информацию, например, данные о состоянии абонентских комплектов, данные о состоянии межстанционных линий, при этом схема массива данных имеет вид (см.рис.5):

 

Рис.5 – Формат массива данных

Применительно к массиву может использоваться относительная адресация, при которой абсолютный адрес (АА) ячейки памяти рассчитывается как начальный адрес массива плюс сдвиг: АА=НАМ + «сдвиг», где «сдвиг» - это целое число. В дальнейшем начальный адрес массива А1 также именуется «базовым адресом». Средства связи чаще всего работают с массивами данных и обрабатывают числа с фиксированной точкой. Исключение составляют цифровые сигнальные процессоры в составе кодеров, систем сжатия изображений и т.п. В частности, для повышения качества обработки данных ПЦОС могут работать с плавающей точкой. Рассмотрим далее основные форматы и системы команд современного микропроцессора.

3.3 Системы и форматы команд

Набор команд машинного языка, которые может выполнять процессор, точно соответствует тем операциям над данными, которые может выполнять аппаратное обеспечение процессора с помощью микропрограмм. Другими словами, загружаемая в процессор программа для ЭВМ, написанная или транслированная на языке программирования низкого уровня, использует микрокоманды процессора для выполнения машинных команд, заданных программным обеспечением. Значение каждой микрокоманды (инструкции) имеет для данного типа процессора строго определенное значение. Микрокоманды процессора не могут быть изменены загружаемым программным обеспечением.

Загружаемое ПО МПр (программа для ЭВМ) для исполнения аппаратными средствами процессора должна быть преобразована в специальную форму, учитывающую только существующие микрокоманды процессора. Это преобразование осуществляется специальной программой – компилятором, на выходе которой получается машинный код в виде «0» и «1», который непосредственно считывается из оперативной памяти и интерпретируется микропроцессором.

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

Структура любой команды языка низкого уровня (ассемблера), как правило, делится на две части (два поля), длина поля в битах или разрядах определяет формат команды. Операционная часть указывает, что надо делать; для этого в ней содержится код операции; адресная часть указывает над какими операндами следует проводить операцию. С учетом сказанного формат машинной команды имеет вид (см.рис.6):

 

Рис.6 – Общая структура машинной команды

В качестве содержания поле «П» может указывать размер и тип ожидаемого операнда.

Адрес в команде – часть машинной команды, которая указывает на устройство или элемент данных.

В адресной части могут указываться следующие значения:

§ А1, А2, А3 – абсолютные адреса ячеек физической памяти, причем А1 и А2 – адреса ячеек операндов, А3 – адрес ячейки для записи результата.

§ А4 – абсолютный адрес ячейки физической памяти с машинным кодом следующей команды

§ R1, R2 – номера регистров общего назначения, где находятся операнды.

§ В – значение базового адреса

§ D – смещение или сдвиг

В зависимости от числа адресов, которые указаны в адресной части команды могут быть четырех-, трех-, двух- или одноадресные.

Четырехадресная машинная команда имее формат (см.рис7):

 

Рис.7 – Формат четырехадресной машинной команды

Результат операции записывается по адресу А3, при этом А1 … А3 – номер ячейки памяти или номер регистра, А4 – только адреса ячеек памяти. Такая машинная команда обеспечивает максимальную производительность МПр за счет того, что адреса операнда и адрес результата указывается явным образом. Однако в большинстве МПр поле А4 не используется. Использование адреса А3 в некоторых случаях также является избыточным. Поэтому большинство МПр серии х86 Intel или Motorola поддерживают двухадресные команды, которые имеют следующий формат (см.рис.8):

 

Рис.8 – Формат двухадресной машинной команды

Результат выполнения машинной команды записывается на место одного из операндов. Такая команда является наиболее часто используемой. Одноадресная команда имеет формат (см.рис.9):

 

Рис.9 - Формат одноадресной машинной команды

Адрес первого операнда в одноадресной команде задается явно; второй операнд хранится в специальном неадресуемом регистре (аккумуляторы). Результат может записываться по адресу А1 либо в аккумулятор. Для задач управления, где большая часть времени уходит на пересылки данных и логические операции целесообразнее использовать двухадресные команды, а для многошаговых вычислительных процедур целесообразно использовать одноадресные команды.

Команды ПУСК, ОСТАНОВ процессора относятся к безадресным.

В некоторых случаях в адресную часть записываются не адреса данных, а сами данные. Этот прием позволяет увеличить быстродействие системы, но снижает гибкость программы. Кроме того, поле имеет ограниченную размерность, поэтому в «тело» команды могут быть записаны данные ограниченной размерности и, следовательно, величины.

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

3.4 Способы адресации

Под адресацией здесь понимается способ указания операндов в системе команд.

Пример непосредственной адресации приведен на рис.10. при непосредственной адресации операнд размещается непосредственно в «теле» команды.

 

Рис.10 – Схема непосредственной адресации

Достоинством непосредственной адресации является быстрота выполнения команды за счет сокращения времени поиска операнда. Недостатком непосредственной адресации является фиксированная длина операнда и, следовательно, ограничение значения операнда. Непосредственная адресация оптимальна при работе с константами.

Пример прямой адресации приведен на рис.11. В поле А2 содержится номер рагистра общего назначения или абсолютный адрес ячейки ОЗУ, где находится второй операнд.

 

Рис.11 – Схема прямой адресации

Достоинством прямой адресации является более гибкий, по сравнению с непосредственной, способ адресации. Недостатком является увеличение времени выполнения команды за счет затрат времени на считывание (запись) операнда из БРОН (РОН) или ОЗУ. В случае, если в поле А2 указан №БРОН (РОН) говорят о прямой регистровой или регистровой адресации.

Пример косвенной адресации приведен на рис.12. При косвенной адресации адрес А2 указывает на БРОН или на абсолютный адрес ОЗУ, где хранится абсолютный адрес требуемой ячейки физической памяти (в данном случае – ОЗУ).

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

 

Рис.12 – Схема косвенной адресации

Недостатком косвенной адресации является уеличение, по сравнению с прямой адресацией, времени выполнения команды за счет затрат времени на считывание (запись) операнда. Кроме того, при использовании РОН (регистровая косвенная адресация) может потребоваться время на загрузку в РОН значения АА2.

Пример относительной адресации или базирование приведен на рис.13.

При относительной адресации абсолютный адрес, по которому находится 2-ой операнд, формируется как сумма начального адреса массива (НАМ) или базового адреса (не применяется для операций с массивами) в поле R2 и некоторого сдвига (конкатенацииЮ приписывания разрядов) в поле С2; при этом НАМ хранится в БРОН или в другом прямоадресуемом регистре.

 

Рис.13 – Схема относительной адресации.

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

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

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

Лекция 4. Состав и функции программного обеспечения средств связи. Функции, назначение, классификация операционных систем.

4.1 Состав и функции программного обеспечения средств связи.

Как уже отмечалось, программное обеспечение в средствах связи, включая системы коммутации, используется прежде всего для управления средством связи. Управление средством связи осуществляется с помощью системы управления. Под системой программной понимается набор компонентов, объединенных для выполнения определенной функции или набора функций средства связи. Термин «система» здесь охватывает отдельные программные приложения, программные системы в традиционном смысле, подсистемы, линейки программных продуктов, семейства готовых программных продуктов, имеющие отношение к управлению. Компонентом называется модульная часть системы, которая инкапсулирует (содержит) часть содержимого системы, необходимую для функционирования данного компонента в составе системы. По определенному признаку, например функциональному, компоненты могут объединяться в подсистемы. В рассматриваемом случае речь идет о программных т.е. логических компонентах.

Система управления современными средствами связи представляет собой интегрированный комплекс, состоящий из одного или более процессов, аппаратных устройств, программ, средств и людей, предоставляющий возможность удовлетворить определенную потребность или условие (согласно стандарта IEEE 12207). Применительно к средствам связи речь идет о потребностях, связанных с оказанием услуг связи, передачей трафика или переносом сигналов электросвязи. Условием является удовлетворение перечисленных потребностей с качеством, соответствующим действующим нормам и правилам, и в объеме, требуемом для обслуживания подключенных к системе максимально допустимого числа пользователей. Для современных средств связи характерно автоматическое управление основными функциями и оборудованием с помощью загружаемого и хранимого, в т.ч. замонтированного, программного обеспечения. Поэтому можно говорить о том, что современная система управления средствами связи представляет собой преимущественно-программную систему, т.е. систему, в которой программное обеспечение оказывает значительное влияние на проект, конструкцию, развертывание и развитие всей системы.

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

Программное обеспечение современных средств связи представляет собой сложный программный комплекс. Современные средства связи большой емкости (от 20 тысяч портов и более) имеют квази-распределенную функциональную архитектуру управляющего комплекса. Соотношение программного обеспечения и управляющих устройств различного назначения показано на рис.1. В целом можно говорить о трех уровнях управления и, соответственно, о трех уровнях распределения программного обеспечения. Как видно на рис.1, существуют общие компоненты программной системы, присутствующие на всех трех уровнях. Рассмотрим эти компоненты более подробно.

 

Рис.1 – Управляющие устройства средства связи и их программное обеспечение

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

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

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



<== предыдущая лекция | следующая лекция ==>
Невозможность непосредственного использования программ, составленных на определенном языке на МПр другого типа. | Обслуживание прерываний с учетом приоритетов.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.013 сек.