WEBVTT

00:01.250 --> 00:08.460
Sono in una fase successiva che coprirà in digitale il venerabile e sempre così utile microprocessore.

00:08.460 --> 00:16.530
Ora quello che è un microprocessore nel microprocessore è una vasta collezione di circuiti

00:16.530 --> 00:27.020
digitali interconnessi, ognuno dei quali esegue un lavoro specifico, ognuno dei quali viene chiamato in azione con un programma.

00:27.070 --> 00:33.160
Permettetemi di ripetere che un microprocessore è un microchip contenente un'enorme collezione di circuiti digitali interconnessi

00:33.160 --> 00:37.370
con ciascuno di quei circuiti che svolgono un lavoro specifico.

00:37.630 --> 00:45.290
E tu chiami ognuno di quei circuiti in azione con un programma, il programma è una

00:45.290 --> 00:51.950
serie di istruzioni che scrivi ognuna delle istruzioni che invocheremo sulla miriade di

00:51.950 --> 00:57.680
circuiti digitali che hai a disposizione tutti pre-costruiti all'interno del microprocessore.

00:57.680 --> 01:03.800
Quindi è molto versatile e hai questa banca di circuiti digitali pre-costruita per te e puoi

01:03.860 --> 01:08.870
attivare ognuno di questi circuiti di quante volte o di rado desideri.

01:08.870 --> 01:15.240
Ora in genere questi circuiti funzionano con i registri o leggendoli o scrivendoli.

01:15.320 --> 01:18.850
Alcuni di questi registri saranno collegati all'esterno del chip.

01:19.010 --> 01:22.980
Quindi puoi usare i registri per connetterti al mondo esterno.

01:24.330 --> 01:30.110
A volte il circuito digitale che chiamate all'azione può essere un convertitore analogico-digitale.

01:30.120 --> 01:32.180
Ora ne parleremo più in dettaglio più avanti.

01:32.190 --> 01:38.820
Ma è un circuito molto complesso che prende una tensione analogica per misurarlo e sputa

01:39.360 --> 01:45.110
un numero binario che rappresenta quanto grande o piccola sia quella tensione analogica.

01:45.120 --> 01:52.650
In ogni caso il CPQ o unità di elaborazione centrale è un microchip contenente un blocco di circuiti digitali

01:52.650 --> 01:55.130
che rispondono a un programma.

01:55.200 --> 02:00.790
Abbiamo visto quello che abbiamo chiamato la linea dell'orologio sul registro Flip-Flop di tipo R D.

02:00.990 --> 02:07.410
L'orologio si trova nella parte centrale del CPQ e l'orologio emette un flusso continuo di impulsi

02:07.410 --> 02:10.030
che attivano le funzioni del CPQ.

02:10.260 --> 02:17.370
Per esempio c'è un contatore di programma che è solo un registro ma che il registro ha nel circuito

02:17.490 --> 02:24.720
digitale unito che incrementa il numero nel registro di uno ogni volta che vede un orologio che fa girare

02:26.070 --> 02:30.520
il programma contro uno di quei circuiti digitali all'interno del microprocessore.

02:30.540 --> 02:32.810
Ora l'orologio guida tutte le funzioni.

02:32.830 --> 02:38.190
Il CPQ che fa sì che passi attraverso il programma, il programma è

02:43.210 --> 02:49.960
memorizzato nella memoria di una memoria in cui la memoria del programma e il bus di indirizzo vanno a

02:49.960 --> 02:55.810
ciascuna di quelle posizioni di memoria che il bus indirizzo è pilotato dal contatore del programma.

02:55.960 --> 03:01.900
Così come il contatore del programma conta con ogni impulso di clock, continua a passare attraverso le posizioni di

03:01.900 --> 03:02.910
memoria del programma.

03:03.040 --> 03:11.030
Quindi passa attraverso il programma una riga alla volta ogni posizione di memoria memorizza una riga del

03:11.210 --> 03:13.270
programma il tuo codice.

03:13.270 --> 03:16.460
Vediamo quindi che il contatore del programma è esadecimale 0.

03:16.510 --> 03:23.160
A Questo scende il bus degli indirizzi e collega la posizione di memoria a zero modo al bus dati.

03:23.330 --> 03:27.700
Il tuo programma che hai scritto è stato memorizzato nella memoria del programma.

03:28.180 --> 03:31.540
0 8 sarebbe la decima riga del tuo codice.

03:31.550 --> 03:32.840
Destra.

03:32.900 --> 03:36.410
Quindi diciamo che la riga 10 del tuo programma è esadecimale.

03:36.440 --> 03:38.450
Una teoria.

03:38.450 --> 03:44.180
Il motivo per cui l'hai scritto è perché volevi attivare il circuito digitale,

03:44.180 --> 03:46.750
che è un indirizzo 3.

03:47.210 --> 03:51.610
Così l'A-3 esadecimale viene scaricato su questo bus dati.

03:51.650 --> 03:57.050
C'era un altro circuito che chiamerò Fred Fred come tutti gli altri nel microprocessore è

03:57.050 --> 03:58.170
guidato dall'orologio.

03:58.250 --> 04:04.130
Fred sa che questa prossima riga del programma chiamerà uno dei circuiti di utilità.

04:04.160 --> 04:10.980
Quindi Fred prende quell'A3 e lo scarica sul bus che controlla tutti i circuiti di utilità.

04:11.430 --> 04:19.250
A-3 decrementa che il bus è de multiplexato e fa scattare un registro all'indirizzo A-3 che attiva il circuito

04:19.250 --> 04:23.780
di utilità in un circuito di tutte le tre chiamate.

04:23.780 --> 04:27.580
Cindy Cindy riceve la chiamata per andare al lavoro.

04:27.670 --> 04:31.930
La prima cosa che fa è dire ad un amico hey che ho bisogno del prossimo numero nel programma.

04:31.930 --> 04:34.710
Saranno i dati di cui ho bisogno.

04:34.720 --> 04:41.710
L'unico scopo di Cindy nella vita come circuito di utilità è quello di prendere il prossimo numero

04:41.710 --> 04:48.890
nel programma e di memorizzarlo in un altro registro che è collegato a otto pin all'esterno del microchip.

04:49.420 --> 04:56.020
Quindi Cindy aspetta il prossimo ciclo di clock che fa scattare il contatore del programma a

04:56.020 --> 05:02.160
contare uno che collega la prossima posizione di memoria per inviarlo memorizzato sul database.

05:02.350 --> 05:05.710
Fred non ha fatto nulla perché Cindy gli ha detto di non farlo.

05:05.710 --> 05:07.610
Quindi Cindy prende quel numero.

05:07.810 --> 05:13.390
Cindy conosce l'indirizzo specifico del registro che è collegato a quegli otto pin che vanno

05:13.390 --> 05:14.680
al mondo esterno.

05:14.740 --> 05:22.120
Quindi lascia l'indirizzo sul bus degli indirizzi e mette il numero che ha imposto su un altro

05:22.120 --> 05:30.780
bus che corre per tutto il tempo, quasi come se inviassi la posta, semplicemente ha messo l'indirizzo sul bus degli indirizzi

05:30.790 --> 05:37.810
che si è multiplexato dall'altra parte attivando il registro per archiviare il numero che ora si

05:37.870 --> 05:39.850
trova nel database centrale.

05:39.850 --> 05:47.130
Quel numero è risultato essere binario 0 0 0 1 0 1 0 0 0 che è ciò che 1 4 e esadecimale.

05:47.500 --> 05:52.210
Hai messo quel numero in un perché hai scelto quel numero.

05:52.210 --> 05:58.300
Perché in questo particolare caso, quando hai costruito questo robot, nel microprocessore c'erano questi due piedini che si accendono

05:58.720 --> 06:01.330
per azionare i motori del tuo robot.

06:01.690 --> 06:05.140
Questi due motori di guida uno su ciascun lato della traccia potrebbero essere un robot.

06:05.200 --> 06:07.300
Guida i binari in avanti.

06:07.510 --> 06:14.750
Quando hai costruito tutti i circuiti, hai collegato questi motori a questi due pin sul microprocessore.

06:14.920 --> 06:21.880
Mettendo quel numero come linea nel tuo programma hai acceso quei due motori ma non altri due

