国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      控制數(shù)據(jù)處理系統(tǒng)間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的方法和裝置的制作方法

      文檔序號(hào):6477418閱讀:199來源:國知局
      專利名稱:控制數(shù)據(jù)處理系統(tǒng)間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于控制諸如主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信接口的第一和第二數(shù)據(jù)處理系統(tǒng)之間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的方法和裝置,其中數(shù)據(jù)通信接口用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)間傳遞數(shù)據(jù)。
      傳統(tǒng)數(shù)據(jù)處理網(wǎng)絡(luò)包括多個(gè)主計(jì)算機(jī)系統(tǒng)和多個(gè)附加器件,所有附加器件通過諸如以太網(wǎng)體系結(jié)構(gòu)的居間(intervening)網(wǎng)絡(luò)體系結(jié)構(gòu)而互相連接。網(wǎng)絡(luò)體系結(jié)構(gòu)通常包括一個(gè)或多個(gè)數(shù)據(jù)通信交換機(jī)。主計(jì)算機(jī)系統(tǒng)和附加器件各自形成數(shù)據(jù)處理網(wǎng)絡(luò)中的節(jié)點(diǎn)。每個(gè)主計(jì)算機(jī)系統(tǒng)通常包括通過諸如PCI總線體系結(jié)構(gòu)的總線體系結(jié)構(gòu)互相連接的多個(gè)中央處理單元和數(shù)據(jù)存儲(chǔ)器件。網(wǎng)絡(luò)適配器也連接到總線體系結(jié)構(gòu),其用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)處理網(wǎng)絡(luò)中其它節(jié)點(diǎn)之間經(jīng)由網(wǎng)絡(luò)體系結(jié)構(gòu)傳遞數(shù)據(jù)。希望盡可能有效地使主計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)體系結(jié)構(gòu)之間的數(shù)據(jù)傳輸和信息控制變得容易。
      根據(jù)本發(fā)明,提供了一種用于控制第一和第二數(shù)據(jù)處理系統(tǒng)之間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的裝置,該裝置包括描述符表,用于存儲(chǔ)由第一和第二數(shù)據(jù)處理系統(tǒng)訪問的描述符;以及描述符邏輯,用于產(chǎn)生描述符,以存儲(chǔ)在描述符表中,該描述符包括分支描述符,其包括對表中另一個(gè)描述符的鏈接。
      描述符邏輯和描述符表改善了諸如主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信接口的第一和第二數(shù)據(jù)處理系統(tǒng)之間的數(shù)據(jù)流控制的效率,其中所述數(shù)據(jù)通信接口用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間傳遞數(shù)據(jù)。
      由描述邏輯產(chǎn)生的描述符可以包括幀描述符,用于定義要在存儲(chǔ)器中的位置和第二數(shù)據(jù)處理系統(tǒng)之間通信的數(shù)據(jù)分組;以及指針描述符,用于識(shí)別存儲(chǔ)器中的位置。描述符表可以存儲(chǔ)在第一數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中?;蛘撸枋龇砜梢源鎯?chǔ)在第二數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中。描述符表可以包括多個(gè)經(jīng)由其中的分支描述符依次鏈接在一起的描述符列表?;蛘呙枋龇戆ㄑh(huán)描述符列表。
      本發(fā)明擴(kuò)展為這樣的數(shù)據(jù)處理系統(tǒng),其包括具有存儲(chǔ)器的主處理系統(tǒng)、用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間傳遞數(shù)據(jù)的數(shù)據(jù)通信接口、如前所述用于控制主計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器和數(shù)據(jù)通信接口之間的數(shù)據(jù)流的裝置。
      從另一方面看本發(fā)明,提供了一種控制第一和第二數(shù)據(jù)處理系統(tǒng)之間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的方法,該方法包括在描述符表中存儲(chǔ)多個(gè)由第一和第二數(shù)據(jù)處理系統(tǒng)訪問的描述符;以及,由描述符邏輯產(chǎn)生描述符,以存儲(chǔ)在描述符表中,該描述符包括分支描述符,其包括對表中另一個(gè)描述符的鏈接。
      下面將參考附圖,只作為示例,描述本發(fā)明的優(yōu)選實(shí)施例,其中

      圖1是數(shù)據(jù)處理網(wǎng)絡(luò)的例子的方框圖;圖2是數(shù)據(jù)處理網(wǎng)絡(luò)的網(wǎng)絡(luò)接口適配器卡的方框圖;圖3是數(shù)據(jù)網(wǎng)絡(luò)的主計(jì)算機(jī)系統(tǒng)的例子的方框圖;圖4是網(wǎng)絡(luò)適配器卡的芯片上集成系統(tǒng)(ISOC)的例子的方框圖;圖5是ISOC的另一個(gè)方框圖;圖6是表明經(jīng)ISOC的信息流的ISOC的方框圖;圖7是經(jīng)ISOC的邏輯發(fā)送路徑的方框圖;圖8是經(jīng)ISOC的邏輯接收路徑的方框圖;圖9A是循環(huán)描述符表的方框圖;圖9B是已鏈接的描述符表集合的方框圖;圖10是虛擬緩沖器及其物理對應(yīng)緩沖器的方框圖;圖11是完成隊(duì)列的方框圖;圖12是從主機(jī)向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)流的方框圖;圖13是從主機(jī)向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)流的另一個(gè)方框圖;圖14是從網(wǎng)絡(luò)向主機(jī)接收數(shù)據(jù)流的方框圖;以及圖15是從網(wǎng)絡(luò)向主機(jī)接收數(shù)據(jù)流的另一個(gè)方框圖。
      首先參考圖1,體現(xiàn)本發(fā)明的數(shù)據(jù)處理網(wǎng)絡(luò)的例子包括通過諸如InfiniBand網(wǎng)絡(luò)體系結(jié)構(gòu)(InfiniBand是InfiniBand貿(mào)易聯(lián)合會(huì)的商標(biāo))的居間網(wǎng)絡(luò)結(jié)構(gòu)30互相連接的多個(gè)主計(jì)算機(jī)系統(tǒng)10和多個(gè)附加器件20。網(wǎng)絡(luò)體系結(jié)構(gòu)30通常包括多個(gè)數(shù)據(jù)通信交換機(jī)40。主計(jì)算機(jī)系統(tǒng)10和附加器件20各自形成數(shù)據(jù)處理網(wǎng)絡(luò)中的節(jié)點(diǎn)。每個(gè)計(jì)算機(jī)系統(tǒng)10包括通過諸如PCI總線體系結(jié)構(gòu)的總線體系結(jié)構(gòu)70互相連接的多個(gè)中央處理單元(CPU)50和存儲(chǔ)器60。網(wǎng)絡(luò)適配器80也連接到總線體系結(jié)構(gòu),用于在主計(jì)算機(jī)系統(tǒng)10和數(shù)據(jù)處理網(wǎng)絡(luò)中其它節(jié)點(diǎn)間經(jīng)由網(wǎng)絡(luò)體系結(jié)構(gòu)30傳遞數(shù)據(jù)。
      現(xiàn)在參考圖2,在本發(fā)明的具體的優(yōu)選實(shí)施例中,網(wǎng)絡(luò)適配器80包括可插入的選項(xiàng)卡,該卡具有諸如邊緣連接器的連接器,用于可移動(dòng)的插入主計(jì)算機(jī)系統(tǒng)10的總線體系結(jié)構(gòu)70中。選項(xiàng)卡攜帶可經(jīng)由連接器170連接到總線體系結(jié)構(gòu)70的專用集成電路(ASIC)或芯片上集成系統(tǒng)(ISOC)120,一個(gè)或多個(gè)第三級(jí)存儲(chǔ)模塊250連接到ISOC 120,而內(nèi)插器260連接到ISOC120,用于在網(wǎng)絡(luò)體系結(jié)構(gòu)30和ISOC 120的介質(zhì)之間傳遞數(shù)據(jù)。內(nèi)插器260提供到網(wǎng)絡(luò)的物理連接。在本發(fā)明的一些實(shí)施例中,內(nèi)插器260可以實(shí)現(xiàn)在單個(gè)ASIC中。然而,在本發(fā)明的其它實(shí)施例中,內(nèi)插器260可以由多個(gè)元件實(shí)現(xiàn)。例如,如果網(wǎng)絡(luò)30包括光學(xué)網(wǎng)絡(luò),內(nèi)插器260可以包括驅(qū)動(dòng)分離的光學(xué)收發(fā)信機(jī)的重新定時(shí)器。存儲(chǔ)器250可以由SRAM、SDRAM或其組合實(shí)現(xiàn)。在存儲(chǔ)器250的實(shí)現(xiàn)中也可以采用其它形式的存儲(chǔ)器。ISOC 120包括第一和第二存儲(chǔ)器。下面簡短地描述適配器80的存儲(chǔ)器子系統(tǒng)。正如從下面的描述中可以清楚地看到,該配置提供在數(shù)據(jù)處理網(wǎng)絡(luò)上操作的分布式應(yīng)用程序的改善了的性能;改善了的系統(tǒng)可縮放性;與一定范圍的通信協(xié)議的兼容性;以及主計(jì)算機(jī)系統(tǒng)中的減少了的處理要求。更具體地說,該配置允許適配器80與主機(jī)系統(tǒng)10之間不同種類的通信協(xié)議共存。這些協(xié)議可以適應(yīng)各種應(yīng)用程序,使用相同的適配器80,并使用預(yù)定的數(shù)據(jù)結(jié)構(gòu)集合,從而增強(qiáng)主機(jī)和適配器80之間的數(shù)據(jù)傳輸??梢圆⑿写蜷_的應(yīng)用程序信道的數(shù)量由分配給適配器80的存儲(chǔ)器資源的量確定,并且與嵌入適配器的處理功率無關(guān)。從下面的描述可以明白,將多個(gè)元件集成到單個(gè)集成電路芯片元件中的ISOC 120概念有利地最小化了制造成本,并提供可重復(fù)使用的系統(tǒng)構(gòu)件塊。然而,還應(yīng)該明白,在本發(fā)明的其它實(shí)施例中,ISOC 120的部件可以由離散的元件實(shí)現(xiàn)。
      在下面的描述中,術(shù)語幀(Frame)指在主計(jì)算機(jī)系統(tǒng)10和適配器80上運(yùn)行的軟件之間傳輸?shù)臄?shù)據(jù)單元或消息。每個(gè)幀包括幀首標(biāo)和數(shù)據(jù)有效負(fù)載(data payload)。數(shù)據(jù)有效負(fù)載可以包含用戶數(shù)據(jù)、高級(jí)協(xié)議首標(biāo)數(shù)據(jù)、確認(rèn)、流控制或其任何組合。下面將簡短而又詳細(xì)地描述幀首標(biāo)的內(nèi)容。適配器80只處理幀首標(biāo)。適配器80可以將幀分割為較小的分組,其在網(wǎng)絡(luò)體系結(jié)構(gòu)30中更有效地傳送。然而,這樣的分割一般并不變換數(shù)據(jù)有效負(fù)載。
      在本發(fā)明的具體實(shí)施例中,數(shù)據(jù)在網(wǎng)絡(luò)體系結(jié)構(gòu)30中以下面稱其為分組(Packet)的基本單位傳送。每個(gè)分組包括路由信息,其后跟隨著硬件首標(biāo)數(shù)據(jù)和有效負(fù)載數(shù)據(jù)。在本發(fā)明的典型例子中,采用至多1024字節(jié)的分組大小。將更大尺寸的幀分割為1024字節(jié)的分組。應(yīng)該明白,在本發(fā)明的其它實(shí)施例中,可以采用不同的分組大小。
      在本發(fā)明的優(yōu)選實(shí)施例中,經(jīng)由邏輯通信端口體系結(jié)構(gòu)(LCP)激活適配器80和主計(jì)算機(jī)系統(tǒng)10上運(yùn)行的多個(gè)應(yīng)用程序之間的通信。適配器80包括存儲(chǔ)器分級(jí)結(jié)構(gòu),其使得能夠最優(yōu)化對不同內(nèi)部數(shù)據(jù)結(jié)構(gòu)的訪問延遲時(shí)間。下面簡短地描述存儲(chǔ)器分級(jí)結(jié)構(gòu)。在本發(fā)明的優(yōu)選實(shí)施例中,適配器80為去往網(wǎng)絡(luò)體系結(jié)構(gòu)30的出站(TX)數(shù)據(jù)和去往主計(jì)算機(jī)系統(tǒng)10的入站(RX)數(shù)據(jù)提供分離的路徑。每個(gè)路徑包括起自身的數(shù)據(jù)傳輸引擎、首標(biāo)處理邏輯以及網(wǎng)絡(luò)體系結(jié)構(gòu)接口。也將簡短而又詳細(xì)地描述這些路徑。
      下面參考圖3,LCP體系結(jié)構(gòu)為在主計(jì)算機(jī)系統(tǒng)10和適配器80上運(yùn)行的局部消費(fèi)裝置之間的接口定義架構(gòu)。這樣的消費(fèi)裝置的例子包括應(yīng)用程序和線程??梢詫⒂?jì)算機(jī)系統(tǒng)10細(xì)分為用戶應(yīng)用程序空間90和內(nèi)核空間110。LCP體系結(jié)構(gòu)為每個(gè)消費(fèi)裝置提供進(jìn)入網(wǎng)絡(luò)體系結(jié)構(gòu)30的邏輯端口??梢灾苯訌挠脩艨臻g90訪問該端口。在本發(fā)明的具體實(shí)施例中,硬件保護(hù)機(jī)制處理訪問許可。由內(nèi)核空間110在數(shù)據(jù)幀傳輸之前進(jìn)行LCP注冊。LCP體系結(jié)構(gòu)不需要定義通信協(xié)議。相反,其定義應(yīng)用程序和適配器80之間的接口,以傳輸數(shù)據(jù)和控制信息。改為可以由適配器80中執(zhí)行的應(yīng)用程序和程序代碼設(shè)置通信協(xié)議細(xì)節(jié)。可以在適配器80上使用的信道的數(shù)量只受對LCP相關(guān)信息可用的適配器卡80上的存儲(chǔ)量的限制。每個(gè)LCP端口可以是可編程的,以具有特定的特征集合。根據(jù)特定的協(xié)議選擇特征集合,以最好地支持主計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器60和適配器80之間的數(shù)據(jù)傳輸??梢酝瑫r(shí)支持各種通信協(xié)議,每個(gè)協(xié)議使用不同的LCP端口。
      LCP體系結(jié)構(gòu)包括LCP客戶(Client)100、駐留在內(nèi)核空間110中的LCP管理器130、以及一個(gè)或多個(gè)駐留在適配器80中的LCP上下文(Context)140。
      每個(gè)LCP客戶100是連接到LCP端口的單向應(yīng)用程序端點(diǎn)。LCP客戶100可以位于用戶應(yīng)用程序空間90或內(nèi)核空間110中。在操作中,每個(gè)LCP客戶100產(chǎn)生要從存儲(chǔ)器60讀取并由適配器80經(jīng)由TX LCP信道傳輸?shù)拿詈蛿?shù)據(jù),或消費(fèi)由適配器80經(jīng)由RX LCP信道向存儲(chǔ)器60傳輸?shù)臄?shù)據(jù)。
      LCP管理器130是受托(trusted)元件,其為每個(gè)信道的LCP信道分配和重新分配(deallocation)以及其在存儲(chǔ)器60中的讀/寫區(qū)的注冊的請求服務(wù)。LCP管理器130準(zhǔn)許用戶空間應(yīng)用程序使用適配器80的資源,而不損害其它通信操作、應(yīng)用程序、或主計(jì)算機(jī)系統(tǒng)70的操作系統(tǒng)。
      每個(gè)LCP上下文140是適配器80服務(wù)特定LCP客戶100所需要的控制信息的集合。LCP上下文140可以包括諸如可能命令、指針結(jié)構(gòu)、以及緩沖器描述符定義的LCP信道屬性,其在信道的全部存在中不變。LCP上下文140也可以包括對LCP信道的特定LCP服務(wù)信息,例如服務(wù)等待數(shù)據(jù)量和相關(guān)LCP信道的下一訪問地址。LCP上下文140存儲(chǔ)在位于適配器80中的存儲(chǔ)器中,以在適配器80停止對一個(gè)信道的服務(wù),并起動(dòng)對另一個(gè)信道的服務(wù)時(shí),啟動(dòng)快速LCP上下文。
      需要初始化LCP端口的LCP客戶100轉(zhuǎn)向LCP管理器130,并請求分配LCP信道。此時(shí)確定LCP信道屬性,并規(guī)定LCP端口的行為和授權(quán)LCP客戶100聯(lián)合LCP端口進(jìn)行的操作。給LCP客戶100授予地址,其將用于以唯一而且安全的方式訪問適配器80。該地址公知為門鈴地址(DoorbellAddress)。
      LCP管理器130還負(fù)責(zé)注冊主機(jī)存儲(chǔ)器60的區(qū)域,以使得能夠由適配器從虛擬向物理地址轉(zhuǎn)換,并且準(zhǔn)許用戶空間客戶訪問這些主機(jī)存儲(chǔ)器區(qū)域,而不需竄改其它程序。
      在運(yùn)行時(shí)間中,每個(gè)LCP客戶100都可以請求新緩沖器的注冊和先前緩沖器的撤銷注冊。這樣的改變需要一系列LCP客戶100、LCP管理器130、以及適配器80之間的信息交換。
      每個(gè)LCP客戶100和端口與LCP上下文140關(guān)聯(lián),所述LCP上下文140提供適配器80為執(zhí)行命令而對LCP端口發(fā)送的未決請求服務(wù)所需要的所有信息。
      為了初始化LCP客戶100和適配器80之間的存儲(chǔ)器傳輸,并初始化幀的發(fā)送,LCP客戶100準(zhǔn)備持有特定操作的信息的描述符。然后,LCP客戶100對映射到適配器80的門鈴地址進(jìn)行I/O寫。對門鈴地址的寫更新適配器80上的LCP上下文140,添加要執(zhí)行的新的請求。
      適配器80在各種具有未決請求的傳輸LCP端口之間仲裁,并選擇下一個(gè)要服務(wù)的端口。
      一旦接收到數(shù)據(jù),識(shí)別接收到的分組的幀和LCP。產(chǎn)生描述符以定義接收LCP所需要的操作。由適配器80的LCP引擎對這些描述符的執(zhí)行在主計(jì)算機(jī)系統(tǒng)10的存儲(chǔ)器60中分配給LCP信道的適當(dāng)數(shù)據(jù)緩沖器中存儲(chǔ)到來數(shù)據(jù)。
      對于已服務(wù)的LCP信道,適配器裝載相關(guān)的LCP上下文信息,并使用該信息進(jìn)行想要的數(shù)據(jù)傳輸?shù)募?。然后,適配器80繼續(xù)處理所選擇的下一LCP上下文140。
      下面參考圖3,如前所述,ISOC 120包括第一存儲(chǔ)空間220和230以及第二存儲(chǔ)空間240,而適配器80還包括第三級(jí)存儲(chǔ)器250。第一、第二、以及第三存儲(chǔ)空間是適配器80的存儲(chǔ)器子系統(tǒng)的部分。在本發(fā)明的優(yōu)選實(shí)施例中,ISOC 120包括專用于數(shù)據(jù)發(fā)送操作的TX處理器(TX MPC)150和專用于數(shù)據(jù)接收操作的RX處理器(RX MPC)160。在本發(fā)明的具體的優(yōu)選實(shí)施例中,由諸如IBM PowerPC 405 RISC微處理器的精簡指令集計(jì)算(RISC)微處理器實(shí)現(xiàn)處理器150和160。在存儲(chǔ)器子系統(tǒng)210中,除了第一和第二存儲(chǔ)空間,ISOC 120包括與TX處理器150關(guān)聯(lián)的數(shù)據(jù)超高速緩存(cache)180和指令超高速緩存170,以及與RX處理器160相關(guān)的第二數(shù)據(jù)超高速緩存190和第二指令超高速緩存190。三級(jí)之間的差異在于存儲(chǔ)器的尺寸和相關(guān)的訪問時(shí)間。通過簡短的描述可以明白,存儲(chǔ)器子系統(tǒng)210有利于TX處理器150和RX處理器160對指令和數(shù)據(jù)的方便的訪問;可擴(kuò)展性;為了降低制造成本而在TX處理器150和RX處理器160之間的資源共享。
      第一級(jí)存儲(chǔ)空間(M1)220和230包括TX-M1存儲(chǔ)空間220和RX-M1存儲(chǔ)空間230。TX-M1存儲(chǔ)空間220只能由TX處理器150訪問,而RX-M1存儲(chǔ)空間230只能由RX處理器160訪問。在操作中,使用第一級(jí)存儲(chǔ)空間220和230以保存臨時(shí)數(shù)據(jù)結(jié)構(gòu)、首標(biāo)模板(template)、堆棧等。第一級(jí)存儲(chǔ)空間220和230都對零等待狀態(tài)做出反應(yīng)。第一級(jí)存儲(chǔ)空間220和230中每一個(gè)都只連接到處理器150和160中對應(yīng)的一個(gè)的數(shù)據(jù)接口,而不連接到指令接口。這一配置使得能夠在保持對第一級(jí)存儲(chǔ)空間230和240中的數(shù)據(jù)的有效訪問的同時(shí),可超高速緩存的和不可超高速緩存的第一級(jí)存儲(chǔ)區(qū)都可用。
      第二級(jí)存儲(chǔ)空間(M2)240是對處理器150和160、適配器80的其它元件、以及主計(jì)算機(jī)系統(tǒng)10都可用的共享存儲(chǔ)器。因?yàn)榈诙?jí)存儲(chǔ)空間240由更多代理經(jīng)由共享內(nèi)部總線而使用,所以對第二級(jí)存儲(chǔ)空間240的訪問要慢于對第一級(jí)存儲(chǔ)區(qū)220和230的訪問。第三級(jí)存儲(chǔ)空間250也是共享資源。在本發(fā)明的具體實(shí)施例中,適配器80包括計(jì)算機(jī)外圍電路卡,在其上,第一級(jí)存儲(chǔ)空間220和230以及第二級(jí)存儲(chǔ)空間240都集成在與處理器150和160相同的ASIC上。共享存儲(chǔ)空間240和250一般用于不需要快速和高頻訪問周期的數(shù)據(jù)類型。這樣的數(shù)據(jù)類型包括LCP上下文140和虛擬地址轉(zhuǎn)換表。共享存儲(chǔ)空間240和250對處理器150和160的指令和數(shù)據(jù)接口都可訪問。
      適配器80分離地處理數(shù)據(jù)流的發(fā)送和接收。用于發(fā)送和接收路徑的分離的處理器150和160避免了在任務(wù)間切換的開銷,在一個(gè)路徑中與其它路徑隔離了臨時(shí)處理負(fù)荷,并且能更便利地使用兩個(gè)嵌入式處理器來處理到來和外出的數(shù)據(jù)流。下面參考圖5,IS0C 120包括發(fā)送路徑邏輯280和接收路徑邏輯290、以及共享邏輯300。發(fā)送路徑邏輯280包括LCP TX引擎310,用于對每個(gè)LCP信道的細(xì)節(jié)解碼,并取出要執(zhí)行的LCP相關(guān)命令;TX邏輯320,用于控制幀向適配器80的傳輸,前述TX處理器150用于管理TX幀和分組處理;前述第一級(jí)TX存儲(chǔ)器220,用于保存指令和臨時(shí)數(shù)據(jù)結(jié)構(gòu);鏈接邏輯330;以及用于輔助TX處理器150來管理數(shù)據(jù)流和分組處理(例如將幀分割為數(shù)據(jù)分組的路由處理)的邏輯。TX處理器150基于其中處理器只對意外和錯(cuò)誤中斷的只輪詢方案(polling only scheme)連續(xù)地處理任務(wù)。處理器150采用第一級(jí)TX存儲(chǔ)器220來與TX邏輯320通信。接收路徑邏輯290包括鏈接邏輯340;用于在對到來分組的首標(biāo)的處理和將該分組變換或組裝成幀時(shí),輔助前述RX處理器160的硬件;前述RX處理器160,用于RX幀和分組處理;前述第一級(jí)RX存儲(chǔ)器,用于保存指令;RX邏輯350,用于控制幀從網(wǎng)絡(luò)體系結(jié)構(gòu)30的傳輸;以及LCP RX引擎360,用于對每個(gè)LCP信道的細(xì)節(jié)解碼,在主計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器60中的相關(guān)LCP數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)到來數(shù)據(jù),并且在LCP客戶100提供指向空幀緩沖器的指針時(shí),接收和注冊該指針,以備適配器80使用。RX處理器160使用其中RX處理器160只對意外和錯(cuò)誤中斷的只輪詢方案連續(xù)地處理任務(wù)。RX處理器160使用第一級(jí)RX存儲(chǔ)器230來與RX邏輯350通信。
      如前所述,ISOC方案允許減少與適配器80及其中諸如電路板和其它支持模塊的其它元件相關(guān)聯(lián)的制造成本。ISOC方案也提高適配器80的簡單性,從而提高可靠性。有效地使ISOC 120的元件間的連接數(shù)不受限制。所以可以實(shí)現(xiàn)多個(gè)寬的相互連接的路徑。為了減少主計(jì)算機(jī)系統(tǒng)10中的數(shù)據(jù)處理開銷,向和從主機(jī)存儲(chǔ)器60的數(shù)據(jù)傳輸操作絕大多數(shù)由ISOC 120執(zhí)行。ISOC120也對到來和外出分組的首標(biāo)進(jìn)行處理。在發(fā)送期間,ISOC 120建立首標(biāo),并將其發(fā)往網(wǎng)絡(luò)體系結(jié)構(gòu)30。在接收期間,適配器80處理首標(biāo),以便確定其在系統(tǒng)存儲(chǔ)器中的位置。第一級(jí)存儲(chǔ)器220和230是零等待狀態(tài)存儲(chǔ)器,其提供諸如堆棧、模板、表、以及臨時(shí)存儲(chǔ)位置的處理器數(shù)據(jù)空間。在本發(fā)明的具體優(yōu)選實(shí)施例中,從被稱為內(nèi)核(core)的較小的邏輯元件建立發(fā)送路徑邏輯280、接收路徑邏輯290、以及共享邏輯300。使用內(nèi)核一詞是因?yàn)樵辉O(shè)計(jì)為獨(dú)立片段的邏輯,其具有獨(dú)立屬性,使其用于不同應(yīng)用程序。
      如前文中已指出,傳輸路徑邏輯280負(fù)責(zé)處理發(fā)送或輸出幀。由諸如主計(jì)算機(jī)系統(tǒng)10的CPU 50的CPU經(jīng)由總線體系結(jié)構(gòu)70初始化幀傳輸。ISOC120包括總線接口邏輯370,用于與總線體系結(jié)構(gòu)70通信。ISOC 120還包括總線橋接邏輯390,其將總線接口邏輯370連接到ISOC 120的處理器邏輯總線(PLB)390。TX LCP引擎310從主機(jī)存儲(chǔ)器60中取回命令和幀。TX處理器150將每個(gè)幀的首標(biāo)處理為適于在網(wǎng)絡(luò)體系結(jié)構(gòu)30上作為分組發(fā)送的格式。TX邏輯320不作修改的傳輸幀數(shù)據(jù)。鏈接邏輯330將每個(gè)要發(fā)送的分組處理為在網(wǎng)絡(luò)體系結(jié)構(gòu)30上發(fā)送的最終形式。鏈接邏輯330可以包括一個(gè)多個(gè)端口,每一個(gè)都可連接到網(wǎng)絡(luò)體系結(jié)構(gòu)30。
      如前文中已指出,接收路徑邏輯290負(fù)責(zé)處理到來分組。起初,由鏈接邏輯340處理從網(wǎng)絡(luò)體系結(jié)構(gòu)30接收到的分組。鏈接邏輯340以首標(biāo)和有效負(fù)載格式來再造分組。為了確定分組格式及其在主機(jī)存儲(chǔ)器60中的目的地,由RX處理器230處理首標(biāo)。鏈接邏輯340可以包括一個(gè)或多個(gè)端口,每一個(gè)都可連接到網(wǎng)絡(luò)體系結(jié)構(gòu)30。RX LCP引擎負(fù)責(zé)經(jīng)由總線體系結(jié)構(gòu)70向主機(jī)存儲(chǔ)器60傳輸數(shù)據(jù)。
      發(fā)送路徑邏輯280包括TX LCP引擎310和TX處理器220之間的HeaderIn(首標(biāo)入)先入先出存儲(chǔ)器(FIFO)400。接收路徑邏輯包括RX處理器230和RX LCP引擎360之間的HeaderOut(首標(biāo)出)FIFO 410。在TX邏輯320和RX邏輯350中提供了附加的FIFO和隊(duì)列。下面將簡短地描述這些FIFO和隊(duì)列。
      共享邏輯300包括由發(fā)送路徑邏輯280和接收路徑邏輯290共享的所有邏輯元件。這些元件包括前述總線接口邏輯370、總線橋接邏輯380、PLB390、第二級(jí)存儲(chǔ)器240以及用于提供對遠(yuǎn)程第三級(jí)存儲(chǔ)器250的訪問的控制器420??偩€接口邏輯370在總線體系結(jié)構(gòu)70中既作為主設(shè)備又作為從設(shè)備。作為從設(shè)備,總線接口邏輯準(zhǔn)許CPU 50經(jīng)由控制器420訪問第二級(jí)存儲(chǔ)器240、第三級(jí)存儲(chǔ)器250、并訪問ISOC 120的結(jié)構(gòu)寄存器和狀態(tài)寄存器。通??梢杂蒀PU 50、TX處理器150以及RX處理器160來訪問這樣的寄存器。作為主設(shè)備,總線接口邏輯準(zhǔn)許TX LCP引擎310和RX LCP引擎360訪問主計(jì)算機(jī)系統(tǒng)10的存儲(chǔ)器60。在圖5中,“M”表示主設(shè)備連接,而“S”表示從設(shè)備連接。
      現(xiàn)在參考圖6,經(jīng)ISOC 120的分組流通常是對稱的。換句話說,在發(fā)送和接收方向上,流的一般結(jié)構(gòu)都相似??梢哉J(rèn)為ISOC 120包括第一接口440、第一控制邏輯460、處理器邏輯480、第二控制邏輯470、以及第二接口邏輯450。以下述方式處理分組A.在發(fā)送方向上,將信息從總線體系結(jié)構(gòu)70經(jīng)第一接口邏輯引入ISOC120。在接收方向上,將信息從網(wǎng)絡(luò)體系結(jié)構(gòu)30經(jīng)第二接口邏輯450引入ISOC 120。
      B.在發(fā)送方向上,由第一控制邏輯460處理經(jīng)第一接口邏輯440引入ISOC120的信息。在接收方向上,由第二控制邏輯470處理經(jīng)第二接口邏輯450引入ISOC的信息。
      C.在發(fā)送方向上,在第一控制邏輯460對外出幀提取幀首標(biāo),并由處理器邏輯480處理該幀首標(biāo)。處理器邏輯480基于幀首標(biāo)產(chǎn)生對第二控制邏輯470的指令。將外出幀的有效負(fù)載傳到第二接口邏輯470。在接收方向上,在第二控制邏輯470從到來中幀提取幀首標(biāo),并由處理器邏輯480處理該幀首標(biāo)。處理器邏輯480基于幀首標(biāo)產(chǎn)生對第一控制邏輯460的指令。將到來幀的有效負(fù)載傳到第一控制邏輯460。在兩個(gè)方向上,處理器480都不直接處理有效負(fù)載數(shù)據(jù)。
      D.在發(fā)送方向上,第二控制邏輯470根據(jù)從處理器邏輯480接收到的指令對外出有效負(fù)載數(shù)據(jù)打包。在接收方向上,第一控制邏輯460根據(jù)從處理器邏輯480接收到的指令對到來有效負(fù)載數(shù)據(jù)打包。
      E.在發(fā)送方向上,將信息通過第二接口邏輯450經(jīng)由網(wǎng)絡(luò)體系結(jié)構(gòu)30轉(zhuǎn)移到其目的地。在接收方向上,將信息通過第一接口邏輯經(jīng)由總線體系結(jié)構(gòu)70轉(zhuǎn)移到其目的地。
      430展示了對操作在主計(jì)算機(jī)系統(tǒng)10上的軟件的接口。相似地,490和500展示了對操作在處理器輸入和輸出的微碼的接口。
      參考圖7,下面將更詳細(xì)地描述經(jīng)ISOC 120發(fā)送的數(shù)據(jù)幀的流的一個(gè)例子。可以基于ISOC 120內(nèi)信息的各種格式,將ISOC 120劃分為LCP上下文域510、幀域520以及網(wǎng)絡(luò)域530。TX LCP引擎310包括LCP請求FIFO550、直接存儲(chǔ)器存取(DMA)邏輯560、幀邏輯580、以及前述LCP上下文邏輯140。LCP請求FIFO 550、DMA邏輯560、以及LCP TX上下文邏輯590位于LCP上下文域510中。幀邏輯580位于幀域520中。TX邏輯320、第一級(jí)TX存儲(chǔ)空間220、以及TX處理器150跨在幀域520和網(wǎng)絡(luò)域530之間的邊界上。TX鏈接邏輯330位于網(wǎng)絡(luò)域530中。在本發(fā)明的具體實(shí)施例中,HeaderIn FIFO 400與第一級(jí)TX存儲(chǔ)空間220成一整體。一般而言,在主計(jì)算機(jī)系統(tǒng)10上執(zhí)行的應(yīng)用程序創(chuàng)建幀。然后使用適配器80上的TX LCP信道發(fā)送幀。應(yīng)用程序和適配器80之間的信息交換假定了由LCP管理器130進(jìn)行了在先初始化。為了添加LCP服務(wù)請求,LCP客戶100向適配器80通知,預(yù)備執(zhí)行一個(gè)或多個(gè)附加發(fā)送幀。這通過將控制字寫入門鈴(Doorbell)中而進(jìn)行。使用唯一地與LCP端口關(guān)聯(lián)、并被保護(hù)不被其它處理訪問的地址,以這樣的方式分配門鈴地址,即將寫操作轉(zhuǎn)換為在總線體系結(jié)構(gòu)70上的物理寫周期。適配器80檢測寫操作,并通過增加對特定LCP客戶100的先前請求的條目(entry)而將新的請求寫入日志。這是相關(guān)LCP上下文140的部分。同樣更新適配器80的存儲(chǔ)器子系統(tǒng)210中保留的仲裁列表。在簡單的例子中,使用所有具有未決請求的發(fā)送LCP信道之間的前述FIFO方案550仲裁。在為一個(gè)LCP信道服務(wù)的同時(shí),選擇下一個(gè)LCP信道。當(dāng)把對應(yīng)的LCP上下文裝載到TX LCP引擎310中時(shí),服務(wù)周期開始。然后,訪問LCP上下文140,以獲得用于服務(wù)LCP信道的原子(atomic)操作,確定這些操作的參數(shù)。例如,這樣的原子操作可以基于LCP上下文140中記錄的LCP信道屬性。完整的服務(wù)周期通常包括一組由適配器80進(jìn)行的活動(dòng),用于取回并執(zhí)行多個(gè)由LCP客戶100創(chuàng)建的原子描述符。在TX LCP信道的情況下,服務(wù)周期一般包括將多個(gè)幀從主機(jī)存儲(chǔ)器60讀取到適配器80的存儲(chǔ)器子空間210中。一旦結(jié)束,在適配器80的存儲(chǔ)器子系統(tǒng)210中更新所有需要修改的LCP上下文信息(換句話說,LCP服務(wù)信息)。一般說來,適配器80在LCP服務(wù)周期內(nèi)進(jìn)行的第一個(gè)動(dòng)作是取出下一個(gè)要處理的描述符。
      由ISOC 120處理發(fā)送幀通常包括下述步驟A.取出后續(xù)LCP端口幀描述符。
      要取出的下一描述符的地址作為LCP信道的上下文140的部分存儲(chǔ)。適配器80從主機(jī)存儲(chǔ)器60讀取描述符,并基于LCP信道屬性對描述符解碼。描述符定義新幀首標(biāo)的大小、數(shù)據(jù)有效負(fù)載的大小、以及這些項(xiàng)目的位置。
      B.將虛擬地址轉(zhuǎn)換為物理地址。
      如果在應(yīng)用程序中通過虛擬存儲(chǔ)地址引用數(shù)據(jù)緩沖器,地址需要經(jīng)過地址轉(zhuǎn)換的附加處理。在這種情況下,將應(yīng)用程序使用的虛擬地址轉(zhuǎn)換為適配器80在其訪問主機(jī)存儲(chǔ)器60時(shí)可使用的物理地址。這通過監(jiān)控頁面邊界交叉,并使用由LCP管理器130寫入適配器80的存儲(chǔ)子系統(tǒng)210的物理頁面位置信息而完成。從虛擬到物理的轉(zhuǎn)換處理在由未受托的LCP客戶100創(chuàng)建描述符表的情況下,還起到安全措施的作用。這避免了對主機(jī)存儲(chǔ)器60的不相關(guān)區(qū)域的未授權(quán)訪問。
      C.讀取幀首標(biāo)。
      使用物理尋址,從主機(jī)存儲(chǔ)器60的緩沖器中讀取TX幀的首標(biāo)和有效負(fù)載數(shù)據(jù)。然后,將首標(biāo)存儲(chǔ)在TX HeaderIn FIFO 400中。當(dāng)完成首標(biāo)取出時(shí),適配器80設(shè)置內(nèi)部標(biāo)記,其指示可以由TX處理器150初始化對首標(biāo)的處理。
      D.讀取幀數(shù)據(jù)。
      從主機(jī)存儲(chǔ)器60讀取有效負(fù)載數(shù)據(jù),并由適配器80將其存儲(chǔ)在數(shù)據(jù)FIFO 570中。圖7所示數(shù)據(jù)FIFO 570位于TX邏輯320中。然而,數(shù)據(jù)FIFO 570也可以與第一級(jí)TX存儲(chǔ)空間320為一整體。繼續(xù)數(shù)據(jù)讀取事務(wù),直到所有要發(fā)送的數(shù)據(jù)都已存儲(chǔ)在適配器80的存儲(chǔ)器子系統(tǒng)210中。在完成讀操作之后,將狀態(tài)指示返回LCP客戶100。注意,一旦將首標(biāo)讀入HeaderIn FIFO 400,就可以開始對首標(biāo)的處理。不需要等待讀取全部數(shù)據(jù)。
      E.處理幀首標(biāo)。
      由TX處理器150進(jìn)行首標(biāo)處理。首標(biāo)處理與協(xié)議相關(guān),并涉及LCP體系結(jié)構(gòu)外部的協(xié)議信息。TX處理器150運(yùn)行TX協(xié)議首標(biāo)微碼,并訪問已在協(xié)議和路由初始化序列期間存儲(chǔ)到適配器80的存儲(chǔ)器子系統(tǒng)210中的路由表和其它相關(guān)信息。當(dāng)TX處理器150接收到指示,表明有新首標(biāo)在HeaderIn FIFO 400中等待時(shí),其開始首標(biāo)處理。首標(biāo)處理產(chǎn)生一個(gè)或多個(gè)分組首標(biāo),其為用于在網(wǎng)絡(luò)體系結(jié)構(gòu)30上遞送分組的格式,并且其包括路由信息。如果有效負(fù)載大小大于網(wǎng)絡(luò)體系結(jié)構(gòu)30所準(zhǔn)許的最大分組尺寸,則通過產(chǎn)生幾個(gè)分組首標(biāo)來分割有效負(fù)載,所述每個(gè)分組首標(biāo)各自連同原始有效負(fù)載數(shù)據(jù)的連續(xù)數(shù)據(jù)段使用,以形成要在網(wǎng)絡(luò)體系結(jié)構(gòu)30上通信的分組。
      F.排列要發(fā)送的分組首標(biāo)。
      由TX處理器150將為分組定義首標(biāo)字的數(shù)量和數(shù)據(jù)字的數(shù)量的命令和分組首標(biāo)本身寫到第一級(jí)存儲(chǔ)空間220的TX HeaderOut FIFO 540中。
      G.合并要發(fā)送的分組首標(biāo)和分組數(shù)據(jù)。
      只要命令在HeaderOut FIFO 540中就緒,就觸發(fā)分組在網(wǎng)絡(luò)體系結(jié)構(gòu)30上的發(fā)送,而數(shù)據(jù)FIFO 570包含足夠的數(shù)據(jù)來完成相關(guān)分組的發(fā)送。可以向每個(gè)分組的首標(biāo)和數(shù)據(jù)添加循環(huán)冗余校驗(yàn)(CRC)。將每個(gè)完成的分組經(jīng)由TX鏈接邏輯330傳輸?shù)骄W(wǎng)絡(luò)體系結(jié)構(gòu)30。
      當(dāng)在網(wǎng)絡(luò)體系結(jié)構(gòu)30上發(fā)送了所有幀數(shù)據(jù)時(shí),借助于一個(gè)或多個(gè)分組完成了對每個(gè)幀的發(fā)送處理。對于每個(gè)由適配器80處理的幀,可以經(jīng)由第二LCP客戶100向應(yīng)用程序返回狀態(tài)。該狀態(tài)指示從主機(jī)存儲(chǔ)器60到適配器80的幀數(shù)據(jù)傳輸?shù)耐瓿桑瑤瑐鬏斪陨淼耐瓿?,或傳輸狀態(tài)的其它級(jí)。
      在任何時(shí)候,適配器80可以同時(shí)執(zhí)行下述一些或全部動(dòng)作選擇要服務(wù)的下一個(gè)LCP;初始化對LCP信道A的服務(wù);為LCP信道B的最后一幀執(zhí)行數(shù)據(jù)的DMA取回;為LCP信道C處理幀首標(biāo)和分段;以及由LCP信道D創(chuàng)建發(fā)送分組。
      現(xiàn)在,參考圖8,只作為示例描述由使用RX LCP端口的應(yīng)用程序進(jìn)行的數(shù)據(jù)幀接收。ISOC 120的操作可以根據(jù)LCP支持的協(xié)議的類型而改變。應(yīng)用程序和適配器80之間的信息交換假定由LCP管理器130進(jìn)行的在先初始化。RX LCP引擎360包括LCP分配邏輯620、LCP上下文邏輯610以及DMA邏輯630,其全都位于LCP域520中。RX處理器160、第一級(jí)RX存儲(chǔ)空間230以及RX邏輯350都跨在幀域520和網(wǎng)絡(luò)域530的邊界上。RX鏈接邏輯340和分組輔助邏輯600位于網(wǎng)絡(luò)域530中。在本發(fā)明的具體實(shí)施例中,HeaderOut FIFO 410位于第一級(jí)RX存儲(chǔ)空間230。由ISOC 120從網(wǎng)絡(luò)體系結(jié)構(gòu)30接收到的幀被寫到主機(jī)存儲(chǔ)器60的LCP客戶緩沖器中。由LCPRX確定存儲(chǔ)緩沖器的可用性,并指示到適配器80以插入到來數(shù)據(jù)幀。與前述向發(fā)送路徑邏輯280通知準(zhǔn)備好要發(fā)送的新幀的方式相似,LCP客戶100通過寫入ISOC 120上的接收門鈴提供緩沖器。分配門鈴寄存器地址,以便將寫操作轉(zhuǎn)換為在總線體系結(jié)構(gòu)70上的物理寫周期。適配器80檢測寫操作,并通過增加特定LCP RX客戶100的可用字條目的數(shù)量而將新提供空白存儲(chǔ)區(qū)寫入日志。可用字計(jì)數(shù)是相關(guān)LCP上下文140的部分。只要應(yīng)用程序完成對緩沖器內(nèi)的接收到的幀的處理,其寫入門鈴。寫周期指示新近可用存儲(chǔ)空間中的字?jǐn)?shù)。將LCP上下文內(nèi)的計(jì)數(shù)增加該數(shù)量。從網(wǎng)絡(luò)體系結(jié)構(gòu)30接收到的分組可以是將由適配器80組裝到主機(jī)存儲(chǔ)器60中相連的空間中的較大的幀的部分。ISOC 120對接收到的幀的處理一般包括下述步驟A.分離分組首標(biāo)和數(shù)據(jù)RX鏈接邏輯340將來自網(wǎng)絡(luò)體系結(jié)構(gòu)30的信息轉(zhuǎn)換為分組流。由RX鏈接邏輯340處理每個(gè)接收到的分組,以分離分組首標(biāo)和有效負(fù)載數(shù)據(jù)。將首標(biāo)推進(jìn)到第一級(jí)RX存儲(chǔ)空間230中的RX HeaderIn FIFO 640中。將有效負(fù)載數(shù)據(jù)推進(jìn)到RX邏輯350中的RX數(shù)據(jù)FIFO 650中。
      也可以在第一級(jí)RX存儲(chǔ)空間230中實(shí)現(xiàn)RX數(shù)據(jù)FIFO 650。
      B.將分組首標(biāo)解碼,并產(chǎn)生LCP幀首標(biāo)將分組首標(biāo)解碼,以提供指示分組所屬幀的ID、有效負(fù)載大小以及幀數(shù)據(jù)大小的字段。一旦為RX HeaderIn FIFO 640讀取了分組首標(biāo),就向RX處理器160發(fā)送指示。RX處理器處理分組首標(biāo)信息,并產(chǎn)生與LCP相關(guān)的命令,其包括傳輸分組數(shù)據(jù)所需信息。這樣的信息包括分組地址和長度。在首標(biāo)處理的末尾,將一個(gè)描述符或一組描述符寫入LCP RXHeaderOut FIFO 410,并觸發(fā)指示。
      C.在RX LCP上下文內(nèi)傳輸數(shù)據(jù)由RX LCP引擎360從RX HeaderOut FIFO 410取出描述符,然后解碼。描述符包括適配器80的存儲(chǔ)子系統(tǒng)210中要傳輸?shù)臄?shù)據(jù)的LCP號(hào)、分組地址、分組數(shù)據(jù)長度以及源地址。RX LCP引擎340使用LCP上下文信息創(chuàng)建要寫入主機(jī)存儲(chǔ)器60中的目標(biāo)物理地址(或者,如果頁面被交叉則是多個(gè)地址),并初始化DMA傳輸,以寫數(shù)據(jù)。
      D.ISOC DMA事務(wù)
      ISOC 120的目的在于通過選擇適當(dāng)?shù)目偩€命令并進(jìn)行可能的最長脈沖,最優(yōu)化總線體系結(jié)構(gòu)70上的事務(wù)。
      在任何時(shí)候,適配器80可以同時(shí)執(zhí)行下述一些或全部動(dòng)作處理LCP信道X的緩沖器分配;初始化LCP信道A的入站數(shù)據(jù)寫服務(wù);執(zhí)行LCP信道B的數(shù)據(jù)的DMA存儲(chǔ);處理朝向LCP信道C的分組的幀組裝;以及接收LCP信道D的分組。
      為了最小化有關(guān)RX處理器160和TX處理器150的幀處理開銷,分組輔助邏輯600包括幀分割邏輯、CRC與校驗(yàn)和計(jì)算邏輯、以及組播處理邏輯。
      現(xiàn)在詳細(xì)描述TX及RX LCP引擎310及360與主機(jī)10之間的數(shù)據(jù)流。TX和RX LCP端口都使用存儲(chǔ)緩沖器來傳輸數(shù)據(jù)和指向這樣的存儲(chǔ)緩沖器的描述符結(jié)構(gòu)。描述符結(jié)構(gòu)用于管理數(shù)據(jù)提供裝置和數(shù)據(jù)消費(fèi)裝置之間的數(shù)據(jù)緩沖器,并返回由數(shù)據(jù)提供裝置使用的空存儲(chǔ)緩沖器。描述符基于物理或虛擬地址指向存儲(chǔ)緩沖器。
      TX LCP信道負(fù)責(zé)從主機(jī)存儲(chǔ)器60到ISOC 120的緩沖器的數(shù)據(jù)傳輸。邏輯的其它層負(fù)責(zé)將來自ISOC 120的緩沖器的數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)30。RX LCP信道負(fù)責(zé)將從網(wǎng)絡(luò)30接收到的數(shù)據(jù)傳輸?shù)街鳈C(jī)存儲(chǔ)器60。
      TX和RX LCP引擎310和360能夠處理相對大量的LCP信道。每個(gè)LCP信道具有一組包含對其特定的全部信息的參數(shù)。該信息包括信道構(gòu)造、當(dāng)前情況和狀態(tài)。在信道初始化期間由LCP管理器130設(shè)置與信道關(guān)聯(lián)的LCP上下文140。在信道操作期間,只由ISOC 120更新LCP上下文140的內(nèi)容。在適配器80的存儲(chǔ)器子系統(tǒng)210內(nèi)的上下文表中保存LCP上下文140。根據(jù)LCP號(hào)進(jìn)行對LCP信道的LCP上下文140的訪問。LCP RX和TX信道使用不同的LCP上下文結(jié)構(gòu)。
      數(shù)據(jù)緩沖器是主機(jī)10的存儲(chǔ)器60中的釘住(pinned)區(qū)域。發(fā)送緩沖器保持要發(fā)送的數(shù)據(jù)。TX LCP引擎310將位于這些緩沖器中的數(shù)據(jù)移動(dòng)到ISOC120的內(nèi)部緩沖器中。由RX LCP引擎360將從網(wǎng)絡(luò)30接收到的到來數(shù)據(jù)移動(dòng)到主機(jī)10的存儲(chǔ)器60中的緩沖器中。緩沖器的所有權(quán)在主機(jī)10的軟件和ISOC 120中之間變換。有關(guān)LCP TX信道的事件的順序如下A.主機(jī)10中的軟件在主機(jī)10的存儲(chǔ)器60中準(zhǔn)備具有要發(fā)送的數(shù)據(jù)的緩沖器;
      B.軟件通知ISOC 120緩沖器中的數(shù)據(jù)已發(fā)送準(zhǔn)備就緒;C.ISOC 120從緩沖器讀取數(shù)據(jù);以及D.ISOC 120對主機(jī)10中的軟件識(shí)別已被讀取并可以由主機(jī)10中的軟件重新使用的緩沖器,以傳輸新的數(shù)據(jù)。
      有關(guān)LCP RX信道的事件的順序如下A.主機(jī)10中的軟件準(zhǔn)備ISOC 120可向其中寫入接收到的數(shù)據(jù)的緩沖器;B.軟件通知ISOC 120在主機(jī)的存儲(chǔ)器60中空緩沖器已準(zhǔn)備就緒;C.ISOC 120向緩沖器寫數(shù)據(jù);以及D.ISOC 120對主機(jī)10中的軟件識(shí)別已填滿接收數(shù)據(jù)并可以由軟件處理的緩沖器。
      當(dāng)軟件準(zhǔn)備將由ISOC 120使用的緩沖器時(shí),經(jīng)由門鈴寄存器跟蹤緩沖器信息。使用狀態(tài)更新或經(jīng)完成隊(duì)列向軟件返回涉及ISOC 120所使用的緩沖器的信息。對于TX LCP信道,緩沖器包括由TX LCP引擎310傳輸?shù)絀SOC120中、并被處理以變?yōu)橐粋€(gè)或多個(gè)要在網(wǎng)絡(luò)30上發(fā)送的分組的數(shù)據(jù)和首標(biāo)信息。由ISOC 120的TX處理器150使用首標(biāo),來產(chǎn)生要在網(wǎng)絡(luò)30上發(fā)送的分組的首標(biāo)。對于RX LCP信道,由主機(jī)10中的軟件對適配器80分配空緩沖器。適配器80用接收到的分組填滿該緩沖器。
      描述符已定義對ISOC 120和主機(jī)10中的軟件都已知的數(shù)據(jù)結(jié)構(gòu)。軟件使用描述符向ISOC 120傳輸控制信息。根據(jù)希望的功能,控制信息可以是幀描述符、指針描述符、或分支描述符的形式。軟件中和ISOC 120中的描述符邏輯根據(jù)要采取的控制措施(control measure)產(chǎn)生并修改描述符。將簡短地描述這樣的措施。幀描述符包括對分組的描述(例如數(shù)據(jù)長度、首標(biāo)長度等)。指針描述符包括對數(shù)據(jù)位置的描述。分支描述符包括對描述符位置的描述(例如描述符的鏈接列表)。描述符中的信息用于由主機(jī)10中的軟件控制由TX和RX LCP引擎310和360進(jìn)行的數(shù)據(jù)移動(dòng)操作。用于處理幀以產(chǎn)生TX分組首標(biāo)的信息位于幀的首標(biāo)中。參考圖9A,可以以單一表700提供描述符,而LCP上下文140指向表700的頭部。參考圖9B,也可以以已鏈接的描述符表720-740的結(jié)構(gòu)布置描述符。在LCP信道初始化之后,LCP上下文140指向該結(jié)構(gòu)中第一描述符表720的頭部。使用分支描述符750-770產(chǎn)生表720-740的鏈接列表,其中描述符表720-740的末尾的分支描述符750-770指向另一表720-740的起點(diǎn)。返回參考圖9A,也可以使用分支描述符產(chǎn)生循環(huán)緩沖器,其中表700的末端的分支描述符710指向同一表700的起點(diǎn)。在接收路徑中也可以使用循環(huán)緩沖器。在這種情況下,初始化LCP 140上下文以指向緩沖器的頭部。當(dāng)ISOC 120到達(dá)其末尾時(shí),緩沖器被繞回。主機(jī)10中的軟件可以將描述符寫到主機(jī)10中的存儲(chǔ)器60中(對于接收和發(fā)送路徑)或?qū)懙竭m配器80的存儲(chǔ)器250中(只對于發(fā)送路徑)。將描述符寫入適配器80的存儲(chǔ)器子系統(tǒng)210的涉及主機(jī)10中的軟件的I/O操作,并占用適配器80的存儲(chǔ)器子系統(tǒng)210。將描述符寫入主機(jī)80的存儲(chǔ)器60需要適配器80訪問主機(jī)10的存儲(chǔ)器60,只要其讀新的描述符。由LCP管理器130為每個(gè)LCP信道單獨(dú)定義軟件描述符的位置。根據(jù)系統(tǒng)性能最優(yōu)化來定義描述符的位置。描述符提供了隊(duì)列結(jié)構(gòu)的靈活性。
      RX和TX LCP引擎310和360使用地址來訪問描述符表中的描述符,并訪問數(shù)據(jù)緩沖器。地址既可以是物理地址,也可以是虛擬地址。物理地址一詞描述ISOC 120可以,照現(xiàn)在的樣子,為總線70驅(qū)動(dòng)的地址。術(shù)語虛擬地址描述非物理的地址,并由軟件或微碼使用。虛擬地址必須經(jīng)歷映射,以便產(chǎn)生物理地址。TX和RX LCP引擎310和360使用的地址可以具有如下不同的來源LCP信道上下文140中的指針;由在主機(jī)10上運(yùn)行的軟件準(zhǔn)備的描述符中的指針;由RX處理器160準(zhǔn)備的描述符中的指針;以及由TX處理器150準(zhǔn)備的描述符中的指針(用于返回完成消息)。指針可以指向描述符或數(shù)據(jù)緩沖器??梢詫X和RX LCP引擎310和360使用的每個(gè)地址任意地映射到在總線70上作為物理地址使用的新地址。由TX和RX LCP引擎310和360進(jìn)行地址映射。ISOC 120使用本地存儲(chǔ)器210保持轉(zhuǎn)換表。在存儲(chǔ)器注冊期間,LCP管理器130將轉(zhuǎn)換表寫入適配器80。地址映射使得能夠?qū)彌_器或描述符表使用虛擬尋址。虛擬尋址使得能夠管理物理上位于多于一個(gè)物理頁面中的虛擬緩沖器。地址映射也使得主機(jī)10能夠直接與使用虛擬地址的應(yīng)用程序工作,而不需要對軟件的轉(zhuǎn)換處理器。
      參考圖10,其中展示了緩沖器880的映像800,其出現(xiàn)在主機(jī)10的軟件中。還展示了地址的物理映射810,其用于訪問主機(jī)10中的存儲(chǔ)器60。虛擬指針820指向緩沖器中的位置。該例子中的緩沖器是占用主機(jī)10的存儲(chǔ)器60中幾個(gè)不連續(xù)頁面840-870的虛擬緩沖器。LCP引擎310和360通過經(jīng)由轉(zhuǎn)換表830轉(zhuǎn)換地址來進(jìn)行映射。轉(zhuǎn)換表保持指向每個(gè)從虛擬緩沖器880映射的物理緩沖器840-870的頭部的物理地址指針。適配器80中的地址映射允許了當(dāng)映射主機(jī)10中存儲(chǔ)器60中的描述符和數(shù)據(jù)緩沖器時(shí)的靈活性。適配器80中的地址映射還使得能夠直接連接到使用虛擬地址的軟件緩沖器,而不需要主機(jī)10中的軟件來將地址轉(zhuǎn)換為物理地址。
      適配器80寫到主機(jī)的存儲(chǔ)器60中的每個(gè)分組具有與其關(guān)聯(lián)的狀態(tài)。該狀態(tài)使得適配器80和主機(jī)10中的軟件之間能夠同步。該狀態(tài)可用于指示分組的不同可靠等級(jí)。ISOC 120提供下述狀態(tài)寫回(write back)發(fā)送DMA完成(Transmit DMA Completion)指示已將TX分組中的數(shù)據(jù)讀入適配器80中;可靠發(fā)送(Reliable Transmission)被返回,以指示網(wǎng)絡(luò)30中數(shù)據(jù)發(fā)送已完成;接收DMA完成(Receive DMA Completion)指示接收數(shù)據(jù)向存儲(chǔ)器60的傳輸已完成;以及可靠接收(Reliable Reception)指示網(wǎng)絡(luò)30中的目標(biāo)節(jié)點(diǎn)接收到了發(fā)送分組。
      TX幀描述符包括2字節(jié)狀態(tài)字段。狀態(tài)寫回意味著事務(wù)狀態(tài)被回寫到描述符中。該狀態(tài)包括可以由主機(jī)10中的軟件查詢的完成比特。當(dāng)主機(jī)10中的軟件發(fā)現(xiàn)一組完成比特時(shí),其重新使用與幀描述符定義的幀關(guān)聯(lián)的緩沖器。
      由RX LCP信道實(shí)現(xiàn)完成隊(duì)列。完成隊(duì)列使用的LCP信道具有可以由任何RX LCP信道實(shí)現(xiàn)的所有靈活性和屬性。TX和RX處理器150和160產(chǎn)生狀態(tài)寫回,以指示可靠發(fā)送、可靠接收、接收DMA完成、或發(fā)送DMA完成。在不同的情況下使用不同的涉及幀的指示。例如,在可靠發(fā)送的情況下,是TX處理器150。讀取指示分組發(fā)送狀態(tài)的內(nèi)部寄存器。在可靠接收的情況下,RX處理器160獲得完成指示,作為包括確認(rèn)的接收分組。在接收DMA完成的情況下,RX處理器160使用幀完成信息。在發(fā)送DMA完成的情況下,TX處理器150指示適配器80中接收到了要發(fā)送的幀??梢杂蓡蝹€(gè)TX或RX LCP信道使用完成隊(duì)列,或由多個(gè)信道共享完成隊(duì)列。適配器80中的微碼通過將幀描述符初始化為RX LCP引擎360的命令隊(duì)列來更新狀態(tài)隊(duì)列。參考圖11,經(jīng)由包括完成隊(duì)列920的完成狀態(tài)LCP 900,將狀態(tài)傳輸?shù)街鳈C(jī)10的存儲(chǔ)器60。完成隊(duì)列900是連續(xù)的(要么是物理的要么是虛擬的),并且位于主機(jī)10的存儲(chǔ)器60中。例如可以在連續(xù)緩沖器中保存完成隊(duì)列。完成隊(duì)列中的條目930最好具有固定大小。每個(gè)條目擁有指針940,其指向與接收LCP 910關(guān)聯(lián)的緩沖器950的頭部。緩沖器950中充滿了與完成狀態(tài)關(guān)聯(lián)的分組960。
      TX軟件/適配器信號(hào)交換包括TX LCP端口和完成RX LCP端口。每個(gè)LCP發(fā)送信道使用下述數(shù)據(jù)結(jié)構(gòu)門鈴條目,作為存儲(chǔ)映射地址實(shí)現(xiàn),通知適配器80增加處理描述符和數(shù)據(jù)的請求。每項(xiàng)處理具有為門鈴訪問使用的進(jìn)入單頁面存儲(chǔ)映射地址的唯一的訪問權(quán)。
      適配器存儲(chǔ)空間210中的LCP上下文條目,包含LCP屬性和狀態(tài)字段。
      發(fā)送描述符的結(jié)構(gòu)。該結(jié)構(gòu)可以跨越主機(jī)10的存儲(chǔ)器60中的多個(gè)物理頁面。如果為描述符使用了虛擬尋址,則使用轉(zhuǎn)換表來將一個(gè)頁面移動(dòng)到下一個(gè)頁面。如果為描述符使用了物理尋址,則使用分支描述符來將一個(gè)頁面移動(dòng)到下一個(gè)頁面。發(fā)送描述符包含狀態(tài)字段,其可以在向適配器80傳輸所有與描述符相關(guān)的數(shù)據(jù)之后更新。
      發(fā)送數(shù)據(jù)緩沖器,釘在主機(jī)10的存儲(chǔ)器60中,由指針描述符指向其。如果為數(shù)據(jù)緩沖器使用虛擬尋址,則轉(zhuǎn)換表將指針轉(zhuǎn)換為適配器80使用的物理地址,以訪問主機(jī)10中的存儲(chǔ)器60。
      適配器存儲(chǔ)空間210中的轉(zhuǎn)換表和保護(hù)塊,用于地址映射。
      參考圖12,發(fā)送分組流程包括,在步驟1000,主機(jī)10中的軟件1020用要發(fā)送的數(shù)據(jù)填充緩沖器1030。在步驟1010,軟件1020更新描述符1040。描述符1040可以在主機(jī)10的存儲(chǔ)器60中,或在適配器80的存儲(chǔ)空間210中。在步驟1050,軟件1020呼叫(ring)門鈴,以通知適配器80新數(shù)據(jù)發(fā)送準(zhǔn)備就緒。在步驟1060,適配器80管理來自不同LCP信道的請求之間的仲裁。當(dāng)一信道在仲裁中獲勝時(shí),則適配器80讀取新的描述符1040。在步驟1070,適配器80讀取數(shù)據(jù)。在步驟1080,向網(wǎng)絡(luò)30發(fā)送數(shù)據(jù)。在步驟1090,在描述符1040或在完成隊(duì)列中更新狀態(tài)。
      當(dāng)訪問數(shù)據(jù)緩沖器時(shí),TX LCP信道可以使用地址轉(zhuǎn)換。在這種情況下,數(shù)據(jù)緩沖器由多個(gè)存儲(chǔ)頁面組成。就該處理而言,這些存儲(chǔ)頁面在連續(xù)的虛擬存儲(chǔ)空間中。然而,就適配器80而言,這些存儲(chǔ)頁面可以在不連續(xù)的物理存儲(chǔ)空間中。完成狀態(tài)結(jié)構(gòu)包含指示已發(fā)送的幀的狀態(tài)的信息。這作為單獨(dú)的LCP信道而實(shí)現(xiàn)。作為每個(gè)幀的第一個(gè)描述符的幀描述符具有任選狀態(tài)字段,其可以在向適配器80傳輸幀之后更新。
      參考圖13,在發(fā)送LCP信道流程的例子中,描述符1100位于主機(jī)10的存儲(chǔ)器60中。訪問描述符1110和存儲(chǔ)分組1120的緩沖器1110需要經(jīng)過位于適配器80中的轉(zhuǎn)換表1130的地址轉(zhuǎn)換。緩沖器1110使用主機(jī)10中的軟件的虛擬地址空間中的連續(xù)空間。由兩類描述符描述每個(gè)幀1120幀描述符1140,提供涉及分組的信息;和指針描述符1150,其指向保持?jǐn)?shù)據(jù)1120的緩沖器1110。每個(gè)分組包括數(shù)據(jù)有效負(fù)載1170,在同一緩沖器1180中,其前面是首標(biāo)1160。
      對門鈴的寫事務(wù)1190更新適配器80可用的字1200的數(shù)量。這一信息存儲(chǔ)在LCP上下文140中。發(fā)送LCP上下文140包括指針1210,其指向擁有要發(fā)送的數(shù)據(jù)的緩沖器1110的頭部。當(dāng)LCP信道贏得了ISOC 120的內(nèi)部信道仲裁時(shí),ISOC 120根據(jù)LCP上下文140中的指針1210讀取LCP信道的描述符。對LCP信道的緩沖器1110和描述符1100,使用位于適配器80的存儲(chǔ)器子系統(tǒng)210中的轉(zhuǎn)換表1130,將虛擬地址轉(zhuǎn)換成物理地址。在存儲(chǔ)緩沖器的注冊期間,由LCP管理器140更新轉(zhuǎn)換表1130。ISOC 120從緩沖器1110向適配器80讀取數(shù)據(jù)和幀首標(biāo)。然后,在ISOC 1320上,由用于網(wǎng)絡(luò)30的首標(biāo)替換幀首標(biāo)1160。然后,將分組首標(biāo)和對應(yīng)的數(shù)據(jù)發(fā)送的網(wǎng)絡(luò)30。
      RX LCP端口用于從ISOC 120向由主機(jī)10上運(yùn)行的軟件應(yīng)用程序使用的存儲(chǔ)器60傳輸?shù)絹頂?shù)據(jù)。TX LCP信道完全通過由主機(jī)10上的軟件初始化的描述符控制。RX LCP信道使用來自主機(jī)10上的軟件和ISOC 120兩者描述符。由ISOC 120初始化的描述符用于控制LCP信道操作,以定義接收到的幀在主機(jī)10的存儲(chǔ)器60中的目的地。由主機(jī)10中的軟件初始化的描述符可以用于定義未通過轉(zhuǎn)換表中的映射定義緩沖器的緩沖器位置。為了實(shí)現(xiàn)主機(jī)10的軟件和適配器80之間的信息交換,最好使用兩個(gè)LCP信道RXLCP信道,用于處理接收到的到來數(shù)據(jù)結(jié)構(gòu);和RX LCP信道,用于處理完成狀態(tài)隊(duì)列。適配器80使用完成狀態(tài)來發(fā)信號(hào)通知主機(jī)10中的軟件向主機(jī)10的存儲(chǔ)器60的幀傳輸已完成。向順序地址中的完成隊(duì)列結(jié)構(gòu)中插入條目。每個(gè)完成狀態(tài)條目包含由適配器80標(biāo)記,并由主機(jī)10中的軟件集中(pool)的字段,以檢驗(yàn)已從適配器80向主機(jī)10中的軟件傳輸條目所有權(quán)。一個(gè)或多個(gè)RX LCP信道可以使用相同的完成狀態(tài)隊(duì)列。由ISOC 120執(zhí)行RX LCP信道對完成狀態(tài)隊(duì)列的共享。
      RX LCP信道需要指示到來分組的目的地址的信息。ISOC 120具有兩種用于尋找空緩沖器位置的尋址方法直接尋址模式,參考不使用指針描述符來指出緩沖器的LCP信道。
      由ISOC 120中的微碼定義或從上下文140中讀取目的地址。
      間接尋址模式,參考維護(hù)描述符結(jié)構(gòu)中指向數(shù)據(jù)緩沖器的指針的LCP信道。描述符最好位于主機(jī)10的存儲(chǔ)器60中。
      直接尋址大大減少了到來分組通過適配器80的處理的延遲時(shí)間。然而,其需要由LCP管理器130注冊存儲(chǔ)緩沖器,包括存儲(chǔ)有關(guān)適配器80的虛擬向物理轉(zhuǎn)換信息。主機(jī)10中的軟件向信道門鈴寫入,以指示添加到可以由該信道使用的空緩沖器的字的數(shù)量。在直接模式中,使用下述步驟來確定目的緩沖器的地址A.驅(qū)動(dòng)地址A作為對LCP引擎的命令。
      B.(可選的)將地址A映射到地址A’。
      C.地址A’(如果執(zhí)行了步驟B)或A(如果沒有執(zhí)行步驟B)是目的緩沖器的基地址。
      在間接模式中,適配器80使用描述符來發(fā)現(xiàn)數(shù)據(jù)緩沖器的地址。描述符由主機(jī)10中的軟件來管理。描述符最好位于主機(jī)10的存儲(chǔ)器60中。術(shù)語“間接”用于強(qiáng)調(diào)適配器80讀取附加信息來定義目的地址。適配器80在運(yùn)行時(shí)期訪問該信息。間接尋址減少了存儲(chǔ)轉(zhuǎn)換表所需的適配器80中的存儲(chǔ)量n。通常,描述符位于主機(jī)10的存儲(chǔ)器60中。在間接模式中,使用下述步驟來確定目的緩沖器的地址A.驅(qū)動(dòng)地址A作為對LCP引擎的命令。
      B.(可選的)將地址A映射到地址A’。
      C.地址A’(如果執(zhí)行了步驟B)或A(如果沒有執(zhí)行步驟B)是指針描述符的地址。
      D.從描述符中讀取指向緩沖器的指針,地址B。
      E.(可選的)將地址B映射到地址B’。
      F.地址B’(如果執(zhí)行了步驟E)或B(如果沒有執(zhí)行步驟E)是目的緩沖器的基地址。
      每個(gè)RX LCP信道使用下述數(shù)據(jù)結(jié)構(gòu)門鈴入口,作為存儲(chǔ)映射地址實(shí)現(xiàn),通知適配器80有附加數(shù)據(jù)或描述符可用于適配器80寫分組數(shù)據(jù)。
      適配器80的存儲(chǔ)空間210中的LCP上下文條目,包含LCP屬性、情形、結(jié)構(gòu)和狀態(tài)字段。
      指向存儲(chǔ)器的描述符,用于在間接模式下使用。
      主機(jī)10的存儲(chǔ)器60中連續(xù)虛擬地址中的緩沖器。
      適配器80的存儲(chǔ)空間210中的轉(zhuǎn)換表和保護(hù)塊,用于地址映射。
      接收分組的流程取決于下述特性直接還是間接尋址模式。
      對于間接模式,描述符位于主機(jī)10的存儲(chǔ)器60中。
      對于直接模式,在訪問描述符期間可以或不可以使用地址映射。
      在訪問緩沖器期間可以或不可以使用地址映射。
      對于間接模式,在訪問描述符期間可以或不可以使用地址保護(hù)。
      在訪問緩沖器期間可以或不可以使用地址保護(hù)。
      在LCP信道初始化期間,為每個(gè)LCP信道設(shè)置這些特性,作為信道的上下文140的部分。
      參考圖14,接收分組的流程包括,在步驟1300,由主機(jī)10中的軟件1310為接收到的數(shù)據(jù)準(zhǔn)備空緩沖器1320。在步驟1330,在直接模式下,主機(jī)10中的軟件1310更新描述符1340。描述符1340位于主機(jī)10的存儲(chǔ)器60中。在步驟1350,主機(jī)10中的軟件呼叫門鈴,以向適配器80通知空緩沖器空間。對于間接模式,門鈴提供指示新描述符1340的信息。對于直接模式,門鈴提供指示附加的自由緩沖空間的信息。在這一級(jí),適配器80已準(zhǔn)備好從網(wǎng)絡(luò)30向主機(jī)10的存儲(chǔ)器60傳輸接收數(shù)據(jù)。只要主機(jī)10中的軟件1310給RX LCP信道添加空緩沖器1320,就重復(fù)步驟1300、1330以及1350。ISOC120為每個(gè)接收到的分組重復(fù)下述步驟。在步驟1360,適配器80接收數(shù)據(jù)。在步驟1370,在間接模式下,適配器80讀取指向空數(shù)據(jù)緩沖器1320的位置的描述符1340。在步驟1380,將數(shù)據(jù)和首標(biāo)寫入數(shù)據(jù)緩沖器1340中。在步驟1390,在完成隊(duì)列中更新狀態(tài)。
      參考圖15,在接收LCP信道流程的例子中,沒有使用指針描述符。此外,沒有使用轉(zhuǎn)換表。數(shù)據(jù)緩沖器1400使用利用緩沖器1400的主機(jī)10中的軟件的物理地址空間中的連續(xù)空間。將首標(biāo)和數(shù)據(jù)有效負(fù)載都寫到緩沖器1400中。對門鈴的寫事務(wù)1410更新可由適配器80使用的數(shù)據(jù)空間。該信息存儲(chǔ)在LCP上下文140中。接收/完成LCP上下文140包括指向緩沖器1400的指針1420和用于寫新的數(shù)據(jù)/完成條目的到下一個(gè)/當(dāng)前的地址的偏移1430。當(dāng)適配器980接收到分組時(shí),其將偏移1430增加到下一個(gè)分組的位置,并更新可用數(shù)據(jù)空間。一旦完成幀接收、一旦幀超時(shí)、或?qū)τ谄渌魏涡枰獜腖CP客戶100了解的幀事件,就將完成條目1440添加到完成LCP1450。完成條目1440包含LCP客戶100在LCP數(shù)據(jù)緩沖器1400中給幀定位所需要的所有信息。主機(jī)10中的軟件使用完成條目1440中的字段來識(shí)別其已被授予對完成條目1440的所有權(quán)。
      ISOC 120準(zhǔn)許LCP信道用于在適配器80的存儲(chǔ)器子系統(tǒng)210和主機(jī)10的存儲(chǔ)器60之間移動(dòng)數(shù)據(jù)。為了從主機(jī)10的存儲(chǔ)器60向適配器80傳輸數(shù)據(jù),使用了發(fā)送信道。為了從適配器80向主機(jī)10的存儲(chǔ)器60傳輸數(shù)據(jù),使用了接收信道。當(dāng)要從主機(jī)10的存儲(chǔ)器60向適配器80傳輸數(shù)據(jù)時(shí),幀描述符包括ISOC 120的總線340上的目的地址。該地址定義幀數(shù)據(jù)有效負(fù)載的目的地。分組首標(biāo)以平常的方式傳輸。這使得能夠?qū)⒈砗痛a裝載到ISOC 120的存儲(chǔ)空間中。為了使用接收信道從ISOC 120的存儲(chǔ)空間向主機(jī)10的存儲(chǔ)器60傳輸數(shù)據(jù),由RX處理器160初始化描述符。該描述符包括既指示主機(jī)10的存儲(chǔ)器60中的目的地址又指示源地址的信息。
      在前面描述的本發(fā)明的優(yōu)選實(shí)施例中,適配器80經(jīng)由總線體系結(jié)構(gòu)70連接到主計(jì)算機(jī)系統(tǒng)10的存儲(chǔ)器60和CPU 50。然而,在本發(fā)明的其它實(shí)施例中,可以將適配器80集成到主計(jì)算機(jī)系統(tǒng)10中,而不需依靠總線體系結(jié)構(gòu)70。例如,在本發(fā)明的其它實(shí)施例中,適配器80可以經(jīng)由連接到主機(jī)存儲(chǔ)器60的存儲(chǔ)控制器來集成到主計(jì)算機(jī)系統(tǒng)中。
      此外,在前面描述的本發(fā)明的優(yōu)選實(shí)施例中,以可插適配器卡的形式實(shí)現(xiàn)適配器80,以插入主計(jì)算機(jī)系統(tǒng)10。然而,應(yīng)該明白,在本發(fā)明的其它實(shí)施例中,適配器80的不同實(shí)現(xiàn)也是可能的。例如,適配器80可以與CPU 50和存儲(chǔ)器60一起位于主計(jì)算機(jī)系統(tǒng)的主板上。
      權(quán)利要求
      1.一種用于控制第一和第二數(shù)據(jù)處理系統(tǒng)之間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的裝置,該裝置包括描述符表,用于存儲(chǔ)由第一和第二數(shù)據(jù)處理系統(tǒng)訪問的多個(gè)描述符;以及描述符邏輯,用于產(chǎn)生描述符,以存儲(chǔ)在描述符表中,該描述符包括分支描述符,而分支描述符包括到表中另一個(gè)描述符的鏈接。
      2.如權(quán)利要求1所述的裝置,其特征在于由描述符邏輯產(chǎn)生的描述符包括幀描述符,用于定義要在存儲(chǔ)器中的位置和第二數(shù)據(jù)處理系統(tǒng)之間通信的數(shù)據(jù)分組;以及指針描述符,用于識(shí)別存儲(chǔ)器中的位置。
      3.如權(quán)利要求1或2所述的裝置,其特征在于描述符表存儲(chǔ)在第一數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中。
      4.如前述任何一個(gè)權(quán)利要求所述的裝置,其特征在于描述符表存儲(chǔ)在第二數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中。
      5.如前述任何一個(gè)權(quán)利要求所述的裝置,其特征在于描述符表包括多個(gè)經(jīng)由其中的分支描述符依次鏈接在一起的描述符列表。
      6.如權(quán)利要求5之前任何一個(gè)權(quán)利要求所述的裝置,其特征在于描述符表包括循環(huán)描述符列表。
      7.如前述任何一個(gè)權(quán)利要求所述的裝置,其特征在于第一數(shù)據(jù)處理系統(tǒng)包括主計(jì)算機(jī)系統(tǒng)。
      8.如前述任何一個(gè)權(quán)利要求所述的裝置,其特征在于第二數(shù)據(jù)處理系統(tǒng)包括用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)通信的數(shù)據(jù)通信接口。
      9.一種數(shù)據(jù)處理系統(tǒng),包括主機(jī)處理系統(tǒng),其具有存儲(chǔ)器;數(shù)據(jù)通信接口,用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)通信;如前述任何權(quán)利要求所述的裝置,用于控制主計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器和數(shù)據(jù)通信接口之間的數(shù)據(jù)流。
      10.一種控制第一和第二數(shù)據(jù)處理系統(tǒng)之間經(jīng)由存儲(chǔ)器的數(shù)據(jù)流的方法,該方法包括在描述符表中存儲(chǔ)多個(gè)由第一和第二數(shù)據(jù)處理系統(tǒng)訪問的描述符;以及由描述符邏輯產(chǎn)生描述符,以存儲(chǔ)在描述符表中,該描述符包括分支描述符,而分支描述符包括到表中另一個(gè)描述符的鏈接。
      11.如權(quán)利要求10所述的方法,包括由描述符邏輯產(chǎn)生,幀描述符,用于定義要在存儲(chǔ)器中的位置和第二數(shù)據(jù)處理系統(tǒng)之間通信的數(shù)據(jù)分組;以及指針描述符,用于識(shí)別存儲(chǔ)器中的位置。
      12.如權(quán)利要求10或11所述的方法,包括在第一數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中存儲(chǔ)描述符表。
      13.如權(quán)利要求10至12中任何一個(gè)所述的方法,包括在第二數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器中存儲(chǔ)描述符表。
      14.如權(quán)利要求10至12中任何一個(gè)所述的方法,包括通過經(jīng)由其中的分支描述符依次鏈接多個(gè)描述符列表,形成描述符表。
      15.如權(quán)利要求10至14中任何一個(gè)所述的方法,其特征在于第一數(shù)據(jù)處理系統(tǒng)包括主計(jì)算機(jī)系統(tǒng)。
      16.如權(quán)利要求10至15中任何一個(gè)所述的方法,其特征在于第二數(shù)據(jù)處理系統(tǒng)包括用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)通信的數(shù)據(jù)通信接口。
      全文摘要
      描述了一種用于控制在主計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器和用于在主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)通信的數(shù)據(jù)通信接口之間的數(shù)據(jù)流的裝置。該裝置包括描述符表,用于存儲(chǔ)由主計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)通信接口訪問的多個(gè)描述符。描述符邏輯產(chǎn)生描述符,以存儲(chǔ)在描述符表中。描述符包括分支描述符,分支描述符包括到表中另一個(gè)描述符的鏈接。
      文檔編號(hào)G06F9/46GK1488104SQ01822405
      公開日2004年4月7日 申請日期2001年1月31日 優(yōu)先權(quán)日2001年1月31日
      發(fā)明者喬拉·比蘭, 塔爾·索斯泰姆, 喬拉 比蘭, 索斯泰姆 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1