DECT-NR+ Scheduling Latency issues

Hi

I am quite well familiar with DECT-NR+ and the Nordic Boards, as well as nrf91xx, we use a nrf9151.

Also some kind of involved at this opener initiative, but I cannot say here any more about this.

We using the latest (shared with us) mfw version at PHY and haveing our "own" MAC Implementation.

But my we going down to radio, so ignore the MAC.

My question is related according to TX - TX Latency, basically I have two different TX Operations and want them to schedule.

One Operation starts at Slot 16 and goes two Slots, so it ends at Slot 18.

2nd Operation starts at Slot 18 and my assumption was that when I schedule quite the same Operation and staying in the same mode (TX Operation, only)

than there is no delay in between.

But it looks lilke that at least the Latency for TX Transmission "idle_to_active" with 29030 ticks is needed to schedule another Operation within this time.

It feels odd and strange together, because why? is there any delay for TX - TX necessary? just for IPC communication and transfer data from nrf to Radio ? or?
And why is a whole slot needed ? the 29030 - 28800 = 230 which is a Slot plus 230 ticks. 

Is there a magic switch or function pointer I can use to have a schedule_tx_after_tx operation ? similiar question with schedule_rx_after_rx operation ? with delays

From AI answer: "If your two TX operations are logically one burst, consider whether they can be combined into a single longer TX operation rather than two separate scheduled ones."

good point, but the Receiver is different etc.

Kind regards

thanks

Parents Reply
  • Currently each modem command is atomic thus modem goes after the operation to “idle/stand-by” state and next operation needs to get back “up” from idle state to “active” state. Fast, back-to-back tx-tx, rx-rx, tx-rx or rx-tx operations require some work from our side and new FW release.

    The delays in state transitions is inherent to modem RF resources ramping down and ramping up for next transmission/reception. Currently the gap you have to have is approximately single slot. The exact value is reported in API. This value in microseconds you can convert to ticks by multiplying the duration with 69.12MHz clock.

    Please also see the FW / NCS compatibility matrix.

Children
  • Thanks a lot for the answer! :) 

    Most of this is we figured already out.
    The we rely currently on the "scheduled_operation_transition"

    Is this the correct delay to be used than or 
    idle_to_active + <operation_startup_time + duration> + active_to_idle ?
    It feels like that with low_latency mode we are already scheduling massive staying in ACTIVE  somekind of and only the <operation_startup_time + duration> + scheduled_operation_transition + <operation_time>  is necessary.

    Can you put some light into this darkness for me? 

    kind regards
    Christoph
  • This is explained in the documentation DECT NR+ physical layer — nrfxlib 3.3.1 documentation, I hope well enough.

    Thus, if you schedule operations the first operation you need to take the t_{standby_to_idle} and t_{idle_to_active} into account depending on radio mode. The second operation needs only t_{min_sched_opr_trans_dly} also noted as t_m in the figures.

    The modem packet scheduler handles automatically whether it has time to go to IDLE or STANDBY between consecutively scheduled operations. If you have scheduled multiple operations in advance.

    If it goes to IDLE or STANDBY then the next operation always pays the t_{standby_to_idle} and t_{idle_to_active} delays.

    So if the modem knows what is going to happen after current radio command it is executing the delay between radio operations is < 1 slot. But if it does not know, or the command comes too late, i.e. modem is already transitioning to IDLE or to STANDBY, then you pay additional latency.

  • Thanks!

    I was in the intern meeting about this topic. :) 

    Have a great day!

  • I'm the author and am suspicious of people who need to remain anonymous using copyright and licensed code.

  • Dont get me wrong @BiilyBobJoe or WilliamGFish, this Question has nothing todo with the github repo Opener Repo ... I used this as a reference here for compare in research topics.
    It is related to the Nordic Radio specially for DECT-2020, Nr+ on a 91xx SoC.

    There is also a opener initiative ongoing https://github.com/Opener-Initiative but this is open source initiave of many different stakeholders.

    The MAC stack I or we are wrote and using is completly different from your code, completly invisible from public and closed source only. That is why I cannot simply use a link to our code pieces, but to those which is public in github as a reference.
    Some parts are in discussion to open in public place, since we are on DECT-2020 NR+ Topic since the beginning, and we are in the meetings which are going on.

    If you still find something suspicious write me an E-Mail and we could create an appointment with a meeting, mr. BillyBobJoe or WilliamGFish

    kind regards.

Related