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

ВСТУП

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

Ідея використання програмного керування для побудови пристрою, що автоматично виконує арифметичні обчислення, вперше була висловлена англійським математиком Ч. Беббіджем ще в 1833 році. Проте його спроби побудувати механічний обчислювальний пристрій з програмним керуванням не мали успіху.Фактично ця ідея була реалізована лише через 100 років, коли в 1942 році К. Цюзе в Німеччині і в 1944 році Т. Айкен в США побудували на електромагнітних реле обчислювальні машини з керуванням від перфострічки.

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

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

До першого покоління відносять лампові ЕОМ, промисловий випуск яких розпочався у 50-і роки ХХ ст.

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

ЕОМ третього покоління зявились в другій половині 60-х років, коли фірма ІВМ (США) розробила систему машин ІВМ-360. Ця система вплинула на логічну організацію машин загального призначення третього покоління, які були розроблені в інших країнах.

Нещодавно зявились ЕОМ та обчислювальні пристрої, які можна віднести до четвертого покоління. Конструктивно-технологічною основою ЕОМ четвертого покоління є інтегральні схеми з великими (ВІС) і над великим (НВІС) ступенями інтеграції, які вміщують десятки і сотні тисяч транзисторів в одному кристалі.

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

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

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

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

1 РОЗРОБКА МАШИННОГО АЛГОРИТМУ ОПЕРАЦІЇ ДІЛЕННЯ ТА ОПЕРФЦІЙНОГО АВТОМАТУ

1.1 Розробка алгоритму виконання операції ділення в двійково-десятковій системі числення з відновленням остачі

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

Система числення - сукупність прийомів та правил для запису чисел цифровими знаками. Найбільш поширеною являється десяткова система числення. Способів запису чисел цифровими знаками існує дуже багато. Всі системи представлення чисел поділяють на позиційні і непозиційні. Самий простий спосіб запису чисел може бути описаний виразом:

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

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

Арифметичні операції в двійково-десятковій системі числення схожі на арифметичні операції в двійковій системі числення.

Сформулюємо узагальнений алгоритм виконання операції ділення в двійково-десятковій системі числення:

1. В НСМ записується прямий код числа А, в Рг1 записуємо число В, в СТ і СТ2 записуємо нулі. Ці лічильники використовуються для лічби кількості виконаних операцій.

2. Якщо Рг1 дорівнює 0, то програма завершує роботу, адже ділення неможливе, інакше йдемо далі.

3. Віднімаємо В від А. Результат записується в НСМ. Якщо результат додатній, то далі по алгоритму буде виконуватися віднімання числа В та запамятовування значення НСМ на той випадок, якщо наступний результат виявиться відємним. Якщо ж результат відємний то буде виконана процедура відновлення остачі, а саме присвоювання значення Рг2, який містить у собі попереднє значення НСМ, накопичувальному суматору НСМ.

4. Після кожного додавання або ж віднімання числа В, результат корегується додаванням 6 та 1 до наступної тетради. Після кожного додавання значення лічильника інкрементується.

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

Рисунок 4.1.2 - Продовження Блок - схеми алгоритму ділення

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

Для демонстрації роботи алгоритму, поділимо в двійково-десятковій системі числення два числа 42 і 58.

Число А=42 в двійково-десятковій системі дорівнює 0.0100 0010, а число В у оберненому коді = -58 - 1.0100 0001.

Виконаймо віднімання А від В, тобто додавання до А оберненого коду В:

0.0100 0010

+1.0100 0001

1.1000 0011

Оскільки результат цієї дії є відємним, то ми виконуємо зсув попереднього значення (у даному випадку числа А) вліво на 4 розряди.

Виконаємо ділення відповідно до алгоритму описаного в розділі 4.1:

НСМ

Рг1

Рг2

Примітки

0.0100 0010 0000

1.1001 0100 0001

0.0100 0010 0000

НСМ:=А; Рг1:=В; Рг2:=НСМ НСМ:=НСМ++10

0.0100 0010 0000

+1.1001 0100 0001

1.1101 0110 0001

1.1001 0100 0001

0.0011 0110 0010

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0011 0110 0010

+1.1001 0100 0001

1.1100 1010 0011

1.1001 0100 0001

0.0011 0000 0100

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0011 0000 0100

+1.1001 0100 0001

1.1100 0100 0101

1.1001 0100 0001

0.0010 0100 0110

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0010 0100 0110 +1.1001 0100 0001

1.1011 1000 0111

1.1001 0100 0001

0.0001 1000 1000

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0001 1000 1000

+1.1001 0100 0001

1.1001 1100 1001

1.1001 0100 0001

0,0001 0011 0000

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0,0001 0011 0000

+1.1001 0100 0001

1.1010 0111 0001

1.1001 0100 0001

0.0000 0111 0010

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0000 0111 0010

+1.1001 0100 0001

1.1001 1011 0011

1.1001 0100 0001

0.0000 0001 0100

НСМ:=НСМ++10

НСМ[9:12]:=НСМ[9:12]+6

НСМ[5:8]:=НСМ[5:8]+1

НСМ[5:8]:=НСМ[5:8]+6

НСМ[1:4]:=НСМ[1:4]+1

CT:=CT+1

Рг2:=НСМ

0.0000 0001 0100

+1.1001 0100 0001

1.1001 0101 0101

1.1001 0100 0001

0.0000 0001 0100

НСМ:=Рг2

НСМ[1:12]:=L4(HCM[1:12]).0

СТ:=0

Таким чином результатом ділення чисел 42 та 58 буде число 0,72, яке буде записане в СТ1.