CN116578516A - 基于emmc的数据和命令的传输方法和装置 - Google Patents

基于emmc的数据和命令的传输方法和装置 Download PDF

Info

Publication number
CN116578516A
CN116578516A CN202310366992.9A CN202310366992A CN116578516A CN 116578516 A CN116578516 A CN 116578516A CN 202310366992 A CN202310366992 A CN 202310366992A CN 116578516 A CN116578516 A CN 116578516A
Authority
CN
China
Prior art keywords
target value
ratio
data
clock
command
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.)
Pending
Application number
CN202310366992.9A
Other languages
English (en)
Inventor
李想
位庆海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN202310366992.9A priority Critical patent/CN116578516A/zh
Publication of CN116578516A publication Critical patent/CN116578516A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于emmc的数据和命令的传输方法及装置,该方法包括:获取命令时钟周期个数,其中,命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数;获取块时钟周期个数,其中,块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;获取命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断第一比值的类型,如果第一比值为小数则向上取整得到第一目标数值,如果第一比值为整数则获取比值作为第一目标数值;基于第一目标数值对第二时钟周期进行调整;在第二时钟周期内传输数据并发送待传输命令。以提高数据和命令传输并行传输的安全性、可靠性。可应用于基于emmc的数据和命令传输领域。

Description

