Шта је контролна јединица: компоненте и њен дизајн

Испробајте Наш Инструмент За Елиминисање Проблема





Контролна јединица је главна компонента централне процесорске јединице (ЦПУ) у рачунарима која може да усмерава операције током извршавања програма помоћу процесор /рачунар. Главна функција контролне јединице је преузимање и извршавање упутстава из меморије рачунара. Прима упутства за унос / информације од корисника и претвара их у управљачки сигнали , који се затим дају ЦПУ на даље извршавање. Укључен је као део Вон Неуманнове архитектуре коју је развио Јохн Неуманн. Он је одговоран за пружање временских сигнала и управља сигналима и усмерава извршење програма од стране ЦПУ-а. Укључен је као унутрашњи део ЦПУ-а у модерне рачунаре. Овај чланак описује комплетне информације о управљачкој јединици.

Шта је контролна јединица?

Компонента која прима улазни сигнал / информацију / упутство од корисника и претвара се у управљачке сигнале за извршавање у ЦПУ. Он контролише и усмерава главну меморију, аритметичку и логичку јединицу (АЛУ), улазне и излазне уређаје, а такође је одговоран за упутства која се шаљу ЦПУ рачунара. Дохваћа упутства из главно сећање процесора и шаље се регистру упутстава процесора који садржи садржај регистра.




Блок дијаграм управљачке јединице

Блок дијаграм управљачке јединице

Контролна јединица претвара улаз у управљачке сигнале, а затим се шаље процесору и усмерава извршавање програма. Операције које треба извршити управља процесор на рачунару. Углавном Централна процесна јединица (ЦПУ) и Јединица за графичку обраду (ГПУ) захтевају контролну јединицу као унутрашњи део. Блок шема управљачке јединице приказана је горе.



Компоненте управљачке јединице

Компоненте ове јединице су упутства регистре , контролни сигнали унутар ЦПУ-а, контролни сигнали до / са магистрале, контролна магистрала, улазне заставице и сигнали сата.

Компоненте Хардвиред управљачке јединице су регистар инструкција (садржи оптички код и поље адресе), временска јединица, стање контроле генератор , матрица генерисања контролног сигнала и декодер инструкција.
Компоненте микро програмиране управљачке јединице су следећи генератор адреса, контролни регистар адреса, контролна меморија и регистар контролних података.

Функције

Тхе функције управљачке јединице укључи следеће.


  • Усмерава ток низа података између процесора и других уређаја.
  • Може да тумачи упутства и контролише проток података у процесору.
  • Генерише секвенцу управљачких сигнала из примљених инструкција или команди из регистра инструкција.
  • Одговорна је за контролу извршних јединица као што су АЛУ, ме успремници података и регистри у ЦПУ рачунара.
  • Има могућност преузимања, декодирања, руковања извршењем и чувања резултата.
  • Не може да обрађује и чува податке
  • Да би пренео податке, он комуницира са улазним и излазним уређајима и контролише све јединице рачунара.

Дизајн управљачке јединице

Дизајн овога се може извести помоћу два типови управљачке јединице који укључују следеће.

  • Заснован на жичној мрежи
  • Микропрограмирани (једнослојни и двостепени)

Ожичена управљачка јединица

Основни дизајн хардверске управљачке јединице приказан је горе. У овом типу, управљачки сигнали се генеришу посебним хардвером логичко коло без икаквих промена у структури кола. У том случају, генерисани сигнал се не може модификовати за извршавање у процесору.

