Difference between revisions of "How to implement an ISA"

From gem5
Jump to: navigation, search
(New page: == arguments.hh == Move out of isa? == faults.hh == ISA specific fault classes to be used in the ISA. Functions I'd like to get rid of * genMachineCheckFault * genAlignmentFault == int...)
(No difference)

Revision as of 12:01, 2 July 2007

arguments.hh

Move out of isa?

faults.hh

ISA specific fault classes to be used in the ISA.

Functions I'd like to get rid of

  • genMachineCheckFault
  • genAlignmentFault

interrupts.hh

Interrupts class

Interrupt Level

Shouldn't be capitalized. Gets a request to set the interrupt level and returns what the interrupt level was actually set to.

post

Request that an interrupt happen. Like asserting the interrupt line.

clear

Request that an interrupt not happen. Like deasserting a level triggered interrupt line.

clear_all

Breaks naming convention Clear all interrupts

check_interrupts

Breaks naming convention Not sure if this is right Check to see if there are any interrupts pending

getInterrupt

Get an interrupt fault object to invoke. The Interrupts object should internally prioritize interrupts so that they are handled in the right order.

updateIntrInfo

Breaks naming convention Don't remember what this does. Need to find the email from Ali.

get_vec

Breaks naming convention Returns the vector which describes the pending(?) interrupts in SPARC which is available as a (memory mapped?) register. This function panics in anything currently implemented other than SPARC, and it breaks the abstraction of the Interrupts object. Its existence allows necessary communication between two ISA specific components but goes through the ISA agnostic cpu. An argument for this function is that the cpu may need to modify the value returned by this function, so it needs to be able to intercept values and change them. This -really- breaks the abstraction of the Interrupts object by forcing the cpu to know what the vector means and what values are appropriate. This function needs to go away.

serialize/unserialize

Functions to serialize and unserialize the state in the Interrupts object.

isa_traits.hh