[CALU] Re: Blockdiagram

  • From: David Markvica <david@xxxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Tue, 27 Apr 2010 18:57:14 +0200

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~

Other related posts: