基本指令运行如何并行
how basic instructions run in parallel
也许这是个愚蠢的问题,但我正在努力更好地了解硬件内部工作原理...
如果一个cpu有多个线程,我们有一组指令集来分配它。正如我从 http://www.lighterra.com/papers/basicinstructionscheduling/ link 中读到它是如何工作的一样。它说编译器将创建一个指令的依赖树,并且 运行 in parallel.how cpu 中的指令将知道依赖指令是否已完成。会不会增加复杂度。
我写个c代码看看这个
int main()
{
getchar();
putchar('a');
return 0;
}
我认为 getchar() 和 putchar() 的指令是独立的,当我不从键盘输入而不是在其他线程上输入时,应该执行 putchar('a') 的指令并且它应该显示输出在要求输入之前。但它一直在等待输入。
提前致谢。
那篇文章提到了 CDC 6600, one of the first computers to implement scoreboarding .
也许这是个愚蠢的问题,但我正在努力更好地了解硬件内部工作原理...
如果一个cpu有多个线程,我们有一组指令集来分配它。正如我从 http://www.lighterra.com/papers/basicinstructionscheduling/ link 中读到它是如何工作的一样。它说编译器将创建一个指令的依赖树,并且 运行 in parallel.how cpu 中的指令将知道依赖指令是否已完成。会不会增加复杂度。
我写个c代码看看这个
int main()
{
getchar();
putchar('a');
return 0;
}
我认为 getchar() 和 putchar() 的指令是独立的,当我不从键盘输入而不是在其他线程上输入时,应该执行 putchar('a') 的指令并且它应该显示输出在要求输入之前。但它一直在等待输入。
提前致谢。
那篇文章提到了 CDC 6600, one of the first computers to implement scoreboarding .