Analog.com Analog Dialogue Wiki English 简体中文
EngineerZone
EngineerZone
  • Log In
  • Site
  • Search
  • User
  • Support

    Popular Forums

    • RF and Microwave
    • Power Management
    • Video
    • FPGA Reference Designs
    • Precision ADCs
    • Linux Software Drivers
    • SigmaDSP Processors & SigmaStudio Dev. Tool

    Product Forums

    • A2B
    • Amplifiers
    • Analog Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Optical Sensing
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Reference Designs
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    How ADI is keeping up with security threats in retail, logistics and banking point of sale (POS) systems

    Recent Discussions

    • Csharp bindings for libm2k and calibrateFromContext function
    • ADALM-PLUTO maximum frequency
    • Issue running built programs on Pluto
    • Activity: Simple Op Amps, For ADALM1000 Fig. 1.3 Buffering example
    • ADALM-PLUTO [NETWORK] vs [USB_ETHERNET]

    Places

    • ADI Education Home
    • ADI Education China
    • ADI Education India
    • ADI Education Philippines
    • StudentZone (Analog Dialogue)
    • Virtual Classroom

    Latest Webinars

    • How ADI is keeping up with security threats in retail, logistics and banking point of sale (POS) systems
    • Multidimensional Simulations of Beamformers and other RF Integrated Circuits in Keysight SystemVue
    • Improve Smart Building Energy Efficiency with Industrial Ethernet Controlled Air Conditioning (HVAC) Systems
    • Sustainable Motion Control Solutions for High Performance Servo Drives
    • Audio Design Solutions for Augmented and Virtual Reality (AR/VR) Glasses
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes: AQQ 236 about strange marking on airplane engines
    View All

    Places

    • Community Help
    • Logic Lounge

    Resources

    • EZ Code of Conduct
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    Why You Want to Authenticate Everything

     

    Can LTspice Break Physics?

    Latest Blogs

    • Crawl, Walk, And Run - The Journey To Create The Phaser
    • Hardware Holds The Key To Making Industrial Systems IEC 62443 Compliant
    • Behind the Scenes of DIYRadio Blogs: An Introduction
    • Empowering Surveillance Cameras To Capture A Scene Without Being Heard
    • Mastering The Metrics Makes Specifying Encoders Simpler
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • Partners

    Electronic Design Services - PartnerZone

    • Boston Engineering
    • Calian, Advanced Technologies
    • Colorado Engineering Inc. (DBA CAES AT&E)
    • Clockworks Signal Processing
    • Epiq Solutions
    • Fidus
    • PalmSens
    • Richardson RFPD
    • Tri-Star Design, Inc.
    • VadaTech
    • Vanteon
    • X-Microwave
    View All
ADSP-SC5xx/ADSP-215xx
  • Processors and DSP
  • SHARC Processors
  • ADSP-SC5xx/ADSP-215xx
  • Cancel
ADSP-SC5xx/ADSP-215xx
Documents FAQ: What is Multiprocessor Offset in ADSPSC58x/ADSP-215xx processors??
  • Blogs
  • Q&A
  • Files
  • Documents
  • Members
  • Tags
  • More
  • Cancel
  • +ADSP-SC57x/2157x: FAQ
  • -ADSP-SC58x: FAQ
    • ADSP-SC58x FMU(Fault Management Unit) Example Code.
    • ADSP-SC58x SPI Quad example code
    • ADSP-SC58X How to configure EMDMA Gather mode
    • ADSP-SC58x/2158x ACM- Example code
    • How to configure GIC of edge triggered interrupt sources?
    • ADSP-SC58x/2158x ASRC:Example codes
    • ADSP-SC58x/2158x Cortex A5 Software Interrupt- Example code
    • How to enable only L1 cache and not L2 cache OR vice-versa?
    • ADSP-SC58x/2158x Counter: Example code
    • How to extend number of channels in HADC
    • ADSP-SC58x/2158x DAI : What's new?
    • ADSP-SC58x/2158x interrupt SHARC core from ARM:Example code
    • How to select PSIZE and MSIZE fields of the MDMA configuration register on ADSP-SC58x/ADSP-2158x ?
    • ADSP-SC58x/2158x L2 access restriction from MDMA using SMPU - Example code
    • ADSP-SC58x/2158x Multicore: Example Code
    • ADSP-SC58x/2158x OTP General Purpose space programming- Example code
    • ADSP-SC58x/2158x PCG : Example codes
    • ADSP-SC58x/2158x PKA ECC multiplication  - Example code
    • Is it possible to change the default boot mode peripheral instances?
    • ADSP-SC58x/2158x PKTE Encryption - Example code
    • Is it possible to run a DDR2 device at DCLK=400 MHz, CCLK=450 MHz, SYSCLK=225Mz on ADSP-SC58x/ADSP-2158x processors?
    • ADSP-SC58x/2158x PKTE Encryption-Hashing  - Example code
    • Is it possible to run all the accelerators FIR/IIR/FFT in ADSP-SC58x/ADSP-2158x simultaneously?
    • ADSP-SC58x/2158x PKTE Hashing-Decryption  - Example code
    • Is Secure booting supported in Open part in ADSP-SC58x?
    • ADSP-SC58x/2158x PWM: What's new?
    • ADSP-SC58x/2158x SPDIF-RX feature list: What's new?
    • ADSP-SC58x/2158x SPDIF: Example code
    • ADSP-SC58x/2158x SPI - Example Code
    • +ADSP-SC58x/2158x SPI XIP - Example code
    • ADSP-SC58x/2158x TRNG - Example code
    • ADSP-SC58x/2158x UART autobaud - Code Example
    • ADSP-SC58x/2158x Watchdog Timer:Example code
    • Is there a way to slow down the compute engine of the FFTA on ADSP-SC58x/ADSP-2158x processor?
    • ADSP-SC58x/ADSP-215xx SHARC+ Core Timer with Interrupt Example Code
    • Is there any L2 cache in ADSP-SC58x?
    • How can I validate the DDR interface on my newely designed board based on ADSP-SC58x/ADSP-2158x processors?
    • ADSP-SC5xx/ADSP-215xx - DDR memory Test
    • Is there any restriction on the types of memories supported by MDMA on ADSP-SC58x/ADSP-2158x?
    • How can the high speed FFTA DMA engine on ADSP-SC58x/ADSP-2158x be used in MDMA mode?
    • Highlights of MSI on ADSP-SC58x
    • Is there anything equivalent to External Port DMA (EPDMA) on ADSP-214xx processors available on ADSP-SC58x/ADSP-2158x processors?
    • How FIR accelerator on ADSP-SC58x/ADSP-2158x is different than the FIR accelerator on ADSP-214xx?
    • Is VFP and Neon available in ADSP-SC58x?
    • How FFT accelertor on ADSP-SC58x/ADSP-2158x can be programmed?
    • How many CRC blocks available on ADSP-SC58x/ADSP-2158x processor ?
    • How is SWU on SC58x different from that on BF60x processor?
    • How is the ACM on SC58x different from that on BF60x processor?
    • What should I do to SYS_CLKIN1 on SC58x, if I need only one CLKIN in my system
    • Can ARM Cortex A5 access SHARC core internal memory space in ADSP-SC58x?
    • Can FIR accelerator access both on chip and off chip memories on ADSP-SC58x/ADSP-2158x processor?
    • Secure Slave boot modes fails to boot even after programming the correct Public and Private key in the OTP space in ADSP-SC58x. What else is missing?
    • What are the major changes in the programming model of the IIR accelerator on ADSP-SC58x/ADSP-2158x as compared to ADSP-214xx processors?
    • What all Boot modes are supported in ADSP-SC58x?
    • What are the major differences in between the programming model of DDR3, DDR2, and LPDDR modes in the DMC controller of ADSP-SC58x/ADSP-2158x?
    • What are the major features of the CRC engine on ADSP-SC58x/ADSP-2158x processors?
    • what's new in the SPI peripheral of SC58x processor?
    • Can I connect DDR3 memory device on one DMC and DDR2 memory device on another DMC on ADSP-SC58x/ADSP-2158x?
    • Can I use the MLB Clock on SC58x to clock an external system?
    • What DDR3/DDR2/LPDDR device sizes are supported by the DMC controller on ADSP-SC58x/ADSP-2158x?
    • Can IIR accelerator access both on chip and off chip memories on ADSP-SC58x/ADSP-2158x?
    • Can Performance Monitor Unit be used to calculate cycle counts for SHARC core?
    • What is maximum speed of operation supported by Link Port in ADSP-SC58x?
    • Can the CRC engine on ADSP-SC58x/ADSP-2158x be used to calculate 16 bit CRC ?
    • What is Oscillator Watchdog?
    • Can the existing SHARC assembly codes be re-used as it is with SHARC+ Core?
    • Can we single-step over the IDLE instruction?
    • What is the maximum DMA throughput supported by L2CTL memory system on ADSP-SC58x/ADSP-2158x processors?
    • Do both the SHARC+ Cores in ADSP-SC58x/ADSP-215xx share the same L1 Memory?
    • What is the maximum processing speed supported by Cortex-A5 in ADSP-SC58x?
    • Does MDMA support descriptor based DMAs on ADSP-SC58x/ADSP-2158x?
    • What is the maximum speed supported by the MLB interface on SC58x?
    • FAQ: What is Multiprocessor Offset in ADSPSC58x/ADSP-215xx processors??
    • What is the minimum DCLK frequency supported for various DDR modes on ADSP-SC58x/ADSP-2158x?
    • I have configured my MDMA on ADSP-SC58x correctly, but still the MDMA transfer doesn't work as expected. Am I missing something?
    • How many MDMA streams are supported by ADSP-SC58x/ADSP-2158x processors and how much bandwidth they support?
    • What is the size if L1 cache supported by Cortex A5 in ADSP-SC58x?
    • FIRA/IIRA Performance on ADSP-SC58x/2158x and ADSP-SC57x/2157x Processors
    • How DMC/DDR controller in ADSP-SC58x/ADSP-2158x different than DDR2 controller on ADSP-2146x ?
    • I installed the IIR DMA interrupt handler on ADSP-SC58x, but still the interrupt doesn't occur, what I may be missing?
    • In ADSP-SC58x, can the ARM core access the SHARC+ Core's L1 Memory?
    • What are the important features of the L2 memory system on ADSP-SC58x/ADSP-2158x processors?
    • What are the major changes in the programming model of the FIR accelerator on ADSP-SC58x/ADSP-2158x as compared to ADSP-214xx processors?
    • How does the ECC error protection on L2 memory system works on ADSP-SC58x/ADSP-2158x processors?
    • How can I run the core clock at maximum of 450MHz and also source a 125MHz at the CLK07 for the EMAC TXCLK?
    • How does the memory refresh operation in L2CTL memory system works on ADSP-SC58x/ADSP-2158x processors?
    • How FFT accelerator (FFTA) on ADSP-SC58x/ADSP-2158x is different as compared to ADSP-214xx processors / What are the major features of FFTA on ADSP-SC58x/ADSP-2158x ?
    • How IIR accelerator on ADSP-SC58x/ADSP-2158x is different than the FIR accelerator on ADSP-214xx?
    • How is GP Timer in SC57x/2157x different from that of SC58x?
    • How is the MLB interface on SC58x different from previous SHARC processors?
    • How is the SPI peripheral different from the older SHARC processors?
    • How many DMC controllers are present in ADSP-SC58x/ADSP-2158x processors?
    • How many instances of EMAC are present in SC58x? How are they different?
    • How the FIR and IIR accelerators in ADSP-SC57x/2157x processors are different than in ADSP-SC58x/2158x processors
  • +PMU registers: FAQ
  • +SC58x: FAQ
  • +SHARC+: FAQ
  • +TMU: FAQ
  • +215XX: FAQ
  • +ADC Control Module: FAQ
  • +ADSP-21584: FAQ
  • +ADSP-215xxl: FAQ
  • +ADSP-SC573: FAQ
  • +ADSP-SC5xx/215xx: FAQ
  • +ADSP-SC5xx: FAQ
  • +CCES default startup routine: FAQ
  • +EMAC: FAQ
  • +HADC: FAQ
  • +Hardware Counter based Loops: FAQ
  • +L1 block: FAQ
  • +Preload code customization: FAQ
  • +RDEN bit: FAQ
  • +RGMII/RMII: FAQ
  • +SHARC EE-377: FAQ
  • +Sharc SC584: FAQ
  • +SMMR using MDMA2: FAQ
  • +UCOS: FAQ
  • +USBCLKSEL in CGU_CLKOUT: FAQ
  • +adsp-sc584: FAQ
  • +CDU: FAQ
  • Custom Error Handler in Booting for SC594
  • FAQ: ADSP-SC584 SSL Booting via ROM API from the ARM Cortex A5 (core0), SHARC0 and SHARC1
  • +IDLE: FAQ
  • Is it possible to configure the DSP as Master and Host as Slave once SPI slave booting done?
  • Is the SPIx_RDY signal necessary for SPI slave boot?
  • +Local Oscillator: FAQ
  • +MLB channels: FAQ
  • +MSI IDMAC: FAQ
  • +Program the CBS parameters: FAQ
  • +SC57x: FAQ
  • +Sign and encrypt a normal bootstream: FAQ
  • SPI example for ADSP-SC584
  • +SPORT with ACM: FAQ
  • +SWU: FAQ
  • Usage of flush_data_buffer api
  • What is the supported SLCK0 divisor value for ADSP-2156x

FAQ: What is Multiprocessor Offset in ADSPSC58x/ADSP-215xx processors??

In addition to traditionally supported long word, normal word, extended precision word and short word addressing aliases, the ADSPSC5xx/ADSP-215xx processors support byte addressing for the data and instruction accesses.

 

Any buffer/array defined in SHARC+ core will by default map to SHARC’s internal byte address space.

Below image shows the SHARC+ core’s private address space.

 

 

SHARC+ L1 memory can also be accessed by another SHARC core/ARM core or other peripheral DMA/Memory-to-memory DMA through multiprocessor byte address space. The table below shows SHARC+ L1 memory in multiprocessor space.

The L1 Private Memory space of SHARC+ can be accessed directly by itself without adding any offset. In order to access these internal memories from another SHARC core/ARM core or other peripheral DMA/Memory-to-memory DMA an offset (multiprocessor offset) is added which is shown below:

 

  • SHARC1 Slave Port1: 0x28000000 
  • SHARC1 Slave Port2: 0x28400000
  • SHARC2 Slave Port1: 0x28800000
  • SHARC2 Slave Port2: 0x28C00000

 

SHARC’s L1 memory can thus be accessed using different slave ports on adding the above offsets considering the system optimization technique appropriate for the application.

 

For example, to access address 0x240000 of SHARC1 using slave port 1through multiprocessor space, it can be accessed as  0x28240000 (->0x28000000 | 0x240000 = 0x28240000). Further , to access address 0x240000 of SHARC2 using slave port 1through multiprocessor space, it can be accessed as 0x28A40000 (-> 0x28800000 | 0x240000 = 0x28A40000).

 

