Untitled
unknown
c_cpp
2 years ago
1.0 kB
11
Indexable
void ICL::read(Request &req, uint64_t &tick) {
arg = "r";
calculator.utilFunc(req, arg, tick);
uint64_t beginAt;
uint64_t finishedAt = tick;
uint64_t reqRemain = req.length;
Request reqInternal;
reqInternal.reqID = req.reqID;
reqInternal.offset = req.offset;
for (uint64_t i = 0; i < req.range.nlp; i++) {
beginAt = tick;
reqInternal.reqSubID = i + 1;
reqInternal.range.slpn = req.range.slpn + i;
reqInternal.length = MIN(reqRemain, logicalPageSize - reqInternal.offset);
pCache->read(reqInternal, beginAt);
reqRemain -= reqInternal.length;
reqInternal.offset = 0;
finishedAt = MAX(finishedAt, beginAt);
}
debugprint(LOG_ICL,
"READ | LCA %" PRIu64 " + %" PRIu64 " | %" PRIu64 " - %" PRIu64
" (%" PRIu64 ")",
req.range.slpn, req.range.nlp, tick, finishedAt,
finishedAt - tick);
tick = finishedAt;
tick += applyLatency(CPU::ICL, CPU::READ);
}Editor is loading...