Querying a device for information
Summary by NHIP
Processor write query handling
The apparatus receives a write query from a peripheral device requesting vendor specific information and transmits that information via a second write query. Ordering rules of the interconnect protocol terminate upon receiving the initial query, rendering the response independent of those rules.
Claim Score by NHIP
Abstract
In one embodiment, the present invention includes a method for receiving in a processor complex a first write request from a peripheral device, obtaining information of the processor complex responsive to the first write request, and transmitting a second write request from the processor complex to the peripheral device including the information. Other embodiments are described and claimed.

Term
2.7 yearsleft in the term
Expires 27 May 2029, including 240 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
14 claims: 3 independent, 11 dependent
- 1An apparatus comprising:a processor complex including: an interface to communicate with a peripheral device via an interconnect, the interface to receive a write query from the peripheral device to perform a write operation to a first location of the processor complex, wherein the write query includes an indicator to request vendor specific information of the processor complex;a logic coupled to the first location, wherein the logic is to access the vendor specific information responsive to the write query and to generate a second write query to transmit the vendor specific information to the peripheral device, wherein ordering rules of a communication protocol of the interconnect terminate with respect to the write query when it is received in the logic, and the second write query is independent of the write query with respect to the ordering rules;a plurality of cores coupled to the logic to perform operations responsive to instructions;and a memory controller coupled to the logic to communicate with a memory.
- 9Broadest claimClaim Score 65, broad(NHIP)A system comprising:a processor complex including an interface to communicate with a peripheral device via an interconnect, a plurality of cores to perform operations responsive to instructions, and a memory controller to communicate with a memory, the interface to receive a write request from the peripheral device to write information to the processor complex, wherein the write request is to be handled by the processor complex as if it were a read request such that the processor complex is to transmit a second write request to the peripheral device that includes vendor specific information of the processor complex;the peripheral device coupled to the processor complex via the interconnect, wherein the peripheral device is to generate the write request on initialization of the system;and the memory coupled to the processor complex.
- 12A system comprising:a processor complex including: an interface to couple to a peripheral device via an interconnect, the interface to receive a first write query from the peripheral device to perform a write operation to a first location of the processor complex, the first write query to request vendor specific information of the processor complex;a logic coupled to the first location to access the vendor specific information responsive to the first write query and to generate a second write query to transmit the vendor specific information to the peripheral device, wherein the first and second write queries avoid data dependency and ordering rules of a communication protocol of the interconnect for a read request;and a plurality of cores coupled to the logic to perform operations responsive to instructions;a memory controller coupled to the logic to communicate with a memory;and the memory coupled to the processor complex.
Independent claims3
29 paragraphs in 3 sections, as filed
BACKGROUND
In modern computer systems, various components communicate with each other according to a given communication protocol. For example, a peripheral device may communicate with a processor of a system via an intermediate interface such as a controller hub coupled between the device and processor. An example form of such communication is according to a so-called Peripheral Component Interconnect Express (PCI Express™ (PCIe™)) communication protocol.
Typical transactions include write and read transactions, interrupts and so forth. Typically, read transactions are used by a peripheral device to obtain data from a memory. However, such devices generally do not communicate read transactions directly to a processor, such as to query information regarding the processor. This is so, as it is unnatural and difficult to allow such a query, as an in-out dependency would occur and further would raise ordering issues in the processor. Thus while a processor may include various identification information such as processor identifier (ID) information, fusing information, state information or configuration information regarding its capabilities and so forth, it is generally difficult or impossible for devices coupled to the processor to obtain such information.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idrefs="DRAWINGS">FIG. 1</figref> is a flow diagram of a method in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram of a portion of a system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 3</figref> is a block diagram of a processor complex in accordance with an embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a block diagram of a processor complex in accordance with another embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 5</figref> is a block diagram of a system in accordance with one embodiment of the present invention.
<figref idrefs="DRAWINGS">FIG. 6</figref> is a block diagram of a system in accordance with another embodiment of the present invention.
DETAILED DESCRIPTION
In various embodiments, in order to enable devices coupled to a processor complex to obtain information directly from the processor complex, a data flow including write-write transactions may be accommodated. Specifically, register access vendor defined messages (RAVDMs, or in short VDMs) of a write transaction from a device such as a peripheral device may be used to request information from the processor complex. Responsive to this write request, the processor complex may obtain and provide the requested information back to the peripheral device, using a similar write request transaction. In this way, complexities associated with a read request can be avoided. Such complexities include data dependency issues, as well as ordering issues. Still further, such reads to a processor generally do not occur, as a memory controller or other controller device do not provide for peer cycles to allow reads to internal devices of a processor complex. Historically, upstream configuration read/write (R/W) accesses from a peripheral device to a root (e.g., processor) complex have not been supported.
In one embodiment, such write-write transactions may be used with usage models to obtain configuration information regarding a processor complex, such as may occur during power up or initialization of a system. Specifically, in one such implementation a peripheral controller hub (PCH) may request so-called stock keeping unit (SKU) information that is associated with the processor complex. Such SKU information may provide details regarding a processor's configuration as it is configured at the factory. That is, certain processors may be manufactured having various features such as a number of cores, available operating frequencies, additional functional units, modes of operation and so forth. However, during manufacture different processors may be configured differently. For example, programmable fuses may be used to have only certain portions of a given processor's functionality enabled. In this way, a manufacturer can easily fabricate many lots of devices having the same semiconductor processing operations (e.g., masks and so forth) and then in the factory, each processor may be individually programmed to enable/disable various features. In this way, the commonly manufactured devices can be sold at different price levels depending on the enabled features.
Thus in some use models, a PCH or other peripheral device coupled to such a processor may, upon startup, seek to determine the processor's capabilities. Thus using write-write transactions in accordance with an embodiment of the present invention, the peripheral device can obtain the configuration and capability information, which may include ID information, such as processor vendor, processor type (i.e., segment targeted), processor generation (i.e., year produced), features enabled/disabled, maximum power dissipated, typical latencies, and so forth.
Referring now to <figref idrefs="DRAWINGS">FIG. 1</figref>, shown is a flow diagram of a method in accordance with one embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, method <b>100</b> may be performed by a processor complex to receive a write request and handle it accordingly. As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, method <b>100</b> may begin by receiving a write query to a predetermined location (block <b>110</b>). For example, an interface of the processor complex may receive the write request from an interconnect that is coupled between the processor complex and a peripheral device such as a PCH. This write request may be a RAVDM write to a predetermined bus/device/function (BDF & BAR) along with an offset. Still further, in addition to this address information for the write request, the request may further include data, which may or may not be used, as described further below. As one example, the BDF/Bar and offset may be used to identify a queue within the processor complex in which the request is to be stored, for example, a vendor defined message (VDM) queue.
Still referring to <figref idrefs="DRAWINGS">FIG. 1</figref>, based on this location information the write request may be routed to that location (block <b>120</b>). Thus for example the write request may be forwarded through various circuitry of the processor complex to the write queue.
Later, the information of the write query may then be read from the targeted location (block <b>130</b>). For example, the entry of the VDM queue for the write request may be processed when it reaches the top of the queue. This information may be used to handle the write request from the peripheral device as if it were a read request to access desired information of the processor complex. For example, the offset information that is in the entry may be used to indicate from where the requested information is to be obtained. Accordingly, the desired information may be obtained from that location based on the information requested (block <b>140</b>). While the scope of the present invention is not limited in this regard, as one example, this offset may predetermine the information to be obtained. In such implementations, the offset may operate to trigger microcode or other hardware, software or firmware to obtain the desired information. This information may correspond to one or more of a set of configuration registers present in the processor complex. Such configuration registers may include a processor ID register, one or more capabilities registers that include information regarding the enabling or disabling of various processor features, bus speeds or so forth. As will be discussed below, other manners of obtaining information may be implemented using data received with the write query.
Next, when this request information has been obtained, a write request that is thus responsive to the incoming write request may be formed (block <b>150</b>). As one example, this write request may be a similar RAVDM message to write the obtained information back to the peripheral device. Thus, at block <b>160</b> the write request may be output from the processor complex to the requesting device. Alternatively, at block <b>160</b> the write request may be output from the processor complex to a different device determined via a CPU complex register. Accordingly, this write request acts as a response to the incoming write query. Thus the multiple write-write transactions have the same effect as an incoming read request and associated completion message back to requesting device, without the complexities of ordering requirements, dependencies, additional internal datapath complexities and so forth of a given communication protocol. While described with this particular implementation in the embodiment of <figref idrefs="DRAWINGS">FIG. 1</figref>, the scope of the present invention is not limited in this regard.
Embodiments can be implemented in many different systems and processor types. However, certain implementations may be used in connection with a platform having a processor complex, which may be a single die integrated circuit including multiple processor cores, caches, associated logic, memory controller, interface controller and so forth.
Referring now to <figref idrefs="DRAWINGS">FIG. 2</figref>, shown is a block diagram of a portion of a system in accordance with one embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, system <b>200</b> includes a processor complex <b>210</b> that is coupled to a memory <b>260</b> which, in one embodiment may be dynamic random access memory (DRAM), and a PCH <b>280</b>. As shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, processor complex <b>210</b> may include a plurality of cores <b>220</b><sub>a</sub>-<b>220</b><sub>d </sub>(generically core <b>220</b>). Each core may be associated with a corresponding cache memory <b>225</b><sub>a</sub>-<b>225</b><sub>d </sub>(generically cache <b>225</b>). In addition, processor complex <b>210</b> includes uncore logic <b>230</b>, which may include various logic of the processor that is not resident in the cores such as certain interface and control logic. Also present within processor complex <b>210</b> is an input/output (I/O) interface <b>240</b> that provides an interface to an interconnect <b>245</b>, which in one embodiment may be a direct media interface (DMI) or another point-to-point interconnect that is coupled between processor complex <b>210</b> and PCH <b>280</b>. In addition, processor complex <b>210</b> further includes a memory controller <b>250</b> that provides an interface between the complex and memory <b>260</b>. While shown with these limited components for ease of illustration understand that additional components may be present within processor complex <b>210</b>, such as fixed function units, other processing units and so forth.
As further shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, uncore logic <b>230</b> may include various components that may aid in handling of write-write transactions. More specifically, information that may be requested by a peripheral device may be present in a set of configuration or memory mapped registers <b>232</b>. As described above, such registers may include various information regarding the identification and capabilities of processor complex <b>210</b>. When a request that is received by uncore logic <b>230</b> via an arbiter <b>234</b>, it is stored in a vendor defined message (VDM) queue <b>235</b>. When this entry of the queue reaches the top or head of the queue, uncore logic <b>230</b> obtains the information from registers <b>232</b> and sends it through a multiplexer <b>236</b>, after which it is then queued for storage in a VDM queue <b>238</b>. When output to an arbiter <b>239</b>, a write request message including the desired information is arbitrated with other outgoing requests. Note that in the illustration of <figref idrefs="DRAWINGS">FIG. 2</figref>, only a single input to arbiters <b>234</b> and <b>239</b> is shown. However understand that in various implementations these arbiters may be configured to arbitrate among various incoming requests received from different cores, logic, interfaces and so forth.
Thus when an incoming RAVDM write query is received from PCH <b>280</b> (and more particularly from a manageability engine <b>285</b> within), the requests may be provided through I/O interface <b>240</b> to uncore logic <b>230</b> for handling. Then, responsive to this query a corresponding write query may be transmitted from uncore logic <b>230</b> with requested information for transmission through I/O interface <b>240</b> back to PCH <b>280</b>. While shown with this limited detail in the embodiment of <figref idrefs="DRAWINGS">FIG. 2</figref> for ease of illustration, understand the scope of the present invention is not limited in this aspect.
Referring now to <figref idrefs="DRAWINGS">FIG. 3</figref>, shown is a further illustration of a processor complex in accordance with an embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, further details regarding uncore logic <b>230</b> are provided. Specifically, <figref idrefs="DRAWINGS">FIG. 3</figref> shows a data flow of write-write transactions in accordance with an embodiment of the present invention. The initiation of a RAVDM write query (<b>1</b>) from PCH <b>280</b> is received in processor complex <b>210</b> through I/O interface <b>240</b> (<b>2</b>) that causes writing of the query into VDM queue <b>235</b> (<b>3</b>). Note that at this point in the transactions, the write query from the PCH has been consumed and thus ordering rules with respect to a communication protocol (e.g., a PCIe protocol) are terminated. When the requested information of the write query is retrieved, a second write query (<b>4</b>) is formed that is then transmitted from uncore logic <b>230</b> (<b>5</b>) and through I/O interface <b>240</b> to PCH <b>280</b> (<b>6</b>). It is noted that this second write request is an independently generated and ordered transaction such that no dependencies or ordering issues exist with respect to the previous write transaction.
In other implementations, rather than receiving a write request that causes obtaining and sending of responsive data from a predetermined location (based on bus/device/function/bar and offset), other implementations may provide a more flexible manner for handling write-write transactions. For example, a RAVDM write with data may be received. As described above, this data may be stored, e.g., in a VDM queue. When accessed from the VDM queue, the data may be used as an index for information to be written back to the peripheral device. Note that this index may directly access information or may be used in connection with a doorbell mechanism, further described below. In yet other embodiments, the data received with a write query can be used, operated on (e.g., incremented, encrypted or so forth) and returned in the response write query. For example, in one such implementation a processor complex may receive a ping signal with a first value (e.g., a value of one). Then when transmitting the corresponding write query, this data value may be incremented and returned with a value of two to a requesting peripheral device. Note that in some implementations such process may occur in reverse, namely where the processor complex sends the ping signal and the peripheral device sends a ping return with the updated data value.
Still further, in some embodiments it is possible to receive multiple write requests from a peripheral device and based on these requests obtain data from locations indicated by the write requests themselves. That is, instead of the predetermined transfer of specific configuration or other information responsive to a single write request to a predetermined BDF/BAR and offset, other implementations may use a so-called doorbell register to access information indicated by one or more write requests. As one such example, a first write request from a peripheral device may include a BDF/BAR and offset to this doorbell register which is written with data that may contain information regarding the desired response from the processor complex. For example, the data may include information regarding a response BDF/Bar and offset, information source (e.g., fuses, registers, hidden registers or so forth), an indication of the amount of data to return, attributes such as routing hints and action to be taken or so forth. Such actions may be to take an action on triggering write data. For example, the return data may be encrypted, a data value sent with the write request may be incremented and returned with the corresponding reply write request, or another action may be performed, e.g., a requested processor action, which upon completion may cause the reply write request to be sent. Such information may be sent in multiple write requests, where the second or later request triggers the doorbell register in which the data of an earlier write request is stored.
Referring now to <figref idrefs="DRAWINGS">FIG. 4</figref>, shown is a block diagram of a processor complex in accordance with another embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, system <b>400</b> includes a processor complex <b>410</b>. Processor complex <b>410</b> may include similar components to that of <figref idrefs="DRAWINGS">FIG. 2</figref>, namely cores <b>420</b><i>a</i>-<b>420</b><sub>d</sub>, caches <b>425</b><sub>a</sub>-<b>425</b><sub>d</sub>, uncore logic <b>430</b>, an I/O interface <b>440</b>, and an MCH <b>450</b>. However, in this implementation uncore logic <b>430</b> includes a doorbell register <b>435</b> that is configured to receive an incoming write request from PCH <b>480</b> through arbiter <b>434</b>. After storage of the initial data from the first write request, a second write transaction from PCH <b>480</b> may access this information and use it as an index to obtain information from a particular one or more configuration registers <b>432</b>. In turn, the information may be sent through multiplexer <b>436</b> and stored in VDM queue <b>438</b>, until it is sent from arbiter <b>439</b> to interface <b>440</b>.
Embodiments may be implemented in many different system types. Referring now to <figref idrefs="DRAWINGS">FIG. 5</figref>, shown is a block diagram of a system in accordance with an embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, multiprocessor system <b>500</b> is a point-to-point interconnect system, and includes a processor complex <b>571</b> including a first processor <b>570</b> and a chipset <b>590</b>. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, first processor <b>570</b> and a second processor <b>580</b> are coupled via a point-to-point interconnect <b>550</b>. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, each of processors <b>570</b> and <b>580</b> may be multicore processors, including first and second processor cores (i.e., processor cores <b>574</b><i>a </i>and <b>574</b><i>b </i>and processor cores <b>584</b><i>a </i>and <b>584</b><i>b</i>). Each processor may further include uncore logic <b>575</b> and <b>585</b>, which may handle an incoming write request from a peripheral device as if it were a read request to obtain and provide configuration information of the processor.
Still referring to <figref idrefs="DRAWINGS">FIG. 5</figref>, first processor <b>570</b> further includes a memory controller <b>572</b> and point-to-point (P-P) interfaces <b>576</b> and <b>578</b>. Similarly, second processor <b>580</b> includes a memory controller <b>582</b> and P-P interfaces <b>586</b> and <b>588</b>. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, memory controllers <b>572</b> and <b>582</b> couple the processors to respective memories, namely a memory <b>532</b> and a memory <b>534</b>, which may be portions of main memory (e.g., a dynamic random access memory (DRAM)) locally attached to the respective processors. First processor <b>570</b> and second processor <b>580</b> may be coupled to a chipset <b>590</b> via P-P interconnects <b>552</b> and <b>554</b>, respectively. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, chipset <b>590</b> includes P-P interfaces <b>594</b> and <b>598</b>.
Furthermore, chipset <b>590</b> includes an interface <b>592</b> to couple chipset <b>590</b> with a high performance graphics engine <b>538</b>. In turn, chipset <b>590</b> may be coupled to a first bus <b>516</b> via an interface <b>596</b>. As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, various I/O devices <b>514</b> may be coupled to first bus <b>516</b>, along with a bus bridge <b>518</b> which couples first bus <b>516</b> to a second bus <b>520</b>. Various devices may be coupled to second bus <b>520</b> including, for example, a keyboard/mouse <b>522</b>, communication devices <b>526</b> and a data storage unit <b>528</b> such as a disk drive or other mass storage device which may include code <b>530</b>, in one embodiment. Further, an audio I/O <b>524</b> may be coupled to second bus <b>520</b>.
Referring now to <figref idrefs="DRAWINGS">FIG. 6</figref>, shown is a block diagram of a system in accordance with another embodiment of the present invention. As shown in <figref idrefs="DRAWINGS">FIG. 6</figref>, system <b>400</b>′ may be a front side bus (FSB) system, or other processor interconnect-based system in which a processor <b>420</b> is coupled to a chipset <b>410</b> including uncore logic <b>430</b> via a processor interconnect <b>415</b>. In other respects system <b>400</b>′ may be adapted similar to that of <figref idrefs="DRAWINGS">FIG. 4</figref>. Note however the presence of an external graphics card <b>465</b>, also coupled to chipset <b>410</b>.
Embodiments may be implemented in code and may be stored on a storage medium having stored thereon instructions which can be used to program a system to perform the instructions. The storage medium may include, but is not limited to, any type of disk including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs) such as dynamic random access memories (DRAMs), static random access memories (SRAMs), erasable programmable read-only memories (EPROMs), flash memories, electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, or any other type of media suitable for storing electronic instructions.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Contents3
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both waysCites: the store holds 8 of 9
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8896560B2 | Cited by | United States of America | Applicant |
| US8884906B2 | Cited by | United States of America | Applicant |
| JP2002358251A | Cites | Japan | Applicant |
| US2004028199A1 | Cites | United States of America | Search report |
| JP2006215873A | Cites | Japan | Applicant |
| US2009210637A1 | Cites | United States of America | Search report |
| US2010122009A1 | Cites | United States of America | Search report |
| US7464207B2 | Cites | United States of America | Search report |
| JPH0749855A | Cites | Japan | Applicant |
| JPH10207812A | Cites | Japan | Applicant |
| United Kingdom Intellectual Property Office, Examination Report Under Section 18(3) issued on Dec. 6, 2010 in U.K. patent application No. GB0916679.4. | Non-patent | – | Applicant |
| Japanese Patent Office, Office Action mailed Jul. 16, 2011 in Japanese application No. 2009-222876. | Non-patent | – | Applicant |
26 members in 9 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 28618708 | United States of America | A | |
| US20080286187 | – | – | – |
Members26
| Document | Office | Kind | |
|---|---|---|---|
| US4821211A | United States of America | A | |
| EP0317480A2 | European Patent Office (EPO) | A2 | |
| JPH01144117A | Japan | A | |
| BR8806005A | Brazil | A | |
| EP0317480A3 | European Patent Office (EPO) | A3 | |
| CA1306066C | Canada | C | |
| EP0317480B1 | European Patent Office (EPO) | B1 | |
| DE3850051D1 | Germany | D1 | |
| DE3850051T2 | Germany | T2 | |
| GB0916679D0 | United Kingdom | D0 | |
| GB2463781A | United Kingdom | A | |
| US2010082852A1 | United States of America | A1 | |
| JP2010086536A | Japan | A | |
| DE102009043263A1 | Germany | A1 | |
| CN101714127A | China | A | |
| TW201025014A | Taiwan Province of China | A | |
| GB2463781B | United Kingdom | B | |
| US8166207B2This record | United States of America | B2 | |
| JP4964931B2 | Japan | B2 | |
| US2012179842A1 | United States of America | A1 | |
| CN101714127B | China | B | |
| US2012185615A1 | United States of America | A1 | |
| US8386668B2 | United States of America | B2 | |
| US8396996B2 | United States of America | B2 | |
| TWI421691B | Taiwan Province of China | B | |
| DE102009043263B4 | Germany | B4 |
54 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 appeal.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 0
- Appeals
- 1
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail PUB Notice of non-compliant IDSMM327-B | MM327-B | |
| PUB Notice of non-compliant IDSM327-B | M327-B | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Appeals conf. Reopen Prosec.MAPCR | MAPCR | |
| Pre-Appeal Conference Decision - Reopen ProsecutionAPCR | APCR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Request for Pre-Appeal Conference FiledAP.C | AP.C | |
| Notice of Appeal FiledN/AP | N/AP | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response to Election / Restriction FiledELC. | ELC. | |
| Mail Restriction RequirementMCTRS | MCTRS | |
| Restriction/Election RequirementCTRS | CTRS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08166207
- Publication, DOCDB
- 8166207
- Publication, EPODOC
- US8166207
- Application
- 12286187
- Application, DOCDB
- 28618708
- Application, EPODOC
- US20080286187
Titles
- English
- Querying a device for information
Patent term adjustment
- A delay
- +196 daysthe office missed an examination deadline
- B delay
- +76 dayspendency past three years
- Applicant delay
- −32 days
- Net adjustment
- 240 days
Classification
- CPC, 3
- G06F13/122
- G06F13/126
- G06F13/42
- IPC, 2
- G06F3 00
- G06F13 00
- USPC, 4
- 710005000
- 710008000
- 710031000
- 710033000