Please find an example code (Multiprocessor_offset) attached for the reference. The details are given below for better understanding.

 

Multiprocessor_offset_Core0: The ARM core writes data to the L1 memory (block2) of SHARC1 in Multiprocessor space via Slave port1.  This data read by the ARM again and writes to the L1 memory (block2) of SHARC2 in Multiprocessor space via Slave Port1.

 

NOTE: The ARM MMU (Memory Management Unit) is configured to access the SHARC's L1 multiprocessor space as Read only. Please see the apt-sc589.c file which shows the memory attributes for all the memory sections. The file can be copied from below path:

 

...\Analog Devices\CrossCore Embedded Studio 2.3.0\ARM\arm-none-eabi\arm-none-eabi\lib\src\cortex-a5\crt\apt-sc589.c

 

For instance, the L1 memory of SHARC0 in MP space via Slave1 port is configured in apt-sc589.c as below.

 

/* L1 memory of SHARC0 in MP space via Slave1 port */
{ 0x28240000u, 0x2826FFFFu, ADI_MMU_
RO_UNCACHED }, /* 192KB SHARC0 L1B0 */

{ 0x282C0000u, 0x282EFFFFu, ADI_MMU_RO_UNCACHED }, /* 192KB SHARC0 L1B1 */

{ 0x28300000u, 0x2831FFFFu, ADI_MMU_RO_UNCACHED }, /* 128KB SHARC0 L1B2 */

{ 0x28380000u, 0x2839FFFFu, ADI_MMU_RO_UNCACHED }, /* 128KB SHARC0 L1B3 */ 

 

In case you want to write into the multiprocessor space from ARM core then the attributes can be changed by copying this file to your local project and the making the change as RW instead of RO as shown below:

 

/* L1 memory of SHARC0 in MP space via Slave1 port */
{ 0x28240000u, 0x2826FFFFu, ADI_MMU_
RW_UNCACHED }, /* 192KB SHARC0 L1B0 */

{ 0x282C0000u, 0x282EFFFFu, ADI_MMU_RW_UNCACHED }, /* 192KB SHARC0 L1B1 */

{ 0x28300000u, 0x2831FFFFu, ADI_MMU_RW_UNCACHED }, /* 128KB SHARC0 L1B2 */

{ 0x28380000u, 0x2839FFFFu, ADI_MMU_RW_UNCACHED }, /* 128KB SHARC0 L1B3 */

 

 Multiprocessor_offset_Core1: The SHARC1 core does MDMA from the source buffer declared in its L1 block 0 to destination buffer declared in the L3 (DDR memory). Since SHARC1 does DMA, its own memory should be accessed with corresponding multiprocessor memory offset. 

 

 Multiprocessor_offset_Core2: The SHARC2 core writes data to its L1 memory block1 and L1 memory block1 of SHARC2. See the comment embedded in the code for better understanding.

Attachments:
Multiprocessor_offset.zip
  • multiprocessor offset
  • adsp-sc589
  • Share
  • History
  • More
  • Cancel
Related
Recommended
Social
Quick Links
  • About ADI
  • ADI Signals+
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Incubators
Languages
  • English
  • 简体中文
  • 日本語
Newsletter

Interested in the latest news and articles about ADI products, design tools, training and events? Subscribe today!

Sign Up
Analog Logo
©1995 - 2023 Analog Devices, Inc. All Rights Reserved
沪ICP备09046653号-1
  • Sitemap
  • Legal
  • Privacy & Security
  • Privacy Settings
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.