Основни подаци оперативног кода (оперативни код инструкције шаље се декодеру инструкција ради декодирања. Упутство декодер је скуп декодера за декодирање различитих врста података у опкоду. То резултира излазним сигналима који садрже вредности активних сигнала који се дају као улаз у генератор матрице за генерисање управљачких сигнала за извршавање програма од стране процесора рачунара.

Контролна јединица заснована на жичној мрежи

Контролна јединица заснована на жичној мрежи

Генератор матрице пружа стања управљачке јединице и сигнале који излазе из процесора (сигнали прекида). Матрица је изграђена као програмабилни логички низ . Контролни сигнали које генерише матрични генератор дају се као улаз у следећу матрицу генератора и комбинују се са временским сигналима временске јединице која садржи правоугаоне обрасце.

За преузимање нове инструкције, управљачка јединица се претвара у почетну фазу за извршавање нове инструкције. Управљачка јединица остаје у почетној фази или првој фази све док временски сигнали, улазни сигнали и стања инструкције рачунара нису промењени. Промена стања управљачке јединице може се повећати ако дође до промене било ког од генерисаних сигнала.

Када дође до спољног сигнала или прекида, управљачка јединица прелази у следеће стање и врши обраду сигнала прекида. Заставе и стања се користе за одабир жељених стања за извођење циклуса извршавања инструкције.

У последњем стању, управљачка јединица дохваћа следећу инструкцију и шаље излаз бројачу програма, затим регистру адресе меморије, регистру међуспремника, а затим регистру инструкција за читање инструкције. Коначно, ако је последња инструкција (коју управљачка јединица преузима) крајња, она прелази у радно стање процесора и чека док корисник не усмери следећи програм.

Микро програмирана управљачка јединица

У овом типу, контролно складиште се користи за складиштење контролних сигнала који су кодирани током извршавања програма. Контролни сигнал се не генерише одмах и декодира јер микропрограм чува поље адресе у контролном складишту. Читав процес је на једном нивоу.

Микро-операције се извршавају за извршавање микро-инструкција у програму. Блок шема микро програмиране управљачке јединице је приказана горе. Из дијаграма се адреса микро-инструкције добија из регистра адресе контролне меморије. Све информације о контролној јединици трајно се чувају у контролној меморији под називом РОМ.

Микропрограмирана управљачка јединица

Микропрограмирана управљачка јединица

Микро-инструкције из контролне меморије држи контролни регистар. Будући да је микро-инструкција у облику контролне речи (садржи бинарне контролне вредности) којој је потребна једна или више микро-операција за обраду података.

Током извршавања микро-инструкција, следећи генератор адреса израчунао је следећу адресу микро-инструкције, а затим послао у регистар контролне адресе да прочита следећу микро-инструкцију.
Секвенцу микро-операција микро-програма изводи следећи генератор адреса и делује као микропрограм-секвенцер за добијање адресе секвенце, тј. Очитавање из контролне меморије.

Верилог код за контролну јединицу

Верилог код за контролну јединицу је приказан испод.

`укључују„ прј_дефинитион.в “

модул ЦОНТРОЛ_УНИТ (МЕМ_ДАТА, РФ_ДАТА_В, РФ_АДДР_В, РФ_АДДР_Р1, РФ_АДДР_Р2, РФ_РЕАД, РФ_ВРИТЕ, АЛУ_ОП1, АЛУ_ОП2, АЛУ_ОПРН, МЕМ_АДДР, МЕМ_РЕАД, МЕМ_ВРИТЕ, РФ_ДАТАДР_РЕСТ

// Излазни сигнали
// Излази за датотеку регистра

излаз [`ДАТА_ИНДЕКС_ЛИМИТ: 0] РФ_ДАТА_В
излаз [`АДДРЕСС_ИНДЕКС_ЛИМИТ: 0] РФ_АДДР_В, РФ_АДДР_Р1, РФ_АДДР_Р2
излаз РФ_РЕАД, РФ_ВРИТЕ

// Излази за АЛУ
излаз [`ДАТА_ИНДЕКС_ЛИМИТ: 0] АЛУ_ОП1, АЛУ_ОП2
излаз [`АЛУ_ОПРН_ИНДЕКС_ЛИМИТ: 0] АЛУ_ОПРН

// Излази за меморију
излаз [`АДДРЕСС_ИНДЕКС_ЛИМИТ: 0] МЕМ_АДДР
излаз МЕМ_РЕАД, МЕМ_ВРИТЕ

// Улазни сигнали
улаз [`ДАТА_ИНДЕКС_ЛИМИТ: 0] РФ_ДАТА_Р1, РФ_ДАТА_Р2, АЛУ_РЕСУЛТ
улаз НУЛА, ЦЛК, РСТ

// Улазни сигнал
иноут [`ДАТА_ИНДЕКС_ЛИМИТ: 0] МЕМ_ДАТА

// Државне мреже
жица [2: 0] проц_стате

// садржи вредност бројача програма, чува тренутну инструкцију, регистар показивача стека

рег МЕМ_РЕАД, МЕМ_ВРИТЕ
рег МЕМ_АДДР
рег АЛУ_ОП1, АЛУ_ОП2
рег АЛУ_ОПРН
рег РФ_АДДР_В, РФ_АДДР_Р1, РФ_АДДР_Р2
рег РФ_ДАТА_В
рег [1: 0] стање, следеће_држава

ПРОЦ_СМ стате_мацхине (.СТАТЕ (проц_стате) ,. ЦЛК (ЦЛК) ,. РСТ (РСТ))

увек @ (поседге ЦЛК)
започети
ако (РСТ)
стање<= RST
иначе
стање<= next_state

крај

увек @ (држава)
започети

МЕМ_РЕАД = 1’б0 МЕМ_ВРИТЕ = 1’б0 МЕМ_АДДР = 1’б0
АЛУ_ОП1 = 1’б0 АЛУ_ОП2 = 1’б0 АЛУ_ОПРН = 1’б0
РФ_АДДР_Р1 = 1’б0 РФ_АДДР_Р2 = 1’б0 РФ_АДДР_В = 1’б0 РФ_ДАТА_В = 1’б0

случај (држава)

`ПРОЦ_ФЕТЦХ: започни
нект_стате = `ПРОЦ_ДЕЦОДЕ
МЕМ_РЕАД = 1’б1
РФ_АДДР_Р1 = 1’б0 РФ_АДДР_Р2 = 1’б0
РФ_АДДР_В = 1’б1
крај

`ПРОЦ_ДЕЦОДЕ: започни
нект_стате = `ПРОЦ_ЕКСЕ
МЕМ_АДДР = 1’б1
АЛУ_ОП1 = 1’б1 АЛУ_ОП2 = 1’б1 АЛУ_ОПРН = 1’б1
МЕМ_ВРИТЕ = 1’б1
РФ_АДДР_Р1 = 1’б1 РФ_АДДР_Р2 = 1’б1
крај

`ПРОЦ_ЕКСЕ: започни
нект_стате = `ПРОЦ_МЕМ
АЛУ_ОП1 = 1’б1 АЛУ_ОП2 = 1’б1 АЛУ_ОПРН = 1’б1
РФ_АДДР_Р1 = 1’б0
крај

`ПРОЦ_МЕМ: започни
нект_стате = `ПРОЦ_ВБ
МЕМ_РЕАД = 1’б1 МЕМ_ВРИТЕ = 1’б0
крај

`ПРОЦ_ВБ: започни
нект_стате = `ПРОЦ_ФЕТЦХ
МЕМ_РЕАД = 1’б1 МЕМ_ВРИТЕ = 1’б0
крај
завршно слово

крај
ендмодуле

модул ПРОЦ_СМ (СТАЊЕ, ЦЛК, РСТ)
// листа улаза
улаз ЦЛК, РСТ
// листа излаза
излаз [2: 0] СТАЊЕ

// листа уноса
улаз ЦЛК, РСТ
// излазна листа
излаз СТАТЕ

рег [2: 0] СТАЊЕ
рег [1: 0] држава
рег [1: 0] следеће стање

рег ПЦ_РЕГ, ИНСТ_РЕГ, СП_РЕФ

`дефинишите ПРОЦ_ФЕТЦХ 3’х0
`дефинишите ПРОЦ_ДЕЦОДЕ 3’х1
`дефинишите ПРОЦ_ЕКСЕ 3’х2
`дефинишите ПРОЦ_МЕМ 3’х3
`дефинишите ПРОЦ_ВБ 3’х4

// покретање државе
почетни
започети
стање = 2’бкк
нект_стате = `ПРОЦ_ФЕТЦХ
крај

// ресетовање руковања сигналом
увек @ (поседге РСТ)
започети
стање = `ПРОЦ_ФЕТЦХ
нект_стате = `ПРОЦ_ФЕТЦХ
крај
увек @ (поседге ЦЛК)
започети
стање = следеће_државе
крај
увек @ (држава)
започети
иф (стање === `ПРОЦ_ФЕТЦХ)
започети
нект_стате = `ПРОЦ_ДЕЦОДЕ

упутства за штампу (ИНСТ_РЕГ)
крај

иф (стање === `ПРОЦ_ДЕЦОДЕ)
започети
нект_стате = `ПРОЦ_ЕКСЕ

крај

иф (стање === `ПРОЦ_ЕКСЕ)
започети
нект_стате = `ПРОЦ_МЕМ

упутства за штампу (СП_РЕФ)
крај

иф (стање === `ПРОЦ_МЕМ)
започети
нект_стате = `ПРОЦ_ВБ

крај

иф (стање === `ПРОЦ_ВБ)
започети
нект_стате = `ПРОЦ_ФЕТЦХ

упутства за штампу (ПЦ_РЕГ)
крај
крај

задатак принт_инструцтион

улаз [`ДАТА_ИНДЕКС_ЛИМИТ: 0] инст

рег [5: 0] опцоде
рег [4: 0] рс
рег [4: 0] рт
рег. [4: 0] рд
рег [4: 0] схамт рег [5: 0] фунцт рег [15: 0] тренутна рег [25: 0] адреса

започети

// рашчланимо упутства
// Р-тип

{опцоде, рс, рт, рд, схамт, фунцт} = инст

// И-типе
{опцоде, рс, рт, непосредни} = инст
// Ј-тип
{опцоде, адреса} = инст
$ врите („@% 6днс -> [0Кс% 08х]“, $ време, инст)
случај (опцоде) // Р-Типе
6'х00: почетак
случај (функција)

6’х20: $ врите („додај р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х22: $ врите („суб р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х2ц: $ врите („мул р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х24: $ врите („и р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х25: $ врите („или р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х27: $ врите („нити р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х2а: $ врите („слт р [% 02д], р [% 02д], р [% 02д]“, рс, рт, рд)
6’х00: $ врите („слл р [% 02д],% 2д, р [% 02д]“, рс, схамт, рд)
6’х02: $ врите („срл р [% 02д], 0Кс% 02х, р [% 02д]“, рс, схамт, рд)
6’х08: $ врите („јр р [% 02д]“, рс)
подразумевано: $ врите (“”)
завршно слово
крај

// И-типе

6’х08: $ врите („адди р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х1д: $ врите („мули р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х0ц: $ врите („анди р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х0д: $ врите („ори р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х0ф: $ врите („луи р [% 02д], 0Кс% 04х“, рт, тренутно)
6’х0а: $ врите („слти р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х04: $ врите („бек р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х05: $ врите („бне р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х23: $ врите („лв р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)
6’х2б: $ врите („св р [% 02д], р [% 02д], 0Кс% 04х“, рс, рт, тренутно)

// Ј-Типе

6’х02: $ врите (“јмп 0Кс% 07х”, адреса)
6’х03: $ врите (“јал 0Кс% 07х”, адреса)
6’х1б: $ врите („пусх“)
6’х1ц: $ врите („поп“)
подразумевано: $ врите (“”)
завршно слово
$ врите (“ н”)
крај
крајњи задатак
крајњи модул

ФАК

1). Шта је рад контролне јединице?

Рад контролне јединице је усмеравање тока података или упутстава за извршење од стране процесора рачунара. Контролише, управља и координира главну меморију, АЛУ, регистре, улазне и излазне јединице. Дохваћа упутства и генерише контролне сигнале за извршење.

2). Шта је контролна меморија?

Контролна меморија је обично РАМ или РОМ за чување адресе и података контролног регистра.

3). Шта је Вилкес контролна јединица?

Секвенцијални и комбинациона кола хардверске управљачке јединице замењују се Вилкесовом управљачком јединицом. Користи јединицу за складиштење за чување секвенци упутстава микро-програма.

4). Шта је жичана управљачка јединица?

Ожичена управљачка јединица генерише управљачке сигнале променом из једног стања у друго у сваком такту импулса без икаквих физичких промена у колу. Генерирање управљачких сигнала зависи од регистра упутстава, декодера и сигнала прекида.

5). Шта је контролна меморија?

Подаци управљачке јединице или подаци привремено или трајно се чувају у контролној меморији.
Контролна меморија је две врсте. То су меморија са случајним приступом (РАМ) и меморија само за читање (РОМ).

Дакле, овде се ради о дефиницији, компонентама, дизајну, дијаграму, функцијама и типови управљачке јединице . Ево питања за вас: „Која је сврха регистра контролних адреса?“