Changeset 16 for trunk/src/l1cache.cpp


Ignore:
Timestamp:
Jun 24, 2009, 4:56:12 PM (15 years ago)
Author:
guillaumeb
Message:

localisation du problème

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/l1cache.cpp

    r5 r16  
    1919    miss_info = false;
    2020    hit_info = false;
     21   
     22   
     23    // Est-ce que des élements sont chargés dans ce cache, et prêts à être envoyés ?
     24    Address *head = processing_queue->get_next_ready();
     25    if (head != NULL) // oui
     26    {
     27        cout << "has ready elements  : " << *head <<  endl;
     28        cstore->do_load(*head);
    2129
    22     if (in_activate) {
     30        // Envoi de la réponse au processeur
     31        RawAddress req(head->as_absolute());
     32        out_activate = true;
     33        out_data = req;
     34
     35    // Sinon, est-ce qu'on est en train de faire une requête ?
     36    } else if (in_activate) {
    2337
    2438        // Retrieves the address
     
    2640        Address element(req, cstore->get_line_width());
    2741
     42        //
     43        //  XXX FIXME A PARTIR d'ICI C'EST N'IMPORTE QUOI
     44        //
     45        //  rappel : processing queue c'est le chargement interne. Si un élement
     46        //  est déjà chargé dans le cache, il va dans la processing queue,
     47        //  sinon, il part en requete dans le L2
     48        //
     49        //  ca m'apprendra a faire du copier coller et commiter sans verifier
     50        //
    2851        // Si la donnée est chargée dans le cache
    2952        if (cstore->is_loaded(element)) {
     
    3356            // affichage de l'action
    3457            cout << sc_time_stamp() << " L1Cache : access to loaded data [" << element << "]  -> hit" << endl;
    35 
    3658
    3759            hit_info = true;
     
    4668            processing_queue->print();
    4769        }
     70
     71        //
     72        // XXX JUSQU'A ICI, C'est N'IMPORTE QUOI
     73        //
    4874    }
    4975
    50     Address *head = processing_queue->get_next_ready();
    51     if (head != NULL)
    52     {
    53         cout << "has ready elements " << endl;
    54         //processing_queue->print();
    55 
    56         cstore->do_load(*head);
    57 
    58         // Envoi de la réponse au processeur
    59         RawAddress req(head->as_absolute());
    60         out_activate = true;
    61         out_data = req;
    62     } else if (! in_activate) {
     76   
     77    if (!in_activate && processing_queue->is_empty()) {
    6378        out_activate = false;
    6479    }
Note: See TracChangeset for help on using the changeset viewer.