天天看點

linux控制NVme硬碟點燈,一種實作多NVMe硬碟背闆點燈的設計方法與流程

linux控制NVme硬碟點燈,一種實作多NVMe硬碟背闆點燈的設計方法與流程

本發明涉及伺服器硬碟背闆領域,具體來說涉及一種實作多NVMe硬碟背闆點燈的設計方法。

背景技術:

随着CPU、顯示卡性能的不斷提升,伺服器的計算瓶頸逐漸向儲存設備轉移,存儲技術也随之更新,硬碟傳輸速率從6G提升至12G,并将逐漸提速至24G。硬碟類型在最初的SATA/SAS機械硬碟的基礎上,逐漸衍生出SATAe/M.2/NVMe等新的硬碟類型,主流硬碟形态也由原來的機械硬碟更新為SSD。在這種背景下,對伺服器硬碟背闆的相容性提出了更高的要求。主流的計算型伺服器背闆一般支援SATA/SAS/NVMe硬碟混插,同時配備PCIe/SATA M.2作為系統盤使用,而舊一代的伺服器硬碟背闆主要支援SATA/SAS硬碟,連接配接器pin定義遵循SFF-8643。

現有的硬碟背闆設計方案,主要實作了SAS/SATA硬碟點燈,這種點燈方式主要依賴于主要端發出的SGPIO信号,而SGPIO是一種串行總線,不區分裝置端位址,一組信号能夠點亮多個硬碟訓示燈。此外,現有的SAS/SATA硬碟背闆不支援SFF-8639,即下行連接配接器未定義NVMe硬碟的帶内信号pin,同時由于SFF-8643中未定義CPU發出硬碟點燈的VPP信号,是以現有的SAS/SATA背闆也不支援NVMe硬碟點燈功能。

在NVME硬碟方面,對于現有的NVMe硬碟背闆,NVMe錯誤資訊由BMC通過讀硬碟Fru的I2C通道擷取,點燈狀态訓示很不穩定,而且因為擷取不到硬碟的定位訓示信号,Locate訓示燈無法正常點亮,是以無法實作完整的NVMe硬碟點燈功能。

技術實作要素:

本發明提供一種硬碟背闆點燈的設計方法,解決現有的NVMe硬碟背闆無法正常點亮Locate燈的問題,并在連接配接器中增加位址線資訊,實作多NVMe的靈活配置。

為解決上述技術問題,本發明采用如下技術方案:

一種實作多NVMe硬碟背闆點燈的設計方法,包括主機闆和背闆,所述設計方法包括下述步驟:

在主機闆的每個控制器上接出一組VPP信号線,VPP信号線通過每個端口的連接配接器邊帶通道傳遞至背闆;

控制器向背闆端循環發送VPP位址,背闆的可程式設計邏輯器接收到控制器發送的資料流後,對控制器發送的位址資訊進行解析;

若背闆通道模拟的VPP位址與控制器發出的位址相同時,控制器将對應盤位的硬碟點燈資訊發送給背闆的可程式設計邏輯器;

背闆的可程式設計邏輯器對控制器發送的硬碟點燈資訊進行邏輯轉換,将VPP上的串行資料流轉換為并行信号,點亮對應端口的背闆燈,并将背闆監控到的硬碟在位資訊上傳至控制器。

基于上述方案,本設計方法做如下優化:

為實作多NVMe的靈活配置,在同一款機型上可以使用CPU0、CPU1及Tri-mode作為NVMe的上行控制器,所述背闆連接配接器采用Oculink連接配接器,将Oculink連接配接器上的預留信号pin作為位址線,主機闆端通過上下拉電阻定義每個端口位址,背闆端讀取位址線資訊,解析後為對應通道配置設定VPP位址。同時,在背闆端添加撥碼開關,撥碼開關的狀态清單由各機型NVMe配置确定,背闆的可程式設計邏輯器根據讀取到的狀态資訊确定上行控制器的類型、用來與控制器互動的通道以及NVMe的硬碟數量資訊。在完成位址配置設定、配置識别後,背闆的可程式設計邏輯器解析VPP資訊,點亮對應端口的LED,同時将背闆監控到的硬碟所在位置資訊上傳至控制器端。

進一步的,所述的Oculink連接配接器支援SAS/SATA/PCIe信号鍊路,每個連接配接器支援4個SAS/SATA硬碟或1個NVMe硬碟,上行連接配接器中其餘的信号pin設計定義為SGPIO或者VPP,在支援NVMe的模式下,設計定義有PERST#/WAKE#信号。

進一步的,所述控制器不同PCIE端口的VPP位址通過VPP index中的寄存器确定,具體通過BIOS将PCIE端口的VPP位址寫入與其對應的VPP index。

作為優選,所述背闆的可程式設計邏輯器采用CPLD邏輯器,CPLD模拟PCA9555子產品電路,每個PCA9555子產品電路傳遞兩個端口的背闆點燈資訊,每個端口占用8位資料資訊。每個端口的背闆點燈資訊包括有NVMe硬碟的fault、locate以及present資訊,所述fault、locate及present資訊對應占用的位元組數分别為0、1和4,其餘幾位用作預留。

發明内容中提供的效果僅僅是實施例的效果,而不是發明所有的全部效果,上述技術方案中的一個技術方案具有如下優點或有益效果:

1、本發明的一種實作多NVMe硬碟背闆點燈的設計方法,NVMe硬碟點燈依賴于主要端發出VPP信号,通過VPP信号實作NVMe硬碟背闆點亮Locate/Error燈,實作了完整的多NVMe硬碟背闆點燈方案,和現有技術相比,本設計方法不再依賴于BMC,而是控制器通過帶内信号監控NVMe硬碟工作狀态,Error燈能夠更加穩定地點亮,CPU和Tri-mode控制器可以通過VPP點亮Locate燈,彌補了現有技術中NVMe硬碟背闆無法正常點亮Locate燈的功能缺憾。該背闆點燈方案相容CPU、tri-mode控制器,可以應用于多種場景。

2、本設計方法的NVMe背闆使用Oculink作為上行信号連接配接器,通過定義Oculink中的預留信号線,使主機闆和背闆間能夠更有效的同步位址資訊,背闆與控制器互聯架構,能夠相容多種控制器。使用Oculink擴充位址線的方式,支援位址自動識别,同時通過背闆撥碼開關,支援不同配置,利用這種方式,實作了使用不同的上行控制器連接配接多NVMe,以及從不同控制器引出不同數量的上行端口,實作了NVMe背闆的靈活配置。

附圖說明

圖1是本發明實施例的多NVMe硬碟背闆點燈設計方法流程圖;

圖2是本發明實施例的互聯拓撲圖;

圖3是本發明實施例的多NVMe硬碟背闆點燈設計方法工作流程圖。

具體實施方式

為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當了解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。

為了友善對發明技術方案的了解,對本方法中涉及的英文縮寫予以解釋和說明。

NVMe:Non-Volatile Memory Express,非易失性存儲器;

SSD:Solid State Drives,固态硬碟;

PCIe:Peripheral Component Interconnect Express,外圍元件互聯總線;

Tri-mode卡:新一代RAID卡增加支援NVMe硬碟格式;

VPP:Virtual Pin Port,虛拟針端口;

BMC:Baseboard Management Contorller,基闆管理控制器。

如圖1所示,本發明的多NVMe硬碟背闆點燈的設計方法,包括主機闆和背闆,所述設計方法包括下述步驟:

在主機闆的每個控制器上接出一組VPP信号線,VPP信号線通過每個端口的連接配接器邊帶通道傳遞至背闆;

控制器向背闆端循環發送VPP位址,背闆的可程式設計邏輯器接收到控制器發送的資料流後,對控制器發送的位址資訊進行解析;

若背闆通道模拟的VPP位址與控制器發出的位址相同時,控制器将對應盤位的硬碟點燈資訊發送給背闆的可程式設計邏輯器;

背闆的可程式設計邏輯器對控制器發送的硬碟點燈資訊進行邏輯轉換,将VPP上的串行資料流轉換為并行信号,點亮對應端口的背闆燈,并将背闆監控到的硬碟在位資訊上傳至控制器。

具體而言,如圖2、圖3所示,為實作多NVMe的靈活配置,在同一款機型上可以使用CPU0、CPU1及Tri-mode作為NVMe的上行控制器,所述背闆連接配接器采用Oculink連接配接器,将Oculink連接配接器上的預留信号pin作為位址線,主機闆端通過上下拉電阻定義每個端口位址,背闆端讀取位址線資訊,解析後為對應通道配置設定VPP位址。同時,在背闆端添加撥碼開關,撥碼開關的狀态清單由各機型NVME配置确定,背闆的可程式設計邏輯器根據讀取到的狀态資訊确定上行控制器的類型、用來與控制器互動的通道以及NVME的硬碟數量資訊。在完成位址配置設定、配置識别後,背闆的可程式設計邏輯器解析VPP資訊,點亮對應端口的LED,同時将背闆監控到的硬碟所在位置資訊上傳至控制器端。

所述的Oculink連接配接器支援SAS/SATA/PCIe信号鍊路,每個連接配接器支援4個SAS/SATA硬碟或1個NVMe硬碟,上行連接配接器中其餘的信号pin設計定義為SGPIO或者VPP,在支援NVMe的模式下,設計定義有PERST#/WAKE#信号。考慮到Tri-mode标準外插卡的應用情景,即X8或X16的子卡,該子卡相容支援SAS/SATA/NVMe,SFF-9402中定義了BP_type和Ctrl_type兩個pin,用來給背闆識别上行信号控制器來自CPU還是Tri-mode卡。

所述控制器不同PCIE端口的VPP位址通過VPP index中的寄存器确定,具體通過BIOS将PCIE端口的VPP位址寫入對應的VPP index。

所述背闆的可程式設計邏輯器采用CPLD邏輯器,CPLD模拟PCA9555子產品電路,每個PCA9555子產品電路傳遞兩個端口的背闆點燈資訊,每個端口占用8位資料資訊。每個端口的背闆點燈資訊包括有NVMe硬碟的fault、locate及present資訊,所述fault、locate及present資訊對應占用的位元組數分别為0、1和4,其餘幾位用作預留。

進一步來說,在本設計中,Intel CPU目前可供使用的8個裝置位址包括:0x40、0x42、0x44、0x46、0x4C、0x4E,每個CPU共有48條PCIe lane,最大支援12盤NVMe,每兩個盤配置設定一個VPP address,隻需在8個位址清單中挑選6個。每個CPU發出一組VPP信号線,信号線通過每個端口的連接配接器背闆通道傳遞至背闆。Tri-mode卡采用Broadcom Tri-mode卡,該卡可支援兩種規格:上行帶寬為X8的子卡可挂載2個NVME,兩個NVMe VPP address為0x40、0x42,均使用VPP寄存器的低8位資訊;上行帶寬為X16的可挂載4個NVMe,前兩個NVMe VPP address為0x40,後兩個NVMe VPP address為0x42。

在本發明實施例中,通過設計實作新的NVMe硬碟點燈方案,解決了上一代NVMe硬碟背闆無法點亮Locate燈的問題,相容新産品中CPU及Tri-mode卡主要端解決方案,硬碟背闆CPLD程式中加入了VPP位址識别及資料解析,提取有效的資料控制位正确點亮背闆訓示燈。本設計方法還解決了NVMe硬碟背闆設計問題,對于新一代産品中支援NVMe硬碟的配置具有重要的意義。

以上所述僅為本發明的較佳實施例而已,并不用以限定本發明,對于本技術領域的技術人員來說,在不脫離本發明原理的前提下所作的任何修改、改進和等同替換等,均包含在本發明的保護範圍内。