Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Принудительный способ

Работа добавлена на сайт samzan.net:


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

Способы адресации в АПЛ

Существует 4 способа адресации:

принудительный;

естественный;

функциональный;

программируемый.

1. Принудительный способ.

Адрес следующей микрокоманды принудительно указывается в предыдущей микрокоманде.

поле условий

                                                                                                             МК

                                                        0, 1

                                               х

                                              0, 1

А МК – адрес следующей микрокоманды

х

Х

А

0

0

А0

0

1

А0

1

0

А0

1

1

А1

где х – условие;

     Х – необходимость его проверки.

Недостатком этого способа является удлинение адресного поля микрокоманды. Применяется редко.

2. Естественный способ.

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

 

                    поле условий

                                                                 МК

х

Х

А

0

0

А+1

0

1

А+1

1

0

А+1

1

1

А0

                      0,1

              

               х

                       0,1

                                                                             +1

                                     

                                                         А

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

3. Функциональный способ.

Последовательно проверяет 2 флага:

                                                                                 0

1

                   1                              0      1                             0

                                                    А0                       А1      А2                       А3

Метод подразумевает объединение проверок в одну, т.е. оба флага проверяются в одной микрокоманде. Это является достоинством данного метода. Недостатком – аппаратная сложность, дороговизна.

                     х1

                 х2

                                                                                                               А

4. Программируемый способ.

В УА аппаратно реализованы все 3 предыдущих метода. Программно выбирается наиболее эффективный.

Формат команды с непосредственным операндом:

                    1)                                                              2)  

                    3)                                                           4)    

   

                      5)                                                             6)

5 и 6 байт – непосредственный операнд

Биты s и w интерпретируют данные:

если sw = 10 => байт

                 01 => слово

                 11 => двойное слово

disp – смещение

data – сам операнд

Однооперандная команда:

Может занимать от 2 до 4 байт.                            здесь хранится единственный операнд

 

w – размер операнда: если w = 0 => байт

                                                    1 => слово

Формат команды 32-разрядного процессора:

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

У префикса есть 4 поля:

1) повтор: указывает длину цепочки

2) размер адреса: коммутирует переключение 16- (R- и V-режимы) и 32-разрядных адресов (P-режимы)

3) размер операнда  (32- или 16-разрядные)

4) замена сегмента. Поле, в котором указывается физический адрес сегмента, с которым мы   

   сейчас работаем, если он отличается от сегмента указанного по умолчанию.

Команда:

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

index: указывает номер регистра, в котором хранится индекс для индексной адресации.

base: номер РОНа, в котором хранится база.

sib:  если байт sib присутствует в команде, то адрес операнда вычисляется с привлечением полей mod, ss, index и base. Если его нет, то как и в 16-разрядном процессоре – с привлечением полей mod и r/m.

0, 1, 2 или 4 – длина команды.

2. Как находится ток Iн в ветви с нагрузкой Rн методом эквивалентного генератора?

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

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

Примерный порядок расчета

1. Выбирают положительное направление тока IН в ветви с нагрузкой.

2.Удаляют сопротивление нагрузки  и в месте разрыва       изображают стрелку, направленную так же, как ток  в ветви нагрузки. Стрелка указывает направление напряжения холостого хода .

3. Находят величину :

- записывают уравнение по второму закону Кирхгофа для фиктивного контура, включающего  и не вносящего дополнительных  неизвестных UJ;

- в режиме холостого хода рациональным методом находят токи ветвей, входящие в уравнение для ;

- рассчитывают величину .

4. Определяют входное сопротивление RBX относительно точек разрыва. Возможно несколько способов:

а) ,

где   - ток короткого замыкания, направленный также как ;

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

в) в схеме с автономными и управляемым источниками энергии автономные источники энергии заменяют их внутренними сопротивлениями. К зажимам полученной схемы подключают пробный источник и рассчитывают неизвестный пробный ток. Получают  как

при одинаковом направлении .