06:21.880 --> 06:27.400
motori o luci sul tuo robot che erano collegati agli altri pin.

06:27.550 --> 06:30.190
Se avessi voluto accendere i fari del robot.

06:30.250 --> 06:36.400
Beh, li avevi collegati al pin 1 in modo che avresti invece scritto in un numero binario di 0

06:36.580 --> 06:40.300
0 0 1 0 1 0 o 1 nel tuo programma.

06:40.300 --> 06:46.840
Questo metterebbe un alto sul pin 1 e accendendo i circuiti di controllo dei fari.

06:46.840 --> 06:49.960
Ora Cindy lo sa e non le importa.

06:49.960 --> 06:56.500
Il suo compito è semplicemente quello di prendere il numero che le hai dato e inviarlo dove mai hai voluto

06:56.500 --> 06:57.450
quel numero.

06:57.500 --> 07:00.150
È come la signora dell'ufficio postale.

07:00.280 --> 07:02.170
A lei non importa cosa c'è nella lettera.

07:02.170 --> 07:06.780
Si limita a fare in modo che venga recapitata all'indirizzo giusto.

07:06.820 --> 07:08.350
Quindi Cindy ora ha fatto il suo lavoro.

07:08.350 --> 07:11.380
Adesso dice a Fred Ok che ho finito adesso.

07:11.470 --> 07:18.760
E Cindy va a dormire Fred non sa che la prossima riga del programma sarà un'istruzione.

07:18.760 --> 07:23.600
Chiamerà uno dei tanti circuiti di utilità disponibili.

07:24.010 --> 07:30.790
Il successivo impulso di clock incrementa il contatore del programma inviando la riga successiva del programma

07:30.790 --> 07:33.540
sul bus dati che Fred afferra.

07:33.580 --> 07:36.940
Sa che questo è l'indirizzo di uno dei circuiti di utilità.

07:37.060 --> 07:42.340
Quindi manda quel numero sul bus degli indirizzi che controlla i circuiti di utilità.

07:42.340 --> 07:47.260
È de multiplexato che tutti i circuiti di utilità ma solo una partita ovviamente.

07:47.500 --> 07:51.370
E quello era il circuito delle utilities che chiamerò Clinton.

07:51.460 --> 07:54.220
Quindi il segnale sveglia Clinton.

07:54.670 --> 07:58.600
Il lavoro di Clinton è strano e richiede diversi passaggi.

07:58.630 --> 08:01.410
Quindi Clinton riceve la chiamata per lavorare e dice a Fred.

08:01.420 --> 08:08.070
OK Fred Avrò bisogno del prossimo numero del programma e poi ci vorrà un po ', quindi Fred aspetta il

08:08.070 --> 08:14.600
prossimo impulso di clock e la prossima riga nel programma per essere trasmessa fino alla data di noi.

08:14.700 --> 08:21.560
E poi Fred mette effettivamente in pausa il contatore del programma e poi legge il foglio o qualcosa per un po 'mentre

08:21.600 --> 08:23.440
Clint fa il suo lavoro.

08:23.910 --> 08:29.760
Il compito di Clinton è quello di ottenere la riga successiva nella memoria del programma, che

08:29.910 --> 08:37.780
è l'indirizzo di una posizione di memoria. Clinton aspetta che il prossimo numero scenda dal databus che il suo circuito afferra quel

08:37.780 --> 08:44.830
numero e lo fa cadere dritto sul bus centrale degli indirizzi nel cuore del CPQ che attiva una posizione

08:45.460 --> 08:50.920
di memoria per inviare il numero che ha memorizzato nel database centrale del CPQ.

08:51.550 --> 08:54.400
Clinton ha accesso a questo database centrale.

08:54.550 --> 08:58.560
Ma Clinton come tutti gli altri nel CPQ che è guidato dall'orologio.

08:58.870 --> 09:05.050
Il successivo impulso di clock lo fa scattare per estrarre quel numero dal bus dati caricato in

09:05.050 --> 09:12.340
un registro speciale che ha nel suo circuito al successivo impulso del clock, il suo circuito legge un qualsiasi numero in

09:12.430 --> 09:14.290
quel registro e lo capovolge.

09:14.520 --> 09:21.040
Ognuno è trasformato in uno zero e ogni zero è trasformato in uno che è il lavoro di Clinton.

09:21.070 --> 09:23.530
Questo è ciò che fanno i circuiti.

09:23.890 --> 09:30.370
Il prossimo impulso di clock innesca i circuiti di Clinton in modo che mandi di nuovo quell'indirizzo che aveva

09:30.370 --> 09:37.210
prima sul bus centrale degli indirizzi e scarichi il nuovo numero convertito dal suo registro lungo il bus dati centrale

09:37.210 --> 09:42.680
proprio nel punto in cui li ha presi da dove ha ha ottenuto il numero

09:42.730 --> 09:44.180
Il lavoro di Clinton è terminato.

09:44.470 --> 09:47.160
Quindi si sveglia Fred e dice che Yo Fred ho finito.

09:47.200 --> 09:49.280
E Clinton si riaddormenta.

09:49.690 --> 09:55.630
Fred ora prende nuovamente il comando sapendo che il prossimo numero a uscire dal programma

09:55.750 --> 09:58.990
sarà l'indirizzo di uno dei circuiti di utilità.

09:58.990 --> 10:06.610
Quindi Fred è pronto a trasmettere le tue prossime istruzioni al prossimo circuito di utilità di cui sono tutti lì seduti

10:06.610 --> 10:09.190
in attesa di eseguire i tuoi ordini.

10:10.440 --> 10:13.940
Quindi puoi vedere questo ciclo di passaggi in corso.

10:13.940 --> 10:22.170
Si noti che alcuni lavori richiedono più passaggi rispetto ad altri e alcuni lavori richiedono più impulsi di clock

10:22.830 --> 10:26.810
rispetto ad altri perché ogni passo è guidato dall'orologio.

10:26.820 --> 10:31.710
Noterai anche che l'intero programma non è altro che numeri esadecimali.

10:31.710 --> 10:32.880
Questo è tutto.

10:32.910 --> 10:38.730
In effetti, tutto ciò che fa il microprocessore è manipolare i numeri fino al livello di un

10:38.820 --> 10:39.650
singolo bit.

10:40.050 --> 10:47.070
Ma se riesci a immaginarlo, i comandi o le istruzioni del programma sono in effetti un numero univoco

10:47.070 --> 10:51.390
che attiva un circuito di utilità specifico all'interno del microprocessore.

10:51.390 --> 10:56.640
Ora questo è strano all'inizio perché siamo abituati a parlare una lingua usando lettere e parole e

10:56.640 --> 10:57.360
cose giuste.

10:57.720 --> 11:02.880
Ma sorprendentemente ti ritrovi presto a parlare questo linguaggio di programmazione.

11:03.300 --> 11:07.670
Questo linguaggio di programmazione è chiamato codice macchina.

11:07.680 --> 11:12.840
Ora, quando stavo imparando i microprocessori al college, avevamo una scheda di

11:12.840 --> 11:18.670
addestramento a microprocessore e qui puoi vedere solo una tastiera esadecimale e un display esadecimale.

11:18.780 --> 11:23.950
Avevamo un foglio con tutte le istruzioni e ci sono numeri esadecimali.

11:24.210 --> 11:31.040
Ma hai rapidamente imparato e memorizzato i numeri per le istruzioni più comuni.

11:31.100 --> 11:39.710
Quindi, mentre scrivi il programma, vorresti istruire il processore a moltiplicare due numeri, il valore esadecimale

11:39.710 --> 11:44.050
per quel comando sarebbe dire esadecimale a e.

11:44.450 --> 11:47.870
Quindi entreresti nella memoria del programma.

11:47.900 --> 11:54.550
Quindi, dopo un po 'di programmazione, non hai nemmeno pensato, oh, moltiplicato, hai pensato istintivamente.

11:54.970 --> 11:56.700
OK, mi sto sviando.

11:56.720 --> 12:02.090
La linea di fondo è che il codice macchina è in realtà solo numeri

12:02.090 --> 12:10.460
e quindi anche se programmeremo a parole quelle parole vengono convertite in questi numeri e puoi vedere come i numeri funzionano effettivamente

12:10.760 --> 12:12.020
all'interno del microprocessore.
