by legacy » 15 Jan 2014, 14:37
Quella che hai indicato in figura e' una CPU con ISA MIPS, un tipico progetto RISC che spezza il datpath in modo che siano fortemente modulari, ovvero e' quanto di + comodo ci sia per l'approccio microcablato descrivibile senza troppa fatica in HDL. Torna comodo questo approccio sopratutto perché si presta alle implementazioni pipelining introducendo pero' bypass e scorciatoie ma sopratutto molta intelligenza al nella control unit, sopratutto perche' il primo problema della pipeline e' la predizione speculativa dei salti, cosa che cosa lo stallo completo della pipeline e il dover ripartire.
Lasciando perdere la pipeline e tutti i casini che si porta dietro, anche nelle implementazioni bovine deve esserti chiaro pero' che tutto ruota attorno al datapath: tutti i moduli blackbox (di cui al loro interno ti preoccupi di descrivere solo il modulo rispettando unicamente constraints ed interfaccia di modulo) che puoi spezzare in {gestione PC (aka fetch e vari branch), registri, load/store ram, ed ALU} sono connessi al datapath che veicola a ciascuno di loro sincronismi, segnali di datapath (quando attivare che cosa) e ovviamente i segnali da/verso sorgenti e destinazioni.
Nell'approccio microprogrammato avresti un datapath minimale ridotto all'osso e del microcodice microsequenziato per descrivere le istruzioni macchina della ISA, tipicamente questo approccio si usa per semplificarsi la vita con CPU CISC con ISA molto complessa oppure per tagliare corto (dato lo scarso tempo a disposizione per le attività di laboratorio) nella mera manovalanza implementativa di CPU didattiche come la ijvm32.