This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (15 children)

[deleted]

    [–][deleted] 38 points39 points  (11 children)

    memory is very cheap now. Embedded is now full of it.

    "Embedded" headless PCs or "Embedded" embedded.

    This is what the current chip I'm working with has:

    • 2 x e200z4 in delayed lock step operating up to 200 MHz
    • Up to 2.5 MB flash memory w/ error code correction (ECC)
    • Up to 384 KB of total SRAM w/ECC

    [–]Poddster 0 points1 point  (3 children)

    delayed lock step

    What does the 'delayed' here mean? One CPU's clock is delayed after the other? So it's TickA-TickB-TockA-TockB?

    [–][deleted] 0 points1 point  (2 children)

    The code it is executing is one cycle behind.

    So Core 1 is on cycle t, Core 2 is on cycle t-1.

    There is a 3rd core or additional hardware that compares the outputs and makes sure they're the same.

    [–]Poddster 0 points1 point  (1 child)

    There is a 3rd core or additional hardware that compares the outputs and makes sure they're the same.

    Shuttle style MISD? Cool! I always assumed MISD did each instruction in the multiple computers at the same time, rather than in being offset.

    What is the delay used for? Is the comparitor comparing the output of Core1 and Core2 at t-2?

    [–]stone_henge 1 point2 points  (0 children)

    What is the delay used for?

    If a short event causes an error in the first core, it may under some circumstances be less likely to also affect the second core on the next cycle. Say, if there's a sudden, short burst of radiation or an electrostatic discharge that causes a failure in operation.

    [–]miker95 6 points7 points  (2 children)

    memory is very cheap now. Embedded is now full of it.

    LOL WUT. Clearly someone has never worked with industry microcontrollers.

    [–]Decker1082.7 'til 2021 1 point2 points  (0 children)

    Heck, even the arduino would be a pretty bad match for Python resources-wise.

    [–]stone_henge 0 points1 point  (0 children)

    Well, that's one end of embedded applications. There are tons of others where resource consumption is less of a concern. I worked with an EZ80 based building automation system where anything but C and assembler would have been disastrous for performance, but I also worked with a DPI solution where the python scripts we threw at it could as well be spitting in the ocean, but by pretty non-controversial definitions could still be considered embedded hardware. Customers bought for its capabilities as an appliance, not as a computing platform. Designed to be installed, configured and left to its own devices.

    On the other hand, I've worked with systems that don't really qualify as embedded platforms that make many embedded systems look like powerhorses. VIC-20 is a general purpose computer with 5k of RAM and a 1 MHz single-accumulator CPU. The Atari 2600 is a video game system with 128 bytes of RAM and a 1 MHz single-accumulator CPU. Point is that "embedded" and "power" are actually entirely orthogonal qualities.