Hej Günther, On 2010-04-27, at 18:32, Günther Wimpassinger wrote: >> - Wir brauchen einen Speicherbereich auf den wir dummy-Stores >> ausfuehren koennen wg. konstanter Ausfuehrungszeit. > > Ich bin mir nicht sicher ob ich das richtig Verstehe. Es geht darum, > nicht benötigte Ergebnisse irgendwo hin zu speichern, weil das > predicate-bit nicht gesetzt war? Ja. Speicherbereich stimmt nicht ganz, Speicheradresse reicht. >> - Sollten wir vielleicht nur den ALU-Operationen predicates erlauben? >> Wenn wir predicated Loads haben, muessen wir beispielsweise die ganze >> pipeline stallen, bis die durch sind. > > Ich würde gerne die grundsätzliche Struktur der ISA nicht mehr ändern. > Das muss überall berücksichtigt werden. Ich hätte die predicated > instructions alle ganz normal ausgeführt und in der MEM (bei Store) > bzw. WB (bei allen anderen Instr) Stufe wird entschieden, ob das > Ergebnis übernommen wird, oder nicht. Branches/Calls nicht berücksichtigt. > > Anmerkungen zum Diagramm: > > Ich dachte unser "Instruction Prefetch Buffer" hier als Instr-Mem > dargestellt, wird Wortweise adressiert. Der PC wird aber um 3 erhöht. > Gibt's einen bestimmten Grund dafür? Nein. Ich werd's auf "Instruction Prefetch Buffer" und "inc" statt "and 3" aendern. > Das Registerfile braucht einen 3. Ausgang (rd/rz) damit st > Instruktionen implementiert werden können. > "st rbase+roffs<<sh,rdata" alles Quellregister. > > Ein Shifter muss vor die ALU, damit shresult=(roffs<<sh) berechnet > werden kann bevor rbase+shresult berechnet wird. Wobei in unserer ISA > leider einmal der Registerinhalt von ra und rb bits (lsl/lsr/..) > verschoben wird, und einmal rb um sh bits (ld/st) verschoben wird. > Entweder man ändert die ld/st Befehle oder man baut einen Mini-Shifter > vor die ALU für ld/st Den shifter vor der ALU hatte ich in einer alten version schon mal, das hab' ich nur vergessen in die Version einzubauen. > Der PC wird bis zur ALU geführt, damit man ihn auf den Stack puschen > kann. Wie kommt ein Wert vom Stack in den PC zurück? Danke, daran hab ich nicht gedacht! > Worin liegt der Vorteil Stack und Data Memory zu vereinen? Wenn der Stack in seinem eigenen On-Chip-Memory auf dem Chip liegt koennte man die Stack-Sachen auch in die EX Phase uebernehmen, was folgendes vereinfacht: > Das Predicate-Register-File muss auch auf den Stack, dass ist im Moment > nicht möglich. pushpred/poppred Ist auch seit der vorigen Version verloren gegangen :-( > Interrupts wurden überhaupt ausgespart. Ja, vorerst mal. Danke fuer die Review! d~