WO2021200926A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2021200926A1
WO2021200926A1 PCT/JP2021/013501 JP2021013501W WO2021200926A1 WO 2021200926 A1 WO2021200926 A1 WO 2021200926A1 JP 2021013501 W JP2021013501 W JP 2021013501W WO 2021200926 A1 WO2021200926 A1 WO 2021200926A1
Authority
WO
WIPO (PCT)
Prior art keywords
interface
storage system
host device
volatile memory
data
Prior art date
Application number
PCT/JP2021/013501
Other languages
English (en)
French (fr)
Inventor
加藤 勇雄
前田 卓治
小野 正
Original Assignee
パナソニックIpマネジメント株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to JP2022512281A priority Critical patent/JPWO2021200926A1/ja
Priority to CN202180016352.4A priority patent/CN115151895A/zh
Priority to EP21781641.2A priority patent/EP4130990A4/en
Publication of WO2021200926A1 publication Critical patent/WO2021200926A1/ja
Priority to US17/897,714 priority patent/US20220413709A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Definitions

  • This disclosure relates to a storage system and its host device that can be connected to each other.
  • the SD card which is a type of storage system, is a card that supports a single-ended parallel transmission system interface, and PCI Express (Peripheral Component Interconnect Express) (registration) that realizes high transmission speed by using a differential serial transmission system.
  • PCIe interface Peripheral Component Interconnect Express
  • the differential serial transmission method that realizes high-speed transmission takes a long time to start the interface after the power is turned on, and the transition to a state where data can be transferred compared to the conventional single-ended parallel transmission method interface. There is a problem that it is slow.
  • the data and the clock for punching the data are supplied from the host device, so that the storage system on the receiving side immediately receives the data and the clock. Data can be played back (data punching).
  • the clock is superimposed on the data and transmitted.
  • phase-locked loop In order to adjust the phase of the internal clock, a phase-locked loop (PLL) is generally used, and a considerable amount of time is required until the phase adjustment is completed (PLL locks).
  • a 100 MHz fixed reference clock (REFCLK +, REFCLK-) is transmitted from the host side (Root Complex side) to the device side (Endpoint side), and this reference clock is transmitted in single-ended parallel.
  • the purpose is to match the operating frequencies on the host side and the device side).
  • This disclosure has been made in view of the above problems, and is a storage system and a host capable of reading a boot loader, an OS, an application program, etc. for booting necessary for system booting of a host device from the storage system in a shorter time. To provide a device.
  • the storage system in the present disclosure includes a non-volatile memory, a controller that controls writing / reading of data to the non-volatile memory, a first interface, and a second interface, and includes a first interface and a second interface. It is a storage system connected to the host device in, and when the host device is started, the boot loader read from the non-volatile memory is transferred to the host device via the second interface, and the initialization of the first interface is performed. It is executed in parallel, and after the host device is started, the write data / read data to the non-volatile memory is transferred.
  • the storage system in the present disclosure includes two interfaces, a single-ended parallel transmission interface with a short interface startup time and a high-speed differential serial transmission interface with a high data transfer speed after the interface is activated.
  • the boot loader, OS, application program, etc. for booting required for system booting can be read from the storage system in a shorter time.
  • the figure which shows an example of the configuration of the storage system and the host apparatus which concerns on embodiment of this disclosure Comparison diagram showing an example of the configuration of a conventional storage system
  • the figure which shows an example of the configuration of the conventional storage system and the host device The figure which shows an example of the boot operation which concerns on embodiment of this disclosure.
  • FIG. 2 is a comparative diagram showing an example of the configuration of a conventional storage system.
  • FIG. 2 is a block diagram illustrating the configurations of the storage system 300 and the host device 350.
  • the storage system 300 is an example of an SSD (Solid State Drive) equipped with a PCIe interface, which is widely used at present.
  • SSD Solid State Drive
  • the storage system 300 includes a non-volatile memory 312, a controller 311 that controls writing / reading of data to the non-volatile memory, a non-volatile memory interface (NAND interface) 313 that connects the two, and a PCIe interface 314.
  • a non-volatile memory 312 a controller 311 that controls writing / reading of data to the non-volatile memory
  • a non-volatile memory interface (NAND interface) 313 that connects the two
  • PCIe interface 314 PCIe interface
  • the host device 350 includes a host SoC (System On a Chip) 360, a main memory (main memory) 370, a memory interface 363 for connecting the two, a host SoC built-in ROM 364, and an eMMC (embedded Multi Media Card) 330. Is connected to the storage system 300 by the eMMC interface 314.
  • a host SoC System On a Chip
  • main memory main memory
  • eMMC embedded Multi Media Card
  • the eMMC (embedded Multi Media Card) 330 includes a non-volatile memory 332, an eMMC controller 331 that controls writing / reading of data to the non-volatile memory, a non-volatile memory interface (NAND interface) 333 that connects the two, and a non-volatile memory interface (NAND interface) 333. It has an eMMC interface 334.
  • the main memory (main memory) 370 may be mixed (built-in) in the host SoC360.
  • the ROM 364 with a built-in host SoC may be externally attached to the host SoC 360.
  • the non-volatile memory 312 of the storage system 300 is a NAND flash memory
  • the controller 311 is a PCIe SSD controller
  • the interface 314 is a PCIe interface
  • the controller 311 and the non-volatile memory 312 are an open NAND flash interface. It is connected by (ONFI) or the like.
  • the conventional storage system 300 and the host device 350 read the boot loader from the non-volatile memory 312 via the PCIe interface 314 and transfer the boot loader to the main memory 370 of the host device, the problem is that the boot time becomes long. Therefore, it is common to separately provide an eMMC 330 equipped with a single-ended parallel transmission type eMMC interface 334 as a boot storage, which takes a short time until commands and data can be transferred.
  • FIG. 1 is a diagram showing an example of a configuration of a storage system and a host device according to an embodiment of the present disclosure.
  • the storage system 100 includes a non-volatile memory 112, a controller 111 that controls writing / reading of data to the non-volatile memory, a non-volatile memory interface (NAND interface) 113 that connects the two, a first interface 114, and a first interface. It has two interfaces 115.
  • NAND interface non-volatile memory interface
  • the host device 150 includes a host SoC (System On a Chip) 160, a main memory (main memory) 170, a memory interface 163 for connecting the two, and a ROM 164 with a built-in host SoC.
  • SoC System On a Chip
  • main memory main memory
  • memory interface 163 for connecting the two
  • ROM ROM
  • the first interface 114 and the second interface 115 are connected to the storage system 100.
  • the main memory 170 may be mixed (built-in) in the host SoC160.
  • the host SoC built-in ROM 164 may be externally attached to the host SoC 160.
  • the non-volatile memory 112 of the storage system 100 is composed of a NAND flash memory.
  • the controller 111 is composed of an SD-Express controller is shown.
  • the first interface 114 is configured by a PCIe interface of a high-speed differential serial transmission system.
  • the second interface 115 is composed of a single-ended parallel transmission type SD interface.
  • the controller 111 and the non-volatile memory 112 are connected by an open NAND flash interface (ONFI) or the like will be shown.
  • ONFI open NAND flash interface
  • the first interface 114 is a PCIe interface that enables high transmission speed by using a differential serial transmission method. Therefore, it takes time to start the interface of the first interface 114 after the power is turned on. For this reason, it is widely known that the first interface 114 has a slower transition to a data transferable state than the second interface 115 (SD interface) that employs the conventional single-ended parallel transmission method.
  • the data and the clock for punching the data are supplied from the host device, so that the storage system on the receiving side immediately receives the data and the clock. Data can be played back (data punching).
  • the clock is superimposed on the data and transmitted.
  • phase-locked loop PLL: Phase Locked Loop
  • PLL locks PLL locks
  • FIG. 7 is a diagram showing an example of a boot operation according to the embodiment of the present disclosure.
  • FIG. 7 is used to show the difference in startup time between the PCIe interface of the differential serial transmission method and the SD interface of the single-ended parallel transmission method.
  • the power supply voltage 1000 indicates the power supply voltage supplied to the storage system 100 and the host device 150.
  • the timing 1010 is the timing (time) when the voltage value of the power supply 1000 reaches the voltage required for the circuit operation of the storage system 100 and the host device 150, and the SD interface 115 is thereafter without any time delay.
  • the command and data can be transferred.
  • the timing 1014 indicates the timing (time) when the initialization of the PCIe interface 114 is completed and the command or data can be transferred.
  • the PCIe interface initialization time includes the time required for the PLL to lock, the time required for byte synchronization or symbol synchronization, and the time required for interface configuration as described above. ing.
  • the PCIe interface 114 of the differential serial transmission system has a much longer time to transition to the state in which commands and data can be transferred than the SD interface 115 of the single-ended parallel transmission system. Therefore, if the boot loader, the OS, and the application program for booting are read from the storage system connected by the PCIe interface when the host device 150 is booted, the booting of the system is delayed.
  • the storage system 100 and the host device 150 include the PCIe interface 114 and the SD interface 115, which has a short time until commands and data can be transferred. It was configured to be prepared.
  • the host device 150 reads the boot loader from the non-volatile memory 112 via the SD interface 115 and transfers the boot loader to the main memory 170 of the host device, and in parallel, the PCIe interface. It becomes possible to execute the initialization process of 114.
  • the OS and the OS and the data can be transferred via the PCIe interface 114, which has a faster interface speed (faster data transfer speed) than the SD interface 115.
  • the application program By reading the application program from the non-volatile memory 112 and transferring it to the main memory 170 of the host device, it is possible to realize high-speed startup of the system as a whole.
  • FIG. 6 is a diagram showing an example of the configuration of a conventional storage system and a host device.
  • FIG. 6 is a detailed block diagram illustrating the configuration of the storage system 900 and the host device 950, which is an example of the conventional system.
  • the storage system 900 is an example of an SD Expression card conforming to the SD Specializations Part 1 Physical Layer Specialization Version 7.0 or later standard by SDA (SD Association).
  • the storage system 900 includes a non-volatile memory 940, a controller 910 that controls writing / reading of data to the non-volatile memory, a non-volatile memory interface (NAND interface) 943 that connects the two, and a first interface (PCIe interface). It has a dedicated signal line group 934, a second interface (SD interface) dedicated signal line group 935, and a first interface and a second interface shared signal line group 936.
  • NAND interface non-volatile memory interface
  • PCIe interface first interface
  • the controller 910 includes a device-side transmission / reception circuit 912 of the first interface (926 to 933), a device-side transmission / reception circuit 811 of the second interface (920 to 925), and a CPU 913 that controls the overall operation of the controller.
  • NVMe control circuit 914 that performs write / read control to the non-volatile memory 940 via the first interface (926 to 933), and write / read to the non-volatile memory 940 via the second interface (920 to 925).
  • NVMe Non-Volatile Memory Express
  • PCI Express PCI Express interface
  • FIGS. 3 and 4 show the terminal arrangement and terminal table of the SD Expression card conforming to the SD Specializations Part 1 Physical Layer Specialization Version 7.0 or later standard by SDA (SD Association).
  • SD interface terminals are arranged in R1 (row 1) of FIG. 3, and PCIe interface terminals are arranged in R2 (row 2).
  • FIG. 5 is a diagram showing an example of the configuration of the storage system and the host device according to the embodiment of the present disclosure.
  • FIG. 5 is a block diagram illustrating the configurations of the storage system 100 and the host device 150 according to the present embodiment in more detail.
  • the host device 150 includes a host SoC (System On a Chip) 160, a main memory (main memory) 880, a memory interface 881 for connecting the two, and a ROM 866 with a built-in host SoC.
  • the first interface 114 and the second interface 115 are connected to the storage system 100.
  • the host SoC 160 includes a host-side transmission / reception circuit 862 of the first interface 114, a host-side transmission / reception circuit 861 of the second interface 115, a CPU 865 that controls the operation of the entire host SoC, and a program for starting the host SoC. It has a built-in ROM 866 for storing and.
  • the main memory (main memory) 880 may be mixed (built-in) in the host SoC160.
  • the ROM 866 with a built-in host SoC may be externally attached to the host SoC 160.
  • the storage system 100 includes a non-volatile memory 112, a controller 111 that controls writing / reading of data to the non-volatile memory, a non-volatile memory interface (NAND interface) 113 that connects the two, and a first interface (PCIe interface). It has 114 and a second interface (SD interface) 115.
  • NAND interface non-volatile memory interface
  • PCIe interface first interface
  • SD interface second interface
  • controller 111 passes through the device-side transmission / reception circuit 812 of the first interface 114, the device-side transmission / reception circuit 811 of the second interface 115, the CPU 813 that controls the overall operation of the controller, and the first interface 114.
  • NVMe control circuit 814 that controls writing / reading to the non-volatile memory 112
  • buffer control circuit 815 that controls writing / reading to the non-volatile memory 112 via the second interface 115, and writing / writing to the non-volatile memory 112.
  • a volatile memory 816 that temporarily stores read data
  • a NAND control circuit 817 that is connected to the non-volatile memory 112 to write / read to the non-volatile memory 112, and code for write / read data to the non-volatile memory. It has an dark decoding circuit 818 that performs dark decoding of data when conversion / decoding is required.
  • NVMe Non-Volatile Memory Express
  • PCI Express PCI Express interface
  • ON / OFF of the switch 834 is switched by the logic level (“H” or “L”) of the control signal (select signal) 835.
  • FIGS. 3 and 4 the terminal arrangement and terminal table of the SD Expression card conforming to the SD Specializations Part 1 Physical Layer Specialization Version 7.0 or later standard by SDA (SD Association) are shown in FIGS. 3 and 4.
  • SD interface terminals are arranged in R1 (row 1) of FIG.
  • a PCIe interface terminal is arranged in R2 (row 2).
  • R2 row 2
  • some of the terminals of the conventional SD interface in R1 (row 1) are shared as the terminals of the PCIe interface. It is a specification to do.
  • control signal (select signal) 835 that controls ON / OFF of the switch 834
  • the control signal (select signal) 835 is connected to the pin (terminal) of the controller 111, and the pin (the pin (terminal) of the controller 111 is connected.
  • the terminal By connecting the terminal) to an external switch, it is possible to input an "H” or "L” level signal with the external switch.
  • "H" or "L” level signals can be input.
  • control signal (select signal) 835 is connected to the general-purpose input / output (GPIO: General-purpose input / output) terminal of the CPU 813 of the controller 111, and the level is "H” or "L” depending on the firmware of the CPU 813. Signal can be input.
  • GPIO General-purpose input / output
  • FIG. 9 is a diagram showing an operation sequence at startup of the host device 150 and the storage system 100.
  • the built-in ROM 1220 corresponds to the built-in ROM 164 of the host SoC160.
  • the SoC startup program is stored in the built-in ROM 1220.
  • the main memory 1230 corresponds to the main memory 170 of the host SoC160.
  • the boot loader, OS, application program, etc. are transferred and stored in the main memory 1230 at startup, and a part of the area is used as a work memory.
  • the SD interface 1240 corresponds to the SD interface (second interface) 114 that connects the host device 150 and the storage system.
  • the PCIe interface 1250 corresponds to the PCIe interface (first interface) 114 that connects the host device 150 and the storage system.
  • the storage 1260 corresponds to the non-volatile memory 112 of the storage system 100.
  • a logical memory map is also described for each of the above components as needed.
  • the boot loader checksum (512 bytes) stored in the non-volatile memory of the storage system is transferred to the main memory via the SD interfaces 1240 and 115.
  • the boot loader stored in the non-volatile memory of the storage system is transferred to the main memory via the SD interfaces 1240 and 115.
  • Boot operation 1204 Calculate the checksum value from the boot loader data transferred to the main memory, and compare it with the boot loader checksum value transferred from the non-volatile memory of the storage system to the main memory. Confirm the match and proceed to the next step.
  • the boot loader executes setting processing (terminal setting, register setting) for accessing the SD interfaces 1240 and 115. (1208) (9) Instruct the memory initialization process via the SD interface. (1209) As described above, the processes up to this point are executed by the boot loader program via the SD interfaces 1240 and 115.
  • the partition in which the application program is stored is selected and instructed via the PCIe interface 1250.
  • (1210) (11)
  • the application program stored in the non-volatile memory of the storage system is transferred to the main memory via the PCIe interfaces 1250 and 114.
  • (1211) (12)
  • (12) Branch to the entry point (starting address of the application program) of the application program on the main memory, and execute the application program.
  • (1212) The operation of the host device 150 and the storage system 100 at startup will be described on the time axis with reference to FIG. 7.
  • the timing 1011 is the timing at which the CMD line 820 of the SD interface 115 is set to “L” and the boot operation is started.
  • Timing 1012 is the timing at which the boot loader transfer from the storage system 100 to the host device 150 is completed, the CMD line 820 of the SD interface 115 is set to "H", and the boot operation is terminated.
  • Timing 1013 is a timing at which memory initialization is completed and reading / writing to the non-volatile memory 112 of the storage system 100 becomes possible.
  • (A) shows the operation at the time of startup in the storage system 100 and the host device 150 according to the present embodiment.
  • (B) shows the operation at the time of starting when the storage system 100 and the host device 150 are started, the boot loader is transferred, the memory is initialized, and the OS and the application program are transferred only through the PCIe interface 114.
  • the PCIe interface 114 At startup of the storage system 100 and the host device 150 according to the present embodiment, as shown in FIG. 7A, two interfaces, the PCIe interface 114 and the SD interface 115, are operated in parallel.
  • the boot loader can be read from the non-volatile memory 112 of the storage system 100 via the SD interface 115 that starts up quickly, and the OS and application programs stored in the non-volatile memory 112 of the storage system 100 can be read at the initial memory.
  • the PCIe interface 114 which has a slow start-up, is initialized in parallel.
  • the OS having a larger data capacity than the boot loader and the application program should be read through the PCIe interface 114, which has a faster transfer speed than the SD interface 115. As a whole, it enables a tans clause of the time until the system starts up.
  • FIG. 8 is a timing chart of the boot operation operation of eMMC.
  • SDCLK821 is the SDCLK (clock) of the SD interface 115.
  • CMD820 is a CMD (command) of SD interface 115.
  • DAT822, 823, 824, and 825 are DAT0 (data 0), DAT1 (data 1), DAT2 (data), and DAT3 (data 3) of the SD interface 115, respectively.
  • the SD interface 115 recognizes that it is a transition instruction to the boot operation mode, and uses the packets indicated by 1120, 1121, and 1122 to boot knowledge. Is transmitted to the host device 150.
  • 1120 is a start bit
  • 1121 is a bit pattern of "010" indicating boot knowledge
  • 1122 is an end bit.
  • the SD interface After transmitting the boot knowledge to the host device 150, the SD interface transmits the boot loader checksum to the host device 150 using a packet composed of 1130, 1131, and 1132.
  • 1130 is a start bit
  • 1131 is a 512-byte boot loader checksum and its CRC
  • 1132 is an end bit.
  • the SD interface transmits the boot loader to the host device 150 for the required number of packets using a plurality of packets composed of 1160, 1161, and 1162.
  • 1160 is a start bit
  • 1161 is a 512-byte boot loader and its CRC
  • 1162 is an end bit
  • 1160, 1161, and 1162 indicate the nth packet of the packet that transfers the boot loader. , Illustrated as the final packet.
  • the storage system 100 and the host device 150 have two interfaces, a single-ended parallel transmission system interface having a short interface startup time and a high-speed differential serial transmission system interface having a high data transfer speed after the interface startup. Therefore, it is possible to read the boot loader, OS, application program, etc. for booting required for system booting of the host device from the storage system in a shorter time.
  • the storage system 100 and the host device 150 according to the present embodiment can realize high-speed booting without separately providing boot storage, which makes it possible to reduce the number of parts and the cost of the system.
  • the switch so that the signal line of the first interface 114 and the signal line of the second interface 115 can be used independently without being shared. Since the configuration is provided with 834, by turning on the switch 834 and connecting a part of the signal line of the PCIe interface (826 to 829) and a part of the signal line of the SD interface (822 to 825), the SD It can operate as an SD Expression card that conforms to the Standards Part 1 Physical Layer Specialization Version 7.0 or later.
  • the SD interface can be used completely independently.
  • the host device 150 reads the boot loader from the non-volatile memory 112 via the SD interface 115, transfers the boot loader to the main memory 880 of the host device, and in parallel, the PCIe interface. It becomes possible to execute the initialization process of 114.
  • the OS and the OS and the data can be transferred via the PCIe interface 114, which has a faster interface speed (faster data transfer speed) than the SD interface 115.
  • the application program By reading the application program from the non-volatile memory 112 and transferring it to the main memory 170 of the host device, it is possible to realize high-speed startup of the system as a whole.
  • the storage system 100 has an eMMC boot operation function built into the SD interface function.
  • SD interface protocol was formulated based on the MMC (MultiMediaCard) interface, and then SD and MMC (MultiMediaCard) including eMMC (embedded MultiMediaCard) have added their own functions.
  • the boot operation function is one of them, and it is formulated as a specification of eMMC (embedded Multi MediaCard).
  • the SD controller on the host side generally supports SD, MMC including eMMC, and SDIO.
  • the SD interface 115 of the storage system 100 supports the boot operation of eMMC, but if it is connected to the SD controller on the general host side, the SD interface function and the boot operation function can be obtained. And can be dealt with.
  • the present disclosure is suitable for use in host devices and storage systems that require a reduction in startup time.
  • Non-volatile memory (NAND flash memory) 113 Non-volatile memory interface (NAND interface) 114 PCI Express Interface 115 SD Interface 116 Storage System I / O Port (for PCI Express Interface) 117 Storage system input / output port (for SD interface) 150 Host device 160 Host SoC (System on a Chip) 163 Memory Interface 164 Host Soc Built-in ROM 170 Main memory 120 Ethernet / PCIe interface converter 121 Ethernet interface 122 Ethernet input / output port (for Ethernet interface) 123 Memory interface 124 Ethernet / PCIe interface converter built-in ROM 180 Main memory 300 Storage system 311 PCIe SSD controller 312 Non-volatile memory (NAND flash memory) 313 Non-volatile memory interface (NAND interface) 314 PCI Express Interface 330 eMMC (embedded MultiMediaCard) 331 eMMC controller 332 Non-volatile memory (NAND flash memory) 333 Non-vola

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

