Reasoning Technology
Wote the business plan, created the initial pitch (with many to follow),
formed the corporate entity, filed initial IP, got a trademark on the name,
and raised friends and family investment. Formed a team.
Along with Mark Leudtke interviewed lawyers (from our target market)
to test the value proposition.
Used project management science techniques to plan the company program
and its major projects. From that created budgets, head counts, and
financial projects. Wrote the business plan.
Ran many experiments on how to arrange the back-end and web-socket
communication. Established need for a front end library to be
written in javascript. For the back end tryed out Python, Rust, Racket, Common Lisp, C++, and
settled on C.
Wrote the JavaScript portion of our website.
Wrote first version of the JavaScript library for font-end display of RT diagrams
and integration of Reasoning Technology into other websites.
University of London Birkbeck
Implemented computer science professor Andrea Calì's deep web
search algorithms in the Racket Lisp.
Quicksilver Technologies
Company was developing a 9 core heterogeneous multiprocessor. Wonderful
team, but they were very busy on other cores. I was left alone to design a
programmable radio front end processor from scratch.
Created a novel architecture that met performance by having two levels of
microcode, one to configure the arithmetic units to stream, and the
other to program the chip. Added Babbage like difference engines as
very capable address generators.
Wrote a cycle accurate model for the processor, wrote the test bench,
and wrote the assembler to generate the machine code for testing. The
head of the tools group, Andy Krumel, was nice enough to say that I
should not hesitate call myself a tool smith.
Startups Founded
Tempered Hardware and Software
Founded a VLSI design service
company that secured a significant contract with Chromatic
Computers. Developed a simple processor as a test bench and a comprehensive
set of complex instruction functions. Notably, during this process, I
discovered a novel and significantly faster arctangent algorithm. The entire
project was executed using C++ programming language, with testing conducted
by Fred Tydeman.
21st Century Telephone
Founded a startup in Austin in 1996 with the ambitious
goal of creating a smartphone before its time. The innovative
product, "Dragonfly," resulted in an attractive IP portfolio that
seeded later work I did with Intellectual Ventures.
Intellectual Ventures
Nathan Myhrvold engaged talented individuals, including myself, to patent
the technologies that would shape tomorrow. I was given a blank contract to
invent what I felt would be important.
Created a portfolio of inventions for leveraging substantially similar
data-sets, each distributed on a number of servers, for various security
algorithms. (Today this is what bitcoin does.)
Methods for protecting copyrighted material in a digital world.
In the late 90s I saw that relationship data would be important for the
future computing, and filed on related inventions. (And today it is all about relationships.)
Using facial expressions to comunicate to humans the status of machines in a server farm.
This is a technology for creating a meta layer that is controlled by the user over the data shown on a GUI or browser that is controlled by the server.
Novel designs for removing heat from processors, systems, and compute centers.
Herd Proposal
I proposed a social media technology where people
could volunteer to become herd leaders, sending messages to anyone who
volunteered to join their herds. If you know the story of what became of
this technology proposal, please drop me a note.
AMD
Projects Contributed To
The designs of the 29k, 29050, the Sonic
signal processor, Am486, K5, k6, and the native K7 chips. Analysis of the
CS21s device process fit for linearized synthesis models. Control compiler
Fab 14 robots. It is noteworthy that the K7 lasted about 6
months before a major company re-organization, and the unfinished
K6 was purchased from NexGen and completed with the help of
AMD.It is noteworthy that the K7 lasted about 6 months before a
major company re-organization, and the unfinished K6 was purchased from
NexGen and completed with the help of AMD. a project to characterize the
CS21s device process for a synthesis library.
Roles
Floating-point design lead for the native K7, architect and
technical manager for floating-point instructions development on the
K5. Participated in IP development for signal processing efforts. Played
roles as logic designer, circuit designer, tools development, test code
generation, and debug on other projects. Mathematician for development of
new numerics algorithms and proofs of correctness.
These include circuits, logic, and
architecture. Was given the AMD "Multiple Patents" award - a thick
glass free standing plaque.
Pipeline Predict Proofs
These were formal proofs in lemma form developed along side of development
of the 2050 floating point unit pipeline serialization criteria so as to guarantee
precise exceptions. After doing these I began writing proofs for my arithmetic
algorithms, eventually leading to discussions with Ken Albin, Terry Huett and
Dave Read for bringing in a mechanical theorem proving tool into AMD.
A Novel Binary Adder
The insight that lead to the fast adder design, the smallest and fastest in the
industry, was that the carry operation is idempotent. To establish that this was
indeed the fastest configuration known, I did a thesis at UT Austin, "Binary Adders",
that examined all known configurations. That thesis was also the first to present
an algorithm, with a C++ implementation, for finding optimum multi-level carry skip
adders independent of process.
CS21s Characterization for Synthesis
I designed many circuits at AMD at a time synthesis was just getting
started. A critical path timing tool required linear gate models. I took
the BSIM device equations for CS21s devices stacked as gates and put in
series, then modeled the transfer functions as hyper dimensional surfaces,
and found hyper plane fits for those surfaces. It was fascinating to put my
device physics course to use, and I came to know Mathematica very well on
this project.
Novel Numeric Algorithms and Circuits
For the Am486 and later processors, found a parallel partition for the
Binary to BCD problem, which could be run though a pipeline. For the 29050
found a logarithmic barrel shift approach that cut in half the size of the
existing circuit that was in use. Designed an SRT divider which simplified
the complex quotient prediction logic so much that it double pumped per
clock to beat Intel's design, through the patent sharing agreement Intel's
apparent copy of the circuit from the patent, was not as successful.
Developed the SQRT algorithm for 29050, nothing to write home
about. Identified the algorithms to be used on K5 and created the initial
implementations. Go to know Hart very well, and came up with many variations
on argument reduction and polynomial interpolation.
Floating-point Multiprecision Approach
The architect for the coming K5 did not allow the expansion of the data path
for numeric accuracy due to the ramifications throughout the superscalar
architecture. Hence I developed a multiprecision method. I initially
modified high radix online arithmetic to work with bus-sized digits. As
proof of concept I worked with a student at UT on a simple compiler with the
objective of seing if the approach would be practical. I broadened the
approach to incorporate floating-point digits. I created a library in
Mathematica with instructions for this arithmetic, and used it to write and
test some of the algorithms would be needed on the K5. I assembled and
taksed my K5 floating-point team with writing a Mathematica source to
nano-code compiler, writing error analysis programs, doing formal proofs,
and furhter developing the source code. The results were superior, with one
expert proclaiming it as the most trustworthy numerics available in the
industry.