CN113870926A - Drive signal generation method, device, equipment and readable storage medium - Google Patents

Drive signal generation method, device, equipment and readable storage medium Download PDF

Info

Publication number
CN113870926A
CN113870926A CN202111155665.6A CN202111155665A CN113870926A CN 113870926 A CN113870926 A CN 113870926A CN 202111155665 A CN202111155665 A CN 202111155665A CN 113870926 A CN113870926 A CN 113870926A
Authority
CN
China
Prior art keywords
state
jump
programmable
signal
fixed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111155665.6A
Other languages
Chinese (zh)
Inventor
陆震熙
黄运新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu Microelectronics Co Ltd
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 Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202111155665.6A priority Critical patent/CN113870926A/en
Publication of CN113870926A publication Critical patent/CN113870926A/en
Priority to PCT/CN2022/097618 priority patent/WO2023050863A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

The application discloses a driving signal generation method, a driving signal generation device, driving signal generation equipment and a readable storage medium. In the application, the jump relation among different states in the state machine is changed timely, the number of the states involved in the process is variable, and the signal which can be generated in a certain state is variable, so that if the NAND particles of the hard disk are changed or the process of a certain operation needs to be changed, the signal driving table and the jump table in the relevant state can be changed by adjusting, and the driving signal sent to the NAND PHY can be flexibly generated without redesigning each state and the jump process. Accordingly, the drive signal generation device, the drive signal generation apparatus and the readable storage medium provided by the application also have the technical effects.

Description

