예제 #1
0
파일: CPU.cs 프로젝트: Jsimmons--dev/Gemini
 public void writeback(WritebackArgs args)
 {
     if (args.locked == false)
     {
         if(args.wb == 2)
         {
             registerPC = args.temp;
         }
         if (registerWB != -1)
             registerACC = args.temp;
         if (args.wb == 1)
         {
             memory[(short)args.temp] = registerACC;
         }
     }
 }
예제 #2
0
파일: CPU.cs 프로젝트: Jsimmons--dev/Gemini
 public void stepPipeline(FetchArgs fetchArgs,DecodeArgs decodeArgs,ExecuteArgs executeArgs, WritebackArgs writebackArgs)
 {
     Thread f = new Thread(() => fetch(fetchArgs));
     Thread d = new Thread(() => decode(decodeArgs));
     Thread e = new Thread(() => execute(executeArgs));
     Thread w = new Thread(() => writeback(writebackArgs));
     f.Start();
     d.Start();
     e.Start();
     w.Start();
     f.Join();
     d.Join();
     e.Join();
     w.Join();
 }