一種數據讀寫方法以及主板的制作方法
【技術領域】
[0001]本申請涉及通信領域,尤其涉及一種數據讀寫方法以及主板。
【背景技術】
[0002]存儲服務器是一種能提供很大存儲空間的服務器,它必須具有快速的處理芯片,較大的RAM (Random Access Memory,隨機存取存儲器),以及非常大的內部磁盤空間,以便應對終端用戶隨時可能出現的應用調配需求。
[0003]在存儲服務器中,主板通常是一臺存儲服務器設計的核心。存儲服務器主板的現有架構中,CPU通常通過SAS(Serial Attached SCSI,即串行SCSI技術)控制器以及SAS擴展器與磁盤陣列建立連接,在進行數據讀寫時,CPU將從I/O業務口接收到讀1請求和寫1請求通過SAS控制器以及SAS擴展器下發到磁盤陣列,來完成對應的讀寫操作。
[0004]磁盤陣列在完成對應的讀寫操作時,磁盤陣列中的磁盤設備以恒定的速率旋轉,為了能夠完成讀操作和寫操作,磁盤的磁頭必須能移動到所要求的磁道上,并等待所要求扇區的開始位置旋轉到磁頭下,然后再開始讀操作和寫操作。
[0005]因此,磁盤設備在進行數據讀寫時,數據讀寫所耗費的總時長通常可以包括尋道時間,旋轉延時時間和傳輸時間三部分。由于在實際應用中,磁盤在進行數據讀寫時,磁頭尋道時間和旋轉延時間通常比較長,如果CPU頻繁訪問磁盤,磁盤工作的大部分時間都在尋道,工作效率將非常低下,必然導致整個計算系統運行緩慢,因此對磁盤訪問進行加速十分有必要。
【發明內容】
[0006]本申請提出一種數據讀寫方法,應用于存儲服務器,所述存儲服務器的主板包括CPU、基于FPGA的數據讀寫模塊、內存;所述基于FPGA的數據讀寫模塊與所述CPU以及所述存儲服務器的磁盤陣列分別相連接;所述內存與所述基于FPGA的數據讀寫模塊相連接;所述方法包括:
[0007]步驟A、所述基于FPGA的數據讀寫模塊接收所述CPU下發的讀寫1請求,并對所述讀寫1請求進行解析獲取對應的讀寫地址;
[0008]步驟B、所述基于FPGA的數據讀寫模塊判斷獲取到所述讀寫地址是否命中所述內存中預設的熱點數據庫中的地址索引;
[0009]步驟C、當獲取到的所述讀寫地址命中所述預設的熱點數據庫中的地址索引時,所述基于FPGA的數據讀寫模塊基于所述熱點數據庫中的熱點數據在本地執行與所述讀寫1請求對應的讀寫操作。
[0010]可選的,所述步驟C具體包括:
[0011]當解析CPU下發的讀1請求獲取到的讀地址命中所述預設的熱點數據庫中的地址索引時,從所述內存中預設的熱點數據庫中讀取與該地址索引對應的熱點數據,并將讀取到的熱點數據返回給CPU,以由CPU將該熱點數據發送給所述讀1請求的發起端主機;
[0012]當解析CPU下發的寫1請求獲取到的寫地址命中所述預設的熱點數據庫中的地址索引時,將與該寫1請求對應的寫入數據存入所述熱點數據庫,對所述熱點數據庫中與該地址索引對應的熱點數據進行更新。
[0013]可選的,所述步驟B具體包括:
[0014]在判斷獲取到所述讀寫地址是否命中所述內存中預設的熱點數據庫中的地址索引之前,針對與所述讀寫地址對應的數據進行訪問次數統計;
[0015]判斷統計出的訪問次數是否達到閾值;
[0016]當統計出的任一數據的訪問次數達到閾值時,將該數據作為熱點數據保存在所述預設的熱點數據庫中,并在該熱點數據庫中創建該數據與該數據的地址索引之間的對應關系O
[0017]可選的,所述步驟B進一步包括:
[0018]當所述預設的熱點數據庫中任一熱點數據未被讀取的持續時長達到預設時長時,將該熱點數據從所述內存中回寫到所述磁盤陣列,并刪除所述預設的熱點數據庫中保存的與該熱點數據對應的地址索引。
[0019]可選的,所述內存包括大容量閃存。
[0020]本申請還提出一種主板,應用于存儲服務器,所述主板包括CPU、基于FPGA的數據讀寫模塊、內存;其中,所述基于FPGA的數據讀寫模塊與所述CPU以及所述存儲服務器的磁盤陣列分別相連接;所述內存與所述基于FPGA的數據讀寫模塊相連接;其中:
[0021]所述基于FPGA的數據讀寫模塊,用于接收所述CPU下發的讀寫1請求,并對所述讀寫1請求進行解析獲取對應的讀寫地址;
[0022]所述基于FPGA的數據讀寫模塊進一步判斷獲取到所述讀寫地址是否命中所述內存中預設的熱點數據庫中的地址索引;
[0023]當獲取到的所述讀寫地址命中所述預設的熱點數據庫中的地址索引時,所述基于FPGA的數據讀寫模塊進一步用于基于所述熱點數據庫中的熱點數據在本地執行與所述讀寫1請求對應的讀寫操作。
[0024]可選的,所述基于FPGA的數據讀寫模塊進一步用于:
[0025]當解析CPU下發的讀1請求獲取到的讀地址命中所述預設的熱點數據庫中的地址索引時,從所述內存中預設的熱點數據庫中讀取與該地址索引對應的熱點數據,并將讀取到的熱點數據返回給CPU,以由CPU將該熱點數據發送給所述讀1請求的發起端主機;
[0026]當解析CPU下發的寫1請求獲取到的寫地址命中所述預設的熱點數據庫中的地址索引時,將與該寫1請求對應的寫入數據存入所述熱點數據庫,對所述熱點數據庫中與該地址索引對應的熱點數據進行更新。
[0027]可選的,所述基于FPGA的數據讀寫模塊進一步用于:
[0028]在判斷獲取到所述讀寫地址是否命中所述內存中預設的熱點數據庫中的地址索引之前,針對與所述讀寫地址對應的數據進行訪問次數統計;
[0029]判斷統計出的訪問次數是否達到閾值;
[0030]當統計出的任一數據的訪問次數達到閾值時,將該數據作為熱點數據保存在所述預設的熱點數據庫中,并在該熱點數據庫中創建該數據與該數據的地址索引之間的對應關系O
[0031]可選的,所述基于FPGA的數據讀寫模塊進一步用于:
[0032]當所述預設的熱點數據庫中任一熱點數據未被讀取的持續時長達到預設時長時,將該熱點數據從所述內存中回寫到所述磁盤陣列,并刪除所述預設的熱點數據庫中保存的與該熱點數據對應的地址索引。
[0033]可選的,所述內存包括大容量閃存。
[0034]本申請提出一種新的存儲服務器的主板架構,該主板架構中包括CPU、基于FPGA的數據讀寫模塊、內存;所述基于FPGA的數據讀寫模塊與所述CPU以及所述存儲服務器的磁盤陣列分別相連接;所述內存與所述基于FPGA的數據讀寫模塊相連接。CPU在進行數據讀寫時,基于FPGA的數據讀寫模塊接收CPU下發的讀寫1請求,對所述讀寫1請求進行解析獲取對應的讀寫地址,并判斷獲取到所述讀寫地址是否命中所述內存中預設的熱點數據庫中的地址索引;當獲取到的所述讀寫地址命中所述預設的熱點數據庫中的地址索引時,所述基于FPGA的數據讀寫模塊基于所述熱點數據庫中的熱點數據在本地執行與所述讀寫1請求對應的讀寫操作。
[0035]由于在該主板架構中,當CPU發起的讀寫1請求對應的讀寫數據命中熱點數據庫中的熱點數據時,將由基于FPGA的數據讀寫模塊根據基于所述熱點數據庫中的數據在其本地完成與所述讀寫1請求對應的讀寫操作,而不需要將該讀寫1請求下發到磁盤陣列來執行對應的讀寫操作,因此可以有效的減少磁盤陣列中單塊磁盤的讀寫操作次數節省磁盤的尋道時長,從而可以實現磁盤訪問的加速,極大的提高了熱點數據的訪問速度,提升了存儲服務器的整體讀寫性能。
【附圖說明】
[0036]圖1是本申請一實施例提供的一種存儲服務器的主板架構圖;
[0037]圖2是本申請一實施例提供的另一種存儲服務器的主板架構圖;
[0038]圖3是本申請一實施例提供的一種數據讀寫方法的流程圖。
【具體實施方式】
[0039]請參見圖1,圖1為現有實現中存儲服務器的主板架構示意圖。
[0040]如圖1所示,在存儲服務器的主板架構中,通常包括業務1 口、CPU、1H