ストレージシステムは、不揮発性メモリと、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラと、第1のインターフェースと、第2のインターフェースとを備え、第1のインターフェース及び第2のインターフェースでホスト装置と接続されるストレージシステムであって、ホスト装置の起動時に、不揮発性メモリから読みだしたブートローダを第2のインターフェースを介してホスト装置に転送するとともに、第1のインターフェースの初期化を並行して実行し、ホスト装置の起動後は、不揮発性メモリに対する書込みデータ/読み出しデータを第1のインターフェース及び/又は第2のインターフェースを介して転送する。

Description

ストレージシステム
 本開示は、相互に接続が可能なストレージシステム及びそのホスト装置に関する。
 近年、フラッシュメモリ等の大容量の不揮発性記憶素子を備え、高速でのデータ処理が可能な、例えばカード形状のSDカード(Secure Digital card)や、SSD(Solid State Drive)といったストレージシステムが市場に普及している。このようなストレージシステムは、パーソナルコンピュータ、スマートフォン、デジタルカメラ、オーディオプレーヤ及び、カーナビゲーションをはじめとする車載システム等のホスト装置に装着されて使用される(特許文献1参照)。
 ストレージシステムの一種であるSDカードには、シングルエンド・パラレル伝送方式のインターフェースをサポートするカード、差動シリアル伝送方式を用いることで伝送速度高速化を実現したPCI Express(Peripheral Component Interconnect Express)(登録商標)インターフェース(略称:PCIeインターフェース)をサポートするカード等があり、ストレージシステムの大容量化が進むのにあわせ、インターフェースの高速化が進んでいる。
特開2016-167167号公報
 しかしながら、高速伝送を実現する差動シリアル伝送方式は、一方で、電源投入後、インターフェースの起動に時間がかかり、従来のシングルエンド・パラレル伝送方式のインターフェースに比べ、データ転送可能な状態への遷移が遅いという課題がある。
 従来のシングルエンド・パラレル伝送方式のインターフェースでは、ホスト装置から、データと、データを打ち抜くためのクロックとが供給されるため、受け側のストレージシステムでは、データとクロックとが入力された時点から直ちにデータの再生(データの打ち抜き)が可能となる。
 一方、差動シリアル伝送方式では、データにクロックが重畳されて伝送される。
 このため、受信側では、データ信号のエッジ(信号遷移)を検出し、内部のクロックの位相を調整して、データ信号の各ビットを正しいタイミングで判定する(正しいタイミングで打ち抜く)必要がある。
 この内部のクロックの位相調整を行うため、一般的に位相同期回路(PLL:Phase Locked Loop)が用いられ、位相調整が完了する(PLLがロックする)までに相応の時間を必要とする。(なお、PCIeインターフェースでは、ホスト側(Root Complex側)から、デバイス側(Endpoint側)に100MHz固定のリファレンスクロック(REFCLK+, REFCLK-)が送信されるが、このリファレンスクロックは、シングルエンド・パラレル伝送方式のインターフェースで用いられるデータ打ち抜き用(データストローブ用)のクロックとは異なり、ホスト側とデバイス側の動作周波数を合わせることを目的にしている)。
 こうしたPLLによる位相調整に加え、従来のシングルエンド・パラレル伝送方式のインターフェースでは、例えば8bitパラレル伝送の場合、1クロック毎にバイト(Byte)単位でデータが送信されるため、受信側でバイトの切れ目を検出する必要はないが、差動シリアル伝送方式では、受信側でバイト(Byte)もしくはシンボルの切れ目を正しく検出し、バイト(Byte)単位のデータとして再生する(切り出す)必要があり、こうしたバイト(Byte)同期もしくはシンボル同期にも相応の時間を必要とする。
 一方で、ホスト装置側の事情としては、電源投入後、ストレージシステムから起動用のブートローダや、OS(Operating system)、アプリケーションプログラム等を読み出して、システム稼働状態に遷移するまでの時間の短縮が求められている。例えばカーナビゲーションの機能と、自動車後部に取り付けられるカメラからの映像を映し出すバックモニタの機能とを併せ持つ車載システムが広く普及しているが、こうした車載システムでは、エンジン始動後、ユーザーが直ちにシフトレバーをリバースレンジ(車両後退走行用レンジ)に切り替えた場合に、遅れることなく後方の映像がモニタに映し出されることが、事故防止のため求められている。
 また、デジタルスチルカメラや、デジタルムービーでは、ユーザーが撮影チャンスを逃すことのないよう、電源投入後、可能な限り短い時間でシステムが稼働状態(撮影可能な状態)に遷移することが求められる。
 こうしたホスト装置に求められる短時間でのシステム稼働状態への遷移(高速起動)を実現するためには、起動用のブートローダ、OS、アプリケーションプログラム等をストレージシステムから読み出すのにかかる時間を短縮する必要がある。
 本開示は、上記課題に鑑みてなされたものであり、ホスト装置のシステム起動に必要な起動用のブートローダ、OS、アプリケーションプログラム等を、ストレージシステムからより短時間で読み出すことができるストレージシステム及びホスト装置を提供することである。
 本開示におけるストレージシステムは、不揮発性メモリと、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラと、第1のインターフェースと、第2のインターフェースとを備え、第1のインターフェース及び第2のインターフェースでホスト装置と接続されるストレージシステムであって、ホスト装置の起動時に、不揮発性メモリから読みだしたブートローダを第2のインターフェースを介してホスト装置に転送するとともに、第1のインターフェースの初期化を並行して実行し、ホスト装置の起動後は、不揮発性メモリに対する書込みデータ/読み出しデータを転送する。
 本開示におけるストレージシステムは、インターフェースの起動時間の短いシングルエンド・パラレル伝送方式のインターフェースと、インターフェース起動後のデータ転送速度が速い高速差動シリアル伝送方式の2つのインターフェースを合わせ備えたため、ホスト装置のシステム起動に必要な起動用のブートローダ、OS、アプリケーションプログラム等を、ストレージシステムからより短時間で読み出すことが可能になる。
本開示の実施の形態に係るストレージシステムとホスト装置の構成の一例を示す図 従来のストレージシステムの構成の一例を示す比較図 ストレージシステムの一例であるSD(Secure Digital)カードの端子配置の一例を示す図 ストレージシステムの一例であるSD(Secure Digital)カードの端子配置の一例を示す図 本開示の実施の形態に係るストレージシステムとホスト装置の構成の一例を示す図 従来のストレージシステムとホスト装置の構成の一例を示す図 本開示の実施の形態に係るブート動作の一例を示す図 本開示の実施の形態に係るブート動作の一例を示す図 本開示の実施の形態に係るブート動作の流れの一例を示す図
 (実施の形態)
 以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、同じ符号を付した構成要素については、それぞれの実施の形態において同一の機能を有するものとする。
 なお、本開示は、当業者が理解するための添付図面及び以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
 [1-1.従来のストレージシステムの構成及び動作]
 図2は、従来のストレージシステムの構成の一例を示す比較図である。図2はストレージシステム300とホスト装置350の構成を説明したブロック図である。
 ストレージシステム300は、現在広く普及している、PCIeインターフェースを備えたSSD(Solid State Drive)を例としている。
 ストレージシステム300は、不揮発性メモリ312と、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラ311と、両者を接続する不揮発性メモリインターフェース(NANDインターフェース)313と、PCIeインターフェース314とを有する。
 また、ホスト装置350は、ホストSoC(System On a Chip)360と、主記憶(メインメモリ)370と、両者を接続するメモリインターフェース363と、ホストSoC内蔵ROM364と、eMMC(embedded Multi Media Card)330を有し、eMMCインターフェース314で、ストレージシステム300に接続される。
 また、eMMC(embedded Multi Media Card)330は、不揮発性メモリ332と、不揮発性メモリに対するデータの書込み/読み出しを制御するeMMCコントローラ331と、両者を接続する不揮発性メモリインターフェース(NANDインターフェース)333と、eMMCインターフェース334とを有する。
 なお、主記憶(メインメモリ)370は、ホストSoC360に混載(内蔵)されていても良い。
 また、ホストSoC内蔵ROM364は、ホストSoC360に外付けされていても良い。
 ストレージシステム300の、不揮発性メモリ312と、は、NANDフラッシュメモリ、コントローラ311は、PCIe SSDコントローラ、インターフェース314は、PCIeインターフェース、また、コントローラ311と、不揮発性メモリ312とは、オープンNANDフラッシュ・インターフェース(ONFI)等で接続される。
 このように、従来のストレージシステム300とホスト装置350は、PCIeインターフェース314を介して、不揮発性メモリ312からブートローダを読み出し、ホスト装置のメインメモリ370に転送を行うと、起動時間が長くなるという課題があるため、コマンドやデータの転送が可能になるまでの時間が短いシングルエンド・パラレル伝送方式のeMMCインターフェース334を備えたeMMC330を、起動用ストレージとして別途備えることが一般的である。
 [1-2.実施の形態にかかるストレージシステムの構成及び動作]
 図1は、本開示の実施の形態に係るストレージシステムとホスト装置の構成の一例を示す図である。
 ストレージシステム100は、不揮発性メモリ112と、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラ111と、両者を接続する不揮発性メモリインターフェース(NANDインターフェース)113と、第1のインターフェース114と、第2のインターフェース115とを有する。
 また、ホスト装置150は、ホストSoC(System On a Chip)160と、主記憶(メインメモリ)170と、両者を接続するメモリインターフェース163と、ホストSoC内蔵ROM164を有する。
 第1のインターフェース114と、第2のインターフェース115で、ストレージシステム100に接続される。
 なお、主記憶(メインメモリ)170は、ホストSoC160に混載(内蔵)されていても良い。
 また、ホストSoC内蔵ROM164は、ホストSoC160に外付けされていても良い。
 本実施の形態においては、ストレージシステム100の不揮発性メモリ112が、NANDフラッシュメモリで構成される例を示す。同じく、コントローラ111が、SD-Expressコントローラで構成される例を示す。同じく、第1のインターフェース114が、高速差動シリアル伝送方式のPCIeインターフェースで構成される例を示す。同じく第2のインターフェース115が、シングルエンド・パラレル伝送方式のSDインターフェースで構成される例を示す。同じく、コントローラ111と、不揮発性メモリ112とが、オープンNANDフラッシュ・インターフェース(ONFI)等で接続される例を示す。これらの構成要素は例示であり、本開示の趣旨を逸脱しない範囲で具体的な構成要素は適宜変更可能である。
 第1のインターフェース114は、差動シリアル伝送方式を用いることで伝送速度高速化を可能とするPCIeインターフェースである。そのため第1のインターフェース114は電源投入後、インターフェースの起動に時間がかかる。この理由から第1のインターフェース114は従来のシングルエンド・パラレル伝送方式を採用した第2のインターフェース115(SDインターフェース)に比べ、データ転送可能な状態への遷移が遅いことが広く知られている。
 従来のシングルエンド・パラレル伝送方式のインターフェースでは、ホスト装置から、データと、データを打ち抜くためのクロックとが供給されるため、受け側のストレージシステムでは、データとクロックとが入力された時点から直ちにデータの再生(データの打ち抜き)が可能となる。
 一方、差動シリアル伝送方式では、データにクロックが重畳されて伝送される。
 このため、受信側では、データ信号のエッジ(信号遷移)を検出し、内部のクロックの位相を調整して、データ信号の各ビットを正しいタイミングで判定する(正しいタイミングで打ち抜く)必要がある。
 この内部のクロックの位相調整を行うため、一般的に位相同期回路(PLL:Phase Locked Loop)が用いられ、位相調整が完了する(PLLがロックする)までに相応の時間を必要とする。
 これに加え、従来のシングルエンド・パラレル伝送方式のインターフェースでは、例えば8bitパラレル伝送の場合、1クロック毎にバイト(Byte)単位でデータが送信されるため、受信側でバイトの切れ目を検出する必要はないが、差動シリアル伝送方式では、受信側でバイト(Byte)もしくはシンボルの切れ目を正しく検出し、バイト(Byte)単位のデータとして再生する(切り出す)必要があり、こうしたバイト(Byte)同期もしくはシンボル同期にも相応の時間を必要とする。
 図7は本開示の実施の形態に係るブート動作の一例を示す図である。図7を用いて、差動シリアル伝送方式のPCIeインターフェースと、シングルエンド・パラレル伝送方式のSDインターフェースの起動時間の差を示す。
 図7の(A)において、電源電圧1000は、ストレージシステム100とホスト装置150に供給される電源電圧を示す。タイミング1010は、電源1000の電圧値が、ストレージシステム100とホスト装置150の回路動作に必要な電圧に到達するタイミング(時間)であり、SDインターフェース115は、これ以降、時間的に遅れることなく、コマンドやデータの転送が可能な状態になる。タイミング1014は、PCIeインターフェース114の初期化が完了し、コマンドやデータの転送が可能になるタイミング(時間)を示している。
 なお、PCIeインターフェースの初期化時間には、前述の、PLLがロックするのに必要な時間、バイト(Byte)同期もしくはシンボル同期に必要な時間や、インターフェースのコンフィギュレーションを行うための時間が含まれている。
 このように、差動シリアル伝送方式のPCIeインターフェース114は、コマンドやデータの転送が可能な状態に遷移するまでの時間が、シングルエンド・パラレル伝送方式のSDインターフェース115に比べて非常に長くなる。よって、ホスト装置150の起動時に、PCIeインターフェースで接続されたストレージシステムから、起動のためのブートローダ、OS、アプリケーションプログラムを読み出す構成にした場合、システムの起動が遅くなる。
 発明者らは以上に着目し、本実施の形態に係るストレージシステム100とホスト装置150は、PCIeインターフェース114に加え、コマンドやデータの転送が可能になるまでの時間が短いSDインターフェース115をあわせて備えるように構成した。
 この構成により、電源投入後等の起動時には、ホスト装置150が、SDインターフェース115を介して、不揮発性メモリ112からブートローダを読み出し、ホスト装置のメインメモリ170に転送するとともに、並行して、PCIeインターフェース114の初期化処理を実行することが可能になる。
 PCIeインターフェース114の初期化が完了し、PCIeインターフェースによるコマンドやデータの転送が可能になって以降、SDインターフェース115よりインターフェース速度の速い(データ転送速度の速い)PCIeインターフェース114を介して、OSや、アプリケーションプログラムを不揮発性メモリ112から読み出し、ホスト装置のメインメモリ170に転送することにより、トータルとして、システムの高速起動を実現出来る。
 なお、起動時のストレージシステム100とホスト装置150の動作については、[3-1.起動処理]で詳しく説明する。
 [2-1.従来のストレージシステムの構成及び動作]
 図6は、従来のストレージシステムとホスト装置の構成の一例を示す図である。図6は、従来のシステムの一例である、ストレージシステム900とホスト装置950の構成を説明した詳細ブロック図である。
 ストレージシステム900は、SDA(SD Association)によるSD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠したSD Expressカードを例としている。
 ストレージシステム900は、不揮発性メモリ940と、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラ910と、両者を接続する不揮発性メモリインターフェース(NANDインターフェース)943と、第1のインターフェース(PCIeインターフェース)専用信号線群934と、第2のインターフェース(SDインターフェース)専用信号線群935と、第1のインターフェースと第2のインターフェース共用信号線群936とを有する。
 また、コントローラ910は、第1のインターフェース(926~933)のデバイス側送受信回路912と、第2のインターフェース(920~925)のデバイス側送受信回路811と、コントローラの全体の動作を制御するCPU913と、第1のインターフェース(926~933)を介して不揮発性メモリ940に対する書込み/読み出し制御を行うNVMe制御回路914と、第2のインターフェース(920~925)を介して不揮発性メモリ940に対する書込み/読み出し制御を行うバッファ制御回路915と、不揮発性メモリ940に対する書込み/読み出しデータを一時的に蓄積する揮発性メモリ916と、不揮発性メモリ940に接続し、不揮発性メモリ940対する書込み/読み出しを行うためのNAND制御回路917と、不揮発性メモリに対する書込み/読み出しデータに暗号化/復号化が必要な場合に、データの暗復号を行う暗復号回路918と、を有する。
 なお、NVMe(Non-Volatile Memory Express)は、PCIe(PCI Express)インターフェース(物理インターフェース)を通じて、不揮発性ストレージメディアを接続するための論理デバイスインターフェースの規格である。
 ここまでの、前記コントローラ910の構成及び動作については、既によく知られた事項であるため詳細な動作説明については省略する。
 上述のように、従来のストレージシステム900は、SDA(SD Association)によるSD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠するため、異なる2つのインターフェースの信号線の一部を共有している。図3,及び、図4に、SDA(SD Association)によるSD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠したSD Expressカードの端子配置、端子表を示す。
 図3のR1(列1)には、従来SDインターフェースの端子が配置され、R2(列2)には、PCIeインターフェースの端子が配置されている。
 ただし、PCIeインターフェースに必要な端子は、R2(列2)に全て配置することが物理サイズ的に難しいため、R1(列1)の従来SDインターフェースの端子の一部を、PCIeインターフェースの端子として共用する仕様になっている。
 この仕様は、PCIeインターフェースと、SDインターフェースの両インターフェースを同時には使用しない、即ち、排他的に使用する前提に立っている。
 [2-2.実施の形態にかかるストレージシステムの構成及び動作]
 図5は、本開示の実施の形態に係るストレージシステムとホスト装置の構成の一例を示す図である。図5は、本実施の形態に係るストレージシステム100とホスト装置150の構成をより詳細に説明したブロック図である。
 ホスト装置150は、ホストSoC(System On a Chip)160と、主記憶(メインメモリ)880と、両者を接続するメモリインターフェース881と、ホストSoC内蔵ROM866を有する。第1のインターフェース114と、第2のインターフェース115で、ストレージシステム100に接続される。
 また、ホストSoC160は、第1のインターフェース114のホスト側送受信回路862と、第2のインターフェース115のホスト側送受信回路861と、ホストSoC全体の動作を制御するCPU865と、ホストSoC起動用のプログラムを格納するための内蔵ROM866と、を有する。
 なお、主記憶(メインメモリ)880は、ホストSoC160に混載(内蔵)されていても良い。
 また、ホストSoC内蔵ROM866は、ホストSoC160に外付けされていても良い。
 ストレージシステム100は、不揮発性メモリ112と、不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラ111と、両者を接続する不揮発性メモリインターフェース(NANDインターフェース)113と、第1のインターフェース(PCIeインターフェース)114と、第2のインターフェース(SDインターフェース)115とを有する。
 また、コントローラ111は、第1のインターフェース114のデバイス側送受信回路812と、第2のインターフェース115のデバイス側送受信回路811と、コントローラの全体の動作を制御するCPU813と、第1のインターフェース114を介して不揮発性メモリ112に対する書込み/読み出し制御を行うNVMe制御回路814と、第2のインターフェース115を介して不揮発性メモリ112に対する書込み/読み出し制御を行うバッファ制御回路815と、不揮発性メモリ112に対する書込み/読み出しデータを一時的に蓄積する揮発性メモリ816と、不揮発性メモリ112に接続し、不揮発性メモリ112対する書込み/読み出しを行うためのNAND制御回路817と、不揮発性メモリに対する書込み/読み出しデータに暗号化/復号化が必要な場合に、データの暗復号を行う暗復号回路818と、を有する。
 なお、NVMe(Non-Volatile Memory Express)は、PCIe(PCI Express)インターフェース(物理インターフェース)を通じて、不揮発性ストレージメディアを接続するための論理デバイスインターフェースの規格である。
 一方、本実施の形態では、さらに、第1のインターフェース114の信号線の一部と、第2のインターフェース115の信号線の一部の共用を解除する場合に:
SDインターフェースのDAT0の信号線(822)と、PCIeインターフェースのREFCLK+信号の信号線(829)との接続、SDインターフェースのDAT1の信号線(823)と、PCIeインターフェースのREFCLK-信号の信号線(828)との接続、SDインターフェースのDAT2の信号線(824)と、PCIeインターフェースのCLKREQ#信号の信号線(827)との接続、SDインターフェースのDAT3の信号線(825)と、PCIeインターフェースのPERST#信号の信号線(826)との接続、を、それぞれ解除(スイッチOFF)するスイッチ834を備えている。
 また、スイッチ834のON/OFFは、制御信号(セレクト信号)835の論理レベル(“H”もしくは“L”)によって切り替えられる。
 ここで、SDA(SD Association)によるSD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠したSD Expressカードの端子配置、端子表を、図3,及び、図4に示す。
 図3のR1(列1)には、従来SDインターフェースの端子が配置されている。R2(列2)には、PCIeインターフェースの端子が配置されている。ただし、PCIeインターフェースに必要な端子は、R2(列2)に全て配置することが物理サイズ的に難しいため、R1(列1)の従来SDインターフェースの端子の一部を、PCIeインターフェースの端子として共用する仕様になっている。
 この仕様は、PCIeインターフェースと、SDインターフェースの両インターフェースを同時には使用しない、即ち、排他的に使用する前提に立っている。本実施の形態では、前述の構成としたので、SDA(SD Association)によるSD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠したSD Expressカードのコントローラとして動作させる場合には、スイッチ834をONにして、SDインターフェースの信号線の一部と、PCIeインターフェースの信号線の一部とを接続し、高速起動を目的とした、図1に示す本実施の形態係るストレージシステム100とホスト装置150の構成時には、スイッチ834をOFFにして、SDインターフェースの信号線と、PCIeインターフェースの信号線との接続を解除し、SDインターフェース115と、PCIeインターフェース114とを、完全に独立して使用することが可能になる。
 なお、スイッチ834のON/OFFを制御する制御信号(セレクト信号)835については、例えば、制御信号(セレクト信号)835をコントローラ111のピン(端子)に接続しておき、コントローラ111の前記ピン(端子)を外付けスイッチに接続することにより、外付けスイッチで“H”もしくは“L”レベルの信号を入力することができる。あるいは、制御信号(セレクト信号)835をコントローラ111のピン(端子)に接続しておき、コントローラ111が実装される基板上で、コントローラ111の前記ピン(端子)を、プルアップもしくはプルダウンすることにより、“H”もしくは“L”レベルの信号を入力することができる。
 また、あるいは、制御信号(セレクト信号)835をコントローラ111のCPU813の汎用入出力(GPIO:General-purpose input/output)端子に接続しておき、CPU813のファームウェアによって、“H”もしくは“L”レベルの信号を入力することができる。
 [3-1.起動処理]
 図9は、ホスト装置150とストレージシステム100の起動時の動作シーケンスを示す図である。
 図9において、内蔵ROM1220は、ホストSoC160の内蔵ROM164に相当する。内蔵ROM1220にはSoCの起動用プログラムが格納されている。
 メインメモリ1230は、ホストSoC160のメインメモリ170に相当する。メインメモリ1230は、起動時に、ブートローダ、OS、アプリケーションプラグラム等が転送、格納され、また、一部の領域はワークメモリとして使用される。
 SDインターフェース1240は、ホスト装置150と、ストレージシステムとを接続するSDインターフェース(第2のインターフェース)114に相当する。
 PCIeインターフェース1250は、ホスト装置150と、ストレージシステムとを接続するPCIeインターフェース(第1のインターフェース)114に相当する。
 ストレージ1260は、ストレージシステム100の不揮発性メモリ112に相当する。上記構成要素はそれぞれ必要に応じて論理的なメモリマップを併記している。
 電源投入後等に生じる、起動時の動作を以下、図9を用い、順を追って説明する。
 (1)電源投入(電源ON)後等に実行されるリセットの解除後、起動用内蔵ROMプログラムを実行する。(1201)
 (2)起動用内蔵ROMプログラムにより、SDインターフェースにアクセスするための設定処理(端子設定、レジスタ設定)を実行する。(1202)
 本処理で、SDインターフェース1240,115のCMD820が“L”に駆動され、これにより、SDインターフェース1240,115がブートオペレーションモードに入る。
 (3)ストレージシステムの不揮発性メモリに格納されているブートローダ用チェックサム(512バイト)を、SDインターフェース1240,115経由でメインメモリに転送する。(ブートオペレーション1203)
 (4)ストレージシステムの不揮発性メモリに格納されているブートローダを、SDインターフェース1240,115経由でメインメモリに転送する。(ブートオペレーション1204)
 (5)メインメモリ上に転送したブートローダのデータからチェックサム値を計算し、ストレージシステムの不揮発性メモリからメインメモリに転送したブートローダ用チェックサム値との比較を実行。一致を確認し、次ステップに進む。(1205)
 (6)起動用内蔵ROMプログラムで使用したSDインターフェース1240,115にアクセスするための端子設定、レジスタ設定を初期状態に戻す。(1206)
 (7)メインメモリ上のブートローダのエントリポイント(ブートローダの先頭番地)に分岐し、ブートローダを実行する。(1207)
 以上、ここまでの処理が、起動用内蔵ROMプログラムによって実行される。
 (8)ブートローダにより、SDインターフェース1240,115にアクセスするための設定処理(端子設定、レジスタ設定)を実行する。(1208)
 (9)SDインターフェース経由でメモリの初期化処理を指示する。(1209)
 以上、ここまでの処理が、ブートローダのプログラムによって、SDインターフェース1240,115を介して実行される。
 (10)アプリケーションプログラムが格納されているパーティションを、PCIeインターフェース1250,経由で選択指示する。(1210)
 (11)ストレージシステムの不揮発性メモリに格納されているアプリケーションプログラムを、PCIeインターフェース1250,114経由でメインメモリに転送する。(1211)
 (12)メインメモリ上のアプリケーションプログラムのエントリポイント(アプリケーションプログラムの先頭番地)に分岐し、アプリケーションプログラムを実行する。(1212)
 ホスト装置150とストレージシステム100の起動時の動作を、図7を用いて時間軸で説明する。図7において、タイミング1011は、SDインターフェース115のCMDライン820を“L”にして、ブートオペレーションを開始するタイミングである。
 タイミング1012は、ストレージシステム100からホスト装置150へのブートローダ転送が完了し、SDインターフェース115のCMDライン820を“H”にして、ブートオペレーションを終了するタイミングである。
 タイミング1013は、メモリ初期化が完了し、ストレージシステム100の不揮発性メモリ112への読み出し/書込みが可能になるタイミングである。
 (A)は、本実施の形態に係るストレージシステム100とホスト装置150における起動時の動作を示す。
 (B)は、ストレージシステム100とホスト装置150の起動時に、PCIeインターフェース114のみを介してブートローダの転送、メモリの初期化、OSやアプリケーションプログラムの転送を行った場合の起動時の動作を示す。
 本実施の形態に係るストレージシステム100とホスト装置150における起動時には、図7の(A)に示すように、PCIeインターフェース114と、SDインターフェース115の2つのインターフェースを並列に動作させる。これにより、立ち上がりの速いSDインターフェース115を介して、ストレージシステム100の不揮発性メモリ112からブートローダを読み出し、ストレージシステム100の不揮発性メモリ112に格納されたOSやアプリケーションプログラムの読み出しが行えるよう、メモリ初期化を行う。その一方で、立ち上がりの遅いPCIeインターフェース114の初期化を並行して行うようにしている。
 PCIeインターフェースが立ち上がって以降(図7の1014で示したタイミング以降)、ブートローダに比べデータ容量の大きいOSや、アプリケーションプログラムの読み出しは、SDインターフェース115より転送速度の速いPCIeインターフェース114を介して行うことにより、トータルとして、システムが起動するまでの時間のタンス句が可能になる。
 図8は、eMMCのブートオペレーション動作のタイミングチャートである。
 図8において、SDCLK821はSDインターフェース115のSDCLK(クロック)である。
 CMD820はSDインターフェース115のCMD(コマンド)である。
 DAT822、823、824、825は、それぞれSDインターフェー115のDAT0(データ0)、DAT1(データ1)、DAT2(データ)、DAT3(データ3)である。
 タイミング1011に従い、ホスト装置150がCMD820を“L”に駆動すると、SDインターフェース115は、ブートオペレーションモードへの遷移指示であると認識し、1120、1121、1122で示されるパケットを用いてブートアクナレッジをホスト装置150に対して送信する。
 ここで、1120はスタートビット、1121はブートアクナレッジを示す“010”のビットパターン、1122はエンドビットである。
 ブートアクナレッジをホスト装置150に送信した後、SDインターフェースは、ブートローダ用チェックサムを1130、1131,1132で構成されるパケットを用いてホスト装置150に送信する。
 ここで、1130はスタートビット、1131は512バイトのブートローダ用チェックサムとそのCRC、1132はエンドビットである。
 以降、SDインターフェースは、ブートローダを、1160、1161、1162で構成される複数のパケットを用いて、必要数分だけ、ホスト装置150に送信する。
 ここで1160はスタートビット、1161は512バイト分のブートローダとそのCRC、1162はエンドビットであり、1160、1161、1162は、ブートローダを転送するパケットのnパケット目を示しており、図8においては、最終パケットとして図示している。
 ブートローダの最終パケットの転送が完了すると、1012のタイミングでブートオペレーションモードを終了する。(Boot terminated)
 [4.効果]
 本実施の形態に係るストレージシステム100とホスト装置150は、インターフェースの起動時間の短いシングルエンド・パラレル伝送方式のインターフェースと、インターフェース起動後のデータ転送速度が速い高速差動シリアル伝送方式の2つのインターフェースを合わせ備えたため、ホスト装置のシステム起動に必要な起動用のブートローダ、OS、アプリケーションプログラム等を、ストレージシステムからより短時間で読み出すことが可能になる。
 また、本実施の形態に係るストレージシステム100とホスト装置150では、起動用ストレージを別途備えることなく、高速起動を実現でき、これにより、部品点数の削減とシステムのコストダウンが可能になる。
 また、本実施の形態に係るストレージシステム100とホスト装置150では、第1のインターフェース114の信号線と、第2のインターフェース115の信号線とを、共用することなく、独立に使用できるよう、スイッチ834を備える構成としたので、スイッチ834をONにして、PCIeインターフェースの信号線の一部(826~829)と、SDインターフェースの信号線の一部(822~825)を接続することにより、SD Specifications Part 1 Physical Layer Specification Version 7.0以降の規格に準拠したSD Expressカードとしての動作が可能である。
 一方、スイッチ834をOFFにして、PCIeインターフェースの信号線の一部(826~829)と、SDインターフェースの信号線の一部(822~825)の接続を解除する(切り離す)ことにより、SDインターフェース115と、PCIeインターフェース114とを、完全に独立して使用することが可能になる。
 この構成により、電源投入後等の起動時には、ホスト装置150が、SDインターフェース115を介して、不揮発性メモリ112からブートローダを読み出し、ホスト装置のメインメモリ880に転送するとともに、並行して、PCIeインターフェース114の初期化処理を実行することが可能になる。
 PCIeインターフェース114の初期化が完了し、PCIeインターフェースによるコマンドやデータの転送が可能になって以降、SDインターフェース115よりインターフェース速度の速い(データ転送速度の速い)PCIeインターフェース114を介して、OSや、アプリケーションプログラムを不揮発性メモリ112から読み出し、ホスト装置のメインメモリ170に転送することにより、トータルとして、システムの高速起動を実現出来る。
 本実施の形態に係るストレージシステム100は、SDインターフェースの機能に、eMMCのブートオペレーション機能を内蔵している。
 もともとSDインターフェースのプロトコルはMMC(Multi Media Card)インターフェースをベースに策定されており、その後SDと、eMMC(embedded Multi Media Card)含むMMC(Multi Media Card)は、それぞれ独自の機能を追加してきており、ブートオペレーション機能もその一つで、eMMC(embedded Multi Media Card)の仕様として策定されている。
 一方、ベースとなるプロトコル、物理インターフェースは、SDとeMMCとで多くの部分が共通なので、ホスト側のSDコントローラは、一般的に、SDと、eMMC含むMMCと、SDIOとに対応している。
 よって、本実施の形態に係るストレージシステム100のSDインターフェース115は、eMMCのブートオペレーション対応をしているが、一般的なホスト側のSDコントローラに接続すれば、SDインターフェースの機能と、ブートオペレーション機能とに対応することができる。
 本開示は、起動時間の短縮が求められるホスト装置およびストレージシステムに用いるに好適である。
 100 ストレージシステム
 110 半導体ストレージ
 111 SD Expressコントローラ
 112 不揮発性メモリ(NANDフラッシュメモリ)
 113 不揮発性メモリインターフェース(NANDインターフェース)
 114 PCI Expressインターフェース
 115 SDインターフェース
 116 ストレージシステムの入出力ポート(PCI Expressインターフェース用)
 117 ストレージシステムの入出力ポート(SDインターフェース用)
 150 ホスト装置
 160 ホストSoC(System on a Chip)
 163 メモリインターフェース
 164 ホストSoc内蔵ROM
 170 メインメモリ
 120 Ethernet・PCIeインターフェースコンバータ
 121 Ethernetインターフェース
 122 ストレージシステムの入出力ポート(Ethernetインターフェース用)
 123 メモリインターフェース
 124 Ethernet・PCIeインターフェースコンバータ内蔵ROM
 180 メインメモリ
 300 ストレージシステム
 311 PCIe SSDコントローラ
 312 不揮発性メモリ(NANDフラッシュメモリ)
 313 不揮発性メモリインターフェース(NANDインターフェース)
 314 PCI Expressインターフェース
 330 eMMC(embedded Multi Media Card)
 331 eMMCコントローラ
 332 不揮発性メモリ(NANDフラッシュメモリ)
 333 不揮発性メモリインターフェース(NANDインターフェース)
 350 ホスト装置
 363 メモリインターフェース
 364 ホストSoC内蔵ROM
 370 メインメモリ
 140 2対1セレクタスイッチ
 141 セレクト信号
 142 2対1セレクタスイッチ入出力1(SDインターフェース)
 143 2対1セレクタスイッチ入出力2(SDインターフェース)
 144 ストレージシステムの入出力ポート(SDインターフェース用)
 130 USB・SDインターフェースコンバータ
 131 USBインターフェース
 132 ストレージシステムの入出力ポート(USBインターフェース用)
 600 SD Expressカード
 811 SDインターフェース回路(デバイス側)1(ブート対応)
 812 PCIeインターフェース回路(デバイス側(Endpoint))
 813 マイコン
 814 NVMe制御回路
 815 バッファ制御回路
 816 揮発性メモリ(RAM)
 817 NAND制御回路
 818 暗号回路
 820 SDインターフェースのCMD(コマンドライン)
 821 SDインターフェースのSDCLK(クロックライン)
 822 SDインターフェースのDAT0(データライン0)
 823 SDインターフェースのDAT1(データライン1)
 824 SDインターフェースのDAT2(データライン2)
 825 SDインターフェースのDAT3(データライン3)
 826 PCIeインターフェースのPERST#信号(リセット信号)
 827 PCIeインターフェースのCLKREQ#信号(クロックリクエスト信号)
 828 PCIeインターフェースのREFCLK-信号(差動リファレンスクロックの-信号)
 829 PCIeインターフェースのREFCLK+信号(差動リファレンスクロックの+信号)
 830 PCIeインターフェースのPCIe Tx+(下り差動信号伝送路の+信号)
 831 PCIeインターフェースのPCIe Tx-(下り差動信号伝送路の-信号)
 832 PCIeインターフェースのPCIe Rx-(上り差動信号伝送路の-信号)
 833 PCIeインターフェースのPCIe Rx+(上り差動信号伝送路の+信号)
 834 スイッチ回路
 835 スイッチ回路の制御信号
 861 SDインターフェース回路(ホスト側)
 862 PCIeインターフェース回路(ホスト側(Root Complex))
 865 マイコン
 866 内蔵ROM
 880 メインメモリ
 911 SDインターフェース回路(デバイス側)2(ブート非対応)
 912 PCIeインターフェース回路(デバイス側(Endpoint))
 913 マイコン
 914 NVMe制御回路
 915 バッファ制御回路
 916 揮発性メモリ(RAM)
 917 NAND制御回路
 918 暗号回路
 920 SDインターフェースのCMD(コマンドライン)
 921 SDインターフェースのSDCLK(クロックライン)
 922 SDインターフェースのDAT0(データライン0)
 923 SDインターフェースのDAT1(データライン1)
 924 SDインターフェースのDAT2(データライン2)
 925 SDインターフェースのDAT3(データライン3)
 926 PCIeインターフェースのPERST#信号(リセット信号)
 927 PCIeインターフェースのCLKREQ#信号(クロックリクエスト信号)
 928 PCIeインターフェースのREFCLK-信号(差動リファレンスクロックの-信号)
 929 PCIeインターフェースのREFCLK+信号(差動リファレンスクロックの+信号)
 930 PCIeインターフェースのPCIe Tx+(下り差動信号伝送路の+信号)
 931 PCIeインターフェースのPCIe Tx-(下り差動信号伝送路の-信号)
 932 PCIeインターフェースのPCIe Rx-(上り差動信号伝送路の-信号)
 933 PCIeインターフェースのPCIe Rx+(上り差動信号伝送路の+信号)
 934 第1のインターフェース(PCIeインターフェース)専用信号線群
 935 第2のインターフェース(SDインターフェース)専用信号線群
 936 第1のインターフェースと第2のインターフェース共用信号線群
 961 SDインターフェース回路(ホスト側)
 962 PCIeインターフェース回路(ホスト側(Root Complex))
 965 マイコン
 966 内蔵ROM
 980 メインメモリ
 1000 電源
 1010 起動開始のタイミング
 1011 SDインターフェースのCMD(コマンドライン)を“L”レベルにするタイミング
 1012 SDインターフェースのCMD(コマンドライン)を“H”レベルにするタイミング
 1013 ブートローダ転送及びメモリ初期化の終了タイミング
 1014 PCIeインターフェースの初期化終了タイミング
 1020、1040 PCIeインターフェースの初期化期間
 1023 OS及び/又はアプリケーションプログラムの転送期間
 1030 SDインターフェースの設定期間
 1031 SDインターフェースを介したブートローダの転送期間
 1032 メモリ初期化期間
 1041 PCIeインターフェースを介したブートローダ転送期間
 1042 メモリ初期化期間
 1043 OS及び/又はアプリケーションプログラムの転送期間
 1120、1130、1160 スタートビット(“0”)
 1121 Boot Acknowledgeパターン(“010”)
 1122、1132、1162 エンドビット(“1”)
 1131 ブートローダのチェックサム
 1161 ブートローダのnセクタ目(ブートローダ転送の最終セクタ)
 1201 起動用プログラムの実行処理
 1202 SDインターフェースの端子とレジスタの設定処理
 1203 ブートローダのチェックサム転送処理
 1204 ブートローダの転送処理
 1205 チェックサムの計算と比較処理
 1206 SDインターフェースの端子開放とレジスタ初期化処理
 1207 ブートローダへの分岐処理
 1208 SDインターフェースの端子とレジスタの設定処理
 1209 SD初期化処理
 1210 アプリケーションプラグラム格納パーティション選択処理
 1211 アプリケーションプログラムの転送処理
 1212 アプリケーションプログラムへの分岐処理
 1220 起動用プログラム
 1230 SoCのメインメモリ(DRAM)のマップ
 1240 SDインターフェース(ホスト側及びデバイス側)
 1250 PCIeインターフェース(ホスト側及びデバイス側)
 1260 ストレージ(NANDフラッシュメモリ)のマップ

