public InternalReadRequestLinkedList WaitingFlashTransfersForEmergencyGC = new InternalReadRequestLinkedList(); //The read request related to emergency GC are scheduled in this list /// <summary> /// Stores channel management information. /// </summary> /// <param name="flashChips"></param> /// <param name="waitingInternalWriteReqs">If allocation scheme is F, then this variable is /// shared among all channels, otherwise, each channel has a private version of this variable.</param> /// <param name="rowID"></param> public BusChannelSprinkler(uint channelID, FlashChip[] flashChips, InternalReadRequestLinkedList waitingInternalReadReqs, InternalWriteRequestLinkedList waitingInternalWriteReqs, InternalWriteRequestLinkedList waitingCopybackRequests) : base(channelID, flashChips) { WaitingInternalReadReqs = waitingInternalReadReqs; WaitingInternalWriteReqs = waitingInternalWriteReqs; WaitingCopybackRequests = waitingCopybackRequests; }
public RateControlOutputQueue(int priorityClassCount, uint chipCount, uint dieNoPerChip, uint planeNoPerDie) { ReadQueues = new InternalReadRequestLinkedList[priorityClassCount]; WriteQueues = new InternalWriteRequestLinkedList[priorityClassCount]; for (int i = 0; i < priorityClassCount; i++) { ReadQueues[i] = new InternalReadRequestLinkedList(); WriteQueues[i] = new InternalWriteRequestLinkedList(); } GCReadQueueForPlanes = new InternalReadRequestLinkedList[chipCount][][]; GCWriteQueueForPlanes = new InternalWriteRequestLinkedList[chipCount][][]; GCEraseQueueForPlanes = new InternalCleanRequestLinkedList[chipCount][][]; for (int chipCntr = 0; chipCntr < chipCount; chipCntr++) { GCReadQueueForPlanes[chipCntr] = new InternalReadRequestLinkedList[dieNoPerChip][]; GCWriteQueueForPlanes[chipCntr] = new InternalWriteRequestLinkedList[dieNoPerChip][]; GCEraseQueueForPlanes[chipCntr] = new InternalCleanRequestLinkedList[dieNoPerChip][]; for (int dieCntr = 0; dieCntr < dieNoPerChip; dieCntr++) { GCReadQueueForPlanes[chipCntr][dieCntr] = new InternalReadRequestLinkedList[planeNoPerDie]; GCWriteQueueForPlanes[chipCntr][dieCntr] = new InternalWriteRequestLinkedList[planeNoPerDie]; GCEraseQueueForPlanes[chipCntr][dieCntr] = new InternalCleanRequestLinkedList[planeNoPerDie]; for (int planeCntr = 0; planeCntr < planeNoPerDie; planeCntr++) { GCReadQueueForPlanes[chipCntr][dieCntr][planeCntr] = new InternalReadRequestLinkedList(); GCWriteQueueForPlanes[chipCntr][dieCntr][planeCntr] = new InternalWriteRequestLinkedList(); GCEraseQueueForPlanes[chipCntr][dieCntr][planeCntr] = new InternalCleanRequestLinkedList(); } } } GCPriorityClasses = new LinkedList <IntegerPageAddress> [InputStreamBase.PriorityClassCount]; for (int i = 0; i < InputStreamBase.PriorityClassCount; i++) { GCPriorityClasses[i] = new LinkedList <IntegerPageAddress>(); } }
public ExecutionBatch() { ReadBatch = new InternalReadRequestLinkedList(); WriteBatch = new InternalWriteRequestLinkedList(); EraseBatch = new InternalCleanRequestLinkedList(); }