WO2022004258A1 - SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS - Google Patents

SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS Download PDF

Info

Publication number
WO2022004258A1
WO2022004258A1 PCT/JP2021/021087 JP2021021087W WO2022004258A1 WO 2022004258 A1 WO2022004258 A1 WO 2022004258A1 JP 2021021087 W JP2021021087 W JP 2021021087W WO 2022004258 A1 WO2022004258 A1 WO 2022004258A1
Authority
WO
WIPO (PCT)
Prior art keywords
soc
requests
request
queue
unit
Prior art date
Application number
PCT/JP2021/021087
Other languages
French (fr)
Inventor
Kiran PANCHANGAM
Tasuku Ishigooka
Kazuyoshi Serizawa
Original Assignee
Hitachi Astemo, Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo, Ltd. filed Critical Hitachi Astemo, Ltd.
Publication of WO2022004258A1 publication Critical patent/WO2022004258A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • the present disclosure generally relates to a technique for transmission over Peripheral component interconnect express (PCIe) bus.
  • PCIe Peripheral component interconnect express
  • SOC Service oriented communication
  • PCIe bus may be used for high throughput, low latency, and high data transfer rates. Further, PCIe bus may exhibit low performance for transfer of small sized data packets. This is because transmission of small sized data packets may prevent complete utilization of bandwidth of the PCIe bus, thereby reducing the efficiency of the data transfer on the PCIe bus.
  • SOC service oriented communication
  • a control system in one non-limiting embodiment, includes one or more processing units.
  • the control system comprises at least one first unit comprising a service request distribution section configured to receive a plurality of service-oriented communication (SOC) requests, each of the SOC request comprising a response deadline or an execution deadline associated with the SOC request.
  • the received plurality of SOC requests comprising the response deadline and the execution deadline are queued in a first priority order in a first queue and the second queue respectively.
  • the control system further comprises at least one second unit comprising a request receive section (202) configured to queue each of the SOC requests comprising the response deadline and the execution deadline in a second priority order in a third queue and a fourth queue respectively.
  • the one or more processing units comprises a first and/or a second unit.
  • the service request distribution section is configured to receive the plurality of service-oriented communication (SOC) requests from a plurality of applications invoked on said one or more processing units.
  • SOC service-oriented communication
  • service request distribution section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the first priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively.
  • the request receive section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues respectively.
  • the service request distribution section is configured to queue each of the SOC requests from lowest to highest priority in the first and second queues based on one or more following criteria: response deadline associated with a SOC request, execution deadline associated with a SOC request, safety criticality associated with a SOC request, availability of third and fourth queues, and time required to process a SOC request.
  • the request receive section is configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue, and queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  • the at least one first unit further comprises an encapsulation section operatively coupled to the first and second queues and configured to generate at least one PCIe frame by fetching at least one SOC request comprising the response deadline from the first queue and at least one SOC request comprising the execution deadline from the second queue, and transmit the at least one PCIe frame to the at least one second unit over the at least one PCIe bus.
  • PCIe peripheral component interconnect express
  • the at least one second unit further comprises a decapsulation section operatively coupled to the third and fourth queues and configured to receive the at least one PCIe frame from the encapsulation section over the at least one PCIe bus, and decapsulate the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline; and the request receive section is configured to queue the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.
  • a method for control system comprises receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests, wherein a SOC request comprises a response deadline associated with the SOC request or an execution deadline associated with the SOC request, queuing, by the at least one first unit, each of the SOC requests comprising the response deadline in a first priority order in a first queue, queuing, by the at least one first unit, each of the SOC requests comprising the execution deadline in the first priority order in a second queue, queuing, by at least one second unit, each of the SOC requests comprising the response deadline in a second priority order in a third queue, queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline in the second priority order in a fourth queue, and processing, by the at least one second unit, the queued SOC requests.
  • SOC service-oriented communication
  • receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests comprises receiving, by the at least one first unit, the plurality of service-oriented communication (SOC) requests from a plurality of applications involved in said control system.
  • queueing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC request comprising the execution deadline in the first priority order in the first and second queues respectively comprises queuing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively, and queueing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order in the third and fourth queues respectively comprises queuing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues, respectively.
  • queueing, by the at least one first unit, each of the SOC requests from lowest to highest priority in the first and second queues is based on one or more following criteria response deadline associated with a SOC request, execution deadline associated with a SOC request, safety criticality associated with a SOC request, availability of third and fourth queues, and time required to process a SOC request.
  • queuing, by at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in a third queue comprises queuing, by the at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue, and queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in a fourth queue comprises queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  • queuing, by at least one second unit, each of the SOC requests comprising the response deadline and execution deadline from highest to lowest priority in a third queue and fourth queue comprises receiving, by the at least one second unit, at least one PCIe frame from the at least one first unit over the at least one PCIe bus, decapsulating, by the at least one second unit, the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline, and queuing, by the at least one second unit, the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.
  • the present disclosure overcomes one or more shortcomings of the prior art and provides additional advantages discussed throughout the present disclosure. Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed disclosure.
  • Figure 1 depicts a block diagram of a control system in accordance with an exemplary embodiment of the present disclosure
  • Figure 2 depicts a SOC request format in accordance with an embodiment of the present disclosure
  • Figure 3 depicts a block diagram of a control system in accordance with another exemplary embodiment of the present disclosure
  • Figure 4 depicts a block diagram of a control system in accordance with another exemplary embodiment of the present disclosure
  • Figure 5 depicts a block diagram of a control system in accordance with yet another exemplary embodiment of the present disclosure
  • Figure 6 depicts a block diagram of a control system in accordance with a further exemplary embodiment of the present disclosure
  • Figure 7 depicts a block diagram of a control system in accordance with a furthermore exemplary embodiment of the present disclosure
  • Figure 8A depicts a flowchart indicating the method steps in accordance with an embodiment of the present disclosure
  • Figure 8B depicts a flowchart indicating the method steps in accordance with an embodiment of the present disclosure
  • Figure 8B depicts a flowchart
  • control system 100 an exemplary block diagram of a control system 100 is provided in accordance with an embodiment of the present disclosure.
  • the control system 100 may comprise two processing units (102, 150).
  • the processing units (102, 150) may be Electronic control units (ECUs) of a vehicle.
  • the processing units (102, 150) may be connected to each other over a bus such as PCIe bus 120.
  • the processing unit 102 may be configured as “service consumer” while the processing unit 150 may be configured as “service provider”.
  • the service consumer may be responsible for sending one or more service requests to the service provider.
  • the service requests may be generated by one or more applications invoked on the service consumer.
  • the service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer.
  • the processing unit 102 may comprise a first unit 104.
  • the first unit 104 may comprise a service request distribution section 110 and an encapsulation section 112.
  • the processing unit 150 may comprise a second unit 152.
  • the second unit 152 may comprise a request receive section 154 and a decapsulation section 156.
  • the service request distribution section 110 may be configured to receive a plurality of service-oriented communication (SOC) requests.
  • SOC service-oriented communication
  • the service request distribution section 110 may be configured to receive the plurality of SOC requests from a plurality of applications invoked on the first processing unit 102.
  • a SOC request may comprise a response deadline associated with the SOC request or an execution deadline associated with the SOC request.
  • the service request distribution section 110 may be configured to queue the received plurality of SOC requests.
  • the service request distribution section 110 may be configured to separately queue the SOC requests having the response deadlines and separately queue the SOC requests having the execution deadlines.
  • the service request distribution section 110 may be configured to queue the SOC requests having the response deadlines in a first priority order in a first queue and may be further configured to queue the SOC requests having the execution deadlines in the first priority order in a second queue.
  • the first and second queues may form part of the service request distribution section 110 and are not shown in figure 1.
  • the first priority order may define lowest to highest priority.
  • the SOC requests comprising the response deadlines may be queued in a manner that highest priority requests are stacked at the bottom of the first queue.
  • the SOC requests comprising the execution deadlines may be queued in a manner that highest priority requests are stacked at the bottom of the second queue.
  • the encapsulation section 112 may be configured to generate at least one PCIe frame by fetching at least one SOC request comprising the response deadline from the first queue and at least one SOC request comprising the execution deadline from the second queue.
  • the encapsulation section 112 packs the SOC requests from the first and second queues into one or more PCIe frames.
  • the number of SOC requests encapsulated in a PCIe frame may depend upon a size of the PCIe frame.
  • a PCIe frame may have a bandwidth of about 4KB.
  • the number of SOC requests comprising the response deadline or execution deadline may be chosen such that complete bandwidth of 4KB of the PCIe frame is utilized.
  • the number of PCIe frames transmitted over the PCIe bus may depend on the number of SOC requests to be packed and available bandwidth of the PCIe bus 120.
  • the encapsulation section 112 may be further configured to transmit the one or more PCIe frames over the PCIe bus 120 to the processing unit 150.
  • the processing unit 150 may comprise a second unit 152.
  • the second unit 152 may comprise a request receive section 154 and a decapsulation section 156.
  • the decapsulation section 156 may be configured to receive the one or more PCIe frames transmitted over the PCIe bus 120 from the encapsulation section 112.
  • the decapsulation section 156 may be further configured to decapsulate the one or more PCIe frames to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline. In other words, the decapsulation section 156 unpacks the SOC requests from the one or more PCIe frames.
  • the decapsulation section 156 may be further configured to provide the unpacked or decapsulated SOC requests to the request receive section 154.
  • the request receive section 154 may be configured to queue the unpacked or decapsulated SOC requests.
  • the request receive section 154 may be configured to separately queue the unpacked SOC requests having the response deadlines and separately queue the unpacked SOC requests having the execution deadlines.
  • the request receive section 154 may be configured to queue the SOC requests having the response deadlines in a second priority order in a third queue and may be further configured to queue the SOC requests having the execution deadlines in the second priority order in a fourth queue.
  • the third and fourth queues may form part of the request receive section 154 and are not shown in figure 1.
  • the second priority order may be opposite to that of the first priority order and may define highest to lowest priority.
  • the unpacked SOC requests comprising the response deadlines may be queued in a manner that highest priority requests are stacked at the top of the third queue.
  • the unpacked SOC requests comprising the execution deadlines may be queued in manner that highest priority requests are stacked at the top of the fourth queue.
  • the request receive section 154 may be further configured to process the SOC requests queued in the second priority order. In other words, the request receive section 154 may be further configured to process the SOC requests as per execution deadlines and send the result of processing as per the response deadlines.
  • the execution deadline may be defined as a period in which the processing/execution of a SOC request has to be completed.
  • the response deadline may be defined as a combined period required to: send a SOC request, execute the SOC request and receive the results of execution. In this embodiment, the execution deadline may be defined as a period in which the processing/execution of a SOC request has to be completed by the processing unit 150.
  • the response deadline may be defined as a round trip time, that is, time required to send a SOC request from processing unit 102 to the processing unit 150, execute the SOC request at the processing unit 150 and receive the results of execution at the processing unit 102 from the processing unit 150.
  • FIG. 2 illustrates a format of a SOC request sent from the service consumer to the service provider.
  • the SOC request may include the following fields: SOC request identifier, originating service identifier, destination service identifier, size of data block, SOC request type identifier, deadline type (response or execution), deadline, data, and checksum.
  • the originating service identifier may identify the processing unit from where the SOC request originates and the destination service identifier may indicate the processing unit to which the SOC request is intended.
  • the originating service identifier may refer to service consumer and the destination service identifier may refer to service provider.
  • One or more fields defined above may be stored in a service registry (not shown) maintained at the service consumer and service provider. Every time a SOC request is sent from the service consumer to service provider, the service registry is updated at the service consumer as well as the service provider. Further, every time results of processing are sent from service provider to service consumer, the service registry is updated at the service provider and the service consumer.
  • left portion of figure 3 illustrates the service request distribution section 110 in communication with the encapsulation section 112.
  • Right portion of figure 3 illustrates the decapsulation section 156 in communication with the request receive section 154.
  • the service request distribution section 110 may comprise a request receiver 316, a request distributor 302 coupled to the request receiver 316, first and second queues (304, 306) coupled to the request distributor 302, a feeder 310 coupled to the first and second queues (304, 306).
  • the feeder 310 may be coupled to the encapsulation section 112.
  • the request receiver 316 may be configured to receive a plurality of SOC requests from a plurality of applications invoked on the first processing unit 102.
  • a SOC request may comprise a response deadline associated with the SOC request or an execution deadline associated with the SOC request.
  • the request distributor 302 may be configured to queue the received plurality of SOC requests.
  • the request distributor 302 may be configured to separately queue the SOC requests having the response deadlines and separately queue the SOC requests having the execution deadlines.
  • the request distributor 302 may be configured to queue the SOC requests comprising the response deadlines in a first priority order in the first queue 304.
  • the request distributor 302 may be further configured to queue the SOC requests comprising the execution deadlines in the first priority order in the second queue 306.
  • the first priority order may define lowest to highest priority.
  • the request distributor 302 of the service request distribution section 110 may be configured to queue the SOC requests from lowest to highest priority in the first and second queues (304, 306) based on one or more following criteria: response deadline associated with a SOC request; execution deadline associated with a SOC request; safety criticality associated with a SOC request; availability of third and fourth queues; and time required to process a SOC request.
  • Safety criticality associated with a SOC request may be defined by classification of SOC request.
  • the classification of SOC request may include control request, diagnostic request or data processing request. Each of the three classifications of SOC requests may be assigned a criticality.
  • the control request may be given a highest criticality.
  • the diagnostic request may be given a medium criticality and the data processing request may be given a lowest criticality.
  • the priority order is exemplary and may vary based on the system specifications.
  • third and fourth queues in the request receive section 154 (service provider) and time required to process/complete a SOC request by the processing unit 150 (service provider) may also play a role in prioritizing the SOC requests in the first and second queues (304, 306).
  • a table of SOC request may be an example of queuing the SOC requests from lowest to highest priority in the service request distribution section 110 of the processing unit 102 (service consumer).
  • SOC request R1 may be a diagnostic request and may have a medium criticality.
  • SOC request R2 may be a control request and may have a high criticality.
  • SOC request R3 may be a data processing request and may have a low criticality.
  • R1’s processing time 50ms is higher as compared to R3’s processing time 20ms which has shorter deadline 105ms than R1’s deadline 110ms, R3 will be prioritized higher than R1.
  • R1’s processing time 50ms is higher as compared to R3’s processing time 20ms which has shorter deadline 105ms than R1’s deadline 110ms
  • R3 will be prioritized higher than R1.
  • the SOC request R3 having the lowest criticality may be given highest priority for queuing over the SOC requests R1 and R2 having the medium and high criticality.
  • one or more of the above defined criteria may be utilized for queuing the SOC requests at the service consumer.
  • SOC requests R1, R2 and R3 may be queued in a manner that R3 is stacked at the bottom of the first/second queue followed by R1 and R2.
  • the feeder 310 may provide/feed the queued SOC requests to the encapsulation section 112 for generating one or more PCIe frames.
  • the feeder 310 may feed the highest priority SOC requests to the encapsulation section 112 followed by medium priority SOC requests and lowest priority SOC requests respectively.
  • the feeder may feed SOC request R3, followed by SOC request R1 followed by SOC request R2 to the encapsulation section 112 for packing into one or more PCIe frames.
  • the encapsulation section 112 may pack the SOC requests from the first and second queues (304, 306) into one or more PCIe frames and may transmit the one or more PCIe frames over the PCIe bus to the decapsulation section 156 of the processing unit 150.
  • the decapsulation section 156 may be configured to receive the one or more PCIe frames transmitted over the PCIe bus from the encapsulation section 112. The decapsulation section 156 may be further configured to decapsulate/unpack the one or more PCIe frames to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline. The decapsulation section 156 may be further configured to provide the unpacked or decapsulated SOC requests to the request receive section 154.
  • the request receive section 154 may comprise a distributor 364 coupled to the decapsulation section 156, third and fourth queues (358, 360) coupled to the distributor 364, a scheduler 354 coupled to the third and fourth queues (358, 360), a dispatcher 350 coupled to the scheduler 354 and a service availability notifier 352 coupled to the decapsulation section 156.
  • the decapsulation section 156 may be configured to provide the unpacked/decapsulated SOC requests to the distributor 364.
  • the distributor 364 may be configured to separately queue the unpacked SOC requests having the response deadlines and separately queue the unpacked SOC requests having the execution deadlines.
  • the distributor 364 may be configured to queue the SOC requests having the response deadlines in a second priority order in the third queue 358 and may be further configured to queue the SOC requests having the execution deadlines in the second priority order in the fourth queue 360.
  • the second priority order may be opposite to that of the first priority order and may define highest to lowest priority.
  • SOC requests R1, R2 and R3 may be queued in a manner that R3 is stacked at the top of the third/fourth queue followed by R1 and R2.
  • the scheduler 354 may be configured to process the SOC requests queued in the second priority order.
  • the dispatcher 350 may be configured to send the results of processing to the processing unit 102.
  • the service availability notifier 352 may be configured to broadcast/send an availability request to the processing unit 102.
  • the availability request may contain a notification for the processing unit 102 that the processing unit 150 may be available and may be ready to process SOC requests from the processing unit 102.
  • the processing unit 102 may get aware about the availability of the processing unit 150 and may send SOC requests for processing to the processing unit 150.
  • the service registry of the service provide may be updated.
  • the service registry of the service consumer receiving the notification may be updated. In particular, the service registry may be updated to indicate the address of the processing unit from where the notification is sent/received. This may help the service consumer to send the SOC request for processing to the service provider.
  • FIG 4 illustrates a block diagram of a control system according to another embodiment of the present disclosure.
  • the control system 400 may include multiple processing units connected over one or more PCIe bus.
  • the control system 400 may comprise four processing units (102a, 102b, 150a, 150b).
  • the processing units (102a, 102b, 150a, 150b) may be Electronic control units (ECUs) of a vehicle.
  • the processing units (102a, 102b, 150a, 150b) may be connected to each other over one or more PCIe bus.
  • PCIe buses (420a-420d) connect the four processing units (102a, 102b, 150a, 150b) to each other via a PCIe switch 422.
  • the processing units 102a, 102b may be configured as “service consumer” while the processing units 150a, 150b may be configured as “service provider”.
  • the service consumer may be responsible for sending one or more service requests to the service provider.
  • the requests may be generated by one or more applications invoked on the service consumer.
  • the service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer.
  • Each of the processing units 102a, 102b may comprise a first unit.
  • the first unit may comprise a service request distribution section and an encapsulation section. That is, the processing unit 102a may comprise a first unit 104a and the processing unit 102b may comprise a first unit 104b.
  • the first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a.
  • the first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b.
  • each of the processing units 150a, 150b may comprise a second unit.
  • the second unit may comprise a request receive section and a decapsulation section. That is, the processing units 150a may comprise a second unit 152a and the processing unit 150b may comprise a second unit 152b.
  • the second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.
  • the second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
  • the functionalities and structure of the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be same as defined above in view of figures 1-3 and same are not repeated here for the sake of brevity.
  • each of the processing units 150a and 150b may broadcast service availability messages to processing units 102a and 102b.
  • SOC requests originating from processing unit 102a may be processed either by processing unit 150a (service provider) or processing unit 150b (service provider) or both.
  • SOC requests originating from processing unit 102b may be processed either by processing unit 150a (service provider) or processing unit 150b (service provider) or both.
  • FIG. 5 shows a block diagram of a control system according to yet another embodiment of the present disclosure.
  • the control system 500 may include multiple processing units connected over one or more PCIe bus.
  • the control system 500 may comprise three processing units (501, 502, 503).
  • the processing units (501, 502, 503) may be Electronic control units (ECUs) of a vehicle.
  • the processing units (501, 502, 503) may be connected to each other over one or more PCIe bus.
  • three PCIe buses (520a, 520b and 520c) connect the three processing units (501, 502, 503) to each other via a PCIe switch 510.
  • each of the three processing units may be configured as “service consumer” as well as “service provider”.
  • the service consumer may be responsible for sending one or more service requests to the service provider.
  • the requests may be generated by one or more applications invoked on the service consumer.
  • the service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer.
  • Each of the processing units may comprise a first unit and a second unit.
  • the first unit may comprise a service request distribution section and an encapsulation section.
  • the second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 501 may comprise a first unit 104a and a second unit 152a.
  • the first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a.
  • the second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.
  • the processing unit 502 may comprise a first unit 104b and a second unit 152b.
  • the first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b.
  • the second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
  • the processing unit 503 may comprise a first unit 104c and a second unit 152c.
  • the first unit 104c may comprise a service request distribution section 110c and an encapsulation section 112c.
  • the second unit 152c may comprise a request receive section 154c and a decapsulation section 156c.
  • the functionalities and structure of the service request distribution sections (110a, 110b, 110c), the encapsulation sections (112a, 112b, 112c), the request receive sections (154a, 154b, 154c) and the decapsulation sections (156a, 156b, 156c) may be same as defined above in view of figures 1-3 and same are not repeated here for the sake of brevity.
  • each of the processing units (501,502, 503) may broadcast service availability messages to each of the processing units (501,502, 503).
  • SOC requests originating from processing unit 501 (service consumer) may be processed either by processing unit 501 (service provider) or processing unit 502 (service provider) or processing unit 503 (service provider) or all three processing units (501, 502, 503).
  • SOC requests originating from processing unit 502 (service consumer) may be processed either by processing unit 502 (service provider) or processing unit 501 (service provider) or processing unit 503 (service provider) or all three processing units (501, 502, 503).
  • SOC requests originating from processing unit 503 (service consumer) may be processed either by processing unit 503 (service provider) or processing unit 502 (service provider) or processing unit 501 (service provider) or all three processing units (501, 502, 503).
  • the request receive section 154a of the second unit 152a may fetch the queued SOC requests from the service request distribution section 110a of the first unit 104a.
  • the request receive section 154a may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue.
  • the third queue may form part of request receive section 154a and the first queue may form part of service request distribution section 110a.
  • the request receive section 154a may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  • the fourth queue may form part of request receive section 154a and the second queue may form part of service request distribution section 110a.
  • the request receive section 154b of the second unit 152b may fetch the queued SOC requests from the service request distribution section 110b of the first unit 104b.
  • the request receive section 154b may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue.
  • the third queue may form part of request receive section 154b and the first queue may form part of service request distribution section 110b.
  • the request receive section 154b may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  • the fourth queue may form part of request receive section 154b and the second queue may form part of service request distribution section 110b.
  • the request receive section 154c of the second unit 152c may fetch the queued SOC requests from the service request distribution section 110c of the first unit 104c.
  • the request receive section 154c may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue.
  • the third queue may form part of request receive section 154c and the first queue may form part of service request distribution section 110c.
  • the request receive section 154c may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  • the fourth queue may form part of request receive section 154c and the second queue may form part of service request distribution section 110c.
  • FIG. 6 shows a block diagram of a control system according to a further embodiment of the present disclosure.
  • the control system 600 may include multiple processing units connected over one or more PCIe bus.
  • the control system 600 may comprise two processing units (601, 602).
  • the processing units (601, 602) may be Electronic control units (ECUs) of a vehicle.
  • the processing units (601, 602) may be connected to each other over a PCIe bus 620.
  • two processing units are depicted, this embodiment may include multiple processing unit not restricted to two.
  • each of the two processing units (601, 602) may be configured as “service consumer” as well as “service provider”.
  • Each of the processing units (601, 602) may comprise a first unit and a second unit.
  • the first unit may comprise a service request distribution section and an encapsulation section.
  • the second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 601 may comprise a first unit 104a and a second unit 152a.
  • the first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a.
  • the second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.
  • the processing unit 602 may comprise a first unit 104b and a second unit 152b.
  • the first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b.
  • the second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
  • the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be implemented by way of middleware.
  • FIG 7 shows a block diagram of a control system according to a furthermore embodiment of the present disclosure.
  • the control system 700 may include multiple processing units connected over one or more bus.
  • the bus may be PCIe bus or Peripheral Component Interconnect (PCI) bus.
  • the control system 700 may comprise two processing units (701, 702).
  • the processing units (701, 702) may be Electronic control units (ECUs) of a vehicle.
  • ECUs Electronic control units
  • this embodiment may include multiple processing units not restricted to two.
  • each of the two processing units (701, 702) may be configured as “service consumer” as well as “service provider”.
  • Each of the processing units (701, 702) may comprise a first unit and a second unit.
  • the first unit may comprise a service request distribution section and an encapsulation section.
  • the second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 701 may comprise a first unit 104a and a second unit 152a.
  • the first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a.
  • the second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.
  • the processing unit 702 may comprise a first unit 104b and a second unit 152b.
  • the first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b.
  • the second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
  • the functionalities and structure of the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be same as defined above in view of figure 5 and same are not repeated here for the sake of brevity.
  • the processing unit 701 may be a legacy system and may communicate over PCI bus 718.
  • the processing unit 702 may be a newer system and may communicate over PCIe bus 720.
  • the processing units (701, 702) may be able to interact and communicate via a PCI to PCIe converter 710.
  • the converter 710 may be configured to convert the PCI frames generated by the processing unit 701 into a format that may be processed by the processing unit 702.
  • the converter 710 mat be configured to convert the PCI frames generated by the processing unit 701 into PCIe frames that may be processed by the processing unit 702.
  • a control system may comprise one or more processing units and wherein said one or more processing units may comprise a first and/or a second unit of the at least one first and second units.
  • Figures 8A and 8B show a method 800 in a control system in accordance with an embodiment of the present invention. The method may be performed partially at the service consumer and partially at the service provider.
  • Figure 8A illustrates the method at the service consumer.
  • the method may comprise receiving a plurality of service-oriented communication (SOC) requests.
  • a SOC request may comprise a response deadline associated with the SOC request or may comprise an execution deadline associated with the SOC request.
  • the method may comprise queuing the SOC requests comprising the response deadlines in a first priority order in a first queue and queuing the SOC requests comprising the execution deadlines in the first priority order in a second queue.
  • the first and second queues may form part of the service consumer.
  • the first priority order is defined above and is not repeated for the sake of brevity.
  • the method may comprise encapsulating at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline from the first and second queues into at least one PCIe frame.
  • the method may comprise transmitting the at least one PCIe frame to a service provider over a PCIe bus.
  • Figure 8B illustrates the method at the service provider.
  • the method may comprise receiving the at least one PCIe frame from the service consumer.
  • the method may comprise decapsulating the at least one PCIe frame to unpack/decapsulate the at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline.
  • the method may comprise queuing the at least one unpacked SOC request comprising the response deadline in a second priority order in a third queue and queuing the at least one unpacked SOC request comprising the execution deadline in the second priority order in a fourth queue.
  • the third and fourth queues may form part of the service provider.
  • the second priority order is defined above and is not repeated for the sake of brevity.
  • the method may comprise processing the queued SOC requests according to the second priority order.
  • the method may comprise transmitting the results of processing of the SOC requests to the service consumer.
  • Figures 9A and 9B show a method 900 in a control system in accordance with another embodiment of the present invention. The method may be performed partially at the service consumer and partially at the service provider.
  • Figure 9A illustrates the method at the service consumer.
  • the method may comprise receiving a plurality of service-oriented communication (SOC) requests.
  • a SOC request may comprise a response deadline associated with the SOC request or may comprise an execution deadline associated with the SOC request.
  • the method may comprise queuing the SOC requests comprising the response deadlines in a first priority order in a first queue and queuing the SOC requests comprising the execution deadlines in the first priority order in a second queue.
  • the first and second queues may form part of the service consumer.
  • the first priority order is defined above and is not repeated for the sake of brevity.
  • Figure 9B illustrates the method at the service provider.
  • the method may comprise fetching the SOC requests comprising the response deadlines and execution deadlines from the first and second queues.
  • the fetching may be done for queuing the SOC requests having the response deadlines and the execution deadlines in the second priority order in the third and fourth queues respectively.
  • the third and fourth queues may form part of the service provider.
  • the second priority order is defined above and is not repeated for the sake of brevity.
  • the method may comprise processing the queued SOC requests according to the second priority order.
  • the method may comprise transmitting the results of processing of the SOC requests to the service consumer.
  • the present invention provides for one or more techniques for efficiently sending one or more service oriented requests (i.e. small size packets) through PCIe bus.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • a general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
  • Control system 102 First processing unit 104 : First unit 110 : Service request distribution section 112 : Encapsulation section 120 : PCIe bus 150 : Second processing unit 152 : Second unit 154 : Request receive section 156 : Decapsulation section 302 : Request distributor 304 : First queue 306 : Second queue 310 : Feeder 316 : Request receiver 350 : Dispatcher 358 : Third queue 360 : Fourth queue 352 : Service availability notifier 354 : Scheduler 364 : Distributor 400 : Control system 420a-420d : PCIe bus 422 : PCIe switch 500 : Control system 501, 502, 503 : Processing units 520a-520c : Processing units 510 : PCIe switch 600 : Control system 601, 602 : Processing units 620 : PCIe bus 700 : Control system 701, 702 : Processing units 710 : PCIe converter 718 : PCI bus 720 : PCIe bus 800 : Method 80

Abstract

A control system and a method for control system are disclosed. The control system includes one or more processing units. The control system comprises at least one first unit comprising a service request distribution section configured to receive a plurality of service-oriented communication (SOC) requests, each of the SOC request comprising a response deadline or an execution deadline associated with the SOC request. The received plurality of SOC requests comprising the response deadline and the execution deadline are queued in a first priority order in a first queue and the second queue respectively. The control system further comprises at least one second unit comprising a request receive section configured to queue each of the SOC requests comprising the response deadline and the execution deadline in a second priority order in a third queue and a fourth queue respectively. The one or more processing units comprises a first and/or a second unit.

Description

SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS
The present disclosure generally relates to a technique for transmission over Peripheral component interconnect express (PCIe) bus. In particular, the present disclosure relates to a technique for transmission of Service oriented communication (SOC) requests over PCIe bus.
Background
In conventional systems two or more peripheral devices may be connected for data transfer over one or more peripheral component interconnect (PCIe) bus. PCIe bus may be used for high throughput, low latency, and high data transfer rates. Further, PCIe bus may exhibit low performance for transfer of small sized data packets. This is because transmission of small sized data packets may prevent complete utilization of bandwidth of the PCIe bus, thereby reducing the efficiency of the data transfer on the PCIe bus.
One such example of small sized packets may be service oriented communication (SOC) requests. Thus, PCIe transmission for SOC requests may not be efficient.
 Further, conventional systems employing SOC may not provide the required determinism as they do not consider deadlines associated with the SOC requests.
Thus, there is a need in the art to develop a technique that can ensure efficient use of PCIe bus bandwidth for transmission of SOC requests and at the same time achieve deterministic communication of SOC requests.
Summary
In one non-limiting embodiment, a control system is disclosed. The control system includes one or more processing units. The control system comprises at least one first unit comprising a service request distribution section configured to receive a plurality of service-oriented communication (SOC) requests, each of the SOC request comprising a response deadline or an execution deadline associated with the SOC request. The received plurality of SOC requests comprising the response deadline and the execution deadline are queued in a first priority order in a first queue and the second queue respectively. The control system further comprises at least one second unit comprising a request receive section (202) configured to queue each of the SOC requests comprising the response deadline and the execution deadline in a second priority order in a third queue and a fourth queue respectively. The one or more processing units comprises a first and/or a second unit.
In one non-limiting embodiment, the service request distribution section is configured to receive the plurality of service-oriented communication (SOC) requests from a plurality of applications invoked on said one or more processing units.
In one non-limiting embodiment, service request distribution section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the first priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively. The request receive section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues respectively.
In one non-limiting embodiment, the service request distribution section is configured to queue each of the SOC requests from lowest to highest priority in the first and second queues based on one or more following criteria: response deadline associated with a SOC request, execution deadline associated with a SOC request, safety criticality associated with a SOC request, availability of third and fourth queues, and time required to process a SOC request.
In one non-limiting embodiment, if a first unit and a second unit of the at least one first and second units form part of one processing unit out of one or more of processing units, the request receive section is configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue, and queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
In one non-limiting embodiment, if a first unit and/or a second unit of the at least one first and second units form part of more than one processing unit coupled to each other via at least one peripheral component interconnect express (PCIe) bus, the at least one first unit further comprises an encapsulation section operatively coupled to the first and second queues and configured to generate at least one PCIe frame by fetching at least one SOC request comprising the response deadline from the first queue and at least one SOC request comprising the execution deadline from the second queue, and transmit the at least one PCIe frame to the at least one second unit over the at least one PCIe bus. The at least one second unit further comprises a decapsulation section operatively coupled to the third and fourth queues and configured to receive the at least one PCIe frame from the encapsulation section over the at least one PCIe bus, and decapsulate the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline; and the request receive section is configured to queue the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.
In one non-limiting embodiment, a method for control system is disclosed. The method comprises receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests, wherein a SOC request comprises a response deadline associated with the SOC request or an execution deadline associated with the SOC request, queuing, by the at least one first unit, each of the SOC requests comprising the response deadline in a first priority order in a first queue, queuing, by the at least one first unit, each of the SOC requests comprising the execution deadline in the first priority order in a second queue, queuing, by at least one second unit, each of the SOC requests comprising the response deadline in a second priority order in a third queue, queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline in the second priority order in a fourth queue, and processing, by the at least one second unit, the queued SOC requests.
In one non-limiting embodiment, receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests comprises receiving, by the at least one first unit, the plurality of service-oriented communication (SOC) requests from a plurality of applications involved in said control system.
In one non-limiting embodiment, queueing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC request comprising the execution deadline in the first priority order in the first and second queues respectively comprises queuing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively, and queueing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order in the third and fourth queues respectively comprises queuing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues, respectively.
In one non-limiting embodiment, queueing, by the at least one first unit, each of the SOC requests from lowest to highest priority in the first and second queues, is based on one or more following criteria response deadline associated with a SOC request, execution deadline associated with a SOC request, safety criticality associated with a SOC request, availability of third and fourth queues, and time required to process a SOC request.
In one non-limiting embodiment, queuing, by at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in a third queue comprises queuing, by the at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue, and queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in a fourth queue comprises queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
In one non-limiting embodiment t, queuing, by at least one second unit, each of the SOC requests comprising the response deadline and execution deadline from highest to lowest priority in a third queue and fourth queue comprises receiving, by the at least one second unit, at least one PCIe frame from the at least one first unit over the at least one PCIe bus, decapsulating, by the at least one second unit, the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline, and queuing, by the at least one second unit, the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.
The present disclosure overcomes one or more shortcomings of the prior art and provides additional advantages discussed throughout the present disclosure. Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed disclosure.
The foregoing summary is illustrative only and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed embodiments. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the figures to reference like features and components. Some embodiments of the system and/or method in accordance with embodiments of the present subject matter are now described, by way of example only, and with reference to the accompanying figures, in which:
Figure 1 depicts a block diagram of a control system in accordance with an exemplary embodiment of the present disclosure; Figure 2 depicts a SOC request format in accordance with an embodiment of the present disclosure; Figure 3 depicts a block diagram of a control system in accordance with another exemplary embodiment of the present disclosure; Figure 4 depicts a block diagram of a control system in accordance with another exemplary embodiment of the present disclosure; Figure 5 depicts a block diagram of a control system in accordance with yet another exemplary embodiment of the present disclosure; Figure 6 depicts a block diagram of a control system in accordance with a further exemplary embodiment of the present disclosure; Figure 7 depicts a block diagram of a control system in accordance with a furthermore exemplary embodiment of the present disclosure; Figure 8A depicts a flowchart indicating the method steps in accordance with an embodiment of the present disclosure; Figure 8B depicts a flowchart indicating the method steps in accordance with an embodiment of the present disclosure; Figure 9A depicts a flowchart indicating the method steps in accordance with another embodiment of the present disclosure; and Figure 9B depicts a flowchart indicating the method steps in accordance with another embodiment of the present disclosure. Figure 10 depicts a table of SOC request in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION
In the present document, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or implementation of the present disclosure described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
While the disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure.
The terms “comprises”, “comprising”, “include(s)”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, system or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or system or method. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or apparatus.
In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.
Referring to figure 1, an exemplary block diagram of a control system 100 is provided in accordance with an embodiment of the present disclosure.
As shown in figure 1, the control system 100 may comprise two processing units (102, 150). In a non-limiting embodiment, the processing units (102, 150) may be Electronic control units (ECUs) of a vehicle. The processing units (102, 150) may be connected to each other over a bus such as PCIe bus 120. The processing unit 102 may be configured as “service consumer” while the processing unit 150 may be configured as “service provider”. The service consumer may be responsible for sending one or more service requests to the service provider. The service requests may be generated by one or more applications invoked on the service consumer. The service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer. The processing unit 102 may comprise a first unit 104. The first unit 104 may comprise a service request distribution section 110 and an encapsulation section 112. The processing unit 150 may comprise a second unit 152. The second unit 152 may comprise a request receive section 154 and a decapsulation section 156.
The service request distribution section 110 may be configured to receive a plurality of service-oriented communication (SOC) requests. In this embodiment, the service request distribution section 110 may be configured to receive the plurality of SOC requests from a plurality of applications invoked on the first processing unit 102. A SOC request may comprise a response deadline associated with the SOC request or an execution deadline associated with the SOC request. The service request distribution section 110 may be configured to queue the received plurality of SOC requests. The service request distribution section 110 may be configured to separately queue the SOC requests having the response deadlines and separately queue the SOC requests having the execution deadlines. In this embodiment, the service request distribution section 110 may be configured to queue the SOC requests having the response deadlines in a first priority order in a first queue and may be further configured to queue the SOC requests having the execution deadlines in the first priority order in a second queue. The first and second queues may form part of the service request distribution section 110 and are not shown in figure 1.
The first priority order may define lowest to highest priority. In other words, the SOC requests comprising the response deadlines may be queued in a manner that highest priority requests are stacked at the bottom of the first queue. Similarly, the SOC requests comprising the execution deadlines may be queued in a manner that highest priority requests are stacked at the bottom of the second queue.
The encapsulation section 112 may be configured to generate at least one PCIe frame by fetching at least one SOC request comprising the response deadline from the first queue and at least one SOC request comprising the execution deadline from the second queue. In other word, the encapsulation section 112 packs the SOC requests from the first and second queues into one or more PCIe frames. In this embodiment, the number of SOC requests encapsulated in a PCIe frame may depend upon a size of the PCIe frame. In a non-limiting example, a PCIe frame may have a bandwidth of about 4KB. Thus, the number of SOC requests comprising the response deadline or execution deadline may be chosen such that complete bandwidth of 4KB of the PCIe frame is utilized. Further, in this embodiment, the number of PCIe frames transmitted over the PCIe bus may depend on the number of SOC requests to be packed and available bandwidth of the PCIe bus 120. The encapsulation section 112 may be further configured to transmit the one or more PCIe frames over the PCIe bus 120 to the processing unit 150.
As defined above, the processing unit 150 may comprise a second unit 152. The second unit 152 may comprise a request receive section 154 and a decapsulation section 156. The decapsulation section 156 may be configured to receive the one or more PCIe frames transmitted over the PCIe bus 120 from the encapsulation section 112. The decapsulation section 156 may be further configured to decapsulate the one or more PCIe frames to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline. In other words, the decapsulation section 156 unpacks the SOC requests from the one or more PCIe frames. The decapsulation section 156 may be further configured to provide the unpacked or decapsulated SOC requests to the request receive section 154. The request receive section 154 may be configured to queue the unpacked or decapsulated SOC requests. The request receive section 154 may be configured to separately queue the unpacked SOC requests having the response deadlines and separately queue the unpacked SOC requests having the execution deadlines. In this embodiment, the request receive section 154 may be configured to queue the SOC requests having the response deadlines in a second priority order in a third queue and may be further configured to queue the SOC requests having the execution deadlines in the second priority order in a fourth queue. The third and fourth queues may form part of the request receive section 154 and are not shown in figure 1.
The second priority order may be opposite to that of the first priority order and may define highest to lowest priority. In other words, the unpacked SOC requests comprising the response deadlines may be queued in a manner that highest priority requests are stacked at the top of the third queue. Similarly, the unpacked SOC requests comprising the execution deadlines may be queued in manner that highest priority requests are stacked at the top of the fourth queue.
The request receive section 154 may be further configured to process the SOC requests queued in the second priority order. In other words, the request receive section 154 may be further configured to process the SOC requests as per execution deadlines and send the result of processing as per the response deadlines. The execution deadline may be defined as a period in which the processing/execution of a SOC request has to be completed. The response deadline, on the other hand, may be defined as a combined period required to: send a SOC request, execute the SOC request and receive the results of execution. In this embodiment, the execution deadline may be defined as a period in which the processing/execution of a SOC request has to be completed by the processing unit 150. Further, in this embodiment, the response deadline may be defined as a round trip time, that is, time required to send a SOC request from processing unit 102 to the processing unit 150, execute the SOC request at the processing unit 150 and receive the results of execution at the processing unit 102 from the processing unit 150.
Referring to figure 2, Figure 2 illustrates a format of a SOC request sent from the service consumer to the service provider. The SOC request may include the following fields: SOC request identifier, originating service identifier, destination service identifier, size of data block, SOC request type identifier, deadline type (response or execution), deadline, data, and checksum. The originating service identifier may identify the processing unit from where the SOC request originates and the destination service identifier may indicate the processing unit to which the SOC request is intended. In an example, the originating service identifier may refer to service consumer and the destination service identifier may refer to service provider. One or more fields defined above may be stored in a service registry (not shown) maintained at the service consumer and service provider. Every time a SOC request is sent from the service consumer to service provider, the service registry is updated at the service consumer as well as the service provider. Further, every time results of processing are sent from service provider to service consumer, the service registry is updated at the service provider and the service consumer.
Referring to figure 3, left portion of figure 3 illustrates the service request distribution section 110 in communication with the encapsulation section 112. Right portion of figure 3 illustrates the decapsulation section 156 in communication with the request receive section 154.
The service request distribution section 110 may comprise a request receiver 316, a request distributor 302 coupled to the request receiver 316, first and second queues (304, 306) coupled to the request distributor 302, a feeder 310 coupled to the first and second queues (304, 306). The feeder 310 may be coupled to the encapsulation section 112. The request receiver 316 may be configured to receive a plurality of SOC requests from a plurality of applications invoked on the first processing unit 102. A SOC request may comprise a response deadline associated with the SOC request or an execution deadline associated with the SOC request. The request distributor 302 may be configured to queue the received plurality of SOC requests. The request distributor 302 may be configured to separately queue the SOC requests having the response deadlines and separately queue the SOC requests having the execution deadlines. In this embodiment, the request distributor 302 may be configured to queue the SOC requests comprising the response deadlines in a first priority order in the first queue 304. The request distributor 302 may be further configured to queue the SOC requests comprising the execution deadlines in the first priority order in the second queue 306.
The first priority order may define lowest to highest priority. The request distributor 302 of the service request distribution section 110 may be configured to queue the SOC requests from lowest to highest priority in the first and second queues (304, 306) based on one or more following criteria:
response deadline associated with a SOC request;
execution deadline associated with a SOC request;
safety criticality associated with a SOC request;
availability of third and fourth queues; and
time required to process a SOC request.
Response deadline associated with a SOC request is defined above. Execution deadline associated with a SOC request is also defined above. Safety criticality associated with a SOC request may be defined by classification of SOC request. In a non- limiting embodiment of the present disclosure, the classification of SOC request may include control request, diagnostic request or data processing request. Each of the three classifications of SOC requests may be assigned a criticality. In a non-limiting embodiment of the present disclosure, the control request may be given a highest criticality. The diagnostic request may be given a medium criticality and the data processing request may be given a lowest criticality. The priority order is exemplary and may vary based on the system specifications.
The availability of third and fourth queues in the request receive section 154 (service provider) and time required to process/complete a SOC request by the processing unit 150 (service provider) may also play a role in prioritizing the SOC requests in the first and second queues (304, 306).
In figure 10, a table of SOC request may be an example of queuing the SOC requests from lowest to highest priority in the service request distribution section 110 of the processing unit 102 (service consumer).
The example depicted in figure 10 may indicate three SOC requests R1, R2 and R3. SOC request R1 may be a diagnostic request and may have a medium criticality. SOC request R2 may be a control request and may have a high criticality. SOC request R3 may be a data processing request and may have a low criticality. In this example, since R1’s processing time 50ms is higher as compared to R3’s processing time 20ms which has shorter deadline 105ms than R1’s deadline 110ms, R3 will be prioritized higher than R1. It may be important to note that the SOC request R3 having the lowest criticality may be given highest priority for queuing over the SOC requests R1 and R2 having the medium and high criticality. Thus, it may be appreciated that one or more of the above defined criteria may be utilized for queuing the SOC requests at the service consumer.
In the above example, SOC requests R1, R2 and R3 may be queued in a manner that R3 is stacked at the bottom of the first/second queue followed by R1 and R2.
Referring to figure 3 again, the feeder 310 may provide/feed the queued SOC requests to the encapsulation section 112 for generating one or more PCIe frames. The feeder 310 may feed the highest priority SOC requests to the encapsulation section 112 followed by medium priority SOC requests and lowest priority SOC requests respectively. Referring to the above example, the feeder may feed SOC request R3, followed by SOC request R1 followed by SOC request R2 to the encapsulation section 112 for packing into one or more PCIe frames. In other words, the encapsulation section 112 may pack the SOC requests from the first and second queues (304, 306) into one or more PCIe frames and may transmit the one or more PCIe frames over the PCIe bus to the decapsulation section 156 of the processing unit 150.
The decapsulation section 156 may be configured to receive the one or more PCIe frames transmitted over the PCIe bus from the encapsulation section 112. The decapsulation section 156 may be further configured to decapsulate/unpack the one or more PCIe frames to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline. The decapsulation section 156 may be further configured to provide the unpacked or decapsulated SOC requests to the request receive section 154.
The request receive section 154 may comprise a distributor 364 coupled to the decapsulation section 156, third and fourth queues (358, 360) coupled to the distributor 364, a scheduler 354 coupled to the third and fourth queues (358, 360), a dispatcher 350 coupled to the scheduler 354 and a service availability notifier 352 coupled to the decapsulation section 156. The decapsulation section 156 may be configured to provide the unpacked/decapsulated SOC requests to the distributor 364. The distributor 364 may be configured to separately queue the unpacked SOC requests having the response deadlines and separately queue the unpacked SOC requests having the execution deadlines. In this embodiment, the distributor 364 may be configured to queue the SOC requests having the response deadlines in a second priority order in the third queue 358 and may be further configured to queue the SOC requests having the execution deadlines in the second priority order in the fourth queue 360.
The second priority order may be opposite to that of the first priority order and may define highest to lowest priority. Referring to the example of paragraph [0048], SOC requests R1, R2 and R3 may be queued in a manner that R3 is stacked at the top of the third/fourth queue followed by R1 and R2.
The scheduler 354 may be configured to process the SOC requests queued in the second priority order. The dispatcher 350 may be configured to send the results of processing to the processing unit 102. The service availability notifier 352 may be configured to broadcast/send an availability request to the processing unit 102. The availability request may contain a notification for the processing unit 102 that the processing unit 150 may be available and may be ready to process SOC requests from the processing unit 102. Upon getting the notification, the processing unit 102 may get aware about the availability of the processing unit 150 and may send SOC requests for processing to the processing unit 150. Once the notification may be sent, the service registry of the service provide may be updated. Also, the service registry of the service consumer receiving the notification may be updated. In particular, the service registry may be updated to indicate the address of the processing unit from where the notification is sent/received. This may help the service consumer to send the SOC request for processing to the service provider.
Referring to Figure 4, Figure 4 illustrates a block diagram of a control system according to another embodiment of the present disclosure. The control system 400 may include multiple processing units connected over one or more PCIe bus. As shown in figure 4, the control system 400 may comprise four processing units (102a, 102b, 150a, 150b). In a non-limiting embodiment, the processing units (102a, 102b, 150a, 150b) may be Electronic control units (ECUs) of a vehicle. The processing units (102a, 102b, 150a, 150b) may be connected to each other over one or more PCIe bus. As shown in figure 4, four PCIe buses (420a-420d) connect the four processing units (102a, 102b, 150a, 150b) to each other via a PCIe switch 422. Although, four processing units are depicted, this embodiment may include multiple processing unit not restricted to four. The processing units 102a, 102b may be configured as “service consumer” while the processing units 150a, 150b may be configured as “service provider”. The service consumer may be responsible for sending one or more service requests to the service provider. The requests may be generated by one or more applications invoked on the service consumer. The service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer.
Each of the processing units 102a, 102b may comprise a first unit. The first unit may comprise a service request distribution section and an encapsulation section. That is, the processing unit 102a may comprise a first unit 104a and the processing unit 102b may comprise a first unit 104b. The first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a. The first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b.
Similarly, each of the processing units 150a, 150b may comprise a second unit. The second unit may comprise a request receive section and a decapsulation section. That is, the processing units 150a may comprise a second unit 152a and the processing unit 150b may comprise a second unit 152b. The second unit 152a may comprise a request receive section 154a and a decapsulation section 156a. The second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
The functionalities and structure of the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be same as defined above in view of figures 1-3 and same are not repeated here for the sake of brevity.
It may be important to note that each of the processing units 150a and 150b may broadcast service availability messages to processing units 102a and 102b. In other words, in this embodiment, SOC requests originating from processing unit 102a (service consumer) may be processed either by processing unit 150a (service provider) or processing unit 150b (service provider) or both. Similarly, SOC requests originating from processing unit 102b (service consumer) may be processed either by processing unit 150a (service provider) or processing unit 150b (service provider) or both.
Referring to figure 5, Figure 5 shows a block diagram of a control system according to yet another embodiment of the present disclosure. The control system 500 may include multiple processing units connected over one or more PCIe bus. As shown in figure 5, the control system 500 may comprise three processing units (501, 502, 503). In a non-limiting embodiment, the processing units (501, 502, 503) may be Electronic control units (ECUs) of a vehicle. The processing units (501, 502, 503) may be connected to each other over one or more PCIe bus. As shown in figure 5, three PCIe buses (520a, 520b and 520c) connect the three processing units (501, 502, 503) to each other via a PCIe switch 510. Although, three processing units are depicted, this embodiment may include multiple processing unit not restricted to three. In this embodiment, each of the three processing units (501, 502, 503) may be configured as “service consumer” as well as “service provider”. The service consumer may be responsible for sending one or more service requests to the service provider. The requests may be generated by one or more applications invoked on the service consumer. The service provider may be responsible for processing the one or more service requests received from the service consumer and sending the results of processing to the service consumer.
Each of the processing units (501, 502, 503) may comprise a first unit and a second unit. The first unit may comprise a service request distribution section and an encapsulation section. The second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 501 may comprise a first unit 104a and a second unit 152a. The first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a. The second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.The processing unit 502 may comprise a first unit 104b and a second unit 152b. The first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b. The second unit 152b may comprise a request receive section 154b and a decapsulation section 156b. The processing unit 503 may comprise a first unit 104c and a second unit 152c. The first unit 104c may comprise a service request distribution section 110c and an encapsulation section 112c. The second unit 152c may comprise a request receive section 154c and a decapsulation section 156c.
The functionalities and structure of the service request distribution sections (110a, 110b, 110c), the encapsulation sections (112a, 112b, 112c), the request receive sections (154a, 154b, 154c) and the decapsulation sections (156a, 156b, 156c) may be same as defined above in view of figures 1-3 and same are not repeated here for the sake of brevity.
It may be important to note that each of the processing units (501,502, 503) may broadcast service availability messages to each of the processing units (501,502, 503). In other words, in this embodiment, SOC requests originating from processing unit 501 (service consumer) may be processed either by processing unit 501 (service provider) or processing unit 502 (service provider) or processing unit 503 (service provider) or all three processing units (501, 502, 503). Similarly, SOC requests originating from processing unit 502 (service consumer) may be processed either by processing unit 502 (service provider) or processing unit 501 (service provider) or processing unit 503 (service provider) or all three processing units (501, 502, 503). Likewise, SOC requests originating from processing unit 503 (service consumer) may be processed either by processing unit 503 (service provider) or processing unit 502 (service provider) or processing unit 501 (service provider) or all three processing units (501, 502, 503).
In this embodiment, where the SOC requests originating from the processing unit (501) (service consumer) may be processed by processing unit 501 (service provider) PCIe frames may be not generated and transmitted from the service consumer to the service provider. In this embodiment, the request receive section 154a of the second unit 152a may fetch the queued SOC requests from the service request distribution section 110a of the first unit 104a. In other words, the request receive section 154a may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue. The third queue may form part of request receive section 154a and the first queue may form part of service request distribution section 110a. Further, the request receive section 154a may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue. The fourth queue may form part of request receive section 154a and the second queue may form part of service request distribution section 110a.
Similarly, where the SOC requests originating from the processing unit (502) (service consumer) may be processed by processing unit 502 (service provider) PCIe frames may be not generated and transmitted from the service consumer to the service provider. In this embodiment, the request receive section 154b of the second unit 152b may fetch the queued SOC requests from the service request distribution section 110b of the first unit 104b. In other words, the request receive section 154b may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue. The third queue may form part of request receive section 154b and the first queue may form part of service request distribution section 110b. Further, the request receive section 154b may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue. The fourth queue may form part of request receive section 154b and the second queue may form part of service request distribution section 110b.
Likewise, where the SOC requests originating from the processing unit 503 (service consumer) may be processed by processing unit 503 (service provider) PCIe frames may be not generated and transmitted from the service consumer to the service provider. In this embodiment, the request receive section 154c of the second unit 152c may fetch the queued SOC requests from the service request distribution section 110c of the first unit 104c. In other words, the request receive section 154c may be configured to queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue. The third queue may form part of request receive section 154c and the first queue may form part of service request distribution section 110c. Further, the request receive section 154c may be also configured to queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue. The fourth queue may form part of request receive section 154c and the second queue may form part of service request distribution section 110c.
Referring to figure 6. Figure 6 shows a block diagram of a control system according to a further embodiment of the present disclosure. The control system 600 may include multiple processing units connected over one or more PCIe bus. As shown in figure 6, the control system 600 may comprise two processing units (601, 602). In a non-limiting embodiment, the processing units (601, 602) may be Electronic control units (ECUs) of a vehicle. The processing units (601, 602) may be connected to each other over a PCIe bus 620. Although, two processing units are depicted, this embodiment may include multiple processing unit not restricted to two. In this embodiment, each of the two processing units (601, 602) may be configured as “service consumer” as well as “service provider”.
Each of the processing units (601, 602) may comprise a first unit and a second unit. The first unit may comprise a service request distribution section and an encapsulation section. The second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 601 may comprise a first unit 104a and a second unit 152a. The first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a. The second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.The processing unit 602 may comprise a first unit 104b and a second unit 152b. The first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b. The second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
In this embodiment, the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be implemented by way of middleware.
Referring to figure 7. Figure 7 shows a block diagram of a control system according to a furthermore embodiment of the present disclosure. The control system 700 may include multiple processing units connected over one or more bus. The bus may be PCIe bus or Peripheral Component Interconnect (PCI) bus. As shown in figure 7, the control system 700 may comprise two processing units (701, 702). In a non-limiting embodiment, the processing units (701, 702) may be Electronic control units (ECUs) of a vehicle. Although, two processing units are depicted, this embodiment may include multiple processing units not restricted to two. In this embodiment, each of the two processing units (701, 702) may be configured as “service consumer” as well as “service provider”.
Each of the processing units (701, 702) may comprise a first unit and a second unit. The first unit may comprise a service request distribution section and an encapsulation section. The second unit may comprise a request receive section and a decapsulation section. That is, the processing unit 701 may comprise a first unit 104a and a second unit 152a. The first unit 104a may comprise a service request distribution section 110a and an encapsulation section 112a. The second unit 152a may comprise a request receive section 154a and a decapsulation section 156a.The processing unit 702 may comprise a first unit 104b and a second unit 152b. The first unit 104b may comprise a service request distribution section 110b and an encapsulation section 112b. The second unit 152b may comprise a request receive section 154b and a decapsulation section 156b.
The functionalities and structure of the service request distribution sections (110a, 110b), the encapsulation sections (112a, 112b), the request receive sections (154a, 154b) and the decapsulation sections (156a, 156b) may be same as defined above in view of figure 5 and same are not repeated here for the sake of brevity.
It may be noted that the processing unit 701 may be a legacy system and may communicate over PCI bus 718. On the other hand, the processing unit 702 may be a newer system and may communicate over PCIe bus 720. The processing units (701, 702) may be able to interact and communicate via a PCI to PCIe converter 710. The converter 710 may be configured to convert the PCI frames generated by the processing unit 701 into a format that may be processed by the processing unit 702. In other words, the converter 710 mat be configured to convert the PCI frames generated by the processing unit 701 into PCIe frames that may be processed by the processing unit 702.
In view of the above embodiments disclosed in figures 1-7, it may be appreciated that a control system may comprise one or more processing units and wherein said one or more processing units may comprise a first and/or a second unit of the at least one first and second units.
Referring to figures 8A and 8B. Figures 8A and 8B show a method 800 in a control system in accordance with an embodiment of the present invention. The method may be performed partially at the service consumer and partially at the service provider.
Figure 8A illustrates the method at the service consumer. At step 801, the method may comprise receiving a plurality of service-oriented communication (SOC) requests. A SOC request may comprise a response deadline associated with the SOC request or may comprise an execution deadline associated with the SOC request. At step 803, the method may comprise queuing the SOC requests comprising the response deadlines in a first priority order in a first queue and queuing the SOC requests comprising the execution deadlines in the first priority order in a second queue. The first and second queues may form part of the service consumer. The first priority order is defined above and is not repeated for the sake of brevity. At step 805, the method may comprise encapsulating at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline from the first and second queues into at least one PCIe frame. At step 807, the method may comprise transmitting the at least one PCIe frame to a service provider over a PCIe bus.
Figure 8B illustrates the method at the service provider. At step 809, the method may comprise receiving the at least one PCIe frame from the service consumer. At step 811, the method may comprise decapsulating the at least one PCIe frame to unpack/decapsulate the at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline. At step 813, the method may comprise queuing the at least one unpacked SOC request comprising the response deadline in a second priority order in a third queue and queuing the at least one unpacked SOC request comprising the execution deadline in the second priority order in a fourth queue. The third and fourth queues may form part of the service provider. The second priority order is defined above and is not repeated for the sake of brevity. At step 815, the method may comprise processing the queued SOC requests according to the second priority order. At step 817, the method may comprise transmitting the results of processing of the SOC requests to the service consumer.
Referring to figures 9A and 9B. Figures 9A and 9B show a method 900 in a control system in accordance with another embodiment of the present invention. The method may be performed partially at the service consumer and partially at the service provider.
Figure 9A illustrates the method at the service consumer. At step 901, the method may comprise receiving a plurality of service-oriented communication (SOC) requests. A SOC request may comprise a response deadline associated with the SOC request or may comprise an execution deadline associated with the SOC request. At step 903, the method may comprise queuing the SOC requests comprising the response deadlines in a first priority order in a first queue and queuing the SOC requests comprising the execution deadlines in the first priority order in a second queue. The first and second queues may form part of the service consumer. The first priority order is defined above and is not repeated for the sake of brevity.
Figure 9B illustrates the method at the service provider. At step 905, the method may comprise fetching the SOC requests comprising the response deadlines and execution deadlines from the first and second queues. The fetching may be done for queuing the SOC requests having the response deadlines and the execution deadlines in the second priority order in the third and fourth queues respectively. The third and fourth queues may form part of the service provider. The second priority order is defined above and is not repeated for the sake of brevity. At step 907, the method may comprise processing the queued SOC requests according to the second priority order. At step 909, the method may comprise transmitting the results of processing of the SOC requests to the service consumer.
The present invention provides for one or more techniques for efficiently sending one or more service oriented requests (i.e. small size packets) through PCIe bus.
Those skilled in the art would further appreciate that the various illustrative units, sections, blocks, modules, circuits, and described in connection with the disclosure herein may be implemented as electronic hardware, computer software, firmware or any combination thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, units, sections, blocks, modules, circuits, and method steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative units, sections, blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of the method described in connection with the disclosure herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
The above illustrations are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
Referral Numerals
100 : Control system
102: First processing unit
104 : First unit
110 : Service request distribution section
112 : Encapsulation section
120 : PCIe bus
150 : Second processing unit
152 : Second unit
154 : Request receive section
156 : Decapsulation section
302 : Request distributor
304 : First queue
306 : Second queue
310 : Feeder
316 : Request receiver
350 : Dispatcher
358 : Third queue
360 : Fourth queue
352 : Service availability notifier
354 : Scheduler
364 : Distributor
400 : Control system
420a-420d : PCIe bus
422 : PCIe switch
500 : Control system
501, 502, 503 : Processing units
520a-520c : Processing units
510 : PCIe switch
600 : Control system
601, 602 : Processing units
620 : PCIe bus
700 : Control system
701, 702 : Processing units
710 : PCIe converter
718 : PCI bus
720 : PCIe bus
800 : Method
801-817 : Method steps
900 : Method
901-909 : Method steps

Claims (12)

  1. A control system including one or more processing units, said control system comprising:
        at least one first unit comprising:
            a service request distribution section configured to:
            receive a plurality of service-oriented communication (SOC) requests,
        wherein a SOC request comprises a response deadline associated with the SOC request or an execution deadline associated with the SOC request;
            queue each of the SOC requests comprising the response deadline in a first priority order in a first queue of the service request distribution section; and
            queue each of the SOC requests comprising the execution deadline in the first priority order in a second queue of the service request distribution section; and
        at least one second unit comprising:
        a request receive section configured to:
            queue each of the SOC requests comprising the response deadline in a second priority order in a third queue of the request receive section;
            queue each of the SOC requests comprising the execution deadline in the second priority order in a fourth queue of the request receive section; and
            process the queued SOC requests; and
        wherein said one or more processing units comprises a first and/or a second unit of the at least one first and second units.
  2. The Control system of claim 1, wherein the service request distribution section is configured to receive the plurality of service-oriented communication (SOC) requests from a plurality of applications invoked on said one or more processing units.
  3. The control system of claim 1, wherein:
        the service request distribution section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the first priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively; and
        the request receive section is configured to queue each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order by queuing each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues respectively.
  4. The Control system of claim 3, wherein the service request distribution section is configured to queue each of the SOC requests from lowest to highest priority in the first and second queues based on one or more following criteria:
        (a) response deadline associated with a SOC request;
        (b) execution deadline associated with a SOC request;
        (c) safety criticality associated with a SOC request;
        (d) availability of third and fourth queues; and
        (e) time required to process a SOC request.
  5. The Control system of claim 3, wherein if a first unit and a second unit of the at least one first and second units form part of one processing unit out of one or more of processing units, the request receive section is configured to:
        queue each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue; and
        queue each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  6. The control system of claim 3, wherein if a first unit and/or a second unit of the at least one first and second units form part of more than one processing unit coupled to each other via at least one peripheral component interconnect express (PCIe) bus,
        the at least one first unit further comprises an encapsulation section operatively coupled to the first and second queues and configured to:
            generate at least one PCIe frame by fetching at least one SOC request comprising the response deadline from the first queue and at least one SOC request comprising the execution deadline from the second queue; and
            transmit the at least one PCIe frame to the at least one second unit over the at least one PCIe bus; and
        the at least one second unit further comprises a decapsulation section operatively coupled to the third and fourth queues and configured to:
            receive the at least one PCIe frame from the encapsulation section over the at least one PCIe bus; and
            decapsulate the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline; and
            wherein the request receive section is configured to queue the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.
  7. A method in a control system, said method comprising:
        receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests, wherein a SOC request comprises a response deadline associated with the SOC request or an execution deadline associated with the SOC request;
        queuing, by the at least one first unit, each of the SOC requests comprising the response deadline in a first priority order in a first queue;
        queuing, by the at least one first unit, each of the SOC requests comprising the execution deadline in the first priority order in a second queue;
        queuing, by at least one second unit, each of the SOC requests comprising the response deadline in a second priority order in a third queue;
        queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline in the second priority order in a fourth queue; and
        processing, by the at least one second unit, the queued SOC requests.
  8. The method of claim 7, wherein receiving, by at least one first unit, a plurality of service-oriented communication (SOC) requests comprises:
        receiving, by the at least one first unit, the plurality of service-oriented communication (SOC) requests from a plurality of applications involved in said control system.
  9. The method of claim 7, wherein:
        queueing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC request comprising the execution deadline in the first priority order in the first and second queues respectively comprises:
        queuing, by the at least one first unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from lowest to highest priority in the first and second queues respectively; and
        queueing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline in the second priority order in the third and fourth queues respectively comprises:
        queuing, by the at least one second unit, each of the SOC requests comprising the response deadline and each of the SOC requests comprising the execution deadline from highest to lowest priority in the third and fourth queues, respectively.
  10. The method of claim 9, wherein queueing, by the at least one first unit, each of the SOC requests from lowest to highest priority in the first and second queues, is based on one or more following criteria:
    (a) response deadline associated with a SOC request;
    (b) execution deadline associated with a SOC request;
    (c) safety criticality associated with a SOC request;
    (d) availability of third and fourth queues; and
    (e) time required to process a SOC request.
  11. The method of claim 9, wherein:
    queuing, by at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in a third queue comprises:
        queuing, by the at least one second unit, each of the SOC requests comprising the response deadline from highest to lowest priority in the third queue by fetching each of the SOC requests comprising the response deadline from the first queue; and
    queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in a fourth queue comprises:
        queuing, by the at least one second unit, each of the SOC requests comprising the execution deadline from highest to lowest priority in the fourth queue by fetching each of the SOC requests comprising the execution deadline from the second queue.
  12. The method of claim 9, wherein queuing, by at least one second unit, each of the SOC requests comprising the response deadline and execution deadline from highest to lowest priority in a third queue and fourth queue comprises:
        receiving, by the at least one second unit, at least one PCIe frame from the at least one first unit over the at least one PCIe bus;
        decapsulating, by the at least one second unit, the at least one PCIe frame to obtain at least one SOC request comprising the response deadline and at least one SOC request comprising the execution deadline; and
        queuing, by the at least one second unit, the decapsulated at least one SOC request comprising the response deadline and the at least one SOC request comprising the execution deadline from highest to lowest priority in the third queue and the fourth queue respectively.