Claims (3)

  1.  不揮発性メモリと、
     前記不揮発性メモリに対するデータの書込み/読み出しを制御するコントローラと、
     第1のインターフェースと、
     第2のインターフェースとを備えるストレージシステムであって、
     前記ストレージシステムは、前記第1のインターフェース及び前記第2のインターフェースでホスト装置と接続され、
     前記ストレージシステムは、前記ホスト装置の起動時に、
      前記不揮発性メモリから読みだしたブートローダを前記第2のインターフェースを介して前記ホスト装置に転送し、
      前記ブートローダの転送と並行して、前記第1のインターフェースの初期化を実行し、
     前記ストレージシステムは、前記ホスト装置の起動後は、
      前記不揮発性メモリに対する書込みデータ/読み出しデータを、前記第1のインターフェース又は前記第2のインターフェースのうち少なくとも一方を介して転送する、
     ストレージシステム。
  2.  前記ストレージシステムは、前記ホスト装置の起動後は、
      前記不揮発性メモリに対する書込みデータ/読み出しデータを、前記第1のインターフェース及び前記第2のインターフェースを介して転送する、
     請求項1に記載のストレージシステム。
  3.  前記第1のインターフェイスは、PCIe(Peripheral Component Interconnect express)インターフェースであり、
     前記第2のインターフェースは、SD(Secure Digital)インターフェースである、
     請求項1または2に記載のストレージシステム。
PCT/JP2021/013501 2020-04-01 2021-03-30 ストレージシステム WO2021200926A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022512281A JPWO2021200926A1 (ja) 2020-04-01 2021-03-30
CN202180016352.4A CN115151895A (zh) 2020-04-01 2021-03-30 存储系统
EP21781641.2A EP4130990A4 (en) 2020-04-01 2021-03-30 STORAGE SYSTEM
US17/897,714 US20220413709A1 (en) 2020-04-01 2022-08-29 Storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-065453 2020-04-01
JP2020065453 2020-04-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/897,714 Continuation US20220413709A1 (en) 2020-04-01 2022-08-29 Storage system

Publications (1)

Publication Number Publication Date
WO2021200926A1 true WO2021200926A1 (ja) 2021-10-07

Family

ID=77929015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/013501 WO2021200926A1 (ja) 2020-04-01 2021-03-30 ストレージシステム

Country Status (5)

Country Link
US (1) US20220413709A1 (ja)
EP (1) EP4130990A4 (ja)
JP (1) JPWO2021200926A1 (ja)
CN (1) CN115151895A (ja)
WO (1) WO2021200926A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442665B2 (en) * 2020-12-04 2022-09-13 Western Digital Technologies, Inc. Storage system and method for dynamic selection of a host interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009533770A (ja) * 2006-04-10 2009-09-17 アップル インコーポレイテッド Nandフラッシュメモリを用いた直接ブート構成
JP2010211799A (ja) * 2009-03-11 2010-09-24 Harman Becker Automotive Systems Gmbh コンピューティングデバイスおよびその始動方法
JP2016167167A (ja) 2015-03-09 2016-09-15 株式会社東芝 半導体装置及びメモリシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051229B2 (en) * 2007-06-29 2011-11-01 Sandisk Technologies Inc. Dual bus ExpressCard peripheral device
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
JP2012059024A (ja) * 2010-09-09 2012-03-22 Ricoh Co Ltd 情報処理装置、起動制御方法、起動制御プログラム及び記録媒体
US9697010B2 (en) * 2014-03-25 2017-07-04 Microsoft Technology Licensing, Llc User selectable operating systems
DE102014220616A1 (de) * 2014-10-10 2016-04-14 Bundesdruckerei Gmbh Verfahren zum Laden von ausführbaren Programminstruktionen in eine Chipkarte im Wirkbetrieb
US11055106B1 (en) * 2019-12-18 2021-07-06 Xilinx, Inc. Bootstrapping a programmable integrated circuit based network interface card
KR20220045764A (ko) * 2020-10-06 2022-04-13 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009533770A (ja) * 2006-04-10 2009-09-17 アップル インコーポレイテッド Nandフラッシュメモリを用いた直接ブート構成
JP2010211799A (ja) * 2009-03-11 2010-09-24 Harman Becker Automotive Systems Gmbh コンピューティングデバイスおよびその始動方法
JP2016167167A (ja) 2015-03-09 2016-09-15 株式会社東芝 半導体装置及びメモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442665B2 (en) * 2020-12-04 2022-09-13 Western Digital Technologies, Inc. Storage system and method for dynamic selection of a host interface

Also Published As

Publication number Publication date
EP4130990A1 (en) 2023-02-08
CN115151895A (zh) 2022-10-04
EP4130990A4 (en) 2023-09-27
JPWO2021200926A1 (ja) 2021-10-07
US20220413709A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
US20230418363A1 (en) Card and host apparatus
JP4279451B2 (ja) ロー・ピン・カウントのバスにおけるメモリ・トランザクション
US7360003B2 (en) Multiple mode communication system
RU2402804C2 (ru) Способ загрузки хостового устройства из устройства mmc/sd, хостовое устройство, загружаемое из устройства mmc/sd, и устройство mmc/sd, из которого может быть загружено хостовое устройство
JP4799417B2 (ja) ホストコントローラ
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US6119189A (en) Bus master transactions on a low pin count bus
US6157970A (en) Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number
US20100174866A1 (en) Memory device, electronic device, and host apparatus
US20080228984A1 (en) Single-Chip Multi-Media Card/Secure Digital (MMC/SD) Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage
TWI537737B (zh) 一種用於可攜式裝置中傳輸高速資料的方法及其系統
US9680972B2 (en) SD switch box in a cellular handset
WO2021200926A1 (ja) ストレージシステム
US20080222365A1 (en) Managed Memory System
US20230169028A1 (en) Bridge device and data storage system
US20070131767A1 (en) System and method for media card communication
TW202301136A (zh) 記憶體控制器與連結識別方法
JP2002149625A (ja) マイクロコンピュータの制御方法
JP2022052200A (ja) ストレージシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21781641

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022512281

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021781641

Country of ref document: EP

Effective date: 20221102