5. Рассчитывают ток через сопротивление нагрузки

.

Пример: Дано: , , , , , , .

                    Рис. 2.6.1

=>

,

где  - ток  в режиме холостого хода.  можно найти:

1) из системы уравнений по законам Кирхгофа

Откуда .

2) по методу наложения

, ,

          рис. 2.6.2

Согласно рис. 2.6.2:

.

Тогда: .

  1.  Программирование задач обработки двумерных массивов (матриц).

В TurboPascal возможна организация массива массивов, а точнее элементами массива могут быть другие массивы. Подробнее остановимся на двумерных массивах (матрицах).

  а11 а12 а13…а1n  Матрица – это таблица, состоящая из m-строк и n-столбцов,

  а21 а22 а23…а2n  где аij – это элемент матрицы.

           . . . . . .              i – указывает на принадлежность этого элемента к строке.

  аm1 аm2 аm3…аmn            j– указывает на принадлежность этого элемента к столбцу.

Если в матрице число строк равно числу столбцов (n=m), то такая матрица называется квадратной.

Описание двумерных массивов:

<список идентификаторов> : array[<список диапазонов, через запятую>] of <тип элементов массива>;

 var  A:array[1..5,1..5] of integer;

 Или var B,C:array[1..3,1..4] of real;

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

A[1,2]:=7

Ввод элементов массива

Вывод элементов массива

Для двумерных массивов допускается ввод как по строкам, так и по столбцам. Способ ввода матрицы определяется тем, какой индекс (строки или столбца) изменяется первым.

I  Ввод элементов по строкам

for i:=1 to n do

for j:=1 to m do

read(A[i,j]);

II Ввод элементов по столбцам

for j:=1 to m do

for i:=1 to n do

read(A[i,j]);

III Ввод элементов с сообщением

for i:=1 to n do

for j:=1 to m do

begin

write(‘A[’,i,’,’,j,’]=’);

readln(A[i,j]);

end;

Вывод матрицы обычно выполняется в общепринятом виде, то есть по строкам.

I Вывод элементов массива в столбик

for i:=1 to n do

for j:=1 to m do

writeln(A[i,j]:4);

II Вывод элементов массива в виде матрицы (в общепринятом виде)

for i:=1 to n do begin

for j:=1 to m do

write(A[i,j]:4);

writeln;

end;

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

На главной диагонали: {A[i,j] ; i=j}          

Ниже главной диагонали:  {A[i,j] ; i>j}    

Выше главной диагонали:  {A[i,j] ; i<j}

На побочной диагонали:       {A[i,j] ; i+j=n+1}        

Ниже побочной диагонали:  {A[i,j] ; i+j>n+1}                 

Выше побочной диагонали: {A[i,j] ; i+j<n+1}

Операции с матрицами.

Над матрицами определены следующие действия:

- сложение (вычитание) для подобных матриц

- умножение (стр.=стлб.)

- транспонирование (квадратная матрица)

- обратные матрицы.

Сложение (вычитание) матриц:

A = [aij]  B = [bij]  C = [cij]

i = 1,n    j = 1,m

C = A +(-) B

for i := 1 to n do

for j := 1 to m do

c[i,j] := a[i,j] +(-) b[i,j]

Умножение матриц:

A = [aij]  B = [bij]  C = [cij]

i = 1,n    j = 1,n

C = A * B

for i := 1 to  n do

for j := 1 to  n do

begin

c[i,j] := 0;

for k := 1 to n do

c[i,j] := c[i,j] + a[i,k]* b[k,j];

end;

Транспонирование матриц:

A = [aij]  i,j = 1,n    

Транспонирование – замена строки на соответствующий столбец.

Используется 2 основных метода:

  1.  Транспонирование во вспомогательный массив

for i := 1 to  n do

for j := 1 to  n do

b[i,j] := a[j,i]

этот алгоритм наиболее прост но менее эффективен.

  1.  Транспонирование с  помощью вспомогательных переменных

for i := 1 to  n-1 do

for j := i+1 to  n do

begin

x:= a[i,j];

a[i,j] := a[j,i];

a[j,i]:=x;

end.

4. Обслуживание ввода/ вывода. Каналы ввода/вывода. Типы каналов. Диспетчер заданий.

Обслуживание ввода-вывода.

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

Обмен информацией осуществляется побайтно или блоками с помощью специально-выделенных каналов.

Системы ввода-вывода включают как правило группу буферов  ввода-вывода, каналов ввода-вывода (рис).

Канал – это специализированная на вводе-выводе машина. Канал работает на специальной канальной программе.

Каналы делятся на три типа:

А) мультиплексные (навешано много устройств ввода-вывода, действующих медленно: поэтому канальная программа должна переключаться от одного канала к другому (принтеры));

Б)  селекторные (одно устройство быстрое, с большим объёмом (винчестер));

В) DMA (Direct Memory Access – прямой доступ к памяти) – канал, выполняющий канальную программу без вмешательства центрального процессора. По окончанию программы канал генерирует прерывания по вводу-выводу, которые могут работать параллельно.

Диспетчер заданий.

В любой ОС существуют очереди:

- активных процессов;

- очередь процессов в состоянии готовности;

- очередь блокированных процессов.

Любой процесс характеризуется блоком состояния процесса (PSВ). Это структура, состоящая из полей:

- Имя процесса

- Дескриптор процесса

- Информация о системных ресурсах (начальный адрес кодового сегмента, его длина и др.)

- Номер в очереди

- Номер дескриптора процесса

- Состояние процессора

Управляет процессами (нитями) – диспетчер процессов.

Алгоритм работы диспетчера:

PROCEDURE DISPACH:

<обновить PSW активного процесса, если он есть>;

<выбрать следующий готовый процесс для передачи ему управления>.

Выбор процесса осуществляется в соответствии с некоторой стратегией  LIFO, FIFO.

if <готовый процесс найден>

           then

        begin

            <пометить выбранный процесс как активный>;

            <выделить квант времени, установив привилегированной  командой таймер>;

            <передать управление выбранному процессу>

        end

    else

        <перевести центральный процессор привилегированной командой в состояние простоя>;

Как выбирается процесс для активизации:

1. круговая стратегия (в мультипрограммных системах) – в этом случае все процессы считаются равноценными, и диспетчер циклически просматривает PSW всех процессов и выделяет им по очереди квант времени.

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

5. Изометрическая проекция и триметрическая проекция.

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

Изометрическая проекция (изометрия) – это проекция, для которой предполагается одинаковое масштабирование по всем трем осям. Следствием этого является равенство всех углов между проекциями координатных осей.

Триметрическая проекция (триметрия) –  не накладывает никаких ограничений на масштабирование осей, следствием чего является произвольное расположение проекций координатных осей на плоскости проецирования.

Геометрические построения в изометрической проекции.

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

Аналогично, с использованием теоремы Пифагора, составим систему уравнений:

Решая эту систему относительно α и β получим углы поворота β =35.264°; α = 45°.

После подстановки значений тригонометрических функций вычисленных углов в уравнение  получим матрицу преобразований для построения изометрии:

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

Триметрическая проекция не ограничена каким-либо соотношением по координатным осям,  поэтому  для  её  построения  в  любом  случае  нужно  производить самостоятельные  расчёты  углов  поворота  и  матриц  преобразований Т, аналогично тому, как это было сделано для диметрии и изометрии.

6. Генерация кода в языковых процессорах САПР.

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

Такая машина имеет следующую систему команд:

Команда                 Код                      Комментарий

Чтение                    LOAD m             SUM  C(m)

Запись                    STORE m            m C(sum)

Сложение               ADD m               SUM  C(sum) + C(m)

Вычитание             SUB m                SUM  C(sum) - C(m)

Умножение          MULT m               SUM C(sum) * C(m)

