Anteprima
Vedrai una selezione di 17 pagine su 79
Elementi di Informatica e Programmazione C Pag. 1 Elementi di Informatica e Programmazione C Pag. 2
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 6
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 11
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 16
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 21
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 26
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 31
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 36
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 41
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 46
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 51
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 56
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 61
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 66
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 71
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Elementi di Informatica e Programmazione C Pag. 76
1 su 79
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Caricare nel registro la parola di memoria di indirizzo .4 2R ← R4 2 IR ← PC PC ← PC + 21. Fetch: ,0001 0100 R 00102. Decode: , sta ad indicare carica, , indica il riferimento al registro , ,4R 0000indirizzamento a memoria indiretto tramite registro , , non sono da interpretare.23. Execute:M A R ← RA. 2B. Pone il segnale di lettura sul bus controlliC. La memoria pone la parola sul bus datiR ← MDRD. 4⇒ 6 passaggi.Certe operazioni ciclo-macchina sono più onerose, in termini di passaggi, di altre.R RSalta due byte avanti se il contenuto di è uguale a quello di .1 2IR ← PC PC ← PC + 21. Fetch: ,0100 0001 R 00102. Decode: , ipotizziamo sia un salto condizionato, , ipotizziamo sia , ,1R 0010ipotizziamo sia , , complemento a due (+2). Il secondo e il terzo indicano il riferimento2al registro, l’ultimo l’indirizzo di memoria relativo rispetto al PC.3. Execute: R A ← R R B ← RA. Pongo l’operazione sottrazione

sulla linea operazione della ALU. ,1 2R ← R − RB. Pongo il segnale esegui della ALU. 1 2C. Se il bit ZERO del registro PSW è 1 (è settato) [incremento il Program Counter di 2]Pagina 28fi fiMartina Contestabile Ingegneria Informatica Comune A-L, A.A. 2020/21∘R A ← PC R B ← 3D. Pongo l’operazione di addizione sulla linea operazione dell’ALU, ,campo del registro IR R ← PC + 2E. Pongo il segnale esegui della ALUPC ← RCF. Spostare RC in PC⇒ 12 passaggi. Lunedì 5 Ottobre 2020Clock serve a cadenzare il periodo del calcolatore.l’avvicendamento tra le due tensioni è repentino,xsull’asse vediamo l’evolvere del tempo, è come se ilsegnale si spostasse in verticale. Il gra co è un’ondaquadra. Il periodo (o ciclo) è un livello di tensione cheevolve con un periodo predeterminato e costante. Ilciclo si misura in secondi, la sequenza è l’inverso del91GHz = 1 ⋅ 10 Hzciclo.

(un miliardo di cicli al-910 s = n ssecondo). Il periodo, in questo caso, è n ssecondo. L'esecuzione di un ciclo macchina richiede più cicli di Clock. Supponiamo di avere due di erenti CPU e un programma, progettato per funzionare col calcolatore1 o col calcolatore 2 (ogni calcolatore ha il suo linguaggio macchina, con cui fa funzionare iprogrammi). Supponiamo che il programma, una volta tradotto, abbia 1000 istruzioni macchina f = 1GHz per CPU1 e 1500 per CPU2. Su quale calcolatore gira meglio? Supponiamo che eCPU1f = 1.2GHz, ma da qui non otteniamo molte informazioni, a parte la velocità del Processore. CPU2 MIPS (mega instruction per second), Qui entra in gioco il ma anch'essa non è molto utile. timeAllora usiamo l'elapsed (il tempo trascorso), che conta anche il tempo per trasferire i dati nelle periferiche. Tuttavia, contando che ormai i calcolatori moderni usano il multitasking, il tempo trascorso è solo una parte (tempo netto rispetto a

quello lordo).Δt < ΔtCPU time,

Il nostro “netto” è il se , allora preferiamo CPU1.1 2= ⋅ = fCPU time cicli di clock periodo di clock cicli di clock/Il .

CPUCPI = cicli di clock / #instruction prg.⋅Cicli di Clock= #instruction prg CPI (cicli per istruzione).

I cicli di Clock possono essere trovati anche grazie al calcolo durante l’utilizzo di programmistandard e il loro CPI, così capiamo quale CPU è meglio.

fCPU time = (#instruction prg x CPI)/ . Contando che sul mercato quasi tutte le CPU sonoCPUGHzsull’ordine dei , ciò che varia è il numeratore.

↑ ↓ CPI#instruction program↓ ↑ CPI#instruction program6 2 2 2x = x ⋅ x ⋅ x 3 operazioni 16 3 3x = x ⋅ x 2 operazioni / 3Fetch e decode sono standard, però la preferenza va su CPU che sanno svolgere operazionisempre più complesse. Pagina 29ff fiMartina Contestabile Ingegneria Informatica Comune A-L, A.A. 2020/21CISC:

più operazioni, ma sempre più elaborate

CPI alto perché le operazioni sono elaborate

Numero istruzioni basse, perché la stessa CPU è progettata per svolgere operazioni complesse

RISC: poche, ma essenziali, operazioni di macchina. Le operazioni complesse sono svolte combinando fra loro le operazioni semplici presenti.

La loso a di pensiero RISC ha ripreso posizione negli anni ’90, ma fu di cile per compatibilità software. CPU RISC sono di use in hardware portatile, perché non c’è stato problema di compatibilità.

Il linguaggio Assembly è il linguaggio di programmazione più rudimentale esistente. Esso, infatti, è la rappresentazione simbolica del linguaggio macchina (basato su 0,1, linguaggio binario).

Con le etichette, usiamo parole invece di 0 e 1. Ma così la macchina non capisce, lui non conosce le parole, ma il linguaggio macchina. Così, entra in gioco l’assemblatore, che traduce da Assembly a

linguaggio macchina. Ciascuna CPU ha il proprio linguaggio macchina, quindi hanno il proprio assemblatore, ovvero un proprio linguaggio Assembly.

Tabella dei simboli:

Codici: instaura corrispondenza tra sequenze di bit e codici che indicano operazioni/registri.

Simboli: instaura corrispondenza tra indirizzi e identificatori che indicano variabili/etichette.

Anziché memorizzare l'indirizzo della variabile o l'istruzione, si memorizza lo spostamento della variabile (faccio partire un programma, l'OS sposta in memoria la parte eseguibile, avviene uno spostamento), così da trovare poi gli indirizzi in maniera assoluta. Gli indirizzi, quindi, sono detti relativi, ovvero possono trovarsi ovunque.

Noi usiamo un Assembly basico, dotato solo di 16 istruzioni. È un linguaggio Assembly giocattolo, che permette di svolgere operazioni di addizione tra registri. Ogni istruzione è codificata in 16 bit.

LOADiL e LOADiH danno valore ad un registro (i=assegnamento immediato,

valore scritto nell'istruzione stessa, L=low, bit meno significativi, H=high, bit più significativi). LOAD caricamento memoria. STORE immagazzinamento memoria. MOVE spostamento memoria da registro a registro. B=brench (salto) salto incondizionato. Pagina 30ff fi fi ffi fi fi fi fi

Martina Contestabile Ingegneria Informatica Comune A-L, A.A. 2020/21

Giovedì 8 ottobre 2020

Individuazioni delle variabili

In ciascuna fase:

I. Individuazione delle operazioni da ripetere

II. Individuazione del ciclo più adatto (condizione iniziale, finale, con conteggio)

Si compone il corpo del ciclo

I. Definizione del corpo del ciclo

II. Definizione della condizione di permanenza

III. Verifica della prima e ultima iterazione

Le memorie si basano su:

I. Velocità

Tempo di accesso (uno per la lettura e uno per la scrittura, non sono necessariamente uguali)

Ciclo di memoria (refrattaria ad accettare altre richieste)

Velocità di trasferimento (quanti MB/GB trasferisce in 1s)

II. Volatilità

(i dati rimangono in memoria anche se il calcolatore è spento)

III. Capacità

IV. Costo

È più importante la capacità della velocità, tanto che spesso è preferibile.

Le memorie che conosciamo noi sono volatili, perché velocità e volatilità sono caratteristiche contrastanti. La velocità è una caratteristica che pesa sul costo (rapporto da 3 a 6 ordini di grandezza di prezzo sulla velocità, 2 ordini di grandezza di prezzo sulla volatilità). Si vorrebbe ideare una memoria veloce, non volatile e a basso costo.

Integrare insieme memorie con tecnologie diverse si raggiunge il compromesso, anche in maniera economica.

La memoria centrale consegue l'obiettivo di fornire alla CPU dati nel minor tempo possibile, contengono istruzioni e dati che servono in tempi brevi. Per questo, hanno capacità media e sono volatili.

La memoria di massa archivia dati e programmi in modo non volatile, perché possono

servire oggi come tra due anni. SSD

Recentemente, alla tecnologia elettronica sono state aggiunte le memorie flash, dette Solid State Drive (SSD). Al loro interno non hanno dischi magnetici, stanno rimpiazzando gli Hard Disk Drive (HDD). Hanno una velocità media e una capacità medio-alta, un costo per bit alto (sta avvenendo un abbattimento dei costi grazie allo sviluppo tecnologico).

Pagina 31

Martina Contestabile

Ingegneria Informatica

Comune A-L, A.A. 2020/21

Nell'accesso sequenziale, le parole di memoria sono in successione, quindi per accedere ad una parola della serie, la testina deve spostarsi lungo la memoria per tutte le parole precedenti (CD-ROM, memorie non volatili). Più una parola è lontana dalla testina, più il tempo di accesso è lungo.

Nell'accesso casuale, si può accedere ad una parola indipendentemente dalla posizione rispetto alle altre (dispositivi multiplexer), il tempo di accesso è sempre quello. Questa

Tecnologia viene usata nella memoria centrale. Nell'accesso misto (tipicamente memorie magnetiche), la testina si sposta in prossimità del dato (primo accesso), per poi raggiungere il dato di interesse (secondo accesso). È un mix tra casuale e sequenziale, dipende da come sono stati scritti i dati. La velocità non è ssa, dipende dalla posizione del dato nel disco. L'obiettivo è memorizzare dati e programmi in termini non volatili.

Nell'accesso associativo, non si utilizza l'indirizzo del dato nella memoria, ma l'indirizzo è contenuto in un'altra memoria, si accede, in generale, al dato per confronto. È utilizzata nella memoria centrale (nei cache), serve per fornire dati nel minor tempo possibile, usa un metodo di accesso simile a quello casuale, la velocità è ssa.

Esercizio: si consideri un banco a 16 registri ad uso generico:

  • Parole di memoria a 16 bit
  • Istruzioni del linguaggio macchina codificate
con 16bit di cui 4bit codi cano il codice operativo Scrivere il programma Assembly che memorizzi nella parola di memoria di indirizzo 0x21AA l'intero presente nella parola di memoria di indirizzo 0x21A8 se l'intero è positivo. In base dieci A=10 B=11...F=15 La parola si trova, nella memoria, nell'indirizzo 0x21AA. ★Poniamo che vogliamo mettere l'intero presente nella parola di memoria di indirizzo 0x21A8 nella parola di memoria di indirizzo 0x21AA solo se l'intero è positivo.★
Dettagli
A.A. 2020-2021
79 pagine
10 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher martina.contestabile01 di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Brescia o del prof Saetti Alessandro.