PCT/JP2021/021087 2020-07-03 2021-06-02 SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS WO2022004258A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202021028411 2020-07-03
IN202021028411 2020-07-03

Publications (1)

Publication Number Publication Date
WO2022004258A1 true WO2022004258A1 (en) 2022-01-06

Family

ID=79315948

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/021087 WO2022004258A1 (en) 2020-07-03 2021-06-02 SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS

Country Status (1)

Country Link
WO (1) WO2022004258A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198347A (en) * 1996-01-19 1997-07-31 Mitsubishi Electric Corp On-line transaction processing server computer
US20050080930A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for processing service requests in a service-oriented architecture
JP2007241577A (en) * 2006-03-07 2007-09-20 Nec Corp Input/output request control method, computer system and computer program
US8972551B1 (en) * 2010-04-27 2015-03-03 Amazon Technologies, Inc. Prioritizing service requests

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198347A (en) * 1996-01-19 1997-07-31 Mitsubishi Electric Corp On-line transaction processing server computer
US20050080930A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for processing service requests in a service-oriented architecture
JP2007241577A (en) * 2006-03-07 2007-09-20 Nec Corp Input/output request control method, computer system and computer program
US8972551B1 (en) * 2010-04-27 2015-03-03 Amazon Technologies, Inc. Prioritizing service requests

Similar Documents

Publication Publication Date Title
CN110888827B (en) Data transmission method, device, equipment and storage medium
US11575607B2 (en) Dynamic load balancing for multi-core computing environments
US9396154B2 (en) Multi-core processor for managing data packets in communication network
CN109688058B (en) Message processing method and device and network equipment
US7826479B2 (en) Communication message conversion device, communication method and communication system
US5815678A (en) Method and apparatus for implementing an application programming interface for a communications bus
US8085801B2 (en) Resource arbitration
US11341087B2 (en) Single-chip multi-processor communication
US8051222B2 (en) Concatenating secure digital input output (SDIO) interface
WO2021017667A1 (en) Service data transmission method and device
US10523548B2 (en) Circuit and a method for attaching a time stamp to a trace message
CN112291259B (en) Protocol conversion method, gateway, equipment and readable storage medium
WO2022004258A1 (en) SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS
CN107291641B (en) Direct memory access control device for a computing unit and method for operating the same
WO2016132402A1 (en) Communication frame transfer device and communication system
CA2231949A1 (en) Source and destination initiated interrupt system for message arrival notification
CN113170500B (en) Information transmission method and device
CN115616984A (en) Task processing method based on multi-core processor, numerical control machine and storage medium
CN112559404A (en) Data scheduling device and method and accelerated processing chip
CN111722916A (en) Method for processing MSI-X interruption by mapping table
CN117751555A (en) Task processing method and device
EP1191748A1 (en) Method for the fair data transfer in a shared bus by means of a distributed arbitration algorithm
CN117493227A (en) Video data transmission method, device, system, vehicle and storage medium
WO2024016947A1 (en) Transmission optimization method, and device, controller and readable storage medium
RU2642383C2 (en) Method of information transmission

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21833118

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21833118

Country of ref document: EP

Kind code of ref document: A1