CN117420946A - 存储控制器、存储装置和存储系统 - Google Patents
存储控制器、存储装置和存储系统 Download PDFInfo
- Publication number
- CN117420946A CN117420946A CN202310770042.2A CN202310770042A CN117420946A CN 117420946 A CN117420946 A CN 117420946A CN 202310770042 A CN202310770042 A CN 202310770042A CN 117420946 A CN117420946 A CN 117420946A
- Authority
- CN
- China
- Prior art keywords
- preset value
- coefficient value
- value
- equalization
- logic circuit
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 135
- 230000005540 biological transmission Effects 0.000 claims abstract description 113
- 238000012549 training Methods 0.000 claims abstract description 92
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 28
- 238000013519 translation Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 15
- 238000000034 method Methods 0.000 description 15
- 238000011144 upstream manufacturing Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000000470 constituent Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000009966 trimming Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101150104728 GPR88 gene Proteins 0.000 description 1
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0058—Allocation criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/1438—Negotiation of transmission parameters prior to communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了存储控制器、存储装置和存储系统。所述存储控制器在PCIe链路训练和均衡的阶段3阶段,在第一时间从外部接收第一发送预设值和第一系数值,参考数据库检查第一发送预设值和第一系数值是否是最佳的,当第一发送预设值和第一系数值被确定为是最佳的时,将与第一发送预设值和第一系数值相应的信号发送到所述外部,以及当第一发送预设值和第一系数值被确定为不是最佳的时,将与来自数据库的第二发送预设值和第二系数值相应的信号发送到所述外部,其中,第二发送预设值和第二系数值与第一发送预设值和第一系数值不同并且针对PCIe链路训练和均衡的阶段3阶段是最佳的。
Description
本申请要求于2022年7月18日在韩国知识产权局提交的第10-2022-0087929号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本发明涉及一种存储控制器和包括存储控制器的存储装置。
背景技术
存储装置可包括非易失性存储器装置和控制非易失性存储器装置的存储控制器。非易失性存储器装置包括即使在电源被移除之后也保留存储的信息的非易失性存储器。例如,非易失性存储器可以是可被电擦除和重新编程的闪存。
存储控制器可基于定义的通信协议与外部主机装置通信。随着相关技术的发展,存储控制器与外部主机装置通信的速率逐渐增大。然而,如果速率太高,则存储控制器与外部主机装置之间的通信可能变得不可靠。
发明内容
本发明的方面提供了一种提高存储控制器与外部主机装置之间的通信可靠性的存储控制器。
本发明的方面还提供了一种包括存储控制器的存储装置,存储控制器提高存储控制器与外部主机装置之间的通信可靠性。
然而,本发明的方面不限于在此阐述的方面。通过参照下面给出的本发明的详细描述,本发明的这些和其他方面对于本发明所属领域的普通技术人员而言将变得更加清楚。
根据本发明构思的一方面,提供了一种存储控制器,包括:链路管理器,包括主机请求检查器(例如,第一逻辑电路),主机请求检查器(例如,第一逻辑电路)在PCIe链路训练和均衡的阶段3阶段,在第一时间从外部接收阶段3阶段的第一发送预设值和第一系数值;以及数据库检查器(例如,第二逻辑电路),在第一时间之前,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3阶段是否是最佳的,与第一发送预设值和第一系数值不同的多个发送预设值和多个系数值被记录在所述数据库中,其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段是最佳的时,数据库检查器将与第一发送预设值和第一系数值相应的信号发送到所述外部,以及当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段不是最佳的时,数据库检查器将与第二发送预设值和第二系数值相应的信号发送到所述外部,第二发送预设值和第二系数值与第一发送预设值和第一系数值不同并且针对所述PCIe链路训练和均衡的阶段3阶段是最佳的。
根据本发明构思的一方面,提供了一种存储装置,包括:存储控制器,其中,存储控制器包括链路管理器,链路管理器包括主机请求检查器(例如,第一逻辑电路),主机请求检查器(例如,第一逻辑电路)在PCIe链路训练和均衡的阶段3阶段,在第一时间从外部接收阶段3阶段的第一发送预设值和第一系数值;以及数据库检查器(例如,第二逻辑电路),在第一时间之前,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3阶段是否是最佳的,与第一发送预设值和第一系数值不同的多个发送预设值和多个系数值被记录在所述数据库中,其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段是最佳的时,数据库检查器将与第一发送预设值和第一系数值相应的信号发送到所述外部,以及当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段不是最佳的时,数据库检查器将与第二发送预设值和第二系数值相应的信号发送到所述外部,第二发送预设值和第二系数值与第一发送预设值和第一系数值不同并且针对所述PCIe链路训练和均衡的阶段3阶段是最佳的。
根据本发明构思的一方面,提供了一种存储系统,包括主机装置和存储装置,其中,存储装置在PCIe链路训练和均衡的阶段3阶段,在第一时间从主机装置接收阶段3阶段的第一发送预设值和第一系数值,其中,存储装置包括存储控制器,存储控制器包括链路管理器,链路管理器包括主机请求检查器(例如,第一逻辑电路)和数据库检查器(例如,第二逻辑电路),数据库检查器在第一时间点之前,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3阶段是否是最佳的,与第一发送预设值和第一系数值不同的多个发送预设值和多个系数值被记录在所述数据库中,其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段是最佳的时,数据库检查器将与第一发送预设值和第一系数值相应的信号发送到所述外部,以及当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3阶段不是最佳的时,所述数据库检查器将与第二发送预设值和第二系数值相应的信号发送到主机装置,第二发送预设值和第二系数值与第一发送预设值和第一系数值不同并且针对所述PCIe链路训练和均衡的阶段3阶段是最佳的。
附图说明
通过参照附图详细描述本公开的示例性实施例,本公开的以上和其他方面和特征将变得更加清楚,其中:
图1是示出根据实施例的存储系统10的框图。
图2是示出根据实施例的图1的存储系统10的框图。
图3是示出根据一些实施例的在图1的存储装置200的物理层520内的逻辑子块521中执行的建立链路的处理的示图。
图4是示出根据实施例的在图1的存储系统10的主机装置100的存储接口电路130与存储装置200的主机接口电路211之间建立的链路的示例的示图。
图5是用于解释在图3的恢复状态下操作的均衡的阶段0的示图。
图6是用于解释在图3的恢复状态下操作的均衡的阶段1的示图。
图7是用于解释在图3的恢复状态下操作的均衡的阶段2的示图。
图8是用于解释在图3的恢复状态下操作的均衡的阶段3的示图。
图9是示出根据实施例的由图1的存储系统10的链路管理器215访问的数据库的示图。
图10是用于解释根据实施例的图1的存储系统10的链路管理器215的框图。
图11至图14是用于解释根据实施例的图1的存储系统10的链路管理器215的其他框图。
图15是用于解释根据实施例的在图1的存储装置200被启动(boot)之后通过外围组件互连快速(PCIe)总线接收的信号的示图。
图16是用于解释根据实施例的操作存储装置的方法的流程图。
图17是用于解释应用了根据实施例的存储装置的系统的框图。
图18是用于解释根据实施例的应用了存储装置的数据中心的框图。
具体实施方式
参照具体实施方式中使用的术语(诸如,单元、模块、块、器或装置)和附图中所示出的功能块描述的组件可以以软件、硬件或者软件和硬件的组合的形式来实现。例如,软件可以是机器代码、固件、嵌入式代码和应用软件。例如,硬件可包括电路、电子电路、处理器、计算机、集成电路、集成电路核、压力传感器、惯性传感器、微机电系统(MEMS)、无源元件或者电路、电子电路、处理器、计算机、集成电路、集成电路核、压力传感器、惯性传感器、微机电系统(MEMS)和无源元件的组合。
图1是示出根据实施例的存储系统(或称为主机存储系统)10的框图。
主机存储系统10包括主机装置(或称为主机)100和存储装置200。存储装置200包括存储控制器210(例如,控制电路)和非易失性存储器(NVM)装置220。此外,根据发明的示例性实施例,主机装置100可包括主机控制器110(例如,控制电路)、主机存储器120和存储接口电路130。主机存储器120可用作用于临时存储将被发送到存储装置200的数据或从存储装置200接收的数据的缓冲存储器。
存储装置200可包括用于响应于来自主机装置100的请求而存储数据的存储介质。作为一个示例,存储装置200可包括固态驱动器(SSD)、嵌入式存储器和可拆卸外部存储器中的至少一个。当存储装置200是SSD时,存储装置200可以是符合非易失性存储器快速(NVMe)标准的装置。当存储装置200是嵌入式存储器或外部存储器时,存储装置200可以是符合通用闪存(UFS)或嵌入式多媒体卡(eMMC)标准的装置。主机装置100和存储装置200可各自根据所采用的标准协议生成和发送包。
当存储装置200的非易失性存储器装置220包括闪存时,闪存可包括二维(2D)NAND存储器阵列或3D(或垂直)NAND(VNAND)存储器阵列。作为另一示例,存储装置200可包括不同的各种类型的非易失性存储器。例如,磁性随机存取存储器(RAM)(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(ReRAM)、相位RAM(PRAM)、电阻式存储器(电阻式RAM)和各种其他类型的存储器可被采用作为存储装置200。
根据实施例,主机控制器110和主机存储器120可被实现为单独的半导体芯片。此外,在一些实施例中,主机控制器110和主机存储器120可被集成在同一半导体芯片上。作为一个示例,主机控制器110可以是应用处理器中设置的多个模块中的任何一个,并且应用处理器可被实现为片上系统(SoC)。此外,主机存储器120可以是位于应用处理器内部的嵌入式存储器,或者是位于应用处理器外部的非易失性存储器或存储器模块。
主机控制器110可管理将主机存储器120的缓冲区的数据(例如,写入数据)存储在非易失性存储器装置220中或者将非易失性存储器装置220的数据(例如,读取数据)存储在缓冲区中的操作。例如,主机控制器110可管理将数据写入非易失性存储器装置220或从非易失性存储器装置220读取数据。
存储接口电路130可根据通信协议在主机装置100与存储装置200之间执行数据传送。通信协议可以是PCIe标准。
在以下描述中,将在通过PCIe标准在主机装置100与存储装置200之间发送和接收数据的假设下进行描述。
例如,主机装置100可在PCIe链路训练和均衡(EQ)的阶段3向存储装置200发送链路训练和均衡请求值EQ_Req。
根据实施例的存储装置200通过链路管理器215检查由主机装置100请求的链路训练和均衡请求值EQ_Req是否是在PCIe链路训练和均衡的阶段3最佳的值,并且然后,将与由主机装置100请求的链路训练和均衡请求值EQ_Req相应的信号EQ_Rsp发送到主机装置100。例如,链路管理器215确定链路训练和均衡请求值EQ_Req针对PCIe链路训练和均衡的阶段3是否是最佳的。
当通过链路管理器215确定由主机装置100请求的链路训练和均衡请求值EQ_Req不是在PCIe链路训练和均衡的阶段3最佳的值时,根据实施例的存储装置200将与不同于由主机装置100请求的链路训练和均衡请求值EQ_Req的最佳值相应的信号EQ_Rsp发送到主机装置100。
链路管理器215可由嵌入式现场可编程门阵列(eFPGA)或逻辑电路来实现。
下面将通过图10至图16提供对链路管理器215的描述。
存储控制器210可包括主机接口电路211、存储器接口212和中央处理器(CPU)213。此外,存储控制器210还可包括闪存转换层(FTL)214、链路管理器215、缓冲存储器216、纠错码(ECC)217引擎和加密/解密引擎(EN/DE ENG)218。存储控制器210还可包括闪存转换层(FTL)214被加载到其中的工作存储器(未示出),并且当CPU 213执行闪存转换层214时,对非易失性存储器装置220的数据写入和读取操作可被控制。
主机接口电路211可向主机装置100发送包和从主机装置100接收包。从主机装置100发送到主机接口电路211的包可包括命令、要写入非易失性存储器装置220中的数据等。从主机接口电路211发送到主机装置100的包可包括对命令的响应、从非易失性存储器装置220读取的数据等。存储器接口212可将要写入非易失性存储器装置220中的数据发送到非易失性存储器装置220,或者接收从非易失性存储器装置220读取的数据。存储器接口212可被实现为符合标准协议,诸如,切换或开放NAND闪存接口(ONFI)。
闪存转换层214可执行各种功能,诸如,地址映射、损耗均衡和垃圾收集。地址映射操作是将从主机装置100接收的逻辑地址改变为用于将数据实际存储在非易失性存储器装置220中的物理地址的操作。耗损均衡是用于确保非易失性存储器装置220中的块被均匀地使用以防止特定块的过度劣化的技术,并且可例如通过用于平衡物理块的擦除计数的固件技术来实现。垃圾收集是用于通过将一个或多个现有块的有效数据复制到新的块并且然后擦除一个或多个现有块的方法来确保非易失性存储器装置220中的可用容量的技术。
链路管理器215可执行如下面将参照图10至图16描述的用于提高包括存储控制器210的存储装置200与主机装置100之间的PCIe链路训练和均衡的阶段3的可靠性的操作。
例如,链路管理器215可确定主机控制器110在PCIe链路训练和均衡的阶段3向存储控制器210请求不能被主机控制器110信任的最佳的发送预设值(Tx预设值)和系数值的情况,并且将针对其他最佳的发送预设值(Tx预设值)和系数值的信号发送到主机控制器110。
下面将参照图10至图16给出其详细描述。
此外,缓冲存储器216还可临时存储要写入非易失性存储器装置220或从非易失性存储器装置220读取的数据。尽管缓冲存储器216可被配置为位于存储控制器210内部,但在一个替代实施例中,缓冲存储器216可位于存储控制器210外部。在一个示例中,缓冲存储器216可包括易失性存储器。
ECC引擎217可对从非易失性存储器装置220读取的读取数据执行错误检测和纠正功能。更具体地,ECC引擎217可生成用于要写入到非易失性存储器装置220的写入数据的奇偶校验位,并且由此生成的奇偶校验位可与写入数据一起被存储在非易失性存储器装置220中。当从非易失性存储器装置220读取数据时,ECC引擎217可使用从非易失性存储器装置220读取的奇偶校验位以及读取数据来校正读取数据的错误,并且可输出具有校正的错误的读取数据。
加密/解密引擎218可对输入到存储控制器210的数据执行加密操作和解密操作中的至少一个。
例如,加密/解密引擎218可使用对称密钥算法来执行加密和/或解密操作。例如,加密/解密引擎218可使用高级加密标准(AES)算法或数据加密标准(DES)算法来执行加密和/或解密操作。
此外,例如,加密/解密引擎218可使用公钥加密算法来执行加密和/或解密操作。例如,加密/解密引擎218可在加密操作时使用公钥执行加密,并且可在解密操作时使用私钥执行解密。例如,加密/解密引擎218可利用加密算法,诸如,李维斯特沙米尔阿德尔曼(Rivest Shamir Adleman,RSA)、椭圆曲线密码学或迪菲赫尔曼(Diffie-Hellman,DH)。
加密/解密引擎218可使用量子密码学技术(诸如,同态加密(HE)、后量子密码学(PQC)或函数加密(FE))来执行加密和/或解密操作,但不限于此。
图2是示出根据实施例的图1的存储系统10的框图。
参照图1和图2,主机装置100和存储装置200中的每个可例如根据PCIe标准的分层协议栈。
主机装置100包括转换层405、链路层410和物理层420。
包括在图1的主机装置100中的存储接口电路130可由例如图2的根据PCIe标准的分层协议栈形成。
存储装置200还包括转换层505、链路层510和物理层520。
包括在图2的存储装置200中的主机接口电路211可由例如图2的根据PCIe标准的分层协议栈形成。
根据PCIe标准通信的组件(例如,主机装置100和/或存储装置200)可利用包来发送和接收信息。
包在转换层405和转换层505以及链路层410和链路层510中被形成,并且可从发送组件(例如,主机装置100或存储装置200)被发送到接收组件(例如,存储装置200或主机装置100)。
为了方便起见,下面将描述从主机装置100向存储装置200发送包的示例。
也就是说,包在转换层405和链路层410中被形成,并从主机装置100被发送到存储装置200。
在从主机装置100的转换层405发送的包经过其他层的同时,可在其他层中的每个中添加控制包所必要的信息以进一步扩展包。
存储装置200对从主机装置100接收的包执行转换,使得从主机装置100接收的包可被物理层520和链路层510解释,并且转换后的包可在转换层505中被处理。
转换层405可用作用于控制每个组件的核与链路层410之间的接口,转换层505可用作用于控制每个组件的核与链路层510之间的接口。
例如,转换层405可用作控制主机装置100的主机控制器110中的核与链路层410之间的接口。
此外,例如,转换层505可用作控制存储装置200的存储控制器210内部的核(例如,CPU 213)与链路层510之间的接口。
也就是说,转换层405和转换层505可用于组装或分解包(例如,转换层包(TLP))。
链路层410可用作转换层405与物理层420之间的媒介,链路层510可用作转换层505与物理层520之间的媒介。
更具体地,链路层410可将可靠的机制应用于可在转换层405与物理层420之间交换的转换层包,链路层510可将可靠的机制应用于可在转换层505与物理层520之间交换的转换层包。
例如,链路层410接收通过转换层405组装的转换层包。针对通过转换层405接收的转换层包,链路层410可将包序列标识符(例如,标识号或包号)应用于转换层包。之后,链路层410可将错误检测码(例如,循环冗余校验(CRC))应用于应用了包序列标识符的转换层包,并计算错误检测码,以生成修改的转换层包。之后,链路层410将修改的转换层包发送到物理层420,并且物理层420将从链路层410接收的包发送到外部装置(例如,存储装置200)。
在另一示例中,链路层510通过转换层505接收组装的转换层包。针对通过转换层505接收的转换层包,链路层510可将包序列标识符(例如,标识号或包号)应用于转换层包。然后,链路层510可将错误检测码(例如,循环冗余校验(CRC))应用于应用了包序列标识符的转换层包,并计算错误检测码。然后,链路层510将修改的转换层包发送到物理层520,并且物理层520将从链路层510接收的包发送到外部装置(例如,主机装置100)。
主机装置100的物理层420包括逻辑子块421和电气子块422。存储装置200的物理层520包括逻辑子块521和电气子块522。
逻辑子块421和逻辑子块521可起到使得物理层420和物理层520能够执行数字功能的作用。
更具体地,逻辑子块421和逻辑子块521可包括准备由电气子块422和电气子块522发送的信息的发送器。另外,逻辑子块421和逻辑子块521可包括接收器,其中,接收器识别从外部装置接收的信息并且在将从外部装置接收的信息递送到链路层410和链路层510之前为将从外部装置接收的信息递送到链路层410和链路层510做准备。
例如,逻辑子块421准备由电气子块422发送到外部装置(例如,存储装置200)的信息,识别从外部装置(例如,存储装置200)接收的信息,并且可为将信息递送到链路层410做准备。
在另一示例中,逻辑子块521准备由电气子块522发送到外部装置(例如,主机装置100)的信息,识别从外部装置(例如,主机装置100)接收的信息,并且可为将信息递送到链路层510做准备。
可执行建立链路(例如,LTSSM(Link Training and Status State Machine,链路训练和状况状态机))的处理,以在主机装置100与存储装置200之间发送和接收包。
为了在主机装置100与存储装置200之间发送和接收包,可在物理层420与物理层520之间(更具体地,在逻辑子块421与逻辑子块521之间)执行建立链路(例如,LTSSM(链路训练和状况状态机))的处理。
将参照图3详细描述在主机装置100与存储装置200之间建立用于发送和接收包的链路的处理。
图3是示出根据实施例的在图1的存储装置200的物理层520内部的逻辑子块521中执行的建立链路的处理的示图。
参照图1和图3,示出了在存储装置200与主机装置100之间建立链路的处理。参照图1和图3,初始状态可以是检测状态(检测)。在检测状态下,当检测到另外的装置(例如,主机装置100)的连接时,存储装置200可进入轮询状态。
在轮询状态下,确认主机装置100的协议(例如,PCIe)的生成版本和存储装置200的协议(例如,PCIe)的生成版本,并且可基于彼此兼容的最高生成版本来确定数据传输速率。此外,在轮询状态下,存储控制器210可设置位锁(bit lock)、符号锁、块锁和通道(lane)极性。在轮询状态下,存储控制器210可以以每秒2.5千兆传输(GT/s)的传输速率发送作为有序集(ordered sets)的TS1和TS2。例如,存储控制器210可发送包括TS1和TS2的消息。
在轮询状态之后,存储装置200可进入配置状态。在配置状态中,存储控制器210可设置链路的通道的数量,即,链路宽度。此外,在配置状态下,存储控制器210可以以2.5GT/s的传输速率与主机装置100交换TS1和TS2。存储控制器210可分配通道号,并且确认和校准通道翻转(lane reversal)。存储控制器210可对通道到通道时序差进行偏斜校正。
在配置状态之后,存储控制器210可进入L0状态。L0状态可以是正常状态。在L0状态下,存储控制器210可通过链路与主机装置100通信。
L0s状态可以是活动状态电源管理(ASPM)状态。存储控制器210可在L0s状态下降低功耗,直到存储控制器210进入L0状态为止。L1状态可以是比L0s状态消耗更少功率的省电状态。L2状态可使用低到足以检测唤醒事件的低电压。
当存储控制器210使链路去激活时,可进入禁用状态。回环状态(loopback state)可由存储控制器210用于测试和解耦。当存储控制器210通过带内信令对链路进行复位时,可使用热复位状态。
恢复状态可由存储控制器210用来调整数据传输速率。例如,在恢复状态下,存储控制器210可调整主机装置100的时钟分配器和存储装置200的时钟分配器的频率分配因子。
作为一个示例,存储控制器210可通过在L0状态下设置链路控制寄存器的动态链路控制位并请求重新训练,来调整主机装置100和存储装置200的时钟分配因子。
当重新训练被请求时,存储控制器210可进入恢复状态以调整主机装置100和存储装置200的时钟分配因子。然后,存储控制器210可返回到L0状态、返回到配置状态或返回到检测状态。可选地,存储控制器210可通过热复位状态返回到检测状态。
图4是示出根据实施例的在图1的存储系统10的主机装置100的存储接口电路130与存储装置200的主机接口电路211之间建立的链路的示例的示图。
参照图1和图4,示出了在主机装置100的存储接口电路130与存储装置200的主机接口电路211之间建立的链路的示例。链路可包括至少一个通道。
例如,链路可包括与在包括1、2、4、8和16的数字之中选择的数字相应的通道。作为一个示例,假设链路包括四个通道。通道可同时发送和接收信号。通道可相应于并行信号线。通道可被配置为具有相同的链路速率。
链路的数据传输速率由包括在链路中的通道的数量(即,每个通道的链路宽度和链路速率的乘积)来确定。根据本发明的实施例的存储装置200可调整链路宽度(即,包括在链路中的通道的数量),以调整链路的数据传输速率。
每个通道可包括发送信道和接收信道。主机接口电路211的发送信道可与从主机接口电路211到存储接口电路130的虚线箭头相应。主机接口电路211的接收信道可与从存储接口电路130指向主机接口电路211的虚线箭头相应。发送信道和接收信道中的每个可包括互补的信号线。
在一个实施例中,在图3中描述的恢复状态期间,在主机装置100的存储接口电路130与存储装置200的主机接口电路211之间执行链路训练和均衡。
在PCIe标准中,可通过总共4个阶段来执行链路训练和均衡。
下面将参照图5至图8描述在主机装置100的存储接口电路130与存储装置200的主机接口电路211之间执行链路训练和均衡的四个阶段。
图5是用于解释在图3的恢复状态下操作的均衡的阶段0的示图。
参照图1和图5,示出了PCIe链路训练和均衡的阶段0。
两个不同的组件(更具体地,根复合体(root complex)装置(或称为根复合体)801和端点(endpoint)装置803)可通过彼此不同的通信链路对805a和通信链路对805b连接。
例如,根复合体装置801可以是包括在图1的主机装置100的存储接口电路130或主机控制器110中的装置。此外,端点装置803可以是包括在图1的存储装置200的主机接口电路211或存储控制器210中的装置。
根复合体装置801包括发送逻辑电路(TX)802a和接收逻辑电路(RX)802b。端点装置803包括发送逻辑电路804b和接收逻辑电路804a。发送逻辑电路802a与接收逻辑电路804a通信。发送逻辑电路804b与接收逻辑电路802b通信。
在一个实施例中,根复合体装置801包括PCIe标准中描述的下游端口。此外,在一个实施例中,端点装置803包括PCIe标准中描述的上游端口。
在PCIe链路训练和均衡的阶段0,可将第一数据集(例如,PCIe标准中描述的EQTS2有序集)从下游端口(例如,根复合体装置801)发送到上游端口(例如,端点装置803)。
在PCIe链路训练和均衡的阶段0发送第一数据集的速率可小于或等于与根复合体装置801相关联的第一最大数据传输速率和与端点装置803相关联的第二最大数据传输速率。
根据实施例的在PCIe链路训练和均衡的阶段0传输数据的速率具有最大PCIe Gen1或PCIe Gen 2速率。
图6是用于解释在图3的恢复状态下操作的均衡的阶段1的示图。
参照图1和图6,示出了PCIe链路训练和均衡的阶段1。
两个不同的组件(更具体地,根复合体装置901和端点装置903)可通过彼此不同的通信链路对905a和通信链路对905b连接。
例如,根复合体装置901可以是包括在图1的主机装置100的存储接口电路130或主机控制器110中的装置。此外,端点装置903可以是包括在图1的存储装置200的主机接口电路211或存储控制器210中的装置。
根复合体装置901包括发送逻辑电路(TX)902a和接收逻辑电路(RX)902b,端点装置903包括发送逻辑电路904b和接收逻辑电路904a,接收逻辑电路902b和接收逻辑电路904a在根复合体装置901与端点装置903之间通信。
在一个实施例中,根复合体装置901包括PCIe标准中描述的下游端口。另外,在一个实施例中,端点装置903包括PCIe标准中描述的上游端口。
在PCIe链路训练和均衡的阶段1,可将第二数据集(例如,PCIe标准中描述的TS1有序集)从下游端口(例如,根复合体装置901)发送到上游端口(例如,端点装置903)。
在PCIe链路训练和均衡的阶段1发送第二数据集的速率可大于在PCIe链路训练和均衡的阶段0发送数据的速率。
例如,根据实施例的在PCIe链路训练和均衡的阶段1发送数据的速率具有PCIeGen 3速率。
图7是用于解释在图3的恢复状态下操作的均衡的阶段2的示图。
参照图1和图7,示出了PCIe链路训练和均衡的阶段2。
两个不同的组件(更具体地,根复合体装置1201和端点装置1203)可通过彼此不同的通信链路对1205a和通信链路对1205b连接。
例如,根复合体装置1201可以是包括在图1的主机装置100的存储接口电路130或主机控制器110中的装置。此外,端点装置1203可以是包括在图1的存储装置200的主机接口电路211或存储控制器210中的装置。
根复合体装置1201包括发送逻辑电路(TX)1202a和接收逻辑电路(RX)1202b,端点装置1203包括发送逻辑电路1204b和接收逻辑电路1204a,接收逻辑电路1202b和接收逻辑电路1204a在根复合体装置1201与端点装置1203之间通信。
在一个实施例中,根复合体装置1201包括PCIe标准中描述的下游端口。另外,在一个实施例中,端点装置1203包括PCIe标准中描述的上游端口。
在PCIe链路训练和均衡的阶段2,可将第三数据集(例如,PCIe标准中描述的TS1有序集)从下游端口(例如,根复合体装置1201)发送到上游端口(例如,端点装置1203)。
在PCIe链路训练和均衡的阶段2,下游端口(例如,根复合体装置1201)可调整上游端口(例如,端点装置1203)的发送设置值,以接收满足下游端口(例如,根复合体装置1201)与上游端口(例如,端点装置1203)之间的通信链路的所有通道的条件的比特流。
下游端口(例如,根复合体装置1201)和上游端口(例如,端点装置1203)可以以PCIe GEN 3速率进行通信。
图8是用于解释在图3的恢复状态下操作的均衡的阶段3的示图。
参照图1和图8,示出了PCIe链路训练和均衡的阶段3。
两个不同的组件(更具体地,根复合体装置1301和端点装置1303)可通过彼此不同的通信链路对1305a和通信链路对1305b连接。
例如,根复合体装置1301可以是包括在图1的主机装置100的存储接口电路130或主机控制器110中的装置。此外,端点装置1303可以是包括在图1的存储装置200的主机接口电路211或存储控制器210中的装置。
根复合体装置1301包括发送逻辑电路(TX)1302a和接收逻辑电路(RX)1302b,端点装置1303包括发送逻辑电路1304b和接收逻辑电路1304a,接收逻辑电路1302b和接收逻辑电路1304a在根复合体装置1301与端点装置1303之间通信。
在一个实施例中,根复合体装置1301包括PCIe标准中描述的下游端口。另外,在一个实施例中,端点装置1303包括PCIe标准中描述的上游端口。
在PCIe链路训练和均衡的阶段3,可将第四数据集(例如,PCIe标准中描述的TS1有序集)从下游端口(例如,根复合体装置1301)发送到上游端口(例如,端点装置1303)。
在PCIe链路训练和均衡的阶段3,上游端口(例如,端点装置1303)可调整下游端口(例如,根复合体装置1301)的发送设置值,以接收满足下游端口(例如,根复合体装置1301)与上游端口(例如,端点装置1303)之间的通信链路的所有通道的条件的比特流。
下游端口(例如,根复合体装置1201)和上游端口(例如,端点装置1203)可以以PCIe GEN 3速率进行通信。
在下文中,下游端口(例如,根复合体装置1301)将被描述为图1的主机装置100的主机控制器110,并且上游端口(例如,端点装置1303)将被描述为图1的存储装置200的存储控制器210。
在PCIe链路训练和均衡的阶段3,主机控制器110可向存储控制器210请求第一发送预设值(Tx预设值)或第一系数值,以用于主机控制器110的接收信号微调(Rx信号微调)。例如,主机控制器110可根据第一发送预设值或第一系数值向存储控制器210发送请求将数据从存储控制器210发送到主机控制器110的消息。
此外,接收到由主机控制器110请求的第一发送预设值(Tx预设值)或第一系数值的存储控制器210将与由主机控制器110请求的第一发送预设值(Tx预设值)或第一系数值相应的信号发送到主机控制器110。
之后,从存储控制器210接收到与由主机控制器110请求的第一发送预设值(Tx预设值)和第一系数值相应的信号的主机控制器110可向存储控制器210请求第二发送预设值(Tx预设值)和第二系数值,其中,第二发送预设值(Tx预设值)与第一发送预设值(Tx预设值)不同和/或第二系数值与第一系数值不同。例如,主机控制器110可根据第二发送预设值和第二系数值向存储控制器210发送请求将数据从存储控制器210发送到主机控制器110的消息。
此外,接收到由主机控制器110请求的第二发送预设值(Tx预设值)或第二系数值的存储控制器210将与由主机控制器110请求的第二发送预设值(Tx预设值)和第二系数值相应的信号发送到主机控制器110。
通过重复上述处理,主机控制器110可设置最佳接收信号微调(Rx信号微调)值。主机控制器110将最佳接收信号微调(Rx信号微调)值发送到存储控制器210,并且发送到存储控制器210的最佳接收信号微调(Rx信号微调)值可成为PCIe链路训练和均衡的阶段3的最终设置值。
在主机控制器110与存储控制器210之间发送和接收的最佳发送预设值(Tx预设值)和系数值可被存储在图1的存储装置200的缓冲存储器216或非易失性存储器装置220中。在主机控制器110与存储控制器210之间发送和接收的最佳的发送预设值(Tx预设值)和系数值可如在图9所示出地被累积以创建数据库或表。
图9是示出根据实施例的由图1的存储系统10的链路管理器215访问的数据库的示图。
参照图1和图9,示出了数据库,在数据库中,累积了在主机控制器110与存储控制器210之间发送和接收的最佳的发送预设值(Tx预设值)和系数值。
数据库可被存储在缓冲存储器216中,或者可被存储在非易失性存储器装置220中。
Rx可作为用于接收信号微调(Rx信号微调)的路径被记录在数据库中。
在存储系统10中可存在存储装置200连接到主机装置100所通过的多个端口。在该附图中,假设存储装置200通过5个端口连接到主机装置100。
如图4中所示,多个通道可连接在主机装置100与存储装置200之间。
可记录根据在主机控制器110与存储控制器210之间发送和接收的发送预设值(Tx预设值)和系数值被递送所通过的通道的数量。
在该附图中,假设总共四个通道0至3连接在主机装置100与存储装置200之间。
假设在PCIe链路训练和均衡的阶段3设置PCIe Gen 3的速度。
HIGH是针对主机装置100与存储装置200之间的数据的发送和接收而设置的最大电压裕度,并且LOW是针对主机装置100与存储装置200之间的数据的发送和接收而设置的最小电压裕度。HIGH和LOW的单位可以是毫伏(Mv)。
HIGH和LOW的绝对值越大,电压裕度越大。因此,主机控制器110与存储控制器210之间的通信效率可增大。
RIGHT是在主机装置100与存储装置200之间发送和接收数据所需的时间裕度,并且其单位可以是皮秒(ps)。
RIGHT的值越大,时间裕度越大。因此,主机控制器110与存储控制器210之间的通信效率可增大。
在PCIe链路训练和均衡的阶段3在主机控制器110与存储控制器210之间发送和接收的发送预设值(Tx预设值)和系数值可各自被记录为前标记(precursor)(PH3_PRECURSOR)和后标记(post-cursor)(PH3_POSTCURSOR)。
随着存储装置200的启动(booting)重复次数增加,由主机控制器110发送到存储控制器210的最佳的发送预设值(Tx预设值)和系数值的可靠性可降低。
例如,当主机控制器110在5个端口的通道0上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210时,可以理解的是,HIGH的值(78、81)显著低于同一端口的同一通道的其他HIGH的值(101、103、99)。
更具体地,当存储装置200的用户将HIGH的可靠值设置为83或更大时,如果主机控制器110在5个端口的0通道上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210,则可确定PCIe链路训练和均衡的阶段3不可靠。
此外,例如,当主机控制器110在5个端口的通道0上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210时,可理解的是,LOW的绝对值(79、82)显著低于同一端口的同一通道的其他LOW的绝对值106。
更具体地,当存储装置200的用户将LOW的可靠的绝对值设置为83或更大时,如果主机控制器110在5个端口的0通道上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210,则可确定PCIe链路训练和均衡的阶段3不可靠。
例如,当主机控制器110在5个端口的通道0上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210时,可理解的是,RIGHT的绝对值(50、56)显著低于同一端口的同一通道上的其他RIGHT的绝对值(79、81、77)。
更具体地,当存储装置200的用户将RIGHT的可靠的绝对值设置为57或更大时,如果主机控制器110在5个端口的0通道上将前标记“3”和后标记“4”作为最佳的发送预设值(Tx预设值)和系数值发送到存储控制器210,则可确定PCIe链路训练和均衡的阶段3不可靠。
以这种方式,由于存储装置200的重复启动,在PCIe链路训练和均衡的阶段3,可能存在主机控制器110向存储控制器210请求不可靠的最佳的发送预设值(Tx预设值)和系数值的情况。例如,可能存在主机控制器110请求存储控制器210使用不可靠的最佳的发送预设值(Tx预设值)和不可靠的系数值的情况。
因此,根据实施例的存储装置200在PCIe链路训练和均衡的阶段3通过存储控制器210中的链路管理器215确定主机控制器110向存储控制器210请求不可靠的最佳的发送预设值(Tx预设值)和系数值的情况,并且将根据其他的最佳的发送预设值(Tx预设值)和系数值的信号发送到主机控制器110。
因此,可以提高包括根据实施例的存储控制器210的存储装置200与主机装置100之间的PCIe链路训练和均衡的阶段3的可靠性。
下面将参照图10至图16详细描述根据实施例的存储控制器210的链路管理器215的配置和操作。
图10是用于解释根据实施例的图1的存储系统10的链路管理器215的框图。
参照图10,链路管理器215包括主机请求检查器310(例如,逻辑电路)和数据库检查器320(例如,逻辑电路)。
在PCIe链路训练和均衡的阶段3,主机请求检查器310可从主机装置100接收第一发送预设值(Tx预设值)和第一系数值。
主机请求检查器310可将在第一时间点从主机装置100接收的阶段3的第一发送预设值(Tx预设值)和第一系数值递送到数据库检查器320。
数据库检查器320可参考通过图9描述的数据库,以检查第一发送预设值(Tx预设值)和第一系数值是否是针对PCIe链路训练和均衡的阶段3最佳的值。
此时,当数据库检查器320确定第一发送预设值和第一系数值是针对PCIe链路训练和均衡的阶段3最佳的值时,数据库检查器320可将与第一发送预设值和第一系数值相应的信号发送到主机装置100。
如果数据库检查器320确定第一发送预设值和第一系数值不是针对PCIe链路训练和均衡的阶段3最佳的值,则数据库检查器320将与第二发送预设值和第二系数值相应的信号发送到存储装置,其中,第二发送预设值与第一发送预设值不同和/或第二系数值与第一系数值不同,并且第二发送预设值和第二系数值针对PCIe链路训练和均衡的阶段3是最佳的。
数据库检查器320可包括计算器322,计算器322用于确定第一发送预设值和第一系数值是否是针对PCIe链路训练和均衡的阶段3最佳的值。
作为参考,主机请求检查器310、数据库检查器320和/或计算器322可被实现为物理上独立且分离的芯片,而不限于该附图。此外,主机请求检查器310、数据库检查器320和/或计算器322可被实现在同一封装件内,但不限于此。
计算器322可参考图9的数据库。此时,直到主机请求检查器310从主机装置100接收阶段3的第一发送预设值(Tx预设值)和第一系数值的第一时间点的信息可被记录在图9的数据库中。
作为一个示例,假设通过第一发送预设值和第一系数值被发送到的第五端口和第四通道接收的信号。
计算器322参考作为通过第五端口和第四通道接收的信号而记录的发送预设值(例如,PH3_PRECURSOR)和系数值(例如,PH3_POSTCURSOR)。
此时,计算器322检查到在作为通过第五端口和第四通道接收的信号而记录的发送预设值(例如,PH3_PRECURSOR)和系数值(例如,PH3_POSTCURSOR)之中在第五端口和第四通道上以最大次数记录的发送预设值(例如,PH3_PRECURSOR)为“2”且系数值(例如,PH3_POSTCURSOR)为“0”的情况,并且将发送预设值(例如,PH3_PRECURSOR)为“2”且系数值(例如,PH3_POSTCURSOR)为“0”确定为最佳请求信号(或针对PCIe链路训练和均衡的阶段3最佳的值)。
也就是说,数据库检查器320(更具体地,计算器322)检查由主机请求检查器310从主机装置100接收的阶段3的第一发送预设值(Tx预设值)和第一系数值是否分别为“2”和“0”。
如果由主机请求检查器310从主机装置100接收的阶段3的第一发送预设值(Tx预设值)和第一系数值各自为“2”和“0”,则数据库检查器320(更具体地,计算器322)确定它们是针对PCIe链路训练和均衡的阶段3最佳的值,并且可将与第一发送预设值和第一系数值相应的信号EQ_Rsp发送到主机装置100。
可选地,如果由主机请求检查器310从主机装置100接收的阶段3的第一发送预设值(Tx预设值)和第一系数值不是“2”和“0”,则数据库检查器320(更具体地,计算器322)确定它们不是针对PCIe链路训练和均衡的阶段3最佳的值,并且可将在其中第二发送预设值(Tx预设值)和第二系数值各自相应于“2”和“0”的信号EQ_Rsp发送到主机装置100。
图11至图14是用于解释根据实施例的图1的存储系统10的链路管理器215的其他框图。
参照图11至图14,链路管理器215还可包括启动检查器300(例如,逻辑电路)。
启动检查器300还可包括复位单元302(例如,逻辑电路)。
启动检查器300、复位单元302、主机请求检查器310、数据库检查器320和计算器322不限于这些附图,并且可被实现为物理上独立且分离的芯片。此外,启动检查器300、复位单元302、主机请求检查器310、数据库检查器320和计算器322可被实现在同一封装件内,但不限于此。
启动检查器300可在主机请求检查器310从主机装置100接收到在PCIe链路训练和均衡的阶段3的第一发送预设值和第一系数值的第一时间点之前确定启动类型。
这将与图15一起被描述。
图15是用于解释在根据实施例的图1的存储装置200被启动之后通过PCIe(外围组件互连快速)总线接收的信号的示图。
参照图11至图15,在主机请求检查器310在PCIe链路训练和均衡的阶段3从主机装置100接收到第一发送预设值和第一系数值的第一时间点之前启动检查器300被启动之后,启动检查器300可根据由存储装置200从主机装置100接收的启动序列来检查信号。
例如,在存储装置200在第一时间点之前被启动之后,启动检查器300根据由存储装置200从主机装置100接收的启动序列来检查信号。
此时,在第一时间点之前的启动开始之后,确认是否在接收到链路事件的PERST#无效(Deasserted)信号的第二时间点t2之前的限定时间(例如,1秒)内接收到链路事件的PERST#有效(Asserted)信号。这里,PERST#表示PCIe复位信号。
例如,当确认在接收到链路事件的PERST#Deasserted信号的第二时间点t2之前的限定时间(例如,1秒)内的第一时间点t1接收到链路事件的PERST#Asserted信号时,启动检查器300可生成将启动类型确定为热启动(warm boot)的信号(Sig_warm boot)。
如果在第一时间点之前的启动开始之后,确认在接收到链路事件的PERST#Deasserted信号的第二时间点t2之前的限定时间(例如,1秒)内的第一时间点t1没有接收到链路事件的PERST#Asserted信号,则启动检查器300可将启动类型确定为冷启动(coldboot)。
例如,在冷启动的情况下,不存在链路事件的PERST#Asserted信号,并且可仅PERST#Deasserted信号存在。
例如,冷启动可以是在存储装置200被安装在连接到主机装置100的多个插槽之中的第一插槽中之后在被安装在另一个第二插槽中的同时发生的启动类型。
当确定存储装置200的启动类型是冷启动时,复位单元302可对数据库进行复位。例如,数据库的复位可导致数据库的所有条目被删除。
因为存储装置200与主机装置100组装的环境已经改变,所以难以通过数据库确认在PCIe链路训练和均衡的阶段3阶段由存储装置200从主机装置100接收的第一发送预设值和第一系数值是否是最佳值。因此,初始化数据库。
当存储装置200的启动类型被确定为热启动时,图10中描述的链路管理器215的操作继续进行。
图16是用于解释根据实施例的操作存储装置的方法的流程图。
参照图1和图10至图16,主机请求检查器310可在PCIe链路训练和均衡的阶段3,在第一时间点从主机装置100接收阶段3的第一发送预设值(Tx预设值)和第一系数值(S100)。例如,在步骤S100,主机请求检查器310可接收均衡设置请求值(例如,上述链路训练和均衡请求值)(包括第一发送预设值和第一系数值)。
之后,启动检查器300根据在存储装置200在第一时间点之前被启动之后由存储装置200从主机装置100接收的启动序列来检查信号,并且确认是否在接收到链路事件的PERST#Deasserted信号的时间之前的限定时间(例如,1秒)内接收到链路事件的PERST#Asserted信号(S200)。
如果启动检查器300没有检查到PERST#Asserted信号(否),则启动检查器300可将启动类型确定为冷启动,并通过复位单元302对数据库进行复位(S400)。例如,如果在限定时间内没有接收到PERST#Asserted信号,则方法进行到步骤S400。
否则,如果启动检查器300检查到PERST#Asserted信号(是),则数据库检查器320确定第一发送预设值(Tx预设值)和第一系数值是否是针对PCIe链路训练和均衡的阶段3最佳的值(S500)。例如,如果在限定时间内接收到PERST#Asserted信号,则方法进行到步骤S500。
此时,数据库检查器320可参考通过图9描述的数据库,以确定第一发送预设值(Tx预设值)和第一系数值是否是针对PCIe链路训练和均衡的阶段3最佳的值(S600)。
之后,数据库检查器320可通过计算器322确定第一发送预设值和第一系数值是否是针对PCIe链路训练和均衡的阶段3最佳的值(S700)。例如,如果第一发送预设值和第一系数值不是针对PCIe链路训练和均衡的阶段3最佳的值,则可确定最佳的发送预设值和最佳的系数值。
之后,数据库检查器320(更具体地,计算器322)将与针对PCIe链路训练和均衡的阶段3最佳的发送预设值和最佳的系数值(例如,最佳的均衡设置响应值)相应的信号发送到主机装置100(S800)。
图17是用于解释根据实施例的应用了存储装置的系统的框图。
参照图17,系统2000基本上可以是移动系统,诸如,移动电话、智能电话、平板PC(平板个人计算机)、可穿戴装置、医疗保健装置或IOT(物联网)装置。然而,图1的系统2000不必限于移动系统,而是还可以是个人计算机、膝上型计算机、服务器、媒体播放器或汽车装置(诸如,导航)。
参照图17,系统2000可包括主处理器2100、存储器2200a和存储器2200b以及存储装置2300a和存储装置2300b,并且可另外包括图像捕获装置2410、用户输入装置2420、传感器2430、通信装置2440、显示器2450、扬声器2460、供电装置2470和连接接口2480中的一个或多个。
主处理器2100可控制系统2000的整体操作,更具体地,控制构成系统2000的其他组成元件的操作。这样的主处理器2100可被实现为通用处理器、专用处理器、应用处理器等。
主处理器2100可包括一个或多个CPU核2110,并且还可包括用于控制存储器2200a和存储器2200b以及/或者存储装置2300a和存储装置2300b的控制器2120。根据实施例,主处理器2100还可包括加速器2130,其中,加速器2130是用于高速数据计算(诸如,AI(人工智能)数据计算)的专用电路。这样的加速器2130可包括GPU(图形处理单元)、NPU(神经处理单元)和/或DPU(数据处理单元)等,并且可被实现为物理上独立于主处理器2100的其他组成元件的单独芯片。
存储器2200a和存储器2200b可用作系统2000的主存储器单元,并且可包括易失性存储器(诸如,SRAM和/或DRAM),但还可包括非易失性存储器(诸如,闪存、PRAM和/或RRAM)。存储器2200a和存储器2200b也可与主处理器2100被实现在同一封装件内。
存储装置2300a和存储装置2300b可用作无论电力是否被供应都存储数据的非易失性存储装置,并且可比存储器2200a和存储器2200b具有相对更大的存储容量。存储装置2300a和存储装置2300b可包括存储控制器(STRG CTRL)2310a和存储控制器(STRG CTRL)2310b、以及在存储控制器2310a和存储控制器2310b的控制下存储数据的非易失性存储器(NVM)2320a和非易失性存储器(NVM)2320b。非易失性存储器2320a和非易失性存储器2320b可包括2D(2维)结构或3D(3维)V-NAND(垂直NAND)结构的闪存,但还可包括其他类型的非易失性存储器,诸如,PRAM和/或RRAM。
存储装置2300a和存储装置2300b可在与主处理器2100物理分离的状态下被包括在系统2000中,并且可与主处理器2100被实现在同一封装件中。此外,由于存储装置2300a和存储装置2300b具有诸如固态装置或存储卡的形状,因此存储装置2300a和存储装置2300b还可通过下面将描述的接口(诸如,连接接口2480)与系统2000的其他组成元件可拆卸地结合。这样的存储装置2300a和存储装置2300b可以是,但不必限于,符合标准协议的装置(诸如,通用闪存(UFS)、嵌入式多媒体卡(eMMC)或非易失性存储器快速(NVMe))。
存储装置2300a和存储装置2300b可包括上面通过图1至图16描述的链路管理器215。
图像捕获装置2410可捕获静止图像或运动图像,并且可以是相机、摄像机和/或网络摄像头等。
用户输入装置2420可接收从系统2000的用户输入的各种类型的数据,并且可以是触摸板、小键盘、键盘、鼠标和/或麦克风。
传感器2430可检测可从系统2000的外部获取的各种类型的物理量,并将检测到的物理量转换为电信号。这样的传感器2430可以是温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信装置2440可根据各种通信协议向系统2000外部的其他装置发送信号和从系统2000外部的其他装置接收信号。这样的通信装置2440可被实现为包括天线、收发器和/或调制解调器等。
显示器2450和扬声器2460可各自用作向系统2000的用户输出视觉信息和听觉信息的输出装置。
供电装置2470可适当地转换从配备在系统2000中的电池(未示出)和/或外部电源供应的电力,并将电力供应给系统2000的每个组成元件。
连接接口2480可提供系统2000与外部装置之间的连接,其中,外部装置可连接到系统2000以向系统2000发送数据和从系统2000接收数据。连接接口2480可以以各种接口类型(诸如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCIe(PCI快速)、NVMe、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、eMMC、UFS、嵌入式通用闪存(eUFS)和紧凑式闪存(CF)卡接口)被实现。
图18是用于解释应用了根据一些实施例的存储装置的数据中心的框图。
参照图18,数据中心3000是收集各种类型的数据并提供服务的设施,并且也可被称为数据存储中心。数据中心3000可以是用于搜索引擎和数据库操作的系统,并且可以是由公司(诸如,银行)或政府机构使用的计算系统。数据中心3000可包括应用服务器3100_1至应用服务器3100_n以及存储服务器3200_1至存储服务器3200_m。可根据实施例不同地选择应用服务器3100_1至应用服务器3100_n的数量以及存储服务器3200_1至存储服务器3200_m的数量,并且应用服务器3100_1至应用服务器3100_n的数量以及存储服务器3200_1至存储服务器3200_m的数量可彼此不同。
应用服务器3100_1或存储服务器3200_1可包括处理器3110_1和处理器3210_1以及存储器3120_1和存储器3220_1中的至少一个。将以存储服务器3200_1为例进行描述。处理器3210_1可控制存储服务器3200_1的整体操作,并且访问存储器3220_1以执行加载到存储器3220_1中的命令和/或数据。存储器3220_1可以是双倍数据速率同步DRAM(DDRSDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插式存储器模块(DIMM)、傲腾DIMM或非易失性DIMM(NVM DIMM)。根据实施例,可不同地选择包括在存储服务器3200_1中的处理器3210_1的数量和存储器3220_1的数量。在一个实施例中,处理器3210_1和存储器3220_1可提供处理器-存储器对。在一个实施例中,处理器3210_1和存储器3220_1的数量可彼此不同。处理器3210_1可包括单核处理器或多核处理器。存储服务器3200_1的上述解释也可类似地应用于应用服务器3100_1。根据实施例,应用服务器3100_1可不包括存储装置3150_1。存储服务器3200_1可包括至少一个或多个存储装置3250_1。包括在存储服务器3200_1中的存储装置3250_1的数量可根据实施例被不同地选择。
至少一个或多个存储装置3250_1可以是包括上面通过图1至图16描述的链路管理器215的存储装置。
将以存储服务器3200_1为例进行描述。接口3254_1可提供处理器3210_1与控制器(CTRL)3251_1之间的物理连接、以及网络互连(NIC)3240_1与控制器3251_1之间的物理连接。例如,接口3254_1可以以存储装置3250_1与专用电缆直接连接的直接附接存储(DAS)类型被实现。此外,例如,接口3254_1可以以各种接口类型(诸如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCIe(PCI快速)、NVM快速(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、嵌入式通用闪存(eUFS)和/或紧凑式闪存(CF)卡接口)来实现。
存储服务器3200_1还可包括开关3230_1和NIC 3240_1。根据处理器3210_1的控制,开关3230_1可选择性地连接处理器3210_1和存储装置3250_1或者可选择性地连接NIC3240_1和存储装置3250_1。
在一个实施例中,NIC 3240_1可包括网络接口卡、网络适配器等。NIC 3240_1可通过有线接口、无线接口、蓝牙接口、光学接口等连接到网络3300。NIC 3240_1可包括内部存储器、数字信号处理器(DSP)、主机总线接口等,并且可通过主机总线接口连接到处理器3210_1和/或开关3230_1等。主机总线接口还可被实现为上述接口3254_1的示例之一。在一个实施例中,NIC 3240_1还可与处理器3210_1、开关3230_1和存储装置3250_1中的至少一个集成。
在存储服务器3200_1至存储服务器3200_m或应用服务器3100_1至应用服务器3100_n中,处理器可将命令发送到存储装置3150_1至存储装置3150_n和存储装置3250_1至存储装置3250_m或者存储器3120_1至存储器3120_n和存储器3220_1至存储器3220_m以对数据进行编程或读取。此时,数据可以是通过ECC(纠错码)引擎纠正错误的数据。数据是经过数据总线倒置(DBI)或数据掩蔽(DM)处理的数据,并且可包括循环冗余码信息。数据可以是为了安全和隐私而加密的数据。
存储装置3250_1至存储装置3250_m可响应于从处理器接收的读取命令,将控制信号和命令/地址信号发送到NAND闪存装置3252_1至NAND闪存装置3252_m。因此,当从NAND闪存装置3252_1至NAND闪存装置3252_m读取数据时,读取使能(RE)信号作为数据输出控制信号被输入,并且可用于将数据输出到数据(DQ)总线。可使用RE信号来生成数据选通(DQS)信号。根据写入使能(WE)信号的上升沿或下降沿,命令和地址信号可被锁存到页缓冲器。
控制器3251_1通常可控制存储装置3250_1的操作。在一个实施例中,控制器3251_1可包括静态随机存取存储器(SRAM)。控制器3251_1可响应于写入命令而将数据写入NAND闪存装置3252_1中,或者可响应于读取命令而从NAND闪存装置3252_1读取数据。例如,可从存储服务器3200_1中的处理器3210_1、另一存储服务器3200_m中的处理器3210_m或者应用服务器3100_1中的处理器3110_1和应用服务器3100_n中的处理器3110_n提供写入命令和/或读取命令。DRAM 3253_1可临时存储(缓冲)要写入NAND闪存装置3252_1中的数据或从NAND闪存装置3252_1读取的数据。此外,DRAM 3253_1可存储元数据。这里,元数据是用户数据或由控制器3251_1生成以管理NAND闪存装置3252_1的数据。存储装置3250_1可包括用于安全和隐私的安全元件(SE)。
尽管上面已经参考附图描述了本公开的实施例,但本领域普通技术人员将理解的是,本公开不限于此,并且可在不脱离本公开的技术理念或必要特征的情况下以许多不同的形式来实现。因此,应当理解,在此阐述的实施例在所有方面都仅仅是示例,而不是限制性的。
Claims (20)
1.一种存储控制器,包括:
链路管理器,包括:
第一逻辑电路,在外围组件互连快速PCIe链路训练和均衡的阶段3,在第一时间从外部接收第一发送预设值和第一系数值,以及
第二逻辑电路,在第一时间之后,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3是否是最佳的,多个发送预设值和多个系数值被记录在所述数据库中,
其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3是最佳的时,第二逻辑电路将与第一发送预设值和第一系数值相应的信号发送到所述外部,并且
当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3不是最佳的时,第二逻辑电路将与第二发送预设值和第二系数值相应的信号发送到所述外部,其中,第二发送预设值与第一发送预设值不同和/或第二系数值与第一系数值不同,并且第二发送预设值和第二系数值针对所述PCIe链路训练和均衡的阶段3是最佳的。
2.根据权利要求1所述的存储控制器,还包括:
缓冲存储器,
其中,所述数据库被存储在缓冲存储器中。
3.根据权利要求2所述的存储控制器,其中,缓冲存储器是易失性存储器。
4.根据权利要求1所述的存储控制器,
其中,第二逻辑电路还包括计算器,
参考所述数据库,针对第一发送预设值和第一系数值被发送到的第一端口和第一通道,计算器检查针对第一端口和第一通道记录的发送预设值和系数值,并且计算器将针对第一端口和第一通道记录了最大次数的发送预设值和系数值设置为第二发送预设值和第二系数值。
5.根据权利要求1至4中的任一项所述的存储控制器,其中,链路管理器还包括第三逻辑电路,第三逻辑电路在第一时间之前确定启动类型。
6.根据权利要求5所述的存储控制器,
其中,当在第一时间之前启动之后,在PERST#无效Deasserted信号从所述外部被接收到的时间之前的限定时间内PERST#有效Asserted信号被接收到时,第三逻辑电路将启动的启动类型确定为热启动,以及
当在第一时间之前启动之后,在PERST#Deasserted信号被接收到的时间之前的限定时间内PERST#Asserted信号没有从所述外部被接收到时,第三逻辑电路将启动的启动类型确定为冷启动。
7.根据权利要求6所述的存储控制器,其中,当冷启动发生时,第三逻辑电路对所述数据库进行复位。
8.一种存储装置,包括:
存储控制器,
其中,存储控制器包括链路管理器,链路管理器包括:
第一逻辑电路,在外围组件互连快速PCIe链路训练和均衡的阶段3,在第一时间从外部接收第一发送预设值和第一系数值;以及
第二逻辑电路,在第一时间之后,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3是否是最佳的,多个发送预设值和多个系数值被记录在所述数据库中,
其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3是最佳的时,第二逻辑电路将与第一发送预设值和第一系数值相应的信号发送到所述外部,并且
当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3不是最佳的时,第二逻辑电路将与第二发送预设值和第二系数值相应的信号发送到所述外部,其中,第二发送预设值与第一发送预设值不同和/或第二系数值与第一系数值不同,并且第二发送预设值和第二系数值针对所述PCIe链路训练和均衡的阶段3是最佳的。
9.根据权利要求8所述的存储装置,其中,存储控制器还包括缓冲存储器,并且所述数据库被存储在缓冲存储器中。
10.根据权利要求9所述的存储装置,其中,缓冲存储器是易失性存储器。
11.根据权利要求8所述的存储装置,
其中,第二逻辑电路还包括计算器,
参考所述数据库,针对第一发送预设值和第一系数值被发送到的第一端口和第一通道,计算器检查针对第一端口和第一通道记录的发送预设值和系数值,并且计算器将针对第一端口和第一通道记录了最大次数的发送预设值和系数值设置为第二发送预设值和第二系数值。
12.根据权利要求8至11中的任一项所述的存储装置,
其中,链路管理器还包括第三逻辑电路,第三逻辑电路在第一时间之前确定启动类型。
13.根据权利要求12所述的存储装置,
其中,当在第一时间之前启动之后,在PERST#无效Deasserted信号从所述外部被接收到的时间之前的限定时间内PERST#有效Asserted信号被接收到时,第三逻辑电路将启动的启动类型确定为热启动,以及
当在第一时间之前启动之后,在PERST#Deasserted信号被接收到的时间之前的限定时间内PERST#Asserted信号没有从所述外部被接收到时,第三逻辑电路将启动的启动类型确定为冷启动。
14.根据权利要求13所述的存储装置,其中,当冷启动发生时,第三逻辑电路对所述数据库进行复位。
15.根据权利要求8至11中的任一项所述的存储装置,还包括:
非易失性存储器装置,
其中,所述数据库被存储在非易失性存储器装置中。
16.一种存储系统,包括:
主机装置;以及
存储装置,在外围组件互连快速PCIe链路训练和均衡的阶段3,在第一时间从主机装置接收第一发送预设值和第一系数值,
其中,存储装置包括存储控制器,
存储控制器包括链路管理器,链路管理器包括:
第一逻辑电路;以及
第二逻辑电路,在第一时间之后,参考数据库来确定第一发送预设值和第一系数值针对所述PCIe链路训练和均衡的阶段3是否是最佳的,多个发送预设值和多个系数值被记录在所述数据库中,
其中,当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3是最佳的时,第二逻辑电路将与第一发送预设值和第一系数值相应的信号发送到主机装置,以及
当第一发送预设值和第一系数值被确定为针对所述PCIe链路训练和均衡的阶段3不是最佳的时,第二逻辑电路将与第二发送预设值和第二系数值相应的信号发送到主机装置,其中,第二发送预设值与第一发送预设值不同和/或第二系数值与第一系数值不同,并且第二发送预设值和第二系数值针对所述PCIe链路训练和均衡的阶段3是最佳的。
17.根据权利要求16所述的存储系统,
其中,第二逻辑电路还包括计算器,
参考所述数据库,针对第一发送预设值和第一系数值被发送到的第一端口和第一通道,计算器检查针对第一端口和第一通道记录的发送预设值和系数值,并且计算器将针对第一端口和第一通道记录了最大次数的发送预设值和系数值设置为第二发送预设值和第二系数值。
18.根据权利要求16或17所述的存储系统,其中,链路管理器还包括第三逻辑电路,第三逻辑电路在第一时间之前确定启动类型。
19.根据权利要求18所述的存储系统,
其中,当在第一时间之前启动之后,在PERST#无效Deasserted信号从主机装置被接收到的时间之前的限定时间内PERST#有效Asserted信号被接收到时,第三逻辑电路将启动的启动类型确定为热启动,以及
当在第一时间之前启动之后,在PERST#Deasserted信号被接收到的时间之前的限定时间内PERST#Asserted信号没有从主机装置被接收到时,第三逻辑电路将启动的启动类型确定为冷启动。
20.根据权利要求19所述的存储系统,其中,当冷启动发生时,第三逻辑电路对所述数据库进行复位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0087929 | 2022-07-18 | ||
KR1020220087929A KR20240010790A (ko) | 2022-07-18 | 2022-07-18 | 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117420946A true CN117420946A (zh) | 2024-01-19 |
Family
ID=86692918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310770042.2A Pending CN117420946A (zh) | 2022-07-18 | 2023-06-27 | 存储控制器、存储装置和存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240020262A1 (zh) |
EP (1) | EP4310684A1 (zh) |
KR (1) | KR20240010790A (zh) |
CN (1) | CN117420946A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847891B2 (en) * | 2011-08-24 | 2017-12-19 | Nvidia Corporation | System and method for detecting reuse of an existing known high-speed serial interconnect link |
US9424226B1 (en) * | 2012-10-25 | 2016-08-23 | Qlogic, Corporation | Method and system for signal equalization in communication between computing devices |
JP2021197583A (ja) * | 2020-06-10 | 2021-12-27 | キオクシア株式会社 | 電子機器および方法 |
-
2022
- 2022-07-18 KR KR1020220087929A patent/KR20240010790A/ko unknown
-
2023
- 2023-04-21 US US18/304,839 patent/US20240020262A1/en active Pending
- 2023-06-06 EP EP23177556.0A patent/EP4310684A1/en active Pending
- 2023-06-27 CN CN202310770042.2A patent/CN117420946A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4310684A1 (en) | 2024-01-24 |
US20240020262A1 (en) | 2024-01-18 |
KR20240010790A (ko) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI460593B (zh) | 具有無線功能之固態碟 | |
US20220222011A1 (en) | Processor using host memory buffer and storage system including the processor | |
JP7247405B2 (ja) | ストレージコントローラ、計算ストレージ装置及び計算ストレージ装置の動作方法 | |
US20220147254A1 (en) | Ufs device, method of operating the ufs device, and system including the ufs device | |
US20240184480A1 (en) | Storage device for high speed link startup and storage system including the same | |
KR20150072469A (ko) | 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치 | |
US20240037027A1 (en) | Method and device for storing data | |
US20230393959A1 (en) | Out-of-band management method for storage apparatus, baseboard management controller and storage apparatus | |
EP4310684A1 (en) | Storage controller and storage device comprising the same | |
CN116414734A (zh) | 存储系统和存储设备及其操作方法 | |
EP4148572A1 (en) | Computational storage device and storage system including the computational storage device | |
US12074983B2 (en) | Trusted computing device and operating method thereof | |
EP4198746A2 (en) | Multi-core processor and storage device | |
US11914879B2 (en) | Storage controller and storage system comprising the same | |
US20230153441A1 (en) | Storage device and operating method of storage device | |
US20230044214A1 (en) | Storage device, host device and data transfer method thereof | |
US12039053B2 (en) | Secure processor, operating method thereof, and storage device including same | |
US20240311018A1 (en) | Storage device, operation method of storage device, and operation method of host device | |
US12045472B2 (en) | Storage device supporting multi-tenant operation and methods of operating same | |
EP4386556A1 (en) | Operation method of memory controller configured to control memory device | |
KR20230067436A (ko) | 트러스티드 컴퓨팅 장치 및 이의 동작 방법 | |
US20230393749A1 (en) | Method and device of storage data | |
KR20230067439A (ko) | 보안 프로세서 및 이의 동작 방법과 이를 포함하는 스토리지 장치 | |
KR20230068945A (ko) | 동형 암호 연산을 지원하는 장치 및 그것의 동작 방법 | |
KR20230032429A (ko) | 메모리 장치 및 메모리 장치의 데이터 암복호화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |