Pipeline (CPU)

Diagramma di Gantt dell'esecuzione di una sequenza di istruzioni in una CPU con pipeline a 5 stadi. La colonna verde evidenza le micro-istruzioni in elaborazione simultanea.

In informatica ed elettronica, la pipeline è un tipo di architettura hardware utilizzata nel progetto dei microprocessori per incrementarne la produttività, ovvero la quantità di istruzioni eseguite nell'unità di tempo.

Storia

Il concetto di pipe venne sviluppato dal ricercatore Robert Tomasulo dell'IBM, il primo sistema dotato di pipeline fu il supercomputer IBM System 360/91 presentato nel 1966 che grazie alla pipeline otteneva un incremento anche del 33% delle prestazioni. La pipeline si diffuse rapidamente nei supercomputer e nei server. Il primo microprocessore a utilizzare una pipeline fu il MOS Technology 6502 che tramite una semplice pipeline forniva prestazioni superiori a quelli della concorrenza a una frazione del loro costo. Nel settore di microprocessori le pipeline divennero comuni con i processori RISC che data la loro semplicità consentì di implementare un'architettura a pipeline completa fin dalle loro prime implementazioni negli anni ottanta. I progetti Berkeley RISC e MIPS infatti avevano già una pipeline. I processori CISC utilizzarono un'architettura a pipeline completa solamente alla fine degli anni 80 per via delle maggiori difficoltà di implementazione. Attualmente tutti i microprocessori utilizzano una struttura a pipeline per migliorare le loro prestazioni.

Descrizione

Diagramma di Gantt delle istruzioni in un processore senza pipeline. In ogni istante il processore è impegnato nell'esecuzione di una singola istruzione, non c`e parallelismo.

L'elaborazione di un'istruzione da parte di un processore si compone di cinque passaggi fondamentali:

  1. IF (instruction fetch): lettura dell'istruzione da memoria;
  2. ID (instruction decode): decodifica istruzione e lettura operandi da registri;
  3. EX (execution): esecuzione dell'istruzione;
  4. MEM (memory): attivazione della memoria (solo per certe istruzioni);
  5. WB (write back): scrittura del risultato nel registro opportuno;

Praticamente ogni CPU in commercio è gestita da un clock centrale e ogni operazione elementare richiede almeno un ciclo di clock per poter essere eseguita. Le prime CPU erano formate da un'unità polifunzionale che svolgeva in rigida sequenza tutti e cinque i passaggi legati all'elaborazione delle istruzioni. Una CPU classica richiedeva quindi almeno cinque cicli di clock per eseguire una singola istruzione. Con il progresso della tecnologia si è potuto integrare un numero maggiore di transistor in un microprocessore e quindi si sono potute parallelizzare alcune operazioni riducendo i tempi di esecuzione. La pipeline dati rappresenta la massima parallelizzazione del lavoro di un microprocessore.

Una CPU con pipeline è composta da cinque stadi specializzati, capaci di eseguire ciascuno un'operazione elementare di quelle sopra descritte. La CPU lavora come in una catena di montaggio cioè ad ogni stadio provvede a svolgere in maniera sequenziale un solo compito specifico per l'elaborazione di una certa istruzione. Quando la catena è a regime, ad ogni ciclo di clock dall'ultimo stadio esce un'istruzione completata. Nello stesso istante ogni unità sta però elaborando in parallelo i diversi stadi di successive altre istruzioni. In sostanza quindi si guadagna una maggior velocità di esecuzione a prezzo di una maggior complessità circuitale del microprocessore, che non deve essere più composto da una sola unità, ma da cinque unità che devono collaborare tra loro.

Aspetti problematici

L'implementazione di una pipeline non sempre moltiplica il throughput finale. L'analisi delle problematiche legate alla gestione delle pipeline per ottenere le migliori prestazioni teoriche ricadono sotto la ricerca del parallelismo a livello di istruzione, cioè le istruzioni che possono essere eseguite in parallelo senza creare conflitti o errori di esecuzione. Comunque le singole pipeline affrontano due problemi principalmente; il problema legato alla presenza di istruzioni che possono richiedere l'utilizzo di risorse (dati o registri) non ancora disponibili e il problema legato alla presenza di salti condizionati.

  • Il primo problema deriva dal lavoro parallelo delle unità.

Supponiamo che la CPU con pipeline debba eseguire il seguente frammento di codice:

  1. C=A+B
  2. D=C-1

La prima istruzione deve prelevare i numeri contenuti nelle variabili A e B, sommarli e porli nella variabile C. La seconda istruzione deve prelevare il valore contenuto nella variabile C, sottrarlo di uno e salvare il risultato in D. Ma la seconda istruzione non potrà essere elaborata (EX) fino a quando il dato della prima operazione non sarà disponibile in memoria (MEM) e quindi la seconda operazione dovrà bloccarsi per attendere il completamento della prima e quindi questo ridurrà il throughput complessivo. Questo problema può essere attenuato facendo in modo che i dati elaborati dalla prima istruzione siano resi disponibile alla seconda istruzione prima del solo salvataggio definitivo in memoria. Questo si ottiene inserendo dei registri temporanei nell'unità di esecuzione dove salvare dati che serviranno all'istruzione successiva. Un problema simile è quando due istruzioni utilizzano gli stessi registri per operare. In questo caso si utilizza la rinominazione dei registri, una tecnica che elimina la maggior parte degli stalli.

  • Il secondo problema consiste nei salti condizionati.

I programmi contengono delle istruzioni condizionate che se una specifica condizione logica è verificata provvedono a interrompere il flusso sequenziale del programma e a mandare in esecuzione un altro pezzo di programma indicato dall'istruzione di salto. Ogni volta che questo accade il microprocessore si trova a dover eseguire un nuovo flusso di operazioni e quindi deve svuotare la pipeline del precedente flusso e caricare il nuovo flusso. Ovviamente queste operazioni fanno sprecare cicli di clock e quindi deprimono il throughput. Per ridurre questo problema le CPU adottano delle unità di predizione delle diramazioni che fanno delle previsioni sul flusso del programma. Queste unità riducono notevolmente i cicli persi per i salti.

Evoluzioni

Diagramma di Gantt di una CPU superscalare a doppia pipeline

Per realizzare CPU con prestazioni migliori col tempo si è affermata la strategia di integrare in un unico microprocessore più pipeline che funzionano in parallelo, questi microprocessori sono definiti superscalari dato che sono in grado di eseguire mediamente più di un'operazione per ciclo di clock. Queste pipeline ovviamente rendono ancora più complessa la gestione dei problemi di coerenza e dei salti condizionati. Nelle CPU prodotte ad inizio del terzo millennio le pipeline non sono composte da soli cinque stadi ma in realtà ne utilizzano molti di più (il Pentium 4 ne utilizza da 20 fino a 31), mentre successivamente sono state prodotte CPU da un numero medio di 14-15 stadi per pipeline.

L'aumento degli stadi delle pipeline porta o permette un aumento della frequenza di clock, infatti spezzettando le singole operazioni necessarie per completare un'istruzione in tante sotto operazioni si può elevare la frequenza della CPU dato che ogni unità deve svolgere un'operazione più semplice e quindi può impiegare meno tempo per completare la sua operazione. Questa scelta di progettazione consente effettivamente di aumentare la frequenza di funzionamento delle CPU, ma rende critico il problema dei salti condizionati. In caso di un salto condizionato non previsto il Pentium 4 per esempio può essere costretto a svuotare e ricaricare una pipeline di 30 stadi perdendo fino a 30 cicli di clock contro una classica CPU a pipeline a 5 stadi che avrebbe sprecato nella peggiore delle ipotesi 5 cicli di clock. Inoltre l'aumento della frequenza di clock non è sempre proporzionale all'aumento di prestazioni, in quanto deve essere associata alla lunghezza della pipeline: a parità di pipeline, un aumento di frequenza porta un aumento di prestazioni; a parità di frequenza, pipeline più corte portano ad un aumento di prestazioni. L'aumento della frequenza porta però anche ad un aumento del consumo energetico e minore efficienza di calcolo.

La sempre maggior richiesta di potenza di calcolo ha spinto le industrie produttrici di microprocessori a integrare in un unico chip più microprocessori (architetture a multiprocessore). Questa strategia consente al computer di avere due CPU separate dal punto di vista logico, ma fisicamente risiedenti nello stesso chip. Questa strategia progettuale attenua i problemi di coerenza e di predizione dei salti. Infatti ogni CPU logica esegue un programma separato e quindi tra i diversi programmi non si possono avere problemi di coerenza tra le istruzioni. Questa scelta progettuale aumenta le prestazioni solo nel caso in cui il sistema operativo sia in grado di gestire/utilizzare più programmi contemporaneamente o in caso di un solo programma attivo se questo risulta scritto per poter utilizzare tutte le CPU disponibili, cioè se i programmi sono parallelizzabili.

Voci correlate

Altri progetti

Collegamenti esterni

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

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada April 2016. Museum Batik PekalonganPintu masuk Museum Batik PekalonganDidirikan1972LokasiJl. Jetayu No.1, Pekalongan 51152, Jawa TengahJenismuseum Museum Batik Pekalongan adalah museum batik yang beralamat di Jalan Jetayu No.1 Pekalongan, Jawa Tengah.[1] Mus...

 

Beleg van Lissabon 1384 Eeuwen: 13e eeuw · 14e eeuw · 15e eeuw Decennia: 1370-1379 · 1380-1389 · 1390-1399 Jaren: << · < · 1383 · 1384 · 1385 · > · >> Jaartelling in verschillende culturen Ab urbe condita: 2137 MMCXXXVII Armeense jaartelling: 833 – 834ԹՎ ՊԼԳ – ՊԼԴ Chinese jaartelling: 4080 – 4081庚亥 – 辛子 Christelijke jaartelling: 1384 MCCCLXXXI...

 

Restaurant in New York City Oyster BarRestaurant informationEstablished1913Food typeSeafoodDress codeCasualStreet addressLower Level, Grand Central Terminal, 89 East 42nd Street, New York, NY 10017ReservationsYesOther locationsTokyoWebsiteoysterbarny.com The Grand Central Oyster Bar & Restaurant is a seafood restaurant on the lower level of Grand Central Terminal at 42nd Street and Park Avenue in Manhattan, New York City.[1] History The restaurant space was first opened as the Gra...

中华人民共和国国家人口和计划生育委员会 1999年规定:印章直径5厘米,中央刊国徽,由国务院制发 机构概况 上级机构 中华人民共和国国务院 机构类型 国务院组成部门国务院计划生育行政部门 行政级别 正部级 联络方式 总部  实际地址 北京市海淀區知春路14号  邮政编码 100088  電話號碼 +86 (0)10 6204 6622 對外官網 www.chinapop.gov.cn 机构沿革 1964-1968 国务院计划生育委

 

تفسير روض الجنان وروح الجنان غلاف الكتاب الاسم تفسير روض الجنان وروح الجنان المؤلف الحسين بن علي الخزاعي،المشهور بأبو الفتوح الرازي الموضوع تفسير قرآن الكريم العقيدة الشيعة اللغة الفارسية معلومات الطباعة كتب أخرى للمؤلف روح الاحباب وروح الالباب، ورسالة يوحنا، وتبصرة الع

 

Wappen der Earls of Dundonald Thomas Cochrane, 10. Earl of Dundonald Earl of Dundonald ist ein erblicher britischer Adelstitel in der Peerage of Scotland. Er ist nach der Ortschaft Dundonald in South Ayrshire, Schottland benannt. Heutiger Familiensitz der Earls ist Lochnell Castle bei Oban in Argyll. Der jeweilige Earl ist zugleich erblicher Chief des Clan Cochrane. Inhaltsverzeichnis 1 Verleihung und nachgeordnete Titel 2 Weiterer Titel 3 Liste der Earls of Dundonald (1669) 4 Literatur 5 Web...

  لمعانٍ أخرى، طالع مارشال (توضيح). مارشال     الإحداثيات 44°26′49″N 95°47′18″W / 44.446944444444°N 95.788333333333°W / 44.446944444444; -95.788333333333  تقسيم إداري  البلد الولايات المتحدة[1][2]  التقسيم الأعلى مقاطعة ليون  عاصمة لـ مقاطعة ليون  خصائص جغرافية  المسا

 

Untuk film 2013, lihat Gol Maal (film 2013). Gol MaalPoster rilis teatrikalSutradara Hrishikesh Mukherjee Produser N.C Sippy Ditulis olehRahi Masoom Raza (dialog)SkenarioSachin BhowmickCeritaShailesh DeyPemeranAmol PalekarUtpal DuttBindiya GoswamiPenata musikR.D. BurmanSinematograferJaywant PatharePenyuntingSubhash GuptaTanggal rilis 19 April 1979 (1979-04-19) Negara India Bahasa Hindi Urdu Gol Maal (Hodgepodge, Confusion) adalah sebuah film komedi Bollywood 1979 yang disutradarai ...

 

Jaroslaw Tarnowezkyj Nation Ukraine Ukraine Geburtstag 9. September 1990[1][2] Spitzname Tornado[3] Medaillenspiegel Ukrainische Meisterschaft (DP) 1 × 1 × 0 × Ukrainische Meisterschaft (KP) 1 × 0 × 2 × Freie-Pyramide-AM 0 × 1 × 0 × Freie-Pyramide-EM 0 × 1 × 2 × Freie-Pyramide-Weltcup 0 × 1 × 1 × Freie-Pyramide-WM 0 × 0 × 1 × Dynamische-Pyramide-WM 1 × 0 × 0 × Kombinierte-Pyramide-WM 1 × 0 × 3 × Jaroslaw Wassyljowytsch Tarnowezkyj (ukrainisc...

Superfamily of insects For other uses, see Cicada (disambiguation). CicadaTemporal range: Late Triassic – recent PreꞒ Ꞓ O S D C P T J K Pg N Annual cicada, Neotibicen linnei Calling song of Magicicada cassini Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Arthropoda Class: Insecta Order: Hemiptera Suborder: Auchenorrhyncha Infraorder: Cicadomorpha Superfamily: CicadoideaLatreille, 1802 Families Tettigarctidae Cicadidae The cicadas (/sɪˈkɑːdəz, -ˈkeɪ-/) are ...

 

Defunct attraction in Universal parks This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Backdraft attraction – news · newspapers · books · scholar · JSTOR (August 2019) BackdraftThe ride's entrance at Universal Studios Japan (above) and interior at Universal Studios Hollywood (below)Universal St...

 

American actor This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Pepe Serna – news · newspapers · books · scholar · JSTOR (March 2013) (Learn how and when to remove this template message) Pepe Ser...

Software whose source code is entered by the user An example of hexadecimal MLX type-in program code as printed in a Compute!'s Gazette magazine A type-in program or type-in listing was computer source code printed in a home computer magazine or book. It was meant to be entered via the keyboard by the reader and then saved to cassette tape or floppy disk. The result was a usable game, utility, or application program. Type-in programs were common in the home computer era from the late 1970s th...

 

Miyoshi Athletic StadiumLocation Miyoshi, Hiroshima, JapanOwnerMiyoshi CityCapacity10,000Opened1993 Miyoshi Athletic Stadium (みよし運動公園陸上競技場) is an athletic stadium in Miyoshi, Hiroshima, Japan. External links [1] This article about a sports venue in Japan is a stub. You can help Wikipedia by expanding it.vte

 

Gulf in Western Australia Exmouth Gulfclass=notpageimage| Location in Western Australia Gales Bay at the south end of Exmouth Gulf The gulf's mangroves are an important site for grey-tailed tattlers Exmouth Gulf is a gulf in the north-west of Western Australia. It lies between North West Cape and the main coastline of Western Australia. It is considered to be part of the Pilbara Coast and Northwest Shelf, and the Carnarvon Basin geologic formation. It was named after Edward Pellew, 1st V...

1967 Indian filmMuhurtha NaalTheatrical release posterDirected byP. MadhavanWritten byBalamuruganProduced byP. MadhavanStarringJaishankarK. R. VijayaMuthuramanCinematographyA. SomasundaramEdited byR. DevarajanMusic byK. V. MahadevanProductioncompanyArun Prasad MoviesDistributed byVenkateshwara MoviesRelease date 29 September 1967 (1967-09-29) CountryIndiaLanguageTamil Muhurtha Naal (transl. An auspicious day) is a 1967 Indian Tamil-language film produced and directed by P...

 

Men's national association football team representing Jamaica This article is about the men's team. For the women's team, see Jamaica women's national football team. JamaicaNickname(s)The Reggae BoyzAssociationJamaica Football Federation (JFF)ConfederationCONCACAF (North America)Sub-confederationCFU (Caribbean)Head coachHeimir HallgrímssonCaptainAndre BlakeMost capsIan Goodison (128)Top scorerLuton Shelton (35)Home stadiumIndependence ParkFIFA codeJAM First colours Second colours FIFA rankin...

 

LNWR Webb Coal TankNo. 848 in photographic grey liveryType and originPower typeSteamDesignerFrancis WebbBuild date1881–1897[1]Total produced300SpecificationsConfiguration:​ • Whyte0-6-2T • UICC1n2GtGauge4 ft 8+1⁄2 in (1,435 mm) standard gaugeDriver dia.4 ft 5+1⁄2 in (1.359 m)Loco weight43 long tons 15 cwt (98,000 lb or 44.5 t)Fuel typeCoalBoiler pressure150 psi (1.03 MPa)...

Italian Fascist leader (1889–1945)This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2016) (Learn how and when to remove this template message) This article's lead section may be too short to adequately s...

 

Romanian jurist (1880–1959) For the footballer, see Andrei Rădulescu (footballer). Portrait of Andrei Rădulescu Andrei Rădulescu (28 November 1880 – 30 September 1959) was a Romanian jurist. He served as President of the High Court of Cassation and Justice from 1938 to 1940, and as president of the Romanian Academy from 1946 to 1948. Early life He was born in Chiojdeanca, Prahova County. His parents belonged to the moșnean class of landowning peasants. He had one sister who survived i...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!