Drive signal generation method, device, equipment and readable storage medium
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method, an apparatus, a device, and a readable storage medium for generating a driving signal.
Background
At present, after receiving operations such as reading and writing sent by a host, a hard disk controller generates a driving signal corresponding to the current operation based on several states of a state machine and sends the driving signal to a NAND PHY, and then the NAND PHY operates a NAND Flash of a hard disk according to the driving signal to complete an operation process. The connection relationship among the hard disk controller, the NAND PHY, and the NAND Flash can be seen in fig. 1.
In which, the hard disk controller generates a driving signal using several states with fixed jump relations, resulting in a lack of flexibility of the signal. As shown in fig. 2, there are 5 states: IDLE, PRE _ CTRL, CTRL _ CYC, POS _ CTRL, and end state, and the jump relationship of these 5 states is IDLE — PRE _ CTRL — CTRL _ CYC — POS _ CTRL — end state, then the actual driving process may be: detecting a sending address request in the IDLE, then entering PRE _ CTRL to generate a fixed signal in the state, then entering CTRL _ CYC to generate a fixed signal in the state, then entering a POS _ CTRL state and a POS _ CTRL state in sequence, and finally entering an ending state to finish the whole process. It can be seen that, in each state, the generated signal is fixed, the number of states involved in the whole process is fixed, and the jump relationship between different states is also fixed.
Therefore, the existing scheme can only generate a fixed driving signal, if the NAND particles of the hard disk change or the flow of a certain operation needs to change, the current state flow cannot meet the change, and the state and the jump relationship thereof need to be redesigned.
Therefore, how to flexibly generate the driving signal to the NAND PHY is a problem to be solved by those skilled in the art.
Disclosure of Invention
In view of the above, an object of the present application is to provide a driving signal generating method, apparatus, device and readable storage medium for flexibly generating a driving signal to a NAND PHY. The specific scheme is as follows:
in a first aspect, the present application provides a driving signal generating method, including:
if an operation instruction is received, controlling a state machine to enter an initial state, and determining a next state needing to be jumped 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 in the timing process, and if the timing is finished, determining the next state needing jumping to based on a programmable jump table in the programmable state;
if the next state is any fixed state of the non-ending states, jumping to the fixed state, generating a driving signal of the operation instruction in the fixed state based on fixed signal configuration in the fixed state, and then determining the next state to jump to based on fixed jumping configuration in the fixed state;
and if the next state is a fixed state of the ending state, ending the process.
Preferably, the determining a next state to jump to based on the initial jump table in the initial state includes:
and inquiring the name of the next state corresponding to the operation instruction in the initial jump table.
Preferably, the generating the driving signal of the operation instruction in the programmable state based on the signal driving table in the programmable state during the timing process includes:
inquiring the signal driving table in the timing process to determine a driving signal required to be generated at each preset time point in the timing process; at least one preset time point and at least one signal required to be generated at each preset time point are recorded in the signal driving table.
Preferably, the determining a next state to jump to based on the programmable jump table in the programmable states comprises:
and inquiring the name of the next state corresponding to the operation instruction in the programmable jump table.
Preferably, the method further comprises the following steps:
and if an updating instruction of the initial jump table and/or the signal driving table and/or the programmable jump table is received, updating the initial jump table and/or the signal driving table and/or the programmable jump table based on the updating instruction.
Preferably, the initial jump table or the programmable jump table is used as an updateable table, and the updating process of the updateable table includes:
modifying the operation instruction recorded in the updatable table or the name of the corresponding next state; and/or
Deleting the operation instruction recorded in the updatable table and the name of the corresponding next state;
and/or
And adding an operation instruction and the name of the corresponding next state in the updatable table.
Preferably, updating the signal driving table includes:
modifying the preset time point recorded in the signal driving table or at least one corresponding signal;
and/or
Deleting the preset time point recorded in the signal driving table and at least one corresponding signal;
and/or
And newly adding a preset time point and at least one corresponding signal in the signal driving table.
In a second aspect, the present application provides a drive signal generation apparatus comprising
The initial state module is used for controlling the state machine to enter an initial state if an operation instruction is received, and determining the next state to be jumped to based on an initial jump table in the initial state;
the programmable state module is used for jumping to the programmable state and starting timing if the next state is any programmable state, generating a driving signal of the operation instruction in the programmable state based on a signal driving table in the programmable state in the timing process, and determining the next state needing jumping to based on a programmable jump table in the programmable state if the timing is finished;
a fixed state module, configured to jump to the fixed state if the next state is any one of non-end states, generate a driving signal of the operation instruction in the fixed state based on a fixed signal configuration in the fixed state, and determine, based on a fixed jump configuration in the fixed state, the next state to which the jump is to be performed;
and the ending module is used for ending the process if the next state is a fixed state of the ending state.
In a third aspect, the present application provides an electronic device, comprising:
a memory for storing a computer program;
a processor for executing the computer program to implement the drive signal generation method disclosed in the foregoing.
In a fourth aspect, the present application provides a readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the drive signal generation method disclosed in the foregoing.
According to the above scheme, the present application provides a driving signal generating method, including: if an operation instruction is received, controlling a state machine to enter an initial state, and determining a next state needing to be jumped 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 in the timing process, and if the timing is finished, determining the next state needing jumping to based on a programmable jump table in the programmable state; if the next state is any fixed state of the non-ending states, jumping to the fixed state, generating a driving signal of the operation instruction in the fixed state based on fixed signal configuration in the fixed state, and then determining the next state to jump to based on fixed jumping configuration in the fixed state; and if the next state is a fixed state of the ending state, ending the process.
The present application provides an initial state, at least one programmable state, at least one fixed state that is not an ending state, and a fixed state that is an ending state. Specifically, if the state machine is controlled to enter the initial state based on the operation instruction, the next state to be skipped to may be determined based on the initial skip list in the initial state, and at this time, the next state may be a programmable state, a fixed state of a non-ending state, or a fixed state of an ending state. And if the next state is a certain 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 in the timing process, and if the timing is ended, determining the next state needing jumping to based on a programmable jump table in the programmable state, wherein the next state can be a fixed state of the programmable state, a fixed state of a non-ended state or a fixed state of the ended state. If the next state is one fixed state which is not the end state, jumping to the fixed state, generating a driving signal of an operation instruction in the fixed state based on the fixed signal configuration in the fixed state, and then determining the next state to jump to based on the fixed jumping configuration in the fixed state; at this time, the next state may be a programmable state, a fixed state of a non-ending state, or a fixed state of an ending state. The flow ends when the next state is a fixed state of the end state.
In this embodiment, the state machine may jump from the initial state to the programmable state, the fixed state of the non-ending state, or the fixed state of the ending state, may jump from the programmable state to another programmable state, the fixed state of the non-ending state, or the fixed state of the ending state, or may jump from the fixed state of the non-ending state to the programmable state, the fixed state of another non-ending state, or the fixed state of the ending state. It can be seen that the jump relationship between different states is not fixed, but changes in time. For an initial state, determining a next state to jump to based on an initial jump table; for a programmable state, the next state to jump to may be determined based on a programmable jump table; for the fixed state of the non-ending state, the next state needing to jump to can be determined based on the fixed jump configuration set in the fixed jump configuration; the fixed state of the last end state is used to mark the end of the flow. And the programmable state can generate corresponding driving signals based on the signal driving table, and the generated signals can be flexibly transformed based on the signal driving table, so that the flexibility of the signals can be improved. In the application, the jump relation among different states changes timely, the number of the states involved in the process is variable, and the signal which can be generated in a certain state is variable, so that if the NAND particles of the hard disk change or the process of a certain operation needs to change, the change can be realized by adjusting the signal driving table and the jump table in the relevant state, the state and the jump process do not need to be redesigned, the driving signal sent to the NAND PHY can be flexibly generated, and the scheme has good universality.
Accordingly, the drive signal generation device, the drive signal generation apparatus and the readable storage medium provided by the application also have the technical effects.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below, it is obvious that the drawings in the following description are only embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the provided drawings without creative efforts.
FIG. 1 is a schematic diagram of the connection between a hard disk controller, a NAND PHY and a NAND Flash disclosed in the present application;
FIG. 2 is a schematic diagram of a prior art state machine disclosed herein;
FIG. 3 is a flow chart of a method for generating a driving signal according to the present disclosure;
FIG. 4 is a schematic diagram of a state machine disclosed herein;
FIG. 5 is a schematic diagram of an initial jump table according to the present disclosure;
FIG. 6 is a signal driving representation of the present disclosure;
FIG. 7 is another signal drive representative intent disclosed herein;
FIG. 8 is a schematic diagram of a signal connection between a hard disk controller and a NAND PHY according to the present disclosure;
FIG. 9 is a schematic diagram of a NAND PHY drive signal vs. a NAND particle drive signal as disclosed herein;
FIG. 10 is a diagram illustrating a state machine jump relationship disclosed herein;
FIG. 11 is a schematic diagram of a driving signal generating apparatus according to the present disclosure;
fig. 12 is a schematic diagram of an electronic device disclosed in the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
At present, the existing scheme can only generate a fixed driving signal, if the NAND particles of the hard disk change or the flow of a certain operation needs to change, the current state flow cannot meet the change, and the state and the jump relationship thereof need to be redesigned. Therefore, the application provides a driving signal generation scheme which can flexibly generate the driving signal sent to the NAND PHY.
Referring to fig. 3, an embodiment of the present application discloses a method for generating a driving signal, which is applied to a hard disk controller, and includes:
s301, if an operation instruction is received, controlling the state machine to enter an initial state, and determining the next state to be jumped to based on an initial jump table in the initial state.
S302, if the next state is any programmable state, jumping to the programmable state and starting timing, generating a driving signal of an operation instruction in the programmable state based on a signal driving table in the programmable state in the timing process, and if the timing is finished, determining the next state needing jumping to based on a programmable jump table in the programmable state.
And S303, if the next state is any one fixed state of the non-end states, jumping to the fixed state, configuring and generating a driving signal of the operation instruction in the fixed state based on the fixed signal in the fixed state, and then determining the next state to jump to based on the fixed jumping configuration in the fixed state.
S304, if the next state is a fixed state of the end state, the flow ends.
Referring to fig. 3, the above steps are not sequentially performed, but are performed based on corresponding conditions. In the state machine provided in this embodiment, a jump can be made from an initial state to a programmable state, a fixed state of a non-ending state, or a fixed state of an ending state. It is also possible to jump from a programmable state to another programmable state, to a fixed state which is not an end state or to a fixed state which is an end state. It is also possible to jump from a fixed state of the non-ending state to a programmable state, to a fixed state of another non-ending state or to a fixed state of the ending state.
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 to jump between the two states, the present embodiment is not limited, and when the corresponding conditions are satisfied, various situations may occur. Therefore, the jump relationship between different states is not fixed but changes in time. For an initial state, determining a next state to jump to based on an initial jump table; for a programmable state, the next state to jump to may be determined based on a programmable jump table; for the fixed state of the non-ending state, the next state needing to jump to can be determined based on the fixed jump configuration set in the fixed jump configuration; the fixed state of the last end state is used to mark the end of the flow.
Various states involved in the present embodiment can be seen in fig. 4. In the state machine shown in fig. 4, there is one initial state, n fixed states (including fixed states of 1 end state and fixed states of n-1 non-end states), and n programmable states. For the initial state, an initial jump table is provided, based on which it can be determined where to jump from the initial state. The dashed arrows in fig. 4 point to destination states to which a jump from the initial state is possible. For programmable states, there is a programmable jump table based on which it can be determined where to jump from the current programmable state and a signal driving table based on which it can be determined which signals to generate. For a fixed state that is not an end state, its next hop and the currently generatable signal are fixed in configuration. Each fixed state is mainly used for implementing specific operations, such as DMA read and write, and the like. The fixed state may efficiently enable certain operations.
It should be noted that, a jump can be made from the initial state to a certain programmable state, or to a certain fixed state, and how to make the jump depends on the corresponding record of the initial jump table. Of course, the fixed states of the n-1 non-ending states may also jump into each other, depending on the fixed jump configuration in the fixed state of the non-ending states. The n programmable states may also jump to each other depending on the programmable jump table in the programmable state. The jump from a fixed state of a non-ending state to a programmable state also depends on the fixed jump configuration in the fixed state of the non-ending state. The jump from a programmable state to a fixed state is also dependent on the programmable jump table in the programmable state.
Since the fixed state of the non-ending state generates the drive signal based on the fixed signal configuration, it can be designed with reference to the existing scheme, that is: which signals are generated in which fixed states are fixed. The programmable state flexibly generates signals based on the signal driving table, and reference can be made to the related description of the following embodiments.
It can be seen that, in this embodiment, the jump relationship between different states in the state machine changes in time, the number of states involved in the process is variable, and a signal that can be generated in a certain state is variable, so if the NAND particles of the hard disk change or the process of a certain operation needs to change, the change can be implemented by adjusting the signal driving table and the jump table in the relevant state, the state and the jump process do not need to be redesigned, the driving signal to the NAND PHY can be flexibly generated, and the scheme has good versatility.
Based on the foregoing embodiments, it should be noted that, in a specific implementation, determining a next state to be skipped to based on an initial skip list in an initial state includes: and inquiring the name of the next state corresponding to the operation instruction in the initial jump table.
Referring to fig. 5, a plurality of jump judgment conditions may 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 which a jump from the initial state is required.
Based on the foregoing embodiments, it should be noted that, in a specific implementation, determining a next state to jump to based on a programmable jump table in a programmable state includes: and inquiring the name of the next state corresponding to the operation instruction in the programmable jump table.
Wherein, the programmable jump table in the programmable state is similar to the initial jump table, and a plurality of jump judgment conditions are also recorded, and each jump judgment condition comprises: 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 which a jump to from the current programmable state is required.
Based on the foregoing embodiments, it should be noted that, in a specific implementation manner, generating a driving signal of an operation instruction in a programmable state based on a signal driving table in the programmable state during a timing process includes: inquiring a signal driving table in the timing process to determine a driving signal required to be generated at each preset time point in the timing process; at least one preset time point and at least one signal required to be generated at each preset time point are recorded in the signal driving table.
Referring to fig. 6, signals that can be generated at corresponding preset time points are recorded in the signal driving table in any one of the programmable states according to the preset time points. The respective time points are determined based on a timer. It can be seen that entering the programmable state starts the timing, mainly to determine the point in time, and when to jump to the next state. Of course, each state may have a limit on the time at which the signal is generated. For example: when the current state is entered, the next state is jumped to after 10 seconds is set, and then the limit of the signal generation time of the current state is 10 seconds.
As shown in fig. 6, TT0-TT3 are recorded in the signal driving table for 4 time points. For TT0 with time point (Timer _ point) of 10' h3 (hexadecimal number), the signal required to be generated at this time point is: wrdata _ en is 4' b0111 (namely, dfi _ wrdata _ en is set to be 1), and the rest signals (CLE, ALE, WE and RE corresponding to TT 0) are not assigned with any value, and of course, the signals which are not assigned with values can not be recorded. wrdata _ en is the signal name where the signal is located. Namely: TT0 sets dfi _ wrdata _ en of the NAND PHY terminal to 1 to drive the dfi _ wrdata signal.
Accordingly, for TT1 with time point (Timer _ point) of 10' h4 (hexadecimal number), the signal required to be generated at this time point is: CLE 2'b11 (i.e. CLE 1) and wrdatan 4' b0000, and the rest of the signals are not assigned any value (ALE, WE, RE corresponding to TT 1). Namely: TT1 sets CLE signal at NAND PHY end to 1, and dfi _ wrdata _ en and dfi _ wrdata remain unchanged.
Accordingly, when TT2, the CLE signal at the NAND PHY end is set to 0, and the dfi _ wrdata _ en and the dfi _ wrdata remain unchanged. TT3 sets dfi _ wrdata _ en of the NAND PHY terminal to 0.
It can be seen that TT0-TT3 corresponds to which time point at all, depending on how much Timer _ point is equal; and which signals take what values at any one point in time depends on the corresponding record in the signal drive table.
It should be noted that fig. 6 only shows the assignment of the NAND PHY interface signals. The first column of the table thus records: TT _ TYPE2' b 01. "TT _ TYPE2' b 01" is used to indicate that the generated signal at a certain point in time is used to drive the NAND PHY interface signal. NAND PHY interface signals such as: CLE, ALE, WE, etc.
Of course, the signal driving table may also record the internal signal of the hard disk controller, and at this time, the first column of the table records: TT _ TYPE2' b 10. "TT _ TYPE2' b 10" is used to indicate that the generated signal at a certain point in time belongs inside the hard disk controller. Referring to fig. 7, as shown in fig. 7, the driven signals are internal signals such as ps _ time, rd _ deskew _ req, etc.
The signal connections between the hard disk controller (NAND controller) and the NAND PHY can be seen in fig. 8. As shown in fig. 8, clk is a clock signal, and dfi _ cebar, dfi _ cle, dfi _ ale, dfi _ rebar, and dfi _ webar are control signals; the dfi _ wrdata _ en and the dfi _ wrdata are write data signals; the dfi _ rddata _ en, the dfi _ rddata _ valid, and the dfi _ rddata are read data signals. The signals in fig. 8 are not all signals, but are only for illustrating the connection relationship. The signal between the NAND PHY and the NAND IO is an IO signal (e.g., cebar _ opad). The signals between the NAND IO and the NAND are signal lines (such as cebar, cle and the like) between the actual and Flash particles. It can be seen that the timing signals of the NAND PHY driven by the hard disk controller will eventually drive the NAND particles, which is: the hard disk controller sends a drive signal to the NAND PHY, and the NAND PHY operates the NAND Flash of the hard disk according to the drive signal.
Referring to fig. 9, if the hard disk controller generates the driving signals shown in fig. 9 (the signals in the upper half of fig. 9 in the bold frame), then there will be a corresponding NAND IO signal sent to the NAND particle (the signals in the lower half of fig. 9 in the frame). Because the signal for driving the NAND particles needs to meet the ONFI protocol requirement and the NAND particle requirement, the driving signal generated by the hard disk controller also needs to meet a certain requirement.
Since the number of the preset time points recorded in the signal driving table can be adjusted, the signal to be generated at each preset time point can also be adjusted. Of course, the jump decision conditions in the initial jump table and the programmable jump table may also be adjusted. In a word, the signal driving table, the initial jump table and the programmable jump table can be updated manually at proper time according to requirements.
Then the process of updating the initial jump table and the programmable jump table may include: and if an updating instruction of the initial jump table and/or the signal driving table and/or the programmable jump table is received, updating the initial jump table and/or the signal driving table and/or the programmable jump table based on the updating instruction.
In one embodiment, the initial jump table or the programmable jump table is used as an updateable table, and the updating process of the updateable table includes: modifying the operation instruction recorded in the updatable table or the name of the corresponding next state; and/or deleting the operation instruction recorded in the updatable table and the name of the corresponding next state; and/or adding new operation instructions in the updatable table and the name of the corresponding next state.
In one embodiment, updating the signal driving table includes: modifying the preset time point recorded in the signal driving table or at least one corresponding signal; and/or deleting the preset time point recorded in the signal driving table and the corresponding at least one signal; and/or newly adding a preset time point and at least one corresponding signal in the signal driving table.
Referring to fig. 10, the following embodiments provide an example of a state-hopping relationship for a state machine. In the jump relationship shown in fig. 10, an initial state, 3 fixed states are involved: DMA _ Write state, DMA _ Read state and end state, and 3 programmable states: PS _ x state, PS _ y state, and PS _ z state.
The hard disk controller receives a command, uses 'init jump judging condition n' in an initial jump table in an initial state to detect whether the current command is DMA write, uses 'init jump judging condition m' in the initial jump table to detect whether the current command is DMA read, uses 'init jump judging condition x' in the initial jump table to detect whether the current command jumps to a PS _ x state, and uses 'init jump judging condition y' in the initial jump table to detect whether the current command jumps to a PS _ y state.
It should be noted that the check value (e.g., x, y, z, w, etc.) in each jump judgment condition has no absolute correlation, and may be any detection value that is allowed to be set.
Assuming that the init jump judgment condition n, the init jump judgment condition m, the init jump judgment condition x and the init jump judgment condition y are all satisfied, the corresponding jump is completed. Of course, in the actual use process, only any one of the jump judgment conditions in a certain state is satisfied, and generally, a plurality of jump judgment conditions in a certain state are not satisfied at the same time. Namely: only one destination state can be uniquely determined in one state. If the situation that a plurality of jump judgment conditions are met in one state occurs, the only one target state can be determined according to the priorities of different jump judgment conditions.
After jumping to the DMA _ Write state, detecting whether the DMA Write is completed or not, and entering an ending state after the DMA Write is completed.
And after jumping to the DMA _ Read state, detecting whether the DMA Read is completed or not, and entering an ending state after the DMA Read is completed.
After jumping to the programmable state PS _ x, detecting whether to jump to the PS _ z state by using the 'PS jump judgment condition z' in the state, and finishing corresponding jumping if the 'PS jump judgment condition z' is met.
After jumping to the programmable state PS _ y, detecting whether to jump to the PS _ x state by using the 'PS jump judgment condition x' in the state, and finishing corresponding jumping if the 'PS jump judgment condition x' is met. And detecting whether the state is jumped to the PS _ z state by using the 'PS jump judgment condition z' in the state, and finishing corresponding jump if the 'PS jump judgment condition z' is met.
After jumping to the programmable state PS _ z, detecting whether to jump to the ending state by using the 'PS jump judgment condition w' in the state, and finishing corresponding jumping if the 'PS jump judgment condition w' is met.
It can be seen that in each state in the embodiment, the different states can jump to each other only by satisfying the corresponding condition. Based on a state machine consisting of an initial state, a fixed state and a programmable state, the configurable jump judgment condition can flexibly realize the setting of the jump relation between the states, and the programmable state can generate any PHY end driving signal based on the driving signal table, and can flexibly adjust the timing sequence of the driving signal after the NAND particle timing sequence is updated, thereby adapting to different NAND particle timing sequence requirements.
In the following, a driving signal generating apparatus provided by an embodiment of the present application is introduced, and a driving signal generating apparatus described below and a driving signal generating method described above may be referred to each other.
Referring to fig. 11, an embodiment of the present application discloses a driving signal generating apparatus, including
An initial state module 1101, configured to control the state machine to enter an initial state if an operation instruction is received, and determine a next state to be jumped to based on an initial jump table in the initial state;
the programmable state module 1102 is configured to jump to a programmable state and start timing if the next state is any programmable state, generate a driving signal of an operation instruction in the programmable state based on a signal driving table in the programmable state during timing, and determine the next state to jump to based on a programmable jump table in the programmable state if timing is finished;
a fixed state module 1103, configured to jump to a fixed state if a next state is any one of the fixed states that are not the end states, configure and generate a driving signal of an operation instruction in the fixed state based on a fixed signal in the fixed state, and determine, based on a fixed jump configuration in the fixed state, the next state that needs to jump to;
an end module 1104, configured to end the flow if the next state is a fixed state of the end state.
In a specific embodiment, the initial state module is specifically configured to:
and inquiring the name of the next state corresponding to the operation instruction in the initial jump table.
In one embodiment, the programmable status module is specifically configured to:
inquiring a signal driving table in the timing process to determine a driving signal required to be generated at each preset time point in the timing process; at least one preset time point and at least one signal required to be generated at each preset time point are recorded in the signal driving table.
In one embodiment, the programmable status module is specifically configured to:
and inquiring the name of the next state corresponding to the operation instruction in the programmable jump table.
In a specific embodiment, the method further comprises the following steps:
and the updating module is used for updating the initial jump table and/or the signal driving table and/or the programmable jump table based on the updating instruction if the updating instruction of the initial jump table and/or the signal driving table and/or the programmable jump table is received.
In one embodiment, the update module takes the initial jump table or the programmable jump table as an updateable table, and the updating process for the updateable table includes: modifying the operation instruction recorded in the updatable table or the name of the corresponding next state; and/or deleting the operation instruction recorded in the updatable table and the name of the corresponding next state; and/or adding new operation instructions in the updatable table and the name of the corresponding next state.
In one embodiment, the updating module updates the signal driving table including: modifying the preset time point recorded in the signal driving table or at least one corresponding signal; and/or deleting the preset time point recorded in the signal driving table and the corresponding at least one signal; and/or newly adding a preset time point and at least one corresponding signal in the signal driving table.
For more specific working processes of each module and unit in this embodiment, reference may be made to corresponding contents disclosed in the foregoing embodiments, and details are not described here again.
It can be seen that this embodiment provides a driving signal generating apparatus, in which the jump relationship between different states changes in time, the number of states involved in a flow is variable, and a signal that can be generated in a certain state is variable, so if a NAND particle of a hard disk changes, or the flow of a certain operation needs to be changed, a signal driving table and a jump table in the relevant state can be modified by adjusting, and it is not necessary to redesign each state and jump flow, and a driving signal to be sent to a NAND PHY can be generated flexibly.
In the following, an electronic device provided by an embodiment of the present application is introduced, and an electronic device described below and a driving signal generating method and apparatus described above may be referred to each other.
Referring to fig. 12, an embodiment of the present application discloses an electronic device, including:
a memory 1201 for storing a computer program;
a processor 1202 for executing the computer program to implement the method disclosed in any of the embodiments above.
A readable storage medium provided by the embodiments of the present application is introduced below, and a readable storage medium described below and a driving signal generating method, apparatus, and device described above may be mutually referred to.
A readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the driving signal generating method disclosed in the foregoing embodiments. For the specific steps of the method, reference may be made to the corresponding contents disclosed in the foregoing embodiments, which are not described herein again.
References in this application to "first," "second," "third," "fourth," etc., if any, are intended to distinguish between similar elements and not necessarily to describe a particular order or sequence. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. Furthermore, the terms "comprises" and "comprising," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, or apparatus.
It should be noted that the descriptions in this application referring to "first", "second", etc. are for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In addition, technical solutions between various embodiments may be combined with each other, but must be realized by a person skilled in the art, and when the technical solutions are contradictory or cannot be realized, such a combination should not be considered to exist, and is not within the protection scope of the present application.
The embodiments are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same or similar parts among the embodiments are referred to each other.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), memory, Read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of readable storage medium known in the art.
The principle and the implementation of the present application are explained herein by applying specific examples, and the above description of the embodiments is only used to help understand the method and the core idea of the present application; meanwhile, for a person skilled in the art, according to the idea of the present application, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present application.

