ilbarbax ha scritto:mi sembra che di tentativi di questo genere, ce ne siano stati almeno 4 o 5 di cui solo uno andato pienamente in porto. Questo conferma quanto sicuramente non siano semplici, ma penso che il problema più grosso sia che, per un motivo o per l'altro ogni progetto è ripartito da zero reinventando la ruota. Ora dico, visto che c'è il minimig funzionante, non sarebbe meglio estendere quel progetto? Si potrebbe utilizzare lo steso cip del minimig per i soli cip custom, in modo da recuperare il s/w già esistente ed avere al contempo maggior potenzialità di sviluppo pe nuove features.
E' quel che penso pure io, infatti. Il rischio, altrimenti, è quello che il progetto vada a far compagnia a quelli abortiti o finiti nel limbo.
legacy ha scritto:@cdmauro
secondo me ci sono pocchissime persone al mondo in grado concretamente di fare una cosa del genere, o disposte a farlo, sopratutto per hobby (cioe' non competenze non retribuite). Non a caso D68000 costa 60.000 USD per i sorgenti, e gli ing di freescale sono letteralmente stati pagati a peso d'oro per il refactoring del 68060 e della linea coldfire e 683xxx (AKA 68K/CPU32)
Non lo metto in dubbio. Se possono permettersi di chiedere tutti quei soldi, vuol dire che hanno sputato sangue per realizzarlo, e trovo sia anche giusto che si facciano pagare lo sforzo e l'IP.
Secondo me il tizio del fantomatico super 68K aka "68050" in Natami se capisce come gira il mercato il suo core lo ritratta in termini di Copyright, proponendolo sotto forma di IP a scatola chiusa, o a diversi zeri per avere anche i sorgenti: e lo penso perche' se ho compreso la natura umana, beh ... con se quel coso davvero esiste e funziona il tizio puo' farci davvero un bel po' di soldi.
E' un tizio che lavora all'IBM, credo proprio su quelle cose, per cui penso che ne conosca anche il valore. Infatti non ho mai sentito parlare di eventuali rilasci dei sorgenti.
Da poco circola questa voce, ma non so se si parla del suo lavoro o di quello realizzato dagli altri, dopo che ha lasciato il gruppo.
In quanto ai salti no, questo no, non penso, i salti sul mio MIPS32-rev2 sono catastrofici e da Mips inc ho visto che sono stati seguiti diversi approcci, sia per CPU asic che per proposte di softcore Mips
I MIPS non fanno testo: sono i poveri dei core. Hanno tolto tanta di quella roba dal core, spostandola al compilatore / programmatore, che mi vengono i brividi soltanto a pensare di lavorarci sopra.

Dal piu' pregiato al + bovino, posso tentare di riassumerli cosi':
[...]
Ma hai abbastanza risorse per mettere in piedi questa cosa ? Sui chip asic il branch prediction e' l'aggeggio che occupa + transistor, sui PIC e sugli AVR8 tagliano molto corto e usano soluzioni bovine proprio perche' hanno maschere a pochi transistor (e il chip deve anche costare $2/$5) per cui ... dubito che sulle fpga piccole si possano fare cose tanto elaborate.
So come funziona, e so che l'unità di branch prediction è molto costosa da implementare, e soprattutto sempre attiva (succhia corrente che è una bellezza).
Comunque ce ne sono diverse versioni, dal semplice al molto complicato, a seconda degli obiettivi che si vogliono raggiungere.
Al momento assumiamo che non ci sia quest'unità, anche per semplificare di molto la progettazione del softcore.
Poi ci sono casini bestia come tradurre le complicatissme EA (effective address) del 68020 in load/store del nucleo RISC, anzi spesso una istruzione che fa EA complessa e' tradotta in un gruppo di micro istruzioni RISC, il che significa che per portare a termine l'istruzione 68k servono diversi e diversi cicli, vero che c'e' pipelining, ma la profondita' e' 4 o 5, oltre bisogna assolutamente stallare con nop per non incorrere in hazard condition fra il dato/registro manipolato da quella istruzione e le istruzioni che seguono che spesso e volentieri vorrebbero consumare quella informazione e devono aspettare che sia pronta e stabile.
Purtroppo le modalità con doppia indirezione del 68020 sono micidiali. Finché non si fa uso della doppia indirezione siamo ai livelli dell'EA dell'80386+, che è abbastanza comune e semplice da implementare (basta un sommatore con 3 operandi), e le prestazioni possono essere molto elevate.
A mio avviso soltanto nei casi di doppia indirezione si potrebbe stallare la pipeline per un altro ciclo di clock (o anche più, nelle prime versioni del core) in modo da leggere dalla memoria il puntatore necessario, e poi proseguire normalmente.
Comunque sono idee. Non sono esperto di progettazione di architetture (intendo a livello di implementazione hardware), come ben sai.
Mips Inc per le sue CPU questa rogna la delega al compilatore, con un 68K super scalare dove hai istruzioni 68k tradotte in micro istruzioni RISC, o stalli come ho fatto notare prima e perdi prestazioni, oppure per ottimizzare sarebbe necessaria logica ed intelligenze eseguzione fuori ordine delle micro istruzioni RISC al fine di prevenire le loro hazard -> altro complicatume infinito da fare e validare

Lo posso ben immaginare. Comunque al momento di core RISC per il 68K non se ne parla: è una finezza che va riservata a dopo, quando il progetto sarà già nato con un softcore più semplice, ma che almeno funzioni.

bertocar ha scritto:Dopo aver letto tutte le vostre considerazioni che apprezzo, rimango fortemente convito che la strada sia quella del softcore. Solo per il fatto che puo' essere successivamente sostituito con una versione migliore per me merita.
La penso allo stesso modo, ma c'è parecchio lavoro da fare.
Con questo ci sono 2 strade che cercheremo di seguire:
1. individuare un fpga che in termini di prestazioni sia importante ma non troppo costoso in modo da colmare in parte la 'deficenza' dei softcore open
Un FPGA che lavora a 400Mhz, come quello che hai riportato prima (quando hai elencato quei 3), a mio avviso sarebbe un ottimo punto di partenza.
Nel frattempo la tecnologia va avanti, migliorano i processi produttivi, e magari nel giro di qualche anno gli FPGA faranno il salto al Ghz, pur mantenendo gli stessi prezzi (e con un bel po' di LE in più, si spera).
2. trattare per la license del D68000 che e' vero chiedono 60kUSD MA considerate che e' UN PREZZO ESTREMAMENTE DI LISTINO, soggetto a trattative e sicuramente ridimensionato non di poco. Una volta chiusa la partita io non potro' ovviamente comunicare il costo pero' fare un ragionamento del tipo 'al raggiungimento di n dispositivi venduti potremo tutti godere del softcore D68000... temporaneamente utilizziamo tutti questo open che fa pena (ma forse inizialmente poi nemmeno cosi' tanto)'
Il punto 2 e' importante perche' fin dal principio ho espresso la volonta' di portare le velocita' di elaborazione della cpu notevolmente in avanti rispetto alla piattaforma originale (e non intendo 20MIPS).
Concordo. Il softcore 68020 dell'FPGArcade / Minimig v2 non è malvagio (a parte l'essere ancora incompleto, perché manca qualche istruzione), perché gira già a 28Mhz, integra anche una cache dati da 256 byte (quindi come il 68030), e presenta prestazioni comparabili al 68030. Inoltre mi pare che ci stavano lavorando per portarlo a 56Mhz.
Quindi sarebbe una buona base di partenza.
Il salto di qualità, però, lo si potrà fare soltanto quando si farà uso di un'unità RISC interna, come il 68060, che consentirà di arrivare almeno a un'istruzione eseguita per ciclo di clock. A 400Mhz macinare 400MIPS per un 68K è un valore impressionante.
Magari facendo uso proprio del D68000, che promette faville, se si riesce a spuntarla sul prezzo.
Quando mi sono riferito a FPGA molto costosi, intendo dispositivi che arrivano al GHz (non conosco specificamente quali perche' ho ignorato l'info, ma uno dei miei ingegnieri me ne ha parlato ieri) ma siamo completamente fuori dal target.
Infatti lasciamoli perdere per ora. Il tempo aggiusterà le cose.
schiumacal ha scritto:Pero' mi domando anche perché dover fare tutto da zero, quando invece potreste provare... e dico almeno provare a unire le forze con il Team di Natami e continuare lo sviluppo di questo sistema.
Ci sono tante persone sparse per il globo che non vedono l'ora di trovarsi tra le mani un sistema Natami bello e funzionante, ma cio' non avviene mai.
Allora se avete la forza finanziaria e le qualita' giuste per sviluppare una tale idea, perché non provare la strada di chi ha gia' iniziato da tanto e sviluppato tanto ?
In Natami gia' si parla di 68070 :-)
http://www.natami.net/68070.htm
No, per favore, che non se ne esce più col team di Natami. Sono troppo fissati con le loro idee, che già per la prima versione vogliono tirare fuori il SuperAmiga galattico con scapellamento a destra.
Meglio volare bassi all'inizio, FAR USCIRE SUBITO QUALCOSA DI FUNZIONANTE (lo sottolineo, perché con tutti i progetti è sempre così), e col tempo affinare il progetto migliorandolo.
Nel frattempo il prodotto si può già vendere, gli appassionati sono contenti (anche perché se arriva sui 200€ al massimo, sarà sicuramente appetibile), e gli sviluppatori possono provare nuovamente interesse e magari dare una mano per i driver. Si forma, insomma, un circolo virtuoso.