lsq.hh (13652:45d94ac03a27) | lsq.hh (13954:2f400a5f2627) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2013-2014 ARM Limited | 2 * Copyright (c) 2013-2014, 2018 ARM Limited |
3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 172 unchanged lines hidden (view full) --- 183 }; 184 185 LSQRequestState state; 186 187 protected: 188 /** BaseTLB::Translation interface */ 189 void markDelayed() { } 190 | 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 172 unchanged lines hidden (view full) --- 183 }; 184 185 LSQRequestState state; 186 187 protected: 188 /** BaseTLB::Translation interface */ 189 void markDelayed() { } 190 |
191 void disableMemAccess(); 192 |
|
191 public: 192 LSQRequest(LSQ &port_, MinorDynInstPtr inst_, bool isLoad_, 193 PacketDataPtr data_ = NULL, uint64_t *res_ = NULL); 194 195 virtual ~LSQRequest(); 196 197 public: 198 /** Make a packet to use with the memory transaction */ --- 237 unchanged lines hidden (view full) --- 436 437 /** Step on numIssuedFragments */ 438 void stepToNextPacket(); 439 440 bool hasPacketsInMemSystem() 441 { return numIssuedFragments != numRetiredFragments; } 442 443 /** Have we stepped past the end of fragmentPackets? */ | 193 public: 194 LSQRequest(LSQ &port_, MinorDynInstPtr inst_, bool isLoad_, 195 PacketDataPtr data_ = NULL, uint64_t *res_ = NULL); 196 197 virtual ~LSQRequest(); 198 199 public: 200 /** Make a packet to use with the memory transaction */ --- 237 unchanged lines hidden (view full) --- 438 439 /** Step on numIssuedFragments */ 440 void stepToNextPacket(); 441 442 bool hasPacketsInMemSystem() 443 { return numIssuedFragments != numRetiredFragments; } 444 445 /** Have we stepped past the end of fragmentPackets? */ |
444 bool sentAllPackets() { return numIssuedFragments == numFragments; } | 446 bool sentAllPackets() 447 { return numIssuedFragments == numTranslatedFragments; } |
445 446 /** For loads, paste the response data into the main 447 * response packet */ 448 void retireResponse(PacketPtr packet_); 449 450 /** Part of the address translation loop, see startAddTranslation */ 451 void sendNextFragmentToTranslation(); 452 }; --- 242 unchanged lines hidden (view full) --- 695 * BarrierDataRequest and pushed it into the store buffer */ 696 void completeMemBarrierInst(MinorDynInstPtr inst, 697 bool committed); 698 699 /** Single interface for readMem/writeMem/amoMem to issue requests into 700 * the LSQ */ 701 void pushRequest(MinorDynInstPtr inst, bool isLoad, uint8_t *data, 702 unsigned int size, Addr addr, Request::Flags flags, | 448 449 /** For loads, paste the response data into the main 450 * response packet */ 451 void retireResponse(PacketPtr packet_); 452 453 /** Part of the address translation loop, see startAddTranslation */ 454 void sendNextFragmentToTranslation(); 455 }; --- 242 unchanged lines hidden (view full) --- 698 * BarrierDataRequest and pushed it into the store buffer */ 699 void completeMemBarrierInst(MinorDynInstPtr inst, 700 bool committed); 701 702 /** Single interface for readMem/writeMem/amoMem to issue requests into 703 * the LSQ */ 704 void pushRequest(MinorDynInstPtr inst, bool isLoad, uint8_t *data, 705 unsigned int size, Addr addr, Request::Flags flags, |
703 uint64_t *res, AtomicOpFunctor *amo_op); | 706 uint64_t *res, AtomicOpFunctor *amo_op, 707 const std::vector<bool>& byteEnable = 708 std::vector<bool>()); |
704 705 /** Push a predicate failed-representing request into the queues just 706 * to maintain commit order */ 707 void pushFailedRequest(MinorDynInstPtr inst); 708 709 /** Memory interface */ 710 bool recvTimingResp(PacketPtr pkt); 711 void recvReqRetry(); --- 16 unchanged lines hidden --- | 709 710 /** Push a predicate failed-representing request into the queues just 711 * to maintain commit order */ 712 void pushFailedRequest(MinorDynInstPtr inst); 713 714 /** Memory interface */ 715 bool recvTimingResp(PacketPtr pkt); 716 void recvReqRetry(); --- 16 unchanged lines hidden --- |