Source: http://www.google.com/patents/US7797728?dq=5083039
Timestamp: 2016-10-24 15:20:44
Document Index: 648748700

Matched Legal Cases: ['Application No. 11', 'Application No. 200702415', 'Application No. 200580032988', 'Application No. 200580032988', 'Application No. 200580032988', 'Application No. 200580032988', 'Application No. 0706013', 'Application No. 0706013', 'Application No. 11', 'Application No. 11', 'Application No. 112005002314', 'Application No. 2007']

Patent US7797728 - Mechanism to generate restricted and unrestricted execution environments - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsAccording to one embodiment, computer system is disclosed. The computer system includes a central processing unit (CPU) having a first thread having first associated thread identification (ID) and a second thread having second associated thread ID. The computer system also includes a chipset coupled...http://www.google.com/patents/US7797728?utm_source=gb-gplus-sharePatent US7797728 - Mechanism to generate restricted and unrestricted execution environmentsAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS7797728 B2Publication typeGrantApplication numberUS 10/974,217Publication dateSep 14, 2010Filing dateOct 27, 2004Priority dateOct 27, 2004Fee statusPaidAlso published asCN101031922A, DE112005002314T5, US20060101463, WO2006047762A1Publication number10974217, 974217, US 7797728 B2, US 7797728B2, US-B2-7797728, US7797728 B2, US7797728B2InventorsDavid I. PoisnerOriginal AssigneeIntel CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (16), Non-Patent Citations (14), Referenced by (2), Classifications (19), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetMechanism to generate restricted and unrestricted execution environments
US 7797728 B2Abstract
According to one embodiment, computer system is disclosed. The computer system includes a central processing unit (CPU) having a first thread having first associated thread identification (ID) and a second thread having second associated thread ID. The computer system also includes a chipset coupled to receive access requests from the CPU and to examine a thread ID included with the access request to determine which thread is requesting access.
a first thread having first associated thread identification (ID); and
a second thread having second associated thread ID; and
a chipset coupled to receive access requests, from the CPU, to access requested resources, the chipset to examine a thread ID included with each of the access requests to determine which thread is requesting access to the requested resources,
wherein the first thread is an unrestricted thread that is provided full access to data and the second thread is a restricted thread that is provided limited access to data, wherein at least one of the first or second threads is to provide a respective processor function to implement an operating system, wherein the chipset is to operate in a plurality of modes comprising: said each of the access requests to be first transferred to the unrestricted thread to determine whether a request is to be passed to the restricted thread or the first thread and the second thread to operate independently to prevent the restricted thread from muting the unrestricted thread; and
a thread checker to examine the thread ID and determine whether the corresponding thread is to access the requested resources.
2. The computer system of claim 1 further comprising a memory device coupled to the chipset, wherein the unrestricted thread is provided access to all pages of the memory device and the restricted thread is provided access to allocated regions of the memory device.
3. The computer system of claim 1 wherein the CPU and the chipset enable restricted components of computer system to be modified, and the unrestricted components to remain unmodified.
4. The computer system of claim 1 wherein the unrestricted thread has supervisory access over the restricted thread to enable the unrestricted thread to examine access levels of the restricted thread.
5. The computer system of claim 1 wherein the chipset comprises timer and interrupt resources that cannot be modified by the restricted thread.
6. The computer system of claim 1 wherein the chipset further comprises registers to enable the unrestricted thread to cause events that will be handled by the restricted threads.
7. The computer system of claim 1 wherein the chipset comprises a graphics interface to enable the unrestricted thread to display a window on a monitor so that a window associated with the restricted thread cannot be placed on top of the window associated with the unrestricted thread.
8. The computer system of claim 1 wherein the chipset comprises a disk controller to provide the unrestricted thread full access to data on a hard disk coupled to the disk controller and to provide the restricted threads access to specific sections of the hard disk.
9. The computer system of claim 8 wherein the disk controller comprises:
a first interface associated with the unrestricted thread;
a second interface associated with the restricted thread; and
a DMA engine.
10. The computer system of claim 1 wherein the chipset comprises an audio controller to allow an output audio stream to operate independently for the unrestricted and restricted threads to prevent the restricted thread from muting the unrestricted thread.
11. The computer system of claim 10 wherein the audio controller includes a mode to allow an input stream to be transmitted to the unrestricted thread first to determine if the audio data should be passed to the restricted thread.
12. The computer system of claim 1 wherein the chipset comprises a network controller to allow the unrestricted thread full access and the restricted thread restricted access.
13. The computer system of claim 12 wherein packets that are transmitted by the restricted threads are made available for inspection or modification by the unrestricted thread and, packets received from the network are first inspected by the unrestricted thread before being made available to the restricted thread.
receiving a request to access one or more requested resources;
examining, at a chipset, a thread identification (ID) associated with the request to determine whether a corresponding thread is to access the requested resources,
wherein a first thread is an unrestricted thread that is provided full access to data and a second thread is a restricted thread that is provided limited access to data, wherein at least one of the first or second threads is to provide a respective processor function to implement an operating system, wherein the chipset is to operate in a plurality of modes comprising: the access request to be first transferred to the unrestricted thread to determine whether a request is to be passed to the restricted thread or the first thread and the second thread to operate independently to prevent the restricted thread from muting the unrestricted thread; and
examining, at a thread checker, the thread ID and determining whether the corresponding thread is to access the requested resources.
15. The method of claim 14 further comprising providing access to predetermined components of the resources if the thread ID indicates a request from a restricted thread.
16. An article of manufacture including one or more non-transitory computer readable storage media that embody a program of instructions, wherein the program of instructions, when executed by a processing unit, causes the processing unit to:
receive a request to access one or more requested resources;
examine, by a chipset, a thread identification (ID) associated with the request to determine whether a corresponding thread is to access the requested resources;
wherein a first thread is an unrestricted thread that is provided full access to data and a second thread is a restricted thread that is provided limited access to data, wherein at least one of the first or second threads is to provide a respective processor function to implement an operating system, wherein the chipset is to operate in a plurality of modes comprising: the access request to be first transferred to the unrestricted thread to determine whether the request is to be passed to the restricted thread or the first thread and the second thread to operate independently to prevent the restricted thread from muting the unrestricted thread; and
examine, at a thread checker, the thread ID and determine whether the corresponding thread is to access the requested resources.
at least one processor device or circuitry;
a thread identification (ID) checker to examine thread IDs included with an access request received from a central processing unit (CPU), to access requested resources, the thread ID checker to determine if the access request originated at a first thread having first associated thread identification (ID) or a second thread having second associated thread ID,
wherein the first thread is an unrestricted thread that is provided full access to data and the second thread is a restricted thread that is provided limited access to data; and
wherein at least one of the first or second threads is to provide a respective processor function to implement an operating system, wherein the chipset is to operate in a plurality of modes comprising: the access request to be first transferred to the unrestricted thread to determine whether a request is to be passed to the restricted thread or the first thread and the second thread to operate independently to prevent the restricted thread from muting the unrestricted thread; and
wherein the thread ID checker is to examine the thread ID and determine whether a corresponding thread is to access the requested resources.
18. The chipset of claim 17 wherein the chipset comprises timer and interrupt resources that cannot be modified by the restricted thread.
19. The chipset of claim 18 wherein the chipset further comprises registers to enable the unrestricted thread to cause events that will be handled by the restricted threads.
20. The chipset of claim 17 wherein the chipset comprises a graphics interface to enable the unrestricted thread to display a window on a monitor so that a window associated with the restricted thread cannot be placed on top of the window associated with the unrestricted thread.
21. The chipset of claim 17 wherein the chipset comprises a disk controller to provide the unrestricted thread full access to data on a hard disk coupled to the disk controller and to provide the restricted threads access to specific sections of the hard disk.
22. The chipset of claim 17 wherein the chipset comprises an audio controller to allow an output audio stream to operate independently for the unrestricted and restricted threads to prevent the restricted thread from muting the unrestricted thread.
23. The chipset of claim 17 wherein the chipset comprises a network controller to allow the unrestricted thread full access and the restricted thread restricted access.
24. The chipset of claim 17 wherein the unrestricted thread has supervisory access over the restricted thread to enable the unrestricted thread to examine the access levels of the restricted thread.
There are a variety of applications that would benefit from “isolated execution” and “isolated storage”. Isolated execution is the capability of running code that cannot be disrupted or observed by other software. Isolated execution is important for security software, as well as for protection from non-malicious but poorly written software. For example, a poorly written device driver can potentially interfere with the proper operation of an operating system (OS), resulting in a crash that prevents time-critical apps (such as a Digital Video Recorder) from operating.
Isolated storage relates to an ability to have data stored in non-volatile memory that can be accessed only by an authorized owner. Thus, no other software has the ability to modify or delete the data. The deletion concept is important since an error in an OS or its device driver could result in data on a disk becoming inaccessible.
FIG. 2 is a block diagram illustrating one embodiment of a disk controller coupled to a disk; and
FIG. 3 is a flow diagram of one embodiment for the operation of a computer system.
A mechanism for restricted and unrestricted execution environments in a computer system is described. In the following detailed description of the present invention numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail in order to avoid obscuring the present invention.
FIG. 1 is a block diagram of one embodiment of a computer system 100. Computer system 100 includes a central processing unit (CPU) 102 coupled to bus 105. According to one embodiment, CPU 102 includes multiple cores 103. For instance, CPU 102 includes core 0 and core 1. In one embodiment, computer system 100 simultaneously operates multiple operating systems. In such an embodiment, a separate OS operates on each core 103. Thus, a first OS operates on core 0, while a second OS operates on core 1. In a further embodiment, each individual core may run more than one thread. However, in the description below the term thread is used to indicate processor function implementing an OS.
In one embodiment, CPU 102 is a processor in the Pentium� family of processors including the Pentium� II processor family, Pentium� III processors, and Pentium� IV processors available from Intel Corporation of Santa Clara, Calif. Alternatively, other CPUs may be used.
According to one embodiment, MCH 110 includes a thread-ID checker 113. ID checker 113 receives a thread-ID from CPU 102 via bus 105 indicating which thread is performing a memory or I/O access. In one embodiment, thread-ID checker 113 allocates specific memory regions to a specific thread.
In a further embodiment, an unrestricted thread is provided access to all pages of memory, while one or more other restricted threads are provided access only to specific pages. Further, CPU 102 and chipset 107 enable restricted components of computer system 100 platform to be modified while the unrestricted components of the platform are not reset. In yet a further embodiment, the unrestricted thread may have supervisory access over restricted threads. Such supervisory access enables the unrestricted thread to examine the access levels of the restricted threads.
MCH 110 also includes a timer and interrupt resources 114 and reset and power management registers 116. Timer and interrupt resources are provided to the unrestricted threads to allow the unrestricted thread the ability to have timer and interrupt services that cannot be modified (deliberately or accidentally) by the restricted thread(s).
Reset and power management registers 116 are also implemented for the unrestricted threads. Reset and power management registers 116 cause events that will be handled by the restricted threads. This allows the restricted threads to own the reset and power management policies. According to one embodiment, MCH 110 enables critical events that would normally cause a System Management Interrupt (SMI) to instead cause an interrupt to the unrestricted thread. This allows for OS-independent threads to be run on the unrestricted thread without disturbing the execution flow of the OS running on the restricted thread.
MCH 110 may also include a graphics interface 118. According to one embodiment, graphics interface 118 enables an unrestricted thread to display a window on a display monitor (not shown) so that a window associated with a restricted thread cannot be placed on top of the window associated with the unrestricted thread.
MCH 110 is coupled to an input/output control hub (ICH) 140 via a hub interface. ICH 140 provides an interface to input/output (I/O) devices within computer system 100. ICH 140 includes disk controller 142, audio controller 144 and network controller 146. Disk controller 142 interfaces with one or more disk drives (not shown) to control to control the transfer of data between chipset 107 and the drives.
According to one embodiment, the unrestricted thread is allowed full access to data on a hard disk 260 via the disk controller 142. However, in such an embodiment, restricted threads are not permitted to access specific sections of the disk 260. FIG. 2 is a block diagram illustrating one embodiment of a disk controller 142 coupled to a disk. Disk controller 142 includes interfaces 230 and direct memory access (DMA) engines 250. Interfaces 230 include interfaces 0 and 1.
Interface 0 and interface 1 present independent interfaces to software accessing data on hard disk 260. For example, one configuration space may be seen by the unrestricted thread, while the other is seen by one or more unrestricted threads. DMA engines 250 facilitate direct memory accesses between hard disk 260 and other memory devices (e.g. memory 115) at computcr system 100.
Referring back to FIG. 1, audio controller 144 operates to coordinate the recording and playing of sounds. According to one embodiment, audio controller 144 allows an output audio stream to operate independently for the unrestricted and restricted threads. This prevents the restricted thread from “muting” the unrestricted thread. In a further embodiment, audio controller 144 includes a mode to allow an input stream to be transmitted first to the unrestricted thread, which can decide if the audio data should be passed to the restricted thread.
Network controller 146 links computer system 100 to a network of computers (not shown in FIG. 1) and supports communication among the machines. According to one embodiment, the unrestricted thread is allowed full access to network controller 146, while the restricted threads will not have full access. In one embodiment, packets that are “transmitted” by the restricted threads are first made available for inspection or modification by the unrestricted thread. Further, packets received from the network can first be inspected by the unrestricted thread before being made available to the restricted thread.
FIG. 3 is a flow diagram of one embodiment for memory or I/O access request at computer system 100. At processing block 310, a request to access a device is received at chipset 107 from CPU 102. For example, such a request may be received at MCH 110 to access memory 115. Similarly, the request may be received at disk controller 142 for access to hard disk 260.
At processing block 320, thread-ID checker 113 examines the thread-ID included with the request to determine the requesting thread. At decision block 330, it is determined whether the requesting thread is a restricted thread or an unrestricted thread. If an unrestricted thread, the unrestricted thread is provided full access to data from the device for which the request is targeted, processing block 340.
However if a restricted thread, an examination occurs to determine whether the restricted thread has access to the requested resources, processing block 350. At decision block 360, it is determined whether the restricted thread may access the requested data. If access is specified, the thread is provided access to the requested data from the device for which the request is targeted, processing block 370. However, if it is determined that the thread does not have access to the requested data, access is denied, processing block 380.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4442484 *Oct 14, 1980Apr 10, 1984Intel CorporationMicroprocessor memory management and protection mechanismUS5038281Sep 19, 1986Aug 6, 1991International Business Machines CorporationAcceleration of system interrupts between operating systems in guest-host relationshipUS5822435 *Sep 18, 1996Oct 13, 1998Secure Computing CorporationTrusted path subsystem for workstationsUS5845129 *Mar 22, 1996Dec 1, 1998Philips Electronics North America CorporationProtection domains in a single address spaceUS5900025Sep 12, 1995May 4, 1999Zsp CorporationProcessor having a hierarchical control register file and methods for operating the sameUS6047307 *Mar 7, 1997Apr 4, 2000Microsoft CorporationProviding application programs with unmediated access to a contested hardware resourceUS6192395 *Dec 17, 1999Feb 20, 2001Multitude, Inc.System and method for visually identifying speaking participants in a multi-participant networked eventUS6349355Feb 6, 1997Feb 19, 2002Microsoft CorporationSharing executable modules between user and kernel threadsUS6684262Oct 25, 2000Jan 27, 2004International Business Machines CorporationMethod and system for controlling peripheral device interface behavior using thread registrationUS20020095565Feb 8, 2002Jul 18, 2002Nemirovsky Mario D.Interstream control and communications for multi-streaming digital processorsUS20020124237Dec 29, 2000Sep 5, 2002Brinkley SpruntQualification of event detection by thread ID and thread privilege levelUS20030009648 *Jun 20, 2002Jan 9, 2003International Business Machines CorporationApparatus for supporting a logically partitioned computer systemUS20040073772Oct 11, 2002Apr 15, 2004Erdem HokenekMethod and apparatus for thread-based memory access in a multithreaded processorUS20040117670Dec 11, 2002Jun 17, 2004Tsvika KurtsApparatus and method for data bus power controlJPH11505652A Title not availableWO1997036235A1Mar 10, 1997Oct 2, 1997Philips Electronics N.V.Protection domains in a single address space* Cited by examinerNon-Patent CitationsReference1"Office Action dated Feb. 7, 2008", for German Patent Application No. 11 2005 002 314.1, 5 pages.2International Preliminary Report received for PCT Application No. PCT/US05/39048, mailed on May 10, 2007, 7 pages.3Invitation to Respond to Written Opinion Received for Singapore Patent Application No. 200702415-1, mailed on Jun. 26, 2008, 6 pages.4Office Action received for CN Patent Application No. 200580032988.9, mailed on Dec. 15, 2008, 19 pages inclusive of English translation.5Office Action Received for CN Patent Application No. 200580032988.9, mailed on Jul. 1, 2009, 4 pages inclusive of English translation.6Office Action received for CN Patent Application No. 200580032988.9, mailed on Jul. 14, 2008, 18 pages inclusive of English translation.7Office Action received for CN Patent Application No. 200580032988.9, mailed on Nov. 27, 2009, 6 pages inclusive of English translation.8Office Action received for GB Patent Application No. 0706013.0, mailed on Jun. 9, 2008, 3 pages.9Office Action received for GB patent Application No. 0706013.0, mailed on Oct. 26, 2007, 4 pages.10Office action received for German Patent Application No. 11 2005 002 314.1, mailed on May 6, 2009, 3 pages inclusive of English Translation.11Office Action received for German Patent Application No. 11 2005 002 314.1, mailed on May 7, 2010, 2 pages of Office Action and 1 page of English Translation.12Office Action received for German Patent Application No. 112005002314.1, mailed on Jun. 19, 2009, 5 pages.13Office Action received for Japanese Patent Application No. 2007-539196, mailed on Apr. 20, 2010, 3 pages of Office Action and 3 pages of English Translation.14PCT Search Report, PCT/US2005/039048, mailed Mar. 16, 2006.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS8904548 *Mar 24, 2009Dec 2, 2014Fujitsu LimitedInformation terminal apparatus for information leak monitoringUS20090249496 *Mar 24, 2009Oct 1, 2009Fujitsu LimitedInformation terminal apparatus, information processing method, and computer readable medium storing program thereof* Cited by examinerClassifications U.S. Classification726/2, 709/223, 726/7, 726/3, 709/225, 726/5, 726/4, 713/182, 726/6, 709/224International ClassificationG06F7/04, H04L9/32, H04L9/00Cooperative ClassificationG06F9/468, G06F21/71, G06F9/50European ClassificationG06F9/46V, G06F9/50, G06F21/71Legal EventsDateCodeEventDescriptionMar 4, 2005ASAssignmentOwner name: INTEL CORPORATION, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:POISNER, DAVID I.;REEL/FRAME:016324/0309Effective date: 20050223Feb 19, 2014FPAYFee paymentYear of fee payment: 4RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services