JP2005521935A - System and method for controlling access between devices in a computer system - Google Patents

System and method for controlling access between devices in a computer system Download PDF

Info

Publication number
JP2005521935A
JP2005521935A JP2003580989A JP2003580989A JP2005521935A JP 2005521935 A JP2005521935 A JP 2005521935A JP 2003580989 A JP2003580989 A JP 2003580989A JP 2003580989 A JP2003580989 A JP 2003580989A JP 2005521935 A JP2005521935 A JP 2005521935A
Authority
JP
Japan
Prior art keywords
access
signal
memory
bus
address
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2003580989A
Other languages
Japanese (ja)
Other versions
JP4799822B2 (en
Inventor
エス. ストロンジン ジェフリー
シー. バーンズ ブライアン
シュミット ロドニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2005521935A publication Critical patent/JP2005521935A/en
Application granted granted Critical
Publication of JP4799822B2 publication Critical patent/JP4799822B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Accommodation For Nursing Or Treatment Tables (AREA)
  • Aiming, Guidance, Guns With A Light Source, Armor, Camouflage, And Targets (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

対象となるデバイス(414A〜414D)に対してアクセスセキュリティを提供する装置及び方法である。この装置は伝送媒体(408,412)に接続されるように構成されたセキュリティチェックユニット(416,418)を含む。セキュリティチェックユニット(416,418)は、伝送媒体(408,412)上の信号を監視し、伝送媒体(408,412)に接続された第1のデバイス(414A〜414D)によって伝送媒体(408,412)に接続された第2のデバイス(414A〜414D)へアクセスする試行を信号に基づいて検出するように構成されている。セキュリティチェックユニット(416,418)はまた、信号に基づいて第1のデバイス(414A〜414D)を識別し、第1のデバイス(414A〜414D)による第2のデバイス(414A〜414D)へのアクセスを第1のデバイス(414A〜414D)の識別結果に従って制御するように構成されている。An apparatus and a method for providing access security to a target device (414A to 414D). The apparatus includes a security check unit (416, 418) configured to be connected to a transmission medium (408, 412). The security check unit (416, 418) monitors a signal on the transmission medium (408, 412) and is transmitted by the first device (414A to 414D) connected to the transmission medium (408, 412). 412) is configured to detect an attempt to access a second device (414A-414D) connected to 412) based on the signal. The security check unit (416, 418) also identifies the first device (414A-414D) based on the signal and accesses the second device (414A-414D) by the first device (414A-414D). Are controlled according to the identification result of the first device (414A to 414D).

Description

本発明は、概して、コンピュータシステムに関し、特にコンピュータシステム要素に対するアクセス保護を行う構造及び方法に関する。   The present invention relates generally to computer systems, and more particularly to structures and methods for providing access protection to computer system elements.

なお、本願は、2001年12月5日出願の同時係属出願番号10/011,151「メモリへのアクセスセキュリティを高めたメモリへのデバイスアクセスの処理システム及び方法(System and Method for Handling Device Accesses to a Memory Providing Increased Memory Access Security)」及び同時係属出願番号10/005,271(代理人ドケットNo.2000.055900(TT4079))「メモリへのアクセスセキュリティを高めたメモリ管理システム及び方法(Memory Management System and Method Providing Increased Memory Access Security)」、並びに本願と同一日に出願の同時係属出願番号10/108,253「領域が粒度化されており、ハードウェアが制御するメモリの暗号化を行う方法(Method Providing Region−Granular, Hardware−Controlled Memory Encryption)」に関連している。   In addition, this application is a copending application number 10 / 011,151 filed on Dec. 5, 2001, “System and Method for Handling Device Access to Memory and Device Access Processing System with Improved Access Security to Memory”. a Memory Providing Incremented Memory Access Security ”and co-pending application No. 10 / 005,271 (Attorney Docket No. 2000.055900 (TT4079))“ Memory Management System and Method for Improving Access Security to Memory (Memory Management System and Method Providing Increased Memory Access Security) ”, and co-pending application No. 10 / 108,253, filed on the same day as the present application,“ Method Providing Region-Granular, Hardware ” -Controlled Memory Encryption) ".

一般的なコンピュータシステムには、比較的低コストで比較的高レベルの性能を得るために、メモリ階層が導入されている。数種の異なるソフトウェアプログラムの命令は、通常比較的大容量であるが速度の遅い不揮発性記憶ユニット(例えばディスクドライブユニット)上に記憶されている。ユーザーがそのプログラムのうちの1つを選択して実行すると、選択されたプログラムの命令がメインメモリユニットにコピーされ、中央演算処理装置(CPU)がメインメモリユニットから選択されたプログラムの命令を得る。周知の仮想メモリ管理技術によって、CPUは、任意の時間にメインメモリユニット内のデータ構造の一部分のみを記憶することにより、メインメモリユニットよりもサイズが大きいデータ構造へのアクセスが可能になる。データ構造の残りの部分は比較的大容量であるが速度の遅い不揮発性記憶ユニット内に記憶され、必要時のみメインメモリユニットへコピーされる。   In general computer systems, a memory hierarchy is introduced to obtain a relatively high level of performance at a relatively low cost. The instructions of several different software programs are typically stored on a non-volatile storage unit (eg, disk drive unit) that is relatively large in capacity but slow. When the user selects and executes one of the programs, the instructions of the selected program are copied to the main memory unit, and the central processing unit (CPU) gets the instructions of the selected program from the main memory unit. . A well-known virtual memory management technique allows the CPU to access a data structure that is larger in size than the main memory unit by storing only a portion of the data structure in the main memory unit at any given time. The rest of the data structure is stored in a relatively large but slow-speed non-volatile storage unit and is copied to the main memory unit only when necessary.

仮想メモリは、通常、CPUのアドレス空間をページフレームまたは「ページ」と呼ばれる複数のブロックに分割することにより実施される。ページの一部分に相当するデータのみが、任意の時間にメインメモリユニットに記憶される。CPUがあるページ内においてアドレスを生成し、そのページのコピーがメインメモリユニット内に位置していない場合、データの必要なページは比較的大容量であるが速度の遅い不揮発性記憶ユニットからメインメモリユニットへコピーされる。この処理において、データの別のページをメインメモリユニットから不揮発性記憶ユニットにコピーして必要なページのための空間を空けておいてもよい。   Virtual memory is typically implemented by dividing the CPU address space into a plurality of blocks called page frames or “pages”. Only data corresponding to a portion of the page is stored in the main memory unit at any time. If the CPU generates an address in a page and the copy of the page is not located in the main memory unit, the page that requires data is a relatively large capacity but slow speed nonvolatile storage unit to main memory Copied to the unit. In this process, another page of data may be copied from the main memory unit to the non-volatile storage unit to free up space for the required page.

一般に普及している80x86(x86)プロセッサアーキテクチャには、保護されている仮想アドレスモード(つまり、プロテクトモード)をサポートする専用のハードウェア要素が含まれている。ここで、図1〜3を用いて、x86プロセッサが仮想メモリ及びメモリ保護の両機能をいかに実施するかについて説明する。図1は、x86プロセッサアーキテクチャの周知のリニア‐物理アドレス変換機構100の図である。アドレス変換機構100はx86プロセッサに組み込まれており、x86プロセッサ内で生成されたリニアアドレス102、ページテーブルディレクトリ(つまり、ページディレクトリ)104、ページテーブル106を含む複数のページテーブル、ページフレーム108を含む複数のページフレーム、及び制御レジスタ3(CR3)110を含む。ページディレクトリ104及び複数のページテーブルは、オペレーティングシステムソフトウェア(つまり、オペレーティングシステム)により生成され維持されているページングされたメモリデータ構造である。ページディレクトリ104は常にメモリ(例えばメインメモリユニット)内に位置している。説明を簡単にするために、ページテーブル106とページフレーム108もまたメモリ内にあると想定する。   The popular 80x86 (x86) processor architecture includes dedicated hardware elements that support a protected virtual address mode (ie, protected mode). Here, how the x86 processor performs both virtual memory and memory protection functions will be described with reference to FIGS. FIG. 1 is a diagram of a well-known linear-to-physical address translation mechanism 100 for the x86 processor architecture. The address translation mechanism 100 is incorporated into an x86 processor and includes a linear address 102 generated within the x86 processor, a page table directory (ie, page directory) 104, a plurality of page tables including a page table 106, and a page frame 108. A plurality of page frames and a control register 3 (CR3) 110 are included. The page directory 104 and the plurality of page tables are paged memory data structures that are generated and maintained by operating system software (ie, the operating system). The page directory 104 is always located in memory (eg, main memory unit). For ease of explanation, assume that page table 106 and page frame 108 are also in memory.

図1に示すように、リニアアドレス102は、リニア‐物理アドレス変換を実現するために3つの部分に分割されている。CR3 110の最高位ビットはページディレクトリベースレジスタを格納するのに用いられる。ページディレクトリベースレジスタとは、ページディレクトリ104が含まれているメモリページのベースアドレスである。ページディレクトリ104は、ページディレクトリエントリ112を含む複数のページディレクトリエントリを含む。リニアアドレス102の上位にある「ディレクトリインデックス」部分はリニアアドレス102の最高位ビット、つまり最上位ビットを含み、ページディレクトリ104へのインデックスとして用いられる。ページディレクトリエントリ112は、CR3 110のページディレクトリベースレジスタ及びリニアアドレス102の上位にある「ディレクトリインデックス」部分を用いて、ページディレクトリ104内から選択される。   As shown in FIG. 1, the linear address 102 is divided into three parts in order to realize linear-physical address conversion. The most significant bit of CR3 110 is used to store the page directory base register. The page directory base register is a base address of a memory page in which the page directory 104 is included. The page directory 104 includes a plurality of page directory entries including a page directory entry 112. The “directory index” portion above the linear address 102 includes the most significant bit of the linear address 102, that is, the most significant bit, and is used as an index to the page directory 104. The page directory entry 112 is selected from within the page directory 104 using the CR3 110 page directory base register and the “directory index” portion above the linear address 102.

図2はx86プロセッサアーキテクチャのページディレクトリエントリフォーマット200の図である。図2に示すように、あるページディレクトリエントリの最高位(つまり、最上位)ビットにはページテーブルベースアドレスが含まれている。ここで、ページテーブルベースアドレスとは、対応するページテーブルが含まれているメモリページのベースアドレスである。ページディレクトリエントリ112のページテーブルベースアドレスは、対応するページテーブル106を選択するのに用いられる。   FIG. 2 is a diagram of a page directory entry format 200 for the x86 processor architecture. As shown in FIG. 2, the most significant (that is, most significant) bit of a page directory entry includes a page table base address. Here, the page table base address is a base address of a memory page including a corresponding page table. The page table base address of the page directory entry 112 is used to select the corresponding page table 106.

再度図1において、ページテーブル106はページテーブルエントリ114を含む複数のページテーブルエントリを含む。リニアアドレス102の中位にある「テーブルインデックス」部分をページテーブル106へのインデックスとして用いることにより、ページテーブルエントリ114を選択する。図3はx86プロセッサアーキテクチャのページテーブルエントリフォーマット300の図である。図3に示すように、あるページテーブルエントリの最高位(つまり、最上位)ビットには、ページフレームベースアドレスが含まれている。ここで、ページフレームベースアドレスとは対応するページフレームのベースアドレスである。   Referring back to FIG. 1, the page table 106 includes a plurality of page table entries including a page table entry 114. The page table entry 114 is selected by using the “table index” portion at the middle of the linear address 102 as an index to the page table 106. FIG. 3 is a diagram of a page table entry format 300 for the x86 processor architecture. As shown in FIG. 3, the most significant (that is, most significant) bit of a page table entry includes a page frame base address. Here, the page frame base address is the base address of the corresponding page frame.

再度図1において、ページテーブルエントリ114のページフレームベースアドレスは、対応するページフレーム108を選択するのに用いられる。ページフレーム108は複数のメモリ位置を含む。リニアアドレス102の下位にある部分、つまり「オフセット」部分はページフレーム108へのインデックスとして用いられる。ページテーブルエントリ114のページフレームベースアドレスとリニアアドレス102のオフセット部分は、結合するとリニアアドレス102に相当する物理アドレスになり、ページフレーム108内のメモリ位置116を表している。メモリ位置116はリニア‐物理アドレス変換に起因する物理アドレスを有する。   Again in FIG. 1, the page frame base address of the page table entry 114 is used to select the corresponding page frame 108. The page frame 108 includes a plurality of memory locations. The portion below the linear address 102, that is, the “offset” portion is used as an index to the page frame 108. When the page frame base address of the page table entry 114 and the offset portion of the linear address 102 are combined, it becomes a physical address corresponding to the linear address 102 and represents a memory location 116 in the page frame 108. Memory location 116 has a physical address resulting from linear-to-physical address translation.

メモリ保護機能に関しては、図2のページディレクトリエントリフォーマット200及び図3のページテーブルエントリフォーマット300は、ユーザー/管理者(U/S:user/supervisor)ビット及び読み出し/書き込み(R/W)ビットを含む。U/Sビット及びR/Wビットの各内容をオペレーティングシステムが使用することにより、認証されていないアクセスから対応するページフレーム(つまり、メモリページ)を保護する。U/S=0はオペレーティングシステムメモリページを示すのに用いられ、オペレーティングシステムの「管理者」レベルに相当する。このオペレーティングシステムの管理者レベルは、x86プロセッサが実行するソフトウェアプログラム及びルーチンの現行の特権レベル0(CPL0)に相当する(管理者レベルはまた、x86プロセッサのCPL1及び/またはCPL2レベルに相当していてもよい)。U/S=1はユーザーメモリページを示すのに用いられ、オペレーティングシステムの「ユーザー」レベルに相当する。このオペレーティングシステムのユーザーレベルは、x86プロセッサのCPL3に相当する(ユーザーレベルもまた、x86プロセッサのCPL1及び/またはCPL2レベルに相当していてもよい)。   Regarding the memory protection function, the page directory entry format 200 of FIG. 2 and the page table entry format 300 of FIG. 3 have a user / administrator (U / S) bit and a read / write (R / W) bit. Including. The contents of the U / S bit and the R / W bit are used by the operating system to protect the corresponding page frame (ie, memory page) from unauthorized access. U / S = 0 is used to indicate an operating system memory page and corresponds to the “administrator” level of the operating system. The administrator level of this operating system corresponds to the current privilege level 0 (CPL0) of software programs and routines executed by the x86 processor (the administrator level also corresponds to the CPL1 and / or CPL2 level of the x86 processor). May be). U / S = 1 is used to indicate a user memory page and corresponds to the “user” level of the operating system. The user level of the operating system corresponds to CPL3 of the x86 processor (the user level may also correspond to the CPL1 and / or CPL2 level of the x86 processor).

R/Wビットは、対応するメモリページに許可されているアクセスの種類を示すのに用いられる。R/W=0は、対応するメモリページには読み出しアクセスしか許可されていないことを示している(つまり、対応するメモリページは「読み出し専用」である)。R/W=1は、対応するメモリページには読み出しアクセスと書き込みアクセスの両方が許可されていることを示している(つまり、対応するメモリページは「読み出し書き込み可能」である)。   The R / W bit is used to indicate the type of access permitted for the corresponding memory page. R / W = 0 indicates that only the read access is permitted to the corresponding memory page (that is, the corresponding memory page is “read only”). R / W = 1 indicates that both the read access and the write access are permitted for the corresponding memory page (that is, the corresponding memory page is “read / write enabled”).

図1に示すリニア‐物理アドレス変換動作中には、ページフレーム108に相当するページディレクトリエントリ112とページテーブルエントリ114の各U/Sビットの内容に対して論理積演算が行われ、それによりページフレーム108へのアクセスが認証されているかどうかを判断する。同様に、ページディレクトリエントリ112とページテーブルエントリ114の各R/Wビットの内容に対して論理積演算が行われ、それによりページフレーム108へのアクセスが認証されているかどうかを判断する。U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていると示している場合、物理アドレスを用いてメモリ位置116へのアクセスが行われる。一方、U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていないと示している場合、メモリ位置116へのアクセスは行われず、保護違反を示す信号が発生する。   During the linear-physical address conversion operation shown in FIG. 1, a logical product operation is performed on the contents of each U / S bit of the page directory entry 112 and the page table entry 114 corresponding to the page frame 108, thereby It is determined whether access to the frame 108 is authenticated. Similarly, a logical product operation is performed on the contents of each R / W bit of the page directory entry 112 and the page table entry 114 to determine whether or not access to the page frame 108 is authenticated. If each logical combination of U / S and R / W bits indicates that access to page frame 108 is authorized, then access to memory location 116 is made using the physical address. On the other hand, if each logical combination of the U / S bit and the R / W bit indicates that access to the page frame 108 is not authorized, the memory location 116 is not accessed and a signal indicating a protection violation is generated. To do.

残念ながら、上述のx86プロセッサアーキテクチャのメモリ保護機構は、メモリ内に格納したデータを保護するには十分なものではない。例えば、管理者レベル(例えば、CPL値が0)で実行する任意のソフトウェアプログラムまたはルーチンは、メモリのあらゆる部分へのアクセスが可能であると共に、メモリの「読み出し専用」(R/W=0)と標示されていない部分のいずれに対しても変更(つまり、書き込み)が可能である。さらに、管理者レベルで実行することにより、ソフトウェアプログラムまたはルーチンはメモリのあらゆる部分の属性(つまり、U/Sビット及びR/Wビット)を変えることができる。従って、ソフトウェアプログラムまたはルーチンによって、メモリの「読み出し専用」と標示されている部分のいずれに対しても「読み出し書き込み可能」(R/W=1)への変更が可能になり、さらにメモリの当該部分の変更を続けて行うことが可能になる。   Unfortunately, the memory protection mechanism of the x86 processor architecture described above is not sufficient to protect the data stored in memory. For example, any software program or routine that executes at an administrator level (eg, CPL value of 0) can access any part of the memory and “read only” (R / W = 0) of the memory. It is possible to change (that is, write) any part that is not marked with. Furthermore, by executing at the administrator level, a software program or routine can change the attributes (ie, U / S bit and R / W bit) of any part of the memory. Therefore, any part of the memory labeled “Read Only” can be changed to “Read / Write” (R / W = 1) by the software program or routine, and the memory It becomes possible to continue to change the part.

x86プロセッサアーキテクチャの保護機構はまた、メモリに動作可能に接続されたハードウェアデバイスによるメモリへの誤ったアクセス、つまり不正アクセスの防止においても不十分である。実際、ハードウェアデバイスが起動した(メモリにおける始めに上述のように変更される部分の属性を持たない)書き込みアクセスでは、メモリの「読み出し専用」と標示された部分は変更できない。また、ハードウェアデバイスとメモリ間のデータ転送を扱うソフトウェアプログラムまたはルーチン(例えば、デバイスドライバ)は、通常ユーザーレベル(例えば、CPL3)で実行し、メモリにおける管理者レベル(U/S=0)と標示された部分へのアクセスは許可されていないことも事実である。しかし、x86プロセッサアーキテクチャの保護機構は、命令を実行した結果行われたメモリへのデバイスアクセス(つまり、プログラミングされた入力/出力)のみを対象としている。デバイスドライバは、ハードウェアデバイスからメモリにおけるハードウェアデバイスがアクセス可能なあらゆる部分へデータを転送するバスマスタリング機能もしくはDMA機能を有するハードウェアデバイスをプログラミングすることができる。例えば、フロッピーディスクコントローラに対して、フロッピーディスクからメモリにおけるオペレーティングシステムを格納するのに用いられる部分へ直接データを転送するようにプログラミングすることは比較的易しい。   The protection mechanism of the x86 processor architecture is also inadequate in preventing erroneous access to the memory, ie unauthorized access, by a hardware device operably connected to the memory. In fact, in a write access initiated by the hardware device (without the attribute of the portion that is changed at the beginning in the memory), the portion of the memory labeled “Read Only” cannot be changed. Also, a software program or routine (for example, a device driver) that handles data transfer between a hardware device and a memory is normally executed at a user level (for example, CPL3), and an administrator level (U / S = 0) in the memory. It is also true that access to the marked part is not permitted. However, the protection mechanism of the x86 processor architecture covers only device accesses to memory (ie, programmed inputs / outputs) that result from executing instructions. The device driver can program a hardware device having a bus mastering function or a DMA function that transfers data from the hardware device to any part of the memory accessible by the hardware device. For example, it is relatively easy to program a floppy disk controller to transfer data directly from a floppy disk to the portion of the memory used to store the operating system.

さらに、x86プロセッサアーキテクチャの保護機構はデバイス間アクセスのアドレス指定を行わない。ハードウェアデバイスを含むコンピュータシステムの全ての構成要素は、通常、通信を容易に行うために、互いに動作可能に結合している。システムの初期化(つまり、「ブートアップ」)中、CPUは、所望の機能を行うように各ハードウェアデバイスを構成する命令(つまり、プログラム)を実行する。コンピュータシステムの通常動作中、CPUと各ハードウェアデバイスは既定のプロトコルを用いて互いへのアクセスを行う。しかし、第2のハードウェアデバイスから機密情報を得るために、または第2のハードウェアデバイスにおいてプログラミングされている機能を変更するために、不正なデバイスドライバソフトウェアが、バスマスタリング機能やDMA機能を有する第1のハードウェアデバイスを第2のハードウェアデバイスにアクセスするようにプログラミングする場合がある。このようなアクセスが、結果的に、物理的なダメージを第2のハードウェアデバイスにもたらすような動作をするように第2のハードウェアデバイスをプログラミングしてしまう場合もある。   In addition, the x86 processor architecture protection mechanism does not address inter-device access. All components of a computer system, including hardware devices, are typically operably coupled to one another for easy communication. During system initialization (ie, “boot-up”), the CPU executes instructions (ie, programs) that configure each hardware device to perform a desired function. During normal operation of the computer system, the CPU and each hardware device access each other using a predetermined protocol. However, in order to obtain confidential information from the second hardware device or to change the function programmed in the second hardware device, the unauthorized device driver software has a bus mastering function or a DMA function. A first hardware device may be programmed to access a second hardware device. Such an access may result in programming the second hardware device to operate in such a way as to cause physical damage to the second hardware device.

本発明のある態様において、ある装置が提供されている。この装置は、伝送媒体に接続するように構成されたセキュリティチェックユニット(SCU)を含む。このSCUは、伝送媒体上の信号を監視し、伝送媒体に接続された第1のデバイスによって伝送媒体に接続された第2のデバイスへアクセスする試行を信号に基づいて検出するように構成されている。このSCUはまた、信号に基づいて第1のデバイスを識別し、第1のデバイスによる第2のデバイス(414A〜414D)へのアクセスを第1のデバイスの識別結果に従って制御するように構成されている。   In certain aspects of the invention, an apparatus is provided. The apparatus includes a security check unit (SCU) configured to connect to a transmission medium. The SCU is configured to monitor a signal on the transmission medium and detect based on the signal an attempt to access a second device connected to the transmission medium by a first device connected to the transmission medium. Yes. The SCU is also configured to identify the first device based on the signal and control access to the second device (414A-414D) by the first device according to the identification result of the first device. Yes.

本発明の他の態様では、別の装置が提供されている。この装置は、伝送媒体に接続するように構成されたセキュリティチェックユニット(SCU)を含む。このSCUは、伝送媒体上の信号を監視し、伝送媒体に接続された第1のデバイスによって伝送媒体に接続された第2のデバイスへアクセスする試行を信号に基づいて検出するように構成されている。このSCUはまた、信号に基づいて第1のデバイスを識別し、第1のデバイスが第2のデバイスへアクセスすることを認証されているかどうかを第1のデバイスの識別結果に基づいて判定するように構成されている。このSCUはまた、第1のデバイスが第2のデバイスへアクセスすることを認証されている場合、第1のデバイスによるアクセス試行を許可するように第2のデバイスを構成する構成を有する。   In another aspect of the invention, another apparatus is provided. The apparatus includes a security check unit (SCU) configured to connect to a transmission medium. The SCU is configured to monitor a signal on the transmission medium and detect based on the signal an attempt to access a second device connected to the transmission medium by a first device connected to the transmission medium. Yes. The SCU also identifies the first device based on the signal and determines whether the first device is authorized to access the second device based on the identification result of the first device. It is configured. The SCU also has a configuration that configures the second device to allow an access attempt by the first device if the first device is authorized to access the second device.

本発明のさらに別の態様では、対象となるデバイスに対してアクセスセキュリティを提供する方法を提供する。この方法は、信号を監視し、信号に基づいて対象となるデバイスへの別のデバイスによるアクセスの試行を検出する方法である。この方法はまた、信号を用いて別のデバイスを識別し、対象となるデバイスへのアクセスを別のデバイスの識別結果に従って制御する方法である。   In yet another aspect of the present invention, a method for providing access security to a target device is provided. This method is a method of monitoring a signal and detecting an access attempt by another device to the target device based on the signal. This method is also a method of identifying another device using a signal and controlling access to the target device according to the identification result of the other device.

本発明は、添付の図面に関連付けて行われる以下の説明を参照することにより理解されるであろう。以下の説明において、同等な参照符号は類似の要素を示す。   The present invention will be understood by reference to the following description taken in conjunction with the accompanying drawings. In the following description, equivalent reference numerals indicate similar elements.

本発明は様々な変更や代替形態が可能であるが、本発明の個別の実施形態は、各図面において例示として示されたものであり、ここでは詳細に説明されている。しかしながら、ここで行われている実施形態の説明は、本発明を開示された特定の形態に限定することを意図するものではなく、逆に、本発明は、添付請求項により定義されるような本発明の精神や範囲の範疇である全ての変更、均等物、及び代替物を含むものであることは理解すべきである。   While the invention is susceptible to various modifications and alternative forms, specific embodiments of the invention have been shown by way of example in the drawings and are herein described in detail. However, the description of the embodiments provided herein is not intended to limit the invention to the particular forms disclosed, but on the contrary, the invention is as defined by the appended claims. It should be understood that all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention are included.

以下に、本発明の例証となる実施形態を説明する。簡明化のため、本明細書では、実際の実施例の全ての特徴を説明してはいない。勿論、このような実際の実施形態のいずれにおける開発でも、システムや業務に関連する制約の遵守といった、実施例ごとに変わる開発者独自の目標を達成するために、各実施例に特有の決定を数多く行わなければならないことは理解されよう。さらに、このような開発の労力は、複雑で時間を消費するものであるが、それでも、本発明の開示の恩恵を受ける一般的な当業者が請け負うルーチンであろうことは理解されよう。   In the following, exemplary embodiments of the present invention will be described. For the sake of simplicity, this description does not describe all the features of the actual embodiment. Of course, development in any of these actual embodiments will require specific decisions for each example in order to achieve developer-specific goals that vary from example to example, such as compliance with system and business constraints. It will be appreciated that many things must be done. Further, it will be appreciated that such development efforts are complex and time consuming, but may still be routines undertaken by those of ordinary skill in the art to benefit from the present disclosure.

図4はコンピュータシステム400の一実施形態の図であり、コンピュータシステム400には、CPU402、システムすなわち「ホスト」ブリッジ404、メモリ406、第1のデバイスバス408(例えば、周辺機器接続すなわちPCIバス)、デバイスバスブリッジ410、第2のデバイスバス412(例えば、業界標準アーキテクチャすなわちISAバス)、及び4個のデバイスハードウェアユニット414A〜414Dが含まれている。ホストブリッジ404はCPU402、メモリ406、及びデバイスバス408に接続されている。ホストブリッジ404はCPU402とデバイスバス408との間の信号を変換し、メモリ406をCPU402とデバイスバス408に動作可能に接続する。デバイスバスブリッジ410はデバイスバス408とデバイスバス412との間に接続されており、デバイスバス408とデバイスバス412との間の信号を変換する。図4の実施形態では、デバイスハードウェアユニット414A,414Bはデバイスバス408に、デバイスハードウェアユニット414C,414Dはデバイスバス412にそれぞれ接続されている。デバイスハードウェアユニット414A〜414Dのうちの1つ以上が、例えば、記憶デバイス(例えば、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMドライブ)、通信デバイス(例えば、モデムやネットワークアダプタ)、もしくは、入出力デバイス(例えば、ビデオデバイス、オーディオデバイス、プリンタ)であってもよい。   FIG. 4 is a diagram of one embodiment of a computer system 400 that includes a CPU 402, a system or “host” bridge 404, a memory 406, and a first device bus 408 (eg, a peripheral device connection or PCI bus). , A device bus bridge 410, a second device bus 412 (eg, an industry standard architecture or ISA bus), and four device hardware units 414A-414D. The host bridge 404 is connected to the CPU 402, the memory 406, and the device bus 408. Host bridge 404 converts signals between CPU 402 and device bus 408 and operably connects memory 406 to CPU 402 and device bus 408. The device bus bridge 410 is connected between the device bus 408 and the device bus 412, and converts a signal between the device bus 408 and the device bus 412. In the embodiment of FIG. 4, the device hardware units 414A and 414B are connected to the device bus 408, and the device hardware units 414C and 414D are connected to the device bus 412. One or more of the device hardware units 414A to 414D may be, for example, a storage device (eg, hard disk drive, floppy disk drive, CD-ROM drive), communication device (eg, modem or network adapter), or input / output It may be a device (eg, video device, audio device, printer).

図4の実施形態において、CPU402はCPUセキュリティチェックユニット(SCU)416を含み、ホストブリッジ404はホストブリッジSCU418を含む。以下に詳しく述べるように、CPUSCU416は、CPU402が生成したアクセス(つまり、「ソフトウェアが起動したアクセス」)であるとともに認証されていないものからメモリ406を保護し、ホストブリッジSCU418は、デバイスハードウェアユニット414A〜414Dが起動したアクセス(つまり、「ハードウェアが起動したアクセス」)であるとともに認証されていないものからメモリ406を保護する。なお、他の実施形態において、ホストブリッジ404は図4に示すようにCPU402の一部であってもよい。   In the embodiment of FIG. 4, CPU 402 includes a CPU security check unit (SCU) 416 and host bridge 404 includes a host bridge SCU 418. As described in more detail below, the CPU SCU 416 protects the memory 406 from access that is generated by the CPU 402 (ie, “software-initiated access”) and is not authenticated, and the host bridge SCU 418 is a device hardware unit. The memory 406 is protected from access that is activated by 414A to 414D (that is, “access activated by hardware”) and is not authenticated. In another embodiment, the host bridge 404 may be a part of the CPU 402 as shown in FIG.

図5は、図4のコンピュータシステム400の様々なハードウェア要素及びソフトウェア要素の間の関係を示す図である。図5の実施形態において、複数のアプリケーションプログラム500、オペレーティングシステム502、セキュリティカーネル504、及びデバイスドライバ506A〜506Dがメモリ406に格納されている。アプリケーションプログラム500、オペレーティングシステム502、セキュリティカーネル504、及びデバイスドライバ506A〜506Dは、CPU402により実行される命令を含む。オペレーティングシステム502は、ユーザーインターフェイスやソフトウェア「プラットフォーム」を提供し、これらの上で、アプリケーションプログラム500が動作する。オペレーティングシステム502はまた、例えば、ファイルシステム管理、プロセス管理、入出力(I/O)制御等の基本的なサポート機能を提供してもよい。   FIG. 5 is a diagram illustrating the relationship between the various hardware and software elements of the computer system 400 of FIG. In the embodiment of FIG. 5, a plurality of application programs 500, an operating system 502, a security kernel 504, and device drivers 506 </ b> A to 506 </ b> D are stored in the memory 406. Application program 500, operating system 502, security kernel 504, and device drivers 506 </ b> A to 506 </ b> D include instructions executed by CPU 402. The operating system 502 provides a user interface and software “platform” on which the application program 500 operates. The operating system 502 may also provide basic support functions such as file system management, process management, input / output (I / O) control, and the like.

オペレーティングシステム502はまた、基本的なセキュリティ機能を提供してもよい。例えば、CPU402(図4)は、x86の命令一式の中の命令を実行するx86プロセッサであってもよい。この場合に、CPU402は、専用のハードウェア要素を備えることにより、上述のようなプロテクトモードにおいて仮想メモリとメモリ保護の特徴を両方提供してもよい。オペレーティングシステム502は、例えば、プロテクトモードでCPU402を動作させ、CPU402の専用のハードウェア要素を使用してプロテクトモードで仮想メモリとメモリ保護の両方を行うウィンドウズ(登録商標:マイクロソフト社 ワシントン州レッドモンド)系のオペレーティングシステムの一つであってもよい。   The operating system 502 may also provide basic security functions. For example, CPU 402 (FIG. 4) may be an x86 processor that executes instructions in a set of x86 instructions. In this case, the CPU 402 may provide both virtual memory and memory protection features in the protected mode as described above by providing dedicated hardware elements. The operating system 502 operates, for example, the CPU 402 in the protected mode, and performs both virtual memory and memory protection in the protected mode using a dedicated hardware element of the CPU 402 (registered trademark: Microsoft Corporation, Redmond, Washington). It may be one of the operating systems of the system.

以下に詳細に述べるように、セキュリティカーネル504は、メモリ406に格納されたデータを、認証されていないアクセスから保護するために、オペレーティングシステム502が提供したセキュリティ機能を超える追加のセキュリティ機能を提供する。図5の実施形態では、デバイスドライバ506A〜506Dはそれぞれ対応するデバイスハードウェアユニット414A〜414Dに操作可能に関連付けられ、かつ接続されている。デバイスハードウェアユニット414A,414Dは「セキュリティ保護された」デバイス[あるいは、セキュアなデバイス(secure device)]であり、対応するデバイスドライバ506A,506Dは「セキュリティ保護された」デバイスドライバである。セキュリティカーネル504はオペレーティングシステム502とセキュリティ保護されたデバイスドライバ506A,506Dの間に接続されており、アプリケーションプログラム500及びオペレーティングシステム502によるセキュリティ保護されたデバイスドライバ506A,506D及び対応するセキュリティ保護されたデバイス414A,414Dへの全てのアクセスを監視する。セキュリティカーネル504は、アプリケーションプログラム500及びオペレーティングシステム502によるセキュリティ保護されたデバイスドライバ506A,506D及び対応するセキュリティ保護されたデバイス414A,414Dへの認証されていないアクセスを防止する。   As described in detail below, the security kernel 504 provides additional security features beyond the security features provided by the operating system 502 to protect the data stored in the memory 406 from unauthorized access. . In the embodiment of FIG. 5, device drivers 506A-506D are operatively associated with and connected to corresponding device hardware units 414A-414D, respectively. Device hardware units 414A, 414D are “secure” devices [or secure devices] and corresponding device drivers 506A, 506D are “secure” device drivers. The security kernel 504 is connected between the operating system 502 and the secured device drivers 506A, 506D, and secured by the application program 500 and the operating system 502 to the secured device drivers 506A, 506D and corresponding secured devices. All accesses to 414A and 414D are monitored. Security kernel 504 prevents unauthorized access to secured device drivers 506A, 506D and corresponding secured devices 414A, 414D by application program 500 and operating system 502.

図5に示すように、セキュリティカーネル504は、(例えば、一つ以上のデバイスドライバを介して)CPUSCU416及びホストブリッジSCU418に接続されている。以下に詳細に述べるように、CPUSCU416とホストブリッジSCU418はメモリ406へのアクセスを制御する。CPUSCU416はソフトウェアが起動したメモリ406へのアクセスを全て監視し、ホストブリッジSCU418はハードウェアが起動したメモリ406へのアクセスを全て監視する。CPUSCU416及びホストブリッジSCU418は、セキュリティカーネル504によって一旦構成されてしまうと、認証されているメモリ406へのアクセスしか許可しない。   As shown in FIG. 5, the security kernel 504 is connected to the CPU SCU 416 and the host bridge SCU 418 (eg, via one or more device drivers). As described in detail below, the CPU SCU 416 and the host bridge SCU 418 control access to the memory 406. The CPU SCU 416 monitors all accesses to the memory 406 activated by software, and the host bridge SCU 418 monitors all accesses to the memory 406 activated by hardware. The CPU SCU 416 and the host bridge SCU 418 only allow access to the authenticated memory 406 once configured by the security kernel 504.

図5の実施形態では、デバイスドライバ506B,506Cは「セキュリティ保護されていない」デバイスドライバであり、対応するデバイスハードウェアユニット414B,414Cは「セキュリティ保護されていない」デバイスハードウェアユニットである。デバイスドライバ506B,506C及び対応するデバイスハードウェアユニット414B,414Cは各々、例えば、「レガシー」なデバイスドライバ及びデバイスハードウェアユニットであってもよい。   In the embodiment of FIG. 5, device drivers 506B and 506C are “unsecured” device drivers, and corresponding device hardware units 414B and 414C are “unsecured” device hardware units. Device drivers 506B, 506C and corresponding device hardware units 414B, 414C may each be, for example, “legacy” device drivers and device hardware units.

なお、他の実施形態において、セキュリティカーネル504はオペレーティングシステム502の一部であってもよい。さらに別の実施形態において、セキュリティカーネル504、デバイスドライバ506A,506D、及び/またはデバイスドライバ506B,506Cはオペレーティングシステム502の一部であってもよい。   Note that in other embodiments, the security kernel 504 may be part of the operating system 502. In yet another embodiment, the security kernel 504, device drivers 506A, 506D, and / or device drivers 506B, 506C may be part of the operating system 502.

図6は、図4のコンピュータシステム400のCPU402の一実施形態を示す図である。図6の実施形態において、CPU402は、実行ユニット600、メモリ管理ユニット(MMU)602、キャッシュユニット604、バスインターフェイスユニット(BIU)606、一組の制御レジスタ608、及び一組のセキュリティ保護実行モード(SEM)レジスタ610を含む。CPUSCU416はMMU602内に位置している。以下に詳細に述べるように、一組のSEMレジスタ610は図4のコンピュータシステム400内のセキュリティ保護実行モード(SEM)を実施するために用いられており、CPUSCU416とホストブリッジSCU418の各動作は一組のSEMレジスタ610の内容によって管理されている。SEMレジスタ610へのアクセス(例えば、書き込み及び/または読み出し)はセキュリティカーネル504(図5)によって行われる。(i)CPU402がx86プロテクトモードで動作するx86プロセッサである (ii)メモリページングが可能である (iii)SEMレジスタ610の内容によってSEMの動作が規定される場合には、図4のコンピュータシステム400は、例えば、SEMで動作してもよい。   FIG. 6 is a diagram illustrating one embodiment of the CPU 402 of the computer system 400 of FIG. In the embodiment of FIG. 6, the CPU 402 includes an execution unit 600, a memory management unit (MMU) 602, a cache unit 604, a bus interface unit (BIU) 606, a set of control registers 608, and a set of security protection execution modes ( SEM) register 610. CPUSCU 416 is located within MMU 602. As will be described in detail below, a set of SEM registers 610 are used to implement a security protection execution mode (SEM) in the computer system 400 of FIG. 4, and each operation of the CPU SCU 416 and the host bridge SCU 418 is one. It is managed by the contents of a set of SEM registers 610. Access (eg, write and / or read) to the SEM register 610 is performed by the security kernel 504 (FIG. 5). (I) The CPU 402 is an x86 processor that operates in the x86 protected mode. (Ii) Memory paging is possible. (Iii) When the SEM operation is defined by the contents of the SEM register 610, the computer system 400 of FIG. May operate, for example, in a SEM.

一般に、一組の制御レジスタ608の内容によって、CPU402の動作は管理されている。つまり、一組の制御レジスタ608の内容によって、実行ユニット600、MMU602、キャッシュユニット604、及び/またはBIU606の動作が管理されている。一組の制御レジスタ608は、例えば、x86プロセッサアーキテクチャの制御レジスタを複数含んでいてもよい。   In general, the operation of the CPU 402 is managed by the contents of a set of control registers 608. That is, the operations of the execution unit 600, the MMU 602, the cache unit 604, and / or the BIU 606 are managed by the contents of the set of control registers 608. The set of control registers 608 may include, for example, a plurality of x86 processor architecture control registers.

CPU402の実行ユニット600は、命令(例えば、x86の命令)やデータを取り出し、取り出された命令を実行し、命令の実行中に信号(例えば、アドレス、データ、制御信号)を生成する。実行ユニット600は、キャッシュユニット604に接続されているが、メモリ406(図4)からキャッシュユニット604やBIU606を介して命令を受け取ってもよい。   The execution unit 600 of the CPU 402 extracts an instruction (for example, x86 instruction) and data, executes the extracted instruction, and generates a signal (for example, address, data, control signal) during the execution of the instruction. The execution unit 600 is connected to the cache unit 604, but may receive an instruction from the memory 406 (FIG. 4) via the cache unit 604 or the BIU 606.

コンピュータシステム400のメモリ406(図4)は、各々が固有の物理アドレスを有する複数のメモリ位置を含む。CPU402のアドレス空間は、ページングが可能な状態でプロテクトモードで動作すると、ページフレームまたは「ページ」と呼ばれる複数のブロックに分割される。上述のように、ページの一部分に相当するデータのみが、任意の時間においてメモリ406内に格納される。図6の実施形態では、命令実行中に実行ユニット600が生成したアドレス信号は、セグメント化された(つまり、「論理」)アドレスを表している。以下に述べるように、MMU602は、実行ユニット600が生成したセグメント化されたアドレスを、メモリ406における対応する物理アドレスに変換する。MMU602は、キャッシュユニット604に物理アドレスを供給する。キャッシュユニット604は、実行ユニット600によって取り出されたばかりの命令やデータを格納するのに用いられる比較的小容量の記憶ユニットである。BIU606はキャッシュユニット604とホストブリッジ404の間に接続されており、キャッシュユニット604には存在していない命令やデータをメモリ406からホストブリッジ404を介して取り出すのに用いられる。   The memory 406 (FIG. 4) of the computer system 400 includes a plurality of memory locations, each having a unique physical address. The address space of the CPU 402 is divided into a plurality of blocks called page frames or “pages” when operating in the protect mode with paging enabled. As described above, only data corresponding to a portion of the page is stored in the memory 406 at any time. In the embodiment of FIG. 6, the address signal generated by execution unit 600 during instruction execution represents a segmented (ie, “logical”) address. As described below, the MMU 602 translates the segmented addresses generated by the execution unit 600 into corresponding physical addresses in the memory 406. The MMU 602 supplies a physical address to the cache unit 604. The cache unit 604 is a relatively small-capacity storage unit that is used to store instructions and data that have just been fetched by the execution unit 600. The BIU 606 is connected between the cache unit 604 and the host bridge 404, and is used for fetching instructions and data not existing in the cache unit 604 from the memory 406 via the host bridge 404.

図7は、図6のMMU602の一実施形態を示す図である。図7の実施形態において、MMU602は、セグメント化ユニット700、ページングユニット702、及び、セグメント化ユニット700とページングユニット702の両出力の間で選択して物理アドレスを生成する選択ロジック704を含む。図7に示すように、セグメント化ユニット700は、実行ユニット600からセグメント化されたアドレスを受け取り、x86プロセッサアーキテクチャにおける周知のセグメント‐リニアアドレス変換機構を用いて、対応するリニアアドレスを出力に生成する。図7に示すように、ページングユニット702は、「ページング」信号によって可能となる場合には、セグメント化ユニット700が生成したリニアアドレスを受け取り、対応する物理アドレスを出力に生成する。このページング信号は、x86プロセッサアーキテクチャに属し、かつ一組の制御レジスタ608(図6)にも属する制御レジスタ0(CR0)内に、ページングフラグ(PG)ビットをミラーリングしてもよい。ページング信号をディアサートすると、メモリページングは不可能となり、選択ロジック704はセグメント化ユニット700から受け取ったリニアアドレスを物理アドレスとして生成する。   FIG. 7 is a diagram illustrating an embodiment of the MMU 602 of FIG. In the embodiment of FIG. 7, MMU 602 includes segmentation unit 700, paging unit 702, and selection logic 704 that selects between both outputs of segmentation unit 700 and paging unit 702 to generate a physical address. As shown in FIG. 7, segmentation unit 700 receives a segmented address from execution unit 600 and generates a corresponding linear address at the output using well-known segment-linear address translation mechanisms in the x86 processor architecture. . As shown in FIG. 7, the paging unit 702 receives the linear address generated by the segmentation unit 700 and generates a corresponding physical address at the output, if enabled by the “paging” signal. This paging signal may mirror the paging flag (PG) bit in control register 0 (CR0) that belongs to the x86 processor architecture and also belongs to a set of control registers 608 (FIG. 6). When the paging signal is deasserted, memory paging is not possible and the selection logic 704 generates the linear address received from the segmentation unit 700 as a physical address.

ページング信号をアサートすると、メモリページングが可能となり、ページングユニット702は、上述のx86プロセッサアーキテクチャ(図1)のリニア‐物理アドレス変換機構100を用いて、セグメント化ユニット700から受け取ったリニアアドレスを対応する物理アドレスに変換する。上述のように、リニア‐物理アドレス変換動作中、選択されたページディレクトリエントリと選択されたページテーブルエントリの各U/Sビットの内容に対して論理積演算が行われ、それによってページフレームへのアクセスが認証されているかどうかを判定する。同様に、選択されたページディレクトリエントリと選択されたページテーブルエントリの各R/Wビットの内容に対して論理積演算が行われ、それによってページフレームへのアクセスが認証されているかどうかを判定する。U/Sビット及びR/Wビットの各論理結合がページフレームへのアクセスが認証されていると示している場合、ページングユニット702はリニア‐物理アドレス変換動作に起因する物理アドレスを生成する。選択ロジック704は、ページングユニット702が生成した物理アドレスを受け取り、ページングユニット702から受け取った物理アドレスを物理アドレスとして生成し、その物理アドレスをキャッシュユニット604に供給する。   Asserting the paging signal enables memory paging, and the paging unit 702 corresponds to the linear address received from the segmentation unit 700 using the linear-physical address translation mechanism 100 of the x86 processor architecture (FIG. 1) described above. Convert to physical address. As described above, during the linear-physical address translation operation, the logical product operation is performed on the contents of each U / S bit of the selected page directory entry and the selected page table entry, thereby Determine if access is authenticated. Similarly, an AND operation is performed on the contents of each R / W bit of the selected page directory entry and the selected page table entry, thereby determining whether or not access to the page frame is authenticated. . If each logical combination of U / S and R / W bits indicates that access to the page frame is authorized, the paging unit 702 generates a physical address resulting from the linear-to-physical address translation operation. The selection logic 704 receives the physical address generated by the paging unit 702, generates the physical address received from the paging unit 702 as a physical address, and supplies the physical address to the cache unit 604.

一方、U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていないと示している場合、ページングユニット702はリニア‐物理アドレス変換動作中に物理アドレスを生成しない。その代わり、ページングユニット702は一般保護違反(GPF)信号をアサートし、MMU602はGPF信号を実行ユニット600に送信する。GPF信号を受けて、実行ユニット600は例外ハンドラルーチンを実行してもよく、最終的にはGPF信号をアサートした時に動作しているアプリケーションプログラム500(図5)のうちの一つの実行を停止してもよい。   On the other hand, if each logical combination of the U / S bit and the R / W bit indicates that access to the page frame 108 is not authorized, the paging unit 702 does not generate a physical address during the linear-physical address translation operation. . Instead, the paging unit 702 asserts a general protection fault (GPF) signal, and the MMU 602 sends a GPF signal to the execution unit 600. Upon receipt of the GPF signal, the execution unit 600 may execute an exception handler routine, and finally stops execution of one of the application programs 500 (FIG. 5) that is operating when the GPF signal is asserted. May be.

図7の実施形態において、CPUSCU416はMMU602のページングユニット702内に位置している。ページングユニット702はまた、決定されたばかりのリニア‐物理アドレス変換を比較的少数格納する変換索引バッファ(TLB)を含んでいてもよい。   In the embodiment of FIG. 7, the CPUSCU 416 is located within the paging unit 702 of the MMU 602. The paging unit 702 may also include a translation index buffer (TLB) that stores a relatively small number of linear-to-physical address translations that have just been determined.

図8は、図7のCPUSCU416の一実施形態を示す図である。図8の実施形態において、CPUSCU416は、一組のSEMレジスタ610(図6)と接続するセキュリティチェックロジック800及びセキュリティ属性テーブル(SAT)エントリバッファ802を含む。以下に述べるように、SATエントリは、メモリページに相当するページディレクトリエントリとページテーブルエントリとのU/Sビット及びR/Wビットを越える追加セキュリティ情報を含む。セキュリティチェックロジック800は、あるSATエントリ内に格納されたこの追加セキュリティ情報を用いることにより、対応するメモリページに対するソフトウェアが起動した認証されていないアクセスを防止する。SATエントリバッファ802は、アクセスされたばかりのメモリページのSATエントリを比較的少数格納するために用いられる。   FIG. 8 is a diagram illustrating an embodiment of the CPUSCU 416 of FIG. In the embodiment of FIG. 8, CPUSCU 416 includes security check logic 800 and security attribute table (SAT) entry buffer 802 that interface with a set of SEM registers 610 (FIG. 6). As described below, the SAT entry includes additional security information beyond the U / S and R / W bits of the page directory entry and page table entry corresponding to the memory page. The security check logic 800 uses this additional security information stored in a certain SAT entry to prevent unauthenticated access by the software to the corresponding memory page. The SAT entry buffer 802 is used to store a relatively small number of SAT entries of the memory page that has just been accessed.

上述のように、一組のSEMレジスタ610を用いて、図4のコンピュータシステム400内においてセキュリティ保護実行モード(SEM)を実施する。一組のSEMレジスタ610の内容により、CPUSCU416の動作が管理される。セキュリティチェックロジック800は、MMU602から図8に示す通信バスを介して、SATエントリバッファ802に格納される情報を受け取る。セキュリティチェックロジック800はまた、ページングユニット702が生成した物理アドレスも受け取る。   As described above, a set of SEM registers 610 are used to implement a security protection execution mode (SEM) within the computer system 400 of FIG. The operation of the CPU SCU 416 is managed by the contents of the set of SEM registers 610. The security check logic 800 receives information stored in the SAT entry buffer 802 from the MMU 602 via the communication bus shown in FIG. Security check logic 800 also receives the physical address generated by paging unit 702.

ここで、図9〜11を利用して、図4のコンピュータシステム400内において、図1のアドレス変換機構100を用いて選択されたメモリページの追加セキュリティ情報を得る方法について説明する。図9は、選択されたメモリページの追加セキュリティ情報を得るために、その選択されたメモリページのSATエントリへのアクセスを行う機構900の一実施形態を示す図である。図9の機構900は、図8のセキュリティチェックロジック800内に組み込まれていてもよく、図4のコンピュータシステム400がSEMにおいて動作中に実施されてもよい。機構900は、図1のアドレス変換機構100を用いてページング機構702(図7)が生成した物理アドレス902、SATディレクトリ904、SAT906を含む複数のSAT、及び一組のSEMレジスタ610のSATベースアドレスレジスタ908を含む。SATディレクトリ104及びSAT906を含む複数のSATは、セキュリティカーネル504(図5)が生成し維持しているSEMデータ構造である。以下に述べるように、SATディレクトリ104(存在する場合)と任意の必要なSATは、アクセスされる前のメモリ406にコピーされる。   A method for obtaining additional security information of a memory page selected using the address translation mechanism 100 of FIG. 1 in the computer system 400 of FIG. 4 will be described with reference to FIGS. FIG. 9 is a diagram illustrating one embodiment of a mechanism 900 for accessing a SAT entry for a selected memory page to obtain additional security information for the selected memory page. The mechanism 900 of FIG. 9 may be incorporated within the security check logic 800 of FIG. 8, and the computer system 400 of FIG. 4 may be implemented while operating in the SEM. Mechanism 900 includes a physical address 902 generated by paging mechanism 702 (FIG. 7) using address translation mechanism 100 of FIG. 1, a plurality of SATs including SAT directory 904, SAT 906, and a SAT base address of a set of SEM registers 610. Register 908 is included. The plurality of SATs including the SAT directory 104 and the SAT 906 are SEM data structures generated and maintained by the security kernel 504 (FIG. 5). As described below, the SAT directory 104 (if present) and any required SAT are copied to the memory 406 prior to being accessed.

SATベースアドレスレジスタ908は、SATベースアドレスレジスタ908内に有効なSATディレクトリベースアドレスが存在することを意味する存在(P)ビットを含む。SATベースアドレスレジスタ908の最高位(つまり、最上位)ビットはSATディレクトリベースアドレスのために確保されている。SATディレクトリベースアドレスとは、SATディレクトリ904を含むメモリページのベースアドレスである。P=1の場合、SATディレクトリベースアドレスは有効であり、SATテーブルは各メモリページのセキュリティ属性を指定する。P=0の場合には、SATディレクトリベースアドレスは有効ではないので、SATテーブルは存在せず、各メモリページのセキュリティ属性はSATデフォルトレジスタによって決定される。   The SAT base address register 908 includes a presence (P) bit which means that there is a valid SAT directory base address in the SAT base address register 908. The most significant (ie, most significant) bit of the SAT base address register 908 is reserved for the SAT directory base address. The SAT directory base address is a base address of a memory page including the SAT directory 904. When P = 1, the SAT directory base address is valid and the SAT table specifies the security attributes of each memory page. When P = 0, the SAT directory base address is not valid, so there is no SAT table, and the security attribute of each memory page is determined by the SAT default register.

図10は、SATデフォルトレジスタ1000の一実施形態を示す図である。図10の実施形態において、SATデフォルトレジスタ1000はセキュリティ保護されたページ(SP)ビットを含む。このSPビットは全てのメモリページがセキュリティ保護されたページかどうかを表している。例えば、SP=0ならば、全てのメモリページがセキュリティ保護されたページではないであろう。また、SP=1ならば、全てのメモリページはセキュリティ保護されたページであろう。   FIG. 10 is a diagram illustrating an embodiment of the SAT default register 1000. In the embodiment of FIG. 10, the SAT default register 1000 includes secure page (SP) bits. The SP bit indicates whether all memory pages are secure pages. For example, if SP = 0, not all memory pages will be secure pages. Also, if SP = 1, all memory pages will be secure pages.

再度図9においてSATベースアドレスレジスタ908のPビットが「1」であると仮定すると、ページングロジック702(図7)が生成した物理アドレス902は、選択されたメモリページのSATエントリにアクセスするために、3つの部分に分割される。上述のように、SATベースアドレスレジスタ908のSATディレクトリベースアドレスは、SATディレクトリ904が含まれるメモリページのベースアドレスである。SATディレクトリ904は、SATディレクトリエントリ910を含む複数のSATディレクトリエントリを含む。各SATディレクトリエントリはメモリ406における対応するSATを有していてもよい。物理アドレス902の「上位」にある部分は、物理アドレス902の最高位、つまり最上位ビットを含んでおり、SATディレクトリ904へのインデックスとして用いられる。SATディレクトリエントリ910は、SATベースアドレスレジスタ908のSATディレクトリベースアドレスと物理アドレス902の上位にある部分を用いて、SATディレクトリ904内から選択される。   9 again, assuming that the P bit of the SAT base address register 908 is “1”, the physical address 902 generated by the paging logic 702 (FIG. 7) is used to access the SAT entry of the selected memory page. Divided into three parts. As described above, the SAT directory base address of the SAT base address register 908 is the base address of the memory page in which the SAT directory 904 is included. The SAT directory 904 includes a plurality of SAT directory entries including a SAT directory entry 910. Each SAT directory entry may have a corresponding SAT in memory 406. The portion of the physical address 902 “upper” includes the highest order of the physical address 902, that is, the most significant bit, and is used as an index to the SAT directory 904. The SAT directory entry 910 is selected from the SAT directory 904 using the SAT directory base address of the SAT base address register 908 and the portion above the physical address 902.

図11は、SATディレクトリエントリフォーマット1100の一実施形態を示す図である。図11によれば、各SATディレクトリエントリは、SATディレクトリエントリ内に有効なSATベースアドレスが存在することを意味する存在(P)ビットを含む。図11の実施形態において、各SATディレクトリエントリの最高位(つまり、最上位)ビットはSATベースアドレスのために確保されている。SATベースアドレスとは、対応するSATが含まれるメモリページのベースアドレスである。P=1の場合、SATベースアドレスは有効であるので、対応するSATはメモリ406に格納される。   FIG. 11 is a diagram illustrating one embodiment of a SAT directory entry format 1100. According to FIG. 11, each SAT directory entry includes a presence (P) bit which means that there is a valid SAT base address in the SAT directory entry. In the embodiment of FIG. 11, the most significant (ie, most significant) bit of each SAT directory entry is reserved for the SAT base address. The SAT base address is a base address of a memory page including a corresponding SAT. When P = 1, the SAT base address is valid, so the corresponding SAT is stored in the memory 406.

P=0の場合には、SATベースアドレスは有効ではないので、対応するSATはメモリ406には存在せず、記憶デバイス(例えばディスクドライブ)からメモリ406にコピーされねばならない。P=0の場合、セキュリティチェックロジック800はページ違反の信号をページングユニット702内のロジックに送信してもよく、MMU602はこのページ違反信号を実行ユニット600(図6)に転送することもできる。ページ違反信号を受けて、実行ユニット600は、記憶デバイスから必要なSATを検索してメモリ406に格納するページ違反ハンドラルーチンを実行してもよい。メモリ406に必要なSATを格納した後、対応するSATディレクトリエントリのPビットは「1」に設定され、機構900での処理が続行される。   When P = 0, the SAT base address is not valid, so the corresponding SAT does not exist in the memory 406 and must be copied from the storage device (eg, disk drive) to the memory 406. If P = 0, the security check logic 800 may send a page fault signal to logic in the paging unit 702, and the MMU 602 may forward the page fault signal to the execution unit 600 (FIG. 6). In response to the page fault signal, the execution unit 600 may execute a page fault handler routine that retrieves the necessary SAT from the storage device and stores it in the memory 406. After storing the required SAT in memory 406, the P bit of the corresponding SAT directory entry is set to “1” and processing at mechanism 900 continues.

再度図9において、物理アドレス902の「中位にある」部分はSAT906へのインデックスとして用いられる。SATエントリ906はSAT906内でこのようにして選択され、その際には、SATディレクトリエントリ910のSATベースアドレスと物理アドレス902の中位にある部分が用いられる。図12はSATエントリフォーマット1200の一実施形態を示す図である。図12の実施形態において、各SATエントリはセキュリティ保護されたページ(SP)ビットを含む。SPビットは選択されたメモリページがセキュリティ保護されたページかどうかを表している。例えば、SP=0ならば、選択されたメモリページがセキュリティ保護されたページではない可能性があり、また、SP=1ならば、選択されたメモリページはセキュリティ保護されたページである可能性がある。   In FIG. 9 again, the “middle” part of the physical address 902 is used as an index to the SAT 906. The SAT entry 906 is selected in this way in the SAT 906, and in this case, the middle part of the SAT base entry and the physical address 902 of the SAT directory entry 910 is used. FIG. 12 is a diagram illustrating an embodiment of a SAT entry format 1200. In the embodiment of FIG. 12, each SAT entry includes a secure page (SP) bit. The SP bit indicates whether the selected memory page is a secure page. For example, if SP = 0, the selected memory page may not be a secure page, and if SP = 1, the selected memory page may be a secure page. is there.

BIU606(図6)は、メモリ406から必要なSEMデータ構造エントリを検索して、そのSEMデータ構造エントリをMMU602に供給する。再度図8において、セキュリティチェックロジック800は、SEMデータ構造エントリを、MMU602及びページングユニット702から通信バスを介して受け取る。上述のように、SATエントリバッファ802は、アクセスされたばかりのメモリページのSATエントリを比較的少数格納するのに用いられる。セキュリティチェックロジック800は、対応する物理アドレスの「タグ」部分と共に、SATエントリバッファ802内のある特定のSATエントリを格納する。   BIU 606 (FIG. 6) retrieves the required SEM data structure entry from memory 406 and supplies the SEM data structure entry to MMU 602. Referring again to FIG. 8, the security check logic 800 receives SEM data structure entries from the MMU 602 and the paging unit 702 via the communication bus. As described above, the SAT entry buffer 802 is used to store a relatively small number of SAT entries for the memory page that has just been accessed. The security check logic 800 stores a particular SAT entry in the SAT entry buffer 802 along with the “tag” portion of the corresponding physical address.

後続のメモリページアクセス中に、セキュリティチェックロジック800によって、ページングユニット702が生成した物理アドレスの「タグ」部分とSATエントリバッファ802に格納されている各SATエントリに相当する物理アドレスのタグ部分とを比較してもよい。物理アドレスのタグ部分がSATエントリバッファ802に格納されているSATエントリに相当する物理アドレスのタグ部分と一致した場合、セキュリティチェックロジック800はSATエントリバッファ802内のSATエントリにアクセスしてもよく、それによってメモリ406からSATエントリを得るために図9のプロセスを行う必要がなくなる。セキュリティカーネル504(図5)はCPU402内のSATベースアドレスレジスタ908の内容を(例えば、コンテキストスイッチ中に)変更する。SATベースアドレスレジスタ908の変更を受けて、CPUSCU416のセキュリティチェックロジック800はSATエントリバッファ802を一括で消去してもよい。   During the subsequent memory page access, the security check logic 800 generates the “tag” portion of the physical address generated by the paging unit 702 and the tag portion of the physical address corresponding to each SAT entry stored in the SAT entry buffer 802. You may compare. If the tag portion of the physical address matches the tag portion of the physical address corresponding to the SAT entry stored in the SAT entry buffer 802, the security check logic 800 may access the SAT entry in the SAT entry buffer 802, This eliminates the need to perform the process of FIG. 9 to obtain a SAT entry from memory 406. The security kernel 504 (FIG. 5) changes the contents of the SAT base address register 908 in the CPU 402 (eg, during a context switch). In response to the change of the SAT base address register 908, the security check logic 800 of the CPU SCU 416 may erase the SAT entry buffer 802 at once.

図4のコンピュータシステム400がSEMで動作中の場合、セキュリティチェックロジック800は、現在実行中のタスク(つまり、現在実行中のの命令)の現行の特権レベル(CPL)を、中に物理アドレスがある選択されたメモリページのページディレクトリエントリ(PDE)U/Sビット、PDE R/Wビット、ページテーブルエントリ(PTE)U/Sビット、及びPTE R/Wビットと共に受け取る。セキュリティチェックロジック800は、上記の情報を、選択されたメモリページに相当するSATエントリのSPビットと共に使用して、メモリ406へのアクセスが認証されているかどうかを判定する。   If the computer system 400 of FIG. 4 is operating in an SEM, the security check logic 800 may indicate the current privilege level (CPL) of the currently executing task (ie, the currently executing instruction), with the physical address Received with a page directory entry (PDE) U / S bit, PDE R / W bit, page table entry (PTE) U / S bit, and PTE R / W bit for a selected memory page. Security check logic 800 uses the above information along with the SP bits of the SAT entry corresponding to the selected memory page to determine whether access to memory 406 is authorized.

図6のCPU402はx86プロセッサであってもよく、コードセグメント(CS)レジスタ、すなわちx86プロセッサアーキテクチャの16ビットセグメントレジスタの一つを含んでいてもよい。各セグメントレジスタは、セグメントと呼ばれる、メモリの64Kブロックを選択する。ページングが可能な状態でのプロテクトモードにおいて、CSレジスタは、メモリ406の実行可能なセグメントを示すセグメントセレクタを用いてロードされる。セグメントセレクタの最高位(つまり、最上位)ビットは、CPU402(図6)の実行ユニット600が次に実行する命令を含むメモリのセグメントを示す情報を格納するのに用いられる。命令ポインタ(IP)レジスタは、オフセットをCSレジスタが示したセグメントに格納するのに用いられる。この一対のCS:IPは、次の命令のセグメント化されたアドレスを表す。CSレジスタの最低位(つまり、最下位)にある2つのビットは、実行ユニット600が現在実行中のタスクの現行の特権レベル(CPL)を示す値(つまり、現行のタスクのCPL)を格納するのに用いられる。   The CPU 402 of FIG. 6 may be an x86 processor and may include a code segment (CS) register, one of the 16-bit segment registers of the x86 processor architecture. Each segment register selects a 64K block of memory called a segment. In protected mode with paging enabled, the CS register is loaded with a segment selector that indicates an executable segment of memory 406. The most significant (ie, most significant) bit of the segment selector is used to store information indicating the segment of memory that contains the next instruction to be executed by the execution unit 600 of the CPU 402 (FIG. 6). The instruction pointer (IP) register is used to store the offset in the segment indicated by the CS register. This pair of CS: IP represents the segmented address of the next instruction. The two lowest bits (ie, the least significant) of the CS register store a value (ie, the CPL of the current task) that indicates the current privilege level (CPL) of the task that execution unit 600 is currently executing. Used for

以下の表1に、図4のコンピュータシステム400がSEMで動作中における、CPUが起動した(つまり、ソフトウェアが起動した)メモリアクセスに対する規則の一例を示す。オペレーティングシステム502(図5)が提供したデータセキュリティを超える追加セキュリティをメモリ406に格納されたデータに対して提供するために、CPUSCU416(図4〜8)とセキュリティカーネル504(図5)が協働して、図4のコンピュータシステム400がSEMで動作中に表1の規則を実施する。   Table 1 below shows an example of a rule for memory access activated by the CPU (ie, activated by software) while the computer system 400 of FIG. 4 is operating in the SEM. The CPU SCU 416 (FIGS. 4-8) and the security kernel 504 (FIG. 5) work together to provide additional security for the data stored in the memory 406 beyond the data security provided by the operating system 502 (FIG. 5). Thus, the rules of Table 1 are implemented while the computer system 400 of FIG. 4 is operating in the SEM.

Figure 2005521935
Figure 2005521935

上記の表1において、現在実行中の命令のSPビットは、現在実行中の命令が含まれるメモリページに相当するSATエントリのSPビットである。選択されたメモリページのU/Sビットは、選択されたメモリページのPDE U/SビットとPTE U/Sビットとの論理積である。選択されたメモリページのR/Wビットは、選択されたメモリページのPDE R/WビットとPTE R/Wビットとの論理積である。符号「X」は「どちらでもよい」、つまり、論理値が「0」と「1」のいずれでもよいことを意味する。   In Table 1 above, the SP bit of the currently executing instruction is the SP bit of the SAT entry corresponding to the memory page including the currently executing instruction. The U / S bit of the selected memory page is the logical product of the PDE U / S bit and the PTE U / S bit of the selected memory page. The R / W bit of the selected memory page is a logical product of the PDE R / W bit and the PTE R / W bit of the selected memory page. The symbol “X” means “any”, that is, the logical value may be “0” or “1”.

再度図8において、CPUSCU416のセキュリティチェックロジック800は一般保護違反(「GPF」)信号及び「SEMセキュリティ例外」信号を生成し、そしてこれらのGPF信号及びSEMセキュリティ例外信号をページングユニット702内のロジックに供給する。セキュリティチェックロジック800がGPF信号をアサートすると、MMU602はGPF信号を実行ユニット600(図6)に転送する。GPF信号を受けて、実行ユニット600はx86プロセッサアーキテクチャの周知の割り込みディスクリプタテーブル(IDT)ベクタリング機構を用いてGPFハンドラルーチンへアクセスして実行してもよい。   Referring again to FIG. 8, the security check logic 800 of the CPUSCU 416 generates a general protection fault (“GPF”) signal and a “SEM security exception” signal, and these GPF signal and SEM security exception signal to the logic within the paging unit 702. Supply. When security check logic 800 asserts the GPF signal, MMU 602 forwards the GPF signal to execution unit 600 (FIG. 6). Upon receipt of the GPF signal, execution unit 600 may access and execute the GPF handler routine using the well-known interrupt descriptor table (IDT) vectoring mechanism of the x86 processor architecture.

セキュリティチェックロジック800がSEMセキュリティ例外信号をアサートすると、MMU602はそのSEMセキュリティ例外信号を実行ユニット600に転送する。x86プロセッサアーキテクチャのIDTベクタリング機構を用いる通常のプロセッサ例外とは違い、別のベクタリング方法を用いてSEMセキュリティ例外に対処してもよい。SEMセキュリティ例外は、x86の「SYSENTER」命令及び「SYSEXIT」命令が動作する方法と同様に、一対のレジスタ(例えば、モデル固有レジスタまたはMSRS)を介し迅速に送信されてもよい。この一対のレジスタは「セキュリティ例外エントリポイント」レジスタであってもよく、SEMセキュリティ例外発生時には命令実行用の分岐先アドレスを規定してもよい。このセキュリティ例外エントリポイントレジスタは、SEMセキュリティ例外ハンドラへのエントリ時に使用されるコードセグメント(CS)、命令ポインタ(IP、もしくは64ビット版RIP)、スタックセグメント(SS)、及びスタックポインタ(SP、もしくは64ビット版RSP)の各値を規定してもよい。ソフトウェア制御下では、実行ユニット600(図6)は上述のSS、SP/RSP、EFLAGS、CS、及びIP/RIPの各値を例外の発生場所を示す新しいスタック上に送り出してもよい。また、実行ユニット600は、そのスタック上にエラーコードを送り出してもよい。なお、CPLの変化が起こらなくても、上記のSS及びSP/RSPの各値は常にセーブされ、スタックの切換えが常に達成されているので、割り込み(IRET)命令からの通常のリターンを用いることはないであろう。したがって、新しい命令を規定することによりSEM例外ハンドラからのリターンを達成してもよい。   When security check logic 800 asserts the SEM security exception signal, MMU 602 forwards the SEM security exception signal to execution unit 600. Unlike normal processor exceptions that use the IDT vectoring mechanism of the x86 processor architecture, other vectoring methods may be used to deal with SEM security exceptions. SEM security exceptions may be sent quickly through a pair of registers (eg, model specific registers or MSRS), similar to the way the x86 “SYSENTER” and “SYSEXIT” instructions operate. The pair of registers may be “security exception entry point” registers, and may specify a branch destination address for instruction execution when an SEM security exception occurs. The security exception entry point register includes a code segment (CS), an instruction pointer (IP or 64-bit version RIP), a stack segment (SS), and a stack pointer (SP or) used when entering the SEM security exception handler. Each value of the 64-bit version RSP) may be defined. Under software control, execution unit 600 (FIG. 6) may send the above SS, SP / RSP, EFLAGS, CS, and IP / RIP values onto a new stack that indicates where the exception occurred. The execution unit 600 may send an error code on the stack. Even if CPL does not change, the above SS and SP / RSP values are always saved and stack switching is always achieved, so use normal return from interrupt (IRET) instruction. There will be no. Thus, a return from the SEM exception handler may be achieved by defining a new instruction.

図13は、図4のホストブリッジ404の一実施形態を示す図である。図13の実施形態において、ホストブリッジ404は、ホストインターフェイス1300、ブリッジロジック1302、ホストブリッジSCU418、メモリコントローラ1304、デバイスバスインターフェイス1306、及びバスアービター1308を含む。ホストインターフェイス1300はCPU402に、デバイスバスインターフェイス1306はデバイスバス408にそれぞれ接続されている。ブリッジロジック1302はホストインターフェイス1300とデバイスバスインターフェイス1306の間に接続されている。メモリコントローラ1304はメモリ406に接続され、メモリ406への全てのアクセスを行う。ホストブリッジSCU418はブリッジロジック1302とメモリコントローラ1304の間に接続されている。上述のように、ホストブリッジSCU418は、デバイスバスインターフェイス1306を介してメモリ406へのアクセスを制御する。ホストブリッジSCU418は、デバイスバスインターフェイス1306を介してメモリ406へのアクセスを監視し、メモリ406へのアクセスが認証されているものだけを許可する。   FIG. 13 is a diagram illustrating an embodiment of the host bridge 404 of FIG. In the embodiment of FIG. 13, the host bridge 404 includes a host interface 1300, a bridge logic 1302, a host bridge SCU 418, a memory controller 1304, a device bus interface 1306, and a bus arbiter 1308. The host interface 1300 is connected to the CPU 402, and the device bus interface 1306 is connected to the device bus 408. The bridge logic 1302 is connected between the host interface 1300 and the device bus interface 1306. The memory controller 1304 is connected to the memory 406 and performs all accesses to the memory 406. The host bridge SCU 418 is connected between the bridge logic 1302 and the memory controller 1304. As described above, the host bridge SCU 418 controls access to the memory 406 via the device bus interface 1306. The host bridge SCU 418 monitors access to the memory 406 via the device bus interface 1306 and allows only those for which access to the memory 406 is authorized.

図13の実施形態において、バスアービター1308はデバイスバスインターフェイス1306、ブリッジロジック1302、及びホストブリッジSCU418に接続されている。バスアービター1308は、ブリッジロジック1302、デバイスハードウェアユニット414A,414B(図4)、及びデバイスバス408(図4)を制御するためのデバイスバスブリッジ410(図4)の間を調整する(図4のデバイスハードウェアユニット414C,414Dはデバイスバスブリッジ410を介してデバイスバス408にアクセスする)。普通、デバイスバス408は許可信号を伝送する1つ以上の信号線を含む。ここで、許可信号は、デバイスバス408に接続するデバイスのうちどれがデバイスバス408の制御を行えるかを表している複数の状態の中の1つの状態となっている。バスアービター1308は、許可信号を伝送する1つ以上の信号線上にある許可信号を流す。バスアービター1308は、通常のように、デバイスハードウェアユニット414A,414B及びデバイスバスブリッジ410から別々の要求信号を受け取る。ここで、各要求信号は、対応するデバイスがデバイスバス408を制御する必要がある場合には、その対応するデバイスによってアサートされている。バスアービター1308は、デバイスハードウェアユニット414A,414B及びデバイスバスブリッジ410に別々の許可信号を送出してもよい。ここで、許可信号のうち所定の1つをアサートして、対応するデバイスがデバイスバス408を制御することを許可されていることを示す。以下に詳細に述べるように、バスアービター1308とホストブリッジSCU418は協働して、コンピュータシステム400内のデバイス間アクセスセキュリティを提供する。   In the embodiment of FIG. 13, the bus arbiter 1308 is connected to the device bus interface 1306, the bridge logic 1302, and the host bridge SCU 418. The bus arbiter 1308 coordinates between the bridge logic 1302, the device hardware units 414A, 414B (FIG. 4), and the device bus bridge 410 (FIG. 4) for controlling the device bus 408 (FIG. 4) (FIG. 4). Device hardware units 414C and 414D access the device bus 408 via the device bus bridge 410). Typically, the device bus 408 includes one or more signal lines that carry permission signals. Here, the permission signal is one of a plurality of states indicating which of the devices connected to the device bus 408 can control the device bus 408. The bus arbiter 1308 passes a permission signal on one or more signal lines that transmit the permission signal. The bus arbiter 1308 receives separate request signals from the device hardware units 414A, 414B and the device bus bridge 410 as usual. Here, each request signal is asserted by the corresponding device when the corresponding device needs to control the device bus 408. The bus arbiter 1308 may send separate permission signals to the device hardware units 414A and 414B and the device bus bridge 410. Here, a predetermined one of the permission signals is asserted to indicate that the corresponding device is permitted to control the device bus 408. As described in detail below, bus arbiter 1308 and host bridge SCU 418 cooperate to provide inter-device access security within computer system 400.

図14は図13のホストブリッジSCU418の一実施形態を示す図である。図14の実施形態において、ホストブリッジSCU418は、一組のSEMレジスタ1402に接続されたセキュリティチェックロジック1400及びSATエントリバッファ1404を含む。一組のSEMレジスタ1402は、セキュリティチェックロジック1400の動作を管理し、図9の第2のSATベースアドレスレジスタ908を含む。一組のSEMレジスタ1402の第2のSATベースアドレスレジスタ908は、アドレス指定が可能なレジスタであってもよい。セキュリティカーネル504(図5)が(例えば、状況を切り替えている最中に)CPU402の一組のSEMレジスタ610の中のSATベースアドレスレジスタ908の内容を変更した時は、セキュリティカーネル504は、同じ値をホストブリッジSCU418の一組のSEMレジスタ1402内の第2のSATベースアドレスレジスタ908にも書き込んでもよい。第2のSATベースアドレスレジスタ908の変更を受けて、ホストブリッジSCU418のセキュリティチェックロジック1400はSATエントリバッファ1404を一括で消去してもよい。   FIG. 14 is a diagram illustrating an embodiment of the host bridge SCU 418 of FIG. In the embodiment of FIG. 14, the host bridge SCU 418 includes security check logic 1400 and a SAT entry buffer 1404 connected to a set of SEM registers 1402. A set of SEM registers 1402 manages the operation of the security check logic 1400 and includes the second SAT base address register 908 of FIG. The second SAT base address register 908 of the set of SEM registers 1402 may be an addressable register. When the security kernel 504 (FIG. 5) changes the contents of the SAT base address register 908 in the set of SEM registers 610 of the CPU 402 (eg, while switching status), the security kernel 504 is the same The value may also be written to the second SAT base address register 908 in the set of SEM registers 1402 of the host bridge SCU 418. In response to the change in the second SAT base address register 908, the security check logic 1400 of the host bridge SCU 418 may erase the SAT entry buffer 1404 at once.

セキュリティチェックロジック1400は、ハードウェアデバイスユニット414A〜414D(図4)が起動したメモリアクセスのメモリアクセス信号を、デバイスバスインターフェイス1306及びブリッジロジック1302(図13)を介して受け取る。このメモリアクセス信号は、ハードウェアデバイスユニット414A〜414Dからの物理アドレスと、関連する制御信号及び/またはデータ信号を伝送する。セキュリティチェックロジック1400は、対応するメモリページのSATエントリを得るための機構900(図9)を組み込んでいてもよく、図4のコンピュータシステム400がSEMで動作中には機構900を実施してもよい。SATエントリバッファ1404は上述のCPUSCU416(図8)のSATエントリバッファ802と類似しており、最近のアクセスされたメモリページのSATエントリを比較的少数格納するのに用いられる。   The security check logic 1400 receives the memory access signal of the memory access activated by the hardware device units 414A to 414D (FIG. 4) via the device bus interface 1306 and the bridge logic 1302 (FIG. 13). This memory access signal carries the physical address and associated control and / or data signals from the hardware device units 414A-414D. The security check logic 1400 may incorporate a mechanism 900 (FIG. 9) for obtaining a SAT entry for the corresponding memory page, and may implement the mechanism 900 while the computer system 400 of FIG. 4 is operating in the SEM. Good. The SAT entry buffer 1404 is similar to the SAT entry buffer 802 of the CPUSCU 416 (FIG. 8) described above and is used to store a relatively small number of SAT entries for recently accessed memory pages.

図4のコンピュータシステム400がSEMで動作中、図14のセキュリティチェックロジック1400は、選択されたメモリページに関連したSATエントリの追加セキュリティ情報を用いて、ハードウェアが起動した所定のメモリアクセスが認証されているかどうかを判定する。このハードウェアが起動した所定のメモリアクセスが認証されている場合、セキュリティチェックロジック1400によって、メモリアクセスのメモリアクセス信号(つまり、物理アドレスを伝送するアドレス信号と関連する制御信号及び/またはデータ信号)がメモリコントローラ1304に供給される。メモリコントローラ1304は、物理アドレスと関連する制御信号及び/またはデータ信号を用いてメモリ406にアクセスする。メモリ406へのアクセスが書き込みアクセスの場合、データ信号が伝送するデータはメモリ406に書き込まれる。メモリ406へのアクセスが読み出しアクセスの場合、メモリコントローラ1304はメモリ406からデータを読み出し、セキュリティチェックロジック1400に読み出したデータを供給する。セキュリティチェックロジック1400は読み出したデータをブリッジロジック1302に転送し、ブリッジロジック1302はそのデータをデバイスバスインターフェイス1306に供給する。   While the computer system 400 of FIG. 4 is operating in the SEM, the security check logic 1400 of FIG. 14 uses the additional security information of the SAT entry associated with the selected memory page to authenticate the predetermined memory access initiated by the hardware. Determine whether it has been. If the predetermined memory access activated by this hardware is authenticated, the memory access signal for memory access (that is, the control signal and / or data signal associated with the address signal for transmitting the physical address) is issued by the security check logic 1400. Is supplied to the memory controller 1304. The memory controller 1304 accesses the memory 406 using control signals and / or data signals associated with physical addresses. When the access to the memory 406 is a write access, the data transmitted by the data signal is written to the memory 406. When the access to the memory 406 is a read access, the memory controller 1304 reads data from the memory 406 and supplies the read data to the security check logic 1400. The security check logic 1400 transfers the read data to the bridge logic 1302, and the bridge logic 1302 supplies the data to the device bus interface 1306.

一方、ハードウェアが起動した所定のメモリアクセスが認証されていない場合、セキュリティチェックロジック1400による、メモリ406へのアクセスの物理アドレスや関連する制御信号及び/またはデータ信号のメモリコントローラ1304への供給は行われない。ハードウェアが起動した認証されていないメモリアクセスがメモリ書き込みアクセスである場合、セキュリティチェックロジック1400はメモリ406には変更を加えずに、書き込みアクセス完了の信号を出して書き込みデータを破棄してもよい。セキュリティチェックロジック1400はまた、セキュリティアクセス違反を記録に残すために、ログの中にログエントリを形成(例えば、状態レジスタの1つ以上のビットを設定もしくはクリアする)してもよい。セキュリティカーネル504は、ログに周期的にアクセスして、そのようなログエントリがあるかどうかをチェックしてもよい。ハードウェアが起動した認証されていないメモリアクセスがメモリ読み出しアクセスの場合、セキュリティチェックロジック1400は、ブリッジロジック1302を介してデバイスバスインターフェイス1306に、違反であるという結果(例えば、全て「F」)を読み出しデータとして返す。セキュリティチェックロジック1400は同様に、上述のようなログエントリを、セキュリティアクセス違反を記録に残すために形成してもよい。   On the other hand, if the predetermined memory access activated by the hardware is not authenticated, the security check logic 1400 supplies the physical address of access to the memory 406 and the related control signal and / or data signal to the memory controller 1304. Not done. If the non-authenticated memory access activated by the hardware is a memory write access, the security check logic 1400 may issue a write access completion signal and discard the write data without making any changes to the memory 406. . The security check logic 1400 may also form a log entry in the log (eg, set or clear one or more bits of the status register) to record security access violations. The security kernel 504 may periodically access the log to check for such log entries. If the unauthenticated memory access activated by the hardware is a memory read access, the security check logic 1400 may indicate a violation (eg, all “F”) to the device bus interface 1306 via the bridge logic 1302. Return as read data. Similarly, the security check logic 1400 may form a log entry as described above to record a security access violation.

図15は、複数のメモリページ内に配置されたデータを記憶するのに用いられるメモリに対してアクセスセキュリティを提供する方法1500の一実施形態を示すフローチャートである。方法1500は、図4のコンピュータシステム400がSEMで動作中にCPUが起動した(つまり、ソフトウェアが起動した)メモリアクセスに対する表1に示した規則の一例を反映したものである。方法1500はMMU602(図6〜7)内に組み込まれていてもよい。方法1500のステップ1502において、命令実行中に生成されたリニアアドレスを、命令のセキュリティ属性(例えば、この命令を含むタスクのCPL)とともに受け取る。この命令はメモリページ内にある。ステップ1504において、選択されたメモリページのベースアドレス及びセキュリティ属性を得るために、リニアアドレスを用いて、メモリ内に位置する少なくとも1つのページングされたメモリデータ構造(例えば、ページディレクトリやページテーブル)にアクセスする。選択されたメモリページのセキュリティ属性は、例えば、ページディレクトリエントリのU/SビットやR/Wビット及びページテーブルエントリのU/SビットやR/Wビットを含んでいてもよい。   FIG. 15 is a flowchart illustrating one embodiment of a method 1500 for providing access security to memory used to store data located in multiple memory pages. Method 1500 reflects an example of the rules shown in Table 1 for memory accesses initiated by the CPU (ie, software initiated) while computer system 400 of FIG. 4 is operating in the SEM. The method 1500 may be incorporated within the MMU 602 (FIGS. 6-7). At step 1502 of method 1500, the linear address generated during instruction execution is received along with the security attribute of the instruction (eg, the CPL of the task containing the instruction). This instruction is in a memory page. In step 1504, the linear address is used to obtain at least one paged memory data structure (eg, page directory or page table) located in memory to obtain the base address and security attributes of the selected memory page. to access. The security attributes of the selected memory page may include, for example, the U / S bit and R / W bit of the page directory entry and the U / S bit and R / W bit of the page table entry.

判定ステップ1506において、命令のセキュリティ属性及び選択されたメモリページのセキュリティ属性を用いて、上記アクセスが認証されているかどうかを判定する。アクセスが認証されている場合には、ステップ1508において選択されたメモリページのベースアドレスとオフセットを合体することにより、選択されたメモリページ内に物理アドレスを生成する。アクセスが認証されていない場合には、ステップ1510において違反信号(例えば、一般保護違反信号またはGPF信号)を生成する。   In decision step 1506, it is determined whether the access is authenticated using the security attribute of the instruction and the security attribute of the selected memory page. If access is authenticated, a physical address is generated in the selected memory page by combining the base address and offset of the memory page selected in step 1508. If access is not authenticated, a violation signal (eg, a general protection violation signal or a GPF signal) is generated at step 1510.

