欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Cpu控制臺重定向方法、系統(tǒng)及cpu的制作方法

文檔序號:6599500閱讀:338來源:國知局
專利名稱:Cpu控制臺重定向方法、系統(tǒng)及cpu的制作方法
技術領域
本申請涉及計算機技術領域,尤其涉及CPU (Central Processing Unit,中央處理 器)控制臺重定向方法、系統(tǒng)及CPU。
背景技術
由Unix衍生出的各種開源系統(tǒng),如Linux,Solaris, FreeBSD等,是目前最具活 力和競爭力的操作系統(tǒng),其中Linux以其開放源代碼的模式,和可靠的安全性和穩(wěn)定性的 特點廣泛地應用于各個領域?;贚inux系統(tǒng)的大型計算機系統(tǒng)中通常包含成百上千 個 CPU,這些 CPU 通過 PCI (Peripheral Componentlnterconnect,外部設備互聯(lián))或者 PCIe (Peripheral Component Interconnectexpress,高速夕卜部設備互聯(lián))進行互聯(lián)?,F(xiàn)有技術中,通過接出的CPU串口對運行在CPU上的信息進行讀寫操作和查看,這 些信息包括操作系統(tǒng)的打印信息以及應用程序信息,但是,串口雖然常用且可靠,當系統(tǒng)中 的CPU較多時,就需要為不同的CPU接出大量的串口線,或者接出少量的串口線在不同的 CPU之間切換,因此操作過程比較繁瑣;另外,也可以通過網絡工具對CPU信息進行操作,但 是由于這種方式依賴于網絡,需要在系統(tǒng)初始化后才能應用,因此無法查看已運行進程的 實時打印信息,導致無法讀取到全部的CPU信息。

發(fā)明內容
本申請實施例的目的是提供CPU控制臺重定向方法、系統(tǒng)及CPU,以解決現(xiàn)有技術 中在讀取系統(tǒng)中CPU信息時操作過程繁瑣,且難以讀取到全部CPU信息的問題。為解決上述技術問題,本申請實施例提供如下技術方案一種CPU控制臺重定向方法,應用于包含若干CPU的計算機系統(tǒng)中,所述若干CPU 之間通過總線相連,所述若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,包括在所述第一 CPU的內存上為所述第二 CPU分配緩沖區(qū);分別在所述第一 CPU和第二 CPU上構建虛擬總線設備,通過所述虛擬總線設備關 聯(lián)所述第一 CPU和第二 CPU;所述第一 CPU和第二 CPU通過所述緩沖區(qū)進行CPU信息的讀寫操作。所述總線具體為PCIe總線,所述在第一 CPU的內存上為第二 CPU分配緩沖區(qū)包 括在所述第一 CPU的內存上分別為每個第二 CPU分配輸入緩沖區(qū)和輸出緩沖區(qū),每 個所述緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū);將所述第一 CPU和第二 CPU分別映射到PCI總線空間。所述在第一 CPU上構建虛擬總線設備包括所述第一 CPU構建字符設備驅動及其對應的應用程序,每個字符設備對應一個第 二 CPU ;將虛擬總線設備注冊為所述字符設備,所述應用程序通過驅動實現(xiàn)對所述字符設備的讀寫操作。所述在第二 CPU上構建虛擬總線設備包括所述第二 CPU在最后一個控制臺命令行參數(shù)中指定控制臺設備為虛擬總線設備;根據(jù)所述命令行參數(shù)將所述虛擬總線設備注冊為控制臺設備,并將所述虛擬總線設備注冊為虛擬終端設備。所述第一 CPU和第二 CPU通過所述緩沖區(qū)進行CPU信息的讀寫操作包括第一 CPU操作輸入緩沖區(qū)的寫指針,將輸入所述第一 CPU的數(shù)據(jù)寫入所述輸入緩 沖區(qū)的數(shù)據(jù)區(qū),所述第二 CPU操作輸入緩沖區(qū)的讀指針,讀取所述輸入緩沖區(qū)數(shù)據(jù)區(qū)中的 數(shù)據(jù);第二 CPU操作輸出緩沖區(qū)的寫指針,將所述第二 CPU的控制臺數(shù)據(jù)寫入所述輸出 緩沖區(qū)的數(shù)據(jù)區(qū),所述第一 CPU操作輸出緩沖區(qū)的讀指針,讀取所述輸出緩沖區(qū)數(shù)據(jù)區(qū)中 的數(shù)據(jù)。一種CPU控制臺重定向系統(tǒng),包括若干通過總線相連的CPU,所述若干CPU中包括 至少一個第一 CPU和至少一個第二 CPU,其中,所述第一 CPU,用于構建虛擬總線設備,并在其內存上為所述第二 CPU分配緩沖 區(qū);所述第二 CPU,用于構建虛擬總線設備;所述第一 CPU和所述第二 CPU通過所述構建的虛擬總線設備進行關聯(lián),并通過所 述緩沖區(qū)進行CPU信息的讀寫操作。所述總線具體為PCIe總線,所述第一 CPU,具體用于在其內存上分別為每個第二 CPU分配輸入緩沖區(qū)和輸出緩沖區(qū),每個所述緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū),將所述 第一 CPU和第二 CPU分別映射到PCI總線空間。一種CPU,應用于包含若干CPU的計算機系 統(tǒng)中,所述若干CPU之間通過總線相連,所述若干CPU中包括至少一個第一 CPU和至少一個 第二 CPU,所述一種CPU為所述計算機系統(tǒng)中的第一 CPU,包括分配單元,用于在所述CPU的內存上為所述第二 CPU分配緩沖區(qū);關聯(lián)單元,用于在所述CPU上構建虛擬總線設備,并通過所述虛擬總線設備與同 樣構建了虛擬總線設備的第二 CPU關聯(lián);操作單元,用于通過所述緩沖區(qū)對所述第二 CPU的CPU信息進行讀寫操作。所述總線具體為PCIe總線,所述分配單元包括緩沖區(qū)分配子單元,用于在所述CPU的內存上分別為每個第二 CPU分配輸入緩沖 區(qū)和輸出緩沖區(qū),每個所述緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū);空間映射子單元,用于將所述CPU和第二 CPU分別映射到PCI總線空間。所述關聯(lián)單元包括結構構建子單元,用于構建字符設備驅動及其對應的應用程序,每個字符設備對 應一個第二 CPU ;設備注冊子單元,用于將虛擬總線設備注冊為所述字符設備,所述應用程序通過 驅動實現(xiàn)對字符設備的讀寫操作。所述操作單元包括輸入緩沖區(qū)操作子單元,用于操作輸入緩沖區(qū)的寫指針,將輸入所述第一 CPU的數(shù)據(jù)寫入所述輸入緩沖區(qū)的數(shù)據(jù)區(qū);輸出緩沖區(qū)操作子單元,用于操作輸出緩沖區(qū)的讀指針,讀取所述輸出緩沖區(qū)數(shù) 據(jù)區(qū)中由所述第二 CPU寫入的控制臺數(shù)據(jù)。一種CPU,應用于包含若干CPU的計算機系統(tǒng)中,所述若干CPU之間通過總線相連, 所述若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,所述一種CPU為所述計算機系 統(tǒng)中的第二 CPU,包括關聯(lián)單元,用于在所述CPU上構建虛擬總線設備,并通過所述虛擬總線設備與同 樣構建了虛擬總線設備的第一 CPU關聯(lián),所述第一 CPU上的內存上為所述第二 CPU分配了 緩沖區(qū);操作單元,用于通過所述緩沖區(qū)對所述第一 CPU的CPU信息進行讀寫操作。所述總線具體為PCIe總線,且所述第一 CPU的內存上為所述CPU分配了輸入緩沖 區(qū)和輸出緩沖區(qū),所述每個緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū),所述關聯(lián)單元包括控制臺設備指定子單元,用于在最后一個控制臺命令行參數(shù)中指定控制臺設備為 虛擬總線設備;虛擬總線設備注冊子單元,用于根據(jù)所述命令行參數(shù)將所述虛擬總線設備注冊為 控制臺設備,并將所述虛擬總線設備注冊為虛擬終端設備。所述操作單元包括輸入緩沖區(qū)操作子單元,用于操作輸入緩沖區(qū)的讀指針,讀取所述輸入緩沖區(qū)數(shù) 據(jù)區(qū)中由第一 CPU寫入的輸入數(shù)據(jù);輸出緩沖區(qū)操作子單元,用于操作輸出緩沖區(qū)寫指針,將所述CPU的控制臺數(shù)據(jù) 寫入所述輸出緩沖區(qū)的數(shù)據(jù)區(qū)??梢?,本申請實施例應用在包含若干通過總線相連的CPU的計算機系統(tǒng)中,若干 CPU中包括至少一個第一 CPU和至少一個第二 CPU,在第一 CPU的內存上為所述第二 CPU分 配緩沖區(qū),并分別在第一 CPU和第二 CPU上構建虛擬總線設備,第一 CPU和第二 CPU通過 虛擬總線設備關聯(lián),并通過緩沖區(qū)進行CPU信息的讀寫操作。本申請實施例中通過在第一 CPU上為第二 CPU分配緩沖區(qū)從而將第二 CPU控制臺重定向到第一 CPU上,由此實現(xiàn)在第 一 CPU上對第二 CPU的信息進行讀寫操作,當系統(tǒng)中CPU數(shù)量較多時,不必通過串口進行讀 寫操作,并且由于本申請實施例在進行CPU控制臺重定向過程中,不依賴于網絡,因此第一 CPU可以查看第二CPU所有已運行進程的打印信息,由此增強了系統(tǒng)的對CPU信息讀取的方 便性和靈活性。


為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請CPU控制臺重定向方法的第一實施例流程圖;圖2為本申請CPU控制臺重定向方法的第一實施例流程圖;圖3為本申請實施例中基于PCIe的多CPU互聯(lián)結構示意圖4為本申請實施例中PCI空間的分配結構示意圖;圖5A為本申請實施例中主從CPU對緩沖區(qū)進行讀寫操作的示意圖;圖5B為本申請實施例中對緩沖區(qū)進行讀寫操作的應用流程示意圖;圖6為本申請CPU控制臺重定向系統(tǒng)的實施例框圖;圖7A為本申請一種CPU的實施例框圖;圖7B為本申請圖7A所示CPU中分配單元的實施例框圖;圖7C為本申請圖7A所示CPU中關聯(lián)單元的實施例框圖;圖7D為本申請圖7A所示CPU中操作單元的實施例框圖;圖8A為本申請另一種CPU的實施例框圖;圖8B為本申請圖8A所示CPU中關聯(lián)單元的實施例框圖;圖8C為本申請圖8A所示CPU中操作單元的實施例框圖。
具體實施例方式本申請實施例提供一種CPU控制臺重定向方法、系統(tǒng)及CPU。為了使本技術領域的人員更好地理解本申請實施例中的技術方案,并使本申請實 施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本申請實施例中技術方 案作進一步詳細的說明。本申請實施例應用于包含若干CPU的計算機系統(tǒng)中,若干CPU之間通過總線相連, 該總線通常為PCI或者PCIe,在若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,在 實現(xiàn)CPU控制臺重定向的過程中,系統(tǒng)中通常指定一個第一 CPU,該第一 CPU稱為主CPU,將 剩余的CPU作為第二 CPU,這些第二 CPU稱為從CPU,將從CPU控制臺重定向到主CPU上后, 以便在主CPU上實現(xiàn)對從CPU信息的讀寫操作。參見圖1,為本申請CPU控制臺重定向方法的第一實施例流程圖;步驟101 在第一 CPU的內存上為第二 CPU分配緩沖區(qū)。步驟102 分別在第一 CPU和第二 CPU上構建虛擬總線設備,通過虛擬總線設備關 聯(lián)第一 CPU和第二 CPU。步驟103 第一 CPU和第二 CPU通過緩沖區(qū)進行CPU信息的讀寫操作,結束當前流程。參見圖2,為本申請CPU控制臺重定向方法的第二實施例流程圖,該實施例示出了 重定向的詳細過程,其中總線為PCIe總線步驟201 在第一 CPU的內存上分別為每個第二 CPU分配輸入緩沖區(qū)和輸出緩沖 區(qū),每個緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū)。步驟202 將第一 CPU和第二 CPU分別映射到PCI總線空間。步驟203 第一 CPU構建字符設備驅動及其對應的應用程序,每個字符設備對應一 個第二 CPU。步驟204 將虛擬總線設備注冊為字符設備,應用程序通過驅動實現(xiàn)對字符設備 的讀寫操作。步驟205 第二 CPU在最后一個控制臺命令行參數(shù)中指定控制臺設備為虛擬總線 設備。
8
步驟206 根據(jù)命令行參數(shù)將虛擬總線設備注冊為控制臺設備,并將虛擬總線設 備注冊為虛擬終端設備。步驟207 判斷哪一個緩沖區(qū)需要進行數(shù)據(jù)讀寫操作,若為輸入緩沖區(qū),則執(zhí)行步 驟208 ;若為輸出緩沖區(qū),則執(zhí)行步驟210。步驟208 第一 CPU操作輸入緩沖區(qū)的寫指針,將輸入第一 CPU的數(shù)據(jù)寫入輸入緩 沖區(qū)的數(shù)據(jù)區(qū)。 步驟209 第二 CPU操作輸入緩沖區(qū)的讀指針,讀取輸入緩沖區(qū)數(shù)據(jù)區(qū)中的數(shù)據(jù), 結束當前流程。步驟210 第二 CPU操作輸出緩沖區(qū)的寫指針,將第二 CPU的控制臺數(shù)據(jù)寫入輸出 緩沖區(qū)的數(shù)據(jù)區(qū)。步驟211 第一 CPU操作輸出緩沖區(qū)的讀指針,讀取輸出緩沖區(qū)數(shù)據(jù)區(qū)中的數(shù)據(jù), 結束當前流程。本申請實施例的核心在于用虛擬tty設備模型實現(xiàn)了多CPU之間的控制臺重定 向,關鍵點是如何在發(fā)生控制臺重定向關系的CPU之間構建和實現(xiàn)起到橋梁作用的虛擬 tty設備模型,重點是在不同CPU上如何實現(xiàn)緩沖區(qū)共享及如何對共享緩沖區(qū)進行同步讀 寫操作,如何把該設備模型虛擬化為虛擬tty設備、控制臺設備及字符設備。參見圖3,為本申請實施例中基于PCIe的多CPU互聯(lián)結構示意圖。圖3中示出了 N個CPU,其中CPU 0為主CPU,CPU 1至CPU N為從CPU,這些從CPU 作為PCIe設備連接在PCIe Switch (交換器)上,PCIe Switch (交換器)與主CPU的Root complex (根聯(lián)合體)相連,PCIe Switch可以是一級或者多級結構,每個CPU上均可運行 Linux系統(tǒng)。參見圖4,為本申請實施例中PCI空間的分配結構示意圖。其中,主CPU 0為每個CPU分配讀寫緩沖區(qū),如圖2中所示的tty_buf_in和tty_ buf_out,其中tty_buf_in為輸入緩沖區(qū),tty_buf_out為輸出緩沖區(qū),這兩個緩沖區(qū)均映 射到PCI空間,每個從CPU緩沖區(qū)內的1~和《分別為讀指針和寫指針,buf為數(shù)據(jù)區(qū),BUF_ SIZE為數(shù)據(jù)區(qū)的大?。恢鰿PUO為從CPUl至從CPU N分配的緩沖區(qū),以及從CPUl至從CPU N均映射到PCI空間,由此實現(xiàn)主CPUO對通過操作緩沖區(qū)tty_buf_in和tty_buf_out實現(xiàn) 對從CPU的讀寫操作。參見圖5A,為本申請實施例中主從CPU對緩沖區(qū)進行讀寫操作的示意圖。其中,假設主CPU為CPUO,從CPU為CPUn。一方面,可以在主CPUO所在的終端上 運行應用程序,該應用程序執(zhí)行將從標準輸入讀到的數(shù)據(jù)傳給CPUO的內核,CPUO的內核操 作tty_buf_in的寫指針W,把數(shù)據(jù)寫到輸入緩沖區(qū)tty_buf_in的數(shù)據(jù)區(qū),當tty_buf_in的 數(shù)據(jù)區(qū)內有數(shù)據(jù)時,從CPUn的內核就會操作tty_buf_in的讀指針r,讀取tty_buf_in數(shù) 據(jù)區(qū)中的數(shù)據(jù);另一方面,從CPUn的內核操作寫指針w,把所有發(fā)送給該從CPUn的控制臺 及控制臺設備的數(shù)據(jù)寫到輸出緩沖區(qū)tty_buf_0ut的數(shù)據(jù)區(qū),當tty_buf_0ut的數(shù)據(jù)區(qū)有 數(shù)據(jù)時,主CPUO的內核操作讀指針r,把tty_buf_0ut數(shù)據(jù)區(qū)中的數(shù)據(jù)讀到主CPUO上運行 的應用程序,該應用程序在標準輸出上顯示接收到的數(shù)據(jù),由此實現(xiàn)從CPUn的CPU信息在 主CPUO所在的終端上輸出。由此可知,從CPUn的控制臺(console)就相當于重定向到了 主CPUO上;另外,對緩沖區(qū)的寫操作既可采用循環(huán)覆蓋的方式,也可用寫滿就停的方式,對此本申請實施例不進行限制。 下面結合圖3至圖5A,通過具體應用描述本申請實施例的重定向過程。
在下面描述的應用過程中,虛擬總線設備用pcitty表示,在從CPU —側,pcitty表 示為控制臺設備和虛擬tty設備,在主CPU —側,pcitty表示為字符設備及其對應的應用 程序,重定向過程包括一、從CPU控制臺的重定向 在Linux系統(tǒng)中,CPU內核的打印信息(printk)通常會輸出到命令行參數(shù) console所指定的所有設備上,但是參數(shù)console指定的最后一個設備才能成為控制臺設 備(/dev/console),應用程序的標準輸入、輸出都會在初始化時定向到控制臺設備上,所有 的輸入、輸出都是對控制臺設備進行操作。首先,把虛擬總線設備pcitty指定為最后一個console命令行參數(shù),例如, console = pcittyO,其中pcittyO表示第一個pcitty設備,并將指定的console命令行 參數(shù)傳遞給從CPU的內核,從CPU的內核解析該console命令行參數(shù)時,將最后一個參數(shù) pcittyO初始化為控制臺設備;其次,在pcitty驅動模塊中,構建console結構,把pcitty注冊為控制臺設備,由 此實現(xiàn)控制臺設備的setup (建立)、device (驅動)、write (寫入)等方法。其中,setup 方法用于將pcitty的緩沖區(qū)tty_buf_in和tty_buf_out由PCI空間映射到內核空間,映 射之后驅動就可以訪問這兩個緩沖區(qū);device方法用于將控制臺驅動指定為pcitty的tty 驅動(tty驅動的構建在下一段中描述),當打開控制臺設備時,tty驅動通過調用device 方法,把控制臺設備與pcitty的tty驅動綁定,也就是說,所有對控制臺設備的讀寫操作, 都會轉化為tty驅動對緩沖區(qū)tty_buf_in和tty_buf_out的讀寫操作;write方法用于將 打印信息輸出到當前控制臺,即寫到tty_buf_0ut緩沖區(qū);最后,在pcitty驅動模塊中,把pcitty初始化為一個虛擬tty設備,即注冊tty驅 動和tty設備,由此實現(xiàn)虛擬tty設備驅動的open (打開)、close (關閉)、write (寫入) 等方法。其中,open方法用于打開虛擬tty設備,該方法可以通過遞增一個引用計數(shù)器來 統(tǒng)計open的次數(shù),第一次open時可以初始化一個定時器,用于定時讀取tty_buf_in中的 數(shù)據(jù),當打開控制臺設備時,內核tty核心會在調用控制臺設備的device方法后通過已綁 定的tty驅動回調該方法;close方法與open方法對應,用于遞減一個引用計數(shù)器,當計數(shù) 器為0時,銷毀該定時器,當關閉控制臺設備時,tty核心通過tty驅動回調該方法;write 方法用于把tty核心所接收到的數(shù)據(jù)通過驅動寫到對應的緩沖區(qū),當向控制臺設備寫數(shù)據(jù) 時,tty核心通過tty驅動回調該方法,把數(shù)據(jù)寫到tty_buf_0ut緩沖區(qū),同時更新寫指針, 一旦tty_buf_0ut數(shù)據(jù)區(qū)中有數(shù)據(jù),主CPU就會讀取該數(shù)據(jù)并輸出到標準輸出;由于tty設 備驅動沒有讀方法,因此本申請實施例可以通過定時器定時查詢tty_buf_in緩沖區(qū),一旦 主CPU向該緩沖區(qū)寫數(shù)據(jù),則定時器就會讀出數(shù)據(jù),更新讀指針,并把數(shù)據(jù)推送給tty核心, tty核心對數(shù)據(jù)進行相應的處理。二、主CPU上創(chuàng)建驅動和應用程序首先,在主CPU上創(chuàng)建緩沖區(qū),包括tty_buf_in和tty_buf_out,若有N個從CPU, 則需要分配N個pcitty緩沖區(qū),把緩沖區(qū)映射到PCI空間,從而使從CPU能夠找到各自的 緩沖區(qū)位置;
其次,構建字符設備pcitty的文件操作結構,實現(xiàn)open (打開)、close (關閉)、 read(讀出)、write(寫入)、poll (調用)等操作方法。其中,open方法用于打開字符設 備pcitty,并維護一個引用計數(shù)器,使得字符設備pcitty同時至多被打開一次,該方法還 會初始化一個定時器,用于定時監(jiān)測tty_buf_in和tty_buf_out,若tty_buf_in緩沖區(qū)未 滿或tty_buf_0ut緩沖區(qū)非空,則定時器函數(shù)會喚醒阻塞在select函數(shù)上的進程,使該進 程能夠寫tty_buf_in緩沖區(qū)或讀tty_buf_out緩沖區(qū);close方法與open方法對應,用于 遞減引用計數(shù)器,以及銷毀定時器;read方法用于將tty_buf_0ut中的數(shù)據(jù)讀到緩沖區(qū),并 更新讀指針;write方法用于把緩沖區(qū)的數(shù)據(jù)寫到tty_buf_in,更新寫指針;poll方法用于 調用select函數(shù),從而使應用程序pcitty阻塞,當應用程序被定時器喚醒后,則可以進行 讀寫操作;最后,注冊字符設備pcitty,字符設備pcitty的讀寫數(shù)據(jù)操作通過回調前述文件 操作結構中的方法實現(xiàn),每個從CPU都對應一個字符設備pcitty η (η為1至N的整數(shù)),這 樣每個從CPU的控制臺都能重定向到主CPU上。三、主CPU與從CPU之間對緩沖區(qū)的讀寫操作首先,打開字符設備pcitty n, pcitty η是第η個從CPU對應的字符設備,成功打 開的該字符設備后的設備描述符稱為fdn,標準輸入描述符表示為0,標準輸出描述符表示 為1 ;其次,在進行寫操作時,把0阻塞在select函數(shù)的讀描述符集合上,若0上對應有 數(shù)據(jù)輸入,再把fdn阻塞在select函數(shù)的寫描述符集合上,如果fdn可寫,則把從0上讀到 的數(shù)據(jù)寫到fdn上,即寫到tty_buf_in緩沖區(qū);在進行讀操作時,把fdn阻塞在select函 數(shù)的讀描述符集合上,若fdn上有數(shù)據(jù)可讀,則把數(shù)據(jù)讀到1上,即把tty_buf_0ut中的數(shù) 據(jù)讀到標準輸出;最后,循環(huán)執(zhí)行前述讀寫操作,將在主CPU所在終端上的讀寫操作轉化為對從CPU 的讀寫操作。參見圖5B,為對緩沖區(qū)進行讀寫操作的應用流程示意圖步驟501 打開字符設備 fdn = /dev/pcitty η。步驟502 判斷select 0和字符設備fdn的讀操作,若select 0或fdn上有數(shù)據(jù) 可讀,則執(zhí)行步驟503 ;如果select出錯,則返回步驟502。步驟503 判斷0上是否有數(shù)據(jù)可讀,若有,則執(zhí)行步驟504 ;否則,執(zhí)行步驟506。步驟504 判斷select fdn的寫操作,若fdn可寫數(shù)據(jù),則執(zhí)行步驟505 ;若fdn不 可寫數(shù)據(jù),則執(zhí)行步驟506。步驟505 讀取0的數(shù)據(jù)并將讀到的數(shù)據(jù)寫到fdn。步驟506 判斷fdn是否有數(shù)據(jù)可讀,若有,則執(zhí)行步驟507 ;若沒有數(shù)據(jù)可讀,則 返回步驟502。步驟507 讀取fdn的數(shù)據(jù)到輸出到1,返回步驟501。另外,需要說明的是,上面以主從CPU模式的多對一重定向實例來闡述本申請實 施例,但是,本發(fā)明實施例能夠實現(xiàn)任意兩個CPU之間的重定向;并且,雖然本發(fā)明以Linux 系統(tǒng)和PCI/PCIe為基礎描述了 CPU之間的互聯(lián)結構,但是,無論CPU之間采用什么總線互 聯(lián),只要緩沖區(qū)能夠實現(xiàn)共享即可,而且無論CPU上運行什么操作系統(tǒng),只要該操作系統(tǒng)系
11統(tǒng)支持tty設備和控制臺設備的虛擬化,就能根據(jù)本申請實施例實現(xiàn)任意CPU之間控制臺 的重定向。與本申請CPU控制臺重定向方法的實施例相對應,本申請還提供了 CPU控制臺重 定向系統(tǒng)及CPU的實施例。參見圖6,為本申請CPU控制臺重定向系統(tǒng)的實施例框圖。本申請CPU控制臺重定向系統(tǒng)為包含若干CPU的計算機系統(tǒng),若干CPU之間通過 總線相連,該系統(tǒng)中包括至少一個第一 CPTO10和至少一個第二 CPTO20,為了示例方便,圖6 中僅示出了一個第一 CPU610和一個第二 CPU620。其中,第一 CPTO10,用于構建虛擬總線設備,并在其內存上為第二 CPTO20分配緩 沖區(qū);第二 CPTO20,用于構建虛擬總線設備;第一 CPTO10和第二 CPTO20通過構建的虛擬總線設備進行關聯(lián),并通過緩沖區(qū)進 行CPU信息的讀寫操作。具體的,系統(tǒng)中的總線為PCIe總線,第一 CPTO10具體用于,在其內存上分別為每 個第二 CPU分配輸入緩沖區(qū)和輸出緩沖區(qū),每個緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū),將第 一 CPU和第二 CPU分別映射到PCI總線空間。參見圖7A,為本申請一種CPU的實施例框圖。該CPU應用于包含若干CPU的計算機系統(tǒng)中,若干CPU之間通過總線相連,若干 CPU中包括至少一個第一 CPU和至少一個第二 CPU,本實施例中示出的CPU為該計算機系統(tǒng) 中的第一 CPU。該CPU包括分配單元710、關聯(lián)單元720和操作單元730。其中,分配單元710,用于在CPU的內存上為第二 CPU分配緩沖區(qū);關聯(lián)單元720,用于在CPU上構建虛擬總線設備,并通過虛擬總線設備與同樣構建 了虛擬總線設備的第二 CPU關聯(lián);操作單元730,用于通過緩沖區(qū)對第二 CPU的CPU信息進行讀寫操作。參見圖7B,為本申請圖7A所示CPU中分配單元的實施例框圖。該分配單元包括緩沖區(qū)分配子單元711和空間映射子單元712。其中,緩沖區(qū)分配子單元711,用于在CPU的內存上分別為每個第二 CPU分配輸入 緩沖區(qū)和輸出緩沖區(qū),每個緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū);空間映射子單元712,用于將CPU和第二 CPU分別映射到總線空間,該總線空間具 體為PCI總線空間。參見圖7C,為本申請圖7A所示CPU中關聯(lián)單元的實施例框圖。該關聯(lián)單元包括結構構建子單元721和設備注冊子單元722。其中,結構構建子單元721,用于構建字符設備的數(shù)據(jù)操作結構,每個字符設備對 應一個第二 CPU ;設備注冊子單元722,用于將字符設備注冊為虛擬總線設備,該字符設備通過回調 數(shù)據(jù)操作結構實現(xiàn)數(shù)據(jù)的讀寫操作。參見圖7D,為本申請圖7A所示CPU中操作單元的實施例框圖。該操作單元包括輸入緩沖區(qū)操作子單元731和輸出緩沖區(qū)操作子單元732。
其中,輸入緩沖區(qū)操作子單元731,用于操作輸入緩沖區(qū)的寫指針,將輸入第一 CPU的數(shù)據(jù)寫入輸入緩沖區(qū)的數(shù)據(jù)區(qū);輸出緩沖區(qū)操作子單元732,用于操作輸出緩沖區(qū)的讀指針,讀取輸出緩沖區(qū)數(shù)據(jù) 區(qū)中由第二 CPU寫入的控制臺數(shù)據(jù)。參見圖8A,為本申請另一種CPU的實施例框圖。
該CPU應用于包含若干CPU的計算機系統(tǒng)中,若干CPU之間通過總線相連,若干 CPU中包括至少一個第一 CPU和至少一個第二 CPU,本實施例中示出的CPU為該計算機系統(tǒng) 中的第二 CPU。該CPU包括關聯(lián)單元810和操作單元820。其中,關聯(lián)單元810,用于在CPU上構建虛擬總線設備,并通過虛擬總線設備與同 樣構建了虛擬總線設備的第一 CPU關聯(lián),第一 CPU的內存上為該CPU分配了緩沖區(qū);操作單元820,用于通過緩沖區(qū)對第一 CPU的CPU信息進行讀寫操作。參加圖8B,為本申請圖8A所示CPU中關聯(lián)單元的實施例框圖。該實施例中,總線 具體為PCIe總線,且第一 CPU的內存上為該CPU分配了輸入緩沖區(qū)和輸出緩沖區(qū),每個緩 沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū)。該關聯(lián)單元包括控制臺設備指定子單元811和虛擬總線設備注冊子單元812。其中,控制臺設備指定子單元811,用于在最后一個控制臺命令行參數(shù)中指定控制 臺設備為虛擬總線設備;虛擬總線設備注冊子單元812,用于根據(jù)命令行參數(shù)將虛擬總線設備注冊為控制 臺設備,并將虛擬總線設備注冊為虛擬終端設備。參見圖8C,為本申請圖8A所示CPU中操作單元的實施例框圖。該操作單元包括輸入緩沖區(qū)操作子單元821和輸出緩沖區(qū)操作子單元822。其中,輸入緩沖區(qū)操作單元821,用于操作輸入緩沖區(qū)的讀指針,讀取所述輸入緩 沖區(qū)數(shù)據(jù)區(qū)中由第一 CPU寫入的輸入數(shù)據(jù);輸出緩沖區(qū)操作單元822,用于操作輸出緩沖區(qū)寫指針,將CPU的控制臺數(shù)據(jù)寫入 輸出緩沖區(qū)的數(shù)據(jù)區(qū)。通過以上的實施方式的描述可知,本申請實施例應用在包含若干通過總線相連的 CPU的計算機系統(tǒng)中,若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,在第一 CPU 的內存上為所述第二 CPU分配緩沖區(qū),并分別在第一 CPU和第二 CPU上構建虛擬總線設備, 第一 CPU和第二 CPU通過虛擬總線設備關聯(lián),并通過緩沖區(qū)進行CPU信息的讀寫操作。本 申請實施例中通過在第一 CPU上為第二 CPU分配緩沖區(qū)從而將第二 CPU控制臺重定向到第 一 CPU上,由此實現(xiàn)在第一 CPU上對第二 CPU的信息進行讀寫操作,當系統(tǒng)中CPU數(shù)量較多 時,不必通過串口進行讀寫操作,并且由于本申請實施例在進行CPU控制臺重定向過程中, 不依賴于網絡,因此第一 CPU可以查看第二 CPU所有已運行進程的打印信息,由此增強了系 統(tǒng)的對CPU信息讀取的方便性和靈活性。通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術方案本質 上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品 可以存儲在存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本申請各個實施例或者實施例的某些 部分所述的方法。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實 施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例 的部分說明即可。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組 件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由 通過通信網絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以 位于包括存儲設備在內的本地和遠程計算機存儲介質中。雖然通過實施例描繪了本申請,本領域普通技術人員知道,本申請有許多變形和 變化而不脫離本申請的精神,希望所附的權利要求包括這些變形和變化而不脫離本申請的 精神。
權利要求
一種CPU控制臺重定向方法,其特征在于,應用于包含若干CPU的計算機系統(tǒng)中,所述若干CPU之間通過總線相連,所述若干CPU中包括至少一個第一CPU和至少一個第二CPU,包括在所述第一CPU的內存上為所述第二CPU分配緩沖區(qū);分別在所述第一CPU和第二CPU上構建虛擬總線設備,通過所述虛擬總線設備關聯(lián)所述第一CPU和第二CPU;所述第一CPU和第二CPU通過所述緩沖區(qū)進行CPU信息的讀寫操作。
2.根據(jù)權利要求1所述的方法,其特征在于,所述總線具體為PCIe總線,所述在第一 CPU的內存上為第二 CPU分配緩沖區(qū)包括在所述第一 CPU的內存上分別為每個第二 CPU分配輸入緩沖區(qū)和輸出緩沖區(qū),每個所 述緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū);將所述第一 CPU和第二 CPU分別映射到PCI總線空間。
3.根據(jù)權利要求1所述的方法,其特征在于,所述在第一CPU上構建虛擬總線設備包括所述第一 CPU構建字符設備驅動及其對應的應用程序,每個字符設備對應一個第二CPU ;將所述虛擬總線設備注冊為所述字符設備,所述應用程序通過驅動實現(xiàn)對所述字符設 備的讀寫操作。
4.根據(jù)權利要求1所述的方法,其特征在于,所述在第二CPU上構建虛擬總線設備包括所述第二 CPU在最后一個控制臺命令行參數(shù)中指定控制臺設備為虛擬總線設備; 根據(jù)所述命令行參數(shù)將所述虛擬總線設備注冊為控制臺設備,并將所述虛擬總線設備 注冊為虛擬終端設備。
5.根據(jù)權利要求2所述的方法,其特征在于,所述第一CPU和第二 CPU通過所述緩沖區(qū) 進行CPU信息的讀寫操作包括第一 CPU操作輸入緩沖區(qū)的寫指針,將輸入所述第一 CPU的數(shù)據(jù)寫入所述輸入緩沖區(qū) 的數(shù)據(jù)區(qū),所述第二 CPU操作輸入緩沖區(qū)的讀指針,讀取所述輸入緩沖區(qū)數(shù)據(jù)區(qū)中的數(shù)據(jù); 第二 CPU操作輸出緩沖區(qū)的寫指針,將所述第二 CPU的控制臺數(shù)據(jù)寫入所述輸出緩沖 區(qū)的數(shù)據(jù)區(qū),所述第一 CPU操作輸出緩沖區(qū)的讀指針,讀取所述輸出緩沖區(qū)數(shù)據(jù)區(qū)中的數(shù) 據(jù)。
6.一種CPU控制臺重定向系統(tǒng),其特征在于,包括若干通過總線相連的CPU,所述若干 CPU中包括至少一個第一 CPU和至少一個第二 CPU,其中,所述第一 CPU,用于構建虛擬總線設備,并在其內存上為所述第二 CPU分配緩沖區(qū); 所述第二 CPU,用于構建虛擬總線設備;所述第一 CPU和所述第二 CPU通過所述構建的虛擬總線設備進行關聯(lián),并通過所述緩 沖區(qū)進行CPU信息的讀寫操作。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述總線具體為PCIe總線,所述第一 CPU,具體用于在其內存上分別為每個第二 CPU分配輸入緩沖區(qū)和輸出緩沖區(qū),每個所述緩 沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū),將所述第一 CPU和第二 CPU分別映射到PCI總線空間。
8.—種CPU,其特征在于,應用于包含若干CPU的計算機系統(tǒng)中,所述若干CPU之間通 過總線相連,所述若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,所述一種CPU為 所述計算機系統(tǒng)中的第一 CPU,包括分配單元,用于在所述CPU的內存上為所述第二 CPU分配緩沖區(qū);關聯(lián)單元,用于在所述CPU上構建虛擬總線設備,并通過所述虛擬總線設備與同樣構 建了虛擬 總線設備的第二 CPU關聯(lián);操作單元,用于通過所述緩沖區(qū)對所述第二 CPU的CPU信息進行讀寫操作。
9.根據(jù)權利要求8所述的CPU,其特征在于,所述總線具體為PCIe總線,所述分配單元 包括緩沖區(qū)分配子單元,用于在所述CPU的內存上分別為每個第二 CPU分配輸入緩沖區(qū)和 輸出緩沖區(qū),每個所述緩沖區(qū)包括讀指針、寫指針和數(shù)據(jù)區(qū);空間映射子單元,用于將所述CPU和第二 CPU分別映射到PCI總線空間。
10.根據(jù)權利要求8所述的CPU,其特征在于,所述關聯(lián)單元包括結構構建子單元,用于構建字符設備驅動及其對應的應用程序,每個字符設備對應一 個第二 CPU ;設備注冊子單元,用于將虛擬總線設備注冊為所述字符設備,所述應用程序通過驅動 實現(xiàn)對所述字符設備的讀寫操作。
11.根據(jù)權利要求9所述的CPU,其特征在于,所述操作單元包括輸入緩沖區(qū)操作子單元,用于操作輸入緩沖區(qū)的寫指針,將輸入所述第一 CPU的數(shù)據(jù) 寫入所述輸入緩沖區(qū)的數(shù)據(jù)區(qū);輸出緩沖區(qū)操作子單元,用于操作輸出緩沖區(qū)的讀指針,讀取所述輸出緩沖區(qū)數(shù)據(jù)區(qū) 中由所述第二 CPU寫入的控制臺數(shù)據(jù)。
12.—種CPU,其特征在于,應用于包含若干CPU的計算機系統(tǒng)中,所述若干CPU之間通 過總線相連,所述若干CPU中包括至少一個第一 CPU和至少一個第二 CPU,所述一種CPU為 所述計算機系統(tǒng)中的第二 CPU,包括關聯(lián)單元,用于在所述CPU上構建虛擬總線設備,并通過所述虛擬總線設備與同樣構 建了虛擬總線設備的第一 CPU關聯(lián),所述第一 CPU上的內存上為所述CPU分配了緩沖區(qū);操作單元,用于通過所述緩沖區(qū)對所述第一 CPU的CPU信息進行讀寫操作。
13.根據(jù)權利要求12所述的CPU,其特征在于,所述總線具體為PCIe總線,且所述第一 CPU的內存上為所述CPU分配了輸入緩沖區(qū)和輸出緩沖區(qū),所述每個緩沖區(qū)包括讀指針、寫 指針和數(shù)據(jù)區(qū),所述關聯(lián)單元包括控制臺設備指定子單元,用于在最后一個控制臺命令行參數(shù)中指定控制臺設備為虛擬 總線設備;虛擬總線設備注冊子單元,用于根據(jù)所述命令行參數(shù)將所述虛擬總線設備注冊為控制 臺設備,并將所述虛擬總線設備注冊為虛擬終端設備。
14.根據(jù)權利要求13所述的CPU,其特征在于,所述操作單元包括輸入緩沖區(qū)操作子單元,用于操作輸入緩沖區(qū)的讀指針,讀取所述輸入緩沖區(qū)數(shù)據(jù)區(qū) 中由第一 CPU寫入的輸入數(shù)據(jù);輸出緩沖區(qū)操作子單元,用于操作輸出緩沖區(qū)寫指針,將所述CPU的控制臺數(shù)據(jù)寫入所述輸出緩沖區(qū)的數(shù)據(jù)區(qū)。
全文摘要
本申請實施例公開了一種CPU控制臺重定向方法、系統(tǒng)及CPU,系統(tǒng)中包含通過總線相連的若干CPU,若干CPU中包括至少一個第一CPU和至少一個第二CPU,所述方法包括在第一CPU的內存上為第二CPU分配緩沖區(qū);分別在第一CPU和第二CPU上構建虛擬總線設備,通過虛擬總線設備關聯(lián)第一CPU和第二CPU;第一CPU和第二CPU通過緩沖區(qū)進行CPU信息的讀寫操作。本申請實施例在第一CPU上對第二CPU的信息進行讀寫操作,不必通過串口進行讀寫操作,并且由于在CPU控制臺重定向過程中,不依賴于網絡,因此第一CPU可以查看第二CPU所有已運行進程和內核的打印信息,由此增強了系統(tǒng)對CPU信息讀取的方便性和靈活性。
文檔編號G06F15/163GK101872335SQ20101012723
公開日2010年10月27日 申請日期2010年3月5日 優(yōu)先權日2010年3月5日
發(fā)明者胡揚忠, 趙先林, 鄔偉琪, 黃毅 申請人:杭州??低晹?shù)字技術股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
徐汇区| 扎鲁特旗| 铜川市| 兰西县| 台南市| 平山县| 吴旗县| 崇阳县| 盐池县| 泽库县| 东港市| 句容市| 庄河市| 镇巴县| 中江县| 永城市| 理塘县| 湘乡市| 江山市| 广灵县| 扎赉特旗| 迁西县| 年辖:市辖区| 视频| 怀宁县| 景东| 黄大仙区| 屏南县| 沂水县| 青龙| 达拉特旗| 嘉兴市| 望江县| 娱乐| 泗洪县| 山阳县| 横峰县| 化德县| 邯郸县| 丰都县| 四子王旗|