Posts

Ubrizgavanje stanja — Kako softverska matrica postaje silicijumski mikrokod

Image
Uvod i teorija Da bi se zaista razumeo mikrosekvencer i šta zapravo znači "ubrizgavanje ponašanja" u sistem (odnosno ubrizgavanje stanja), moramo da zaronimo duboko u hardver procesora i vidimo kako je on organizovan u svom najskrivenijem kutku. Zamislite procesor kao simfonijski orkestar. Ako truba, violina i bubanj krenu da sviraju istovremeno bez ikakvog reda, nastaje potpuni haos. U svetu silicijuma taj haos se zove kolizija podataka. Orkestracija deljene magistrale Pogledajmo blok dijagram osnovnih delova arhitekture našeg CPU-a. Sačinjavaju ga programski brojač (Program Counter), instrukcijski registar (Instruction Register), dekoder (Decoder), ALU sa svojim privremenim registrom, ROM, RAM, upravljačka jedinica (mikrosekvencer) i kristalni oscilator od 12MHz . Blok dijagram deljene magistrale. Magistrala (BUS) između svih ovih jedinica je deljena. To znači da se u svakom trenutku mora striktno voditi računa o tome koja jedinica postavlja podatak na nju. Ako dve jedinice...

Anatomija takta — Kako mikrosekvener upravlja vremenom

Image
Uvod i teorija Nastavljam dalje sa arhitekturom procesora 8051, a ovog puta fokus je na anatomiji takta i tome kako CPU izvršava instrukcije skladištene u ROM memoriji. Ovo je koncept koji meni lično dugo nije bio potpuno jasan, ali predstavlja kritično znanje koje možete direktno primeniti u različitim oblastima – od mobilne robotike i embedded sistema, pa sve do duboke optimizacije performansi softvera. U svojim ranijim radovima dosta sam se bavio deep-level optimizacijom za Microsoft SQL Server, gde se kroz korišćenje specifičnih CPU ekstenzija i podešavanje koda performanse podižu na maksimum, a razumevanje procesorskog takta je koren te priče. Kao i u prethodnim tekstovima iz ovog serijala, moram da napomenem da je AI izuzetan asistent za diskusiju, učenje i razjašnjavanje kompleksnih hardverskih koncepata na koje ne možete lako naići u standardnoj literaturi. Ovom prilikom, spuštamo se duboko pod haubu samog CPU jezgra da vidimo kako se instrukcija zapravo izvršava. Proceso...

Matematika brzine: Zašto registri pobeđuju varijable u memoriji na Intel 8051

Uvod i teorija U prve dve epizode rešili smo stambenu krizu u RAM-u i prošli kroz anatomiju PSW registra. Međutim, prava magija optimizacije i razlog zašto smo toliko pažnje posvetili bankama registara leži u brzini izvršavanja instrukcija . Na 8-bitnim sistemima, lokacija na kojoj čuvate podatke tokom proračuna direktno diktira koliko će taktova kvarcnog oscilatora procesor potrošiti. Fizičko pravilo arhitekture Intel 8051 je prosto: rad direktno unutar registara je duplo brži od rada sa varijablama u memoriji. Jedan mašinski ciklus (Machine Cycle) na bazičnom 8051 procesoru traje tačno 12 taktova (oscilacija) kvarcnog oscilatora . Kada procesor izvršava operaciju nad registrom (npr. R0 ili Akumulator A ), ALU (aritmetičko-logička jedinica) ima direktan hardverski pristup podacima. Instrukcija zauzima samo 1 bajt u ROM-u i završava se u roku od 1 mašinskog ciklusa (12 oscilacija) . Sa druge strane, kada podatke držite u varijablama unutar opšteg RAM-a, procesor mora da prođe kroz slo...