Patents by Inventor William N. Joy

William N. Joy has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20040162971
    Abstract: A processor includes logic for attaining a very fast exception handling functionality while executing non-threaded programs by invoking a multithreaded-type functionality in response to an exception condition. The processor, while operating in multithreaded conditions or while executing non-threaded programs, progresses through multiple machine states during execution. The very fast exception handling logic includes connection of an exception signal line to thread select logic, causing an exception signal to evoke a switch in thread and machine state. The switch in thread and machine state causes the processor to enter and to exit the exception handler immediately, without waiting to drain the pipeline or queues and without the inherent timing penalty of the operating system's software saving and restoring of registers.
    Type: Application
    Filed: February 17, 2004
    Publication date: August 19, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: William N. Joy, Marc Tremblay, Gary Lauterbach, Joseph I. Chamdani
  • Patent number: 6725308
    Abstract: A computer processor includes a number of register pairs LOCKADD/LOCKCOUNT to hold values identifying when a computer resource is locked. The LOCKCOUNT register is incremented or decremented in response to lock or unlock instructions, respectively. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. In embodiments without LOCKOUT registers, the lock may be freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header in which two header LSBs store: (1) a LOCK bit indicating whether the object is locked, and (2) a WANT bit indicating whether a thread is waiting to acquire a lock for the object.
    Type: Grant
    Filed: November 5, 2002
    Date of Patent: April 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: William N. Joy, James Michael O'Connor, Marc Tremblay
  • Publication number: 20040064511
    Abstract: System and method for facilitating communications between peers in a peer-to-peer environment and network email clients. In one embodiment, network nodes including peer nodes may host mail transfer agents. The mail transfer agents may act as bridges between peer-to-peer protocols and email communication protocols. The mail transfer agents may communicate with peers according to peer-to-peer protocols and with email clients according to email communications protocols. Peers may communicate with mail transfer agents to send peer-to-peer messages to email clients. Email clients may communicate with the mail transfer agents to send email messages to and receive email messages from other email clients via the peer-to-peer network and to obtain peer-to-peer messages from peers.
    Type: Application
    Filed: August 29, 2002
    Publication date: April 1, 2004
    Inventors: Mohamed M. Abdel-Aziz, Bernard A. Traversat, Matthew Reid, Ingrid VanDenHoogen, William N. Joy, Michael J. Clary
  • Patent number: 6694347
    Abstract: A processor includes logic for attaining a very fast exception handling functionality while executing non-threaded programs by invoking a multithreaded-type functionality in response to an exception condition. The processor, while operating in multithreaded conditions or while executing non-threaded programs, progresses through multiple machine states during execution. The very fast exception handling logic includes connection of an exception signal line to thread select logic, causing an exception signal to evoke a switch in thread and machine state. The switch in thread and machine state causes the processor to enter and to exit the exception handler immediately, without waiting to drain the pipeline or queues and without the inherent timing penalty of the operating system's software saving and restoring of registers.
    Type: Grant
    Filed: February 12, 2002
    Date of Patent: February 17, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: William N. Joy, Marc Tremblay, Gary Lauterbach, Joseph I. Chamdani
  • Publication number: 20030191927
    Abstract: A processor reduces wasted cycle time resulting from stalling and idling, and increases the proportion of execution time, by supporting and implementing both vertical multithreading and horizontal multithreading. Vertical multithreading permits overlapping or “hiding” of cache miss wait times. In vertical multithreading, multiple hardware threads share the same processor pipeline. A hardware thread is typically a process, a lightweight process, a native thread, or the like in an operating system that supports multithreading. Horizontal multithreading increases parallelism within the processor circuit structure, for example within a single integrated circuit die that makes up a single-chip processor. To further increase system parallelism in some processor embodiments, multiple processor cores are formed in a single die. Advances in on-chip multiprocessor horizontal threading are gained as processor core sizes are reduced through technological advancements.
    Type: Application
    Filed: March 31, 2003
    Publication date: October 9, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: William N. Joy, Marc Tremblay, Gary Lauterbach, Joseph I. Chamdani
  • Publication number: 20030070021
    Abstract: A computer processor includes a number of register pairs LOCKADDR/LOCKCOUNT. In each pair, the LOCKADDR/LOCKCOUNT register is to hold a value that identifies a lock for a computer resource. When a lock instruction issues, the corresponding LOCKCOUNT register is incremented. When an unlock instruction issues, the corresponding LOCKCOUNT register is decremented. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. This scheme provides fast locking and unlocking in many frequently occurring situations. In some embodiments, the LOCKCOUNT registers are omitted, and the lock is freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header which include a pointer to a class structure. The class structure is aligned on a 4-byte boundary, and therefore two LSBs of the pointer to the class structure are zero and are not stored in the header.
    Type: Application
    Filed: November 5, 2002
    Publication date: April 10, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: William N. Joy, James Michael O'Connor, Marc Tremblay
  • Patent number: 6542991
    Abstract: A processor includes logic for tagging a thread identifier (TID) for usage with processor blocks that are not stalled. Pertinent non-stalling blocks include caches, translation look-aside buffers (TLB), a load buffer asynchronous interface, an external memory management unit (MMU) interface, and others. A processor includes a cache that is segregated into a plurality of N cache parts. Cache segregation avoids interference, “pollution”, or “cross-talk” between threads. One technique for cache segregation utilizes logic for storing and communicating thread identification (TID) bits. The cache utilizes cache indexing logic. For example, the TID bits can be inserted at the most significant bits of the cache index.
    Type: Grant
    Filed: May 11, 1999
    Date of Patent: April 1, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: William N. Joy, Marc Tremblay, Gary Lauterbach, Joseph I. Chamdani
  • Patent number: 6529982
    Abstract: A computer processor includes a number of register pairs LOCKADDR/LOCKCOUNT. In each pair, the LOCKADDR/LOCKCOUNT register is to hold a value that identifies a lock for a computer resource. When a lock instruction issues, the corresponding LOCKCOUNT register is incremented. When an unlock instruction issues, the corresponding LOCKCOUNT register is decremented. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. This scheme provides fast locking and unlocking in many frequently occurring situations. In some embodiments, the LOCKCOUNT registers are omitted, and the lock is freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header which includes a pointer to a class structure. The class structure is aligned on a 4-byte boundary, and therefore two LSBs of the pointer to the class structure are zero and are not stored in the header.
    Type: Grant
    Filed: April 21, 1999
    Date of Patent: March 4, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: William N. Joy, James Michael O'Connor, Marc Tremblay
  • Publication number: 20030014612
    Abstract: A processor improves throughput efficiency and exploits increased parallelism by introducing multithreading to an existing and mature processor core. The multithreading is implemented in two steps including vertical multithreading and horizontal multithreading. The processor core is retrofitted to support multiple machine states. System embodiments that exploit retrofitting of an existing processor core advantageously leverage hundreds of man-years of hardware and software development by extending the lifetime of a proven processor pipeline generation. A processor implements N-bit flip-flop global substitution. To implement multiple machine states, the processor converts 1-bit flip-flops in storage cells of the stalling vertical thread to an N-bit global flip-flop where N is the number of vertical threads.
    Type: Application
    Filed: May 11, 1999
    Publication date: January 16, 2003
    Inventors: WILLIAM N. JOY, MARC TREMBLAY, GARY LAUTERBACH, JOSEPH I. CHAMDANI
  • Patent number: 6507862
    Abstract: A processor includes logic for attaining a very fast exception handling functionality while executing non-threaded programs by invoking a multithreaded-type functionality in response to an exception condition. The processor, while operating in multithreaded conditions or while executing non-threaded programs, progresses through multiple machine states during execution. The very fast exception handling logic includes connection of an exception signal line to thread select logic, causing an exception signal to evoke a switch in thread and machine state. The switch in thread and machine state causes the processor to enter and to exit the exception handler immediately, without waiting to drain the pipeline or queues and without the inherent timing penalty of the operating system's software saving and restoring of registers.
    Type: Grant
    Filed: May 11, 1999
    Date of Patent: January 14, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: William N. Joy, Marc Tremblay, Gary Lauterbach, Joseph I. Chamdani
  • Publication number: 20030002521
    Abstract: A system and method for providing resources to networked devices for participating in a peer-to-peer environment. In one embodiment, a peer computing system on a network may include one or more bootstrap nodes that may provide, to devices coupled to the network, mechanisms for accessing resources for participating in the peer-to-peer environment. The bootstrap nodes may be peer nodes. The resources may give the devices access to services each of which may implement peer-to-peer platform protocols. The devices may be pre-configured to access one or more predefined peer nodes for information on bootstrap nodes. Alternatively, devices may use a bootstrapping mechanism to locate bootstrap nodes on the network.
    Type: Application
    Filed: January 22, 2002
    Publication date: January 2, 2003
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020188657
    Abstract: A system and method for uniquely identifying peers and other resources in a peer-to-peer networking environment. In one embodiment, every peer in the peer-to-peer network may have a unique peer identifier. Other peer-to-peer network resources may also have unique identifiers, including peer groups, services, applications, pipes, endpoints, content and resource advertisements. Identifiers may serve to canonically refer to resources. Identifiers may be embedded in advertisements for resources. In one embodiment, a peer identifier may identify a peer group in which the peer is a member peer. In one embodiment, a peer may have a different peer identifier for each group in which it is a member peer. In one embodiment, an identifier may be bound to a network address of the resource. If the resource changes network addresses, the identifier may be bound to the new network address. Thus, identifiers provide dynamic addressing for resources in the peer-to-peer environment.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 12, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William N. Joy, Michael J. Clary
  • Publication number: 20020184357
    Abstract: A system and method for providing rendezvous nodes in a peer-to-peer networking environment is described. Rendezvous nodes preferably cache information about network resources that may be useful to peer nodes on a peer-to-peer network. In one embodiment, a network of rendezvous nodes may help peer nodes to discover network resources over long-range on the peer-to-peer network. Network resource may include, but may not be limited to peer nodes, peer groups, services, content, and communication channels. In one embodiment, rendezvous nodes may respond to discovery query messages from peer nodes. The discovery query messages may specify desired network resource information. In one embodiment, rendezvous nodes may provide route discovery for network resources. In one embodiment, a peer node may be pre-configured with a pre-defined set of rendezvous nodes to access on startup. These bootstrapping rendezvous may help the peer node discover network resources that it needs to start up.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Li Gong, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020184358
    Abstract: A system and method for establishing communications channels between and among peers in a peer-to-peer networking environment. Pipes may be used as communication channels for sending and receiving messages and other data between services or applications over input and output endpoints. Pipes may be asynchronous, unidirectional, stateless and unreliable. Bidirectional pipes may also be supported. Pipes may have ends that may be moved around and bound to different peers at different times. Point-to-point and propagate pipes may be supported. Pipes may connect peers that have a direct physical link and peers that do not have a direct link. Peers may communicate through pipes without knowing on which peer a pipe endpoint is bound. A message is sent to all peer endpoints currently connected (listening) to the pipe. The set of connected endpoints may be obtained from a pipe service using a pipe binding protocol.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020184310
    Abstract: A system and method for providing peer groups in a peer-to-peer environment. A peer group may be one or more peers in a peer-to-peer environment that share a set of network services and content. A peer group may define an implicit scope for messages originating from members peers of the peer group. A peer group may provide redundant services and content for greater reliability. In one embodiment, interaction among peers and peer groups in the peer-to-peer environment may be implemented using protocols that are platform-independent as to programming language implementations and network transports. In one embodiment, peers may discover existing peer groups and join the existing peer groups. In one embodiment, peers may create new peer groups.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020184311
    Abstract: A peer-to-peer platform that may provide mechanisms through which peers may discover each other, communicate with each other, and cooperate with each other to form peer groups is described. The peer-to-peer platform may comprise several layers including a peer-to-peer platform layer, a peer-to-peer services layer, and a peer-to-peer applications layer. At the highest abstraction level, the peer-to-peer platform may be viewed as a set of protocols. Each protocol may be defined by one or more messages exchanged among participants of the protocol. In one embodiment, the peer-to-peer platform may include, but is not limited to, one or more of a peer discovery protocol, a peer resolver protocol, a peer information protocol, a peer membership protocol, a pipe binding protocol, and an endpoint routing protocol. To underpin this set of protocols, the peer-to-peer platform may define a number of concepts including peer, peer group, advertisement, message, pipe, and endpoint.
    Type: Application
    Filed: January 22, 2002
    Publication date: December 5, 2002
    Inventors: Bernard A. Traversat, Gregory L. Slaughter, Thomas E. Saulpaugh, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020161954
    Abstract: A computer processor includes a number of register pairs LOCKADDR/LOCKCOUNT. In each pair, the LOCKADDR/LOCKCOUNT register is to hold a value that identifies a lock for a computer resource. When a lock instruction issues, the corresponding LOCKCOUNT register is incremented. When an unlock instruction issues, the corresponding LOCKCOUNT register is decremented. The lock is freed when a count associated with the LOCKCOUNT register is decremented to zero. This scheme provides fast locking and unlocking in many frequently occurring situations. In some embodiments, the LOCKCOUNT registers are omitted, and the lock is freed on any unlock instruction corresponding to the lock. In some embodiments, a computer object includes a header which include a pointer to a class structure. The class structure is aligned on a 4-byte boundary, and therefore two LSBs of the pointer to the class structure are zero and are not stored in the header.
    Type: Application
    Filed: April 21, 1999
    Publication date: October 31, 2002
    Inventors: WILLIAM N. JOY, JAMES MICHAEL O' CONNOR, MARC TREMBLAY
  • Publication number: 20020152299
    Abstract: Embodiments of a system and method for establishing reliable connections between peers in a peer-to-peer networking environment. In one embodiment, a reliable communications channel may use transmit and receive windows, acknowledgement of received messages, and retransmission of messages not received to provide reliable delivery of messages between peers in the peer-to-peer environment. In one embodiment, each message may include a sequence number configured for use in maintaining ordering of received messages on a receiving peer. A communications channel may make multiple hops on a network, and different hops in the connection may use different underlying network protocols. Communications channels may also pass through one or more firewalls and/or one or more gateways on the network. A communications channel may also pass through one or more router (relay) peers on the network. The peers may adjust the sizes of the transmit and receive window based upon reliability of the connection.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 17, 2002
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, William N. Joy, Michael J. Clary
  • Publication number: 20020147810
    Abstract: A system and method for sending, resolving, and receiving queries for information on the status of network resources. A peer computing system may include one or more resolver nodes on a network for resolving queries for a resource to particular resource instances. The resolver nodes may receive query messages from peer nodes on the network. Each query message may request information about a resource implemented by one or more peer nodes on the network. The query messages may be formatted in accordance with a peer resolver protocol. The resolver node may determine a particular instance of the resource hosted on a particular peer node to receive the query. The resolver node may use a variety of criteria to determine a particular resource instance. The resolver node may forward the query message to the determined resource instance.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 10, 2002
    Inventors: Bernard A. Traversat, Li Gong, William J. Yeager, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, William N. Joy, Michael J. Clary
  • Publication number: 20020147771
    Abstract: A system and method for providing an open network computing platform designed for peer-to-peer computing. The peer-to-peer platform may provide protocols for peer-to-peer services and applications that allow peers to discover each other, communicate with each other, and cooperate with each other to form peer groups. The protocols may include a peer membership protocol, a peer discovery protocol, a peer resolver protocol, a peer information protocol, a pipe binding protocol, and a peer endpoint protocol. Services and applications that participate in the protocols may be provided to deal with higher-level concepts. Advertisements may be used to publish peer resources. The peer-to-peer platform provides the ability to replicate information toward end users and may enable peers to find content that is closest to them. The peer-to-peer protocols and unique peer identifiers may allow peer nodes to move to different locations and access services and other content independent of network physical addresses.
    Type: Application
    Filed: January 22, 2002
    Publication date: October 10, 2002
    Inventors: Bernard A. Traversat, Gregory L. Slaughter, Thomas E. Saulpaugh, Mohamed M. Abdelaziz, Michael J. Duigou, Eric Pouyoul, Jean-Christophe Hugly, Li Gong, William J. Yeager, Kuldipsingh Pabla, William N. Joy, Michael J. Clary