[HN Gopher] 10BASE-T using Raspberry Pi Pico with 2 GPIO pins
___________________________________________________________________
10BASE-T using Raspberry Pi Pico with 2 GPIO pins
Author : sleepy_keita
Score : 275 points
Date : 2022-08-22 08:47 UTC (14 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| squarefoot wrote:
| A word of caution: this has been done with other uControllers in
| the past; nothing wrong with it from a functional point of view,
| but be aware that the lack of transformers means the boards i/o
| pins aren't insulated from whatever it's connected to them; any
| wrong connection by mistake or static charges in case of a long
| cable could damage the chip forever. The best and safest use i
| can imagine of a transformerless arrangement would be a cluster
| of Pi Picos all mounted on a backplane containing a Ethernet
| switch chip; in that situation they would share the same power
| supply and ground so a simple level translation where necessary
| would be enough, and probably a total of two wires could be used
| for transmission and receive since balanced signals wouldn't be
| needed anymore.
| amelius wrote:
| You could use opto-couplers too for isolation.
| [deleted]
| arcticbull wrote:
| Peer comment explained why this is almost certainly a bad
| choice - not to mention you'd need some pretty specialized
| optocouplers to even operate at that high a frequency - so I
| suggest getting a receptacle with integrated magnetics.
| Ideally on a nice little breakout board like this SparkFun
| MagJack breakout board. [1]
|
| Plus this way you can hook up a couple extra GPIOs and make
| the lights blink when the magic is happening.
|
| [1] https://www.sparkfun.com/products/13021
| [deleted]
| nousermane wrote:
| Or capacitors, as well.
|
| Keep in mind though, that even 10BASE-T works with high
| enough of a frequency, that you need to think about impedance
| matching and line termination. And 3 galvanic isolation
| options (transformer, optocoupler, capacitor) all have very
| different impedance characteristics. For optocoupler that
| impedance is moreover voltage-dependent - i.e. that part is
| non-linear. Yikes. Say hello to harmonics.
| GeorgeTirebiter wrote:
| Optocouplers tend to be quite slow. Transformers are the best
| option.
| ComputerGuru wrote:
| Yeah. Modern (but not bleeding edge) optocouplers can do
| 100ns pulses which would give you 10mbps - but I'm not sure
| how that plays with the failure mode for the transmissions.
| Ethernet doesn't care how many packets your sending per
| second, it'll try to do the full speed from the get-go, so
| the question is whether the errors would be exacerbated or
| alleviated by retransmission from higher up in the stack.
| joemi wrote:
| A simple DIY transform is shown later in the article, though
| the first pic in the article shows it without the transformer.
| [deleted]
| jhallenworld wrote:
| Should be able to run CANbus also, here we go, someone did it:
|
| https://github.com/kentindell/canhack
| protecto wrote:
| LWIP [1] could be used for this. You'd just need to implement
| I/O.
|
| [1]: https://www.nongnu.org/lwip/
| hnewsum wrote:
| Pretty neat. I wonder how much noise those lines can handle.
| CTDOCodebases wrote:
| I read the this as 10GBASE-T and for a brief moment in time my
| whole world turned upside down.
| intothemild wrote:
| Same.
|
| But still... 10BASE-T with 2 wires is a hell of an
| achievement..
|
| Now 10GBASE-T with two wires, is the "Dark Souls on Bongo
| Drums" of networking.
| fire wrote:
| 10GBASE-T1 does actually exist! It's an automotive standard
| like 1000BASE-T1
| throwawaylinux wrote:
| 10BASE-T only uses 2 wires to xmit doesn't it?
| Moto7451 wrote:
| Yes, and 100BASET as well.
| squarefoot wrote:
| 10BASE-T and 100BASE-T require 2 wires to transmit and 2
| wires to receive, 4 wires total. Actually it is better to
| call them 2 pairs since it's a balanced arrangement in
| which each pair signals come and go in reverse phase from
| the interface transformers and wires of each pair are
| twisted together so that any picked up noise can be
| canceled out. 1000BASE-T (Gigabit Ethernet) uses all four
| pairs, that is, all eight wires of a CATx cable.
| pantalaimon wrote:
| There is also 10BASE-T1 and 100BASE-T1 which only
| requires a single twisted pair for transmit and receive.
| camkego wrote:
| And, as a earlier poster explained, there is 10GBASE-T1,
| which is 10G over a single pair! Wow! Who knew!?
|
| "The 88Q4364 is manufactured using a standard digital
| CMOS process and contains all the active circuitry
| required to implement the physical layer functions to
| transmit and receive data on a single balanced twisted
| pair."
|
| https://www.marvell.com/content/dam/marvell/en/public-
| collat...
| paulmd wrote:
| ez just use PAM4 signaling
|
| (/s)
| torh wrote:
| A "Fresh prince" moment.
| cybrexalpha wrote:
| Exactly the same. I read it as 10GBASE-T and my eyebrows hit my
| ceiling.
| jamesy0ung wrote:
| Yeah, I was shocked when I first read it, and then reread
| seeing no G.
|
| I'm not old enough to have liven when 10BASE-T was mainstream.
| the_only_law wrote:
| Is that the one that used the nasty vampire taps, or am I
| thinking older.
| detaro wrote:
| -T indicates "twisted pair". Vampire tap was 10BASE5 (later
| also called Thick-Ethernet, to contrast with 10Base2
| "Thinnet" which used thinner coax and BNC T-pieces)
| bluGill wrote:
| I never saw 10base5 coax, but I worked in a lab in the
| day with massive thick 15 pin cables everywhere (AUI?),
| and 4 port hubs (that is combine 4 computers into one
| uplink that I supposed eventually went to coax in the
| ceiling, though I only saw it go to yet another such hub.
| The office was 10baseT already, but the lab had a lot of
| older computers.
| [deleted]
| chrislund wrote:
| That was 10BASE5 aka thicknet:
| https://en.wikipedia.org/wiki/10BASE5
| Bud wrote:
| I remember when 10BASE-T was brand new and hilariously fast
| and radically better than the clumsy, bulky connectors and
| cables that had preceded it.
| pantalaimon wrote:
| 10BASE-T1 is becoming quite popular with industrial / sensor
| networks these days.
| GekkePrutser wrote:
| Lol these youngsters with their little plastic plugs. 10Base5
| is where it's at. Or 10Base2 if you want to be cool.
|
| Intended as /s but I actually still have some stuff here that
| I need to use a 10BaseT AUI transceiver on :) I love old
| hardware.
| seany wrote:
| I have a 10base-5 AUI on my desk. Makes an interesting
| conversation piece now and then.
| jhallenworld wrote:
| The funniest Ethernet system I've seen is that used in
| dataprobe's "iBoot" remote power switch. These used 8051
| microcontroller (the classic 40-pin DIP) connected to an ISA-bus
| FIFO-based 10/100 Ethernet chip using GPIOs. The FIFO saves you
| since the 8051 doesn't have to keep up with the line rate (one
| whole packet has to fit in the FIFO).
|
| But I know these devices fail when the network is chatty- like if
| you have spanning-tree enabled.
|
| The iBoot has a simple web interface. Somebody wrote an entire
| network stack for 8051..
| nousermane wrote:
| Hooking up an ISA Ethernet card (or chips designed to go into
| one) to an 8051 (and later, AVR) was actually the go-to way to
| do "internet of things" back in the day. Then ENC28J60 came
| along, and things got much easier.
| bcrl wrote:
| This is also possible using GPIOs on an FPGA as well. Have a look
| over at FPGA4Fun: https://www.fpga4fun.com/10BASE-T.html 10base-T
| is such a simple protocol, and implementing it is a good way to
| learn many of the physicaly layer fundamentals of Ethernet.
| nigrioid wrote:
| cnlohr did something similar with an ATTiny85:
|
| https://www.youtube.com/watch?v=mwcvElQS-hM
| https://www.youtube.com/watch?v=m4f4OzEyueg&t=0s
|
| Pretty amazing!
| ajsnigrutin wrote:
| Doing it on a ATTiny85 is a lot more impressing than doing it
| on a "larger" microcontroller :)
| bluGill wrote:
| In some ways it is less though, as the larger CPU on the pi
| has things like cache that mess with your timing, while with
| the smaller CPUs you can lookup exactly how long each
| instruction will take and thus get the timing right. In the
| end though, both are very impressive, the hardware just gives
| different challenges to work with.
|
| edit, reading more I realized the pi pico isn't doing this on
| the main cpu, but on the PIC (which isn't on a normal pi I
| think). I have no idea what that is able to do, but it
| changes the above.
| magicalhippo wrote:
| > with the smaller CPUs you can lookup exactly how long
| each instruction will take and thus get the timing right
|
| Reminds me of the good old demo scene hack to get 18-bit
| color[1] back in the VGA days (and probably earlier) by
| changing the color palette per pixel through careful timing
| of the instructions.
|
| IIRC you ignore the pixel values entirely, writing
| effectively a single "color", ie palette index, and then
| just change that single palette entry per pixel, timed so
| it's ready just when the output DAC is clocked to the next
| pixel.
|
| edit: I forgot which demos I've seen this effect in, but
| searching for it led me down a marvelous rabbit hole where
| I stumbled over someone[2] managed[3] to get 1k colors over
| CGA[4], apparently discussed here[5] a couple of years ago.
|
| [1]: https://en.wikipedia.org/wiki/Video_Graphics_Array#Col
| or_pal...
|
| [2]: https://int10h.org/blog/2015/04/cga-in-1024-colors-
| new-mode-...
|
| [3]: https://www.reenigne.org/blog/1k-colours-on-cga-how-
| its-done...
|
| [4]: https://en.wikipedia.org/wiki/Color_Graphics_Adapter
|
| [5]: https://news.ycombinator.com/item?id=21992870
| Narishma wrote:
| I think you're confused. This is on a Raspberry Pi Pico,
| which is a microcontroller and has no cache.
| GekkePrutser wrote:
| It's still a hell of a lot more powerful than an attiny85
| though which is only an 8 pin micro for the smallest
| stuff. I love those little things and I used them all the
| time until most stuff became connected and the esp8266
| was more useful because of its wi-fi.
| [deleted]
| nousermane wrote:
| Igor Cesko did probably the first widely-known implementation
| of bit-banged 10BASE-T, in 2004:
|
| https://web.archive.org/web/20110312185808/http://members.ch...
|
| Although, one should note that both Igor & Charles did that
| purely in software, while OP's project is using PIO machinery,
| so it's strictly speaking not the same thing.
| LAC-Tech wrote:
| Can someone explain to me what I'm looking at it?
| magicalhippo wrote:
| You're looking at a Raspberry Pi Pico which has been hooked up
| with a make-shift differential driver[1] using two GPIO's[2]
| where one outputs the inverse signal of the other.
|
| The differential signal is connected directly to a RJ-45 jack,
| which is why the warning about not connecting Power over
| Ethernet[3] gear is written in bold as it would destroy the Pi.
|
| Normally Ethernet is AC coupled[4] through transformers, though
| capacitors can be used[5], which protects the local device from
| any DC voltage on the transmission line. Power over Ethernet
| exploits this by explicitly feeding a DC voltage over the
| lines. That voltage is way above what the GPIO's on the Pico
| can tolerate, and would cause the Pico to relase the magic
| smoke[6].
|
| Not having any AC coupling on the Pico works for short cables
| if the other side is properly AC coupled.
|
| The scope plots shows the differential signal as driven by the
| Pico. Ethernet is Manchester encoded[7], a self-clocking signal
| without DC component, which makes it easy to AC couple. The
| fixed preamble used by Ethernet is so the receiver can recover
| the clock signal used by the sender in order to correctly read
| the incoming signal. Using a self-clocking encoding means the
| senders clock pulses doesn't have to be sent as a separate
| signal.
|
| What you don't see is any way to receive data. As noted this is
| the bare bones needed to send data.
|
| [1]: https://en.wikipedia.org/wiki/Differential_signalling
|
| [2]: https://en.wikipedia.org/wiki/General-purpose_input/output
|
| [3]: https://en.wikipedia.org/wiki/Power_over_Ethernet
|
| [4]:
| https://www.intel.com/content/www/us/en/docs/programmable/68...
|
| [5]:
| https://ww1.microchip.com/downloads/en/AppNotes/ANLAN120-UNG...
|
| [6]: https://en.wikipedia.org/wiki/Magic_smoke
|
| [7]: https://en.wikipedia.org/wiki/Manchester_code
| formerly_proven wrote:
| 10BASE-T = 10 Mbit/s Ethernet. 10G/2.5G/1G/100 Ethernet are all
| backwards compatible so 10BASE-T is the slowest/simplest
| Ethernet standard that you can implement today and just plug
| into just about anything.
|
| This is transmit only, so it's pretty much limited to
| broadcasts (can't do ARP). That's good enough for e.g. sensors.
| pezezin wrote:
| > 10G/2.5G/1G/100 Ethernet are all backwards compatible
|
| Not always. The physical layers are incredibly different, and
| while it is true that most 1G devices also support 10M/100M,
| we found the hard way that some 10G switches and NICs don't.
| willis936 wrote:
| 10G no, but all 1000BASE-T NICs require autonegotiation for
| 10/100/1000 to be compliant.
| Jaruzel wrote:
| NICs maybe, but there's a whole heap of cheap home
| switches and hubs that don't support 10BaseT. I know this
| from experience.
| Sebb767 wrote:
| I've also experienced some quite expensive Juniper DC
| switches not supporting anything below 1Gbit. Fun times.
| dicknuckle wrote:
| Some ISP core stuff too.
| LAC-Tech wrote:
| I need more context.
|
| Is a micro-controller able to broadcast through an ethernet
| port something remarkable?
|
| Obviously this upvoted enough that it's causing a buzz, but
| I'm not an embedded guy and don't really understand why.
| magicalhippo wrote:
| > Is a micro-controller able to broadcast through an
| ethernet port something remarkable?
|
| Many microcontrollers, especially higher-end ones, have
| built-in dedicated hardware, called peripherals[1], to
| handle complex and/or high-speed interfaces like Ethernet.
|
| The Pico does not have an Ethernet peripheral, so this
| project relies on bit-banging[2], a brute-force approach to
| IO. However, the Pico does have the PIO[3], which is a
| general-purpose IO peripheral, so it's not pure bit-banging
| in the traditional sense.
|
| While it's cute, it's not super remarkable. People have
| done bit-banged HDMI[4] on the Pico for example. However,
| Ethernet access can be very useful in a Pico project.
|
| [1]: https://electronicguidebook.com/what-are-
| microcontroller-per...
|
| [2]: https://en.wikipedia.org/wiki/Bit_banging
|
| [3]: https://hackspace.raspberrypi.com/articles/what-is-
| programma...
|
| [4]: https://github.com/Wren6991/PicoDVI
| jmiskovic wrote:
| I find remarkable how simple it appears to be. You could
| take any existing Pico-based board, find two unused pins
| and solder on those four components. You update the
| software and suddenly the project is network-connected! For
| most other micro controllers this would either be
| impossible (dedicated pin already occupied with another
| function), or would require installing another PCB.
| unwind wrote:
| If the controller is $1 and lacks actual support, and no
| external network hardware is being used: yes.
| baq wrote:
| yes, because it's implemented 100% in software, no
| dedicated computing/networking hardware (resistors don't
| count)
| actionfromafar wrote:
| It's not through an Ethernet port, that's the interesting
| part. :)
| ZiiS wrote:
| "Micro-controller" is a very wide term. Today it is applied
| to many things that would have been a good desktop computer
| only 20 years ago. As you surmise it is not at all
| impressive that they can talk on the network (may have
| hardware that fully supports current generation wired and
| wireless networking) The Pi Pico is quite a simple micro
| controller, similar to the 1980s hardware that would have
| actually used 10BASE-T. The impressive bit is it fully
| software except 3 resistors; rather then having dedicated
| hardware.
| salmo wrote:
| I don't _think_ the other specs are necessarily backwards
| compatible. The NICs on each end negotiate the fastest
| commonly supported spec.
|
| I've had 10G cards that would only negotiate down to 1G or
| only do 10G. But those were over Twinax. I've never use 10G
| on twisted pair.
|
| Back in my day we were excited about 100Base-T and called it
| Fast Ethernet :).
|
| Oooh! Now do 10Base2!
| vbezhenar wrote:
| Usually Ethernet support requires some dedicated modules. It's
| possible to implement protocols with "big-bang". MCU have
| Analog-Digital-Converters (which allows to measure voltage on
| selected pin) and Digital-Analog-Converters (which allows to
| produce a signal of some voltage on selected pin). Basically
| signals on line are analog and your software is digital. You
| use ADC to receive signal and DAC to send signal. Then those
| recorded voltages have to be translated to actual protocol.
|
| Bit-banging low-speed protocols is easy. When your MCU does 8
| million operations/second and you need to measure 1000
| times/second, no problem. You usually use dedicated modules
| even for low-speed protocols, but that's basically convenience
| and lower power consumption.
|
| Bit-banging high-speed protocols is not easy and usually not
| possible. 10 Mbit ethernet is 10 million bits per second. So
| it's almost always requires external modules which implement
| this protocol in hardware and provide some high-level interface
| to MCU.
|
| Rpi Pico MCU has an interesting feature called PIO. It's
| basically a dedicated module with some extremely simplified
| assembly support. It works independently from the MCU cores.
| People implement various kinds of protocols using bit-banging
| with PIO.
|
| Basically if you don't care about power, you can theoretically
| save some money by not including an ethernet module in your
| device, but rather implementing things with bit-banging. Or it
| might be an interesting experience for someone who implemented
| it.
|
| Usually in reality you just buy STM32 with ethernet support and
| let it deal with all the protocol intricancies.
| jmiskovic wrote:
| I like this explanation, but the first paragraph mixes up
| things. ADCs (and sometimes DACs) are parts of most micro-
| controllers, but those are never used for digital
| communication. The most low-level primitive is GPIO block
| (general purpose input/output). This block can be found on
| most of chip pins, and it does the conversion between analog
| voltage and digital bit (as well as value latching and some
| other functions). With just them and the CPU you could
| manually receive and send digital bits and build complete
| communication protocols in software.
|
| Also even if your STM32 has ethernet support, you still need
| a PHY transceiver that accesses the physical medium (wire or
| optical bus). This project implements both inside the Pico
| and requires just 3 external resistors. Very impressive feat
| of engineering, but not something you'd deliver as a field
| product.
| stephen_g wrote:
| DACs and ADCs are frequently used for digital communication
| - for anything RF/wireless they are a key part! Some high-
| speed SerDes receiver designs are even digitising using
| fast ADCs and DSP techniques internally now to do things
| like equalisation in the digital domain too, which is
| interesting (e.g. [1], [2]). Previously, slower (like
| 25Gbps and less) SerDes have tended to be purely analogue
| circuits until near the very end.
|
| 1. https://www.youtube.com/watch?v=OY2Dn4EDPiA
|
| 2. https://ieeexplore.ieee.org/document/8778136
| titzer wrote:
| I think the GP meant that you wouldn't _normally_ want to
| try to use an ADC for digital communication because the
| general-purpose ADCs in, e.g. microcontrollers are either
| overkill (10 bits just to detect a level!?) or too slow
| (max sampling rate) to do high-performance I /O. You'd be
| better off using an existing protocol with just two
| voltage levels and the GPIO pins. You can make an analog
| circuit to transform the two voltage levels you do have
| into the (typically 0-5V) levels detected by the GPIO on
| the microcontroller.
| abbyck wrote:
| Thanks for this explanation!
| jandrese wrote:
| Oh wow, this is was earlier in development than I was expecting.
| Literally just banging out the bits on the wire for a UDP packet
| without any underlying protocol support. No CSMA/CA. No ARP. No
| autonegotiation. Can't even receive. Just enough support to
| calculate the checksums and do the Manchester encoding before
| clocking the bits out on the wire.
| CodeWriter23 wrote:
| Ahem. CSMA/CD. 10BaseT implies wired connection.
| GeorgeTirebiter wrote:
| I think I'd rather have such a project report 'early' than
| wait till it's supporting a web server via those 2 pins...
|
| ..because, now, YOU can whip up the Receive end, eh? ;-)
| CodeWriter23 wrote:
| /CD requires receiving while transmitting, which is
| probably going to get really complicated in software when
| trying to precisely time GPIO pulses at .1us intervals on a
| 133Mhz CPU. Probably need to add an external latch +
| carrier sense circuit to assert a collision signal.
|
| Side note, I do love the Firesign Theater reference, Mr.
| Tirebiter.
| [deleted]
| ISL wrote:
| The transformer-coupling of Ethernet isn't a trivial fact.
|
| When building precision instrumentation, I was extremely happy to
| learn about this from one of our old-timers who had been working
| on systems since the days of the VAX.
|
| You need not worry about DC ground-loops with Ethernet.
|
| When I saw the post-title, I thought, "oh, no, what about the
| transformer-coupling?". Was very happy to see a simple technique
| outlined in the article.
| avodonosov wrote:
| A similar thing for the Forth chips produced by Chuck More and
| colleagues:
| https://www.greenarraychips.com/home/documents/greg/AN007-14...
| francisduvivier wrote:
| Sooo, with this you can send ethernet packets from a RPI pico? I
| wonder at which speeds with this setup only using 2 GPIO's.
| magicalhippo wrote:
| Using the PIO you can get some serious speed out of it. Someone
| made an arbitrary waveform generator[1] reaching 125Msps stock,
| for example. But you can overclock[2] the Pico up to 420MHz
| apparently so maybe you can get even more, though not sure if
| the GPIO drivers can handle that though.
|
| [1]: https://www.instructables.com/Arbitrary-Wave-Generator-
| With-...
|
| [2]: https://www.youtube.com/watch?v=G2BuoFNLoDM
| nousermane wrote:
| If you want to communicate with standard Ethernet gear, that
| would be either 10Mbit/s exactly (10BASE-T standard) and
| 100Mbit/s exactly (100BASE-TX standard).
|
| OP implemented 10BASE-T here. Next step up is 100BASE-TX,
| which nobody did in software/bit-bang as of yet, as far as
| I'm aware - part of the reason it's fairly large jump in
| complexity. Namely, you'd need 3 analog voltage levels, as
| well as pretty hairy digital scrambling/encoding, to output
| 100BASE-TX. RPi-pico might just be able to eek that out with
| few external resistors and enough elbow grease.
|
| Other reason nobody bothered with bit-bang 100BASE-TX -
| virtually all switches will happily down-negotiage to
| 10BASE-T, which gives you ~1.2MB/s, and that's plenty fast
| enough for a microcontroller with mere kilobytes of RAM.
| Taniwha wrote:
| 10Mb/s - it's 10BASE-T
| dal wrote:
| The fact that it links up at 10BASE-T does not mean that it
| can send at wire rate.
| kragen wrote:
| That's exactly what it means. But if you didn't know that
| you can look at the last oscilloscope screenshot; as you
| can see, it's set to 200 nanoseconds per division, and it's
| pumping out bit transitions quite precisely every 50
| nanoseconds, and 10BaseT uses Manchester encoding, so that
| gives you 10 megabits per second.
| OJFord wrote:
| I think GP might mean what sort of data throughput would
| be achievable, but that's also trivially 10Mbps with
| suitably trivial data, and sending easier than
| non->/dev/null rx.
|
| Really more a question of what you try to make it do with
| the link, but it would be fun to see it do some very
| basic routing/firewalli g for example.
| sylwester wrote:
| The other repository seems more interesting (can someone
| translate?) https://github.com/kingyoPiyo/RasPico_SHIBAKI_Board
|
| This seems to be SFP with Raspberry Pico.
| EddySchauHai wrote:
| Was hoping that said 10GB - need a couple 10GB devices for load
| testing a network lab if anyone has any cheap suggestions :)
| giomasce wrote:
| Is "register" instead of "resistor" just a typo, or is that word
| really used in this context?
| magicalhippo wrote:
| It's a typo, you can clearly see the three resistors in the
| image as well.
| tecleandor wrote:
| I think it's a typo from japanese. I think 'register' and
| 'resistor' can be written the same or very similar in katakana
| ( rezisuta ) and it can be confusing.
|
| So it's resistor.
| synergy20 wrote:
| RP2040 is an amazing MCU, I'm unaware of any other similar MCU
| has a programmable PIO module.
|
| Based on the Ethernet and previous HDMI work done to this chip,
| I'm to write my own I3C master/slave on it soon, should be
| doable.
| MobiusHorizons wrote:
| You can often do similar things with timers and dma or a serial
| device. It isn't as easy as the PIO model is more familiar for
| people who are used to thinking in terms of code running, but
| timers in combination with gpio can be crazy powerful.
| rasz wrote:
| Software peripherals were popular in the nineties when using
| Scenix 50MHz PIC clones https://hackaday.com/2022/08/17/chips-
| remembered-the-scenix-...
|
| In 2006 we got 8 core risc chips running at 80MHz. 0.25 IPC =
| 160MIPS https://en.wikipedia.org/wiki/Parallax_Propeller
|
| in 2008 XMOS xCORE came out, instead of 8 cores in parallel you
| get 1-2 CPU tiles running at 400-500MHz partitioned into 4-16
| virtual cores. 1 IPC = 1000MIPS. 1 cycle IO. Super popular in
| audio devices where it bitbangs all sort of serial audio
| interfaces while performing DSP. Newer models have DSP
| instructions, and the newest ones might even have something for
| NNs.
|
| "Each tile has 8 active logical cores, which issue instructions
| down a shared four stage pipeline. Instructions from the active
| cores are issued round-robin. If up to four logical cores are
| active, each core is allocated a quarter of the processing
| cycles."
|
| https://www.xmos.ai/download/XS1-L16A-128-QF124-Datasheet(1....
|
| 2012 TI sitara AM335x (beaglebone black) has dedicated IO
| cores.
___________________________________________________________________
(page generated 2022-08-22 23:01 UTC)