Key information

Title
Latency control through Clock Domain Crossing
Application number
20240778
Case type
National
Status
22.07.2024 Godkjent til meddelelse
Filed
22.07.2024
Effective date
22.07.2024
Publicly available
23.01.2026
Next annual fee due
31.07.2027
Applicant
Numascale AS (NO)
Inventor
Thibaut Palfer-Sollier (NO) et al.
Agent
BRYN AARFLOT AS (NO)

Abstract and drawing


Disclaimer: This text has been machine-scanned and may contain errors – please refer to "Publications" for legally binding content.
The invention relates to a method, a computer implemented method and a storage medium configured to perform a method for optimizing clock domain crossing data transfer between a source domain and a destination domain, comprising: a. determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd); b. If ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer; c. If ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer.

Publications


A1
Checking availability of the latest published version...

Documents


Expand Download files (25)
Date
Date Doc. No. Process Case number In/Out Journal description To/from
19.09.2026 12-01 Saksbehandling 20240778 UT Intention to grant BRYN AARFLOT AS
02.06.2026 10-01 Saksbehandling 20240778 UT PT Varsel om betaling av første årsavgift (3317) (PT20240778) BRYN AARFLOT AS
24.04.2026 11-04 Saksbehandling 20240778 INN Innleveringskvittering_136963 BRYN AARFLOT AS
24.04.2026 11-03 Saksbehandling 20240778 INN 136963Response 2026-04-22 BRYN AARFLOT AS
24.04.2026 11-02 Saksbehandling 20240778 INN 136963Description-claim-abstract-figure-en Basis_136963 BRYN AARFLOT AS
24.04.2026 11-01 Saksbehandling 20240778 INN Korrespondanse (Hovedbrev inn) BRYN AARFLOT AS
18.02.2026 09-01 Saksbehandling 20240778 UT Substantive examination BRYN AARFLOT AS
14.11.2025 08-03 Saksbehandling 20240778 INN Response NIPO BRYN AARFLOT AS
14.11.2025 08-02 Saksbehandling 20240778 INN 136963Claim-no final_136963_1 BRYN AARFLOT AS
14.11.2025 08-01 Saksbehandling 20240778 INN Korrespondanse (Hovedbrev inn) BRYN AARFLOT AS
18.10.2025 07-01 Saksbehandling 20240778 UT Substantive examination BRYN AARFLOT AS
14.07.2025 06-05 Saksbehandling 20240778 INN 136963Response OA1 BRYN AARFLOT AS
14.07.2025 06-04 Saksbehandling 20240778 INN 136963Description-en rev01 offset BRYN AARFLOT AS
14.07.2025 06-03 Saksbehandling 20240778 INN 136963Description-en rev01 marked up BRYN AARFLOT AS
14.07.2025 06-02 Saksbehandling 20240778 INN 136963Claim-en rev01 BRYN AARFLOT AS
14.07.2025 06-01 Saksbehandling 20240778 INN Korrespondanse (Hovedbrev inn) BRYN AARFLOT AS
21.02.2025 05-02 Saksbehandling 20240778 UT PT report 10:40:37
21.02.2025 05-01 Saksbehandling 20240778 UT Substantive examination BRYN AARFLOT AS
26.07.2024 04-03 Saksbehandling 20240778 INN POA signed BRYN AARFLOT AS
26.07.2024 04-02 Saksbehandling 20240778 INN Declaration signed BRYN AARFLOT AS
26.07.2024 04-01 Saksbehandling 20240778 INN Korrespondanse (Hovedbrev inn) BRYN AARFLOT AS
23.07.2024 03-01 Saksbehandling 20240778 UT Formal Examination 1 BRYN AARFLOT AS
23.07.2024 02-01 Saksbehandling 20240778 UT Informasjon til oppfinner Thibaut Palfer-Sollier
22.07.2024 01-02 Saksbehandling 20240778 INN 136963Description-claim-abstract-figure-en Basis BRYN AARFLOT AS
22.07.2024 01-01 Saksbehandling 20240778 INN Søknadsskjema Patent BRYN AARFLOT AS

Description, claims and drawings


