En su capítulo sobre diseño de CPU , Edward Bosworth presenta la siguiente arquitectura de tres buses:
UnodelosprincipalesobjetivosdediseñodeestecircuitoespoderincrementarelPCdelcontadordelprogramaenunsolociclodereloj.Deacuerdoconeltextoqueloacompaña,estoselogracontrolandoB1desdePC,B2desdeelregistroconstante+1,confirmandolaseñaldeadiciónenlaALUeimpulsandoPCdesdeB3:
PC<-PC+1:PC->B1,1->B2,add,B3->PC
Lapreguntaobviaes,entonces,¿cómopuedeelPCregistrarlaunidadB1conunvalormientrascargasimultáneamenteotrovalordesdeB3?
Puedoencontrardossolucionesposibles,peroambastienenproblemasobvios.
- Lastransferenciasnoocurrensimultáneamente.Porejemplo,B1seactivaenelflancoascendente,mientrasquelaseñalsecargadesdeB3enelflancodescendente.Peroluego,cuandodejamosdeconducirB1,laseñaldesapareceríaenB3enausenciadeotroregistroenlaruta.Siutilizaunregistrointermedioenalgúnlugar(¿enlaALU?),Realmentesoloestáhaciendounincrementodedosciclosutilizandociclosdemediociclo.
- ElregistrodePCesenrealidaddosregistros,unoparasalidayotroparaentrada,quenoestánconectadoscuandoelregistroseestácargando.Peroentoncesnecesitaríasalgúntipode"lógica de ecualización" que podría resultar no trivial.
Entonces, ¿qué está pasando aquí?