基于emmc的数据和命令的传输方法和装置
技术领域
本发明涉及基于emmc的数据和命令传输领域,尤其是一种基于emmc的数据和命令的传输方法和装置。
背景技术
目前eMMC被广泛的使用在平板电脑等电子产品当中,随着技术的推进,eMMC的协议版本不断推陈出新,到了emmc5.1,推出了cmdq(Command Queuing)功能,cmdq通过让数据和cmd并行发送,从而提升了emmc的读写性能,并且提高emmc总线的利用率。但是,因为clk依然是公用的,所以就可能出现冲突的情况,甚至可能时钟停止在命令传输的时候,这就有可能导致命令传输被打断,使得命令传输错误。
发明内容
有鉴于此,本发明实施例提供一种基于emmc的数据和命令的传输方法和装置。以提高数据和命令传输并行传输的安全性、可靠性。
本发明的第一方面提供了一种基于emmc的数据和命令的传输方法,包括:获取命令时钟周期个数,其中,所述命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,所述第一时钟周期为时钟频率的倒数,所述时钟频率为同步电路中时钟的基础频率;获取块时钟周期个数,其中,所述块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型,如果所述第一比值为小数则向上取整得到第一目标数值,如果所述第一比值为整数则获取所述比值作为所述第一目标数值;基于所述第一目标数值对第二时钟周期进行调整,其中,所述第二时钟周期为时钟连续不停止的周期;在所述第二时钟周期内传输数据并发送所述待传输命令。
根据本发明的一些实施例,所述获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型后,包括:获取缓存空间中剩余空间对应的数据量大小作为第一数据量,其中,所述缓存空间用于缓存数据块;获取待缓存到所述缓存空间的数据量作为第二数据量;获取所述第一数据量与单位块的数据量的比值作为第二比值,判断所述第二比值的类型,如果所述第二比值为小数则向上取整得到第二目标数值,如果所述第二比值为整数则获取所述比值作为所述第二目标数值;获取所述第二数据量与单位块的数据量的比值作为第三比值,判断所述第三比值的类型,如果所述第三比值为小数则向上取整得到第三目标数值,如果所述第三比值为整数则获取所述比值作为所述第三目标数值;判断所述第二目标数值是否小于1,并判断所述第三目标数值是否小于1。
根据本发明的一些实施例,所述判断所述第二目标数值是否小于1,并判断所述第三目标数值是否小于1,包括:如果所述第二目标数值大于或等于1,并且所述第三目标数值大于或等于1,则执行第一操作;如果所述第二目标数值小于1,或者所述第三目标数值小于1,则停止传输数据和命令。
根据本发明的一些实施例,所述基于所述第一目标数值对第二时钟周期进行调整,在所述第二时钟周期内传输数据并发送所述待传输命令,包括:执行所述第一操作;其中,所述第一操作具体包括:判断所述第二目标数值与所述第三目标数值是否相等,如果相等,获取所述第二目标数值或者所述第三目标数值作为临时目标数值,如果不相等,获取其中的最小值作为第一临时目标数值;比较所述第一临时目标数值与所述第一目标数值;如果所述第一临时目标数值大于或等于所述第一目标数值,则传输数据,并调整所述第二时钟周期为传输目标块的数据所需要的第一时钟周期,在第二时钟周期内发送待传输命令,其中,所述目标块为第一目标数值对应数目的块;如果所述第一临时目标数值小于所述第一目标数值,则传输数据。
根据本发明的一些实施例,所述获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型后,包括:获取待写入到emmc的数据量作为第三数据量;获取所述第三数据量与单位块的数据量的比值作为第四比值,判断所述第四比值的类型,如果所述第四比值为小数则向上取整得到第四目标数值,如果所述第四比值为整数则获取所述比值作为所述第四目标数值;判断所述第四目标数值是否小于1。
根据本发明的一些实施例,所述判断所述第四目标数值是否小于1,包括:如果所述第四目标数值大于或等于1,则并执行第二操作;如果所述第四目标数值小于1,则停止传输数据和命令。
根据本发明的一些实施例,所述基于所述第一目标数值对第二时钟周期进行调整,在所述第二时钟周期内传输数据并发送所述待传输命令,包括:执行所述第二操作;其中,所述第二操作具体包括:获取所述第四目标数值作为第二临时目标数值;比较所述第二临时目标数值与所述第一目标数值;如果所述第二临时目标数值大于或等于所述第一目标数值,则传输数据,并调整所述第二时钟周期为传输目标块的数据所需要的第一时钟周期,在第二时钟周期内发送待传输命令,其中,所述目标块为第一目标数值对应数目的块;如果所述第二临时目标数值小于所述第一目标数值,则传输数据。
本发明的另一方面提供了一种基于emmc的数据和命令的传输装置,包括:第一模块,用于获取命令时钟周期个数,其中,所述命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,所述第一时钟周期为时钟频率的倒数,所述时钟频率为同步电路中时钟的基础频率;第二模块,用于获取块时钟周期个数,其中,所述块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;第三模块,用于获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型,如果所述第一比值为小数则向上取整得到第一目标数值,如果所述第一比值为整数则获取所述比值作为所述第一目标数值;第四模块,用于基于所述第一目标数值对第二时钟周期进行调整,其中,所述第二时钟周期为时钟连续不停止的周期;第五模块,用于在所述第二时钟周期内传输数据并发送所述待传输命令。
本发明的另一方面提供了一种电子设备,包括处理器以及存储器;所述存储器用于存储程序;所述处理器执行所述程序实现如上所述的任一项所述的基于emmc的数据和命令的传输方法。
根据本发明实施例的电子设备,至少具有与上述的基于emmc的数据和命令的传输方法同样的有益效果。
本发明的另一方面提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如上所述的任一项所述的基于emmc的数据和命令的传输方法。
根据本发明实施例的计算机可读存储介质,至少具有与上述的基于emmc的数据和命令的传输方法同样的有益效果。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例通过获取传输待传输命令需要的第一时钟周期个数和传输一个块中的数据需要的第二时钟周期个数,并得到二者的比值,如果比值为小数则向上取整,获取这个比值作为第一目标数值,从而得到传输待传输命令需要的时钟相当于传输多少个块中的数据需要的时钟,之后,获取与第一目标数值相同个数的块作为目标块,在传输目标块的数据的时候发送待传输命令。从而保证了发送待传输命令的时候都处于发送块数据的时候,此时时钟就不会停止,待传输命令的传输也就不会被打断,从而在数据与命令并行传输的同时,提高了命令传输的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于emmc的数据和命令的传输方法的流程图;
图2为本发明实施例提供的基于emmc的数据和命令的传输装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前eMMC被广泛的使用在平板电脑等电子产品当中,随着技术的推进,eMMC的协议版本不断推陈出新,到了emmc5.1,推出了cmdq(Command Queuing)功能,该功能够提升emmc的读写性能,并且提高emmc总线的利用率。主机端如何充分利用该功能,成为提高产品性能,提高用户体验的重要因素。
eMMC cmdq其中一个特点是提高emmc总线的并行性能。Host能在数据进行传输的同时能发送下一个命令给emmc,host能充分利用数据传输过程空闲的cmd线来发送新命令给emmc,令cmd和data并行传输,提高emmc总线的利用效率,也让emmc本身能够在传输数据的时候同时能够在其内部提前为下一笔数据做准备。该功能同时了提高host和emmc,emmc内部的并行性能。
虽然cmdq让数据和cmd能并行发送,但是clk依然是公用的,这种情况下,就会出现冲突的情况,典型的,当emmc在发送数据的时候,如果host端因为fifo空满等原因需要停止clk的时候,这个时候cmd也无法再发送出去,更严重的是,停止时钟会发生在cmd还在传输的时候,打断cmd的传输,等到clk重新发出的时候,cmd传输才能从打断的地方继续开始。这种情况可能导致emmc接收cmd或者host接收response出现错误,尤其是clk频率高的情况下,更容易出问题.并且协议也明确说这种情况会导致不确定行为。
针对这种情况,目前采用的几种方法如下:
1.避免在数据传输的时候发送命令,这样cmdq无法实现cmd和data的并行发送,会降低cmdq的效率,无法完全发挥其性能。
2.Cmd和data并行的时候,cmd因为停时钟导致出错后,放弃当前cmd,或者连数据也放弃。这种情况要做异常处理,浪费带宽,降低效率,也可能产生兼容性问题。
3.使用Enhanced Strobe,这种方式cmd的Response不需要clk信号,而是使用datastrobe作为时钟。这种方式可以解决cmd的Response被打断问题,但是无法解决cmd本身被打断问题,并且需要host和emmc device同时支持这个功能,而且只能用在emmc的hs400模式下。既无法完全解决问题,又存在使用范围限制。
可以看出,目前还没有一种既能保证数据和命令同步并行传输,同时提高命令传输安全的方法,对此,本申请提出了基于emmc的数据和命令的传输方法和装置,以在数据和命令并行同步传输时候,提高命令传输的安全性和可靠性。可广泛应用于基于emmc的数据和命令的传输领域。
参考图1,图1为本发明实施例提供的基于emmc的数据和命令的传输方法的流程图,包括步骤S110-步骤S150:
步骤S110,获取命令时钟周期个数,其中,命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,第一时钟周期为时钟频率的倒数,时钟频率为同步电路中时钟的基础频率。
步骤S120,获取块时钟周期个数,其中,块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数。
步骤S130,获取命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断第一比值的类型,如果第一比值为小数则向上取整得到第一目标数值,如果第一比值为整数则获取比值作为第一目标数值。
步骤S140,基于第一目标数值对第二时钟周期进行调整,其中,第二时钟周期为时钟连续不停止的周期;
步骤S150,在第二时钟周期内传输数据并发送待传输命令。
具体地,在host与emmc之间传输数据的时候,如果是host读取emmc的数据,host读取数据后会将数据放到host的fifo,即缓存空间里面,然后再将缓存空间里面的数据搬运到内部的易失真存储里面,例如DRAM里面。当host发现fifo,即缓存空间不足,或者已经满了的时候,为了保证emmc传过来的数据不丢失,host就会停止时钟,host停止时钟后,emmc也就停止输出数据了。直到fifo里面的数据被搬运到内存,fifo空间再次充足的时候,host就会再次输出时钟以接受新的emmc输出数据。可以看出,只有fifo,即缓存空间一直没有保持满的状态,时钟才一直不会停止,这时候就可以在cmd线上和数据一起并行传输命令。但在实际情况中,不可能保证fifo一直保证没有满的状态。另一种情况,如果是host把数据往emmc写的时候,对于host来说,CPU或者dma,先把需要发送的数据从内部的易失真存储,例如DRAM里面,放到host的fifo,即缓存空间中,然后host再把fifo的数据通过emmc总线发送到emmc。当host发现fifo的有效数据太少的时候,或者没有数据的时候,host只能停止时钟,停止发送数据,host停止时钟后,emmc也就停止接收数据了。等fifo里面的数据被CPU或者dma从内存搬运到fifo,fifo里面有效数据再次充足的时候,host就会再次输出时钟以发送新的数据给emmc。可以看出,只要fifo,即缓存空间里一直有数据,时钟就不会停止,命令就可以跟着数据一起并行收发。但在实际情况中,不可能保证fifo一直有数据。
因此,获取传输待传输命令所需要的时钟周期个数为命令时钟周期个数,获取传输一个块中的数据需要的时钟周期个数作为块时钟周期个数。并获取命令时钟周期个数与块时钟周期个数的比值作为第一比值,如果第一比值是整数直接作为第一目标数值,如果第一比值是小数,则将第一比值向上取整得到整数后作为第一目标数值。这是因为已经得知在实际情况中,读过程中,fifo不可能保持一直没有满的状态,写过程中,fifo不可能保持一直有数据的状态。但是由于emmc协议的要求,在hs200/hs400模式下,在进行数据传输的时候,host只能在块与块之间停时钟,即,不能在一个块的传输过程中停止时钟,也就是说,host必须保证在一个块的传输期间,时钟是不会停的。因此,通过获取第一目标数值,得知传输待传输命令过程中所需要的时钟周期相当于传输多少个块的数据所需要的时钟周期,之后,基于第一目标数值对第二时钟周期进行调整,使得第二时钟周期在第一目标数值对应的块数据传输完成后,才停止时钟,而在第二时钟周期内进行数据传输和命令传输,此时,因为在第二时钟周期内,时钟是不会停止的,所以就减少了命令被打断传输的风险,在数据与命令并行同步传输的情况下,提高了命令传输的安全性。要说明的是,第一时钟周期为时钟频率的倒数,时钟频率为同步电路中时钟的基础频率,而第二时钟周期设置为时钟连续不停止的周期。也就是说,以第一目标数值对应的块数目为单位进行传输,fifo或者说host保证在第一目标数值对应数目的块在传输过程中不允许停时钟,但是在第一目标数值对应数目的块与块之间可以停时钟。示例性地,在hs400模式下,要完成一个block,即一个块的数据传输,至少需要256个第一时钟周期,即块时钟周期个数为256,获取传输待传输命令需要的第一时钟周期为500个,即命令时钟周期个数为500,经过计算,命令时钟周期个数与块时钟周期个数的第一比值为1.95,为小数,因此向上取整,得到第一目标数值为2。也就是说,根据第一目标数值调整第二时钟周期,使得在完成2个块的数据传输后才停止时钟,即,第二时钟周期相当于256*2=512个第一时钟周期,总而言之,在完成两个块的数据传输对应的第一时钟周期后,时钟才开始停止。这个过程中,以两个块作为一个单位传输,也就是说,根据第一目标数值调整第二四周周期,使得fifo或者说host保证2个块传输过程中不允许停时钟,但是前两个块与后两个块之间可以停时钟,此时,在第二时钟周期内,在第一个块最开始传输数据的同时,开始传输命令,因为两个块传输过程时钟不会停,这样就不用担心命令因为时钟停止而被打断了。更进一步地,通常情况下,两个块的传送时间对应的时钟周期已经足够大部分命令完成传输。
在另一实施例中,在获取命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断第一比值的类型,根据第一比值的类型得到第一目标数值之后,还包括以下步骤:
在一实施例中,在host读取emmc的数据这个过程中,需要先将数据缓存到fifo,即缓存空间内,之后在把缓存空间的数据搬运到内部的易失真存储中。因此,获取缓存空间中剩余空间对应的数据量作为第一数据量,获取待缓存到缓存空间的数据量作为第二数据量,并获取第一数据量与单位块数据量的比值作为第二比值,如果是小数向上取整作为第二目标数值,如果是整数直接作为第二目标数值,获取第二数据量与单位块数据量的比值作为第三比值,如果是小数向上取整作为第三目标数值,如果是整数直接作为第三目标数值。并判断第二目标数值是否小于1,第三目标数值是否小于1。如果第二目标数值大于或等于1,则说明剩余空间对应能缓存的数据量大于或者等于单位块数据量;如果第三目标数值大于或等于1,则说明待缓存到缓存空间的数据量大于或等于单位块数据量。当第二目标数值大于或等于1,并且第三目标数值大于或等于1的时候,即,要读取到缓存空间的数据量大于或等于单位块对应的数据量并且缓存空间中剩余空间的数据量大于或等于单位块对应的数据量的时候,确保了起码能够传输至少一个完整块的数据量。因此,如果确定第二目标数值大于或等于1,第三目标数值大于或等于1的时候,执行第一操作。对应的,如果第二目标数值小于1,或者第三目标数值小于1,则说明缓存空间中的剩余空间不足以缓存单位块对应的数据量,或者待缓存到缓存空间的数据量不够单位块对应的数据量,也就是说,甚至无法成功传输一个块数据到缓存空间,因此,需要停止命令传输和数据传输。host根据缓存空间状态,控制数据接收,当缓存空间里面的空间足够传输目标块数据的时候,才启动目标块数据传输。
在另一实施例中,host读取emmc数据的过程中,基于第一目标数值对第二时钟周期进行调整,在第二时钟周期内传输数据并发送待传输命令,还包括以下步骤:
执行第一操作。其中,获取第二目标数值和第三目标数值是为了确定当前能够传输的数据量相当于多少个块的数据量以及能缓存空间中剩余空间能接受的数据量相当于多少个块的数据量。获取第二目标数值与第三目标数值中的最小值作为第一临时目标数值,如果二者相等,则直接将第二目标数值或者第三目标数值作为第一临时目标数值,这是因为当前待缓存到缓存空间的数据量与缓存空间剩余空间能缓存的数据量彼此受限,因此需要选取其中的最小值作为第一临时目标数值,作为在进行数据传输时确认能传输的块数目。之后比较第一临时目标数值与第一目标数值;如果第一临时目标数值大于或等于第一目标数值,则传输数据,并调整第二时钟周期为传输目标块的数据所需要的时钟周期,在第二时钟周期内发送待传输命令,其中,目标块为第一目标数值对应数目的块;如果第一临时目标数值小于第一目标数值,则传输数据。能理解的是,比较第一临时目标数值和第一目标数值是因为,在读过程中,第一临时目标数值表征当前能够顺利进行数据传输的块数目,而第一目标数值表征为传输待传输命令需要用到的时钟周期对应的块数目,因此通过将二者进行比较,确定如果要顺利传输全部待传输命令的话,当前进行数据传输的块数目对应的时钟周期是否足够,如果第一临时目标数值大于或等于第一目标数值,则说明是足够的,因此需要根据第一目标数值调整第二时钟周期,第二时钟周期表征时钟连续不停止的周期,所以,获取传输目标块的数据过程中所需要的第一时钟周期,获取这个值作为第二时钟周期,其中,目标块在这里是第一目标数值对应数目的块。如果第一临时目标数值大于或等于第一目标数值,可以开始传输数据,并在第二时钟周期内传输命令,要说明的是,第二时钟周期从数据开始传输的那一刻开始算起,为了避免命令传输超出第二时钟周期的情况发生,更进一步地,命令传输与数据传输同时开始进行。如果第一临时目标数值小于第一目标数值,则说明当前传输数据所需要的第一时钟周期,是不够传输完所有待传输命令的,因此为了避免命令传输中途被打断,只选择传输数据。
在另一实施例中,在host将数据往emmc里写的过程中,CPU或者dma先把需要发送的数据从内部的易失真存储里面放到host的缓存空间中,然后host再把缓存空间的数据通过emmc总线发送到emmc。因此,获取缓存空间中,待写入emmc的数据量作为第三数据量,获取第三数据量与单位块的数据量的比值作为第四比值,判断第四比值的类型,如果第四比值为小数则向上取整得到第四目标数值,如果第四比值为整数则获取比值作为第四目标数值,判断第四目标数值是否小于1。如果第四目标数值大于或等于1,则执行第二操作;如果第四目标数值小于1,则停止传输数据和命令。这是如果第四目标数值大于或等于1,说明起码有一个完整的块数据能进行传输,此时选择执行第二操作,而如果小于1,则说明能进行传输的数据甚至不足一个块数据,无法启动传输操作,因此停止传输数据和命令。能理解的是,在写过程,获取第四目标数值是为了确定当前缓存空间中能传输写入到emmc的数据量相当于多少个块的数据量。写过程是在缓存空间中剩余数据量中写入数据到emmc,因此直接获取第四目标数值作为第二临时目标数值。这个过程中,host根据缓存空间状态控制数据接收,当缓存空间里面的数据足够传输目标块数据的时候,才启动目标块数据传输。
在另一实施例中,host写入数据到emmc的过程中,基于第一目标数值对第二时钟周期进行调整,在第二时钟周期内传输数据并发送待传输命令,还包括以下步骤:
执行第二操作。其中,第二操作具体包括:获取第四目标数值作为第二临时目标数值,比较第二临时目标数值与第一目标数值,如果第二临时目标数值大于或等于第一目标数值,则传输数据,并调整第二时钟周期为传输目标块的数据所需要的时钟周期,在第二时钟周期内发送待传输命令,其中,目标块为第一目标数值对应数目的块,如果第二临时目标数值小于第一目标数值,则传输数据。在写过程中,获取第四目标数值作为第二临时目标数值,第二临时目标数值表征当前在缓存空间中的数据写入到emmc的时候对应的块数目,此时将第二临时目标数值与第一目标数值相比较,确定在传输块数据的时候需要用到的第一时钟周期个数范围内,是否能将待传输命令传输完成,如果可以,也就是如果第二临时目标数值大于或等于第一目标数值,则传输数据,并获取第一目标数值对应数目的块作为目标块,并获取传输目标块所需要的第一时钟周期的个数,对第二时钟周期进行调整,在第二时钟周期内发送带传输命令。如果第二临时目标数值小于第一目标数值,那就是命令可能在中途被中断,因此只传输数据。
要说明的是,在确定传输数据并传输命令后,传输命令要在第一个块的数据刚开始传输的时候就进行传输,也就是说,传输命令与传输数据要同时开始,这是考虑到传输块数据过程中对应的时钟周期可能刚好等于传输命令所需要的,因此为了避免因为命令传输比较迟开始,而导致已经进入到时钟停止的情况,因此需要传输命令和传输数据同时进行。
参考图2,图2为本发明实施例提供的基于emmc的数据和命令的传输装置的示意图,包括第一模块210、第二模块220、第三模块230、第四模块240和第五模块250:
第一模块210,用于获取命令时钟周期个数,其中,命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,第一时钟周期为时钟频率的倒数,时钟频率为同步电路中时钟的基础频率;第二模块220,用于获取块时钟周期个数,其中,块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;第三模块230,用于获取命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断第一比值的类型,如果第一比值为小数则向上取整得到第一目标数值,如果第一比值为整数则获取比值作为第一目标数值;第四模块240,用于基于第一目标数值对第二时钟周期进行调整,其中,第二时钟周期为时钟连续不停止的周期;第五模块250,用于在第二时钟周期内传输数据并发送待传输命令。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种基于emmc的数据和命令的传输方法,其特征在于,包括:
获取命令时钟周期个数,其中,所述命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,所述第一时钟周期为时钟频率的倒数,所述时钟频率为同步电路中时钟的基础频率;
获取块时钟周期个数,其中,所述块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;
获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型,如果所述第一比值为小数则向上取整得到第一目标数值,如果所述第一比值为整数则获取所述比值作为所述第一目标数值;
基于所述第一目标数值对第二时钟周期进行调整,其中,所述第二时钟周期为时钟连续不停止的周期;
在所述第二时钟周期内传输数据并发送所述待传输命令。
2.根据权利要求1所述的基于emmc的数据和命令的传输方法,其特征在于,所述获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型,包括:
获取缓存空间中剩余空间对应的数据量大小作为第一数据量,其中,所述缓存空间用于缓存数据块;
获取待缓存到所述缓存空间的数据量作为第二数据量;
获取所述第一数据量与单位块的数据量的比值作为第二比值,判断所述第二比值的类型,如果所述第二比值为小数则向上取整得到第二目标数值,如果所述第二比值为整数则获取所述比值作为所述第二目标数值;
获取所述第二数据量与单位块的数据量的比值作为第三比值,判断所述第三比值的类型,如果所述第三比值为小数则向上取整得到第三目标数值,如果所述第三比值为整数则获取所述比值作为所述第三目标数值;
判断所述第二目标数值是否小于1,并判断所述第三目标数值是否小于1。
3.根据权利要求2所述的基于emmc的数据和命令的传输方法,其特征在于,所述判断所述第二目标数值是否小于1,并判断所述第三目标数值是否小于1,包括:
如果所述第二目标数值大于或等于1,并且所述第三目标数值大于或等于1,则执行第一操作;
如果所述第二目标数值小于1,或者所述第三目标数值小于1,则停止传输数据和命令。
4.根据权利要求3所述的基于emmc的数据和命令的传输方法,其特征在于,所述基于所述第一目标数值对第二时钟周期进行调整,在所述第二时钟周期内传输数据并发送所述待传输命令,包括:
执行所述第一操作;
其中,所述第一操作具体包括:
判断所述第二目标数值与所述第三目标数值是否相等,如果相等,获取所述第二目标数值或者所述第三目标数值作为临时目标数值,如果不相等,获取其中的最小值作为第一临时目标数值;
比较所述第一临时目标数值与所述第一目标数值;
如果所述第一临时目标数值大于或等于所述第一目标数值,则传输数据,并调整所述第二时钟周期为传输目标块的数据所需要的第一时钟周期,在第二时钟周期内发送待传输命令,其中,所述目标块为第一目标数值对应数目的块;
如果所述第一临时目标数值小于所述第一目标数值,则传输数据。
5.根据权利要求1所述的基于emmc的数据和命令的传输方法,其特征在于,所述获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型后,包括:
获取待写入到emmc的数据量作为第三数据量;
获取所述第三数据量与单位块的数据量的比值作为第四比值,判断所述第四比值的类型,如果所述第四比值为小数则向上取整得到第四目标数值,如果所述第四比值为整数则获取所述比值作为所述第四目标数值;
判断所述第四目标数值是否小于1。
6.根据权利要求5所述的基于emmc的数据和命令的传输方法,其特征在于,所述判断所述第四目标数值是否小于1,包括:
如果所述第四目标数值大于或等于1,则并执行第二操作;
如果所述第四目标数值小于1,则停止传输数据和命令。
7.根据权利要求6所述的基于emmc的数据和命令的传输方法,其特征在于,所述基于所述第一目标数值对第二时钟周期进行调整,在所述第二时钟周期内传输数据并发送所述待传输命令,包括:
执行所述第二操作;
其中,所述第二操作具体包括:
获取所述第四目标数值作为第二临时目标数值;
比较所述第二临时目标数值与所述第一目标数值;
如果所述第二临时目标数值大于或等于所述第一目标数值,则传输数据,并调整所述第二时钟周期为传输目标块的数据所需要的第一时钟周期,在第二时钟周期内发送待传输命令,其中,所述目标块为第一目标数值对应数目的块;
如果所述第二临时目标数值小于所述第一目标数值,则传输数据。
8.一种基于emmc的数据和命令的传输装置,其特征在于,包括:
第一模块,用于获取命令时钟周期个数,其中,所述命令时钟周期个数为传输待传输命令需要的第一时钟周期的个数,其中,所述第一时钟周期为时钟频率的倒数,所述时钟频率为同步电路中时钟的基础频率;
第二模块,用于获取块时钟周期个数,其中,所述块时钟周期个数为传输一个块中的数据需要的第一时钟周期的个数;
第三模块,用于获取所述命令时钟周期个数与块时钟周期个数的比值作为第一比值,判断所述第一比值的类型,如果所述第一比值为小数则向上取整得到第一目标数值,如果所述第一比值为整数则获取所述比值作为所述第一目标数值;
第四模块,用于基于所述第一目标数值对第二时钟周期进行调整,其中,所述第二时钟周期为时钟连续不停止的周期;
第五模块,用于在所述第二时钟周期内传输数据并发送所述待传输命令。
9.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至7中任一项所述的方法。
CN202310366992.9A 2023-04-06 2023-04-06 基于emmc的数据和命令的传输方法和装置 Pending CN116578516A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310366992.9A CN116578516A (zh) 2023-04-06 2023-04-06 基于emmc的数据和命令的传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310366992.9A CN116578516A (zh) 2023-04-06 2023-04-06 基于emmc的数据和命令的传输方法和装置

