Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Виконання операції ділення в двійково-десятковій системі числення

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Із множини різних методів виконання операції ділення розглянемо найбільш розповсюджені. Насамперед це — «шкільний» алгоритм ділення, який полягає в тому, що частка на кожному кроці віднімається стільки раз із діленого (починаючи із старших розрядів), скільки це можливо для отримання найменшої додатної остачі. Тоді в наступний розряд частки записується цифра, яка дорівнює числу дільників, які… Читати ще >

Виконання операції ділення в двійково-десятковій системі числення (реферат, курсова, диплом, контрольна)

Зміст

  • Вступ
  • 1. Розробка машинного алгоритму виконання операції та операційного автомату
  • 1.1 Основні методи виконання операції ділення
  • 1.2 Розробка операційного автомату
  • 1.3 Алгоритм ділення чисел без відновлення остачі
  • 1.4 Приклад виконання операції ділення
  • 2. Синтез керуючого автомату
  • 2.1 Загальні відомості про керуючі автомати
  • 2.2 Розробка карти прошивки ПЗП
  • Висновки

Завдання

Спроектувати процесор для виконання з використанням доповняльного коду без відновлення розрядів остачі операції ділення в двійково-десятковій системі числення. Синтезувати керуючий автомат побудований на принципі програмованої логіки, використовуючи примусову адресацію для чисел, поданих з плаваючою комою (розрядність мантиси — 1 десятковий розряд, порядку — 2 двійкових розряда).

Показати роботу алгоритму на прикладі чисел 47 і 45.

Анотація

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

Було проведено синтез керуючого автомату, побудованого на принципі програмованої логіки, використовуючи примусову адресацію. Розроблений алгоритм автомату, побудований алгоритм роботи автомату, структурна схема автомату.

Вступ

Обчислювальна техніка грає визначальну роль в науковому технічному прогресі нашої держави, яка сприяє підвищенню ефективності виробництва, покрашення якості продукції, росту продуктивності праці. Складність і відповідальність задач, що вирішуються сучасними ЕОМ та системами, потребують від них високої надійності та продуктивності. Тому, однією з основних проблем, які стоять перед розробниками сучасної обчислювальної техніки, є підвищення продуктивності, вітказостійкості та життєздатності.

