- •Понятие алгоритма, свойства алгоритма. Формы записи алгоритма. Блок- схема алгоритма. Базовые алгоритмические структуры.
- •Вещественные типы
- •Операторы цикла. Оператор цикла с предусловием. Оператор цикла с постусловием. Оператор цикла с параметром.
- •5 Процедуры и функции. Параметры, локальные и глобальные
- •Регулярный тип (массивы). Описание массивов. Ввод и вывод элементов массива. Нахождение максимального (минимального) элемента массива.
- •Принцип программного управления. Структуры эвм. Конвейер команд. Виды конфликтов в конвейере команд. Суперконвейерная обработка.
- •10 Общая характеристика периферийных устройств (пу) эвм. Классификация пу. Устройства ввода и вывода информации. Общая характеристика клавиатуры. Интерфейс клавиатуры и мыши. Скан-коды и
5 Процедуры и функции. Параметры, локальные и глобальные
переменные. Передача параметров по адресу и по значению.
Процедура
Подпрограмма-процедура предназначена для выполнения какой-то законченной последовательности действий. Любая процедура начинается с заголовка. В отличие от основной программы заголовок в процедуре обязателен. Он состоит из зарезервированного слова procedure, за которым
следует идентификатор имени процедуры, а далее в круглых скобках - список формальных параметров:
procedure <имя процедуры>(<список формальных параметров>);
За заголовком могут идти такие же разделы, что и в основной программе.
В отличие от основной программы процедура завершается не точкой, а точкой с запятой.
Функция
Подпрограмма-функция предназначена для вычисления какого-либо параметра, у этой подпрограммы два основных отличия от процедуры.
- Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string, любого указателя, в том числе и типа PChar.
- Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.
Глобальными называются переменные, описанные в главной программе. Переменные, которые не были инициализированы явным образом, перед началом выполнения программы обнуляются. Время жизни глобальных переменных — с начала программы и до ее завершения.
Внутри подпрограмм описываются локальные переменные. Время их жизни — с начала работы подпрограммы и до ее окончания. Значения локальных переменных между двумя вызовами одной и той же подпрограммы не сохраняются, и эти переменные предварительно не обнуляются.
Передача данных по значению
Этот способ передачи данных в подпрограмму является основным и действует по-умолчанию. Фактический параметр вычисляется в вызывающей функции и его значение передаётся на место формального параметра в вызываемой функции. На этом связь между фактическим и формальным параметрами прекращается.
В качестве фактического параметра можно использовать константу, переменную или более сложное выражение. Передача данных по значению пригодна только для простых данных, которые являются входными параметрами. Если параметр является выходным данным или массивом, то передача его в функцию по значению не приемлема.
Передача данных по адресу
По адресу в функцию всегда передаются массивы (рассмотрим это в следующих темах). Для массива это вообще единственный способ передачи данных в языках С/С++. Так же по адресу можно передать те простые объекты, которые являются выходными данными (или входными и выходными одновременно).
В случае передачи данных по адресу фактический параметр может быть только переменной (константа или выражение не имеют адреса!).
Регулярный тип (массивы). Описание массивов. Ввод и вывод элементов массива. Нахождение максимального (минимального) элемента массива.
В простых типах данных каждое данное имеет свое название (идентификатор). В этом разделе вводится структурная взаимосвязь между данными, хранимыми в оперативной памяти путем организации массива, состоящего из непрерывно расположенных данных, не снабженных отдельными именами. Эти данные в свою очередь могут быть простыми или сложными и называются элементами массива.
Основное преимущество массива состоит в том, что его элементы не имеют отдельных имен, и нет необходимости описывать каждый элемент по отдельности. Достаточно описать весь массив. Объявление массива содержит следующее описание:
TYPE <имя типа> = ARRAY [тип индекса] OF <тип элементов массива>;
Каждый элемент именуется путем указания имени массива и порядкового номера, определяющего его позицию в массиве, то есть индекса. Если тип данных определен с помощью конструкции ARRAY ... OF то он называется регулярным типом.
Описание массива проводится для сообщения компилятору характеристик массива, в соответствии с которыми в памяти отводится место для его размещения. При этом числовой массив заполняется нулями, символьный и строковый – пробелами.
Описание массива проводится в блоке описания переменных var следующим образом:
Имя_массива : array[is..ie, js..je,…] of тип_элементов;
где array - означает “массив”; [is..ie, js..je,…] - начальное и конечное значение первого, второго и др. индексов массива (у одномерного массива индекс может быть один), тип элементов - любой тип Паскаля (числовой, строковый).
Принцип нахождения максимального и минимального элементов массива одинаков. Поэтому рассмотрим его на примере алгоритма поиска максимального элемента.
Нахождение максимального элемента массива выполняется путём последовательных сравнений. Значение наибольшего из сравниваемых элементов станем запоминать в переменной МАХ. В качестве начального значения максимума примем значение первого элемента массива. Значение переменной МАХ будем сравнивать с каждым следующим элементом массива. Если МАХ окажется меньше очередного элемента, то значение этого элемента сохраним в переменной МАХ для сравнения с последующими элементами массива. В противном случае значение переменной МАХ оставим без изменений.
Таким образом, когда все элементы массива будут просмотрены, в переменной МАХ останется копия максимального элемента массива. Сам же массив изменён не будет.
Микропроцессор. Структура микропроцессора. Арифметические команды. Логические команды и команды сдвига. Команды передачи управления. Способы адресации: регистровая, непосредственная, прямая, косвенная. CISC и RISC архитектуры.
Микропроцессор - это центральный блок персонального компьютера, предназначенный для управления работой всех остальных блоков и выполнения арифметических и логических операций над информацией.
В состав микропроцессора входят следующие устройства.
1. Арифметико-логическое устройство предназначено для выполнения всех арифметических и логических операций над числовой и символьной информацией.
2. Устройство управления координирует взаимодействие различных частей компьютера. Выполняет следующие основные функции: формирует и подает во все блоки машины в нужные моменты времени определенные сигналы управления (управляющие импульсы), обусловленные спецификой выполнения различных операций; формирует адреса ячеек памяти, используемых выполняемой операцией, и передает эти адреса в соответствующие блоки компьютера; получает от генератора тактовых импульсов обратную последовательность импульсов.
3. Микропроцессорная память предназначена для кратковременного хранения, записи и выдачи информации, используемой в вычислениях непосредственно в ближайшие такты работы машины. Микропроцессорная память строится на регистрах и используется для обеспечения высокого быстродействия компьютера, так как основная память не всегда обеспечивает скорость записи, поиска и считывания информации, необходимую для эффективной работы быстродействующего микропроцессора.
4. Интерфейсная система микропроцессора предназначена для связи с другими устройствами компьютера. Включает в себя:
внутренний интерфейс микропроцессора;
буферные запоминающие регистры;
схемы управления портами ввода-вывода и системной шиной. (Порт ввода-вывода — это аппаратура сопряжения, позволяющая подключить к микропроцессору, другое устройство.)
Микропроцессор ЦП выполняет четыре основных арифметических действия - сложение, вычитание, умножение и деление над 8- и 16-разрядными данными со знаками и без знака.
Операции сложения. Включают три мнемокода: ADD (сложить), ADC (сложить с учетом переноса) и INC (увеличить на единицу).
Операции вычитания. Включают пять мнемокодов: SUB (вычесть), SBB (вычесть с учетом заема), DEC (уменьшить на единицу), NEG (изменить знак) и СМР (сравнить).
Операции умножения. Включают два мнемокода: MUL (умножить) и IMUL (умножить числа со знаком).
Операции деления. Включают два мнемокода: DIV (разделить) и IDIV (разделить числа со знаком).
Согласно теории, над высказываниями (над битами) могут выполняться следующие логические операции:
•отрицание (логическое НЕ);
•логическое сложение (логическое включающее ИЛИ);
•логическое умножение (логическое И);
•логическое исключающее сложение (логическое исключающее ИЛИ).
•отрицание (логическое НЕ) — логическая операция над одним операндом, результатом которой является величина, обратная значению исходного операнда.
•логическое сложение (логическое включающее ИЛИ) — логическая операция над двумя операндами, результатом которой является “истина” (1), если один или оба операнда имеют значение “истина” (1), и “ложь” (0) — если оба операнда имеют значение “ложь” (0).
логическое умножение (логическое И) — логическая операция над двумя операндами, результатом которой является “истина” (1) только в том случае, если оба операнда имеют значение “истина” (1). Во всех остальных случаях значение операции “ложь” (0).
and операнд_1,операнд_2 — операция логического умножения.
or операнд_1,операнд_2 — операция логического сложения.
test операнд_1,операнд_2 — операция “проверить” (способом логического умножения)
not операнд — операция логического отрицания.
Регистровая адресация
Операнд (байт или слово) находится в регистре. Этот способ адресации применим ко всем программно-адресуемым регистрам процессора.
Непосредственная адресация
Операнд (байт или слово) указывается в команде и после трансляции поступает в код команды; он может иметь любой смысл (число, адрес, код ASCII), а также быть представлен в виде символического обозначения.
Прямая адресация памяти
Адресуется память: адрес ячейки памяти (слова или байта) указывается в команде (обычно в символической форме) и поступает в код команды.
Косвенная адресация (базовая и индексная)
Адресуется память (байт или слово): относительный адрес ячейки памяти находится в регистре, обозначение которого заключается в прямые скобки. В МП 86 косвенная адресация допустима только через регистры ВХ, ВР, SI и DI. При использовании регистров ВХ или ВР адресацию называют базовой, или адресацией по базе, при использовании регистров SI или DI - индексной, или адресацией с индексированием.
CPU с CISC-архитектурой (CISC - complex instruction set computer - компьютер с полным набором команд);
· CPU с RISC-архитектурой (RISC - reduced instruction set computer - компьютер с сокращенным набором команд).
CPU первого типа являются традиционными, а их система команд включает большое количество команд для выполнения арифметических и логических операций, команд управления, пересылки и ввода-вывода данных. При считывании из операнда кода операции процессор обращается в ПЗУ микрокоманд и получает набор микроинструкций, реализующий алгоритм выполнения данной команды.
Из названия RISC следует, что основу архитектуры составляет сокращенный набор команд. Сокращенный - в данном контексте означает также упрощенный для достижения максимальной производительности. Команды в архитектуре RISC имеют фиксированную и небольшую длину, они не нуждаются в интерпретации. С другой стороны, RISC-процессоры обладают значительным числом регистров, что позволяет хранить большое число данных на кристалле процессора и упрощает работу компилятора по распределению переменных по регистрам. Использование трехадресных команд упрощает их дешифрацию и дает возможность сохранять большее число переменных в регистрах без перезагрузки.
Виды памяти ПК. Основная память ПК (ОЗУ и ПЗУ), назначение и основные параметры. Статическая и динамическая память. Физическая и логическая структура основной памяти. Классификация ПЗУ. Структура ПЗУ.
Все персональные компьютеры используют три вида памяти: оперативную, постоянную и внешнюю (различные накопители).
Устройства ПЗУ хранят информацию постоянно и используются для хранения программ и данных, которые остаются неизменными.
Устройства ОЗУ хранят сохраненную в них информацию до тех пор, пока электроэнергия подводится к ИС.
Основным параметром микросхемы ПЗУ является организация, которая указывается в виде произведения двух сомножителей mх p, где m - количество ячеек, а p - разрядность ячейки.
Основными критериями выбора микросхем ОЗУ являются их рабочие параметры.
Ориентироваться следует, прежде всего, на следующие моменты:
частоту работы;
тайминги;
напряжение.
Память SRAM статического типа обладает существенно более высоким быстродействием, но значительно дороже динамической памяти. В статической памяти элементы (ячейки) построены на различных вариантах триггеров (схем с двумя устойчивыми состояниями). После записи бита в такую ячейку она может пребывать в этом состоянии столь угодно долго, необходимо только наличие питания. При обращении к микросхеме статической памяти на нее подается полный адрес, который при помощи внутреннего дешифратора преобразуется в сигналы выборки из конкретной ячейки. Ячейки SRAM имеют малое время срабатывания (единицы наносекунд), однако микросхемы на их основе отличаются низкой удельной емкостью (единицы Мбит на корпус) и высоким энергопотреблением. Поэтому статическая память используется в основном в качестве микропроцессорной и буферной (кэш-память).
В динамической памяти DRAM ячейки построены на основе полупроводниковых областей с хранением зарядов — своеобразных конденсаторов, занимающих гораздо меньшую площадь, нежели триггеры, и практически не потребляющих энергии при хранении. Конденсаторы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляется подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти. При обращении к микросхеме на ее входы вначале подается адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe — строб адреса строки), затем, через некоторое время — адрес столбца, сопровождаемый сигналом CAS (Column Address Strobe — строб адреса столбца). Поскольку конденсаторы постепенно разряжаются (заряд сохраняется в ячейке в течение нескольких миллисекунд), во избежание потери хранимой информации заряд в них необходимо постоянно регенерировать, отсюда и название памяти — динамическая. На подзарядку тратится и энергия и время, и это снижает производительность системы. Ячейки динамической памяти по сравнению со статической имеют большее время срабатывания (до десятка наносекунд), но большую удельную плотность (до нескольких тысяч Мбит на корпус) и меньшее энергопотребление. Динамическая память используется для построения оперативных запоминающих устройств основной памяти ПК.
Физическая структура
Основная память содержит оперативное (RAM) и постоянное (ROM) запоминающие устройства.
Оперативное запоминающее устройство предназначено для хранения информации (программ и данных), непосредственно участвующей в вычислительном процессе на текущем этапе функционирования ПК.
ОЗУ - энергозависимая память: при отключении напряжения питания информация, хранящаяся в ней, теряется. Основу ОЗУ составляют большие интегральные схемы, содержащие матрицы полупроводниковых запоминающих элементов (триггеров).
Постоянное запоминающее устройство также строится на основе установленных на материнской плате модулей (кассет) и используется для хранения неизменяемой информации: загрузочных программ операционной системы, программ тестирования устройств компьютера и некоторых драйверов базовой системы ввода-вывода (BIOS - Base Input-Output System) и др. ПЗУ - энергонезависимое запоминающее устройство.
Логическая структура основной памяти
Основная память компьютера делится на две логические области: непосредственно адресуемую память, занимающую первые 1024 Кбайта ячеек с адресами от 0 до 1024 Кбайт-1, расширенную память, доступ к ячейкам которой возможен при использовании специальных программ-драйверов. Драйвер - специальная программа, управляющая работой памяти или внешними устройствами ЭВМ и организующая обмен информацией между МП, ОП и внешними устройствами ЭВМ.
1 Масочные ПЗУ. Это ПЗУ, информация в которые записывается на заводе изготовителе. У таких микросхем на корпусе наносят обозначение о версии программного кода, который туда записан (в виде ревизии). На принципиальных схемах такие микросхемы обозначают как ROM (Read Only Memory), в названии имеет индекс РЕ.
2. ППЗУ - программируемые ПЗУ. Это ПЗУ с возможностью однократной записи информации пользователя. На принципиальных схемах обозначаются как PROM (Program ROM), в названии имеют индекс РТ.
3. РПЗУ - репрограммируемые ПЗУ. Эти ПЗУ допускают многократное программирование от 25 до 10,000 раз. Это микросхемы с электрическим стиранием.
4 ПЗУУФ - репрограммируемые ПЗУ с ультрафиолетовым стиранием. Микросхемы этого типа также предоставляют возможность многократной перезаписи, однако, в отличие от микросхем типа EEPROM, стирание информации из РПЗУУФ происходит под воздействием ультрафиолетового излучения. В настоящее время подобные микросхемы постепенно уступают свои позиции Flash PROM.
