Ted Logan

UART at BLUG

Sunday, 13 January 2013

I arrived at the regularly-scheduled BLUG meeting last Thursday evening at Applied Trust in downtown Boulder during the pre-meeting food phase, walked up to regular Jeff Haemer to give him a few coins from my recent trip (he'd mentioned in the past that he was interested in coins from random countries, so I gave him one each from Hong Kong, the People's Republic of China, and Taiwan, and made him guess where they were from) and he pointed to me and said, "Ask him!" It turned out the previously-scheduled speaker had canceled an hour before due to a family emergency, so the organizers were looking for people to pick up ten-minute speaking slots to salvage the meeting. Jeff had already picked up the first slot. I said, sure, I could come up with something, and retreated to a corner to start gathering my thoughts.

I've given talks at BLUG twice before; my most recent one from 2010 was titled How to get lost while knowing where you are, but I usually had more than twenty minutes to prepare. I didn't have my computer handy to provide any visuals, and I hadn't yet managed to post any of my pictures from Hong Kong, so I couldn't easily implement the first idea that sprang to mind, a quick travelogue of my recent trip -- which wasn't remotely technical and may not have really been what the audience was looking for. (My phone does have a tiny HDMI output port that I've never actually used, so I could, theoretically, give a slide presentation using nothing but my phone, but even in that case I'd need to prepare in advance.)

I grabbed some note paper hanging around the conference room and started scribbling down a few notes. The next thing that came to mind was something about my day job on the UART team and the sorts of interprocessor communication we support. This is not, strictly speaking, Linux-related, but I figured it was close enough, especially since Jeff went first and talked about Android (from the perspective of a tiny OEM building its own Android phones), and had a Nexus 4 phone (running my code on multiple processors on both the modem and apps chips) that I could wave around as a crude visual aid.

Notes on my impromptu talk

After Jeff's segment, I headed to the front of the room and began to talk. Aside from the Nexus 4 phone, I ended up without any visual aids at all; I'd hoped I might at least have a whiteboard (or a flip-chart I could scribble on) for a few crude block diagrams, but the conference room had only a fancy projection screen with what looked like digital markers of some sort, and I didn't want to take the time to figure out if it would work. I started by introducing myself, then explaining that modern smartphones have at least two big processors, the low-power modem processor and high-performance applications processor, and talked about the ways one might connect these processors. I've worked on two of them, shared memory and UART, though these days the cool kids all use HSIC (high-speed interconnect, which takes the USB link layer and puts it on top of a different physical layer designed for direct chip-to-chip connections on a circuit board). When most people think "UART" they think of the old-school RS-232 serial ports they used to have on the back of their computers that went up to 115,200 bits per second, but our UARTs go up to 4 megabits per second, making it much more suitable for low-level communication between chips as the default interface. (It's not the sexiest interface available, but it's usually available, so it's the default if nothing else would work.) I talked about the transport layers that need to go on top of the UART (like PPP) to actually make it useful, and answered questions from the audience, including why it won't really work to try to put a 56k modem on a cell phone (the voice channel is compressed down to something like 8 kilobits/sec, which is enough to be understood but way too low for a decent data rate). Then I sat down, having presumably occupied a room full of people for at least fifteen minutes with a quick distillation of the technologies I work with on a daily basis.