Hi All, My research idea is based on SMT for multicore processors so I need to implement SMT on FS mode for OoO CPU. I looked to the FullO3CPU class carefully and I have some questions that I think it will help me to implement SMT on FS mode:
Q1) At the beginning I want to fix the number of threads on each core for example 2 or 4 for simplicity, but I need to know how I can assign the software threads that generated from rcS file to a specific core and also to a specific thread on that core later. I found in the archive that there is a function called setAffinity() which is responsible for assigning loads to cores I think so. My question is where I can find this function and is there a way to look for a specific function in all src files. Q2) I found in FullO3CPU: in FS mode one thread is created per core and it does not assign a workload for that thread. (I understand that because of SMT is not supported and only one thread is created but where that thread gets its instructions from Q3) To support SMT on FS mode we need to wakeup a specific thread (we need to pass tid to wakeup function). My question is where we call the wakeup(). Q4) handling interrupts: right now checking interrupts is done only for thread 0 and also interrupts processed or handled only by thread 0. And when I checked the interrupt class I found a reference to cpu so we can match specific interrupt to a specific cpu but not for a specific thread in that cpu. My question is should I add a reference to tid (threadID) in the interrupt class so that a related thread will only process that interrupt or the interrupt can be handled by any thread running in that cpu. Correct me If I am in the wrong way. I appreciate your corrections, answers and suggestions. thanks. Ziad.
_______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
