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(); }
/// <summary> /// Provides communication between controller and flash chip for a multiplane/interleaved erase command execution. /// </summary> /// <param name="internalReqList">The list of internal requests that are executed in multiplane or interleaved mode.</param> public abstract void SendAdvCommandToChipER(InternalCleanRequestLinkedList internalReqList);