Cray-1 随 FPGA“复兴”
时间:08-12
来源:互联网
点击:
硬件障碍
我在此简要介绍一下在设计过程中遇到的一些与 FPGA 相关的难题。首先,我最初的 Spartan-3E 1200 芯片已经证明不能满足要求。我在设计中添加了 Cray 的庞大矢量寄存器后,芯片有限的逻辑资源就不够用了。这时我开始有些犯憷,因为这时我的项目已经推进了 1 年多时间了,而且较大型 FPGA 的价格看似贵了很多。更大的 Virtex® 芯片能方便地满足我的设计要求,但开发板的成本已经超出了我几年兴趣爱好所能承受的预算范畴。幸运的是,Digilent 还出售了一款稍大型的 Spartan-3E 1600 开发板,价格对业余爱好者来说还能承担。实践证明,这块开发板对满足整个系统要求已经足够了(显著扩展了我所使用 BRAM 的容量)。
我遇到的另一个问题就是速度问题。尽管摩尔定律发展了 30 多年,但 Cray-1 原始的80MHz 设计对我可怜的 Spartan-3E 而言还是太高了。我的原始设计最高速度大约为 33 MHz,关键路径在级联加法器中,那是用在我简陋的浮点乘法器实施方案中的。幸运的是,Spartan-3E 配套提供众多 18 位硬件乘法器,能够将速度提升到近 50 MHz(面积却节省了 5%),但这时设计的其它部分又遇到了麻烦。Cray-1 具有大量 64 位数据路径,以及复杂的指令发布逻辑,这将 Spartan-3E 上的周期时间限制在 20 纳秒左右。目前我还算满意,而且较新的 Spartan-6 芯片将能满足 8-0 的水平要求。
外壳构造
硬件已经基本可以正常工作了,我开始投入一项有趣的工作,进行外壳构造。当然,电路设计是所有工程师都感兴趣的部分,不过我也要让自己的 Cray-1 看上去像个 Cray-1 的样子,这同样有趣。打造外壳的工作正好也让我的朋友 Pat 能试试他的新型 CNC 铣床。我去了几趟 Home Depot,在 Pat 的车库里度过了一个繁忙的周六(见图 2),总算获得了一个很像小型 Cray 的外壳。开发板为方形,我必须在基座方面多些创意(方形和 C 形不太搭配),不过该板尺寸很小,也就是说我设计的 Cray-1 的尺寸正好是正常 Cray-1 的十分之一。
我接下来又花了几周的时间去打磨、喷漆和抛光,最后还去了趟当地的织物店,以让我的小型 Cray-1也跟原型机一样有了特色化的内置仿皮座了,这样 Mattel 的新计算机工程师芭比娃娃终于有个地方歇脚了!
图 2 — 把标志性的 C 型外壳做好还真要花些功夫,当然也少不了老友的鼎力相助。
软件
CPU 基本可以正常工作了,外壳也已经就位,我准备宣布胜利了。我能够毫无问题地执行一些简单的指令回环和程序。不过能不能使用真正的软件呢?我全新的 Cray-1 有一大遗憾,就是完全缺乏软件,而且没有软件的计算机着实没什么价值。不幸的是,Cray-1 就诞生在一个没有因特网的时代,主要出售给一些听起来冠冕堂皇的政府机构。我花了几个月的时间在因特网上寻找软件,但还是一无所获。我给一些在国家实验室工作的朋友发了电子邮件,甚至还根据信息自由法案 (Freedom of Information Act) 向国家核安全机构(此处是指政府严密监察的名单)发函,但还是一无所获。
感到自己确实需要更多帮助,我最终决定在互联网上求助。我在自己网站的 micro-Cray 页面上发出了求助呼吁(同时展示我可爱的比例仅为正常 Cray-1 十分之一的外壳),而且还通过 Twitter 账户向一些朋友介绍该项目,通过因特网资源寻找帮助。几天之后,一些新闻站点都得知了我的故事,从全球各地给我发来大量电子邮件。不少电子邮件都是同情我经历的Cray爱好者发来的怀旧信。然而,最终有人表示有大摞大摞纸质版的几十年前的源代码,九轨磁带,甚至还有微缩胶片。有人还发电子邮件给我提供一份 20 年前的博士论文,包括一种少见的编程语言的Cray 兼容编译器的源代码(当然,需要在同样少见的编程语言中编写)。看来人们保存过时软件和文档以备今后之需,还真能应不时之需啊。
未来
我的缩微版大型机今后该怎么办呢(图 3)?我还想解决这台设备的一些故障并添加缺失的特性。我还没有完全解决软件问题,不过情况已经有所改观。一位热心网友找到了 20 世纪 80 年代末基于 DOS 的 Cray 仿真器,它同时也可作为简单的汇编程序(在 Windows 7 中也能正常运行)。相比直接使用 8 位机器码,用 Cray 汇编语言编程简直是一个梦想。如果我能读取老式介质,我或许就能获得源代码,运行至少一种操作系统,并使用真正的 Fortran 编译器。
另外,我的冷门爱好还引发了计算机历史博物馆 (http://www.computerhistory.org/) 的兴趣,或许我的微缩版 Cray 有朝一日会归隐于加利福尼亚的山景城。不过同时我也开始设想下一个项目了。
图 3 — 基于 Spartan-3E 的微缩版大型机的最终成型图
我在此简要介绍一下在设计过程中遇到的一些与 FPGA 相关的难题。首先,我最初的 Spartan-3E 1200 芯片已经证明不能满足要求。我在设计中添加了 Cray 的庞大矢量寄存器后,芯片有限的逻辑资源就不够用了。这时我开始有些犯憷,因为这时我的项目已经推进了 1 年多时间了,而且较大型 FPGA 的价格看似贵了很多。更大的 Virtex® 芯片能方便地满足我的设计要求,但开发板的成本已经超出了我几年兴趣爱好所能承受的预算范畴。幸运的是,Digilent 还出售了一款稍大型的 Spartan-3E 1600 开发板,价格对业余爱好者来说还能承担。实践证明,这块开发板对满足整个系统要求已经足够了(显著扩展了我所使用 BRAM 的容量)。
我遇到的另一个问题就是速度问题。尽管摩尔定律发展了 30 多年,但 Cray-1 原始的80MHz 设计对我可怜的 Spartan-3E 而言还是太高了。我的原始设计最高速度大约为 33 MHz,关键路径在级联加法器中,那是用在我简陋的浮点乘法器实施方案中的。幸运的是,Spartan-3E 配套提供众多 18 位硬件乘法器,能够将速度提升到近 50 MHz(面积却节省了 5%),但这时设计的其它部分又遇到了麻烦。Cray-1 具有大量 64 位数据路径,以及复杂的指令发布逻辑,这将 Spartan-3E 上的周期时间限制在 20 纳秒左右。目前我还算满意,而且较新的 Spartan-6 芯片将能满足 8-0 的水平要求。
外壳构造
硬件已经基本可以正常工作了,我开始投入一项有趣的工作,进行外壳构造。当然,电路设计是所有工程师都感兴趣的部分,不过我也要让自己的 Cray-1 看上去像个 Cray-1 的样子,这同样有趣。打造外壳的工作正好也让我的朋友 Pat 能试试他的新型 CNC 铣床。我去了几趟 Home Depot,在 Pat 的车库里度过了一个繁忙的周六(见图 2),总算获得了一个很像小型 Cray 的外壳。开发板为方形,我必须在基座方面多些创意(方形和 C 形不太搭配),不过该板尺寸很小,也就是说我设计的 Cray-1 的尺寸正好是正常 Cray-1 的十分之一。
我接下来又花了几周的时间去打磨、喷漆和抛光,最后还去了趟当地的织物店,以让我的小型 Cray-1也跟原型机一样有了特色化的内置仿皮座了,这样 Mattel 的新计算机工程师芭比娃娃终于有个地方歇脚了!
图 2 — 把标志性的 C 型外壳做好还真要花些功夫,当然也少不了老友的鼎力相助。
软件
CPU 基本可以正常工作了,外壳也已经就位,我准备宣布胜利了。我能够毫无问题地执行一些简单的指令回环和程序。不过能不能使用真正的软件呢?我全新的 Cray-1 有一大遗憾,就是完全缺乏软件,而且没有软件的计算机着实没什么价值。不幸的是,Cray-1 就诞生在一个没有因特网的时代,主要出售给一些听起来冠冕堂皇的政府机构。我花了几个月的时间在因特网上寻找软件,但还是一无所获。我给一些在国家实验室工作的朋友发了电子邮件,甚至还根据信息自由法案 (Freedom of Information Act) 向国家核安全机构(此处是指政府严密监察的名单)发函,但还是一无所获。
感到自己确实需要更多帮助,我最终决定在互联网上求助。我在自己网站的 micro-Cray 页面上发出了求助呼吁(同时展示我可爱的比例仅为正常 Cray-1 十分之一的外壳),而且还通过 Twitter 账户向一些朋友介绍该项目,通过因特网资源寻找帮助。几天之后,一些新闻站点都得知了我的故事,从全球各地给我发来大量电子邮件。不少电子邮件都是同情我经历的Cray爱好者发来的怀旧信。然而,最终有人表示有大摞大摞纸质版的几十年前的源代码,九轨磁带,甚至还有微缩胶片。有人还发电子邮件给我提供一份 20 年前的博士论文,包括一种少见的编程语言的Cray 兼容编译器的源代码(当然,需要在同样少见的编程语言中编写)。看来人们保存过时软件和文档以备今后之需,还真能应不时之需啊。
未来
我的缩微版大型机今后该怎么办呢(图 3)?我还想解决这台设备的一些故障并添加缺失的特性。我还没有完全解决软件问题,不过情况已经有所改观。一位热心网友找到了 20 世纪 80 年代末基于 DOS 的 Cray 仿真器,它同时也可作为简单的汇编程序(在 Windows 7 中也能正常运行)。相比直接使用 8 位机器码,用 Cray 汇编语言编程简直是一个梦想。如果我能读取老式介质,我或许就能获得源代码,运行至少一种操作系统,并使用真正的 Fortran 编译器。
另外,我的冷门爱好还引发了计算机历史博物馆 (http://www.computerhistory.org/) 的兴趣,或许我的微缩版 Cray 有朝一日会归隐于加利福尼亚的山景城。不过同时我也开始设想下一个项目了。
图 3 — 基于 Spartan-3E 的微缩版大型机的最终成型图
FPGA 电子 Verilog 仿真 总线 电路 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)
