IU, czyli jednostka sterująca (ang. Instruction Unit, czasem nazywana też Control Unit), to kluczowy element architektury każdego mikroprocesora. To właśnie ona odpowiada za pobieranie instrukcji z pamięci operacyjnej, dekodowanie ich oraz generowanie odpowiednich sygnałów sterujących dla pozostałych części procesora. Moim zdaniem to coś w rodzaju "dyrygenta orkiestry" – reszta jednostek wykonuje konkretne operacje, ale bez IU nie byłoby wiadomo, co i kiedy mają robić. W praktyce bez dobrze zaprojektowanej jednostki sterującej nawet najbardziej zaawansowane ALU czy FPU nie wykorzystałyby swojego potencjału, bo nie wiedziałyby, kiedy mają się uruchomić. Z mojego doświadczenia wynika, że IU to często niedoceniana część CPU, a przecież to ona odpowiada za obsługę cyklu rozkazowego (fetch-decode-execute). W nowoczesnych procesorach stosuje się rozbudowane mechanizmy IU, często z pipeline'm czy logiką predykcji rozgałęzień, żeby zwiększyć wydajność pracy całego układu. Według uznanych standardów projektowania układów cyfrowych, rozdział funkcji pomiędzy IU a wyspecjalizowane jednostki wykonawcze zapewnia elastyczność i łatwiejsze skalowanie mikroarchitektury. W zastosowaniach praktycznych – na przykład w systemach wbudowanych czy komputerach PC – optymalizacja działania IU bezpośrednio przekłada się na szybsze wykonywanie programów. Dobrze rozumieć rolę IU, bo to podstawa przy analizowaniu działania dowolnego procesora, od najprostszych mikrokontrolerów aż po zaawansowane CPU dla serwerów.
Na pierwszy rzut oka wybór ALU wydaje się logiczny, bo to bardzo znany element mikroprocesora i kojarzy się z wykonywaniem operacji. Jednak ALU – Arithmetic Logic Unit – odpowiada głównie za realizowanie operacji arytmetycznych i logicznych, takich jak dodawanie, odejmowanie czy porównania bitowe. To taki "kalkulator" mikroprocesora, ale nie zarządza pobieraniem rozkazów ani nie generuje sygnałów sterujących dla innych jednostek. FPU, czyli Floating Point Unit, to wyspecjalizowana jednostka do operacji na liczbach zmiennoprzecinkowych. Bez niej bardziej zaawansowane obliczenia matematyczne wykonywałyby się bardzo wolno, jednak FPU w ogóle nie zajmuje się cyklem rozkazowym czy sterowaniem procesorem. Z kolei EU (Execution Unit) to trochę ogólne pojęcie – czasem odnosi się do jednostek wykonawczych, które faktycznie realizują instrukcje, ale nie one decydują o tym, którą instrukcję pobrać i kiedy to nastąpi. Najczęstszym błędem przy tego typu pytaniach jest utożsamianie jednostki wykonawczej z jednostką sterującą, a to dwa zupełnie różne byty! W polskich materiałach edukacyjnych często spotyka się uproszczenie, że "procesor wykonuje rozkazy", przez co niektórzy myślą, że to właśnie ALU, FPU czy EU są "mózgiem" całej operacji. A to IU, jednostka sterująca, jest tym centrum decyzyjnym – to ona pobiera rozkazy z pamięci, dekoduje je i wydaje polecenia pozostałym układom. Moim zdaniem dobrze jest raz a porządnie rozróżnić te funkcje, bo potem – przy projektowaniu prostych układów w FPGA albo analizie wydajności procesora – łatwo się pogubić. W praktyce, gdybyśmy zabrali z CPU IU, procesor przestałby w ogóle działać, bo żaden inny układ nie przejąłby jej obowiązków sterowania cyklem rozkazowym. To taka trochę niewidzialna ręka całego systemu, o której niestety często się zapomina, skupiając uwagę na bardziej "medialnych" jednostkach jak ALU czy FPU.