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 PDF

Info

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
Application number
TW092113898A
Other languages
English (en)
Other versions
TW200402656A (en
Inventor
L Callender Robin
Ganapathy Narayanan
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200402656A publication Critical patent/TW200402656A/zh
Application granted granted Critical
Publication of TWI292123B publication Critical patent/TWI292123B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (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)

  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 )該使用者模式實作,如 果該特定處理為一使用者模式實作。 27
    1292123 1 Ο.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 至少一作業係對應至一通訊作業,該通訊作業讓一使用 者模式處理直接存取該硬體介面卡,無須切換至核心模 式0 1 1.如申請專利範圍第1 0項所述之電腦可讀取媒體,其中該 方法更包含提供核心模式處理所獨有之一或多個作業 之一核心模式實作的一動作。 1 2.如申請專利範圍第1 1項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業係對應至一或多 個通訊作業,以供透過該硬體介面卡來起始和終止通 訊,而其中核心模式處理和使用者模式處理所通用之至 少一作業的該通用介面係對應至一通訊作業,以供透過 該硬體介面卡傳送和接收訊息。 1 3 .如申請專利範圍第11項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業的至少其中之一 者會可指定用於實施該硬體介面卡的安全參數。 1 4.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 對映會在執行時發生。 28
    1292123 1 5 .如申請專利範圍第9項所述之電錙可讀取媒體,其中該 對映是靜態的。 1 6.如申請專利範圍第9項所述之電腦可讀取媒體,其中該 硬體介面卡為一 InfiniBand主機通道介面卡。 17. —種記載電腦可執行指令之電腦可讀取媒體,其中該電 腦可執行指令可實施一能容許關於一硬體通訊介面卡 之核心模式處理和使用者模式處理所通用的一或多個 作業之一單一實作的方法,其中該電腦可執行指令包 含: 一介面模組,其係用於針對核心模式處理和使用者 模式處理所通用的一或多個作業識別一通用的名稱和 參數列表; 一核心模式實作模組,其係用於實施在核心模式内 所執行之該一或多個作業; 一使用者模式實作模組,其係用於實施在使用者模 式内所執行之該一或多個作業;以及 一分派模組,其係用於如果一呼叫處理為一核心模 式處理,則該分派模組會啟動該核心模式實作模組,而 如果該呼叫處理為一使用者模式處理,則啟動該使用者 模式實作模組。 29 1292123
    1 8.如申請專利範圍第1 7項所述之電腦可讀取媒體,其中該 使用者模式實作模組提供可直接存取該硬體通訊介面 卡,無須切換至核心模式。 1 9.如申請專利範圍第1 7項所述之電腦可讀取媒體,更包含 一核心模式所獨有之貫作模組’其實施核心模式處理所 獨有之一或多個作業。 20.如申請專利範圍第1 9項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業的至少其中之一 者可指定用於實施該硬體通訊介面卡的安全參數。 2 1 .如申請專利範圍第1 9項所述之電腦可讀取媒體,其中核 心模式處理所獨有之該一或多個作業至少包含一或多 個特殊權限作業,而其中該核心模式處理和使用者模式 處理所通用之一或多個作業對應至一或多個非特殊權 限作業。 22.如申請專利範圍第2 1項所述之電腦可讀取媒體,其中該 一或多個特殊權限作業係透過該硬體通訊介面卡進行 起始和終止通訊,而其中該一或多個非特殊權限作業係 透過該硬體通訊介面卡進行傳送和接收訊息。 30
    1292123 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
TW092113898A 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 TWI292123B (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI765328B (zh) * 2020-08-27 2022-05-21 技嘉科技股份有限公司 顯示卡的模式切換裝置

Families Citing this family (60)

* Cited by examiner, † Cited by third party
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
US8341649B2 (en) * 2004-07-06 2012-12-25 Wontok, Inc. System and method for handling an event in a computer system
US7765558B2 (en) * 2004-07-06 2010-07-27 Authentium, Inc. System and method for handling an event in a computer system
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
EP1771998B1 (en) * 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
US7590065B2 (en) * 2004-08-04 2009-09-15 Microsoft Corporation Equal-opportunity bandwidth regulation
US20060041895A1 (en) * 2004-08-04 2006-02-23 Microsoft Corporation Systems and methods for interfacing with codecs across an architecture optimized for audio
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
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
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
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
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
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
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
US7500071B2 (en) * 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
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
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
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
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操作系统网络加速运行的系统及方法
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US9176795B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics processing dispatch from user mode
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 广东欧珀移动通信有限公司 恢复出厂设置的方法和系统
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
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
JP6929863B2 (ja) * 2016-08-23 2021-09-01 オラクル・インターナショナル・コーポレイション 高性能コンピューティング環境における高速ハイブリッド再構成をサポートするためのシステムおよび方法
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)

* Cited by examiner, † Cited by third party
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
US6205492B1 (en) * 1997-04-04 2001-03-20 Microsoft Corporation Method and computer program product for interconnecting software drivers in kernel mode
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
US6212574B1 (en) * 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
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
IL126148A (en) * 1997-09-09 2004-02-19 Sanctum Ltd Method and system for maintaining restricted operating environments for application programs or operating systems
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI765328B (zh) * 2020-08-27 2022-05-21 技嘉科技股份有限公司 顯示卡的模式切換裝置

Also Published As

Publication number Publication date
CN1470989A (zh) 2004-01-28
BRPI0302041B1 (pt) 2016-02-10
US20060123148A1 (en) 2006-06-08
EP1376372B1 (en) 2015-09-30
KR20040002683A (ko) 2004-01-07
US7024672B2 (en) 2006-04-04
JP4721627B2 (ja) 2011-07-13
ZA200303731B (en) 2004-01-29
CN1470989B (zh) 2010-05-26
US7647496B2 (en) 2010-01-12
AU2003204350B2 (en) 2009-10-08
EP1376372A3 (en) 2008-07-30
RU2327208C2 (ru) 2008-06-20
AU2003204350A1 (en) 2004-01-22
TW200402656A (en) 2004-02-16
BR0302041A (pt) 2004-09-08
EP1376372A2 (en) 2004-01-02
US20040003137A1 (en) 2004-01-01
CA2428456A1 (en) 2003-12-26
RU2003119199A (ru) 2005-01-10
MY154679A (en) 2015-07-15
MXPA03005366A (es) 2004-01-22
HK1058982A1 (zh) 2004-06-11
JP2004054934A (ja) 2004-02-19
KR101002489B1 (ko) 2010-12-17

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
US6205492B1 (en) Method and computer program product for interconnecting software drivers in kernel mode
US9176713B2 (en) Method, apparatus and program storage device that provides a user mode device interface
US8040900B2 (en) N-port network adaptor
TWI239160B (en) Remote booting method and apparatus applied in WAN based on IP technique
US20070118723A1 (en) Computer system and method that eliminates the need for an operating system
US7451197B2 (en) Method, system, and article of manufacture for network protocols
US8631414B2 (en) Distributed resource management in a portable computing device
US20050060443A1 (en) Method, system, and program for processing packets
CN1640089A (zh) 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制
JP2004038758A (ja) 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7996648B2 (en) Coupled symbiotic operating systems
JP4233635B2 (ja) アプリケーション・インタフェースに持続性を提供するための装置および方法
JP2006164265A (ja) サブシステム間のリソース共有の可能化
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
US8966506B2 (en) Method and apparatus for managing related drivers associated with a virtual bus driver
JP2019164661A (ja) 情報処理装置、情報処理方法及びプログラム
KR20070061098A (ko) 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법
US8813075B2 (en) Virtual computer system and method of installing virtual computer system
GB2409310A (en) Avoiding name collision for ACPI control methods
JP2001188745A (ja) 制御装置及び制御方法
JP2007018195A (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

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees