Želite li izraditi vlastiti procesor i pritom naučiti kako oni rade? Povedite se ovim primjerom
Trilogiju uradi sam projekata iz radionice zagrebačkog entuzijasta za elektroniku zaključit ćemo pričom o izradi procesora, doduše 4-bitnog ali funkcionalnog, koji možete i sami pokušati replicirati
Prošloga ste mjeseca na našim stranicama mogli pročitati dvije zanimljive priče o samogradnji retro računalnih sklopova. Autor tih projekata i naš sugovornik u tim je slučajevima bio Daniel Bele, softverski inženjer, predavač na Visokom učilištu Algebra, k tome entuzijast u elektronici, književnosti, i skateboardingu. Vidjeli smo da su vas njegove avanture u samogradnji zainteresirale, pa smo dogovorili još jedan intervju, kako bismo zaokružili trilogiju… Treći nastavak bavi se izradom vlastitog – procesora.
Daniele, o kakvom je projektu riječ ovog puta?
CP4U je projekt 4-bitnog procesora koji se idejno i vremenski smjestio između "Pong" realizacije, potpuno hardverske prirode, te kompjutora izgrađenog oko Z80 procesora koja ima i softverski aspekt. Prateći paradigmu korištenja komponenta tek nakon što su u potpunosti realizirane diskretnim komponentama, Z80 procesor mogao sam iskoristiti jedino nakon što sam izgradio vlastiti procesor.
Zapravo, dugo me proganjala misao kako procesor radi, te sam bio velike sreće otkriti knjigu J. Clark Scotta "But How Do It Know?", koja na fascinantno jednostavan način odgovara na potonje pitanje. Kada sam pročitao knjigu, shvatio sam snagu jednostavnosti pristupa i usudio se pomisliti da sam shvatio rad procesora. Međutim, da bih to sebi i dokazao, morao sam ga izgraditi, doživjeti, dodirnuti. Drugo otkrivenje bili su mi video materijali Bena Eatera, koji mi je razriješio brojne dileme pružajući konkretna rješenja problema sa kojima sam bio suočen prilikom izgradnje.
Tada sam napokon bio spreman implementirati procesor predstavljen u Scottovoj knjizi. Dakle, CP4U ni u kom slučaju nije moj autorski projekt, već tek objedinjenje prethodno spomenutih pristupa Scotta i Eatera. Ono što ipak jest moje, to je paradigma prilikom izgradnje.
Koji je bio glavni motiv za ovu avanturu?
U programerskoj karijeri našao sam se u jednoj vrlo složenoj situaciji jer sam programirati naučio stihijski ili bolje rečeno uličarski (smijeh), te sam u okruženju inženjera počeo gubiti tlo pod nogama već nakon par godina profesionalnog bavljenja tim poslom. Kada sam se bratu Mihaelu obratio sa problemom neshvaćanja apstrakcija viših razina, kao i nemogućnost praćenja tehnologije koja se rapidno razvija i brzo mijenja paradigme, poput stavova političara zemlje u tranziciji, rekao mi je misao koja me zapanjila: "Kaj se bojiš, pa to su samo nule i jedinice!?!".
Mjesto da me ohrabrila, ta misao pokazala mi je gdje se, na najdubljoj razini, nalazi problem – pa ja uopće ne znam kako radi procesor, a kamoli kompjuter! Sa problemom sam se uhvatio u koštac na dvije razine.
Obzirom da sam već godinama programirao u Javi, krenuo sam polagati certifikate, i to, zamisli, nakon što sam u WC-u ureda pročitao reklamu za Sun (kasnije Oracle) certifikacijom. Tako sam poludio za time, da sam položio 5 certifikata u godini dana. Ali, još važniji smjer bio je onaj da napokon osnažim svoje samopouzdanje bavljenja ovim poslom – da izgradim procesor.
Koliko je vremena onda bilo potrebno za realizaciju?
Od momenta kada sam shvatio točno što želim napraviti, prošlo je svega par mjeseci. Međutim, važno je napomenuti da mi je trebalo duplo toliko vremena da uobličim svoju zamisao u konkretan projekt. Kako sam lajbek u elektronici, izgradnja Ponga pomogla mi je da se suočim i sa najsloženijim konceptima, ali morao sam mnogo učiti i griješiti putem. Cijeli ovaj proces detaljno je dokumentiran na mom webu, zajedno sa svim shemama i objašnjenjima u kojima sam težio jednostavnosti koja je, barem prema riječima Leonarda da Vincija, krajnja sofisticiranost.
Vjerujemo da je prilikom realizacije bilo mnogo kamena spoticanja?
Kako te život svako malo počasti nekom ironijom, tako sam i ja, zapravo iz neuspjeha izgradnje 8-bitnog procesora, ipak naučio sve što me proganjalo. Sve je stvar prihvaćanja vlastite nesposobnosti, jer su greške najveći učitelji. Nakon izgradnje, svaka od komponenata 8-bitnog procesora radila je besprijekorno, međutim, kada bih ih povezao, kulise su se počele urušavati. Shvatio sam, napokon, da je riječ u mojoj škrtosti prilikom kupovanja eksperimentalnih pločica koje su uzrokovale nenadoknadive gubitke napona. Dakle, 8-bitni procesor bio mi je nadohvat ruke, toliko blizu da sam ga mogao gotovo dodirnuti, ali nije radio!
Toliko sam bio ufuran da sam ekspresno potrošio preko 400 eura samo da mi sa Amazona već sutradan dođu nove, mnogo skuplje eksperimentalne pločice. Kada sam prebacio procesor na nove pločice, stanje se znatno popravilo, ali procesor je i dalje patio od gubitaka napona i bio totalno nestabilan pa sam malne završio u utjehama praznovjerja, padajući u sve dublju uobrazilju. Tada mi je napokon sinulo – prerezat ću ga na pola! Umjesto 8-bitnog, izgradit ću 4-bitni procesor koji će imati 16 instrukcija, 4 bitnu sabirnicu i 16 bajtni RAM, sve na lapo. Uistinu, bilo je pravo zadovoljstvo poraziti svoju taštinu i pomiriti se sa vlastitom nesposobnošću. Ali, na koncu, rad 8-bitnog procesora kojeg sam namjeravao izgraditi, ni u čemu se konceptualno nije razlikovao od CP4U procesora koji je 4-bitan. Meni zapravo, beskrajno-bitan (smijeh).
Bi li netko drugi, na temelju tvojeg pristupa, isto mogao sam izgraditi procesor?
Naravno, to je i glavni smisao svih projekata koje sam gradio. Znaš, par mojih studenata je pokazalo živi interes za time i to mi je veliki kompliment. Cijelo vrijeme sam se vodio mišlju da želim "u bunar znanja" vratiti ono što sam dobio. Toliko sam zahvalan izvorima iz kojih sam cijedio sve što sam mogao probaviti, da sam osmislio vlastiti pristup koji je, nadam se, primjeren totalnim laicima poput mene i da samo na temelju interesa, truda i prihvaćanja teške šljake mogu izgraditi sve. Na koncu, ja sam sebi time dokazao svoje inženjerstvo.
I poruka za kraj ovog edukativnog uradi sam serijala?
U suštini, ja sam prilično plitak i bedast, pa ću citirati pametnije: "Mene, ako se sete na dan bezbednosti, sete se. Ako se ne sete, nikom ništa. To je bila moja dužnost, da radim. Najveće zadovoljstvo bit će mi misao da sam jednog čoveka izveo na pravi put!" (Balkanski Špijun)