Quote:
Originariamente inviato da jappilas
per sviluppare implementazioni non ARM della isa ARM mi risulta occorra una licenza architetturale
licenza che intel possedeva (ereditò da Digital e usò per sviluppare le cpu XScale - e poi vendette a Marvell se non erro - e probabilmente si sarà mangiata le mani...) ma che AMD non mi risulta possieda...
|
Se non sbaglio AMD negli ultimi mesi ha acquisito la licenza per gli ARM.
Quote:
Originariamente inviato da jappilas
le istruzioni simd della isa ARMv8 prevedono calcoli su registri a 128 bit (peraltro condivisi con le istruzioni FP scalari), ma un Core che un' ipotetica cpu di classe ARM a 64 bit dovrebbe eguagliare (anzi superare, altrimenti non ci sarebbe alcun incentivo alla migrazione) possiede unità capaci di calcoli su 256 bit per volta (doppio di GFlOPS)
inoltre, trattandosi di una ISA RISC con istruzioni a lunghezza fissa di 32 bit, da una parte questo può implicare un decoder più semplice (se non altro perchè non è necessario fare un matching parallelo su tutti i 16 byte provenienti da una cache line - che potrebbero ognuno essere il primo di una differente istruzione a lunghezza variabile - nè decodificare tutti i prefissi prima dell' opcode vero e proprio)
ma comunque non è detto, dovendo il decoder fare comunque i conti con una varietà di modalità operative, come thumb/thumb2/thumbeee con i suoi opcode a 16 bit, e di indirizzamento - a meno che queste non vengano escluse...
|
Quello di ARM Ltd mica sono nati ieri ed hanno considerato bene le alternative quando hanno fatto certe scelte.
Se si implementa l'esecuzione out-of-order si possono aggiungere più unita SIMD 128 ed avere le stesse prestazioni di una cpu con la metà delle unita SIMD 256, mentre dall'altro lato con 128bit per registro invece che 256bit diventa più semplice realizzare una versione "risparmiosa" con buone prestazioni.
Poi un decoder capace di interpretare sia istruzioni "ARM 32bit" che thumb è estremamente semplice rispetto ad uno solamente "ARM 32bit", perchè le istruzioni thumb si mappano "a schema fisso" in modo estremamente semplice sulle istruzioni ARM equivalenti quindi in una cpu che supporta entrambi, il "decoder thumb" è solo uno stadio aggiuntivo al decoder "ARM 32bit" e tale stadio aggiuntivo non è a rischio di stalli ed automagicamente circa raddoppia le istruzioni inviabili in esecuzione senza praticamente andare a toccare tutto quello che c'è a valle.