ステップ1508の後に続くステップ1512において、第1のメモリページの追加セキュリティ属性及び選択されたメモリページの追加セキュリティ属性を得るために、選択されたメモリページの物理アドレスを用いて、メモリ内に位置する少なくとも1つのセキュリティ属性データ構造(例えば、図9のSATディレクトリ904やSAT)へのアクセスが行われる。この第1のメモリページの追加セキュリティ属性は、例えば、上述のようなセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ここで、SPビットは、第1のメモリページがセキュリティ保護されたページかどうかを表している。同様に、選択されたメモリページの追加セキュリティ属性はセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ここで、SPビットは、選択されたメモリページがセキュリティ保護されたページかどうかを表している。   In step 1512, following step 1508, is located in memory using the physical address of the selected memory page to obtain additional security attributes for the first memory page and additional security attributes for the selected memory page. Access is made to at least one security attribute data structure (eg, SAT directory 904 or SAT in FIG. 9). This additional security attribute of the first memory page may include, for example, a secure page (SP) bit as described above. Here, the SP bit represents whether or not the first memory page is a secure page. Similarly, additional security attributes for selected memory pages may include secure page (SP) bits. Here, the SP bit indicates whether or not the selected memory page is a secure page.

ステップ1514において、命令のセキュリティ属性、第1のメモリページの追加セキュリティ属性、選択されたメモリページのセキュリティ属性、及び選択されたメモリページの追加セキュリティ属性に従って、違反信号を生成する。なお、方法1500のステップ1512,1514はCPUSCU416(図4〜8)内に組み込まれていてもよい。   In step 1514, a violation signal is generated according to the security attribute of the instruction, the additional security attribute of the first memory page, the security attribute of the selected memory page, and the additional security attribute of the selected memory page. Note that steps 1512 and 1514 of method 1500 may be incorporated within CPUSCU 416 (FIGS. 4-8).

以下の表2に、図4のコンピュータシステム400がSEMで動作中における、デバイスハードウェアユニット414A〜414Dが起動したメモリページアクセス(つまり、ハードウェアが起動したメモリアクセス)に対する規則の一例を示す。このようなハードウェアが起動したメモリアクセスは、デバイスハードウェアユニット414A〜414D内のバスマスタリング回路によって起動されてもよいし、また、デバイスハードウェアユニット414A〜414Dの要求によりDMAデバイスによって起動されてもよい。セキュリティチェックロジック1400は、メモリ406に格納されたデータに対してオペレーティングシステム502(図5)が提供したデータセキュリティを超える追加セキュリティを提供するために、図4のコンピュータシステム400がSEMで動作中において表2の規則を実行してもよい。以下の表2において、「対象となる」メモリページとは、メモリアクセスのメモリアクセス信号によって伝送された物理アドレスが中にあるメモリページである。   Table 2 below shows an example of a rule for a memory page access activated by the device hardware units 414A to 414D (that is, a memory activated memory access) when the computer system 400 of FIG. 4 is operating in the SEM. Memory access activated by such hardware may be activated by a bus mastering circuit in the device hardware units 414A to 414D, or may be activated by a DMA device at the request of the device hardware units 414A to 414D. Also good. The security check logic 1400 may be used when the computer system 400 of FIG. 4 is operating in the SEM to provide additional security for the data stored in the memory 406 beyond the data security provided by the operating system 502 (FIG. 5). The rules in Table 2 may be executed. In Table 2 below, the “target” memory page is a memory page in which a physical address transmitted by a memory access signal for memory access is located.

Figure 2005521935
Figure 2005521935

上記の表2において、対象となるメモリページのSPビットは、メモリアクセスの物理アドレス及び図9に示す対応するメモリページのSATエントリを得るための上記機構900を用いて、ホストブリッジSCU418によって得られる。   In Table 2 above, the SP bit of the target memory page is obtained by the host bridge SCU 418 using the above-described mechanism 900 for obtaining the physical address of the memory access and the SAT entry of the corresponding memory page shown in FIG. .

図2に示すように、対象となるメモリページがセキュリティ保護されたページであることを表しているSP=1の場合、メモリアクセスは認証されていない。この状況において、セキュリティチェックロジック1400(図14)は、メモリアクセス信号をメモリコントローラに供給しない。メモリアクセス信号(例えば制御信号)のある部分はメモリアクセスの種類を表し、ここでメモリアクセスの種類とは、読み出し信号か書き込み信号のいずれかである。SP=1でメモリアクセス信号がメモリアクセスの種類が読み出しアクセスであることを示している場合、そのメモリアクセスは認証されていない読み出しアクセスであり、セキュリティチェックロジック1400は、認証されていない読み出しアクセスに対して、実際のメモリの内容ではなく全て「F」(つまり、偽りの読み出しデータ:bogus read data)を供給することにより応答する。セキュリティチェックロジック1400はまた、認証されていない読み出しアクセスに対して、上述のような認証されていない読み出しアクセスのログを記録することによって応答してもよい。   As shown in FIG. 2, when SP = 1 indicating that the target memory page is a secure page, the memory access is not authenticated. In this situation, the security check logic 1400 (FIG. 14) does not supply a memory access signal to the memory controller. A portion of the memory access signal (for example, control signal) represents the type of memory access, where the type of memory access is either a read signal or a write signal. When SP = 1 and the memory access signal indicates that the type of memory access is read access, the memory access is an unauthenticated read access, and the security check logic 1400 performs an unauthenticated read access. On the other hand, it responds by supplying all "F" (that is, bogus read data) instead of the actual memory contents. Security check logic 1400 may also respond to unauthenticated read accesses by recording a log of unauthenticated read accesses as described above.

SP=1でメモリアクセス信号がメモリアクセスの種類が書き込みアクセスであることを示している場合には、そのメモリアクセスは認証されていない書き込みアクセスである。このような状況では、セキュリティチェックロジック1400は、認証されていない書き込みアクセスに対して、メモリアクセス信号が伝送した書き込みデータを破棄することによって応答する。セキュリティチェックロジック1400はまた、認証されていない書き込みアクセスに対して、上述のような認証されていない書き込みアクセスのログを記録することによって応答してもよい。   If SP = 1 and the memory access signal indicates that the type of memory access is write access, the memory access is an unauthenticated write access. In such a situation, the security check logic 1400 responds to an unauthorized write access by discarding the write data transmitted by the memory access signal. Security check logic 1400 may also respond to unauthenticated write accesses by recording a log of unauthenticated write accesses as described above.

図16は、複数のメモリページ内に配置されたデータを記憶するのに用いられるメモリにアクセスセキュリティを提供する方法1600の一実施形態を示すフローチャートである。方法1600は、図4のコンピュータシステム400がSEMで動作中にハードウェアが起動したメモリアクセスに対する表2に示した規則の一例を反映したものである。方法1600はホストブリッジ404(図4,13,14)内に組み込まれていてもよい。方法1600のステップ1602において、あるメモリアクセスのメモリアクセス信号を受け取る。ここで、メモリアクセス信号は、対象となるメモリページ内の物理アドレスを伝送している。上述のように、メモリアクセス信号はデバイスハードウェアユニットによって生成されていてもよい。ステップ1604において対象となるメモリページのセキュリティ属性を得るために、物理アドレスを用いて、メモリ内に位置する少なくとも1つのセキュリティ属性データ構造にアクセスする。この少なくとも1つのセキュリティ属性データ構造は、例えば、SATディレクトリ(例えば、図9のSATディレクトリ904)や少なくとも1つのSAT(例えば、図9のSAT906)を含んでいてもよく、対象となるメモリページの追加セキュリティ属性は、対象となるメモリページがセキュリティ保護されたページかどうかを表している上述のようなセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ステップ1606において、対象となるメモリページのセキュリティ属性に従ったメモリアクセス信号を用いて、メモリにアクセスする。なお、方法1600のステップ1600,1602は、ホストブリッジSCU418(図4,13,14)内に組み込まれていてもよい。   FIG. 16 is a flowchart illustrating an embodiment of a method 1600 for providing access security to a memory used to store data located in a plurality of memory pages. The method 1600 reflects an example of the rules shown in Table 2 for hardware-initiated memory accesses while the computer system 400 of FIG. 4 is operating in the SEM. The method 1600 may be incorporated within the host bridge 404 (FIGS. 4, 13, 14). In step 1602 of method 1600, a memory access signal for a memory access is received. Here, the memory access signal transmits the physical address in the target memory page. As described above, the memory access signal may be generated by a device hardware unit. In step 1604, to obtain the security attribute of the target memory page, the physical address is used to access at least one security attribute data structure located in the memory. The at least one security attribute data structure may include, for example, a SAT directory (for example, the SAT directory 904 in FIG. 9) and at least one SAT (for example, the SAT 906 in FIG. 9). The additional security attribute may include a secure page (SP) bit as described above indicating whether the subject memory page is a secure page. In step 1606, the memory is accessed using a memory access signal according to the security attribute of the target memory page. Note that steps 1600 and 1602 of method 1600 may be incorporated within host bridge SCU 418 (FIGS. 4, 13, and 14).

上述のように、バスアービター1308(図13)及びホストブリッジSCU418(図4,13,14)が協働して、コンピュータシステム400内においてデバイス間アクセスセキュリティを提供する。バスアービター1308は、上述のようなデバイスバス408の制御を行うためにデバイスバス408(図4)に接続されたデバイス間を調整し、かつ、デバイスバス408の1つ以上の信号線に許可信号を流す。この許可信号の状態は、デバイスバス408に接続されたデバイスのうちどれがデバイスバス408の制御を行うかを示すものである。   As described above, the bus arbiter 1308 (FIG. 13) and the host bridge SCU 418 (FIGS. 4, 13, and 14) cooperate to provide inter-device access security within the computer system 400. The bus arbiter 1308 adjusts between devices connected to the device bus 408 (FIG. 4) in order to control the device bus 408 as described above, and transmits a permission signal to one or more signal lines of the device bus 408. Shed. The state of the permission signal indicates which of the devices connected to the device bus 408 controls the device bus 408.

ここで、デバイスバス408が周辺機器接続(PCI)バスである場合におけるバスアービター1308及びホストブリッジSCU418の動作の一例を説明する。バスアービター1308は、デバイスバス408に接続されておりデバイスバス408を流れることが可能なn個のデバイス(例えば、図13のブリッジロジック1302、図4のデバイスハードウェアユニット414A,414B、図4のデバイスバスブリッジ410)から1つずつ、全部でn個の要求信号REQ#1〜REQ#n(記号「#」は、信号が低電圧レベル時に、その信号のアクティブな、すなわちアサートされた状態が発生していることを示す)を受け取る。あるデバイスmがデバイスバス408を制御する必要があるときには、デバイスmによって対応するREQ#m信号がアサートされる。バスアービター1308は許可信号GNT#1〜GNT#nを生成し、許可信号のうちの1つをn個のデバイスの各々に供給する。GNT#m信号がアサートされると、デバイスmはデバイスバス408を制御することを許可される。以下の例において、信号REQ#1,GNT#1はデバイスハードウェア414A(図4)に関連付けられており、信号REQ#2,GNT#2はデバイスハードウェア414B(図4)に関連付けられている。   Here, an example of operations of the bus arbiter 1308 and the host bridge SCU 418 when the device bus 408 is a peripheral device connection (PCI) bus will be described. The bus arbiter 1308 is connected to the device bus 408 and can be flown through the device bus 408 (eg, bridge logic 1302 in FIG. 13, device hardware units 414A and 414B in FIG. 4, and FIG. 4). A total of n request signals REQ # 1 to REQ # n (symbol “#”) from the device bus bridge 410), when the signal is at a low voltage level, indicate that the signal is active, ie, asserted. Indicating that it has occurred). When a device m needs to control the device bus 408, the corresponding REQ # m signal is asserted by the device m. The bus arbiter 1308 generates permission signals GNT # 1 to GNT # n and supplies one of the permission signals to each of the n devices. When the GNT # m signal is asserted, device m is allowed to control device bus 408. In the following example, signals REQ # 1 and GNT # 1 are associated with device hardware 414A (FIG. 4), and signals REQ # 2 and GNT # 2 are associated with device hardware 414B (FIG. 4). .

図17は図4のホストブリッジSCU418の一実施形態を示す図であり、この中でホストブリッジSCU418はアクセス認証テーブル1700を含む。一般に、アクセス認証テーブル1700は、デバイスバス408に接続されておりデバイスバス408を使用可能なデバイス(つまり、関連する信号REQ#,GNT#を有するデバイス)ごとに異なるエントリの組を有する。デバイスハードウェア414Aに対応する第1のエントリの組とデバイスハードウェア414Bに対応する第2のエントリの組を図17に示す。   FIG. 17 is a diagram illustrating an embodiment of the host bridge SCU 418 of FIG. 4, in which the host bridge SCU 418 includes an access authentication table 1700. In general, the access authentication table 1700 has a different set of entries for each device that is connected to the device bus 408 and can use the device bus 408 (that is, a device having related signals REQ # and GNT #). FIG. 17 shows a first entry set corresponding to the device hardware 414A and a second entry set corresponding to the device hardware 414B.

アクセス認証テーブル1700の各エントリは、デバイスバス408に接続されておりデバイスバス408の使用が可能なデバイスに対応する。例えば、図17では、デバイスハードウェア414Aに対応する第1のエントリの組の中の第1のエントリは、デバイスハードウェア414Bに向けられている。この第1のエントリは、「GNT#2 アサート」というフレーズが含まれた「許可信号状態」フィールドを含み、これはGNT#2信号がアサートされた時に第1のエントリが該当することを示している。第1のエントリはまた、デバイスハードウェア414Bに対応するとともにデバイスハードウェア414Bがデバイスハードウェア414Aへアクセスすることを認証されているどうかを示す「アクセスを認証する」値を含む。アクセス認証テーブル1700はセキュリティカーネル504(図5)によって生成され維持されてもよい。   Each entry in the access authentication table 1700 corresponds to a device that is connected to the device bus 408 and can use the device bus 408. For example, in FIG. 17, the first entry in the first set of entries corresponding to device hardware 414A is directed to device hardware 414B. This first entry includes a “grant signal status” field that includes the phrase “GNT # 2 asserted”, which indicates that the first entry is true when the GNT # 2 signal is asserted. Yes. The first entry also includes a “authenticate access” value that corresponds to the device hardware 414B and indicates whether the device hardware 414B is authorized to access the device hardware 414A. The access authentication table 1700 may be generated and maintained by the security kernel 504 (FIG. 5).

PCIバスのプロトコルによれば、「起動」デバイスが「対象となる」デバイスにアクセスすることにより、バスの転送、すなわち「トランザクション」が起動される。対象となるデバイスは、STOP#信号をアサートすることにより、そのトランザクションを終了させてもよい。起動デバイスがアサートされたSTOP#信号を検出すると、起動デバイスは、トランザクションを完了させるために、トランザクションを終了させてPCIバスの制御を再度調整しなければならない。対象となるデバイスが任意のデータが転送される前にSTOP#信号をアサートする場合、この終了は「再試行」と呼ばれる。   According to the PCI bus protocol, the bus activation, that is, the “transaction” is activated when the “activation” device accesses the “target” device. The target device may end the transaction by asserting the STOP # signal. When the activation device detects the asserted STOP # signal, the activation device must terminate the transaction and re-adjust control of the PCI bus to complete the transaction. If the target device asserts the STOP # signal before any data is transferred, this termination is called “retry”.

デバイスバス408はPCIバスなので、デバイスバス408は多重化されたアドレス及びデータ(A/D)信号線を含む。デバイスバス408に接続された起動デバイスは、対象となるデバイスに割り当てられたアドレスを伝送するアドレス信号をデバイスバス408の多重化A/D信号線に流すことによって、デバイスバス408に接続された対象となるデバイスへのアクセスを行う。例えば、デバイスバス408に接続されたデバイスハードウェア414Bへのアクセスを制御するためには、ホストブリッジSCU418はまずPCIバスを介してデバイスハードウェア414Bをプログラミングして、STOP#信号をアサートすることによって全てのアクセス試行に応答するように(つまり、PCIバスの再試行を起動させることによって全てのアクセス試行を阻止するように)デバイスハードウェア414Bを構成する。   Since the device bus 408 is a PCI bus, the device bus 408 includes multiplexed address and data (A / D) signal lines. The activation device connected to the device bus 408 sends the address signal for transmitting the address assigned to the target device to the multiplexed A / D signal line of the device bus 408, thereby causing the target connected to the device bus 408. Access to the device. For example, to control access to device hardware 414B connected to device bus 408, host bridge SCU 418 first programs device hardware 414B via the PCI bus and asserts the STOP # signal. The device hardware 414B is configured to respond to all access attempts (ie, prevent all access attempts by initiating a PCI bus retry).

ホストブリッジSCU418は、デバイスバスインターフェイス1306(図13)を介してデバイスバス408の信号線に接続されており、デバイスバス408のGNT#信号とA/D信号線を監視してデバイスへのアクセス試行を検出する。例えば、デバイスハードウェア414Aがデバイスハードウェア414Bへのアクセス試行を行うと想定する。「起動」デバイスハードウェア414Aが「対象となる」デバイスハードウェア414Bへのアクセスを試行すると、デバイスハードウェア414BはPCIバス再試行を起動することによって(つまり、デバイスバス408のA/D信号線上にあるデバイスハードウェア414Bに割り当てられたアドレスを検出した後にSTOP#信号をアサートすることによって)そのアクセス試行を阻止する。この措置によって、デバイスハードウェア414Aは、後に続くアクセス試行によってアクセス試行を強制的に再試行することになる。   The host bridge SCU 418 is connected to the signal line of the device bus 408 via the device bus interface 1306 (FIG. 13), and attempts to access the device by monitoring the GNT # signal and the A / D signal line of the device bus 408. Is detected. For example, assume that device hardware 414A makes an attempt to access device hardware 414B. When the “boot” device hardware 414A attempts to access the “target” device hardware 414B, the device hardware 414B initiates a PCI bus retry (ie, on the A / D signal line of the device bus 408). The access attempt is blocked (by asserting the STOP # signal after detecting the address assigned to device hardware 414B). This action forces device hardware 414A to retry the access attempt with subsequent access attempts.

デバイスハードウェア414Bがアクセス試行を阻止している間、ホストブリッジSCU418は、デバイスバス408のA/D信号線上で駆動されたデバイスハードウェア414Bに割り当てられたアドレスを介して、そのアクセス試行を検出する。デバイスハードウェア414Aがデバイスバス408の制御を行っているので、GNT#1信号がアサートされ、そして、ホストブリッジSCU418がアサートされたGNT#1信号を介して、デバイスハードウェア414Aを起動デバイスとして認識される。   While the device hardware 414B blocks the access attempt, the host bridge SCU 418 detects the access attempt via the address assigned to the device hardware 414B driven on the A / D signal line of the device bus 408. To do. Since the device hardware 414A controls the device bus 408, the GNT # 1 signal is asserted, and the device hardware 414A is recognized as the boot device via the GNT # 1 signal asserted by the host bridge SCU 418. Is done.

次に、ホストブリッジSCU418は、デバイスハードウェア414Aによる次のアクセス試行を許可すべきかどうかを判定する。ホストブリッジSCU418はデバイスハードウェア414Bに対応するアクセス認証テーブル1700(図17)の第2のエントリの組にアクセスし、許可信号状態フィールド内に「(GNT#1 アサート)」を有する第2の組の第1のエントリを選択する。第1のエントリのアクセスを認証する値は「1」であり、これは、デバイスハードウェア414Aによるデバイスハードウェア414Bへのアクセスが認証されているとともに、デバイスハードウェア414Aによる次のアクセス試行が許可されることを表している。   The host bridge SCU 418 then determines whether the next access attempt by the device hardware 414A should be allowed. The host bridge SCU 418 accesses the second set of entries of the access authentication table 1700 (FIG. 17) corresponding to the device hardware 414B, and the second set having “(GNT # 1 assert)” in the permission signal status field. The first entry of is selected. The value for authenticating the access of the first entry is “1”, which means that the access to the device hardware 414B by the device hardware 414A is authenticated and the next access attempt by the device hardware 414A is permitted. Represents that

このアクセスを認証する値がデバイスハードウェア414Aによる次のアクセス試行が許可されること示しているので、ホストブリッジSCU418は、デバイスハードウェア414Aを認識するバスアービター1308(図13)に信号を送信する。続いて行われるデバイスバス408のデバイスハードウェア414Aへの制御に対する許可の直前に、バスアービター1308はデバイスバス408のホストブリッジSCU418への制御を許可する。ホストブリッジSCU418は、デバイスハードウェア414Aによる次のアクセス試行を許可するようにデバイスハードウェア414Bを構成するデバイスバス408の信号線上に信号を流す。   Since the value authenticating this access indicates that the next access attempt by the device hardware 414A is permitted, the host bridge SCU 418 sends a signal to the bus arbiter 1308 (FIG. 13) that recognizes the device hardware 414A. . The bus arbiter 1308 grants control of the device bus 408 to the host bridge SCU 418 immediately prior to permission for subsequent control of the device bus 408 to the device hardware 414A. The host bridge SCU 418 sends a signal on the signal line of the device bus 408 that configures the device hardware 414B to allow the next access attempt by the device hardware 414A.

デバイスハードウェア414Aによる次のアクセス試行の直後に、バスアービター1308は、デバイスバス408のホストブリッジSCU418への制御を再び許可する。ホストブリッジSCU418は、PCIバスの再試行を起動することによって全てのアクセス試行に応答するように(つまり、デバイスバス408のA/D信号線上にあるデバイスハードウェア414Bに割り当てられたアドレスを検出した後にSTOP#信号をアサートすることによって、全てのアクセス試行を阻止するように)デバイスハードウェア414Bを構成するPCIバスの信号線上に信号を流す。   Immediately following the next access attempt by device hardware 414A, bus arbiter 1308 again grants control of device bus 408 to host bridge SCU 418. Host bridge SCU 418 has detected an address assigned to device hardware 414B on the A / D signal line of device bus 408 to respond to all access attempts by initiating a PCI bus retry. A signal is sent on the signal line of the PCI bus comprising the device hardware 414B (to prevent all access attempts later by asserting the STOP # signal).

アクセス認証テーブル1700の選択されたエントリ内のアクセスを認可する値が、起動デバイスが対象となるデバイスへのアクセスを認証されていないとともに起動デバイスによる次のアクセス試行が許可されないことを表す「0」の場合、ホストブリッジSCU418は、起動デバイスによる次のアクセス試行を許可するように対象となるデバイスを構成しておらず、対象となるデバイスは、PCIバスの再試行を起動することによって、起動デバイスによるアクセス試行を阻止し続ける。なお、上述の構成‐アクセス‐構成を行うアトミックなメカニズムは、存在するPCIデバイスが保護されるためにPCIバスの再試行を起動するようにプログラム可能であることしか必要としない。   The value for authorizing access in the selected entry of the access authentication table 1700 is “0” indicating that the boot device is not authorized to access the target device and that the boot device is not allowed to access the next time. In this case, the host bridge SCU 418 does not configure the target device to allow the next access attempt by the boot device, and the target device activates the PCI bus retry to activate the boot device. Continue to block access attempts by. Note that the atomic mechanism that performs the configuration-access-configuration described above only needs to be programmable to trigger a PCI bus retry in order to protect the existing PCI device.

図18は、バスに接続された第1のデバイスと第2のデバイスを含むシステム内において適用可能な方法1800の一実施形態を示すフローチャートであり、ここで方法1800は第2のデバイスにアクセスセキュリティを提供する。方法1800はホストブリッジSCU418(図4,13,14,17)内に組み込まれていてもよい。方法1800のステップ1802において、バスの信号線を流れる信号を監視する。ステップ1804において、第1のデバイスによる第2のデバイスへのアクセスの試行を、その信号に基づいて検出する。ステップ1806において、信号を用いて第1のデバイスのアイデンティティを決定する、即ち第1のデバイスを識別する。ステップ1808において、第2のデバイスへのアクセスを、第1のデバイスのアイデンティティ、即ち識別結果に従って制御する。ステップ1808における第2のデバイスへのアクセスの制御を、(i)第1のデバイスが第2のデバイスへアクセスすることを認証されているかどうかを第1のデバイスのアイデンティティ、即ち識別結果に基づいて判定することと、(ii)第1のデバイスが第2のデバイスへアクセスすることを認証されているならば、第1のデバイスによるアクセス試行を許可するように第2のデバイスを構成することによって達成してもよい。   FIG. 18 is a flowchart illustrating one embodiment of a method 1800 applicable in a system including a first device and a second device connected to a bus, where the method 1800 provides access security to a second device. I will provide a. The method 1800 may be incorporated within the host bridge SCU 418 (FIGS. 4, 13, 14, 17). In step 1802 of method 1800, the signal flowing on the bus signal line is monitored. In step 1804, an attempt to access the second device by the first device is detected based on the signal. In step 1806, the signal is used to determine the identity of the first device, ie identify the first device. In step 1808, access to the second device is controlled according to the identity of the first device, ie the identification result. Control of access to the second device in step 1808 is based on (i) whether the first device is authorized to access the second device based on the identity of the first device, ie the identification result. And (ii) by configuring the second device to allow an access attempt by the first device if the first device is authorized to access the second device. May be achieved.

バスの構造に関して本発明の様々な態様をここに説明してきたが、本発明は以上のものに限定されない。バス構造は、例えば、デバイス間を直接接続するポイント間接続、もしくはブリッジまたは他の場所を介して供給するポイント間接続に置き換えられてもよい。   Although various aspects of the present invention have been described herein with respect to bus structures, the present invention is not limited to the foregoing. The bus structure may be replaced with, for example, point-to-point connections that connect devices directly, or point-to-point connections that feed through a bridge or other location.

上記で開示されたような本発明の態様の中には、ハードウェアまたはソフトウェア内で実施されるものがあってもよい。従って、これまでの詳細な説明の中には、ハードウェアが実施するプロセスの観点から結果として提起されたものもあり、また、計算処理システムまたは計算処理デバイスのメモリ内のデータバス上での動作の記号表現を伴った、ソフトウェアが実施するプロセスの観点から提起されたものもある。これらの記述や表現は、当業界で用いられる、当業者に各態様の作用の趣旨をハードウェアとソフトウェアの両方を使用して最も効果的に伝える手段である。両者のプロセス及び動作には、物理量の物理的な操作が必要である。ソフトウェアでは、通常、必要であるとは限らないが、これらの量は、格納、転送、結合、比較、及びその他の操作が可能な電気、磁気、もしくは光の各信号の形を採っている。場合によっては、主に共用するという理由から、これらの信号を、ビット、値、要素、符号、文字、語、数等として表すと便利であることがわかっている。   Some aspects of the invention as disclosed above may be implemented in hardware or software. Thus, some of the detailed descriptions so far have been raised as a result in terms of the processes performed by the hardware and also operate on the data bus in the memory of the computing system or computing device. Some have been proposed in terms of the process performed by the software, with a symbolic representation of. These descriptions and expressions are the means used in the art to most effectively convey the purpose of the operation of each aspect to those skilled in the art using both hardware and software. Both processes and operations require physical manipulation of physical quantities. In software, though not necessarily required, these quantities take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. In some cases, it has proven convenient to represent these signals as bits, values, elements, codes, characters, words, numbers, etc. primarily because they are shared.

しかしながら、これらの語句及び類似の語句は全て適当な物理量に関連するものであり、これらの物理量に適用された便利なラベルにしか過ぎないことは留意すべきである。明らかなもの以外は特に断らない限り、本開示を通じて、これらの説明は、ある電子デバイスの記憶装置の中にある物理(電気、磁気、もしくは光)量で表されたデータに対して、記憶装置内、または転送装置やディスプレイ装置内の物理量で同様に表された他のデータへの操作や変換を行う電子デバイスの動作及びプロセスについて言及しているものである。このような説明を示す語句の例としては、制限はないが、「プロセス処理」「計算処理」「計算」「判定」「表示」等の語句がある。   However, it should be noted that these phrases and similar phrases are all related to appropriate physical quantities and are merely convenient labels applied to these physical quantities. Throughout this disclosure, unless otherwise specified, these descriptions are based on physical (electrical, magnetic, or optical) quantities stored in a storage device of an electronic device. Or the operation and process of an electronic device that performs operations or conversions to other data similarly represented by physical quantities in the transfer device or display device. Examples of the phrase indicating such explanation include, but are not limited to, phrases such as “process process”, “calculation process”, “calculation”, “determination”, and “display”.

また、本発明のソフトウェアによって実施された態様は、通常、プログラム記憶媒体のフォーム上に符号化されているか、またはある種の伝送媒体上で実施されている。プログラム記憶媒体は磁気方式(例えば、フロッピーディスクやハードディスク)でも光方式(例えば、コンパクトディスク読み出し専用メモリ、つまり「CD‐ROM」)でもよいし、読み出し専用でもランダムアクセス可能でもよい。同様に、伝送媒体は、撚線対、同軸ケーブル、光ファイバー、または当業界では既知の他の適当な伝送媒体のいずれでもよい。本発明は、これら任意の実施態様には制限されない。   Also, aspects implemented by the software of the present invention are typically encoded on a form of program storage medium or implemented on some type of transmission medium. The program storage medium may be a magnetic system (for example, a floppy disk or a hard disk) or an optical system (for example, a compact disk read-only memory, that is, “CD-ROM”), or may be read-only or randomly accessible. Similarly, the transmission medium may be any twisted pair, coaxial cable, optical fiber, or other suitable transmission medium known in the art. The present invention is not limited to these optional embodiments.

本発明は、ここにある教示の恩恵を受ける当業者には明らかである様々かつ同等な方法で変更及び実現されてもよいので、上述の個別の実施形態は単に例示的なものである。さらに、以下の請求項に記述されているようなことを除いて、ここに示した構造または設計の詳細に限定することを意図するものではない。従って、上記に開示された個別の実施形態は変形や変更を加えられてもよく、このような変形例の全ては本発明の範囲と精神の範疇にあるとみなされることは明らかである。すなわち、ここに求められている保護は、以下の請求項に記載されているものである。   The above-described individual embodiments are merely exemplary, as the invention may be modified and implemented in various and equivalent ways that will be apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the following claims. It is therefore evident that the individual embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. That is, the protection sought here is that described in the following claims.

x86プロセッサアーキテクチャの周知のリニア‐物理アドレス変換機構の図である。FIG. 2 is a diagram of the well known linear-to-physical address translation mechanism of the x86 processor architecture. x86プロセッサアーキテクチャのページディレクトリエントリフォーマットの図である。FIG. 6 is a diagram of a page directory entry format for an x86 processor architecture. x86プロセッサアーキテクチャのページテーブルエントリフォーマットの図である。FIG. 6 is a diagram of a page table entry format for an x86 processor architecture. CPUはCPUセキュリティチェックユニット(SCU)を含み、ホストブリッジはホストブリッジSCUを含む形態での、CPU及びシステム、つまり「ホスト」ブリッジを含むコンピュータシステムの一実施形態の図である。FIG. 2 is a diagram of one embodiment of a computer system including a CPU and system, or “host” bridge, in which the CPU includes a CPU security check unit (SCU) and the host bridge includes a host bridge SCU. 図4のコンピュータシステムの様々なハードウェア要素及びソフトウェア要素間の関係を示す図である。FIG. 5 illustrates the relationship between various hardware and software elements of the computer system of FIG. 、図4のコンピュータシステムのCPUであってメモリ管理ユニット(MMU)を含む一実施形態を示す図である。FIG. 5 is a diagram illustrating an embodiment of a CPU of the computer system of FIG. 4 that includes a memory management unit (MMU). ページングユニットを含み、ページングユニットはCPUSCUを含むものであるMMUの一実施形態を示す図である。FIG. 2 is a diagram illustrating one embodiment of an MMU that includes a paging unit, the paging unit including a CPUSCU. 図7のCPUSCUの一実施形態を示す図である。FIG. 8 is a diagram illustrating an embodiment of a CPUSCU in FIG. 7. 選択されたメモリページの追加セキュリティ情報を得るために、選択されたメモリページのセキュリティ属性テーブル(SAT)エントリにアクセスする機構の一実施形態を示す図である。FIG. 6 illustrates one embodiment of a mechanism for accessing a security attribute table (SAT) entry for a selected memory page to obtain additional security information for the selected memory page. SATデフォルトレジスタの一実施形態の図である。FIG. 4 is a diagram of one embodiment of a SAT default register. SATディレクトリエントリフォーマットの一実施形態の図である。FIG. 4 is a diagram of one embodiment of a SAT directory entry format. SATエントリフォーマットの一実施形態の図である。FIG. 6 is a diagram of one embodiment of a SAT entry format. 図4のホストブリッジの一実施形態の図であり、ここでホストブリッジはホストブリッジSCUを含む。FIG. 5 is a diagram of one embodiment of the host bridge of FIG. 4, where the host bridge includes a host bridge SCU. 図13のホストブリッジSCUの一実施形態の図である。FIG. 14 is a diagram of an embodiment of the host bridge SCU of FIG. 複数のメモリページ内に配置されたデータを格納するのに用いられるメモリに対してアクセスセキュリティを提供する第1の方法の一実施形態のフローチャートである。2 is a flowchart of one embodiment of a first method for providing access security to memory used to store data located in a plurality of memory pages. 複数のメモリページ内に配置されたデータを格納するのに用いられるメモリに対してアクセスセキュリティを提供する第2の方法の一実施形態のフローチャートである。6 is a flowchart of one embodiment of a second method for providing access security to memory used to store data located in a plurality of memory pages. 図4のホストブリッジSCU418の一実施形態の図であり、ここでホストブリッジSCU418はアクセス認証テーブルを含む。FIG. 5 is a diagram of one embodiment of the host bridge SCU 418 of FIG. 4, where the host bridge SCU 418 includes an access authentication table. バスに接続された第1のデバイス及び第2のデバイスを含むシステム内で適用可能な方法であって、第2のデバイスに対してアクセスセキュリティを提供する方法の一実施形態のフローチャートである。2 is a flowchart of an embodiment of a method applicable in a system including a first device and a second device connected to a bus and providing access security for a second device.

Claims (10)

伝送媒体(408,412)に接続されるように構成されたセキュリティチェックユニット(416,418)を備えた装置であって、
前記セキュリティチェックユニット(416,418)は、
前記伝送媒体(408,412)上の信号を監視し、
前記伝送媒体(408,412)に接続された第1のデバイスによって前記伝送媒体(408,412)に接続された第2のデバイス(414A〜414D)へアクセスする試行を前記信号に基づいて検出し、
前記信号に基づいて前記第1のデバイス(414A〜414D)を識別し、
前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスを前記第1のデバイス(414A〜414D)の識別結果に従って制御するように構成された、装置。
An apparatus comprising a security check unit (416, 418) configured to be connected to a transmission medium (408, 412),
The security check unit (416, 418)
Monitor signals on the transmission medium (408, 412);
Based on the signal, an attempt is made to access a second device (414A to 414D) connected to the transmission medium (408, 412) by a first device connected to the transmission medium (408, 412). ,
Identifying the first device (414A-414D) based on the signal;
An apparatus configured to control access to the second device (414A-414D) by the first device (414A-414D) according to the identification result of the first device (414A-414D).
前記伝送媒体(408,412)は、バス(408,412)の複数の信号線を備えており、前記伝送媒体(408,412)上の信号には、前記バス(408,412)の信号線上を流れる信号が含まれ、前記バス(408,412)の信号線は複数のアドレス線と許可信号を伝送する少なくとも1つの信号線を備えており、前記第1のデバイス(414A〜414D)が前記バス(408,412)の制御を許可されている際に前記許可信号は第1の状態にあり、前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスの試行中に、前記許可信号は前記第1の状態にあるとともに、前記第1のデバイス(414A〜414D)は、前記バス(408,412)の信号線に、前記第2のデバイス(414A〜414D)に割り当てられたアドレスを伝送するアドレス信号を流し、前記セキュリティチェックユニット(416,418)はアドレス線に流されるアドレス信号と前記許可信号とを監視する請求項1記載の装置。   The transmission medium (408, 412) includes a plurality of signal lines of a bus (408, 412), and a signal on the transmission medium (408, 412) includes a signal line on the bus (408, 412). The signal lines of the buses (408, 412) include a plurality of address lines and at least one signal line for transmitting a permission signal, and the first devices (414A to 414D) When the control of the bus (408, 412) is permitted, the permission signal is in the first state, and the first device (414A to 414D) accesses the second device (414A to 414D). During the trial, the permission signal is in the first state and the first device (414A to 414D) is connected to the signal line of the bus (408, 412). 2. An apparatus according to claim 1, wherein an address signal for transmitting an address assigned to a device (414A to 414D) is sent, and the security check unit (416, 418) monitors the address signal sent to an address line and the permission signal. . 前記セキュリティチェックユニット(416,418)は、前記許可信号が第1の状態にあるとともに前記アドレス信号が前記第2のデバイス(414A〜414D)に割り当てられたアドレスを伝送する際に前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスの試行を検出するように構成されており、前記セキュリティチェックユニット(416,418)は第1のデバイス(414A〜414D)を前記許可信号の状態に従って識別するように構成されている請求項2記載の装置。   The security check unit (416, 418) receives the first signal when the permission signal is in the first state and the address signal transmits the address assigned to the second device (414A-414D). The device (414A-414D) is configured to detect an attempt to access the second device (414A-414D), and the security check unit (416, 418) is configured to detect the first device (414A-414D). 3. The apparatus of claim 2, wherein the apparatus is configured to identify according to a state of the permission signal. 前記セキュリティチェックユニット(416,418)はプロセッサ(402)とブリッジ(404)からなる群のうちの1つの中に備えられている請求項1記載の装置。   The apparatus of claim 1, wherein the security checking unit (416, 418) is provided in one of the group consisting of a processor (402) and a bridge (404). 前記セキュリティチェックユニット(416,418)は、前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることが認証されている場合に、前記第1のデバイス(414A〜414D)によるアクセス試行を許可するように前記第2のデバイス(414A〜414D)を構成する構成を有する請求項1記載の装置。   The security check unit (416, 418) is configured to allow the first device (414A-414D) to authenticate access to the second device (414A-414D) when the first device (414A-414D) is authenticated. The apparatus of claim 1, comprising a configuration that configures the second device (414A-414D) to allow access attempts by 414A-414D). 前記セキュリティチェックユニット(416,418)は、前記第2のデバイス(414A〜414D)に対応するエントリ(912)を有するアクセス認証テーブル(906)を備えており、
前記エントリ(912)は、許可信号の第1の状態及びそれに対応すると共に前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを表すアクセス認証値を含み、
前記セキュリティチェックユニット(416,418)は、前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記許可信号の第1の状態を用いてアクセス認証テーブル(906)へアクセスして前記アクセス認証値を得ることによって判定するように構成されており、前記アクセス認証値が前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されている場合、前記セキュリティチェックユニット(416,418)は、前記バス(408,412)の信号線に、前記第1のデバイス(414A〜414D)による全てのアクセス試行を許可するように前記第2のデバイス(414A〜414D)を構成する信号を流す、請求項1記載の装置。
The security check unit (416, 418) includes an access authentication table (906) having an entry (912) corresponding to the second device (414A-414D),
The entry (912) corresponds to the first state of the permission signal and whether or not the first device (414A to 414D) is authorized to access the second device (414A to 414D). Including an access authorization value that represents
The security check unit (416, 418) determines whether the first device (414A-414D) is authorized to access the second device (414A-414D) in the first signal of the permission signal. The access authentication table (906) is accessed using a state to determine the access authentication value, and the access authentication value is determined by the first device (414A to 414D). The security check unit (416, 418) is connected to the signal line of the bus (408, 412), the first device (414A-414D). ) To allow all access attempts by the second device (414A- Flowing a signal constituting the 14D), apparatus according to claim 1.
前記装置は、前記伝送媒体(408,412)に接続された複数のデバイス(414A〜414D)間の制御を調整するように構成されたアービター(1308)をさらに備えており、
前記複数のデバイス(414A〜414D)は、少なくとも前記第1のデバイス(414A〜414D)と前記第2のデバイス(414A〜414D)を含み、
前記アービター(1308)は、さらに前記複数のデバイス(414A〜414D)のうち制御が許可されている1つのデバイスの信号を送るように構成されており、
前記アービター(1308)は、バスアービター(1308)を備え、
前記伝送媒体(408,412)はバス(408,412)を備え、
前記バス(408,412)は、複数のアドレス線及び許可信号を伝送する少なくとも1つの信号線を備え、
前記バスアービター(1308)は、前記複数のデバイス(414A〜414D)のうちの前記1つのデバイスが前記バス(408,412)の制御を許可されていることを表す状態となっている許可信号を、前記少なくとも1つの信号線に流すように構成されており、
前記セキュリティチェックユニット(416,418)は、前記アドレス線及び前記許可信号を伝送する前記少なくとも1つの信号線に接続されており、
更に、前記セキュリティチェックユニット(416,418)は、
前記バス(408,412)のアドレス線上を流れるアドレス信号と前記許可信号を監視し、
前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスの試行を前記アドレス信号に基づいて検出し、
前記第1のデバイス(414A〜414D)を前記許可信号に基づいて識別し、
前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記第1のデバイス(414A〜414D)の識別結果に基づいて判定し、
前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されている場合、前記第1のデバイス(414A〜414D)によるアクセス試行を許可するように前記第2のデバイス(414A〜414D)を構成する構成を有する請求項1記載の装置。
The apparatus further comprises an arbiter (1308) configured to coordinate control between a plurality of devices (414A-414D) connected to the transmission medium (408, 412);
The plurality of devices (414A to 414D) include at least the first device (414A to 414D) and the second device (414A to 414D),
The arbiter (1308) is further configured to send a signal of one of the plurality of devices (414A to 414D) that is allowed to be controlled,
The arbiter (1308) includes a bus arbiter (1308),
The transmission medium (408, 412) includes a bus (408, 412),
The bus (408, 412) includes a plurality of address lines and at least one signal line for transmitting a permission signal,
The bus arbiter (1308) outputs a permission signal indicating that the one device of the plurality of devices (414A to 414D) is permitted to control the bus (408, 412). , Configured to flow through the at least one signal line,
The security check unit (416, 418) is connected to the address line and the at least one signal line for transmitting the permission signal;
Furthermore, the security check unit (416, 418)
Monitor the address signal and the permission signal flowing on the address line of the bus (408, 412),
Detecting an attempt to access the second device (414A-414D) by the first device (414A-414D) based on the address signal;
Identifying the first device (414A-414D) based on the permission signal;
Whether the first device (414A to 414D) is authenticated to access the second device (414A to 414D) is determined based on the identification result of the first device (414A to 414D). ,
If the first device (414A-414D) is authorized to access the second device (414A-414D), allow an access attempt by the first device (414A-414D) The apparatus according to claim 1, wherein the apparatus comprises the second device (414 </ b> A to 414 </ b> D).
対象となるデバイス(414A〜414D)に対してアクセスセキュリティを提供する方法であって、
信号を監視し、
前記信号に基づいて、前記対象となるデバイス(414A〜414D)への別のデバイス(414A〜414D)によるアクセスの試行を検出し、
前記信号を用いて前記別のデバイス(414A〜414D)を識別し、
前記対象となるデバイス(414A〜414D)へのアクセスを前記別のデバイス(414A〜414D)の識別結果に従って制御する、アクセスセキュリティを提供する方法。
A method of providing access security to a target device (414A to 414D),
Monitor the signal,
Based on the signal, an attempt to access the target device (414A to 414D) by another device (414A to 414D) is detected,
Using the signal to identify the other device (414A-414D);
A method for providing access security, wherein access to the target device (414A to 414D) is controlled according to an identification result of the other device (414A to 414D).
前記対象となるデバイス(414A〜414D)へのアクセスに対して前記別のデバイス(414A〜414D)の識別結果に従って行われる制御では、前記別のデバイス(414A〜414D)による前記対象となるデバイス(414A〜414D)へのアクセスに対して前記別のデバイス(414A〜414D)の識別結果に従って制御がなされる、請求項8記載の方法。   In the control performed according to the identification result of the another device (414A to 414D) for the access to the target device (414A to 414D), the target device (414A to 414D) by the another device (414A to 414D) 9. The method of claim 8, wherein access to 414A-414D) is controlled according to the identification result of said another device (414A-414D). 前記別のデバイス(414A〜414D)による前記対象となるデバイス(414A〜414D)へのアクセスに対して前記別のデバイス(414A〜414D)の識別結果に従って行われる制御では、さらに、
前記別のデバイス(414A〜414D)は前記対象となるデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記別のデバイス(414A〜414D)の識別結果に基づいて判定し、
前記別のデバイス(414A〜414D)が前記対象となるデバイス(414A〜414D)へアクセスすることを認証されている場合、前記別のデバイス(414A〜414D)によるアクセス試行を許可するように前記対象となるデバイス(414A〜414D)を構成する制御がなされる、請求項9記載の方法。
In the control performed according to the identification result of the another device (414A to 414D) for the access to the target device (414A to 414D) by the another device (414A to 414D),
The other device (414A to 414D) determines whether it is authenticated to access the target device (414A to 414D) based on the identification result of the other device (414A to 414D),
If the other device (414A-414D) is authorized to access the target device (414A-414D), the target is allowed to allow an access attempt by the other device (414A-414D). The method according to claim 9, wherein control is performed to configure the devices (414 </ b> A to 414 </ b> D).
JP2003580989A 2002-03-27 2002-12-18 System and method for controlling access between devices in a computer system Expired - Lifetime JP4799822B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/107,776 2002-03-27
US10/107,776 US7383584B2 (en) 2002-03-27 2002-03-27 System and method for controlling device-to-device accesses within a computer system
PCT/US2002/040742 WO2003083628A2 (en) 2002-03-27 2002-12-18 System and method for controlling device-to-device accesses within a computer system

