專利名稱:簡(jiǎn)化的硬件網(wǎng)絡(luò)適配器和通信方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明涉及計(jì)算機(jī)與網(wǎng)絡(luò)之間的適配器、接口和連接。作為一個(gè)具體的示例,本發(fā)明是按照計(jì)算機(jī)與網(wǎng)絡(luò)間的一種適配器和一種通信方法描述的,其中,所述計(jì)算機(jī)網(wǎng)絡(luò)根據(jù)一個(gè)工業(yè)標(biāo)準(zhǔn)協(xié)議,比如IEEE 802.3或者其擴(kuò)展運(yùn)行。
2.相關(guān)技術(shù)的描述本發(fā)明總體涉及一種用于將一個(gè)計(jì)算機(jī)(在這里被稱作客戶計(jì)算機(jī))連接到一個(gè)網(wǎng)絡(luò)的適配器。本發(fā)明將結(jié)合一個(gè)為目前使用最普通的網(wǎng)絡(luò)配置(通常稱作一個(gè)EthernetTM網(wǎng)絡(luò))所設(shè)計(jì)的特定實(shí)施來描述和解釋本發(fā)明。這種類型的網(wǎng)絡(luò)通常包括執(zhí)行IEEE 802.3標(biāo)準(zhǔn),或者執(zhí)行關(guān)于該標(biāo)準(zhǔn)的變化、修改或改進(jìn)的那些網(wǎng)絡(luò)。為了便于說明,所有這些網(wǎng)絡(luò)都被稱作IEEE 802.3網(wǎng)絡(luò),盡管該稱謂不夠精確。這里所涉及的網(wǎng)絡(luò)提供了一個(gè)理解本發(fā)明的框架,如用于這些網(wǎng)絡(luò)開發(fā)的適配器或接口控制器。
一個(gè)局域網(wǎng)的諸多客戶計(jì)算機(jī)經(jīng)常通過一個(gè)公共物理鏈路,比如同軸電纜、未屏蔽雙絞線或屏蔽雙絞線連接在一起。客戶計(jì)算機(jī)將信息按幀單位發(fā)送到物理鏈路上,所述的幀具有多個(gè)協(xié)議規(guī)定的數(shù)據(jù)結(jié)構(gòu)的一種結(jié)構(gòu),和具有最小幀長(zhǎng)和最大幀長(zhǎng)范圍內(nèi)的數(shù)據(jù)量。最簡(jiǎn)格式的IEEE 802.3協(xié)議僅允許一個(gè)客戶計(jì)算機(jī)在任何獨(dú)特的物理鏈路上發(fā)送一次信息。如果兩個(gè)客戶計(jì)算機(jī)同時(shí)向物理鏈路提供數(shù)據(jù),或者在十分接近的時(shí)間提供數(shù)據(jù),致使在兩個(gè)消息信號(hào)之間產(chǎn)生干擾,則使該數(shù)據(jù)惡化并且必須丟棄該惡化的數(shù)據(jù)。這種事件被稱作碰撞,并且必須由客戶計(jì)算機(jī)檢測(cè)。IEEE 802.3網(wǎng)絡(luò)使用載波檢測(cè)多路接入/碰撞檢測(cè)(CSMA/CD)管理對(duì)物理鏈路的接入。在客戶計(jì)算機(jī)向物理鏈路發(fā)送一個(gè)消息之前,客戶計(jì)算機(jī)檢測(cè)載波信號(hào)是否出現(xiàn)在物理鏈路上。如果載波信號(hào)出現(xiàn)在物理鏈路上,則在發(fā)送消息之前,客戶計(jì)算機(jī)等待發(fā)送,直至該載波信號(hào)不存在以及物理鏈路變得可用。
一旦客戶計(jì)算機(jī)確定物理鏈路是可用的,該客戶計(jì)算機(jī)就向物理鏈路發(fā)送消息,使其在網(wǎng)絡(luò)上傳送。該客戶計(jì)算機(jī)監(jiān)視物理鏈路,以檢測(cè)在物理鏈路上發(fā)送消息的同時(shí)可能發(fā)生的任何碰撞。在后續(xù)消息進(jìn)行時(shí)段期間(在該期間發(fā)送計(jì)算機(jī)等待該消息到達(dá)其目的地),發(fā)送計(jì)算機(jī)持續(xù)監(jiān)視發(fā)送之后的碰撞。在傳送持續(xù)至少一個(gè)對(duì)應(yīng)于最小幀長(zhǎng)的時(shí)段之前,客戶計(jì)算機(jī)應(yīng)當(dāng)檢測(cè)碰撞,客戶計(jì)算機(jī)應(yīng)當(dāng)連續(xù)發(fā)送一個(gè)信號(hào),有時(shí)將這種情形稱作一個(gè)阻塞序列??蛻粲?jì)算機(jī)隨后暫停一個(gè)預(yù)定的隨機(jī)時(shí)間量,并且試圖獲得對(duì)物理鏈路的接入以便再次發(fā)送數(shù)據(jù)。試圖接入物理鏈路的每個(gè)客戶計(jì)算機(jī)執(zhí)行一個(gè)相似的補(bǔ)償算法,不同的是,隨機(jī)地分配等待時(shí)間,使單個(gè)客戶計(jì)算機(jī)獲得對(duì)物理鏈路的接入,而其它的等候計(jì)算機(jī)依次接入網(wǎng)絡(luò)。
信息通常被組織成在EthernetTM或者其它類型的CSMA/CD網(wǎng)絡(luò)上傳送的多個(gè)幀。
圖1示出了用于EthernetTM幀的數(shù)據(jù)的幀結(jié)構(gòu),圖2示出了根據(jù)標(biāo)準(zhǔn)的IEEE 802.3定義的一個(gè)幀的結(jié)構(gòu)。這兩種類型的網(wǎng)絡(luò)使用了一個(gè)由1和0的交替模式組成的前同步,以通知接收站一個(gè)幀到達(dá)。Ethernet前同步(圖1)還包括一個(gè)附加字節(jié),它是在IEEE 802.3網(wǎng)絡(luò)中定義的幀字節(jié)字段的起始字節(jié)的等同物。幀字節(jié)的起始字節(jié)(圖2中SOF)用兩個(gè)連續(xù)的“1”位結(jié)束,并且用來使與物理鏈路連接的站的幀同步接收。
這些網(wǎng)絡(luò)的信息的組幀都包括了消息的目的地地址和源地址。目的地地址可以是一個(gè)單個(gè)目標(biāo)計(jì)算機(jī)(單點(diǎn)傳送)、一組計(jì)算機(jī)(多點(diǎn)傳送)或網(wǎng)絡(luò)上的所有計(jì)算機(jī)(廣播)。源地址是特定傳送計(jì)算機(jī)。EthernetTM幀包括一個(gè)識(shí)別接收消息的一個(gè)上層應(yīng)用的協(xié)議的類型字段。該字段不出現(xiàn)在用于IEEE 802.3網(wǎng)絡(luò)的幀上,并且由指定消息中的數(shù)據(jù)的字節(jié)數(shù)的一個(gè)長(zhǎng)度字段替代。兩個(gè)幀結(jié)構(gòu)提供了一個(gè)在可能的長(zhǎng)度范圍內(nèi)的任意長(zhǎng)度的數(shù)據(jù)字段,其后是幀檢驗(yàn)序列(FCS),它是一個(gè)四字節(jié)的循環(huán)冗余檢驗(yàn)值。該FCS由發(fā)送計(jì)算機(jī)產(chǎn)生,并且由檢驗(yàn)損壞幀的接收裝置重新計(jì)算。
在CSMA/CD網(wǎng)絡(luò)上傳送數(shù)據(jù)幀的客戶計(jì)算機(jī)使用一個(gè)網(wǎng)絡(luò)接口控制器執(zhí)行載波檢測(cè)、碰撞檢測(cè)以及數(shù)據(jù)傳送和接收控制等其它方面的工作。數(shù)據(jù)傳送控制包括生成幀格式和計(jì)算FCS字節(jié)。數(shù)據(jù)接收控制包括幀的檢測(cè)、檢查目的地地址以確定該消息是否用于該計(jì)算機(jī)、以及執(zhí)行CRC或其它幀檢驗(yàn)處理以確定幀是否有效。可以執(zhí)行有關(guān)幀的其它方式的分析,或者當(dāng)數(shù)據(jù)幀中或接收操作中存在誤差時(shí)必須執(zhí)行其它方式的分析。例如,如果在傳送期間檢測(cè)到一個(gè)差錯(cuò),則必須重新發(fā)送信息。所有的這些處理是眾所周知的,并且在普通適配器或控制器中執(zhí)行,該適配器或控制器將客戶計(jì)算機(jī)鏈接到局域CSMA/CD網(wǎng)絡(luò)。
網(wǎng)絡(luò)接口控制器被實(shí)施為一個(gè)集成電路,例如被實(shí)施為一個(gè)專用集成電路(ASIC)。圖3示意性地圖示了美國(guó)專利第5,872,920號(hào)描述的一個(gè)ASIC中以太網(wǎng)控制器的一個(gè)配置的示例。網(wǎng)絡(luò)控制器ASIC 10連接主計(jì)算機(jī)系統(tǒng)的總線20,并且連接屬于網(wǎng)絡(luò)物理鏈路30的一部分的雙絞線或同軸電纜。信息由收發(fā)信機(jī)40經(jīng)物理接口發(fā)送和接收,或者經(jīng)一個(gè)輔助單元接口42發(fā)送和接收。經(jīng)物理鏈路30發(fā)送的信息由編碼器44編碼,解碼器46解碼從物理鏈路接收的信息。通常,Manchester編碼和解碼用于IEEE 802.3網(wǎng)絡(luò)。
控制器50可以是一個(gè)微控制器或其它類型的處理器。通常提供控制器50作為ASIC 10中的核心,它使用合適的發(fā)送控制52和接收控制54程序或狀態(tài)機(jī)器控制發(fā)送和接收操作。這些程序處理發(fā)送和接收來自CSMA/CD網(wǎng)絡(luò)的數(shù)據(jù)所需的各種數(shù)據(jù)控制操作,包括例如處理物理媒介上的碰撞的差錯(cuò)條件,以及必要時(shí)重新發(fā)送惡化的數(shù)據(jù)。期望實(shí)施可應(yīng)用的標(biāo)準(zhǔn),比如IEEE 802.3的主要功能被實(shí)施在控制器50中。控制器50的輸入和輸出數(shù)據(jù)由發(fā)送FIFO 56和接收FIFO 58緩沖。主機(jī)接口60管理主計(jì)算機(jī)的通信,包括向主計(jì)算機(jī)的總線20供應(yīng)數(shù)據(jù)。通過改寫或更新EEPROM 62中存儲(chǔ)的數(shù)據(jù)集或程序來完成數(shù)據(jù)供應(yīng),以更新主機(jī)接口60。這些電路的細(xì)節(jié)和實(shí)施的功能已經(jīng)在美國(guó)專利第5,872,920號(hào)中描述,這里作為參考引用。
應(yīng)當(dāng)理解的是,盡管圖3的網(wǎng)絡(luò)接口被實(shí)施為一個(gè)單個(gè)ASIC,但其它配置也是公用的。例如,由于用于一個(gè)特定網(wǎng)絡(luò)的物理實(shí)施(包括驅(qū)動(dòng)磁盤、數(shù)模轉(zhuǎn)換電路和模數(shù)轉(zhuǎn)換電路)可以有很多種,因此經(jīng)常需要提供編碼器、解碼器、收發(fā)信機(jī)以及專用芯片中物理鏈路的接口的其它方面。這個(gè)結(jié)構(gòu)可以被實(shí)施為一個(gè)獨(dú)特的PHY芯片,允許有較高的靈活性等級(jí),它通常比更多集成的單芯片網(wǎng)絡(luò)接口控制器方案更經(jīng)濟(jì)有效。在提供獨(dú)特PHY芯片的實(shí)施中,通常是在第二芯片上提供網(wǎng)絡(luò)控制器的其它方式,一個(gè)媒體訪問控制器(MAC)芯片。圖3中所示的網(wǎng)絡(luò)控制器的MAC包括具有其程序的控制器或處理器50、緩沖存儲(chǔ)器,以及在大多數(shù)情況下包括主機(jī)接口60。
已經(jīng)做出相當(dāng)多的努力增加集成電路網(wǎng)絡(luò)接口控制器內(nèi)設(shè)置的功能,比如增加圖3所示的ASIC 10內(nèi)設(shè)置的功能。例如,附加功能和靈活性已經(jīng)做到網(wǎng)絡(luò)接口控制器芯片中,以適應(yīng)網(wǎng)絡(luò)通信標(biāo)準(zhǔn)的改進(jìn)或修改。目前已經(jīng)對(duì)基礎(chǔ)IEEE 802.3技術(shù)的較高速度變換給予了特別關(guān)注。
圖1表示以太網(wǎng)的一個(gè)幀結(jié)構(gòu);圖2表示根據(jù)IEEE 802.3標(biāo)準(zhǔn)的網(wǎng)絡(luò)的一個(gè)幀結(jié)構(gòu);圖3表示一個(gè)網(wǎng)絡(luò)接口控制芯片,在該芯片上提供一個(gè)高級(jí)功能;圖4表示本發(fā)明的一個(gè)方面的結(jié)構(gòu)概況;圖5表示本發(fā)明的網(wǎng)絡(luò)控制器的一個(gè)特定優(yōu)選實(shí)施;圖6表示將一個(gè)客戶計(jì)算機(jī)鏈接到一個(gè)網(wǎng)絡(luò)的圖5所示的網(wǎng)絡(luò)接口控制器;圖7表示一個(gè)優(yōu)選的寄存器組內(nèi)諸多寄存器的地址和功能,該優(yōu)選的寄存器組被設(shè)置在圖5所示的控制器中;圖8表示圖7所示的寄存器組的以太網(wǎng)數(shù)據(jù)寄存器的結(jié)構(gòu)和功能;圖9表示圖7所示的寄存器組的字節(jié)計(jì)數(shù)寄存器的結(jié)構(gòu)和功能;
圖10表示用于寫操作的圖7所示的寄存器組的命令/狀態(tài)寄存器的結(jié)構(gòu)和功能;圖11表示用于讀操作的圖7所示的寄存器組的命令/狀態(tài)寄存器的結(jié)構(gòu)和功能;圖12表示圖7所示的寄存器組的MII(媒體獨(dú)立接口)寄存器的結(jié)構(gòu)和功能。
優(yōu)選實(shí)施例的概述本發(fā)明的優(yōu)選實(shí)施例提供了一種簡(jiǎn)化的控制器,該控制器更適合于一個(gè)低成本、網(wǎng)絡(luò)可兼容的計(jì)算機(jī)。通過提供一個(gè)相對(duì)簡(jiǎn)單的接口結(jié)構(gòu),和在主計(jì)算機(jī)的處理器內(nèi)實(shí)施更多的網(wǎng)絡(luò)接口控制功能,本發(fā)明的該優(yōu)選實(shí)施例提供了網(wǎng)絡(luò)接口的低成本、高靈活性的技術(shù)方案。
本發(fā)明的一個(gè)方面是提供了一種計(jì)算機(jī)通信系統(tǒng),它具有一個(gè)至少連接一個(gè)發(fā)送數(shù)據(jù)線路的發(fā)送緩沖器。該發(fā)送緩沖器接收來自主計(jì)算機(jī)的數(shù)據(jù),并且在經(jīng)過發(fā)送數(shù)據(jù)線路向數(shù)據(jù)網(wǎng)絡(luò)的物理鏈路發(fā)送數(shù)據(jù)之前暫時(shí)存儲(chǔ)數(shù)據(jù)。一個(gè)接收緩沖器連接至少一個(gè)接收數(shù)據(jù)線路,該接收緩沖器適合于經(jīng)接收數(shù)據(jù)線路接收來自數(shù)據(jù)網(wǎng)絡(luò)的物理鏈路的數(shù)據(jù),并且在向計(jì)算機(jī)提供數(shù)據(jù)之前暫時(shí)存儲(chǔ)數(shù)據(jù)。此外,還提供了一個(gè)通信寄存器的陣列。該陣列包括連接接收緩沖器的數(shù)據(jù)寄存器,其中從數(shù)據(jù)寄存器重復(fù)的讀取導(dǎo)致數(shù)據(jù)從接收緩沖器中讀取。該陣列還包括一個(gè)狀態(tài)寄存器,用于存儲(chǔ)識(shí)別網(wǎng)絡(luò)的物理鏈路上數(shù)據(jù)碰撞的數(shù)據(jù),其中狀態(tài)寄存器可從主計(jì)算機(jī)中讀數(shù)據(jù)。該狀態(tài)寄存器還包括至少一個(gè)位,用于表示讀和寫操作的至少一個(gè)操作的中斷狀態(tài)。
本發(fā)明的另一個(gè)方面是提供一種包括一個(gè)媒體訪問控制器的計(jì)算機(jī)通信系統(tǒng),該媒體訪問控制器包括一個(gè)連接在媒體訪問控制器上,用來接收來自數(shù)據(jù)網(wǎng)絡(luò)并且在向主計(jì)算機(jī)提供數(shù)據(jù)之前暫時(shí)存儲(chǔ)數(shù)據(jù)的接收緩沖器。媒體訪問控制器具有通信寄存器,該寄存器包括連接所述接收緩沖器的一個(gè)數(shù)據(jù)寄存器,其中從數(shù)據(jù)寄存器重復(fù)讀數(shù)據(jù)導(dǎo)致從接收緩沖器讀數(shù)據(jù)。通信寄存器提供存儲(chǔ)至少一個(gè)中斷位的狀態(tài)寄存器。該中斷位被設(shè)置為指示從數(shù)據(jù)網(wǎng)絡(luò)接收并前往主計(jì)算機(jī)的數(shù)據(jù)的存在,并且指示待讀取數(shù)據(jù)存在的該中斷位可由主計(jì)算機(jī)讀取。
本發(fā)明的另一個(gè)方面是提供一種包括一個(gè)媒體訪問控制器的計(jì)算機(jī)通信系統(tǒng),該媒體訪問控制器包括多個(gè)通信寄存器。通信寄存器優(yōu)選包括連接接收緩沖器的一個(gè)數(shù)據(jù)寄存器,其中從數(shù)據(jù)寄存器中重復(fù)讀取數(shù)據(jù)導(dǎo)致讀取從數(shù)據(jù)網(wǎng)絡(luò)接收的數(shù)據(jù)。一個(gè)狀態(tài)寄存器存儲(chǔ)至少一個(gè)中斷位,該中斷位被設(shè)置成指示從數(shù)據(jù)網(wǎng)絡(luò)接收并前往主計(jì)算機(jī)的數(shù)據(jù)的存在,并且該中斷位可由主計(jì)算機(jī)讀取。一個(gè)媒體獨(dú)立接口寄存器存儲(chǔ)至少一個(gè)控制連接到媒體訪問控制器的PHY電路的操作信號(hào),其中來自主計(jì)算機(jī)的信號(hào)是從媒體獨(dú)立接口寄存器傳遞的,以便當(dāng)數(shù)據(jù)從數(shù)據(jù)網(wǎng)絡(luò)讀出時(shí)控制PHY電路。字節(jié)計(jì)數(shù)寄存器存儲(chǔ)一個(gè)表示在媒體訪問控制器中存儲(chǔ)的向主計(jì)算機(jī)傳送的字節(jié)數(shù)的值,其中當(dāng)從媒體訪問控制器讀取數(shù)據(jù)時(shí)該字節(jié)計(jì)數(shù)寄存器被遞減(計(jì)數(shù)值)。
本發(fā)明的特別優(yōu)選的實(shí)施例向一個(gè)簡(jiǎn)化的硬件MAC提供了被實(shí)施為主客戶計(jì)算機(jī)內(nèi)的軟件的MAC功能的一個(gè)有效部分。更優(yōu)選的是,在客戶計(jì)算機(jī)內(nèi)實(shí)施的MAC功能被實(shí)施為客戶計(jì)算機(jī)的一個(gè)處理器內(nèi)的軟件,更優(yōu)選的是,該MAC功能被實(shí)施在個(gè)人計(jì)算機(jī)結(jié)構(gòu)類型的主處理器內(nèi)。優(yōu)選的MAC實(shí)施的硬件部分提供了用于緩沖PHY與客戶計(jì)算機(jī)之間通信的存儲(chǔ)器。本發(fā)明的MAC的優(yōu)選硬件方面還包括一個(gè)寄存器接口,用于MAC的硬件部分與客戶計(jì)算機(jī)內(nèi)實(shí)施的MAC的軟件部分之間的寄存器驅(qū)動(dòng)的通信。通過以主計(jì)算機(jī)內(nèi)軟件實(shí)施大多數(shù)MAC功能,優(yōu)選的MAC提供了低成本、低功耗以及通常較大的靈活性。
本發(fā)明的一些方面可以在一個(gè)客戶計(jì)算機(jī)或其它計(jì)算機(jī)與一個(gè)諸如根據(jù)定義的IEEE 802.3協(xié)議的任何方面操作的局域網(wǎng)絡(luò)的網(wǎng)絡(luò)之間提供一個(gè)接口。本發(fā)明的其它相關(guān)方面提供了一種傳輸信息的方法,或者提供了一種經(jīng)過IEEE 802.3網(wǎng)絡(luò)在一個(gè)計(jì)算機(jī)與一個(gè)或多個(gè)其它計(jì)算機(jī)之間傳送信息的方法。術(shù)語(yǔ)IEEE 802.3在這里被廣義地包含CSMA/CD網(wǎng)絡(luò),包括目前計(jì)劃變更的包含千兆位EthernetTM的網(wǎng)絡(luò)以及今后可能發(fā)展的其它變更的網(wǎng)絡(luò)。本發(fā)明的這些方面被認(rèn)為在與使用其他類型的協(xié)議的其它類型的網(wǎng)絡(luò)進(jìn)行連接和通信時(shí)具有優(yōu)點(diǎn)。這里所提供的本發(fā)明的許多示例和解釋是按照與IEEE 802.3網(wǎng)絡(luò)通信進(jìn)行說明的,這是因?yàn)檫@些網(wǎng)絡(luò)是公知的(人們所通曉的)以及IEEE 802.3和EthernetTM網(wǎng)絡(luò)目前很重要。然而,用于說明本發(fā)明的特定應(yīng)用不應(yīng)該限制本發(fā)明的范圍。
同樣,本發(fā)明的圖示說明是在目前可用的并且使用的IEEE802.3協(xié)議的體系內(nèi)作出的。IEEE 802.3的更先進(jìn)的實(shí)施以及IEEE802.3的后繼者將被開發(fā)并且?guī)硎袌?chǎng)前景。本發(fā)明的許多方面在應(yīng)用于這種網(wǎng)絡(luò)時(shí),預(yù)計(jì)將具有諸多優(yōu)點(diǎn)。
圖4從概要結(jié)構(gòu)的視角圖示說明了客戶計(jì)算機(jī)70的諸多方面,包括向/從一個(gè)網(wǎng)絡(luò)傳送信息。數(shù)據(jù)網(wǎng)絡(luò)包括一個(gè)物理鏈路,比如向客戶計(jì)算機(jī)和從客戶計(jì)算機(jī)載送實(shí)際數(shù)據(jù)信號(hào)的線對(duì)或者同軸電纜。客戶計(jì)算機(jī)72經(jīng)圖4所示的PHY 72表示的網(wǎng)絡(luò)模型的物理層連接到該物理鏈路。PHY可以包括磁電路,用于將信號(hào)放置(耦合)到物理鏈路上以及從物理鏈路得到信號(hào)。PHY 72還包括適當(dāng)?shù)闹С蛛娐罚热缒?shù)變換器、數(shù)模變換器和鎖相環(huán)檢測(cè)電路,用于根據(jù)接收的或?qū)С?得到)的時(shí)鐘信號(hào)從物理鏈路恢復(fù)信號(hào)。通常,PHY 72還包括如圖3所示的編碼和解碼電路。
PHY 72一般適合于特定的網(wǎng)絡(luò)協(xié)議或定義。但是,同樣地,以一種眾所周知并且可被理解的方式,PHY 72的諸多方面在圖4所示結(jié)構(gòu)的不同應(yīng)用之間可以變化很大。在不同的網(wǎng)絡(luò)環(huán)境中采用多種方式,不論是作為一個(gè)獨(dú)特的芯片還是作為設(shè)置在ASIC內(nèi)的核心,PHY 72是商業(yè)可行的。
圖4所示的下一個(gè)更高級(jí)的網(wǎng)絡(luò)模型是媒體訪問控制或MAC74。MAC 74可以包括一個(gè)功能范圍,但是它通常服務(wù)于初始分析和格式化由PHY 72供應(yīng)的數(shù)據(jù)位流的目的,使數(shù)據(jù)處于可由網(wǎng)絡(luò)模式的上層立即使用的形式。MAC 74連接存儲(chǔ)從網(wǎng)絡(luò)接收數(shù)據(jù)的客戶計(jì)算機(jī)70的操作系統(tǒng)76。MAC 74通常響應(yīng)于經(jīng)操作系統(tǒng)76通信的客戶計(jì)算機(jī)的應(yīng)用程序78,以生成用于信息傳送或請(qǐng)求的消息。
MAC功能可以包括通信的多個(gè)不同的方面。例如,PHY 72可以以4位并行格式提供來自網(wǎng)絡(luò)的數(shù)據(jù)。MAC優(yōu)選將4位并行數(shù)據(jù)重新格式化成適合于客戶計(jì)算機(jī)的字節(jié)或字,例如,8-位字節(jié)或32-位字??梢园贛AC中的通信的其它方面是地址識(shí)別、幀識(shí)別、幀分析以及碰撞或其它形式的網(wǎng)絡(luò)差錯(cuò)的檢測(cè)和管理。如背景技術(shù)中的討論和圖3所示,MAC 74的傳統(tǒng)的實(shí)施包括單個(gè)集成電路的各種功能。MAC的這種傳統(tǒng)的實(shí)施提供了能夠運(yùn)行狀態(tài)機(jī)器或執(zhí)行這些功能的程序的一個(gè)處理器或其它形式的邏輯。
本發(fā)明的優(yōu)選實(shí)施提供了至少?gòu)碾娐返挠^點(diǎn)看是簡(jiǎn)化的MAC。在大多數(shù)實(shí)施中,本發(fā)明的實(shí)施例將包括一個(gè)簡(jiǎn)化的硬件MAC以及一個(gè)補(bǔ)充軟件MAC,它們優(yōu)選在一個(gè)主處理器內(nèi),其組合將提供更多的功能,如果于圖3所示的MAC所執(zhí)行的功能不是更多的話。當(dāng)然,根據(jù)本發(fā)明的一個(gè)實(shí)施例的MAC的實(shí)施可以提供較少的MAC功能,并且仍然實(shí)現(xiàn)本發(fā)明的諸多方面。與圖3的MAC相對(duì)照,本發(fā)明的優(yōu)選方面的MAC在客戶計(jì)算機(jī)70的一個(gè)處理器中提供了最少一組電路并且實(shí)施了MAC功能的最多方面。在該實(shí)施中,本發(fā)明的一個(gè)MAC可以包括緩沖存儲(chǔ)器和一個(gè)通信寄存器,該通信寄存器設(shè)有作為軟件實(shí)施的MAC功能的其它方面,該軟件由個(gè)人計(jì)算機(jī)或相似類型的客戶計(jì)算機(jī)的微處理器運(yùn)行。
圖5說明了本發(fā)明的網(wǎng)絡(luò)接口適配器79的優(yōu)選硬件方面。如圖所示,該適配器包括一個(gè)適合于目標(biāo)網(wǎng)絡(luò)物理鏈路的PHY 72和一個(gè)簡(jiǎn)化的硬件MAC。簡(jiǎn)化的硬件MAC包括用于緩沖數(shù)據(jù)的存儲(chǔ)器,緩沖向PHY 72傳送或從PHY 72接收的數(shù)據(jù);優(yōu)選的是,PHY72包括一個(gè)鎖存器,用于存儲(chǔ)也許僅僅出現(xiàn)在接收數(shù)據(jù)幀所需的總時(shí)間段的一個(gè)接收誤差信號(hào)。所示的特定優(yōu)選的MAC的剩余硬件方面是一組寄存器,用于處理指令、狀態(tài)和誤差信息的通信,并且促進(jìn)適配器與客戶計(jì)算機(jī)之間的數(shù)據(jù)傳遞。因而,所示的總線寄存器接口80優(yōu)選包括完整的但相對(duì)最小的一組通信和數(shù)據(jù)寄存器,以便大部分通信功能在客戶計(jì)算機(jī)內(nèi)執(zhí)行,并且優(yōu)選在客戶計(jì)算機(jī)的處理器中執(zhí)行。
繼續(xù)參見圖5,頂部的兩條線是與PHY 72內(nèi)的媒體獨(dú)立接口(MII)通信的信號(hào)線。信號(hào)線MDCK提供從接口80到PHY 72的數(shù)據(jù)時(shí)鐘信號(hào),并且用來讀取和寫入到PHY 72的MII的數(shù)據(jù)。MDIO是用于總線寄存器接口80與PHY 72之間MII通信的串行數(shù)據(jù)線。MDIO線路上供應(yīng)的指令和其它信息的類型根據(jù)媒體獨(dú)立接口的技術(shù)要求而定,這些技術(shù)要求是已知協(xié)議和工業(yè)標(biāo)準(zhǔn)。
圖5所示的下兩條線傳送從PHY 72到總線寄存器接口80的網(wǎng)絡(luò)條件。線路COL是一個(gè)在數(shù)據(jù)從PHY 72傳送到物理鏈路期間在該物理鏈路上檢測(cè)到碰撞時(shí)所傳送的信號(hào)的線路。線路CRS載送一個(gè)在接收一個(gè)消息的時(shí)候識(shí)別物理鏈路上存在載波信號(hào)(載波檢測(cè))的信號(hào)。COL和CRS線路任一個(gè)上的信號(hào)被存儲(chǔ)在接口80的命令/狀態(tài)寄存器中,以便主客戶計(jì)算機(jī)可以檢測(cè)差錯(cuò)條件并執(zhí)行適當(dāng)?shù)牟铄e(cuò)處理功能。
圖5所示的下一條線路代表由PHY 72提供的到總線寄存器接口的信息,指示從物理鏈路接收的數(shù)據(jù)的有效性。線路RXER載送表現(xiàn)數(shù)據(jù)接收期間一個(gè)差錯(cuò)的信號(hào)。經(jīng)線路RXER供應(yīng)的信號(hào)可以是一個(gè)相對(duì)短暫的信號(hào),至少與傳送一個(gè)數(shù)據(jù)幀的時(shí)間量相比是一個(gè)短暫的信號(hào)。因此,優(yōu)選沿著該線路設(shè)置一個(gè)鎖存器82,以便在該鎖存器內(nèi)保持由PHY 72生成的一個(gè)差錯(cuò)信號(hào),以確保在完成了數(shù)據(jù)幀的傳送之后可利用總線寄存器接口80中的存儲(chǔ)。線路TXER執(zhí)行一個(gè)向物理鏈路傳送數(shù)據(jù)的類似功能。當(dāng)發(fā)現(xiàn)一個(gè)差錯(cuò)已經(jīng)出現(xiàn)在向PHY 72傳送數(shù)據(jù)并且位于物理線路之外時(shí),接口80使一個(gè)信號(hào)供應(yīng)到線路TXER上。例如,線路TXER可以用來指示一個(gè)下溢差錯(cuò)發(fā)生在MAC的發(fā)送緩沖器88上。
在所示的實(shí)施例中,總線寄存器接口80以8-位字節(jié)的單位存儲(chǔ)數(shù)據(jù)。向和從PHY 72的供應(yīng)的數(shù)據(jù)被安排為四個(gè)并行位。所以,需要將來自PHY的4位數(shù)據(jù)重新格式化成一個(gè)適當(dāng)配置的寄存器84中的8位數(shù)據(jù)。寄存器84被顯示為一個(gè)4-8位并行移位寄存器。寄存器84的輸出被供應(yīng)到一個(gè)接收緩沖器86,緩沖從物理線路接收的數(shù)據(jù),然后經(jīng)總線寄存器接口80讀出數(shù)據(jù)進(jìn)入客戶計(jì)算機(jī)。來自客戶計(jì)算機(jī)的數(shù)據(jù)以8-位字節(jié)供應(yīng)給發(fā)送緩沖器88,經(jīng)緩沖之后供應(yīng)給寄存器90,寄存器90將8-位數(shù)據(jù)格式化成4-位數(shù)據(jù)項(xiàng),并將該數(shù)據(jù)項(xiàng)供應(yīng)給PHY 72。
接收緩沖器86和發(fā)送緩沖器88優(yōu)選是字長(zhǎng)適當(dāng)?shù)腇IFO(先進(jìn)先出存儲(chǔ)器),以適應(yīng)客戶計(jì)算機(jī)的等待時(shí)間。由于圖5所示的適配器的業(yè)務(wù)只是由客戶計(jì)算機(jī)的優(yōu)選微處理器執(zhí)行的任務(wù)之一,因此會(huì)出現(xiàn)處理器不準(zhǔn)備處理向物理鏈路發(fā)送的數(shù)據(jù)和從物理鏈路接收的數(shù)據(jù)的時(shí)候。因此,接收和發(fā)送FIFO需要具有足夠的大小以適應(yīng)典型的運(yùn)行時(shí)間延遲。實(shí)際上,一般認(rèn)為一個(gè)合適的緩沖器大小近似于一個(gè)信息包的大小或者相當(dāng)于約2千字節(jié)??梢愿鶕?jù)系統(tǒng)的設(shè)計(jì)選擇適當(dāng)?shù)木彌_器大小。由于將要接收或者將發(fā)送數(shù)據(jù)的速率取決于適配器所服務(wù)的特定網(wǎng)絡(luò),因此緩沖器的大小在不同應(yīng)用中變化非常明顯。
圖6圖示說明了經(jīng)一組雙絞線對(duì)104將一個(gè)客戶計(jì)算機(jī)100連接到一個(gè)網(wǎng)絡(luò)102的適配器79的安裝。所示的適配器79優(yōu)選具有圖5所示的結(jié)構(gòu),具體地說,設(shè)有包括圖5所示的緩沖存儲(chǔ)器和總線寄存器接口80的簡(jiǎn)化的硬件MAC 106。簡(jiǎn)化的硬件MAC 106優(yōu)選經(jīng)總線110連接客戶計(jì)算機(jī)100的主處理器108。總線110優(yōu)選是32位或更多位的總線,該總線以足夠的速度操作,以便按照使等待時(shí)間最小化的預(yù)期速度傳送(移動(dòng))進(jìn)出MAC 106的數(shù)據(jù)。通過將MAC 106連接到一個(gè)適當(dāng)?shù)目偩€,比如PCI總線,或者在一個(gè)特定的優(yōu)選實(shí)施例中,適于將PCMCIA卡連接到諸如筆記本或其它便攜式計(jì)算機(jī)上的PC總線、卡總線或其它總線,可以容易地實(shí)現(xiàn)適當(dāng)?shù)目偩€速度。這些總線的典型實(shí)施對(duì)于允許像處理器108上運(yùn)行的軟件那樣實(shí)施MAC功能的重要部分,是足夠快的。適配器79的優(yōu)選實(shí)施的精簡(jiǎn)尺寸和降低功耗對(duì)于本發(fā)明的便攜式計(jì)算機(jī)實(shí)施是特別需要的。
當(dāng)向網(wǎng)絡(luò)102的物理鏈路發(fā)送信息和從該物理鏈路接收信息時(shí),至少客戶計(jì)算機(jī)的操作系統(tǒng)114的部分和MAC的軟件方面116的部分應(yīng)當(dāng)在存儲(chǔ)器112中獲得。所示的存儲(chǔ)器112可以部分位于處理器108中,部分位于DRAM的陣列中或者其它,包括例如在光盤驅(qū)動(dòng)器上的較少的不穩(wěn)定的存儲(chǔ)器或者在快速或其它固態(tài)存儲(chǔ)器中。在其它實(shí)施例中,所示的存儲(chǔ)器112可以完全在處理器108的內(nèi)部或外部。與特定存儲(chǔ)器實(shí)施無關(guān),MAC 116的軟件方面優(yōu)選通過對(duì)MAC 106內(nèi)的通信寄存器80尋址,經(jīng)過處理器108內(nèi)的操作系統(tǒng)114與MAC的硬件方面進(jìn)行通信。
通過使用一個(gè)優(yōu)選的寄存器地址安排對(duì)總線寄存器接口80內(nèi)的通信寄存器尋址。在圖7部分圖示的實(shí)施例中,一個(gè)3-位地址信號(hào)被用來對(duì)包含總共八個(gè)寄存器的一個(gè)最小寄存器實(shí)施尋址。如圖所示,按四個(gè)最低地址設(shè)置四個(gè)數(shù)據(jù)寄存器,接下來兩個(gè)寄存器和地址優(yōu)選專用于字節(jié)計(jì)數(shù)寄存器,該字節(jié)計(jì)數(shù)寄存器存儲(chǔ)可從接收FIFO 86讀取得到的字節(jié)數(shù)。圖8詳細(xì)地說明了數(shù)據(jù)寄存器。來自數(shù)據(jù)寄存器的重復(fù)讀取導(dǎo)致數(shù)據(jù)從接收FIFO 86中讀出,并且對(duì)數(shù)字寄存器的重復(fù)寫入將發(fā)送給網(wǎng)絡(luò)102的數(shù)據(jù)充滿發(fā)送FIFO 88。圖9詳細(xì)地表示了字節(jié)計(jì)數(shù)寄存器。這些字節(jié)計(jì)數(shù)寄存器用于讀取操作,以指示是否剩余以及剩余了多少將要從網(wǎng)絡(luò)102接收的數(shù)據(jù)。當(dāng)數(shù)據(jù)被寫入接收緩沖器時(shí),字節(jié)計(jì)數(shù)寄存器存儲(chǔ)的值遞增,當(dāng)數(shù)據(jù)從接收緩沖器86讀出時(shí),字節(jié)計(jì)數(shù)寄存器中存儲(chǔ)的值遞減。
應(yīng)當(dāng)注意的是,從網(wǎng)絡(luò)接收的數(shù)據(jù)可以包括錯(cuò)誤數(shù)據(jù)或者可以包括適當(dāng)?shù)膸瑪?shù)據(jù)。因而,通常不希望依賴傳送的數(shù)據(jù)自身來指示是否剩余將要從網(wǎng)絡(luò)接收的附加數(shù)據(jù)。
圖10和圖11分別示出了用于讀/寫操作的命令/狀態(tài)寄存器,這兩個(gè)寄存器具有相同的地址,但對(duì)于讀和寫操作的規(guī)定不同。位0被規(guī)定為,在寫操作期間啟動(dòng)從適配器到客戶計(jì)算機(jī)的操作系統(tǒng)的中斷。命令/狀態(tài)寄存器的位7由客戶計(jì)算機(jī)設(shè)置,以復(fù)位適配器。該位借助適配器的復(fù)位自動(dòng)清零。
當(dāng)MAC軟件116正在讀適配器時(shí),命令/狀態(tài)寄存器(圖11)將位0用作一個(gè)中斷未決的位,以通知主客戶計(jì)算機(jī)一個(gè)將要讀出的中斷未決。MAC軟件116讀命令/狀態(tài)寄存器,以確定該中斷需要采取什么動(dòng)作、是否存在要讀取的數(shù)據(jù)(BC)或者是否存在要處理的一個(gè)錯(cuò)誤(COL,CRS)。一旦讀取了該中斷位,它就復(fù)位。剩余的位1-3提供載波檢測(cè)、碰撞檢測(cè)以及接收來自PHY的數(shù)據(jù)有效信號(hào)。當(dāng)字節(jié)計(jì)數(shù)位BC不為零時(shí),MAC軟件開始讀數(shù)據(jù)寄存器,以讀取來自接收緩沖器86的數(shù)據(jù)。當(dāng)COL或CRS位有效時(shí),MAC軟件116被訪問,或者通過執(zhí)行一個(gè)補(bǔ)償算法(COL),或者通過放棄接收來處理差錯(cuò)條件,并且通過清洗錯(cuò)誤數(shù)據(jù)的接收緩沖器來處理錯(cuò)誤數(shù)據(jù)(CRS)。
圖12說明了MII寄存器中位的定義,它占據(jù)了優(yōu)選總線寄存器接口80中的最后的位置。MAC軟件116使用MII或簡(jiǎn)化的媒體獨(dú)立接口(RMII),以控制和監(jiān)視PHY的操作。MII信息的通信經(jīng)MII寄存器的MD位、經(jīng)MDIO線路(圖5)以及經(jīng)PHY的MDIO引腳串行地進(jìn)行。
MAC軟件116控制適配器79的大量操作。通常,MAC軟件可以被視作包括一個(gè)處理中斷和數(shù)據(jù)傳送的底層段;一個(gè)上層段,用于執(zhí)行更復(fù)雜的但較少直接的操作。MAC軟件116的下層程序驅(qū)動(dòng)接收操作中斷,并且處理該中斷。當(dāng)操作系統(tǒng)114接收到來自適配器79的中斷時(shí),操作系統(tǒng)調(diào)用MAC軟件的下層程序。
下層程序讀命令/狀態(tài)寄存器,以清零中斷未決的位。如果有數(shù)據(jù)出現(xiàn),則下層程序開始一個(gè)首次檢驗(yàn)字節(jié)計(jì)數(shù)寄存器(圖9)中字節(jié)計(jì)數(shù)的循環(huán)。如果字節(jié)計(jì)數(shù)為零,則下層程序退出該循環(huán)并且返回到備用裝置,如果字節(jié)計(jì)數(shù)不為零,則從數(shù)據(jù)寄存器讀取數(shù)據(jù)(圖8)。該循環(huán)連續(xù)進(jìn)行,直至字節(jié)計(jì)數(shù)達(dá)到零,然后下層程序退出循環(huán)并返回到備用狀態(tài)直至檢測(cè)到另一個(gè)中斷。
由下層程序讀出的數(shù)據(jù)被存儲(chǔ)到處理器的緩沖器中或者存儲(chǔ)到DRAM中。根據(jù)幀定義和有關(guān)IEEE 802.3的其它處理或者組織網(wǎng)絡(luò)和通信進(jìn)行的其它協(xié)議,進(jìn)一步的處理是必要的。例如,用于IEEE 802.3網(wǎng)絡(luò)的數(shù)據(jù)幀的處理可以包括檢測(cè)幀頭的處理器108,該處理器108檢驗(yàn)幀長(zhǎng)以確定該幀是否有一個(gè)有效幀長(zhǎng)。該處理器使用FCS數(shù)據(jù)估算該幀,以估算該幀是否有效。例如,如果FCS數(shù)據(jù)是CRC數(shù)據(jù),則使用定義檢測(cè)多項(xiàng)式的協(xié)議對(duì)數(shù)據(jù)執(zhí)行一個(gè)多項(xiàng)式除法,以確定數(shù)據(jù)是否有效。所有這些功能由MAC軟件116的一個(gè)上層程序執(zhí)行。該MAC軟件還可以執(zhí)行濾波,以檢測(cè)信息包的地址是否與主客戶計(jì)算機(jī)有關(guān)。
MAC軟件還根據(jù)網(wǎng)絡(luò)協(xié)議跟蹤網(wǎng)絡(luò)統(tǒng)計(jì)。這些統(tǒng)計(jì)包括成功發(fā)送的幀數(shù)以及發(fā)送錯(cuò)誤幀的頻度。這些統(tǒng)計(jì)可以由網(wǎng)絡(luò)管理軟件采用,比如可以由與一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)管理協(xié)議相一致的軟件采用。
對(duì)網(wǎng)絡(luò)的寫數(shù)據(jù)的操作仍然是MAC軟件116與適配器79之間的一個(gè)協(xié)作。MAC軟件的上層程序?qū)⒐?yīng)給網(wǎng)絡(luò)的數(shù)據(jù)格式化成適當(dāng)?shù)膸撋蠈映绦蛴?jì)算FCS數(shù)據(jù),比如一個(gè)適當(dāng)?shù)难h(huán)冗余檢驗(yàn)(CRC)數(shù)據(jù),并且將FCS添加到該幀上。數(shù)據(jù)幀被傳送到MAC軟件的下層程序,該程序?qū)?shù)據(jù)寫入數(shù)據(jù)寄存器,進(jìn)而寫入適配器的發(fā)送FIFO 88。發(fā)送期間,MAC軟件116的下層部分監(jiān)視適配器,以保證數(shù)據(jù)從緩沖FIFO 88安全地傳送到網(wǎng)絡(luò)。例如,下層程序檢驗(yàn)FIFO以查看FIFO是否被充滿并且不能接收附加數(shù)據(jù),或者查看FIFO是否已經(jīng)完全空閑(一個(gè)下溢條件)。下層程序還監(jiān)視命令/狀態(tài)寄存器的COL位,以確定是否有一個(gè)碰撞。
MAC軟件116的上層執(zhí)行EthernetTM或IEEE 802.3網(wǎng)絡(luò)的已知功能。這些功能按照慣例被實(shí)施為傳統(tǒng)網(wǎng)絡(luò)接口控制器的處理器內(nèi)的軟件或狀態(tài)機(jī)器。因此,本領(lǐng)域的普通技術(shù)人員也能夠?qū)⑦@些功能實(shí)施到微處理器中或者實(shí)施到主客戶計(jì)算機(jī)的其它處理器中。因此將不進(jìn)一步說明本發(fā)明的這些方面。
本發(fā)明的適配器的安裝將通過把簡(jiǎn)化的硬件MAC安裝到例如一個(gè)PCMCIA卡內(nèi)進(jìn)行,該P(yáng)CMCIA卡也包括適合于目標(biāo)網(wǎng)絡(luò)的PHY電路。驅(qū)動(dòng)軟件以MAC軟件能夠被主計(jì)算機(jī)的操作系統(tǒng)訪問的方式安裝到主計(jì)算機(jī)上。
這里所討論的設(shè)計(jì)的某些變更對(duì)于本領(lǐng)域的普通技術(shù)人員將是明顯的。例如,可以容易地將圖5所示的簡(jiǎn)化的硬件MAC實(shí)施為將要在一個(gè)ASIC中或者在PHY內(nèi)實(shí)施的一個(gè)核心。有可能在一個(gè)芯片上將簡(jiǎn)化的硬件MAC實(shí)施為一個(gè)系統(tǒng)內(nèi)的獨(dú)特核心,而MAC的軟件方面則實(shí)施在一個(gè)芯片的處理器的系統(tǒng)內(nèi)。本發(fā)明的優(yōu)選方面提供了網(wǎng)絡(luò)接口適配器的一個(gè)靈活的結(jié)構(gòu)。因此,本發(fā)明人期望本發(fā)明的適配器將在各種尚待完成的網(wǎng)絡(luò)協(xié)議方面發(fā)現(xiàn)應(yīng)用。此外,總線寄存器接口可以包括諸多寄存器的不同組合,以實(shí)現(xiàn)本發(fā)明的簡(jiǎn)化的硬件MAC。
本領(lǐng)域的普通技術(shù)人員將會(huì)明白,在不改變本發(fā)明的基本宗旨的情況下,可以對(duì)這里所述的特定實(shí)施例進(jìn)行多種變化和修改。因此,本發(fā)明的范圍不會(huì)被限制到這里所述的特定實(shí)施例上。更確定地說,本發(fā)明的范圍由后面的權(quán)利要求確定。
權(quán)利要求
1.一種計(jì)算機(jī)通信系統(tǒng),包括一個(gè)連接至少一個(gè)發(fā)送數(shù)據(jù)線路的發(fā)送緩沖器,所述的發(fā)送緩沖器適合于接收來自主計(jì)算機(jī)的數(shù)據(jù),并且在經(jīng)過發(fā)送數(shù)據(jù)線路向數(shù)據(jù)網(wǎng)絡(luò)的物理鏈路發(fā)送數(shù)據(jù)之前暫時(shí)存儲(chǔ)所述的數(shù)據(jù);一個(gè)連接至少一個(gè)接收數(shù)據(jù)線路的接收緩沖器,所述的接收緩沖器適合于經(jīng)接收數(shù)據(jù)線路接收來自數(shù)據(jù)網(wǎng)絡(luò)的物理鏈路的數(shù)據(jù),并且在向計(jì)算機(jī)提供所述的數(shù)據(jù)之前暫時(shí)存儲(chǔ)所述的數(shù)據(jù);以及一個(gè)通信寄存器的陣列,所述的陣列包括連接接收緩沖器的一個(gè)數(shù)據(jù)寄存器,其中,從所述的數(shù)據(jù)寄存器的重復(fù)讀取導(dǎo)致從所述的接收緩沖器中讀取數(shù)據(jù);所述的陣列還包括一個(gè)狀態(tài)寄存器,用于存儲(chǔ)識(shí)別數(shù)據(jù)網(wǎng)絡(luò)的物理鏈路上數(shù)據(jù)碰撞的數(shù)據(jù),所述的狀態(tài)寄存器可從所述的主計(jì)算機(jī)讀數(shù)據(jù),所述的狀態(tài)寄存器還包括至少一個(gè)表示讀和寫操作的至少一個(gè)操作的中斷狀態(tài)的位。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括一個(gè)連接在陣列與到數(shù)據(jù)網(wǎng)絡(luò)的連線之間的鎖存器,所述的鎖存器存儲(chǔ)識(shí)別接收一個(gè)數(shù)據(jù)幀中的一個(gè)差錯(cuò)的差錯(cuò)信號(hào),所述的鎖存器保持所述的差錯(cuò)信號(hào)一個(gè)足以完整地接收所述的數(shù)據(jù)幀的時(shí)間段。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,對(duì)數(shù)據(jù)寄存器的重復(fù)寫入將數(shù)據(jù)存儲(chǔ)在所述的發(fā)送緩沖器內(nèi)。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述的發(fā)送緩沖器經(jīng)PHY電路連接所述的數(shù)據(jù)網(wǎng)絡(luò)。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述的陣列還包括一個(gè)媒體獨(dú)立接口寄存器,存儲(chǔ)至少一個(gè)用于控制所述的PHY電路的操作的信號(hào),其中,在讀寫接入數(shù)據(jù)網(wǎng)絡(luò)期間,諸多信號(hào)從所述的媒體獨(dú)立接口寄存器傳送,以控制所述的PHY。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述的通信寄存器的陣列可由主計(jì)算機(jī)的處理器所運(yùn)行的網(wǎng)絡(luò)通信軟件讀取,其中,按幀接收從所述的數(shù)據(jù)網(wǎng)絡(luò)中讀取數(shù)據(jù),以及其中,所述的處理器根據(jù)接收的數(shù)據(jù)幀中存儲(chǔ)的幀檢驗(yàn)數(shù)據(jù)分析所接收的數(shù)據(jù)的幀。
7.一種包括一個(gè)媒體訪問控制器的計(jì)算機(jī)通信系統(tǒng),所述的媒體訪問控制器包括一個(gè)連接以接收來自數(shù)據(jù)網(wǎng)絡(luò)的數(shù)據(jù)并且在向主計(jì)算機(jī)提供數(shù)據(jù)之前暫時(shí)存儲(chǔ)所述的數(shù)據(jù)的接收緩沖器,所述的媒體訪問控制器還包括通信寄存器,所述的通信寄存器包括連接所述的接收緩沖器的一個(gè)數(shù)據(jù)寄存器,其中,從所述的數(shù)據(jù)寄存器重復(fù)讀取導(dǎo)致從接收緩沖器讀數(shù)據(jù),以及所述的通信寄存器還包括存儲(chǔ)至少一個(gè)中斷位的狀態(tài)寄存器,所述的中斷位被設(shè)置為指示存在從所述的數(shù)據(jù)網(wǎng)絡(luò)接收并前往主計(jì)算機(jī)的數(shù)據(jù),并且指示存在待讀取數(shù)據(jù)的所述的中斷位可由主計(jì)算機(jī)讀取。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述的接收緩沖器經(jīng)PHY電路連接所述的數(shù)據(jù)網(wǎng)絡(luò)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述的通信寄存器包括一個(gè)媒體獨(dú)立接口寄存器,存儲(chǔ)至少一個(gè)控制所述的PHY電路的操作的信號(hào),其中,當(dāng)從所述的數(shù)據(jù)網(wǎng)絡(luò)讀取數(shù)據(jù)時(shí),諸多來自主計(jì)算機(jī)的信號(hào)從所述的媒體獨(dú)立接口寄存器傳送,以控制所述的PHY。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述的通信寄存器包括一個(gè)字節(jié)計(jì)數(shù)寄存器,用于存儲(chǔ)一個(gè)指示在所述的接收緩沖器中存儲(chǔ)的字節(jié)數(shù)的值,當(dāng)從接收緩沖器讀取數(shù)據(jù)時(shí)遞減所述的字節(jié)計(jì)數(shù)寄存器。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,駐留在所述的主計(jì)算機(jī)上的軟件執(zhí)行一序列步驟,包括檢驗(yàn)所述的字節(jié)計(jì)數(shù)寄存器中存儲(chǔ)的一個(gè)值,以及如果所述的字節(jié)計(jì)數(shù)寄存器存儲(chǔ)了非零值,則從所述的數(shù)據(jù)寄存器讀取數(shù)據(jù)。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,一個(gè)經(jīng)所述的PHY電路的數(shù)據(jù)傳遞置位所述的中斷位,其中,所述的中斷位經(jīng)數(shù)據(jù)寬度至少為一個(gè)字節(jié)的數(shù)據(jù)總線讀取至所述的主計(jì)算機(jī)。
13.根據(jù)權(quán)利要求7所述的系統(tǒng),還包括可在所述的主計(jì)算機(jī)上操作的軟件,用于從一個(gè)幀格式中提取數(shù)據(jù)。
14.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述的狀態(tài)寄存器還包括多個(gè)可由所述的PHY電路置位的識(shí)別所述的數(shù)據(jù)網(wǎng)絡(luò)的差錯(cuò)的位。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述的多個(gè)位包括一個(gè)載波檢測(cè)位,以指示所述的數(shù)據(jù)網(wǎng)絡(luò)一個(gè)禁用時(shí)間上的載波信號(hào)的檢測(cè)。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述的載波檢測(cè)位可由所述的主計(jì)算機(jī)的一個(gè)處理器內(nèi)運(yùn)行的MAC程序直接讀取。
17.一種包括一個(gè)媒體訪問控制器的計(jì)算機(jī)通信系統(tǒng),所述的媒體訪問控制器包括多個(gè)通信寄存器,所述的通信寄存器包括一個(gè)連接所述的接收緩沖器的數(shù)據(jù)寄存器,其中,從所述的數(shù)據(jù)寄存器重復(fù)讀取導(dǎo)致讀取從所述的數(shù)據(jù)網(wǎng)絡(luò)接收的數(shù)據(jù),一個(gè)包括至少一個(gè)中斷位的狀態(tài)寄存器,所述的中斷位被設(shè)置成指示從所述的數(shù)據(jù)網(wǎng)絡(luò)接收并前往所述的主計(jì)算機(jī)的數(shù)據(jù)的存在,所述的中斷位可由所述的主計(jì)算機(jī)讀取,一個(gè)媒體獨(dú)立接口寄存器,存儲(chǔ)至少一個(gè)用于控制與所述的媒體訪問控制器連接的PHY電路操作的信號(hào),其中,來自所述的主計(jì)算機(jī)的信號(hào)是從所述的媒體獨(dú)立接口寄存器傳遞的,以便當(dāng)數(shù)據(jù)從所述的數(shù)據(jù)網(wǎng)絡(luò)讀出時(shí),控制PHY電路,以及一個(gè)字節(jié)計(jì)數(shù)寄存器,存儲(chǔ)一個(gè)指示在所述的媒體訪問控制器中存儲(chǔ)的用于傳遞到所述的主計(jì)算機(jī)的字節(jié)數(shù)的值,當(dāng)從所述的媒體寄存器讀取數(shù)據(jù)時(shí)遞減所述的字節(jié)計(jì)數(shù)寄存器。
全文摘要
本發(fā)明提供了一種將客戶計(jì)算機(jī)連接到一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上的網(wǎng)絡(luò)接口適配器,包括經(jīng)一個(gè)物理接口(PHY)連接到網(wǎng)絡(luò)物理鏈路上的一個(gè)簡(jiǎn)化的硬件媒體訪問控制器(MAC)。MAC功能的重要部分被實(shí)施為主客戶計(jì)算機(jī)的處理器內(nèi)的軟件。優(yōu)選的MAC實(shí)施的硬件部分提供在PHY與客戶計(jì)算機(jī)之間緩沖通信的存儲(chǔ)器。本發(fā)明的MAC的優(yōu)選硬件方面還包括一個(gè)寄存器接口,用于在MAC的硬件部分與在客戶計(jì)算機(jī)內(nèi)實(shí)施的MAC的軟件部分之間的寄存器驅(qū)動(dòng)通信。通過在主計(jì)算機(jī)的軟件中實(shí)施大部分MAC功能,該優(yōu)選的MAC提供了低成本、低功耗以及通常是更靈活的網(wǎng)絡(luò)接口適配器。
文檔編號(hào)H04L12/28GK1390417SQ00815700
公開日2003年1月8日 申請(qǐng)日期2000年8月30日 優(yōu)先權(quán)日1999年9月21日
發(fā)明者邁克爾·R·康利, 埃里克·亨德森 申請(qǐng)人:(美國(guó))捷迅公司