на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Проектування комп'ютера
b>Безадресна - поле адреси в команді відсутнє. Адреса операнда, або немає змісту або є по замовчуванню (наприклад дії на спеціальним регістром - акумулятором). Безадресні команди неможливо використати для інших регістрів чи комірок пам'яті. Одним з різновидів безадресної адресації є використання стеку. В команду вводяться спеціальні ознаки з тим, щоб пристрій керування міг розпізнати використаний спосіб. Це можуть бути додаткові розряди в команді, або для різних типів команд закріплюватись різні способи адресації.

Вихідні дані на проектування

Варіант №9

Арифметичні

Логічні

Керування

Прапорці

Адресація

1

2

3

4

5

6

7

8

1

2

3

9

3

5

9

1

2

17

2

10

ZF

2

3

5

1

1. Реалізація додаткових команд. Необхідно реалізувати 8 додаткових команд. Серед них 3 арифметичні, 3 логічні та 2 команди керування згідно варіанту. В таблиці представлено повний перелік множини інструкцій.

Код інструкції

Двійкове значення

Зміст

Тип

1

ADD

00000

Додає вміст регістру regA до вмісту regB, та зберігає в destReg

R

2

DIV

01000

Беззнакове ділення destReg=regA/regB

R

3

IMUL

01001

Знакове множення destReg=regA*regB

R

4

XIDIV

01010

Знакове ділення і обмін операндів місцями destReg=regA/regB

R

5

AND

01011

Побітове логічне І: destReg=regA & regB

R

6

NAND

00001

Виконує логічне побітове І-НЕ вмісту regA з вмістом regB, та

зберігає в destReg

R

7

XOR

01100

Додавання по модулю 2: destReg=regA # regB

R

8

CMPGE

01101

Порівняти regA regB destReg= regA >= regB

R

Інструкції R-типу:

біти 24-22: код операції

біти 21-19: reg A

біти 18-16: reg B

біти 15-3: не використовуються (=0)

біти 2-0: destReg

Код

інструкції

Двійкове

значення

Зміст

Тип

9

LW

00010

Завантажує regB з пам'яті. Адреса пам'яті формується

додаванням зміщення до вмісту regA.

I

10

SW

00011

Зберігає вміст регістру regB в пам'ять. Адреса пам'яті

формується додаванням зміщення до вмісту regA.

I

11

BEQ

00100

Якщо вміст регістрів regA та regB однаковий, виконується

перехід на адресу програмний лічильник (ПЛ) + 1+зміщення, в ПЛ зберігається адреса поточної тобто beq інструкції.

I

12

JMAE

01110

Беззнакове більше/рівно if (regA>= regB) PC=PC+1+offSet

I

13

JMNAE

01111

Беззнакове не більше/рівно if (regA! >= regB) PC=PC+1+offSet

I

14

JNE

10010

Перейти, якщо більше чи рівно, if (ZF!

=0) PC=offset

I

I-тип інструкцій:

біти 24-22: код операції

біти 21-19: reg A

біти 18-16: reg B

біти 15-0: зміщення (16 біт, значення від - 32768 до 32767)

Код інструкції

Двійкове значення

Зміст

Тип

15

JARL

00101

Спочатку зберігає ПЛ+1 в regB, в ПЛ адреса поточної (jalr)

інструкції. Виконує перехід на адресу, яка зберігається в regA. Якщо в якості regA regB задано один і той самий регістр, то спочатку в цей регістр запишеться ПЛ+1, потім виконається перехід до ПЛ+1.

J

16

BSF

10000

Побітове сканування в прямому (від молодших до старших) напрямку regA в пошуках біта з 1, повертає номер позиції в destReg. Якщо 1 знайдено ZF=1, інакше ZF=0

J

17

BSR

10001

Побітове сканування в зворотньому напрямку (від старших до молодших) regA в пошуках біта з 1, повертає номер позиції в destReg. Якщо 1

