Pìndulas: su protzessore

Su protzessore est su coro de s'architetura de cale si siat elaboradore e is caraterìsticas suas finint pro influentzare is issèberos de is àteros cumponentes e fintzas de is programmas chi dd'ant a impreare.
Su traballu de su protzessore est de pigare is istrutziones de unu programma e de ddas esecutare, fadende is càrculos rechertos.
Is primos amantiosos de informàtica si faghiant is protzessores (e su restu de s'elaboradore) pighende is transistor e àteros cumponentes eletrònicos e ponende·ddos in pari cun passièntzia. Mancari chi custu siat ancora oe possìbile, nde diat essire un'elaboradore cun capatzidade de càrculu limitada meda, cumparadu cun is protzessores de oe, chi sunt formados dae milliones de tzircùitos lògicos e sunt allogados in unu tzircùitu integradu isceti de mannesa de pagos tzentìmetros: su micro-protzessore.
Bos apa a chistionare de is caraterìsticas printzipales de is protzessores chi càmbiant dae un'architetura a s'àtera.
Registros
Is registros sunt memòrias internas a su protzessore, chi simìgiant a sa memòria a atzessu casuale, cun sa diferèntzia chi sunt meda prus lestras e nche nd'at pagas tzellas a disponimentu, cun indiritzos fàtziles de regordare, comente $0, $1, $2 etz o A, B, C, etz. Ddoe at tipos diferentes de registros, chi podent cambiare in sa mannesa e s'impreu. Is tipos prus comunos sunt:
- Registros de datos
Sunt impreados pro ammentare is datos pro operatziones aritmèticas o lògicas. Pro esempru, duos registros podent èssere impreados pro is fatores de una summa e un'àteru pro su resurtadu. Sende chi is registros a disponimentu sunt de sòlitu pagos, su càbidu issoro diat dèpere èssere copiadu in sa memòria primària cando non serbit prus. - Registros de indiritzu
Su protzessore pigat is istrutziones e is datos pro ddas esecutare dae sa memòria primària e nche torrat a pònnere is resurtados. Comente amus bidu, onni tzella de memòria tenet un'indiritzu. Pro pòdere iscrìere e lèghere sa memòria, su protzessore depet tènnere is indiritzos in calicunu logu. Is registros de indiritzu serbint a custu. Una manera comuna de organizare sa memòria est a dda partzire in àreas o segmentos. In unu registru ddoe podet èssere s'indiritzu de sa prima tzella de s'àrea de is istrutziones de su programma, in un'àteru ddoe podet èssere s'indiritzu de sa prima tzella de s'àrea de is datos e in àteros ddoe podent èssere unu nùmeru de tzella a intro de una de custas àreas. Custa organizatzione dipendet, che totu su restu, dae s'architetura. - Registros de istadu e de controllu
Sunt registros impreados pro su controllu de s'esecutzione de is istrutziones e pro sinnalare s'istadu de is operatziones. Unu tìpicu registru de istadu est su Registru de istrutzione (o Instruction Register, IR) in ue ddoe at s'ùrtima istrutzione pigada dae sa memòria. Tìpicos registros de istadu serbent a controllare si un'operatzione at torradu su balore 0, si una cumparatzione intre duos balores at torradu "majore", "minore" o "uguale", etz.
Unidade Aritmètica-Lògica e Unidade de controllu
S'unidade Aritmètica-Lògica (Arithmetic logic unit, ALU) est formada dae is tzircùitos chi faghent is operatziones subra is datos carrigados in is registros. Custas operatziones sunt coordinadas dae un'àtera unidade, s'unidade de controllu.
Istrutziones
Is istrutziones sunt is cumandos chi su protzessore podet atzetare. Ddoe at duas filosofias chi podent èssere cunsideradas cando si progetat custu aspetu de su protzessore: CISC e RISC. Is protzessores CISC (Complex instruction set computer, elaboradores cun impare de istrutziones cumplicadu) sunt ricos meda de istrutziones. In custa manera, unu programma at a èssere prus fàtzile de iscrìere pro ite ca ddoe at a èssere giai s'istrutzione pro su chi su programmadore bolet fàghere. Is protzessores RISC (Reduced instruction set computer, elaboradores cun impare de istrutziones mìnimu) tenent prus pagas istrutziones, duncas su progetu est prus lèbiu, cada istrutzione podet èssere esecutada in prus pagu tempus e is secuèntzias de istrutziones podent èssere perfetzionadas pro un'esecutzione parallela, fadende is programmas prus lestros. Esempros de protzessores RISC sunt is ARM, chi sunt impreados dae una parte manna de is telefoneddos de oe. Is protzessores prus impreados pro is elaboradores, Intel e AMD x86/x64 sunt CISC, ma tenent puru caraterìsticas de is protzessores RISC, ca is istrutziones sunt partzidas a intro de is tzircùitos in micro-istrutziones prus simpres.
Is istrutziones càmbiant pro onni architetura, ma podent èssere agrupadas in:
- Istrutziones de tramudòngiu
Sunt impreadas pro mòere is datos intre registros o intre sa memòria e is registros o intre is registros e dispositivos de intrada/essida, etz - Istrutziones aritmèticas
Summa, sutratzione, etc - Istrutziones lògicas
Amus bidu is istrutziones lògicas in sa letzione subra s'àlgebra booleana. Sunt duncas AND, OR, NOT, etz - Istrutziones de controllu
Podent inclùdere istrutziones pro brincare a àteras partes de su còdighe, pro verificare cunditziones, pro tzarrare funtziones de su sistema operativu (interrutzione) e àteras.
Sa lestresa
Cando intendimus chistionare de protzessores, ddoe at semper calicunu chi chistionat de megahertz o gigahertz. Ita bolet nàrrere?
Totus is cumponentes de s'elaboradore sunt sincronizados dae unu rellògiu de sistema (clock). Custu est unu sinnale binàriu chi càmbiat dae 0 a 1 e dae 1 a 0 cun una frecuèntzia (o fitiania) de milliones de bortas cada segundu. Su rellògiu donat su "ritmu" a is cumponentes eletrònicos comente unu tamburu donat su ritmu a una sonada. Frecuèntzias tìpicas pro is protzessores de oe andant dae 1.8 GHz a 4 GHz (4000000000 de bortas a su segundu). Craru, prus arta est sa frecuèntzia, prus lestru est su protzessore, mancari chi custu non siat s'ùnica medida de s'atòliu suo.
Is prus curiosos podent sighire a lèghere pro bìdere un'esempreddu de impreu de istrutziones e registros de is protzessores x86.
S'esempru: còdighe assembly
In sa letzione dedicada a sa memòria amus bidu un'esempru de còdighe in limbàgiu C. Immoi bidemus unu limbàgiu diferente, de livellu prus bàsciu. Acraramus ita cheret nàrrere. Is istrutziones chi su protzessore podet esecutare sunt iscritas in una forma difìtzile meda de cumprendere: su còdighe binàriu. A custu limbàgiu ddi narant còdighe màchina. Prus unu limbàgiu si nd'istèsiat dae su còdighe màchina, prus est de livellu artu. Su còdighe assembly est isceti a unu livellu subra su còdighe màchina. In pràtica, est una rapresentatzione iscrita in alfabetu latinu de su còdighe màchina, duncas un'istrutzione assembly faghet esecutare a su protzessore isceti un'istrutzione màchina, mentres limbàgios che su C nde ddi faghent esecutare de prus.
Sighit s'esempru, pro sistemas DOS.
; Iscriet su càbidu de su registru AX in memòria (sa parte chi ddi narant stack, pila)
; Su segmentu de sa memòria in ue su datu est copiadu est in su registru SS (stack segment)
; e sa positzione a intro de su segmentu est in SP (stack pointer)
; S'operatzione PUSH càmbiat su balore de SP pro ddu preparare a un'àtera tzarrada
PUSH AX
; Ponet su balore 65 (H bolet nàrrere chi est unu nùmeru iscritu in sistema esadetzimale)
; in sa parte "bàscia" de su registru DX
MOV DL, 41H
; Ponet su balore 02 in sa parte "arta" de su registru AX
MOV AH, 02H
; INT serbit a imbiare unu sinniale de interrutzione a su protzessore
; pro fàghere una tzarrada de sistema
; 21H esecutat sa funtzione chi amus postu in AH.
; 02 est sa funtzione chi imprentat unu caràtere subra s'ischermu
; Su caràtere est su chi amus postu in DL: 65 est sa lìtera A
; Duncas "A" at a apàrrere in s'ischermu
INT 21H
; Ponet s'ùrtimu balore presente in sa pila (su chi nche aìamus postu cun PUSH) in su registru AX
; SP at a èssere postu a su balore initziale
POP AX
Cummenta