← Back to Patent Explorer
US5953516A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device

Assignee: Samsung Electronics Co Ltd
•
Filing: 1997-06-24
•
Granted: 1999-09-14
•
Expires: 2017-06-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of emulating a peripheral device in a multiprocessor computer system to test device driver programs. The emulation program is loaded by a host microprocessor into one or more of the other microprocessors (target microprocessors) which are not being accessed by the operating system software. After the emulation program is loaded, control vectors to the entry point of the emulation program, where the environment in each of the target microprocessors are initialized for the emulator program. If more than one target microprocessor are utilized, then one of the target microprocessors are designated as the "master" microprocessor, which accepts interprocessor interrupts from the host microprocessor. When the device driver program running on the host microprocessor invokes an I/O command, and emulation mode is selected, then an interprocessor interrupt (IPI) is asserted to the master microprocessor. In response, an I/O emulation interrupt handler is executed by the master microprocessor to provide the appropriate responses to the device driver under test.

Inventors

  • 👤 Thomas J. Bonola

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 16:07
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/22; G06F11/26; G06F11/261; G06F13/00; G06F13/10; G06F13/105

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 161 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; and a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein said memory further contains a communications packet having a plurality of parameters, and wherein communication between said device driver and said peripheral device emulation program is accomplished via said communications packet.
Claim 2
Independent Claim 161 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; and a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein said memory further contains a communications packet having a plurality of parameters, and wherein communication between said device driver and said peripheral device emulation program is accomplished via said communications packet.
Claim 3
Independent Claim 174 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and an actual peripheral device coupled to said host bus, wherein an I/O access by said device driver to said actual peripheral device causes said first general purpose processor to access said actual peripheral device rather than said communications channel of said second general purpose processor.
Claim 4
Independent Claim 174 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and an actual peripheral device coupled to said host bus, wherein an I/O access by said device driver to said actual peripheral device causes said first general purpose processor to access said actual peripheral device rather than said communications channel of said second general purpose processor.
Claim 5
Independent Claim 174 words
A system for emulating a peripheral device comprising: a host bus: a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; and a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein said communication channel of said second general purpose processor includes an interprocessor interrupt port, and wherein said first general purpose processor asserts an interprocessor interrupt to said interprocessor interrupt port when said device driver performs said I/O access to the peripheral device being emulated.
Claim 6
Independent Claim 174 words
A system for emulating a peripheral device comprising: a host bus: a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver; and a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein said communication channel of said second general purpose processor includes an interprocessor interrupt port, and wherein said first general purpose processor asserts an interprocessor interrupt to said interprocessor interrupt port when said device driver performs said I/O access to the peripheral device being emulated.
Claim 7
Dependent Claim 39 words
The system of claim 3, wherein said memory further contains an interprocessor interrupt packet having a plurality of parameters, wherein communication between said device driver code and said peripheral device emulation program is accomplished via said interprocessor interrupt packet.
Claim 8
Dependent Claim 34 words
The system of claim 3, wherein said peripheral device emulation program includes an emulation interrupt handler, said emulation interrupt handler being invoked when said interprocessor interrupt is asserted by said first general purpose processor.
Claim 9
Independent Claim 178 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and a third general purpose processor coupled to said host bus, wherein said memory further contains a second peripheral device emulation program, wherein said third general purpose processor executes said second peripheral device emulation program for concurrent emulation of a peripheral device on said second and third general purpose processors.
Claim 10
Independent Claim 178 words
A system for emulating a peripheral device, comprising: a host bus; a memory coupled to said host bus containing a device driver and a peripheral device emulation program; a first general purpose processor coupled to said host bus and executing said device driver a second general purpose processor coupled to said host bus and having a communication channel accessible by said first general purpose processor, said second general purpose processor executing said peripheral device emulation program, said first general purpose processor accessing said communication channel when said device driver performs an I/O access to the peripheral device being emulated to provide an I/O address and an I/O command, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and a third general purpose processor coupled to said host bus, wherein said memory further contains a second peripheral device emulation program, wherein said third general purpose processor executes said second peripheral device emulation program for concurrent emulation of a peripheral device on said second and third general purpose processors.
Claim 11
Independent Claim 236 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, and a communications packet having a plurality of parameters the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; and responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and writing certain of said plurality of parameters in said communications packet to communicate to said peripheral device emulation program by the device driver code; and writing certain others of said plurality of parameters in said communications packet to communicate to the device driver code by said peripheral device emulation program.
Claim 12
Independent Claim 236 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, and a communications packet having a plurality of parameters the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; and responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and writing certain of said plurality of parameters in said communications packet to communicate to said peripheral device emulation program by the device driver code; and writing certain others of said plurality of parameters in said communications packet to communicate to the device driver code by said peripheral device emulation program.
Claim 13
Independent Claim 216 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; and responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein the memory further contains an operating system, wherein the first general purpose processor is controlled by said operating system, and wherein said peripheral device emulation program executed by the second general purpose processor is independent of said operating system.
Claim 14
Independent Claim 216 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; and responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response, wherein the memory further contains an operating system, wherein the first general purpose processor is controlled by said operating system, and wherein said peripheral device emulation program executed by the second general purpose processor is independent of said operating system.
Claim 15
Independent Claim 238 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and wherein the communication channel of the second general purpose processor includes an interprocessor interrupt port, and wherein said step of the first general purpose processor accessing the communication channel includes the step of: the first general purpose processor asserting an interprocessor interrupt to said interprocessor interrupt port when the device driver code performs the I/O access to the peripheral device being emulated.
Claim 16
Independent Claim 238 words
A method of emulating a peripheral device in a multiprocessor computer system, wherein the multiprocessor computer system includes a first general purpose processor, a second general purpose processor, and a memory, all coupled to a host bus, the memory containing a device driver, the first general purpose processor for executing said device driver, the second general purpose processor having a communications channel accessible by the first general purpose processor, the method comprising the steps of: loading a peripheral device emulation program into the memory; performing an I/O access to the peripheral device to be emulated to provide an I/O address and an I/O command by the device driver; accessing the communication channel of the second general purpose processor in response to the device driver performing said I/O access by the first general purpose processor; responding to said access of the communication channel by invoking said peripheral device emulation program by the second general purpose processor, wherein said peripheral device emulation program responds to said I/O address and I/O command to emulate the peripheral device response; and wherein the communication channel of the second general purpose processor includes an interprocessor interrupt port, and wherein said step of the first general purpose processor accessing the communication channel includes the step of: the first general purpose processor asserting an interprocessor interrupt to said interprocessor interrupt port when the device driver code performs the I/O access to the peripheral device being emulated.

References Cited (Backward Citations)

US4855905A Cited
US5491813A Cited
US5303378A Cited
US5548783A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-09-13 2003-03-15 2003-09-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-09-13 2007-03-15 2007-09-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-09-13 2011-03-15 2011-09-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag