KR102331926B1 - 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 - Google Patents
저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 Download PDFInfo
- Publication number
- KR102331926B1 KR102331926B1 KR1020170154289A KR20170154289A KR102331926B1 KR 102331926 B1 KR102331926 B1 KR 102331926B1 KR 1020170154289 A KR1020170154289 A KR 1020170154289A KR 20170154289 A KR20170154289 A KR 20170154289A KR 102331926 B1 KR102331926 B1 KR 102331926B1
- Authority
- KR
- South Korea
- Prior art keywords
- host
- storage device
- debugging data
- interface
- pcie
- 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
- 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
-
- 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/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/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
- G06F13/423—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 with synchronous protocol
-
- 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
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
Description
도 2는 본 발명의 실시 예에 따른 호스트 시스템의 계층을 예시적으로 보여주는 블록도이다.
도 3은 도 1의 호스트 시스템의 디버깅 동작의 실시 예를 설명하기 위한 블록도이다.
도 4는 도 3의 호스트 시스템의 예시적인 동작 방법에 대한 순서도이다.
도 5는 도 3의 호스트 시스템의 디버깅 동작에 사용되는 프로토콜의 예시를 설명하기 위한 도면이다.
도 6은 도 3의 저장 장치 제어기의 동작 방법을 보여주는 순서도이다.
도 7은 본 발명에 따른 호스트 시스템의 디버깅 동작에 대한 다른 실시 예를 설명하기 위한 블록도이다.
도 8은 도 7의 호스트 시스템의 예시적인 동작 방법에 대한 순서도이다.
도 9는 도 7의 호스트 시스템의 디버깅 동작에 사용되는 프로토콜의 예시를 설명하기 위한 도면이다.
도 10은 도 7의 저장 장치 제어기의 동작 방법을 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 제2 장치 드라이버의 동작을 보여주는 순서도이다.
도 12는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 호스트 시스템을 예시적으로 보여주는 블록도이다.
110, 410: 호스트 인터페이스 120, 420: 인터페이스 제어부
130, 430: 메모리 장치 111, 411: PCIe 인터페이스
112, 412: NVMe 인터페이스 210, 610: 디바이스 인터페이스
220, 620: 제1 장치 드라이버 230, 630: 제2 장치 드라이버
Claims (20)
- 저장 장치를 제어하는 저장 장치 제어기의 동작 방법에 있어서,
NVMe(nonvolatile memory express) 프로토콜을 이용하여, 상기 저장 장치 및 호스트 장치 사이의 PCIe(peripheral component interconnect express) 인터페이스를 통해 상기 저장 장치에 액세스하는 상기 호스트 장치와 통신하는 단계;
상기 저장 장치 및 상기 호스트 장치 사이의 상기 NVMe 프로토콜을 이용하여, 상기 통신하는 단계의 실패에 기초하여 호스트 장치로부터 PCIe 인터페이스를 통해 디버깅 데이터 요청 커맨드를 수신하고, 상기 디버깅 데이터 요청은 PCIe 프로토콜에 기초하는 단계; 및
상기 디버깅 데이터 요청 커맨드를 수신하는 것에 응답하여, 상기 NVMe 프로토콜을 이용한 상기 저장 장치 및 상기 호스트 장치 사이의 상기 통신의 상기 실패를 디버깅하기 위한 디버깅 데이터를 상기 PCIe 프로토콜을 이용하여 상기 PCIe 인터페이스를 통해 상기 호스트 장치로 전달하는 단계를 포함하는 동작 방법. - 제 1 항에 있어서,
상기 디버깅 데이터를 상기 PCIe 인터페이스의 레지스터에 저장하는 단계를 더 포함하되,
상기 레지스터는 상기 PCIe 인터페이스의 PCIe 확장된 설정 레지스터 공간(PCIe extended configuration register space)에 포함되는 동작 방법. - 제 2 항에 있어서,
상기 디버깅 데이터는 덤프 데이터(dump data) 및 로그 데이터(log data) 중 적어도 하나를 포함하는 동작 방법. - 제 2 항에 있어서,
상기 디버깅 데이터 요청 커맨드는 상기 레지스터로 저장되는 동작 방법. - 제 2 항에 있어서,
상기 디버깅 데이터 요청 커맨드의 수신을 알리는 단계; 및
상기 호스트 장치로부터 읽기 요청 커맨드를 수신하는 단계를 더 포함하되,
상기 디버깅 데이터는 상기 읽기 요청 커맨드의 수신에 응답하여 상기 레지스터로 저장되는 동작 방법. - 제 5 항에 있어서,
상기 읽기 요청 커맨드는 상기 레지스터로 저장되는 동작 방법. - 제 5 항에 있어서,
상기 디버깅 데이터의 상기 저장 이후, 상기 레지스터에 상기 디버깅 데이터가 쓰기 완료되었는지 나타내는 정보를 저장하는 단계를 더 포함하는 동작 방법. - 제 1 항에 있어서,
상기 디버깅 데이터를 상기 호스트 장치에 포함된 호스트 버퍼 메모리에 저장하는 단계를 더 포함하는 동작 방법. - 제 8 항에 있어서,
상기 디버깅 데이터 요청 커맨드는 상기 PCIe 인터페이스에 포함된 레지스터로 저장되는 동작 방법. - 제 8 항에 있어서,
상기 디버깅 데이터 요청 커맨드는 상기 호스트 버퍼 메모리의 주소 정보를 포함하는 동작 방법. - 제 10 항에 있어서,
상기 디버깅 데이터는 상기 호스트 버퍼 메모리의 영역들 중 상기 주소 정보에 대응하는 영역으로 저장되는 동작 방법. - 제 8 항에 있어서,
상기 디버깅 데이터 요청 커맨드의 수신을 상기 호스트 장치로 알리는 단계; 및
상기 호스트 장치로부터 읽기 요청 커맨드를 수신하는 단계를 더 포함하되,
상기 디버깅 데이터는 상기 읽기 요청 커맨드에 응답하여 저장되는 동작 방법. - 제 12 항에 있어서,
상기 읽기 요청 커맨드는 상기 PCIe 인터페이스에 포함된 레지스터로 저장되는 동작 방법. - 제 12 항에 있어서,
상기 읽기 요청 커맨드는 상기 디버깅 데이터와 관련된 버스트 읽기(burst read)를 요청하는 커맨드인 동작 방법. - 제 14 항에 있어서,
상기 호스트 버퍼 메모리에 상기 디버깅 데이터를 버스트 쓰기(burst write)하는 동작 방법. - 제 12 항에 있어서,
상기 디버깅 데이터의 저장 이후, 상기 호스트 버퍼 메모리에 상기 디버깅 데이터가 쓰기 완료되었는지 나타내는 정보를 저장하는 단계를 더 포함하는 동작 방법. - 호스트 장치 및 저장 장치를 포함하는 호스트 시스템의 동작 방법에 있어서,
NVMe(nonvolatile memory express) 프로토콜을 이용하여, 상기 저장 장치 및 상기 호스트 장치 사이의 PCIe(peripheral component interconnect express) 인터페이스를 통해 상기 저장 장치에 액세스하는 상기 호스트 장치와 통신하는 단계;
상기 NVMe 프로토콜을 이용하여, 상기 PCIe 인터페이스를 통해 상기 저장 장치 및 상기 호스트 장치 사이의 상기 통신의 실패를 검출하는 단계;
상기 호스트 장치가 상기 NVMe 프로토콜을 이용한 상기 저장 장치 및 상기 호스트 장치 사이의 상기 통신의 상기 실패의 검출에 응답하여, PCIe 프로토콜을 이용하여 PCIe 인터페이스를 통해 상기 저장 장치로 디버깅 데이터 요청 커맨드를 전달하는 단계;
상기 저장 장치가 상기 PCIe 프로토콜을 이용하여, 상기 PCIe 인터페이스를 통해 상치 호스트 장치로 디버깅 데이터를 전달하는 단계; 및
상기 호스트 장치에 의해, 상기 디버깅 데이터의 수신에 응답하여, 상기 NVMe 프로토콜을 이용한 상기 저장 장치 및 상기 호스트 장치 사이의 상기 통신의 상기 실패를 디버깅하는 단계를 포함하는 동작 방법. - 제 17 항에 대하여,
상기 호스트 장치 및 상기 저장 장치는, 상기 NVMe 프로토콜에 기초하여 동작하는 제 1 드라이버 및 상기 PCIe 프로토콜에 기초하여 동작하는 제 2 드라이버를 포함하는 동작 방법. - 제 17 항에 대하여,
상기 호스트 장치로 상기 디버깅 데이터를 전달하는 단계는, 상기 저장 장치가 상기 PCIe 인터페이스에 포함된 레지스터에 상기 디버깅 데이터를 저장하는 단계를 포함하는 동작 방법. - 제 17 항에 대하여,
상기 호스트 장치로 상기 디버깅 데이터를 전달하는 단계는, 상기 저장 장치가 상기 호스트 장치에 포함된 호스트 버퍼 메모리에 상기 디버깅 데이터를 저장하는 단계를 포함하는 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170154289A KR102331926B1 (ko) | 2017-11-17 | 2017-11-17 | 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 |
US16/034,887 US10585822B2 (en) | 2017-11-17 | 2018-07-13 | Operation method of host system including storage device and operation method of storage device controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170154289A KR102331926B1 (ko) | 2017-11-17 | 2017-11-17 | 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190056891A KR20190056891A (ko) | 2019-05-27 |
KR102331926B1 true KR102331926B1 (ko) | 2021-11-29 |
Family
ID=66533033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170154289A Active KR102331926B1 (ko) | 2017-11-17 | 2017-11-17 | 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10585822B2 (ko) |
KR (1) | KR102331926B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200081628A1 (en) * | 2018-09-12 | 2020-03-12 | Dell Products, Lp | Apparatus and Method for Monitoring Insertion and Removal of Devices |
US11971789B2 (en) | 2020-06-16 | 2024-04-30 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for crash recovery in storage devices |
US11755459B2 (en) | 2021-03-23 | 2023-09-12 | Western Digital Technologies, Inc. | Management of a debug buffer based on priority information |
CN115312110A (zh) * | 2021-05-08 | 2022-11-08 | 瑞昱半导体股份有限公司 | 芯片验证系统及其验证方法 |
US11822490B2 (en) * | 2021-10-14 | 2023-11-21 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for accessing a device operating system over an interconnect |
KR20230094308A (ko) | 2021-12-21 | 2023-06-28 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 동작 방법 |
US12332729B2 (en) | 2022-07-28 | 2025-06-17 | SanDisk Technologies, Inc. | Content-rich error notification |
US12045494B2 (en) * | 2022-09-29 | 2024-07-23 | SanDisk Technologies, Inc. | AER and AEN for overlapping cross feature |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090216964A1 (en) | 2008-02-27 | 2009-08-27 | Michael Palladino | Virtual memory interface |
US20160062652A1 (en) | 2014-08-29 | 2016-03-03 | Dell Products, Lp | System and Method for Providing Personality Switching in a Solid State Drive Device |
US20160378579A1 (en) | 2015-06-23 | 2016-12-29 | Microsoft Technology Licensing, Llc | Atypical Reboot Data Collection And Analysis |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4244049A (en) * | 1979-02-02 | 1981-01-06 | Burroughs Corporation | Method and apparatus for enhancing I/O transfers in a named data processing system |
US5978902A (en) * | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
KR100866951B1 (ko) * | 2005-10-28 | 2008-11-05 | 삼성전자주식회사 | 메모리에 저장된 데이터를 보호할 수 있는 프로그래머블프로세서 및 방법 |
US9032164B2 (en) | 2006-02-17 | 2015-05-12 | Emulex Corporation | Apparatus for performing storage virtualization |
US7603500B2 (en) | 2007-08-10 | 2009-10-13 | Dell Products L.P. | System and method for allowing coexistence of multiple PCI managers in a PCI express system |
US8812443B2 (en) * | 2007-10-01 | 2014-08-19 | International Business Machines Corporation | Failure data collection system apparatus and method |
JP5299559B2 (ja) * | 2010-03-19 | 2013-09-25 | 富士通株式会社 | 情報処理装置及び情報処理装置のデバイス情報収集処理方法 |
US20130031419A1 (en) * | 2011-07-28 | 2013-01-31 | International Business Machines Corporation | Collecting Debug Data in a Secure Chip Implementation |
US9342453B2 (en) | 2011-09-30 | 2016-05-17 | Intel Corporation | Memory channel that supports near memory and far memory access |
US9043649B2 (en) * | 2012-06-18 | 2015-05-26 | Intel Corporation | Method and apparatus for output of high-bandwidth debug data/traces in ICS and SoCs using embedded high speed debug |
US8706938B2 (en) * | 2012-06-20 | 2014-04-22 | International Business Machines Corporation | Bandwidth limiting on generated PCIE packets from debug source |
US9043500B2 (en) | 2012-06-30 | 2015-05-26 | Intel Corporation | System and method for generating a virtual PCI-type configuration space for a device |
US9594718B2 (en) | 2013-01-24 | 2017-03-14 | Qualcomm Innovation Center, Inc. | Hardware accelerated communications over a chip-to-chip interface |
US9298658B2 (en) | 2013-02-26 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter |
KR101698707B1 (ko) | 2013-03-14 | 2017-01-20 | 인텔 코포레이션 | 가상 pci 장치 및 가상 mmio 장치를 형성하기 위한 일반적인 방법 |
US9910689B2 (en) | 2013-11-26 | 2018-03-06 | Dynavisor, Inc. | Dynamic single root I/O virtualization (SR-IOV) processes system calls request to devices attached to host |
US9384093B1 (en) * | 2014-05-28 | 2016-07-05 | Microsemi Storage Solutions (U.S.), Inc. | Raid enabled NVME device |
US10078113B1 (en) * | 2015-06-11 | 2018-09-18 | Xilinx, Inc. | Methods and circuits for debugging data bus communications |
US9672091B2 (en) * | 2015-11-10 | 2017-06-06 | Samsung Electronics Co., Ltd. | Storage device and debugging method thereof |
US10055377B2 (en) * | 2016-02-24 | 2018-08-21 | Western Digital Technologies, Inc. | Using a proprietary framework on a standards-based embedded device |
-
2017
- 2017-11-17 KR KR1020170154289A patent/KR102331926B1/ko active Active
-
2018
- 2018-07-13 US US16/034,887 patent/US10585822B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090216964A1 (en) | 2008-02-27 | 2009-08-27 | Michael Palladino | Virtual memory interface |
US20160062652A1 (en) | 2014-08-29 | 2016-03-03 | Dell Products, Lp | System and Method for Providing Personality Switching in a Solid State Drive Device |
US20160378579A1 (en) | 2015-06-23 | 2016-12-29 | Microsoft Technology Licensing, Llc | Atypical Reboot Data Collection And Analysis |
Also Published As
Publication number | Publication date |
---|---|
KR20190056891A (ko) | 2019-05-27 |
US20190155765A1 (en) | 2019-05-23 |
US10585822B2 (en) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102331926B1 (ko) | 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법 | |
TWI709857B (zh) | 記憶體系統及控制方法 | |
US10133668B2 (en) | Technologies for providing cross data storage device communications | |
US9740439B2 (en) | Solid-state storage management | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US9244865B2 (en) | Obtaining diagnostic information through host interfaces | |
WO2017084565A1 (zh) | 存储数据访问方法及相关的控制器、设备、主机和系统 | |
KR20200056538A (ko) | 호스트 메모리 버퍼를 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 | |
CN109901791B (zh) | 信息处理装置以及信息处理装置的执行方法 | |
KR102558947B1 (ko) | 데이터 저장 장치 | |
KR20190066466A (ko) | 기입 레이턴시를 줄일 수 있는 저장 장치의 동작 방법 | |
CN112214158B (zh) | 主机输出输入命令的执行装置及方法及计算机可读取存储介质 | |
US20170242820A1 (en) | Using a proprietary framework on a standards-based embedded device | |
KR102219759B1 (ko) | 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법 | |
US12340120B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
KR20220080915A (ko) | 스토리지 장치와 호스트 장치의 구동 방법 및 스토리지 장치 | |
US10664418B2 (en) | Peripheral device controlling device, operation method thereof, and operation method of peripheral device controlling device driver | |
KR20170110810A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device | |
KR20200001208A (ko) | 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 | |
KR20120021490A (ko) | 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템 | |
CN113885783B (zh) | 存储器系统及其操作方法 | |
US10564847B1 (en) | Data movement bulk copy operation | |
KR20160111222A (ko) | 반도체 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 그것을 포함하는 컴퓨팅 시스템 | |
KR20150116627A (ko) | 컨트롤러 및 그것을 포함하는 데이터 저장 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20171117 |
|
PG1501 | Laying open of application | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20200730 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20171117 Comment text: Patent Application |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20210823 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20211123 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20211124 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20241024 Start annual number: 4 End annual number: 4 |