A driving signal generation method, device, equipment and readable storage medium
Through the dynamic jump and signal generation method of the state machine, the flexibility of the drive signal of the hard disk controller is solved, the adaptability to changes in NAND particles and operating process changes is achieved, and the flexibility and versatility of signal generation is improved.
Patent Information
- Application Number
- CN202111155665.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-29
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2041-09-29
AI Technical Summary
In the prior art, the drive signals generated by the hard disk controller lack flexibility and cannot adapt to changes in NAND particles or changes in operational flow, and the state and jump relationship need to be redesigned.
Through the initial jump table of the state machine, the signal driving table of the programmable state and the fixed jump configuration of the fixed state, the jump relationship and signal generation between the states are dynamically adjusted, so as to achieve the flexibility and universality of the driving signal.
Without redesigning the state and jump process, you can adapt to changes in NAND particles or changes in operating processes, and flexibly generate adaptive driving signals.
Smart Images

Figure CN113870926B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technologies, and particularly to a method, apparatus, device, and readable storage medium for generating drive signals. Background Art
[0002] Currently, after receiving operations such as read and write sent by a host, a hard disk controller generates drive signals corresponding to the current operation based on several states of a state machine and sends them to a NAND PHY. Then, the NAND PHY operates the NAND Flash of the hard disk according to these drive signals to complete the operation process. The connection relationship among the hard disk controller, the NAND PHY, and the NAND Flash can be seen in Figure 1 .
[0003] Among them, the hard disk controller generates drive signals using several states with fixed jump relationships, resulting in a lack of flexibility in the signals. As Figure 2 shown, there are 5 states: IDLE, PRE_CTRL, CTRL_CYC, POS_CTRL, and an end state, and the jump relationships among these 5 states are IDLE---PRE_CTRL---CTRL_CYC---POS_CTRL---end state. Then, the actual drive process can be: detecting a send address request in IDLE, then entering PRE_CTRL to generate a fixed signal in this state, then entering CTRL_CYC to generate a fixed signal in this state, then entering the POS_CTRL state and the POS_CTRL state in sequence, and finally entering the end state to complete the entire process. It can be seen that in each state, the generated signals are fixed, the number of states involved in the entire process is fixed, and the jump relationships between different states are also fixed.
[0004] Therefore, the existing solution can only generate fixed drive signals. If the NAND particles of the hard disk change, or the process of a certain operation needs to be changed, the current state transition will not be able to meet this change, and the states and their jump relationships need to be redesigned.
[0005] Therefore, how to flexibly generate drive signals sent to the NAND PHY is a problem that needs to be solved by those skilled in the art. Summary of the Invention
[0006] In view of this, the purpose of the present application is to provide a method, apparatus, device, and readable storage medium for generating drive signals to flexibly generate drive signals sent to the NAND PHY. The specific solutions are as follows:
[0007] In a first aspect, the present application provides a method for generating drive signals, including:
[0008] If an operation instruction is received, the control state machine is controlled to enter the initial state, and the next state to be jumped to is determined based on the initial jump table in the initial state;
[0009] If the next state is any programmable state, jump to the programmable state and start timing. During the timing process, drive signals of the operation instruction in the programmable state are generated based on the signal drive table in the programmable state. If the timing ends, the next state to be jumped to is determined based on the programmable jump table in the programmable state;
[0010] If the next state is any fixed state that is not an end state, jump to the fixed state. After the drive signals of the operation instruction in the fixed state are generated based on the fixed signal configuration in the fixed state, the next state to be jumped to is determined based on the fixed jump configuration in the fixed state;
[0011] If the next state is a fixed state of the end state, the process ends.
[0012] Preferably, determining the next state to be jumped to based on the initial jump table in the initial state includes:
[0013] Querying the name of the next state corresponding to the operation instruction in the initial jump table.
[0014] Preferably, generating the drive signals of the operation instruction in the programmable state based on the signal drive table in the programmable state during the timing process includes:
[0015] During the timing process, querying the signal drive table to determine the drive signals to be generated at each preset time point during the timing process; at least one preset time point and at least one signal to be generated at each preset time point are recorded in the signal drive table.
[0016] Preferably, determining the next state to be jumped to based on the programmable jump table in the programmable state includes:
[0017] Querying the name of the next state corresponding to the operation instruction in the programmable jump table.
[0018] Preferably, it further includes:
[0019] If an update instruction for the initial jump table and / or the signal drive table and / or the programmable jump table is received, updating the initial jump table and / or the signal drive table and / or the programmable jump table based on the update instruction.
[0020] Preferably, using the initial jump table or the programmable jump table as an updatable table, the process of updating the updatable table includes:
[0021] Modifying the operation instruction recorded in the updatable table or the name of the corresponding next state; and / or
[0022] Deleting the operation instruction recorded in the updatable table and the name of the corresponding next state;
[0023] and / or
[0024] Adding a new operation instruction and the name of the corresponding next state to the updatable table.
[0025] Preferably, updating the signal-driven table includes:
[0026] Modifying the preset time point recorded in the signal-driven table or at least one corresponding signal;
[0027] and / or
[0028] Deleting the preset time point recorded in the signal-driven table and at least one corresponding signal;
[0029] and / or
[0030] Adding a new preset time point and at least one corresponding signal to the signal-driven table.
[0031] In a second aspect, the present application provides a driving signal generation device, including
[0032] An initial state module, configured to, if an operation instruction is received, control the state machine to enter the initial state, and determine the next state to jump to based on the initial jump table in the initial state;
[0033] A programmable state module, configured to, if the next state is any programmable state, jump to the programmable state and start timing, generate a driving signal of the operation instruction in the programmable state based on the signal-driven table in the programmable state during the timing process, and if the timing ends, determine the next state to jump to based on the programmable jump table in the programmable state;
[0034] A fixed state module, configured to, if the next state is any fixed state other than the end state, jump to the fixed state, generate a driving signal of the operation instruction in the fixed state based on the fixed signal configuration in the fixed state, and then determine the next state to jump to based on the fixed jump configuration in the fixed state;
[0035] An end module, configured to, if the next state is a fixed state of the end state, end the process.
[0036] In a third aspect, the present application provides an electronic device, comprising:
[0037] a memory for storing a computer program;
[0038] a processor for executing the computer program to implement the driving signal generation method disclosed above.
[0039] In a fourth aspect, the present application provides a readable storage medium for saving a computer program, wherein the computer program, when executed by a processor, implements the driving signal generation method disclosed above.
[0040] As can be seen from the above solutions, the present application provides a driving signal generation method, including: if an operation instruction is received, controlling a state machine to enter an initial state, and determining a next state to jump to based on an initial jump table in the initial state; if the next state is any programmable state, jumping to the programmable state and starting timing, generating a driving signal of the operation instruction in the programmable state based on a signal driving table in the programmable state during the timing, and if the timing ends, determining a next state to jump to based on a programmable jump table in the programmable state; if the next state is any fixed state other than an end state, jumping to the fixed state, generating a driving signal of the operation instruction in the fixed state based on a fixed signal configuration in the fixed state, and then determining a next state to jump to based on a fixed jump configuration in the fixed state; if the next state is a fixed state of an end state, the process ends.
[0041] This application provides a fixed state including an initial state, at least one programmable state, at least one non-ending state, and an ending state. Specifically, if the state machine is controlled to enter the initial state based on an operation instruction, then the next state to be jumped to can be determined based on the initial jump table in the initial state. At this time, the next state can be a programmable state, a fixed state of the non-ending state, or a fixed state of the ending state. If the next state is a certain programmable state, then jump to the programmable state and start timing. During the timing process, drive signals of the operation instruction in the programmable state are generated based on the signal drive table in the programmable state. If the timing ends, then the next state to be jumped to is determined based on the programmable jump table in the programmable state. At this time, the next state can be a programmable state, a fixed state of the non-ending state, or a fixed state of the ending state. If the next state is a certain fixed state of the non-ending state, then jump to the fixed state. After generating the drive signals of the operation instruction in the fixed state based on the fixed signal configuration in the fixed state, the next state to be jumped to is determined based on the fixed jump configuration in the fixed state; at this time, the next state can be a programmable state, a fixed state of the non-ending state, or a fixed state of the ending state. When the next state is the fixed state of the ending state, the process ends.
[0042] It can be seen that in this solution, the state machine can jump from the initial state to a programmable state, a fixed state of the non-ending state, or a fixed state of the ending state. It can also jump from a programmable state to other programmable states, a fixed state of the non-ending state, or a fixed state of the ending state. It can also jump from a fixed state of the non-ending state to a programmable state, other fixed states of the non-ending state, or a fixed state of the ending state. It can be seen that the jump relationship between different states is not fixed, but changes timely. For the initial state, the next state to be jumped to can be determined based on the initial jump table; for the programmable state, the next state to be jumped to can be determined based on the programmable jump table; for the fixed state of the non-ending state, the next state to be jumped to can be determined based on the fixed jump configuration set therein; and the fixed state of the final ending state is used to mark the end of the process. Moreover, the programmable state can generate corresponding drive signals based on the signal drive table, and the generated signals can be flexibly changed based on the signal drive table, so the flexibility of the signals can be improved. In this application, the jump relationship between different states changes timely, the number of states involved in the process is variable, and the signals that can be generated in a certain state are variable. Therefore, if the NAND particles of the hard disk change, or the process of a certain operation needs to be changed, it can be achieved by adjusting the signal drive table and jump table in the relevant state without re-designing the state and jump process, and it can flexibly generate drive signals sent to the NAND PHY, and the solution has good versatility.
[0043] Accordingly, a driving signal generation device, equipment, and readable storage medium provided by this application also have the above technical effects. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only the embodiments of this application. For those of ordinary skill in the art, other drawings can be obtained based on the provided drawings without creative efforts.
[0045] Figure 1 Schematic connection diagram between a hard disk controller, NAND PHY, and NAND Flash disclosed in this application;
[0046] Figure 2 Schematic diagram of an existing state machine disclosed in this application;
[0047] Figure 3 Flowchart of a driving signal generation method disclosed in this application;
[0048] Figure 4 Schematic diagram of a state machine disclosed in this application;
[0049] Figure 5 Schematic diagram of an initial jump disclosed in this application;
[0050] Figure 6 Schematic diagram of signal driving disclosed in this application;
[0051] Figure 7 Another schematic diagram of signal driving disclosed in this application;
[0052] Figure 8 Schematic connection diagram between a hard disk controller and NAND PHY disclosed in this application;
[0053] Figure 9 Schematic diagram of the relationship between NAND PHY driving signals and NAND particle driving signals disclosed in this application;
[0054] Figure 10 Schematic diagram of the state machine jump relationship disclosed in this application;
[0055] Figure 11 Schematic diagram of a driving signal generation device disclosed in this application;
[0056] Figure 12 Schematic diagram of an electronic device disclosed in this application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0057] Next, in combination with the accompanying drawings in the embodiments of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0058] Currently, the existing solutions can only generate fixed drive signals. If the NAND particles of the hard disk change, or the process of a certain operation needs to be changed, the current state transition will not be able to meet this change, and the state and its jump relationship need to be redesigned. For this reason, the present application provides a drive signal generation solution that can flexibly generate drive signals sent to the NAND PHY.
[0059] See Figure 3 As shown, the embodiments of the present application disclose a drive signal generation method applied to a hard disk controller, including:
[0060] S301: If an operation instruction is received, control the state machine to enter the initial state, and determine the next state to jump to based on the initial jump table in the initial state.
[0061] S302: If the next state is any programmable state, jump to the programmable state and start timing. During the timing process, generate the drive signal of the operation instruction in the programmable state based on the signal drive table in the programmable state. If the timing ends, determine the next state to jump to based on the programmable jump table in the programmable state.
[0062] S303: If the next state is any fixed state that is not the end state, jump to the fixed state. After generating the drive signal of the operation instruction in the fixed state based on the fixed signal configuration in the fixed state, determine the next state to jump to based on the fixed jump configuration in the fixed state.
[0063] S304: If the next state is the fixed state of the end state, the process ends.
[0064] See Figure 3 As shown, the above steps are not executed sequentially, but are executed based on corresponding conditions. In the state machine provided in this embodiment, it can jump from the initial state to a programmable state, a fixed state that is not the end state, or a fixed state that is the end state. It can also jump from a programmable state to other programmable states, a fixed state that is not the end state, or a fixed state that is the end state. It can also jump from a fixed state that is not the end state to a programmable state, other fixed states that are not the end state, or a fixed state that is the end state.
[0065] It can be seen that the initial state determines the head of the jump relationship, and the fixed state of the end state determines the tail of the jump relationship. As for how many states are involved between the two and how to jump specifically, this embodiment does not limit. When the corresponding conditions are met, various situations may occur. Therefore, the jump relationship between different states is not fixed, but changes in a timely manner. For the initial state, the next state to jump to can be determined based on the initial jump table; for the programmable state, the next state to jump to can be determined based on the programmable jump table; for the fixed state of the non-end state, the next state to jump to can be determined based on the fixed jump configuration set therein; the fixed state of the final end state is used to mark the end of the process.
[0066] Various states involved in this embodiment can be referred to Figure 4 . In Figure 4 the state machine shown, there is an initial state, n fixed states (including 1 fixed state of the end state and n - 1 fixed states of the non-end state), and n programmable states. For the initial state, there is an initial jump table set therein, and based on this initial jump table, it can be determined where to jump from the initial state. Figure 4 The dotted arrow in
[0067] points to the target state that may be jumped to from the initial state. For the programmable state, there are a programmable jump table and a signal drive table set therein. Based on this programmable jump table, it can be determined where to jump from the current programmable state, and based on the signal drive table, it can be determined which signals are generated. For the fixed state of the non-end state, its next jump and the currently generable signals are fixedly configured. Each fixed state is mainly used to implement specific operations, such as DMA read and write, etc. The fixed state can efficiently implement specific operations.
[0068] It should be noted that from the initial state, it can jump to a certain programmable state or a certain fixed state. As for how to jump, it depends on the corresponding records in the initial jump table. Of course, the n - 1 fixed states of the non-end state can also jump to each other, which depends on the fixed jump configuration in the fixed state of the non-end state. The n programmable states can also jump to each other, which depends on the programmable jump table in the programmable state. Jumping from a fixed state of a non-end state to a certain programmable state also depends on the fixed jump configuration in the fixed state of the non-end state. Jumping from a certain programmable state to a certain fixed state also depends on the programmable jump table in the programmable state.
[0069] It can be seen that in this embodiment, the transition relationship between different states in the state machine changes in a timely manner, the number of states involved in the process is variable, and the signals that can be generated in a certain state are variable. Therefore, if the NAND flash memory particles of the hard disk change, or the process of a certain operation needs to be changed, only the signal drive table and jump table in the relevant state need to be adjusted to achieve the change, without re-designing the state and jump process, and the drive signal sent to the NAND PHY can be flexibly generated, and the solution has good versatility.
[0070] Based on the above embodiment, it should be noted that in a specific implementation manner, determining the next state to jump to based on the initial jump table in the initial state includes: querying the name of the next state corresponding to the operation instruction in the initial jump table.
[0071] Please refer to Figure 5 , multiple jump judgment conditions can be recorded in the initial jump table, and each jump judgment condition includes: a detection value (check value) and the name of the destination state (Dst_state). The name of the destination state is: the name of the next state to jump to from the initial state.
[0072] Based on the above embodiment, it should be noted that in a specific implementation manner, determining the next state to jump to based on the programmable jump table in the programmable state includes: querying the name of the next state corresponding to the operation instruction in the programmable jump table.
[0073] Among them, the programmable jump table in the programmable state is similar to the initial jump table, and multiple jump judgment conditions are also recorded in it. Each jump judgment condition includes: a detection value (check value) and the name of the destination state (Dst_state). The name of the destination state is: the name of the next state to jump to from the current programmable state.
[0074] Based on the above embodiment, it should be noted that in a specific implementation manner, generating the drive signal of the operation instruction in the programmable state based on the signal drive table in the timing process includes: querying the signal drive table during the timing process to determine the drive signal that needs to be generated at each preset time point during the timing process; at least one preset time point and at least one signal that needs to be generated at each preset time point are recorded in the signal drive table.
[0075] Please refer to Figure 6, in any programmable state, the signal driving table records the signals that can be generated at corresponding preset time points according to each preset time point. Each time point is determined based on a timer. It can be seen that starting to time when entering the programmable state is mainly to determine the time points and when to jump to the next state. Of course, each state can have a limit on the signal generation time. For example: when currently entering a certain state and setting to jump to the next state after 10 seconds, then the limit on the signal generation time for the current state is 10 seconds.
[0076] As Figure 6 shown, the signal driving table records a total of 4 time points, namely TT0 - TT3. For TT0 with a time point (Timer_point) of 10’h3 (hexadecimal number), the signal to be generated at this time point is: wrdata_en = 4'b0111 (i.e., set dfi_wrdata_en to 1), and the remaining signals (CLE, ALE, WE, RE corresponding to TT0) are not assigned any values. Of course, signals that do not need to be assigned values can also not be recorded. wrdata_en is the signal name. That is: at TT0, set dfi_wrdata_en at the NAND PHY end to 1 to drive the dfi_wrdata signal.
[0077] Correspondingly, for TT1 with a time point (Timer_point) of 10’h4 (hexadecimal number), the signals to be generated at this time point are: CLE = 2'b11 (i.e., set CLE to 1) and wrdata_en = 4'b0000, and the remaining signals (ALE, WE, RE corresponding to TT1) are not assigned any values. That is: at TT1, set the CLE signal at the NAND PHY end to 1, and keep dfi_wrdata_en and dfi_wrdata unchanged.
[0078] Correspondingly, at TT2, set the CLE signal at the NAND PHY end to 0, and keep dfi_wrdata_en and dfi_wrdata unchanged. At TT3, set dfi_wrdata_en at the NAND PHY end to 0.
[0079] It can be seen that which time points TT0 - TT3 correspond to depends on the value of Timer_point; and which values are taken for which signals at any time point depends on the corresponding records in the signal driving table.
[0080] It should be noted that Figure 6What is shown only presents the assignment of NAND PHY interface signals. Therefore, the first column of the table records: TT_TYPE 2'b01. "TT_TYPE 2'b01" is used to indicate that the signals generated at a certain time point are for driving NAND PHY interface signals. NAND PHY interface signals include, for example, CLE, ALE, WE, etc.
[0081] Of course, the internal signals of the hard disk controller can also be recorded in the signal drive table. At this time, the first column of the table records: TT_TYPE 2'b10. "TT_TYPE 2'b10" is used to indicate that the signals generated at a certain time point belong to the inside of the hard disk controller. For details, please refer to Figure 7 , such as Figure 7 shown, the signals to be driven are internal signals such as ps_time, rd_deskew_req, etc.
[0082] The signal connection between the hard disk controller (NAND controller) and NAND PHY can be referred to Figure 8 . Such as Figure 8 shown, clk is the clock signal, dfi_cebar, dfi_cle, dfi_ale, dfi_rebar, dfi_webar are control signals; dfi_wrdata_en, dfi_wrdata are write data signals; dfi_rddata_en, dfi_rddata_valid, dfi_rddata are read data signals. Figure 8 The signals in are not all signals, just to show the connection relationship. The signals between NAND PHY and NAND IO are IO signals (such as cebar_opad). The signals between NAND IO and NAND are the signal lines between the actual and Flash chips (such as cebar, cle, etc.). It can be seen that the timing signals of the hard disk controller driving NAND PHY will ultimately drive the NAND chips. That is: the hard disk controller sends the drive signals to NAND PHY, and then NAND PHY operates the NAND Flash of the hard disk according to these drive signals.
[0083] Please refer to Figure 9 , if the hard disk controller generates drive signals as Figure 9 shown ( Figure 9 each signal in the upper bold frame), then there will be corresponding signals sent from NAND IO to the NAND chips ( Figure 9 each signal in the lower frame). Among them, since the signals for driving the NAND chips need to meet the requirements of the ONFI protocol and the NAND chip requirements, the drive signals generated by the hard disk controller also need to meet certain requirements.
[0084] Since the number of preset time points recorded in the signal driving table can be adjusted, the signals to be generated at each preset time point can also be adjusted. Of course, the jump judgment conditions in the initial jump table and the programmable jump table can also be adjusted. In short, the signal driving table, the initial jump table, and the programmable jump table can all be updated manually in a timely manner as needed.
[0085] Then the process of updating the initial jump table and the programmable jump table may include: if an update instruction for the initial jump table and / or the signal driving table and / or the programmable jump table is received, the initial jump table and / or the signal driving table and / or the programmable jump table is updated based on the update instruction.
[0086] In a specific embodiment, taking the initial jump table or the programmable jump table as an updatable table, the process of updating the updatable table includes: modifying the operation instructions recorded in the updatable table, or the names of the corresponding next states; and / or deleting the operation instructions recorded in the updatable table, as well as the names of the corresponding next states; and / or adding new operation instructions in the updatable table, as well as the names of the corresponding next states.
[0087] In a specific embodiment, updating the signal driving table includes: modifying the preset time points recorded in the signal driving table, or the corresponding at least one signal; and / or deleting the preset time points recorded in the signal driving table, as well as the corresponding at least one signal; and / or adding new preset time points in the signal driving table, as well as the corresponding at least one signal.
[0088] Please refer to Figure 10 , the following embodiments provide an example of the state transition relationship of a state machine. In Figure 10 the shown transition relationship, there is an initial state, 3 fixed states: the DMA_Write state, the DMA_Read state, and the end state, and 3 programmable states: the PS_x state, the PS_y state, and the PS_z state.
[0089] When the hard disk controller receives a command, it uses the "init jump judgment condition n" in the initial jump table of the initial state to detect whether the current command is a DMA write, uses the "init jump judgment condition m" in the initial jump table to detect whether the current command is a DMA read, uses the "init jump judgment condition x" in the initial jump table to detect whether the current command jumps to the PS_x state, and uses the "init jump judgment condition y" in the initial jump table to detect whether the current command jumps to the PS_y state.
[0090] It should be noted that there is no absolute correlation between the check values (such as x, y, z, w, etc.) in the above various jump judgment conditions, and they can be any detection values that are allowed to be set.
[0091] Assume that the above "init jump judgment condition n", "init jump judgment condition m", "init jump judgment condition x", and "init jump judgment condition y" are all satisfied, then the corresponding jump is completed. Of course, in actual use, only one jump judgment condition in a certain state will be satisfied, and generally multiple jump judgment conditions in a certain state will not be satisfied simultaneously. That is: only one destination state can be uniquely determined in one state. If there is a situation where multiple jump judgment conditions are satisfied in one state, the unique destination state can be determined according to the priorities of different jump judgment conditions.
[0092] After jumping to the DMA_Write state, detect whether the DMA write is completed, and enter the end state after completion.
[0093] After jumping to the DMA_Read state, detect whether the DMA read is completed, and enter the end state after completion.
[0094] After jumping to the programmable state PS_x, use the "PS jump judgment condition z" in this state to detect whether to jump to the PS_z state. If the "PS jump judgment condition z" is satisfied, the corresponding jump is completed.
[0095] After jumping to the programmable state PS_y, use the "PS jump judgment condition x" in this state to detect whether to jump to the PS_x state. If the "PS jump judgment condition x" is satisfied, the corresponding jump is completed. Use the "PS jump judgment condition z" in this state to detect whether to jump to the PS_z state. If the "PS jump judgment condition z" is satisfied, the corresponding jump is completed.
[0096] After jumping to the programmable state PS_z, use the "PS jump judgment condition w" in this state to detect whether to jump to the end state. If the "PS jump judgment condition w" is satisfied, the corresponding jump is completed.
[0097] It can be seen that in each state of this embodiment, as long as the corresponding conditions are satisfied, different states can jump to each other. Based on the state machine composed of the initial state, fixed state, and programmable state, the configurable jump judgment conditions can flexibly implement the setting of the jump relationship between states. In the programmable state, any PHY terminal drive signal can be generated based on the drive signal table. After the NAND flash memory timing is updated, the drive signal timing can also be flexibly adjusted, so as to adapt to different NAND flash memory timing requirements.
[0098] Next, a drive signal generation device provided by an embodiment of the present application will be introduced. The drive signal generation device described below can be referred to each other with the drive signal generation method described above.
[0099] SeeFigure 11 As shown, an embodiment of the present application discloses a driving signal generation device, including
[0100] An initial state module 1101, configured to control the state machine to enter the initial state if an operation instruction is received, and determine the next state to be jumped to based on the initial jump table in the initial state;
[0101] A programmable state module 1102, configured to jump to the programmable state and start timing if the next state is any programmable state, generate a driving signal of the operation instruction in the programmable state based on the signal driving table in the programmable state during the timing process, and determine the next state to be jumped to based on the programmable jump table in the programmable state if the timing ends;
[0102] A fixed state module 1103, configured to jump to the fixed state if the next state is any fixed state other than the end state, generate a driving signal of the operation instruction in the fixed state based on the fixed signal configuration in the fixed state, and determine the next state to be jumped to based on the fixed jump configuration in the fixed state;
[0103] An end module 1104, configured to end the process if the next state is a fixed state of the end state.
[0104] In a specific embodiment, the initial state module is specifically configured to:
[0105] Query the name of the next state corresponding to the operation instruction in the initial jump table.
[0106] In a specific embodiment, the programmable state module is specifically configured to:
[0107] Query the signal driving table during the timing process to determine the driving signal to be generated at each preset time point during the timing process; at least one preset time point and at least one signal to be generated at each preset time point are recorded in the signal driving table.
[0108] In a specific embodiment, the programmable state module is specifically configured to:
[0109] Query the name of the next state corresponding to the operation instruction in the programmable jump table.
[0110] In a specific embodiment, it further includes:
[0111] An update module, configured to update the initial jump table and / or the signal driving table and / or the programmable jump table based on the update instruction if an update instruction for the initial jump table and / or the signal driving table and / or the programmable jump table is received.
[0112] In a specific embodiment, the update module uses the initial jump table or the programmable jump table as the updatable table. The process of updating the updatable table includes: modifying the operation instructions recorded in the updatable table or the names of the corresponding next states; and / or deleting the operation instructions recorded in the updatable table and the names of the corresponding next states; and / or adding new operation instructions and the names of the corresponding next states to the updatable table.
[0113] In a specific embodiment, the update module updates the signal-driven table, including: modifying the preset time points recorded in the signal-driven table or at least one corresponding signal; and / or deleting the preset time points recorded in the signal-driven table and at least one corresponding signal; and / or adding new preset time points and at least one corresponding signal to the signal-driven table.
[0114] Among them, for the more specific working processes of each module and unit in this embodiment, reference can be made to the corresponding content disclosed in the foregoing embodiments, and details will not be elaborated here.
[0115] It can be seen that this embodiment provides a driving signal generation device. In this device, the jump relationship between different states changes in a timely manner, the number of states involved in the process is variable, and the signals that can be generated in a certain state are variable. Therefore, if the NAND particles of the hard disk change, or the process of a certain operation needs to be changed, adjusting the signal-driven table and jump table in the relevant states can achieve the modification, without the need to re-design each state and jump process, and can flexibly generate the driving signals sent to the NAND PHY.
[0116] Next, an electronic device provided by an embodiment of the present application will be introduced. The electronic device described below can be referred to in mutual reference with the driving signal generation method and device described above.
[0117] See Figure 12 As shown, an embodiment of the present application discloses an electronic device, including:
[0118] A memory 1201 for storing a computer program;
[0119] A processor 1202 for executing the computer program to implement the method disclosed in any of the foregoing embodiments.
[0120] Next, a readable storage medium provided by an embodiment of the present application will be introduced. The readable storage medium described below can be referred to in mutual reference with the driving signal generation method, device, and equipment described above.
[0121] A readable storage medium for storing a computer program, wherein when the computer program is executed by a processor, it implements the driving signal generation method disclosed in the foregoing embodiments. For the specific steps of this method, reference may be made to the corresponding content disclosed in the foregoing embodiments, and details will not be repeated herein.
[0122] As used in this application, the terms "first", "second", "third", "fourth", etc. (if any) are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data may be interchanged under appropriate circumstances so that the embodiments described herein can be implemented in an order different from that shown or described herein. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to such process, method, or apparatus.
[0123] It should be noted that the descriptions involving "first", "second", etc. in this application are only for descriptive purposes and should not be construed as indicating or implying their relative importance or implicitly indicating the quantity of the indicated technical features. Thus, features defined with "first" and "second" may explicitly or implicitly include at least one such feature. In addition, the technical solutions between various embodiments may be combined with each other, but it must be based on the ability of those of ordinary skill in the art to implement. When the combination of technical solutions results in contradictions or cannot be implemented, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection required by this application.
[0124] The various embodiments in this specification are described in a progressive manner, and the key points of each embodiment are the differences from other embodiments. The same or similar parts between the various embodiments may be referred to each other.
[0125] The steps of the method or algorithm described in connection with the embodiments disclosed herein may be directly implemented by hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other form of readable storage medium known in the art.
[0126] Specific examples are used in this article to illustrate the principles and implementation manners of this application. The descriptions of the above embodiments are only for helping to understand the method and its core idea of this application. At the same time, for those of ordinary skill in the art, according to the idea of this application, there will be changes in the specific implementation manners and application scopes. In summary, the content of this specification should not be construed as a limitation of this application.
Claims
1. A driving signal generation method, characterized in that, Including: If an operation instruction is received, control the state machine to enter the initial state, and determine the next state to jump to based on the initial jump table in the initial state; If the next state is any programmable state, jump to the programmable state and start timing. During the timing process, generate the drive signal of the operation instruction in the programmable state based on the signal drive table in the programmable state. If the timing ends, determine the next state to jump to based on the programmable jump table in the programmable state; If the next state is any fixed state other than the end state, jump to the fixed state. After generating the drive signal of the operation instruction in the fixed state based on the fixed signal configuration in the fixed state, determine the next state to jump to based on the fixed jump configuration in the fixed state; If the next state is the fixed state of the end state, the process ends; If the jump state of an operation needs to be changed, adjust the signal drive table and jump table in the relevant state; among them, adjusting the signal drive table includes: adjusting the preset time points recorded in the signal drive table and the signals to be generated at each preset time point; adjusting the jump table includes: adjusting the jump judgment conditions in the initial jump table and the programmable jump table.
2. The driving signal generation method according to claim 1, wherein The determining the next state to jump to based on the initial jump table in the initial state includes: Query the name of the next state corresponding to the operation instruction in the initial jump table.
3. The driving signal generation method according to claim 1, wherein The generating the drive signal of the operation instruction in the programmable state based on the signal drive table in the programmable state during the timing process includes: During the timing process, query the signal drive table to determine the drive signals to be generated at each preset time point during the timing process; at least one preset time point and at least one signal to be generated at each preset time point are recorded in the signal drive table.
4. The driving signal generation method according to claim 1, wherein The determining the next state to jump to based on the programmable jump table in the programmable state includes: Query the name of the next state corresponding to the operation instruction in the programmable jump table.
5. The driving signal generation method according to any one of claims 1 to 4, characterized in that, Also including: If an update instruction for the initial jump table and / or the signal drive table and / or the programmable jump table is received, update the initial jump table and / or the signal drive table and / or the programmable jump table based on the update instruction.
6. The drive signal generation method according to claim 5, wherein Taking the initial jump table or the programmable jump table as the updatable table, the update process of the updatable table includes: Modify the operation instruction recorded in the updatable table or the name of the corresponding next state; And / or Delete the operation instruction recorded in the updatable table and the name of the corresponding next state; And / or Add an operation instruction and the name of the corresponding next state to the updatable table.
7. The driving signal generation method according to claim 5, wherein Updating the signal drive table includes: Modify the preset time points recorded in the signal drive table or the corresponding at least one signal; And / or Delete the preset time points recorded in the signal drive table and the corresponding at least one signal; And / or Add preset time points and the corresponding at least one signal to the signal drive table.
8. A driving signal generating device, characterized in that, Including An initial state module, configured to control the state machine to enter the initial state if an operation instruction is received, and determine the next state to be jumped to based on the initial jump table in the initial state; A programmable state module, configured to jump to the programmable state and start timing if the next state is any programmable state, generate a drive signal of the operation instruction in the programmable state based on a signal drive table in the programmable state during the timing, and determine the next state to be jumped to based on a programmable jump table in the programmable state if the timing ends; A fixed state module, configured to jump to the fixed state if the next state is any fixed state other than the end state, generate a drive signal of the operation instruction in the fixed state based on a fixed signal configuration in the fixed state, and determine the next state to be jumped to based on a fixed jump configuration in the fixed state; An end module, configured to end the process if the next state is a fixed state of the end state; If the jump state of an operation needs to be changed, adjust the signal drive table and jump table in the relevant state; wherein, adjusting the signal drive table includes: adjusting the preset time points recorded in the signal drive table and the signals to be generated at each preset time point; adjusting the jump table includes: adjusting the jump judgment conditions in the initial jump table and the programmable jump table.
9. An electronic device, characterized in that, Including: A memory, configured to store a computer program; A processor, configured to execute the computer program to implement the drive signal generation method according to any one of claims 1 to 7.
10. A readable storage medium, characterized in that, For saving a computer program, wherein the computer program, when executed by a processor, implements the drive signal generation method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Virtual channel support in a nonvolatile memory controller
US20110219171A1