CN118363914B - 数据处理方法、固态硬盘设备及主机 - Google Patents
数据处理方法、固态硬盘设备及主机 Download PDFInfo
- Publication number
- CN118363914B CN118363914B CN202410788412.XA CN202410788412A CN118363914B CN 118363914 B CN118363914 B CN 118363914B CN 202410788412 A CN202410788412 A CN 202410788412A CN 118363914 B CN118363914 B CN 118363914B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- instruction
- memory
- solid state
- 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.)
- Active
Links
- 239000007787 solid Substances 0.000 title claims abstract description 232
- 238000003672 processing method Methods 0.000 title claims abstract description 74
- 230000015654 memory Effects 0.000 claims abstract description 760
- 238000000034 method Methods 0.000 claims abstract description 126
- 230000004044 response Effects 0.000 claims abstract description 115
- 238000012545 processing Methods 0.000 claims description 59
- 230000000977 initiatory effect Effects 0.000 claims description 31
- 230000006854 communication Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract 1
- 238000013403 standard screening design Methods 0.000 description 641
- 230000008569 process Effects 0.000 description 75
- 238000013507 mapping Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 229940044442 onfi Drugs 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 238000011084 recovery Methods 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据处理方法、固态硬盘设备及主机,属于数据存储技术领域。数据处理方法包括:主机响应于数据读取操作,向提交队列写入数据读取指令,向固态硬盘设备发送第一地址指示数据;固态硬盘设备通过计算互连标准‑缓存协议支持的请求通道,向主机发送第一读指令;主机读取数据读取指令,通过计算互连标准‑缓存协议支持的响应通道,向固态硬盘设备发送目标读取指令;固态硬盘设备从其闪存介质中读取目标数据;固态硬盘设备向主机发起第一内存写事务;主机将目标数据写入内存;固态硬盘设备将数据读取指令的完成状态信息写入内存中的完成队列;固态硬盘设备向主机发起中断事务;主机消费完成队列中的完成状态信息。
Description
技术领域
本申请涉及一种数据处理方法、固态硬盘设备及主机。
背景技术
PCI-Express(Peripheral Component Interconnect Express,PCIE)是一种高速串行计算机扩展总线标准,其具有数据传输率高、输入/输出(Input/ Output,I/O)端口利用效率高以及扩展灵活性强等优势。因而,基于PCIE接口的固态硬盘(Solid State Drive,SSD)因具有较高的顺序读/写速度和随机读写性能,而备受欢迎。
但是,目前计算机体系下的PCIE数据处理系统中,主机中的高速缓存结构不可以缓存PCIE相关的内存事务。这样,主机与基于PCIE接口的SSD之间的数据读取/写入过程,则需要主机内存的参与,导致目前的数据读取/写入过程中主机内存与SSD之间存在频繁的内存事务读写操作。因而,目前的数据读取/写入过程存在延迟较高的问题。
发明内容
本申请实施例的目的是提供一种数据处理方法、固态硬盘设备及主机,能够解决目前的数据读取/写入过程存在延迟较高的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括:固态硬盘设备和主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议(即CXL.cache协议)和计算互连标准-输入输出协议(即CXL.io协议)通信;所述方法包括:
所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
所述固态硬盘设备从其闪存介质中读取所述目标数据;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
所述主机将所述目标数据写入所述内存;
所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
所述主机消费所述完成队列中的所述完成状态信息。
第二方面,本申请实施例提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括:固态硬盘设备和主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
所述主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,所述第二地址指示数据指示所述数据写入指令的第二指令地址,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二读指令携带所述第二指令地址;
所述主机根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务携带所述写入数据的数据地址;
所述主机根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据;
所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
所述主机消费所述完成队列中所述数据写入指令的完成状态信息。
第三方面,本申请实施例提供一种固态硬盘设备,所述固态硬盘设备包括:固态硬盘控制芯片和闪存介质,所述固态硬盘控制芯片包括计算互连标准控制器、处理器和闪存控制器;所述计算互连标准控制器与主机之间的物理通道支持计算互连标准-缓存协议和计算互连标准-输入输出协议的数据通信;
所述处理器用于在通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,接收到第一地址指示数据的情况下,通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一地址指示数据是所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据读取指令的第一指令地址的数据,所述第一读指令用于供所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
所述闪存控制器用于从其闪存介质中读取所述目标数据;
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务用于供所述主机将所述目标数据写入所述内存;
所述处理器还用于将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中的所述完成状态信息。
第四方面,本申请实施例提供一种主机,所述主机包括:处理器、内存和根节点,所述处理器通过所述根节点与固态硬盘设备和所述内存连接;所述根节点包括协议复用器、输入输出控制器、高速缓冲存储器控制器和内存控制器;所述协议复用器与所述固态硬盘设备之间的物理通道支持计算互连标准-缓存协议和计算互连标准-输入输出协议的数据通信;
所述处理器用于响应于数据读取操作,向所述内存中的提交队列写入数据读取指令,通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址,所述第一地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
所述内存控制器用于通过所述协议复用器提供的计算互连标准-缓存协议支持的请求通道,接收所述第一读指令;
所述内存控制器还用于根据所述第一指令地址读取所述数据读取指令,通过所述协议复用器提供的计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于供所述固态硬盘设备从其闪存介质中读取所述数据读取指令指示的目标数据,通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
所述内存控制器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述第一内存写事务;
所述内存控制器还用于将所述目标数据写入所述内存;
所述处理器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述固态硬盘设备向所述主机发起的中断事务,所述中断事务是所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起的;
所述处理器还用于消费所述完成队列中所述数据读取指令的所述完成状态信息。
第五方面,本申请实施例提供一种数据处理方法,应用于数据处理系统的固态硬盘设备,所述数据处理系统还包括主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
在通过计算互连标准-输入输出协议支持的通道,接收到第一地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一地址指示数据是所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据读取指令的第一指令地址的数据,所述第一读指令用于供所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
通过计算互连标准-缓存协议支持的响应通道,接收所述目标读取指令;
从其闪存介质中读取所述目标数据;
通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务用于供所述主机将所述目标数据写入所述内存;
将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中的所述完成状态信息。
第六方面,本申请实施例提供一种数据处理方法,应用于数据处理系统的固态硬盘设备,所述数据处理系统还包括主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
在通过计算互连标准-输入输出协议支持的通道,接收到第二地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二地址指示数据是所述主机响应于数据写入操作,向内存中的提交队列写入数据写入指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据写入指令的第二指令地址的数据,所述第二读指令用于供所述主机根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
通过计算互连标准-缓存协议支持的响应通道,接收所述数据写入指令;
通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务用于供所述主机根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据;
通过计算互连标准-输入输出协议支持的通道,接收所述完成事务;
将所述写入数据写入所述闪存介质;
将所述数据写入指令的完成状态信息写入内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中所述数据写入指令的完成状态信息。
第七方面,本申请实施例提供一种数据处理方法,应用于数据处理系统的主机,所述数据处理系统还包括固态硬盘设备,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址,所述第一地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
通过计算互连标准-缓存协议支持的请求通道,接收所述第一读指令;
根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于供所述固态硬盘设备从其闪存介质中读取所述数据读取指令指示的目标数据,通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
通过计算互连标准-输入输出协议支持的通道,接收所述第一内存写事务;
将所述目标数据写入所述内存;
通过计算互连标准-输入输出协议支持的通道,接收所述固态硬盘设备向所述主机发起的中断事务,所述中断事务是所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起的;
消费所述完成队列中所述数据读取指令的所述完成状态信息。
第八方面,本申请实施例提供一种数据处理方法,应用于数据处理系统的主机,所述数据处理系统还包括固态硬盘设备,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,所述第二地址指示数据指示所述数据写入指令的第二指令地址,所述第二地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二读指令携带所述第二指令地址,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
通过计算互连标准-缓存协议支持的请求通道,接收所述第二读指令;
根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令,所述数据写入指令用于供所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务携带所述写入数据的数据地址;
通过计算互连标准-输入输出协议支持的通道,接收所述内存读事务;
根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据,所述完成事务用于供所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
通过计算互连标准-输入输出协议支持的通道,接收所述中断事务;
消费所述完成队列中所述数据写入指令的完成状态信息。
第九方面,本申请实施例提供了一种电子设备,所述电子设备包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面、第二方面、第五方面至第八方面任一项所述的数据处理方法。
第十方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现第一方面、第二方面、第五方面至第八方面任一项所述的数据处理方法。
第十一方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面、第二方面、第五方面至第八方面任一项所述的数据处理方法。
第十二方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如第一方面、第二方面、第五方面至第八方面任一项所述的数据处理方法。
本申请实施例中,数据处理系统通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
并且,数据处理系统通过主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
附图说明
图1是本申请实施例提供的SSD设备的结构图之一;
图2是本申请实施例提供的数据处理方法的原理示意图之一;
图3是本申请实施例提供的数据处理方法的原理示意图之二;
图4是本申请实施例提供的数据处理系统的结构图之一;
图5是本申请实施例提供的数据处理方法的流程图之一;
图6是本申请实施例提供的数据处理方法的原理示意图之三;
图7是本申请实施例提供的数据处理方法的原理示意图之四;
图8是本申请实施例提供的数据处理方法的原理示意图之五;
图9是本申请实施例提供的数据处理方法的流程图之二;
图10是本申请实施例提供的数据处理方法的原理示意图之六;
图11是本申请实施例提供的数据处理方法的原理示意图之七;
图12是本申请实施例提供的SSD设备的结构图之二;
图13是本申请实施例提供的主机的结构图之一;
图14是本申请实施例提供的数据处理方法的流程图之三;
图15是本申请实施例提供的数据处理方法的流程图之四;
图16是本申请实施例提供的数据处理方法的流程图之五;
图17是本申请实施例提供的数据处理方法的流程图之六;
图18是本申请提供的电子设备的框图之一。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
PCI-Express(Peripheral Component Interconnect Express,PCIE)是一种高速串行计算机扩展总线标准,其具有数据传输率高、输入/输出(Input/ Output,I/O)端口利用效率高以及扩展灵活性强等优势。因而,基于PCIE接口的固态硬盘(Solid State Drive,SSD)因具有较高的顺序读/写速度和随机读写性能,而备受欢迎。
但是,目前计算机体系下的PCIE数据处理系统中,主机中的高速缓存结构不可以缓存PCIE相关的内存事务。这样,主机与基于PCIE接口的SSD之间的数据读取/写入过程,则需要主机内存的参与,导致目前的数据读取/写入过程中主机内存与SSD之间存在频繁的内存事务读写操作。因而,目前PCIE链路的数据读取/写入过程存在延迟较高的问题。
目前提出了一种计算互连标准(Compute Express Link,CXL)协议,想要解决目前PCIE链路的数据读取/写入过程存在的高延迟问题以及实现缓存一致性。其中,CXL协议包括计算互连标准-输入输出协议(即CXL.io协议)、计算互连标准-缓存协议(即CXL.cache协议)和计算互连标准-存储协议(即CXL.memory协议,又称CXL.mem协议)。
CXL.io协议基于PCIE标准,可以用于闪存设备发现、闪存设备状态报告、闪存介质的虚拟地址到物理地址转换和直接内存访问等。所有基于PCIE接口的闪存设备(又称PCIE设备)均需要支持CXL.io协议。
CXL.cache协议用于在闪存设备侧缓存主机的内存的数据。PCIE设备可以选择性地支持CXL.cache协议。
CXL.mem协议用于支持主机中CPU和其他CXL设备能够访问闪存设备侧的内存,并将闪存设备侧的内存作为可缓存内存。PCIE设备可以选择性地支持CXL.cache协议。
PCIE设备根据其支持的具体CXL协议的不同,可以划分为三类CXL设备,用于满足各种使用模型的需求。
第一类CXL设备:诸如智能网络接口卡等加速器。其使用一致性语义以及PCIE支持的直接存储器访问传输。该类CXL设备支持CXL.io协议和CXL.cache协议。
第二类CXL设备:诸如通用图形处理器、现场可编程门阵列等各类专用加速器。其可以既具有部分映射到主机侧内存的本地内存,还可以缓存主机侧内存的数据进行处理。该类CXL设备支持CXL.io协议、CXL.cache协议和CXL.mem协议。
第三类CXL设备:其可以用于内存带宽和容量扩展。该类设备可以用于连接不同内存类型的内存,其包括支持连接CXL设备侧的多个内存层。该类CXL设备支持CXL.io协议和CXL.mem协议。
目前,PCIE数据处理系统中,支持CXL协议的SSD设备(即CXL-SSD设备、PCIE-SSD设备)通常采用CXL.io协议与主机进行通信。具体地,在PCIE数据处理系统中,主机的内存映射在系统空间中,作为系统内存的一部分。SSD设备的内存作为闪存的缓存使用,用以隐藏主机和SSD设备二者之间的长延时。主机与SSD设备之间的数据读取/写入过程,需要主机的内存的参与。这样,目前的数据读取/写入过程中主机的内存与SSD设备之间存在频繁的内存事务读写操作。目前主机与SSD设备之间的PCIE链路的数据读取/写入过程具有较高延迟。
例如,如图1所示,SSD设备包括:SSD主控芯片、内存、闪存控制器和闪存(即闪存介质)。SSD主控芯片包括:处理器、前端模块、缓存控制器和缓存。前端模块包括总线模块(即PCIE EP(Endpoint)模块)、非易失性内存主机控制器接口(Non Volatile MemoryExpress,NVMe)控制器(本申请图中简称内存主机控制器)和网卡(Network InterfaceController,NIC)。闪存控制器包括开放式NAND快闪存储器接口(Open NAND FlashInterface,ONFI)控制层和ONFI物理层(本申请图中ONFI简称为闪存存储器接口)。内存可以为动态随机存取存储器(Dynamic Random Access Memory,DRAM)。闪存可以为SSD。其中,SSD设备中内存的存储空间与闪存的存储空间存在对应关系。SSD设备中内存的存储空间被配置为闪存上对应的存储空间的缓存。闪存可以包括多个存储介质,其存储有闪存上存储空间的逻辑块地址(Logical-Block-address,LBA)与该存储空间的闪存页面地址(即物理块地址)的映射表。该映射表记录LBA和闪存页面地址的对应关系。闪存上存储空间的LBA为内存上与该存储空间对应的存储空间的物理块地址(Physical Block Address,PBA)。这样,闪存上存储空间的LBA与该存储空间的闪存页面地址的映射表,也可以称为闪存上存储空间的LBA与PBA的映射表。映射表记录闪存上存储空间的LBA与PBA的对应关系。
如图2所示,主机向SSD设备读取数据的过程包括:
步骤201、主机向内存中的提交队列写入数据读取指令。
步骤202、主机向SSD设备发起内存写事务,以向SSD设备的第一寄存器写入尾门铃(Tail Doorbell)和向SSD设备发送数据读取指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤203、SSD设备向主机发起内存读事务。内存读事务用于从内存中的提交队列中提取数据读取指令。其中,内存可以为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)。
步骤204、主机向SSD设备发起完成(Completion)事务。完成事务携带有数据读取指令。数据读取指令指示SSD设备读取目标LBA的数据,存储至内存中的目标物理区域页(Physical Region Page,PRP)。
步骤205、SSD设备获取其内存中的LBA与PBA的映射表。从LBA与PBA的映射表中查找与目标LBA对应的目标PBA。SSD设备通过闪存控制器从闪存中读取目标PBA的数据,将该数据通过缓存控制器存储至SSD设备内部的缓存。
步骤206、SSD设备向主机发起内存写事务,以将SSD设备内部的缓存中目标PBA的数据写入主机的内存中的目标PRP地址。
步骤207、SSD设备向主机发起内存写事务,以向主机中的完成队列写入数据读取指令的完成状态信息。该完成状态信息指示SSD设备对数据读取指令的执行完成情况。例如,完成状态信息指示SSD设备对数据读取指令是否正常执行完成情况。
步骤208、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤209、主机在接收到中断事务的情况下,消费完成队列中数据读取指令的完成状态信息。
步骤210、主机向SSD设备发起内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃(Head Doorbell)。其中,主机与SSD设备之间可以通过PCIE协议/CXL.io协议支持的通道通信。不难看出,主机向SSD设备读取数据的过程中,主机与SSD设备之间的PCIE链路一共涉及7次PCIE/CXL.io事务。需要说明的是,图2中以1至10依次表示步骤201至步骤210。
如图3所示,主机向SSD设备写入数据的过程包括:
步骤301、主机向内存中的提交队列写入数据写入指令。
步骤302、主机向SSD设备向SSD设备发起内存写事务,以向SSD设备的第一寄存器写入尾门铃和数据读取指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤303、SSD设备向主机发起内存读事务。内存读事务用于从内存中的提交队列中提取数据写入指令。
步骤304、主机向SSD设备发起完成事务。完成事务携带有数据写入指令。数据写入指令指示SSD设备将主机的内存中目标PRP地址的数据写入闪存中的目标LBA。
步骤305、SSD设备向主机发起内存读事务。内存读事务用于读取内存中目标PRP地址的数据。
步骤306、主机向SSD设备发起完成事务,以向SSD设备的缓存写入目标PRP地址的数据。完成事务携带目标PRP地址的数据。
步骤307、SSD设备通过闪存控制器利用缓存控制器从缓存中读取目标PRP地址的数据,并向闪存写入该数据。SSD设备通过闪存控制器确定闪存中写入该数据的PBA,记录PBA与数据写入指令中目标LBA的对应关系,将该对应关系添加至LBA与PBA的映射表。SSD设备通过闪存控制器将添加后的LBA与PBA的映射表更新到SSD设备的内存中,以便于后续使用。
步骤308、SSD设备向主机发起内存写事务,以向主机中的完成队列写入数据写入指令的完成状态信息。该完成状态信息指示SSD设备对数据写入指令的执行完成情况。例如,完成状态信息指示SSD设备对数据写入指令是否正常执行完成情况。
步骤309、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤310、主机在接收到中断事务的情况下,消费完成队列中数据写入指令的完成状态信息。
步骤311、主机向SSD设备发起内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃。不难看出,主机向SSD设备写入数据的过程中,主机与SSD设备之间的PCIE链路一共涉及8次PCIE/CXL.io事务。需要说明的是,图3中以1至11依次表示步骤301至步骤311。由举例示例的主机向SSD设备写入/读取数据的过程中,主机的内存与SSD设备之间存在频繁的内存事务读写操作,主机与SSD设备之间的PCIE链路的数据读取/写入过程具有较高延迟。
请参考图4,其示出了本申请实施例提供的一种数据处理系统的示意图。如图4所示,数据处理系统,又称CXL-SSD系统包括:SSD设备和主机。SSD设备与主机通过CXL.cache协议和CXL.io协议通信。
其中,主机和SSD设备之间支持CXL-区块链(CXL-Fabric)架构。主机和SSD设备之间通过CXL流传输数据。主机包括处理器、根节点和内存。处理器包括三级缓存,具体包括一级缓存(L1缓存)、二级缓存(L2缓存)、三级共享缓存(L3缓存)。根节点包括相互连接的输入输出(IO)控制器、本地代理、内存控制器和协议复用器。本地代理包括:NVMe控制器(即内存主机控制器)和Cache控制器(即缓存控制器)。内存支持主机内存缓冲器(Host MemoryBuffer,HMB)机制。SSD设备包括闪存介质,用以存储数据。可选地,SSD设备的闪存介质可以为SSD。数据处理系统可以执行本申请实施例提供的两种数据处理方法,以有效降低数据读取/写入过程中,主机与SSD设备之间的PCIE链路的延迟。下述对本申请实施例提供的两个数据处理方法详细介绍。
请参考图5,其示出了本申请实施例提供的一种数据处理方法的流程。数据处理方法应用于图4所示的数据处理系统,用于主机读取SSD设备的数据。如图5所示,数据处理方法包括:
步骤501、主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向固态硬盘设备发送第一地址指示数据。第一地址指示数据指示数据读取指令的第一指令地址。
可选地,若主机需要读取SSD设备的闪存介质中的数据,则主机可以生成或接收数据读取操作,以响应于数据读取操作,向内存中的提交队列写入数据读取指令。数据读取指令用于指示SSD设备读取待读取的目标数据。其中,数据读取指令可以携带待读取的目标数据在SSD设备的闪存介质中的地址。在一种可选地情况下,数据读取指令携带闪存介质中存储目标数据的第一存储空间的目标LBA。在另一种可选地情况下,数据读取指令还携带目标数据在内存中所需存储的目标PRP地址。该情况下,数据读取指令用于指示读取目标数据,并将目标数据存储至主机的内存中的目标PRP地址。
步骤502、固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向主机发送第一读指令。第一读指令携带第一指令地址。
本申请实施例中,CXL.cache协议可以使得SSD设备利用一致性缓存协议(Modified, Exclusive, Shared, and Invalid,MESI)来缓存主机的内存的数据。不难理解的是,CXL.cache协议支持SSD设备包括设备cache,用以缓存主机的内存中的数据。
其中,CXL.cache协议在主机和SSD设备之间的每个通信方向上均定义有三个通道。每个通道的通信方向包括主机到SSD设备(H2D)和SSD设备到主机(D2H)。三个通道包括:请求(Request)通道、响应(Response)通道和数据(Data)通道。其中,请求通道在SSD设备到主机的通信方向上(D2H Request通道)可以传输4类命令(也称指令),共15个命令。4类命令包括:Read、Read0、Read0-Write、Write。
Read命令允许SSD设备请求读取数据,以及设备cache中与内存中存储该数据的存储空间对应的缓存行(cache line)的缓存一致性状态。基于Read命令,响应通道在主机到SSD设备的通信方向上(H2D Response通道)可以传输的响应信息包括:请求对应的缓存行的缓存一致性状态和请求对应的具体响应数据。
Read0命令允许SSD设备只请求设备cache的缓存一致性状态,而不请求读取数据。基于Read0命令,响应通道在主机到SSD设备的通信方向上(H2D Response通道)可以传输的响应信息包括:主机提供的设备cache的缓存一致性状态。
Read0-Write命令允许SSD设备在无需请求设备cache的缓存一致性状态的情况下,直接向主机写入数据。基于Read0-Write命令,在主机准备接收SSD设备写入的数据时,响应通道在主机到SSD设备的通信方向上(H2D Response通道)可以传输的“WritePull”信息,其指示SSD设备可以向主机传输数据,以及指示数据处理系统(主机和SSD设备)在全局观察(Globally Observed,GO)该数据之前的目标时刻解决设备cache的缓存一致性问题。响应通道在主机到SSD设备的通信方向上(H2D Response通道)还用于传输状态改变指示信息(Snooping)。状态改变指示信息指示SSD设备需要改变设备cache的缓存一致性状态。需要说明的是,主机与SSD设备之间通过CXL.cache协议支持的请求通道传输事务的时延,低于通过CXL.io协议/PCIE协议支持的通道传输事务的时延。即主机与SSD设备的通信过程中,CXL.cache事务的延时低于PCIe.io/PCIe事务的时延。因而,提高主机与SSD设备的通信过程CXL.cache事务的占比可以有效地降低PCIE链路的时延,进而降低PCIE链路的延迟。
本申请实施例中,SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,即向主机发起第一读指令事务。第一读指令携带数据读取指令在提交队列中的第一指令地址。可选地,第一读指令可以为Read命令。SSD设备可以通过CXL.cache协议支持的请求通道(D2H Response通道),向主机发送Read命令。
步骤503、主机根据第一指令地址读取数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向固态硬盘设备发送目标读取指令。
可选地,主机可以通过CXL.cache协议支持的请求通道,接收SSD设备发送的第一读指令。主机解析第一读指令,获取第一指令地址,根据第一指令地址从内存中读取数据读取指令,通过CXL.cache协议支持的H2D Response通道,向SSD设备发送目标读取指令。其中,目标读取指令用于指示SSD设备读取数据读取指令指示的待读取的目标数据。
在一种可选地情况下,目标读取指令为数据读取指令。目标读取指令携带闪存介质中存储目标数据的第一存储空间的目标LBA。该情况下,SSD设备包括内存。SSD设备的内存的第三存储空间与闪存的第一存储空间存在对应关系。SSD设备中内存的第三存储空间被配置为闪存上对应的第一存储空间的缓存。内存和闪存中均存储有第一存储空间的LBA与PBA的对应关系。第一存储空间的LBA为内存中与第一存储空间对应的第三存储空间的PBA。
在另一种可选地情况下,目标读取指令为根据数据读取指令生成的新指令。目标读取指令携带闪存介质中存储目标数据的第一存储空间的目标PBA。该情况的详细介绍见后文描述。
步骤504、固态硬盘设备从其闪存介质中读取目标数据。
可选地,SSD设备可以通过CXL.cache协议支持的请求通道,接收主机发送的目标读取指令。SSD设备解析目标读取指令,从其闪存介质中读取目标读取指令指示读取的目标数据。
在一种可选地情况下,目标读取指令为数据读取指令。SSD设备可以从其内存中获取闪存上存储空间的LBA与PBA的对应关系。SSD设备根据该LBA与PBA的对应关系,确定与目标读取指令携带的目标LBA对应的目标PBA,从闪存介质中读取目标PBA的目标数据。
在另一种可选地情况下,目标读取指令为根据数据读取指令生成的新指令。目标读取指令携带闪存介质中存储目标数据的第一存储空间的目标PBA。SSD设备可以在接收到目标读取指令之后,无需执行虚拟地址到物理地址的转换处理,直接从其闪存介质中读取目标数据。
步骤505、固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向主机发起第一内存写事务。
其中,第一内存写事务用于向主机的内存中写入目标数据。第一内存写事务携带目标数据。可选地,若数据读取指令还携带目标数据在内存中所需存储的目标PRP地址,则第一内存写事务用于向主机的内存中目标PRP地址写入目标数据。第一内存写事务携带目标数据和目标PRP地址。
步骤506、主机将目标数据写入内存。
可选地,主机可以通过CXL.io协议支持的通道,接收SSD设备发起的第一内存写事务。解析第一内存写事务,得到目标数据。向内存写入目标数据。在一种可选地实现方式中,第一内存写事务携带目标数据和目标PRP地址。主机可以解析第一内存写事务,得到目标数据和目标PRP地址,向内存的目标PRP地址写入目标数据。
步骤507、固态硬盘设备将数据读取指令的完成状态信息写入内存中的完成队列。
在一种可选地实现方式中,SSD设备将数据读取指令的完成状态信息写入内存中的完成队列的过程可以包括:SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一写指令,第一写指令携带完成状态信息;主机将完成状态信息写入内存的完成队列。
可选地,第一写指令为Write命令。SSD设备可以在向主机发起第一内存写事务之后,通过CXL.cache协议支持的请求通道,向主机发送Write命令,以使主机可以通过CXL.cache协议支持的请求通道,接收Write命令。主机在接收到Write命令的情况下,可以解析Write命令,向内存的完成队列写入数据读取指令的完成状态信息。
在另一种可选地实现方式中,SSD设备将数据读取指令的完成状态信息写入内存中的完成队列的过程可以包括:SSD设备通过CXL.io协议支持的通道,向主机发起第七内存写事务。第七内存写事务携带完成状态信息。第七内存写事务用于向主机的内存中完成队列写入数据读取指令的完成状态信息。
步骤508、固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向主机发起中断事务。
其中,中断事务用于告知主机SSD设备向完成队列中写入数据读取指令的完成状态信息。
步骤509、主机消费完成队列中数据读取指令的完成状态信息。
可选地,主机可以通过CXL.io协议支持的通道,接收SSD设备发起的中断事务。在接收到中断事务的情况下,消费完成队列中数据读取指令的完成状态信息,处理数据读取指令的完成状态信息。
本申请实施例中,数据处理系统通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
在一种可选地实现方式中,主机和SSD设备支持主机内存缓冲器(Host MemoryBuffer,HMB)机制。主机可以将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。SSD设备可以在每次向闪存介质写入数据后,确定写入数据的第一存储空间与第二存储空间的对应关系,得到的写入数据的第一存储空间的PBA与LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址,第二存储空间为主机从内存中为SSD设备的HMB配置的存储空间。
基于此,所述方法还包括步骤011和步骤012。
在步骤011中,SSD设备通过CXL.io协议支持的通道,向主机发起第二内存写事务。
其中,第二内存写事务携带PBA与LBA的对应关系。第二内存写事务用于向主机的内存写入PBA与LBA的对应关系。
在步骤012中,主机向内存存储PBA与LBA的对应关系。
其中,PBA与LBA的对应关系为:SSD设备在向闪存介质写入数据,确定写入数据的第一存储空间与第二存储空间的对应关系后,得到的写入数据的第一存储空间的PBA与LBA的对应关系。需要说明的是,由于主机内存中记录PBA与LBA的对应关系的映射文件与SSD设备具有一一对应关系。因此,映射文件不会被除其对应的SSD设备的其他设备访问。因而,主机可以设置设备cache中缓存映射文件的缓存行的缓存一致性状态为单一独占(E)状态,以降低主机对缓存一致性的管理复杂度。
可选地,主机在通过CXL.io协议支持的通道,接收到第二内存写事务的情况下,可以解析第二内存写事务,得到PBA与LBA的对应关系。
示例地,如图6所示,在数据处理系统的上电起始阶段,先执行CXL设备的枚举,进而执行CXL设备配置。在CXL设备配置过程中,主机的NVMe驱动器可以将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。SSD设备也可以在上电起始阶段,通过CXL.io协议支持的通道向主机传输PBA与LBA的对应关系,以便于后续主机使用PBA与LBA的对应关系。
相应可选地,在主机存储有闪存介质中第一存储空间的PBA与LBA的对应关系的情况下,上述步骤503主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令的过程可以包括:
在步骤5031中,主机根据第一指令地址读取数据读取指令,数据读取指令携带目标数据的目标LBA。
可选地,主机可以通过CXL.cache协议支持的请求通道,接收SSD设备发送的第一读指令。主机解析第一读指令,获取第一指令地址,根据第一指令地址从内存中读取数据读取指令。
在步骤5032中,主机根据PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令。
可选地,主机可以从其内存中读取PBA与LBA的对应关系。查找PBA与LBA的对应关系,在该对应关系中查找到(命中)目标LBA的情况下,获取与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令。
在该对应关系中未查找到(未命中)目标LBA的情况下,主机可以向SSD设备发起第八内存写事务。第八内存写事务用于SSD设备更新主机的内存中的PBA与LBA的对应关系。主机可以在接收到SSD设备存储的PBA与LBA的对应关系之后,向内存写入接收到的PBA与LBA的对应关系,并重新查找接收到的PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令。
在步骤5033中,主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。
这样,由于利用HMB机制,将内存中的第二存储空间配置为SSD设备的HMB,并且可以在主机的内存中存储SSD设备中写入数据的第一存储空间的PBA与LBA的对应关系。因此,主机可以在获取到数据读取指令的情况下,直接根据PBA与LBA的对应关系,将数据读取指令携带的LBA转换为PBA,进而封装至目标读取指令发送至SSD设备。这样,SSD设备无需装置板载内存,可以直接利用目标读取指令携带的PBA读取数据。因而,可以有效降低SSD设备成本,提升SSD设备的普适性。
在一种可选地实现方式中,主机通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据的过程可以包括:主机通过CXL.io协议支持的通道,向SSD设备发起第三内存写事务,以向SSD设备的第一寄存器写入提交队列的尾门铃。第三内存写事务携带第一地址指示数据和Tail Doorbell。
基于此,SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令的过程可以包括:SSD设备在第一寄存器写入Tail Doorbell,且接收到第一地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第一读指令。
相应地,主机在消费完成队列中的完成状态信息之后,可以通过CXL.io协议支持的通道,向SSD设备发起第四内存写事务。SSD设备更新第二寄存器中完成队列的头门铃。其中,第四内存写事务用于更新SSD设备的第二寄存器中完成队列的头门铃。SSD设备可以在通过CXL.io协议支持的通道,接收到第四内存写事务的情况下,更新第二寄存器中完成队列的头门铃。
本申请实施例中,数据处理系统通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
为了便于更好地理解本申请技术方案,下述以两个示例对本申请实施例提供的数据处理方法下,主机对SSD设备的数据读取过程进行进一步说明。
一个示例地,如图7所示,数据处理方法包括:
步骤701、主机响应于数据读取操作,向内存中的提交队列写入数据读取指令。
步骤702、主机向SSD设备发起第三内存写事务,以向SSD设备的第一寄存器写入尾门铃(Tail Doorbell),向SSD设备发送数据读取指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤703、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Read指令。Read命令用于请求数据读取指令以及存储该数据读取指令的缓存行的缓存一致性状态。数据读取指令用于指示将SSD设备中目标LBA的数据存储至主机内存中的目标PRP地址。
步骤704、主机获取内存中的地址映射表。若地址映射表中记载的LBA和PBA的对应关系中存在目标LBA,则根据LBA和PBA的对应关系,确定与目标LBA对应的目标PBA,生成目标读取指令。若地址映射表中记载的LBA和PBA的对应关系中不存在目标LBA,重新请求SSD设备存储的地址映射表,以重新查找与目标LBA对应的目标PBA。
步骤705、主机通过CXL.cache协议支持的响应通道,向所述SSD设备发送目标读取指令和缓存一致性状态。
步骤706、SSD设备通过闪存控制器从闪存中读取目标PBA的数据,将该数据通过缓存控制器存储至SSD设备内部的缓存。
步骤707、SSD设备向主机发起内存写事务,以将SSD设备内部的缓存中目标PBA的数据写入主机的内存中的目标PRP地址。
步骤708、SSD设备向主机发起内存写事务,以向主机中的完成队列写入数据读取指令的完成状态信息。该完成状态信息指示SSD设备对数据读取指令的执行完成情况。例如,完成状态信息指示SSD设备对数据读取指令是否正常执行完成情况。
步骤709、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤710、主机在接收到中断事务的情况下,消费完成队列中数据读取指令的完成状态信息。
步骤711、主机向SSD设备发起内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃(Head Doorbell)。不难看出,主机向SSD设备读取数据的过程中,主机与SSD设备之间的PCIE链路一共涉及5次PCIE/CXL.io事务和2次CXL.cache事务,相较于前述图2所示的过程,减少了数据读取过程中的PCIE/CXL.io事务,降低了数据读取过程的延迟。需要说明的是,图7中以1至11依次表示步骤701至步骤711。
一个示例地,如图8所示,数据处理方法包括:
步骤801、主机响应于数据读取操作,向内存中的提交队列写入数据读取指令。
步骤802、主机向SSD设备发起第三内存写事务,以向SSD设备的第一寄存器写入尾门铃,向SSD设备发送数据读取指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤803、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Read指令。Read命令用于请求数据读取指令以及存储该数据读取指令的缓存行的缓存一致性状态。数据读取指令用于指示将SSD设备中目标LBA的数据存储至主机内存中的目标PRP地址。
步骤804、主机获取内存中的地址映射表。若地址映射表中记载的LBA和PBA的对应关系中存在目标LBA,则根据LBA和PBA的对应关系,确定与目标LBA对应的目标PBA,生成目标读取指令。若地址映射表中记载的LBA和PBA的对应关系中不存在目标LBA,重新请求SSD设备存储的地址映射表,以重新查找与目标LBA对应的目标PBA。
步骤805、主机通过CXL.cache协议支持的响应通道,向所述SSD设备发送目标读取指令和缓存一致性状态。
步骤806、SSD设备通过闪存控制器从闪存中读取目标PBA的数据,将该数据通过缓存控制器存储至SSD设备内部的缓存。
步骤807、SSD设备向主机发起内存写事务,以将SSD设备内部的缓存中目标PBA的数据写入主机的内存中的目标PRP地址。
步骤808、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Write指令。Write指令用于向主机中的完成队列写入数据读取指令的完成状态信息。
步骤809、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤810、主机在接收到中断事务的情况下,消费完成队列中数据读取指令的完成状态信息。
步骤811、主机向SSD设备发起内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃。不难看出,主机向SSD设备读取数据的过程中,主机与SSD设备之间的PCIE链路一共涉及4次PCIE/CXL.io事务和3次CXL.cache事务,相较于前述图2所示的过程,进一步地减少了数据读取过程中的PCIE/CXL.io事务,更有效地降低了数据读取过程的延迟。需要说明的是,图8中以1至11依次表示步骤801至步骤811。
本申请实施例中,数据处理系统通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
请参考图9,其示出了本申请实施例提供的一种数据处理方法的流程。数据处理方法应用于图4所示的数据处理系统,用于主机写入SSD设备的数据。如图9所示,数据处理方法包括:
步骤901、主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向固态硬盘设备发送第二地址指示数据,第二地址指示数据指示数据写入指令的第二指令地址,数据写入指令携带待写入闪存介质的写入数据在内存中的数据地址。
可选地,若主机需要向SSD设备的闪存介质写入数据,则主机可以生成或接收数据写入操作,以响应于数据写入操作,向内存中的提交队列写入数据写入指令。数据写入指令用于指示待写入SSD设备的写入数据。其中,数据写入指令可以携带待写入的写入数据在主机的内存中的地址。在一种可选地情况下,数据写入指令携带主机内存中存储写入数据的目标PRP地址。在另一种可选地情况下,数据读取指令还携带写入数据在SSD设备的闪存介质中所需存储的目标LBA。该情况下,数据写入指令用于指示将内存中目标PRP地址的数据存储至SSD设备中的目标LBA。
步骤902、SSD设备通过计算互连标准-缓存协议支持的请求通道,向主机发送第二读指令。第二读指令携带第二指令地址。
本申请实施例中,SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,即向主机发送第二读指令事务。可选地,第二读指令可以为Read命令。SSD设备可以通过CXL.cache协议支持的请求通道(D2H Response通道),向主机发送Read命令。Read命令携带数据写入指令在提交队列中的第二指令地址。
步骤903、主机根据第二指令地址读取数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向固态硬盘设备发送数据写入指令。
可选地,主机通过CXL.cache协议支持的请求通道,接收SSD设备发送的第二读指令。主机解析第二读指令,获取第二指令地址,根据第二指令地址从内存中读取数据写入指令。主机通过CXL.cache协议支持的H2D Response通道,向SSD设备发送数据写入指令。
步骤904、SSD设备通过计算互连标准-输入输出协议支持的通道,向主机发起内存读事务。内存读事务携带写入数据的数据地址。
其中,内存读事务用于读取主机内存中的写入数据。内存读事务携带写入数据的数据地址。可选地,内存读事务可以携带写入数据在内存中的PRP地址。
步骤905、主机根据数据地址读取写入数据,通过计算互连标准-输入输出协议支持的通道向固态硬盘设备发起完成事务。完成事务携带写入数据。
可选地,主机通过CXL.io协议支持的通道,接收SSD设备发起的内存读事务。主机解析内存读事务,得到数据地址。主机从内存中读取该数据地址存储的数据,得到待写入SSD设备的写入数据。主机通过CXL.io协议支持的通道,向SSD设备发起携带有写入数据的完成事务。
步骤906、SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列。
可选地,SSD设备可以通过CXL.io协议支持的通道,接收主机发起的完成事务。SSD设备解析完成事务,得到写入数据。SSD设备可以通过闪存控制器将写入数据写入闪存。SSD设备获取闪存介质中存储写入数据的PBA,确定与该PBA对应的LBA,得到并存储该PBA与LBA的对应关系。
其中,在一种可选地情况下,SSD设备包括内存。SSD设备的内存的第三存储空间与闪存的第一存储空间存在对应关系。SSD设备中内存的第三存储空间被配置为闪存上对应的第一存储空间的缓存。SSD设备在获取到闪存介质中存储写入数据的第一存储空间的PBA之后,确定与该第一存储空间对应的第三存储空间,得到并存储该第一存储空间的PBA与LBA的对应关系。与第一存储空间的PBA对应的LBA为与该第一存储空间对应的第三存储空间的地址。
在另一种可选地实现方式中,主机和SSD设备支持HMB机制。主机将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。SSD设备在获取到闪存介质中存储写入数据的目标第一存储空间的PBA之后,确定主机内存中与目标第一存储空间对应的目标第二存储空间,得到并存储目标第一存储空间的PBA与LBA的对应关系。目标第一存储空间的LBA为目标第二存储空间的PRP地址。需要说明的是,该情况的详细介绍见后文描述。
本申请实施例中,SSD设备在将写入数据写入闪存介质之后,还可以将数据写入指令的完成状态信息写入内存中的完成队列。
在一种可选地实现方式中,SSD设备将数据写入指令的完成状态信息写入内存中的完成队列的过程可以包括:SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二写指令,第二写指令携带完成状态信息;主机将数据写入指令的完成状态信息写入内存的完成队列。
可选地,第二写指令为Write命令。SSD设备可以在将写入数据写入闪存介质之后,通过CXL.cache协议支持的请求通道,向主机发送Write命令,以使主机可以通过CXL.cache协议支持的请求通道,接收Write命令。主机在接收到Write命令的情况下,可以解析Write命令,向内存的完成队列写入数据写入指令的完成状态信息。
在另一种可选地实现方式中,SSD设备将数据写入指令的完成状态信息写入内存中的完成队列的过程可以包括:SSD设备通过CXL.io协议支持的通道,向主机发起第九内存写事务。第九内存写事务携带数据写入指令的完成状态信息。第九内存写事务用于向主机的内存中完成队列写入数据写入指令的完成状态信息。
步骤907、SSD设备通过计算互连标准-输入输出协议支持的通道,向主机发起中断事务。
其中,中断事务用于告知主机SSD设备向完成队列中写入数据写入指令的完成状态信息。
步骤908、主机消费完成队列中数据写入指令的完成状态信息。
可选地,主机可以通过CXL.io协议支持的通道,接收SSD设备发起的中断事务。在接收到中断事务的情况下,消费完成队列中数据写入指令的完成状态信息,处理数据写入指令的完成状态信息。
本申请实施例中,数据处理系统通过主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
在一种可选地实现方式中,主机和SSD设备支持HMB机制。如前所述,主机还可以将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。SSD设备可以在每次向闪存介质写入数据后,确定写入数据的第一存储空间与第二存储空间的对应关系,得到的写入数据的第一存储空间的PBA与LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址,第二存储空间为主机从内存中为SSD设备的HMB配置的存储空间。
基于此,前述步骤906 SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列的过程可以包括:SSD设备将写入数据写入闪存介质,确定目标第一存储空间与内存中目标第二存储空间的对应关系,得到并存储目标第一存储空间的PBA与LBA的对应关系。SSD设备将数据写入指令的完成状态信息写入内存中的完成队列。其中,目标第一存储空间为闪存介质中存储写入数据的第一存储空间;目标第一存储空间的LBA为目标第二存储空间的地址;
相应可选地,所述方法还包括步骤021至步骤023。
在步骤021中,主机将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。
可选地,主机可以通过NVMe驱动器将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。示例地,主机可以通过NVMe驱动器将内存中随机的第二存储空间配置为SSD设备的HMB,通过CXL.io协议支持的通道,向SSD设备发送第二存储空间的地址。
在步骤022中,SSD设备通过CXL.io协议支持的通道,向主机发起第二内存写事务。
其中,第二内存写事务携带闪存介质中第一存储空间的PBA与LBA的对应关系。第二内存写事务用于向主机的内存写入PBA与LBA的对应关系。
示例地,在数据处理系统的上电起始阶段,可以先执行CXL设备的枚举,进而执行CXL设备配置。在CXL设备配置过程中,主机的NVMe驱动器可以将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。SSD设备也可以在上电起始阶段,通过CXL.io协议支持的通道向主机传输PBA与LBA的对应关系,以便于后续主机使用PBA与LBA的对应关系。
在步骤023中,主机向内存存储PBA与LBA的对应关系。对应关系用于供主机根据待读取数据的LBA从闪存介质中读取数据。
可选地,主机可以通过CXL.io协议支持的通道,接收到第二内存写事务。主机解析第二内存写事务,得到闪存介质中第一存储空间的PBA与LBA的对应关系。需要说明的是,对应关系供主机根据待读取数据的LBA从闪存介质中读取数据的实现方式具体参考前述主机对SSD设备的数据读取过程中的相关描述,本申请实施例在此不做赘述。例如可以参考步骤701至步骤703的相关介绍。
在再一种可选地实现方式中,主机通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据的过程可以包括:主机通过CXL.io协议支持的通道,向SSD设备发起第五内存写事务,以向SSD设备的第一寄存器写入提交队列的Tail Doorbell。第五内存写事务携带第二地址指示数据和Tail Doorbell。
基于此,SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令的过程可以包括:SSD设备在第一寄存器写入Tail Doorbell,且接收到第二地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第二读指令。
相应地,主机在消费完成队列中数据写入指令的完成状态信息之后,可以通过CXL.io协议支持的通道,向SSD设备发起第六内存写事务。SSD设备更新第二寄存器中完成队列的头门铃。其中,第六内存写事务用于更新SSD设备的第二寄存器中完成队列的头门铃。SSD设备可以在通过CXL.io协议支持的通道,接收到第六内存写事务的情况下,更新第二寄存器中完成队列的头门铃。
本申请实施例中,数据处理系统通过主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
为了便于更好地理解本申请技术方案,下述以两个示例对本申请实施例提供的数据处理方法下,主机对SSD设备的数据写入过程进行进一步说明。
一个示例地,如图10所示,数据处理方法包括:
步骤1001、主机响应于数据写入操作,向内存中的提交队列写入数据写入指令。
步骤1002、主机向SSD设备发起第五内存写事务,以向SSD设备的第一寄存器写入尾门铃,向SSD设备发送数据写入指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤1003、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Read指令。Read命令用于请求数据写入指令以及存储该数据写入指令的缓存行的缓存一致性状态。数据写入指令用于指示将内存中的目标PRP地址的写入数据写入SSD设备中的目标LBA。
步骤1004、主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令和缓存一致性状态。
步骤1005、SSD设备通过CXLio协议支持的通道,向主机发起内存读事务。内存读事务用于从主机内存中读取目标PRP地址的写入数据。
步骤1006、主机通过CXLio协议支持的通道,向SSD设备发起完成事务。完成事务还用于向SSD设备内部的缓冲写入目标PRP地址的写入数据。
步骤1007、SSD设备通过闪存控制器将写入数据存储至闪存介质。获取存储该写入数据的PBA,确定PBA与数据写入指令中目标LBA的对应关系。SSD设备将PBA与数据写入指令中目标LBA的对应关系写入地址映射表。该地址映射表用于记录闪存介质中写入数据的第一存储空间的LBA与PBA的对应关系。
步骤1008、SSD设备通过CXLio协议支持的通道,向主机发起第九内存写事务,以向主机内存中的完成队列写入数据写入指令的完成状态信息。
步骤1009、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤1010、主机在接收到中断事务的情况下,消费完成队列中数据写入指令的完成状态信息。
步骤1011、主机通过CXLio协议支持的通道,向SSD设备发起第六内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃。不难看出,主机向SSD设备写入数据的过程中,主机与SSD设备之间的PCIE链路一共涉及5次PCIE/CXL.io事务和2次CXL.cache事务,相较于前述图3所示的过程,减少了数据读取过程中的PCIE/CXL.io事务,降低了数据读取过程的延迟。需要说明的是,图10中以1至11依次表示步骤1001至步骤1011。
一个示例地,如图11所示,数据处理方法包括:
步骤1101、主机响应于数据写入操作,向内存中的提交队列写入数据写入指令。
步骤1102、主机向SSD设备发起第五内存写事务,以向SSD设备的第一寄存器写入尾门铃,向SSD设备发送数据写入指令在提交队列中的地址。其中,尾门铃用于告知SSD设备主机向提交队列中写入指令。
步骤1103、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Read指令。Read命令用于请求数据写入指令以及存储该数据写入指令的缓存行的缓存一致性状态。数据写入指令用于指示将内存中的目标PRP地址的写入数据写入SSD设备中的目标LBA。
步骤1104、主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令和缓存一致性状态。
步骤1105、SSD设备通过CXLio协议支持的通道,向主机发起内存读事务。内存读事务用于从主机内存中读取目标PRP地址的写入数据。
步骤1106、主机通过CXLio协议支持的通道,向SSD设备发起完成事务。完成事务还用于向SSD设备内部的缓冲写入目标PRP地址的写入数据。
步骤1107、SSD设备通过闪存控制器将写入数据存储至闪存介质。获取存储该写入数据的PBA,确定PBA与数据写入指令中目标LBA的对应关系。SSD设备将PBA与数据写入指令中目标LBA的对应关系写入地址映射表。该地址映射表用于记录闪存介质中写入数据的第一存储空间的LBA与PBA的对应关系。
步骤1108、SSD设备通过CXL.cache协议支持的请求通道,向主机发送Write指令。Write指令用于向主机中的完成队列写入数据写入指令的完成状态信息
步骤1109、SSD设备向主机发起中断事务。中断事务用于告知主机SSD设备向完成队列中写入信息。
步骤1110、主机在接收到中断事务的情况下,消费完成队列中数据写入指令的完成状态信息。
步骤1111、主机通过CXLio协议支持的通道,向SSD设备发起第六内存写事务,以更新SSD设备的第二寄存器中完成队列的头门铃。不难看出,主机向SSD设备写入数据的过程中,主机与SSD设备之间的PCIE链路一共涉及4次PCIE/CXL.io事务和3次CXL.cache事务,相较于前述图3所示的过程,进一步地减少了数据读取过程中的PCIE/CXL.io事务,进一步降低了数据读取过程的延迟。需要说明的是,图11中以1至11依次表示步骤1101至步骤1111。
本申请实施例中,数据处理系统通过主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
基于前述方法侧介绍,下述对本申请实施例提供的数据处理系统中主机和SSD设备进行分别介绍。
请参考图12,其示出了本申请实施例提供的一种SSD设备的结构示意图。SSD设备也可以称为成为无缓 类型1CXL-SSD设备。如图12所示,SSD设备包括:SSD控制芯片和闪存介质。SSD控制芯片包括CXL控制器、处理器和闪存控制器。CXL控制器与主机之间的物理通道支持CXL.cache协议和CXL.io协议的数据通信。
处理器用于在通过CXL控制器提供的CXL.io协议支持的通道,接收到第一地址指示数据的情况下,通过CXL控制器提供的CXL.cache协议支持的请求通道,向主机发送第一读指令。第一地址指示数据是主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过CXL.io协议支持的通道,向SSD设备发送的指示数据读取指令的第一指令地址的数据。第一读指令携带所述第一指令地址,其用于供主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。目标读取指令用于指示SSD设备读取数据读取指令指示的待读取的目标数据。
闪存控制器用于从其闪存介质中读取目标数据。
处理器还用于通过CXL控制器提供的CXL.io协议支持的通道,向主机发起第一内存写事务。第一内存写事务携带目标数据。第一内存写事务用于供主机将目标数据写入内存。
处理器还用于将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL控制器提供的CXL.io协议支持的通道,向主机发起中断事务,中断事务用于供主机消费完成队列中的完成状态信息。
可选地,CXL控制器包括协议复用器、NVMe控制器和NIC总线。CXL控制器用于提供CXL.io协议以及CXL.cache协议这两个协议访问路径。其中,协议复用器用于提供CXL.io协议以及CXL.cache协议这两个协议访问路径。协议复用器可以理解为第一类型CXL设备的协议模块。协议复用器包括:物理(Physical,PHY)层和控制(Controller,Ctrl)层。PHY层可以用于提供数据的串并转换以及时钟恢复等功能。Ctrl层用于提供CXL.io协议以及CXL.cache协议的协议栈的实现逻辑。其中,两个协议栈可以复用PHY层用于发送/接收数据。在一种可选地情况下,NVMe控制器可以仅保留基本的命令解析功能,以及支持HMB功能。命令解析功能可以用于解析各类事务(例如,内存读数据、完成事务等)和命令(例如,第一指令、第二指令等)。
本申请实施例中,数据处理系统通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
可选地,处理器还用于在通过CXL控制器提供的CXL.io协议支持的通道,接收到第二地址指示数据的情况下,通过CXL控制器提供的CXL.cache协议支持的请求通道,向主机发送第二读指令。第二地址指示数据是主机响应于数据写入操作,向内存中的提交队列写入数据写入指令后,通过CXL.io协议支持的通道,向SSD设备发送的指示数据写入指令的第二指令地址的地址指示数据。第二读指令携带第二地址指示数据指示的数据读取指令的指令地址。第二读指令用于供主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,数据写入指令携带待写入闪存介质的写入数据在内存中的数据地址。
处理器还用于通过CXL控制器提供的CXL.io协议支持的通道,向主机发起内存读事务。内存读事务携带写入数据的数据地址。内存读事务用于供主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务,完成事务携带写入数据;
闪存控制器还用于将写入数据写入闪存介质。
处理器还用于将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL控制器提供的CXL.io协议支持的通道,向主机发起中断事务,中断事务用于供主机消费完成队列中数据写入指令的完成状态信息。
可选地,处理器还用于通过CXL控制器提供的CXL.cache协议支持的请求通道,向主机发送第一写指令。第一写指令携带数据读取指令的完成状态信息。第一写指令用于供主机将数据读取指令的完成状态信息写入完成队列。
可选地,处理器还用于通过CXL控制器提供的CXL.cache协议支持的请求通道,向主机发送第二写指令。第二写指令携带数据写入指令的完成状态信息。第二写指令用于供主机将数据写入指令的完成状态信息写入完成队列。
可选地,主机和SSD设备支持HMB机制。处理器还用于通过CXL控制器提供的CXL.io协议支持的通道,向主机发起第二内存写事务。第二内存写事务用于供主机向内存存储闪存介质中第一存储空间的PBA与LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址。第二存储空间为主机从内存中为SSD设备的HMB配置的存储空间,数据读取指令携带目标数据的目标LBA。
第一读指令还用于供主机根据第一指令地址读取数据读取指令,根据PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。
闪存控制器还用于将写入数据写入闪存介质,确定目标第一存储空间与内存中目标第二存储空间的对应关系,得到并存储目标第一存储空间的PBA与LBA的对应关系。目标第一存储空间为闪存介质中存储写入数据的第一存储空间。目标第一存储空间的LBA为目标第二存储空间的地址。
可选地,处理器还用于在SSD设备的第一寄存器写入Tail Doorbell,且接收到第一地址指示数据的情况下,通过CXL控制器提供的CXL.cache协议支持的请求通道向主机发送第一读指令。Tail Doorbell和第一地址指示数据是主机通过CXL.io协议支持的通道,向SSD设备发起的第三内存写事务携带的数据。
处理器还用于在接收到第四内存写事务的情况下,更新SSD设备的第二寄存器中完成队列的Head DoorBell。第四内存写事务是主机在消费完成队列中数据读取指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起的。
可选地,处理器还用于在SSD设备的第一寄存器写入Tail Doorbell,且接收到第二地址指示数据的情况下,通过CXL控制器提供的CXL.cache协议支持的请求通道向主机发送第二读指令。Tail Doorbell和第二地址指示数据是主机通过CXL.io协议支持的通道,向SSD设备发起的第五内存写事务携带的数据。
处理器还用于在接收到第六内存写事务的情况下,更新SSD设备的第二寄存器中完成队列的Head DoorBell。第六内存写事务是主机在消费完成队列中数据写入指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起的。
需要说明的是,SSD设备中各部件功能的解释和实现方式均可以参考前述方法侧实施例中,SSD设备执行的相关步骤的解释和实现方式,对此不做赘述。
本申请实施例中,通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
请参考图13,其示出了本申请实施例提供的一种主机的结构示意图。如图4和图13所示,主机包括:处理器、内存和根节点。处理器通过根节点与SSD设备和内存连接。根节点包括协议复用器、输入输出(Input/Output,IO)控制器、高速缓冲存储器(cache)控制器和内存控制器。协议复用器与SSD设备之间的物理通道支持CXL.cache协议和CXL.io协议的数据通信。可选地,IO控制器可以支持PCIE协议和CXL.io协议。主机的协议复用器可以参考SSD设备的协议复用器。
处理器用于响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过协议复用器提供的CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。第一地址指示数据指示数据读取指令的第一指令地址。第一地址指示数据用于供SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。第一读指令携带第一指令地址。
内存控制器用于通过协议复用器提供的CXL.cache协议支持的请求通道,接收第一读指令。
内存控制器还用于根据第一指令地址读取数据读取指令,通过协议复用器提供的CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。目标读取指令用于供SSD设备从其闪存介质中读取数据读取指令指示的目标数据,通过CXL.io协议支持的通道,向主机发起第一内存写事务,第一内存写事务携带目标数据。
内存控制器还用于通过协议复用器提供的CXL.io协议支持的通道,接收第一内存写事务。
内存控制器还用于将目标数据写入内存。
处理器还用于通过协议复用器提供的CXL.io协议支持的通道,接收SSD设备向主机发起的中断事务。中断事务是SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起的。
处理器还用于消费完成队列中数据读取指令的完成状态信息。
本申请实施例中,主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
可选地,处理器还用于响应于数据写入操作,向提交队列写入数据写入指令,通过协议复用器提供的CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。第二地址指示数据指示数据写入指令的第二指令地址。第二地址指示数据用于供SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令。第二读指令携带第二指令地址,数据写入指令携带待写入闪存介质的写入数据在内存中的数据地址。
内存控制器还用于通过CXL.cache协议支持的请求通道,接收第二读指令。
内存控制器还用于根据第二指令地址读取数据写入指令,通过协议复用器提供的CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。数据写入指令用于供SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,内存读事务携带写入数据的数据地址。
内存控制器还用于通过协议复用器提供的CXL.io协议支持的通道,接收内存读事务。
内存控制器还用于根据数据地址读取写入数据,通过协议复用器提供的CXL.io协议支持的通道向SSD设备发起完成事务,完成事务携带写入数据。完成事务用于供SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务。
处理器还用于通过协议复用器提供的CXL.io协议支持的通道,接收中断事务。
处理器还用于消费完成队列中数据写入指令的完成状态信息。
可选地,内存控制器还用于通过协议复用器提供的CXL.cache协议支持的请求通道,接收SSD设备在向主机发起第一内存写事务之后发送的第一写指令,第一写指令携带数据读取指令的完成状态信息。
内存控制器还用于将数据读取指令的完成状态信息写入内存的完成队列。
可选地,完成事务用于供SSD设备将写入数据写入闪存介质,通过CXL.cache协议支持的请求通道,向主机发送第二写指令,通过CXL.io协议支持的通道,向主机发起中断事务。第二写指令携带数据写入指令的完成状态信息。
内存控制器还用于通过协议复用器提供的CXL.cache协议支持的请求通道,接收第二写指令。
内存控制器还用于将数据写入指令的完成状态信息写入完成队列。
可选地,主机和SSD设备支持HMB机制。主机还包括:NVMe控制器。内存存储有SSD设备的闪存介质中第一存储空间的PBA与LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址。第二存储空间为内存中配置为SSD设备的HMB的存储空间。
NVMe控制器用于根据第一指令地址读取数据读取指令,数据读取指令携带目标数据的目标LBA。
NVMe控制器还用于根据PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令。
NVMe控制器还用于通过协议复用器提供的CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。
可选地,NVMe控制器还用于将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址。
NVMe控制器还用于通过协议复用器提供的CXL.io协议支持的通道,接收SSD设备发起的第二内存写事务。第二内存写事务携带闪存介质中第一存储空间的PBA与LBA的对应关系。PBA与LBA的对应关系为:SSD设备在向闪存介质写入数据,确定写入数据的第一存储空间与第二存储空间的对应关系后,得到的写入数据的第一存储空间的PBA与LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址。
NVMe控制器还用于向内存存储PBA与LBA的对应关系。
可选地,处理器还用于通过CXL.io协议支持的通道,向SSD设备发起第三内存写事务,以向SSD设备的第一寄存器写入提交队列的Tail Doorbell。第三内存写事务携带第一地址指示数据和Tail Doorbell。第三内存写事务用于供SSD设备在第一寄存器写入TailDoorbell,且通过CXL.io协议支持的通道,接收到第一地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第一读指令。
处理器还用于在消费完成队列中数据读取指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起第四内存写事务。第四内存写事务用于供SSD设备更新第二寄存器中完成队列的Head DoorBell。
可选地,处理器还用于通过CXL.io协议支持的通道,向SSD设备发起第五内存写事务,以向SSD设备的第一寄存器写入提交队列的Tail Doorbell。第五内存写事务携带TailDoorbell和第二地址指示数据。第五内存写事务用于供SSD设备在第一寄存器写入TailDoorbell,且通过CXL.io协议支持的通道,接收到第二地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第二读指令。
处理器还用于在消费完成队列中数据写入指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起第六内存写事务。第六内存写事务用于供SSD设备更新第二寄存器中完成队列的Head DoorBell。
需要说明的是,主机中各部件功能的解释和实现方式均可以参考前述方法侧实施例中,主机执行的相关步骤的解释和实现方式,对此不做赘述。
本申请实施例中,主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
请参考图14,其示出了本申请实施例提供的一种数据处理方法的流程图。数据处理方法可以应用于数据处理系统的SSD设备。数据处理系统还包括主机,SSD设备与主机通过CXL.cache协议和CXL.io协议通信。如图14所示,数据处理方法包括:
步骤1401、在通过计算互连标准-输入输出协议支持的通道,接收到第一地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向主机发送第一读指令。
第一地址指示数据是主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过CXL.io协议支持的通道,向SSD设备发送的指示数据读取指令的第一指令地址的数据。第一读指令携带第一指令地址。第一读指令用于供主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。目标读取指令用于指示SSD设备读取数据读取指令指示的待读取的目标数据。
步骤1402、通过计算互连标准-缓存协议支持的响应通道,接收目标读取指令。
步骤1403、从其闪存介质中读取目标数据。
步骤1404、通过计算互连标准-输入输出协议支持的通道,向主机发起第一内存写事务。第一内存写事务携带目标数据。第一内存写事务用于供主机将目标数据写入内存。
步骤1405、将数据读取指令的完成状态信息写入内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向主机发起中断事务,中断事务用于供主机消费完成队列中的完成状态信息。
本申请实施例中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
可选地,将数据读取指令的完成状态信息写入内存中的完成队列,包括:通过CXL.cache协议支持的请求通道,向主机发送第一写指令。第一写指令携带完成状态信息。第一写指令用于供主机将完成状态信息写入内存的完成队列。
可选地,主机和SSD设备支持HMB机制。主机存储有闪存介质中第一存储空间的物理块地址PBA与逻辑块地址LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址。第二存储空间为主机从内存中为SSD设备的HMB配置的存储空间。第一读指令还用于供主机根据第一指令地址读取数据读取指令,根据PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。
可选地,数据处理方法还包括:SSD设备通过CXL.io协议支持的通道,向主机发起第二内存写事务。第二内存写事务携带PBA与LBA的对应关系。第二内存写事务用于供主机向内存存储PBA与LBA的对应关系。
可选地,通过CXL.cache协议支持的请求通道,向主机发送第一读指令,包括:SSD设备在第一寄存器写入Tail Doorbell,且接收到第一地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第一读指令。其中,Tail Doorbell和第一地址指示数据是主机通过CXL.io协议支持的通道,向SSD设备发起第三内存写事务中携带的数据。第三内存写事务用于向SSD设备的第一寄存器写入提交队列的Tail Doorbell。
数据处理方法还包括:SSD设备在通过CXL.io协议支持的通道,接收到第四内存写事务的情况下,更新第二寄存器中完成队列的Head DoorBell。第四内存写事务是主机在消费完成队列中的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起的。
本申请实施例中,通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
请参考图15,其示出了本申请实施例提供的一种数据处理方法的流程图。数据处理方法可以应用于数据处理系统的SSD设备。数据处理系统还包括主机,SSD设备与主机通过CXL.cache协议和CXL.io协议通信。如图15所示,数据处理方法包括:
步骤1501、在通过计算互连标准-输入输出协议支持的通道,接收到第二地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向主机发送第二读指令。
第二地址指示数据是主机响应于数据写入操作,向内存中的提交队列写入数据写入指令后,通过CXL.io协议支持的通道,向SSD设备发送的指示数据写入指令的第二指令地址的地址指示数据。第二读指令用于供主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。数据写入指令携带待写入闪存介质的写入数据在内存中的数据地址。
步骤1502、通过计算互连标准-缓存协议支持的响应通道,接收数据写入指令。
步骤1503、通过计算互连标准-输入输出协议支持的通道,向主机发起内存读事务。内存读事务用于供主机根据数据地址读取写入数据,通过计算互连标准-输入输出协议支持的通道向固态硬盘设备发起完成事务,完成事务携带写入数据。
步骤1504、通过计算互连标准-输入输出协议支持的通道,接收完成事务。
步骤1505、将写入数据写入闪存介质。
步骤1506、将数据写入指令的完成状态信息写入内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向主机发起中断事务。中断事务用于供主机消费完成队列中数据写入指令的完成状态信息。
本申请实施例中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
可选地,将数据写入指令的完成状态信息写入内存中的完成队列,包括:通过CXL.cache协议支持的请求通道,向主机发送第二写指令。第二写指令携带数据写入指令的完成状态信息。第二写指令用于供主机将数据写入指令的完成状态信息写入完成队列。
可选地,主机和SSD设备支持HMB机制。数据处理方法还包括:
通过CXL.io协议支持的通道,向主机发起第二内存写事务。第二内存写事务携带闪存介质中第一存储空间的PBA与LBA的对应关系。第二内存写事务用于供主机向内存存储PBA与LBA的对应关系。对应关系用于供主机根据待读取数据的LBA从闪存介质中读取数据。
将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,包括:将写入数据写入闪存介质,确定目标第一存储空间与内存中目标第二存储空间的对应关系,得到并存储目标第一存储空间的PBA与LBA的对应关系。SSD设备将数据写入指令的完成状态信息写入内存中的完成队列。目标第一存储空间为闪存介质中存储写入数据的第一存储空间。目标第一存储空间的LBA为目标第二存储空间的地址。
可选地,通过CXL.cache协议支持的请求通道,向主机发送第二读指令,包括:在第一寄存器写入Tail Doorbell,且接收到第二地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第二读指令。Tail Doorbell和第二地址指示数据是主机通过CXL.io协议支持的通道,向SSD设备发起第五内存写事务携带的数据。第五内存写事务用于向SSD设备的第一寄存器写入提交队列的Tail Doorbell。
数据处理方法还包括:SSD设备在通过CXL.io协议支持的通道,接收到第六内存写事务的情况下,更新第二寄存器中完成队列的Head DoorBell。第六内存写事务是主机在消费完成队列中数据写入指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起的。
本申请实施例中,通过主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。主机根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。SSD设备从其闪存介质中读取数据读取指令指示的待读取的目标数据,SSD设备通过CXL.io协议支持的通道,向主机发起第一内存写事务,以使主机将目标数据写入内存。SSD设备将数据读取指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机对SSD设备中目标数据的读取。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第一读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,用以SSD读取目标数据。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求目标数据读取指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据读取过程的延迟。
请参考图16,其示出了本申请实施例提供的一种数据处理方法的流程图。数据处理方法可以应用于数据处理系统主机。数据处理系统还包括SSD设备。SSD设备与主机通过CXL.cache协议和CXL.io协议通信。如图16所示,数据处理方法包括:
步骤1601、响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向固态硬盘设备发送第一地址指示数据。
第一地址指示数据指示数据读取指令的第一指令地址。第一地址指示数据用于供SSD设备通过CXL.cache协议支持的请求通道,向主机发送第一读指令。第一读指令携带第一指令地址。
步骤1602、通过计算互连标准-缓存协议支持的请求通道,接收第一读指令。
步骤1603、根据第一指令地址读取数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向固态硬盘设备发送目标读取指令。
目标读取指令用于供SSD设备从其闪存介质中读取数据读取指令指示的目标数据,通过CXL.io协议支持的通道,向主机发起第一内存写事务。第一内存写事务携带目标数据。
步骤1604、通过计算互连标准-输入输出协议支持的通道,接收第一内存写事务。
步骤1605、将目标数据写入内存。
步骤1606、通过计算互连标准-输入输出协议支持的通道,接收固态硬盘设备向主机发起的中断事务。中断事务是固态硬盘设备将数据读取指令的完成状态信息写入内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向主机发起的。
步骤1607、消费完成队列中数据读取指令的完成状态信息。
本申请实施例中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
可选地,在通过CXL.io协议支持的通道,接收SSD设备向主机发起的中断事务之前,数据处理方法还包括:
通过CXL.cache协议支持的请求通道,接收SSD设备在向主机发起第一内存写事务之后发送的第一写指令,第一写指令携带数据读取指令的完成状态信息;
将数据读取指令的完成状态信息写入内存的完成队列。
可选地,主机和SSD设备支持HMB机制;主机存储有闪存介质中第一存储空间的物理块地址PBA与逻辑块地址LBA的对应关系。第一存储空间的LBA为第一存储空间对应的第二存储空间的地址。第二存储空间为主机从内存中为SSD设备的HMB配置的存储空间。根据第一指令地址读取数据读取指令,通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令,包括:
根据第一指令地址读取数据读取指令,数据读取指令携带目标数据的目标LBA;
根据PBA与LBA的对应关系,确定与目标LBA对应的目标PBA,生成携带目标PBA的目标读取指令;
通过CXL.cache协议支持的响应通道,向SSD设备发送目标读取指令。
可选地,数据处理方法还包括:
通过CXL.io协议支持的通道,接收SSD设备发起的第二内存写事务,第二内存写事务携带PBA与LBA的对应关系;
向内存存储PBA与LBA的对应关系。其中,PBA与LBA的对应关系为:SSD设备在向闪存介质写入数据,确定写入数据的第一存储空间与第二存储空间的对应关系后,得到的写入数据的第一存储空间的PBA与LBA的对应关系。
可选地,通过CXL.io协议支持的通道,向SSD设备发送第一地址指示数据,包括:通过CXL.io协议支持的通道,向SSD设备发起第三内存写事务,以向SSD设备的第一寄存器写入提交队列的Tail Doorbell。第三内存写事务携带第一地址指示数据和Tail Doorbell。第三内存写事务用于供SSD设备在第一寄存器写入Tail Doorbell,且通过CXL.io协议支持的通道,接收到第一地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第一读指令。
数据处理方法还包括:在消费完成队列中数据读取指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起第四内存写事务。第四内存写事务用于供SSD设备更新第二寄存器中完成队列的Head DoorBell。
本申请实施例中,主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
请参考图17,其示出了本申请实施例提供的一种数据处理方法的流程图。数据处理方法可以应用于数据处理系统主机。数据处理系统还包括SSD设备。SSD设备与主机通过CXL.cache协议和CXL.io协议通信。如图17所示,数据处理方法包括:
步骤1701、响应于数据写入操作,向提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向固态硬盘设备发送第二地址指示数据。
第二地址指示数据指示数据写入指令的第二指令地址。第二地址指示数据用于供SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令。第二读指令携带第二指令地址。数据写入指令携带待写入闪存介质的写入数据在内存中的数据地址。
步骤1702、通过计算互连标准-缓存协议支持的请求通道,接收第二读指令。
步骤1703、根据第二指令地址读取数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向固态硬盘设备发送数据写入指令。数据写入指令用于供固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向主机发起内存读事务,内存读事务携带写入数据的数据地址。
步骤1704、通过计算互连标准-输入输出协议支持的通道,接收内存读事务。
步骤1705、根据数据地址读取写入数据,通过计算互连标准-输入输出协议支持的通道向固态硬盘设备发起完成事务。
完成事务携带写入数据。完成事务用于供SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务;
步骤1706、通过计算互连标准-输入输出协议支持的通道,接收中断事务。
步骤1707、消费完成队列中数据写入指令的完成状态信息。
本申请实施例中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
可选地,完成事务用于供SSD设备将写入数据写入闪存介质,通过CXL.cache协议支持的请求通道,向主机发送第二写指令,通过CXL.io协议支持的通道,向主机发起中断事务。第二写指令携带数据写入指令的完成状态信息。数据处理方法还包括:
通过CXL.cache协议支持的请求通道,接收第二写指令;
将数据写入指令的完成状态信息写入完成队列。
通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据,包括:通过CXL.io协议支持的通道,向SSD设备发起第五内存写事务,以向SSD设备的第一寄存器写入提交队列的Tail Doorbell。第五内存写事务携带Tail Doorbell和第二地址指示数据。第五内存写事务用于供SSD设备在第一寄存器写入Tail Doorbell,且通过CXL.io协议支持的通道,接收到第二地址指示数据的情况下,通过CXL.cache协议支持的请求通道向主机发送第二读指令。
数据处理方法还包括:在消费完成队列中数据写入指令的完成状态信息之后,通过CXL.io协议支持的通道,向SSD设备发起第六内存写事务。第六内存写事务用于供SSD设备更新第二寄存器中完成队列的Head DoorBell。
可选地,主机和SSD设备支持HMB机制。数据处理方法还包括:将内存中的第二存储空间配置为SSD设备的HMB,向SSD设备发送第二存储空间的地址;
通过CXL.io协议支持的通道,接收到SSD设备发送的第二内存写事务的情况下,向内存存储PBA与LBA的对应关系。第二内存写事务携带闪存介质中第一存储空间的PBA与LBA的对应关系。
本申请实施例中,主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过CXL.io协议支持的通道,向SSD设备发送第二地址指示数据。SSD设备通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机根据第二指令地址读取数据写入指令,通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令。SSD设备通过CXL.io协议支持的通道,向主机发起内存读事务,以使得主机根据数据地址读取写入数据,通过CXL.io协议支持的通道向SSD设备发起完成事务。SSD设备将写入数据写入闪存介质,将数据写入指令的完成状态信息写入内存中的完成队列,通过CXL.io协议支持的通道,向主机发起中断事务,以使得主机消费完成队列中的完成状态信息,实现主机向SSD设备写入数据。该技术方案中,由于SSD设备可以通过CXL.cache协议支持的请求通道,向主机发送第二读指令,以使主机通过CXL.cache协议支持的响应通道,向SSD设备发送数据写入指令,用以SSD设备读取数据写入指令。因此,相较于SSD设备利用CXL.io协议/PCIE协议支持的通道请求数据写入指令的方案,利用CXL.cache协议支持的通道传输事务的时延,低于CXL.io协议/PCIE协议支持的通道传输事务的时延这一特性,降低了主机与SSD设备的数据写入过程的延迟。
可选的,如图18所示,本申请实施例还提供一种电子设备。电子设备1800包括处理器1801,存储器1802,存储在存储器1802上并可在所述处理器1801上运行的程序或指令,该程序或指令被处理器1801执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备1800内各个部件的功能,可以参考前述实施例提供的电子设备1800内各对应部分的功能,在此不做赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (30)
1.一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括:固态硬盘设备和主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
所述固态硬盘设备从其闪存介质中读取所述目标数据;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
所述主机将所述目标数据写入所述内存;
所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
所述主机消费所述完成队列中的所述完成状态信息。
2.根据权利要求1所述的方法,其特征在于,所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列,包括:
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一写指令,所述第一写指令携带所述完成状态信息;
所述主机将所述完成状态信息写入所述内存的所述完成队列。
3.根据权利要求1或2所述的方法,其特征在于,所述主机和所述固态硬盘设备支持主机内存缓冲器机制;所述主机存储有所述闪存介质中第一存储空间的物理块地址与逻辑块地址的对应关系,所述第一存储空间的逻辑块地址为所述第一存储空间对应的第二存储空间的地址,所述第二存储空间为所述主机从所述内存中为所述固态硬盘设备的主机内存缓冲器配置的存储空间;所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,包括:
所述主机根据所述第一指令地址读取所述数据读取指令,所述数据读取指令携带所述目标数据的目标逻辑块地址;
所述主机根据物理块地址与逻辑块地址的所述对应关系,确定与所述目标逻辑块地址对应的目标物理块地址,生成携带所述目标物理块地址的所述目标读取指令;
所述主机通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述目标读取指令。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起第二内存写事务,所述第二内存写事务携带物理块地址与逻辑块地址的所述对应关系;
所述主机向所述内存存储物理块地址与逻辑块地址的所述对应关系,其中,物理块地址与逻辑块地址的所述对应关系为:所述固态硬盘设备在向所述闪存介质写入数据,确定写入数据的所述第一存储空间与所述第二存储空间的对应关系后,得到的写入数据的所述第一存储空间的物理块地址与逻辑块地址的对应关系。
5.根据权利要求1所述的方法,其特征在于,所述通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,包括:所述主机通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第三内存写事务,以向所述固态硬盘设备的第一寄存器写入所述提交队列的尾门铃,所述第三内存写事务携带所述第一地址指示数据和所述尾门铃;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,包括:所述固态硬盘设备在所述第一寄存器写入所述尾门铃,且接收到所述第一地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道向所述主机发送第一读指令;
所述方法还包括:
所述主机在所述消费所述完成队列中的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第四内存写事务;
所述固态硬盘设备更新第二寄存器中所述完成队列的头门铃。
6.一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括:固态硬盘设备和主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
所述主机响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,所述第二地址指示数据指示所述数据写入指令的第二指令地址,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二读指令携带所述第二指令地址;
所述主机根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务携带所述写入数据的数据地址;
所述主机根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据;
所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
所述主机消费所述完成队列中所述数据写入指令的完成状态信息。
7.根据权利要求6所述的方法,其特征在于,所述将所述数据写入指令的完成状态信息写入所述内存中的完成队列,包括:
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二写指令,所述第二写指令携带所述数据写入指令的完成状态信息;
所述主机将所述数据写入指令的完成状态信息写入所述完成队列。
8.根据权利要求6或7所述的方法,其特征在于,所述主机和所述固态硬盘设备支持主机内存缓冲器机制;所述方法还包括:
所述主机将所述内存中的第二存储空间配置为所述固态硬盘设备的主机内存缓冲器,向所述固态硬盘设备发送所述第二存储空间的地址;
所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起第二内存写事务,所述第二内存写事务携带所述闪存介质中第一存储空间的物理块地址与逻辑块地址的对应关系;
所述主机向所述内存存储物理块地址与逻辑块地址的所述对应关系,所述对应关系用于供所述主机根据待读取数据的逻辑块地址从所述闪存介质中读取数据;
所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列,包括:
所述固态硬盘设备将所述写入数据写入所述闪存介质,确定目标第一存储空间与所述内存中目标第二存储空间的对应关系,得到并存储所述目标第一存储空间的物理块地址与逻辑块地址的对应关系,所述目标第一存储空间为所述闪存介质中存储所述写入数据的第一存储空间;所述目标第一存储空间的逻辑块地址为所述目标第二存储空间的地址;
所述固态硬盘设备将所述数据写入指令的完成状态信息写入所述内存中的完成队列。
9.根据权利要求6所述的方法,其特征在于,所述通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,包括:
所述主机通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第五内存写事务,以向所述固态硬盘设备的第一寄存器写入所述提交队列的尾门铃,所述第五内存写事务携带所述第二地址指示数据和所述尾门铃;
所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,包括:所述固态硬盘设备在所述第一寄存器写入所述尾门铃,且接收到所述第二地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道向所述主机发送第二读指令;
所述方法还包括:
所述主机在消费所述完成队列中所述数据写入指令的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第六内存写事务;
所述固态硬盘设备更新第二寄存器中所述完成队列的头门铃。
10.一种固态硬盘设备,其特征在于,所述固态硬盘设备包括:固态硬盘控制芯片和闪存介质,所述固态硬盘控制芯片包括计算互连标准控制器、处理器和闪存控制器;所述计算互连标准控制器与主机之间的物理通道支持计算互连标准-缓存协议和计算互连标准-输入输出协议的数据通信;
所述处理器用于在通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,接收到第一地址指示数据的情况下,通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一地址指示数据是所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据读取指令的第一指令地址的数据,所述第一读指令用于供所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
所述闪存控制器用于从其闪存介质中读取所述目标数据;
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务用于供所述主机将所述目标数据写入所述内存;
所述处理器还用于将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中的所述完成状态信息。
11.根据权利要求10所述的固态硬盘设备,其特征在于,
所述处理器还用于在通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,接收到第二地址指示数据的情况下,通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二地址指示数据是所述主机响应于数据写入操作,向内存中的提交队列写入数据写入指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据写入指令的第二指令地址的数据,所述第二读指令用于供所述主机根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务用于供所述主机根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据;
所述闪存控制器还用于将所述写入数据写入所述闪存介质;
所述处理器还用于将所述数据写入指令的完成状态信息写入内存中的完成队列,通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中所述数据写入指令的完成状态信息。
12.根据权利要求10或11所述的固态硬盘设备,其特征在于,
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道,向所述主机发送第一写指令,所述第一写指令用于供所述主机将所述数据读取指令的完成状态信息写入所述完成队列。
13.根据权利要求11所述的固态硬盘设备,其特征在于,
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道,向所述主机发送第二写指令,所述第二写指令用于供所述主机将所述数据写入指令的完成状态信息写入所述完成队列。
14.根据权利要求10或11所述的固态硬盘设备,其特征在于,所述主机和所述固态硬盘设备支持主机内存缓冲器机制;
所述处理器还用于通过计算互连标准控制器提供的计算互连标准-输入输出协议支持的通道,向所述主机发起第二内存写事务,所述第二内存写事务用于供所述主机向所述内存存储所述闪存介质中第一存储空间的物理块地址与逻辑块地址的对应关系,所述第一存储空间的逻辑块地址为所述第一存储空间对应的第二存储空间的地址,所述第二存储空间为所述主机从所述内存中为所述固态硬盘设备的主机内存缓冲器配置的存储空间,所述数据读取指令携带所述目标数据的目标逻辑块地址,
所述第一读指令还用于供所述主机根据所述第一指令地址读取所述数据读取指令,根据物理块地址与逻辑块地址的所述对应关系,确定与所述目标逻辑块地址对应的目标物理块地址,生成携带所述目标物理块地址的所述目标读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述目标读取指令;
所述闪存控制器还用于将所述写入数据写入所述闪存介质,确定目标第一存储空间与所述内存中目标第二存储空间的对应关系,得到并存储所述目标第一存储空间的物理块地址与逻辑块地址的对应关系,所述目标第一存储空间为所述闪存介质中存储所述写入数据的第一存储空间;所述目标第一存储空间的逻辑块地址为所述目标第二存储空间的地址。
15.根据权利要求10或11所述的固态硬盘设备,其特征在于,
所述处理器还用于在所述固态硬盘设备的第一寄存器写入尾门铃,且接收到所述第一地址指示数据的情况下,通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道向所述主机发送所述第一读指令,所述尾门铃和所述第一地址指示数据是所述主机通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起的第三内存写事务携带的数据;
所述处理器还用于在接收到第四内存写事务的情况下,更新所述固态硬盘设备的第二寄存器中所述完成队列的头门铃,所述第四内存写事务是所述主机在所述消费所述完成队列中所述数据读取指令的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起的。
16.根据权利要求11所述的固态硬盘设备,其特征在于,
所述处理器还用于在所述固态硬盘设备的第一寄存器写入尾门铃,且接收到所述第二地址指示数据的情况下,通过计算互连标准控制器提供的计算互连标准-缓存协议支持的请求通道向所述主机发送所述第二读指令,所述尾门铃和所述第二地址指示数据是所述主机通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起的第五内存写事务携带的数据;
所述处理器还用于在接收到第六内存写事务的情况下,更新所述固态硬盘设备的第二寄存器中所述完成队列的头门铃,所述第六内存写事务是所述主机在所述消费所述完成队列中所述数据写入指令的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起的。
17.一种主机,其特征在于,所述主机包括:处理器、内存和根节点,所述处理器通过所述根节点与固态硬盘设备和所述内存连接;所述根节点包括协议复用器、输入输出控制器、高速缓冲存储器控制器和内存控制器;所述协议复用器与所述固态硬盘设备之间的物理通道支持计算互连标准-缓存协议和计算互连标准-输入输出协议的数据通信;
所述处理器用于响应于数据读取操作,向所述内存中的提交队列写入数据读取指令,通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址,所述第一地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
所述内存控制器用于通过所述协议复用器提供的计算互连标准-缓存协议支持的请求通道,接收所述第一读指令;
所述内存控制器还用于根据所述第一指令地址读取所述数据读取指令,通过所述协议复用器提供的计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于供所述固态硬盘设备从其闪存介质中读取所述数据读取指令指示的目标数据,通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
所述内存控制器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述第一内存写事务;
所述内存控制器还用于将所述目标数据写入所述内存;
所述处理器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述固态硬盘设备向所述主机发起的中断事务,所述中断事务是所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起的;
所述处理器还用于消费所述完成队列中所述数据读取指令的所述完成状态信息。
18.根据权利要求17所述的主机,其特征在于,
所述处理器还用于响应于数据写入操作,向所述提交队列写入数据写入指令,通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,所述第二地址指示数据指示所述数据写入指令的第二指令地址,所述第二地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二读指令携带所述第二指令地址,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
所述内存控制器还用于通过计算互连标准-缓存协议支持的请求通道,接收所述第二读指令;
所述内存控制器还用于根据所述第二指令地址读取所述数据写入指令,通过所述协议复用器提供的计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令;所述数据写入指令用于供所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务携带所述写入数据的数据地址;
所述内存控制器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述内存读事务;
所述内存控制器还用于根据所述数据地址读取所述写入数据,通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据,所述完成事务用于供所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
所述处理器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述中断事务;
所述处理器还用于消费所述完成队列中所述数据写入指令的完成状态信息。
19.根据权利要求17或18所述的主机,其特征在于,
所述内存控制器还用于通过所述协议复用器提供的计算互连标准-缓存协议支持的请求通道,接收所述固态硬盘设备在向所述主机发起第一内存写事务之后发送的第一写指令,所述第一写指令携带所述数据读取指令的完成状态信息;
所述内存控制器还用于将所述数据读取指令的完成状态信息写入所述内存的所述完成队列。
20.根据权利要求18所述的主机,其特征在于,所述完成事务用于供所述固态硬盘设备将所述写入数据写入所述闪存介质,通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二写指令,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述第二写指令携带所述数据写入指令的完成状态信息;
所述内存控制器还用于通过所述协议复用器提供的计算互连标准-缓存协议支持的请求通道,接收所述第二写指令;
所述内存控制器还用于将所述数据写入指令的完成状态信息写入所述完成队列。
21.根据权利要求17或18所述的主机,其特征在于,所述主机和所述固态硬盘设备支持主机内存缓冲器机制;所述主机还包括:非易失性内存主机控制器接口控制器,所述内存存储有所述固态硬盘设备的闪存介质中第一存储空间的物理块地址与逻辑块地址的对应关系,所述第一存储空间的逻辑块地址为所述第一存储空间对应的第二存储空间的地址,所述第二存储空间为所述内存中配置为所述固态硬盘设备的主机内存缓冲器的存储空间;
所述非易失性内存主机控制器接口控制器用于根据所述第一指令地址读取所述数据读取指令,所述数据读取指令携带所述目标数据的目标逻辑块地址;
所述非易失性内存主机控制器接口控制器还用于根据物理块地址与逻辑块地址的所述对应关系,确定与所述目标逻辑块地址对应的目标物理块地址,生成携带所述目标物理块地址的所述目标读取指令;
所述非易失性内存主机控制器接口控制器还用于通过所述协议复用器提供的计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述目标读取指令。
22.根据权利要求21所述的主机,其特征在于,
所述非易失性内存主机控制器接口控制器还用于将所述内存中的第二存储空间配置为所述固态硬盘设备的主机内存缓冲器,向所述固态硬盘设备发送所述第二存储空间的地址;
所述非易失性内存主机控制器接口控制器还用于通过所述协议复用器提供的计算互连标准-输入输出协议支持的通道,接收所述固态硬盘设备发起的第二内存写事务,所述第二内存写事务携带所述闪存介质中第一存储空间的物理块地址与逻辑块地址的对应关系,物理块地址与逻辑块地址的所述对应关系为:所述固态硬盘设备在向所述闪存介质写入数据,确定写入数据的所述第一存储空间与所述第二存储空间的对应关系后,得到的写入数据的所述第一存储空间的物理块地址与逻辑块地址的对应关系,所述第一存储空间的逻辑块地址为所述第一存储空间对应的第二存储空间的地址;
所述非易失性内存主机控制器接口控制器还用于向所述内存存储物理块地址与逻辑块地址的所述对应关系。
23.根据权利要求17或18所述的主机,其特征在于,
所述处理器还用于通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第三内存写事务,以向所述固态硬盘设备的第一寄存器写入所述提交队列的尾门铃,所述第三内存写事务携带所述第一地址指示数据和所述尾门铃,所述第三内存写事务用于供所述固态硬盘设备在所述第一寄存器写入所述尾门铃,且通过计算互连标准-输入输出协议支持的通道,接收到所述第一地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道向所述主机发送所述第一读指令;
所述处理器还用于在所述消费所述完成队列中所述数据读取指令的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第四内存写事务,所述第四内存写事务用于供所述固态硬盘设备更新第二寄存器中所述完成队列的头门铃。
24.根据权利要求18所述的主机,其特征在于,
所述处理器还用于通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第五内存写事务,以向所述固态硬盘设备的第一寄存器写入所述提交队列的尾门铃,所述第五内存写事务携带所述尾门铃和所述第二地址指示数据,所述第五内存写事务用于供所述固态硬盘设备在所述第一寄存器写入所述尾门铃,且通过计算互连标准-输入输出协议支持的通道,接收到所述第二地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道向所述主机发送所述第二读指令;
所述处理器还用于在消费所述完成队列中所述数据写入指令的完成状态信息之后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发起第六内存写事务,所述第六内存写事务用于供所述固态硬盘设备更新第二寄存器中所述完成队列的头门铃。
25.一种数据处理方法,其特征在于,应用于数据处理系统的固态硬盘设备,所述数据处理系统还包括主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
在通过计算互连标准-输入输出协议支持的通道,接收到第一地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一地址指示数据是所述主机响应于数据读取操作,向内存中的提交队列写入数据读取指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据读取指令的第一指令地址的数据,所述第一读指令用于供所述主机根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于指示所述固态硬盘设备读取所述数据读取指令指示的待读取的目标数据;
通过计算互连标准-缓存协议支持的响应通道,接收所述目标读取指令;
从其闪存介质中读取所述目标数据;
通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务用于供所述主机将所述目标数据写入所述内存;
将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中的所述完成状态信息。
26.一种数据处理方法,其特征在于,应用于数据处理系统的固态硬盘设备,所述数据处理系统还包括主机,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
在通过计算互连标准-输入输出协议支持的通道,接收到第二地址指示数据的情况下,通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二地址指示数据是所述主机响应于数据写入操作,向内存中的提交队列写入数据写入指令后,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送的指示所述数据写入指令的第二指令地址的数据,所述第二读指令用于供所述主机根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
通过计算互连标准-缓存协议支持的响应通道,接收所述数据写入指令;
通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务用于供所述主机根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据;
通过计算互连标准-输入输出协议支持的通道,接收所述完成事务;
将所述写入数据写入所述闪存介质;
将所述数据写入指令的完成状态信息写入内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务,所述中断事务用于供所述主机消费所述完成队列中所述数据写入指令的完成状态信息。
27.一种数据处理方法,其特征在于,应用于数据处理系统的主机,所述数据处理系统还包括固态硬盘设备,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
响应于数据读取操作,向内存中的提交队列写入数据读取指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第一地址指示数据,所述第一地址指示数据指示所述数据读取指令的第一指令地址,所述第一地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第一读指令,所述第一读指令携带所述第一指令地址;
通过计算互连标准-缓存协议支持的请求通道,接收所述第一读指令;
根据所述第一指令地址读取所述数据读取指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送目标读取指令,所述目标读取指令用于供所述固态硬盘设备从其闪存介质中读取所述数据读取指令指示的目标数据,通过计算互连标准-输入输出协议支持的通道,向所述主机发起第一内存写事务,所述第一内存写事务携带所述目标数据;
通过计算互连标准-输入输出协议支持的通道,接收所述第一内存写事务;
将所述目标数据写入所述内存;
通过计算互连标准-输入输出协议支持的通道,接收所述固态硬盘设备向所述主机发起的中断事务,所述中断事务是所述固态硬盘设备将所述数据读取指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起的;
消费所述完成队列中所述数据读取指令的所述完成状态信息。
28.一种数据处理方法,其特征在于,应用于数据处理系统的主机,所述数据处理系统还包括固态硬盘设备,所述固态硬盘设备与所述主机通过计算互连标准-缓存协议和计算互连标准-输入输出协议通信;所述方法包括:
响应于数据写入操作,向内存中的提交队列写入数据写入指令,通过计算互连标准-输入输出协议支持的通道,向所述固态硬盘设备发送第二地址指示数据,所述第二地址指示数据指示所述数据写入指令的第二指令地址,所述第二地址指示数据用于供所述固态硬盘设备通过计算互连标准-缓存协议支持的请求通道,向所述主机发送第二读指令,所述第二读指令携带所述第二指令地址,所述数据写入指令携带待写入闪存介质的写入数据在所述内存中的数据地址;
通过计算互连标准-缓存协议支持的请求通道,接收所述第二读指令;
根据所述第二指令地址读取所述数据写入指令,通过计算互连标准-缓存协议支持的响应通道,向所述固态硬盘设备发送所述数据写入指令,所述数据写入指令用于供所述固态硬盘设备通过计算互连标准-输入输出协议支持的通道,向所述主机发起内存读事务,所述内存读事务携带所述写入数据的数据地址;
通过计算互连标准-输入输出协议支持的通道,接收所述内存读事务;
根据所述数据地址读取所述写入数据,通过计算互连标准-输入输出协议支持的通道向所述固态硬盘设备发起完成事务,所述完成事务携带所述写入数据,所述完成事务用于供所述固态硬盘设备将所述写入数据写入所述闪存介质,将所述数据写入指令的完成状态信息写入所述内存中的完成队列,通过计算互连标准-输入输出协议支持的通道,向所述主机发起中断事务;
通过计算互连标准-输入输出协议支持的通道,接收所述中断事务;
消费所述完成队列中所述数据写入指令的完成状态信息。
29.一种可读存储介质,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现权利要求1至5任一所述的方法,或者,权利要求6至9任一所述的方法,或者,权利要求25所述的方法,或者,权利要求26所述的方法,或者,权利要求27所述的方法,或者,权利要求28所述的方法。
30.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至5任一所述的方法,或者,权利要求6至9任一所述的方法,或者,权利要求25所述的方法,或者,权利要求26所述的方法,或者,权利要求27所述的方法,或者,权利要求28所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410788412.XA CN118363914B (zh) | 2024-06-19 | 2024-06-19 | 数据处理方法、固态硬盘设备及主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410788412.XA CN118363914B (zh) | 2024-06-19 | 2024-06-19 | 数据处理方法、固态硬盘设备及主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118363914A CN118363914A (zh) | 2024-07-19 |
CN118363914B true CN118363914B (zh) | 2024-08-30 |
Family
ID=91885057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410788412.XA Active CN118363914B (zh) | 2024-06-19 | 2024-06-19 | 数据处理方法、固态硬盘设备及主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118363914B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN114816254A (zh) * | 2022-04-26 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种硬盘数据访问方法、装置、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875046B2 (en) * | 2021-02-05 | 2024-01-16 | Samsung Electronics Co., Ltd. | Systems and methods for storage device resource management |
US12117944B2 (en) * | 2022-01-27 | 2024-10-15 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for queue management with a coherent interface |
-
2024
- 2024-06-19 CN CN202410788412.XA patent/CN118363914B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN114816254A (zh) * | 2022-04-26 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种硬盘数据访问方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118363914A (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6796304B2 (ja) | 最終レベルキャッシュシステム及び対応する方法 | |
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
JP2021190125A (ja) | メモリリソースを管理するためのシステム及び方法 | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US10540306B2 (en) | Data copying method, direct memory access controller, and computer system | |
US20050114559A1 (en) | Method for efficiently processing DMA transactions | |
CN114020655A (zh) | 一种内存扩展方法、装置、设备及存储介质 | |
US8904045B2 (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
JP2001051959A (ja) | 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード | |
US20230028071A1 (en) | Memory module, system including the same, and operation method of memory module | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
JP2020502694A (ja) | バイトアドレス可能メモリとして不揮発性メモリにアクセスする方法及び装置 | |
CN108228483B (zh) | 处理原子写命令的方法和设备 | |
CN116383101A (zh) | 内存访问方法、内存管理单元、芯片、设备和存储介质 | |
EP4105771A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
CN113468083B (zh) | 一种双端口NVMe控制器及控制方法 | |
WO2017087544A1 (en) | Method and system for shared direct access storage | |
CN115811509A (zh) | 一种总线通信方法及相关设备 | |
CN118363914B (zh) | 数据处理方法、固态硬盘设备及主机 | |
CN110399314B (zh) | 一种cpu、一种电子设备以及一种cpu缓存控制方法 | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN115878311A (zh) | 一种计算节点集群、数据聚合方法和相关设备 |
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 | ||
GR01 | Patent grant |