當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]1976 年,迪斯科還大行其道,冷戰(zhàn)正處于高潮,而我要到 9 年之后才出生。那年,正是 Cray-1 在計算機領(lǐng)域大顯身手之際,個人計算當(dāng)時還處于發(fā)展的初期(MITS Altair 一年前剛剛推出),同時 Control Data 和 IBM 等公

1976 年,迪斯科還大行其道,冷戰(zhàn)正處于高潮,而我要到 9 年之后才出生。那年,正是 Cray-1 在計算機領(lǐng)域大顯身手之際,個人計算當(dāng)時還處于發(fā)展的初期(MITS Altair 一年前剛剛推出),同時 Control Data 和 IBM 等公司統(tǒng)領(lǐng)高端市場。Cray-1 是人們印象中用于定義“超級計算機”的傳奇機器之一。其采用獨特的 C 型結(jié)構(gòu),運行速度高達驚人的 80 MHz,桌面電腦直到 20 年之后才能達到這樣的速度。Cray 速度快,也極富吸引力。

現(xiàn)在,讓我們把時間快進到 33 年后,那是 2009 年初的一個清晨,我起床后也想擁有一臺 Cray 超級計算機。

我首先要回顧一下基于 FPGA 的復(fù)古計算機技術(shù)。我 2007 年 12 月從南加州大學(xué)畢業(yè)并獲得 BSEE 學(xué)位,當(dāng)時我把它稱作“計算機招魂術(shù)”。作為新生代電子工程師,我對神秘的計算機架構(gòu)特別感興趣,覺得正好可以借此提高我的 Verilog 水平。我畢業(yè)時為自己買了一套 Digilent 公司的 Spartan®-3E 1200 開發(fā)板當(dāng)禮物。我的第一臺計算機則是 1980 年代的老古董 NonVon-1。它屬于首批“大型并行”機之一,類似于同樣古老但更為成功的 Connection Machine 系列(不過主要用于數(shù)據(jù)庫)。這是一臺非常有趣的設(shè)備,采用 8 位處理器的二進制樹狀結(jié)構(gòu)(帶 1 位 ALU)。

Cray-1 是人們印象中用于定義“超級計算機”的傳奇機器之一。其采用獨特的 C 型結(jié)構(gòu),運行速度高達驚人的 80 MHz,桌面電腦直到 20 年之后才能達到這樣的速度。

經(jīng)過幾個月的折騰,我總算造出了一臺 31 節(jié)點的超級計算機,不過其計算能力還比不上現(xiàn)今任何一塊手表。雖然這東西沒什么用處,卻讓我明白了摩爾定律的巨大作用,也激發(fā)我進一步動手的欲望。

首臺 NonVon-1 獲得成功后,我又開始尋找新的項目(我的 Verilog 技能仍比較欠缺)。我認識到,低端 FPGA 已經(jīng)能夠處理一些比較高級的硬件了,目前甚至 32 位軟處理器都比較常見了。我努力尋找一個能煥發(fā)新生的新目標(biāo),也考慮了不少選擇,包括 UNIVAC 這臺有趣的設(shè)備,不過它確實有點太老了。 Digital Equipment 公司的 PDP 系列已經(jīng)被硬件仿真過。Z80 設(shè)備的軟件仿真器也非常常見。因此,我想到了 Cray。

Cray-1 是什么?

Cray-1 是 Seymour Cray 于 20 世紀(jì) 70 年代初離開 Control Data 后所成立新公司 Cray Research 推出的首臺設(shè)備。當(dāng)時該設(shè)備計算能力強大,需要占用整個房間來放置計算機和磁盤才能保證數(shù)據(jù)接收。此外,它還擁有一個全職工程師團隊來確保正常運行,甚至還需要自備發(fā)電設(shè)備才能確保加電啟動。該設(shè)備重新定義了當(dāng)時的“超級計算機”(畢竟這是 Cray),而且幸運的是它的設(shè)計美妙而簡單,相關(guān)資料也非常齊備(圖 1 所示)。Cray-1 硬件參考手冊(在因特網(wǎng)上很容易找到)非常詳細,現(xiàn)在的用戶往往只能拿到黑盒子,看到這么詳細的說明肯定會感到震驚。幾乎所有運算代碼、寄存器及時序圖都得到了妥善而詳盡的保留。

這臺計算機本身是一款64 位流水線處理器,順序指令發(fā)送,只有 128 條獨特指令。它采用類似 RISC 的指令集,所有指令都既可在存儲器和寄存器(加載或存儲指令)之間,也可在兩個操作數(shù)寄存器和一個目的地寄存器之間(全部算術(shù)/邏輯指令)。指令為 16 位或 32 位長。該設(shè)備使用三種不同類型的寄存器:地址、標(biāo)量和矢量寄存器。地址寄存器為 24 位寬,并能夠讓設(shè)備對高達 4 Megaword (32 MB) 的主存儲器進行尋址。標(biāo)量寄存器為 64 位寬,用于計算。每個矢量寄存器包括 64 個 64 位寄存器,從而能夠在進行大矩陣科學(xué)計算時確保出色的性能。

圖 1 — 讓計算機愛好者感到幸運的是,Cray 的架構(gòu)設(shè)計美妙而簡單,而且相關(guān)資料保存完好。

在 CPU 中,指令可發(fā)送給 13 個獨立的全流水線“功能單元”。高強度的流水線功能對實現(xiàn) Cray 當(dāng)時極高的 80MHz 時鐘頻率而言至關(guān)重要。不同的功能單元處理邏輯操作、移位、乘法等。比方說,一個浮點乘法指令需要 7 個周期才能完成,但計算機每個周期都能發(fā)出一條新的乘法指令(假定不存在寄存器沖突)。該設(shè)計會產(chǎn)生一種有趣的情況,即沒有“除法”指令,而是采用倒數(shù)近似值除法。也就是說,我們不是計算 X / Y,而是計算 (1 / Y) * X。單獨的浮點“倒數(shù)近似值”函數(shù)單元可在 14 個時鐘周期內(nèi)計算出倒數(shù)。

馬拉松

我剛開始著手這一項目時,并不完全確定是否能靠自己的力量重新構(gòu)建如此復(fù)雜的計算設(shè)備。原始的Cray-1花了整個工作團隊多年的時間才設(shè)計和構(gòu)建完成。我有無足夠的決心做下去呢?(結(jié)果是我確實做下去了。)我的FPGA能否真的滿足要求?(結(jié)果是不能滿足。)即便設(shè)計比較簡單而直接,但設(shè)計規(guī)模仍然較大(目前需要約5,600行Verilog代碼,而且數(shù)量還在不斷增多)。我必須要保持信念。構(gòu)建自己的超級計算機是一場馬拉松,而不是一場沖刺賽。我只能一步步穩(wěn)扎穩(wěn)打地前進。

我開始逐一創(chuàng)建功能單元。就像改裝汽車一樣,構(gòu)建完整的計算機也必須熟悉設(shè)計的各個方面,這是一種全新的體驗。我探索乘法器和加法器設(shè)計。我重新打開教科書研究浮點算法。我學(xué)習(xí)如何使用Newton Raphson法三次迭代計算30位精度的倒數(shù)近似值。(我前面提到過硬件參考手冊的詳細度吧?)功能單元逐一成型。

這完全是一項業(yè)余時間的項目,因此項目只能一點點地慢慢推進。我從最簡單的模塊開始,很輕松地就完成了兩個地址功能單元(一個簡單的加法器和一個乘法器)。進入標(biāo)量函數(shù)單元時(一個加法器、一個邏輯單元、一個移位器和一個總體 (population)/
前導(dǎo)零計數(shù) (leading zero count)),進度就放緩了。處理三個浮點函數(shù)單元(一個加法器、一個乘法器和麻煩的倒數(shù)近似值單元)時,我已經(jīng)感到動力不足了。如前所述,這就是一場馬拉松,不是一場沖刺賽。我2009年初開始著手Cray-1項目,可能在這個項目上總共花了19到20個月的時間。

隨后我的工作進度再度加快,開始接近浮點單元設(shè)計的尾聲,在矢量單元方面的推進速度也開始加快。如前所述,Cray-1設(shè)計作為一款具有高計算強度的巨型機,擁有8個矢量寄存器,每個都包含64個64位寄存器。矢量指令執(zhí)行時,比方說進行加法計算,每個運算對象錄入后每個周期都添加并存儲在第三個矢量上(結(jié)果矢量)。

Cray-1支持一個出色的特性,即“矢量鏈”。比方說,矢量加法單元只需三個周期即能生成首個結(jié)果。如果我們將兩個含有64個條目的矢量相加,我們希望在所有64個條目都完成加法計算前就可以對結(jié)果進行操作。矢量鏈?zhǔn)刮覀兡軌驅(qū)⒓臃ㄆ鲉卧慕Y(jié)果直接“鏈接”到另一個單元的輸入,不必等待操作結(jié)束。我們可在獲得首個結(jié)果的兩個周期后讓結(jié)果與第三個矢量相乘。對于一些大型矩陣計算而言,在80 MHz頻率上我們幾乎可以保持每個時鐘周期兩次浮點操作,也就是峰值速率達160MFLOPS!直到20世紀(jì) 90年代中期,普通臺式電腦還不及Cray-1的水平。

有了功能單元,我已經(jīng)能看到長夜將近的黎明曙光了。顯然,只需添加一些膠合邏輯就差不多完工了。是的,確實接近完工了。不過我發(fā)現(xiàn),膠合邏輯的工作量其實很大。盡管Cray-1的相關(guān)存檔非常齊備,但齊備的程度還不夠。我非常清楚,我在一些不大不小細節(jié)的逆向工程方面遇到了困難,如指令發(fā)布、冒險檢測以及矢量鏈等。有些問題,比如較寬的64位數(shù)據(jù)總線可用分立式邏輯芯片更方便地解決,而不必使用面向較窄數(shù)據(jù)路徑的FPGA。矢量寄存器在布線時總是讓我頭疼。

此外,我還要修改一些特性。Cray-1采用16組全SRAM存儲器系統(tǒng),體積跟我的冰箱差不多大,其4Megaword存儲器可實現(xiàn)每秒640MB的帶寬,我開發(fā)工具套件所用的簡陋的DDR存儲器芯片肯定達不到這樣的性能。我使用幾乎所有的FPGA片上BRAM也只能獲得4 kiloword的存儲器空間,這是我的Cray目前面臨的最大瓶頸。而且我也必須忽略掉一些特性:

用于與磁盤驅(qū)動器和“主機式”微型計算機進行通信的 DMA 類 I/O 通道和快速上下文切換支持。我要是能找到設(shè)備可用的存儲器和相關(guān)軟件,或許可以再添加進這些特性。

硬件障礙

我在此簡要介紹一下在設(shè)計過程中遇到的一些與FPGA相關(guān)的難題。首先,我最初的Spartan-3E 1200芯片已經(jīng)證明不能滿足要求。我在設(shè)計中添加了Cray的龐大矢量寄存器后,芯片有限的邏輯資源就不夠用了。這時我開始有些犯憷,因為這時我的項目已經(jīng)推進了1年多時間了,而且較大型FPGA的價格看似貴了很多。更大的Virtex® 芯片能方便地滿足我的設(shè)計要求,但開發(fā)板的成本已經(jīng)超出了我?guī)啄昱d趣愛好所能承受的預(yù)算范疇。幸運的是,Digilent還出售了一款稍大型的Spartan-3E 1600開發(fā)板,價格對業(yè)余愛好者來說還能承擔(dān)。實踐證明,這塊開發(fā)板對滿足整個系統(tǒng)要求已經(jīng)足夠了(顯著擴展了我所使用BRAM的容量)。

我遇到的另一個問題就是速度問題。盡管摩爾定律發(fā)展了30多年,但Cray-1原始的80MHz設(shè)計對我可憐的Spartan-3E而言還是太高了。我的原始設(shè)計最高速度大約為33 MHz,關(guān)鍵路徑在級聯(lián)加法器中,那是用在我簡陋的浮點乘法器實施方案中的。幸運的是,Spartan-3E配套提供眾多18位硬件乘法器,能夠?qū)⑺俣忍嵘浇?0 MHz(面積卻節(jié)省了5%),但這時設(shè)計的其它部分又遇到了麻煩。Cray-1具有大量64位數(shù)據(jù)路徑,以及復(fù)雜的指令發(fā)布邏輯,這將Spartan-3E上的周期時間限制在20納秒左右。目前我還算滿意,而且較新的Spartan-6芯片將能滿足8-0的水平要求。

外殼構(gòu)造

硬件已經(jīng)基本可以正常工作了,我開始投入一項有趣的工作,進行外殼構(gòu)造。當(dāng)然,電路設(shè)計是所有工程師都感興趣的部分,不過我也要讓自己的Cray-1看上去像個Cray-1的樣子,這同樣有趣。打造外殼的工作正好也讓我的朋友Pat能試試他的新型CNC銑床。我去了幾趟Home Depot,在Pat的車庫里度過了一個繁忙的周六(見圖2),總算獲得了一個很像小型Cray的外殼。開發(fā)板為方形,我必須在基座方面多些創(chuàng)意(方形和C形不太搭配),不過該板尺寸很小,也就是說我設(shè)計的Cray-1的尺寸正好是正常Cray-1的十分之一。

 

圖 2 — 把標(biāo)志性的 C 型外殼做好還真要花些功夫,當(dāng)然也少不了老友的鼎力相助。

我接下來又花了幾周的時間去打磨、噴漆和拋光,最后還去了趟當(dāng)?shù)氐目椢锏?,以讓我的小型Cray-1也跟原型機一樣有了特色化的內(nèi)置仿皮座了,這樣Mattel的新計算機工程師芭比娃娃終于有個地方歇腳了!

軟件

CPU基本可以正常工作了,外殼也已經(jīng)就位,我準(zhǔn)備宣布勝利了。我能夠毫無問題地執(zhí)行一些簡單的指令回環(huán)和程序。不過能不能使用真正的軟件呢?我全新的Cray-1有一大遺憾,就是完全缺乏軟件,而且沒有軟件的計算機著實沒什么價值。不幸的是,Cray-1就誕生在一個沒有因特網(wǎng)的時代,主要出售給一些聽起來冠冕堂皇的政府機構(gòu)。我花了幾個月的時間在因特網(wǎng)上尋找軟件,但還是一無所獲。我給一些在國家實驗室工作的朋友發(fā)了電子郵件,甚至還根據(jù)信息自由法案 (Freedom of Information Act) 向國家核安全機構(gòu)(此處是指政府嚴密監(jiān)察的名單)發(fā)函,但還是一無所獲。

感到自己確實需要更多幫助,我最終決定在互聯(lián)網(wǎng)上求助。我在自己網(wǎng)站的micro-Cray頁面上發(fā)出了求助呼吁(同時展示我可愛的比例僅為正常Cray-1十分之一的外殼),而且還通過Twitter賬戶向一些朋友介紹該項目,通過因特網(wǎng)資源尋找?guī)椭滋熘?,一些新聞?wù)军c都得知了我的故事,從全球各地給我發(fā)來大量電子郵件。不少電子郵件都是同情我經(jīng)歷的Cray愛好者發(fā)來的懷舊信。然而,最終有人表示有大摞大摞紙質(zhì)版的幾十年前的源代碼,九軌磁帶,甚至還有微縮膠片。有人還發(fā)電子郵件給我提供一份20年前的博士論文,包括一種少見的編程語言的Cray兼容編譯器的源代碼(當(dāng)然,需要在同樣少見的編程語言中編寫)??磥砣藗儽4孢^時軟件和文檔以備今后之需,還真能應(yīng)不時之需啊。

未來

我的縮微版大型機今后該怎么辦呢(圖 3)?我還想解決這臺設(shè)備的一些故障并添加缺失的特性。我還沒有完全解決軟件問題,不過情況已經(jīng)有所改觀。一位熱心網(wǎng)友找到了20世紀(jì)80年代末基于DOS的Cray仿真器,它同時也可作為簡單的匯編程序(在Windows 7中也能正常運行)。相比直接使用8位機器碼,用Cray匯編語言編程簡直是一個夢想。如果我能讀取老式介質(zhì),我或許就能獲得源代碼,運行至少一種操作系統(tǒng),并使用真正的Fortran編譯器。

 

圖 3 — 基于 Spartan-3E 的微縮版大型機的最終成型圖


另外,我的冷門愛好還引發(fā)了計算機歷史博物館 ( h t t p : / / w w w .computerhistory.org/ ) 的興趣,或許我的微縮版Cray有朝一日會歸隱于加利福尼亞的山景城。不過同時我也開始設(shè)想下一個項目了。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