Once space is conquered, all that will be left is here.
once time is conquered, all that will be left is now.
Do not lament on our parting, for between here and now,
should we not meet again?
Well, I finally did it. I started a blog. I'm hoping that doing
this blog will enable me to post more up-to-date information on my hacks and
my life. I update this web page like once every two years if I'm
lucky. Plus, this new blog thing from Wordpress looks sweet! Check out
my blog, give me feedback, let me know more about what you'd like to
read and/or see!
Irassyaimase! I, like other Web users, am working to
the old man's prophecy by providing this home page. The Internet conquers
space; it folds and flattens our four dimensional world of three spacial
and one temporal coordinate into a two dimensional world of but one node
and one temporal coordinate.
And who sez that computers are impersonal? Individuals
with their home page; every home page is colored by the author. The internet
is filled with the synergy of human intellect; it is almost a conscious
entity in its own right. Its two-dimensional body is intangible to us,
but the internet is our evolutionary successor. I hope to influence this
child, if ever so minutely, by configuring these bits into something which
will communicate a likeness of myself.
name is Andrew Shane Huang; my Chinese name is Huang(2) Xin(1) Guo(2)
(and if you
mix my name and my father's, it's a prophecy). I am 183 cm (6 ft) tall,
83.9 kg (185 lb). I'm Asian, but that's a bit
general (after all, over 20% of the world is Asian). I was born in 1975 (year
of the rabbit), and I call Kalamazoo, MI my home.
I just finished my PhD dissertation
at the Massachusetts Institute of
Technology. I was working in Tom Knight's Project Aries research
group. My interests include all aspects of moving information
between processors--physics of communication, high speed signalling,
reliability, fault tolerance, protocols, data placement, coherence (or
lack thereof), and APIs. The project has been undergoing a lot of
change lately, so the web page is somewhat
out of date, but that's a natural consequence of how fast technology
moves these days. Here is a presentation
on my work-in-progress (postscript only, try ghostscript to view) with
respect to abstract machines and streams, and a short white-paper
about some of my ideas on spatially aware decentralized computing. My finished thesis can also be found here.
One of the technologies used in our project is PIM (processor-in-memory)
technology. The idea is that by integrating processors into memory at the
chip level, one can achieve several orders of magnitude more bandwidth--in
fact, bandwidth that scales with memory size--and an order of magnitude
decrease in latency. This places the idea of getting rid of data caches
within the realm of consideration, an important step in large multi-processor
systems where cache coherence requirements become a limiting factor. To
test out some ideas involving PIM technology in the near term, I have
built a simulation platform
that centers around a card that plugs into
a PC-100 compliant DIMM slot in a PC. The card
consists of a fast,
288-bit wide bank of SSRAM connected to a large Xilinx Virtex-E device,
and another Virtex-E device to handle the PC-100 interface. Of course,
the final system does not call for standard PC parts anywhere, but there
are certain barriers to making chips that fosters a compromise =)
I also did my undergraduate studies at MIT as well.
As an undergraduate, I lived at Zeta Beta
Tau fraternity. I was Vice President of the fraternity, and I look
forward to being an active alumnus. In between and all through my
undergraduate and graduate studies, I've tried to keep in touch with
industry through various internships and employment opportunities. I
have worked for some companies you've heard of (Intel, Qualcomm, SGI)
and many you haven't (E-Ink, Microdisplay, Mobilian, Solana Technology
Development (now Verance)).
I'm trying to document all the projects I've done over the
years...I've just started, so the following list will grow as I
continue to distract myself from thesis
- My PhD thesis software and dissertation
for those interested in supercomputer/high performance parallel architecture
- Persistance of vision lights that I threw together for a party on new year's eve. I did the electronics, and she did the nice comfortable wrist mounts. Here is a picture of it working in daylight as well.
- CD player hack where I add a
digital audio I/O port to my portable CD player
- Video game console hacking...it's
sort of a hobby to open these things up and learn from their innards.
- SH Embedded RISC microprocessor
hack where I use the SH7032 embedded RISC as a class-D audio amplifier
- SH-1 Workhorse flexible
embedded controller board. Credit-card sized board for embedded
applications that need a big punch in a small package. 12 MHz SH-1 32-bit
RISC with 8 MB DRAM, 1 MB FLASH, and many other features in just 2" x 3"! I
built this board for a
seminar on embedded controllers that I taught over
IAP 1999 at MIT. This board will be used in the
MIT AUV team's
ORCA-2 submarine, as well as in my car.
- StrongARM embedded systems. I've spun some boards with
Intel StrongARM processors that run linux in my "spare time". I am
progressively shrinking the board, and I hope to eventually someday
build a robust, wireless-networked linux computer that fits in the
footprint of a Motorola Star-Tac cell phone.
- Some Sega Dreamcast hacking. I recently (er, I really need to stop
using relative time, this was recent almost five years ago...) built a
little board that lets me read out the ROM contents of my dreamcast
and plug a standard FLASH device in its place. I really need to get a
digital camera so I can take a picture of it.
- FPGA Seminar taught over IAP 1998. I
used a board I developed myself, the RHP4K
to teach students how to design with FPGAs. Check out this page for
some seminar slides on how to use FPGAs and other fun stuff.
- Digital tachometer for my Toyota Corolla. I recently added a
128x64 graphic vacuum flourecent display to the dashboard of my car,
where I get a tach reading. I added it because my car is a manual and
for some silly reason it didn't come with a tachometer. The tachometer
uses the Hitachi SH-1 to measure the time between ignition pulses and
to control the VFD. The relevant source code
is available; these files
are meant to be integrated into Hitachi's CMON monitor provided with their
- ReRISC Reconfigurable Reduced Instruction Set Computer measuring in at 1.8 million transistors, I conceived, designed and laid out the datapath elements this 32-bit beast for the introductory VLSI design class at MIT. Check it out, especially if you have an interest in reconfigurable hardware processors.
- My Master's thesis research...The thesis
is done, but the topic is quite open ended. My thesis focuses on architectures
which use reconfigurable hardware as computational elements. More on it
- Remote controlled light switch. I've finished this project but
I've been too lazy to document it. I'll be glad to tell you how I did
it tho if you are curious. I built this little box so I can be lazy
and turn my halogen lamp on and off with my Sony remote
control. Laziness is the mother of all invention ;-) (and the bane of
- Hardware DES cracker. I've got 56-bit
DES cracking in an FPGA now clocking in at over 500,000 keys/sec/node
and I am "seasoning" it to work with unix crypt(3) passwords.
I'm massaging the design so I can hit 2,000,000 keys/sec/node in a
scalable network of up to 256 nodes at a low cost per node. Full
specs and docs will be posted when I'm done!
- Keyboard code converter. This little hack plugs in between any
AT-compatible keyboard and a host machine. I use it to translate my
keyboard layout from QWERTY to dvorak...software
remapping is nice, but sometimes it doesn't always work and it's a
pain when two people who don't use the same mapping have to type on
the same console! My box has a little switch which lets me flip
between QWERTY and dvorak. It's about the size of a pack of matches.
I have provided the code for the
PIC16C84 which is the heart of the box; the PIC drives a pair of PS/2
style serial ports using four transistors that talk to the keyboard
and host computer. One of these days I'll make up some schematics and
put them here too.
- Data acquisition card for PCs. A while back (was that sophomore
year?) I built an ISA add-in card which sports an 8-channel 8-bit ADC
so I could do various sorts of data acquisition. Right now it is
being used to log the temperature near my computer every hour (finger
email@example.com or finger firstname.lastname@example.org).
The host PC runs linux and the driver is a daemon that logs to a file
accessible by printtemp and
graftemp via cfingerd.
- Keyboard pedals! In addition to learning dvorak, I have crafted
footpedals for my keyboard for the control and shift keys. This helps
relieve the strain on my left hand, especially when I am using emacs.
The pedals work great, and my RSI is getting better, or at least not
progressing as quickly. I will probably be the first person with
a case of RSI in his feet though. :-P I installed the keyboard pedals
by opening my keyboard and wiring across the control and shift keys to
a pair of RCA jacks which I installed on the lower left corner of my
keyboard. The pedals I built plug into those jacks. Here are some
brief instructions on how to do this
for your keyboard; I could put a picture up on the web about it too
if you're having a hard time.
- AOPS. It stands for Alpha Omicron Phone Switch, because the
alpha omicron class at ZBT developed the system. I have consulted
and contributed bits and pieces to AOPS. AOPS is a digital PABX;
it takes in a few trunk lines from the local provider, and distributes
it across the entire house. It is also capable of providing voice
mail, music on hold, and call forwarding. The entire PABX, from
the bottom up, is an original engineering effort by the alpha omicron
class, and most noteably Ara Knaian and Matt Debergalis.
- DRAM FAQ where I try to
take on the impossible task of summarizing all the varieties of RAM available
on the market today. So far, I've only gotten to FPM, EDO and just started
SDRAM! I think they are making new RAM types faster than I can document
them...I think I am going to give up on this one.
- Datfiles for XV hack where I add datfile capabilities
to xv-3.10a. Not too exciting, but possibly useful if you're a researcher
at MIT. The link is to a gzip'd tar file with the patch code and a README.
It's only useful if you know what datfiles are...you can get the xv source
tree from ftp.cis.upenn.edu/pub/xv.
- TSOP package FLASH ROM burner
(picture coming soon). I decided to start using these fun parts in my
projects lately--they are so small and cheap--but the problem is that
buying an appropriate programmer for them often costs upward of $500!
So, I built my own burner. Its incredibly easy to do, and it costs
around $200 (of which $140 went to the TSOP to DIP adapter that I got
Technologies). It plugs into your PC parallel port. Visit the design documentation page for more
- TSOP package FLASH ROM burner rev2
An improvement over the first version; cleaner board layout,
use of FPGA, cheaper ROM socket and a spot for plugging in other
types of ROMs and adapters.
- Pictures of some projects I've done in the
past...these are mostly stuff I did in high school and junior high
so I'll be putting their details on-line last. Back then, I only had a
drafting table, paper, and pencil so my doc's aren't in a nice and easy
to deal with electronic form.
- More to come! I've got a long list of projects, and each takes a few
hours to properly HTML-ize.
Another big project which I have done is my
master's thesis. It was a joint QUALCOMM Incorporated-MIT effort
building a reconfigurable hardware processor which I named
Tao. QUALCOMM is in San Diego. They
hold the patent for CDMA and other
spread spectrum communications stuph. They also sell Eudora, and
I used to be a recitation instructor for MIT's 6.004 class. I had the
privelege of creating a new
generation of lab kits for the class. The new lab kits are
complete. Students now get a set of computational blocks (CBs) which
have their function set by software (ie, gates, adders, registers,
muxes...you name it). They wire the blocks together using single
wires that carry multiple bits (up to 32 at a time) of information to
ultimately create a full 32-bit RISC microprocessor. The kit also
features boundary-scan capabilities so students can verify their
wiring, an on-board embedded controller to aid debugging, buttons with
programmable behavior, and an LCD screen.
For those of you who took 6.004 in the spring of 1997, I have
some pictures from the annual 6.004 design contest.
I won't bore you with my academic pursuits, but I will bore you
with some of the activities I enjoy. A few things which light up my
life include great parents, great friends, playing the violin (I've
been bowing 'em strings for over fourteen years now), playing the
spinning electronica, and playing with electronic
stuff...I like to hack around.
Check out the ZBT
picturebook; lots of photos of life in my fraternity! Also, check out
The graphics collection is mostly some pictures I thought were cool over
the years so I scanned them in. The scrapbook has a lot of photos
of my good friends or places I've been. I also have pictures from my
graduation in '96 when I got my SB and
Being a canonical gnurd, I enjoy telling computers to do things in
several languages as well as building random hardware hacks. On the left
is a picture of my dorm room as it was in the fall of '98. My
operating system of choice is NeXTStep. However, practical concerns,
such as available software base, have caused me to operate primarily
in Linux, which is still a pretty
darn kewl OS. As I mentioned above, I type a dvorak keyboard to try
and combat a slowly progressing case of RSI. I think it has helped
quite a bit with my typing. I'm very happy with the layout and I find
it has the extra feature of providing an extra layer on security on my
console logins. (^_^)
I've finally been on the web long enough (it's been a few years now)
so I finally have a few bookmarks of kewl stuff
I've found or frequently visisted sites, mostly of interest to EE types.
If you would like a resume, please send me email (email@example.com (delete the nospam. to make the address work))
and I will send you a link to a copy in Adobe PDF.
Open your eyes, see all the love in me; I got enough forever.
Don't be afraid, take all you need from me, and we'll be strong together.
-- Brisk and Trixxy, "Eye Opener"
6.004 fall '98 recitation notes
Well, sad for me, I had to take down a lot of the photos that used to
be here. I'm single again...this is probably the only appropriate
one left in the collection...
I went to Annapolis, MD, in July with a team from MIT to compete in the
1st Interational Autonomous Underwater Vehicle competition. Our entry was
ORCA, a fully autonomous
submarine sporting a pentium-class on-board computer running linux, a
homebrew INS, downward and forward looking sonar, a doppler velocity log,
and a 3-axis magnetometer,
among other fun stuff. I helped design the sensors, write low-level driver
code, and assisted mission planning, among other miscellaneous tasks.
firstname.lastname@example.org (delete the nospam. to make the address work)
Last modified Sun Feb 28 22:49:54 1999
This page has been accessed at least
times since the counter was last reset,
or February 14, 1997,
whichever is more recent.
PGP Key for user ID: bunnie (email@example.com)
Fingerprint: 7BAA 2E53 01C1 DCFF 497B E7F0 9699 A303 78F0 D9B9
(key upgraded 12/10/2001 to 2048 bits)
Copyright (c) 1999, 2000, 2001, 2002 Andrew Huang
The Xtreme Ideas logo is a trademark of Xtreme Ideas Technology Development
The Xenatera Partners logo is a trademark of Xenatera Partners