Facebook工程師開發開源自計時設備 僅需一個PCIe插槽即可工作
大多數人可能沒有意識到我們的設備在多大程度上是由時間驅動的,無論是你的手機、你的筆記型電腦還是網路伺服器。 在大多數情況下,設備保持準確的時間一直是一個深奧的苦差事,由有限的硬體製造商負責處理。 雖然這些設備達到了它們的目的,但幾位Facebook的工程師認為必須有一個更好的方法。
因此,他們建立了一個新的更準確的計時設備,它只需要一個PCI Express(PCIe)介面,Facebook將其作為一個開源項目貢獻給了開放計算專案。
Facebook的生產工程師Olag Obleukhov說,在一個基本的層面上,所有的設備只是對NTP計時伺服器進行訪問操作,以確保每個設備都報告相同的時間。 他解釋說:「今天幾乎所有的電子設備都使用NTP–網路時間同步協定–你的手機、手錶、筆記型電腦,到處都有,它們都連接到這些NTP伺服器,它們只是會問伺服器,『現在是什麼時間』,隨後NTP伺服器提供時間,”
在Facebook開發出一種新的方法之前,基本上有兩種方法來檢查時間。 如果你是一個開發者,你可能會使用像NTP這樣的東西作為時間檢查機制,但是像Facebook這樣的公司,在大規模工作時需要一些即使在沒有互聯網連接的情況下也能工作,運行這種封閉式數據中心的公司會有一個叫Stratum One的硬體設備,這是一個大盒子,放在數據中心里,除了充當時間保持者沒有其他工作。
因為這些記時盒是由少數幾家公司自行製作的,它們很牢固也很好用,但很難獲得新的功能。 更重要的是,像Facebook這樣的公司無法控制這些盒子,因為它們具有專利性質。 Obleukhov和他的同事研究科學家Ahmad Byagowi開始著手解決這個問題,他們尋找一種方法,用現成的部件建立一個PCIe卡,可以把它插入任何有開放插槽的PC中,從而實現同樣的功能。
Facebook的計時PCI卡
他們在iPad上畫出了第一個設計圖,並開始將這一設想製作成原型。 一個時間裝置依賴於幾個關鍵部件:一個GNSS接收器和所謂的高穩定性振蕩器。 在一篇描述該專案的博文中,Obleukhov和Byagowi維解釋了這兩個部分的作用。
“這一切都從一個GNSS接收器開始,它提供一天中的時間(ToD)以及每秒1個脈衝(PPS)。 當接收器得到高穩定性振蕩器(如原子鐘或烤箱控制的晶體振蕩器)的支援時,它可以提供納秒級精度的時間。 這使得在PCIe卡上放一個計時裝置成為可能的一件事是原子鐘/振蕩器的微型化進展。
當設計開始形成時,工程師們決定使其具有靈活性,以使工程師們能夠發揮基本設計的作用,並將符合他們需要的任何部件放入其中。 有些人可能需要高度複雜的昂貴部件,但根據需求的不同也可以用更便宜的部件。
他們還在早期決定將設計過程開源,並讓開放計算專案參與進來,以便其他公司和工程師能夠為設計做出貢獻。 現在已經有十幾家供應商參與了這個專案,並有許多種類似的計時器被製造出來,包括由奧Obleukhov設計的這種PCIe卡片。