Blue Cheetah Analog Design
Senior Digital Engineer
Verily Life Sciences Dec 2015 - Jun 2019
Senior Hardware Engineer
Google Mar 2015 - Jun 2019
Senior Digital Design Engineer
Oracle Apr 2010 - Mar 2015
Principal Hardware Engineer
Sun Microsystems Jan 2004 - Apr 2010
Member of Technical Staff
Education:
Stanford University 2004 - 2009
Masters, Electronics Engineering
Harvey Mudd College 1999 - 2003
Bachelors, Bachelor of Science, Economics, Engineering
Skills:
Perl Computer Architecture Asic Verilog Embedded Systems Debugging Linux Testing System Architecture Unix Hardware Python Algorithms
Us Patents
Apparatus And Method For High-Throughput Asynchronous Communication With Flow Control
Jo C. Ebergen - San Francisco CA, US Justin M. Schauer - Palo Alto CA, US Robert D. Hopkins - Hayward CA, US Ivan E. Sutherland - Santa Monica CA, US
Assignee:
Sun Microsystems, Inc. - Santa Clara CA
International Classification:
H04L 12/28
US Classification:
3703954, 370236
Abstract:
One embodiment of the present invention provides a system that asynchronously controls sending data items from a sender to a receiver. This system includes a set of sending FIFOs, a set of receiving FIFOs, as well as a shared data path between the sender and the receiver. The system also includes a set of control paths that operate in parallel between the sender and the receiver, wherein a given control path controls the transmission of data items between a corresponding sending FIFO and a corresponding receiving FIFO through the shared data path. The system further includes a round-robin scheduling mechanism which activates one control path at a time in a predetermined sequence. An activated control path asynchronously controls the sending of a data item from a corresponding sending FIFO to a corresponding receiving FIFO. By operating the control paths in parallel in the predetermined sequence, the system does not have to wait a request-acknowledge cycle time between the sender and the receiver before sending consecutive data items through the shared data path, but can instead send multiple data items through the shared data path within a single request-acknowledge cycle time.
Determining Chip Separation By Comparing Coupling Capacitances
A semiconductor die includes proximity connectors proximate to a surface of the semiconductor die. This semiconductor die is configured to communicate signals with another semiconductor die via proximity communication through one or more of the proximity connectors. In particular, the proximity connectors include a first group of proximity connectors that is configured to facilitate determining a first separation between the semiconductor die and the other semiconductor die by comparing coupling capacitances between the semiconductor die and the other semiconductor die. Note that the first group of proximity connectors includes a first proximity connector and a second proximity connector, and the second proximity connector at least partially encloses an in-plane outer edge of the first proximity connector.
Method And Apparatus For Biasing A Floating Node In An Integrated Circuit
One embodiment of the present invention provides a system that biases a floating node within an integrated circuit. During operation, the system first identifies the floating node within the integrated circuit to be biased. The system then determines a desired bias voltage. Next, the system couples a low-power bias source to the floating node to supply the desired bias voltage, wherein the floating node is biased without stopping data transmission through the floating node during biasing.
Determining Chip Separation By Comparing Coupling Capacitances
Alex Chow - East Palo Alto CA, US Robert D. Hopkins - Hayward CA, US Justin M. Schauer - San Francisco CA, US
Assignee:
Oracle America, Inc. - Redwood Shores CA
International Classification:
H01L 21/00 H01L 21/66
US Classification:
438 14, 438 10, 438107, 257E21521
Abstract:
A semiconductor die includes proximity connectors proximate to a surface of the semiconductor die. This semiconductor die is configured to communicate signals with another semiconductor die via proximity communication through one or more of the proximity connectors. In particular, the proximity connectors include a first group of proximity connectors that is configured to facilitate determining a first separation between the semiconductor die and the other semiconductor die by comparing coupling capacitances between the semiconductor die and the other semiconductor die. Note that the first group of proximity connectors includes a first proximity connector and a second proximity connector, and the second proximity connector at least partially encloses an in-plane outer edge of the first proximity connector.
Voltage Margin Testing For Proximity Communication
A method of testing a proximity communication system for voltage margin by impressing a voltage upon the data link between the transmitter on one chip and the receiver on the other chip coupled to the transmitter through a capacitively coupling circuit formed by juxtaposed capacitor pads on the respective two chips. The impressed voltage is varied and the output of the receiver is monitored to determine an operational voltage margin. The floating inputs on the receiver may be continuously biased by connecting them to variable biasing supply voltages through high impedances. When the floating inputs are periodically refreshed to a refresh voltage during a quiescent data period, the refresh voltage is varied between successive refresh cycles. The variable test voltage may be applied to transmitter output when it is in a high-impedance state, and the output of the receiver is measured.
Offset voltages developed on floating nodes on inputs to high-performance amplifiers that are DC isolated from the data signals input to amplifiers are cancelled by connecting a highly resistive element between the input node and a predetermined potential, particularly useful in proximity communication systems in which two chips are connected through capacitive or inductive coupling circuits formed jointly in the two chips. The resistive element may be an off MOS transistor connected between the node and a desired bias voltage or a MOS transistor with its gate and drain connected to the potential. Multiple bias voltages may be distributed to all receivers and locally selected by a multiplexer for application to one or two input nodes of the receiver. The receiver output can also serve as a predetermined potential when the resistive element has a long time constant compared to the data rate or the resistive element is non-linear.
Measuring Chip-To-Chip Capacitance Differentials By Demodulating Signals Over A Capacitance Bridge
Alex Chow - East Palo Alto CA, US Robert D. Hopkins - Hayward CA, US Justin M. Schauer - Palo Alto CA, US
International Classification:
G01R 27/26
US Classification:
324681
Abstract:
In a method for determining capacitance, a first time-varying signal is driven on a first terminal of a first capacitor and a second time-varying signal is driven on a first terminal of a second capacitor, where the first time-varying signal and the second time-varying signal have a pre-determined phase relationship with each other.These signals are received on second terminals of the first capacitor and the second capacitor and demodulated using a periodic signal to produce demodulated signals. This periodic signal has the same fundamental frequency as the first time-varying signal and the second time-varying signal. A DC component in the demodulated signals is then determined by filtering the demodulated signals, and the sign of the DC component is used to determine a relative capacitance of the first capacitor and the second capacitor.
Hardware Implementation Of The Aggregation/Group By Operation: Filter Method
Justin Schauer - San Francisco CA, US Philip Amberg - San Jose CA, US
International Classification:
G06F 17/30
US Classification:
707722, 707E17082
Abstract:
Techniques are described for performing grouping and aggregation operations. In an embodiment, a request is received to aggregate data grouped by a first column. In response to receiving the request, values are loaded from the first column into an input cache. The values include values, from the first column, from a set of rows. A filter unit is programmed with logic to perform a comparison between a particular value, from the first column of a first row, and values in the first column of a plurality of rows, of the set of rows. Based on the comparison, a predicate result is generated that identifies rows, within the plurality of rows, that have a valued in the first column that matches the particular value. An aggregate value for a second column is generated by aggregating values, from the second column, of each of the rows identified by the predicate result.