成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

異想天開!沒有CPU的操作系統

商務辦公
“The Last CPU”(https://doi.org/10.1145/3458336.3465291),ACM上的這一篇論文非常有趣,核心思想是如果計算機的體系結構中沒有了CPU,那么,操作系統又會是怎樣的呢?......不敢私藏,分享給大家。失去了,才可能知道珍惜,試圖減壓的時候不妨去讀一點論文,呵呵。

CPU的設計目的很單一,對存儲的內存執行邏輯操作。協處理器(如IO通道處理器、中斷控制器、定位點處理器)被添加到系統中,以提供CPU沒有的功能,因為它們可以更快、更有效地執行某些特定的任務。它們通過允許CPU專注于應用程序邏輯和一般的系統功能來提高系統性能,而更簡單的協同處理器則負責處理普通的任務。

圖片

1. 操作系統可以沒有CPU嗎?

對于高性能的應用程序而言,情況是完全相反的。可編程設備負責應用程序邏輯,而CPU只需要在這些任務中支持它們。眾所周知,比起在通用CPU上運行的軟件,應用程序專用的硬件可以執行更多的任務。加速器為許多應用程序,如圖像識別、計算機視覺,關鍵值存儲,數據倉庫,大數據,深度學習,神經網絡等,通常用于降低整體系統成本并提高性能超出通用指令集的能力。

在過去,只有程序中計算最密集的部分被添加到加速器上。最近,添加整個應用程序變得越來越普遍,比如SSD、GPU和FPGA等加速器,而CPU只需要用于初始設置和錯誤處理。我們相信系統已經發展到CPU是一個可以完全刪除的附件

額外的加速器功能似乎是一個可行的替代方案。為了提高性能,已經對基本指令集進行了擴展,以對通用CPU提供類似加速器的能力,如矢量指令和加密。芯片現在正被用于進一步提高CPU的密度和降低制造成本。這些額外的功能使已經很復雜的CPU驗證更加復雜化,需要更多的硅面積,這增加了CPU的基本成本和能源消耗,而這些功能可能從未使用過。此外,發布CPU的開發周期可能需要很多年時間,這意味著現有的系統不會容易升級或更改。CPU設計的通用方法已經開始達到一些困難的限制。

設計用于解決特殊問題的硬件組件正在變得普遍,它們可以做更多的任務,而且通常比通用CPU要快得多。從有效性來看,系統管理類似:一旦關鍵的處理任務被加載到其他硬件上,許多cpu就過于強大和昂貴。

以加速器為中心的集中控制系統,CPU只處理初始化、協調和錯誤處理等普通任務。分散的控制打破了對昂貴的通用CPU依賴,并可以提高性能。控制任務可以歸結為簡單的操作,可以處理在其他硬件上,與加速器和可編程設備的合作。

操作系統提供了三個關鍵功能:虛擬化,其中包括多路復用和地址轉換、隔離和資源管理。這些功能從集中式操作系統內核轉移到一個減少由自管理的硬件組成的傳統模型。缺少的組件是設備相互協作所需的系統管理總線。正是這個總線來執行對安全敏感的配置,并負責任務生命周期管理(初始化、設置、拆卸)。引入系統管理總線作為一個專門的控制平面,結合自管理設備為一個更簡單的數據平面,使從系統中完全刪除CPU。操作系統仍然是控制平面,但不再運行在CPU上。

圖片

2. 打破對CPU的依賴

如果沒有了CPU,計算機系統中的設備應該具有什么特性呢?

(1)設備必須是自管理的,設備必須管理它自己的內部狀態。它必須公開它所提供的服務,并為服務的每個實例提供一個單獨的上下文(多路復用),以確保應用程序之間的隔離。

(2)設備必須自主通信,設備必須能夠發現它所需要的服務并請求它們,而不依賴于外部實體來控制它。

每個操作系統的功能——虛擬化(包括多路復用和地址轉換)、隔離和資源管理,都是創建一個安全和可擴展的系統所必不可少的。打破對這些功能的責任,并將它們分配到設備和總線之間。因此,該系統由系統總線協調的自管理設備組成。下面的說明解釋了如何在硬件組件之間劃分操作系統的職責。

2.1 設備的自我管理

一個設備負責運行應用程序邏輯,并使用其他設備可能使用的一個或多個資源。一個設備可以使用任何資源類型的組合(物理內存、FPGA塊、GPU核心、存儲空間等),將每個服務都作為一個服務來公開。設備還可以提供系統維護的管理服務。例如,在內部存儲其應用程序的設備必須公開一個可用于上傳新的二進制鏡像的加載服務。自我管理,意味著設備必須能夠代表系統中的設備管理其資源的分配,并以標準化的方式公開它們。要做到這一點,每個設備必須實現邏輯來將其資源復用到多個實例中,提供實例之間的隔離并處理錯誤條件。

設備很可能會支持多個客戶端或與任何特定服務的連接。例如,公開一個系統的智能SSD可以允許多個i由多個應用程序同時打開。在這種情況下,設備必須實現一種隔離機制,以防止實例之間的數據泄漏。設備可以在硬件或軟件中實現對其資源的隔離。硬件中的細粒度資源分配已經在RDMA控制器及網卡等設備中實現,在這些設備中,硬件被劃分為多個獨立公開和控制的實例。

軟件共享的方式在設備包含一個嵌入式CPU中很常見。無論實現方式如何,該設備都必須能夠以一種系統和標準的方式公開其功能,以便希望使用該功能的其他設備易于使用。

VIRTIO是用于從虛擬機管理虛擬設備的標準化協議。VIRTIO可以為從自我管理的設備中公開資源提供一個理想的接口。與其他協議類似,它是基于一組內存描述符的單向隊列的。硬件供應商已經開始生產符合VIRTIO標準的真正設備了,其主要優點是,許多與VIRTIO兼容的設備都可以使用一個驅動程序進行操作。以標準和一致的方式暴露所有資源和服務,簡化了使用這些設備所需的邏輯。VIRTIO協議能夠跨不同級別的抽象(nic、磁盤、控制臺、套接字等)描述廣泛的設備。所有這些都以一種一致的方式運作。

圖片

2.2 系統總線

系統總線專門用于設備間的通信,系統總線(如圖1所示)作為控制平面,使設備能夠相互控制,但不攜帶數據。系統總線只提供了一種用于設備通信的機制,并且不包含任何策略,沒有實體看到整個系統,也沒有全局狀態復制。該總線使設備能夠以一種標準的方式通信其資源需求,并使設備能夠廣播它們的能力,以便其他設備可以發現它們。這是通過設備在總線上發送消息以請求諸如內存分配或打開文件之類的服務來實現的,作為一個特權設備運行,是維護虛擬化的機制。

2.2.1 系統初始化

當系統啟動時,系統中的所有硬件設備都會經歷一段初始化期間,在此期間它們可以執行自檢。當設備確定它運行正常時,它將向系統總線發送一條消息,系統總線將記錄它是活動的。之后,該設備將加載其應用程序,其中可能有很多。應用程序可以需要由其他設備提供的一個或多個服務。例如,網卡可能需要讀取存儲在SSD上的文件中的數據。在設備可以使用一個資源之前,它必須首先發現系統中哪些設備可以提供對該資源的訪問。設備發現機制類似于即插即用套件或USB設備附件消息中的簡單服務發現協議。

2.2.2 地址翻譯

一個應用程序可以分布在許多設備上,但唯一標識它的是它的虛擬地址空間。與在當前部署的系統中一樣,地址轉換仍然是共享內存中數據隔離的基石。從安全的角度來看,設備負責自己的映射不是一個好主意,因為受損的設備可能會獲得它未被授權的資源。因此,特權系統總線有責任通過更新頁表來創建虛擬-物理映射。同樣,也不能允許資源控制器直接訪問其他設備的IO MMU,因為這將導致安全漏洞。相反,系統總線只有在特定資源的控制器指示設備時,系統總線更新設備的頁表。

2.2.3 內存管理

虛擬內存管理對于在同一應用程序的不同組件之間共享內存是必要的,同時保護該內存免受其他應用程序的影響。這在很大程度上是通過IOMMU來完成的,它可以從每個設備中訪問物理內存,就像今天通常要做的那樣。在分配內存時,系統總線提供了更新虛擬到物理映射的機制,但不提供策略。映射由內存控制器設置,內存控制器在內部為每個應用程序管理自己的分配表。這些映射被發送到系統總線,系統總線為請求設備的IO MMU編寫適當的頁表。

2.2.4 協議支持

通過系統總線進行協調的設備將被要求遵守總線協議。這與遵守現有的總線協議沒什么不同,例如PCIe。每個設備都需要符合最低限度的行為來與其他設備進行互操作和共享服務。操作系統通過控制器特殊的接口與設備進行通信,如USB控制器。設備和故障控制器已經通過設備上的硬件和軟硬件參與了這些控制協議。這種通信將被更高層次的協議所取代,以直接從一個設備請求服務。系統總線協議不會比前面提到的許多現有控制協議有更復雜的計算量或者更復雜的邏輯。因此,目前存在的大多數設備和控制器將不需要對其硬件需求進行重大更改,以支持系統總線。

圖片

3. 數據平面

接下來,可能需要互連的兩個不同的功能:內存訪問數據平面和設備連接控制平面。從系統設計和性能的角度來看,這些功能應該是分開的。在傳統的系統中,CPU負責在初始化過程中設置地址空間。由于我們不能依賴于CPU,所以在設置虛擬地址空間之前,必須有一個獨立的尋址設備的方法。PCIe通過通過物理地址(總線、設備、功能)尋址設備,通過標準的節點空間和BAR區域提供內存訪問和一定程度的設備協調,部分地實現了這兩個功能。如果大多數設備將支持多個虛擬地址空間(每個應用程序一個),那么他們必須能夠選擇每個內存操作所使用的虛擬地址空間。內存總線必須具有高吞吐量和低延遲,而系統管理總線則不需要。

另一方面,系統管理總線必須能夠處理消息,這樣它才能代表應用程序更新管理表。雖然設計一個包含這兩種功能(高速內存訪問和消息解碼)的總線并不是不可能的,但我們沒有看到一個令人信服的理由來組合它們。有許多現有的系統互連似乎是很好的候選者,如PCIe、CCIX、openCAPI 和CXL。

3.1 通知

通知是一種讓設備表示需要注意的方法。這可能是由正常操作引起的,例如通知一些請求的數據已經準備好了。它也可以用來表示一個錯誤的條件,例如作為由于無效的虛擬地址而導致的DMA事務失敗。對CPU的通知通常使用中斷發送,但也可以通過互連作為內存寫入到一個特殊地址的方式發送。這類似于用于實現PCI的MSI(消息信號中斷)的方法。

3.2 緩存一致性

在沒有CPU的系統中,緩存一致性具有不同的意義。高速緩存的目的是通過避免對主存的昂貴訪問來提高CPU的性能。將緩存視為屬于內存層次結構是很方便的,這掩蓋了大多數緩存駐留在同一個物理包中的事實。因此,對于沒有CPU的系統,必須仔細考慮緩存和緩存一致性的位置和目的。由于緩存是設備的私有的,如果設備只使用內存與其他設備共享數據,緩存將不會提供太多好處。設備和應用程序肯定會繼續使用大量的RAM,并將大量利用設備中的緩存層次結構(例如GPU)。然而,緩存一致性只在依賴于不同處理單元之間的隱式內存共享的編程模型中。許多分布式系統都依賴于顯式的消息傳遞,并完全丟棄一致性。第2節中提到的大多數互連都支持緩存一致性消息,但不需要它們。簡而言之,每個設備都可以根據其硬件能力和應用程序的需要來選擇是否參與系統的高速緩存一致性。

4. 無CPU 操作系統的暢想

某些智能網卡和智能ssd可以相對容易地通過監控軟件進行增強,沒有的硬件組件是系統總線。為了完成這個無CPU 操作系統,需要一個獨立的內存控制器和互連控制器,類似于英特爾的內存控制器Hub。

暢想一下,可以在CPU上運行的軟件中模擬系統總線的操作。每個自我管理的設備都會像往常一樣,從系統總線發送和接收消息,但這些消息將通過共享內存通過隧道傳輸到軟件模擬器。該模擬器會攔截任何內存分配消息,并相應地重新編程IO MMU。模擬器還需要扮演任何還無法嵌入到設備中的資源監視器的角色:例如,內存控制器。

構建一個模擬的無CPU系統,將允許回答關于這類系統的可行性、安全性和性能問題。

為了嘗試描述系統如何工作,描述了一個假設的鍵值存儲應用程序將如何在沒有CPU的系統上工作。數據(鍵和值)存儲在一個由智能SSD托管的文件中,而操作(獲取、插入、更新等),在智能網卡中進行處理。網卡通過監聽套接字或RDMA,通過網絡向其他機器公開一個接口連接。

圖2顯示了初始化序列,在NIC中運行的KVS應用程序連接到SSD以訪問其數據文件。網卡通過系統總線發送一條廣播消息(包含文件名),以發現是哪個存儲服務擁有該文件。SSD響應說它可以為該文件訪問服務。網卡發送請求以打開服務(包括授權令牌)以訪問該文件。SSD響應了連接詳細信息和所需的共享內存量。網卡向內存控制器(包括虛擬地址)發送一個請求,要求其分配共享內存。在收到來自內存的響應后,系統總線對屬于網卡的IO MMU進行編程,允許其訪問指定的虛擬地址的共享內存。網卡向系統總線發送另一條消息,以授予SSD對共享內存的訪問權限。然后,網卡可以通過使用虛擬地址編程SSD中的VIRTIO隊列來建立連接。

IO MMU通過將設備訪問的所有內存訪問轉換為虛擬內存空間來保護內存。要創建共享內存區域,必須為IO MMU進行編程,以便將兩個設備使用的虛擬地址映射到相同的物理地址。在帶有CPU的系統中,操作系統內核負責內存管理,因為它包含每個進程的地址空間的映射,并且能夠執行特權任務。一個應用程序將調用一個系統調用上為內核創建一個共享的內存映射。

在沒有CPU的情況下,內存控制器負責跟蹤每個設備的物理內存分配,可以更新映射的系統總線。設備發送一條控制消息,而不是系統調用。一旦該操作被內存控制器授權,系統總線就會執行該操作。對內存區域的訪問可以由擁有該區域的設備授予給另一個設備,但必須首先由內存控制器授權。

5. 暢想中的問題與挑戰

操作系統是非常復雜的系統,無CPU 的操作系統也不例外。

5.1 訪問控制

如果需要細粒度的訪問控制,則訪問控制服務可以由智能存儲控制器提供,例如智能SSD。這將大致相當于在Linux上的“登錄”程序和“密碼”文件。對單個文件的訪問控制由系統服務在提供該服務的設備上實現。希望打開文件的用戶將通過控制臺應用程序輸入命令,該應用程序將在從文件系統服務請求文件時使用該用戶的標識符。類似地,加載服務(將微代碼、加密軟件或應用程序代碼加載到設備)也可以在替換敏感數據之前使用相同的身份驗證服務。

5.2 錯誤處理

將應用程序加載到各種加速器之后,如何解決處理編程中的錯誤呢?

現有系統依賴于CPU和操作系統來處理各種不指定的錯誤。對于無CPU 的操作系統,必須更精確地確定將發生的錯誤類型,以及如何處理它們。可恢復的錯誤是指那些不需要重置設備的錯誤。當轉換硬件無法綁定映射時,或者當試圖訪問沒有正確權限的內存時,就會導致頁錯誤。在一個沒有CPU的操作系統中,IO MMU會將任何故障發送到其附加的設備上。每個設備都將負責適當地處理自己的故障,重置服務或停止應用程序。故障模型并不比在具有集中式CPU的系統中更糟糕。主要的不同是錯誤處理的責任已經轉移到設備本身,而不是一個外部實體。

類似地,如果資源出現致命錯誤,則該設備將負責處理該錯誤本身。它必須向使用該資源的任何使用者發送消息,然后重置該資源,應用程序的邏輯要負責從這個場景中恢復。如果整個設備發生故障,則資源總線必須向系統中可能正在使用該故障設備的資源的所有其他設備發送消息。總線還可以向故障設備發送重置信號,試圖重新啟動它。

5.3 系統維護

應用程序可以在正常操作期間寫入日志文件。系統操作員可能希望定期查看這些日志,以收集統計數據或調整一些參數。這樣的機器很可能會被部署為數據中心中的服務器,而不會有一個本地控制臺。如果將許多這樣的系統部署在一個數據中心中,那么遠程操作將是一個不錯的選擇,因為一個遠程控制臺可以用于管理許多無CPU的系統,可以通過網絡由另一臺機器通過遠程訪問服務查看這些日志。用戶身份驗證可以通過運行在任何設備上的身份驗證服務來執行。

5.4 可編程性

對于一個不尋常的操作系統來說,最大的問題可能是如何對它進行編程。需要注意的是,編寫一個應用程序,以在可編程設備上運行,該設備可以使用來自一個或多個其他設備的服務。這些應用程序是在具有開發環境的機器上開發的。由于每個設備都可以有一個不同指令集或實現語言,因此將需要多個工具鏈。

然而,在許多情況下,開發過程將只針對一個設備。以上面的KV-store應用程序為例,所有應用程序邏輯都將被編譯為在smartNIC上運行。smartNIC的開發環境將包括一個庫,它封裝了系統總線的功能,并提供服務發現、資源分配等功能。這取決于系統中的其他設備(SSD、內存控制器等)能夠以適當的方式公開所需的資源。

保護措施依賴于虛擬內存來防止對另一個應用程序的內存做未經授權的訪問。設備的自身來提供在運行在同一設備上的應用程序之間的隔離。在設計諸如文件系統等常用服務時,肯定還會出現其他安全問題。這與為NFS服務設計安全模型沒什么不同,向遠程設備公開了文件的抽象。

6. 小結

對更高性能的需求正在推動系統設計向專門的硬件方向發展。單個設備正在快速發展以進行自我管理,放松了對CPU和傳統操作系統的依賴。

無CPU的操作系統僅僅是一個思想實驗,一個系統中完全刪除CPU。如此劇烈的變化迫使我們以一種新的方式考慮系統設計,并就如何管理這樣的一個系統產生影響。然而,如果CPU不再是現有操作系統的中心組件,會從根本上改變軟件在CPU上的編寫方式嗎?當然,實際上有些問題在CPU上更容易解決。

圖片

責任編輯:武曉燕 來源: 喔家ArchiSelf
相關推薦

2014-07-14 09:59:24

TVOS

2020-06-28 09:40:58

操作系統GPUCPU

2019-01-28 10:00:42

CPU操作系統存儲器

2020-03-10 19:34:08

CPU虛擬化調度

2022-06-01 08:16:12

CPU實模式操作系統

2011-04-21 09:10:16

2012-05-31 11:05:01

Windows 8庫克

2021-06-11 07:26:16

操作系統內存管理Cpu

2014-10-27 14:18:06

Material De交互響應

2010-04-15 14:40:26

Unix操作系統

2009-12-09 17:25:19

Linux操作系統

2022-04-15 08:15:49

操作系統程序計算機

2012-10-08 09:50:04

編程語言排行榜JavaScriptDart

2018-12-19 12:03:02

操作系統WindowsLinux

2009-07-23 18:43:25

操作系統LinuxWindows

2015-07-07 18:01:07

容器操作系統應用管理

2021-04-19 11:23:29

操作系統計算機DOS

2012-03-30 14:43:23

2021-11-15 06:56:46

操作系統U盤

2012-10-15 14:25:59

IT技術周刊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久亚洲 | 欧美一级黄色片免费观看 | 免费观看黄色一级片 | 亚洲97| 欧美激情视频网站 | 欧美一二三四成人免费视频 | 精品视频一区二区三区 | 九九导航 | 久久国产精品一区二区三区 | 久操国产 | 午夜资源| 国产欧美一级 | 国产精品日日摸夜夜添夜夜av | 91视视频在线观看入口直接观看 | 亚洲一av | 久久美国| 久久精品欧美一区二区三区不卡 | 精品久久久久久久人人人人传媒 | 欧美日韩国产精品 | 九九在线视频 | 亚洲国产一区视频 | 欧美在线日韩 | 日本精品久久久久久久 | 国产久 | 国产乱码精品一区二区三区忘忧草 | 拍真实国产伦偷精品 | 亚洲av毛片 | 日日夜夜天天 | www.夜夜骑 | 亚洲一二三区不卡 | 亚洲欧美日韩成人在线 | 亚洲一区二区三区免费在线观看 | 欧美国产视频 | 2020国产在线 | 免费在线黄 | www.亚洲精品 | 天天操网 | 夜夜夜夜夜夜曰天天天 | 国产精品天堂 | 国产精品久久久久久久久图文区 | 欧美精品一区二区三区四区 在线 |