In RubySequencer::makeRequest (mem/ruby/system/Sequencer.hh::line 523),
they are using two RubyRequestType, primary_type and secondary_type.

And I can't really understand why there need two types to make an event in
ruby memory system not one.

How they are converted into two events and what is the difference between
primary_type and secondary_type?

////////////////////////////////////////////////////////code//////////////////////////////////////////////////////////////////////////////////

RequestStatus
Sequencer::makeRequest(PacketPtr pkt){
    if (m_outstanding_count >= m_max_outstanding_requests) {
        return RequestStatus_BufferFull;
    }

    RubyRequestType primary_type = RubyRequestType_NULL;
    RubyRequestType secondary_type = RubyRequestType_NULL;

    if (pkt->isLLSC()) {
        if (pkt->isWrite()) {
            DPRINTF(RubySequencer, "Issuing SC\n");
            primary_type = RubyRequestType_Store_Conditional;
        } else {
            DPRINTF(RubySequencer, "Issuing LL\n");
            assert(pkt->isRead());
            primary_type = RubyRequestType_Load_Linked;
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to