Disclaimer: This text has been machine-scanned and may contain errors – please refer to "Publications" for legally binding content. Description
1 136963HTTechnical field[0001] The disclosure relates to clock domain crossing, and in particular to propagation delay control through clock domain crossing.Background[0002] A source wants to send data to a destination in which the source and the destination have different clock domains, this is known as Clock Domain Crossing or CDC.[0003] The interaction between different clock domains presents unique challenges, primarily when data is transferred from one domain to another.[0004] CDC involves the transfer of data from a source that is clocked by one clock domain to a destination clocked by another clock domain. These two clock domains may have unrelated or asynchronous frequencies, which can lead to setup and hold time violations causing metastability, data loss, or data incoherence.[0005] Metastability is a state where the output of a flip-flop is unpredictable. It occurs when the data signal changes too close to the clock edge, violating the setup or hold times. This can lead to system failures if not correctly managed.[0006] Data loss can occur when the destination clock domain is slower than the source clock domain. If the source domain updates the data before the destination domain can latch it, the data is lost.[0007] Data incoherence, on the other hand, happens when multiple bits of data are crossing the clock domain boundary. If these bits are not synchronised, the destination domain may capture a mix of old and new data, leading to data corruption.[0008] In the context of Clock Domain Crossing, validity signals and availability signals play a crucial role in ensuring reliable data transfer between different clock domains.[0009] Validity signals are used to indicate when a data on the bus or communication channel is valid and can be safely read by the receiving 2 136963HT domain. The purpose of a validity signal is to prevent the destination domain from reading data that is not yet stable or valid, which could lead to incorrect operation or data corruption. Data from the source domain is buffered in a buffer between the source domain and the destination domain.[0010] The destination domain, on the other hand, sends an availability signal to the source domain to indicate that the buffer between the source domain and the destination domain is ready to receive data, thereby preventing the source domain to overwrite data in the buffer. This is particularly important when the source domain is faster than the destination domain.[0011] The time it takes for the validity and availability-signals, to propagate from the source domain to the destination domain and vice versa is known as the propagation delay. The propagation delay is influenced by several factors, including the physical characteristics of the communication channel (such as length and material), the operating frequencies of the source and destination domains, and the design of the CDC logic.[0012] It is the goal of the present invention to reduce propagation delay through clock domain crossing.Summary of the invention[0013] In a first aspect of the invention, the invention provides a method for optimizing clock domain crossing data transfer between a source domain and a destination domain, comprising:• determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd);• If ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;• If ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer.[0014] And further if the data transfer capacity of the source domain (ds) is faster than the data transfer capacity of the destination side (dd) the 3 136963HT source domain continuously sends data, including neutral data, to the destination domain when no valid data is available to ensure continuous data flow.[0015] The method may further comprise:• utilizing a FIFO buffer between the source domain and the destination domain to temporarily store data during transfer. The FIFO buffer can have a length (L) and a width (W) that are configured based on the data path width and the clock frequencies of the source and destination domains.[0016] The intermediate metastability buffer may comprise a chain of flip-flops to mitigate the effects of metastability during data transfer. The number of flip-flops in the metastability buffer chain can be adjustable based on the clock frequencies and data width of the source and destination domains.[0017] In one aspect of the invention the source domain and destination domain operate at asynchronous frequencies, and the method ensures error-free data transfer by managing propagation delays of validity and availability signals.[0018] The method may further comprise:• synchronizing the data transfer by ensuring that the faster domain operates at the pace of the slower domain.[0019] In one aspect of the invention the source domain data width is larger than that of the destination domain the method includes segmenting the data into smaller chunks to match the width of the receiver domain. The segmented data can be reassembled at the destination domain to reconstruct the original data.[0020] The method may further comprise: at the destination domain draining messages as fast as they are received through the CDC layer to maintain synchronization with the source domain.[0021] The present invention also provides a computer-implemented method for optimizing clock domain crossing data transfer between a source domain and a destination domain, comprising: 4 136963HT • determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd);• if ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;• if ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer.[0022] Wherein the computer -implemented method may carry out all the steps related to the method above.[0023] The present invention also provides a storage medium configured to perform a method for optimizing clock domain crossing data transfer between a source domain and a destination domain, the method comprising:• determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd);• if ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;• if ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer.[0024] Other advantageous features will be apparent from the accompanying claims.Brief description of the drawings[0025] To make the invention more readily understandable, the discussion that follows will refer to the accompanying drawings, in which:[0026] Figure 1a shows the principle of clock domain crossing according to state of the art;[0027] Figure 2 shows the principle of clock domain crossing according to state of the art;[0028] Figure 3a shows a principle of clock domain crossing where a source domain is faster than a destination domain, and 5 136963HT [0029] Figure 3b shows the principle of clock domain crossing where the source domain is slower than the destination domain.Detailed description of the Invention[0030] In the following, general embodiments as well as exemplary embodiments of the invention will be described. References and possible numerals will be made to the accompanying drawings. It shall be noted, however, that the drawings are exemplary embodiments only, and that other features and embodiments may well be within the scope of the invention as described.[0031] The present invention relates to CDC and in particular to reducing propagation delay for the time it takes for the validity and/or availabilitysignals, to propagate from the source domain to the destination domain and from the destination domain to the source domain. The aim behind the use of validity signals sent by a source domain and availability signals sent by a destination domain is to ensure secure and loss free data transfer over CDC.[0032] Normally a source domain which is a sender of data sends a validity signal via a metastability structure to the destination domain, when the destination domain receives this signal, the destination domain knows that the data in a buffer between source domain and destination domain are valid. The destination domain, on the other hand, sends an availability signal via a metastability structure to the source domain to indicate that the buffer is ready to receive data. The buffer is typically a FIFO buffer with a length L and a width of data path W. The time used to send and receive validity and availability signals is a delay in a CDC system that is traditionally considered necessary to ensure error-free data transfer in Clock Domain Crossings - CDC. If one could shorten the propagation delay for validity/availability signalling, data transmission could go faster. The trick here is to achieve this without compromising secure data transfer in CDC. If the source domain operates at a clock frequency, fs, that is higher than the destination domain’s, fd, the destination domain will never be able to empty the buffer between source domain and 6 136963HT destination domain (i.e. fs>fd), conversely if the destination domain has a clock frequency, fd, that is faster than the source domain’s, fs, the source domain will never be able to overflow the buffer (i.e. fs<fd). Only taking into consideration the frequency of the source and the receiver is a simplification as the width of the data path affects the sending speed and/or the receiving speed. The more bits the data width, the higher the data transfer capacity.[0033] The relationship between clock frequency, data width, and data transfer capacity can be expressed by the formula:[0034] Data Transfer Capacity=Clock Frequency×Data Width[0035] This means that the data transfer capacity increases linearly with both the clock frequency and the data width. This is a simplified model, other factors like latency, overhead, and the specific architecture of the system can also have significant effects on the data transfer rate.[0036] So, while the relationship between frequency, width, and data transfer capacity is generally fixed, the actual throughput can vary based on a number of other factors. In what follows, it must be understood that the fast side is the side with the highest data transfer capacity.[0037] The recognition of this leads to the present invention - in the case of a fast source domain and a slower destination domain, it is not necessary to send a validity signal from the source domain since there will always be data in the buffer between the fast source domain and the slower destination domain. In the case where the destination domain is faster than the source domain, the destination domain will not need to send an availability signal to the source domain, as there will always be space in the buffer between source domain and destination domain since the destination domain reads faster than the source domain can send.Whether the source domain is the faster or the destination domain is the fastest is a static situation, hence a setup which takes the above into consideration will be decided once and for all before a circuit with CDC is put into use. 7 136963HT [0038] In the context of Clock Domain Crossing (CDC) the data width at the source can be larger than that of the receiver. This scenario introduces additional complexities.[0039] When the source data width is larger than the receiver, you would typically need to divide the data into smaller chunks that match the receiver’s width. This process is often referred to as data slicing or segmentation. The segmented data is then sent over multiple clock cycles.[0040] For instance, if the sender is 32 bits wide and the receiver is 16 bits wide, you could divide the 32-bit data into two 16-bit segments. Each segment would then be sent over a separate clock cycle.[0041] However, it’s important to note that this approach can introduce latency, as the complete data transfer now takes multiple clock cycles. Also, the receiver needs to be able to reassemble the data segments in the correct order to reconstruct the original data.[0042] Moreover, each segment of data is subject to the same CDC challenges as any other data transfer across different clock domains. Therefore, standard CDC strategies and techniques, such as synchronization, metastability handling, etc., should be applied.[0043] If the receiver’s data width is the larger one then the process is somewhat simpler than the reverse scenario.[0044] When the sender’s data width is smaller than the receiver’s, the sender’s data can be sent in its entirety in a single clock cycle. The receiver can then store this data in a portion of its wider register. For instance, if the sender is 16 bits wide and the receiver is 32 bits wide, the 16-bit data from the sender can be stored in the lower or upper 16 bits of the receiver’s 32-bit register.[0045] It’s important to note that the receiver must be designed to handle this situation correctly. It needs to know which bits of its register contain valid data and which do not. This can be achieved by using additional control signals or by implementing a protocol between the sender and receiver. 8 136963HT [0046] As indicated above the relationship between source and destination is not only about the frequency difference, but the width of the data path on both sides, so combined this becomes “throughput”. A distinction is made here between data transfer capacity, which is the capacity of the source and the destination side separately, while throughput is the combined speed, i.e. the real transfer speed between source and destination.[0047] In the context of Clock Domain Crossing (CDC), a metastability structure, plays a crucial role in managing the transfer of data between different clock domains, such as the source domain and destination domain described above.[0048] The metastability structure is typically a chain of two or more flip-flops used to mitigate the effects of metastability. When data is transferred from a source domain to a destination domain, there is a risk that the data may change state at the same time as the clock edge of the destination domain. This can lead to a condition known as metastability, where the output of the flip-flop becomes unpredictable, potentially leading to system failures.[0049] The purpose of the metastability structure is to provide a buffer period, allowing the metastable condition to resolve itself before the data is used. The first flip-flop in the chain captures the incoming data, and if a metastable event occurs, the subsequent flip-flops in the chain provide extra time for the metastability to resolve. This is known as the metastability resolution time.[0050] No metastability structure can completely eliminate the risk of metastability, but they can reduce the probability to a level that is acceptable for the specific application. The design of the metastability structure, including the number of flip-flops in the chain and the clock frequency, can be adjusted to manage this trade-off.[0051] Thus, the metastability structure in CDC is a critical component in ensuring reliable data transfer between different clock domains, helping to manage and mitigate the risks associated with metastability. 9 136963HT [0052] The buffer between the source domain and the destination domain is a place where the data transferred from the source domain to the destination domain is temporarily stored, waiting to be consumed. Its purpose is to maintain performance despite distance between source and destination. Distance in the general sense is latency, and it should be remembered that one side has always guaranteed the highest data transfer capacity (faster) of the two sides, i.e. sender and receiver, where Data Transfer Capacity=Clock Frequency×Data Width, it will be the side with the lowest data transfer capacity which dictates the throughput.[0053] If width match, then it directly translates into guaranteed strictly higher frequency of usage. The core throughput is guaranteed higher than the link throughput in both directions.[0054] The buffer is used to store data while transferring flow control through CDC. The buffer must have enough entries to cover the roundtrip latency across the buffer.[0055] If the faster side is the source domain, the CDC buffer (FIFO-buffer) will be filled which makes latency dependent on the size of the buffer storage.[0056] Based on the faster/slower guaranteed assumption, the following simplifications can be made to the CDC transfer of flow control:[0057] Faster source to slower destination domain transfer, ref. fig. 3a:• no CDC transfer of flow control.• The slower side assumes it can always act.• Fast to slow CDC – source to destination: the destination domain assumes that data are always valid.[0058] If the source domain has nothing to send, the source domain will still send something neutral, which may be discarded by the destination domain.[0059] And the simplification related to the slower source domain to faster destination domain transfer, ref. fig 3b the source domain assumes always available:• progress of validity signal 10 136963HT • The faster destination domain acts whenever the slower source domain does, 1 for 1 (synced pace)• No need to exchange explicit buffer pointers.• Validity signals (Flow control) to faster destination domain is generated.[0060] The outcome of the slow source domain to faster destination domain:• The faster side always moves at the pace of the slower side. The faster side assesses if the slower side moved based on the validity signals of progress sent through the CDC. They are “in sync” as much as they can be (some uncertainty left because of CDC).[0061] The destination domain must drain messages as fast as they go through the CDC layer (at least).
Claims
11 136963HTClaims1. A method for optimizing clock domain crossing data transfer between a source domain and a destination domain, comprising:a. determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd); b. If ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;c. If ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer. 2. The method of claim 1, wherein the data transfer capacity of the source domain is faster than the data transfer capacity of the destination side the source domain continuously sends data, including neutral data, to the destination domain when no valid data is available to ensure continuous data flow.3. The method of claim 1, further comprising:a. utilizing a FIFO buffer between the source domain and the destination domain to temporarily store data during transfer.4. The method of claim 3, wherein the FIFO buffer has a length (L) and a width (W) that are configured based on the data path width and the clock frequencies of the source and destination domains.5. The method of claim 1, wherein the intermediate metastability buffer comprises a chain of flip-flops to mitigate the effects of metastability during data transfer.6. The method of claim 5, wherein the number of flip-flops in the metastability buffer chain is adjustable based on the clock frequencies and data width of the source and destination domains.7. The method of claim 1, wherein the source domain and destination domain operate at asynchronous frequencies, and the method ensures error-free data transfer by managing propagation delays of validity and availability signals.8. The method of claim 1, further comprising the step of:12 136963HTa. synchronizing the data transfer by ensuring that the faster domain operates at the pace of the slower domain.9. The method of claim 1, wherein the source domain data width is larger than that of the destination domain the method includes segmenting the data into smaller chunks to match the width of the receiver domain.10.The method of claim 9, wherein the segmented data is reassembled at the destination domain to reconstruct the original data.11.The method of claim 1, wherein the destination domain drains messages as fast as they are received through the CDC layer to maintain synchronization with the source domain.12.A computer-implemented method for optimizing clock domain crossing data transfer between a source domain and a destination domain, comprising:a. determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd); b. if ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;c. if ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer. 13.The computer-implemented method of claim 12, wherein the computer -implemented method carries out the methods of claim 2 – 11.14.A storage medium configured to perform a method for optimizing clock domain crossing data transfer between a source domain and a destination domain, the method comprising:a. determining the data transfer capacity of the source domain (ds) and the data transfer capacity of the destination domain (dd); b. if ds > dd, transmitting an availability signal from the destination domain to the source domain via an intermediate metastability buffer;c. if ds < dd, transmitting a validity signal from the source domain to the destination domain via the intermediate metastability buffer.13 136963HT 15.The storage medium of claim 14, configured to perform a method according to claim 2 – 11.
Drawings

