CN117421267A - 数据通道防死锁方法、装置、设备及介质 - Google Patents
数据通道防死锁方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117421267A CN117421267A CN202311300506.XA CN202311300506A CN117421267A CN 117421267 A CN117421267 A CN 117421267A CN 202311300506 A CN202311300506 A CN 202311300506A CN 117421267 A CN117421267 A CN 117421267A
- Authority
- CN
- China
- Prior art keywords
- module
- multiplexing
- data
- memory module
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000002265 prevention Effects 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 64
- 238000012790 confirmation Methods 0.000 claims abstract description 33
- 238000013500 data storage Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 101150098958 CMD1 gene Proteins 0.000 description 2
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
- G06F13/4036—Coupling between buses using bus bridges with arbitration and deadlock prevention
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本公开涉及一种数据通道防死锁方法、装置、设备及介质。其中,数据通道防死锁方法包括:通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令;在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息;在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据;通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线。根据本公开实施例,能够避免整个数据通路陷入死锁状态,保证整个***的业务流程可以继续执行。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据通道防死锁方法、装置、设备及介质。
背景技术
在一个大型的复杂处理***中,一般可以根据业务类型划分成多个处理子***,各子***处理相对独立的业务,各子***的数据通路一般通过复用和解复用(mux/demux)模块连接,复用和解复用(mux/demux)模块同时具有多端口的汇聚和分发作用。
相关技术中,各子***数据接口是相互独立的,但是不可避免地在具体业务上存在某种依赖关系,如果某一个子***在接收数据时由于收不到其它子***的状态标志,需要反压复用和解复用(mux/demux)模块,可能会导致整个数据通路陷入死锁状态,整个***的业务流程无法继续执行。
发明内容
为了解决上述技术问题,本公开提供了一种数据通道防死锁方法、装置、设备及介质。
第一方面,本公开提供了一种数据通道防死锁方法,包括:
通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息;
在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息;
在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据;
通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息。
第二方面,本公开提供了一种数据通道防死锁装置,包括:
第一发送单元,用于通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息;
第二发送单元,用于在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息;
数据存储单元,用于在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据;
第三发送单元,用于通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息。
第三方面,本公开提供了一种数据通道防死锁设备,包括:
处理器;
存储器,用于存储可执行指令;
其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现第一方面的数据通道防死锁方法。
第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面的数据通道防死锁方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例的数据通道防死锁方法、装置、设备及介质,能够通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息,接着在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息,然后在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据,最后通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息,由此,可以通过存储器模块暂时保存目标数据,保证复用和解复用模块的正常运行,从而避免整个数据通路陷入死锁状态,保证整个***的业务流程可以继续执行。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种数据通道防死锁方法的流程示意图;
图2为本公开实施例提供的另一种数据通道防死锁方法的流程示意图;
图3为本公开实施例提供的又一种数据通道防死锁方法的流程示意图;
图4为本公开实施例提供的一种数据通道防死锁装置的结构示意图;
图5为本公开实施例提供的一种数据通道防死锁设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在一个大型的复杂处理***中,一般可以根据业务类型划分成多个处理子***,各子***处理相对独立的业务,各子***的数据通路一般通过复用和解复用(mux/demux)模块连接,复用和解复用(mux/demux)模块同时具有多端口的汇聚和分发作用。
相关技术中,各子***数据接口是相互独立的,但是不可避免地在具体业务上存在某种依赖关系,如果某一个子***在接收数据时由于收不到其它子***的状态标志,需要反压复用和解复用(mux/demux)模块,可能会导致整个数据通路陷入死锁状态,整个***的业务流程无法继续执行。
例如,例如假定子***2向通道处理模块2(process chan 2)发送业务处理命令,通道处理模块2(process chan 2)需要依赖子***1对应的通道处理模块1(process chan1)的完成状态标志位,才能继续接收数据。通道处理模块2(process chan 2)收到复用和解复用(mux/demux)模块的读取确认信息时,但通道处理模块2(process chan 2)无法得到通道处理模块1(process chan 1)的完成状态时,就会反压复用和解复用(mux/demux)模块,导致复用和解复用(mux/demux)模块下行通路拥堵,此时通道处理模块1(process chan 1)也无法收到复用和解复用(mux/demux)模块的反馈的数据,导致其工作状态无法更新,进一步导致通道处理模块2(process chan 2)无法收到完成标志,整个链路进入某种死循环,整个数据通路彻底堵死,链路无法恢复正常通信。
为了解决上述问题,本公开实施例提供了一种数据通道防死锁方法、装置、设备及介质。下面结合图1至图3对本公开实施例提供的数据通道防死锁方法进行详细说明。
图1示出了本公开实施例提供的一种数据通道防死锁方法的流程示意图。
在本公开实施例中,该数据通道防死锁方法可以由电子设备执行。例如电子设备可以为计算机设备或服务器设备等,此处不作限定。
如图1所示,该数据通道防死锁方法可以包括如下步骤。
S110、通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息。
在本公开实施例中,电子设备可以通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令。
可选地,业务处理命令可以为各个子***下发的处理业务的命令。例如,业务处理命令可以为dma指令。
可选地,通道处理模块可以为用于数据处理、搬移命令的模块。
可选地,存储器模块可以为存储数据的模块。其中,存储器模块可以包括第一存储模块和第二存储模块。
可选地,第一存储模块可以用于存储数据长度信息。
可选地,第二存储模块可以用于存储数据。
可选地,预申请命令可以为基于业务处理命令生成的指令。例如,预申请命令可以包括数据长度信息、地址信息、操作类型信息等,此处不作限定。
可选地,数据长度信息可以用于表征数据的内存大小信息。
可选地,源地址信息可以用于表征数据的原始地址。
可选地,目的地址信息可以用于表征数据的目的地地址。
具体地,子***可以下发业务处理命令,电子设备可以通过通道处理模块接收并响应于业务处理命令,如对业务处理命令进行搬移,并向存储器模块发送预申请命令,预申请命令可以包括数据长度信息、源地址信息和目的地址信息。
图2示出了本公开实施例提供的另一种数据通道防死锁方法的流程示意图。
如图2所示,包括多个子***,例如子***1(subsystem1)、子***2(subsystem2)和子***N(subsystemN),子***1(subsystem1)可以向通道处理模块1(process chan 1)下发业务处理命令(cmd1),通道处理模块1(process chan 1)可以接收并响应于业务处理命令(cmd1),向存储器模块(st_fifo)发送预申请命令,存储器模块(st_fifo)可以包括第一存储模块(prefifo)和第二存储模块(dfifo),第一存储模块(prefifo)可以用于存储数据长度信息(length),第二存储模块(dfifo)可以用于存储数据。通道处理模块1(processchan 1)可以通过高速数据流接口(axi_st)进行通信。
S120、在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息。
在本公开实施例中,在数据长度信息小于或等于预设存储空间时,电子设备可以通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息。
可选地,预设存储空间可以为第二存储模块剩余的存储空间。
可选地,复用和解复用模块可以为对多个子***进行汇聚和分发的模块。
可选地,读请求可以为请求进行读取。其中,读请求可以包括数据长度信息和源地址信息。
具体地,存储器模块在接收到预申请命令之后,可以判断该预申请命令中的数据长度信息是否小于或等于预设存储空间,若数据长度信息小于或等于预设存储空间,电子设备可以通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息。
继续参照图2,存储器模块(st_fifo)接收到预申请命令之后,可以判断该预申请命令中的数据长度信息(length)否小于或等于预设存储空间,预设存储空间(empty_deep)的初始值为第二存储模块(dfifo)的容量,并在数据长度信息(length)小于或等于预设存储空间(empty_deep)时,电子设备可以通过存储器模块(st_fifo)向复用和解复用(mux/demux)模块发送读请求(read request),并保存数据长度信息(length)。
S130、在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据。
在本公开实施例中,电子设备可以通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据。
可选地,读取确认信息可以为确认读请求的信息。
可选地,目标数据可以为待进行数据处理的数据。
具体地,电子设备在通过存储器模块向复用和解复用模块发送读请求之后,如果复用和解复用模块确认该读请求,则向存储器模块反馈对应的读取确认信息,电子设备可以通过存储器模块接收到该读请求对应的读取确认信息,保存读取确认信息包括的目标数据。
继续参照图2,电子设备通过存储器模块(st_fifo)接收到复用和解复用(mux/demux)模块发送的读请求(read request)对应的读取确认信息(read ack)时,可以将读取确认信息(read ack)中的目标数据保存到存储器模块(st_fifo)中,并进行数据处理。
S140、通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息。
在本公开实施例中,电子设备可以通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线。
可选地,写请求可以为请求进行写入。其中,写请求可以包括数据长度信息和目的地址信息
可选地,总线可以为pcie总线。
具体地,电子设备可以通过存储器模块向复用和解复用模块发送写请求,将目标数据发送给复用和解复用模块,通过复用和解复用模块将目标数据发送给总线,以使总线通过目的地址信息对目标数据进行保存。
继续参照图2,电子设备可以通过存储器模块(st_fifo)向复用和解复用(mux/demux)模块发送写请求(write request),并将目标数据写入到复用和解复用(mux/demux)模块,接着通过复用和解复用(mux/demux)模块将目标数据写入到总线(pcie)中。
由此,在本公开实施例中,能够通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息,接着在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息,然后在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据,最后通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息,由此,可以通过存储器模块暂时保存目标数据,保证复用和解复用模块的正常运行,从而避免整个数据通路陷入死锁状态,保证整个***的业务流程可以继续执行。
可选地,S120可以具体包括:将数据长度信息写入第一存储模块中,并更新预设存储空间,得到第一存储空间。
在本公开实施例中,电子设备可以将数据长度信息写入第一存储模块中,并更新预设存储空间,得到第一存储空间。
可选地,第一存储空间可以为更新后的预设存储空间。
具体地,电子设备可以通过存储器模块保存数据长度信息,例如,电子设备可以将数据长度信息(length)写入在存储器模块(st_fifo)的第一存储模块(prefifo)中,并对预设存储空间(empty_deep)进行更新,得到第一存储空间,其中第一存储空间=预设存储空间(empty_deep)-数据长度信息(length)。
由此,当存储器模块(st_fifo)能够容纳将接收到的数据时,才进行发送读请求以及保存数据长度信息,保证不会反压复用和解复用模块,从而避免整个数据通路陷入死锁状态,保证整个***的业务流程可以继续执行。
可选地,该数据通道防死锁方法还可以包括:在数据长度信息大于预设存储空间时,等待直到数据长度信息小于或等于预设存储空间,通过存储器模块向复用和解复用模块发送读请求,并将数据长度信息写入到第一存储模块中。
在本公开实施例中,在数据长度信息大于预设存储空间时,电子设备先不通过存储器模块向复用和解复用模块发送读请求,并进行等待直到数据长度信息小于或等于预设存储空间,此时电子设备再通过存储器模块向复用和解复用模块发送读请求,并将该数据长度信息写入到第一存储模块中,具体实施方式参照上文。
由此,在预设存储空间不足的情况下,能够暂时不发送读请求,不仅保证不会反压复用和解复用模块,而且能够动态调节***数据流量。
可选地,S130可以具体包括:接收复用和解复用模块发送的目标数据,并将目标数据保存到第二存储模块中。
在本公开实施例中,电子设备可以通过存储器模块接收到复用和解复用模块发送的目标数据,并将目标数据保存到存储器模块的第二存储模块中。
例如,电子设备可以通过存储器模块(st_fifo)接收到复用和解复用(mux/demux)模块发送的目标数据,并将该目标数据保存到第二存储模块中(dfifo)中,并可以进行数据处理。
进一步地,在将目标数据发送给复用和解复用模块之后,该数据通道防死锁方法还可以包括:对第一存储空间进行更新,得到第二存储空间。
可选地,第二存储空间更新后的预设存储空间。
具体地,电子设备在通过存储器模块将目标数据发送给复用和解复用模块之后,可以对第一存储空间进行更新,得到第二存储空间,其中第二存储空间=第一存储空间+数据长度信息(length)。
由此,能够实时更新预设存储空间,从而可以动态调节***数据流量。
可选地,在S140之后,该数据通道防死锁方法还可以包括:通过存储器模块接收复用和解复用模块反馈的写入确认信息,并将写入确认信息发送给通道处理模块,写入确认信息由总线基于写请求反馈给复用和解复用模块。
可选地,写入确认信息可以为确认写请求的信息。
具体地,电子设备通过存储器模块将目标数据发送给复用和解复用模块之后,通过复用和解复用模块将该目标数据发送给总线,总线在接收到目标数据后,可以向复用和解复用模块反馈写请求对应的写入确认信息,电子设备可以通过存储器模块接收到复用和解复用模块反馈的写入确认信息,并将该写入确认信息发送给通道处理模块。
图3示出了本公开实施例提供的又一种数据通道防死锁方法的流程示意图。
如图3所示,子***(subsystem)可以向通道处理模块(process chan)下发业务处理命令(cmd),电子设备可以通过通道处理模块(process chan)接收并响应于业务处理命令(cmd),向存储器模块(st_fifo)发送预申请命令(cmd_st),存储器模块(st_fifo)可以包括第一存储模块(prefifo)和第二存储模块(dfifo),存储器模块(st_fifo)接收到预申请命令(cmd_st)之后,可以判断该预申请命令中的数据长度信息(length)否小于或等于预设存储空间,并在数据长度信息(length)小于或等于预设存储空间(empty_deep)时,向复用和解复用(mux/demux)模块发送读请求(read request,即rd req),并保存数据长度信息(length)在第一存储模块(prefifo)中;通过存储器模块(st_fifo)接收到复用和解复用(mux/demux)模块发送的读请求(read request,即rd req)对应的读取确认信息(readack,即rd back)时,可以将目标数据保存到第二存储模块(dfifo)中,并进行数据处理;通过存储器模块(st_fifo)向复用和解复用(mux/demux)模块发送写请求(write request,即wr req),并将目标数据写入到复用和解复用(mux/demux)模块,接着通过复用和解复用(mux/demux)模块将目标数据写入到总线(pcie)中,通过存储器模块(st_fifo)接收复用和解复用(mux/demux)模块反馈的写入确认信息后,向通道处理模块发送写入确认信息(ackst),接着向子***(subsystem)反馈写入确认信息(dma ack)。
图4示出了本公开实施例提供的一种数据通道防死锁装置的结构示意图。
如图4所示,该数据通道防死锁装置400可以包括第一发送单元410、第二发送单元420、数据存储单元430和第三发送单元440。
该第一发送单元410可以用于通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息。
该第二发送单元420可以用于在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息。
该数据存储单元430可以用于在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据。
该第三发送单元440可以用于通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息。
由此,在本公开实施例中,能够通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,预申请命令包括数据长度信息、源地址信息和目的地址信息,接着在数据长度信息小于或等于预设存储空间时,通过存储器模块向复用和解复用模块发送读请求,并保存数据长度信息,读请求包括数据长度信息和源地址信息,然后在通过存储器模块接收到读请求对应的读取确认信息时,保存读取确认信息包括的目标数据,最后通过存储器模块向复用和解复用模块发送写请求,并将目标数据发送给复用和解复用模块,以使复用和解复用模块将目标数据发送给总线,写请求包括数据长度信息和目的地址信息,由此,可以通过存储器模块暂时保存目标数据,保证复用和解复用模块的正常运行,从而避免整个数据通路陷入死锁状态,保证整个***的业务流程可以继续执行。
在本公开一些实施例中,存储器模块包括第一存储模块和第二存储模块。
在本公开一些实施例中,该第二发送单元420可以具体包括第一更新子单元。
该第一更新子单元可以用于将数据长度信息写入第一存储模块中,并更新预设存储空间,得到第一存储空间。
在本公开一些实施例中,该数据通道防死锁装置400还可以包括第四发送单元。
该第四发送单元可以用于在数据长度信息大于预设存储空间时,等待直到数据长度信息小于或等于预设存储空间,通过存储器模块向复用和解复用模块发送读请求,并将数据长度信息写入到第一存储模块中。
在本公开一些实施例中,该数据存储单元430还可以具体用于接收复用和解复用模块发送的目标数据,并将目标数据保存到第二存储模块中。
在本公开一些实施例中,该数据存储单元430还可以包括第二更新子单元。
该第二更新子单元可以用于在将目标数据发送给复用和解复用模块之后,对第一存储空间进行更新,得到第二存储空间。
在本公开一些实施例中,该数据通道防死锁装置400还可以包括第五发送单元。
该第五发送单元可以用于在将目标数据发送给复用和解复用模块之后,通过存储器模块接收复用和解复用模块反馈的写入确认信息,并将写入确认信息发送给通道处理模块,写入确认信息由总线基于写请求反馈给复用和解复用模块。
需要说明的是,图4所示的数据通道防死锁装置400可以执行图1至图3所示的方法实施例中的各个步骤,并且实现图1至图3所示的方法实施例中的各个过程和效果,在此不做赘述。
图5示出了本公开实施例提供的一种数据通道防死锁设备的结构示意图。
在本公开一些实施例中,图5所示的数据通道防死锁设备可以为电子设备。例如,该电子设备可以为计算机设备或服务器设备等,此处不作限定。
如图5所示,该数据通道防死锁设备可以包括处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器502可以包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(Read-Only Memory,ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Electrical Programmable ROM,EPROM)、电可擦除PROM(Electrically ErasableProgrammable ROM,EEPROM)、电可改写ROM(Electrically Alterable ROM,EAROM)或闪存,或者两个或及其以上这些的组合。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以执行本公开实施例所提供的数据通道防死锁方法的步骤。
在一个示例中,该数据通道防死锁设备还可包括收发器503和总线504。其中,如图5所示,处理器501、存储器502和收发器503通过总线504连接并完成相互间的通信。
总线504包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(ExtendedIndustry Standard Architecture,EISA)总线、前端总线(Front Side BUS,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industrial Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low Pin Count,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、***控件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)总线、视频电子标准协会局部(Video Electronics StandardsAssociation Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线504可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本公开实施例还提供了一种非易失性计算机可读存储介质,该存储介质可以存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开实施例所提供的数据通道防死锁方法。
上述的存储介质可以例如包括计算机程序指令的存储器502,上述指令可由数据通道防死锁设备的处理器501执行以完成本公开实施例所提供的数据通道防死锁方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(CompactDisc ROM,CD-ROM)、磁带、软盘和光数据存储设备等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据通道防死锁方法,其特征在于,包括:
通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,所述预申请命令包括数据长度信息、源地址信息和目的地址信息;
在所述数据长度信息小于或等于预设存储空间时,通过所述存储器模块向复用和解复用模块发送读请求,并保存所述数据长度信息,所述读请求包括所述数据长度信息和所述源地址信息;
在通过存储器模块接收到所述读请求对应的读取确认信息时,保存所述读取确认信息包括的目标数据;
通过所述存储器模块向所述复用和解复用模块发送写请求,并将所述目标数据发送给所述复用和解复用模块,以使所述复用和解复用模块将所述目标数据发送给总线,所述写请求包括所述数据长度信息和所述目的地址信息。
2.根据权利要求1所述的方法,其特征在于,所述存储器模块包括第一存储模块和第二存储模块。
3.根据权利要求2所述的方法,其特征在于,所述保存所述数据长度信息,包括:
将所述数据长度信息写入所述第一存储模块中,并更新所述预设存储空间,得到第一存储空间。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述数据长度信息大于所述预设存储空间时,等待直到所述数据长度信息小于或等于所述预设存储空间,通过所述存储器模块向所述复用和解复用模块发送所述读请求,并将所述数据长度信息写入到所述第一存储模块中。
5.根据权利要求2所述的方法,其特征在于,所述保存所述读取确认信息包括的目标数据,包括:
接收所述复用和解复用模块发送的目标数据,并将所述目标数据保存到所述第二存储模块中。
6.根据权利要求3所述的方法,其特征在于,在所述将所述目标数据发送给所述复用和解复用模块之后,所述方法还包括:
对所述第一存储空间进行更新,得到第二存储空间。
7.根据权利要求1所述的方法,其特征在于,在所述将所述目标数据发送给所述复用和解复用模块之后,所述方法还包括:
通过所述存储器模块接收所述复用和解复用模块反馈的写入确认信息,并将所述写入确认信息发送给所述通道处理模块,所述写入确认信息由所述总线基于所述写请求反馈给所述复用和解复用模块。
8.一种数据通道防死锁装置,其特征在于,包括:
第一发送单元,用于通过通道处理模块接收并响应于业务处理命令,向存储器模块发送预申请命令,所述预申请命令包括数据长度信息、源地址信息和目的地址信息;
第二发送单元,用于在所述数据长度信息小于或等于预设存储空间时,通过所述存储器模块向复用和解复用模块发送读请求,并保存所述数据长度信息,所述读请求包括所述数据长度信息和所述源地址信息;
数据存储单元,用于在通过存储器模块接收到所述读请求对应的读取确认信息时,保存所述读取确认信息包括的目标数据;
第三发送单元,用于通过所述存储器模块向所述复用和解复用模块发送写请求,并将所述目标数据发送给所述复用和解复用模块,以使所述复用和解复用模块将所述目标数据发送给总线,所述写请求包括所述数据长度信息和所述目的地址信息。
9.一种数据通道防死锁设备,其特征在于,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现上述权利要求1-7中任一项所述的数据通道防死锁方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-7中任一项所述的数据通道防死锁方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311300506.XA CN117421267A (zh) | 2023-10-09 | 2023-10-09 | 数据通道防死锁方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311300506.XA CN117421267A (zh) | 2023-10-09 | 2023-10-09 | 数据通道防死锁方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421267A true CN117421267A (zh) | 2024-01-19 |
Family
ID=89523832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311300506.XA Granted CN117421267A (zh) | 2023-10-09 | 2023-10-09 | 数据通道防死锁方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421267A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
KR20010002444A (ko) * | 1999-06-15 | 2001-01-15 | 윤종용 | 반도체 메모리 장치의 데이터 출력 스큐 방지 회로 |
CN101796832A (zh) * | 2007-06-29 | 2010-08-04 | Lg电子株式会社 | 数字广播***和数据处理方法 |
CN101895449A (zh) * | 2006-03-27 | 2010-11-24 | 精工爱普生株式会社 | 利用数据通信的装置控制 |
US20150143031A1 (en) * | 2012-05-12 | 2015-05-21 | Memblaze Technology (Beijing) Co., Ltd. | Method for writing data into storage device and storage device |
US20210081345A1 (en) * | 2019-09-13 | 2021-03-18 | Kioxia Corporation | Memory system, semiconductor integrated circuit, and method therefor |
CN113031853A (zh) * | 2019-12-24 | 2021-06-25 | 三星电子株式会社 | 互连装置、互连装置的操作方法以及人工智能加速器*** |
CN115905061A (zh) * | 2023-01-17 | 2023-04-04 | 北京象帝先计算技术有限公司 | 数据搬运装置、dma装置、电子设备及数据搬运方法 |
-
2023
- 2023-10-09 CN CN202311300506.XA patent/CN117421267A/zh active Granted
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
KR20010002444A (ko) * | 1999-06-15 | 2001-01-15 | 윤종용 | 반도체 메모리 장치의 데이터 출력 스큐 방지 회로 |
CN101895449A (zh) * | 2006-03-27 | 2010-11-24 | 精工爱普生株式会社 | 利用数据通信的装置控制 |
CN101796832A (zh) * | 2007-06-29 | 2010-08-04 | Lg电子株式会社 | 数字广播***和数据处理方法 |
US20150143031A1 (en) * | 2012-05-12 | 2015-05-21 | Memblaze Technology (Beijing) Co., Ltd. | Method for writing data into storage device and storage device |
US20210081345A1 (en) * | 2019-09-13 | 2021-03-18 | Kioxia Corporation | Memory system, semiconductor integrated circuit, and method therefor |
CN113031853A (zh) * | 2019-12-24 | 2021-06-25 | 三星电子株式会社 | 互连装置、互连装置的操作方法以及人工智能加速器*** |
CN115905061A (zh) * | 2023-01-17 | 2023-04-04 | 北京象帝先计算技术有限公司 | 数据搬运装置、dma装置、电子设备及数据搬运方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030009432A1 (en) | Access assurance for remote memory access over network | |
CN102460405A (zh) | 用于通过存储器装置来控制主机存储器存取的方法及*** | |
US9753655B2 (en) | Computing system with write buffer including speculative storage write and method of operation thereof | |
CN101877666B (zh) | 基于零拷贝方式的多应用程序报文接收方法和装置 | |
CN110941578B (zh) | 一种具有dma功能的lio的设计方法及装置 | |
CN101770444A (zh) | 从设备以及主设备与该从设备之间的通信方法 | |
WO2010070859A1 (ja) | 試験装置、シリアル伝送システム、プログラム、および、記録媒体 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
US8891523B2 (en) | Multi-processor apparatus using dedicated buffers for multicast communications | |
CN104615558A (zh) | 一种数据传送方法及电子装置 | |
CN111221757B (zh) | 一种低延迟pcie dma数据传输方法及控制器 | |
JP2010211322A (ja) | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 | |
CN110018792B (zh) | 一种待落盘数据处理方法、装置、电子设备及存储介质 | |
CN117421267A (zh) | 数据通道防死锁方法、装置、设备及介质 | |
US10949095B2 (en) | Method, network adapters and computer program product using network adapter memory to service data requests | |
KR20110134465A (ko) | 데이터 전송 시스템 및 그 데이터 판독 방법 | |
EP1761856B1 (en) | Computer system and method for queuing interrupt messages in a device coupled to a parallel communications bus | |
CN102523168B (zh) | 一种传输报文的方法及装置 | |
CN103995786B (zh) | 高速缓存一致性消息的传输方法和装置 | |
US9965193B2 (en) | Apparatus, system, and method of sequencing, shadowing, and queuing operations in a non-volatile storage memory | |
US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN107818068B (zh) | Usb装置、数据传送***和数据传送方法 | |
JP5847013B2 (ja) | 計算機及び計算機における入出力制御方法 | |
US20140195714A1 (en) | Methods and structure for buffering host requests in serial attached scsi expanders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |