viitorul hardware-ului liber
sâmbătă, 2 mart. 2013, 12:32
„Free Software”, sau „software libre”, e un concept cu care cititorul de cărămizi este, bănuiesc, obișnuit, dat fiind faptul că am tot tratat în trecut subiecte legate de dânsul. Să reluăm însă, în primul rând pentru rigurozitate, definiția dată de organul reprezentativ al softului liber, Free Software Foundation:
Free software is software that gives you the user the freedom to share, study and modify it. We call this free software because the user is free.
Ideea softului liber este deci una care ține de libertate și nicidecum de bani, iar în acest sens sintagma de „software libre” e ușor improprie: programele nu pot fi în sine constrânse în sensul libertății, libertatea aparținând sau nu, după caz, utilizatorilor de calculatoare numerice programabile, deci implicit de software, care nu-i nimic altceva decât informație. Iar libertatea de a „da mai departe” informație este esențială pentru supraviețuirea civilizației, după cum am menționat și în „arhiva de informație a rasei umane™”.
Firește, hardware-ul se încadrează și el în aceeași categorie, acesta având fundamente identice cu cele ale software-ului. Reprezentarea abstractă a unui calculator poate fi un program, un set de ecuații sau un circuit electronic, ideea din spate fiind absolut aceeași. Diferențele țin mai degrabă de aspecte practice cum ar fi tehnologia de fabricație, însă hardware-ul evoluează și el mai rapid sau mai lent, fapt care poate fi demonstrat de exemplu de istoriile procesoarelor Intel și ARM. În particular, arhitectura ARM a dus la o explozie de platforme hardware care mai de care mai interesante, care integrează CPU-ul clasic cu procesoare grafice, procesoare de semnal și așa mai departe. (mai mult…)
breviar istoric arm
duminică, 8 iul. 2012, 16:26
În cadrul unui articol trecut spre sfârșit povesteam despre cum ARM pot fi deja considerați un adversar serios al Intel și un candidat pe piața calculatoarelor de performanță medie [i]. Din acest motiv și în virtutea faptului că tot m-am apucat să întorc pe toate părțile diverse microarhitecturi, n-ar fi o idee rea să pun pe foaie un scurt istoric ARM. Problema stă în faptul că nu sunt foarte familiar cu istoria companiei – deși de vreo douăsprezece luni încoace programez mai des pe ARM decât pe x86 -, motiv pentru care vă invit să ne documentăm împreună.
În primul rând trebuie menționat că ARM și Intel vând două lucruri fundamental diferite. În timp ce Intel este o companie producătoare de hardware, la fel ca IBM, AMD, Texas Instruments sau Samsung Semiconductor, ARM produc doar proprietate intelectuală, cu toate implicațiile acestui fapt. Asta înseamnă de exemplu că în timp ce Intel fac și cercetări legate de micșorarea tranzistoarelor (încă de la începuturi), ARM se axează pe eficiența design-ului, lăsând aspectele pur tehnologice la latitudinea producătorilor.
Istoria ARM își are rădăcinile în cadrul unei companii pe nume Acorn Computers, al cărei procesor Acorn RISC Machine (ARM1) a fost lansat cândva în prima jumătate a anilor 1980. Procesoarele ARM au fost gândite astfel încât să aibă un design „hardwired”, adică fără microinstrucțiuni, și în plus cei care au conceput arhitectura au mers din start pe ideea că o să aibă lungimea cuvântului de 32 de biți. Cu toate astea primul procesor care a ieșit efectiv pe piață a fost ARM2, care era format din doar în jur de treizeci de mii de tranzistoare. Și se pare că zisul procesor avea performanțe comparabile cu ale unui 80286 la un consum mai mic de putere. (mai mult…)
- Apple au anunțat deja că vor vinde Macbook-uri bazate pe ARM. [↩]
breviar istoric intel (ii)
luni, 30 apr. 2012, 18:28
În cadrul articolului anterior rămăsesem pe undeva la Pentium, care spuneam că are pipeline superscalar, cache-uri de date și de instrucțiuni și așa mai departe. Să facem o pauză și să explicăm câteva din conceptele astea, pentru că sunt foarte importante pentru ceea ce a urmat după.
Pipeline-ul, adică pe românește banda de asamblare, e pe scurt transpunerea în calculatoare a ideii lui Henry Ford: luăm o problemă, o spargem în probleme seriale mai mici și punem entități separate să lucreze la fiecare (sub)problemă. Astfel soluția subproblemei 0 e transmisă către entitatea care se ocupă de subproblema 1, ieșirea lui 1 către 2 și tot așa. Avantajul acestei soluții e că dacă procesorul are două instrucțiuni consecutive de executat, pipeline-ul va putea executa – în cazul ideal – porțiuni din ele (de exemplu preluarea unei variabile din memorie și o adunare) în paralel.
Abordarea asta aduce cu ea și multe complicații în care nu vom intra aici, însă e interesant aspectul că dacă două instrucțiuni (consecutive sau nu) nu depind între ele, acestea pot ajunge să fie executate într-o ordine aleatoare. Drept urmare dacă există două benzi de asamblare distincte, procesorul va putea planifica instrucțiuni după o politică prestabilită. Ca fapt divers execuția out-of-order n-a fost inventată de Intel, ci de o (fostă) companie care avea în componență și un român, dar în fine, astea-s deja detalii. (mai mult…)