Professional Documents
Culture Documents
Поглавје 4
1
Вовед
2
Вовед
3
High-level имплементација
4
High-level имплементација
1. Пред да започне извршувањето на инструкција,
операндите мора да се во регистрите
2. Извршувањето на инструкцијата започнува со
читање на нејзината адреса во програмскиот
бројач
3. Инструкцијата се презема од меморија
4. Операндите (полиња во инструкцијата) се
преземаат од регистрите
5. АЛУ пресметува резултат (обично собирање,
адреса во меморија, и сл)
6. Резултатот се запишува во регистар, програмски
бројач, или меморија
5
High-level имплементација
6
High-level имплементација
7
Имплементација со повеќе детали
(слајд 9)
На Сликата се покажани податочните патеки од претходната слика со трите потребни
мултиплексери што се додадени, како и контролни линии за главните функциски
единици (Основна имплементација на МИПС множеството)
• Мултиплексерот најгоре на сликата („Mux“) контролира која вредност ја заменува
вредноста на програмскиот бројач (PC) (PC+4 или одредишната адреса на
разгранувањето); мултиплексерот е контролиран од портата која извршува „И“ на
Нула излезот од АЛУ и контролниот сигнал кој покажува дека инструкцијата е
разгранување.
• Средниот мултиплексер, чиј излез враќа во регистарската датотека, се користи за
да го насочува излезот од АЛУ (во случај на аритметичко-логички инструкции) или
излезот во податочната меморија (во случај на полнење) за запишување во
регистарската датотека.
• најдолниот мултиплексер се користи за да одреди дали вториот АЛУ влез е од
регистрите (за аритметичко-логичка инструкција или за разгранување) или од
полето за поместување на инструкцијата (при полнење или складирање).
Додадените контролни линии се насочувачки и ја определуваат операцијата
извршена од АЛУ, дали треба да се чита или запишува податочната меморија и дали
регистрите треба да извршат операција за запишување. Овие контролни линии се
покажани во боја за да може полесно да се гледаат.
СЛЕДНИТЕ НЕКОЛКУ ПРЕДАВАЊА ГО ПОДОБРУВАМЕ ОВОЈ ПОГЛЕД СО ДОПОЛНУВАЊЕ
НА ДЕТАЛИТЕ
8
Имплементација со повеќе детали
9
Логички конвенции
• Податочната патека е изградена од два типа логички
елементи:
– Комбинаторни елементи кои оперираат врз податоците
(АЛУ)
– Елементи на состојба (регистер, меморија)
Сите елементи што оперираат над податочни вредности се комбинаторни, што значи
дека нивните излези зависат само од тековните влезови. При ист влез,
комбинаторниот елемент секогаш го создава истиот излез (пр. АЛУ )
Еден елемент чува состојба, ако има некој внатрешен простор за складирање. Овие
елементи се наречени елементи на состојба. Елементот на состојба има најмалку два
влеза и еден излез. Потребните влезови се податочните вредности што ќе се запишат
и тактот, кој одредува кога да биде запишана вредноста. Излезот од елемент на
состојба ја обезбедува вредноста што била запишана во претходен такт циклус .
Логичките компоненти што содржат состојба се нарекуваат и секвенцијални, бидејќи
нивните излези зависат од нивните влезови и содржината од внатрешната состојба
(На пример, излезот од функциската единица што ги претставува регистрите зависи од
пратените броеви на регистри и од тоа што било запишано во регистрите претходно. )
10
Логички конвенции
• Елемент на состојба не може во исто време да се чита и да се пишува
во него
• Часовник (такт) одредува кога може да се пишува во него.
• Рабно активирање – во некои елементи на состојба може да се
пишува само на предниот раб или само на задниот раб
• Времето на пропагација од елементот 1 до елементот 2 ја одредува
максималната фреквенција на тактот
преден раб
заден раб
11
Методологија на задавање такт
• Методологијата со рабно активирање им овозможува на
елементите на состојбата да бидат прочитани и запишани
во истиот такт
12
Градење на податочна патека
Елементи од
податочната патека:
1. Инструкциска Сума
меморија
2. Програмски
бројач
3. Собирач
13
Елементи од податочната патека
1. Програмскиот бројач ја содржи мемориската адреса
на инструкцијата која во моментот се извршува
2. Инструкциската меморија е хардверски елемент кој
презема инструкции од меморија и ги доставува на
податочната патека . Адресата на инструкцијата што
треба да се преземе се прима како влезен
параметар од програмскиот бројач
3. Собирачот ја пресметува адресата на следната
инструкција што треба да се изврши. Пресметаната
адреса на следната инструкција се запишува во
програмскиот бројач во следниот такт
14
Градење на податочна патека
Елементи од
податочната патека:
4. Регистерска
датотека
5. Аритметичко-
логичка RegWrite
единица
ALU операција
15
Елементи од податочната патека
4. Регистерска датотека – структура која содржи 32
регистри за генерална намена.
– две порти за истовремено читање на содржината на два
регистри. Како влез се специфицира 5-битен број на
регистер. На излез се појавува 32-битна содржина на
регистерот.
– Една порта за запишување во регистер - се специфицира 5-
битен број на регистер и 32-битен збор што сака да се
запише во регистерот.
– Читањето од регистерската датотека се одвива нон-стоп
– Пишувањето е дозволено само ако сигналот RegWrite е
поставен
5. АЛУ два 32-битни влеза, еден 32-битен излез и 1-
битен излез кој кажува дали 32-битниот излез е 0. Се
управува со 4-битен контролен сигнал ALU операција
16
Градење на податочна патека
MemWrite
Елементи од
податочната патека:
6. Податочна
меморија
7. Проширувач со MemRead
знак
17
Елементи од податочната патека
6. Податочна меморија – структура која запишува во
меморија и чита податоци од меморија.
– Еден влез за адреса во меморија
– Еден влез за податоците што треба да се запишат
– Еден излез за податоците што се преземени од меморија
– Два контролни сигнали MemWrite и MemRead кои
диктираат дали да се чита од меморија или да се пишува
во меморија
7. Проширувач со знак 16-битен број се копира во
долните 16 бита од 32-битен број. Горните 16 бита од
32-битниот број го содржат знакот на 16-битниот
број.
18
Градење на податочна патека
(елементи за извршување на beq)
beq $t1,$t2,offset
19
Елементи од податочната патека
beq $t1,$t2,offset
Ако t1==t2 скокни на PC←PC +4+ 4*offset
• За извршување beq на потребни се две
аритметички операции
– Споредување на $t1 со $t2
• Излезот Нула на АЛУ кажува дали $t1 == $t2
– Пресметување на адресата на скокот (branch target address)
1. Се пресметува PC+4 (со собирачот на слајд 13)
2. Проширувачот на знак го прави offset 32-битен број
– offset е број на инструкции кои треба да се прескокнат
3. Поместувачот го поместува 32-битниот offset на лево за 2 бита
– Со ова се добива број на бајти (адреси) кои треба да се прескокнат
4. Собирачот ги собира поместениот 32-битен offset со PC+4
20
Креирање единствена податочна патека
21
Креирање единствена податочна
патека
• Деловите доаѓаат од сликите на претходните слајдовите.
• Оваа податочна патека може да ги изврши основните
инструкции во еден такт циклус
– Ако некој елемент е потребен двапати за една инструкција во
еден такт – истиот мора да се дуплира (пр: инструкциска и
податочна меморија, две порти за читање од регистерската
датотека)
– Ако некој елемент се користи од различни инструкции во различни
тактови – мултиплексер и контролен сигнал до мултиплексерот го
координираат доведувањето на различните податоци до
елементот
• Дополнителен мултиплексер е потребен за интегрирање
на разгранувањата.
• Поддршката за j (jump) ќе биде додадена подоцна.
22
ALU контролна единица
funct[5:0]
АЛУОп
23
ALU контролна единица
• Рековме: АЛУ се управува со 4-битен контролен
сигнал
• АЛУ контролната единица го произведува тој 4-
битен контролен сигнал
• АЛУ контролната единица добива на влез:
– 2-битен АЛУОп сигнал
– Последните 6 бита од инструкциите (funct)
• ALUOp сигналот го произведува друга контролна
единица, врз база на првите 6 бита од
инструкциите (OPCODE)
• АЛУ контролната единица може да се дизајнира
со логички порти (како на вежби)
24
Едноставна шема на
имплементација
• Контола на МИПС АЛУОп
25
Главна контролна единица
Инструкција[20:16]
Инструкција[15:11]
Инструкција[15:0]
Инструкција[5:0]
27
Главна контролна единица
• Податочната патека се состои од:
– 4 елементи кои влијаат врз извршувањето инструкциите
• PC, ALU, податочна меморија, регистерска датотека
– 4 мултиплексери со кои се селектира кои податоци да влегуваат во 4-те
елементи
• Главната контролна единица ја контролира работата на 4-те елементи
и кои податоци да влегуваат во нив со контролни сигнали.
• Потребни се 8 контролни сигнали:
– 7 1-битни контролни сигнали (податочната меморија се контролира со два сигнала)
– 1 2-битен контролен сигнал (АЛУОп)
• Го користи opcode полето на инструкциите како влезен параметар
opcode
28
Дизајнирање на главната
контролна единица
29
Дизајнирање на главната
контролна единица
Инструкција[20:16]
Инструкција[15:11]
Инструкција[15:0]
30
Дизајнирање на главната
контролна единица
• Влезот на контролната единица е 6-битно opcode поле на
инструкцијата.
• Излезите од контролната единица се состојат од
– три 1-битни сигнали што се користат за контролирање на
мултиплексерите: Регистарско одредиште, АЛУ влез, и Меморија
кон регистар
– три 1-битни сигнали за контролирање читаат и запишуваат во
регистарската датотека и податочната меморија:Регистарско
запишување, Мемориско читање, и Мемориско запишување
– 1-битен сигнал кој се користи при одредувањето дали да се
направи разгранување: Разгранување
– 2-битен контролен сигнал за АЛУ: АЛУОп
• PC влез е изведен сигнал, наместо да доаѓа директно од
контролната единица
31
Операции над податочните
патеки
• Поставувањето на контролните линии
целосно е одредено со полињата за
операциски код на инструкцијата
Првата колона на табелата одговара на инструкциите од Р-формат (add,sub,AND,OR,и slt). За сите овие
инструкции, полињата за изворен регистар се rs и rt, полето за одредишен регистар е rd; Ова дефинира
како се поставуваат сигналите АЛУ влез и Регистарско одредиште. Понатаму, инструкција од Р-тип
запишува регистар (Регистарско запишување=1), но ниту чита ниту запишува податочна меморија. Кога
контролниот сигнал за разгранување е 0, PC безусловно е заменет со PC+4; во спротивно, PC се
заменува со целта на разгранувањето, ако е поставен и Нула излезот на АЛУ. Полето АЛУОп за Р-тип на
инструкција е поставено на 10 за да означи дека АЛУ контролата
треба да биде генерирана од полето funct. Втората и третата колона од оваа тебела ги даваат
поставувањата на контролниот сигнал за
lw и sw. Полињата АЛУ влез и АЛУОп се поставени при пресметување на адресата. Мемориско читање
и Мемориско запишување се
поставени при пристап до меморијата. На крајот, Регистарско одредиште и Регистарско запишување се
поставуваат при полнење за да
предизвикаат резултатот да биде зачуван во регистарот rt. Инструкцијата за разгранување е слична на
операција од Р-формат, бидејќи
ги праќа регистрите rs и rt во АЛУ. Полето АЛУОп за разгранување е поставено при одземање (АЛУ
контрола = 01), што се користи
при тестирање на еднаквоста. Забележувате дека полето Меморија кон регистар е ирелевантно кога
сигналот Регистарско запишување
е 0; бидејќи не се запишува во регистар, вредноста на податоците на регистарската порта Податоци за
запишување не се користи. Затоа
влезот Меморија кон регистар во последните колони на табелата е заменет со X, за да означиме дека
тој влез не ни е потребен. Произволни
влезови може да се доделат на Регистарско одредиште кога Регистарско запишување е 0. Овој тип
мора на произволни вредности да
биде додаден од дизајнерот, бидејќи зависи од познавањето на работата на податочните патеки.њето
на контролните линии целосно е одредено со полињата за операциски код на инструкцијата
32
Дизајнирање на главната
контролна единица
Трите инструкциски класи со два
инструкциски формати:
33
Дизајн на главната контролна единица
34
Извршување на add инструкција
add $t1,$t2,$t3
35
Извршување на add инструкција
add $t1,$t2,$t3
36
Извршување на add инструкција
37
Материјал за учење
49