TWI705682B - 嵌入式系統及其方法 - Google Patents
嵌入式系統及其方法 Download PDFInfo
- Publication number
- TWI705682B TWI705682B TW105104517A TW105104517A TWI705682B TW I705682 B TWI705682 B TW I705682B TW 105104517 A TW105104517 A TW 105104517A TW 105104517 A TW105104517 A TW 105104517A TW I705682 B TWI705682 B TW I705682B
- Authority
- TW
- Taiwan
- Prior art keywords
- segment
- tcp
- packet
- header
- host device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Correction Of Errors (AREA)
- Communication Control (AREA)
Abstract
一種嵌入式系統可以包括嵌入式裝置和主機裝置。嵌入式裝置可以提供用於服務的封包,以及產生包括封包的段和不具有校驗和值的第一標頭的第一傳輸控制協定(TCP,transmission control protocol)分段。主機裝置可以接收第一TCP分段,基於封包的段和第一標頭來產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段,以及基於第二TCP分段來產生網際網路協定(IP,internet protocol)封包。
Description
本申請要求2015年2月17日提交的美國臨時申請第62/117,200號的優先權,其全部內容透過引用合併於此。
本公開的示例性實施例關於嵌入式系統和用於操作嵌入式系統的方法。
一般而言,嵌入式系統包括嵌入式裝置和主機裝置。近來,對於嵌入式裝置,使用諸如固態驅動器(SDD,solid state drive)的記憶體裝置。
本公開的實施例針對包括嵌入式裝置和主機裝置的嵌入式系統及其方法。
本發明的方面包括一種包括有嵌入式裝置和主機裝置的系統。嵌入式裝置可以提供用於服務的封包(packet),以及產生包括封包的段(piece)和不具有校驗和值(checksum value)的第一標頭(header)的第一傳輸控制協定(TCP,transmission control protocol)分段(segment)。主機裝置可以接收第一TCP分段,基於該封包的段和第一標頭來產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段,以及基於第二TCP分段來產生網際網路協定(IP,internet protocol)封包。
本發明的又一方面包括用於操作具有嵌入式裝置和主機裝置的
嵌入式系統的方法。該方法可以包括:透過嵌入式裝置提供用於服務的封包;透過嵌入式裝置產生包括封包的段和不具有校驗和值的第一標頭的第一傳輸控制協定(TCP)分段;透過主機裝置接收第一TCP分段;基於封包的段和第一標頭而透過主機裝置來產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段;基於第二TCP分段而透過主機裝置來產生網際網路協定(IP)封包。
本發明的更進一步方面包括用於嵌入式系統的嵌入式裝置。該嵌入式裝置可以包括:至少一個服務供給器,適用於提供用於服務的封包;處理單元,適用於產生包括封包的段和不具有校驗和值的標頭的傳輸控制協定(TCP)分段;以及介面單元,適用於將TCP分段傳送到主機裝置。
本發明的附加方面包括用於嵌入式系統的主機裝置。該主機裝置可以包括:介面單元,適用於從嵌入式裝置接收包括用於服務的封包的段和不具有校驗和值的第一標頭的第一傳輸控制協定(TCP)分段;第一處理單元,適用於基於封包的段和第一標頭來計算校驗和值並且產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段;第二處理單元,適用於執行網際網路協定(IP)路由並且基於第二TCP分段來產生網際網路協定(IP)封包;以及第三處理單元,適用於基於IP封包來產生傳輸框並且將傳輸框傳送到網路。
10:嵌入式系統
20:嵌入式系統
100:嵌入式裝置
110:記憶體單元
120:控制器
150:嵌入式裝置
200:主機裝置
210:介面
220:處理器
230:錯誤校正碼(ECC)單元
240:電源管理單元(PMU)
245:介面
250:主機裝置
260:記憶體
311:服務提供器
312:服務提供器
320:處理單元
330:介面單元
401:應用層
402:傳輸層
403:網際網路層
404:網路介面層
410:介面單元
420:第一處理單元
430:第二處理單元
440:用戶端
450:主機TCP棧
461:第三處理單元
462:第四處理單元
470:步驟
475:步驟
480:步驟
485:步驟
490:步驟
495:步驟
510:應用層資料
520:段
530:TCP分段
532:標頭
532A:TCP分段標頭
532B:TCP分段標頭
534:資料
600:TCP校驗和值
Piece1:段
Piece2:段
Piece3:段
Header1:標頭
Header2:標頭
Header3:標頭
〔圖1〕是嵌入式系統的方塊圖。
〔圖2〕是嵌入式裝置的控制器的方塊圖。
〔圖3〕是圖示根據本公開的實施例的包括嵌入式裝置和主機裝置的嵌入式系統的方塊圖。
〔圖4〕是圖示根據本公開的實施例的嵌入式系統的TCP/IP模型的示圖。
〔圖5〕是圖示根據本公開的實施例的產生TCP分段的操作的示圖。
〔圖6A〕和〔圖6B〕是圖示根據本公開的實施例的產生TCP分段標頭的操作的示圖。
以下將參考附圖更詳細地描述各個實施例。然而,本發明可以具體化為不同的形式並且不應該理解為受限於本文所闡述的實施例。更確切地說,提供這些實施例使得本公開將是徹底和完整的,並且將向本領域中具有通常知識者充分地傳達本發明的範圍。貫穿本公開,相同的元件符號在本發明的各個圖式和實施例各處指代相同的部分。
本發明可以以許多方式來實施,包括作為處理;裝置;系統;組合物;在電腦可讀儲存介質上實施的電腦程式產品;和/或處理器(諸如適用於執行儲存在耦接至處理器的記憶體上和/或透過耦接至處理器的記憶體所提供的指令的處理器)。在本說明書中,這些實施例或者本發明可以採用的任何其它形式可以被稱為技術。一般而言,所公開的處理的步驟的順序可以在本發明的範圍內改變。除非另有說明,被描述為適用於執行任務的諸如處理器或者記憶體的元件可以被實施為在給定時間暫時適用於執行該任務的普通元件或者被製造來執行該任務的特定組件。作為在本文中所使用的,術語“處理器”是指一個或更多個裝置、電路和/或適用於處理資料(諸如電腦程式指令)的處理核心。
以下提供與示出了本發明的原理的附圖一起的本發明的一個或多個實施例的詳細描述。儘管連同這種實施例來描述本發明,但是本發明不限於任何實施例。本發明的範圍僅僅由請求項申請專利範圍限制並且本發明包括許
多的替換例、變型以及等同例。在以下詳細說明中,闡述了許多的具體的細節以便提供本發明的徹底的理解。這個細節是為了示例而被提供並且本發明可以在沒有這些具體細節中的一些或者全部的情況下根據請求項申請專利範圍來實踐。為了清楚的目的,沒有詳細地描述與本發明有關的技術領域所熟知的技術材料以便本發明不被不必要地模糊。
在本文中將描述本發明的各種實施例,其提供使用常規、工業標準連接的能力以透過介面來管理嵌入式裝置或者換句話說與嵌入式裝置通訊。這些實施例允許嵌入式裝置使用這種常規、到處存在的基本結構以用於管理和監測。這些實施例在如圖1所示的嵌入式系統的嵌入式裝置上啟用服務,並且透過網際網路以工業標準方式來使用該服務。
圖1圖示顯示嵌入式系統(或者資料處理系統)10的示圖。
參考圖1,嵌入式系統10可以包括嵌入式裝置100和主機裝置200。
主機裝置200可以利用各種類型的電子裝置中的任何一個來實施。在一些實施例中,主機裝置200可以包括諸如桌上型電腦、工作站、三維(3D)電視、智慧電視、數位音訊記錄器、數位音訊播放機、數位圖像記錄器、數位圖像播放機、數位視訊記錄器以及數位視訊播放機的電子裝置。在一些實施例中,主機裝置200可以包括諸如行動電話、智慧型電話、電子書、MP3播放機、可攜式多媒體播放機(PMP,portable multimedia player)以及可攜式遊戲播放機的可攜式電子裝置。
嵌入式裝置100可以回應於來自主機裝置200的請求而操作,並且具體地,存儲要由主機裝置200存取的資料。在一些實施例中,嵌入式裝置
100可以利用諸如固態驅動器(SSD)的儲存裝置來實施。在一些實施例中,嵌入式裝置100可以利用諸如多媒體卡(MMC,multimedia card)、嵌入式MMC(eMMC,embedded MMC)、縮小尺寸MMC(RS-MMC,reduced size MMC)以及微型MMC、安全數位(SD)卡、迷你SD以及微型SD、通用序列匯流排(USB,umiversal serial bus)儲存裝置、通用快閃儲存(UFS,universal flash storage)裝置、緊湊型快閃(CF,compact flash)卡、智慧媒體(SM,smard media)卡和記憶棒等的各種類型的儲存裝置中的任意一種來實施。
嵌入式裝置100可以包括存儲要由主機裝置200存取的資料的記憶體單元110和控制記憶體單元110中資料的儲存的控制器120。
用於嵌入式裝置100的記憶體單元110可以利用諸如動態隨機存取記憶體(DRAM,dynamic random access memory)和靜態隨機存取記憶體(SRAM,static random access memory)的揮發性記憶體裝置或者諸如唯讀記憶體(ROM,read only memory)、遮罩ROM(MROM,mask ROM)、可程式設計ROM(PROM,programmable ROM)、可抹除可程式設計ROM(EPROM,erasable programmable ROM)、電可抹除可程式設計ROM(EEPROM,electrically erasable programmable ROM)、鐵電隨機存取記憶體(FRAM,ferroelectric random access memory)、相變RAM(PRAM,phase change RAM)、磁阻式RAM(MRAM,magnetoresistive RAM)以及電阻式RAM(RRAM,resistive RAM)的非揮發性記憶體裝置來實施。
嵌入式裝置100的控制器120可以回應於來自主機裝置200的請求來控制記憶體單元110。控制器120可以將從記憶體單元110讀取的資料提供至主機裝置200,以及將從主機裝置200提供的資料儲存到記憶體單元110中。
在一些實施例中,嵌入式裝置100可以配置配置有資料中心的儲存器、能夠在無線環境下發送與接收資訊的裝置、配置家用網路的各種電子裝置中的一種、配置電腦網路的各種電子裝置中的一種、配置遠端資訊處理網路的各種電子裝置中的一種、RFID裝置或者配置計算系統的各種組成元件中的一種。
圖2是圖1中所示出的嵌入式裝置100的控制器120的方塊圖。
參考圖2,控制器120可以包括介面210、處理器220、錯誤校正碼(ECC,error correction code)單元230、電源管理單元(PMU,power management unit)240、介面245以及記憶體260。
介面210可以提供在控制器120和記憶體單元110之間的介面以允許控制器120回應於來自主機裝置200的請求來控制記憶體單元110。介面210可以產生用於記憶體單元110的控制訊號並且在處理器220的控制下處理資料。當記憶體單元110是諸如NAND快閃記憶體的快閃記憶體時,介面210可以產生用於NAND快閃記憶體110的控制訊號並且在處理器220的控制下處理資料。
處理器220可以控制嵌入式裝置100的常規操作,以及回應於來自主機裝置200的寫入請求或者讀取請求來控制用於記憶體單元110的寫入操作或者讀取操作。處理器220可以驅動被稱為快閃轉換層(FTL,flash translation layer)的韌體以控制嵌入式裝置100的常規操作。處理器220可以利用微處理器或者中央處理器(CPU,central processing unit)來實施。
ECC單元230可以在讀取操作期間檢測並且校正從記憶體單元110讀取的資料中的錯誤。ECC單元230在錯誤位元的數目大於或等於可校錯誤位元的閾值數時不能校正錯誤位元,並且可以輸出指示校正錯誤位元失敗的
錯誤校正失敗訊號。
ECC單元230可以基於諸如低密度同位(LDPC,low density parity check)碼、博斯-喬赫裡-霍克文黑姆(BCH,Bose-Chaudhuri-Hocquenghem)碼、渦輪碼(turbo code)、裡德-所羅門(RS,Reed-Solomon)碼、卷積碼、遞迴系統碼(RSC)、格形編碼調製(TCM)和塊碼調製(BCM)等的編碼調製來執行錯誤校正操作。ECC單元230可以包括用於錯誤校正操作的所有電路、系統或者裝置。
PMU 240可以提供和管理用於控制器120的電源,即,用於包括在控制器120內的組成元件的電源。
介面245可以處理從主機裝置200提供的命令和資料,並且可以透過各種介面協定中的任意一種來與主機裝置200通訊。在一些實施例中,介面245可以透過串列連接在嵌入式裝置100和主機裝置200之間提供介面。例如,介面245可以根據自動化/驅動介面傳輸(ADT,automation/drive interface transport)協定來提供介面。
記憶體260可以用作嵌入式裝置100和控制器120的工作記憶體,並且儲存用於驅動嵌入式裝置100和控制器120的資料。控制器120可以回應於來自主機裝置200的請求來控制記憶體單元110。例如,控制器120可以將從記憶體單元110讀取的資料提供至主機裝置200並且將從主機裝置200提供的資料儲存在記憶體單元110中。在控制器120控制記憶體單元110的操作時,記憶體260可以儲存由控制器120和記憶體單元110所使用的資料以用於諸如讀取操作、寫入操作、程式設計操作以及抹除操作的操作。
記憶體260可以利用揮發性記憶體來實施。記憶體260可以利
用靜態隨機存取記憶體(SRAM)或者動態隨機存取記憶體(DRAM)來實施。如上所述,記憶體260可以儲存由主機裝置200和記憶體單元110所使用的資料以用於讀取操作和寫入操作。為了儲存資料,記憶體260可以包括程式記憶體、資料記憶體、寫入緩衝器、讀取緩衝器和映射緩衝器等。
圖3是圖示根據本公開的實施例的包括嵌入式裝置150和主機裝置250的嵌入式系統20的方塊圖。在本發明的示例中,嵌入式系統20、嵌入式裝置150以及主機裝置250可以在結構和功能上分別與如參考圖1和圖2所描述的嵌入式系統10、嵌入式裝置100以及主機裝置200類似。
參考圖3,嵌入式系統20可以提供使用常規、工業標準連接的能力以透過串列互聯來管理嵌入式裝置150或者換句話說與嵌入式裝置150通訊。這種技術可以允許嵌入式裝置150使用這種常規、到處存在的基本結構以用於管理和監測。
嵌入式系統20可以在諸如固態驅動器(SSD)上啟用服務並且透過網際網路以工業標準方式使用該服務。嵌入式裝置150可以透過串列互聯連接到主機裝置250。一個或更多個服務提供器311-312可以位於嵌入式裝置150上。在嵌入式裝置可見的情況下,由嵌入式裝置150提供的服務的用戶端可以位於網路(即,網際網路)上的任何地方。在一些實施例中,如圖3所示,用戶端440可以位於主機裝置250中。可選地,用戶端440可以位於透過主機裝置250連接的網際網路(未示出)上。
嵌入式裝置150可以包括多個服務提供器(例如,兩個服務提供器)311-312、處理單元320以及介面單元330。
服務提供器311-312中的每個可以提供用於服務的分段。用於諸
如SSD的嵌入式裝置150的服務的示例可以包括負載分佈服務、驅動器健康監測器、容量使用監測器、壞塊計數分佈、壽命終止預警服務、驅動器配置服務或者任何類型的智慧計數器採集服務。
介面單元330可以耦接到處理單元320,並且可以將由處理單元320產生的傳輸控制協定(TCP,transmission control protocol)分段傳送到主機裝置250。介面單元330可以是在嵌入式裝置150和主機裝置250之間的用於串列互聯的序列介面。在一些實施例中,介面單元330可以利用基於自動化/驅動介面傳輸(ADT)協定的序列介面來實施。
處理單元320可以向任何服務提供器311-312給出工業標準傳輸控制協定(TCP)介面。為了輸出TCP封包,處理單元320除了使用ADT層而非其將通常使用的網際網路協定(IP,internet protocol)層之外,該處理單元320可以起典型TCP棧(TCP stack)的作用。換句話說,處理單元320可以起改進的TCP棧的作用。詳細地,處理單元320可以產生與用於服務的封包相對應的TCP分段。在一些實施例中,該封包可以被劃分為若干段,並且TCP分段可以包括封包的段和不具有校驗和值(checksum value)的標頭。
主機裝置250可以包括介面單元410、第一處理單元420、第二處理單元430以及第三處理單元461和第四處理單元462中的至少一個。此外,主機裝置250可以包括用戶端440和主機TCP棧450。
介面單元410可以接收由嵌入式裝置150的處理單元320所產生的TCP分段。介面單元410可以是用於在嵌入式裝置150和主機裝置250之間的串列互聯的序列介面。在一些實施例中,介面單元410可以利用基於自動化/驅動介面傳輸(ADT)協定的序列介面來實施。
第一處理單元420可以執行用於透過介面單元410從嵌入式裝置150接收到的TCP分段的TCP校驗求和操作以基於TCP分段來計算校驗和值,並且產生包括具有校驗和值的標頭的新TCP分段。換句話說,第一處理單元420可以起改進的TCP校驗的作用。此外,第一處理單元420可以將新TCP分段連接到第二處理單元430以用於IP路由。
第二處理單元430可以對由第一處理單元420產生的TCP分段執行IP路由。由於嵌入式裝置150與網際網路上的具有其自身IP位址和自身服務組的任何主機類似,因此第二處理單元430可以執行IP路由。如果用戶端位於作為用戶端440的主機裝置250中,則第二處理單元430可以透過主機TCP棧處理單元450來對用戶端440執行IP路由。如果用戶端透過主機裝置250而位於網際網路上,則第二處理單元430可以對第三處理單元461和第四處理單元462執行IP路由。
第三處理單元461和第四處理單元462中的每個可以從第二處理單元430接收由第一處理單元420產生的TCP分段,並且基於由第一處理單元420產生的TCP分段來產生網際網路協定(IP)封包。此外,第三處理單元461和第四處理單元462中的每個可以基於IP封包來產生傳輸框,並且將該傳輸框傳送到網路(即,乙太網路)。
如圖3所示,作為工業標準ADT傳輸層的介面單元330和410可以在串列鏈路的任何一側上實施。這個傳輸層在用於針對串列的小型電腦系統介面(SCSI,small computer system interface)的委員會T10檔中被描述。傳輸層實現鏈路像兩側能夠處理那樣快地運行的方案並且保證資料的無損耗傳輸。
作為改進TCP棧的處理單元320可以存在於嵌入式裝置150上,
並且向存在於嵌入式裝置150中的任何服務提供器311-312給出工業標準TCP介面。為了輸出TCP封包,處理單元320除了使用ADT層而非IP層之外,處理單元320起典型TCP棧的作用。處理單元320不執行TCP校驗求和以保證封包的無損耗傳輸,這緩解了這個計算密集工作的嵌入式裝置150。此外,處理單元320也不對進入的封包執行TCP校驗和測試。這也緩解了這個計算密集工作的嵌入式裝置150。反而,對作為在串列鏈路的主機裝置250上給出的改進TCP校驗元件的處理單元420進行所有TCP校驗求和。因此主機裝置250(通常具有比嵌入式裝置150多得多的計算能力)對TCP校驗求和負責。作為改進TCP校驗元件的處理單元420也對連接到用於主機裝置250的IP路由的處理單元430負責。這意味著可以使用按照工業標準方式的IP路由。嵌入式裝置150可以看起來像在網際網路上的具有其自身IP位址和自身服務組的任何32主機。
儘管嵌入式裝置150的改進TCP棧不執行TCP校驗求和或者TCP校驗和測試,但是作為ADT層的介面單元330和410可以保證無錯誤的傳輸。介面單元330和410可以處理和校正在鏈路上產生的位元錯誤。實質上,由於這是不存在典型TCP假設的可靠的IP層,因此在嵌入式裝置150上的改進TCP棧320的輕便特性。
嵌入式系統具有與其它系統相比更少的輸入/輸出(I/O,input/output)連接和處理資源。本發明的實施例可以包括在嵌入式裝置150和主機裝置250之間的串列連接,所述主機裝置250使用比諸如TCP/IP或者使用者資料包通訊協定/網際網路協定(UDP/IP,user datagram protocol/internet protocol)更少的I/O連接,但是仍然提供對嵌入式系統20的高頻寬存取。此外,嵌入式裝置150不執行TCP校驗和產生或者TCP校驗和校驗,這降低在嵌入式裝置
150的資源限制上的處理負荷。因此,本發明的實施例可以提供管理在嵌入式系統上運行的服務的有利處理,該嵌入式系統在嵌入式系統的I/O限制和處理限制的約束內工作。
由於可以保證嵌入式裝置150為不可能透過嵌入式裝置150轉發IP封包的端點,因此在嵌入式裝置150上不需要封包路由表或者任何類型的IP路由。這也節省相當大的計算資源。
在一些實施例中,為了獲取由報告服務或者監控服務所使用的適當資訊,命令經由主機介面被發送到嵌入式裝置150(例如,SSD)以採集一組工業標準統計數字(例如,智慧計數器)。在本文中的實施例可以透過序列介面(例如,與主機介面相對)來使嵌入式裝置150在網際網路上可見。然後嵌入式裝置150可以是似乎像任何人期待發現的任何其它服務主服務。被寫入諸如Java的任何網際網路語言的特定用戶端能夠連接到嵌入式裝置150的這些驅動器並且透過資料中心中的正常局區域網路(LAN,local area network)來管理它們。
在一些實施例中,嵌入式系統可以包括高速通用非同步接收器/發射器發射器(UART,universal asynchronous receiver/transmitter)。在一些實施例中,TCP授時服務(TCP time service)可以用來在主機裝置250(例如,資料中心)與嵌入式裝置150(例如,SSD)之間使時間同步。這將例如對該裝置來說很有價值以幫助判斷停機時間和壽命。
圖4是示出了根據本公開的實施例的嵌入式系統的TCP/IP模型的示圖。TCP/IP模型可以由圖3中的嵌入式裝置150和主機裝置250和/或由圖1和圖2中的嵌入式裝置100和主機裝置200來執行。
參考圖4,TCP/IP模型可以包括應用層401、傳輸層402、網際網路層403以及網路介面層404。應用層401可以由嵌入式裝置150執行或者實施。傳輸層402可以由嵌入式裝置150和主機裝置250執行或者實施。網際網路層403和網路介面層404可以由主機裝置250執行或者實施。
在步驟470處,嵌入式裝置150的服務提供器311-312中的每個可以提供用於服務的封包。用於諸如SSD的嵌入式裝置150的服務的示例可以包括負載分佈服務、驅動器健康監測器、容量使用監測器、壞塊計數分佈、壽命終止預警服務、驅動器配置服務或者任何類型的智慧計數器採集服務。
在步驟475處,嵌入式裝置150的處理單元320可以起改進TCP棧的作用。詳細地,處理單元320可以產生與用於服務的封包相對應的TCP分段。在一些實施例中,該封包可以被劃分為段,並且TCP分段可以包括封包的段和不具有校驗和值的標頭。
在步驟480處,嵌入式裝置150的介面單元330可以將由處理單元320產生的傳輸控制協定(TCP)分段傳送到主機裝置250。
在步驟485處,主機裝置250的第一處理單元420可以對透過介面單元410從嵌入式裝置150接收到的TCP分段執行TCP校驗求和操作以基於該TCP分段計算校驗和值,並且產生包括具有校驗和值的標頭的新TCP分段。
在步驟490處,主機裝置250的第二處理單元430可以對由第一處理單元420產生的TCP分段執行IP路由。此外,第三處理單元461和第四處理單元462中的每個可以從第二處理單元430接收由第一處理單元420所產生的TCP分段,並且基於由第一處理單元420所產生的TCP分段來產生網際網
路協定(IP)封包。
在步驟495處,主機裝置250的第三處理單元461和第四處理單元462中的每個可以基於該IP封包來產生傳輸框,並且將該傳輸框傳送到網路(例如,乙太網路)。
圖5是圖示根據本公開的實施例的產生TCP分段的操作的示圖。例如,產生TCP分段的操作可以由嵌入式裝置150的處理單元320執行。
參考圖5,處理單元(例如,處理單元320)可以從服務提供器(例如,服務提供器311-312)接收用於服務的封包或者應用層資料510。處理單元可以產生與用於服務的應用層資料510相對應的TCP分段。在一些實施例中,應用層資料510可以被劃分為若干段(段1-段3)520,並且TCP分段530中的每個可以包括資料534的段和不具有校驗和值的標頭532。例如,TCP分段1可以包括段Piece1和標頭Header1,TCP分段2可以包括段Piece2和標頭Header2,以及TCP分段3可以包括段Piece3和標頭Header3。
圖6A和圖6B是圖示根據本公開的實施例的傳輸控制協定(TCP)分段標頭的結構的示圖。例如,圖6A的TCP分段標頭532A可以由嵌入式裝置150的處理單元320產生,並且圖6B的TCP分段標頭532B可以由主機裝置250的處理單元420產生。由於TCP標頭的欄位是眾所周知的,因此將省略關於TCP標頭的欄位的詳細描述。
參考圖6A,TCP分段可以包括不具有校驗和值的標頭532A和資料534。TCP分段標頭532A可以包括源埠號、目標埠號、序號、確認號、長度、旗標、視窗尺寸、緊急指標、保留欄位和選擇欄位。
參考圖6B,TCP分段可以包括具有非校驗和值標頭532B和資
料534。TCP分段標頭532B可以包括源埠號、目標埠號、序號、確認號、長度、旗標、視窗尺寸、TCP校驗和值600、緊急指標、保留欄位和選擇欄位。與TCP分段標頭532A相反,TCP分段標頭532B還包括TCP校驗和值600。
利用在適當位置的這種系統,其可以充分利用工業標準網際網路安全協定、用於多個服務的多個埠以及潛在地限定一整套新產品來在資料中心中管理我們的硬體。
儘管為了理解清楚已經相當詳細地描述前述實施例,但是本發明不限於所提供的細節。存在實施本發明的許多可選擇的方法。所公開的實施例是說明性的而非限制性的。
10:嵌入式系統
100:嵌入式裝置
110:記憶體單元
120:控制器
200:主機裝置
Claims (16)
- 一種嵌入式系統,包括:嵌入式裝置,配置了縮減的處理資源且響應主機裝置的請求提供用於服務的封包,產生包括不具有校驗和值的封包的段和不具有校驗和值的第一標頭的第一傳輸控制協定(TCP,transmission control protocol)分段,以及透過互聯傳送包括封包的段和第一標頭的第一TCP分段,其中為了縮減嵌入式裝置的處理負擔,嵌入式裝置不為封包的段或第一標頭計算任何TCP校驗和,並且所傳送的第一TCP分段不包含校驗和資訊;互聯係在嵌入式裝置和主機裝置之間耦接;以及主機裝置被配置為透過互聯從嵌入式裝置接收第一TCP分段,主機裝置包括一個或多個處理器,其被配置為基於封包的段和第一標頭來產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段、執行網際網路協定(IP,internet protocol)路由,以及基於第二TCP分段來產生IP封包。
- 如請求項1所述的系統,其中,一個或多個處理器中的至少一個還被配置成基於IP封包來產生傳輸框,以及將傳輸框傳送到網路。
- 如請求項1所述的系統,其中,該嵌入式裝置透過包含串列互聯的互聯耦接到主機裝置。
- 如請求項3所述的系統,其中,該串列互聯包括基於自動化/驅動介面傳輸(ADT,automation/drive interface transport)協定的序列介面。
- 如請求項1所述的系統,其中,該嵌入式裝置包括固態驅動器(SSD,solid state drive)。
- 如請求項5所述的系統,其中,該服務包括負載分佈服務、驅動器健康監測器、容量使用監測器、壞塊計數分佈、壽命終止預警服務、或驅動器配置服務中的至少一種智慧計數器採集服務。
- 一種用於操作包括具有縮減的處理資源、主機裝置及在嵌入式裝置和主機裝置之間耦接的互聯的嵌入式裝置的嵌入式系統的方法,該方法包括:透過嵌入式裝置響應主機裝置的請求提供用於服務的封包;透過嵌入式裝置產生包括不具有校驗和值的封包的段和不具有校驗和值的第一標頭的第一傳輸控制協定(TCP)分段,其中為了縮減嵌入式裝置的處理負擔,嵌入式裝置不為封包的段或第一標頭計算任何TCP校驗和;透過嵌入式裝置透過互聯傳送包括封包的段和第一標頭的第一TCP分段,其中所傳送的第一TCP分段不包含校驗和資訊;透過主機裝置透過互聯從嵌入式裝置接收第一TCP分段;基於封包的段和第一標頭而透過主機裝置的一個或多個處理器來產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段;透過主機裝置的一個或多個處理器中的至少一個執行網際網路協定(IP,internet protocol)路由;以及基於第二TCP分段而透過主機裝置的一個或多個處理器中的至少一個來產生IP封包。
- 如請求項7所述的方法,還包括:基於IP封包而透過主機裝置的一個或多個處理器中的至少一個來產生傳輸框;以及透過主機裝置的一個或多個處理器中的至少一個將傳輸框傳送到網路。
- 如請求項7所述的方法,其中,該嵌入式裝置透過包括串列互聯的互聯耦接到主機裝置。
- 如請求項9所述的方法,其中,該串列互聯包括基於自動化/驅動介面傳輸(ADT)協定的序列介面。
- 如請求項7所述的方法,其中,該嵌入式裝置包括固態驅動器(SSD)。
- 如請求項11所述的方法,其中,該服務包括負載分佈服務、驅動器健康監測器、容量使用監測器、壞塊計數分佈、壽命終止預警服務、或驅動器配置服務中的至少一種智慧計數器採集服務。
- 一種透過互聯與具有縮減的處理資源的嵌入式裝置耦接且與網路耦接的主機裝置,包括:介面單元,被配置成透過互聯從嵌入式裝置接收包括響應主機裝置的請求的用於服務的封包的段和第一標頭的第一傳輸控制協定(TCP)分段,其中封包的段和第一標頭中都不包含校驗和值,且封包的段和第一標頭係一起被傳送及接收;TCP校驗器,被配置成基於封包的段和第一標頭來計算校驗和值,以及產生包括封包的段和具有校驗和值的第二標頭的第二TCP分段;IP路由器,被配置成執行網際網路協定(IP)路由,以及基於第二TCP分段來產生網際網路協定(IP)封包;以及IP封包產生器,被配置成基於IP封包來產生傳輸框,以及將傳輸框傳送到網路。
- 如請求項13所述的裝置,其中,該介面單元包括基於自動化/驅動介面傳輸(ADT)協定的序列介面。
- 如請求項13所述的裝置,其中,該嵌入式裝置包括固態驅動器(SSD)。
- 如請求項15所述的裝置,其中,該服務包括負載分佈服務、驅動器健康監測器、容量使用監測器、壞塊計數分佈、壽命終止預警服務、或驅動器配置服務中的至少一種智慧計數器採集服務。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562117200P | 2015-02-17 | 2015-02-17 | |
US62/117,200 | 2015-02-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201639339A TW201639339A (zh) | 2016-11-01 |
TWI705682B true TWI705682B (zh) | 2020-09-21 |
Family
ID=56622420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104517A TWI705682B (zh) | 2015-02-17 | 2016-02-16 | 嵌入式系統及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10291355B2 (zh) |
CN (1) | CN105897689B (zh) |
TW (1) | TWI705682B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160294511A1 (en) * | 2015-03-30 | 2016-10-06 | Qualcomm Incorporated | Reuse of a partially received internet protocol packet in embms |
CN107248903B (zh) * | 2017-07-28 | 2019-10-25 | 西安电子科技大学 | 一种基于fpga的tcp/ip首部校验装置及方法 |
KR102554418B1 (ko) | 2018-10-01 | 2023-07-11 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
CN109831395B (zh) * | 2019-02-27 | 2020-08-07 | 中国科学院软件研究所 | 一种嵌入式设备与主机间底层网络数据传输系统及方法 |
TWI776270B (zh) * | 2020-11-05 | 2022-09-01 | 財團法人資訊工業策進會 | 基於隧道協定的中繼節點與封包封裝方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001039435A2 (en) * | 1999-11-24 | 2001-05-31 | Pluris, Inc. | Apparatus and method for forwarding encapsulated data packets on a network |
US20030076794A1 (en) * | 2001-10-18 | 2003-04-24 | Takeshi Kawasaki | Checksum rewrite device |
US20060050737A1 (en) * | 2004-04-09 | 2006-03-09 | Hon Hai Precision Industry Co., Ltd. | System and method for checking validity of data transmission |
TW200641633A (en) * | 2004-12-22 | 2006-12-01 | Intel Corp | Routing of messages |
US20080219449A1 (en) * | 2007-03-09 | 2008-09-11 | Ball Matthew V | Cryptographic key management for stored data |
US20130346667A1 (en) * | 2012-06-21 | 2013-12-26 | Jonathan Stroud | Serial port access system and method in a computing system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006303765A (ja) * | 2005-04-19 | 2006-11-02 | Seiko Epson Corp | Tcp/ip送信処理回路及びそれを具備する半導体集積回路 |
US8719485B2 (en) | 2008-06-27 | 2014-05-06 | Marvell World Trade Ltd. | Solid-state disk with wireless functionality |
CN101860904B (zh) * | 2009-04-07 | 2012-11-07 | 上海摩波彼克半导体有限公司 | 基于数据包ip头压缩技术实现校验和计算的方法 |
US8726132B2 (en) * | 2010-12-14 | 2014-05-13 | International Business Machines Corporation | Checksum verification accelerator |
US9444914B2 (en) * | 2013-09-16 | 2016-09-13 | Annapurna Labs Ltd. | Configurable parser and a method for parsing information units |
CN104283888A (zh) * | 2014-10-20 | 2015-01-14 | 中国科学技术大学苏州研究院 | 基于数据包多层封装的隐秘通信方法 |
-
2016
- 2016-02-16 US US15/044,997 patent/US10291355B2/en active Active
- 2016-02-16 TW TW105104517A patent/TWI705682B/zh active
- 2016-02-17 CN CN201610090018.4A patent/CN105897689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001039435A2 (en) * | 1999-11-24 | 2001-05-31 | Pluris, Inc. | Apparatus and method for forwarding encapsulated data packets on a network |
US20030076794A1 (en) * | 2001-10-18 | 2003-04-24 | Takeshi Kawasaki | Checksum rewrite device |
US20060050737A1 (en) * | 2004-04-09 | 2006-03-09 | Hon Hai Precision Industry Co., Ltd. | System and method for checking validity of data transmission |
TW200641633A (en) * | 2004-12-22 | 2006-12-01 | Intel Corp | Routing of messages |
US20080219449A1 (en) * | 2007-03-09 | 2008-09-11 | Ball Matthew V | Cryptographic key management for stored data |
US20130346667A1 (en) * | 2012-06-21 | 2013-12-26 | Jonathan Stroud | Serial port access system and method in a computing system |
Also Published As
Publication number | Publication date |
---|---|
CN105897689B (zh) | 2020-10-30 |
US20160241361A1 (en) | 2016-08-18 |
US10291355B2 (en) | 2019-05-14 |
TW201639339A (zh) | 2016-11-01 |
CN105897689A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI705682B (zh) | 嵌入式系統及其方法 | |
US20210248035A1 (en) | Storage device using host memory and operating method thereof | |
US10503679B2 (en) | NVM express controller for remote access of memory and I/O over Ethernet-type networks | |
US10198397B2 (en) | Flow control in remote direct memory access data communications with mirroring of ring buffers | |
US9354991B2 (en) | Locally generated simple erasure codes | |
CN111758090B (zh) | 用于通过网络访问和管理键值数据的系统和方法 | |
US9218240B2 (en) | Error detection and isolation | |
US10419035B2 (en) | Use of multiple cyclic redundancy codes for optimized fail isolation | |
US20060200641A1 (en) | Protecting data transactions on an integrated circuit bus | |
US10846163B1 (en) | Hybrid hardware and software reporting management | |
JP2008269363A (ja) | 記憶制御装置および記憶制御方法 | |
CN111258493B (zh) | 控制器、存储器控制器、存储设备以及操作控制器的方法 | |
KR102210289B1 (ko) | 하드웨어 관리 통신 프로토콜 | |
JP2007533012A (ja) | データ格納のための情報処理と輸送アーキテクチャ | |
CN102291408B (zh) | 对iSCSI协议报文的处理方法及装置 | |
US7073092B2 (en) | Channel adapter and disk array device | |
US11061834B2 (en) | Method and system for facilitating an improved storage system by decoupling the controller from the storage medium | |
US7904758B2 (en) | System, method and apparatus for tracing source of transmission error | |
US20230152988A1 (en) | Storage device and operation method thereof | |
CN108958666A (zh) | 一种数据处理方法及主控芯片 | |
TWI757606B (zh) | 伺服器裝置及其基板管理控制器與可程式邏輯單元之間的通訊協定方法 | |
KR20230094308A (ko) | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 동작 방법 |