3 处理器在等待获取主内存时会做什么? 假设l1和l2高速缓存请求导致未命中,处理器是否会停滞直到访问主存储器? 我听说过切换到另一个线程的想法,如果可以的话,用来唤醒停滞线程的原因是什么? 26 computer-architecture cpu-cache cpu-pipelines
6 在一个间隔中找到两个数字的最大异或:我们能做得比二次更好吗? lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 天真的算法只检查所有可能的对。例如在红宝石中,我们有: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 我感觉到,我们可以做得比二次。是否有针对此问题的更好算法? 14 algorithms algorithms machine-learning statistics testing terminology asymptotics landau-notation reference-request optimization scheduling complexity-theory time-complexity lower-bounds communication-complexity computational-geometry computer-architecture cpu-cache cpu-pipelines operating-systems multi-tasking algorithms algorithm-analysis education correctness-proof didactics algorithms data-structures time-complexity computational-geometry algorithms combinatorics efficiency partitions complexity-theory satisfiability artificial-intelligence operating-systems performance terminology computer-architecture
2 哪种分支预测更重要? 我观察到分支预测中有两种不同类型的状态。 在超标量执行中,分支预测非常重要,主要是执行延迟而不是获取延迟。 在指令流水线中,由于指令直到稍后才真正被执行,因此获取的问题更多。 其中哪一项非常重要(因为当今CPU中哪些真正重要)?如果两者都同等重要,或者如果第二个同等重要,那么为什么我们没有两个指令流水线(可能是一半的长度),然后根据分支,只选择其中一个,然后再次从分支开始填充开始? 11 cpu-pipelines computer-architecture