Ejemplo n.º 1
0
 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>();
     }
 }
Ejemplo n.º 2
0
 public ExecutionBatch()
 {
     ReadBatch  = new InternalReadRequestLinkedList();
     WriteBatch = new InternalWriteRequestLinkedList();
     EraseBatch = new InternalCleanRequestLinkedList();
 }
Ejemplo n.º 3
0
 /// <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);