DETAILED ACTION
Claims 21-40 are pending in this application.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Drawings
New corrected drawings in compliance with 37 CFR 1.121(d) are required in this application because figures 5-9 contain typographical errors (Sever VM 520, instead of Server VM 520). Applicant is advised to employ the services of a competent patent draftsperson outside the Office, as the U.S. Patent and Trademark Office no longer prepares new drawings. The corrected drawings are required in reply to the Office action to avoid abandonment of the application. The requirement for corrected drawings will not be held in abeyance.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
Use of the word “means” (or “step for”) in a claim with functional language creates a rebuttable presumption that the claim element is to be treated in accordance with 35 U.S.C. 112(f) (pre-AIA 35 U.S.C. 112, sixth paragraph). The presumption that 35 U.S.C. 112(f) (pre-AIA 35 U.S.C. 112, sixth paragraph) is invoked is rebutted when the function is recited with sufficient structure, material, or acts within the claim itself to entirely perform the recited function.
Absence of the word “means” (or “step for”) in a claim creates a rebuttable presumption that the claim element is not to be treated in accordance with 35 U.S.C. 112(f) (pre-AIA 35 U.S.C. 112, sixth paragraph). The presumption that 35 U.S.C. 112(f) (pre-AIA 35 U.S.C. 112, sixth paragraph) is not invoked is rebutted when the claim element recites function but fails to recite sufficiently definite structure, material or acts to perform that function.
Claim elements in this application that use the word “means” (or “step for”) are presumed to invoke 35 U.S.C. 112(f) except as otherwise indicated in an Office action. Similarly, claim elements that do not use the word “means” (or “step for”) are presumed not to invoke 35 U.S.C. 112(f) except as otherwise indicated in an Office action.
Claims 21-40 do not invoke 35 U.S.C. 112(f) because it recites defined or sufficient structure as described in the specification.
Claims 21, 38 and 40 recite “…a processor configured to...", "...the second virtual machine is configured to…”, "...the third virtual machine is configured to…”, and their respective functional languages and therefore meets two of the three prong analysis.
However, claims 21, 38 and 40 recite sufficiently definite structure because the structures (“…a processor configured to...", "...the second virtual machine is configured to…”, "...the third virtual machine is configured to…”) are described in the specification (Signal Processing Device 170 and Cluster VM 430/AVN VM 440) as structures for performing the respective functions and as such are not generic placeholder, (for instance “means to”, "means for", “module for" and the like) and therefore does not meet the third prong analysis and are presumed not to invoke 35 U.S.C. 112(f).
Claims 22-37 and 39 do not meet the third prong analysis and are presumed not to invoke 35 U.S.C. 112(f) because they dependent from claims 21 and 38.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 21 and 40 are rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 2011/0320823 A1 to Saroiu et al.
As to claim 21, Ahmed teaches a signal processing device comprising:
a processor (multi-core processor/Multi-core Processing Environment 400) configured to perform signal processing for a first display and a second display that are configured to be located in a vehicle (displays/Cluster Display (ICD) 220/Head Up Display (HUD) 230/Center information Display (CID) 210) (“…According to an exemplary embodiment, automobile 1 includes a computer system for integration with a vehicle user interface (e.g., display or displays and user input devices) and includes a processing system. The processing system may include a multi-core processor. The processing system may be configured to provide virtualization for a first guest operating system in a first core or cores of the multi-core processor. The processing system may also be configured to provide virtualization for a second guest operating system in a second and different core or cores of the multi-core processor (i.e., any core not allocated to the first guest operating system). The first guest operating system may be configured for high reliability operation. The virtualization prevents operations of the second guest operating system from disrupting the high reliability operation of the first guest operating system…Referring now to FIG. 2, a user interface system for a vehicle is shown, according to an exemplary embodiment. The user interface system is shown to include an instrument cluster display (ICD) 220, a head up display (HUD) 230, and a center information display (CID) 210. In an exemplary embodiment, each of displays 210, 220, and 230 is a single electronic display. In some embodiments, displays 210, 220, and 230 are three separate displays driver from multiple domains. Display content from various vehicle subsystems may be displayed on each of displays 210, 220, and 230 simultaneously. For example, instrument cluster display 220 is shown displaying engine control unit (ECU) information (e.g., speed, gear, RPMs, etc.). Display 220 is also shown displaying music player information from a music application and navigation information from a navigation application. The navigation information and music player information are shown as also being output to display 230. Phone information from a phone application may be presented via display 210 in parallel with weather information (e.g., from an internet source) and navigation information (from the same navigation application providing information to displays 220, 230)…” paragraphs 0043/0044/0070-0073), wherein:
the processor is configured to execute first, second, and third virtual machines on a hypervisor in the processor (Hypervisor 402) (“…Multi-core processing environment 400 is shown to include a hypervisor 402. Hypervisor 402 may be integrated with a bootloader or work in conjunction with the bootloader to help create the multi-core processing environment 400 during boot. The system firmware (not shown) can start the bootloader (e.g., U-Boot) using a first CPU core (core 0). The bootloader can load the kernel images and device trees from a boot partition for the guest OSs. Hypervisor 402 can then initialize the data structures used for the guest OS that will run on core 1. Hypervisor 402 can then boot the guest OS for core 1…Hypervisor 402 can then switch to a hypervisor mode, initialize hypervisor registers, and hand control over to a guest kernel. On core 0, hypervisor 402 can then do the same for the guest that will run on core 0 (i.e., initialize the data structures for the guest, switch to the hypervisor mode, initialize hypervisor registers, and hand off control to the guest kernel for core 0). After bootup, the distinction between a primary core and a secondary core may be ignored and hypervisor 402 may treat the two cores equally. Traps may be handled on the same core as the guest that triggered them…” paragraph 0076),
the second virtual machine (Domains 408-414) is configured to be operated for the first display (Infotainment Display 425/Cluster Display 426/Head Up Display 427) (“…In FIG. 4, multi-core processing environment 400 is shown in a state after setup is conducted by hypervisor 402 and after the guest OSs are booted up to provide domains 408- 414. Domains 408-414 can each be responsible for outputting certain areas or windows of a display system such as infotainment display 425, cluster display 426, and/or head up display 427. In some embodiments, cluster display 426 may be an ICD. Cluster display 426 is illustrated as having display areas A and B. High reliability domain 408 may be associated with display areas A. Display areas A may be used to display safety-critical information such as vehicle speed, engine status, vehicle alerts, tire status, or other information from the ECU. The information for display areas A may be provided entirely by domain 408…” paragraph 007/0083/0084),
the third virtual machine (Domains 408-414) is configured to be operated for the second display (Infotainment Display 425/Cluster Display 426/Head Up Display 427) (“…In FIG. 4, multi-core processing environment 400 is shown in a state after setup is conducted by hypervisor 402 and after the guest OSs are booted up to provide domains 408- 414. Domains 408-414 can each be responsible for outputting certain areas or windows of a display system such as infotainment display 425, cluster display 426, and/or head up display 427. In some embodiments, cluster display 426 may be an ICD. Cluster display 426 is illustrated as having display areas A and B. High reliability domain 408 may be associated with display areas A. Display areas A may be used to display safety-critical information such as vehicle speed, engine status, vehicle alerts, tire status, or other information from the ECU. The information for display areas A may be provided entirely by domain 408…” paragraphs 0077/0083/0084), and the executed in the processor comprises:
a radio signal from a tuner in the vehicle (Tuner Control 325) (“…Still referring to FIG. 3B, multi-core processing environment 400 may be connected to a tuner control 325. In some embodiments, tuner control 325 allows multi- core processing environment 400 to connect to wireless signal receivers. Tuner control 325 may be an interface between multi-core processing environment 400 and wireless transmission receivers such as FM antennas, AM antennas, etc. Tuner control 325 may allow multi-core processing environment 400 to receive signals and/or control receivers. In other embodiments, tuner control 325 includes wireless signal receivers and/or antennas. Tuner control 325 may receive wireless signals as controlled by multi-core processing environment 400. For example, multi-core processing environment 400 may instruct tuner control 325 to tune to a specific frequency…” paragraphs 0059-0061).
Ahmed is silent with reference to the first virtual machine executed in the processor comprises:
a first interface configured to receive sensor data from a sensor device in the vehicle and an input and output server interface configured to transmit, to at least one of the second virtual machine or the third virtual machine, data corresponding to the sensor data or the radio signal received from the first interface.
Saroiu teaches the first virtual machine (Root VM 316) executed in the processor comprises:
a first interface configured to receive sensor data (Sensor Reading 330) from a sensor device (Sensors 102/332/324) in the vehicle and an input and output server interface configured to transmit, to at least one of the second virtual machine or the third virtual machine (VMs 312/314), data corresponding to the sensor data or the radio signal received from the first interface (“…In the virtualization design, the user's software environment (the virtualization component) run as one or more guest virtual machines (VMs), such as a first guest VM 312 and a second guest VM 314. A root VM 316 is started and inaccessible to the user. The role of the root VM 316 is to read the device sensors 302, use the trust module 304 to sign the readings (and other information as desired), and communicate the signed readings to the guest VMs (312 and 314)…” paragraphs 0039).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed with the teaching of Saroiu because the teaching of Saroiu would improve the system of Ahmed by providing a technique of allowing virtual machines to seamless communicate with each other, avoiding the normal restriction between virtual machines.
As to claim 40, see the rejection of claim 21 above.
Claims 38 and 39 are rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 2011/0320823 A1 to Saroiu et al. and further in view of E.P.O No. 3099019 A1 to Prantner et al.
As to claim 38, see the rejection of claim 21 above, expect for the first virtual machine comprises: a first interface configured to receive controller area network (CAN) communication data in the vehicle.
Prantner teaches the first virtual machine (First Partition 50) comprises: a first interface configured to receive controller area network (CAN) (controller area network (CAN)) communication data in the vehicle from a sensor (ECU may be connected to some sensors) (“…Figure 1 shows schematically an electronic control unit (ECU) 1. According to an embodiment, an ECU comprises one or more processors 3 connected to one or more memories 5. Each processor may comprise one or more processor cores. For example, the ECU may be realized as a system on chip (SoC). Further, the ECU 1 may comprise interface for connecting to one or more bus systems, for example one or more hardware controller 9 for controller area network (CAN) busses and/or one or more hardware controller 11 for FlexRay busses. The ECU may also comprise further controller for connecting to one or more wireless connecting means, for example a Bluetooth connection…Usually, an automotive vehicle comprises a plurality of electronic control units (ECU), which may be assigned to different units of the vehicle, for example the steering wheel, the brakes, the windows, the motor etc. For example, the ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel, the level of oil or water in the motor. Some ECUs are providing information for the user of the vehicle, for example information about the status of the vehicle, for example the angulation of the steering wheel, temperature information, the use the status of the vehicle to display enhanced information, and the like. These ECUs may be connected to one or more displays via one or more display ports 15…When receiving a message from the automotive field bus 62, for example by reading the respective mailboxes 9a, 9b, 9c of the hardware controller 9, the hardware driver 58 provides the message via the field bus API 60 to the message forwarding component 64…The message forwarding component sends the message via an IPC link to the virtual field bus driver 66…According to an example, the virtual driver 66 provides the message via the API 68 to a decoder 70. The decoder decodes the signals S1, S2, S3 .. Sn from the message and provides the signals to the application 54. The application uses the decoded signals, for example for displaying a map depending on the steering wheel angle and/or the speed of the vehicle…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Sariou with the teaching of Prantner because the teaching of Prantner would improve the system of Ahmed and Sariou by providing a robust serial communication bus standard, originally for cars, letting microcontrollers and devices talk efficiently via two wires, reducing complex wiring by sharing messages, using priority-based arbitration for simultaneous messages, and supporting real-time control in vehicles
As to claim 39, Prantner teaches the signal processing device of claim 38, wherein the first virtual machine (First Partition 50) is configured to receive and process wheel speed sensor data of the vehicle included in the CAN (controller area network (CAN)) communication data, and transmit, to at least one of the second virtual machine or the third virtual machine (Second Partition 52), the processed wheel speed sensor data (ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel) (“…Figure 1 shows schematically an electronic control unit (ECU) 1. According to an embodiment, an ECU comprises one or more processors 3 connected to one or more memories 5. Each processor may comprise one or more processor cores. For example, the ECU may be realized as a system on chip (SoC). Further, the ECU 1 may comprise interface for connecting to one or more bus systems, for example one or more hardware controller 9 for controller area network (CAN) busses and/or one or more hardware controller 11 for FlexRay busses. The ECU may also comprise further controller for connecting to one or more wireless connecting means, for example a Bluetooth connection…Usually, an automotive vehicle comprises a plurality of electronic control units (ECU), which may be assigned to different units of the vehicle, for example the steering wheel, the brakes, the windows, the motor etc. For example, the ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel, the level of oil or water in the motor. Some ECUs are providing information for the user of the vehicle, for example information about the status of the vehicle, for example the angulation of the steering wheel, temperature information, the use the status of the vehicle to display enhanced information, and the like. These ECUs may be connected to one or more displays via one or more display ports 15…When receiving a message from the automotive field bus 62, for example by reading the respective mailboxes 9a, 9b, 9c of the hardware controller 9, the hardware driver 58 provides the message via the field bus API 60 to the message forwarding component 64…The message forwarding component sends the message via an IPC link to the virtual field bus driver 66…According to an example, the virtual driver 66 provides the message via the API 68 to a decoder 70. The decoder decodes the signals S1, S2, S3 .. Sn from the message and provides the signals to the application 54. The application uses the decoded signals, for example for displaying a map depending on the steering wheel angle and/or the speed of the vehicle…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Sariou with the teaching of Prantner because the teaching of Prantner would improve the system of Ahmed and Sariou by providing a robust serial communication bus standard, originally for cars, letting microcontrollers and devices talk efficiently via two wires, reducing complex wiring by sharing messages, using priority-based arbitration for simultaneous messages, and supporting real-time control in vehicles.
Claims 21, 22, 24, 29 and 40 are rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 2016/0359759 A1 to Singh et al.
As to claim 21, Ahmed teaches a signal processing device comprising:
a processor (multi-core processor/Multi-core Processing Environment 400) configured to perform signal processing for a first display and a second display that are configured to be located in a vehicle (displays/Cluster Display (ICD) 220/Head Up Display (HUD) 230/Center information Display (CID) 210) (“…According to an exemplary embodiment, automobile 1 includes a computer system for integration with a vehicle user interface (e.g., display or displays and user input devices) and includes a processing system. The processing system may include a multi-core processor. The processing system may be configured to provide virtualization for a first guest operating system in a first core or cores of the multi-core processor. The processing system may also be configured to provide virtualization for a second guest operating system in a second and different core or cores of the multi-core processor (i.e., any core not allocated to the first guest operating system). The first guest operating system may be configured for high reliability operation. The virtualization prevents operations of the second guest operating system from disrupting the high reliability operation of the first guest operating system…Referring now to FIG. 2, a user interface system for a vehicle is shown, according to an exemplary embodiment. The user interface system is shown to include an instrument cluster display (ICD) 220, a head up display (HUD) 230, and a center information display (CID) 210. In an exemplary embodiment, each of displays 210, 220, and 230 is a single electronic display. In some embodiments, displays 210, 220, and 230 are three separate displays driver from multiple domains. Display content from various vehicle subsystems may be displayed on each of displays 210, 220, and 230 simultaneously. For example, instrument cluster display 220 is shown displaying engine control unit (ECU) information (e.g., speed, gear, RPMs, etc.). Display 220 is also shown displaying music player information from a music application and navigation information from a navigation application. The navigation information and music player information are shown as also being output to display 230. Phone information from a phone application may be presented via display 210 in parallel with weather information (e.g., from an internet source) and navigation information (from the same navigation application providing information to displays 220, 230)…” paragraphs 0043/0044/0070-0073), wherein:
the processor is configured to execute first, second, and third virtual machines on a hypervisor in the processor (Hypervisor 402) (“…Multi-core processing environment 400 is shown to include a hypervisor 402. Hypervisor 402 may be integrated with a bootloader or work in conjunction with the bootloader to help create the multi-core processing environment 400 during boot. The system firmware (not shown) can start the bootloader (e.g., U-Boot) using a first CPU core (core 0). The bootloader can load the kernel images and device trees from a boot partition for the guest OSs. Hypervisor 402 can then initialize the data structures used for the guest OS that will run on core 1. Hypervisor 402 can then boot the guest OS for core 1…Hypervisor 402 can then switch to a hypervisor mode, initialize hypervisor registers, and hand control over to a guest kernel. On core 0, hypervisor 402 can then do the same for the guest that will run on core 0 (i.e., initialize the data structures for the guest, switch to the hypervisor mode, initialize hypervisor registers, and hand off control to the guest kernel for core 0). After bootup, the distinction between a primary core and a secondary core may be ignored and hypervisor 402 may treat the two cores equally. Traps may be handled on the same core as the guest that triggered them…” paragraph 0076),
the second virtual machine (Domains 408-414) is configured to be operated for the first display (Infotainment Display 425/Cluster Display 426/Head Up Display 427) (“…In FIG. 4, multi-core processing environment 400 is shown in a state after setup is conducted by hypervisor 402 and after the guest OSs are booted up to provide domains 408- 414. Domains 408-414 can each be responsible for outputting certain areas or windows of a display system such as infotainment display 425, cluster display 426, and/or head up display 427. In some embodiments, cluster display 426 may be an ICD. Cluster display 426 is illustrated as having display areas A and B. High reliability domain 408 may be associated with display areas A. Display areas A may be used to display safety-critical information such as vehicle speed, engine status, vehicle alerts, tire status, or other information from the ECU. The information for display areas A may be provided entirely by domain 408…” paragraph 007/0083/0084),
the third virtual machine (Domains 408-414) is configured to be operated for the second display (Infotainment Display 425/Cluster Display 426/Head Up Display 427) (“…In FIG. 4, multi-core processing environment 400 is shown in a state after setup is conducted by hypervisor 402 and after the guest OSs are booted up to provide domains 408- 414. Domains 408-414 can each be responsible for outputting certain areas or windows of a display system such as infotainment display 425, cluster display 426, and/or head up display 427. In some embodiments, cluster display 426 may be an ICD. Cluster display 426 is illustrated as having display areas A and B. High reliability domain 408 may be associated with display areas A. Display areas A may be used to display safety-critical information such as vehicle speed, engine status, vehicle alerts, tire status, or other information from the ECU. The information for display areas A may be provided entirely by domain 408…” paragraphs 0077/0083/0084), and the executed in the processor comprises:
a radio signal from a tuner in the vehicle (Tuner Control 325) (“…Still referring to FIG. 3B, multi-core processing environment 400 may be connected to a tuner control 325. In some embodiments, tuner control 325 allows multi- core processing environment 400 to connect to wireless signal receivers. Tuner control 325 may be an interface between multi-core processing environment 400 and wireless transmission receivers such as FM antennas, AM antennas, etc. Tuner control 325 may allow multi-core processing environment 400 to receive signals and/or control receivers. In other embodiments, tuner control 325 includes wireless signal receivers and/or antennas. Tuner control 325 may receive wireless signals as controlled by multi-core processing environment 400. For example, multi-core processing environment 400 may instruct tuner control 325 to tune to a specific frequency…” paragraphs 0059-0061).
Ahmed is silent with reference to the first virtual machine executed in the processor comprises:
a first interface configured to receive sensor data from a sensor device in the vehicle and an input and output server interface configured to transmit, to at least one of the second virtual machine or the third virtual machine, data corresponding to the sensor data or the radio signal received from the first interface.
Singh teaches the first virtual machine (VM sensors 204.sub.A-C (collectively “204”) includes guest operating system) executed in the processor comprises:
a first interface (Network Device Sensor 226) configured to receive sensor data from a sensor device (Hypervisor Sensor 210) in the vehicle and an input and output server interface configured to transmit, to at least one of the second virtual machine or the third virtual machine (VMs 202), data corresponding to the sensor data or the radio signal received from the first interface (“…VM sensors 204.sub.A-C (collectively “204”) can be deployed on one or more of VMs 202. VM sensors 204 can be data and packet inspection agents or sensors deployed on VMs 202 to capture packets, flows, processes, events, traffic, and/or any data flowing into, out of, or through VMs 202. VM sensors 204 can be configured to export or report any data collected or captured by the sensors 204 to a remote entity, such as collectors 118, for example. VM sensors 204 can communicate or report such data using a network address of the respective VMs 202 (e.g., VM IP address)…VM sensors 204 can capture and report any traffic (e.g., packets, flows, etc.) sent, received, generated, and/or processed by VMs 202. For example, sensors 204 can report every packet or flow of communication sent and received by VMs 202. Such communication channel between sensors 204 and collectors 108 creates a flow in every monitoring period or interval and the flow generated by sensors 204 may be denoted as a control flow. Moreover, any communication sent or received by VMs 202, including data reported from sensors 204, can create a network flow. VM sensors 204 can report such flows in the form of a control flow to a remote device, such as collectors 118 illustrated in FIG. 1. VM sensors 204 can report each flow separately or aggregated with other flows. When reporting a flow via a control flow, VM sensors 204 can include a sensor identifier that identifies sensors 204 as reporting the associated flow. VM sensors 204 can also include in the control flow a flow identifier, an IP address, a timestamp, metadata, a process ID, an OS username associated with the process ID, and any other information, as further described below. In addition, sensors 204 can append the process and user information (i.e., which process and/or user is associated with a particular flow) to the control flow. The additional information as identified above can be applied to the control flow as labels. Alternatively, the additional information can be included as part of a header, a trailer, or a payload…VM sensors 204 can run as a process, kernel module, or kernel driver on guest operating systems 206 of VMs 202. VM sensors 204 can thus monitor any traffic sent, received, or processed by VMs 202, any processes running on guest operating systems 206, any users and user activities on guest operating system 206, any workloads on VMs 202, etc…Hypervisor sensor 210 can be deployed on hypervisor 208. Hypervisor sensor 210 can be a data inspection agent or a sensor deployed on hypervisor 208 to capture traffic (e.g., packets, flows, etc.) and/or data flowing through hypervisor 208. Hypervisor sensor 210 can be configured to export or report any data collected or captured by hypervisor sensor 210 to a remote entity, such as collectors 118, for example. Hypervisor sensor 210 can communicate or report such data using a network address of hypervisor 208, such as an IP address of hypervisor 208…” paragraphs 0041/0043-0045/0050).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed with the teaching of Singh because the teaching of Singh would improve the system of Ahmed by providing a technique of allowing virtual machines to seamless communicate with each other, avoiding the normal restriction between virtual machines.
As to claim 22, Ahmed teaches the signal processing device of claim 21, wherein the second virtual machine and the third virtual machine comprise input and output client interfaces configured to receive the data corresponding to the sensor data or the radio signal from the first interface (Event Input 460, 462, 464).
As to claim 24, Ahmed teaches the signal processing device of claim 21, wherein: at least one of the second virtual machine or the third virtual machine is configured to receive the data corresponding to the sensor data or the radio signal stored in the shared memory (Shared Memory 424) (“….Various operating systems can generate views of their applications to be shown on screens with other operating domains. Different screens may be controlled by different domains. For example, the cluster display 426 may primarily be controlled by high reliability domain 408, whereas infotainment display 425 may primarily be controlled by infotainment domain 410. Various graphic outputs generated by domains 408-414 are described in greater detail in subsequent figures. Despite this control, views from domains 410, 414 can be shown on the cluster display 426. A shared memory 424 may be used to provide the graphic views from the domains 410, 414 to the domain 408. Particularly, pixel buffer content may be provided to the shared memory 424 from domains 410, 414 for use by domain 408. In an exemplary embodiment, a native HMI domain 412 (e.g., having a linux OS 420) is used to coordinate graphical output, constructing display output using pixel buffer content from each of domains 408, 410, and 414…” paragraph 0083).
Singh teaches the first virtual machine (VM sensors 204.sub.A-C (collectively “204”)) is configured to store the data corresponding to the sensor data or the radio signal in a shared memory (Collectors 118) (“…VM sensors 204.sub.A-C (collectively “204”) can be deployed on one or more of VMs 202. VM sensors 204 can be data and packet inspection agents or sensors deployed on VMs 202 to capture packets, flows, processes, events, traffic, and/or any data flowing into, out of, or through VMs 202. VM sensors 204 can be configured to export or report any data collected or captured by the sensors 204 to a remote entity, such as collectors 118, for example. VM sensors 204 can communicate or report such data using a network address of the respective VMs 202 (e.g., VM IP address)…” paragraph 0041).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed with the teaching of Singh because the teaching of Singh would improve the system of Ahmed by providing a technique of allowing virtual machines to seamless communicate with each other, avoiding the normal restriction between virtual machines.
As to claim 29, Ahmed teaches the signal processing device of claim 21, wherein: the first interface is configured to receive, from the sensor device (Vehicle Sensors 319), the sensor data through controller area network (CAN) communication (Controller Area Networks (CAN) 321) (“…In some embodiments, vehicle control 315 is connected to one or more Local Interconnect Networks (LIN) 317, vehicle sensors 319, and/or Controller Area Networks (CAN) 321. LIN 317 may follow the LIN protocol and allow communication between vehicle components. Vehicle sensors 319 may include sensors for determining vehicle telemetry. For example, vehicle sensors 319 may be one or more of gyroscopes, accelerometers, three dimensional accelerometers, inclinometers, etc. CAN 321 may be connected to vehicle control 315 by a CAN bus. CAN 321 may control or receive feedback from sensors within the vehicle. CAN 321 may also be in communication with electronic control units of the vehicle. In other embodiments, the functions of vehicle control 315 may be implemented by multi-core processing environment 400. For example, vehicle control 315 may be omitted and multi-core processing environment 400 may connect directly to LIN 317, vehicle sensors 319, CAN 321, or other components of a vehicle…” paragraph 0057), and the first interface is configured to receive data through an universal serial bus (USB) or a short range wireless technology communication.
As to claim 40, see the rejection of claim 21 above.
Claim 23 is rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 20160359759 A1 to Singh et al. as applied to claim 24 above, and further in view of C.N. No. 107850634 A to Manku.
As to claim 23, Ahmed as modified by Singh teaches the signal processing device of claim 21, wherein only the first virtual machine among the first, second, and third virtual machines is configured to perform data communication with the sensor device (“…VM sensors 204.sub.A-C (collectively “204”) can be deployed on one or more of VMs 202. VM sensors 204 can be data and packet inspection agents or sensors deployed on VMs 202 to capture packets, flows, processes, events, traffic, and/or any data flowing into, out of, or through VMs 202. VM sensors 204 can be configured to export or report any data collected or captured by the sensors 204 to a remote entity, such as collectors 118, for example. VM sensors 204 can communicate or report such data using a network address of the respective VMs 202 (e.g., VM IP address)…” paragraph 0041).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed with the teaching of Singh because the teaching of Singh would improve the system of Ahmed by providing a technique of allowing virtual machines to seamless communicate with each other, avoiding the normal restriction between virtual machines.
Manku teaches wherein the first virtual machine (virtual machine) is configured to perform data communication with the tuner (plurality of tuners) in the vehicle (vehicle) (“…As an example, some wireless sensor device 110 and the sensor assembly 105 can be installed in a vehicle (e.g., car, bus, train, ship, etc.), wherein the wireless sensor device 110 can move in monitoring and analyzing spectrum… In some implementation, the sensor assembly may be configured to communication the parameter to a data network (e.g., the Internet, a cloud network, an enterprise network, a private network, etc.), and the data processing system 115 can comprises a plurality of tuners configured to receive the parameter from the data network of the communication interface. sensor component and the data processing system 115 can be via a wired communication network, a wireless communication network or in a hybrid communication network of one or more for communication…memory 750 may also store one or more application programs or virtual machine can run on the wireless sensor device 700 interpreted application data and data objects. Memory 750 may store location data of the wireless sensor device 700, for example, the environment data and state data, wireless spectrum data (e.g., parameters of the RF signal) and other data…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Singh with the teaching of Manku because the teaching of Manku would improve the system of Ahmed and Singh by providing a technique of allowing for isolated communication with a tuner.
Claim 25 is rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 20160359759 A1 to Singh et al. as applied to claim 24 above, and further in view of U.S. Pub. No. 2008/0320194 A1 to Vega et al.
As to claim 25, Ahmed as modified by Singh teaches the signal processing device of claim 24, however it is silent with reference to wherein:
the first virtual machine is configured to transmit, to the second virtual machine or the third virtual machine, a buffer index regarding the shared memory in which the data corresponding to the sensor data or the radio signal are stored, and the second virtual machine or the third virtual machine is configured to read the data corresponding to the sensor data or the radio signal stored in the shared memory based on the received buffer index.
Vega teaches to wherein:
the first virtual machine (Sender 104) is configured to transmit, to the second virtual machine or the third virtual machine (Receiver 106), a buffer index (message 100, e.g., a function invocation, a signal, and/or a data packet that contains information to a memory location 102) regarding the shared memory in which the data corresponding to the data or the radio signal are stored, and the second virtual machine or the third virtual machine is configured to read the data corresponding to the data or the radio signal stored in the shared memory based on the received buffer index (“…Operation 300 begins the operational process, and operation 302 depicts writing a message to a memory location shared between a sender and a receiver. Within an operational environment such as the one as depicted in FIG. 1 or FIG. 2, a sender 104 may write a message 100, e.g., a function invocation, a signal, and/or a data packet that contains information to a memory location 102 shared between a sender 104 and a receiver 106. In some example embodiments of the present disclosure, the shared memory 102 may include, but is not limited to, a ring buffer or any type of memory space where the addresses are reused by writing over a previously used location….” Paragraphs 0033/0038).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Singh with the teaching of Vega because the teaching of Vega would improve the system of Ahmed and Singh by providing a technique of allowing virtual machines to optimally and asynchronously communicate using a data structure.
Claims 26, 38 and 39 are rejected under 35 U.S.C. 103 as being unpatentable over W.O. No. 2015103374 A1 to Ahmed et al. in view of U.S. Pub. No. 20160359759 A1 to Singh et al. and further in view of E.P.O No. 3099019 A1 to Prantner et al.
As to claim 26, Ahmed as modified by Singh teaches the signal processing device of claim 21, however it is silent with reference to wherein the first virtual machine is configured to:
receive and process wheel speed sensor data of the vehicle through the first interface, and transmit, to at least one of the second virtual machine or the third virtual machine through the input and output server interface, the processed wheel speed sensor data.
Prantner teaches wherein the first virtual machine (First Partition 50) is configured to:
receive and process wheel speed sensor data of the vehicle through the first interface, and transmit, to at least one of the second virtual machine or the third virtual machine (Second Partition 50) through the input and output server interface, the processed wheel speed sensor data (ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel) (“…Figure 1 shows schematically an electronic control unit (ECU) 1. According to an embodiment, an ECU comprises one or more processors 3 connected to one or more memories 5. Each processor may comprise one or more processor cores. For example, the ECU may be realized as a system on chip (SoC). Further, the ECU 1 may comprise interface for connecting to one or more bus systems, for example one or more hardware controller 9 for controller area network (CAN) busses and/or one or more hardware controller 11 for FlexRay busses. The ECU may also comprise further controller for connecting to one or more wireless connecting means, for example a Bluetooth connection…Usually, an automotive vehicle comprises a plurality of electronic control units (ECU), which may be assigned to different units of the vehicle, for example the steering wheel, the brakes, the windows, the motor etc. For example, the ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel, the level of oil or water in the motor. Some ECUs are providing information for the user of the vehicle, for example information about the status of the vehicle, for example the angulation of the steering wheel, temperature information, the use the status of the vehicle to display enhanced information, and the like. These ECUs may be connected to one or more displays via one or more display ports 15…When receiving a message from the automotive field bus 62, for example by reading the respective mailboxes 9a, 9b, 9c of the hardware controller 9, the hardware driver 58 provides the message via the field bus API 60 to the message forwarding component 64…The message forwarding component sends the message via an IPC link to the virtual field bus driver 66…According to an example, the virtual driver 66 provides the message via the API 68 to a decoder 70. The decoder decodes the signals S1, S2, S3 .. Sn from the message and provides the signals to the application 54. The application uses the decoded signals, for example for displaying a map depending on the steering wheel angle and/or the speed of the vehicle…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Singh with the teaching of Prantner because the teaching of Prantner would improve the system of Ahmed and Singh by providing a robust serial communication bus standard, originally for cars, letting microcontrollers and devices talk efficiently via two wires, reducing complex wiring by sharing messages, using priority-based arbitration for simultaneous messages, and supporting real-time control in vehicles.
As to claim 38, see the rejection of claim 21 above, expect for the first virtual machine comprises: a first interface configured to receive controller area network (CAN) communication data in the vehicle from a sensor.
Prantner teaches the first virtual machine (First Partition 50) comprises: a first interface configured to receive controller area network (CAN) (controller area network (CAN)) communication data in the vehicle from a sensor (ECU may be connected to some sensors) (“…Figure 1 shows schematically an electronic control unit (ECU) 1. According to an embodiment, an ECU comprises one or more processors 3 connected to one or more memories 5. Each processor may comprise one or more processor cores. For example, the ECU may be realized as a system on chip (SoC). Further, the ECU 1 may comprise interface for connecting to one or more bus systems, for example one or more hardware controller 9 for controller area network (CAN) busses and/or one or more hardware controller 11 for FlexRay busses. The ECU may also comprise further controller for connecting to one or more wireless connecting means, for example a Bluetooth connection…Usually, an automotive vehicle comprises a plurality of electronic control units (ECU), which may be assigned to different units of the vehicle, for example the steering wheel, the brakes, the windows, the motor etc. For example, the ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel, the level of oil or water in the motor. Some ECUs are providing information for the user of the vehicle, for example information about the status of the vehicle, for example the angulation of the steering wheel, temperature information, the use the status of the vehicle to display enhanced information, and the like. These ECUs may be connected to one or more displays via one or more display ports 15…When receiving a message from the automotive field bus 62, for example by reading the respective mailboxes 9a, 9b, 9c of the hardware controller 9, the hardware driver 58 provides the message via the field bus API 60 to the message forwarding component 64…The message forwarding component sends the message via an IPC link to the virtual field bus driver 66…According to an example, the virtual driver 66 provides the message via the API 68 to a decoder 70. The decoder decodes the signals S1, S2, S3 .. Sn from the message and provides the signals to the application 54. The application uses the decoded signals, for example for displaying a map depending on the steering wheel angle and/or the speed of the vehicle…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Ahmed and Singh with the teaching of Prantner because the teaching of Prantner would improve the system of Ahmed and Singh by providing a robust serial communication bus standard, originally for cars, letting microcontrollers and devices talk efficiently via two wires, reducing complex wiring by sharing messages, using priority-based arbitration for simultaneous messages, and supporting real-time control in vehicles.
As to claim 39, Prantner teaches the signal processing device of claim 38, wherein the first virtual machine (First Partition 50) is configured to receive and process wheel speed sensor data of the vehicle included in the CAN (controller area network (CAN)) communication data, and transmit, to at least one of the second virtual machine or the third virtual machine (Second Partition 52), the processed wheel speed sensor data (ECU may be connected to some sensors or drivers via an interface 13, for example to drive the window, or to sense the angulation of the steering wheel) (“…Figure 1 shows schematically an electronic control unit (ECU) 1. According to an embodiment, an ECU comprises one or more processors 3 connected to one or more memories 5. Each processor may comprise one or more processor cores. For example, the ECU may be realized as a system on chip (SoC). Further, the ECU 1 may comprise interface for connecting to one or more bus systems, for example one or more hardware controller 9 for controller area network (CAN) busses and/or one or