An Introduction To Asymmetric Multiprocessing: When This .

1y ago
21 Views
2 Downloads
1.60 MB
27 Pages
Last View : 19d ago
Last Download : 3m ago
Upload by : Maxton Kershaw
Transcription

An Introduction to Asymmetric Multiprocessing:when this architecture can be a game changerand how to survive it.Nicola La Gloria, Laura NaoKynetics LLCSanta Clara, California

Hybrid Architecture: warpx.ioThe Hybrid Design Architecture (HDA)combines the power of an applicationprocessor with the ease-of-use ofmicro-controllers.

Software on warpx HDA

SMP vs AMPSMP on homogeneous architectures: AppOSKernel SMP.Core NCore 1Single OS controlling two or moreidentical cores sharing systemresourcesDynamic scheduling and loadbalancingApp

SMP vs AMPAMP on heterogeneous architectures: AppTaskOSTaskOS/RTOSMCAPI.Core NCore 1 Different OS on each core -- full-featured OS alongside areal-time kernelInter processor communicationprotocolEfficient when the application canbe statically partitioned acrosscores - high performance isachieved locallyApp

Supervised vs Not Supervised Strong isolationHides non-trivial AMP details (e.g. resourceassignment, inter-core communication)Security and robustnessOverhead of a software layer Achieve best performances by runningnativelyBoot sequence complexityHarder to debug

Interprocessor Communication

NXP i.MX7 overview Cortex-A7 core Cortex-M4 coreMaster - Slave architecture A7 is the master M4 is the slaveInter processor communication MU - Messaging Unit RPMsg component (OpenAMP framework)Safe sharing of resources RDC - Resource Domain Controller

NXP i.MX7 - RDC

NXP i.MX7 IPC - MU

MAC (VirtIO)

The OpenAMP framework - RPMsg

RPMsg on Linux

Hybrid Linux/FreeRTOS DemoDemo Goal: IMU sensor (I2C) read by MCU taskCalculate objective function (module of acc, mag, gyro vectors)Log/plot sensor samples on MPUSafely recover from a kernel panicHardware Setup Boundary Devices Nitrogen 7, Toradex Colibri i.MX7 SOM NXP i.MX7D processor - ARM dual Cortex-A7 ARM Cortex-M4Segger J-Link Probe

Cortex M4 Bring Up (1)Environment setup: Download FreeRTOS -boundary.gitDownload GNU ARM Embedded -toolchain/gnu-rm/downloadExample applications for Cortex-M4 are located in theexamples/imx7d nitrogen7 m4/ folderScripts for building both debug and release binaries are available in thearmgcc subfolder

Cortex M4 Bring Up (2)M4 Binary application can be loaded on the Cortex-M4 in different ways: U-Boot - ums gadget m4updateusing remoteproc framework (linux userspace)using imx-m4fwloader from NXP (linux m4fwloaderM4 code can be linked and loaded to one of the following: TCM - 32KB (preferred)OCRAM - 32KBDDR - up to 1MB QSPI Flash - 128KB

IDE Setup Eclipse for C/C GNU MCU Eclipse : plugins and tools for embedded ARM development lipseGDBJ-Link scripts for iMX7D for debugging both Cortex-A7 cores and Cortex-M4 https://wiki.segger.com/IMX7DFreeRTOS Kernel Awareness plugin from SARM DS-5 (not free)Sourcery Codebench (not free)

nelawarenessMCUconsole

Demo ParametersRemote core: Sample IMUs every 10msCalculate the objective function on MCU (module of vectors)Buffer of 300 elements 3Kb (stored TCM Memory only 32 Kb)Items (12 byte each) are dequeued and sent to master 10 at a time every 100msMaster core: Master reads incoming samples by polling the character device

Architecture OverviewLinux 4.9start cmd, stop cmd, heartbeatFreeRTOS 1.0.1

The OpenAMP framework - RPMsg

Control Flow (2 cores)rpmsg char clientData sender taskRegister rpmsg char driver probeChannel createdMaster is deadopen /dev/rpmsg0close /dev/rpmsg0start cmdMasterheartbeatread /dev/rpmsg0 S0 RPMsg channel is downS1 RPMsg channel is up, /dev/rpmsg0 is createdS2 RPMsg channel is up, endpoint created, data isdumped into a log filestop cmd S0 RPMsg channel is downS1 RPMsg channel is up (sampling IMU sensor,buffering data)S2 RPMsg channel is up, sending data to mastercore, (sampling IMU sensor, buffering data),

What if Linux Kernel Panics Kexec: system call to load and boot into another kernel from the currentlyrunning kernel (4.9.74). crashkernel 128M [normal kernel cmdline] irqpoll, nosmp, reset devices [crash kernelcmdline] --load-panic option Kdump: Linux mechanism to dump machine memory content on kernelpanic. Kexec/Kdump support on ARM platforms is still experimental

Video of the DemoVIDEO

Pitfalls Before announcing the remote service, MCU checks whether master isup. If notification arrives too early (virtqueue kick function call) whenbooting crash kernel the system might hang Sometimes kexec still hangs and fails to soft-reboot - more frequent whenstreaming continuously instead of sending data bursts (but we don’t knowwhy)

References OpenAMP project page: https://github.com/OpenAMP/Asymmetric multiprocessing and embedded linux (ELC 2017):https://elinux.org/images/3/3b/NOVAK CERVENKA.pdfMantainers: Open-amp: Wendy LiangRPMsg (Linux) Ohad Ben-Cohen Bjorn AnderssonKexec (Linux) Eric BiedermanKdump (Linux) Dave Young Baoquan He

Q/A

What if Linux Kernel Panics Kexec: system call to load and boot into another kernel from the currently running kernel (4.9.74). crashkernel 128M [normal kernel cmdline] irqpoll, nosmp, reset_devices [crash kernel cmdline] --load-panic option Kdump: Linux mechanism to dump machine memory content on kernel panic.

Related Documents:

1.4.3 Enantiopure p-aminoalcohols in the asymmetric Michael 27 addition. 1.4.4 Cz-symmetric ligands in the catalytic enantioselective 32 Michael addition. 1.5 Asymmetric epoxidations 35 1.5.1 The Katsuki-Sharpless asymmetric epoxidation 35 1.5.2 The Oxone asymmetric epoxidation 38 1.5.3 The Julia-Colonna asymmetric epoxidation 41

2.6 Chiral Catalyst-Induced Aldehyde Alkylation: Asymmetric Nucleophilic Addition 107 2.7 Catalytic Asymmetric Additions of Dialkylzinc to Ketones: Enantioselective Formation of Tertiary Alcohols 118 2.8 Asymmetric Cyanohydrination 118 2.9 Asymmetric a-Hydroxyphosphonylation 124 2.10 Summary 127 2.11 References 127 3 Aldol and Related Reactions 135

Keywords: Asymmetric epoxidation, Chalcone, Quaternary sugar salts, Nonionic surfactants Introduction Although, sharpless paved the way for much of today's catalytic asymmetric syntheses1, the use of phase-transfer catalysts in asymmetric synthesis was described 2-6 in the mid-1970s.

chiral cation Q of a PTC and an enolate and subsequent asymmetric α-functionalization with an electrophile (E). A lot of different examples for such asymmetric α-functionali-zation reactions of prochiral nucleophiles under asymmetric chiral cation-based phase-transfer catalysis have been reported so far [9-22].

Sharpless Asymmetric Epoxidation (SAE) Sharpless asymmetric epoxidation was the first general asymmetric catalyst There are a large number of practical considerations that we will not discuss Suffice to say it works for a wide range of compounds in a very predictable manner 14 EtO2C CO2Et OH OH (-)-DET

Sharpless Asymmetric Epoxidation i. Mechanism ii. Scope Sharpless Asymmetric Dihydroxylation i. Catalytic Cycle ii. Mechanism iii. Scope Sharpless Asymmetric Aminohydroxylation . Asymmetric Epoxidation - Substrate Sco pe Mneumonic for Predicting Enantiofacial Selectivity! Ti-catalyzed AE is compatible with a majority of functional groups

Example of enantioselective synthesis using asymmetric induction is the Sharpless dihydroxylation reaction where the chirality of the product can be controlled by the "AD-mix". 21. . Sharpless Asymmetric Epoxidation 27. Generally, Sharpless asymmetric dihydroxylation favors oxidation of the more electron-rich alkene.

1 Multiprocessing in Python scripting in computational science the multiprocessing module numerical integration with multiple processes 2 Multithreading with Julia about Julia using Base.Threads Introduction to Supercomputing (M