Publications (2)

Publication Number Publication Date
JP2005521935A true JP2005521935A (en) 2005-07-21
JP4799822B2 JP4799822B2 (en) 2011-10-26

Family

ID=28452711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003580989A Expired - Lifetime JP4799822B2 (en) 2002-03-27 2002-12-18 System and method for controlling access between devices in a computer system

Country Status (7)

Country Link
US (1) US7383584B2 (en)
JP (1) JP4799822B2 (en)
KR (1) KR100972635B1 (en)
AU (1) AU2002357923A1 (en)
DE (1) DE10297686B4 (en)
GB (1) GB2402783B (en)
WO (1) WO2003083628A2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US7617534B1 (en) 2005-08-26 2009-11-10 Symantec Corporation Detection of SYSENTER/SYSCALL hijacking
US7685638B1 (en) 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
US8276201B2 (en) * 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
US20080235422A1 (en) * 2007-03-23 2008-09-25 Dhinesh Sasidaran Downstream cycle-aware dynamic interconnect isolation
US8935775B2 (en) * 2012-06-28 2015-01-13 Intel Corporation Method and apparatus for dishonest hardware policies
CN102915417A (en) * 2012-09-18 2013-02-06 鸿富锦精密工业(深圳)有限公司 Application monitoring system and application monitoring method
US20140297910A1 (en) * 2013-03-29 2014-10-02 Hewlett-Packard Development Company, L.P. Sas expander
WO2017028309A1 (en) 2015-08-20 2017-02-23 华为技术有限公司 File data access method and computer system
CN108062486B (en) 2017-12-15 2020-09-15 杭州中天微系统有限公司 Storage protection device for indirect access storage controller
US10831679B2 (en) * 2018-03-23 2020-11-10 Intel Corporation Systems, methods, and apparatuses for defending against cross-privilege linear probes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4882659A (en) * 1988-12-21 1989-11-21 Delco Electronics Corporation Vacuum fluorescent display having integral backlit graphic patterns
US4970441A (en) * 1989-08-04 1990-11-13 Delco Electronics Corporation Brightness stabilizing control of a VF display
US5652837A (en) * 1993-03-22 1997-07-29 Digital Equipment Corporation Mechanism for screening commands issued over a communications bus for selective execution by a processor
US5469026A (en) * 1993-11-09 1995-11-21 Delco Electronics Corporation Method and apparatus for VF tube power supply
ATE278218T1 (en) * 1994-05-26 2004-10-15 Commw Of Australia SECURE COMPUTER ARCHITECTURE
US5473222A (en) * 1994-07-05 1995-12-05 Delco Electronics Corporation Active matrix vacuum fluorescent display with microprocessor integration
US5459374A (en) * 1994-07-05 1995-10-17 Delco Electronics Corporation Combination fixed segment and active matrix vacuum fluorescent display
US5613750A (en) * 1994-11-07 1997-03-25 Delco Electronics Corporation Fluorescent backlighting device for an instrument panel
US5477430A (en) * 1995-03-14 1995-12-19 Delco Electronics Corporation Fluorescing keypad
US5521449A (en) * 1995-08-28 1996-05-28 Delco Electronics Corporation Method and circuitry for reducing radiated noise in a strobed load driver circuit for a vacuum fluorescent display
US5856811A (en) * 1996-01-31 1999-01-05 Delco Electronics Corp. Visual display and helmet assembly
US6098133A (en) * 1997-11-28 2000-08-01 Motorola, Inc. Secure bus arbiter interconnect arrangement
US6061753A (en) 1998-01-27 2000-05-09 Emc Corporation Apparatus and method of accessing target devices across a bus utilizing initiator identifiers
US6428174B1 (en) * 2001-04-27 2002-08-06 Delphi Technologies, Inc. Vacuum fluorescent display panel with integral illumination of panel indicia
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US7277972B2 (en) * 2002-03-08 2007-10-02 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor

Also Published As

Publication number Publication date
GB0420728D0 (en) 2004-10-20
GB2402783B (en) 2005-12-14
JP4799822B2 (en) 2011-10-26
US7383584B2 (en) 2008-06-03
AU2002357923A1 (en) 2003-10-13
KR20040102363A (en) 2004-12-04
WO2003083628A3 (en) 2004-07-08
DE10297686B4 (en) 2017-09-28
AU2002357923A8 (en) 2003-10-13
US20030188169A1 (en) 2003-10-02
GB2402783A (en) 2004-12-15
WO2003083628A2 (en) 2003-10-09
DE10297686T5 (en) 2005-05-12
KR100972635B1 (en) 2010-07-28

Similar Documents

Publication Publication Date Title
US6854039B1 (en) Memory management system and method providing increased memory access security
US8135962B2 (en) System and method providing region-granular, hardware-controlled memory encryption
US5835594A (en) Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
TWI705353B (en) Integrated circuit, method and article of manufacture for allowing secure communications
US7366849B2 (en) Protected configuration space in a protected environment
JP4688490B2 (en) Trusted client using high security kernel in high security execution mode
KR940003325B1 (en) Virtual input/output commands
US8051301B2 (en) Memory management system and method providing linear address based memory access security
JP4945053B2 (en) Semiconductor device, bus interface device, and computer system
JP4799822B2 (en) System and method for controlling access between devices in a computer system
KR100995146B1 (en) System and method for handling device accesses to a memory providing increased memory access security
KR100831468B1 (en) Nodma cache
US20060136634A1 (en) Data address security device and method
EP1862908B1 (en) Integrated circuit arrangement, a method for monitoring access requests to an integrated circuit arrangement component of an integrated circuit arrangement and a computer program product
JP5380392B2 (en) Semiconductor device, bus interface device, and computer system
JP5324676B2 (en) Processor, bus interface device, and computer system
TW202418133A (en) Integrated circuit, method and computer system for allowing secure communications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081001

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090928

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091008

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100108

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110803

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4799822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term