Unità aritmetica e logica

Classico simbolo di un'ALU: A e B sono gli operandi in ingresso, R è il risultato, F sono i segnali provenienti dall'unità di controllo e D sono i segnali di stato dell'unità

L'unità aritmetica e logica (o unità aritmetica-logica, in acronimo ALU, dall'inglese Arithmetic Logic Unit), è la parte del microprocessore che è deputata all'esecuzione di operazioni aritmetiche o logiche.

L'ALU è una componente fondamentale della CPU, della GPU e del DSP, ed è presente sia nell'architettura di von Neumann (l'architettura hardware su cui sono basati la maggior parte dei computer moderni) che nella meno diffusa architettura Harvard. Attualmente l'ALU è tipicamente implementata come parte di un microprocessore monolitico. Le moderne CPU e GPU sono dotate di ALU molto sofisticate e un singolo microprocessore può contenere anche più di un'ALU.

Il matematico John von Neumann propose il concetto di ALU nel 1945 mentre sviluppava le basi del computer EDVAC.

Prime ricerche

Nel 1946 von Neumann lavorò con i suoi colleghi allo sviluppo di un computer per il Princeton Institute of Advanced Studies (IAS). L'IAS machine fu un sistema che fu utilizzato come esempio dalla maggior parte dei computer successivi. Durante lo sviluppo von Neumann delineò l'architettura generica della macchina, l'architettura comprendeva il concetto di ALU.

Von Neumann ideò il concetto di ALU in modo da consentire al computer di eseguire le operazioni aritmetiche elementari come somma, sottrazione, divisione e moltiplicazione. Von Neumann riteneva ragionevole sviluppare un'unità specializzata allo scopo.[1]

Sistema numerico

L'ALU deve processare i numeri utilizzando lo stesso sistema numerico utilizzato dai rimanenti componenti del computer. Nei moderni computer questa è praticamente sempre la notazione binaria in complemento a due. I primi computer invece utilizzavano una varietà molto ampia di sistemi di numerazione come la notazione decimale, la notazione con segno e il complemento a uno.

A seconda del sistema di rappresentazione utilizzato lo schema dell'ALU può variare significativamente.

Schema circuitale d'esempio

Una semplice ALU a 2 bit In grado di eseguire le operazioni logiche AND, OR, XOR e l'operazione di addizione.

Molte delle operazioni eseguite dal computer vengono svolte dall'ALU, che recupera i dati dai registri del processore, processa i dati nell'accumulatore e provvede a salvare il risultato nel registro di uscita. Altre strutture provvedono a trasferire i dati dai registri alla memoria principale.[2]

Un'unità di controllo gestisce l'ALU tramite segnali di controllo che attivano le unità contenute dell'ALU.

Operazioni basilari

La maggior parte delle ALU sono in grado di eseguire:

  • Operazioni aritmetiche su numeri interi (addizione, sottrazione ma spesso anche moltiplicazione e divisione, in alcuni casi svolte tramite l'utilizzo di sottrazioni o somme multiple).
  • Operazioni logiche (AND, OR, XOR).
  • Operazioni di scorrimento binarie tramite registri a scorrimento.

Operazioni complesse

Un ingegnere elettronico può progettare un'ALU in grado di eseguire tutte le operazioni logiche e matematiche immaginabili ma questo comporterebbe degli enormi problemi dato che l'unità sarebbe molto costosa e lenta. Quindi gli ingegneri devono effettuare delle scelte cercando di realizzare delle unità potenti ma nello stesso tempo non troppo complesse. Per esempio per realizzare l'operazione di radice quadrata gli ingegneri si trovano a poter percorrere le seguenti strade:

  1. Progettare un'ALU estremamente complessa in grado di eseguire l'operazione in un singolo passaggio (un singolo ciclo di clock).
  2. Progettare un'ALU molto complessa in grado di calcolare l'operazione in una serie di passi. Ma se si organizza l'ALU con una struttura a pipeline si può permettere all'ALU di accettare nuovi dati mentre i dati precedenti sono ancora in elaborazione mascherando i vari cicli di clock necessari per eseguire l'operazione.
  3. Progettare un'ALU complessa che esegue l'operazione in più passaggi ma che non utilizza una struttura a pipeline. Questo rende l'operazione più lenta ma semplifica il progetto rispetto alla soluzione a pipeline.
  4. Progettare un'ALU semplice che demanda le operazioni di radice quadrata a un'unità specializzata che lavora in parallelo con l'ALU. L'unità specializzata (coprocessore) può essere venduta a parte e acquistata solo dagli utenti che realmente necessitano di eseguire realmente molte operazioni di radice quadrata.
  5. Non fornire l'operazione di radice quadrata e demandare il problema al programmatore che dovrà sviluppare delle proprie procedure che utilizzando le operazioni fornite dell'ALU eseguiranno la radice quadrata.
  6. Emulare la presenza del coprocessore, quando un programma cerca di eseguire l'operazione il processore verifica la presenza del coprocessore e nel caso sia presente lo utilizza, tuttavia se questo non è presente il processore attiva un interrupt di errore, il sistema operativo riceve l'interrupt ed esegue l'operazione tramite un algoritmo software. Questa soluzione è estremamente lenta.

Le opzioni elencate vanno dalla più veloce (e costosa) alla meno veloce (ed economica). Quindi anche le ALU semplici sono in grado di eseguire operazioni complesse ma richiedono molti cicli di clock per svolgere le operazioni mentre le ALU complesse eseguono le operazioni in un solo ciclo di clock.

I processori per computer implementano l'opzione 1 per le operazioni semplici, l'opzione 2 per la maggior parte delle operazioni e l'opzione 3 per le operazioni estremamente complesse e rare. Questo è permesso dalla presenza di ALU molto complesse, invece processori semplici per esempio per applicazioni embedded spesso implementano la soluzione 3 anche per le operazioni di media complessità mentre non gestiscono nativamente le operazioni complesse demandandole al programmatore (opzione 5).

Input e Output

Gli input (ingressi) dell'ALU sono i dati da processare (gli operandi) e il codice che attiva l'unità di controllo che gestisce l'ALU. L'output sono i risultati delle operazioni.

Le ALU sono progettate per generare anche alcune uscite che segnalano particolari risultati ottenuti. Queste uscite, detti flag, vengono usualmente raccolti in un registro di stato e sono utilizzati per indicare la presenza di resto, la divisione per zero, l'overflow, il risultato pari a zero etc.[2] Questi flag vengono utilizzati per cambiare il flusso di esecuzione del programma tramite i salti condizionati. Quindi il tipo di risultato ottenuto può servire a controllare delle condizioni: ad esempio, sottraendo due numeri, ottengo il risultato zero se essi sono uguali. Il flag zero si attiva, ed una seguente istruzione di salto può effettuare il salto se il flag zero è stato attivato, oppure proseguire senza salto se il flag zero non è attivato. Gli if..then...else, i cicli e gli altri costrutti della programmazione sono basati sulla combinazione del meccanismo dei flag e dei salti condizionati.

L'ALU e la FPU

La FPU è un'unità preposta all'esecuzione di operazioni aritmetiche su numeri in virgola mobile. Dato che la rappresentazione in virgola mobile è molto più complessa della rappresentazione a complemento a due utilizzata tipicamente dalle ALU. Difatti le FPU tendono ad essere molto più complesse delle ALU, includono circuiti molto complessi e spesso anche più ALU.

Usualmente gli ingegneri tendono a definire ALU le unità in grado di eseguire operazioni sui numeri interi mentre le unità che eseguono operazioni su numeri in virgola mobile, numeri complessi, ecc. ricevono nomi meno generici.

Note

  1. ^ Stallings, Pag. 19.
  2. ^ a b Stallings, Pag. 290, 291.

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

Pseudomonas aeruginosa, salah satu mikroorganisme yang mampu melakukan reduksi nitrat. Bakteri denitrifikasi adalah kelompok bakteri yang memiliki kemampuan untuk melakukan reaksi reduksi senyawa nitrat (NO3-) menjadi senyawa nitrogen bebas (N2).[1] Pada beberapa kelompok bakeri denitrifikasi, dapat ditemukan senyawa nitrogen oksida (NO) sebagai hasil sampingan metabolisme.[2] Proses ini pada umumnya berlangsung secara anaerobik (tanpa melibatkan molekul oksigen, O2).[1] …

Pusat Latihan Jabatan KhususKomando Latih MarinirBerkas:Logo Puslatjabsus.pngLambang Korps MarinirNegara IndonesiaCabang TNI Angkatan LautTipe unitPendidikan Pasukan AmfibiBagian dariKolatmarMarkas KomandoGrati, PasuruanSitus webwww.marinir.mil.id Pusat Latihan Jabatan Khusus Komando Latih Marinir atau (Puslatjabsus Kolatmar) merupakan satuan pelaksana Kolatmar yang memiliki tugas pokok merencanakan dan menyelenggarakan kursus yang berkualifikasi pada jabatan khusus, latihan operasi khusus …

Artikel atau sebagian dari artikel ini mungkin diterjemahkan dari Fuqing di en.wikipedia.org. Isinya masih belum akurat, karena bagian yang diterjemahkan masih perlu diperhalus dan disempurnakan. Jika Anda menguasai bahasa aslinya, harap pertimbangkan untuk menelusuri referensinya dan menyempurnakan terjemahan ini. Anda juga dapat ikut bergotong royong pada ProyekWiki Perbaikan Terjemahan. (Pesan ini dapat dihapus jika terjemahan dirasa sudah cukup tepat. Lihat pula: panduan penerjemahan artikel…

Matthew Briggs Informasi pribadiNama lengkap Matthew Anthony BriggsTanggal lahir 9 Maret 1991 (umur 33)Tempat lahir Wandsworth, London, InggrisTinggi 1,88 m (6 ft 2 in)[1]Posisi bermain BekInformasi klubKlub saat ini Colchester United(pinjaman dari Millwall)Nomor 15Karier junior1999–2006 FulhamKarier senior*Tahun Tim Tampil (Gol)2006–2014 Fulham 13 (0)2010 → Leyton Orient (pinjaman) 1 (0)2012 → Peterborough United (pinjaman) 5 (0)2012 → Bristol City (pinjama…

Kenneth CopelandCopeland pada 2011LahirKenneth Max Copeland06 Desember 1936 (umur 87)Lubbock, Texas, Amerika SerikatKebangsaanAmerika SerikatPekerjaanPenulisjurubicarapengkotbah injil kemakmurantelevangelisTahun aktif1967–kiniKekayaan bersih US$300 juta[1] (April 2020)Partai politikPartai RepublikGerakan politikWord of FaithSuami/istriIvy Bodiford ​(m. 1955⁠–⁠1958)​ Cynthia Davis ​(m. 1958⁠–…

BachalpseeLetakBernese OberlandKoordinat46°40′10″N 8°1′24″E / 46.66944°N 8.02333°E / 46.66944; 8.02333Koordinat: 46°40′10″N 8°1′24″E / 46.66944°N 8.02333°E / 46.66944; 8.02333Aliran keluar utamaMilibachTerletak di negaraSwitzerlandArea permukaan00.806 km2 (311 sq mi)Kedalaman maksimal148 m (486 ft)Ketinggian permukaan2.265 m (7.431 ft) Bachalpsee atau Bachsee adalah sebuah danau dengan area…

Louis Ramond de Carbonnières Louis François Élisabeth Ramond, baron de Carbonnières (4 January 1755 Strasbourg – 14 May 1827), was a French politician, geologist and botanist. He is regarded as one of the first explorers of the high mountains of the Pyrenees who can be described as a pyreneist.[1] Life Louis Ramond de Carbonnières Louis Ramond was born in Strasbourg, to Pierre-Bernard Ramond (1715–1796), treasurer of war, and Rosalie-Reine Eisentrand (1732–1762). He studied la…

Административное деление Сингапура Топонимия Сингапура — совокупность географических названий, включающая наименования природных и культурных объектов на территории Сингапура. Структура и состав топонимии обусловлены географическим положением страны, этническим …

Artikel ini bukan mengenai Ibu Pertiwi oleh Indonesia. Ibu PertiwikuLagu kebangsaan  SarawakPenulis lirikDato' Haji Wan OthmanIsmail HassanKomponisDato' Haji Wan OthmanPenggunaan1988Sampel audioIbu Pertiwiku (vokal)berkasbantuan Sampel audioIbu Pertiwikuberkasbantuan Ibu Pertiwiku (instrumental) Ibu Pertiwiku adalah sebuah lagu kebangsaan resmi Sarawak. Lirik Sarawak Tanah Airku Negeriku Tanah Airku Sarawak Engkaulah tanah pusakaku Tanah tumpah darahku Ibu pertiwiku Rakyat hidup mesra dan b…

Laut TimorLaut Timor dari Vessoru, Timor LesteLokasi Laut TimorKoordinat10°S 127°E / 10°S 127°E / -10; 127Koordinat: 10°S 127°E / 10°S 127°E / -10; 127Jenis perairanLautTerletak di negaraIndonesiaEast TimorAustraliaArea permukaan610.000 km2 (240.000 sq mi)Kedalaman rata-rata406 m (1.332 ft)Kedalaman maksimal3.200 m (10.500 ft)KepulauanKepulauan Tiwi, Kepulauan Ashmore dan CartierParitJurang TimorPermukiman…

Italian mathematician (1915–2015) Guido ZappaZappa in 1961Born(1915-12-07)7 December 1915Naples, ItalyDied17 March 2015(2015-03-17) (aged 99)Florence, ItalyAlma materScuola Normale SuperioreKnown forAlgebraic geometryGroup theoryScientific careerFieldsMathematicsInstitutionsUniversity of FlorenceAcademic advisorsFrancesco Severi Guido Zappa (7 December 1915 – 17 March 2015) was an Italian mathematician and a noted group theorist: his other main research interests were geometry…

العلاقات الزامبية المالاوية زامبيا مالاوي   زامبيا   مالاوي تعديل مصدري - تعديل   العلاقات الزامبية المالاوية هي العلاقات الثنائية التي تجمع بين زامبيا ومالاوي.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة زام…

Gabriele Ferzetti nel film Grazie zia (1968) Gabriele Ferzetti, pseudonimo di Pasquale Ferzetti (Roma, 17 marzo 1925 – Roma, 2 dicembre 2015), è stato un attore italiano. Indice 1 Biografia 2 Vita privata 3 Filmografia 3.1 Cinema 3.2 Televisione 4 Teatro 5 Prosa radiofonica Rai 6 Riconoscimenti 7 Doppiatori 8 Doppiaggio 9 Note 10 Bibliografia 11 Altri progetti 12 Collegamenti esterni Biografia Attivo dagli anni '40, si segnalò in teatro nel repertorio contemporaneo, da Luigi Pirandello a Ten…

Course en ligne masculine aux championnats du monde de cyclisme sur route 2012 Généralités Sport Cyclisme sur route Organisateur(s) UCI Lieu(x) Fauquemont, Pays-Bas Date 23 septembre 2012 Épreuves Course en ligne Distance 269 km Palmarès Vainqueur Philippe Gilbert Navigation Copenhague 2011 Florence 2013 modifier La course en ligne masculine des championnats du monde de cyclisme sur route 2012 a lieu le 23 septembre 2012 à Fauquemont, aux Pays-Bas. Participation Système de sélection Les …

Distrik Maluka (Toponim: Maloeka/Moloekko/Molukko[1]) adalah bekas distrik (kedemangan) yang merupakan bagian dari wilayah administratif Onderafdeeling Tanah Laut pada zaman kolonial Hindia Belanda dahulu. Distrik Maluka merupakan salah satu daerah Kesultanan Banjar yang terletak di Daerah Aliran sungai Maluka.[2] Distrik Maluka pernah dipimpin oleh Kepala Distrik (districhoofd) yaitu: Tahun Districtshoofd Panghoeloe 1859 Saha alias Kiai Wira Negara[3] - 1861 Hadji Abdul …

Saltillo Institute of TechnologyInstituto Tecnológico de SaltilloMottoLa técnica por la grandeza de México (Technique for the greatness of Mexico)TypePublicEstablished1951PresidentJesús Contreras GarcíaAdministrative staff258Students3,602 (2000)Undergraduates3,569Postgraduates33LocationSaltillo, Coahuila, MexicoCampusUrbanWebsitewww.saltillo.tecnm.mx The Saltillo Institute of Technology (Spanish: Instituto Tecnológico de Saltillo), or ITS, is located in the city of Saltillo, state capital …

The Family division of 20th Century Studios (Walt Disney Studios) 20th Century FamilyFormerlyFox Family (2017–2020)Company typeDivisionIndustryFilmFounded2017; 7 years ago (2017)HeadquartersFox Studio Lot Building 88, 10201 West Pico Boulevard, Century City, Los Angeles, California, United StatesArea servedWorldwideParent20th Century StudiosWebsitefamily.20thcenturystudios.com 20th Century Family (also known as 20th Century Studios Family; formerly known as Fox Family or 20th…

Life and work of Charles Darwin from Orchids to Variation This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Darwin from Orchids to Variation – news · newspapers · books · scholar · JSTOR (July 2019) (Learn how and when to remove this template message) Between 1860 and 1868, the life and work of Charles Darwin fro…

American illustrator and painter Howard Chandler ChristySelf portraitBorn(1872-01-10)January 10, 1872Morgan County, Ohio, U.S.[1]DiedMarch 3, 1952(1952-03-03) (aged 80)New York City, U.S.Occupation(s)artist and illustratorYears active1890–1952Notable workGee I wish I were a Man I'd Join the Navy, Portrait of Dorothy Barton Thomas, Scene at the Signing of the Constitution of the United States, The Christy GirlSignature Howard Chandler Christy (January 10, 1872 – Mar…

Chinese dessert wine This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Lychee wine – news · newspapers · books · scholar · JSTOR (February 2020) (Learn how and when to remove this message) Lychee wine Lychee wine (Chinese: 荔枝酒, lìzhījiǔ) is a full-bodied Chinese dessert wine[1] made of 100%&…

Kembali kehalaman sebelumnya