Looking for ARM system with RTOS

Hmmm. I don't know that I'd call that a barrel shifter. I've always considered the old visual image of a circle with arrows from each position to all other positions. That implies that the output is exactly as many bits wide as the input.

What you're describing seems to be something else---with variable width inputs and outputs and some other combinatorial logic.

Does the CPU stack used registers and status in that single clock---or does it use some sort of register-map switch which would imply some limits on nesting?

Oops... found a partial answer in your reference:

"The ALU contains a duplicate bank of registers, shown in Figure 2.2 behind the primary registers. There are actually two sets of AR, AF, AX, and AY register files. Only one bank is accessible at a time. The additional bank of registers can be activated (such as during an interrupt service routine) for extremely fast context switching. A new task, like an interrupt service routine, can be executed without transferring current states to storage."

IOW, no nesting of interrupts for one-cycle response. I suppose you could get invariant timing on a Cortex interrupt if no nesting was allowed--but it would still take some cycles to stack registers.

Don't some of the PIC chips do register swaps at interrupts? I have vague memories (or perhaps shadowy nightmares) from a decade or so back when I worked with one of the PIC chips.

Mark Borgerson

Reply to
Mark Borgerson
Loading thread data ...

Interesting tidbit. Thanks, Mark.

Understood. It remains to be determined.

I have a REALLY FANCY board that does that from Energy Micro. Got a great price on it and was very much impressed with all it offered. Never used such a board before.

I use that all the time with the MSP430, of course. It's kind of standard practice there, I suppose. I do that with an O/S I wrote, but I've not had reason to port it on the MSP430 yet. One can just sit on a halt instruction, if that's available, too.

I used the idea a number of times for good benefit.

I used the Xilinx 4000 series, years ago. Wrote in VHDL (and also verilog) to design a CPU, for example, and test it out. I really enjoyed the experiences, a lot. But no, they are (or were at the time) expensive, big, power hungry, never exactly the right size, etc. It wouldn't have been competitive.

I enjoyed the learning curve, already. Probably the more difficult part for me, anyway, was the floorplanning part of it. Maybe some folks enjoy that a lot. The automatic floor planner was horrible at the time and even an idiot neophyte like me could do better, at the time anyway.

It's an informed assumption of mine, based upon some knowledge and experience here, that an ALU with the basic tool box for FP work.. but NOT the entire IEEE floating point support... will take up less die space with better yields and lower cost to the manufacturer and consume less power (given the same FAB and design rules) for a crafted application. Less is tied into the clock chain and, besides, I often do NOT want the IEEE FP, anyway.

IEEE FP sucks (power and money.) But it is great for people who have no clue and just want something they don't need to think much about.

Just give me the functional units and let me decide how to use them for the application.

Jon

Reply to
Jon Kirwan

The additional logic goes a LONG WAY.

Bingo!

In my application I didn't need nesting. It was carefully crafted to avoid it and it didn't impair the application in any way.

Well, even the 8051 does that. (Four sets, I think.) And that goes back a long ways. Good idea and simple. But I see this patent from Microchip in 2010:

formatting link

Jon

Reply to
Jon Kirwan

Or patent application, anyway. No prior art mentioned in it. I'm not savvy enough about patents to know if this was actually issued. Looks like an application to me, though.

Jon

Reply to
Jon Kirwan

It may be, provided you are able to avoid all pipeline stalls and pay careful attention to the system memory interface. Not all multicycle instruction are explicitly stated to be interruptible in the architecture documentation, and it is also not stated what happens in the presence of pipeline stalls. You'd have to verify that with the part manufacturer. There is an upper bound of 12 cycles (assuming no memory wait states), but that's not really helpful here.

-a

Reply to
Anders.Montonen

Thanks again, Anders. I appreciate the carefully crafted advice -- it is worth money.

Jon

Reply to
Jon Kirwan

Reading the application, they don't seem to be claiming a patent on the use of shadow registers, but on methods of assigning shadow registers to various interrupts.

Reply to
Richard Damon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.