Деление                  DIV m                SUM  C(sum) / C(m)

m – ячейка памяти

C(m) – содержимое ячейки

SUM – сумматор

С(sum) – содержимое сумматора

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

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

Список тетрад просматривается от начала до конца и последовательно каждая тетрада заменяется некоторой стандартной последовательностью машинных команд.

Такая послед-ть обеспечивает выполнение действий, заданных тетрадой определенного типа.

Например, для некоторых тетрад стандартный код может иметь вид:

Тетрада                 Код                      Комментарий

(+,OP1,OP2,REZ)      LOAD OP1              SUM C(OP1)

                               ADD OP2                 SUM C(sum)+C(OP2)

                               STORE REZ             REZ C(sum)

(*,OP1,OP2,REZ)      LOAD OP1              SUM C(OP1)

                               MULT OP2                 SUM C(sum)*C(OP2)

                               STORE REZ             REZ C(sum)

(=,OP1, ,REZ)           LOAD OP1              SUM C(OP1)

                               STORE REZ             REZ C(sum)

Покажем на примере как выполняется генерация кода таким способом.

a:=(b+d+a)*(d+b+c)

Список тетрад:

(+,b,d,T1)

(+,T1,a,T2)

(+,d,b,T3)

(+,T3,c,T4)

(*,T2,T4,T5)

(=,T5, ,a)

После выполнения МНО:

(+,b,d,T1)

(+,T1,a,T2)

(+,T1,c,T4)

(*,T2,T4,T5)

(=,T5, ,a)

Генерация кода:

  LOAD b                        

  ADD d

  STORE T1

            

1  LOAD a

1  ADD T1

  STORE T2

  LOAD c

  ADD T1

  STORE T4

2  LOAD T2

2  MULT T4

3  STORE T5

3  LOAD T5

  STORE a

  LOAD b                        

  ADD d

     3 STORE T1

     3  LOAD T1

  ADD a

 STORE T2

 LOAD c

 ADD T1

    3 STORE T4

     3 LOAD T4

  MULT T2

         STORE a

  LOAD b                        

  ADD d

       STORE T1

        ADD a

 STORE T2

 LOAD c

 ADD T1

       MULT T2

         STORE a

 

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




1. Книга песен была создана в Древнем Китае Коллективное бессознательное по Карлу Юнгу является формой
2. Організаційний етап пройшов складно- вчитель і учні вітали один одного кабінет готовий до уроку учні стояч
3. Шпаргалка по исследованию операций
4. «Механизм формирования доходов-расходов консолидированного бюджета РФ»
5. Основные принципы диалектической и формальной логики и их содержание
6. Лабораторная работа Редактор электронных таблиц MS Excel
7.  2003 г ОСНОВЫ КОНСТРУИРОВАНИЯ И ПРОЕКТИРОВАНИЯ Методические указания по курс
8. так больно Но ведь и хорошего в уходящем году тоже было немало1
9. 1 Кредитні операції Активні операції Пасивні операції
10. Финансовый университет при Правительстве Российской Федерации Финуниверситет Пермский финансово.
11. тематика Макарова каб
12. Тема- Определение длины волны излучения лазера по интерференционной картине полос равного наклона В
13. вание Аспирируемой машины и ’ участка Q м3-ч V м-с D.html
14. Любовница смерти декаданский детектив ~ девятая книга Бориса Акунина из серии Приключения Эраста Фандор
15. Слово про слово Мета- познайомити учнів зі спадщиною Василя Олександровича в якій гово
16. НА ТЕМУ- ДОСЛІДЖЕННЯ ВЛАСТИВОСТЕЙ БІПОЛЯРНОГО ТРАНЗИСТОРА Виконала студентка групи 526а
17. 82h cm Floss Used for Full Stitches- Symbol Str
18. Жуков - полководец
19. Искусство Византии IV-V века
20. Разработка концепции маркетинга предприятия на основе проведения маркетингового исследования