Claims (10)

1. A driving signal generating method, comprising:
if an operation instruction is received, controlling a state machine to enter an initial state, and determining a next state needing to be jumped 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 in the timing process, and if the timing is finished, determining the next state needing jumping to based on a programmable jump table in the programmable state;
if the next state is any fixed state of the non-ending states, jumping to the fixed state, generating a driving signal of the operation instruction in the fixed state based on fixed signal configuration in the fixed state, and then determining the next state to jump to based on fixed jumping configuration in the fixed state;
and if the next state is a fixed state of the ending state, ending the process.
2. The method according to claim 1, wherein the determining a next state to jump to based on an initial jump table in the initial state comprises:
and inquiring the name of the next state corresponding to the operation instruction in the initial jump table.
3. The method according to claim 1, wherein the generating the driving signal of the operation instruction in the programmable state based on the signal driving table in the programmable state during the timing process comprises:
inquiring the signal driving table in the timing process to determine a driving signal required to be generated at each preset time point in the timing process; at least one preset time point and at least one signal required to be generated at each preset time point are recorded in the signal driving table.
4. The method of generating a driving signal according to claim 1, wherein the determining a next state to jump to based on a programmable jump table in the programmable states comprises:
and inquiring the name of the next state corresponding to the operation instruction in the programmable jump table.
5. The drive signal generation method according to any one of claims 1 to 4, characterized by further comprising:
and if an updating instruction of the initial jump table and/or the signal driving table and/or the programmable jump table is received, updating the initial jump table and/or the signal driving table and/or the programmable jump table based on the updating instruction.
6. The method according to claim 5, wherein the initial skip list or the programmable skip list is used as an updateable list, and the updating process of the updateable list comprises:
modifying the operation instruction recorded in the updatable table or the name of the corresponding next state;
and/or
Deleting the operation instruction recorded in the updatable table and the name of the corresponding next state;
and/or
And adding an operation instruction and the name of the corresponding next state in the updatable table.
7. The drive signal generation method according to claim 5, wherein updating the signal drive table includes:
modifying the preset time point recorded in the signal driving table or at least one corresponding signal;
and/or
Deleting the preset time point recorded in the signal driving table and at least one corresponding signal;
and/or
And newly adding a preset time point and at least one corresponding signal in the signal driving table.
8. A drive signal generation apparatus, comprising
The initial state module is used for controlling the state machine to enter an initial state if an operation instruction is received, and determining the next state to be jumped to based on an initial jump table in the initial state;
the programmable state module is used for jumping to the programmable state and starting timing if the next state is any programmable state, generating a driving signal of the operation instruction in the programmable state based on a signal driving table in the programmable state in the timing process, and determining the next state needing jumping to based on a programmable jump table in the programmable state if the timing is finished;
a fixed state module, configured to jump to the fixed state if the next state is any one of non-end states, generate a driving signal of the operation instruction in the fixed state based on a fixed signal configuration in the fixed state, and determine, based on a fixed jump configuration in the fixed state, the next state to which the jump is to be performed;
and the ending module is used for ending the process if the next state is a fixed state of the ending state.
9. An electronic device, comprising:
a memory for storing a computer program;
a processor for executing the computer program to implement the drive signal generation method of any one of claims 1 to 7.
10. A readable storage medium for storing a computer program, wherein the computer program when executed by a processor implements the drive signal generation method of any one of claims 1 to 7.
CN202111155665.6A 2021-09-29 2021-09-29 Drive signal generation method, device, equipment and readable storage medium Pending CN113870926A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111155665.6A CN113870926A (en) 2021-09-29 2021-09-29 Drive signal generation method, device, equipment and readable storage medium
PCT/CN2022/097618 WO2023050863A1 (en) 2021-09-29 2022-06-08 Driving signal generation method and apparatus, device and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111155665.6A CN113870926A (en) 2021-09-29 2021-09-29 Drive signal generation method, device, equipment and readable storage medium

