TWI292123B - Method and computer-readable medium of allowing for single implementation of operations common to both kernel mode processing and user mode processing relative to the hardware adapter - Google Patents
Method and computer-readable medium of allowing for single implementation of operations common to both kernel mode processing and user mode processing relative to the hardware adapter Download PDFInfo
- Publication number
- TWI292123B TWI292123B TW092113898A TW92113898A TWI292123B TW I292123 B TWI292123 B TW I292123B TW 092113898 A TW092113898 A TW 092113898A TW 92113898 A TW92113898 A TW 92113898A TW I292123 B TWI292123 B TW I292123B
- Authority
- TW
- Taiwan
- Prior art keywords
- interface card
- core mode
- user mode
- hardware
- core
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Description
1292123
日修替換頁 九、發明說明: 【發明所屬之技術領域】 本發明大致是關於電腦硬體的驅動程式軟體。特定言 之,本發明是關於允許與該硬體介面卡有關之核心模式處 理(kernel mode processing )和使用者模式處理(user mode processing )所通用的一或多個作業(operation )之一單一 實作(single implementation )之方法、系統和電腦程式產 品。 【先前技術】 在電腦硬體效能日漸增加的同時,電腦軟體的作業逐 漸變成整體系統效能的關鍵因素。如果有頻繁而大量的資 訊需要父換的話’就更需要有高效率的電腦軟體來和硬體 介面卡互動以控制硬體裝置。各種軟體層和處理模式間相 對應轉換的典型瓶頸通常發生在一應用程式和一硬體介面 卡之間。 大部分的作業系統提供至少兩種處理模式:(i)相對而 言較不冗到#賴且較多限制的使用者模式,以及(Η)相對而 言較受到信賴且較少限制的核心模式。大致而言,應用程 式在使用者模式執行’程式彼此間獨自執行,並不會干擾 到其他程式的資源。當產生系統呼叫、例外或錯誤、發生 中斷等的情況時,使用者模式的程式會切換到核心模式。 在核心模式内執行的私式並無在使用者模式處理的限制, 5
1292123 享有存取所有電腦資源(例如所有可用的記憶體)的權力。 因為該作業系統核心扮演電腦資源守門人( gatekeeper) 的角色,直接存取資源通常會限制核心模式的處理。電腦 硬體有時也會針對使用者模式處理和核心模式處理的差異 作支援,例如,許多微處理器具有處理模式以支援使用者 模式處理和核心模式處理間的差異。 由於存取某些資源會限制核心模式處理,一使用者模 式處理必須轉換或切換至一核心模式處理才得以存取資 源。存取完後,該處理會切換回使用者模式繼續後續的執 行。然而,切換處理模式會嚴重影響效能。因此,為了減 少切換處理模式所導致的效能下降,一些硬體介面卡支援 在某些參數中實施安全檢測,讓使用者模式的應用程式可 以直接存取該硬體,無須轉換到核心模式。因此,一些軟 體驅動程式在某些處理程序下不會進入核心模式。 雖然允許使用者模式處理可直接存取硬體資源,但仍 須在指定的安全參數中限制存取,才得以確保電腦系統的 安全。對於該硬體介面卡而言,這些安全參數是在核心模 式處理下設定。實際上,該安全參數會指出一特定處理在 哪些作業時可直接存取。該硬體介面卡會拒絕其他處理作 類似的存取,也會拒絕一處理存取超出該安全參數所允許 的範圍。 某些作業可同時在使用者模式和核心模式下執行。然 而,若要在每個模式中執行相同的作業,會降低軟體開發 6 1292123 的效率。譬如說要考慮記憶體分派(m e m 〇 r y a 11 〇 c a t i ο η ) 的問題。雖然在每一種模式下,記憶體的區域都會被分派, 但核心模式時的記憶體分派與使用者模式時的記憶體分 派,其要求並不相同。舉例而言,在核心模式下,記憶體 分派必須符合某些校正條件以幫助硬體驅動,但在使用者 模式下作記憶體分派,則不需符合校正條件。然而,就硬 體驅動程式而言,所需的就是記憶體區域。因此,典型存 取一硬體介面卡的單一作業均個別實施使用者模式和核心 模式。綜上所述,我們需要有允許與該硬體介面卡有關之 核心模式處理和使用者模式處理所通用的多個作業之單一 實作之方法、系統和電腦程式產品。 【發明内容】 本發明是關於允許與一硬體介面卡有關之核心模式處 理和使用者模式處理所通用的多個作業之單一實作之方 法、系統和電腦程式產品。由於至少一作業為使用者模式 處理和核心模式處理所通用,所以會定義一通用介面 (common interface),並且會提供該至少一作業所對應之 核心模式和使用者模式實作。假設有一處理,如果該處理 是一核心模式處理,則該介面的一呼叫(call )會對映(is m a p p e d t 〇 )至該核心模式實作,而如果該處理是一使用者 模式處理,則會對映至一使用者模式實作。該對映可能在 執行時執行或可是靜態的。 該共同作業會讓一使用者模式處理直接存取一硬體介 7 1292123 面卡,而無須切換到核心模式。另外也會提供核心模式處 理所獨有的一或多個作業之一核心模式實作。舉例而言, 藉由該硬體介面卡以起始和終止通訊的作業可能是核心模 式處理所獨有,而藉由該介面卡以傳送和接收訊息的作業 可為使用者模式處理和核心模式處理所通用。特定言之, 核心模式處理所獨有的其中一個作業可能會識別該硬體介 面卡的安全參數才實施。 藉由下述的說明、實施例和申請專利範圍,將可對本 發明的功能和優點有一完整的認識。 【實施方式】 本發明是關於包含與一硬體介面卡有關之核心模式處 理和使用者模式處理所通用的一作業之單一實作之方法、 系統和電腦程式產品。本發明提供該作業的核心模式和使 用者模式實作之一通用介面。如果該呼叫處理為一使用者 模式處理,該呼叫會被對映至該使用者模式實作,而如果 該呼叫處理為一核心模式處理,該呼叫會被對映至該核心 模式實作。本發明的一些實施例至少包含一或多個特殊功 能和/或一或多個一般功能的電腦,該電腦包含各種電腦硬 體,詳見下述對第4圖之說明。 第1圖顯示一高階區塊圖,說明根據本發明,一包含 共用使用者模式和核心模式作業的單一實作之硬體驅動程 式模型。一應用程式110透過使用者模式介面120存取介 8 1292123
面卡1 5 0。其中一些作業會對映至核心模式實作1 40,而有 些則對映至使用者模式實作 1 3 0。要注意的是在使用者模 式實作1 3 0下,可以直接存取介面卡1 5 0,而無須轉換到 核心模式。因此,應用程式1 1 〇可透過使用者模式實作1 3 0 存取介面卡 1 5 0,並且所需的時間相較核心模式實作 1 40 而言可大幅降低。 讓相同的作業可在使用者模式實作1 3 0和核心模式實 作140下執行,至少有以下幾點原因。第一,核心模式實 作1 40大致包含介面卡1 5 0所有可能的作業,因此沒有使 用者模式介面1 20的應用程式可利用核心模式實作1 40與 介面卡1 5 0溝通。由於有從核心模式切換至使用者模式(然 後再切換回去)的額外負擔,核心模式實作140呼叫使用 者模式實作1 3 0 (為了讓作業能在使用者模式下執行)在 典型的情況下無法達到最佳效能,尤其是當使用者模式實 作1 3 0所執行之作業,其發生的頻率很高時,例如:傳送 和接收訊息。(注意:為了讓一應用程式能進入核心模式 實作 1 40,會將其從從使用者模式切換至核心模式,但之 後會將其從核心模式切換回使用者模式。) 第二,核心模式實作1 4 0大致包含核心模式所獨有之 作業。為了從介面卡1 5 0傳送和接收訊息,通常這些作業 會利用更多的基本作業。然而,如上所述,為了提升效能, 避免讓一處理從使用者模式轉換到核心模式,像傳送和接 收訊息般頻繁的作業很有可能會包含在使用者模式實作 9 1292123
96r I 年月曰修yb正替換頁丨 1 3 0中。就如同上述的情況,從核心模式切換至使用者模 式以進行使用者模式實作 1 3 0,然後再切換回核心模式, 會產生額外的負擔,造成無法達到最佳效能。 由於使用者模式處理和核心模式處理的不同,一處理 的使用者模式實作也會與核心模式實作不同。傳統上,一 作業的每一使用者模式實作1 3 0提供與該作業相對應之核 心模式實作1 4 0相同,但適合使用者模式處理的功能。然 而,根據本發明,以及第2A-2C圖中範例硬體驅動程式模 型的說明,使用者模式實作1 3 0和核心模式實作1 40共享 一通用介面。(在第1圖中,這個通用介面是使用者模式 實作1 3 0和核心模式實作1 4 0的一部分,且並無單獨顯示。) 因此,一核心模式通訊作業和一使用者模式通訊作業可使 用相同的原始碼。利用相同的原始碼(例如:由一通用原 始碼開發出的靜態函式庫)對減少開發時間、測試時間和 程式錯誤都有很大的幫助,因為只要撰寫及測試少數的程 式碼即可。該通用介面也會提供開發者指引,告知如何根 據可透過該通用介面取得的常式設計軟體。 當然,有些作業為核心模式實作1 40所獨有。舉例而 言,由於該核心負責安全的工作,因此只能在核心模式實 作1 40下起始和終止存取介面卡1 5 0。一旦核心模式實作 140(在應用程式110之下)賦予介面卡150適當的安全參 數後,介面卡1 5 0在其被存取時會執行相對應之安全檢 查,例如驗證該存取處理已經由核心模式實作1 40合法授 10 1292123 mnrm一年月曰修(
權。 第2A-2C圖說明根據本發明之一範例硬體驅動程式模 型,該模型包含共用使用者模式和核心模式作業的單一實 作。InfiniBand應用程式21 0A透過使用者模式函式庫23 〇 a 以及透過核心模式小連接埠(m i n i ρ 〇 r t )驅動程式2 4 Ο A存 取主機通道介面卡(「HCA介面卡」)28 OA。有一種很實 用的方式是透過使用者模式函式庫230A(與其相對者為核 心模式小連接埠驅動程式240A )存取HCA介面卡280A, 因為有一 InfiniBand硬體架構的範例顯示無須對該介面卡 進行某些安全檢查和其他處理。起始和終止存取透過核心 模式作業控制,以確保適當的安全層級。然而在起始之後, 頻繁通訊作業(例如:傳送和接收資料)的安全性由該HC A 硬體執行’並且需考慮極高速使用者模式存取。舉例而言, 如下述對第2C圖的說明’核心模式小連接埠驅動程式 240A負責建立和解除通訊仵列,而使用者模式函式庫 2 3 0 A允使用者模式資料傳送至該{^八介面卡28〇人的通 訊佇列。
InfiniBand應用程式 210A首先呼叫使用者模式 InfiniBand 函式庫 220A ’ 該 InfiniBand 函式庫 220A 可藉 由5主冊負料庫内的具體組態資訊,得知使用者模式函式庫 230A。從某方面來說,使用者模式函式庫230可以視為是 使用者模式InfiniBand函式庫220A的延伸。該使用者模 式函式庫230A為其所支援的常式而匯出一大家所熟知的 11 1292123
應用程式界面(「API」)(以分派表的形式呈現)。在 一實施例中,使用者模式函式庫2 3 Ο A如同一動態連結資 料庫(「DLL」)般執行。雖然並非並要,但infiniBand 大部分的優點都能透過該使用者模式函式庫2 3 Ο A所提供 不進入核心模式(kernel-bypass) 10的功能實現。
InfiniBand函式庫220A顯示一抽象而一般的HCA裝 置介面。該使用者模式函式庫23 0A的廠商指定(vendor specific )函式庫232A會將該InfiniBand函式庫220A的 抽象性對映至該 HCA 介面卡 280A 的硬體指定 (hardware-specific )作業。小連接埠驅動程式240A的廠 商指定函式庫242 A也與該廠商指定函式庫相同,下面還 會再詳細描述。因此,廠商指定函式庫232A和廠商指定 函式庫242A至少一部份是表示一與處理模式無關 (「PMI」)的HC A 10存取函式庫。 使用者模式InfiniBand函式庫220A也透過Hca埠 250A和小連接埠驅動程式240A存取HCA介面卡280A。 除了康商指定函式庫242A,小連接璋驅動程式240A也包 含核心模式介面卡控制和輔助函數(helper functions ) 244A以及類別代理程式(ciass agents ) 246A。其他關於 Hca瑋250A、小連接埠驅動程式240A和HCA介面卡280A 間的關係將於後續對第2B圖說明時描述。Hca埠25 0A也 允許從其他核心模式客戶端27〇A(例如:利用一11(^埠客 戶端API的RNDIS小連接埠)存取HCA介面卡280A。該 12 I292123
Ca埠25 OA啟動各種類別管理子系統,包含子網路管理員 A 連線管理貝264A和效能管理員266A。 參考第2B圖’ Hca埠250B提供一抽象且一般的hca 震置介面。如同使用者模式函式庫23〇a和廠商指定函式 庠232A,小連接埠驅動程式240B和廠商指定函式庫242B 將該Hca埠250B的抽象性對映至該HCA介面卡28〇b的 體扎定作業。如上所述,小連接埠驅動程式24〇B的廠 $指定函式庫242B以及使用者模式函式庫23〇A的廠商指 κ函式庫232A與廠商指定PMI函式庫相同。(梭心指定 吊式在核心模式介面卡控制和輔助函數244b内執行。)此
Hca埠25 0B會為該小連接埠驅動程式的類別代理程式 246B備妥一環境。
Hca埠25 0B建製一作業環境讓小連接埠24〇B得以使 用作業系統的功能,例如:記憶體分派、註冊表存取和連 接埠/暫存器存取。為了要避免小連接埠的開發人員會遭遇 某些複雜的設計,以及促進廠商指定函式庫232A和廢商 指定函式庫242B使用單一資源目標的達成,將不允許直 接呼叫該作業系統。Hca埠25 0B也會將小連接埠驅動程式 240B的要求串列化( serianze ),所以該小連接埠的開發 人員無須處理序列化的問題。記憶體資源是從該作業系統 的不分頁記憶體區(non-paged memory pool)分派。
Hca 埠 250B 為 InfiniBand 客戶端提供 InfiniBan(i 資 源官理。相較之下’小連接璋驅動程式2 4 0 B並不提供 13 1292123
InfiniBand資源管理,而是如同該jjca埠管理方法的延伸。 小連接埠驅動程式240B使Hca埠250B避免有該HCA介 面卡2 8 〇 B的廉商指定作業語意(s e m an t j c s )。一小連接 埠資訊結構會提供Hca埠250B該小連接埠控制/輔助和 PMI 10存取回呼(callback)常式。 第2C圖顯示infiniBand應用程式210C透過使用者模 式InfiniBand函式庫220C,以及「具備廠商指定函式庫 232C的使用者模式函式庫230C」或「Hca埠250C和具備 介面卡輔助函數244C的小連接埠240C」存取hca介面卡 2 8 0C。該介面卡控制和輔助函數處理兩個要求。第一,讓 典型的驅動程式能對HCA介面卡280C進行一般的控制和 作業’例如:起始和停止該小連接埠驅動程式、1〇匯流排 資源指派和管理(10、記憶體和中斷)、隨插即用 (plug-and-play)命令的處理,以及處理電源管理命令。 第二個要求是關於支援核心模式辅助函數。這些特殊 權限的函數係由該小連接埠執行,以提供有秩序的通訊資 源管理(communication resource management),包含: (i )保護域(p r 〇 t e c t i ο n d 〇 m a i η )管理,例如:保護域的 建立和解除,以及當需要時分配保護域;(ii )轉換和保 護表(translation andprotection table)管理,例如:轉換 和保護表的建立和解除,以及表格項目的控制和管理,包 含記憶體區域和記憶體視窗(memory windows )的建立和 解除,(111 )事件要求管理,例如:事件佇列的建立和解 14
1292123 除,以及處理事件佇列的事件;(iv )完成佇列(completion queue )管理,例如:完成佇列的建立和解除,以及將一完 成"ί 丁列與該HCA介面卡繫結和解除繫結(binding and unbinding ) , ( v )工作佇列管理,例如:一工作仔列的 建立和解除、支援程式化工作佇列屬性、以及將工作佇列 與該HCA介面卡建立繫結;(vi )位址向量表(address vector table )管理,例如:位址向量表的建立和解除(在 某些情況下這可能是該保護域管理功能的一部份);以及 (v i i )支援多點傳送(m u 11 i c a s t ),例如:多點傳送群組 的建立和解除。 該處理模式獨立函式庫(例如:廠商指定函式庫23 2 c 和廠商指定函式庫242B )靜態連結到小連接埠24〇c和使 用者模式函式庫23 0C。如上所述,將該函式庫變為一通用 的原件’可減少開發、維護和測試一 HCA小連接埠的所耗 費的時間和精力。大致而言,該PMI函式庫的函數有一或 多個分配到的内容特定延伸區。該延伸區為pMI工作區, 該PMI函數利用其以建立該處理内容。根據該處理内容, 名對應的使用者模式或核心模式實作會因--般的命名函 數而被呼叫或對映。 A PMI廠商指定函式庫提供三種一般的功能形式:⑴ 該保濃域/ 7°成佇列/工作佇列(「PD/CQ/WQ」)的使用者 模式之建立和解除,(⑴將1〇佇列傳到配置給該使用者模 式處理的仔列對暫存器’以& ( iii )藉由-繫結要求控制 15
1292123 記憶體視窗。用來支援建立和解除PD/CQ/WQ的PMI常 式,其執行有兩個步驟。第一個步驟,在核心模式内由該 小連接埠取得配置一佇列對所需的資源。第二個步驟,如 果一要求失敗,檢查該結果,釋放分派給該處理的資源。 10要求會直接控制一分派的佇列對。極少架構會有10要 求和記憶體視窗控制的負擔,因為高頻寬和低延遲相當重 要。·
第3圖顯示根據本發明,包含共用使用者模式和核心 模式作業的單一實作之範例方法。雖然這些方法以特定的 順序予以說明,但本發明並不受此特定之順序或組合所限 制。包含與一硬體介面卡有關之核心模式處理和使用者模 式處理所通用的一或多個作業之單一實作可包含以下方 法:定義(3 1 0 )核心模式處理和使用者模式處理所通用的 至少一作業之一通用介面;提供(320 )與該名稱相應之至 少一作業的一核心模式實作;提供(3 3 0 )與該名稱相應之 至少一作業的一使用者模式實作;提供(340 )核心模式處 理所獨有的一或多個作業之一核心模式實作;以及如果一 處理為核心模式實作,則對映(3 5 0 ) —或多個通用介面呼 叫至該核心模式實作,而如果該處理為使用者模式實作則 對映至該使用者模式實作。 本發明實施例至少包含一或多個特殊功能和/或一或 多個一般功能的電腦,該電腦包含各種電腦硬體,詳如下 述。本發明範圍内的實施例也包含電腦可讀媒體,其傳輸 16 1292123 H 3Τ[ 年月曰修(身正替換頁j 或具有館存在其上之電腦可執行指 ^ 貝科結構。這樣的 一白σ碩媒體可以是可由一一般功能或 竹沐功能電腦存取 之媒體。舉例而言(但不限於此),這趕AA a 乂樣的電腦可讀媒體 至 >、包含 RAM、ROM、EEPR〇m、Cd_r〇 存、磁碟錯存或其他磁性錯存裝置,或 1 ^ , 且 4任何其他可用來傳 輸或储存以電滕可執行指令或資料結構為形式的程式瑪之 媒體,而這些其他之媒體可一处 所存取。“或特殊功能電腦 當資訊透過-網路或其他通訊連結(可以是有線、無 線’或有線或無線之結合) 裎 、 奋、目 V傳輪或k供至一電腦,該電腦 曰1〜連結為一電腦可 , 可稱 媒體因此,任何這樣的連結都 了被%之為電腦可讀媒體。 棋俨 上述的結合也包含在電腦可讀 媒體的靶圍内。電腦可 能電^ n 曰7 ,至少包含能讓一 一般功 月匕Έ月自、特殊功能 C功处, 或特殊功能處理裝置執行某此功能 或功‘組之指令和資料。 干一刀月匕 第4圖和下述說明 提供-簡要、-般的.、 施本發明之合適運算環境, 用一般由網路内、ϋ兄明。雖然並非必要,但本發明將利 力又田網路内的雷 予以描述。大致而」 于之指令(例如··程式模組) 元件、資料結構等;式模組包含常式、程式、物件、 象資料型態。電腦可執::行特定之工作或實施特定之抽 組為執行本發明所揭+仃令、相關的資料結構和程式模 行指令或相關資料結:的方:步驟之程式碼示例。該可執 之特定順序為實施這些步驟所述的 17 1292123 方法之示例。 習知技藝人士皆明暸,本發明可在具有多種形式之電 腦系統組態的網路運算環境下實施,該電腦系統組態包含 個人電腦、手持裝置、多處理器系統、具備微電腦或可程 式化的消費電子、網路電腦、迷你電腦、大型電腦等等。 本發明也可在分散式運算環境下實施,在該分散式運算環 境下,各個工作由透過通訊網路連結(可以是有線、無線, 或有線或無線之結合)之區域和遠端處理裝置執行。在一 分散式運算環境中,程式模組可能存放在區域和遠端記憶 儲存裝置中。 參考第4圖,一實施本發明的範例系統包含一以傳統 電腦420為形式之一般功能運算裝置,該傳統電腦420包 含一處理單元421、一系統記憶體422和一與多個系統元 件相隅合之系統匯流排 423,該系統元件包含與該處理單 元421相連之系統記憶體422。該系統匯流排423可以是 任何形式的匯流排架構,包含記憶體匯流排或記憶體控制 器、周邊匯流排和各種匯流排架構的區域匯流排。該系統 記憶體包含唯讀記憶體(ROM ) 424和隨機存取記憶體 (RAM ) 425。一基本輸入/輸出系統(BIOS) 426,包含 可幫助該電腦4 2 0内元件之間資訊傳遞的基本常式(例如 在開機時),該基本輸入/輸出系統可儲存在ROM424之中。 該電腦420尚可包含一可讀寫磁性硬碟439之磁性硬 碟機427、一可讀寫可移動式磁碟429之磁碟機428,和一 18 1292123 胃::移動式光碟431 (例如:cd_r〇m或其他光學媒 :)之光碟機43。。該磁性硬碟機42?、磁碟機心和光碟 430 ,別藉由一硬碟機介面432、一磁碟機介面433和 =介面434,與該系統匯流排423相連接。該驅動 式和其相連繫之電腦可讀媒體,可將該電腦420的電腦 可執饤…資料結構、程式模組和其他資料作非揮發性 儲存。雖然此處所述的範例環境係利用—磁性硬碟439、 一可移動式磁碟429和一可移動式光碟431,但也可使用 其他可儲存資料的電腦可讀媒體,其包含磁帶、快閃記憶 卡數位視5孔衫碟、白努利磁片(B e r η 〇 u 11 i c a r t r i d g e s )、 RAMs、R〇ms 等等。 程式碼至少包含一或多個程式模組,其可儲存在該硬 碟 439、磁碟 429、光碟 431、r〇m424 或 RAM425,包含 一作業系統43 5、一或多個應用程式436、其他程式模組 437和程式資料43 8。一使用者可透過鍵盤44〇、指向裝置 442或其他輸入裝置(未顯示,例如:麥克風、搖桿、遊 戲控制器(game p ad )、碟型衛星信號绛收器、掃描器等 等)’將指令和資訊輸入該電腦42〇。這些或其他輸入裝置 通常藉由一與系統匯流排423相隅合之序列埠介面446與 處理單元42 1相連。或者,該輸入裝置可尤其他介面連接, 例如:並列埠、遊戲控制器或通用序列匯流排(USB )。一 監視裔447或其他顯示裝置也是藉由一介面,例如顯示卡 448 ’與系統匯流排423相連接。除了監視器外,典型的個 人電腦包含其他周邊輪出裝置(未標示),例如:揚聲器和 19 1292123 印表機。 該電腦420可在一網路環境中執行,並與一或多個遠 端電腦(例如:遠端電腦449a和449b )建立邏輯連結。 遠端電腦449a和449b可以是個人電腦、伺服器、路由器、 網路電腦、對等裝置或其他常見的網路節點,雖然第4圖 只說明了記憶儲存裝置450a和450b及其相聯繫之應用程 式436a和436b,但典型的遠端電腦包含上述與該電腦420 有關之多個或所有的元件。第4圖所述之邏輯連結包含一 區域網路(LAN ) 4 5 1和一廣域網路(WAN ) 4 5 2,此為例 示且不限於此。這樣的網路環境在辦公室或企業的電腦網 路、内部網路(intranets )和網際網路都常見到。 當在一 LAN網路環境時,該電腦420會透過一網路介 面或介面卡 4 5 3連接到區域網路4 5 1。當在一 WAN網路 環境時,該電腦420可包含數據機454、無線連結,或其 他透過該廣域網路 4 5 2 (例如:網際網路)建立通訊之方 法或裝置。該數據機454可以是内建或外接式,且藉由該 序列埠介面446與該系統匯流排423相連。在一網路環境 中,使用在該電腦420或其部分元件之程式模組,可儲存 在該遠端記憶儲存裝置中。習知技藝人士皆明暸此處所示 之網路連結為一範例,也可利用其他透過該廣域網路 4 5 2 建立通訊之方法或裝置。 以上詳述了根據本發明揭露之實施例,但習知技藝的 人士皆明暸,可於在不逾越本發明下述申請專利範圍的範 疇下,可對本發明進行修改。 20 (Ή r. η 干月
1292123 【圖式簡單說明】 為描述本發明之功能與優點,將利用特定的實施例說 明,本發明之圖示將描述典型之實施例,但並不因此限制 本發明之範疇。 第1圖顯示一高階區塊圖,說明根據本發明,一包含 共用使用者模式和核心模式作業的單一實作之硬體驅動程 式模型; 第2A-2C圖說明根據本發明之一範例硬體驅動程式模 型; 第3圖顯示根據本發明,包含共用使用者模式和核心 模式作業的單一實作之範例方法; 第4圖說明一範例系統,該系統提供一適合執行本發 明之作業環境。 【元件代表符號簡單說明】 11 0應用程式 1 2 0使用者模式介面 1 3 0使用者模式實作 140核心模式實作 1 5 0介面卡 210Α、210C InfiniBand 應用程式 21
1292123 220A、220C使用者模式InfiniBand函式庫 230A、23 0C使用者模式函式庫 232A、232C、242A、242B廠商指定函式庫 240A、240B核心模式小連接埠驅動程式 240C小連接埠 244A、244B核心模式介面卡控制和輔助函數 244C介面卡輔助函數 246A、246B類別代理程式(SM和PM代理程式) 250A、250B、250C Hca 埠 262A子網路管理員 264A連線管理員 266A效能管理員 270A核心模式客戶端 280A、280B、280 C 主機通道介面卡 310定義通用介面 3 20為通用作業提供核心模式實作 3 30為通用作業提供使用者模式實作 3 40為獨有的作業提供核心模式實作 3 50對映通用介面呼叫 420傳統電腦 421處理單元 422系統記憶體 423系統匯流排 22 1292123
424唯讀記憶體(ROM ) 425隨機存取記憶體(RAM)
426基本輸入/輸出系統(BIOS 427磁性硬碟機 428磁碟機 429可移動式磁碟 430光碟機 431可移動式光碟 432硬碟機介面 433磁碟機介面 434光碟機介面 435作業系統 436 、 436a 、 436b 應用程式 437其他程式模組 43 8程式資料 439硬碟 440鍵盤 442指向裝置 447監視器 448顯示卡 449a、449b遠端電腦 450a、450b記憶儲存裝置 4 5 1區域網路(L A N ) 23
1292123 452廣域網路(WAN ) 4 5 3網路介面 454 數據機
24
Claims (1)
- 1292123 十、申請專利範圍: 1. 一種能容許關於一硬體介面卡之核心模式處理和使用 者模式處理所通用的一或多個作業之一單一實作的方 法,該方法係適用於一包含能夠在下述模式之至少一者 中作業之一或多個處理:(i) 一相對較少限制之核心模 式,和(ii) 一相對較多限制之使用者模式,的電腦系 統,以及適用於一能讓該一或多個處理透過一通訊連結 與至少一硬體裝置進行通訊的該硬體介面卡,該方法包 含下述步驟: 為核心模式處理和使用者模式處理所通用之至少 一作業定義一通用介面名稱; 為至少一與該名稱相應之作業提供一核心模式實 作; 為至少一與該名稱相應之作業提供一使用者模式 實作;以及 對一特定處理而言,將一或多個通用介面呼叫對映 (m a p p i n g)至(i )該核心模式實作,如果該特定處理為 一核心模式實作,以及呼叫對映至(i i )該使用者模式 實作,如果該特定處理為一使用者模式實作。 2. 如申請專利範圍第1項所述之方法,其中該至少一作業 對應至一通訊作業,該通訊作業讓一使用者模式處理直 25 129213 rxrr 日修(: 接存取該硬體介面卡,無須切換至核心摸式。 3 .如申請專利範圍第2項所述之方法,更包含提供核心模 式處理所獨有之一或多個作業之一核心模式實作的一 動作。 4.如申請專利範圍第3項所述之方法,其中核心模式處理 所獨‘有之該一或多個作業係對應至一或多個通訊作 業,以供透過該硬體介面卡來起始和終止通訊,而其中 核心模式處理和使用者模式處理所通用之該至少一作 業的通用介面係對應至一通訊作業,以供透過該硬體介 面卡傳送和接收資訊。 5 .如申請專利範圍第3項所述之方法,其中核心模式處理 所獨有之該一或多個作業的至少其中之一者可指定用 於實施該硬體介面卡的安全參數。 6. 如申請專利範圍第1項所述之方法,其中該對映會在執 行時(r u n t i m e )發生。 7. 如申請專利範圍第1項所述之方法,其中該對映是靜態 的0 26號麵案?^年Γ月修正8 .如申請專利範圍第1項所述之方法,其中該硬體介面卡 為一 InfiniBand主機通道介面卡。 9. 一種記載電腦可執行指令之電腦可讀取媒體,其中該電 腦可執行指令可實施一能容許關於一硬體介面卡之核 心模式處理和使用者模式處理所通用的一或多個作業 之一單一實作的方法,該電腦可讀取媒體可適用於一包 含能在下述模式至少一者中作業之一或多個處理:(i) 一相對較少限制之核心模式,和(Π) —相對較多限制 之使用者模式,的電腦系統,及適用於能讓一或多個處 理透過一通訊連結與至少一硬體裝置進行通訊的該硬 體介面卡,其中該方法包含下述步驟: 為至少一核心模式處理和使用者模式處理所通用 之作業定義一通用介面名稱; 為至少一與該名稱相應之作業提供一核心模式實 作; 為至少一與該名稱相應之作業提供一使用者模式 實作;以及 對一特定處理而言,將一或多個通用介面呼叫對映 至(i )該核心模式實作,如果該特定處理為一核心模 式實作,以及呼叫對映至(i i )該使用者模式實作,如 果該特定處理為一使用者模式實作。 271292123 1 Ο.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 至少一作業係對應至一通訊作業,該通訊作業讓一使用 者模式處理直接存取該硬體介面卡,無須切換至核心模 式0 1 1.如申請專利範圍第1 0項所述之電腦可讀取媒體,其中該 方法更包含提供核心模式處理所獨有之一或多個作業 之一核心模式實作的一動作。 1 2.如申請專利範圍第1 1項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業係對應至一或多 個通訊作業,以供透過該硬體介面卡來起始和終止通 訊,而其中核心模式處理和使用者模式處理所通用之至 少一作業的該通用介面係對應至一通訊作業,以供透過 該硬體介面卡傳送和接收訊息。 1 3 .如申請專利範圍第11項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業的至少其中之一 者會可指定用於實施該硬體介面卡的安全參數。 1 4.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 對映會在執行時發生。 281292123 1 5 .如申請專利範圍第9項所述之電錙可讀取媒體,其中該 對映是靜態的。 1 6.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 硬體介面卡為一 InfiniBand主機通道介面卡。 17. —種記載電腦可執行指令之電腦可讀取媒體,其中該電 腦可執行指令可實施一能容許關於一硬體通訊介面卡 之核心模式處理和使用者模式處理所通用的一或多個 作業之一單一實作的方法,其中該電腦可執行指令包 含: 一介面模組,其係用於針對核心模式處理和使用者 模式處理所通用的一或多個作業識別一通用的名稱和 參數列表; 一核心模式實作模組,其係用於實施在核心模式内 所執行之該一或多個作業; 一使用者模式實作模組,其係用於實施在使用者模 式内所執行之該一或多個作業;以及 一分派模組,其係用於如果一呼叫處理為一核心模 式處理,則該分派模組會啟動該核心模式實作模組,而 如果該呼叫處理為一使用者模式處理,則啟動該使用者 模式實作模組。 29 12921231 8.如申請專利範圍第1 7項所述之電腦可讀取媒體,其中該 使用者模式實作模組提供可直接存取該硬體通訊介面 卡,無須切換至核心模式。 1 9.如申請專利範圍第1 7項所述之電腦可讀取媒體,更包含 一核心模式所獨有之貫作模組’其實施核心模式處理所 獨有之一或多個作業。 20.如申請專利範圍第1 9項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業的至少其中之一 者可指定用於實施該硬體通訊介面卡的安全參數。 2 1 .如申請專利範圍第1 9項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業至少包含一或多 個特殊權限作業,而其中該核心模式處理和使用者模式 處理所通用之一或多個作業對應至一或多個非特殊權 限作業。 22.如申請專利範圍第2 1項所述之電腦可讀取媒體,其中該 一或多個特殊權限作業係透過該硬體通訊介面卡進行 起始和終止通訊,而其中該一或多個非特殊權限作業係 透過該硬體通訊介面卡進行傳送和接收訊息。 301292123 2 3 .如申請專利範圍第1 7項所述之電腦可讀取媒體,其中該 分派模組靜態連結至該核心模式實作模組和該使用者 模式實作模組。 24.如申請專利範圍第1 7項所述之電腦可讀取媒體,其中該 分派模組於執行時(a t r u n t i m e )係動態的啟動該核心 模式實作模組或該使用者模式實作模組。 2 5 .如申請專利範圍第1 7項所述之電腦可讀取媒體,更包含 一抽象硬體通訊介面卡模組,其係用於針對該硬體通訊 介面卡實施一般性的功能。 2 6.如申請專利範圍第25項所述之電腦可讀取媒體,其中該 核心模式實作模組為一小連接埠模組的部分,該小連接 埠模組針對該抽象硬體通訊介面卡模組的一般性的功 能實施硬體通訊介面卡指定作業。 27.如申請專利範圍第1 7項所述之電腦可讀取媒體,其中該 硬體通訊介面卡為一 InfiniBand主機通道介面卡。 31
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/185,122 US7024672B2 (en) | 2002-06-26 | 2002-06-26 | Process-mode independent driver model |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200402656A TW200402656A (en) | 2004-02-16 |
TWI292123B true TWI292123B (en) | 2008-01-01 |
Family
ID=29717985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092113898A TWI292123B (en) | 2002-06-26 | 2003-05-22 | Method and computer-readable medium of allowing for single implementation of operations common to both kernel mode processing and user mode processing relative to the hardware adapter |
Country Status (14)
Country | Link |
---|---|
US (2) | US7024672B2 (zh) |
EP (1) | EP1376372B1 (zh) |
JP (1) | JP4721627B2 (zh) |
KR (1) | KR101002489B1 (zh) |
CN (1) | CN1470989B (zh) |
AU (1) | AU2003204350B2 (zh) |
BR (1) | BRPI0302041B1 (zh) |
CA (1) | CA2428456A1 (zh) |
HK (1) | HK1058982A1 (zh) |
MX (1) | MXPA03005366A (zh) |
MY (1) | MY154679A (zh) |
RU (1) | RU2327208C2 (zh) |
TW (1) | TWI292123B (zh) |
ZA (1) | ZA200303731B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI765328B (zh) * | 2020-08-27 | 2022-05-21 | 技嘉科技股份有限公司 | 顯示卡的模式切換裝置 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024672B2 (en) * | 2002-06-26 | 2006-04-04 | Microsoft Corporation | Process-mode independent driver model |
CN1270229C (zh) * | 2002-12-31 | 2006-08-16 | 上海科泰世纪科技有限公司 | 基于动态内核实现跨地址空间创建构件对象的方法 |
US20040243783A1 (en) * | 2003-05-30 | 2004-12-02 | Zhimin Ding | Method and apparatus for multi-mode operation in a semiconductor circuit |
EP1522923A3 (fr) * | 2003-10-08 | 2011-06-22 | STMicroelectronics SA | Architecture de processeur à plusieurs contextes d'exécution simultanés |
US7978716B2 (en) * | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
GB0408876D0 (en) | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | User-level stack |
US7756594B2 (en) * | 2004-06-14 | 2010-07-13 | Microsoft Corporation | Systems and methods for parsing flexible audio codec topologies |
US7669050B2 (en) * | 2004-06-24 | 2010-02-23 | International Business Machines Corporation | Method to enable user mode process to operate in a privileged execution mode |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8739274B2 (en) * | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
US7765558B2 (en) * | 2004-07-06 | 2010-07-27 | Authentium, Inc. | System and method for handling an event in a computer system |
US8341649B2 (en) * | 2004-07-06 | 2012-12-25 | Wontok, Inc. | System and method for handling an event in a computer system |
WO2006012610A2 (en) * | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
AU2005266945A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US20060041895A1 (en) * | 2004-08-04 | 2006-02-23 | Microsoft Corporation | Systems and methods for interfacing with codecs across an architecture optimized for audio |
US7590065B2 (en) * | 2004-08-04 | 2009-09-15 | Microsoft Corporation | Equal-opportunity bandwidth regulation |
US7706901B2 (en) * | 2004-10-01 | 2010-04-27 | Microsoft Corporation | Low latency real-time audio streaming |
KR101201118B1 (ko) * | 2004-11-08 | 2012-11-13 | 마이크로소프트 코포레이션 | 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법 |
US7721298B2 (en) * | 2004-12-03 | 2010-05-18 | Microsoft Corporation | Operating system performance |
US7810089B2 (en) * | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8954595B2 (en) * | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US7581051B2 (en) * | 2005-05-16 | 2009-08-25 | Microsoft Corporation | Method for delivering interrupts to user mode drivers |
US7464189B2 (en) * | 2005-05-23 | 2008-12-09 | International Business Machines Corporation | System and method for creation/deletion of linear block address table entries for direct I/O |
US7552240B2 (en) * | 2005-05-23 | 2009-06-23 | International Business Machines Corporation | Method for user space operations for direct I/O between an application instance and an I/O adapter |
US7502872B2 (en) * | 2005-05-23 | 2009-03-10 | International Bsuiness Machines Corporation | Method for out of user space block mode I/O directly between an application instance and an I/O adapter |
US20060265525A1 (en) * | 2005-05-23 | 2006-11-23 | Boyd William T | System and method for processor queue to linear block address translation using protection table control based on a protection domain |
US20070005815A1 (en) * | 2005-05-23 | 2007-01-04 | Boyd William T | System and method for processing block mode I/O operations using a linear block address translation protection table |
US7502871B2 (en) * | 2005-05-23 | 2009-03-10 | International Business Machines Corporation | Method for query/modification of linear block address table entries for direct I/O |
US20070168567A1 (en) * | 2005-08-31 | 2007-07-19 | Boyd William T | System and method for file based I/O directly between an application instance and an I/O adapter |
US7577761B2 (en) * | 2005-08-31 | 2009-08-18 | International Business Machines Corporation | Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation |
US7657662B2 (en) * | 2005-08-31 | 2010-02-02 | International Business Machines Corporation | Processing user space operations directly between an application instance and an I/O adapter |
US7500071B2 (en) * | 2005-08-31 | 2009-03-03 | International Business Machines Corporation | Method for out of user space I/O with server authentication |
US7634678B2 (en) * | 2006-02-07 | 2009-12-15 | Omx Technology Ab | Application software initiated speedup |
US8954045B2 (en) * | 2006-09-29 | 2015-02-10 | Qualcomm Incorporated | Method and apparatus for managing resources at a wireless device |
WO2009151888A2 (en) * | 2008-05-19 | 2009-12-17 | Authentium, Inc. | Secure virtualization system software |
KR100971234B1 (ko) * | 2008-07-22 | 2010-07-21 | 김기영 | 이중 피복 금형 |
US8473964B2 (en) * | 2008-09-30 | 2013-06-25 | Microsoft Corporation | Transparent user mode scheduling on traditional threading systems |
US8321874B2 (en) * | 2008-09-30 | 2012-11-27 | Microsoft Corporation | Intelligent context migration for user mode scheduling |
JP4576452B2 (ja) * | 2008-11-06 | 2010-11-10 | イーソル株式会社 | オペレーティングシステムおよび情報処理装置 |
US8654134B2 (en) | 2008-12-08 | 2014-02-18 | Microsoft Corporation | Command remoting |
CN101894019B (zh) * | 2010-06-12 | 2014-10-01 | 中山大学 | 一种嵌入式Linux操作系统网络加速运行的系统及方法 |
US9176795B2 (en) * | 2010-12-13 | 2015-11-03 | Advanced Micro Devices, Inc. | Graphics processing dispatch from user mode |
US9176794B2 (en) * | 2010-12-13 | 2015-11-03 | Advanced Micro Devices, Inc. | Graphics compute process scheduling |
US8533812B1 (en) * | 2011-03-03 | 2013-09-10 | Symantec Corporation | Systems and methods for securing access to kernel devices |
US20130086558A1 (en) * | 2011-09-29 | 2013-04-04 | Microsoft Corporation | Testing Program Code in Multiple Process Modes |
US8850557B2 (en) | 2012-02-29 | 2014-09-30 | International Business Machines Corporation | Processor and data processing method with non-hierarchical computer security enhancements for context states |
KR101895453B1 (ko) | 2011-11-09 | 2018-10-25 | 삼성전자주식회사 | 이기종 컴퓨팅 환경에서 보안 강화 방법 및 장치 |
US9405682B2 (en) * | 2012-06-23 | 2016-08-02 | Microsoft Technology Licensing, Llc | Storage device access using unprivileged software code |
KR101907486B1 (ko) * | 2012-09-14 | 2018-10-12 | 한국전자통신연구원 | 보안성이 우수한 실행환경을 제공하는 이동 컴퓨팅 시스템 |
US8881176B2 (en) | 2013-03-15 | 2014-11-04 | Silicon Graphics International Corp. | Block device management |
US9158914B2 (en) | 2013-04-19 | 2015-10-13 | Crowdstrike, Inc. | Executable component injection utilizing hotpatch mechanisms |
US9817776B2 (en) | 2015-01-19 | 2017-11-14 | Microsoft Technology Licensing, Llc | Memory descriptor list caching and pipeline processing |
CN105159703B (zh) * | 2015-08-04 | 2018-06-05 | 广东欧珀移动通信有限公司 | 恢复出厂设置的方法和系统 |
US10200308B2 (en) | 2016-01-27 | 2019-02-05 | Oracle International Corporation | System and method for supporting a scalable representation of link stability and availability in a high performance computing environment |
US11271870B2 (en) | 2016-01-27 | 2022-03-08 | Oracle International Corporation | System and method for supporting scalable bit map based P_Key table in a high performance computing environment |
US10057119B2 (en) * | 2016-08-23 | 2018-08-21 | Oracle International Corporation | System and method for supporting fast hybrid reconfiguration in a high performance computing environment |
US10560373B2 (en) * | 2017-04-06 | 2020-02-11 | Gvbb Holdings S.A.R.L. | System and method for timely and uniform distribution for real-time packet transmission |
EP4036728A1 (fr) * | 2021-01-29 | 2022-08-03 | Atos Integration | Procédé de diffusion de paquets d'information à une pluralité de destinataires dans un réseau |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
KR940007680A (ko) * | 1992-09-30 | 1994-04-27 | 로버트 에이. 에셀만 | 메모리 할당 요구의 축소 방법 및 시스템 |
EP0610677A3 (en) * | 1993-02-12 | 1995-08-02 | Ibm | Communication device management module operating in two modes. |
US5584023A (en) * | 1993-12-27 | 1996-12-10 | Hsu; Mike S. C. | Computer system including a transparent and secure file transform mechanism |
DE69530731D1 (de) * | 1994-07-22 | 2003-06-18 | Sun Microsystems Inc | Verfahren und Gerät für Speicherplatzeffiziente Kommunikation zwischen Prozessen |
US5481719A (en) * | 1994-09-09 | 1996-01-02 | International Business Machines Corporation | Exception handling method and apparatus for a microkernel data processing system |
US5956507A (en) * | 1996-05-14 | 1999-09-21 | Shearer, Jr.; Bennie L. | Dynamic alteration of operating system kernel resource tables |
US6212574B1 (en) * | 1997-04-04 | 2001-04-03 | Microsoft Corporation | User mode proxy of kernel mode operations in a computer operating system |
US6209041B1 (en) * | 1997-04-04 | 2001-03-27 | Microsoft Corporation | Method and computer program product for reducing inter-buffer data transfers between separate processing components |
US6205492B1 (en) * | 1997-04-04 | 2001-03-20 | Microsoft Corporation | Method and computer program product for interconnecting software drivers in kernel mode |
US6111894A (en) * | 1997-08-26 | 2000-08-29 | International Business Machines Corporation | Hardware interface between a switch adapter and a communications subsystem in a data processing system |
US6321337B1 (en) * | 1997-09-09 | 2001-11-20 | Sanctum Ltd. | Method and system for protecting operations of trusted internal networks |
US5926775A (en) * | 1997-10-08 | 1999-07-20 | National Instruments Corporation | Mini driver software architecture for a data acquisition system |
US6131163A (en) * | 1998-02-17 | 2000-10-10 | Cisco Technology, Inc. | Network gateway mechanism having a protocol stack proxy |
JPH11249937A (ja) * | 1998-02-26 | 1999-09-17 | Nippon Telegr & Teleph Corp <Ntt> | コンピュータシステム |
US6134567A (en) * | 1998-06-03 | 2000-10-17 | Hewlett-Packard Company | High resolution alphanumeric character generation |
US6871350B2 (en) * | 1998-12-15 | 2005-03-22 | Microsoft Corporation | User mode device driver interface for translating source code from the user mode device driver to be executed in the kernel mode or user mode |
US6598169B1 (en) * | 1999-07-26 | 2003-07-22 | Microsoft Corporation | System and method for accessing information made available by a kernel mode driver |
US20020165978A1 (en) * | 2001-05-07 | 2002-11-07 | Terence Chui | Multi-service optical infiniband router |
US7007157B2 (en) * | 2001-10-30 | 2006-02-28 | Microsoft Corporation | Network interface sharing methods and apparatuses that support kernel mode data traffic and user mode data traffic |
US7024672B2 (en) * | 2002-06-26 | 2006-04-04 | Microsoft Corporation | Process-mode independent driver model |
-
2002
- 2002-06-26 US US10/185,122 patent/US7024672B2/en not_active Expired - Lifetime
-
2003
- 2003-05-12 MY MYPI20031766A patent/MY154679A/en unknown
- 2003-05-12 CA CA002428456A patent/CA2428456A1/en not_active Abandoned
- 2003-05-14 ZA ZA200303731A patent/ZA200303731B/xx unknown
- 2003-05-22 TW TW092113898A patent/TWI292123B/zh not_active IP Right Cessation
- 2003-05-26 AU AU2003204350A patent/AU2003204350B2/en not_active Ceased
- 2003-06-06 EP EP03012926.6A patent/EP1376372B1/en not_active Expired - Lifetime
- 2003-06-11 BR BRPI0302041A patent/BRPI0302041B1/pt not_active IP Right Cessation
- 2003-06-13 MX MXPA03005366A patent/MXPA03005366A/es active IP Right Grant
- 2003-06-25 CN CN031452213A patent/CN1470989B/zh not_active Expired - Fee Related
- 2003-06-25 RU RU2003119199/09A patent/RU2327208C2/ru not_active IP Right Cessation
- 2003-06-25 KR KR1020030041411A patent/KR101002489B1/ko active IP Right Grant
- 2003-06-26 JP JP2003183592A patent/JP4721627B2/ja not_active Expired - Lifetime
-
2004
- 2004-03-11 HK HK04101776.4A patent/HK1058982A1/zh not_active IP Right Cessation
-
2006
- 2006-01-26 US US11/340,345 patent/US7647496B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI765328B (zh) * | 2020-08-27 | 2022-05-21 | 技嘉科技股份有限公司 | 顯示卡的模式切換裝置 |
Also Published As
Publication number | Publication date |
---|---|
BRPI0302041B1 (pt) | 2016-02-10 |
US20060123148A1 (en) | 2006-06-08 |
AU2003204350A1 (en) | 2004-01-22 |
RU2003119199A (ru) | 2005-01-10 |
US7647496B2 (en) | 2010-01-12 |
EP1376372A2 (en) | 2004-01-02 |
EP1376372B1 (en) | 2015-09-30 |
JP4721627B2 (ja) | 2011-07-13 |
KR101002489B1 (ko) | 2010-12-17 |
TW200402656A (en) | 2004-02-16 |
ZA200303731B (en) | 2004-01-29 |
AU2003204350B2 (en) | 2009-10-08 |
CA2428456A1 (en) | 2003-12-26 |
MY154679A (en) | 2015-07-15 |
CN1470989B (zh) | 2010-05-26 |
US20040003137A1 (en) | 2004-01-01 |
RU2327208C2 (ru) | 2008-06-20 |
KR20040002683A (ko) | 2004-01-07 |
CN1470989A (zh) | 2004-01-28 |
MXPA03005366A (es) | 2004-01-22 |
HK1058982A1 (zh) | 2004-06-11 |
BR0302041A (pt) | 2004-09-08 |
EP1376372A3 (en) | 2008-07-30 |
US7024672B2 (en) | 2006-04-04 |
JP2004054934A (ja) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI292123B (en) | Method and computer-readable medium of allowing for single implementation of operations common to both kernel mode processing and user mode processing relative to the hardware adapter | |
EP2327016B1 (en) | Methods, systems and computer program products for an n-port network adaptor interchangeable between a network switch/router and a network adaptor | |
US6205492B1 (en) | Method and computer program product for interconnecting software drivers in kernel mode | |
US7856653B2 (en) | Method and apparatus to protect policy state information during the life-time of virtual machines | |
US9176713B2 (en) | Method, apparatus and program storage device that provides a user mode device interface | |
TWI239160B (en) | Remote booting method and apparatus applied in WAN based on IP technique | |
US7451197B2 (en) | Method, system, and article of manufacture for network protocols | |
US20090113173A1 (en) | Computer system and method that eliminates the need for an operating system | |
US20050060443A1 (en) | Method, system, and program for processing packets | |
CN1640089A (zh) | 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制 | |
JP2004038758A (ja) | 記憶制御装置、記憶制御装置の制御方法、及びプログラム | |
JP2008539484A (ja) | ユニバーサル・シリアル・バス機能のデリゲーション | |
US20120227053A1 (en) | Distributed resource management in a portable computing device | |
JP4233635B2 (ja) | アプリケーション・インタフェースに持続性を提供するための装置および方法 | |
US20090164749A1 (en) | Coupled symbiotic operating systems | |
JP2006164265A (ja) | サブシステム間のリソース共有の可能化 | |
JP2006164266A (ja) | オペレーティングシステムのパフォーマンスの改善 | |
US8966506B2 (en) | Method and apparatus for managing related drivers associated with a virtual bus driver | |
US20210392091A1 (en) | User-mode protocol stack-based network isolation method and device | |
KR20070061098A (ko) | 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법 | |
GB2409310A (en) | Avoiding name collision for ACPI control methods | |
JP2001188745A (ja) | 制御装置及び制御方法 | |
US11601515B2 (en) | System and method to offload point to multipoint transmissions | |
Kwon et al. | Design and implementation of peripheral sharing mechanism on pervasive computing with heterogeneous environment | |
KR20080106188A (ko) | 객체지향 애플리케이션의 탐색 방법, 통신 방법 및 컴퓨터 판독가능 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |