CN110689915B - 经由主机/串行接口的远程ssd调试及其执行方法 - Google Patents
经由主机/串行接口的远程ssd调试及其执行方法 Download PDFInfo
- Publication number
- CN110689915B CN110689915B CN201910606118.1A CN201910606118A CN110689915B CN 110689915 B CN110689915 B CN 110689915B CN 201910606118 A CN201910606118 A CN 201910606118A CN 110689915 B CN110689915 B CN 110689915B
- Authority
- CN
- China
- Prior art keywords
- host
- memory
- memory system
- debug
- uart
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/48—Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种存储器系统及其操作方法,该存储器系统及其操作方法能够利用供应商唯一(VU)命令来调试存储器系统,而无需使用与存储器系统上的调试端口的物理电缆连接。在一个方面,通用异步收发器(UART)协议基于VU主机协议进行串行化。在另一方面,可基于UART或串行高级技术附件(SATA)来执行联合测试行动组(JTAG)。
Description
相关申请的交叉引用
本申请要求于2018年7月6日提交的申请号为62/694,688的美国临时申请的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种经由主机/串行接口来远程调试固态驱动器(SSD)的配置及执行这种方案的方法。
背景技术
计算机环境范例已经转变为可在任何时间和任何地点使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的数据存储装置由于不具有移动部件而提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可包括闪速存储器组件和控制器,控制器包括将闪速存储器组件桥接到SSD输入/输出(I/O)接口的电子器件。SSD控制器可包括执行诸如固件的功能组件的嵌入式处理器。SSD功能组件通常是装置特定的,并且在大多数情况下可被更新。
两种主要类型的闪速存储器以NAND和NOR逻辑门命名。单独的闪速存储器单元展现出与其相应的门的内部特性类似的内部特性。NAND型闪速存储器可以以块(或页面)进行写入和读取,这些块(或页面)通常比整个存储空间小很多。NOR型闪存允许将单个机器字(字节)独立地写入擦除位置或进行读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、SSD和类似产品中操作以用于数据的一般存储和传输。
SSD通常包括以下主要组件:动态随机存取存储器(DRAM)、片上系统(SOC)以及NAND。为了调试SSD组件,在设置有SSD组件的印制电路板(PCB)上焊接特定的调试端口,以用于通用异步收发器(UART)或联合测试行动组(JTAG)测试或验证。在UART壳(shell)环境中,通过使用物理电缆连接来执行UART命令。而且,目前,使用基于UART或主机协议的JTAG来查看可操作SSD的当前内部状态,需要与SSD进行物理连接。然而,在一些环境中,这种连接可能是不可能或不可行的。
在这种背景下,提出了本发明的实施例。
发明内容
本发明的一个方面能够利用VU(供应商唯一(vendor unique))命令来替换与SSD的调试端口的UART物理电缆连接,这使得可基于主机协议使用UART,其中主机协议例如串行高级技术附件(SATA)、高速非易失性存储器(NVMe)等。
本发明的另一方面能够利用VU命令或UART来替换与SSD的调试端口的JTAG物理电缆连接。
因此,本发明的一个方面包括一种调试存储器系统的方法,存储器系统包括存储器装置。该方法包括将调试逻辑存储在存储器装置中;经由主机协议将供应商唯一(VU)命令从主机传输到存储器系统,而无需使用与存储器系统上的调试端口的物理电缆连接;并且响应于VU命令来调试存储器系统中的至少一个组件。
本发明的另一方面涉及一种存储器系统,该存储器系统包括多个固件内核;与固件内核中的每一个通信的UART串行硬件元件;存储UART日志的存储器装置,UART日志包含调试信息;在至少一个固件内核中实现并被配置成与UART日志通信的UART嗅探器。VU命令基于VU主机协议从主机传输到存储器系统来用于调试存储器系统,而无需使用与存储器系统上的调试端口的物理电缆连接。
在本发明的另一方面中,提供了一种调试存储器系统的方法,该存储器系统包括存储器装置。该方法包括:在主机客户端与存储器装置的固件内核中的至少一个服务器模块之间进行通信;在主机转换器和固件内核中的至少一个服务器模块之间进行通信;在存储器装置接口和主机接口之间进行通信;并且根据通信操作来调试存储器系统中的至少一个组件。
从以下描述中,本发明另外的方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的示图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出SSD的PCB上的调试端口的示意图。
图5是示出根据本发明的实施例的将UART日志存储在例如NAND的存储器装置中的示意图。
图6是示出根据本发明的实施例的基于供应商唯一(VU)主机协议的UART协议串行化的示意图。
图7是示出根据本发明的实施例的远程串行调试操作的流程的示意图。
图8是示出根据本发明的实施例的经由虚拟调试模块的远程串行调试(RSD)实施方案的示意图。
图9是示出根据本发明的实施例的经由GNU调试器(GDB)远程串行协议的RSD实施方案的示意图。
图10是示出根据本发明的实施例的在无需使用与存储器系统上的调试端口的物理电缆连接的情况下调试存储器系统的进程的流程图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以不同形式实施,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使本公开是彻底的且完整的,并且将本发明的范围全面地传达给本领域的技术人员。此外,本文中对“一个实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以多种方式实施,包括进程;设备;系统;物质的组成;呈现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上的指令和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可能采取的任何其它形式可被称为技术。通常,所公开进程的步骤的顺序可在本发明的范围内改变。除非另有说明,否则被描述为适于执行任务的诸如处理器或者存储器的组件可被实施为暂时配置为在给定时间执行任务的一般组件或被制造为执行任务的特定组件。如本文所使用的,术语“处理器”等指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供了本发明的实施例的详细描述以及示出本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包括处于权利要求范围内的许多替换、修改和等同方案。为了提供对本发明的全面理解,在下面的描述中阐述了许多具体细节。为了示例的目的提供这些细节,并且可在没有一些或所有这些具体细节的情况下,根据权利要求实施本发明。为了清楚,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可代表多于一个的这种装置。半导体存储器装置200优选的是闪速存储器装置,特别是NAND型的闪速存储器装置。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号CTRL可包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。
存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可包括用于在其中存储数据的存储装置。当存储器系统10被用在SSD中时,联接到存储器系统10的主机(未示出)的操作速度可显著提升。
存储器控制器100和半导体存储器装置200可被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被如此集成以配置:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器系统10可被提供为诸如以下的电子装置中的各种组件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的各种电子装置中的一种或计算系统的各种组件中的一种。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可描述图1所示的存储器系统10。
参照图2,存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器系统10可响应于来自主机装置的请求而操作,并且特别地,存储待由主机装置访问的数据。
主机装置可利用各种类型电子装置中的任意一种来实施。在一些实施例中,主机装置可包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器以及数字视频播放器。在一些实施例中,主机装置可包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可存储待由主机装置访问的数据。
存储器装置200可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可控制数据在存储器装置200中的存储。例如,控制器100可响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供给主机装置并可将从主机装置提供的数据存储到存储器装置200中。
控制器100可包括通过总线160联接的存储装置110、可被实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器实施。如上所述,存储装置110可将由主机装置使用的数据存储在存储器装置200中,以用于读取操作和写入操作。为了存储数据,存储装置110可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。存储装置110可包括哈希表115。
控制组件120可控制存储器系统10的一般操作,以及响应于来自主机装置的写入请求或读取请求而控制存储器装置200的写入操作或读取操作。控制组件120可驱动被称为闪存转换层(FTL)125的固件来控制存储器系统10的一般操作。例如,FTL 125可执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集(GC)和/或坏块处理的操作。FTL 125可作为固件被实施在控制器100中,且更具体地,被实施在控制组件120中。L2P映射可被称为逻辑块寻址。
在读取操作期间,ECC组件130可检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件130可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC组件130可包括适于错误校正操作的任意和所有电路、系统或装置。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、高速非易失性存储器(NVMe)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
存储器接口150可提供在控制器100和存储器装置200之间的接口连接,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可在控制组件(或CPU)120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可在CPU 120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器(阵列)250、列解码器260和输入/输出电路270。存储器单元阵列210可包括可存储数据的多个存储块211。可将存储块的子集分组到各个超级块(SB)以用于某些操作。下面更详细地描述SB及其在本发明的实施例环境下的用途。
电压生成电路230、行解码器240、页面缓冲器(阵列)250、列解码器260和输入/输出电路270可形成存储器单元阵列210的外围电路。外围电路可执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可控制外围电路。
电压生成电路230可生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可生成各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可与电压生成电路230和多个存储块211电通信。行解码器240可响应于由控制电路220生成的行地址RADD而在多个存储块211之中选择至少一个存储块,并将从电压生成电路230提供的操作电压传输到所选择的存储块。
页面缓冲器(阵列)250可通过位线BL与存储器单元阵列210电通信(如图3所示)。响应于由控制电路220生成的页面缓冲器控制信号,页面缓冲器(阵列)250可利用正电压对位线BL进行预充电,在编程操作中向所选择的存储块传输数据以及在读取操作中从所选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可向页面缓冲器(阵列)250传输数据以及从页面缓冲器(阵列)250接收数据,并且还可与输入/输出电路270交换数据。
输入/输出电路270可通过输入/输出电路270向控制电路220传输从外部装置(例如,存储器控制器100)接收的命令和地址,并且将数据从外部装置传输到列解码器260,或将数据从列解码器260输出到外部装置。
控制电路220可响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210中的存储块211中的任意一个。
参照图3,示例性存储块211可包括联接到行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可并行地布置,其中多个字线处于DSL与SSL之间。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示实施例中,每一个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可被形成为存储多位数据信息的多层单元(MLC)。
每一个单元串中的SST的源极可联接到公共源极线CSL,并且每一个DST的漏极可联接到相应的位线。单元串中SST的栅极可联接到SSL,并且单元串中的DST的栅极可联接到DSL。跨越单元串的存储器单元的栅极可联接到各自的字线。也就是说,存储器单元MC0的栅极联接到相应的字线WL0,存储器单元MC1的栅极联接到相应的字线WL1等。联接到特定字线的存储器单元组可被称为物理页面。因此,存储块211中的物理页面的数量可对应于字线的数量。
如前所述,页面缓冲器(阵列)250可以是包括联接到位线BL0至BLm-1的多个页面缓冲器251的页面缓冲器阵列的形式。页面缓冲器251可响应于页面缓冲器控制信号进行操作。例如,在读取或验证操作期间,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据,或者感测位线的电压或电流。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中混合闪速存储器中组合了两种或更多种类型的存储器单元,1-NAND闪速存储器中控制器被嵌入在存储器芯片内部。
如前所述,存储器控制器100和半导体存储器装置200可集成在SSD中。参照图4,示例性SSD 42可设置在PCB 41上。SSD 42的主要组件包括DRAM 43、SoC 44和NAND 45。调试端口46可焊接在PCB 41上。电缆可附接到调试端口46,以获得对SSD 42的组件的访问,以便对数据结构和变量进行查看、测试和验证等。然而,在一些环境中,这种物理连接要么不可能,要么不可行。
本发明的实施例提供了经由主机/串行接口来远程调试SSD的技术。在UART壳环境下的实施例中,利用VU命令来替换与调试端口46的UART物理电缆连接。在基于UART或主机协议的JTAG环境下的另一实施例中,利用VU命令或UART来替换与调试端口46的JTAG物理连接。
图5是示出在UART壳环境下的根据本发明的实施例的将UART日志存储在例如NAND的存储器装置中的示意图。如图5所示,SSD 52包括SoC 54和NAND 55。SSD 52也可包括其它组件,例如DRAM。未示出这样的其它组件以更清楚地呈现实施例的特征。
SoC 54可包括N个固件内核,N个固件内核包括内核#1固件56-1至内核#N固件56-N。每个固件内核56-1、……、56-N与也可与设置在SoC 54上的UART串行硬件元件57接口连接。每个固件内核56-1、……、56-N可包括可以固件实施的UART嗅探器58。UART嗅探器58访问存储在NAND 55中的UART日志59。
可以是PC的主机61包括终端客户端62。主机61与SSD 52通信。这种通信可基于串行连接并经由主机接口进行。主机61可包括调试组件,用于调试SSD 52的组件。
利用这种布置,UART协议可基于主机61与UART串行硬件元件57之间的VU主机协议进行串行化。可在没有实际UART物理连接的情况下完成UART命令执行。
图6示出根据本发明的实施例的基于VU主机协议的UART协议串行化。图6中的也在图5中示出的组件利用相同的附图标记表示。如图6中进一步所示,在终端客户端62内,将壳命令63结合到第一VU封装64中,并且将获取日志65结合到第二VU封装66中。安装有壳命令63的第一VU封装64基于主机协议向每个固件内核56-1、……、56-N传送VU命令。安装有获取日志65的第二VU封装66用于从NAND 55中的UART日志59请求调试信息。基于主机接口完成调试信息的请求和后续检索。如图6所示,虽然SSD 52可包括调试端口,但根据本发明的实施例,这种端口不用于调试。
本发明的另一方面使得能够基于UART/SATA执行JTAG测试。利用这种布置,寄存器/存储器视图、步进、设置断点以及运行/停止是可用的。
为此,图7示出根据本发明的实施例的远程串行调试操作的流程。参照图7,将SSD52示出为具有固件内核:分别包括RSD GDB服务器模块71-1至71-N的内核#1固件56-1至内核#N固件56-N。每个这种模块包括可在固件(FW)中的GDB服务器程序。这些RSD GDB服务器模块71-1至71-N的代码能够远程调试其它程序。模块71-1至71-N中的每一个与UART或HOST接口72通信,UART或HOST接口72又与主机侧的UART或HOST接口73通信。
主机侧可包括调试工作包74,该调试工作包74是包括调试器的一套软件开发工具。可在主机PC等上实施的调试工作包74可包括GBD客户端75和TCP/IP到UART或HOST接口转换器76,后者与GBD客户端75通信并且与UART或HOST接口73通信。
根据本发明的实施例,在图8中示出调试工作包74的调试器的一种用途,这是经由虚拟调试模块81的RSD实施方案。虚拟调试模块81可包括虚拟网络接口控制器(NIC)82和HOST/UART驱动器83。(调试工作包74的)调试器84可经由TCP/IP链路与虚拟调试模块81通信。虚拟调试模块81的驱动器83可与在SSD 52的固件56中实现的调试桩85通信。此处,固件56可以是图5至图7所示的固件内核56-1至56-N的集体表示,并且调试桩85自身可以是固件的一部分或一段。调试桩85可被配置成实现调试器功能,例如调试寄存器、断点的调整或设置以及存储器读取。
在图9中示出调试工作包74的调试器的另一用途,这是经由调试器91的调试桩85的实施方案。调试器91可包括与GDB远程串行协议组件93通信的编译器92。组件91、92和93可在主机61中实现。调试器91经由GDB远程串行协议组件93与SSD 52,特别是SSD 52中的调试桩85通信,其中该GDB远程串行协议组件93经由HOST/UART与调试桩85通信。
图10是描述根据本发明的实施例的调试存储器装置或调试存储器装置的一个或多个组件的进程中的步骤的流程图。流程图1000所示的步骤是示例性的。本领域的技术人员将理解的是,可执行另外的和/或可选的步骤,或者可改变步骤的顺序,以在不脱离本文公开的本发明理念的情况下实现本发明的各个方面。
在步骤1001中,可将调试逻辑存储在例如NAND 55的存储器装置200中。调试逻辑可包括UART日志59,或者被嵌入在UART日志59中。在步骤1002中,VU命令基于主机协议从主机61传输到例如SSD 52的存储器系统10,而无需使用与SSD 52上的调试端口的物理电缆连接。在步骤1003中,响应于VU命令来调试SSD 52的一个或多个组件。
如上所述,本发明的实施例提供了本发明的实施例的一些技术,这些技术非常有助于在难以或不可能进行调试的情况下,例如没有JTAG插座、无法打开SSD外壳和/或附接调试电缆的空间受限的情况下调试装置。在某些情况下,本发明的实施方案还可减少调试成本。可扩展各个实施例以允许通过仅对主机进行远程访问或者甚至通过HTTP协议来调试SSD,而无需完全控制整个系统。
虽然为了清楚和理解的目的已经详细说明和描述了前述实施例,但是本发明不限于所提供的细节。正如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的可选方式。所公开的实施例是说明性的,而非限制性的。
Claims (13)
1.一种调试存储器系统的方法,所述存储器系统包括存储器装置,所述方法包括:
将调试逻辑存储在所述存储器装置中;
经由主机协议将供应商唯一命令从主机传输到所述存储器系统,而无需使用与所述存储器系统上的调试端口的物理电缆连接;并且
响应于所述供应商唯一命令,调试所述存储器系统中的至少一个组件,
其中所述调试逻辑包括通用异步收发器日志,即UART日志。
2.根据权利要求1所述的方法,其中所述传输包括将所述供应商唯一命令从驻留在所述主机中的供应商唯一封装传输到所述存储器系统中的内核固件。
3.根据权利要求1所述的方法,其中所述调试包括经由内核固件从所述调试逻辑请求调试信息。
4.根据权利要求3所述的方法,其中所述调试进一步包括:响应于指令,直接从所述调试逻辑检索调试信息,并且将所检索的调试信息传输到所述主机。
5.根据权利要求3所述的方法,其中从驻留在所述主机中的供应商唯一封装执行请求调试信息。
6.根据权利要求1所述的方法,其中所述存储器系统包括固态驱动器,即SSD,并且所述存储器装置包括在所述SSD中实现的NAND存储器。
7.一种存储器系统,包括:
多个固件内核;
通用异步收发器串行硬件元件,即UART串行硬件元件,与所述固件内核中的每一个通信;
存储器装置,存储UART日志,所述UART日志包含调试信息;
UART嗅探器,在所述固件内核中的至少一个中实现并且与所述UART日志通信,
其中供应商唯一命令基于供应商唯一主机协议从主机传输到所述存储器系统来用于调试所述存储器系统,而无需使用与所述存储器系统上的调试端口的物理电缆连接。
8.根据权利要求7所述的存储器系统,其中UART协议基于所述供应商唯一主机协议进行串行化。
9.一种调试存储器系统的方法,所述存储器系统包括存储器装置,所述方法包括:
在主机客户端与所述存储器装置的固件内核中的至少一个服务器模块之间进行通信;
在主机转换器与所述固件内核中的至少一个服务器模块之间进行通信;
在存储器装置接口与主机接口之间进行通信;并且
根据通信操作,利用通用异步收发器日志,即UART日志,来调试所述存储器系统中的至少一个组件。
10.根据权利要求9所述的方法,其中使用主机调试器、主机虚拟调试模块和驻留在所述固件内核中的调试桩来执行调试。
11.根据权利要求10所述的方法,其中所述主机虚拟调试模块包括虚拟网络接口控制器和主机或通用异步收发器驱动器,即主机或UART驱动器。
12.根据权利要求9所述的方法,其中使用主机调试器、主机GDB远程串行协议和驻留在所述固件内核中的调试桩来执行调试。
13.根据权利要求9所述的方法,其中所述主机转换器包括TCP/IP到通用异步收发器转换器,即TCP/IP到UART转换器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862694688P | 2018-07-06 | 2018-07-06 | |
US62/694,688 | 2018-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689915A CN110689915A (zh) | 2020-01-14 |
CN110689915B true CN110689915B (zh) | 2023-06-27 |
Family
ID=69102625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910606118.1A Active CN110689915B (zh) | 2018-07-06 | 2019-07-05 | 经由主机/串行接口的远程ssd调试及其执行方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11532372B2 (zh) |
CN (1) | CN110689915B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290351A (zh) * | 2020-01-21 | 2020-06-16 | 深圳市雷赛软件技术有限公司 | 一种驱动器管理方法、系统、计算机设备及存储介质 |
KR20220014996A (ko) | 2020-07-30 | 2022-02-08 | 삼성전자주식회사 | 반도체 메모리 장치 |
US11513980B2 (en) * | 2021-01-21 | 2022-11-29 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device with aid of universal asynchronous receiver-transmitter connection |
CN113138918B (zh) * | 2021-04-16 | 2023-12-01 | Oppo广东移动通信有限公司 | 应用于具有多系统的终端的调试方法、终端和存储介质 |
US11841398B2 (en) | 2021-06-28 | 2023-12-12 | Silicon Motion, Inc. | Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device |
TWI794996B (zh) * | 2021-06-28 | 2023-03-01 | 慧榮科技股份有限公司 | 為固態硬碟裝置除錯的裝置及系統 |
US11933847B2 (en) * | 2021-06-28 | 2024-03-19 | Silicon Motion, Inc. | Apparatus and system for debugging solid-state disk (SSD) device |
CN113342590B (zh) * | 2021-08-06 | 2021-10-29 | 苏州浪潮智能科技有限公司 | NVMe设备调试功能实现方法、装置、设备及存储介质 |
TW202324096A (zh) * | 2021-11-12 | 2023-06-16 | 南韓商三星電子股份有限公司 | 儲存裝置 |
CN116185921B (zh) * | 2023-04-28 | 2023-07-21 | 湖北芯擎科技有限公司 | 针对异构多核多域的日志输出方法、系统、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658600B1 (en) * | 2000-04-24 | 2003-12-02 | Microsoft Corporation | Target control abstraction for debugging embedded systems |
CN106970864A (zh) * | 2016-01-13 | 2017-07-21 | 三星电子株式会社 | 片上系统、移动终端和用于操作片上系统的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151017B2 (en) * | 2010-08-23 | 2012-04-03 | Smartech World Wide Limited | Multiplexing application and debug channels on a single USB connection |
US9158661B2 (en) * | 2012-02-15 | 2015-10-13 | Apple Inc. | Enhanced debugging for embedded devices |
US10176078B1 (en) * | 2015-08-28 | 2019-01-08 | Cadence Design Systems, Inc. | Debugging process |
US9672091B2 (en) | 2015-11-10 | 2017-06-06 | Samsung Electronics Co., Ltd. | Storage device and debugging method thereof |
US10120740B2 (en) * | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US11016833B2 (en) * | 2017-07-01 | 2021-05-25 | Intel Corporation | Remote debug for scaled computing environments |
-
2019
- 2019-07-05 CN CN201910606118.1A patent/CN110689915B/zh active Active
- 2019-07-05 US US16/503,914 patent/US11532372B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658600B1 (en) * | 2000-04-24 | 2003-12-02 | Microsoft Corporation | Target control abstraction for debugging embedded systems |
CN106970864A (zh) * | 2016-01-13 | 2017-07-21 | 三星电子株式会社 | 片上系统、移动终端和用于操作片上系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200013476A1 (en) | 2020-01-09 |
CN110689915A (zh) | 2020-01-14 |
US11532372B2 (en) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689915B (zh) | 经由主机/串行接口的远程ssd调试及其执行方法 | |
CN109710451B (zh) | 基于nand的存储装置的固件事件跟踪及其执行方法和指令集 | |
CN109671465B (zh) | 具有自适应读取阈值方案的存储器系统及其操作方法 | |
KR102564774B1 (ko) | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 | |
CN110321069B (zh) | 存储器系统及其操作方法 | |
KR20180090124A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20180026106A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111435290A (zh) | 控制器、控制器的操作方法以及存储器系统 | |
CN110931075B (zh) | 可重新配置的模拟系统和测试存储装置的固件的方法 | |
US9946644B2 (en) | Memory system and operating method thereof | |
CN111177041B (zh) | 支持新能力的可配置集成电路 | |
US10921988B2 (en) | System and method for discovering parallelism of memory devices | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
US11967391B2 (en) | System and method for testing multicore SSD firmware based on preconditions generation | |
CN110989919B (zh) | 用于存储器系统的日志记录机制 | |
CN111128289B (zh) | 扫描链技术以及利用扫描链结构的方法 | |
US11204839B2 (en) | Memory system with low-latency read recovery and method of operating the memory system | |
US10490293B2 (en) | Non-volatile memory device, method for operating the same and data storage device including the same | |
CN115114193A (zh) | 存储器系统、存储器系统的控制方法及主机装置 | |
US11646091B2 (en) | System for outputting test data from multiple cores and method thereof | |
US10970086B1 (en) | Efficient use of RAM in resource-constrained embedded systems | |
US10922222B2 (en) | Data processing system and operating method for generating physical address update history | |
US20190065289A1 (en) | System for slowdown status notification and operating method thereof |
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 |