“咱们计算所的高先生,体系结构专家。”
高先生大约五十岁,方脸,浓眉,穿着灰色的中山装,袖口沾着粉笔灰。
他面前摊开一本厚厚的笔记本,上面密密麻麻记满了字。
“北大数学系的程先生,函数逼近论专家;清华数学系的徐先生,应用数学和运筹学专家;北大物理系的甘先生,固体物理;清华物理系的何先生,统计物理。。。。。。”
每一位被点到名的学者都微微颔首。
他们中有年过花甲的老先生,也有三十出头的年轻研究员,但无一例外,眼神中都闪烁着那种只有沉浸在基础研究中的人才有的专注光芒。
“今天会议的主题是——”
夏先生转身,在黑板上写下几个大字:集成电路的数学原理、物理基础与体系结构方向。
“‘星河计划’不能只埋头做工艺、画版图。”
夏先生转过身,面对众人,“我们必须从根子上想清楚:我们究竟要造什么样的芯片?它要解决什么数学问题?会撞上什么物理限制?该用什么体系结构?以及——如何用数学方法来设计它?”
他顿了顿,目光扫过全场:“今天有五个核心议题。每个议题,我们都必须达成共识,形成可指导工程实践的技术路线。”
“现在,第一个议题——”
夏先生看向北大数学系的程教授,“程先生,请您开场。”
程教授站起身,他六十多岁,头发全白,但腰板挺直,声音洪亮。
“同志们,造计算机,最终是为了求解数学问题。”
他走到左边的黑板前,拿起粉笔,“在工业与国防中,最常见的是哪类问题?是微分方程、线性方程组,还是逻辑判断?”
他在黑板上写下三类问题:
微分方程(流体力学、弹道计算、反应堆中子输运)
线性方程组(结构力学、电网潮流、经济计划)
逻辑判断(自动控制、解码译码、协议处理)
“我从‘两弹一星’工程中,申请到了一份脱密后的典型算题统计。”
程教授从公文包里取出一份文件,递给旁边的助手,在墙上投影出一个计算图表。
图表显示,在过去三年的大型科学计算任务中,线性方程组求解占比42%,常微分方程数值积分占比28%,偏微分方程离散求解占比18%,其他如傅里叶变换、矩阵特征值、最优化等占比12%。
“超过70%的计算资源,用在了方程求解上。”
程教授指着图表,“这意味着什么?意味着我们的第一代芯片,必须优先支持科学计算,特别是浮点运算和矩阵运算。”
“但工业过程控制呢?”
高先生插话,“实时控制需要确定性的响应时间。一个化工厂的反应釜温度控制,要求毫秒级响应,不能等一个复杂的矩阵分解算完。”
本小章还未完,请点击下一页继续阅读后面精彩内容!
“这正是矛盾所在。”
程教授点头,“为科学计算设计的计算机,追求高精度和通用性,但响应时间不确定;为实时控制设计的计算机,要求在最坏情况下都能保证响应时间上限,但计算能力往往有限。”
会议室里响起了低声讨论。
数学家们倾向于支持科学计算优先,因为那是国家战略需求的核心;而来自工业一线的代表则强调实时控制的重要性。
吕辰举手发言:“程教授,高先生,我有个不成熟的想法。”
他站起来,走到黑板前:“我们能不能设计一种可配置的架构?在芯片内部,划分出不同的计算单元,有些单元专门做高精度浮点运算,优化科学计算;有些单元做定点的快速逻辑运算,优化实时控制。”
他在黑板上画了一个粗略的框图:“这些单元可以独立工作,也可以协同。当需要科学计算时,调动浮点单元;当需要实时控制时,调度逻辑单元。操作系统,或者说调度程序,根据任务类型动态分配资源。”
这个想法让在场的几位体系结构专家眼睛一亮。
高先生立刻追问:“硬件上怎么实现?代价会不会太大?”
“可以用‘指令集扩展’的思路。”
吕辰解释道,“基础指令集是精简的、确定的,保证实时性。然后通过扩展指令,增加浮点运算、向量运算等复杂功能。需要科学计算时,调用扩展指令;不需要时,这些硬件单元可以处于低功耗状态。”