METHOD TO PROCESS DATA IN MULTICORE SYSTEM ON CHIP PROCESSING ARCHITECTURE, MULTICORE SYSTEM ON CHIP DEVICE AND STORAGE MEDIUM
20230096461 · 2023-03-30
Assignee
Inventors
Cpc classification
G06F9/485
PHYSICS
G06F9/545
PHYSICS
International classification
Abstract
A method to process data in a multicore SOC, includes receiving, from a MAC, input frames at a NIC of a RTOS implemented on a first core. The input frames are transmitted from the NIC to a frame processor of the RTOS for parsing and classifying in a first class related to RTOS tasks and a second class related to non RTOS tasks. The frames classified in the first class are transmitted to tasks of a sequencer of the RTOS and processed on the first core. The input frames classified in the second class are transmitted to a network device driver of a second OS implemented on a second core of the SOC, and processed on the second core. Output frames are transmitted to the frame processor, are classified and scheduled, and transmitted to the NIC and from the NIC to the MAC.
Claims
1. A method to process data in a multicore system-on-chip, SOC, processing architecture comprising: receiving input frames at a network interface controller, NIC, of a real time operating system, RTOS, from a medium access controller, MAC, of the SOC, wherein the RTOS is implemented on a first core of the SOC; transmitting the input frames from the NIC of the RTOS to a frame processor of the RTOS; parsing and classifying the input frames at the frame processor according to a classification comprising at least a first class related to RTOS tasks and a second class related to non RTOS tasks; transmitting input frames classified in the first class from the frame processor to one or more tasks run by a sequencer of the RTOS; transmitting input frames classified in the second class from the frame processor to a network device driver of a second operating system, OS, implemented on a second core of the SOC, the second OS comprising a kernel space and a user space; processing on the first core the input frames transmitted to the one or more tasks run by the sequencer of the RTOS, and processing on the second core the input frames transmitted to the network device driver of the second OS; transmitting output frames related to RTOS tasks from the one or more tasks run by the sequencer of the RTOS to the frame processor; transmitting output frames related to non RTOS tasks from the network device driver of the second OS to the frame processor; classifying and scheduling the output frames at the frame processor; and transmitting the scheduled output frames from the frame processor to the NIC, and transmitting the scheduled output frames from the NIC to the MAC.
2. The method according to claim 1, wherein the RTOS is implemented on additional cores of the SOC.
3. The method according to claim 1, further comprising: parsing and classifying the input frames at the frame processor according to the classification comprising one or more other classes related to other RTOS tasks; and transmitting input frames classified in the one or more other classes from the frame processor to one or more tasks run by one or more dedicated other sequencers of one or more dedicated other RTOS, wherein the one or more dedicated other RTOS are implemented on one or more dedicated cores of the SOC.
4. The method according to claim 1, wherein the second OS is implemented on additional cores of the SOC.
5. The method according to claim 1, further comprising: parsing and classifying the input frames at the frame processor according to the classification comprising one or more further classes related to non RTOS tasks; and transmitting input frames classified in the one or more further classes from the frame processor to one or more dedicated further network device drivers of one or more dedicated further OS implemented on one or more dedicated further cores of the SOC, the one or more dedicated further OS comprising a dedicated further kernel space and a dedicated further user space.
6. The method according to claim 1, further comprising: receiving, at the network device driver of the second OS, input frames exclusively transmitted from the frame processor of the RTOS.
7. The method according to claim 1, further comprising: transmitting, by the network device driver of the second OS, output frames exclusively to the frame processor of the RTOS.
8. The method according to claim 1, further comprising: sharing, by the RTOS and by the kernel of the second OS, a buffer storing frame data.
9. The method according to claim 1, further comprising: preventing access to an RTOS buffer from the second OS.
10. The method according to claim 1, wherein the classifying the input frames further comprises: attaching, by the frame processor, a stream class identifier to the input frames according to classification rules; and passing the input frame and attached stream class identifier to a queue identification module of the frame processor.
11. The method according to claim 1, wherein the frame processor is applying dynamically defined classification rules.
12. The method according to claim 11, wherein either one or both of the kernel of the second OS and applications of the RTOS are contributing to dynamically defining the classification rules.
13. The method according to claim 1, wherein the classifying and scheduling the output frames at the frame processor comprises: attaching, by the frame processor, a stream class identifier to the output frames according to classification rules; and applying scheduling rules to the output frames depending on both time and priority of the attached stream class of the output frames for frame transmission of the scheduled output frames.
14. A multicore system-on-chip, SOC, device comprising processing cores and a memory, the processing cores being configured to operate according to claim 1.
15. A non-transitory computer-readable storage medium comprising instructions which, when executed by processing cores of a multicore system-on-chip, SOC, device, cause the processing cores to carry out the method according to claim 1.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
DESCRIPTION OF EMBODIMENTS
[0049] To provide more efficient computing systems, semiconductor manufacturers tend to package various electronic components on the same package (also referred to as an “SoC” or “SOC”). This approach can save physical space since a single semiconductor package is provided instead of multiple packages, can provide better performance and can consume less power at a lower cost. Multiple packages would be separately powered and/or coupled via physical off-chip wires to allow for inter-component communication, which in turn would require more physical space. This disclosure applies to the processing of data in a multicore SOC processing architecture. Such an SOC comprises a number of central processing units, CPUs, or cores, and a memory. In various cases, an SOC device may include any chip design not specifically directed to any particular market segment. An SOC may be a simple SOC, a companion chip or a complex SOC.
[0050] A multicore SOC may in some examples comprise several executing cores, each of which reads and executes program instructions, as several processors. Cores may or may not share caches, and they may in some cases implement message passing or shared-memory inter-core communication methods. In some cases, each core has a dedicated L1 cache. In some cases, various cores share a same L2 cache. In some examples, a homogeneous multicore SOC include only identical cores. In some examples, a heterogeneous multicore SOC comprises cores that are not identical.
[0051] In some cases, a specific Interrupt Controller (for example called Global Interrupt Controller in an ARM processor) provides interrupt routing between cores of a multicore SOC, as well as inter-processor interrupts.
[0052] RAM (Random Access Memory) and device peripherals (for example UART (universal asynchronous receiver-transmitter) or a network interface) may be in some cases shared between different CPU or cores. In some cases, some memory or device bottleneck may occur when several cores are accessing the same peripheral resource simultaneously.
[0053] As represented for example in
[0054] An RTOS is an operating system intended to serve real-time processing of data as the data is received. Examples of RTOS include FREERTOS™, RTEMS™, among others. A characteristic of an RTOS is a level of consistency in scheduling and completing a task. As used herein a task may be an operating system operation, which may be invoked by an application executing on the RTOS, or an Interrupt Service Routines (ISR), or the like. The execution time is the time for a single execution of the task. In some cases, the task has an associated deadline within which the task has to be completed. A deadline miss is a scenario where the execution of the task does not get completed before the task's deadline. Alternatively, or in addition, the deadline includes a duration of a certain number of activations of the task. In a hard RTOS, such as one used in an electrical power steering system (EPS), task timing and task deadline play a critical role. According to this disclosure, the RTOS is implemented on a first core of the SOC. In some cases, no other OS is implemented on the first core of the SOC, the only OS implemented on the first core being the RTOS.
[0055] An RTOS may be particularly suited to processing tasks related to a real time system. A real-time system may be considered as a set of interactive real-time processes, each real-time process producing some reactions in response to external events in a finite time, meaning before a deadline.
[0056] Systems may be classified in one of the following categories: [0057] Non Real Time. A non-real time system is a system where there are no deadlines involved. An RTOS is not a Non Real Time system according to this disclosure. [0058] Soft Real Time. A Soft Real Time system is a system where not meeting a deadline may have undesirable effects but may be tolerated by the system, for example leading to a performance degradation. In other words, a Soft Real Time system may meet a deadline in an average case. The Linux OS Kernel may for example be classified as pertaining to this category because it implements FIFO (first in, first out) or Round Robin process scheduling. An RTOS is not a Soft Real Time system according to this disclosure. [0059] Firm Real Time. Infrequent deadline misses are tolerable, but may degrade the system quality of service. The system may survive task failures so long as they are adequately spaced. A Firm RT (Real Time) system is for example a soft RT system which was improved to approach hard real time. Most of the time, there is no strict deadline guaranteed by the system. Linux kernel with PREEMPT_RT patch, or Xenomai are part of this category. An RTOS is not a Firm Real Time systems according to this disclosure. [0060] Hard Real Time. A Hard Real Time system is a system where not meeting a deadline can have critical effects. Real-Time OS (RTOS) such as FreeRTOS or RTEMS are part of this category. In some cases, unlike an OS such as Linux, they provide relatively few services, such few services being in some cases related to task/process scheduling and interruption. An RTOS may be a Hard Real Time system. [0061] Absolute real-time. An absolute Real Time system is a system where the response time to external events is fixed and remains the same (within a few ns or nano seconds). Some programmable hardware based systems such as FPGA (field-programmable gate array) or CPLD (complex programmable logic device) are in this category. An RTOS is not an Absolute Real Time system.
[0062] An RTOS may in some cases achieve an appropriate performance by careful implementation of an interrupt process. An RTOS may in some cases achieve a maximum latency of several μs depending on a CPU speed and on the complexity of peripheral devices which generate HW (Hardware) interrupts. In some cases, an RTOS supports a limited set of task which may be generally defined statically and bound to the RTOS. The RTOS may in some cases not provide services such as a file system, or a memory manager. In some cases, the complexity of applications supported by an RTOS is limited. In some cases, the time and cost required to develop, test and/or maintain RTOS applications is higher than maintaining application using a generic OS such as an OS comprising a kernel space and a user space.
[0063] A medium access controller, MAC, provides a functionality for controlling access to a physical transmission medium. Some of the MAC functionalities may be implemented in software running on a processor. In some cases, MAC functionalities concerning user data plane, in particular transmission to or reception from a PHY Ethernet (Ethernet physical layer component), are implemented in hardware. A MAC may be implemented on a substrate as discrete logic, memory, microprocessor, and/or combinations thereof. A MAC may be arranged for performing functions of encryption/decryption, segmentation/reassembly of packets, channel access (e.g., including arbitration), and address filtering. In some examples, a MAC comprises an Ethernet Medium Access Controller (EMAC) peripheral compliant with IEEE standards such as 10 BASE-T/100 BASE-TX 802.3 for Ethernet MAC and support 10/100 Mbps data transmission rates. In some cases, a EMAC may support IEEE 802.1Q VLAN tag detection. In some cases, a EMAC may support IEEE1588-2008 for precision networked clock synchronization or gigabit speed. In some cases, a EMAC support some IEEE TSN extensions such as IEEE 802.1qbv (time aware scheduler), or a time-based emission (i.e. a capability to transmit a frame at a given time).
[0064] A network interface controller (NIC) block is in charge of managing MAC queues used for reception and transmission of messages. It buffers input and output messages and provides a high-level interface. In addition, a NIC may collect local computing resource message statistics. This may involve keeping track of the number of messages sent, received and blocked. A role of the NIC may be to provide the RTOS with a unified view the communication resources. For instance, message statistics collected in a NIC may be processed and communicated to the first core of the SOC, on which the RTOS is implemented, by the NIC. A NIC may in some examples be considered as a distributed part of the RTOS.
[0065] In some cases, the method according to this disclosure may be applied in the context of Ethernet TSN requirements. TSN corresponds to the IEEE 802.1 defined standard technology to provide deterministic messaging on standard Ethernet. Providing on-time delivery of Real-Time (RT) frames (such as related to RTOS tasks) may be according to IEEE 802.1Qbv standard. IEEE 802.1Qbv defines relates to transmitting certain TSN Ethernet frames on a schedule, while allowing non-RT Ethernet frames (such as related to non RTOS tasks) to be transmitted on a best effort basis around the RT frames (related to the RTOS tasks). In a case where all network nodes are synchronized, IEEE 802.1 Qbv may deliver critical communication (related to the RTOS tasks) very quickly and with a very low jitter in delivery. The different TSN standards defined by IEEE 802.1 group may be grouped in three component categories: [0066] Time synchronization: time in TSN networks may be distributed from one master source to all the network nodes. In some cases, this is done using the IEEE 1588 Precision Time Protocol standard, which utilizes Ethernet frames to distribute time synchronization information. [0067] Scheduling and traffic shaping: Scheduling and traffic shaping allows for the coexistence of different traffic classes with different priorities on a same network. TSN may enhance an Ethernet communication by adding mechanisms to ensure timely delivery with soft and hard real-time requirements. [0068] Selection of communication paths, path reservations and fault-tolerance mechanisms.
[0069] In some cases, focusing on the scheduling component, for different priorities, a user may select from different access control and scheduling mechanisms how Ethernet frames are processed. Thereby, some priority may be assigned to already existing methods (such as the strict priority scheduler defined by the IEEE 802.1Q standard) or some new processing methods, such as the time-aware traffic scheduler defined by the IEEE 802.1Qbv standard. This time-aware scheduler is designed to separate the communication on the Ethernet network into fixed length, repeating time cycles. Within these cycles, different time slices may be configured that may be assigned to one or several of Ethernet priorities. Using to that mechanism, it is possible to grant exclusive use to the Ethernet transmission medium for those traffic classes that have stringent real-time constraints (such as RTOS tasks). This exclusive access eliminates buffering effects in the Ethernet switch transmission buffers and time-critical traffic (such as related to RTOS tasks) may be transmitted without non-deterministic interruptions. Time slices may be considered as virtual communication channels, and may enable the separation of time-critical communication (related to RTOS tasks) from non-critical background traffic (related to non RTOS tasks).
[0070] The MAC and NIC are implemented on the SOC according to this disclosure. The MAC and NIC are processing input frames which comprise digital data to be processed, the input frame being input from a component external to the SOC. As hereby described, the routing at the SOC of the input frames goes from the MAC of the SOC to the NIC of the SOC. In some examples, the input frames are input from a component external to the SOC directly to the MAC of the SOC. The component external to the SOC may be a bus. In some examples, the input frame is directly routed from the MAC to the NIC.
[0071] According to this disclosure as represented for example on
[0072] According to this disclosure as represented for example on
[0073] According to this disclosure as represented for example on
[0074] According to this disclosure as represented for example on
[0075] According to this disclosure as represented for example on
[0076] According to this disclosure as represented for example on
[0077] According to this disclosure as represented for example on
[0078] According to this disclosure as represented for example on
[0079] According to this disclosure as represented for example on
[0080] In some cases, the RTOS is implemented on additional first cores of the SOC. This may for example permit accelerating the processing block 106. In some examples, the frame processor of the RTOS is controlled by a single one of the first cores on which the RTOS is implemented. The second OS may not be implemented on first cores on which the RTOS is implemented. Any additional first core may be the same as the first core or differ from the first core or from other additional first cores.
[0081] In some cases, such as represented for example on
[0082] In some examples, the second OS is implemented on additional second cores of the SOC. This permits benefiting from additional processing power for the second OS. This implementation of the second OS has however no direct impact on the centralized handling of frames by the frame processor of the RTOS. In other words, tasks handled for the second OS on different second cores are related to input frames originating from the same frame processor, and are related to output frames transmitted to the same frame processor. In this example, the second cores on which the second OS is implemented are not used for implementing an RTOS. In other words, no core present on the SOC may implement both an RTOS and a second OS.
[0083] In some cases, such as represented for example on
[0084] While not illustrated, examples combining the structures illustrated by
[0085] In some examples, the method according to this disclosure further comprises receiving, at the network device driver of the second OS, input frames exclusively transmitted from the frame processor of the RTOS. This may for example apply to anyone of the methods 100, 200, 300 hereby described, as well as methods combining features hereby described. Such a constraint on the routing of input frames ensures that such routing remains under control of the frame processor of the RTOS, thereby helping ensuring that time sensitive tasks may be treated appropriately and timely transmitted for processing by an RTOS of the SOC.
[0086] In some examples, the method according to this disclosure further comprises transmitting, by the network device driver of the second OS, output frames exclusively to the frame processor of the RTOS. This may for example apply to anyone of the methods 100, 200, 300 hereby described, as well as methods combining features hereby described. Such a constraint on the routing of output frames ensures that such routing remains under control of the frame processor of the RTOS, thereby helping ensuring that time sensitive tasks may be treated appropriately and timely transmitted to a component external to the SOC after processing by an RTOS of the SOC according to this disclosure.
[0087] In some examples, the method according to this disclosure further comprises sharing, by the RTOS and by the kernel of the second OS, a buffer storing frame data. This may for example apply to anyone of the methods 100, 200, 300 hereby described, as well as methods combining features hereby described. Such a sharing of a buffer storing frame data may result particularly efficient considering that the second OS and the RTOS are comprised on a same SOC. Such buffer storing frame data may indeed also be comprised on the same SOC. Such sharing may apply also to one or more further OS and/or one or more further RTOS comprised on the SOC as per this disclosure.
[0088] In some examples, the method according to this disclosure further comprises preventing access to an RTOS buffer storing frame data from the second OS. This may for example apply to anyone of the methods 100, 200, 300 hereby described, as well as methods combining features hereby described. Preventing access to an RTOS buffer from the second OS may for example contribute to ensuring a desired level of security for RTOS tasks. Such selective access control may apply also to one or more further OS and/or one or more further RTOS comprised on the SOC as per this disclosure, whereby each OS, or each RTOS, or groups of OS or groups of RTOS may have exclusive access to a specific buffer.
[0089] In some examples, the method according to this disclosure further comprises attaching, by the frame processor, a stream class identifier to the input frames according to classification rules; and passing the input frame and attached stream class identifier to a queue identification module of the frame processor. This may for example permit organizing the forming of queues prior to the processing by the different cores of the OS corresponding to the RTOS, second OS or further RTOS or OS. Such attaching and passing may for example be comprised in blocks 103, 203 or 303 of illustrated methods 100, 200 and 300.
[0090] In some examples of methods according to this disclosure, the frame processor is applying dynamically defined classification rules. Such dynamic definition of such rules may for example take place using one or more of a feedback mechanism from the RTOS, a feedback mechanism from the second OS, a feedback mechanism from a component of the SOC, or a feedback mechanism from a component external to the SOC. Such dynamically defined classification rules may for example adjust priorities in order to gain overall flexibility. In some examples, dynamically defining classification rules will comprise changing a number of classes. In some examples, dynamically defining classification rules will comprise reducing a number of classes. In some examples, dynamically defining classification rules will comprise increasing a number of classes. In some examples, either one or both of the kernel of the second OS and applications of the RTOS are contributing to dynamically defining the classification rules. For examples, if an application running over the second OS needs to receive and transmit data with a specific transport protocol and some Quality of Service (QoS) requirement, a new class may be assigned to this transport protocol with a priority that ensures a sufficient QoS. Such dynamically defined classification rules may be applied to any of the methods hereby describes, including methods 100, 200 and 300 for example.
[0091] In some examples of methods according to this disclosure, the classifying and scheduling the output frames at the frame processor comprises attaching, by the frame processor, a stream class identifier to the output frames according to classification rules; and applying scheduling rules to the output frames depending on both time and priority of the attached stream class of the output frames for frame transmission of the scheduled output frames. This may for example permit organizing the forming of queues following the processing by the different cores of the OS corresponding to the RTOS, second OS or further RTOS or OS. Such attaching and applying may for example be comprised in block 109 of illustrated methods 100, 200 and 300.
[0092]
[0093]
[0094] A computer readable storage according to this disclosure may be any electronic, magnetic, optical or other physical storage device that stores executable instructions. The computer readable storage may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read Only Memory (EEPROM), a storage drive, and optical disk, and the like. As described hereby, the computer readable storage may be encoded with executable instructions according to the methods hereby described.
[0095] Storage or memory may include any electronic, magnetic, optical or other physical storage device that stores executable instructions as described hereby.
[0096] In some examples according to this disclosure, the cohabitation on a single SOC of services and applications with heterogeneous network QoS (quality of Service) requirements, security constraints and implementation complexity is addressed. In some cases, in a single SOC, some applications may have strong real-time constraints, meaning for example that they cannot support a latency greater than several μs when they a network event occurs (e.g. reception of a message). This kind of application is in this case implemented over a RTOS to obtain a very low latency. The SOC may also support other applications which do not have real-time requirement, or have soft real-time requirements. Those other non RTOS applications may involve frequent update, may be extended by software plug-ins and includes a number of user functions. Such application may be implemented on a so called generic OS, generic in that it is not an RTOS, but has a kernel space and a user space. Such a generic OS is an example of second OS according to this disclosure.
[0097] Some application requirements may not be satisfied by the exclusive use of either a generic OS (such as Linux or VxWorks) or an RTOS. Such applications would indeed comprise both time sensitive aspects for handling by an RTOS, and complex less time sensitive aspects (for example requiring a user space) not suitable for handling by an RTOS alone. Examples comprise control network latency applications, security applications, multiple protocols stack applications, or integration/abstraction of HW Ethernet interface with heterogeneous capabilities (for example comprising TSN functions).
[0098] An example of environment in which the method of this disclosures may be used is an industrial communication device acting as a slave receiving commands from a Programmable Logic Controller. Such a device may be connected to the PLC through an Ethernet communication network in a daisy-chain topology. Such a device may integrate the following services and applications with RT (real time) requirements indicated in brackets: [0099] Industrial network protocol communication stack with periodic communication and strong QoS constraints (latency, jitter) (e.g. PubSub TSN) [hard RT]; [0100] Industrial processing control [hard RT]; [0101] L2 Ethernet switching [hard RT]; [0102] Network management protocols (e.g. TSN management) and applications (e.g. web server for configuration/management) [non RT]; [0103] Industrial Network management protocols (e.g. OPC-UA client/server, OPC-UA meaning Open Platform Communications Unified Architecture) [non RT]; and [0104] Third party edge computing processes [soft RT, non RT].
[0105] In some cases, the methods according to this disclosure permit implementing critical applications having heterogeneous network QoS and security requirements over a generic hardware platform with a single multicore processing unit. In some cases, the method relies on the simultaneous usage of a generic Operating System (such as Linux or VxWorks) as second OS and a RTOS, by combining the advantage of each execution environment for applications. Each of the second OS and the RTOS runs over a predetermined set of cores. In some cases, the second OS and the RTOS share the same memory space. In some cases, the second OS and the RTOS share the same network interfaces such as the MAC of the SOC and the NIC of the RTOS. Such sharing of integrated network peripheral devices may provide faster performance and/or increased security. The RTOS implements in some cases the SW (software) block (Network Interface Controller) related to the management of the HW network interfaces, which is for example done in a generic OS Network Driver.
[0106] In some cases, in receiving input frames, frame parsing and classification is implemented for HW network interfaces which would otherwise not support such a feature (Rx-Proc sub-block for example). Priority for Ethernet frame processing required to support network applications with different real-time constraints may be introduced.
[0107] When transmitting output frames, in some cases, a frame classifier supporting multiple emission queues is provided. The frame classifier may be coupled with a frame emission scheduler which may allow SW implementation of priority or time-aware schedulers such as those defined in IEEE 802.1Qbv, for example with standard HW network interfaces. Such frame classifier and scheduler may be included in a Tx-Proc sub-block.
[0108] In some cases, a generic OS network driver is provided which may allow a second OS application to use the network interfaces managed by the RTOS. This driver may be able to receive some Ethernet frame from a RTOS Rx-Proc sub-block, and to transmit Ethernet frame to a Tx-Proc. Both following example schemes may address the RTOS and generic OS network interface sharing: [0109] one scheme allowing direct accesses to a RTOS managed-memory allowing fast transfer for generic OS (or second OS) services and applications; and [0110] one scheme applying data copy and restriction to RTOS memory access by the generic OS (or second OS), enforcing security for critical network tasks running over the RTOS.
[0111] An example of a multicore SOC device according to this invention is represented on
[0112] In a first case, some memory areas may be shared between the generic OS and the RTOS so that content of the frame data buffer manipulated by the NIC in the RTOS may be accessed by the OS network device driver. In such a case, no data copy is required which provides better performance for applications running in the generic OS. In a second case, frame data buffer may be stored in a private memory area to re-enforce security, in particular for non-encrypted protocol managed by the RTOS that may carry sensitive information. In that case, an additional copy step may be required when receiving data frame (input frame) intended for the generic OS and classified accordingly at the frame processor.
[0113] In the example illustrated in
[0114] In the example illustrated in
[0115] In the example illustrated in
[0116] In the example illustrated in
[0117] In the example illustrated in
[0118] In the example illustrated in
[0119] Block. It may also send a data frame or output frame by sending them to the RTOS-Tx block. Task processing may be triggered by the reception of a data frame (input frame) or by an internal timer.
[0120] In the example illustrated in
[0121]
[0122] The NIC in
[0123] The input frame is in
[0124]
[0125] In
[0126] In
[0127] In
[0128] In some cases, security may be handled by appropriate memory management for the multicore SOC. In some cases, the generic or second OS may manipulate some buffer descriptors named SKB to store data frame and some related metadata (packet length). SKB may be allocated/released by the generic or second OS kernel via a module named “network memory manager”. Example methods according to this disclosure may support direct frame buffer access from the generic or second OS network device driver, or indirect frame buffer access.
[0129] An example of direct buffer access which may be supported by example methods according to this disclosure is illustrated in
[0130] In
[0131] An example of indirect buffer access which may be supported by example methods according to this disclosure is illustrated in
[0132] In the example illustrated in
[0133] Processing of input frames in the example of
[0134] An advantage of a scheme as illustrated in