View Full Version : La fine dell'elettronica basata sul silicio...
demonbl@ck
03-04-2010, 01:26
Oggi stavo riflettendo sul fatto che ormai costruiamo processori con processo produttivo a 32nm, tra poco si dovrebbe passare ai 25.
Prima o poi si arriverà al limite fisico per cui sarà impossibile restringere ulteriormente le dimensioni dei componenti, e i chip inizieranno ad ingrandirsi...
Adesso il die di una CPU occupa generalmente 1,5cm^2. Quanto potremo allargarli prima di arrivare ad avere problemi del tipo "attenzione, fusione del nucleo tra 30 secondi"? 5,6,7 cm^2? diventerà la normalità avere sistemi dual/trial/quad/sarcazzo processor raffreddati a liquido?
Insomma, ci avviciniamo alla fine dell'era dell'elettronica basata sul silicio?
Quali sono le tecnologie che potrebbero rappresentare il passo successivo? Computer ottici, computer quantistici.... a voi la parola! :read:
blindwrite
03-04-2010, 07:22
sono in studio e test 28nm e 20nm e shrink ottici annessi con roadmap fino a 7nm.
In più si parla nel futuro di puntare su stack impilati ad esempio uno stack 20nm per alta integrazione uno stack 45/65nm e chiusura a 180nm per la parte analogica.
Ci sono tantissime strade da esplorare ancora, il problema è il costo e per questo di aziende che fanno R&D sono rimaste solo Intel e l'alleanza ISDA.
Oggi stavo riflettendo sul fatto che ormai costruiamo processori con processo produttivo a 32nm, tra poco si dovrebbe passare ai 25.
Prima o poi si arriverà al limite fisico per cui sarà impossibile restringere ulteriormente le dimensioni dei componenti, e i chip inizieranno ad ingrandirsi...
Adesso il die di una CPU occupa generalmente 1,5cm^2. Quanto potremo allargarli prima di arrivare ad avere problemi del tipo "attenzione, fusione del nucleo tra 30 secondi"? 5,6,7 cm^2? diventerà la normalità avere sistemi dual/trial/quad/sarcazzo processor raffreddati a liquido?
Insomma, ci avviciniamo alla fine dell'era dell'elettronica basata sul silicio?
Quali sono le tecnologie che potrebbero rappresentare il passo successivo? Computer ottici, computer quantistici.... a voi la parola! :read:
Intel ha affermato che fino ai 16nm loro sono tranquilli, e ha anche confermato la sua roadmap tick-tock. Quindi 22nm nel 2012 e 16nm nel 2014.
Innanzitutto ci sono i tri-gate tridimensionali:
http://it.wikipedia.org/wiki/Transistor_3D
La comunicazione ottica sarà sempre più importante, e sono certo che in nel prossimo decennio sarà fondamentale per raggiungere bande passanti di svariati Terabyte/s.
Lo stacking dei chip è un'altra idea molto promettente. Contribuirebbe ad aumentare l'area del chip di svariate volte.
Sul fronte della tecnologia cutting-edge ci sono varie alternative:
* chip probabilistici: circuiti elettronici capaci di produrre risultati non completamente corretti. Utili dove la precisione è di poco conto (ambito consumer). Sono circa 7 volte più efficenti energeticamente di un circuito attuale. Possibile impiego in pochi anni.
* nanotubi di carbonio/grafene: promettenti materiali con i quali potremmo sfondare agevolmente gli 1nm di larghezza di gate. Si stanno studiando nuove tecnologie produttive non più basate sulla litografia o l'impiego di luce, ma su polimeri autoassemblanti. Possibile impiego entro la fine di questo decennio.
* memristors: nuovo elemento base dell'elettronica. Impiego in pochi anni.
http://it.wikipedia.org/wiki/Memristor
* spintronica
* logica a DNA/RNA: utilizzo di miliardi di sequenze nucleotidiche per creare chip biochimici altamente paralelizzati.
* quantistica
Quando avremmo raggiunto il limite fisico ci saranno già altre tecnologie... :asd:
processori quantistici in primis, IMHO
per chi crede che:
elettronica = cpu e gpu
MA LASCIA PERDERE... :O
entanglement
03-04-2010, 12:35
Quando avremmo raggiunto il limite fisico ci saranno già altre tecnologie... :asd:
processori quantistici in primis, IMHO
prima penso che si considererà il grafene, poi le piste ottiche. servono trasduttori elettroottici decenti però, il niobato di litio (http://en.wikipedia.org/wiki/Lithium_niobate) non penso sia sufficiente, in compenso è bello costoso
marchigiano
03-04-2010, 13:01
Oggi stavo riflettendo sul fatto che ormai costruiamo processori con processo produttivo a 32nm, tra poco si dovrebbe passare ai 25.
Prima o poi si arriverà al limite fisico per cui sarà impossibile restringere ulteriormente le dimensioni dei componenti, e i chip inizieranno ad ingrandirsi...
Adesso il die di una CPU occupa generalmente 1,5cm^2. Quanto potremo allargarli prima di arrivare ad avere problemi del tipo "attenzione, fusione del nucleo tra 30 secondi"? 5,6,7 cm^2? diventerà la normalità avere sistemi dual/trial/quad/sarcazzo processor raffreddati a liquido?
Insomma, ci avviciniamo alla fine dell'era dell'elettronica basata sul silicio?
Quali sono le tecnologie che potrebbero rappresentare il passo successivo? Computer ottici, computer quantistici.... a voi la parola! :read:
chip grandi fanno aumentare i costi esponenzialmente, primo perchè ovviamente in un wafer di X cm2 ci puoi incidere meno chip, secondo perchè ogni difetto sul silicio rende inutilizzabile l'intero chip e quindi un'area maggiore (che se i produttori aggirano un po il problema vendendo gpu e cpu con core disabilitati)
Il problema piu' grande di eventuali chip di grandi dimensioni, ad altissime frequenze, non e' tanto la temperatura (che comunque e' un grosso problema), ma la velocita' della luce.
a 3GHz la lunghezza d'onda e' pari a
http://upload.wikimedia.org/math/d/e/b/deb49a8e3f6af00b4bab7df6551f8ddd.png
3*10^8 / 3*10^9 = 0.1m = 10cm
un chip di dimensioni oltre 10cm., operato alla frequenza di 3GHz risulterebbe davvero difficile da controllare
Il problema piu' grande di eventuali chip di grandi dimensioni, ad altissime frequenze, non e' tanto la temperatura (che comunque e' un grosso problema), ma la velocita' della luce.
a 3GHz la lunghezza d'onda e' pari a
http://upload.wikimedia.org/math/d/e/b/deb49a8e3f6af00b4bab7df6551f8ddd.png
3*10^8 / 3*10^9 = 0.1m = 10cm
un chip di dimensioni oltre 10cm., operato alla frequenza di 3GHz risulterebbe davvero difficile da controllare
Non ho mica capito il ragionamento...
Dumah Brazorf
04-04-2010, 00:14
Beh le dimensioni non diminuiscono finchè aumentano core e cache così come si evita la fusione riuscendo a mantenere consumi umani.
Ora sono delle sberle da 1miliardi di transistor per le cpu e 3bilioni per le gpu.
Non ho mica capito il ragionamento...
Detto terra-terra.
Dentro un microprocessore, tra le altre strutture, ci sono delle celle di memoria, chiamate flip-flop, ciascuno dei quali composto da una manciata di transistor, ciascuno in grado di memorizzare un bit.
I flip-flop si trovano dappertutto. I registri utente (e quelli nascosti) sono coposti da flip-flop. All'ingresso di ogni stadio di pipeline c'e' un nastro di flip-flop. etc.
Il segnale di clock del microprocessore, proprio quello di frequenza 3GHz di cui sopra, serve proprio per comandare a tutti i flip-flop l'istante preciso in cui campionare il rispettivo segnale di ingresso. Il valore del segnale di ingresso verra' memorizzato e mantenuto stabile per tutto il ciclo successivo di clock.
Nelle pipeline p.es. tra un nastro di flip-flop e un altro, ci sono tipicamente circuiti combinatori di porte and, or, not, etc. atti a prendere i valori dei bit del nastro di partenza e calolare qualcosa, arrivando ai segnali di uscita che verranno campionati dal nastro di flip flop successivo, quando giungera' il segnale di clock.
Ora, Immagina il processore nudo, visto a rallentatore molto lento.
Immagina di evidenziare il percorso del segnale di clock, un filo unico ramificato su tutto il processore.
E immagina che quando il clock e' a 0, tale percorso sia tutto blu , mentre quando il clock e' a 1, tale percorso sia tutto rosso.
Il segnale di clock entra da un (talvolta piu' d'uno) pin del microprocessore, e da li' comincia a distribuirsi lentamente dentro il processore.
Prima il clock era a 0, e il microprocessore era tutto blu. E' entrato un 1. Il microprocessore inizia a dipingersi di rosso, e i flip flop campionano i valori dei rispettivi segnali di ingresso.
Se il microprocessore e' piu' piccolo di 10 cm, il segnale di clock ha tempo di propagarsi su tutto la superficie, PRIMA che giunga il nuovo valore di clock.
Siamo sicuri che il processore e' tutto sincrono, e c'e' tempo di stabilizzare i segnali prima che entri il nuovo valore di clock.
Allargare troppo la superficie, alle frequenze in cui siamo in gioco oggi, implicherebbe che il processore potrebbe essere meta' rosso e meta' blu, o addirittura rosso-blu-rosso ma del ciclo precedente. E via ancora peggiorando.
Il processore inizia ad avere comportamenti asincroni, difficili da gestire e ancora di piu' da prevedere e progettare.
Ma è necessario che passi tutta l'onda (per una lunghezza d'onda) per far cambiare lo stato dei flip-flop?
Ma è necessario che passi tutta l'onda (per una lunghezza d'onda) per far cambiare lo stato dei flip-flop?
In che senso?
Ovviamente ogni flip-flop "sente" solo cio che capita attorno a lui.
Faccio un esempio.
Ci sono vari tipi di flip-flop, tutti con lo scopo di memorizzare 1 bit di informazione, sotto determinati requisiti.
Questo qui descritto ha in pratica sono 4 fili, 3 ingressi: I, S, C e un'uscita O (Piu' alimentazione, e terra)
Uno e' il segnale di ingresso (I), che varra' 0 o 1 a seconda della logica combinatoria di ingresso, che e' quanto si vuole potenzialmente memorizzare.
Uno e' il segnale che dice se il flip flop deve campionare oppure no (S). Varra' 0 se non deve campionare e varra' 1 se deve campionare.
Poi c'e' il segnale di clock (C). Nell'istante in cui il segnale di clock passa da 0 a 1, se il segnale S vale 1, allora il valore dell'ingresso I viene campionato, e verra' memorizzato all'interno del flip flop.
E tale stato memorizzato, 0 o 1, verra' mantenuto stabile sul filo di uscita (O), per sempre, fino a che c'e' alimentazione o fino a che non capita di nuovo la condizione per cui occorre cambiare tale valore.
Quindi la risposta (forse). Essendo che nel nostro universo c'e' il principio di localita', il flip flop non sa se l'onda di clock e' transitata su tutto il microchip. Lui non sa neppure di essere su un microchip.
Sente solo i valori locali dei propri segnali di ingresso, ed agisce a seconda di tali valori locali.
Detto terra-terra.
Dentro un microprocessore, tra le altre strutture, ci sono delle celle di memoria, chiamate flip-flop, ciascuno dei quali composto da una manciata di transistor, ciascuno in grado di memorizzare un bit.
I flip-flop si trovano dappertutto. I registri utente (e quelli nascosti) sono coposti da flip-flop. All'ingresso di ogni stadio di pipeline c'e' un nastro di flip-flop. etc.
Il segnale di clock del microprocessore, proprio quello di frequenza 3GHz di cui sopra, serve proprio per comandare a tutti i flip-flop l'istante preciso in cui campionare il rispettivo segnale di ingresso. Il valore del segnale di ingresso verra' memorizzato e mantenuto stabile per tutto il ciclo successivo di clock.
Nelle pipeline p.es. tra un nastro di flip-flop e un altro, ci sono tipicamente circuiti combinatori di porte and, or, not, etc. atti a prendere i valori dei bit del nastro di partenza e calolare qualcosa, arrivando ai segnali di uscita che verranno campionati dal nastro di flip flop successivo, quando giungera' il segnale di clock.
Ora, Immagina il processore nudo, visto a rallentatore molto lento.
Immagina di evidenziare il percorso del segnale di clock, un filo unico ramificato su tutto il processore.
E immagina che quando il clock e' a 0, tale percorso sia tutto blu , mentre quando il clock e' a 1, tale percorso sia tutto rosso.
Il segnale di clock entra da un (talvolta piu' d'uno) pin del microprocessore, e da li' comincia a distribuirsi lentamente dentro il processore.
Prima il clock era a 0, e il microprocessore era tutto blu. E' entrato un 1. Il microprocessore inizia a dipingersi di rosso, e i flip flop campionano i valori dei rispettivi segnali di ingresso.
Se il microprocessore e' piu' piccolo di 10 cm, il segnale di clock ha tempo di propagarsi su tutto la superficie, PRIMA che giunga il nuovo valore di clock.
Siamo sicuri che il processore e' tutto sincrono, e c'e' tempo di stabilizzare i segnali prima che entri il nuovo valore di clock.
Allargare troppo la superficie, alle frequenze in cui siamo in gioco oggi, implicherebbe che il processore potrebbe essere meta' rosso e meta' blu, o addirittura rosso-blu-rosso ma del ciclo precedente. E via ancora peggiorando.
Il processore inizia ad avere comportamenti asincroni, difficili da gestire e ancora di piu' da prevedere e progettare.
:wtf:
mi pare che ci siano giusto un filino di cose errate in questo ragionamento...
a partire dai presupposti per cui la pipeline si estenda per tutta la superficie del chip continuando col presupposto per cui tutto il chip debba essere pilotato da un unico clock, senza parlare del presupposto per cui tutte le parti del chip debbano essere sincrone...
poi vabbè...
ci sarebbero da considerare tutti i problemi reali nella propagazione del clock, che fanno si che i fenomeni che paventi esistono già per i chip normali e di volta in volta vengono risolti, visto che di fatto i chip funzionano...
Ah dimenticavo:
la stessa esistenza di un chip 10cm*10cm è un assurdo teorico.
stranger123
04-04-2010, 12:50
Attenzione!
Che scendendo troppo nel piccolo, il principio di indeterminazione di Heisenberg comincia a diventare importante, e se diventa importante è possibile si realizzano cose strane tipo questo.
http://www.hwupgrade.it/forum/showthread.php?t=2162766
Attenzione!
Che scendendo troppo nel piccolo, il principio di indeterminazione di Heisenberg comincia a diventare importante, e se diventa importante è possibile si realizzano cose strane tipo questo.
Link
questo è un problema molto meno complicato..
si chiama crossposting ed è vietato dal regolamento :=)
Duke.N.4ever
04-04-2010, 13:07
io credo ke si spinga sui chip fotonici tipo le sperimentazioni ibm degli ultimi tempi, processori quantici e grafene e nanotubi al carbonio :O
Ziosilvio
04-04-2010, 18:33
Attenzione!
Che scendendo troppo nel piccolo, il principio di indeterminazione di Heisenberg comincia a diventare importante, e se diventa importante è possibile si realizzano cose strane tipo questo.
http://link/
questo è un problema molto meno complicato..
si chiama crossposting ed è vietato dal regolamento :=)
Dal regolamento, e anche dalla buona educazione.
stranger123, non puoi e non devi pretendere che tutto il forum stia appresso ai tuoi problemi.
Questa è un'ammonizione.
A proposito:
io credo ke si spinga sui chip fotonici tipo le sperimentazioni ibm degli ultimi tempi, processori quantici e grafene e nanotubi al carbonio :O
Non è buona educazione neanche scrivere in cattivo italiano, o in italiano telegrafico.
Quindi niente "k" al posto di "ch". OK?
blindwrite
04-04-2010, 20:35
Di problemi nel mondo dei semiconduttori per elettronica ce ne sono tanti, ma nesuno di quelli elencati è un problema primario.
I problemi più grandi sono le interconnessioni nel design del circuito, cercare di mantenere una densità di strutture costanti, creare regole di design in modo tale da facilitare la litografia. E non per ulitmo affinare gli strumenti che si utilizzano nel design che spesso sono o insufficienti come precisione o eccessivamente lenti per essere utilizzati per larga integrazione.
La lunghezza d'onda non è un problema e non vedo come protrebbe esserlo.
Per chi parla dello step successivo, le aziende di semiconduttori non spingono a cambiare, preferiscono aver problemi a mettere due atomi uno accanto all'altro che pensare ad altro.
Tutto quello che esula dai semiconduttori classici sono studi di università e centri di ricerca
:wtf:
mi pare che ci siano giusto un filino di cose errate in questo ragionamento...
a partire dai presupposti per cui la pipeline si estenda per tutta la superficie
Che non c'era
del chip continuando col presupposto per cui tutto il chip debba essere pilotato da un unico clock
Ovviamente si parlava della parte core, non di eventuali parti che possono essere tra loro asincrone, come la cache vs core.
senza parlare del presupposto per cui tutte le parti del chip debbano essere sincrone... Vedi sopra
ci sarebbero da considerare tutti i problemi reali nella propagazione del clock, che fanno si che i fenomeni che paventi esistono già per i chip normali e di volta in volta vengono risolti, visto che di fatto i chip funzionano...
Certo, funzionano, e uno dei motivi per cui funzionano senza troppi problemi e' proprio il fatto che siano di dimensioni inferiori alla lunghezza d'onda del clock.
Ah dimenticavo:
la stessa esistenza di un chip 10cm*10cm è un assurdo teorico.
Fai bene a ricordarlo, (anche se avrei detto assurdo pratico piu' che teorico), ma se avessi letto anche prima, si parlava di eventuali problemi per chip troppo grossi, che oggi appunto non ci sono.
Ovviamente seguendo tutto il discorso, non mi si puo' obiettare che uno dei problemi di eventuali chip troppo grossi e' che... siano troppo grossi.
E' sufficiente che il segnale di propagazione del clock sia piu' veloce della propagazione di ogni altro segnale, e che la propagazione dei segnali nei gruppi di logiche combinatorie sia piu' veloce di un periodo di clock (Questo e' stato per esempio storicamente il problema di uno degli stadi di pipeline della moltiplicazione del Penitum 60), per evitare quindi di campionare troppo presto o troppo tardi. Ma se il fronti d'onda del clock fossero piu' d'uno a causa della dimensione del chip e della finitezza della velocita' della luce, allora si comincerebbero ad avere problemi molto grossi.
Comunque non ho capito se lavori o magari hai anche solo lavorato nel campo, oppure se parli solo per sentito dire o per intuizione/ragionamento.
Io, purtroppo solo limitatamente, ci ho lavorato. Mi piaceva davvero tanto, ma il fatto che in Europa i vendor progettisti di microprocessori sono davvero pochi e limitati, ho dovuto lasciare perdere per gettarmi nella progettazione software.
Che non c'era
Ovviamente si parlava della parte core, non di eventuali parti che possono essere tra loro asincrone, come la cache vs core.
Vedi sopra
ovviamente si danno per sottintese molte cose allora...
Certo, funzionano, e uno dei motivi per cui funzionano senza troppi problemi e' proprio il fatto che siano di dimensioni inferiori alla lunghezza d'onda del clock.
mah... sarà...
una scheda madre è pur sempre un circuito che in buona parte è digitale, e i segnali digitali mi pare che hanno lunghezza d'onda inferiore alle dimensioni della scheda.
secondo il tuo ragionamento non dovrebbero funzionare...
Fai bene a ricordarlo, (anche se avrei detto assurdo pratico piu' che teorico), ma se avessi letto anche prima, si parlava di eventuali problemi per chip troppo grossi, che oggi appunto non ci sono.
boh...
non si spiega però perchè un integrato di 10 cm di lato dovrebbe essere difficile da controllare... boh...
Ma se il fronti d'onda del clock fossero piu' d'uno a causa della dimensione del chip e della finitezza della velocita' della luce, allora si comincerebbero ad avere problemi molto grossi.
sinceramente sta frase mica si capisce, a quanto ne so io il clock è un segnale che varia nel tempo, ad intervalli regolari, quindi i fronti d'onda sono per forza più d'uno...
inoltre un clock può assumere solo uno stato alla volta. 0 1 2, tutti gli stati che vuoi, ma non più di uno alla volta, quindi non è come il gatto di schrodinger che è vivo e morto allo stesso tempo...
per cui i fronti d'onda sono sempre distinti.
detto questo, veniamo al concreto del tuo problema.
se il chip è lungo, significa che mentre da una parte del chip il clock è passato da zero ad 1, nell'altra parte il clock è rimasto a zero.
questo fenomeno si chiama, banalmente, ritardo, e se ne deve tenere conto già adesso, nonostante il chip sia più piccolo della lunghezza d'onda.
infatti le interconnessioni che passano dal generatore del clock alle varie parti del chip hanno lunghezze diverse, ed inoltre, in virtu delle capacità parassite, fanno si che la variazione del clock avvenga con modalità differenti lungo le varie parti del chip.
questo fa si che le diverse parti del chip non siano mai perfettamente sincrone. e di conseguenza si rende necessario adoperare diversi accorgimenti per aggirare il problema.
di questi accorgimenti però, usare un clock più lento, e quindi con una lunghezza d'onda minaggiore, è solo una delle soluzioni. a dire il vero una delle soluzioni al problema è quella opposta, ovvero usare un clock maggiore di quello necessario, e tramite una pll generare localmente i clock che gestiscono le varie parti, anche se devo ammettere che solitamente si tratta di soluzioni adottate nell'ambito dei sistem on chip, e non delle cpu...
Comunque non ho capito se lavori o magari hai anche solo lavorato nel campo, oppure se parli solo per sentito dire o per intuizione/ragionamento.
non è che sposti molto sapere perchè ho avuto la disgrazia di occuparmene, comunque parlo per sentito dire, tant'è che il mio primo post ironizzava sul fatto che ogni volta che si sente parlare di elettronica vale il solito luogo comune cpu gpu e memorie e pare pure che siccome si passa ai 10-19 nàno metri, diventi automaticamente impossibile continuare a produrre con la tecnologia più vecchia... ma i cellulari che so di marzapane? :stordita: sempre roba elettronica sono...
sinceramente sta frase mica si capisce, a quanto ne so io il clock è un segnale che varia nel tempo, ad intervalli regolari, quindi i fronti d'onda sono per forza più d'uno...
Ma non contemporaneamente piu' fronti d'onda presenti sul chip, che e' il problema che insorge quando la dimensione del chip e' maggiore della lunghezza d'onda.
questo fa si che le diverse parti del chip non siano mai perfettamente sincrone. e di conseguenza si rende necessario adoperare diversi accorgimenti per aggirare il problema.
Ma che le varie parti non siano sincrone gia' oggi e non lo siano mai state e' chiaro, gia' io qualche post fa avevo portato l'esempio del chip colorato lentamente da blu a rosso. Ovvio che non era quella l'asincronia di cui parlavo.
Vediamo se riesco a spiegarmi (non sono un professore, spiegare non e' la mia professione).
In un chip normale con dimensione minore della lunghezza d'onda oggi ho la certezza che tutti i segnali delle combinatorie (che sono asincrone) si siano stabilizzati su tutto il circuito PRIMA che entri il nuovo fronte di clock (discendente). Quando entrera' il nuovo fronte di clock esso si propaghera' il piu' velocemente possibile e campionero' tutti i flip flop, e le combinatorie inzieranno a calcolare i nuovi valori e a stabilizzarsi per il prossimo fronte di clock.
Non devo in pratica fare particolari considerazioni geometriche sulla posizione e il disegno fisico dei circuiti combinatori, per farli "vivere" e terminare le loro operazioni tutte sullo stesso fronte di clock, proprio perche' nello stesso istante, fisicamente sul circuito non ho piu' di un fronte (discendente) contemporeneamente.
Il presupposto di funzionamento interno pero' e' e sara' sempre lo stesso. Non appena i flip-flop in ingresso di uno stadio di pipeline sono stati campionati, i circuiti combinatori dello stadio iniziano a calcolare, e le uscite ad oscillare con comportamenti quasi casuali. Prima dell'arrivo del nuovo fronte di clock le usicte dovranno essere stabili, cosicce' i loro valori verranno campionati dai flip-flop di uscita che sono quelli di ingresso dello stadio successivo. (parlo degli stadi di pipeline perche' li' il discorso e' piu' chiaro ed intuitivo, ma il discorso e' lo stesso anche per tutti i flip-flop)
Immagina ora per semplicita' che il clock entri da una parte sola, da un pin solo del circuito integrato, dal centro, e di li' inizi a propagarsi lentamente verso l'esterno.
Immaginiamo di avere una frequenza altissima, una ventina di volte la dimensione del chip. In pratica seguendo lo schema colorato di prima abbiamo venti quadrati concentrici di colori alternati.
Nella progettazione di un circuito simile occorre tenere in considerazione quindi il fatto che la forma e la posizione di ciascun circuito combinatorio di ogni pipeline, deve essere molto particolare, e deve essere in pratica posizionato in modo concentrico, probabilmente con gli input verso il centro e gli output verso l'esterno, per permettere agli output di raggiungere la stabilita' prima che giunga il nuovo fronte di clock. Non posso quindi far vivere i singoli combinatori a cavallo tra due zone di colore diverso, e molto probabilmente dovro' fare in modo che tutti i flip-flop vengano per mia semplicita' campionati contemporaneamente o quasi, ovvero giacere tutti su quelli che sono i lati dei quadrati concentrici presi ad un istante specifico deciso in fase di progettazione.
Quando poi dall'ultimo stadio di pipeline dovro' portare il segnale di nuovo indietro, verso qualche registro (che magari e' gia' avanti di qualche fronte di clock), allora non so proprio dirti quando tale valore verra' campionato. Ho idea che si iniziino ad avere seri problemi.
All'aumentare ancora della frequenza, la dimensione di ciascuna zona concentrica si riduce, fino a tendere al limite a zero. Le zone su cui prima potevo posizionare i flip-flop per farli campionare che prima venivano campionati tutti contemporaneamente saranno tantissime e indefinite. In pratica ogni flip-flop campiona in un istante suo, e il suo segnale avra' a disposizione lo stesso tempo molto piccolo per la propagazione tra le combinatorie, che di fatto dovranno comunque essere sempre ridotte in superficie, indipendentemente dalla dimensione del chip che stiamo cercando invece di ingrandire. questo sarebbe equivalente ad un chip asincrono.
Tanto piu' la dimensione del chip e' maggiore della lunghezza d'onda, tanto piu' il chip ha comportamenti da chip asincrono, in cui il valore di ciascun segnale e' da considerarsi valido solo localmente, poiche' non ci sarebbe tempo di propagarlo e spostarlo in tempo utile da qualche altra parte per utilizzarlo come input.
Nei chip asincroni il clock di fatto e' inutile, tanto che non e' neppure presente tra i pin di ingresso (Come ad esempio il vecchio gestore degli interrupt 8259, ora integrato nei nostri microprocessori Intel e Amd, che di fatto era un circuito solo combinatorio).
Queste considerazioni sono per le unita' di lavoro che sono considerate come un tutt'uno, a livello di singolo core. Non e' un discorso che rema contro il poter mettere piu' core sullo stesso circuito, essendo di fatto i core fra loro potenzialmente indipendenti.
C'e' poi ancora da considerare il discorso che quando la dimensione del circuito e' gia' oltre 1/6 della lunghezza d'onda (non mi ricordo se precisamente 1/6, ne' mi ricordo il perche' di tale valore, solo che o e' 1/6 o molto vicino), il circiuto si comporta come una spira ed inizia ad emettere interferenze elettromagnetiche ad intensita' inaccettabili per le direttive esistenti.
secondo il tuo ragionamento non dovrebbero funzionare...
Sia chiaro che non sono problemi insormontabili. Non si parla di impossibilita', ma di maggiore complessita' progettuale, con problemi e bachi difficilmente stanabili dai sistemi per la progettazione automatica, per non parlare delle logiche di BIST (i self test dei microprocessori).
E comunque non mi sembra che le frequenze in gioco sulle piastre madri siano tali per cui la lunghezza d'onda sia superiore alla lunghezza dei bus.
Vediamo se riesco a spiegarmi (non sono un professore, spiegare non e' la mia professione).
Al di la del fatto che notoriamente i professori non brillano per sapersi spiegare. Si tratta piuttosto di un problema di "capirsi".
Quello che sto dicendo è che, almeno a mio avviso, la stai facendo più grossa di quanto non sia in realtà. Ne stai parlando come se si dovesse trattare che so, di un pericolo mortale mai visto prima. Non è nulla di così esotico e mai visto, tant'è che è un problema che viene affrontato già oggi.
In un chip normale con dimensione minore della lunghezza d'onda oggi ho la certezza che tutti i segnali delle combinatorie (che sono asincrone) si siano stabilizzati su tutto il circuito PRIMA che entri il nuovo fronte di clock (discendente).
Ma anche qui ti sei lasciato dietro una carretta di precisazioni puntualizzazioni e distinguo, che se poi uno ti corregge, non puoi nemmeno dargli torto. Perchè non circostanziare la situazione prima di affrontare il problema, evitando di sott'intendere cose apparentemente ovvie, che ovvie non sono?
Tanto per cominciare una rete combinatoria, perchè di rete si parla, si caratterizza per il fatto che viene considerata come un oggetto senza memoria, e quindi "istantaneo", vale a dire che l'uscita esclusivamente dal valore dell'ingresso, e non dall'istante in cui questo viene assegnato.
Questo significa che in sede di progetto viene utilizzato un modello che descrive la rete combinatoria in un certo modo. È ovvio che se poi la rete reale, per un qualsiasi motivo, si comporta in modo diverso dal modello, il modello risulta inadeguato, e non sarà possibile realizzare il circuito descritto dal progetto. Ma questo non riguarda solo la frequenza del clock, ma anche i glitches, le alee e millemila altre menate.
Nel tuo caso specifico, se il modello prevede che l'uscita sia disponibile nel clock successivo e, per via di qualsiasi problema che possono essere le capacità parassite, le dimensioni del circuito, la resistività dei collegamenti, o la tensione applicata, il tempo di salita del clock è minore di quello preventivato, il valore dei segnali in uscita dalla rete combinatoria non si sono ancora stabilizzati e quindi il valore campionato risulta incoerente.
Ma come vedi il problema è assolutamente generale e non riguarda in alcun modo la frequenza di clock in via esclusiva. E per di più si risolve cambiando modello, e modificando la rete, ad esempio dividendola in due livelli, così che la risposta arrivi in due colpi di clock, visto che uno era troppo corto, e quella che si ottiene è, guarda caso, una pipeline.
In ogni caso, volendo restringere la sorgente del problema alla frequenza del clock, questa sarebbe ristretta alla sola regione della rete combinatoria, ed eventualmente potrebbe essere localizzata a porzioni grandi quanto uno stadio della pipeline. Di sicuro non riguarda tutta la superficie del chip come sembrava che volessi lasciare intendere.
Quando entrera' il nuovo fronte di clock esso si propaghera' il piu' velocemente possibile
ma perché dici: "il più velocemente possibile"?
date le condizioni delle interconnessioni la velocità di propagazione del campo è quella. non è che il clock può decidere di prendersela comoda.
Non devo in pratica fare particolari considerazioni geometriche sulla posizione e il disegno fisico dei circuiti combinatori, per farli "vivere" e terminare le loro operazioni tutte sullo stesso fronte di clock, proprio perche' nello stesso istante, fisicamente sul circuito non ho piu' di un fronte (discendente) contemporeneamente.
Esattamente come sopra. A mio avviso ometti di circostanziare come si deve l'oggetto della tua osservazione. Se non devi fare considerazioni è solo perchè qualcuno probabilmente le ha già fatte al posto tuo, tant'è che il progetto si fa usando un software chiamato CAD, cioè progettazione coadiuvata da un elaboratore.
Tornando quindi alla questione, un'affermazione del tipo
Il problema piu' grande di eventuali chip di grandi dimensioni, ad altissime frequenze, non e' tanto la temperatura (che comunque e' un grosso problema), ma la velocita' della luce.
a 3GHz la lunghezza d'onda e' pari a
http://upload.wikimedia.org/math/d/e/b/deb49a8e3f6af00b4bab7df6551f8ddd.png
3*10^8 / 3*10^9 = 0.1m = 10cm
un chip di dimensioni oltre 10cm., operato alla frequenza di 3GHz risulterebbe davvero difficile da controllare
sembra sottendere al fatto che ad oggi questo problema non è "diffuso" o "molto noto".
Magari leggendo una frase del genere si potrebbe essere portati a pensare che attualmente, in virtù delle frequenze di clock basse, la lunghezza d'onda del clock è maggiore delle dimensioni del chip, e quindi il tempo di propagazione del segnale di clock è, in linea di massima trascurabile.
Per quanto riguarda la seconda, volendo rimaneggiarla un po, essa significa che "il clock assume lo stesso valore, ( o zero od uno, ) su tutto il chip (o sulla parte di interesse)" .
Questo significa dire che il clock si propaga senza ritardi, il che banalmente non è vero, tant'è che il problema del "clock skew" cioè il ritardo del clock, è uno dei più rognosi in sede di progettazione dei circuiti combinatori, cosa che non dovrebbe essere se come dici,
uno dei motivi per cui funzionano senza troppi problemi e' proprio il fatto che siano di dimensioni inferiori alla lunghezza d'onda del clock.
Eppure il problema è piuttosto noto, ( il che smentisce la prima, delle due affermazioni sopra ) tant'è che la letteratura in merito è piuttosto ampia, e le tecniche di indagine sono abbastanza avanzate, tanto da essere addirittura standardizzate.
Inoltre visto che attualmente esistono circuiti che operano ampiamente a frequenze delle microonde,
http://mobiledevdesign.com/hardware_news/radio_dc_ghz_highspeed/
non vedo perchè, la progettazione in futuro dovrebbe essere più problematica.
Se poi, come immagino, intendevi "progettare coi modelli di oggi", allora magari si, esattamente come un chirurgo avrebbe gli stessi problemi di 100 anni fa ad operare con gli strumeti di allora.
Ma per farla breve il problema che sollevi è semplicemente mal posto.
E comunque non mi sembra che le frequenze in gioco sulle piastre madri siano tali per cui la lunghezza d'onda sia superiore alla lunghezza dei bus.
E allora perchè per i circuiti integrati dovrebbero contare le dimensioni dell'intero chip e non le dimensioni della sola porzione sincrona?
Due pesi e due misure?
E allora perchè per i circuiti integrati dovrebbero contare le dimensioni dell'intero chip e non le dimensioni della sola porzione sincrona?
Due pesi e due misure?
Ma guarda che non l'ho mai detto.
LA cache puo' andare per conto suo, basta che sia correttamente gestita nel suo insieme, cosi' come anche ogni singolo core.
Ma se per stare dietro alle richieste di mercato dovessi ingrandire ogni singolo core (Per assurdo parecchie decine di stadi per ogni pipeline), il singolo core potrebbe diventare torppo grosso, e incorrere nei problemi di cui sopra.
Comunque questa e' davvero sbagliata
Tanto per cominciare una rete combinatoria, perchè di rete si parla, si caratterizza per il fatto che viene considerata come un oggetto senza memoria, e quindi "istantaneo", vale a dire che l'uscita esclusivamente dal valore dell'ingresso, e non dall'istante in cui questo viene assegnato.
Non e' istantanea proprio per nulla, ma nemmeno in teoria, in nessun modello le combinatorie sono modellate come istantanee.
ma perché dici: "il più velocemente possibile"?
E il discorso della velocita' del clock era da leggersi come "Io, progettista, per evitare problemi per fare in modo che i modelli funzionanino, devo prendere particolari accortezze affinche' il fronte di clock sia propagato il piu' velocemente possibile, piu' accortezze ancora che rispetto agli altri segnali. Quindi piste piu' corti, poche curve, etc."
Inoltre visto che attualmente esistono circuiti che operano ampiamente a frequenze delle microonde,
non vedo perchè, la progettazione in futuro dovrebbe essere più problematica.
Ti sei dimenticato che il problema da me solo riportato (Che e' stra notissimo), non e' l'alta frequenza. E' la dimensione del circuito rispetto alla lunghezza d'onda.
Ma comunque certo che se secondo te per ogni frase occorre circostanziare e spiegare 5 pagine, dobbiamo metterci a riscrivere i libri sul forum.
Quindi o il singolo lettore e' gia' un addetto ai lavori, e quindi sa gia' di cosa si sottintende, oppure se non si sa ci si fida. Ma personalmente quando non so, non esco con frasi ad effetto, e sto zitto ed eventualmente apporfondisco.
In questo modo si evitano arrampicate.
Allora secondo hibone è impossibile fare un circuito integrato maggiore di 10cm di lato tanto a 3GHz ma ci sono un sacco di metodi per risolvere i problemi della propagazione del clock, secondo gugoXX non si può fare per la difficoltà di gestione dei sincronismi.
Mi rivolgo ad hibone, secondo te perchè non è possibile farlo?
Da profano della materia, secondo me non si sono neanche posti il problema per via dei costi che sarebbero troppo sconvenienti.
Ritornando in topic, secondo me il futuro è l'integrazione ibrida di tecnologie al silicio per certi compiti (computazionali) e al carbonio per altri (lo storage dei dati).
Edit:
Ho editato la prima frase, era espressa male, se avete gà quotato ricontrollate per cortesia.
il problema dello skew è sempre esistito e sempre esisterà, non vedo dove sia la tragedia. i moderni cad, almeno quelli che ho usato io (dal synopsys al cadence) in fase di progetto danno chiare indicazioni sullo slack da utilizzare in modo che il circuito funzioni a dovere. e in fase di layout è il progettista a instruire il cad affinchè si abbiano i minori ritardi possibili, che comunque sempre ci saranno, e questo provvederà a piazzare buffer, creare alberi e sotto-alberi con sorgenti dedicate e altre menate per minimizzarli. tutto questo io l'ho fatto sempre in automatico perchè andare ad agire manualmente sul layout, già quando ci sono solamente 100k transistor, diventa un incubo.
Allora secondo hibone è impossibile fare un circuito integrato maggiore di 10cm di lato
-cut-
Mi rivolgo ad hibone, secondo te perchè non è possibile farlo?
io ho banalmente parlato di assurdo teorico, non mi ricordo di aver parlato esplicitamente di impossibilità, se l'ho fatto o mi sono sbagliato, o non ho circostanziato bene quello che intendevo, comunque sia non so se sia materialmente impossibile realizzare un chip di 10x10 cm ma di sicuro sarebbe un prodotto non commerciabile.
questo perchè, almeno ad occhio, le fasi di test e l'elevato numero di interconnessioni ( mi riferisco al wire bonding, non alle interconnessioni intra die ) che un chip di 10cmx10cm arriverebbe ad avere, farebbe salire enormemente il costo di realizzazione.
Ma guarda che non l'ho mai detto.
a me pareva proprio che stessi dicendo questo, perchè qui scrivi:
un chip di dimensioni oltre 10cm., operato alla frequenza di 3GHz risulterebbe davvero difficile da controllare
mentre qui ti riferisci chiaramente a tutto il microprocessore..
I flip-flop si trovano dappertutto. I registri utente (e quelli nascosti) sono coposti da flip-flop. All'ingresso di ogni stadio di pipeline c'e' un nastro di flip-flop. etc.
Il segnale di clock del microprocessore, proprio quello di frequenza 3GHz di cui sopra, serve proprio per comandare a tutti i flip-flop l'istante preciso in cui campionare il rispettivo segnale di ingresso. Il valore del segnale di ingresso verra' memorizzato e mantenuto stabile per tutto il ciclo successivo di clock.
--cut--
Prima il clock era a 0, e il microprocessore era tutto blu.
oppure me lo sono immaginato?
A me pareva proprio che parlassi di un intero chip, non di una sua parte.
Comunque questa e' davvero sbagliata
ah si...
Se è proprio sbagliata, visto che il modello teorico alla base dei circuiti combinatori sono le porte logiche, mi sapresti dire dove, in una porta logica, tipo chessò, and, or oppure not, menzionate ad esempio qui:
http://it.wikipedia.org/wiki/Circuito_combinatorio
viene tirata in ballo la variabile tempo? :wtf:
Perchè se è vero che io le cose non le so, e tu sei un addetto ai lavori, sicuramente ne sai più di me.
Non e' istantanea proprio per nulla, ma nemmeno in teoria, in nessun modello le combinatorie sono modellate come istantanee.
bene. allora non avrai difficolta a spiegarmi dove hanno nascosto, questi vili matematici, la variabile tempo, dentro all'operatore logico or, tanto per dirne uno.
Sia chiaro: non sto parlando dell'implementazione fisica o elettronica, ma proprio dell'operatore matematico, quello astratto e teorico.
Grazie.
Ma comunque certo che se secondo te per ogni frase occorre circostanziare e spiegare 5 pagine, dobbiamo metterci a riscrivere i libri sul forum.
ma anche no..
io ti sto semplicemente suggerendo, di evitare di esprimerti come faresti se parlassi ad un collega in azienda, e quindi di discutere esponendo l'argomento in maniera completa e corretta come faresti se parlassi con altri "addetti ai lavori" di aziende diverse, ad esempio, estranei al tuo lavoro e al tuo modo di lavorare.
Se te lo chiedo non è per saccenza, pedanteria, o per ingessare la discussione, ma per evitare di trovarmi di fronte alle solite immancabili rettifiche, ai distinguo e alle precisazioni, tipo questa qui sotto:
E il discorso della velocita' del clock era da leggersi come "Io, progettista, per evitare problemi per fare in modo che i modelli funzionanino, devo prendere particolari accortezze affinche' il fronte di clock sia propagato il piu' velocemente possibile, piu' accortezze ancora che rispetto agli altri segnali. Quindi piste piu' corti, poche curve, etc."
Perchè semplicemente non ho voglia di stare a discutere con uno che prima dice una cosa, e poi dopo 20 post viene fuori dicendo che intendeva tutt'altro perchè lui sott'intendeva che la supercazzola prematurata ha perso i contatti con gli scissali oddoni.
Questo perchè sarebbe solo una inutile perdita di tempo, e non servirebbe più a capire, approfondire, e confrontarsi su una qualsiasi posizione.
Però se per te è preferibile continuare a parlare a braccio, e puntualizzare 20 post più avanti che intendevi qualcosa di diverso basta che lo dici, e chiudo qui la discussione, senza offesa per nessuno. Per me non è un problema.
In questo modo si evitano arrampicate.
no comment...
^TiGeRShArK^
06-04-2010, 14:57
Da quello che ricordo io ci sono due distinti problemi:
1) All'aumentare delle frequenze le dimensioni del chip sono comparabili alla lunghezza d'onda.
2) Al diminuire delle dimensioni del gate mantenendo le dimensioni del chip costante la lunghezza delle piste aumentano.
Il primo problema potrebbe causare delle interferenze elettromagnetiche se non erro, ma è il secondo problema quello di difficile soluzione.
Il problema dell'asincronia non è infatti legato alle dimensioni lineari del chip, ma è legato alle dimensioni lineari della pista + lunga.
Se in un ciclo di clock il segnale non riesce a percorrere la pista + lunga per compiere un'operazione allora il chip presenta dei malfunzionamenti.
Poichè la velocità della luce è 3 * 10^8 m/s e quella degli elettroni è pari a circa due terzi se non ricordo male, si ha che la distanza massima che gli elettroni riescono a percorrere sulle piste è pari a 2 * 10 ^ 8 / 3 * 10 ^ 9 = 0,06 m.
Dunque il critical path, il cammino limite + lungo è di 6 cm.
Il cammino critico necessario per svolgere la + lunga operazione non può superare quella dimensione.
Teoricamente si potrebbe avere senza alcun problema una pista + lunga di 6 cm anche in un chip con solo mezzo cm di lato, per questo la parte importante non è il lato del chip, ma la lunghezza del cammino critico.
Tutto questo se ancora ricordo qualcosina di elettronica digitale ora che sono passati un bel pò di anni. :p
^TiGeRShArK^
06-04-2010, 15:02
Se non ricordo male inoltre c'è già il Power 5 che funziona correttamente nonostante alcune parti del chip funzionino in asincrono....
Il cammino critico necessario per svolgere la + lunga operazione non può superare quella dimensione.
ecco, su questo non posso che essere d'accordo.
tornando alla questione originaria, visto che si parla di limiti fisici, io mi chiedo se l'aumentare della frequenza non porti con se qualcos'altro...
un segnale elettromagnetico, quando aumenta di frequenza, passa dalle microonde all'infrarosso e finisce nello spettro visibile...
e un segnale elettrico?
un segnale elettrico è comunque legato alla variazione del campo elettrico sul conduttore, non a caso un'antenna converte un segnale elettrico in segnale elettromagnetico e viceversa, per gli effetti della radiazione sulla carica elettrica del conduttore.
ma che diavolo succede quando il campo elettromagnetico raggiunge frequenze ottiche?
:wtf:
DanieleC88
06-04-2010, 15:45
ma che diavolo succede quando il campo elettromagnetico raggiunge frequenze ottiche?
:wtf:
Che diventa un forno a microonde?
Che diventa un forno a microonde?
al massimo una stufa a infrarossi :D
DanieleC88
06-04-2010, 16:03
al massimo una stufa a infrarossi :D
Vabbe' il concetto rimane uguale. :D
ecco, su questo non posso che essere d'accordo.
tornando alla questione originaria, visto che si parla di limiti fisici, io mi chiedo se l'aumentare della frequenza non porti con se qualcos'altro...
un segnale elettromagnetico, quando aumenta di frequenza, passa dalle microonde all'infrarosso e finisce nello spettro visibile...
e un segnale elettrico?
un segnale elettrico è comunque legato alla variazione del campo elettrico sul conduttore, non a caso un'antenna converte un segnale elettrico in segnale elettromagnetico e viceversa, per gli effetti della radiazione sulla carica elettrica del conduttore.
ma che diavolo succede quando il campo elettromagnetico raggiunge frequenze ottiche?
:wtf:
mi rispondo da solo...
pare che a frequenze dell'ordine degli infrarossi un transistor funzioni comunque, e senza neanche abbandonare la tecnologia del silicio...
http://lescienze.espresso.repubblica.it/articolo/Mezzo_teraherz_per_un_transistor/1283398
E io invece ricordo di avere studiato un qualche limite sul 1THz per circuiti elettronici in elettronica 2.
Ma non ricordo piu' cosa.
Ma forse era solo qualcosa sulle validita' di alcuni modelli.
^TiGeRShArK^
06-04-2010, 17:02
Che diventa un forno a microonde?
siamo già a frequenze + elevate dei forni a microonde. :p
loro si fermano a 2,4 ghz, i processori odierni hanno frequenze maggiori. :D
Supdario
06-04-2010, 19:38
Ma qui non stiamo parlando di segnali elettrici? Un'onda elettromagnetica trasporta fotoni, ma l'elettricità trasporta elettroni, quindi non penso che se la frequenza aumenti a dismisura riusciremmo a vedere la CPU "accendersi". :D
Se poi consideriamo anche la velocità della luce (come qualcuno ha fatto prima), in questo caso non si dovrebbe applicare poichè gli elettroni viaggiano ad una velocità molto più bassa rispetto a quella della luce.
blindwrite
06-04-2010, 19:59
Ma qui non stiamo parlando di segnali elettrici? Un'onda elettromagnetica trasporta fotoni, ma l'elettricità trasporta elettroni, quindi non penso che se la frequenza aumenti a dismisura riusciremmo a vedere la CPU "accendersi". :D
Se poi consideriamo anche la velocità della luce (come qualcuno ha fatto prima), in questo caso non si dovrebbe applicare poichè gli elettroni viaggiano ad una velocità molto più bassa rispetto a quella della luce.
mi dispiace ma non c'è quasi nulla di esatto in quello che hai scritto, è corretto solo il fatto della cpu che non potrà mai emettere luce, per questione di strutture che non vengono disegante nei processi attuali
allacciandomi al discorso precedente del percorso critico e del clock e dei tempi di propagazione, praticamente non esistono i problemi che avete posto o almeno non sono quelli i problemi che si cercano di risolvere dato che la soluzione per tali problemi è nota ai designer da sempre, le problematiche sono quelle di processo, di LVS e il rispetto delle regole di design per manifacturing.
frankytop
06-04-2010, 20:18
http://upload.wikimedia.org/math/d/e/b/deb49a8e3f6af00b4bab7df6551f8ddd.png
Scusate la pignoleria,l'espressione dovrebbe includere anche la costante dielettrica del materiale sopra il quale scorre il conduttore,visto che il chip non è costruito "svolazzante" in aria,quindi il risultato va diviso per la radice quadrata della costante dielettrica efficace che tiene conto della geometria della linea. :stordita:
per chi crede che:
elettronica = cpu e gpu
MA LASCIA PERDERE... :O
:asd:
Mi piaceva davvero tanto, ma il fatto che in Europa i vendor progettisti di microprocessori sono davvero pochi e limitati, ho dovuto lasciare perdere per gettarmi nella progettazione software.
Ahimè :(
Vabbè che nei proc. embedded spazio di lavoro ce n'è!
demonbl@ck
12-04-2010, 17:11
per chi crede che:
elettronica = cpu e gpu
MA LASCIA PERDERE... :O
Grazie, intendevo l'elettronica nei microprocessori per pc, chiaro che per le altre applicazioni di certo non c'è bisogno di cambiare sistema :mbe:
Grazie per le risposte comunque
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.