1 of 37

Микропрограмирање и директно ожичено управљање процесором

2 of 37

Hardwired Control Unit

Microprogrammed Control Unit

Hardwired control unit generates the control signals needed for the processor using logic circuits

Micrprogrammed control unit generates the control signals with the help of micro instructions stored in control memory

Hardwired control unit is faster when compared to microprogrammed control unit as the required control signals are generated with the help of hardwares

This is slower than the other as micro instructions are used for generating signals here

Difficult to modify as the control signals that need to be generated are hard wired

Easy to modify as the modification need to be done only at the instruction level

More costlier as everything has to be realized in terms of logic gates

Less costlier than hardwired control as only micro instructions are used for generating control signals

It cannot handle complex instructions as the circuit design for it becomes complex

It can handle complex instructions

Only limited number of instructions are used due to the hardware implementation

Control signals for many instructions can be generated

Used in computer that makes use of Reduced Instruction Set Computers(RISC)

Used in computer that makes use of Complex Instruction Set Computers(CISC)

3 of 37

4 of 37

5 of 37

6 of 37

7 of 37

Микрооперације

  • Програм се извршава
  • Fetch/execute циклус
  • Циклус се састоји од корака
    • pipelining
  • То су: micro-operations - микрооперације
  • То су врло мали кораци
  • Елементарне операције у ЦПУ

8 of 37

Елементи извршења програма

9 of 37

Fetch - 4 регистра

  • Memory Address Register (MAR)
    • Повезан на адресну сабирницу
    • Специфицира адресу за read или write
  • Memory Buffer Register (MBR)
    • Повезан на сабирницу за податке
    • Чува податке за write последњи прочитан податак
  • Program Counter (PC)
    • Адреса следеће инструкције
  • Instruction Register (IR)
    • Последња дохваћена инструкција

10 of 37

Fetch фаза

  • Адреса следеће инструкције у PC
  • Адреса (MAR) иде на address bus
  • Control unit издаје READ
  • Резултат (податак из меморије) сада ке на адр. сабирници
  • Податак са сабирнице за податке копиран у MBR
  • PC инкрементирана за 1 (паралелно са дохватом података)
  • Податак (инструкција) из MBR у IR
  • MBR слободан!

11 of 37

Fetch секвенца (симболички)

  • t1: MAR <- (PC)
  • t2: MBR <- (memory)
  • PC <- (PC) +1
  • t3: IR <- (MBR)
  • (tx = time unit/clock cycle)
  • or
  • t1: MAR <- (PC)
  • t2: MBR <- (memory)
  • t3: PC <- (PC) +1
  • IR <- (MBR)

12 of 37

Правила за Clock Cycle Grouping

  • Мора редом!
    • MAR <- (PC) пре MBR <- (memory)
  • Избећи конфликте!
    • НЕ read & write истог регистра у истом тренутку!
    • MBR <- (memory) & IR <- (MBR) НЕ у истом циклусу
  • Исто: PC <- (PC) +1 тражи сабирање
    • Користи се ALU
    • Mожда тражи нове микрооперације

13 of 37

Индирекција

  • MAR <- (IRaddress) - адресно поље IR
  • MBR <- (memory)
  • IRaddress <- (MBRaddress)

  • MBR садржи адресу
  • IR се понаша као да је директно адресирање у питању

14 of 37

Interrupt циклус

  • t1: MBR <-(PC)
  • t2: MAR <- save-address
  • PC <- routine-address
  • t3: memory <- (MBR)
    • Поједностављено!

15 of 37

Execute циклус (ADD)

  • Различито за сваку инструкцију
  • нпр. ADD R1,X – додаје садржај локације X на Register 1 , резултат иде у R1
  • t1: MAR <- (IRaddress)
  • t2: MBR <- (memory)
  • t3: R1 <- R1 + (MBR)

16 of 37

Execute циклус (ISZ)

  • ISZ X - increment and skip if zero
    • t1: MAR <- (IRaddress)
    • t2: MBR <- (memory)
    • t3: MBR <- (MBR) + 1
    • t4: memory <- (MBR)
    • if (MBR) == 0 then PC <- (PC) + 1

17 of 37

Execute циклус (BSA)

  • BSA X - Branch and save address
    • Адреса инструкције иза BSA иде у X
    • Наставак извршења после X+1
    • t1: MAR <- (IRaddress)
    • MBR <- (PC)
    • t2: PC <- (IRaddress)
    • memory <- (MBR)
    • t3: PC <- (PC) + 1

18 of 37

Инструкцијски циклус

  • Свака фаза декомпонована у низ елементарних микрооперација
  • Нпр. fetch, indirect, и interrupt циклуси
  • Execute циклус
    • Једна секвенца микрооперација за сваки опкод
  • Имамо нов 2-bit регистар
    • Instruction cycle code (ICC) говори:
      • 00: Fetch
      • 01: Indirect
      • 10: Execute
      • 11: Interrupt

19 of 37

Инструкцијски циклус

20 of 37

Функционални захтеви

  • Дефинисати основне елементе процесора
  • Микрооперације
  • Особине управљачке јединице

21 of 37

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

  • ALU
  • регистри
  • Интерна сабирница
  • Екстерна сабирница
  • УЈ

22 of 37

Микрооперације

  • Међурегистарски трансфер података
  • Трансфер регистар-напоље
  • Трансфер напоље-регистар
  • Обављање аритметичкил или логичких операција

23 of 37

УЈ

  • Секвенцирање
    • Извршење серије микрооперација
  • Извршење
    • Извршење СВАКЕ микрооп.
  • Управљачки сигнали!

24 of 37

Управљачки сигнали

  • Clock
    • Једна микроинструкција (или паралелне!) по периоди
  • Instruction register
    • Op-code за тренутну инструкцију
    • Одређује које се микроинструкције извршавају
  • Flags
    • Стање процесора
    • Зависе од претходне операције
  • Из управљ. сабирнице
    • Interrupts
    • Acknowledgements

25 of 37

Модел УЈ

26 of 37

Излаз управљачких сигнала

  • У CPU
    • Узрокује путовање података
    • Активира функције
  • Управљачком сабирницом
    • У меморију
    • У I/O уређаје

27 of 37

Пример

  • MAR <- (PC)
    • Control unit активира отварање пута PC -MAR
  • MBR <- (memory)
    • Отвара пут између MAR и адресне сабир.
    • Memory read сигнал
    • Отвара пут од data bus до MBR

28 of 37

Путеви података и управљачки сигнали

29 of 37

Интерно

  • Једна сабирница физички
  • Контролна електроника допушта/забрањује трансфер
  • Посебни сигнали активирају трансфер на сабирницу
  • Потребни су баферски регистри!

30 of 37

Интерна�сабирница

31 of 37

Intel 8085 CPU Block Diagram

32 of 37

Intel 8085 Pin �Configuration

33 of 37

Intel 8085 OUT Instruction�Timing Diagram

34 of 37

Директна ожичена реализација(1)

  • Улази у УЈ:
  • Flags и control bus
    • Сваки бит има значење
  • Instruction register
    • Op-code генеришу различите управљачке сигнале за сваку инструкцију
    • Сваким опкод има своју логику
    • Декодер узима улаз и даје увек један излаз
    • n улаза даје 2n излаза

35 of 37

Директна ожичена реализација(2)

  • Clock
    • Правоугаони импулси
    • Мере трајање микроперација
    • Али морају да дозволе и трајање пропагације сигнала
    • Контролни сигнали се издају у времену које зависи од фазе циклуса

36 of 37

УЈ са декодираним улазима

37 of 37

Проблеми!

  • Комплескно!
  • Нефлексибилно
  • Тешко за тестирање