The Tyranny of the Clock
http://cacm.acm.org/magazines/2012/10/155552-the-tyranny-of-the-clock/fulltext
在Turing年代,芯片的logic相对来说比较复杂并且执行缓慢,相对来说通信非常快并且代价小。但是在现代设计的话,通信代价上来了而我们却没有跟进这种变化,作者认为这样会造成巨大的浪费。 每个zone之间进行同步越来越困难(换成硬件应该就是各个chip之间做时钟同步代价),阻碍着数据流的继续。我们应该让communication rather than logic should dominate our thinking.
The clock-free paradigm I promote relates to the clocked design paradigm as a "free economy" relates to a "controlled economy." We can regain the efficiency of local decision making by revolting against the pervasive beat of an external clock. # 对于clock-free的设计就好比自由经济,相对于控制经济而言能通过局部决策以及避免外部时钟在各个地方的同步来提高效率。
The paradigm shift I seek faces three formidable obstacles: technical, social and courage. # 这种转变会带来三个可怕的障碍
- First, technical: Make no mistake; designing a clock-free system can face the same hard problems of parallelism that give software people nightmares. But a few pioneers have shown that clock-free design is possible and sometimes even easy. The pioneers have uncovered benefits like using less than half, 40%, of the energy per operation as reported by Cornell. # 技术方面实现正确比较困难
- Second, social: All of today's commercial design tools assume clocked design. All engineering schools teach clocked design. Will we ever train enough young people in the clock-free paradigm for it to self-perpetuate? # 现在所有的知识都是关于clock design的。我们是否能够训练出足够的年轻人来掌握clock-free这种范式来使得它继续存在下去
- Third, courage: Management knows the costs, difficulties, and results of the "tried and true" clocked design paradigm. Management chooses "to bear those ills we have rather than fly to others that we know not of." # 勇气来挑战现有的方式,考虑到成本,技术以及最终可能存在的结果。大多数的人都选择"忍受当前的痛苦,而不愿意去一个我们不太确定的地方"
The clock-free design paradigm must eventually prevail. It fits physics. Each increase in the relative cost of communication over logic brings us closer to the fundamental physical truth that "simultaneous" lacks meaning. The clock-free paradigm fits everything we have learned since Turing about programming. Software avoids tyrannous global time constraints. Without freedom from global time constraints, software libraries would be impossible. "Modularity" and "data hiding" are basic principles of quality software because they allow reuse and local optimization. Software is self-timed: Each subroutine runs at its own pace; its users wait for it to finish. Imagine what software would be like if subroutines could start and end only at preset time intervals. "My subroutines all start at 3.68 millisecond intervals; how often do yours start?" # 但是作者相信这种方式最终会普及,因为这是符合物理规律的。通信相对开销的不断上升,使得我们不断地接近一个基本的事实,那就是"同时"是没有意义的。这个和软件也是一样的,如果不能够从时间的约束中解脱出来,那么软件是没有办法工作的。