Publications (1)

Publication Number Publication Date
CN116578516A true CN116578516A (zh) 2023-08-11

Family

ID=87543643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310366992.9A Pending CN116578516A (zh) 2023-04-06 2023-04-06 基于emmc的数据和命令的传输方法和装置

Country Status (1)

Country Link
CN (1) CN116578516A (zh)

Similar Documents

Publication Publication Date Title
US8522067B2 (en) Variable latency interface for read/write channels
US9535607B2 (en) Semiconductor system performing status read for semiconductor device and operating method thereof
US8356203B2 (en) Asynchronous interface circuit and data transfer method
US10120590B2 (en) Method for providing read data flow control or error reporting using a read data strobe
US8806071B2 (en) Continuous read burst support at high clock rates
US10331359B2 (en) Memory subsystem with wrapped-to-continuous read
CN102646446A (zh) 硬件动态高速缓存电源管理
CN111563052B (zh) 降低读延时的缓存方法、装置、计算机设备及存储介质
US7725621B2 (en) Semiconductor device and data transfer method
US20060236001A1 (en) Direct memory access controller
CN111722827B (zh) 一种高效ddr访问方法
JP2008015876A (ja) データアクセスシステム、データアクセス装置、データアクセス集積回路及びデータアクセス方法
CN116578516A (zh) 基于emmc的数据和命令的传输方法和装置
CN1937075B (zh) 数据传送操作完成检测电路和包含其的半导体存储器件
US20140244887A1 (en) Data processing apparatus and control method
US9239610B2 (en) Systems and methods for managing data in a system for hibernation states
US20150199130A1 (en) Method for processing data in storage device and storage device
TWI416336B (zh) 可共享緩衝器的網路介面卡與緩衝器共享方法
CN112732166A (zh) 访问固态硬盘的方法及装置
CN116662233B (zh) Ahb接口设备写传输方法、装置、电子设备及可读存储介质
JP5334173B2 (ja) データ転送システム及びリトライ制御方法
JP2005346637A (ja) 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
KR20080066463A (ko) 멀티미디어 저장장치 및 그 제어방법
JP2002259229A (ja) メモリデータ誤り訂正方式
JP2008021040A (ja) バスマスタ回路、バス制御方法、及びコンピュータプログラム

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