Patent Publication Number: US-10776288-B2

Title: Apparatus for adapting interface type of peripheral device and method thereof

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a Continuation of U.S. patent application Ser. No. 16/243,748 filed Jan. 9, 2019, which is a Continuation of U.S. patent application Ser. No. 15/602,787 filed May 23, 2017 now U.S. Pat. No. 10,198,368, which claims the benefit of priority to TW Patent Application No. 105117275, filed on Jun. 1, 2016; the disclosure of which is expressly incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to interface detection technique, especially to a solid state drive control device and method capable of detecting the type of an interface. 
     2. Description of Related Art 
     A conventional solid state drive (SSD) interface is a Serial Advanced Technology Attachment (SATA) interface. However, since the transmission speed of a SATA interface gradually falls behind with the development of high speed transmission technology, some SSD uses a Peripheral Component Interconnect Express (PCI-Express) interface instead. 
     In order to increase compatibility, some SSD is made to support both a SATA interface and a PCI-Express interface. This kind of SSD sets the voltage level of a specific pin, so that a host is operable to detect the voltage level of the pin and appoint the configuration of a port connected to the SSD accordingly. However, after the host finishes the configuration of the port, if the operation mode of the SSD is changed from a first mode (e.g., SATA mode) to a second mode (e.g., a PCI-Express mode), or if the SSD is replaced by another SSD merely in support of the second mode, the host won&#39;t be aware of such change or replacement and won&#39;t change the configuration adaptively; as a result, the SSD or the another SSD won&#39;t be able to establish or keep a normal link between itself and the host. There is another case that the above-mentioned SSD operates under a predetermined mode (e.g., the foresaid first or second mode) by setting of the voltage level of the pin; however, a host connected to the SSD is incapable of detecting the pin while a port configuration appointed by the host for connecting the SSD is not compatible to the predetermined mode, and thus the SSD is not able to be linked up with the host normally. 
     People who are interested in the prior art may refer to the following literatures:
     (1) “ PCI Express M 2 Specification ”, Revision 0.7, Version 1.0, Nov. 27, 2012, PP. 150 (pin 69 PEDET).   (2) “ Serial ATA Revision  3.3 ”, Gold Revision, Feb.  2, 2016, PP. 214 (pin position 69 [Config_1]) &amp; PP. 215 (Table 27).   

     SUMMARY OF THE INVENTION 
     In consideration of the problems of the prior art, an object of the present invention is to provide a solid state drive (SSD) control device and method capable of executing interface detection by a device side, so as to make improvements over the prior art. 
     The present invention discloses a memory control device compatible to multiple types of interface. An embodiment of the memory control device comprises: a multi-interface physical layer circuit configured to couple to a host, to receive a differential signal from the host, to detect at least one of characteristics of the differential signal to generate a physical layer output signal and to generate a physical layer output signal according to a detected result, wherein a frequency of the differential signal is higher than hundreds of KHz; and a processing circuit, coupled between the multi-interface physical layer circuit and a memory module, configured to receive the physical layer output signal from the multi-interface physical layer circuit, to determine the differential signal complies with one of a specification of an first type of interface and that of a second type of interface according to the physical layer output signal, and to adapt an operation mode of the memory control device to one of the multiple types of interface according to a determined result; wherein the memory control device operates in the adapted operation mode to receive at least one access command from the host to access the memory module. 
     The present invention also discloses a control method allowing a memory control device to be compatible to multiple types of interface. The memory control device comprises a multi-interface physical layer circuit coupled to a host, a processing circuit, and a memory module. The control method comprises: receiving, in the multi-interface physical layer circuit, a differential signal from the host, wherein a frequency of the differential signal is higher than hundreds of KHz; detecting, in the multi-interface physical layer circuit, at least one of characteristics of the differential signal to generate a physical layer output signal; determining, in the processing circuit, the differential signal complies with one of a specification of an first type of interface and that of a second type of interface according to the physical layer output signal; and adapting, in the processing circuit, an operation mode of the memory control device to one of the multiple types of interface according to a determined result; wherein the memory control device operates in the adapted operation mode to receive at least one access command from the host to access the memory module. 
     These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the exemplary embodiments that are illustrated in the various figures and drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an embodiment of the SSD control device of the present invention. 
         FIG. 2  illustrates the present invention detecting a SerDes reception signal complying with a specification of PCI-Express. 
         FIG. 3  illustrates the present invention detecting a SerDes reception signal complying with a specification of SATA. 
         FIG. 4  illustrates another embodiment of the SSD control device of the present invention. 
         FIG. 5  shows a waveform diagram of a terminal output signal complying with a specification of PCI-Express. 
         FIG. 6  illustrates an embodiment of the SSD control method of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The following description is written by referring to terms acknowledged in this industrial field. If any term is defined in this specification, such term should be explained accordingly. 
     The present disclosure includes a solid state drive (SSD) control device and method. On account of that some element of the SSD control device could be known, the detail of such element will be omitted provided that the present disclosure is still in compliance with the written description and enablement requirements. In addition, the SSD control method can be in the form of firmware and/or software which can be carried out by the SSD control device of the present invention or the equivalent thereof. 
     Please refer to  FIG. 1 .  FIG. 1  illustrates an embodiment of the SSD control device of the present invention. The SSD control device  100  of  FIG. 1  is compatible to multiple types of interface, and includes the physical layers and protocol layers of the multiple types of interface. Each of the protocol layers, such as a data link layer and a data transaction layer, is above a physical layer. The multiple types of interface are a type of Peripheral Component Interconnect Express (PCI-Express) interface, a type of Serial Advanced Technology Attachment (SATA) interface, etc.; however, these types of interface are examples for understanding, not for limiting the scope of the present invention. 
     As shown in  FIG. 1 , the SSD control device  100  comprises: a multi-interface compatible physical layer circuit  110 , an input/output (I/O) circuit  120 , a processing circuit  130 , and a media access control (MAC) circuit  140 . 
     Please refer to  FIG. 1 . The multi-interface compatible physical layer circuit  110  includes the physical layers of the aforementioned multiple types of interface, and is configured to output a physical layer output signal in accordance with a reception signal. In this embodiment, the reception signal is a serializer/deserializer (SerDes) reception signal. Since SerDes technology is well known in this industrial field and capable of converting a single-ended bus signal of large bit width into one or more differential signal(s) of the frequency higher than the frequency of the single-ended bus signal, the SerDes reception signal should be deemed well defined rather than undefined to those of ordinary skill in the art. It should be noted that the implementation of the present invention is not limited to SerDes technology. 
     Please refer to  FIG. 1 . The I/O circuit  120  is configured to generate at least one terminal output signal according to signal variation of at least one terminal (e.g., at least one pin). In this embodiment, the amount of the at least one terminal is equal to the amount of the at least one terminal output signal; more specifically, N different terminal output signals will be transmitted through N different terminals respectively, in which N is an integer greater than one. In addition, the at least one terminal output signal in this embodiment is transmitted without passing through the physical layer circuit  110 ; in other words, the SSD control device  100  separately receives the at least one terminal output signal and the SerDes reception signal through different pins. 
     Please refer to  FIG. 1 . The processing circuit  130  could be a microprocessor or the equivalent thereof, and is configured to adapt an operation mode of the SSD control device  100  to one of the aforementioned multiple types of interface according to at least one of the physical layer output signal and the at least one terminal output signal (i.e., according to the physical layer output signal and/or the at least one terminal output signal). The operation of the processing circuit  130  will be explained in later paragraphs in detail. 
     Please refer to  FIG. 1 . The MAC circuit  140  is coupled with the physical layer circuit  110  and the processing circuit  130 , and is configured to provide an addressing function and a function of access control. Although the MAC circuit  140  is necessary for the SSD control device  100 , it is not directly involved with the implementation of the present invention. 
     On the basis of the above, in an embodiment the processing circuit  130  determines the operation mode of the SSD control device  100  according to the physical layer output signal. For instance, the SSD control device  100  is compatible to both a SATA interface and a PCI-Express interface. If a host appoints a port connected to the SSD control device  100  as a port of SATA or PCI-Express interface, since the characteristic of a transmission signal of a SATA interface during its link establishment stage is different from the characteristic of a transmission signal of a PCI-Express interface during its link establishment stage, the SSD control device  100  is capable of recognizing the configuration of the port by detecting the characteristic of the transmission signal from the host, and accordingly chooses a mode for operation. In detail, if the said host transmits a SerDes signal complying with a specification of PCI-Express during a link establishment stage, the SerDes signal will be an in-band signal of a frequency complying with the PCI-Express specification, e.g., a training sequence of a frequency being 2.5 GHz as shown in  FIG. 2 ; therefore, the physical layer circuit  110  will generate the aforementioned physical layer output signal according to the in-band signal so that the processing circuit  130  can determine whether the physical layer output signal complies with the specification of PCI-Express according to at least one of the following means: comparison with respect to signal frequency, detection of signal voltage level change, detection of the average of signal voltage level, etc. On the other hand, if the said host transmits a SerDes signal complying a specification of SATA during a link establishment stage, the SerDes signal will be an out-of-band (OOB) signal of a frequency complying with the SATA specification, e.g., a COMRESET, COMINIT, or COMWAKE signal of a low frequency as shown in  FIG. 3 ; therefore the physical layer circuit  110  will use a low-frequency signal detector (LFD)  410  as shown in  FIG. 4  to generate the aforementioned physical layer output signal according to the low-frequency OOB signal, and thus the processing circuit  130  can determine whether the physical layer output signal complies with the specification of SATA accordingly. It should be noted that the frequency of the said in-band signal (e.g., several GHz) is generally higher than 1 GHz, and the frequency of the OOB signal (e.g., hundreds of KHz˜several MHz) is generally lower than 1 GHz. It should also be noted that the SSD control device  100  is able to transmit signals to the aforementioned host; however, this operation has little to do with the feature of the present embodiment, and thus the detail is omitted. 
     In another embodiment, the processing circuit  130  determines the operation mode of the SSD control device  100  according to the at least one terminal output signal. For instance, the SSD control device  100  is compatible to both a SATA interface and a PCI-Express interface. If a host appoints a port connected to the SSD control device  100  as a port of SATA or PCI-Express interface, since the signal transmission of a SATA interface does not require the at least one terminal output signal while the signal transmission of a PCI-Express interface requires the at least one terminal output signal, the at least one terminal output signal through the SATA interface will be kept unchanged while the at least one terminal output signal through the PCI-Express interface will change by a specific pattern, and thus the SSD control device  100  can recognize the configuration of the port by receiving and detecting the transmission signal from the host through the aforementioned at least one terminal, and thereby choose a mode for operation. In detail, if the at least one terminal output signal complies with a specification of PCI-Express, the at least one terminal output signal could be, for example, a side-band signal including at least one of a reset signal (PERST#), a wake-up signal (WAKE#), a clock request signal (CLKREQ#) and a reference clock signal, in which the symbol “#” stands for “low enable” (i.e., a low level of a signal indicating an enabled state). After the SSD control deice  100  is connected with a host, the waveforms of the reset signal, the wake-up signal, the clock request signal and the reference clock signal are shown in  FIG. 5 . Accordingly, the processing circuit  130  can find out the foresaid port is appointed as a port of a PCI-Express interface according to at least one of the following means: comparison with respect to signal frequency, detection of signal voltage level change, detection of the average of signal voltage level, etc. However, if the port is appointed as a port of a SATA interface, the waveform of the at least one terminal output signal won&#39;t change, and thereby the processing circuit  130  can find out that the at least one terminal output signal does not comply with a specification of PCI-Express and then determine that the SSD control device  100  should operate under a SATA mode. 
     Please refer to  FIG. 5 . In an embodiment, the processing circuit  130  detects whether the level of the reset signal is pulled high, and afterwards detects whether “the level of the reset signal is pulled down by a host terminal and thereby asserted”, so as to generate a detection result, determine that the at least one terminal output signal complies with a specification of PCI-Express when the detection result is affirmative, and determine that the at least one terminal output signal does not comply with the specification of PCI-Express when the detection result is negative. In another embodiment, the processing circuit  130  detects whether the level of the clock request signal is pulled high, and afterwards detects “whether the level of the clock request signal is pulled down by the SSD control device  100  and thereby asserted”, so as to generate a detection result, determine that the at least one terminal output signal complies with a specification of PCI-Express when the detection result is affirmative, and determine that the at least one terminal output signal does not comply with the specification of PCI-Express when the detection result is negative. In a further embodiment, the processing circuit  130  detects the level variation of the clock request signal and detects whether the reference clock signal exists, so as to determine that the at least one terminal output signal complies with a specification of PCI-Express when the level variation and the existence of the clock request signal are affirmative; in this embodiment, the SSD control device  100  comprises a clock generating circuit (not shown in the figures) configured to generate an operation clock according to the reference clock signal (e.g., a clock signal of 100 MHz) from a host, so that the SSD control device  100  can operate under a PCI-Express mode according to the operation clock; it should be noted that a specification of SATA adopts an embedded clock signal and thus the above-mentioned independent reference clock signal is not necessary here. In a further embodiment, the processing circuit  130  detects whether the level of at least one of the reset signal, the wake-up signal and the clock request signal is pulled high, so as to generate a detection result, determine that the at least one terminal output signal complies with a specification of PCI-Express when the detection result is affirmative, and determine that the at least one terminal output signal does not complies with the specification of PCI-Express when the detection result is negative. 
     In addition to the fore-disclosed SSD control device  100 , the present disclosure further includes an SSD control method that is carried out by the aforementioned SSD control device  100  or the equivalent thereof An embodiment of the control method is shown in  FIG. 6  and capable of adapting an SSD control device to multiple types of interface, and comprises the following steps:
     Step S 610 : generating a physical layer output signal according to a reception signal. This step can be executed by the multi-interface compatible physical layer circuit  110  of  FIG. 1  or the equivalent thereof.   Step S 620 : generating at least one terminal output signal according to signal variation of at least one terminal. This step can be executed by the I/O circuit  120  of  FIG. 1  or the equivalent thereof.   Step S 630 : adapting an operation mode of the SSD control device to one of the multiple types of interface in accordance with at least one of the physical layer output signal and the at least one terminal output signal. This step can be executed by the processing circuit  130  of  FIG. 1  or the equivalent thereof.   

     Since those of ordinary skill in the art can appreciate the detail and modification of the method embodiment by referring to the description of the fore-disclosed device embodiments, which means that each feature of the device embodiments can be applied to the method embodiment in a reasonable way, therefore repeated and redundant description is omitted. It should be noted that although the most embodiments of the present disclosure take SATA and PCI-Express interfaces, people of ordinary can appreciate how to modify the SSD control device and method to make them compatible to more kinds or other kinds of interfaces according to the present disclosure and the specifications of the said other kinds of interfaces. These and other reasonable modifications pertain to the scope of the present invention. 
     In summary, the SSD control device and method of the present invention allow a device (in relation to a host) to carry out interface detection, which not only prevents the problems of the prior art, but also features low implementation cost and high applicability. 
     The aforementioned descriptions represent merely the exemplary embodiments of the present invention, without any intention to limit the scope of the present invention thereto. Various equivalent changes, alterations, or modifications based on the claims of the present invention are all consequently viewed as being embraced by the scope of the present invention.