В наш час основним напрямком вирішення цих проблем є побудова обчислювальних машин, які побудовані з великої кількості однорідних модулів, що створюють єдину систему шляхом встановлення логічних зв`язків між ними. В цьому суть концепції мультипроцесорних ЕОМ, частинними випадками яких є матричні, конвеєрні, з програмованою архітектурою і т.д. При цьому висовуються вимоги простоти контрольного обладнання і високої достовірності обробки інформації. Відносно апаратних затрат відмітимо, що тут суттєвіше не надлишковість кода, а додаткові витрати обладнання на реалізацію контроля.

В основу проектування операційних пристроїв різного призначення покладено принцип функціонування мікропрограмування і вважати пристрої, як композицію операційного і керуючого автоматів. При цьому мікропрограмування — це спосіб опису функцій операційних пристроїв безвідносно до технічних засобів, які використовуються для їх реалізації. Таке тлумачення мікропрограми дозволяє формулювати синтез структур будь-яких операційних пристроїв незалежно від способу керування роботою пристрою.

Необхідно відмітити, що принципи побудови і методи проектування операційних і керуючих автоматів є тою основою, на якій базується теорія і практика проектування більшої частини пристроїв ЕОМ.

1. Розробка машинного алгоритму виконання операції та операційного автомату

1.1 Основні методи виконання операції ділення

Ділення двійково-десяткових чисел аналогічно діленню десяткових чисел. Процес ділення складається з того, що послідовно розряд за розрядом шукаються цифри частки шляхом підбору з послідуючим множенням цієї цифри на дільник і відніманням цього добутку із діленого.

Із множини різних методів виконання операції ділення розглянемо найбільш розповсюджені. Насамперед це — «шкільний» алгоритм ділення, який полягає в тому, що частка на кожному кроці віднімається стільки раз із діленого (починаючи із старших розрядів), скільки це можливо для отримання найменшої додатної остачі. Тоді в наступний розряд частки записується цифра, яка дорівнює числу дільників, які містяться в діленому на даному кроці. Таким чином, весь процес ділення зводиться до операцій віднімання і зсуву.

Другий метод виконання операції ділення полягає в множені діленого на обернену величину дільника. Тут виникає нова операція — обчислення оберненої величини, яка здійснюється за відомими наближеними формулами (наприклад, розкладанням в біноміальний ряд Ньютона і т.п.). в цьому випадку в склад команд машини повинна входити спеціальна операція для знаходження оберненої величини.

До найбільш розповсюджених методів виконання операції ділення відноситься також метод, який полягає в використанні наближеної формули для знаходження частки від ділення двох величин. Від методу множення обраних величин він відмінюється тим, що частка визначається за деякою формулою, яка зводиться до виконання операцій додавання, віднімання і множення.

алгоритм процесор система счислення Для того щоб алгоритм ділення чисел з фіксованою комою працював правильно, необхідно щоб виконувалась умова А<B, де А-ділене, В-дільник. Якщо ця умова не виконується, то ділення дробових операндів може призвести до переповнення розрядної сітки машини, і відповідно, до грубого викривлення результату.

Ознакою переповнення являється формування одиниці в знаковому розряді модуля частки, оскільки зазвичай операція ділення проводиться лише над модулями вихідних чисел. Визначення знака частки, таким чином, являється самостійною операцією. Зазвичай ділення в машинах з фіксованою комою виконується в два етапи.

1-й етап - визначається знак частки шляхом додавання знакових цифр діленого та дільника за модулем.

2-й етап - виконується ділення модулів вихідних чисел, округлення модуля частки (якщо це передбачає алгоритм), після чого до нього приписується знак визначений на першому етапі.

1.2 Розробка операційного автомату

В будь-якому пристрої обробки цифрової інформації можна виділити операційний та керуючі блоки.

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

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

Для реалізації операції ділення в доповняльному без відновлення остачі частки чисел з плаваючою комою потрібні такі структурні вузли

Для реалізації операції ділення в оберненому коді без відновлення остачі чисел з плаваючою комою потрібні такі структурні вузли

8-розрядний накопичувальний суматор НСМ, який буде використовуватися для зберігання діленого та зберігання остачі і-го кроку ділення;

4-розрядний регістр числа В РгВ, який буде використовуватися для зберігання мантиси дільника;

4-розрядний регістр числа, А РгА, який буде використовуватися для зберігання мантиси діленого;

4-розрядний регістр порядку числа, А РгАп, який буде використовуватися для зберігання порядку діленого;

4-розрядний регістр порядку числа В РгВп, який буде використовуватися для зберігання порядку дільника;

4-розрядний накопичуючий суматор НСМ1 доповняльного коду для формування і зберігання доповняльного коду дільника В;

Логічний елемент, що реалізує операцію «сума за модулем 2», для визначення знаку результату ділення;

Лічильник (Ліч1) для підрахування кількості кроків ділення;

Лічильник (Ліч2) для формування чергової цифри частки;

8-розрядний регістр числа С РгС, який буде використовуватися для зберігання результату ділення, тобто частки;

Вхідні дані (ділене та дільник) надходять в пристрій через шину вхідних даних ШДвх.

Результат (частка) видається з пристрою через шину вихідних даних ШДвих.

Структурна схема операційного автомату наведена додатку А.

Таблиця 1.1

Для операційного автомату визначимо: вхідні і вихідні сигнали.

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Y10 Y11

Y12

Y13

Y14

Y15

Y16

Y17

Y18

РгА: =ШДвх НСМп: =ШДвх РгВ: =ШДвх РгВп: =ШДвх НСМп: =0

НСМ1: =0

НСМ1: =НСМ1+РгВ НСМп: =НСМп+РгВп НСМ1: =НСМ1+0110

НСМп: = (не) НСМп НСМ1: = (не) НСМ1

НСМп: =НСМп+1

НСМ1: =НСМ1+1

НСМп: =НСМп+РгАп НСМ=0

РгС [0]: =РгА РгВ [0]

НСМ: =НСМ+РгА Ліч1: =2

Y19

Y20

Y21

Y22

Y23

Y24

Y25

Y26

Y27

Y28

Y29

Y30

Y31

Y32

X1

X2

X3

X4

РгС: =L4 (РгС) НСМ: =L4 (НСМ) Ліч2: =9

НСМ: =НСМ+РгВ НСМ [5.8]: =НСМ [5.8] +0110

НСМ [1.4]: =НСМ [1.4] +0110

Ліч2: =Ліч2−1

Ліч2: =0

НСМ: =НСМ+НСМ1

Ліч2: =Ліч2+1

РгС [5.8]: =Ліч2

Ліч1: =Ліч1−1

Швих: =РгС Швих: =РгСп НСМ =1

НСМ [5.8] <1010

НСМ [1.4] <1010

Ліч1=0

1.3 Алгоритм ділення чисел без відновлення остачі

1. Записати в суматор НCМ мантису числа А, в суматор НСМп порядок числа А.

2. Записати в регістри РгВ мантису числа В, в регістр РгВп порядок числа В.

3. Визначити знак результату РгС [0]: =РгА РгВ.

4. Визначити порядок результату: НСМп: =НСМп+ (не) РгВп+1.

5. Обнулити регістр результату РгСм.

6. Лічильнику Ліч1 присвоїти значення кількості цифр частки.

7. Додати на суматорі НСМ: =НСМ+! РгВ+1.

8. Аналізуємо остачу: якщо НСМ>0, то збільшуємо значення молодшої тетради регістра РгС на одиницю і переходимо на крок 7; інакше переходимо на крок 9.

9. Зменшуємо значення лічильника Ліч1 на 1. Зсувам вліво на одну тетраду регістр РгС і суматор НСМ.

10. Якщо Ліч1 дорівнює нулю, то переходимо на крок 14; якщо значення суматора НСМ більше нуля, то переходимо на крок 7, менше нуля — на крок 11.

11. В молодшу тетраду регістра частки РгС записуємо 9.

12. Додати на суматорі НСМ: =НСМ+РгВ.

13. Аналізуємо остачу: якщо НСМ<0, то зменшуєш значення молодшої тетради регістра РгС на одиницю і переходимо на крок 12; інакше переходимо на крок 9.

14. Вивести результат: ТзнС, РгСм, РгСп подається на шину вихідних даних.

Схема даного алгоритму приведена в додатку Б.

В наш час практично у всіх машинах числа діляться лише по способу без відновлення остачі. Як відмічалося раніше, цей спосіб, по-перше, спрощує схему керування процесом ділення, і значить, приводить до економії апаратури, а по-друге забезпечує підвищення швидкодії машини, так як час виконання операції ділення без відновлення остачі дорівнює мінімальному часу виконання операції ділення з відновленням остачі.

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

1.4 Приклад виконання операції ділення

Покажемо роботу розробленого алгоритму виконання операції ділення в оберненому коді на прикладі конкретних чисел 5 і 7 Для цього спочатку переведемо задані числа в двійково-десяткову систему числення:

510= 0101=0,10 1101;

710= 0111=0,11 1101.

Ділення виконуємо лише над модулями заданих чисел. Запишемо машинне зображення заданих чисел:

РгА=00,0101;

РгВ=00,0111.

Визначимо обернений код другого операнду.

1) Додамо поправку 0110 до тетрад числа В:

2) проінвертуємо отриманий код і додамо одиниць в молодший розряд:

РгВ=1,0011.

Визначимо порядок результату:

0,01

1,11

0,002=010

Визначимо знак результату: ТзнС: =ТзнАТзнВ

ТзнаС: = 00 =0 (результат додатній).

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

Таблиця 1.2

НСМ

Ліч2

Примітки

0000,0001

НСМ: =НСМ+РгА L4 (НСМ)

0 0101,0000

1 1111,0011

0 0100,0011

НСМ>0 СМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0100,0011

1 1111,0011

0 0011,0110

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0011,0110

1 1111,0011

0 0010,1001

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0010,1001

1 1111,0011

0 0001,1100

0 0010,0010

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0010,0010

1 1111,0011

0 0001,0101

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0001,0101

1 1111,0011

0 0000,1000

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0000,1000

1 1111,0011

1 1111,1011

0 0000,0001

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

0 0000,0001

1 1111,0011

1 1111,0100

НСМ>0 НСМ: =НСМ+НСМ1

ЛІч2: =Ліч2+1;

Отримали результат РгС=0,0111Д = 0,710.

Ділення заданих чисел на калькуляторі дає результат С2 = 0,0714.

Отже, отримано результат, близький до точного, що підтверджує правильність розробленого алгоритму.

2. Синтез керуючого автомату

2.1 Загальні відомості про керуючі автомати

Для кожної операції будується набір комбінаційних схем які в потрібних тактах збуджують відповідні керуючі сигнали. Іншими словами будується скінчений автомат в якому необхідна множина станів представляється станами k запам’ятовуючих елементівq = {q1 q2, …, qk}.

Керуючий автомат з зберігаємою в пам’яті логікою (програмованою логікою). Кожній операції що виконується в операційному пристрої ставиться у відповідність сукупність зберігаємих в пам’яті слів-мікрокоманд кожна з яких містить інформацію про мікрооперації що підлягають виконанню на протязі одного машинного такту та вказівку (яка в загальному випадку залежить від значень вхідних сигналів) яке повинно бути вибране з пам’яті наступне слово (наступна мікрокоманда). Таким чином в цьому випадку функції переходів та виходів, А та Ві керуючого автомату реалізуються зберігаємою в пам’яті сукупністю мікрокоманд. В основі опису керуючих автоматів лежить принцип мікропрограмного керування. Він полягає в тому що будь-яка операція розглядається як складна що містить більш прості операції які називаються мікроопераціями тобто кожна операція-це визначена послідовність мікрооперацій.

Послідовність мікрокоманд що виконують одну машинну команду чи окрему процедуру створює мікропрограму. Звичайно мікропрограми зберігаються в спеціальній пам’яті мікропрограм (керуючій пам’яті).

В керуючих автоматах з зберігаємою в пам’яті програмою мікропрограми використовуються в явній формі вони програмуються в кодах мікрокоманд і в такому вигляді заносяться в пам’ять. Тому такий метод управління цифровим пристроєм називається мікропрограмуванням, а керуючі блоки що використовують цей метод — мікропрограмними керуючими пристроями.

В залежності від прийнятого способу кодування мікрооперацій розрізняють три варіанти організації мікропрограмного керування горизонтальне вертикальне та комбіноване мікропрограмування. При горизонтальному мікропрограмуванні для кожної мікрооперації виділяється один розряд у мікрокоманді. При такому кодуванні всі операції що виконуються одночасно визначаються одиницями у відповідних розрядах однієї мікрокоманди. Код операції задає адресу першої мікрокоманди в мікропрограмі. Адреси наступних мікрокоманд визначаються за принципом примусової адресації згідно цього мікрокоманда складається з двох частин-мікроопераційної та адресної. Основною перевагою горизонтального мікропрограмування є висока швидкодія як за рахунок простоти та можливості одночасної генерації довільного числа сигналів мікрооперацій так і за рахунок швидкого формування адреси наступної мікрокоманди. Однак при горизонтальному мікропрограмуванні довжина поля мікрооперації повинна бути не менша за максимальну кількість несумісних мікрооперацій тобто вимагаються довгі формати мікрокоманд та комірки запам’ятовуючого пристрою що призводить до значних витрат обладнання. Крім того лише невелике число розрядів в полі мікрооперації буде містити одиниці тобто запам’ятовуючий пристрій буде використовуватись неефективно.

Скоротити довжину мікрокоманд дозволяє застосування вертикального мікропрограмування при якому кожна мікрооперація кодується] log2 n [ - розрядним кодом де n — загальна кількість мікрооперацій. Таке кодування накладає обмеження на методи виконання операцій, а саме не повинно бути операцій що потребують одночасного виконання ряда мікрооперацій. В тих випадках коли це обмеження виконати неможливо треба використовувати складні мікрооперації що складаються з сукупності простих.

При вертикальному кодуванні мікрокоманд кожна мікрооперація, які виконуються в окремому стані керуючого автомата, нумерується двійковим кодом. Згідно алгоритму в нас є такі мікроперації, які можна виконати одночасно. Тому ми виділимо 3 поля для кодів мікрооперацій. В кожному такому полі буде розміщено двійковий код певної мікроперації. При цьому коди мікрооперацій, які виконуються одночасно, будуть міститися в різних полях.

Для кодування мікрооперацій ми за допомогою граф-схеми алгоритма визначаємо мікрооперації Y, які виконуються в певному стані Аn керуючого автомата і присвоюємо кожній мікрооперації в окремому полі двійкове число — код (див. таблицю 2.1). Для кодування мікрооперацій нам потребується 4 розряди.

Таблиця 2.1 — Кодування мікрооперацій

Y

Код Y

Y1 Y2

Y3 Y4

Y5 Y6

Y7 Y8

Y9 Y10

Y11 Y12

Y13 Y14

Y15 Y16

Y17 Y18

Y19 Y20

Y21

Y22

Y23

Y24

Y25

Y26

Y27

Y28

Y29 Y30

Y31 Y32

Закодуємо умови переходу Х. За алгоритмом в нас є 4 умови переходу Х1. Х4. Визначимо також Х0, яку ми будемо використовувати для переходу в заданий стан автомата. Для кодування умов переходу від 0 до 4 нам потребується 3 розряди мікрокоманди (див таблицю 2.2).

Таблиця 2.2 — Кодування умов переходу

Х

Код

Х0

Х1

Х2

Х3

Х4

2.2 Розробка карти прошивки ПЗП

Використовуючи таблицю 2.1, таблицю 2.2 та граф-схему алгоритму, складемо карту програмування ПЗП керуючого автомату наступним чином:

Якщо в даному стані автомата (див. граф-схему алгоритму) виконуються мікрооперації, то записуємо операційну мікрокоманду, якщо виконується умовний або безумовний перехід в заданий стан, то записуємо керуючу мікрокоманду.

Операційна мікрокоманда складається з розряду признаку, в який записується «0», і операційної частини, в яку записується двійковий код виконуваних мікрооперацій згідно таблиці 2.2.

Операційна мікрокоманда складається з розряду признаку, в який записується «1», поля умови, в який записується двійковий код умови переходу згідно таблиці 2.2, і адресної частини, яка містить адресу переходу.

Мікропрограма описує послідовність переходу керуючого автомата їз одного стану в наступний стан. В кожному такому стані аналізується вміст окремої мікрокоманди:

Якщо розряд признаку Р=0, то виконується мікрооперації, код яких записаний в полі Y і відбувається перехід на наступну мікрокоманду.

Якщо розряд признаку Р=1 і умова, код якої записаний в полі Х, справджується (Х=1), то відбувається перехід на мікрокоманду з адресою, вказаною в полі А, інакше відбувається перехід на наступну мікрокоманду.

Таблиця 2.3 — Карта прошивки ПЗП

Стан

Адреса

Y

X

A0 (x=1)

A1 (x=0)

A0

*

A1

*

A2

*

A3

*

A4

*

A5

*

A6

*

A7

*

A8

*

A9

*

A10

A11

*

A12

A13

*

A14

A15

*

A16

A17

*

A18

*

A19

A20

*

A21

A22

*

A23

A24

*

A25

A26

*

Функціональну схему керуючого автомату наведено в додатку Г.

На схемі позначено:

РгМк — регістр мікрокоманд;

Р — розряд признаку;

ПМ — пам’ять мікрокоманд;

ЛС — логічна схема;

Ліч — лічильник.

Висновки

В даній курсовій роботі було розроблено операційний та керуючий автомати і машинний алгоритм виконання операції ділення в оберненому коді без відновлення двох чисел з плаваючою комою в двійково-десятковому коді. Використання алгоритму ділення чисел без відновлення остачі виправдане його швидкодією в порівнянні з алгоритмом ділення чисел з відновленням остачі. А використання операндів з плаваючою комою дозволяє отримати результат достатньої точності.

Перелік посилань

1. Журавлев К. С «Надежность и контроль ЄВМ». Москва, «Энергоатомиздат», 1984.

2. Каган Б. М «Электронные вычислительные машины и системы». Москва «Энергоатомиздат «1991.

3. Лысиков Б. Г «Арифметические и логические основы цифровых автоматов». Москва, «Высшая школа», 1985.

4. Майоров Б. С, Новиков А. Р «Структура ЭВМ». Москва, «Высшая школа», 1975.

5. Савельев А. Я «Прикладная теория цифровых автоматов». Москва «Высшая школа» 1987.

6. Самофалов К. С «Цифровые ЭВМ». Киев «Вища школа» 1989.

Додатки

Додаток, А Структурна схема операційного автомату

Додаток Б Алгоритм

Додаток В Граф-схема алгоритму

Додаток Г Функціональна схема керуючого автомату

Показати весь текст
Заповнити форму поточною роботою