WO2022059216A1 - ホスト装置およびメモリシステム - Google Patents

ホスト装置およびメモリシステム Download PDF

Info

Publication number
WO2022059216A1
WO2022059216A1 PCT/JP2020/043420 JP2020043420W WO2022059216A1 WO 2022059216 A1 WO2022059216 A1 WO 2022059216A1 JP 2020043420 W JP2020043420 W JP 2020043420W WO 2022059216 A1 WO2022059216 A1 WO 2022059216A1
Authority
WO
WIPO (PCT)
Prior art keywords
operation mode
memory card
host controller
host
pcie
Prior art date
Application number
PCT/JP2020/043420
Other languages
English (en)
French (fr)
Inventor
曜久 藤本
Original Assignee
キオクシア株式会社
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 キオクシア株式会社 filed Critical キオクシア株式会社
Priority to CN202080103075.6A priority Critical patent/CN115956236A/zh
Priority to KR1020237001509A priority patent/KR20230023781A/ko
Priority to EP20954200.0A priority patent/EP4216102A1/en
Publication of WO2022059216A1 publication Critical patent/WO2022059216A1/ja
Priority to US18/184,738 priority patent/US20230221887A1/en

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • An embodiment of the present invention relates to a host device and a memory system for controlling a memory card.
  • Memory cards are used in various host devices such as personal computers, mobile communication devices, game machines, cameras, and in-vehicle devices.
  • SD registered trademark
  • the problem to be solved by the present invention is to provide a host device and a memory system useful for controlling a memory card that supports two types of operation modes.
  • the host device can control the memory card.
  • the memory card supports a first operation mode of communicating with the host device via a first interface and a second operation mode of communicating with the host device via a second interface different from the first interface.
  • the host device includes a host controller, a power supply circuit, and a communication control circuit.
  • the host controller controls the memory card via the first interface under the control of a first driver, which is a program executed by a processor in the host device.
  • the power supply circuit includes a first power supply voltage required for both the first operation mode and the second operation mode, and a second power supply voltage lower than the first power supply voltage required only for the second operation mode. Can be supplied to the memory card.
  • the communication control circuit starts communication with the memory card via the second interface in response to the assertion of the card presence detection signal under the control of the second driver, which is a program executed by the processor. ..
  • the host controller uses the first power supply so that when the memory card supports the second operation mode, the operation mode of the memory card is changed from the first operation mode to the second operation mode.
  • the second power supply voltage is turned on while the voltage is turned on, and the card presence detection signal to the communication control circuit is asserted.
  • the host controller monitors the reset signal for the second operation mode output from the communication control circuit while the memory card is in the second operation mode. When both the card presence detection signal and the reset signal for the second operation mode are asserted for the first period or longer, the host controller has encountered an error in the second operation mode.
  • a first interrupt signal for activating the first driver is generated in response to the detection of the occurrence of the error.
  • the operation mode of the memory card is changed from the second operation mode to the first by controlling the host controller. Change to the operation mode.
  • the block diagram which shows the configuration example of the memory system including the host apparatus which concerns on embodiment The block diagram which shows the connection relationship between the SD host controller and the PCIe interface controller included in the host apparatus which concerns on embodiment. The figure explaining the timer count in the PCIe error detection processing executed in the host apparatus which concerns on embodiment.
  • FIG. 1 is a block diagram showing a configuration example of a memory system 1 including a host device 2 according to an embodiment.
  • the memory system 1 includes a host device 2 and a memory card 3.
  • the memory card 3 is a removable storage device that can be inserted into a connector in the host device 2.
  • the memory card 3 includes, for example, a non-volatile memory and a controller that controls the non-volatile memory.
  • the memory card 3 is configured to write data to the non-volatile memory in the memory card 3 and read data from the non-volatile memory.
  • the memory card 3 has two types, a first operation mode in which the memory card 3 communicates with the host device 2 via the first interface, and a second operation mode in which the memory card 3 communicates with the host device 2 via a second interface different from the first interface. Supports operating modes. That is, the memory card 3 is configured to operate in the first operation mode and the second operation mode, respectively.
  • the first interface is, for example, an existing interface for a memory card.
  • the second interface is, for example, a general-purpose interface such as PCI Express (PCIe) (registered trademark).
  • PCIe PCI Express
  • the memory card 3 is not limited to this, but may be realized as, for example, an SD Express card (registered trademark).
  • SD Express which is an existing interface for the SD card
  • PCIe interface is used as the second interface.
  • the SD Express card supports both SD mode and PCIe / NVMe mode.
  • the SD mode is an operation mode for communicating with the host device 2 via the SD interface.
  • the PCIe / NVMe mode is an operation mode for communicating with the host device 2 via the PCIe interface.
  • the host device 2 includes both a first interface and a second interface.
  • the host device 2 can control the memory card 3 by using the first operation mode, and can also control the memory card 3 by using the second operation mode.
  • the configuration of the host device 2 will be described by exemplifying the case where the memory card 3 is an SD Express card.
  • the host device 2 is an information processing device that can be connected to the memory card 3. Examples of the host device 2 are a personal computer, a server computer, a mobile terminal, an in-vehicle device, and the like.
  • the host device 2 includes a CPU 21, a system memory 22, a system controller 23, an SD host controller 24, a power supply circuit 25, and a switch circuit 26.
  • the CPU 21 is a processor configured to control the system controller 23 and the SD host controller 24.
  • the CPU 21 accesses the system memory 22 via the system controller 23. Further, the CPU 21 controls the SD host controller 24 via the system controller 23.
  • the interface between the system controller 23 and the SD host controller 24 is not particularly limited, but the SD host controller 24 is connected to the system controller 23 via, for example, the PCIe interface.
  • the system controller 23 includes a PCIe interface controller 231 and an interrupt controller 232.
  • the CPU 21 is a processor configured to execute a control program (operating system (OS), host driver, PCIe / NVM Express (NVMe) (registered trademark) driver, etc.) stored in the system memory 22.
  • the host driver is a program (software driver) executed by the CPU 21.
  • the CPU 21 controls the operation of the SD host controller 24 by executing the host driver.
  • the PCIe / NVMe driver is a program (software driver) executed by the CPU 21.
  • the CPU 21 controls the operation of the PCIe interface controller 231 by executing the PCIe / NVMe driver.
  • the system memory 22 is a main memory provided in the host device 2.
  • the system memory 22 is realized by, for example, a dynamic RAM (DRAM).
  • DRAM dynamic RAM
  • the power supply circuit 25 has two types of power supply voltages, that is, VDD1 (3.3V), which is the first power supply voltage, and the first power supply voltage, in the memory card 3 inserted into the connector of the host device 2. It supplies VDD2 (1.8V), which is a dual power supply voltage.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD1 (3.3V) is a power supply voltage required for the memory card 3 to operate in the SD mode.
  • VDD2 (1.8V) is a power supply
  • the power supply circuit 25 controls ON / OFF of the power supply voltage VDD1 according to the first power supply voltage control signal VDD1-ON from the SD host controller 24. Further, the power supply circuit 25 controls ON / OFF of the power supply voltage VDD2 according to the second power supply voltage control signal VDD2-ON from the SD host controller 24.
  • the power supply circuit 25 turns on the first power supply voltage VDD1 when the first power supply control signal VDD1-ON reaches the High level, and turns on the first power supply when the first power supply control signal VDD1-ON reaches the Low level. Turn off the voltage VDD1. Further, the power supply circuit 25 turns on the second power supply voltage VDD2 when the second power supply control signal VDD2-ON reaches the High level, and sets the second power supply voltage VDD2 when the second power supply control signal VDD2-ON reaches the Low level. Turn off.
  • the power supply voltage VDD1 is supplied to the VDD1 terminal, which is the power supply terminal of the memory card 3.
  • the power supply voltage VDD2 is supplied to the VDD2 terminal, which is another power supply terminal of the memory card 3.
  • the SD host controller 24 is a host controller configured to control the memory card 3 via the first interface (here, the SD interface) under the control of the host driver.
  • the SD interface includes a clock signal SD CLK, an SD command SD CMD, and a 4-bit data signal DAT [3: 0].
  • the SD host controller 24 communicates with the memory card 3 via the SD interface, and also changes the operation mode of the memory card 3 from the SD mode to the PCIe / NVMe mode under the control of the host driver. The process and the process for returning the operation mode of the memory card 3 from the PCIe / NVMe mode to the SD mode are also executed.
  • the SD host controller 24 controls the on / off of the first power supply voltage VDD1 under the control of the host driver, the first power supply control signal VDD1-ON, and the second power supply voltage VDD2 on / off.
  • a second power supply control signal VDD2-ON for controlling the above is individually supplied to the power supply circuit 25.
  • the SD host controller 24 first operates the memory card 3 in the SD mode by turning on the first power supply voltage VDD1 and supplying the clock signal SD CLK to the memory card 3.
  • the clock signal SD CLK is used to synchronize the operation timing of the SD interface circuit (not shown) in the memory card 3 with the operation timing of the SD host controller 24.
  • the clock signal SD CLK is supplied to the clock CLK terminal of the memory card 3.
  • SD command SD CMD includes various commands for controlling the memory card 3 using SD mode.
  • this SD command SD CMD is a command for checking the functions supported by CMD0 and memory card 3 which are reset commands for SD mode, in addition to I / O commands such as read / write commands. Some CMD8, etc. are included.
  • the SD command SD CMD is supplied to the command CMD terminal of the memory card 3.
  • the SD host controller 24 processes to transmit the 4-bit data signal DAT [3: 0] to the memory card 3 via the switch circuit 26, and the 4-bit data signal DAT [3: 0] via the switch circuit 26. Is executed from the memory card 3.
  • the SD host controller 24 receives the card detection signal Card Detection from a connector (not shown) into which the memory card 3 can be inserted.
  • the card detection signal Card Detection is a signal indicating that the memory card 3 has been inserted into the connector and that the memory card 3 has been removed from the connector (hereinafter referred to as remote).
  • the connector When the memory card 3 is inserted into the connector, the connector outputs a card detection signal Card Detection having a predetermined voltage level indicating that the memory card 3 has been inserted into the connector. Further, when the memory card 3 is taken out from the connector, the connector outputs a card detection signal Card Detection having another predetermined voltage level indicating that the memory card 3 has been taken out from the connector.
  • the SD host controller 24 can detect the insertion / removal of the memory card 3 based on the change in the voltage level of the card detection signal Card Detection.
  • the signal voltage level of the card detection signal Card Detection differs depending on the detection method of the memory card 3. For example, when the pull-up method for pulling up the card detection signal Card Detection line is used, when the memory card 3 is inserted into the connector, the connector has a low level indicating that the memory card 3 has been inserted into the connector. The card detection signal Card Detection of is output. Further, when the memory card 3 is taken out from the connector, the connector outputs a high-level card detection signal Card Detection indicating that the memory card 3 has been taken out from the connector.
  • the operation mode of the memory card 3 is changed from the SD mode to the PCIe / NVMe mode.
  • the SD host controller 24 turns on the second power supply voltage VDD2 while the first power supply voltage VDD1 is turned on, and asserts the card presence detection signal PRSN # to the PCIe interface controller 231.
  • the card presence detection signal PRSNT # indicates that the memory card 3 supporting the PCIe / NVMe mode is connected to the host device 2, in other words, the PCIe / NVMe device is connected to the PCIe interface controller 231. It is a signal. Note that asserting the signal means setting the voltage level of the signal to the active level. Deasserting the signal also means setting the voltage level of the signal to the inactive level.
  • the card presence detection signal PRSNT # is a low active signal
  • the card presence detection signal PRSNT # to the PCIe interface controller 231 is asserted, the voltage of the card presence detection signal PRSNT # is set to the Low level.
  • the PCIe interface controller 231 is configured to initiate communication with the memory card 3 via the PCIe interface using the PCIe / NVMe driver in response to the assertion of the card presence detection signal PRSN #. In this way, the operation mode of the memory card 3 is changed to the PCIe mode.
  • the SD host controller 24 While the operation mode of the memory card 3 is the PCIe / NVMe mode, the SD host controller 24 outputs a reset signal PERST #, which is one of the sideband signals for the PCIe interface output from the PCIe interface controller 231 to the switch circuit 26. Monitor. That is, the SD host controller 24 has an input terminal for inputting the reset signal PERST # output from the PCIe interface controller 231 to the switch circuit 26. This input terminal is connected to the reset signal PERST # line between the PCIe interface controller 231 and the switch circuit 26.
  • the reset signal PERST # is a reset signal for the PCIe / NVMe mode.
  • the reset signal PERST # is supplied from the PCIe interface controller 231 to the memory card 3 via the switch circuit 26.
  • the PCIe interface circuit (not shown) contained in the memory card 3 is reset to the initial state (reset state). Further, when the reset signal PERST # is deasserted by the PCIe interface controller 231, the reset state of the PCIe interface circuit contained in the memory card 3 is released, whereby the PCIe interface circuit contained in the memory card 3 is released. Starts working.
  • the system controller 23 is connected to the CPU 21, the system memory 22, and the SD host controller 24, respectively. Further, the system controller 23 includes the above-mentioned PCIe interface controller 231 and the interrupt controller 232.
  • the PCIe interface controller 231 is a communication control circuit that communicates with the memory card 3 via the PCIe interface under the control of the PCIe / NVMe driver.
  • the PCIe interface controller 231 starts communication with the memory card 3 via the PCIe interface. More specifically, when the card presence detection signal PRSN # is asserted, the PCIe / NVMe driver is started, and the PCIe interface controller 231 starts the initialization process of the PCIe interface under the control of the PCIe / NVMe driver. When the initialization process of the PCIe interface is completed, the PCIe interface controller 231 starts read / write access to the memory card 3 via the PCIe interface under the control of the PCIe / NVMe driver.
  • the PCIe interface is a group of signals, that is, two sideband signals (reset signal PERST #, clock request signal CLKEQU #), differential reference clock signals REFCLK-P, REFCLK-N, and differential transmission signal Tx-P. It includes Tx-N and differential reception signals Rx-P and Rx-N.
  • the symbol # following the signal name indicates that this signal is a low active signal.
  • the reset signal PERST # is a reset signal for the PCIe / NVMe mode as described above.
  • the clock request signal CLKEQU # is a signal that requests the PCIe interface controller 231 to transmit a differential reference clock signal.
  • the clock request signal CLKEQU # is supplied from the memory card 3 to the PCIe interface controller 231 via the switch circuit 26.
  • the differential reference clock signals REFCLK-P and REFCLK-N do not require a clock oscillator in the memory card 3 and can simplify the configuration of the clock circuit in the memory card 3.
  • the two sideband signal lines (reset signal PERST # line, clock request signal CLKEQU # line) and the two reference clock signals REFCLK-P and REFCLK-N lines are DAT of the memory card 3 via the switch circuit 26. It is connected to the [3: 0] terminal.
  • the differential transmission signals Tx-P and Tx-N are used to transmit commands, data, etc. from the PCIe interface controller 231 to the memory card 3.
  • the differential reception signals Rx-P and Rx-N are used to transmit a response, data, etc. from the memory card 3 to the PCIe interface controller 231.
  • the operation mode of the memory card 3 is the PCIe / NVMe mode
  • the operation of each of the memory card 3 and the PCIe interface controller 231 is controlled by the PCIe / NVMe driver.
  • the standard PCIe / NVMe driver is a software driver independent of the host driver, it does not have a special function for communicating with the host driver. Further, while the memory card 3 is in the PCIe / NVMe mode, the host driver is set to the sleep state so as not to consume the resources of the CPU 21.
  • the memory card 3 will be in the PCIe / NVMe mode. It freezes, which makes it impossible to use the memory card 3.
  • the user in order to return the operation mode of the memory card 3 from the PCIe / NVMe mode to the SD mode, the user must once remove the memory card 3 and reinsert it into the connector, or restart the OS. In addition, it is necessary to retain some information indicating that an error has occurred in the PCIe / NVMe mode so that the memory card 3 can be started in the SD mode.
  • an error occurs in the PCIe / NVMe mode by the SD host controller 24 in order to deal with an error generated in the PCIe / NVMe mode. Detected. Then, in response to the detection of the occurrence of an error in the PCIe / NVMe mode, the SD host controller 24 generates an interrupt signal for activating the host driver. When the host driver is started by the CPU 21 due to this interrupt signal, the host driver controls the SD host controller 24 to change the operation mode of the memory card 3 from PCIe / NVMe to SD mode. Execute the process.
  • the reset signal PERST # is usually asserted. The condition lasts for a relatively long time. Utilizing the phenomenon that the reset signal PERST # is asserted for a long time, the SD host controller 24 detects that an error has occurred in the PCIe / NVMe mode. During the PCIe interface initialization process or memory access in PCIe / NVMe mode, the PCIe / NVMe driver controls the PCIe interface controller 231 to assert the reset signal PERST # for the retry of certain failed processes. The period during which the reset signal PERST # is maintained in the asserted state due to a retry is relatively short. In this embodiment, the SD host controller 24 is configured not to detect such a short reset for retry as an error.
  • the SD host controller 24 causes an error in the PCIe / NVMe mode on condition that both the card presence detection signal PRSN # and the reset signal PERST # are asserted for the first period or longer. Detect what you have done. This error is also referred to below as a PCIe error (PCIe Error).
  • PCIe Error PCIe Error
  • PCIe errors Errors that occur in the PCIe / NVMe mode include recoverable errors and unrecoverable errors.
  • a recoverable error means an error in which even if an error related to a certain process occurs, this process succeeds by retrying within a predetermined number of times.
  • An unrecoverable error means an error in which processing continues to fail even after a predetermined number of retries. In the PCIe specifications, unrecoverable errors are also referred to as Fatal errors.
  • the error to be detected by the SD host controller 24 is an unrecoverable error in PCIe / NVMe mode. Recoverable errors are excluded from detection by the SD host controller 24.
  • the switch circuit 26 has four data signal DAT [3: 0] lines and four PCIe signal lines (reset signal PERST # line, clock request signal CLKEQU # line, differential reference clock signal REFCLK-P, REFCLK-). Select either one of the N lines) and connect the selected signal line to the DAT [3: 0] terminal of the memory card 3.
  • the switch circuit 26 selects four data signal DAT [3: 0] lines.
  • the four data signal DAT [3: 0] lines and the DAT [3: 0] terminals of the memory card 3 are connected to each other.
  • the switch circuit 26 has four PCIe signal lines (reset signal PERST # line, clock).
  • the request signal CLKEQU # line, differential reference clock signal REFCLK-P, REFCLK-N line) are selected, and the four PCIe signal lines are connected to the DAT [3: 0] terminal of the memory card 3.
  • Factors when an interrupt signal is generated by the SD host controller 24 include "card insertion”, “card removal”, and "PCIe error”.
  • an interrupt signal for the CPU 21 is generated by the SD host controller 24. This interrupt signal is supplied to the CPU 21 via the interrupt controller 232.
  • the interrupt signal resulting from the detection of "card insertion”, “card removal”, or “PCIe error” is used to start the host driver.
  • the host driver executes interrupt processing according to the interrupt signal generation factor (“card insertion”, “card eject”, or “PCIe error”).
  • the interrupt processing is completed, the host driver can be put to sleep, and the CPU 21 is not wasted until the next interrupt is input.
  • the host driver executes a process for changing the operation mode of the memory card 3 from the PCIe / NVMe mode to the SD mode.
  • FIG. 2 is a block diagram illustrating a connection relationship between the SD host controller 24 and the PCIe interface controller 231 included in the host device 2 according to the embodiment.
  • the SD host controller 24 detects that the voltage level of the card detection signal Card Detection transmitted from the connector of the host device 2 has changed from, for example, a high level to a low level, and detects that the memory card 3 has been inserted into the connector. do. In response to the detection of the insertion of the memory card 3, the SD host controller 24 generates an interrupt signal (“card insertion” interrupt) for activating the host driver.
  • the interrupt signal is input to the CPU 21 via the interrupt controller 232.
  • the host driver boots the inserted memory card 3 in SD mode and confirms whether the memory card 3 supports PCIe / NVMe mode.
  • the host driver controls the SD host controller 24 to assert the card presence detection signal PRSNT #.
  • the PCIe driver controls the PCIe interface controller 231 to start communication with the memory card 3 via the PCIe interface.
  • the SD host controller 24 detects that the voltage level of the card detection signal Card Detection transmitted from the connector has changed from, for example, a low level to a high level, and detects that the memory card 3 has been removed from the host device 2. do. In response to the detection of the removal of the memory card 3, the SD host controller 24 generates an interrupt signal (“card eject” interrupt) for activating the host driver.
  • the host driver performs processing such as turning off the card power supply (two types of power supply voltages VDD1 and VDD2).
  • the PCIe interface controller 231 asserts the reset signal PERST # for the PCIe / NVMe mode when an error occurs in the PCIe / NVMe mode.
  • the SD host controller 24 monitors the reset signal PERST # for the PCIe / NVMe mode output from the PCIe interface controller 231. If the card existence detection signal PRSN # and the reset signal PERST # are asserted at the same time for a certain period of time or longer, the SD host controller 24 determines that a PCIe error has occurred and an interrupt signal for starting the host driver ( Generates a "PCIe error" interrupt).
  • the status register (not shown) in the SD host controller 24 stores the interrupt status indicating the interrupt factor. By reading the interrupt status from the status register in the SD host controller 24, the host driver can specify whether the interrupt factor is "card insertion", "card eject", or "PCIe error".
  • the SD host controller 24 includes a reset timer (ResTimer) 241.
  • the reset timer (ResTimer) 241 measures the period during which both the card presence detection signal PRSNT # and the reset signal PERST # are asserted.
  • the PCIe driver controls the PCIe interface controller 231 when retrying, and once asserts the reset signal PERST # for the PCIe / NVMe mode.
  • the period during which the reset signal PERST # is maintained in the asserted state due to the retry is, for example, a maximum of 1 second.
  • the reset timer (ResTimer) 241 is used to exclude short resets for retries from detection.
  • the reset timer (ResTimer) 241 has an initial value (for example, zero) when the reset signal PERST # for the PCIe / NVMe mode is asserted while the card presence detection signal PRSNT # to the PCIe interface controller 231 is asserted. ) To start counting. When the reset signal PERST # is deasserted while the card presence detection signal PRSNT # is asserted, the counting operation by the reset timer (ResTimer) 241 ends. When the deasserted reset signal PERST # is reasserted, the reset timer (ResTimer) 241 restarts counting from the initial value (eg, zero).
  • the SD host controller 24 compares the count value of the reset timer (ResTimer) 241 with the timeout value stored in the timeout value register 242 of the SD host controller 24.
  • the SD host controller 24 detects that a PCIe error (unrecoverable error) has occurred in the PCIe / NVMe mode, provided that the count value of the reset timer (ResTimer) 241 is equal to or greater than the timeout value.
  • the SD host controller 24 activates the host driver by generating an interrupt signal.
  • the host driver deasserts the card presence detection signal PRSNT # and turns off the power supply voltage VDD2 by controlling the SD host controller 24, whereby the power supply voltage VDD2 is turned off.
  • the operation mode of the memory card 3 is returned to the SD mode.
  • the host driver can also execute a process of notifying the user via the OS that a PCIe error has occurred in the PCIe / NVMe mode (warning).
  • the host driver can specify the timeout value for the SD host controller 24 by writing the timeout value in the timeout value register 242 in the SD host controller 24.
  • the timeout value may be a predetermined fixed value.
  • the SD host controller 24 holds a flag (PCIe Ferr: PCIe Material error) indicating that a PCIe error has occurred in the PCIe / NVMe mode.
  • This flag (PCIeFerr) is stored in, for example, the flag register 243 in the SD host controller 24.
  • Flag (PCIeFerr) 0 indicates that a PCIe error has not occurred (default value).
  • Flag (PCIeFerr) 1 indicates that the occurrence of a PCIe error has been detected.
  • the host driver reads the flag (PCIeFerr) from the flag register 243 of the SD host controller 24.
  • the host driver tells the host driver that the operation mode of the memory card 3 is from SD mode to PCIee. Controls the SD host controller 24 so that it is changed to / NVMe mode.
  • the host driver tells the memory card 3 whether or not the memory card 3 inserted in the connector supports the PCIe / NVMe mode.
  • the SD host controller 24 is controlled so as to operate in the SD mode. That is, even if the memory card 3 supports the PCIe / NVMe mode, the host driver controls the memory card 3 using the SD mode. This prevents the memory card 3 from being used again in the PCIe / NVMe mode, which causes the PCIe error to occur again.
  • the SD host controller 24 can be controlled so that the operation mode of is changed from the SD mode to the PCIe / NVMe mode.
  • FIG. 3 is a diagram illustrating a timer count in PCIe error detection executed in the host device 2 according to the embodiment.
  • the horizontal axis direction represents time
  • the upper row represents the card presence detection signal PRSNT #
  • the lower row represents the reset signal PERST #.
  • the solid line represents the voltage level of each signal (card presence detection signal PRSNT #, reset signal PERST #) at a certain time.
  • the broken line in the card presence detection signal PRSNT # signal represents the voltage level (High level) when the card presence detection signal PRSNT # is in the deasserted state.
  • the card presence detection signal PRSNT # is maintained in the asserted state (Low level).
  • the state in which the voltage is lower than the deasserted state is the state in which the reset signal PERST # is asserted. That is, at the timings (a) and (c), the reset signal PERST # transitions from the deassert state to the assert state.
  • ResTimer 241 starts counting the elapsed time from the initial value (for example, 0). By this counting operation, the time length in which both the card presence detection signal PRSN # signal and the reset signal PERST # are asserted is measured. The ResTimer 241 raises a timeout event when the elapsed time count value reaches the timeout value of the timeout value register 242.
  • Timing (b) indicates the time when the elapsed time from timing (a) reaches the timeout value.
  • the reset signal PERST # transitions from the assert state to the deassert state before the timing (b). Will be reset. In this case, the timeout event does not occur. Therefore, it is possible to prevent a short reset for retry from being detected as a PCIe error (unrecoverable error) in the PCIe / NVMe mode.
  • Timing (d) indicates the time when the elapsed time from timing (c) reaches the timeout value.
  • the reset signal PERST # asserted at the timing (c) is in the asserted state while the timeout value or more. Be maintained. Therefore, a timeout event occurs at the timing (d).
  • the SD host controller 24 detects that a PCIe error (unrecoverable error) has occurred in the PCIe / NVMe mode.
  • FIG. 4 is a flowchart showing a procedure of interrupt factor identification processing executed in the host device 2 according to the embodiment.
  • the host driver first reads the interrupt status stored in the status register in the SD host controller 24 (step S11), and based on the read interrupt status, the cause of the generated interrupt signal is "card insertion” or “card insertion”. It identifies whether it is “card removal” or "PCIe error” (step S12).
  • the host driver executes card insertion interrupt processing (step S13).
  • the host driver temporarily sets the operation mode of the memory card 3 to the SD mode, confirms whether the memory card 3 supports the PCIe / NVMe mode by using the CMD8, and sets the flag ( Read PCIeFerr) to check if a PCIe error has occurred, and based on these check results, execute the SD mode initialization process or the process to change the operation mode of the memory card 3 to PCIe / NVMe mode. ..
  • the details of the card insertion interrupt process will be described later with reference to FIG.
  • the host driver executes the card eject interrupt process.
  • the card eject interrupt process for example, a process of deasserting the card presence detection signal PRSN # signal, a process of turning off VDD1 and VDD2, and the like are executed.
  • the host driver executes the PCIe error interrupt processing.
  • the PCIe error interrupt process a process of changing the operation mode of the memory card 3 from the PCIe / NVMe mode to the SD mode is executed.
  • FIG. 5 is a flowchart showing a procedure of PCIe error interrupt processing executed in the host device 2 according to the embodiment.
  • the host driver When the host driver is started by the CPU 21 by an interrupt signal caused by a "PCIe error", the host driver first controls the SD host controller 24 to transition the card existence detection signal PRSNT # to the deasserted state (step S21). ). The connection between the PCIe interface controller 231 and the memory card 3 is disconnected in response to the transition from the assert state to the deassert state of the card existence detection signal PRSNT #.
  • the host driver controls the SD host controller 24 to turn off the second power supply voltage VDD2 (step S22).
  • the host driver controls the SD host controller 24 and starts supplying the SD clock (SD CLK) to the memory card 3 (step S23).
  • SD CLK SD clock
  • the host driver starts the initialization process of the SD mode (step S24).
  • an interrupt signal due to the PCIe error is transmitted from the SD host controller 24 to the system controller 231 to transmit the PCIe / NVMe mode. Can be transitioned to SD mode.
  • FIG. 6 is a flowchart showing a procedure of the operation mode switching process executed in the host device 2 according to the embodiment.
  • the flag (PCIe Ferrr) is reset to the default value (initial value) so that the use of the PCIe / NVMe mode is not prohibited when a new memory card is inserted into the connector.
  • the host driver controls the SD host controller 24 to turn on the first power supply voltage VDD1 (step S32). Specifically, the SD host controller 24 supplies the first power supply voltage control signal VDD1-ON for turning on VDD1 to the power supply circuit 25. Then, the host driver controls the SD host controller 24 to supply the SD clock to the memory card 3 (step S33). As a result, the memory card 3 starts operating in the SD mode.
  • the host driver controls the SD host controller 24, and the SD command "CMD8" in which the bit “PCIe Availability" for checking whether the memory card 3 supports the PCIe / NVMe mode is set to 1.
  • the SD command "CMD8” is a command for inquiring the capacity of the memory card 3 to the memory card 3.
  • the memory card 3 Upon receiving the SD command "CMD8", the memory card 3 returns a response "R7” including a bit "PCIe Response” indicating whether or not the PCIe / NVMe mode is supported to the SD host controller 24.
  • PCIe Response 1 indicates that the memory card 3 supports the PCIe / NVMe mode.
  • PCIe Response 0 indicates that the memory card 3 does not support the PCIe / NVMe mode.
  • the host driver issues the SD command "CMD8" with the bit "PCIe Availability” set to 1 again to the memory card 3. do.
  • the maximum number of times to retry the issuance of the SD command "CMD8" is determined according to the implementation of the host driver.
  • the host driver reads the bit "PCIe Response” included in the response "R7" from the SD host controller 24, and reads the flag (PCIe Ferrr) from the SD host controller 24.
  • the host driver determines the operation mode to be used for controlling the memory card 3 based on the read bit "PCIe Response” and the read flag (PCIe Ferrr) (step S35).
  • the host driver executes the SD mode initialization process (step S36). As a result, the memory card 3 is maintained in the SD mode.
  • step S37 the host driver controls the SD host controller 24 to stop the supply of the SD clock to the memory card 3.
  • the host driver also controls the SD host controller 24 to generate an interrupt signal due to the "card insertion” event, generate an interrupt signal due to the "card eject” event, and generate an interrupt signal due to the "PCIe error” event. Enable generation of.
  • the host driver also controls the SD host controller 24 to turn on VDD2, and controls the SD host controller 24 to assert the card presence detection signal PRSNT #.
  • the PCIe interface controller 231 starts operation.
  • the operation mode of the memory card 3 is changed to the PCIe / NVMe mode.
  • the host driver transitions to the sleep state (step S38).
  • the host driver When the host driver is started by the CPU 21 due to the restart of the OS, the host driver first determines whether or not the memory card 3 is inserted in the connector in a specific register in the SD host controller 24. By checking the value, it is determined whether or not the memory card 3 is inserted in the connector (step S41). If power is continuously supplied to the host controller 24 during the restart of the OS, the values of each register in the host controller 24 are saved. If the power supply to the host controller 24 is stopped during the restart of the OS, the value of each register is set to the initial value. When the memory card 3 is inserted in the connector, the value of a specific register indicating whether or not the memory card 3 is inserted in the connector indicates that the power supply to the host controller 24 is stopped during the restart of the OS.
  • the value is once set to indicate that the memory card 3 is not inserted in the connector, but when the power is supplied to the host controller 24 again, it indicates that the memory card 3 is inserted in the connector.
  • the OS is restarted without replacing the memory card 3 and power is supplied to the host controller 24 during the restart of the OS after the occurrence of the PCIe error of the memory card 3 is detected.
  • the operation mode of the memory card 3 is changed again from the SD mode to the PCIe / NVMe mode, and the occurrence of the PCIe error is detected again.
  • the host driver can recognize the occurrence of the PCIe error, the operation mode of the memory card 3 can be returned to the SD mode. Further, the host driver can also notify the user of the occurrence of an error in the PCIe / NVMe mode.
  • step S41 the host driver proceeds to the process of step S32.
  • the host driver controls the SD host controller 24 to turn on the first power supply voltage VDD1 (step S32). Specifically, the SD host controller 24 supplies the first power supply voltage control signal VDD1-ON for turning on VDD1 to the power supply circuit 25. Then, the host driver controls the SD host controller 24 to supply the SD clock to the memory card 3 (step S33). As a result, the memory card 3 starts operating in the SD mode.
  • the host driver controls the SD host controller 24 and transmits the SD command "CMD8" in which the bit “PCIe Availability” is set to 1 to the memory card 3.
  • the memory card 3 Upon receiving the SD command "CMD8", the memory card 3 returns a response "R7” including a bit “PCIe Response” indicating whether or not the PCIe / NVMe mode is supported to the SD host controller 24.
  • the host driver reads the bit "PCIe Response” included in the response "R7" from the SD host controller 24, and reads the flag (PCIe Ferrr) from the SD host controller 24.
  • the host driver determines the operation mode to be used for controlling the memory card 3 based on the read bit "PCIe Response” and the read flag (PCIe Ferrr) (step S35).
  • the host driver executes the SD mode initialization process (step S36). As a result, the memory card 3 is maintained in the SD mode.
  • the host driver will operate the SD host controller so that the memory card 3 operates in SD mode, regardless of whether the memory card 3 supports PCIe / NVMe mode. 24 is controlled. That is, even if the memory card 3 supports the PCIe / NVMe mode, the host driver controls the memory card 3 using the SD mode. As a result, it is possible to prevent the PCIe error from occurring again.
  • the host driver controls the SD host controller 24 to switch to the PCIe / NVMe mode. Execute (step S37). Then, the host driver transitions to the sleep state (step S38).
  • step S41 when the memory card 3 is not inserted in the connector (NO in step S41), the host driver immediately transitions to the sleep state (step S38).
  • step S51 Even when CMD0 is issued by the host driver (step S51), the process from step S32 is executed.
  • the SD host controller 24 has the memory card 3 as the PCIe.
  • VDD2 is turned on with VDD1 turned on and the card presence detection signal PRSNT # so that the operation mode of the memory card 3 is changed from SD mode to PCIe / NVMe mode. Is asserted.
  • the SD host controller 24 monitors the reset signal PERST #.
  • the SD host controller 24 causes an error (unrecoverable error) in the PCIe / NVMe mode. Detects that and generates an interrupt signal to start the host driver. This interrupt signal starts the host driver. Therefore, even in an environment where a standard PCIe / NVMe driver is used, the operation mode of the memory card 3 can be returned to the SD mode.
  • the memory card 3 is realized as an SD Express card, but the configuration of the host device 2 of the present embodiment is a first configuration in which the host device 2 communicates with the host device 2 via the first interface. It is applicable to various memory cards that support the operation mode and the second operation mode of communicating with the host device 2 via a second interface different from the first interface.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Noodles (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
  • Radiation-Therapy Devices (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

メモリカードが第2動作モードである間、ホストコントローラは、第2動作モード用のリセット信号を監視し、カード存在検出信号と第2動作モード用のリセット信号の双方が共にアサートされている期間が第1期間以上続いたことを条件に、第2動作モードにおいてエラーが発生したことを検出する。ホストコントローラは、エラーの発生の検出に応じて、第1のドライバを起動するための第1の割り込み信号を発生する。第1のドライバは、第1の割り込み信号の発生に起因して起動された場合、ホストコントローラを制御することによって、メモリカードの動作モードを第2動作モードから第1動作モードに変更する。

Description

ホスト装置およびメモリシステム
 本発明の実施形態は、メモリカードを制御するホスト装置およびメモリシステムに関する。
 近年、様々なメモリカードが広く普及している。メモリカードは、パーソナルコンピュータ、モバイル通信デバイス、ゲーム機、カメラ、車載機器等の様々なホスト装置において使用されている。
 メモリカードの例としては、SD(登録商標)カードが知られている。最近では、2種類の動作モードをサポートする新たなメモリカードも開発されている。
米国特許出願公開第2020/0090020号明細書 国際公開第2018/186457号
 本発明が解決しようとする課題は、2種類の動作モードをサポートするメモリカードの制御に有用なホスト装置およびメモリシステムを提供することである。
 実施形態によれば、ホスト装置は、メモリカードを制御可能である。前記メモリカードは、第1インタフェースを介して前記ホスト装置と通信する第1動作モードおよび前記第1インタフェースとは異なる第2インタフェースを介して前記ホスト装置と通信する第2動作モードをサポートする。前記ホスト装置は、ホストコントローラと、電源回路と、通信制御回路とを具備する。前記ホストコントローラは、前記ホスト装置内のプロセッサによって実行されるプログラムである第1のドライバの制御の下、前記第1インタフェースを介して前記メモリカードを制御する。前記電源回路は、前記第1動作モードおよび前記第2動作モードの双方に必要な第1電源電圧と、前記第2動作モードのみに必要な、前記第1電源電圧よりも低い第2電源電圧とを、前記メモリカードに供給可能である。前記通信制御回路は、前記プロセッサによって実行されるプログラムである第2のドライバの制御の下、カード存在検出信号のアサートに応じて、前記第2インタフェースを介して前記メモリカードとの通信を開始する。前記ホストコントローラは、前記メモリカードが前記第2動作モードをサポートしている場合、前記メモリカードの動作モードが前記第1動作モードから前記第2動作モードに変更されるように、前記第1電源電圧がオンされている状態で前記第2電源電圧をオンし、且つ前記通信制御回路への前記カード存在検出信号をアサートする。前記ホストコントローラは、前記メモリカードが前記第2動作モードである間、前記通信制御回路から出力される前記第2動作モード用のリセット信号を監視する。前記カード存在検出信号と前記第2動作モード用の前記リセット信号の双方が共にアサートされている期間が第1期間以上続いた場合、前記ホストコントローラは、前記第2動作モードにおいてエラーが発生したことを検出し、前記エラーの発生の検出に応じて、前記第1のドライバを起動するための第1の割り込み信号を生成する。前記第1のドライバは、前記第1の割り込み信号に起因して前記プロセッサによって起動された場合、前記ホストコントローラを制御することによって、前記メモリカードの動作モードを前記第2動作モードから前記第1動作モードに変更する。
実施形態に係るホスト装置を含むメモリシステムの構成例を示すブロック図。 実施形態に係るホスト装置に含まれるSDホストコントローラとPCIeインタフェースコントローラとの間の接続関係を示すブロック図。 実施形態に係るホスト装置において実行されるPCIeエラー検出処理におけるタイマーカウントについて説明する図。 実施形態に係るホスト装置において実行される割り込み要因識別処理の手順を示すフローチャート。 実施形態に係るホスト装置において実行されるPCIeエラー割り込み処理の手順を示すフローチャート。 実施形態に係るホスト装置において実行される動作モード切り替え処理の手順を示すフローチャート。
 以下、図面を参照して、実施形態を説明する。
 図1は、実施形態に係るホスト装置2を含むメモリシステム1の構成例を示すブロック図である。
 メモリシステム1は、ホスト装置2とメモリカード3とを含む。メモリカード3は、ホスト装置2内のコネクタに挿入可能なリムーバブルストレージデバイスである。メモリカード3は、例えば、不揮発性メモリと、この不揮発性メモリを制御するコントローラとを含む。メモリカード3は、メモリカード3内の不揮発性メモリにデータを書き込み、この不揮発性メモリからデータを読み出すように構成されている。
 メモリカード3は、第1インタフェースを介してホスト装置2と通信する第1動作モードと、第1インタフェースとは異なる第2インタフェースを介してホスト装置2と通信する第2動作モードとの2種類の動作モードをサポートしている。つまり、メモリカード3は、第1動作モードおよび第2動作モードでそれぞれ動作するように構成されている。
 第1インタフェースは、例えば、メモリカード用の既存のインタフェースである。第2インタフェースは、例えば、PCI Express(PCIe)(登録商標)のような汎用インタフェースである。
 メモリカード3は、これに限定されないが、例えば、SD Expressカード(登録商標)として実現されていてもよい。メモリカード3がSD Express カードとして実現されている場合においては、SDカード用の既存のインタフェースであるSDインタフェースが第1インタフェースとして使用され、PCIeインタフェースが第2インタフェースとして使用される。
 SD Expressカードは、SDモードと、PCIe/NVMeモードの2種類の動作モードの双方をサポートしている。SDモードは、SDインタフェースを介してホスト装置2と通信する動作モードである。PCIe/NVMeモードは、PCIeインタフェースを介してホスト装置2と通信する動作モードである。
 ホスト装置2は、第1インタフェースと第2インタフェースの双方を備えている。ホスト装置2は、第1動作モードを使用してメモリカード3を制御することができ、また第2動作モードを使用してメモリカード3を制御することもできる。
 以下では、メモリカード3がSD Expressカードである場合を例示して、ホスト装置2の構成について説明する。
 ホスト装置2は、メモリカード3と接続可能な情報処理装置である。ホスト装置2の例は、パーソナルコンピュータ、サーバコンピュータ、携帯端末、車載機器などである。ホスト装置2は、CPU21と、システムメモリ22と、システムコントローラ23と、SDホストコントローラ24と、電源回路25と、スイッチ回路26とを含む。
 CPU21は、システムコントローラ23と、SDホストコントローラ24とを制御するように構成されたプロセッサである。CPU21は、システムコントローラ23を介してシステムメモリ22へアクセスする。また、CPU21は、システムコントローラ23を介してSDホストコントローラ24を制御する。システムコントローラ23とSDホストコントローラ24との間のインタフェースは特に限定されないが、SDホストコントローラ24は、例えばPCIeインタフェースを介してシステムコントローラ23に接続される。システムコントローラ23には、PCIeインタフェースコントローラ231、および割り込みコントローラ232等が含まれている。
 CPU21は、システムメモリ22に格納されている制御プログラム(オペレーティングシステム(OS)、ホストドライバ、PCIe/NVM Express(NVMe)(登録商標)ドライバ、等)を実行するように構成されたプロセッサである。ホストドライバは、CPU21によって実行されるプログラム(ソフトウェアドライバ)である。CPU21は、ホストドライバを実行することによってSDホストコントローラ24の動作を制御する。PCIe/NVMeドライバは、CPU21によって実行されるプログラム(ソフトウェアドライバ)である。CPU21は、PCIe/NVMeドライバを実行することによってPCIeインタフェースコントローラ231の動作を制御する。
 以下では、ホストドライバおよびPCIe/NVMeドライバを実行することによってCPU21によって行われる動作を、ホストドライバおよびPCIe/NVMeドライバによって実行される動作として説明する。
 システムメモリ22は、ホスト装置2に設けられたメインメモリである。システムメモリ22は、例えば、ダイナミックRAM(DRAM)によって実現される。
 電源回路25は、SDホストコントローラ24の制御の下、ホスト装置2のコネクタに挿入されたメモリカード3に、二種類の電源電圧、つまり第1電源電圧であるVDD1(3.3V)と、第2電源電圧であるVDD2(1.8V)とを供給する。VDD1(3.3V)は、メモリカード3がSDモードで動作するために必要な電源電圧である。一方、メモリカード3がPCIe/NVMeモードで動作するためには、VDD1(3.3V)とVDD2(1.8V)の双方をメモリカード3に供給することが必要とされる。
 電源回路25は、SDホストコントローラ24からの第1の電源電圧制御信号VDD1―ONに応じて電源電圧VDD1のオン/オフを制御する。また、電源回路25は、SDホストコントローラ24からの第2の電源電圧制御信号VDD2―ONに応じて電源電圧VDD2のオン/オフを制御する。
 より詳しくは、電源回路25は、第1の電源制御信号VDD1-ONがHighレベルになると第1電源電圧VDD1をオンし、第1の電源制御信号VDD1-ONがLowレベルになると、第1電源電圧VDD1をオフする。また、電源回路25は、第2の電源制御信号VDD2-ONがHighレベルになると第2電源電圧VDD2をオンし、第2の電源制御信号VDD2-ONがLowレベルになると第2電源電圧VDD2をオフする。
 メモリカード3においては、電源電圧VDD1はメモリカード3の電源端子であるVDD1端子に供給される。電源電圧VDD2はメモリカード3のもう一つの電源端子であるVDD2端子に供給される。
 SDホストコントローラ24は、ホストドライバの制御の下、第1インタフェース(ここではSDインタフェース)を介してメモリカード3を制御するように構成されたホストコントローラである。SDインタフェースは、クロック信号SD CLK、SDコマンドSD CMD、4ビットデータ信号DAT[3:0]を含む。本実施形態では、SDホストコントローラ24は、SDインタフェースを介してメモリカード3と通信する他、ホストドライバの制御の下、メモリカード3の動作モードをSDモードからPCIe/NVMeモードに変更するための処理と、メモリカード3の動作モードをPCIe/NVMeモードからSDモードに戻すための処理も実行する。
 具体的には、SDホストコントローラ24は、ホストドライバの制御の下、第1電源電圧VDD1のオン/オフを制御する第1の電源制御信号VDD1―ONと、第2電源電圧VDD2のオン/オフを制御する第2の電源制御信号VDD2―ONとを、電源回路25に個別に供給する。
 SDホストコントローラ24は、まず、第1電源電圧VDD1をオンし且つクロック信号SD CLKをメモリカード3に供給することによって、メモリカード3をSDモードで一旦動作させる。クロック信号SD CLKは、メモリカード3内のSDインタフェース回路(不図示)の動作タイミングをSDホストコントローラ24の動作タイミングに同期させるために使用される。クロック信号SD CLKは、メモリカード3のクロックCLK端子に供給される。
 また、SDホストコントローラ24は、SDコマンドSD CMDをメモリカード3に送信する。SDコマンドSD CMDはSDモードを使用してメモリカード3を制御するための様々なコマンドを含む。例えば、このSDコマンドSD CMDには、リード/ライトコマンドのようなI/Oコマンドの他、SDモード用のリセットコマンドであるCMD0、メモリカード3がサポートしている機能をチェックするためのコマンドであるCMD8、等が含まれる。SDコマンドSD CMDは、メモリカード3のコマンドCMD端子に供給される。
 また、SDホストコントローラ24は、スイッチ回路26を介して4ビットデータ信号DAT[3:0]をメモリカード3に送信する処理、およびスイッチ回路26を介して4ビットデータ信号DAT[3:0]をメモリカード3から受信する処理を実行する。
 また、SDホストコントローラ24は、メモリカード3が挿入可能なコネクタ(不図示)からカード検出信号Card Detectionを受信する。カード検出信号Card Detectionは、コネクタにメモリカード3が挿入されたこと、およびコネクタからメモリカード3が抜かれた(以下、取り出し(removal)と称する)ことを示す信号である。コネクタにメモリカード3が挿入されると、コネクタは、コネクタにメモリカード3が挿入されたことを示す所定の電圧レベルを有するカード検出信号Card Detectionを出力する。また、コネクタからメモリカード3が取り出されると、コネクタは、コネクタからメモリカード3が取り出されたことを示す別の所定の電圧レベルを有するカード検出信号Card Detectionを出力する。SDホストコントローラ24は、カード検出信号Card Detectionの電圧レベルの変化に基づいて、メモリカード3の挿入/取り出しを検出することができる。カード検出信号Card Detectionの信号電圧レベルは、メモリカード3の検出方式によって異なる。例えば、カード検出信号Card Detection線をプルアップするプルアップ方式が使用された場合には、コネクタにメモリカード3が挿入されると、コネクタは、コネクタにメモリカード3が挿入されたことを示すロウレベルのカード検出信号Card Detectionを出力する。また、コネクタからメモリカード3が取り出されると、コネクタは、コネクタからメモリカード3が取り出されたことを示すハイレベルのカード検出信号Card Detectionを出力する。
 また、コネクタにメモリカード3が挿入され、且つこのメモリカード3がPCIe/NVMeモードをサポートしていることをCMD8で検出した場合、メモリカード3の動作モードがSDモードからPCIe/NVMeモードに変更されるように、SDホストコントローラ24は、第1電源電圧VDD1がオンされている状態で第2電源電圧VDD2をオンし且つPCIeインタフェースコントローラ231へのカード存在検出信号PRSNT#をアサートする。カード存在検出信号PRSNT#は、ホスト装置2にPCIe/NVMeモードをサポートしているメモリカード3が接続されたこと、換言すれば、PCIeインタフェースコントローラ231にPCIe/NVMeデバイスが接続されたことを示す信号である。なお、信号をアサートするとは、信号の電圧レベルをアクティブレベルに設定することを意味する。また、信号をデアサートするとは、信号の電圧レベルをインアクティブレベルに設定することを意味する。
 カード存在検出信号PRSNT#はロウアクティブ信号であるので、PCIeインタフェースコントローラ231へのカード存在検出信号PRSNT#がアサートされると、カード存在検出信号PRSNT#の電圧はLowレベルに設定される。PCIeインタフェースコントローラ231は、カード存在検出信号PRSNT#のアサートに応じて、PCIe/NVMeドライバを用いてPCIeインタフェースを介してメモリカード3との通信を開始するように構成されている。このようにして、メモリカード3の動作モードはPCIeモードに変更される。
 メモリカード3の動作モードがPCIe/NVMeモードである間、SDホストコントローラ24は、PCIeインタフェースコントローラ231からスイッチ回路26へ出力されるPCIeインタフェース用のサイドバンド信号の一つであるリセット信号PERST#を監視する。つまり、SDホストコントローラ24は、PCIeインタフェースコントローラ231からスイッチ回路26へ出力されるリセット信号PERST#を入力するための入力端子を有している。この入力端子は、PCIeインタフェースコントローラ231とスイッチ回路26との間のリセット信号PERST#線に接続されている。リセット信号PERST#は、PCIe/NVMeモード用のリセット信号である。リセット信号PERST#は、PCIeインタフェースコントローラ231からスイッチ回路26を介してメモリカード3へ供給される。リセット信号PERST#がアサートされると、メモリカード3内に含まれているPCIeインタフェース回路(不図示)が初期状態にリセットされる(リセット状態)。また、リセット信号PERST#がPCIeインタフェースコントローラ231によってデアサートされると、メモリカード3内に含まれているPCIeインタフェース回路のリセット状態が解除され、これによってメモリカード3内に含まれているPCIeインタフェース回路が動作を開始する。
 システムコントローラ23は、CPU21、システムメモリ22、およびSDホストコントローラ24にそれぞれ接続されている。またシステムコントローラ23には、上述したPCIeインタフェースコントローラ231と割り込みコントローラ232とが含まれている。
 PCIeインタフェースコントローラ231は、PCIe/NVMeドライバの制御の下、PCIeインタフェースを介してメモリカード3と通信する通信制御回路である。
 SDホストコントローラ24によってカード存在検出信号PRSNT#がアサートされた場合、PCIeインタフェースコントローラ231は、PCIeインタフェースを介してメモリカード3との通信を開始する。より詳しくは、カード存在検出信号PRSNT#がアサートされると、PCIe/NVMeドライバが起動され、PCIe/NVMeドライバの制御の下、PCIeインタフェースコントローラ231がPCIeインタフェースの初期化処理を開始する。PCIeインタフェースの初期化処理が完了すると、PCIe/NVMeドライバの制御の下、PCIeインタフェースコントローラ231は、PCIeインタフェースを介してメモリカード3へのリード/ライトアクセスを開始する。
 PCIeインタフェースは、信号群、つまり、2つのサイドバンド信号(リセット信号PERST#、クロック要求信号CLKREQ#)と、差動レファレンスクロック信号REFCLK―P、REFCLK―Nと、差動送信信号Tx―P、Tx―Nと、差動受信信号Rx―P、Rx―Nとを含む。信号名に後続する記号#は、この信号がロウアクティブ信号であることを表している。
 リセット信号PERST#は、上述したように、PCIe/NVMeモード用のリセット信号である。クロック要求信号CLKREQ#は、PCIeインタフェースコントローラ231に対して差動レファレンスクロック信号の送信を要求する信号である。クロック要求信号CLKREQ#は、メモリカード3からスイッチ回路26を介してPCIeインタフェースコントローラ231に供給される。差動レファレンスクロック信号REFCLK―P、REFCLK―Nは、メモリカード3内にクロック発振器を不要とし、メモリカード3内のクロック回路の構成を簡素化できるようにしている。
 2本のサイドバンド信号線(リセット信号PERST#線、クロック要求信号CLKREQ#線)と、2本のレファレンスクロック信号REFCLK―P、REFCLK―N線は、スイッチ回路26を介してメモリカード3のDAT[3:0]端子に接続される。
 差動送信信号Tx―P、Tx―Nは、PCIeインタフェースコントローラ231からメモリカード3へコマンド、データ等を伝送するために使用される。差動受信信号Rx―P、Rx―Nは、メモリカード3からPCIeインタフェースコントローラ231へレスポンス、データ等を伝送するために使用される。
 ところで、メモリカード3の動作モードがPCIe/NVMeモードである間は、メモリカード3およびPCIeインタフェースコントローラ231の各々の動作はPCIe/NVMeドライバによって制御される。PCIeインタフェースコントローラ231を最新のPCIe/NVMe仕様に準拠して制御できるようにするために、このPCIe/NVMeドライバとしては、標準PCIe/NVMeドライバを使用することが好ましい。PCIe/NVMeドライバをカスタマイズしてしまうと、標準PCIe/NVMeドライバが更新される毎に、PCIe/NVMeドライバをカスタマイズし直す必要が発生してしまう。
 標準PCIe/NVMeドライバはホストドライバとは独立したソフトウェアドライバであるので、ホストドライバと通信するための特別な機能は有していない。また、メモリカード3がPCIe/NVMeモードである間は、ホストドライバは、CPU21のリソースを消費しないように、スリープ状態に設定される。
 このため、標準PCIe/NVMeドライバが使用されている環境においては、PCIeの初期化処理中にまたはPCIe/NVMeモードにおけるメモリアクセス動作中に何らかのエラーが発生すると、メモリカード3はPCIe/NVMeモードにおいてフリーズしてしまい、これによってメモリカード3を使用することができなくなる。
 この場合、メモリカード3の動作モードをPCIe/NVMeモードからSDモードに戻すためには、ユーザが一旦メモリカード3を抜いてコネクタに再度挿入するか、OSを再起動しなければならない。また、PCIe/NVMeモードでエラーが発生したことを示す情報をどこかに保持しておき、メモリカード3をSDモードで起動するようにする必要がある。
 本実施形態では、標準PCIe/NVMeドライバが使用されている環境においても、PCIe/NVMeモードにおいて発生するエラーに対処できるようにするために、SDホストコントローラ24によってPCIe/NVMeモードにおけるエラーの発生が検出される。そして、PCIe/NVMeモードにおけるエラーの発生の検出に応じて、SDホストコントローラ24は、ホストドライバを起動するための割り込み信号を生成する。この割り込み信号に起因して、CPU21によってホストドライバが起動された場合、ホストドライバは、SDホストコントローラ24を制御することによって、メモリカード3の動作モードをPCIe/NVMeからSDモードに変更するための処理を実行する。
 これにより、PCIe/NVMeドライバにホストドライバと通信するための特別な機能を追加することなく、メモリカード3の動作モードをSDモードに自動的に戻すことができる。よって、ユーザが一旦メモリカード3を抜いて挿し直すという操作を行わずとも、メモリカード3をSDモードで動作させることが可能となる。
 PCIeインタフェースの初期化処理中またはPCIe/NVMeモードにおけるメモリアクセス中に何らかのエラー(例えば、メモリカード3内のPCIeインタフェース回路のエラー、等)が発生した場合、通常、リセット信号PERST#がアサートされた状態が比較的長い間続く。リセット信号PERST#がアサートされた状態が長い間続くという現象を利用して、SDホストコントローラ24は、PCIe/NVMeモードにおいてエラーが発生したことを検出する。PCIeインタフェースの初期化処理中またはPCIe/NVMeモードにおけるメモリアクセス中においては、PCIe/NVMeドライバは、ある失敗した処理のリトライのためにPCIeインタフェースコントローラ231を制御してリセット信号PERST#をアサートする。リトライのためにリセット信号PERST#がアサート状態に維持される期間は、比較的短い。本実施形態では、SDホストコントローラ24は、このようなリトライのための短いリセットを、エラーとして検出しないように構成されている。
 より詳しくは、SDホストコントローラ24は、カード存在検出信号PRSNT#とリセット信号PERST#の双方が共にアサートされている期間が第1期間以上続いたことを条件に、PCIe/NVMeモードにおいてエラーが発生したことを検出する。このエラーは、以下では、PCIeエラー(PCIe Error)としても参照される。
 PCIe/NVMeモードにおいて発生するエラー(PCIeエラー)には回復可能なエラーと、回復不能なエラーとがある。回復可能なエラーとは、たとえある処理に関するエラーが発生しても、所定回数以内のリトライによってこの処理が成功するエラーを意味する。回復不能なエラーとは、所定回数のリトライを実行しても、処理が失敗し続けるエラーを意味する。PCIe仕様においては、回復不能なエラーはFatalエラーとしても参照される。SDホストコントローラ24によって検出されるべきエラーは、PCIe/NVMeモードにおける回復不能なエラーである。回復可能なエラーは、SDホストコントローラ24による検出対象から除外される。
 スイッチ回路26は、4本のデータ信号DAT[3:0]線と、4本のPCIe信号線(リセット信号PERST#線、クロック要求信号CLKREQ#線、差動レファレンスクロック信号REFCLK―P、REFCLK―N線)のいずれか一方を選択し、選択した信号線とメモリカード3のDAT[3:0]端子との間を接続する。
 メモリカード3の動作モードがSDモードである場合、つまり第2の電源電圧制御信号VDD2-ONがLowである場合、スイッチ回路26は、4つのデータ信号DAT[3:0]線を選択し、4つのデータ信号DAT[3:0]線とメモリカード3のDAT[3:0]端子との間をそれぞれ接続する。メモリカード3の動作モードがPCIe/NVMeモードである場合、つまり第2の電源電圧制御信号VDD2-ONがHighである場合、スイッチ回路26は、4つのPCIe信号線(リセット信号PERST#線、クロック要求信号CLKREQ#線、差動レファレンスクロック信号REFCLK―P、REFCLK―N線)を選択し、4つのPCIe信号線とメモリカード3のDAT[3:0]端子との間を接続する。
 次に、SDホストコントローラ24によって生成される割り込み信号について説明する。
 SDホストコントローラ24によって割り込み信号が生成される際の要因には、「カード挿入」、「カード取り出し」、「PCIeエラー」がある。
 「カード挿入」、「カード取り出し」、または「PCIeエラー」が検出されると、CPU21に対する割り込み信号がSDホストコントローラ24によって生成される。この割り込み信号は、割り込みコントローラ232を介してCPU21に供給される。
 「カード挿入」、「カード取り出し」、または「PCIeエラー」の検出に起因する割り込み信号は、ホストドライバを起動するために使用される。割り込み信号によってホストドライバが起動された場合、ホストドライバは、割り込み信号の生成要因(「カード挿入」、「カード取り出し」、または「PCIeエラー」)に応じた割り込み処理を実行する。割り込み処理が終了すれば、ホストドライバをスリープ状態にでき、次の割り込みが入るまで無駄にCPU21を使うことがない。
 「PCIeエラー」に起因する割り込み信号によってホストドライバが起動された場合、ホストドライバは、メモリカード3の動作モードをPCIe/NVMeモードからSDモードに変更するための処理を実行する。
 このように、本実施形態では、SDホストコントローラ24によって「PCIeエラー」の発生が検出された場合、SDホストコントローラ24によって割り込み信号が生成され、これによってホストドライバが起動される。したがって、標準PCIe/NVMeドライバが使用される環境においても、メモリカード3の動作モードをSDモードに戻すことができる。
 図2は、実施形態に係るホスト装置2に含まれるSDホストコントローラ24とPCIeインタフェースコントローラ231との間の接続関係を説明するブロック図である。
 SDホストコントローラ24は、ホスト装置2のコネクタから送信されるカード検出信号Card Detectionの電圧レベルが例えばハイレベルからロウレベルに変化したことを検出して、メモリカード3がコネクタに挿入されたことを検出する。このメモリカード3の挿入の検出に応じて、SDホストコントローラ24は、ホストドライバを起動するための割り込み信号(「カード挿入」割り込み)を生成する。割り込み信号は、割り込みコントローラ232を介してCPU21に入力される。
 ホストドライバは、挿入されたメモリカード3をSDモードで起動し、メモリカード3がPCIe/NVMeモードをサポートしているか否かを確認する。PCIe/NVMeモードをサポートしている場合、ホストドライバは、SDホストコントローラ24を制御してカード存在検出信号PRSNT#をアサートする。カード存在検出信号PRSNT#がアサートされると、PCIeドライバは、PCIeインタフェースコントローラ231を制御してPCIeインタフェースを介してメモリカード3との通信を開始する。
 また、SDホストコントローラ24は、コネクタから送信されたカード検出信号Card Detectionの電圧レベルが例えばロウレベルからハイレベルに変化したことを検出して、メモリカード3がホスト装置2から取り外されたことを検出する。このメモリカード3の取り外しの検出に応じて、SDホストコントローラ24は、ホストドライバを起動するための割り込み信号(「カード取り出し」割り込み)を生成する。ホストドライバは、カード電源(二種類の電源電圧VDD1,VDD2)をオフにする処理などを行う。
 PCIeインタフェースコントローラ231は、PCIe/NVMeモードにおいてエラーが生じた際などに、PCIe/NVMeモード用のリセット信号PERST#をアサートする。SDホストコントローラ24は、PCIeインタフェースコントローラ231から出力されるPCIe/NVMeモード用のリセット信号PERST#を監視する。カード存在検出信号PRSNT#とリセット信号PERST#が同時にアサートされている期間がある期間以上続いた場合、SDホストコントローラ24はPCIeエラーが発生したと判定し、ホストドライバを起動するための割り込み信号(「PCIeエラー」割り込み)を生成する。
 このように、SDホストコントローラ24によって割り込み信号が生成される要因には、「カード挿入」と、「カード取り出し」と、「PCIeエラー」との三種類がある。
 SDホストコントローラ24内のステータスレジスタ(不図示)には割り込み要因を示す割り込みステータスが格納されている。ホストドライバは、SDホストコントローラ24内のステータスレジスタから割り込みステータスをリードすることによって、割り込み要因が「カード挿入」、「カード取り出し」、「PCIeエラー」のいずれであるかを特定することができる。
 次に、SDホストコントローラ24の構成要素について説明する。SDホストコントローラ24は、リセットタイマ(ResTimer)241を含む。
 リセットタイマ(ResTimer)241は、カード存在検出信号PRSNT#とリセット信号PERST#の双方が共にアサートされている期間を測定する。
 PCIeドライバは、リトライを行う時にPCIeインタフェースコントローラ231を制御してPCIe/NVMeモード用リセット信号PERST#を一旦アサートする。この場合、リセット信号PERST#がアサート状態(アクティブ状態=ロウレベル)に維持される期間は比較的短い(短いリセット)。リトライのためにリセット信号PERST#がアサート状態に維持される期間は、例えば、最大1秒である。リセットタイマ(ResTimer)241は、リトライのための短いリセットを検出対象から除外するために使用される。
 リセットタイマ(ResTimer)241は、PCIeインタフェースコントローラ231へのカード存在検出信号PRSNT#がアサートされている状態で、PCIe/NVMeモード用のリセット信号PERST#がアサートされると、初期値(例えば、ゼロ)からカウントを開始する。カード存在検出信号PRSNT#がアサートされている状態でリセット信号PERST#がデアサートされると、リセットタイマ(ResTimer)241によるカウント動作が終了する。デアサートされたリセット信号PERST#が再びアサートされた場合、リセットタイマ(ResTimer)241は、初期値(例えば、ゼロ)からカウントを再び開始する。
 SDホストコントローラ24は、リセットタイマ(ResTimer)241のカウント値と、SDホストコントローラ24のタイムアウト値レジスタ242に格納されているタイムアウト値とを比較する。リセットタイマ(ResTimer)241のカウント値がタイムアウト値以上であることを条件に、SDホストコントローラ24は、PCIe/NVMeモードにおいてPCIeエラー(回復不能エラー)が発生したことを検出する。PCIeエラーの発生の検出に応じて、SDホストコントローラ24は、割り込み信号を生成することによって、ホストドライバを起動する。
 PCIeエラーの発生に起因する割り込みの処理(PCIeエラー割り込み処理)において、ホストドライバは、SDホストコントローラ24を制御することによって、カード存在検出信号PRSNT#をデアサート、電源電圧VDD2をオフにし、これによってメモリカード3の動作モードをSDモードに戻す。これにより、メモリカード3がPCIe/NVMeモードでフリーズしてしまうことを防止でき、メモリカード3を継続して使用することができる。ホストドライバは、PCIe/NVMeモードにおいてPCIeエラーが発生したことを、OSを介してユーザに通知する処理を実行することもできる(ワーニング)。
 ホストドライバは、SDホストコントローラ24内のタイムアウト値レジスタ242にタイムアウト値を書き込むことによって、タイムアウト値をSDホストコントローラ24に対して指定することができる。あるいは、タイムアウト値は予め決定された固定値であってもよい。
 また、SDホストコントローラ24は、PCIe/NVMeモードにおいてPCIeエラーが発生したことを示すフラグ(PCIeFerr:PCIe Fatel error)を保持する。このフラグ(PCIeFerr)は、例えば、SDホストコントローラ24内のフラグレジスタ243に格納される。
 フラグ(PCIeFerr)=0は、PCIeエラーが発生していないことを示す(デフォルト値)。フラグ(PCIeFerr)=1は、PCIeエラーの発生を検出したことを示す。「カード挿入」イベントが発生した場合、フラグ(PCIeFerr)はクリアされて、デフォルト値に設定される。なお、このフラグ(PCIeFerr)はホストコントローラ24に電源が供給されている間保持されるが、ホストコントローラ24への電源の供給が停止されると、フラグ(PCIeFerr)は保持されない。つまり、ホストコントローラ24は、ホストコントローラ24に電源が供給されている間は、PCIeエラーの発生を検出したことを示す値(=1)を示すフラグ(PCIeFerr)を保持する。ホストコントローラ24内のレジスタ群は揮発性である。このため、ホストコントローラ24への電源の供給が停止されると、フラグレジスタ243に格納されているフラグ(PCIeFerr)の内容(=1)は失われる。フラグ(PCIeFerr)は、次のホストコントローラ24の起動時に、PCIeエラーが発生していないことを示すデフォルト値(=0)に設定される。なお、「カード挿入」イベントが発生した場合のみならず、「カード取り出し」イベントが発生した場合も、フラグ(PCIeFerr)をクリアしてデフォルト値に設定することができる。
 OSがユーザによって再起動された場合、ホストドライバは、フラグ(PCIeFerr)をSDホストコントローラ24のフラグレジスタ243から読み出す。
 コネクタに挿入されているメモリカード3がPCIe/NVMeモードをサポートしており且つフラグ(PCIeFerr)が「1」に設定されていない場合、ホストドライバは、メモリカード3の動作モードがSDモードからPCIe/NVMeモードに変更されるようにSDホストコントローラ24を制御する。
 一方、フラグ(PCIeFerr)が「1」に設定されている場合、ホストドライバは、コネクタに挿入されているメモリカード3がPCIe/NVMeモードをサポートしているか否かにかかわらず、メモリカード3がSDモードで動作するようにSDホストコントローラ24を制御する。つまり、たとえメモリカード3がPCIe/NVMeモードをサポートしていても、ホストドライバは、メモリカード3を、SDモードを使用して制御する。これにより、メモリカード3が再びPCIe/NVMeモードで使用され始め、これによってPCIeエラーが再び発生することを防止することができる。なお、ホストコントローラ24への電源の供給が停止されると、フラグレジスタ243に格納されているフラグ(PCIeFerr)の内容(=1)は失われる。そして、フラグ(PCIeFerr)は、次のホストコントローラ24の起動時に、PCIeエラーが発生していないことを示すデフォルト値(=0)に設定される。したがって、ホストコントローラ24への電源の供給が停止されている間にメモリカード3がPCIe/NVMeモードをサポートしている新たなメモリカードに交換された場合は、ホストドライバは、この新たなメモリカードの動作モードがSDモードからPCIe/NVMeモードに変更されるようにSDホストコントローラ24を制御することができる。
 図3は、実施形態に係るホスト装置2において実行されるPCIeエラー検出におけるタイマーカウントについて説明する図である。
 図3においては、横軸方向が時間を表しており、上段がカード存在検出信号PRSNT#、下段がリセット信号PERST#を表している。実線は、ある時刻におけるそれぞれの信号(カード存在検出信号PRSNT#、リセット信号PERST#)の電圧レベルを表している。
 カード存在検出信号PRSNT#信号における破線は、カード存在検出信号PRSNT#がデアサート状態である場合の電圧レベル(Highレベル)を表している。図3においては、メモリカード3がPCIe/NVMeモードである場合が想定されている。このちため、カード存在検出信号PRSNT#はアサート状態(Lowレベル)に維持されている。
 また、リセット信号PERST#も同様に、デアサート状態よりも電圧が落ちている状態がリセット信号PERST#がアサートされている状態である。つまり、タイミング(a)、(c)でリセット信号PERST#はデアサート状態からアサート状態に遷移している。
 タイミング(a)および(c)の各々において、リセット信号PERST#がデアサート状態からアサート状態に遷移されると、ResTimer241は、初期値(例えば0)から経過時間のカウントを開始する。このカウント動作によって、カード存在検出信号PRSNT#信号およびリセット信号PERST#の双方がアサートされている時間長が測定される。ResTimer241は、経過時間のカウント値がタイムアウト値レジスタ242のタイムアウト値に到達すると、タイムアウトイベントを発生させる。
 タイミング(b)は、タイミング(a)からの経過時間がタイムアウト値に到達する時点を示している。図3に示されているように、例えば、タイミング(a)でリトライのための短いリセットが発生した場合には、タイミング(b)の前に、リセット信号PERST#がアサート状態からデアサート状態に遷移される。この場合、タイムアウトイベントは発生しない。よって、リトライのための短いリセットが、PCIe/NVMeモードにおけるPCIeエラー(回復不能エラー)として検出されてしまうことを防ぐことができる。
 タイミング(d)は、タイミング(c)からの経過時間がタイムアウト値に到達する時点を示している。図3に示されているように、PCIe/NVMeモードにおいてPCIeエラー(回復不能エラー)が発生した場合、タイミング(c)でアサートされたリセット信号PERST#は、タイムアウト値以上の間、アサート状態に維持される。したがって、タイミング(d)でタイムアウトイベントが発生する。このタイムアウトイベントが発生したことを条件に、SDホストコントローラ24は、PCIe/NVMeモードにおいてPCIeエラー(回復不能エラー)が発生したことを検出する。
 次に、ホスト装置2において実行される割り込み要因識別処理について説明する。図4は、実施形態に係るホスト装置2において実行される割り込み要因識別処理の手順を示すフローチャートである。
 SDホストコントローラ24によって生成された割り込み信号が割り込みコントローラ232を介してCPU21に入力されると、ホストドライバがCPU21によって起動される。
 ホストドライバは、まず、SDホストコントローラ24内のステータスレジスタに格納されている割り込みステータスを読み出し(ステップS11)、読み出した割り込みステータスに基づいて、生成された割り込み信号の要因が「カード挿入」、「カード取り出し」、「PCIeエラー」のいずれであるかを識別する(ステップS12)。
 生成された割り込み信号の要因が「カード挿入」であった場合、ホストドライバは、カード挿入割り込み処理を実行する(ステップS13)。メモリカード3の挿入割り込み処理では、ホストドライバは、メモリカード3の動作モードを一旦SDモードとし、CMD8を用いてメモリカード3がPCIe/NVMeモードをサポートしているか否かを確認し、フラグ(PCIeFerr)を読み出してPCIeエラーが発生したか否かを確認し、これら確認結果に基づいて、SDモードの初期化処理、またはメモリカード3の動作モードをPCIe/NVMeモードに変更する処理を実行する。カード挿入割り込み処理の詳細は図6で後述する。
 生成された割り込み信号の要因が「カード取り出し」であった場合、ホストドライバは、カード取り出し割り込み処理を実行する。カード取り出し割り込み処理では、例えば、カード存在検出信号PRSNT#信号をデアサートする処理、VDD1およびVDD2をオフする処理等が実行される。
 生成された割り込み信号の要因が「PCIeエラー」であった場合、ホストドライバは、PCIeエラー割り込み処理を実行する。PCIeエラー割り込み処理では、メモリカード3の動作モードをPCIe/NVMeモードからSDモードに変更する処理が実行される。
 図5は、実施形態に係るホスト装置2において実行されるPCIeエラー割り込み処理の手順を示すフローチャートである。
 「PCIeエラー」に起因する割り込み信号によってホストドライバがCPU21によって起動された場合、まず、ホストドライバは、SDホストコントローラ24を制御して、カード存在検出信号PRSNT#をデアサート状態に遷移させる(ステップS21)。カード存在検出信号PRSNT#がアサート状態からデアサート状態に遷移されたことに応じて、PCIeインタフェースコントローラ231とメモリカード3との間の接続が解除される。
 次に、ホストドライバは、SDホストコントローラ24を制御して、第2電源電圧VDD2をオフする(ステップS22)。次いで、ホストドライバは、SDホストコントローラ24を制御して、メモリカード3へのSDクロック(SD CLK)の供給を開始する(ステップS23)。SDクロックの供給が開始された後、ホストドライバは、SDモードの初期化処理を開始する(ステップS24)。
 この動作により、PCIe/NVMeモードでの動作時にエラーが発生し、PCIeエラーの判定がなされた場合、SDホストコントローラ24からシステムコントローラ231にPCIeエラーによる割り込み信号が送信されることによってPCIe/NVMeモードからSDモードへの移行を行うことができる。
 図6は、実施形態に係るホスト装置2において実行される動作モード切り替え処理の手順を示すフローチャートである。
 まず、「カード挿入」に起因する割り込み信号の生成によってホストドライバがCPU21によって起動された場合に実行されるカード挿入割り込み処理について説明する。
 まず、ホストドライバは、SDホストコントローラ24を制御して、フラグレジスタ243に格納されているフラグ(PCIeFerr)をクリアすることによって、フラグ(PCIeFerr)をPCIeエラーが発生していないことを示すデフォルト値(=0)にリセットする(ステップS31)。フラグ(PCIeFerr)をデフォルト値(初期値)にリセットするのは、新たなメモリカードがコネクタに挿入された場合に、PCIe/NVMeモードの使用が禁止されないようにするためである。
 次いで、ホストドライバは、SDホストコントローラ24を制御して、第1電源電圧VDD1をオンする(ステップS32)。具体的には、SDホストコントローラ24は、VDD1をオンするための第1の電源電圧制御信号VDD1―ONを電源回路25に供給する。そして、ホストドライバは、SDホストコントローラ24を制御して、メモリカード3へSDクロックを供給する(ステップS33)。これにより、メモリカード3はSDモードで動作を開始する。
 そして、ホストドライバは、SDホストコントローラ24を制御して、メモリカード3がPCIe/NVMeモードをサポートしているか否かをチェックするためのビット「PCIe Availability」が1に設定されたSDコマンド「CMD8」をメモリカード3に送信する。SDコマンド「CMD8」は、メモリカード3の能力をメモリカード3に問い合わせるためのコマンドである。SDコマンド「CMD8」を受信すると、メモリカード3は、PCIe/NVMeモードをサポートしているか否かを示すビット「PCIe Response」を含むレスポンス「R7」をSDホストコントローラ24に返す。
 PCIe Response=1は、メモリカード3がPCIe/NVMeモードをサポートしていることを示す。PCIe Response=0は、メモリカード3がPCIe/NVMeモードをサポートしていないことを示す。
 メモリカード3からのレスポンス「R7」の受信に失敗した場合(ステップS35のErrorリトライ)、ホストドライバは、ビット「PCIe Availability」が1に設定されたSDコマンド「CMD8」をメモリカード3に再び発行する。SDコマンド「CMD8」の発行をリトライする上限回数はホストドライバの実装に応じて決定される。
 ホストドライバは、レスポンス「R7」に含まれるビット「PCIe Response」をSDホストコントローラ24から読み出し、またフラグ(PCIeFerr)をSDホストコントローラ24から読み出す。
 ホストドライバは、読み出したビット「PCIe Response」と、読み出したフラグ(PCIeFerr)とに基づいて、メモリカード3を制御するために使用すべき動作モードを決定する(ステップS35)。
 メモリカード3がPCIe/NVMeモードをサポートしていない場合(PCIe Response=0)、またはPCIeFerr=1である場合、ホストドライバは、SDモード初期化処理を実行する(ステップS36)。これにより、メモリカード3はSDモードに維持される。
 一方、メモリカード3がPCIe/NVMeモードをサポートしており(PCIe Response=1)且つPCIeFerr=0である場合、ホストドライバは、SDホストコントローラ24を制御して、PCIe/NVMeモードへの切り替えを実行する(ステップS37)。
 ステップS37では、ホストドライバは、SDホストコントローラ24を制御して、メモリカード3へのSDクロックの供給を停止する。またホストドライバは、SDホストコントローラ24を制御して、「カード挿入」イベントに起因する割り込み信号の生成、「カード取り出し」イベントに起因する割り込み信号の生成、「PCIeエラー」イベントに起因する割り込み信号の生成を有効にする。またホストドライバは、SDホストコントローラ24を制御してVDD2をオンし、そして、SDホストコントローラ24を制御してカード存在検出信号PRSNT#をアサートする。カード存在検出信号PRSNT#がアサートされることにより、PCIeインタフェースコントローラ231が動作を開始する。これにより、メモリカード3の動作モードはPCIe/NVMeモードに変更される。そして、ホストドライバは、スリープ状態に遷移する(ステップS38)。
 OSの再起動に起因してホストドライバがCPU21によって起動された場合には、ホストドライバは、まず、コネクタにメモリカード3が挿入されているか否かを示すSDホストコントローラ24内の特定のレジスタの値をチェックすることによって、コネクタにメモリカード3が挿入されているか否かを判定する(ステップS41)。OSの再起動中にホストコントローラ24に電源が供給され続ける場合は、ホストコントローラ24内の各レジスタの値は保存されている。OSの再起動中にホストコントローラ24への電源の供給が停止された場合は、各レジスタの値は初期値に設定される。コネクタにメモリカード3が挿入されている場合は、コネクタにメモリカード3が挿入されているか否かを示す特定のレジスタの値は、OSの再起動中にホストコントローラ24への電源の供給が停止された時に、コネクタにメモリカード3が挿入されていないことを示す値に一旦設定されるが、ホストコントローラ24に電源が再び供給された時に、コネクタにメモリカード3が挿入されていることを示す値に再び設定される。フラグ(PCIeFerr)はホストコントローラ24内のフラグレジスタ243に格納されているので、OSの再起動中にホストコントローラ24に電源が供給され続ける場合は、ホストコントローラ24は、PCIeエラーの発生を検出したことを示す値(=1)を示すフラグ(PCIeFerr)を保持し続ける。一方、OSの再起動中にホストコントローラ24への電源の供給が停止されると、フラグ(PCIeFerr)は、PCIeエラーが発生していないことを示すデフォルト値(初期値=0)に設定される。このように、フラグ(PCIeFerr)が初期値(=0)に設定されるようにしているのは、ホストコントローラ24への電源の供給が停止されている間にメモリカード3が別のメモリカードに交換される場合があるためである。
 なお、OSが再起動された場合にフラグ(PCIeFerr)の内容(=1)を有効に利用できるようにするために、ホスト装置2は、OSの再起動中、少なくともホストコントローラ24へ電源を供給し続けるように構成されていてもよい。この場合、フラグ(PCIeFerr)の内容(=1)は失われない。また、ホストコントローラ24に電源が供給されている間は、ホストコントローラ24のカード検出機能は有効に機能する。したがって、OSの再起動中にメモリカード3が新たなメモリカードに交換された場合には、ホストコントローラ24は、新たなメモリカードの挿入を検出することができ、そしてフラグ(PCIeFerr)をPCIeエラーが発生していないことを示すデフォルト値(初期値=0)に設定することができる。
 メモリカード3のPCIeエラーの発生が検出された後に、メモリカード3が交換されることなくOSが再起動され且つOSの再起動中にホストコントローラ24への電源の供給がされた場合には、メモリカード3の動作モードはSDモードからPCIe/NVMeモードに再び変更され、そして、PCIeエラーの発生が再び検出される。しかし、ホストドライバは、PCIeエラーの発生を認識することができるので、メモリカード3の動作モードをSDモードに戻すことができる。さらに、ホストドライバは、PCIe/NVMeモードにおけるエラーの発生をユーザに通知することもできる。
 図6の説明に戻る。ホストドライバは、コネクタにメモリカード3が挿入されていると判定した場合(ステップS41のYES)、ステップS32の処理に進む。
 ホストドライバは、SDホストコントローラ24を制御して、第1電源電圧VDD1をオンする(ステップS32)。具体的には、SDホストコントローラ24は、VDD1をオンするための第1の電源電圧制御信号VDD1―ONを電源回路25に供給する。そして、ホストドライバは、SDホストコントローラ24を制御して、メモリカード3へSDクロックを供給する(ステップS33)。これにより、メモリカード3はSDモードで動作を開始する。
 そして、ホストドライバは、SDホストコントローラ24を制御して、ビット「PCIe Availability」が1に設定されたSDコマンド「CMD8」をメモリカード3に送信する。SDコマンド「CMD8」を受信すると、メモリカード3は、PCIe/NVMeモードをサポートしているか否かを示すビット「PCIe Response」を含むレスポンス「R7」をSDホストコントローラ24に返す。
 ホストドライバは、レスポンス「R7」に含まれるビット「PCIe Response」をSDホストコントローラ24から読み出し、またフラグ(PCIeFerr)をSDホストコントローラ24から読み出す。
 ホストドライバは、読み出したビット「PCIe Response」と、読み出したフラグ(PCIeFerr)とに基づいて、メモリカード3を制御するために使用すべき動作モードを決定する(ステップS35)。
 メモリカード3がPCIe/NVMeモードをサポートしていない場合(PCIe Response=0)、またはPCIeFerr=1である場合、ホストドライバは、SDモード初期化処理を実行する(ステップS36)。これにより、メモリカード3はSDモードに維持される。
 換言すれば、PCIeFerr=1である場合には、メモリカード3がPCIe/NVMeモードをサポートしているか否かにかかわらず、ホストドライバは、メモリカード3がSDモードで動作するようにSDホストコントローラ24を制御する。つまり、たとえメモリカード3がPCIe/NVMeモードをサポートしていても、ホストドライバは、メモリカード3を、SDモードを使用して制御する。この結果、PCIeエラーが再び発生することを防止することができる。
 一方、メモリカード3がPCIe/NVMeモードをサポートしており(PCIe Response=1)且つPCIeFerr=0である場合、ホストドライバは、SDホストコントローラ24を制御して、PCIe/NVMeモードへの切り替えを実行する(ステップS37)。そして、ホストドライバは、スリープ状態に遷移する(ステップS38)。
 一方、コネクタにメモリカード3が挿入されていない場合(ステップS41のNO)、ホストドライバは、即座にスリープ状態に遷移する(ステップS38)。
 なお、ホストドライバによってCMD0が発行された場合も(ステップS51)、ステップS32からの処理が実行される。
 以上説明したように、本実施形態によれば、PCIe/NVMeモードおよびSDモードで動作可能なメモリカード3とホスト装置2とを含むメモリシステム1において、SDホストコントローラ24は、メモリカード3がPCIe/NVMeモードをサポートしている場合、メモリカード3の動作モードがSDモードからPCIe/NVMeモードに変更されるように、VDD1がオンされている状態でVDD2をオンし且つカード存在検出信号PRSNT#をアサートする。メモリカード3がPCIe/NVMeモードである間、SDホストコントローラ24は、リセット信号PERST#を監視する。カード存在検出信号PRSNT#とリセット信号PERST#の双方が共にアサートされている期間が第1期間以上続いた場合に、SDホストコントローラ24は、PCIe/NVMeモードにおいてエラー(回復不能エラー)が発生したことを検出し、ホストドライバを起動するための割り込み信号を生成する。この割り込み信号によって、ホストドライバが起動される。したがって、標準PCIe/NVMeドライバが使用される環境においても、メモリカード3の動作モードをSDモードに戻すことができる。
 なお、本実施形態では、メモリカード3がSD Express カードとして実現されている場合を想定したが、本実施形態のホスト装置2の構成は、第1インタフェースを介してホスト装置2と通信する第1動作モードおよび第1インタフェースとは異なる第2インタフェースを介してホスト装置2と通信する第2動作モードをサポートする様々なメモリカードに適用可能である。
 本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の趣旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変化は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
 1…メモリシステム、2…ホスト装置、3…メモリカード、21…CPU、22…システムメモリ、23…システムコントローラ、24…SDホストコントローラ、25…電源回路、26…スイッチ回路、231…PCIeインタフェースコントローラ、232…割り込みコントローラ、241…ResTimer、242…タイムアウト値レジスタ、243…フラグレジスタ。

Claims (10)

  1.  第1インタフェースを介してホスト装置と通信する第1動作モードおよび前記第1インタフェースとは異なる第2インタフェースを介して前記ホスト装置と通信する第2動作モードをサポートするメモリカードを制御可能なホスト装置であって、
     前記ホスト装置内のプロセッサによって実行されるプログラムである第1のドライバの制御の下、前記第1インタフェースを介して前記メモリカードを制御するホストコントローラと、
     前記第1動作モードおよび前記第2動作モードの双方に必要な第1電源電圧と、前記第2動作モードのみに必要な、前記第1電源電圧よりも低い第2電源電圧とを、前記メモリカードに供給可能な電源回路と、
     前記プロセッサによって実行されるプログラムである第2のドライバの制御の下、カード存在検出信号のアサートに応じて、前記第2インタフェースを介して前記メモリカードとの通信を開始する通信制御回路とを具備し、
     前記ホストコントローラは、
     前記メモリカードが前記第2動作モードをサポートしている場合、前記メモリカードの動作モードが前記第1動作モードから前記第2動作モードに変更されるように、前記第1電源電圧がオンされている状態で前記第2電源電圧をオンし、且つ前記通信制御回路へ前記カード存在検出信号をアサートし、
     前記メモリカードの動作モードが前記第2動作モードである間、前記通信制御回路から出力される前記第2動作モード用のリセット信号を監視し、
     前記カード存在検出信号と前記第2動作モード用の前記リセット信号の双方が共にアサートされている期間が第1期間以上続いた場合、前記第2動作モードにおいてエラーが発生したことを検出し、
     前記エラーの発生の検出に応じて、前記第1のドライバを起動するための第1の割り込み信号を生成するように構成され、
     前記第1のドライバは、前記第1の割り込み信号に起因して前記プロセッサによって起動された場合、前記ホストコントローラを制御することによって、前記メモリカードの動作モードを前記第2動作モードから前記第1動作モードに変更するように構成されている、ホスト装置。
  2.  前記ホストコントローラは、前記カード存在検出信号と前記リセット信号の双方が共にアサートされている期間を測定するタイマを含み、前記タイマによって測定された期間が前記第1期間に達した場合、前記第2動作モードにおいて前記エラーが発生したことを検出するように構成されている、請求項1記載のホスト装置。
  3.  前記第1のドライバは、
     前記第1の割り込み信号に応じて、
     前記ホストコントローラを制御することによって前記カード存在検出信号をデアサートし、
     前記ホストコントローラを制御することによって前記第2電源電圧をオフし、
     前記ホストコントローラを制御することによって前記第1動作モードの初期化処理を実行するように構成されている、請求項1記載のホスト装置。
  4.  前記ホストコントローラは、前記ホストコントローラに電源が供給されている間は前記第2動作モードにおいて前記エラーが発生したことを示す第1の値に設定されるフラグを保持し、前記ホストコントローラへの電源の供給が停止された場合、前記フラグはエラーがないことを示す初期値に設定され、
     前記第1のドライバは、
     前記ホスト装置のオペレーティングシステムが再起動された場合、
     前記ホストコントローラから前記フラグを読み出し、
     前記メモリカードが前記第2動作モードをサポートしており且つ前記フラグが前記第1の値に設定されていない場合、前記メモリカードの動作モードが前記第1動作モードから前記第2動作モードに変更されるように前記ホストコントローラを制御し、
     前記フラグが前記第1の値に設定されている場合、前記メモリカードが前記第2動作モードをサポートしているか否かにかかわらず、前記メモリカードが前記第1動作モードで動作するように前記ホストコントローラを制御するように構成されている、請求項1記載のホスト装置。
  5.  前記ホストコントローラは、前記ホスト装置のコネクタにメモリカードが挿入されたことを示すカード検出信号に応じて、前記第1のドライバを起動するための第2の割り込み信号を生成し、
     前記第1のドライバは、
     前記第2の割り込み信号に起因して前記プロセッサによって起動された場合、前記フラグをエラーがないことを示す初期値にリセットするように構成されている、請求項4記載のホスト装置。
  6.  ホスト装置とメモリカードとを具備するメモリシステムであって、
     前記メモリカードは、第1インタフェースを介して前記ホスト装置と通信する第1動作モードおよび前記第1インタフェースとは異なる第2インタフェースを介して前記ホスト装置と通信する第2動作モードで動作するように構成され、
     前記ホスト装置は、
     前記ホスト装置内のプロセッサによって実行されるプログラムである第1のドライバの制御の下、前記第1インタフェースを介して前記メモリカードを制御するホストコントローラと、
     前記第1動作モードおよび前記第2動作モードの双方に必要な第1電源電圧と、前記第2動作モードのみに必要な、前記第1電源電圧よりも低い第2電源電圧とを、前記メモリカードに供給可能な電源回路と、
     前記プロセッサによって実行されるプログラムである第2のドライバの制御の下、カード存在検出信号のアサートに応じて、前記第2インタフェースを介して前記メモリカードとの通信を開始する通信制御回路とを具備し、
     前記ホストコントローラは、
     前記メモリカードが前記第2動作モードをサポートしている場合、前記メモリカードの動モードが前記第1動作モードから前記第2動作モードに変更されるように、前記第1電源電圧がオンされている状態で前記第2電源電圧をオンし、且つ前記通信制御回路へ前記カード存在検出信号をアサートし、
     前記メモリカードが前記第2動作モードである間、前記通信制御回路から出力される前記第2動作モード用のリセット信号を監視し、
     前記カード存在検出信号と前記第2動作モード用の前記リセット信号の双方が共にアサートされている期間が第1期間以上続いた場合、前記第2動作モードにおいてエラーが発生したことを検出し、
     前記エラーの発生の検出に応じて、前記第1のドライバを起動するための第1の割り込み信号を生成するように構成され、
     前記第1のドライバは、前記第1の割り込み信号に起因して前記プロセッサによって起動された場合、前記ホストコントローラを制御することによって、前記メモリカードの動作モードを前記第2動作モードから前記第1動作モードに変更するように構成されている、メモリシステム。
  7.  前記ホストコントローラは、前記カード存在検出信号と前記リセット信号の双方が共にアサートされている期間を測定するタイマを含み、前記タイマによって測定された期間が前記第1期間に達した場合、前記第2動作モードにおいて前記エラーが発生したことを検出するように構成されている、請求項6記載のメモリシステム。
  8.  前記第1のドライバは、
     前記第1の割り込み信号に応じて、
     前記ホストコントローラを制御することによって前記カード存在検出信号をデアサートし、
     前記ホストコントローラを制御することによって前記第2電源電圧をオフし、
     前記ホストコントローラを制御することによって前記第1動作モードの初期化処理を実行するように構成されている、請求項6記載のメモリシステム。
  9.  前記ホストコントローラは、前記ホストコントローラに電源が供給されている間は前記第2動作モードにおいて前記エラーが発生したことを示す第1の値に設定されるフラグを保持し、前記ホストコントローラへの電源の供給が停止された場合、前記フラグはエラーがないことを示す初期値に設定され、
     前記第1のドライバは、
     前記ホスト装置のオペレーティングシステムが再起動された場合、
     前記ホストコントローラから前記フラグを読み出し、
     前記メモリカードが前記第2動作モードをサポートしており且つ前記フラグが前記第1の値に設定されていない場合、前記メモリカードの動作モードが前記第1動作モードから前記第2動作モードに変更されるように前記ホストコントローラを制御し、
     前記フラグが前記第1の値に設定されている場合、前記メモリカードが前記第2動作モードをサポートしているか否かにかかわらず、前記メモリカードが前記第1動作モードで動作するように前記ホストコントローラを制御するように構成されている、請求項7記載のメモリシステム。
  10.  前記ホストコントローラは、前記ホスト装置のコネクタにメモリカードが挿入されたことを示すカード検出信号に応じて、前記第1のドライバを起動するための第2の割り込み信号を生成し、
     前記第1のドライバは、
     前記第2の割り込み信号に起因して前記プロセッサによって起動された場合、前記フラグをエラーがないことを示す初期値にリセットするように構成されている、請求項9記載のメモリシステム。
PCT/JP2020/043420 2020-09-17 2020-11-20 ホスト装置およびメモリシステム WO2022059216A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202080103075.6A CN115956236A (zh) 2020-09-17 2020-11-20 主机装置及存储器系统
KR1020237001509A KR20230023781A (ko) 2020-09-17 2020-11-20 호스트 장치 및 메모리 시스템
EP20954200.0A EP4216102A1 (en) 2020-09-17 2020-11-20 Host device and memory system
US18/184,738 US20230221887A1 (en) 2020-09-17 2023-03-16 Host apparatus and memory system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-156163 2020-09-17
JP2020156163A JP2022049882A (ja) 2020-09-17 2020-09-17 ホスト装置およびメモリシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/184,738 Continuation US20230221887A1 (en) 2020-09-17 2023-03-16 Host apparatus and memory system

Publications (1)

Publication Number Publication Date
WO2022059216A1 true WO2022059216A1 (ja) 2022-03-24

Family

ID=80776784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/043420 WO2022059216A1 (ja) 2020-09-17 2020-11-20 ホスト装置およびメモリシステム

Country Status (7)

Country Link
US (1) US20230221887A1 (ja)
EP (1) EP4216102A1 (ja)
JP (1) JP2022049882A (ja)
KR (1) KR20230023781A (ja)
CN (1) CN115956236A (ja)
TW (2) TWI774145B (ja)
WO (1) WO2022059216A1 (ja)

Families Citing this family (2)

* 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
TWI824885B (zh) * 2022-12-15 2023-12-01 慧榮科技股份有限公司 資料儲存裝置與錯誤回復執行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010668A (ja) * 1998-06-18 2000-01-14 Hitachi Ltd メモリカード供給電圧制御方式
JP2003345674A (ja) * 2002-05-29 2003-12-05 Matsushita Electric Ind Co Ltd 入出力装置
WO2018186457A1 (ja) 2017-04-07 2018-10-11 パナソニックIpマネジメント株式会社 スレーブ装置およびホスト装置
US20200090020A1 (en) 2017-06-05 2020-03-19 Kioxia Corporation Memory card, host device, memory card connector, and memory card adapter

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836236B2 (en) * 2004-02-12 2010-11-16 Super Talent Electronics, Inc. Extended secure-digital (SD) devices and hosts
US11003237B2 (en) * 2018-04-12 2021-05-11 Silicon Motion, Inc. Method for performing power management in a memory device, associated memory device and controller thereof, and associated electronic device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010668A (ja) * 1998-06-18 2000-01-14 Hitachi Ltd メモリカード供給電圧制御方式
JP2003345674A (ja) * 2002-05-29 2003-12-05 Matsushita Electric Ind Co Ltd 入出力装置
WO2018186457A1 (ja) 2017-04-07 2018-10-11 パナソニックIpマネジメント株式会社 スレーブ装置およびホスト装置
US20200090020A1 (en) 2017-06-05 2020-03-19 Kioxia Corporation Memory card, host device, memory card connector, and memory card adapter

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "SD Express (SD7.x) Host Implementation Guideline", SD ASSOCIATION, 1 May 2020 (2020-05-01), pages 1 - 21, XP055917395, Retrieved from the Internet <URL:https://www.sdcard.org/cms/wp-content/uploads/2020//11/SD_Express_Design_Guide.pdf> [retrieved on 20220503] *

Also Published As

Publication number Publication date
EP4216102A1 (en) 2023-07-26
TW202213114A (zh) 2022-04-01
TWI774145B (zh) 2022-08-11
KR20230023781A (ko) 2023-02-17
TWI796260B (zh) 2023-03-11
CN115956236A (zh) 2023-04-11
JP2022049882A (ja) 2022-03-30
US20230221887A1 (en) 2023-07-13
TW202331540A (zh) 2023-08-01
TW202240420A (zh) 2022-10-16

Similar Documents

Publication Publication Date Title
US9612761B2 (en) Semiconductor device
US20230221887A1 (en) Host apparatus and memory system
US8880914B2 (en) Information processing apparatus and judging method
US10324645B2 (en) Data storage device and data storage method thereof
US20180210783A1 (en) Information processing apparatus, control method of the same, and storage medium
US10916326B1 (en) System and method for determining DIMM failures using on-DIMM voltage regulators
US20090132798A1 (en) Electronic device and method for resuming from suspend-to-memory state thereof
US6895517B2 (en) Method of synchronizing operation frequencies of CPU and system RAM in power management process
US7024571B1 (en) Conversion card and method to convert a general purpose personal computer into a dedicated mass storage appliance
CN107145198B (zh) 一种提升服务器对硬盘兼容能力的方法及其主板
US7607579B2 (en) Information processing apparatus
US11144109B2 (en) Apparatus, method, and storage medium for controlling a power saving state in a SATA storage system
US11487638B2 (en) Computer program product and method and apparatus for controlling access to flash memory card
CN110096224B (zh) 存储器子系统中的功率控制
TWI840177B (zh) 主機裝置
US7266711B2 (en) System for storing data within a raid system indicating a change in configuration during a suspend mode of a device connected to the raid system
US8041846B2 (en) Apparatus with reduced latency for master and slave storage devices
JP3133492B2 (ja) 情報処理装置
US20060215288A1 (en) Image forming apparatus with power-saving mode
CN112749105B (zh) 一种降低espi总线开销的方法和设备
US20230102777A1 (en) Method of power management
US8046608B2 (en) Method and system for managing power supply to at least one device
TWM626658U (zh) 電腦系統
JP2000305673A (ja) 消費電力を管理する方法及び装置
KR20070063657A (ko) 컴퓨터시스템 및 그 제어방법

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: 20954200

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20237001509

Country of ref document: KR

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: 2020954200

Country of ref document: EP

Effective date: 20230417