他躲在Loft二层的一个玻璃隔断间里。
这里是整个“战情室”最安静,也是最核心的地方。
厚重的钢化玻璃隔绝了楼下的咆哮和电话铃声,只剩下空调出风口的轻微嗡嗡声。
林允宁坐在三块竖屏拼接的显示器前,脸色苍白。
他在“还债”。
之前在日本的高调秀透支了不少精力,而现在,他面对的是一个更棘手的技术??
软件太慢了。
屏幕上跑着一行行C++代码。
那是传统的高频交易策略程序。
代码逻辑本身并不难写,任何一个优秀的计算机专业本科生都能轻松写出来。
难的是优化,如何在最短时间内完成这一系列任务。
当一个市场数据包到达网卡,网卡会发起一个硬件中断,告诉CPU”来活了”。
CPU暂停手里的活,保存现场,切换到内核态,读取数据,再切换回用户态,交给程序处理。
程序算完,再走一遍流程把指令发出去。
这一套下来,哪怕是优化到极致的UNIX内核,也需要至少10微秒。
10微秒。
在人类眨眼的一瞬间300毫秒,这套流程可以跑三万次。
但在光速的世界里,10微秒意味着信号已经跑了3公里。
对于老乔拼死拼活在山上架塔省下来的那点时间来说,这简直就是犯罪。
“得绕过操作系统。”
林允宁喃喃自语,手里转着一支圆珠笔。
想要快,就得剥离一切中间商。
不能让CPU去管什么内存管理、进程调度。
要让网线直接插进逻辑电路里。
FPGA现场可编程门阵列。
这是唯一的答案。
但他没怎么碰过这玩意儿。
他是搞理论物理的,写代码也是为了算模型,那是软件思维。
而FPGA,本质上是在画电路图。
“系统。”
林允宁放下笔,闭上眼睛,向后靠在人体工学椅上。
视野中,熟悉的蓝色光幕展开。
【启动模拟学习。】
【目标:XilinxVirtex-5架构深度解析与Verilog硬件描述语言精通。】
【注入模拟时长:200小时。】
喧嚣退去,意识下沉。
【第10小时:你开始阅读Verilog的语法手册。这对你来说很难受。你习惯了C语言的“顺序执行”??先做A,再做B。但在FPGA的世界里,A和B是同时发生的。这里没有时间流逝,只有时钟信号的跳变Tick。你必须强
迫自己把大脑从“单线程”切换成“成千上万个并发线程”。】