Priority


No priority

Patent classes


IPC classesG06F 13/42G06F 13/00G06F 13/40G06F 30/32CPC classesG06F 13/42G06F 13/00G06F 13/40G06F 30/32

Citations


US 11347917 B1 (B1)US 10042810 B1 (B1)US 8611178 B2 (B2)

Applicants, owners and inventors


Applicants
Numascale AS
Innspurten 15 0663 OSLO NO (OSLO Municipality, Oslo county)Org. number: 992462787
Inventors
Thibaut Palfer-Sollier
Mortensrudveien 8 X 1283 OSLO NO (OSLO Municipality, Oslo county)
Berta Morral Escofet
Innspurten 15 0663 OSLO NO (OSLO Municipality, Oslo county)

Agent


BRYN AARFLOT AS
BRYN AARFLOT AS

Org. number: 979993269

Name and address are automatically synchronized with the Brønnøysund Register Centre.

Open in The Brønnøysund Register Centre
Stortingsgata 8 0161 OSLO NO (OSLO Municipality, Oslo county)
Org. number: 979993269
Reference: 136963

Status history


Payment history


Oppositions and appeals


No oppositions or appeals

Administrative limitation


No administrative limitation

Liens and licences


No liens or licenses registered

Gazette entries


No Gazette entries foundOnly events from 2024.03.04 and onwards are shown.