знайдено ZF=1, інакше ZF=0

J

J-тип інструкцій:

біти 24-22: код операції

біти 21-19: reg A

біти 18-16: reg B

біти 15-0: не використовуються (=0)

Додатковий тип адресації - безадресна (реалізація стеку). Ця адресація имагає двох додаткових інструкцій: PUSH, POP.

Код інструкції

Двійкове значення

Зміст

Тип

18

HALT

00110

Збільшує значення ПЛ на 1, потім припиняє виконання,

стимулятор має повідомляти, що виконано зупинку.

O

19

NOOP

00111

Нічого не виконується

O

20

PUSH

10011

Записати в стек з 1 регістру

O

21

POP

10100

Зчитати з стеку в 1 регістр

O

O-тип інструкцій:

біти 24-22: код операції

біти 21-0: не використовуються (=0)

\

Роз'яснення та аналіз основних принципів побудови комп'ютерів на прикладі визначених на реалізацію інструкцій

Структура СК після модифікації:

Рис 1. Функціональна схема СК після модифікації

В СК було додано 13 інструкцій, внаслідок чого поле КОП збільшилося на 2 біти до 5 біт (максимально 32 інструкції з яких використано 21). Решта частина коду операції не зазнала зміни. Був доданий стек глибиною 32 слова по 32 біти, покажчик вершини стеку, прапорець стану ZF.

Перевірка правильності роботи реалізованих команд у прикладах

1. div: 45/5=9.

Програма:

lw 0 1 num1

lw 0 2 num2

div 1 2 3

done halt

num1 .fill 45

num2 .fill 5

Машинний код:

8454148

8519685

34209795

25165824

45

5

Кінцевий стан:

@@@

state:

pc 4

ZF = 0

stack:

memory:

mem[ 0 ] 8454148

mem[ 1 ] 8519685

mem[ 2 ] 34209795

mem[ 3 ] 25165824

mem[ 4 ] 45

mem[ 5 ] 5

registers:

reg[ 0 ] 0

reg[ 1 ] 45

reg[ 2 ] 5

reg[ 3 ] 9

reg[ 4 ] 0

reg[ 5 ] 0

reg[ 6 ] 0

reg[ 7 ] 0

end state

2. imul: 3*(-4)=-12.

Програма:

lw 0 1 num1

lw 0 2 num2

imul 1 2 3

done halt

num1 .fill 3

num2 .fill -4

Машинний код:

8454148

8519685

34209795

25165824

3

-4

Кінцевий стан:

@@@

state:

pc 4

ZF = 0

stack:

memory:

mem[ 0 ] 8454148

mem[ 1 ] 8519685

mem[ 2 ] 38404099

mem[ 3 ] 25165824

mem[ 4 ] 3

mem[ 5 ] -4

registers:

reg[ 0 ] 0

reg[ 1 ] 3

reg[ 2 ] -4

reg[ 3 ] -12

reg[ 4 ] 0

reg[ 5 ] 0

reg[ 6 ] 0

reg[ 7 ] 0

end state

3. xidiv: 30/(-5)=-6, обміняти операнди місцями.

Програма:

lw 0 1 num1

lw 0 2 num2

xidiv 1 2 3

done halt

num1 .fill 30

num2 .fill -5

Машинний код:

8454148

8519685

42598403

25165824

30

-5

Кінцевий стан:

@@@

state:

pc 4

ZF = 0

stack:

memory:

mem[ 0 ] 8454148

mem[ 1 ] 8519685

mem[ 2 ] 42598403

mem[ 3 ] 25165824

mem[ 4 ] 30

mem[ 5 ] -5

registers:

reg[ 0 ] 0

reg[ 1 ] -5

reg[ 2 ] 30

reg[ 3 ] -6

reg[ 4 ] 0

reg[ 5 ] 0

reg[ 6 ] 0

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.