Event distribution device, system, and method
The hardware-based event distribution system addresses the inefficiencies in scalable test and measurement systems by using a switch with capture devices and comparators to efficiently route events across multiple systems, achieving reduced resource usage and effective event distribution.
Patent Information
- Application Number
- JP2025137302
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-08-04
- Filing Date
- 2025-08-20
- Publication Date
- 2026-03-05
AI Technical Summary
Scalable test and measurement system architectures face challenges in efficiently distributing events due to the need for large hardware resources that do not scale well as the number of event generators and detectors increase, especially when multiple systems are chained together, leading to an O(n^2) resource growth rate.
A hardware-based event distribution system is implemented using a switch with capture devices, a batching broadcaster, and comparators that efficiently route events by batching and comparing event identifiers, reducing resource requirements to O(n) for N event generators and M detectors.
The solution allows for scalable and modular event distribution across multiple systems with reduced hardware resources, enabling efficient event distribution even as the system changes at runtime, while minimizing jitter by clocking faster than event generation rates.
Smart Images

Figure 2026036688000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to an event distribution mechanism for use in a test and measurement system, and more particularly to scalable hardware-based event distribution processing in a test and measurement system. [Background technology]
[0002] Part of a scalable test and measurement system architecture requires an event distribution solution that can scale efficiently to much larger systems. Some scalable test and measurement system architectures include an interface or system that can interact with one or more test and measurement instruments and describe a sequence of events. An example of a sequence used with a source measure unit (SMU) might be: (1) Wait for a rising edge on digital input pin (DIGIO) 1. (2) Set the source level on SMU channel 1 in SMU slot 1. (3) Wait 100 μs. (4) Measure the current on SMU channel 1 in SMU slot 1.
[0003] This example of a sequence of events can be generalized to a generic system consisting of "event generators" and "event detectors." An event generator is a component within a system that can asynchronously generate different unique events. An event detector is a component within a system that can be configured to listen for any unique event within the system. The challenges presented by some scalable test and measurement system architectures are twofold. First, some scalable test and measurement system architectures require a very large number of event generators and detectors. Second, some scalable test and measurement system architectures are intended to be modular, which means they must be scalable to accommodate the scale of events at run time. Furthermore, in some instances, multiple modular, scalable test and measurement system architectures must be chained together into a single system, delivering events from any one point in the system to any other point in the system.
[0004] In some products, event distribution is achieved by a single multiplexer. This multiplexer can be designed as a large switch board. The local detectors on this switch board can be connected to any local event generator in the system through software. Once these connections between the detectors and the event generators are established, events are distributed from the event generators to the detectors using hardware alone, without software intervention. A hardware implementation of this switch board is a large multidimensional multiplexer. For example, in a local system with N event generators and M event detectors, each event detector can be configured to listen to any of the event generators. Because each event detector can be configured to listen to any of the event generators, every event detector must select one of the N event generators to connect to. This connection of event detectors is realized as an N-to-1 multiplexer. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-154400 [Non-patent literature]
[0006] [Non-Patent Document 1] "Keithley Source Measure Unit," Tektronix / Keithley, [Online], [Retrieved August 20, 2025], Internet<https: / / www.tek.com / ja / products / keithley / source-measure-units> Summary of the Invention [Problem to be solved by the invention]
[0007] In general, this type of multiplexer does not scale well as N increases. For example, in an example system containing M event detectors, a total of M N-to-1 multiplexers are required to achieve full event distribution across the system. As a result, the main problem with this example implementation is that the hardware resources to implement the N-to-1 multiplexer do not scale well as the number of event generators increases. Furthermore, this large piece of hardware must be replicated, one for each event detector in the system. For an N x M system where N and M are similar in size, the resource growth rate is roughly O(n 2 )
[0008] Some scalable test and measurement system architectures cannot utilize this solution because of the reality that each local system has a very large number of event generators and detectors, and the implementation of event distribution must be distributed across hardware to ensure modularity and scalability. These constraints mean that a solution is needed that connects and integrates multiple local systems of event generators and detectors and enables distribution between these distributed systems. [Means for solving the problem]
[0009] Example embodiments of the present disclosure provide devices, systems, and methods that can be used for scalable hardware-based event distribution. Example embodiments of the present disclosure include a switch coupled to an event generator and an event detector and configured to distribute events from the event generator to the event detector in a hardware-based manner. The present disclosure also includes dividing a large overall system into multiple smaller local systems that can be dynamically connected. A local system is simply defined as a collection of unique event generators and event detectors, each with its own unique event generator and event detector, and a switch that can be configured to connect the event detectors to the event generators. An event generator is a component within a system that can asynchronously generate unique events. An event detector is a component within a system that can be configured to listen for any unique event within the system.
[0010] In order to further facilitate a detailed understanding of the above-mentioned features, a more particular description of the above briefly summarized description will now be given by reference to example embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the accompanying drawings illustrate only exemplary embodiments and therefore should not be considered as limiting the scope thereof. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 illustrates a local system for hardware event delivery, according to some example embodiments. [Figure 2] FIG. 2 is a flowchart illustrating the operation of the switch of FIG. 1, according to some example embodiments. [Figure 3] FIG. 3 illustrates a larger system with two symmetrically connected local systems, according to some example embodiments. [Figure 4] FIG. 4 illustrates a system having multiple local systems, according to some example embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0012] To facilitate understanding, the same reference numerals have been used, wherever possible, to designate identical elements that are common to multiple figures, with the understanding that elements of one example embodiment may be effectively incorporated into other example embodiments.
[0013] Various features will now be described with reference to the figures. It should be noted that the figures may or may not be drawn to the same scale, and elements of similar structure or function are represented by similar reference numerals throughout the figures. It should be noted that the figures are intended only to simplify the description of the features. They are not intended to be exhaustive or limiting of the scope of the claims.
[0014] Furthermore, the example embodiments described need not have all the aspects or advantages shown, and aspects or advantages described in connection with a particular example embodiment are not necessarily limited to that example embodiment and may be implemented in other example embodiments even if not so described or explicitly described.
[0015] FIG. 1 illustrates a local system for hardware event distribution processing according to some example embodiments. As shown in FIG. 1, the local system 100 includes an event generator 104, an event detector 120, and a switch 106. The switch 106 allows the event detector 120 in the local system 100 to be configured by software to listen to information from any of the event generators 104 in the local system 100. As shown in FIG. 1, the local system 100 includes N event generators 104 and M event detectors 120. However, the local system 100 may include any number of event generators 104 and event detectors 120. In some examples, the number of event generators 104 in the local system 100 is equal to the number of event detectors 120, and the local system 100 includes one event detector 120 for each event generator 104. For purposes of this description, any description or reference to one or more event generators 104 (e.g., event generator 104(1), event generator 104(2), event generator 104(N)) may apply to any of the event generators 104, and any description or reference to one or more event detectors 120 (e.g., detector 120(1), detector 120(2), detector 120(M)) may apply to any of the detectors 120. Each event generator 104 is coupled to an input of the switch 106, and each event detector 120 is coupled to an output of the switch 106. Examples of event generators 104 include, but are not limited to, an edge detector on an external digital input pin (DIGIO), a compliance detector on an SMU output signal, and a software-driven general-purpose event generator. Examples of event detectors 120 include, but are not limited to, a device that waits for an edge generation on an external digital input pin (DIGIO), an SMU measurement trigger, a trigger to change the source of an SMU, and a software-controlled general-purpose event generation.
[0016] In a local system having N event generators and M event detectors, each event detector 120 can be set or configured to listen to information from any of the event generators 104. Since each event detector 120 can be set to listen to information from any of the event generators 104, each event detector 120 must select one event generator 104 to connect to from among the N event generators 104. Once one event detector 120 in the local system 100 is set to listen to information from one event generator 104 in the local system 100, whenever that event generator 104 in the local system 100 generates an event, the switch 106 in the local system 100 distributes the event to that event detector 120 in the local system 100, notifying the event detector 120 in the local system 100 that an event has occurred.
[0017] As mentioned above, the switch connecting the event generators and event detectors may be a very large multiplexer capable of simultaneously routing any event generator signal to any event detector. Thus, in a system with N event generators and M event detectors, a total of M N-to-1 multiplexers would be required to fully implement such a system. In some examples, the switch may limit the number of events it can route to one event in any given clock cycle. In most applications, this event limit will be imperceptible to the user if the clock is fast enough. In some example embodiments, limiting the number of events routed in a single clock cycle allows the switch 106 in the local system 100 to route events in batches, utilizing much fewer hardware resources.
[0018] FIG. 1 also illustrates details of a switch according to the present disclosure. The switch 106 includes a capture device 108, a batching broadcaster 110, and a comparator 114. As shown in FIG. 1, the local system 100 includes N capture devices 108 and M comparators 114. However, the local system 100 may include any number of capture devices 108 and comparators 114. In some example embodiments, the number of capture devices 108 in the local system 100 is equal to the number of event generators 104, and the local system 100 includes one capture device for each event generator 104. Similarly, in some example embodiments, the number of comparators 114 in the local system 100 is equal to the number of event detectors 120, and the local system 100 includes one comparator 114 for each event detector 120. For purposes of this description, any description or reference to a capture device 108 (e.g., capture device 108(1), capture device 108(2), capture device 108(N)) may apply to any capture device 108, and any description or reference to a comparator 114 (e.g., comparator 114(1), comparator 114(2), comparator 114(M)) may apply to any comparator 114. Each capture device 108 is coupled to one input of switch 106 and one input of batching broadcaster 110, and each comparator 114 is coupled to one output of switch 106 and to the output of batching broadcaster 110 via shared bus 112. Examples of capture devices 108 include resources such as memory or logic circuits. The capture device 108, batching broadcaster 110, and comparator 114 may be implemented as an FPGA using register transfer level (RTL) code. The switch 106 may also include other components (not shown) necessary to facilitate the operation of the switch 106, such as a processor, memory, etc.
[0019] 2 is a flowchart illustrating the operation of the switch 106 of FIG. 1 in accordance with some embodiments of the disclosed technology. As shown, the flowchart 200 of the operation of the switch 106 of FIG. 1 can be described in three steps: step 210, step 220, and step 230. Prior to the initiation of these steps, the switch 106 is configured or set up to deliver events from the event generators 104 of FIG. 1 to the event detectors 120. Such configuration of the switch 106 may include, but is not limited to, setting the input / output ports of the switch 106, setting the capture device 108 to receive events, setting the capture device 108 to listen for information from specific event generators, setting the batching broadcaster 110, setting the comparator 114 to output to specific event detectors, setting the clock speed of the switch 106, etc. In some example embodiments, the switch 106 operates based on a clock rate that is faster than the clock rate of the event generators 104. In some example embodiments, the clock speed of the switch 106 is faster than the rate of events being generated by the event generator 104 or received by the switch 106. In further examples, the clock speed of the switch 106 is faster (e.g., 10 or 100 times) than the expected rate of event generation to prevent event loss.
[0020] The first step 210 of the operational flowchart 200 of the switch 106 involves capturing an event from the event generator 104 when the event occurs. When an event occurs, the event is passed from the event generator 104 to the switch 106, and the capture device 108 is configured to receive the event from the event generator 104. During the first step 210, the batch processing broadcaster 110 retrieves the captured event from the capture device 108, and the batch processing broadcaster 110 clears the captured event from the capture device 108 whenever it is not currently broadcasting an event. In some example embodiments, multiple events occur during one clock cycle. Thus, when the capture device 108 determines that an event has occurred, it holds the event until the batch processing broadcaster 110 is able to process it. Then, once the batching broadcaster 110 has processed the event, it clears the event from the capture device 108, allowing the capture device 108 to capture another event again. When the event producer 104 generates an event to pass to the switch 106, the event producer 104 includes an identifier as part of the event. Depending on the settings or configuration of the switch 106, this identifier can indicate the destination event detector or the originating event producer.
[0021] Once the batching broadcaster 110 receives these events, the switch 106 proceeds to a second step 220 of the operational flowchart 200, where the batching broadcaster 110 begins broadcasting multiple events in a batch onto the shared bus 112, one event at a time. In some examples, the batching broadcaster 110 broadcasts a compact encoding of the batched events, which includes a binary representation of the event identifier. In some examples, the batching broadcaster 110 performs an intermediate process of broadcasting events in a batch onto the shared bus 112, while the batching broadcaster 110 is receiving events from the capture devices 108. Thus, the batching broadcaster 110 continues to track the events received from the capture devices 108 as it performs the broadcast process 220. Additionally, in some examples, while the batching broadcaster 110 continues to send events to the comparators 114 via the shared bus 112, it keeps track of multiple events in the form of a queue or any other structure capable of storing multiple events. The multiple events stored in the batching broadcaster 110 may be referred to herein as a batch of events, and a batch of events may include any number of events. For a batch of events, the batching broadcaster 110 broadcasts each event in the batch of events to each comparator 114, one at a time per clock cycle.
[0022] During a third step 230, each of the comparators 114 receives the broadcast events and compares them with the programmable register 116. Each comparator 114 has a programmable register 116 and is coupled to an output terminal of the switch 106 and to an event detector 120 to provide its output signal. As shown in FIG. 1, the switch 106 has M comparators 114 and M output terminals, each of which is coupled to one of the M event detectors 120. Thus, each comparator 114 corresponds to one of the M event detectors 120, and as a result, each event detector 120 is configured to listen to information from a specific one of the event generators 104. Therefore, the programmable register 116 of each comparator 114 is set or configured to have an identifier representing the corresponding event generator 104 from which the corresponding event detector 120 wishes to obtain information.
[0023] When the batching broadcaster 110 broadcasts an event on the shared bus 112 to the comparator 114, the transmission or broadcast includes information about where the event originated (i.e., the event generator 104 that generated the event). In some examples, the event origin information is an identifier representing the event generator 104. The comparator 114 detects the event generator identifier (ID) and delivers the event to the event detector 120, which listens for information about the event generator associated with the event generator ID. For example, the programmable register 116 of the comparator 114 may have an identifier value of 1 corresponding to the event generator identifier of a particular event generator (e.g., event generator 104(1)), and the comparator 114 is coupled to one output terminal of the switch 106, which is in turn coupled to an event detector set or configured to listen for information about the particular event generator. Thus, if the event identifier (ID) broadcast with the event matches the event generator identifier (ID) stored in the programmable register 116 of the comparator 114, the comparator 114 allows the broadcasted event to pass through the output terminal of the switch 106, thereby delivering the broadcasted event to the event detection device 120 specified by the event identifier during step 230.
[0024] The hardware resources required to implement this type of switch scale much more efficiently than previous approaches. For a local system with N event generators and M event detectors, the number of resources required to implement this type of switch is approximately M+ceil(log2(M))*N. We previously considered a product where N and M are similar in size, and in this case the implementation scales at O(n), which is much faster than the previous O(n 2 ) is an improvement over the increase or decrease in
[0025] In some examples, a local system 100 has a fixed number of unique event generators 104 and event detectors 120, determined by hardware constraints, but much larger systems can be achieved at runtime by connecting multiple local systems using the concept of bridge events.
[0026] Figure 3 illustrates a larger system with two symmetrically connected local systems, according to some examples. An event detector on local system B 302B can be configured to listen to an event generator on local system A 302A in the following ways: (1) Configure a bridge event detector on local system A to listen to a target event generator on local system A; (2) Configure a target event detector on local system B to listen to a paired bridge event generator on local system B. Bridge events may have unique event identifiers (IDs) for each local system used to bridge events from one local system to another. Bridge events are independent of the physical media used to transport events from one physical location to another. Examples of physical media may include TSP-Link, USB, or proprietary serial communications.
[0027] 3, the event distribution system 300 comprises two local systems 302A and 302B. There may be any number of local systems in the event distribution system 300, and each local system may be configured to correspond to the number of local systems in the system 300. For purposes of this description, any discussion or reference to local system 302 shall refer to either local system 302A or local system 302B.
[0028] Each of the local systems 302 includes a switch 106, an event generator 104, and an event detector 120. As shown in FIG. 3, each local system 302 includes N event generators 104 and M event detectors 120, although a local system 302 may include any number of event generators 104 and event detectors 120. Each of the local systems 302 also includes a bridge event generator 304 and a bridge event detector 320. That is, local system 302A includes a bridge event generator 304(A) and a bridge event detector 320(A), and local system 302B includes a bridge event generator 304(B) and a bridge event detector 320(B). As shown in FIG. 3, system 300 includes X bridge event generators 304 and Y bridge event detectors 320. However, each local system 302 can have any number of bridge event generators 304 and bridge event detectors 320. For purposes of this description, any discussion or reference to a bridge event generator 304 or bridge event detector 320 refers to either the bridge event generator 304 of local system 302A or the bridge event detector 320 of local system 302A or 302B, respectively. Each bridge event generator 304 and bridge event detector 320 in one local system is paired with a bridge event detector 320 or bridge event generator 304 in another connected local system. For example, bridge event generator 304(A)(1) in local system 302A is paired with bridge event detector 320(B)(1) in local system 302B.
[0029] Each local system 302 knows the unique event identifier (ID) defined for that local system. In this example, the event distribution hardware on local system 302B does not need information about local system 302A, but can notify event detector 120(B) on local system 302B that an event has occurred on local system 302A (i.e., event generator 104(A) of local system 302A has generated an event).
[0030] When multiple local systems are interconnected, the number of bridged events need not be symmetric. That is, in some example embodiments, bridged events may be generated by any combination of local systems. For example, local system 302A may generate all bridged events, while local system 302B may generate no bridged events. When two local systems are coupled, bridge events can be used to deliver events from one local system to the other local system, as long as each local system provides bridged events to the other system.
[0031] FIG. 4 illustrates a system having multiple local systems according to some example embodiments. Specifically, FIG. 4 illustrates a method for notifying an event detector on local system B of an event that occurs on local system C. As shown in FIG. 4, event distribution system 400 includes local systems 302A, 302B, and 302C. As with FIG. 3, for purposes of this description, any discussion or reference to local system 302 will refer to local system 302A, local system 302B, or local system 302C. Each of local systems 302 includes a switch 106, an event generator 104, and an event detector 120. As shown in FIG. 4, like local systems 100 and 300, system 400 may include any number of event generators 104 and event detectors 120. However, for clarity of explanation, local system 302 will be considered to include N event generators 104 and M event detectors 120. Additionally, each of the local systems 302 may include any number of bridge event generators 304 and bridge event detectors 320. However, for ease of explanation, local system 302A may include X bridge event generators 304(A) and Y bridge event detectors 320(A), local system 302B may include bridge event generators 304(B) and bridge event detectors 320(B), and local system 302C may include bridge event generators 304(C) and bridge event detectors 320(C). For purposes of this explanation, any discussion or reference to a bridge event generator 304 or bridge event detector 320 may refer to any of bridge event generators 304(A), 304(B), and 304(C) or bridge event detectors 320(A), 320(B), and 320(C), respectively.
[0032] In the exemplary system 400, local system 302A is coupled between local system 302B and local system 302C. Because local system 302A is coupled to local systems 302B and 302C, it can notify an event detector on local system 302B of events that occur on local system 302C. This notification may be achieved, for example, by configuring each switch in the three local systems 302 to route events through a local system configured as a pass-through local system. In the example system 400 shown in FIG. 4, local system 302A functions as a pass-through local system, whereby events generated on connected local system 302C are passed through local system 302A to another connected local system 302B. In some examples, any of the three local systems 302 in the system 400 can be a pass-through local system, and each of the other local systems 302 in the system 400 is coupled to the pass-through local system via a respective bridge event generator 304 and bridge event detector 320. In some examples, the system 400 may have any number of pass-through local systems.
[0033] Each bridge event generator 304 and bridge event detector 320 in a local system is paired with a bridge event detector 320 or bridge event generator 304 in another connected local system. For example, as shown in FIG. 4, bridge event generator 304(B) of local system 302B is paired with bridge event detector 320(A)(1) of local system 302A, bridge event generator 304(C) of local system 302C is paired with bridge event detector 320(A)(Y) of local system 302A, bridge event generator 304(A)(1) of local system 302A is paired with bridge event detector 320(B) of local system 302B, and bridge event generator 304(A)(X) of local system 302A is paired with bridge event detector 320(C) of local system 302C.
[0034] An event may originate in a connected local system to a pass-through local system that passes it to an event detector in a local system that is not directly connected. For example, event generator 104(C)(1) in local system 302C generates an event for event detector 120(B)(1) in local system 302B. Thus, in this example, the event passes through system 400 via the dotted path shown in FIG. 4.
[0035] In the exemplary system 400, the switch 106C of the local system 302C distributes an event generated by the event generator 104(C)(1) of the local system 302C to the bridge event detector 320(C) of the local system 302C. Specifically, the switch 106C of the local system 302C determines that the event identifier (ID) associated with the event does not correspond to any of the detectors 120C of the local system 302C, and therefore the switch 106C of the local system 302C broadcasts the event to the bridge event detector 320(C) and M detectors 120(C). Because bridge event detector 320(C) of local system 302C and bridge event generator 304(A)(X) of local system 302A are coupled and communicate with each other, bridge event detector 320(C) of local system 302C communicates events to bridge event generator 304(A)(X) of local system 302A, which distributes the events from bridge event generator 304(A)(X) through switch 106A. Similar to switch 106C in local system 302C, switch 106A in local system 302A determines that the event identifier associated with the event does not correspond to any of the event detectors 120(A) in local system 302A. Therefore, switch 106A in local system 302A broadcasts the event to bridge event detector 320(A)(1) and M event detectors 120(A) coupled to switch 106A. The event is delivered to bridge event detector 320(A)(1) with the event identifier (ID) corresponding to the contents of a programmable register in bridge event detector 320(A)(1). Bridge event detector 320(A)(1) communicates the event to bridge event generator 304(B) in local system 302B. Local system 302B processes the event from bridge event generator 304(B) by delivering the event through switch 106B.
[0036] At this point, switch 106B of local system 302B determines that the event identifier associated with this event corresponds to event detection device 120(B)(1) of local system 302B, and therefore switch 106B of local system 302B delivers the event to event detection device 120(B)(1), which is the intended target of the event generated by event generation device 104(C)(1) of local system 302C.
[0037] This concept allows for system-wide event distribution even as the entire system changes at runtime. Any event can be distributed from an event generator in any local system to any event detector in any local system, as long as each local system can be configured to distribute events to neighboring local systems. Thus, the disclosed technology achieves the goal of event distribution in distributed systems that change at runtime. The advantages of this approach to event distribution processing are resource efficiency when scaling up the system and the ability to distribute events throughout the system even as the entire system changes at runtime.
[0038] A negative side to these advantages is the potential for jitter. These switches can broadcast one event at a time. Broadcasting one event at a time is fine if only one event occurs at a time. In this case, all events propagate from the local event generator to the local event detector within a predictable time. However, in a real system, events can occur at any time, with uncertain time relationships between them. Even if two events occur simultaneously, they must be broadcast one at a time. Therefore, the second event takes longer to propagate to the event detector than the first. This propagation time varies based on the number of simultaneous events, potentially introducing jitter proportional to the number of simultaneous events. In most applications, the amount of jitter introduced is within specifications and is generally not a problem. To minimize the number of simultaneous events relative to the switch, it is beneficial to clock the switch logic at a rate much faster than the events occur.
[0039] Aspects of the disclosed technology can operate on specially created hardware, firmware, digital signal processors, or specially programmed general-purpose computers, including processors that operate according to programmed instructions. The terms "controller" or "processor" herein contemplate microprocessors, microcomputers, ASICs, and dedicated hardware controllers, among others. Aspects of the disclosed technology can be embodied in computer-usable data and computer-executable instructions, such as one or more program modules, executed by one or more computers (including a monitoring module) or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc., which, when executed by a processor in a computer or other device, perform particular tasks or implement particular abstract data types. Computer-executable instructions may be stored in computer-readable storage media, such as hard disks, optical disks, removable storage media, solid-state memory, RAM, etc. Those skilled in the art will appreciate that the functionality of the program modules may be combined or distributed as desired in various example embodiments. Furthermore, such functionality may be embodied in whole or in part in firmware or hardware equivalents, such as integrated circuits, field programmable gate arrays (FPGAs), etc. Certain data structures may be used to more effectively implement one or more aspects of the disclosed technology, and such data structures are considered within the scope of the computer-executable instructions and computer-usable data described herein.
[0040] The disclosed aspects may, in some cases, be implemented in hardware, firmware, software, or any combination thereof. The disclosed aspects may also be implemented as instructions carried by or stored on one or more computer-readable media, which may be read and executed by one or more processors. Such instructions may be referred to as a computer program product. As used herein, computer-readable media refers to any medium that can be accessed by a computing device. By way of example, and not limitation, computer-readable media may include computer storage media and communication media.
[0041] "Computer storage media" means any medium that can be used to store computer-readable information. By way of example and not limitation, computer storage media may include random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory and other memory technologies, compact disc read-only memory (CD-ROM), digital video disc (DVD) and other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage and other magnetic storage devices, and any other volatile or nonvolatile, removable or non-removable medium implemented in any technology. "Computer storage media" excludes signals themselves and transitory forms of signal transmission.
[0042] A communication medium means any medium usable for communicating computer-readable information. By way of example, and not limitation, communication media may include coaxial cable, fiber optic cable, air, or any other medium suitable for communicating electrical, optical, radio frequency (RF), infrared, acoustic, or other types of signals. Example
[0043] The following examples are provided to aid in understanding the technology disclosed in this application. Embodiments of the technology may include one or more of the examples described below, and any combination thereof.
[0044] Example 1 is an event distribution device that includes one or more capture devices that receive events from corresponding event generation devices, a broadcaster that receives the events from the one or more capture devices and broadcasts (distributes to an unspecified number of people) the events, and one or more comparators that receive the events from the broadcaster and distribute the events to corresponding event detection devices based on a comparison between an event identifier and an event generation device identifier.
[0045] Example 2 is the event distribution device of example 1, wherein each of the one or more comparators comprises a programmable register configured to store an event generating device identifier.
[0046] Example 3 is an event distribution device of Example 2, wherein each of the event detection devices is configured to acquire information from a corresponding one of the event generation devices, and each of the one or more comparators is coupled to a corresponding one of the event detection devices and configured to distribute the event to the corresponding one of the event detection devices when the event identifier and the event generation device identifier match.
[0047] A fourth embodiment is the event distribution device according to any one of the first to third embodiments, in which the number of the one or more capturing devices is the same as the number of the event generating devices.
[0048] A fifth embodiment is the event distribution device according to any one of the first to fourth embodiments, in which the number of the one or more comparators is the same as the number of the event detection devices.
[0049] A sixth embodiment is the event distribution device according to any one of the first to fifth embodiments, wherein the broadcaster includes a storage device for storing the event received from the capturing device.
[0050] A seventh embodiment is the event distribution device of the sixth embodiment, wherein the broadcaster is configured to batch process the received events while processing the events received from the event generator.
[0051] Example 8 is an event distribution device of any of Examples 1 to 7, further comprising a capture device configured to receive an event from the first bridge event generation device, and a comparator configured to distribute the event to a bridge event detection device coupled to the second bridge event generation device.
[0052] A ninth embodiment is the event distributor of any one of the first and eighth embodiments, wherein the clock speed of the event distributor is faster than the rate at which the event distributor receives the events.
[0053] Example 10 is an event distribution system comprising: a first set of event generating devices configured to generate events; a first set of event detection devices configured to receive the events; and a first switch configured to distribute the events from the first set of event generating devices to the first set of event detection devices, wherein the first switch comprises: a first set of capture devices configured to receive the events from the first set of event generating devices; a batch processing broadcaster that broadcasts (distributes to an unspecified number of people) the events received by the first set of capture devices in a batch processing; and one or more comparators that receive the events broadcast from the batch processing broadcaster and transmit the events to the first set of event detection devices based on a comparison between an identifier corresponding to the event and an event generating device identifier.
[0054] Example 11 is an event distribution system of Example 10, wherein each of the one or more comparators has a programmable register configured to store an event generating device identifier corresponding to one of the first set of event detection devices associated with one of the event generating devices.
[0055] A twelfth embodiment is the event distribution system of the tenth embodiment, a first bridge event generator coupled to an input of the first switch; a first bridge event detector coupled to an output of the first switch; a second bridge event generator configured to receive the event from the first bridge event detector; a second bridge event detector configured to receive the event from the second bridge event generator; a second switch, the second bridge event generator is coupled to an input of the second switch, and the second bridge event detector is coupled to an output of the second switch; The second switch is configured to distribute the event from the second bridge event generator to the second bridge event detector.
[0056] Example 13 is the event distribution system of Example 12, further comprising: a first local system consisting of the first set of event detection devices, the first set of event generation devices, the first switch, the first bridge event generation device, and the first bridge event detection device; and a second local system consisting of the second bridge event generation device, the second bridge event detection device, and the second switch.
[0057] A fourteenth embodiment is the event distribution system of the twelfth embodiment, a third bridge event generator coupled to an input of the first switch; a third bridge event detector coupled to an output of the first switch; a fourth bridge event generator configured to receive the event from the third bridge event detector; a fourth bridge event detector configured to receive the event from the fourth bridge event generator; a third switch, The fourth bridge event generating device is coupled to an input of the third switch, and the fourth bridge event detecting device is coupled to an output of the third switch, the third switch being configured to distribute the event from the fourth bridge event generating device to the fourth bridge event detecting device.
[0058] Example 15 is the event distribution system of Example 10, wherein the clock speed of the first switch is fast compared to the rate at which the events occur in the event distribution system.
[0059] Example 16 is the event distribution system of Example 10, wherein the number of events distributed by the first switch is limited within one clock cycle.
[0060] Example 17 is an event distribution system of Example 10, wherein the number of event detection devices in the first set of event detection devices is the same as the number of event generation devices in the first set of event generation devices, and each of the event detection devices in the first set of event detection devices is configured to detect an event from a corresponding event generation device in the first set of event generation devices.
[0061] An eighteenth embodiment is an event distribution method, capturing events received from one or more event generators; broadcasting the event to one or more comparators each configured to be coupled to a corresponding event detection device; delivering the event to an event detection device based on a comparison of an identifier of the captured event with an event generating device identifier corresponding to the event detection device; It is equipped with.
[0062] Example 19 is an event distribution method of Example 18, wherein the process of distributing the event includes a process of comparing an event identifier of the event with memory contents of programmable registers coupled to the one or more comparators, and the memory contents of the programmable registers are composed of event generating device identifiers corresponding to the event detection devices coupled to the corresponding comparators, respectively.
[0063] Example 20 is the event distribution method of Example 18, the event detector is a first bridge event detector coupled to a bridge event generator and configured to transmit the event to the bridge event generator; the bridge event generator is coupled to a switch and configured to receive the event from the first bridge event detector; The switch is configured to receive the event from the bridge event generator and deliver the event to a second bridge event detector.
[0064] Additionally, the description of this application refers to specific features. It should be understood that the disclosure herein includes all possible combinations of these specific features. When a specific feature is disclosed in connection with a particular aspect or example, that feature can also be used in connection with other aspects and examples, to the extent possible.
[0065] Furthermore, when this application refers to a method having two or more defined steps or processes, these defined steps or processes may be performed in any order or simultaneously, unless the circumstances do not preclude this possibility.
[0066] Although specific embodiments of the invention have been illustrated and described for purposes of illustration, it will be appreciated that various modifications can be made therein without departing from the spirit and scope of the invention. Accordingly, the invention should not be limited except as by the appended claims. [Explanation of symbols]
[0067] 100 Local Event Distribution Systems 104 Event Generator 106 Switch 106A Switch A 106B Switch B 106C Switch C 108 Capture Device 110 Batch Processing Broadcaster 112 Shared Bus 114 Comparator 116 programmable registers 120 Event detection device 300 Event Distribution System 302A Event Distribution Local System A 302B Event Distribution Local System B 302C Event Distribution Local System C 304 Bridge Event Generator 320 Bridge Event Detector 400 Event Distribution System
Claims
1. An event distribution device, one or more capture devices, each receiving an event from a corresponding event generator; a broadcaster that receives and broadcasts the events from the one or more capture devices; one or more comparators that receive the events from the broadcaster and deliver the events to corresponding event detection devices based on a comparison of the event identifier and the event generation device identifier; An event distribution device comprising:
2. 2. The event distributor of claim 1, wherein each of the one or more comparators comprises a programmable register configured to store an event generator identifier.
3. each of the event detection devices is configured to acquire information from a corresponding one of the event generation devices; 3. The event distribution device of claim 2, wherein each of the one or more comparators is coupled to a corresponding one of the event detection devices and is configured to distribute the event to the corresponding one of the event detection devices when the event identifier and the event generating device identifier match.
4. a capture device configured to receive an event from the first bridge event generator; a comparator configured to deliver the event to a bridge event detector coupled to the second bridge event generator; The event distribution device of claim 1 further comprising:
5. An event distribution system, a first set of event generators configured to generate events; a first set of event detectors configured to receive the events; a first switch configured to distribute the events from the first set of event generators to the first set of event detectors; Equipped with The first switch is a first set of capture devices configured to receive the events from the first set of event generators; a batching broadcaster that broadcasts the events received by the first set of capture devices in a batching manner; one or more comparators that receive the events broadcast from the batch processing broadcaster and transmit the events to the first set of event detection devices based on a comparison between an identifier corresponding to the event and an event generator identifier; An event distribution system having:
6. 6. The event distribution system of claim 5, wherein each of the one or more comparators comprises a programmable register configured to store an event generating device identifier corresponding to one of the first set of event detecting devices associated with one of the event generating devices.
7. a first bridge event generator coupled to an input of the first switch; a first bridge event detector coupled to an output of the first switch; a second bridge event generator configured to receive the event from the first bridge event detector; a second bridge event detector configured to receive the event from the second bridge event generator; a second switch, the second bridge event generator is coupled to an input of the second switch, and the second bridge event detector is coupled to an output of the second switch; 6. The event distribution system of claim 5, wherein said second switch is configured to distribute said event from said second bridge event generator to said second bridge event detector.
8. a first local system comprising the first set of event detectors, the first set of event generators, the first switch, the first bridge event generator, and the first bridge event detector; a second local system comprising the second bridge event generating device, the second bridge event detecting device, and the second switch; The event distribution system of claim 7 further comprising:
9. a third bridge event generator coupled to an input of the first switch; a third bridge event detector coupled to the output of the first switch; a fourth bridge event generator configured to receive the event from the third bridge event detector; a fourth bridge event detector configured to receive the event from the fourth bridge event generator; a third switch, 8. The event distribution system of claim 7, wherein the fourth bridge event generating device is coupled to an input of the third switch, the fourth bridge event detecting device is coupled to an output of the third switch, and the third switch is configured to distribute the event from the fourth bridge event generating device to the fourth bridge event detecting device.
10. 1. An event distribution method, comprising: capturing events received from one or more event producers; broadcasting the event to one or more comparators each configured to be coupled to a corresponding event detector; delivering the event to an event detection device based on a comparison of an identifier of the captured event with an event generating device identifier corresponding to the event detection device; An event distribution method comprising:
11. 11. The event distribution method of claim 10, wherein the process of distributing the event comprises a process of comparing an event identifier of the event with the contents of programmable registers coupled to the one or more comparators, the contents of the programmable registers comprising event generating device identifiers corresponding to the event detection devices coupled to the respective comparators.
Citation Information
Patent Citations
Multiplexer circuit, designing program for multiplexer circuit and designing device for multiplexer circuit
JP2015154400A