Publications (1)

Publication Number Publication Date
CN113870926A true CN113870926A (en) 2021-12-31

Family

ID=79000890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111155665.6A Pending CN113870926A (en) 2021-09-29 2021-09-29 Drive signal generation method, device, equipment and readable storage medium

Country Status (2)

Country Link
CN (1) CN113870926A (en)
WO (1) WO2023050863A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050863A1 (en) * 2021-09-29 2023-04-06 深圳大普微电子科技有限公司 Driving signal generation method and apparatus, device and readable storage medium
CN117076351A (en) * 2023-10-11 2023-11-17 合肥奎芯集成电路设计有限公司 Memory access method and device based on ONFI PHY interface specification

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159083B2 (en) * 2002-12-13 2007-01-02 Texas Instruments Incorporated Programmable transition state machine
CN107992332A (en) * 2017-11-24 2018-05-04 江苏神州信源系统工程有限公司 A kind of realization method and system of state machine
JP2021086506A (en) * 2019-11-29 2021-06-03 株式会社リコー System and programmable sequencer
CN112363974B (en) * 2020-09-27 2022-05-31 青岛矽昌通信技术有限公司 Control method and system of programmable state machine
CN113409862A (en) * 2021-06-28 2021-09-17 芯天下技术股份有限公司 Memory erasing method and device, electronic equipment and storage medium
CN113870926A (en) * 2021-09-29 2021-12-31 深圳大普微电子科技有限公司 Drive signal generation method, device, equipment and readable storage medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050863A1 (en) * 2021-09-29 2023-04-06 深圳大普微电子科技有限公司 Driving signal generation method and apparatus, device and readable storage medium
CN117076351A (en) * 2023-10-11 2023-11-17 合肥奎芯集成电路设计有限公司 Memory access method and device based on ONFI PHY interface specification
CN117076351B (en) * 2023-10-11 2024-01-19 合肥奎芯集成电路设计有限公司 Memory access method and device based on ONFI PHY interface specification

Also Published As

Publication number Publication date
WO2023050863A1 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
CN113870926A (en) Drive signal generation method, device, equipment and readable storage medium
KR100988157B1 (en) Method and apparatus for detecting memory device configuration, and computer readable medium containing instructions for performing method for detecting memory device configuration
JP2001297316A (en) Memory card and control method therefor
JP2012230621A (en) Memory apparatus, memory control apparatus, and memory control method
CN105718281A (en) Touch screen firmware upgrading method and device
CN108668157B (en) Focus moving method and device and set top box
US20100153622A1 (en) Data Access Controller and Data Accessing Method
US8065449B2 (en) DMA device having plural buffers storing transfer request information and DMA transfer method
CN108538332B (en) Reading method of NAND gate flash memory
US20050188148A1 (en) Data access controlling method in flash memory and data access controlling program
JP2007299227A (en) Information processing apparatus and method for booting the same
JP2019016086A (en) Automobile electronic control device
JP2007052558A (en) Flash memory rewrite device, flash memory rewrite method and flash memory rewrite program
JP2007133512A (en) Information processor with flash rom, and data erasing method for flash rom
KR101470158B1 (en) Calibration apparatus and method thereof
JP2009230425A (en) Information processor
JP2006171803A (en) Program rewrite system for on-vehicle electronic controller, boot loader for computer for on-vehicle electronic controller, recording medium and on-vehicle electronic controller
CN109147847B (en) Semiconductor device and flash memory control method
JP6334776B1 (en) Electronic control unit
JP2009223435A (en) Data storage method and device, and program
CN106569861B (en) Chip IAP data updating control method and system
JP6394291B2 (en) Electronic control device and memory rewriting method
CN111966285B (en) Method, main control chip and system for storing data into EEPROM
KR101277344B1 (en) Repairable reprogramming method for microcontroller's software
JP6217664B2 (en) Microcomputer device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination