WO2024077825A1 - Data storage method and apparatus based on ethash algorithm, device, and storage medium - Google Patents

Data storage method and apparatus based on ethash algorithm, device, and storage medium Download PDF

Info

Publication number
WO2024077825A1
WO2024077825A1 PCT/CN2023/076138 CN2023076138W WO2024077825A1 WO 2024077825 A1 WO2024077825 A1 WO 2024077825A1 CN 2023076138 W CN2023076138 W CN 2023076138W WO 2024077825 A1 WO2024077825 A1 WO 2024077825A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
storage unit
test
directed acyclic
Prior art date
Application number
PCT/CN2023/076138
Other languages
French (fr)
Chinese (zh)
Inventor
杨媛媛
刘明
李彦
石昊明
闫超
Original Assignee
声龙(新加坡)私人有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 声龙(新加坡)私人有限公司 filed Critical 声龙(新加坡)私人有限公司
Publication of WO2024077825A1 publication Critical patent/WO2024077825A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Definitions

  • the present application relates to the field of semiconductor chip storage, and more specifically, to a data storage method, device, equipment and storage medium based on the ETHASH algorithm.
  • Proof of Work is a process where a user performs some appropriately time-consuming complex calculations and obtains an answer, and the answer can be quickly verified by the service provider.
  • the commonly used calculation method is hash calculation (ETHASH).
  • ETHASH hash calculation
  • the ETHASH algorithm has nothing to do with the speed of calculation, but is related to the memory size of the computer that executes the ETHASH algorithm, the computer chip needs to have high-bandwidth, large-capacity and near-memory computing (NMC) functions.
  • NMC near-memory computing
  • the design methods used for chips with large capacity are: 1) using a large number of dynamic random access memory (DRAM); 2) using advanced packaging technology, such as high bandwidth memory (HBM) or vertically stacking silicon wafers or bare crystals into the same package device (3DIC).
  • DRAM dynamic random access memory
  • HBM high bandwidth memory
  • 3DIC vertically stacking silicon wafers or bare crystals into the same package device
  • Some embodiments of the present application provide a data storage method, apparatus, device and storage medium based on the ETHASH algorithm that can at least partially solve the above-mentioned problems existing in the prior art.
  • a data storage method based on an ETHASH algorithm is provided, wherein the ETHASH algorithm is based on chip operation, wherein the chip includes multiple storage blocks, each of which includes multiple storage units, and may include: testing multiple storage units of the storage block and obtaining test results; classifying the multiple storage units according to the test results, dividing them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that passes the test, and the second storage unit is a storage unit that fails the test; obtaining cache data, and storing the cache data in the first storage unit; and The directed acyclic graph data is acquired based on the received data, and the directed acyclic graph data is stored in the first storage unit and/or the second storage unit.
  • the method may further include: obtaining the number of the second storage units contained in the storage block and comparing it with a predetermined computing power value; in response to the number of the second storage units contained in the storage block exceeding the predetermined computing power value, performing an ETHASH operation on the directed acyclic graph data stored in the storage block and obtaining an operation result; and based on the operation result, determining a rejection rate of the storage block, if the rejection rate of the storage block is less than a preset value, the storage block is used for data storage, if the rejection rate of the storage block is greater than or equal to the preset value, the storage block is not used for data storage, wherein the rejection rate is the ratio of the number of data whose operation results are greater than a specific difficulty value to the number of overall data of the operation results.
  • the step of obtaining cache data and storing the cache data in the first storage unit may include: obtaining a training number, wherein the training number is a ratio of the number of storage blocks to the training length; performing training based on the ETHASH algorithm and the training number to obtain a seed; calculating the length of the cache data; calculating the cache data based on the seed and the length of the cache data; and allocating storage space of the first storage unit for storage according to the cache data, and recording a storage address table of the cache data.
  • the step of obtaining directed acyclic graph data based on the cache data may include: reading the cache data according to a storage address table of the cache data; calculating the length of the directed acyclic graph data; and calculating the directed acyclic graph data based on the length of the directed acyclic graph data and the read cache data.
  • the storage space X of the cache data in the storage unit may satisfy: M*D*64/65 ⁇ X ⁇ M*D-1, where M is the number of storage units that pass the test in the storage block, and D is the storage space address depth of the storage unit.
  • the storage space Y of the directed acyclic graph data in the storage unit may satisfy: M*D*64/65 ⁇ Y ⁇ L*D*64/65, wherein M is the number of storage units that pass the test in the storage block, D is the storage space address depth of the storage unit, and L is the number of storage units that store the directed acyclic graph data.
  • the step of testing the storage area of the chip and obtaining the test result may include: writing initial test data into the storage unit, wherein the initial test data includes a known pseudo-random sequence; and reading the data of the storage unit, and comparing the read data of the storage unit with the initial test data, if the read data of the storage unit is the same as the initial test data, the test result of the storage unit is passed, and if the read data of the storage unit is different from the initial test data, the test result of the storage unit is failed.
  • the method may further include: performing error checking and correction on the data stored in the second storage unit; and comparing the corrected data with the initial test data, and if the corrected data is the same as the initial test data, reclassifying the second storage unit. to the first storage unit.
  • the present application provides a data storage device based on the ETHASH algorithm, wherein the ETHASH algorithm is run based on a chip, wherein the chip includes multiple storage blocks, each of which includes multiple storage units, and may include: a testing module, used to test the multiple storage units of the storage block and obtain test results; a classification module, used to classify the multiple storage units according to the test results, and divide them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that has passed the test, and the second storage unit is a storage unit that has not passed the test; a cache data acquisition and storage module, used to acquire cache data and store the cache data in the first storage unit; and a directed acyclic graph data acquisition and storage module, used to acquire the directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
  • a testing module used to test the multiple storage units of the storage block and obtain test results
  • a classification module used to
  • the present application provides an electronic device, which may include: a processor, suitable for executing a computer program; and a computer-readable storage medium, in which the computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, it implements any of the above methods.
  • the present application provides a computer-readable storage medium, wherein the computer-readable storage medium is used to store a computer program, wherein the computer program enables a computer to execute any one of the above methods.
  • FIG1 is a flow chart of a data storage method 1000 based on the ETHASH algorithm according to an embodiment of the present application
  • FIG2 is a flow chart of a testing method according to an exemplary embodiment of the present application.
  • FIG3 is a flow chart of a method for re-dividing the second storage unit according to an exemplary embodiment of the present application
  • FIG4 is a flow chart of a method for calculating cache data according to an exemplary embodiment of the present application.
  • FIG5 is a flow chart of a method for calculating directed acyclic graph data according to an exemplary embodiment of the present application
  • FIG6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application.
  • FIG6B is a schematic diagram of a storage block according to another exemplary embodiment of the present application.
  • FIG. 7 is a schematic diagram of a data storage device 2000 based on the ETHASH algorithm according to an exemplary embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an electronic device 800 according to an exemplary embodiment of the present application.
  • FIG1 is a flow chart of a data storage method 1000 based on the ETHASH algorithm according to an embodiment of the present application.
  • the ETHASH algorithm is based on chip operation, the chip includes multiple storage blocks, each storage block includes multiple storage units, as shown in FIG1, the data storage method 1000 based on the ETHASH algorithm may include:
  • Step S100 testing multiple storage units of a storage block and obtaining test results
  • Step S200 classifying the plurality of storage units according to the test results into first storage units and second storage units, wherein the first storage units are storage units that have passed the test and the second storage units are storage units that have not passed the test;
  • Step S300 Acquire cache data and store the cache data in a first storage unit
  • Step S400 Obtain directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
  • the chip manufacturing process is very complicated, and it has to go through dozens or even hundreds of process procedures such as doping, oxidation, photolithography, and etching, involving various chemical, physical, and mechanical processes. Therefore, during the chip manufacturing process, a certain amount of bad memory blocks will appear. Even if the chip is intact, after a large amount of data is stored, the memory blocks in the chip may also become bad.
  • the storage area of the chip is first tested and the test results are obtained, wherein the storage area includes multiple storage blocks, and each storage block includes multiple storage cells.
  • the test of the storage area of the chip includes a testability technology test (Design For Test, referred to as DFT), confirming whether the storage blocks and storage cells of the storage area of the chip are intact, and storing the test results.
  • FIG. 2 is a flow chart of a test method according to an exemplary embodiment of the present application. As shown in FIG. 2, the test method includes the following steps:
  • Step S110 writing initial test data into a storage unit in a storage area, wherein the initial test data includes A known pseudo-random sequence;
  • Step S120 Read the data of the storage cell and compare the data read from the storage cell with the initial test data. If the data read from the storage cell is the same as the initial test data, the test result of the storage cell is passed; if the data read from the storage cell is different from the initial test data, the test result of the storage cell is failed.
  • the initial test data is a known pseudo-random sequence, such as 01101001.
  • the initial test data is written into the storage unit, and then the data of the storage unit is read, and the data of the read storage unit is compared with the initial test data. If the data of the read storage unit is the same as the initial test data, that is, the read data is 01101001, then the test result of the storage unit is considered to be passed; if the data of the read storage unit is different from the initial test data, then the test result of the storage unit is considered to be failed.
  • the test of the storage area can be tested based on the storage unit as a unit, and then the test result of the storage block is further obtained according to the test results of the storage units contained in each storage block. It can be known to those skilled in the art that the test method of the present application and the pseudo-random sequence in the test process are exemplary descriptions, and the present application is not limited to this.
  • the storage units of the storage block by testing the storage units of the storage block, it can be determined whether the tested storage units are intact, so as to subsequently allocate storage units to cache data and directed acyclic graph data according to the test results.
  • multiple storage units can also be classified according to the test results and divided into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that passes the test and the second storage unit is a storage unit that fails the test.
  • FIG3 is a flow chart of a method for re-dividing the second storage unit according to an exemplary embodiment of the present application. As shown in FIG3, the method for re-dividing the second storage unit includes the following steps:
  • Step S210 performing error checking and correction on the data stored in the second storage unit
  • Step S220 Compare the corrected data with the initial test data. If the corrected data is the same as the initial test data, re-divide the second storage unit into the first storage unit.
  • the DDR method uses the rising and falling edges of the selection signal (Data strobe signal, DQS) to sample the data signal (Data signal, DQ), that is, to read the data. Therefore, data reading errors may occur due to delays, which are not reading errors caused by damage to the storage unit. They can be recovered later through error checking and correction (Error Correcting Code, ECC).
  • ECC Error Correcting Code
  • the corrected data is the same as the initial test data, it is considered that the second storage unit has passed the test, and the second storage unit is reclassified into the first storage unit.
  • error checking and correction of the second storage unit is an exemplary description, and other methods can also be used. For example, performing memory repair on the storage block where the second storage unit is located, etc., which is not limited in this application.
  • multiple storage units are classified and processed according to the test results, divided into a first storage unit and a second storage unit, and then the storage data of the second storage unit is error checked and corrected. If the second storage unit can pass the test after correction, the second storage unit is re-divided into the first storage unit, thereby maximizing the available storage area in the memory and improving the utilization rate of the storage unit.
  • FIG4 is a flow chart of a method for calculating cache data according to an exemplary embodiment of the present application.
  • calculating cache data (cache) includes the following steps:
  • Step S310 Obtain the number of training times, where the number of training times is the ratio of the number of storage blocks to the training length;
  • Step S330 Perform training based on the ETHASH algorithm and the number of training times to obtain a seed
  • Step S350 Calculate the length of the cached data
  • Step S370 Calculating cache data based on the seed and the length of the cache data.
  • Step S390 Allocate storage space of the first storage unit according to the cache data for storage, and record a storage address table of the cache data.
  • the current training times are first calculated according to the number of storage blocks (block number) configured in the chip, where the training times are the ratio of the number of storage blocks to the training length (ETHASH epoch length).
  • block number the number of storage blocks configured in the chip
  • the training times are the ratio of the number of storage blocks to the training length (ETHASH epoch length).
  • ETHASH epoch length the value of ETHASH epoch length is 30000, that is, the subsequent cache data will be changed once every 30000 storage blocks.
  • training is performed based on the ETHASH algorithm and the number of training times to obtain a seed.
  • the initial value of the seed is set to 0, and then an iterative operation is performed based on the ETHASH algorithm according to the number of training times obtained in step S310, wherein the ETHASH algorithm may be SHA3_256, and a final seed may be obtained, for example, data with a length of 256 bits may be obtained as a seed.
  • the length of the cached data can be calculated according to the number of configured storage blocks and the ETHASH algorithm.
  • the length of the cached data obtained by different training times is different, that is, the number of iterations of the subsequent calculation is related to the length of the cached data.
  • the cached data is calculated based on the seed and the length of the cached data. For example, based on the ETHASH algorithm, the seed and the length of the cached data are subjected to modulus, SHA3_512 or XOR and other related operations to obtain the calculation result of the cached data (cache).
  • FIG. 6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application.
  • the storage block includes N storage units, wherein cache data and/or directed acyclic graph data can be stored in N-1 units.
  • cache data (cache) is only stored in the storage unit that passes the test, and if storage unit 3 fails the test, cache data (cache) data is not stored in storage unit 3, i.e., in storage unit 1, storage unit 2 ... storage unit N-1, the storage unit that passes the test is the first storage unit, and the storage unit that fails the test is the second storage unit.
  • the storage space of cache data (cache) is configured according to the divided first storage unit.
  • the cache data in the storage space X of the storage unit satisfies: M*D*64/65 ⁇ X ⁇ M*D-1.
  • the storage address table of the cache data is recorded, i.e., the corresponding physical address of the storage space for storing the cache data (cache) is configured, so that the cache data (cache) can be called according to the storage address table of the cache data when the directed acyclic graph data is subsequently calculated.
  • step S400 directed acyclic graph data can also be obtained according to the cache data, and the directed acyclic graph data is stored in the first storage unit and the second storage unit.
  • FIG. 5 is a flow chart of a method for calculating directed acyclic graph data according to an exemplary embodiment of the present application.
  • calculating directed acyclic graph data (dag) includes the following steps:
  • Step S320 reading cache data according to the storage address table of cache data
  • Step S340 Calculate the length of the directed acyclic graph data
  • Step S360 Calculating the directed acyclic graph data based on the length of the directed acyclic graph data and the read cache data;
  • Step S380 Allocate storage space of the first storage unit and the second storage unit for storage according to the directed acyclic graph data.
  • the length of the directed acyclic graph data can be calculated according to the number of configured storage blocks and the ETHASH algorithm, and the length of the directed acyclic graph data obtained by different training times is different, that is, the number of iterations of subsequent calculations is related to the length of the directed acyclic graph data.
  • the directed acyclic graph data is calculated based on the length of the directed acyclic graph data and the cache data read, for example, based on the ETHASH algorithm, the length of the directed acyclic graph data and the cache data read are subjected to remainder, SHA3_512 or XOR and other related operations, and the calculation result of the directed acyclic graph data (dag) can be obtained.
  • the storage space of the first storage unit and the second storage unit can also be allocated for storage according to the directed acyclic graph data (dag).
  • the hash value calculated based on the directed acyclic graph data (dag) can have a certain rejection rate, so the first storage unit and the second storage unit can store the directed acyclic graph data (dag).
  • FIG6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application.
  • the storage block includes N storage units, wherein N-1 units can store cache data and/or directed acyclic graph data.
  • N-1 units can store cache data and/or directed acyclic graph data.
  • storage unit 1 storage unit 2, ... storage unit N-1
  • the storage unit tested is the first storage unit
  • the storage unit that fails the test is the second storage unit.
  • the storage space of the directed acyclic graph data (dag) is configured according to the divided first storage unit and/or second storage unit.
  • FIG. 6B is a schematic diagram of a storage block according to another exemplary embodiment of the present application.
  • the storage block includes N storage units, wherein cache data and/or directed acyclic graph data can be stored in N-1 units.
  • N-1 Exemplarily, in storage unit 1, storage unit 2 ... storage unit N-1, the storage unit that passes the test is the first storage unit, and the storage unit that fails the test is the second storage unit.
  • the storage space of the directed acyclic graph data (dag) is configured according to the divided first storage unit and/or second storage unit.
  • the number of storage units that pass the test in the storage block is M, that is, the number of first storage units is M, wherein the storage space address depth of each storage unit is D, the number of storage units storing directed acyclic graph data is L, and the storage space Y of the directed acyclic graph data in the storage unit satisfies: M*D*64/65 ⁇ Y ⁇ L*D*64/65.
  • the address depth of the storage space of the cached data is different, that is, the storage space of the cached data is located in the designated storage space of the first storage unit, and the storage space can be allocated according to the specific circumstances.
  • cache cache data
  • directed acyclic graph data ag
  • storage space of the storage unit is configured for the two types of data respectively, the cache data is only stored in the first storage unit, and the directed acyclic graph data is stored in the first storage unit and the second storage unit, thereby improving the utilization rate of the storage unit, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
  • the performance of the storage block can also be further determined by the hash value calculated by the directed acyclic graph data (dag) in the storage block.
  • the number of second storage units contained in each storage block is obtained based on step S200. If the number of second storage units contained in a single storage block exceeds the predetermined value of computing power, the directed acyclic graph data stored in the storage block is ETHASH operated, and the operation result, i.e., the hash value, is obtained.
  • the rejection rate can be further calculated based on the number of data whose operation result is greater than the specific difficulty value and the number of overall data of the operation result, wherein the rejection rate is the ratio of the number of data whose operation result is greater than the specific difficulty value to the number of overall data of the operation result. If the rejection rate of the storage block is less than the preset value, the storage block stores data normally; if the rejection rate of the storage block is greater than or equal to the preset value, the storage block is not used for data storage, wherein the specific difficulty value and the preset value can be adjusted according to the computing power of the chip.
  • a specific difficulty value also referred to as a target value, target
  • the performance of the storage block is tested again based on the number of second storage units contained in each storage block and the rejection rate of the storage block, thereby improving the utilization rate of the storage block, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
  • FIG7 is a schematic diagram of a data storage device 2000 based on the ETHASH algorithm according to an exemplary embodiment of the present application.
  • the data storage device 2000 includes: a test module 2100, a classification module 2200, a cache data acquisition and storage module 2300, and a directed acyclic graph data acquisition and storage module 2400.
  • the test module 2100 is used to test multiple storage units of the storage block and obtain test results.
  • the classification module 2200 is used to classify the multiple storage units according to the test results, and divide them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that has passed the test, and the second storage unit is a storage unit that has not passed the test.
  • the cache data acquisition and storage module 2300 is used to acquire cache data and store the cache data in the first storage unit.
  • the directed acyclic graph data acquisition and storage module 2400 is used to acquire directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
  • cache cache data
  • directed acyclic graph data ag
  • storage space of the storage unit is configured for the two types of data respectively, the cache data is only stored in the first storage unit, and the directed acyclic graph data is stored in the first storage unit and the second storage unit, thereby improving the utilization rate of the storage unit, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
  • FIG8 is a schematic diagram of the structure of an electronic device 800 according to an exemplary embodiment of the present application.
  • the electronic device 800 includes at least a processor 810 and a computer-readable storage medium 820.
  • the processor 810 and the computer-readable storage medium 820 can be connected via a bus or other means.
  • the computer-readable storage medium 820 is used to store a computer program 821, and the computer program 821 includes computer instructions.
  • the processor 810 is used to execute the computer instructions stored in the computer-readable storage medium 820.
  • the processor 810 is the computing core and control core of the electronic device 800, which is suitable for implementing one or more computer instructions, and is specifically suitable for loading and executing one or more computer instructions to implement the corresponding method flow or corresponding function.
  • the processor 810 may also be referred to as a central processing unit (CPU).
  • the processor 810 may include, but is not limited to, a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the computer-readable storage medium 820 may be a dynamic random access memory (DRAM), a high-speed RAM memory, or a non-volatile memory (Non-Volatile Memory), such as at least one disk memory; optionally, it may also be at least one computer-readable storage medium 820 located away from the aforementioned processor 810.
  • the computer-readable storage medium 820 includes, but is not limited to: a volatile memory and/or a non-volatile memory.
  • the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
  • the volatile memory may be a random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (SDRAM), and so on. Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Synchronous Link Dynamic Random Access Memory (SLDRAM) and Direct Rambus RAM (DR RAM).
  • the electronic device 800 may be the chip 800 shown in FIG8 ; the computer readable storage medium 820 stores computer instructions; the processor 810 loads and executes the computer instructions stored in the computer readable storage medium 820 to implement the corresponding steps in the method embodiment shown in FIG1 .
  • the computer instructions in the computer readable storage medium 820 are loaded by the processor 810 and the corresponding steps are executed, which will not be described here to avoid repetition.
  • an embodiment of the present application further provides a computer-readable storage medium 820 (Memory), which is a memory device in the electronic device 800 for storing programs and data.
  • a computer-readable storage medium 820 is a memory device in the electronic device 800 for storing programs and data.
  • a computer-readable storage medium 820 can include both the built-in storage medium in the electronic device 800 and the extended storage medium supported by the electronic device 800.
  • the computer-readable storage medium 820 provides a storage space, which stores the operating system of the electronic device 800.
  • one or more computer instructions suitable for being loaded and executed by the processor 810 are also stored in the storage space, and these computer instructions can be one or more computer programs 821 (including program codes).
  • the electronic device 800 may further include: a transceiver 830, which may be connected to the processor 810 or the computer-readable storage medium 820.
  • the computer-readable storage medium 820 may control the transceiver 830 to communicate with other devices. Specifically, information or data may be sent to other devices, or information or data sent by other devices may be received.
  • the transceiver 830 may include a transmitter and a receiver, and may further include an antenna, and the number of antennas may be one or more.
  • a computer program product or a computer program is provided, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium 820.
  • a computer program 821 the electronic device 800 may be a computer, the processor 810 reads the computer instructions from the computer-readable storage medium 820, and the processor 810 executes the computer instructions, so that the computer executes the data storage method based on the ETHASH algorithm provided in the above-mentioned various optional manners.
  • the computer program product includes one or more computer instructions.
  • the process of the embodiment of the present application is run in whole or in part or the function of the embodiment of the present application is implemented.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center.
  • wired e.g., coaxial cable, optical fiber, digital subscriber line (DSL)
  • wireless e.g., infrared, wireless, microwave, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The present application provides a data storage method and apparatus based on an ETHASH algorithm, a device, and a storage medium. The ETHASH algorithm is run on the basis of a chip, the chip comprises a plurality of memory blocks, and each memory block comprises a plurality of memory cells. The method comprises: testing a plurality of memory cells of a memory block to obtain a test result; classifying the plurality of memory cells into a first memory cell and a second memory cell according to the test result, wherein the first memory cell is a memory cell which passes the test, and the second memory cell is a memory cell which does not pass the test; acquiring cache data and storing the cache data into the first memory cell; and acquiring directed acyclic graph data according to the cache data, and storing the directed acyclic graph data into the first memory cell and/or the second memory cell.

Description

基于ETHASH算法的数据存储方法、装置、设备及存储介质Data storage method, device, equipment and storage medium based on ETHASH algorithm
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求于2022年10月09日提交的,申请名称为“基于ETHASH算法的数据存储方法、装置、设备及存储介质”的中国专利申请号为“202211225068.0”的优先权,该中国专利申请的全部内容通过引用结合在本申请中。This application claims priority to Chinese patent application number "202211225068.0" filed on October 9, 2022, with application name "Data storage method, device, equipment and storage medium based on ETHASH algorithm". The entire contents of the Chinese patent application are incorporated by reference into this application.
技术领域Technical Field
本申请涉及半导体芯片存储领域,更具体地,涉及一种基于ETHASH算法的数据存储方法、装置、设备及存储介质。The present application relates to the field of semiconductor chip storage, and more specifically, to a data storage method, device, equipment and storage medium based on the ETHASH algorithm.
背景技术Background technique
工作量证明(Proof of Work,简称POW)是用户进行一些适当耗时的复杂运算并得到答案,并且答案能被服务方快速验算。常用的运算方式为哈希运算(ETHASH),首先需要找到一个随机数值输入到ETHASH算法中,得到的结果低于一个基于特定困难值的阈值,即哈希值。由于ETHASH算法与运算速度无关,而与执行ETHASH算法的计算机的内存大小有关,因此计算机的芯片需要有高带宽的、大容量和近内存计算(Near Memory Computing,简称NMC)功能。Proof of Work (POW) is a process where a user performs some appropriately time-consuming complex calculations and obtains an answer, and the answer can be quickly verified by the service provider. The commonly used calculation method is hash calculation (ETHASH). First, you need to find a random value to input into the ETHASH algorithm, and the result obtained is lower than a threshold based on a specific difficulty value, namely the hash value. Since the ETHASH algorithm has nothing to do with the speed of calculation, but is related to the memory size of the computer that executes the ETHASH algorithm, the computer chip needs to have high-bandwidth, large-capacity and near-memory computing (NMC) functions.
目前,拥有大容量的芯片,采用的设计方法有:1)大量使用动态随机存储器(Dynamic random access memory,DRAM);2)采用先进封装工艺,比如高带宽内存(High Bandwidth Memory,简称HBM)或者将硅晶圆或裸晶垂直堆叠到同一个封装器件中(3DIC)。由于此类设计的芯片具有共同的特点是:存储单元数量多,存储密度大。但是受到芯片工艺制造限制,存储单元的良率低,导致芯片整体良率低。为了解决存储良率低的问题,一般采用内存修复(memory repair),其方法是在存储块中设计冗余的行和列,当测试存储块中存在损坏的行或列时,以冗余的行和列来代替。但内存修复所能增加的冗余部分有限,且存储块中包含的存储单元的数量越多,出现坏块的概率越高。At present, the design methods used for chips with large capacity are: 1) using a large number of dynamic random access memory (DRAM); 2) using advanced packaging technology, such as high bandwidth memory (HBM) or vertically stacking silicon wafers or bare crystals into the same package device (3DIC). Because the chips designed in this way have the common characteristics of a large number of storage units and a high storage density. However, due to the limitations of chip manufacturing process, the yield of storage units is low, resulting in a low overall yield of the chip. In order to solve the problem of low storage yield, memory repair is generally used. The method is to design redundant rows and columns in the storage block. When there are damaged rows or columns in the test storage block, they are replaced with redundant rows and columns. However, the redundancy that can be added by memory repair is limited, and the more storage units contained in the storage block, the higher the probability of bad blocks.
技术解决方案Technical Solutions
本申请的一些实施方式提供了可至少部分解决现有技术中存在的上述问题的基于ETHASH算法的数据存储方法、装置、设备及存储介质。Some embodiments of the present application provide a data storage method, apparatus, device and storage medium based on the ETHASH algorithm that can at least partially solve the above-mentioned problems existing in the prior art.
根据本申请的一个方面,提供一种基于ETHASH算法的数据存储方法,所述ETHASH算法是基于芯片运行,所述芯片包括多个存储块,每个所述存储块包括多个存储单元,可包括:对所述存储块的多个存储单元进行测试并得到测试结果;根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,所述第一存储单元为通过测试的存储单元,所述第二存储单元为未通过测试的存储单元;获取缓存数据,并将所述缓存数据存储到所述第一存储单元;以及根据所述缓存数 据获取所述有向无环图数据,并将所述有向无环图数据存储到所述第一存储单元和/或所述第二存储单元。According to one aspect of the present application, a data storage method based on an ETHASH algorithm is provided, wherein the ETHASH algorithm is based on chip operation, wherein the chip includes multiple storage blocks, each of which includes multiple storage units, and may include: testing multiple storage units of the storage block and obtaining test results; classifying the multiple storage units according to the test results, dividing them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that passes the test, and the second storage unit is a storage unit that fails the test; obtaining cache data, and storing the cache data in the first storage unit; and The directed acyclic graph data is acquired based on the received data, and the directed acyclic graph data is stored in the first storage unit and/or the second storage unit.
在本申请一个实施方式中,所述方法还可包括:获取所述存储块中包含的所述第二存储单元的数量,并与算力预定值进行对比;响应于所述存储块中包含的所述第二存储单元的数量超过所述算力预定值,对所述存储块中存储的所述有向无环图数据进行ETHASH运算,并获取运算结果;以及基于所述运算结果,确定所述存储块的拒绝率,若所述存储块的拒绝率小于预设值,所述存储块用于数据存储,若所述存储块的拒绝率大于或等于预设值,所述存储块不用于数据存储,其中,所述拒绝率为所述运算结果大于特定困难值的数据的数量与所述运算结果整体数据的数量的比值。In one embodiment of the present application, the method may further include: obtaining the number of the second storage units contained in the storage block and comparing it with a predetermined computing power value; in response to the number of the second storage units contained in the storage block exceeding the predetermined computing power value, performing an ETHASH operation on the directed acyclic graph data stored in the storage block and obtaining an operation result; and based on the operation result, determining a rejection rate of the storage block, if the rejection rate of the storage block is less than a preset value, the storage block is used for data storage, if the rejection rate of the storage block is greater than or equal to the preset value, the storage block is not used for data storage, wherein the rejection rate is the ratio of the number of data whose operation results are greater than a specific difficulty value to the number of overall data of the operation results.
在本申请一个实施方式中,所述获取缓存数据,并将所述缓存数据存储到所述第一存储单元的步骤可包括:获取训练次数,其中,所述训练次数为所述存储块的数量与训练长度的比值;基于ETHASH算法和所述训练次数进行训练,获得种子;计算所述缓存数据的长度;基于所述种子与所述缓存数据的长度计算所述缓存数据;以及根据所述缓存数据分配所述第一存储单元的存储空间进行存储,并记录所述缓存数据的存储地址表。In one embodiment of the present application, the step of obtaining cache data and storing the cache data in the first storage unit may include: obtaining a training number, wherein the training number is a ratio of the number of storage blocks to the training length; performing training based on the ETHASH algorithm and the training number to obtain a seed; calculating the length of the cache data; calculating the cache data based on the seed and the length of the cache data; and allocating storage space of the first storage unit for storage according to the cache data, and recording a storage address table of the cache data.
在本申请一个实施方式中,所述根据所述缓存数据获取有向无环图数据的步骤可包括:根据所述缓存数据的存储地址表读取所述缓存数据;计算所述有向无环图数据的长度;以及基于所述有向无环图数据的长度以及读取的所述缓存数据计算所述有向无环图数据。In one embodiment of the present application, the step of obtaining directed acyclic graph data based on the cache data may include: reading the cache data according to a storage address table of the cache data; calculating the length of the directed acyclic graph data; and calculating the directed acyclic graph data based on the length of the directed acyclic graph data and the read cache data.
在本申请一个实施方式中,所述缓存数据在所述存储单元的存储空间X可满足:M*D*64/65≤X≤M*D-1,其中,M为所述存储块中通过测试的存储单元的数量,D为所述存储单元的存储空间地址深度。In one embodiment of the present application, the storage space X of the cache data in the storage unit may satisfy: M*D*64/65≤X≤M*D-1, where M is the number of storage units that pass the test in the storage block, and D is the storage space address depth of the storage unit.
在本申请一个实施方式中,所述有向无环图数据在所述存储单元的存储空间Y可满足:M*D*64/65≤Y≤L*D*64/65,其中,M为所述存储块中通过测试的存储单元的数量,D为所述存储单元的存储空间地址深度,L为存储所述有向无环图数据的存储单元的数量。In one embodiment of the present application, the storage space Y of the directed acyclic graph data in the storage unit may satisfy: M*D*64/65≤Y≤L*D*64/65, wherein M is the number of storage units that pass the test in the storage block, D is the storage space address depth of the storage unit, and L is the number of storage units that store the directed acyclic graph data.
在本申请一个实施方式中,对芯片的存储区域进行测试并得到测试结果的步骤可包括:将初始测试数据写入所述存储单元,其中,所述初始测试数据包括已知的伪随机序列;以及读取所述存储单元的数据,并将读取的所述存储单元的数据与所述初始测试数据进行对比,若读取的所述存储单元的数据与所述初始测试数据相同,所述存储单元的测试结果为通过,若读取的所述存储单元的数据与所述初始测试数据不同,所述存储单元的测试结果为未通过。In one embodiment of the present application, the step of testing the storage area of the chip and obtaining the test result may include: writing initial test data into the storage unit, wherein the initial test data includes a known pseudo-random sequence; and reading the data of the storage unit, and comparing the read data of the storage unit with the initial test data, if the read data of the storage unit is the same as the initial test data, the test result of the storage unit is passed, and if the read data of the storage unit is different from the initial test data, the test result of the storage unit is failed.
在本申请一个实施方式中,在根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元之后,所述方法还可包括:对所述第二存储单元中存储的数据进行错误检查和纠正;以及将纠正后的所述数据与所述初始测试数据进行对比,若纠正后的所述数据与所述初始测试数据相同,则将所述第二存储单元重新划 分到所述第一存储单元。In one embodiment of the present application, after the plurality of storage units are classified and processed according to the test results and divided into the first storage unit and the second storage unit, the method may further include: performing error checking and correction on the data stored in the second storage unit; and comparing the corrected data with the initial test data, and if the corrected data is the same as the initial test data, reclassifying the second storage unit. to the first storage unit.
本申请另一方面提供了一种基于ETHASH算法的数据存储装置,所述ETHASH算法是基于芯片运行,所述芯片包括多个存储块,每个所述存储块包括多个存储单元,可包括:测试模块,用于对所述存储块的多个存储单元进行测试并得到测试结果;分类模块,用于根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,所述第一存储单元为通过测试的存储单元,所述第二存储单元为未通过测试的存储单元;缓存数据获取及存储模块,用于获取缓存数据,并将所述缓存数据存储到所述第一存储单元;以及有向无环图数据获取及存储模块,用于根据所述缓存数据获取所述有向无环图数据,并将所述有向无环图数据存储到所述第一存储单元和/或所述第二存储单元。On the other hand, the present application provides a data storage device based on the ETHASH algorithm, wherein the ETHASH algorithm is run based on a chip, wherein the chip includes multiple storage blocks, each of which includes multiple storage units, and may include: a testing module, used to test the multiple storage units of the storage block and obtain test results; a classification module, used to classify the multiple storage units according to the test results, and divide them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that has passed the test, and the second storage unit is a storage unit that has not passed the test; a cache data acquisition and storage module, used to acquire cache data and store the cache data in the first storage unit; and a directed acyclic graph data acquisition and storage module, used to acquire the directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
本申请再一方面提供了一种电子设备,所述电子设备可包括:处理器,适于执行计算机程序;以及计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述任一项的方法。On the other hand, the present application provides an electronic device, which may include: a processor, suitable for executing a computer program; and a computer-readable storage medium, in which the computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, it implements any of the above methods.
本申请又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序使得计算机执行上述任一项的方法。In yet another aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium is used to store a computer program, wherein the computer program enables a computer to execute any one of the above methods.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
结合附图,通过以下非限制性实施方式的详细描述,本申请的其它特征、目的和优点将变得更加明显。在附图中:Other features, purposes and advantages of the present application will become more apparent through the following detailed description of non-limiting embodiments in conjunction with the accompanying drawings. In the accompanying drawings:
图1为根据本申请实施方式的基于ETHASH算法的数据存储方法1000的流程图;FIG1 is a flow chart of a data storage method 1000 based on the ETHASH algorithm according to an embodiment of the present application;
图2为根据本申请示例性实施方式的测试方法流程图;FIG2 is a flow chart of a testing method according to an exemplary embodiment of the present application;
图3为根据本申请示例性实施方式的对第二存储单元重新进行划分的方法流程图;FIG3 is a flow chart of a method for re-dividing the second storage unit according to an exemplary embodiment of the present application;
图4为根据本申请示例性实施方式的计算缓存数据的方法流程图;FIG4 is a flow chart of a method for calculating cache data according to an exemplary embodiment of the present application;
图5为根据本申请示例性实施方式的计算有向无环图数据的方法流程图;FIG5 is a flow chart of a method for calculating directed acyclic graph data according to an exemplary embodiment of the present application;
图6A为根据本申请一示例性实施方式的存储块示意图;FIG6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application;
图6B为根据本申请另一示例性实施方式的存储块示意图;FIG6B is a schematic diagram of a storage block according to another exemplary embodiment of the present application;
图7为根据本申请示例性实施方式的基于ETHASH算法的数据存储装置2000的示意图;以及FIG. 7 is a schematic diagram of a data storage device 2000 based on the ETHASH algorithm according to an exemplary embodiment of the present application; and
图8为根据本申请示例性实施方式的电子设备800的结构示意图。FIG. 8 is a schematic structural diagram of an electronic device 800 according to an exemplary embodiment of the present application.
具体实施方式Detailed ways
为了更好地理解本申请,将参考附图对本申请的每个方面做出更详细的说明。应理解,这些详细说明只是对本申请的示例性实施方式的描述,而非以任何方式限制本申请的范围。在说明书全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列项目中的一个或多个的任何和全部组合。In order to better understand the present application, each aspect of the present application will be described in more detail with reference to the accompanying drawings. It should be understood that these detailed descriptions are only descriptions of exemplary embodiments of the present application, and are not intended to limit the scope of the present application in any way. Throughout the specification, the same reference numerals refer to the same elements. The expression "and/or" includes any and all combinations of one or more of the associated listed items.
应注意,在本说明书中,第一、第二、第三等的表述仅用于将一个特征与另一个特 征区分开来,而不表示对特征的任何限制。It should be noted that in this specification, the expressions first, second, third, etc. are only used to distinguish one feature from another. It is used to distinguish the characteristics without indicating any limitation on the characteristics.
还应理解的是,用语“包括”、“包括有”、“具有”、“包含”和/或“包含有”,当在本说明书中使用时表示存在所陈述的特征、元件和/或部件,但不排除存在或附加有一个或多个其它特征、元件、部件和/或它们的组合。此外,当诸如“...中的至少一个”的表述出现在所列特征的列表之后时,修饰整个所列特征,而不是修饰列表中的单独元件。此外,当描述本申请的实施方式时,使用“可”表示“本申请的一个或多个实施方式”。并且,用语“示例性的”旨在指代示例或举例说明。It should also be understood that the terms "comprises", "including", "having", "includes" and/or "comprising", when used in this specification, indicate the presence of the stated features, elements and/or components, but do not exclude the presence or addition of one or more other features, elements, components and/or combinations thereof. In addition, when expressions such as "at least one of..." appear after a list of listed features, they modify the entire listed features rather than modifying the individual elements in the list. In addition, when describing embodiments of the present application, "may" is used to mean "one or more embodiments of the present application". And, the term "exemplary" is intended to refer to an example or illustration.
除非另外限定,否则本文中使用的所有用语(包括技术用语和科学用语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,用语(例如在常用词典中定义的用语)应被解释为具有与它们在相关技术的上下文中的含义一致的含义,并且将不被以理想化或过度形式化解释,除非本文中明确如此限定。Unless otherwise defined, all terms (including technical terms and scientific terms) used in this article have the same meaning as commonly understood by ordinary technicians in the field to which this application belongs. It should also be understood that terms (such as terms defined in commonly used dictionaries) should be interpreted as having the same meaning as their meaning in the context of the relevant technology, and will not be interpreted in an idealized or overly formalized manner unless explicitly defined in this article.
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
以下对本申请的特征、原理和其它方面进行详细描述。The features, principles and other aspects of the present application are described in detail below.
图1为根据本申请实施方式的基于ETHASH算法的数据存储方法1000的流程图。ETHASH算法是基于芯片运行,芯片包括多个存储块,每个存储块包括多个存储单元,如图1所示,基于ETHASH算法的数据存储方法1000可包括:FIG1 is a flow chart of a data storage method 1000 based on the ETHASH algorithm according to an embodiment of the present application. The ETHASH algorithm is based on chip operation, the chip includes multiple storage blocks, each storage block includes multiple storage units, as shown in FIG1, the data storage method 1000 based on the ETHASH algorithm may include:
步骤S100:对存储块的多个存储单元进行测试并得到测试结果;Step S100: testing multiple storage units of a storage block and obtaining test results;
步骤S200:根据测试结果对多个存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,第一存储单元为通过测试的存储单元,第二存储单元为未通过测试的存储单元;Step S200: classifying the plurality of storage units according to the test results into first storage units and second storage units, wherein the first storage units are storage units that have passed the test and the second storage units are storage units that have not passed the test;
步骤S300:获取缓存数据,并将缓存数据存储到第一存储单元;以及Step S300: Acquire cache data and store the cache data in a first storage unit; and
步骤S400:根据缓存数据获取有向无环图数据,并将有向无环图数据存储到第一存储单元和/或第二存储单元。Step S400: Obtain directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
下面将对基于ETHASH算法的数据存储方法1000的各个步骤做详细说明。The various steps of the data storage method 1000 based on the ETHASH algorithm will be described in detail below.
步骤S100Step S100
芯片制造工序非常繁杂,要经历掺杂,氧化,光刻、刻蚀等数十上百道工艺程序,涉及化学、物理、机械等各种加工过程,因此在芯片的制造过程中,会出现一定的坏存储块。即使完好的芯片,经过大量的数据存储之后,芯片中的存储块也可能出现坏存储块。The chip manufacturing process is very complicated, and it has to go through dozens or even hundreds of process procedures such as doping, oxidation, photolithography, and etching, involving various chemical, physical, and mechanical processes. Therefore, during the chip manufacturing process, a certain amount of bad memory blocks will appear. Even if the chip is intact, after a large amount of data is stored, the memory blocks in the chip may also become bad.
在本申请示例性实施方式中,首先对芯片的存储区域进行测试并得到测试结果,其中,存储区域包括多个存储块,每个存储块包括多个存储单元。示例性地,对芯片的存储区域进行测试包括可测试性技术测试(Design For Test,简称DFT),确认芯片的存储区域的存储块以及存储单元是否完好,并存储测试结果。图2为根据本申请示例性实施方式的测试方法流程图。如图2所示,测试方法包括以下步骤:In an exemplary embodiment of the present application, the storage area of the chip is first tested and the test results are obtained, wherein the storage area includes multiple storage blocks, and each storage block includes multiple storage cells. Exemplarily, the test of the storage area of the chip includes a testability technology test (Design For Test, referred to as DFT), confirming whether the storage blocks and storage cells of the storage area of the chip are intact, and storing the test results. FIG. 2 is a flow chart of a test method according to an exemplary embodiment of the present application. As shown in FIG. 2, the test method includes the following steps:
步骤S110:将初始测试数据写入存储区域的存储单元,其中,初始测试数据包括 已知的伪随机序列;Step S110: writing initial test data into a storage unit in a storage area, wherein the initial test data includes A known pseudo-random sequence;
步骤S120:读取存储单元的数据,并将读取存储单元的数据与初始测试数据进行对比,若读取的存储单元的数据与初始测试数据相同,存储单元的测试结果为通过,若读取的存储单元的数据与初始测试数据不同,存储单元的测试结果为未通过。Step S120: Read the data of the storage cell and compare the data read from the storage cell with the initial test data. If the data read from the storage cell is the same as the initial test data, the test result of the storage cell is passed; if the data read from the storage cell is different from the initial test data, the test result of the storage cell is failed.
示例性地,初始测试数据为已知的伪随机序列,例如01101001,将初始测试数据写入存储单元,然后读取存储单元的数据,并将读取的存储单元的数据与初始测试数据进行对比,如果读取的存储单元的数据与初始测试数据相同,即读出的数据为01101001,则认为存储单元的测试结果为通过;如果读取的存储单元的数据与初始测试数据不同,则认为存储单元的测试结果为未通过。其中,对于存储区域的测试可以基于存储单元为单位进行测试,然后根据每个存储块中包含的存储单元的测试结果,进一步获得存储块的测试结果。本领域技术人员可知,本申请的测试方法以及测试过程中的伪随机序列为示例性说明,本申请不限于此。Exemplarily, the initial test data is a known pseudo-random sequence, such as 01101001. The initial test data is written into the storage unit, and then the data of the storage unit is read, and the data of the read storage unit is compared with the initial test data. If the data of the read storage unit is the same as the initial test data, that is, the read data is 01101001, then the test result of the storage unit is considered to be passed; if the data of the read storage unit is different from the initial test data, then the test result of the storage unit is considered to be failed. Among them, the test of the storage area can be tested based on the storage unit as a unit, and then the test result of the storage block is further obtained according to the test results of the storage units contained in each storage block. It can be known to those skilled in the art that the test method of the present application and the pseudo-random sequence in the test process are exemplary descriptions, and the present application is not limited to this.
根据本申请示例性实施方式,通过对存储块的存储单元进行测试,可以确定经过测试的存储单元是否完好,以便于后续根据测试结果为缓存数据和有向无环图数据分配存储单元。According to an exemplary embodiment of the present application, by testing the storage units of the storage block, it can be determined whether the tested storage units are intact, so as to subsequently allocate storage units to cache data and directed acyclic graph data according to the test results.
步骤S200Step S200
在本申请示例性的实施方式中,在步骤S200中,还可以根据测试结果对多个存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,第一存储单元为通过测试的存储单元,第二存储单元为未通过测试的存储单元。In an exemplary embodiment of the present application, in step S200, multiple storage units can also be classified according to the test results and divided into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that passes the test and the second storage unit is a storage unit that fails the test.
在根据测试结果对多个存储单元进行分类处理之后,还可以通过对第二存储单元的数据进行纠正,对第二存储单元重新进行划分。图3为根据本申请示例性实施方式的对第二存储单元重新进行划分的方法流程图。如图3所示,对第二存储单元重新进行划分的方法包括以下步骤:After the plurality of storage units are classified and processed according to the test results, the second storage unit can also be re-divided by correcting the data of the second storage unit. FIG3 is a flow chart of a method for re-dividing the second storage unit according to an exemplary embodiment of the present application. As shown in FIG3, the method for re-dividing the second storage unit includes the following steps:
步骤S210:对第二存储单元中存储的数据进行错误检查和纠正;Step S210: performing error checking and correction on the data stored in the second storage unit;
步骤S220:将纠正后的数据与初始测试数据进行对比,若纠正后的数据与初始测试数据相同,则将第二存储单元重新划分到第一存储单元。Step S220: Compare the corrected data with the initial test data. If the corrected data is the same as the initial test data, re-divide the second storage unit into the first storage unit.
由于数据传输速率开始采用双数据速率(Double Data Rate,简称DDR)方式传输,DDR方式采用选通信号(Data strobe signal,简称DQS)的上升沿和下降沿进行数据信号(Data signal,简称DQ)的采样,即数据的读取,因此可能因为存在延迟导致数据读取错误,并非是存储单元损坏而造成的读取错误,后续可以通过错误检查和纠正(Error Correcting Code,简称ECC)进行恢复。示例性地,当对多个存储单元进行分类处理,划分为第一存储单元和第二存储单元之后,对第二存储单元中存储的数据进行错误检查和纠正,将纠正后的数据与初始测试数据进行对比,若纠正后的数据与初始测试数据相同,则认为第二存储单元通过测试,将第二存储单元重新划分到第一存储单元。本领域技术人员可知,对第二存储单元进行错误检查和纠正为示例性说明,还可以利用其他方 式,例如,对第二存储单元所在的存储块进行内存修复(memory repair)等,本申请对此不做限制。Since the data transmission rate begins to adopt the double data rate (DDR) transmission method, the DDR method uses the rising and falling edges of the selection signal (Data strobe signal, DQS) to sample the data signal (Data signal, DQ), that is, to read the data. Therefore, data reading errors may occur due to delays, which are not reading errors caused by damage to the storage unit. They can be recovered later through error checking and correction (Error Correcting Code, ECC). Exemplarily, after a plurality of storage units are classified and divided into a first storage unit and a second storage unit, error checking and correction are performed on the data stored in the second storage unit, and the corrected data is compared with the initial test data. If the corrected data is the same as the initial test data, it is considered that the second storage unit has passed the test, and the second storage unit is reclassified into the first storage unit. It can be known to those skilled in the art that error checking and correction of the second storage unit is an exemplary description, and other methods can also be used. For example, performing memory repair on the storage block where the second storage unit is located, etc., which is not limited in this application.
根据本申请示例性实施方式,根据测试结果对多个存储单元进行分类处理,划分为第一存储单元和第二存储单元,然后对第二存储单元的存储数据进行错误检查和纠正,如果通过纠正后的第二存储单元可以通过测试,则将第二存储单元重新划分到第一存储单元,最大限度的保证了存储器中可以利用的存储区域,提升存储单元的利用率。According to an exemplary embodiment of the present application, multiple storage units are classified and processed according to the test results, divided into a first storage unit and a second storage unit, and then the storage data of the second storage unit is error checked and corrected. If the second storage unit can pass the test after correction, the second storage unit is re-divided into the first storage unit, thereby maximizing the available storage area in the memory and improving the utilization rate of the storage unit.
步骤S300Step S300
在步骤S300中,获取缓存数据,并将缓存数据存储到第一存储单元。图4为根据本申请示例性实施方式的计算缓存数据的方法流程图。在本申请示例性的实施方式中,如图4所示,计算缓存数据(cache)包括以下步骤:In step S300, cache data is obtained and stored in the first storage unit. FIG4 is a flow chart of a method for calculating cache data according to an exemplary embodiment of the present application. In an exemplary embodiment of the present application, as shown in FIG4, calculating cache data (cache) includes the following steps:
步骤S310:获取训练次数,其中,训练次数为存储块的数量与训练长度的比值;Step S310: Obtain the number of training times, where the number of training times is the ratio of the number of storage blocks to the training length;
步骤S330:基于ETHASH算法和训练次数进行训练,获得种子;Step S330: Perform training based on the ETHASH algorithm and the number of training times to obtain a seed;
步骤S350:计算缓存数据的长度;Step S350: Calculate the length of the cached data;
步骤S370:基于种子与缓存数据的长度计算缓存数据;以及Step S370: Calculating cache data based on the seed and the length of the cache data; and
步骤S390:根据缓存数据分配第一存储单元的存储空间进行存储,并记录缓存数据的存储地址表。Step S390: Allocate storage space of the first storage unit according to the cache data for storage, and record a storage address table of the cache data.
在计算缓存数据的过程中,首先根据芯片中配置的存储块的数量(block number)计算当前训练次数(epochs),其中,训练次数为存储块的数量与训练长度(ETHASH epoch length)的比值,示例性地,ETHASH epoch length的值为30000,即后续缓存数据每30000个存储块会更改一次。In the process of calculating the cache data, the current training times (epochs) are first calculated according to the number of storage blocks (block number) configured in the chip, where the training times are the ratio of the number of storage blocks to the training length (ETHASH epoch length). For example, the value of ETHASH epoch length is 30000, that is, the subsequent cache data will be changed once every 30000 storage blocks.
然后基于ETHASH算法和训练次数进行训练,获得种子。示例性地,设置种子(seed)的初始值为0,然后按照步骤S310中获得的训练次数基于ETHASH算法进行迭代运算,其中,ETHASH算法可以为SHA3_256,可以获得最终的种子,例如,可以获得长度为256bit的数据作为种子。Then, training is performed based on the ETHASH algorithm and the number of training times to obtain a seed. For example, the initial value of the seed is set to 0, and then an iterative operation is performed based on the ETHASH algorithm according to the number of training times obtained in step S310, wherein the ETHASH algorithm may be SHA3_256, and a final seed may be obtained, for example, data with a length of 256 bits may be obtained as a seed.
进一步地,可以根据配置的存储块的数量以及ETHASH算法计算缓存数据的长度,不同的训练次数得到的缓存数据的长度不同,即后续计算的迭代次数与缓存数据的长度相关。然后基于种子与缓存数据的长度计算缓存数据。例如基于ETHASH算法,对种子以及缓存数据的长度进行求余、SHA3_512或者异或等相关运算,可以得到缓存数据(cache)的计算结果。Furthermore, the length of the cached data can be calculated according to the number of configured storage blocks and the ETHASH algorithm. The length of the cached data obtained by different training times is different, that is, the number of iterations of the subsequent calculation is related to the length of the cached data. Then the cached data is calculated based on the seed and the length of the cached data. For example, based on the ETHASH algorithm, the seed and the length of the cached data are subjected to modulus, SHA3_512 or XOR and other related operations to obtain the calculation result of the cached data (cache).
然后,根据缓存数据分配第一存储单元的存储空间进行存储,并记录缓存数据的存储地址表。由于缓存数据(cache)是计算有向无环图数据(dag)的中间数据,因此缓存数据(cache)的存储与读取不能出现错误,这就要求存储缓存数据(cache)的存储单元必须是完好的。在步骤S100和步骤S200中,已经对第一存储单元进行了测试,存储缓存数据(cache)的第一存储单元保证完好,因此缓存数据(cache)只存储在第一存储单元中。图6A为根据本申请一示例性实施方式的存储块示意图。如图6A所示, 存储块中包含N个存储单元,其中N-1个单元中都可以存储缓存数据和/或有向无环图数据。示例性地,缓存数据(cache)只存储在通过测试的存储单元中,存储单元3未通过测试,则存储单元3中不存储缓存数据(cache)数据,即存储单元1,存储单元2…存储单元N-1中,通过测试的存储单元为第一存储单元,未通过测试的存储单元为第二存储单元。进一步地,根据划分的第一存储单元配置缓存数据(cache)的存储空间。如果存储块中通过测试的存储单元的数量为M个,即第一存储单元的数量为M个,其中,每个存储单元的存储空间地址深度为D,则缓存数据在存储单元的存储空间X满足:M*D*64/65≤X≤M*D-1。与此同时,记录缓存数据的存储地址表,即配置存储缓存数据(cache)的存储空间的对应的物理地址,以便后续计算有向无环图数据时可以根据缓存数据的存储地址表调用缓存数据(cache)。Then, storage space of the first storage unit is allocated for storage according to the cache data, and a storage address table of the cache data is recorded. Since the cache data (cache) is the intermediate data for calculating the directed acyclic graph data (dag), the storage and reading of the cache data (cache) cannot be erroneous, which requires that the storage unit storing the cache data (cache) must be intact. In step S100 and step S200, the first storage unit has been tested, and the first storage unit storing the cache data (cache) is guaranteed to be intact, so the cache data (cache) is only stored in the first storage unit. Figure 6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application. As shown in Figure 6A, The storage block includes N storage units, wherein cache data and/or directed acyclic graph data can be stored in N-1 units. Exemplarily, cache data (cache) is only stored in the storage unit that passes the test, and if storage unit 3 fails the test, cache data (cache) data is not stored in storage unit 3, i.e., in storage unit 1, storage unit 2 ... storage unit N-1, the storage unit that passes the test is the first storage unit, and the storage unit that fails the test is the second storage unit. Further, the storage space of cache data (cache) is configured according to the divided first storage unit. If the number of storage units that pass the test in the storage block is M, i.e., the number of first storage units is M, wherein the storage space address depth of each storage unit is D, then the cache data in the storage space X of the storage unit satisfies: M*D*64/65≤X≤M*D-1. At the same time, the storage address table of the cache data is recorded, i.e., the corresponding physical address of the storage space for storing the cache data (cache) is configured, so that the cache data (cache) can be called according to the storage address table of the cache data when the directed acyclic graph data is subsequently calculated.
步骤S400Step S400
在步骤S400中,还可以根据缓存数据获取有向无环图数据,并将有向无环图数据存储到第一存储单元和第二存储单元。图5为根据本申请示例性实施方式的计算有向无环图数据的方法流程图。在本申请示例性的实施方式中,如图5所示,计算有向无环图数据(dag)包括以下步骤:In step S400, directed acyclic graph data can also be obtained according to the cache data, and the directed acyclic graph data is stored in the first storage unit and the second storage unit. FIG. 5 is a flow chart of a method for calculating directed acyclic graph data according to an exemplary embodiment of the present application. In an exemplary embodiment of the present application, as shown in FIG. 5, calculating directed acyclic graph data (dag) includes the following steps:
步骤S320:根据缓存数据的存储地址表读取缓存数据;Step S320: reading cache data according to the storage address table of cache data;
步骤S340:计算有向无环图数据的长度;Step S340: Calculate the length of the directed acyclic graph data;
步骤S360:基于有向无环图数据的长度以及读取的缓存数据计算有向无环图数据;以及Step S360: Calculating the directed acyclic graph data based on the length of the directed acyclic graph data and the read cache data; and
步骤S380:根据有向无环图数据分配第一存储单元和第二存储单元的存储空间进行存储。Step S380: Allocate storage space of the first storage unit and the second storage unit for storage according to the directed acyclic graph data.
在计算有向无环图数据的过程中,首先根据步骤S390中的缓存数据的存储地址表读取缓存数据。然后,可以根据配置的存储块的数量以及ETHASH算法计算有向无环图数据的长度,不同的训练次数得到的有向无环图数据的长度不同,即后续计算的迭代次数与有向无环图数据的长度相关。然后基于有向无环图数据的长度以及读取的缓存数据计算有向无环图数据,例如基于ETHASH算法,对有向无环图数据的长度以及读取的缓存数据进行求余、SHA3_512或者异或等相关运算,可以得到有向无环图数据(dag)的计算结果。In the process of calculating directed acyclic graph data, first read the cache data according to the storage address table of the cache data in step S390. Then, the length of the directed acyclic graph data can be calculated according to the number of configured storage blocks and the ETHASH algorithm, and the length of the directed acyclic graph data obtained by different training times is different, that is, the number of iterations of subsequent calculations is related to the length of the directed acyclic graph data. Then the directed acyclic graph data is calculated based on the length of the directed acyclic graph data and the cache data read, for example, based on the ETHASH algorithm, the length of the directed acyclic graph data and the cache data read are subjected to remainder, SHA3_512 or XOR and other related operations, and the calculation result of the directed acyclic graph data (dag) can be obtained.
在本申请示例性的实施方式中,还可以根据有向无环图数据(dag)分配第一存储单元和第二存储单元的存储空间进行存储。根据ETHASH算法的特点,基于有向无环图数据(dag)计算的哈希值可以存在一定的拒绝率,因此第一存储单元和第二存储单元可以存储有向无环图数据(dag)。In an exemplary embodiment of the present application, the storage space of the first storage unit and the second storage unit can also be allocated for storage according to the directed acyclic graph data (dag). According to the characteristics of the ETHASH algorithm, the hash value calculated based on the directed acyclic graph data (dag) can have a certain rejection rate, so the first storage unit and the second storage unit can store the directed acyclic graph data (dag).
在本申请示例性实施方式中,图6A为根据本申请一示例性实施方式的存储块示意图。如图6A所示,存储块中包含N个存储单元,其中N-1个单元中都可以存储缓存数据和/或有向无环图数据。示例性地,存储单元1,存储单元2…存储单元N-1中,通过 测试的存储单元为第一存储单元,未通过测试的存储单元为第二存储单元。根据划分的第一存储单元和/或第二存储单元配置有向无环图数据(dag)的存储空间。如果存储块中通过测试的存储单元的数量为M个,即第一存储单元的数量为M个,其中每个存储单元的存储空间地址深度为D,存储有向无环图数据的存储单元的数量为L,有向无环图数据在存储单元的存储空间Y满足:M*D*64/65≤Y≤L*D*64/65。示例性地,在第一存储单元中,缓存数据的存储空间的地址深度相同,即缓存数据的存储空间位于第一存储单元的一端,便于缓存数据的存储和读取,提高计算效率。图6B为根据本申请另一示例性实施方式的存储块示意图。如图6B所示,存储块中包含N个存储单元,其中N-1个单元中都可以存储缓存数据和/或有向无环图数据。示例性地,存储单元1,存储单元2…存储单元N-1中,通过测试的存储单元为第一存储单元,未通过测试的存储单元为第二存储单元。根据划分的第一存储单元和/或第二存储单元配置有向无环图数据(dag)的存储空间。如果存储块中通过测试的存储单元的数量为M个,即第一存储单元的数量为M个,其中每个存储单元的存储空间地址深度为D,存储有向无环图数据的存储单元的数量为L,有向无环图数据在存储单元的存储空间Y满足:M*D*64/65≤Y≤L*D*64/65。示例性地,在第一存储单元中,缓存数据的存储空间的地址深度不同,即缓存数据的存储空间位于第一存储单元的指定的存储空间,可以根据具体情况进行存储空间的分配。In an exemplary embodiment of the present application, FIG6A is a schematic diagram of a storage block according to an exemplary embodiment of the present application. As shown in FIG6A , the storage block includes N storage units, wherein N-1 units can store cache data and/or directed acyclic graph data. Exemplarily, in storage unit 1, storage unit 2, ... storage unit N-1, by The storage unit tested is the first storage unit, and the storage unit that fails the test is the second storage unit. The storage space of the directed acyclic graph data (dag) is configured according to the divided first storage unit and/or second storage unit. If the number of storage units that pass the test in the storage block is M, that is, the number of first storage units is M, wherein the storage space address depth of each storage unit is D, the number of storage units storing directed acyclic graph data is L, and the storage space Y of the directed acyclic graph data in the storage unit satisfies: M*D*64/65≤Y≤L*D*64/65. Exemplarily, in the first storage unit, the address depth of the storage space of the cache data is the same, that is, the storage space of the cache data is located at one end of the first storage unit, which is convenient for the storage and reading of the cache data and improves the computing efficiency. FIG. 6B is a schematic diagram of a storage block according to another exemplary embodiment of the present application. As shown in FIG. 6B, the storage block includes N storage units, wherein cache data and/or directed acyclic graph data can be stored in N-1 units. Exemplarily, in storage unit 1, storage unit 2 ... storage unit N-1, the storage unit that passes the test is the first storage unit, and the storage unit that fails the test is the second storage unit. The storage space of the directed acyclic graph data (dag) is configured according to the divided first storage unit and/or second storage unit. If the number of storage units that pass the test in the storage block is M, that is, the number of first storage units is M, wherein the storage space address depth of each storage unit is D, the number of storage units storing directed acyclic graph data is L, and the storage space Y of the directed acyclic graph data in the storage unit satisfies: M*D*64/65≤Y≤L*D*64/65. Exemplarily, in the first storage unit, the address depth of the storage space of the cached data is different, that is, the storage space of the cached data is located in the designated storage space of the first storage unit, and the storage space can be allocated according to the specific circumstances.
根据本申请示例性实施方式,基于缓存数据(cache)和有向无环图数据(dag)的特点,分别为两种数据配置存储单元的存储空间,缓存数据只存储到第一存储单元,向无环图数据存储到第一存储单元和第二存储单元,提高了存储单元的利用率,即提高了芯片的存储数据的能力,在一定程度上增加了芯片的良率和计算能力。According to an exemplary embodiment of the present application, based on the characteristics of cache data (cache) and directed acyclic graph data (dag), storage space of the storage unit is configured for the two types of data respectively, the cache data is only stored in the first storage unit, and the directed acyclic graph data is stored in the first storage unit and the second storage unit, thereby improving the utilization rate of the storage unit, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
在本申请示例性的实施方式中,还可以通过存储块中有向无环图数据(dag)计算的哈希值,进一步对存储块的性能进行判定。首先基于步骤S200获取每个存储块中包含的第二存储单元的数量,若单个存储块中包含的第二存储单元的数量超过算力预定值,对存储块中存储的有向无环图数据进行ETHASH运算,并获取运算结果,即哈希值。当运算结果大于特定困难值(也称为目标值,target),则视为拒绝,因此基于运算结果大于特定困难值的数据的数量与运算结果整体数据的数量可以进一步计算拒绝率,其中,拒绝率为运算结果大于特定困难值的数据的数量与运算结果整体数据的数量的比值。若存储块的拒绝率小于预设值,则存储块正常存储数据;若存储块的拒绝率大于或等于预设值,存储块不用于数据存储,其中,特定困难值以及预设值可以根据芯片的算力进行调整。In an exemplary embodiment of the present application, the performance of the storage block can also be further determined by the hash value calculated by the directed acyclic graph data (dag) in the storage block. First, the number of second storage units contained in each storage block is obtained based on step S200. If the number of second storage units contained in a single storage block exceeds the predetermined value of computing power, the directed acyclic graph data stored in the storage block is ETHASH operated, and the operation result, i.e., the hash value, is obtained. When the operation result is greater than a specific difficulty value (also referred to as a target value, target), it is regarded as a rejection, so the rejection rate can be further calculated based on the number of data whose operation result is greater than the specific difficulty value and the number of overall data of the operation result, wherein the rejection rate is the ratio of the number of data whose operation result is greater than the specific difficulty value to the number of overall data of the operation result. If the rejection rate of the storage block is less than the preset value, the storage block stores data normally; if the rejection rate of the storage block is greater than or equal to the preset value, the storage block is not used for data storage, wherein the specific difficulty value and the preset value can be adjusted according to the computing power of the chip.
根据本申请示例性实施方式,基于每个存储块中包含的第二存储单元的数量以及存储块的拒绝率再次对存储块的性能进行检测,提高了存储块的利用率,即提高了芯片的存储数据的能力,在一定程度上增加了芯片的良率和计算能力。According to an exemplary embodiment of the present application, the performance of the storage block is tested again based on the number of second storage units contained in each storage block and the rejection rate of the storage block, thereby improving the utilization rate of the storage block, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
本申请另一方面提供了一种基于ETHASH算法的数据存储装置2000。图7为根据本申请示例性实施方式的基于ETHASH算法的数据存储装置2000的示意图。如图7所 示,数据存储装置2000包括:测试模块2100,分类模块2200、缓存数据获取及存储模块2300以及有向无环图数据获取及存储模块2400。其中,测试模块2100,用于对存储块的多个存储单元进行测试并得到测试结果。分类模块2200用于根据测试结果对多个存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,第一存储单元为通过测试的存储单元,第二存储单元为未通过测试的存储单元。缓存数据获取及存储模块2300,用于获取缓存数据,并将缓存数据存储到第一存储单元。有向无环图数据获取及存储模块2400,用于根据缓存数据获取有向无环图数据,并将有向无环图数据存储到第一存储单元和/或第二存储单元。On the other hand, the present application provides a data storage device 2000 based on the ETHASH algorithm. FIG7 is a schematic diagram of a data storage device 2000 based on the ETHASH algorithm according to an exemplary embodiment of the present application. As shown, the data storage device 2000 includes: a test module 2100, a classification module 2200, a cache data acquisition and storage module 2300, and a directed acyclic graph data acquisition and storage module 2400. Among them, the test module 2100 is used to test multiple storage units of the storage block and obtain test results. The classification module 2200 is used to classify the multiple storage units according to the test results, and divide them into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that has passed the test, and the second storage unit is a storage unit that has not passed the test. The cache data acquisition and storage module 2300 is used to acquire cache data and store the cache data in the first storage unit. The directed acyclic graph data acquisition and storage module 2400 is used to acquire directed acyclic graph data according to the cache data, and store the directed acyclic graph data in the first storage unit and/or the second storage unit.
根据本申请示例性实施方式,基于缓存数据(cache)和有向无环图数据(dag)的特点,分别为两种数据配置存储单元的存储空间,缓存数据只存储在第一存储单元,有向无环图数据存储到第一存储单元和第二存储单元,提高了存储单元的利用率,即提高了芯片的存储数据的能力,在一定程度上增加了芯片的良率和计算能力。According to an exemplary embodiment of the present application, based on the characteristics of cache data (cache) and directed acyclic graph data (dag), storage space of the storage unit is configured for the two types of data respectively, the cache data is only stored in the first storage unit, and the directed acyclic graph data is stored in the first storage unit and the second storage unit, thereby improving the utilization rate of the storage unit, that is, improving the chip's ability to store data, and to a certain extent increasing the chip's yield and computing power.
本申请还提供了一种电子设备和计算机可读存储介质。图8为根据本申请示例性实施方式的电子设备800的结构示意图。如图8所示,该电子设备800至少包括处理器810以及计算机可读存储介质820。其中,处理器810以及计算机可读存储介质820可通过总线或者其它方式连接。计算机可读存储介质820用于存储计算机程序821,计算机程序821包括计算机指令,处理器810用于执行计算机可读存储介质820存储的计算机指令。处理器810是电子设备800的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。The present application also provides an electronic device and a computer-readable storage medium. FIG8 is a schematic diagram of the structure of an electronic device 800 according to an exemplary embodiment of the present application. As shown in FIG8 , the electronic device 800 includes at least a processor 810 and a computer-readable storage medium 820. Among them, the processor 810 and the computer-readable storage medium 820 can be connected via a bus or other means. The computer-readable storage medium 820 is used to store a computer program 821, and the computer program 821 includes computer instructions. The processor 810 is used to execute the computer instructions stored in the computer-readable storage medium 820. The processor 810 is the computing core and control core of the electronic device 800, which is suitable for implementing one or more computer instructions, and is specifically suitable for loading and executing one or more computer instructions to implement the corresponding method flow or corresponding function.
作为示例,处理器810也可称为中央处理器(Central Processing Unit,CPU)。处理器810可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。As an example, the processor 810 may also be referred to as a central processing unit (CPU). The processor 810 may include, but is not limited to, a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
作为示例,计算机可读存储介质820可以是动态随机存取存储器(DRAM)、高速RAM存储器,也可以是非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器810的计算机可读存储介质820。具体而言,计算机可读存储介质820包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随 机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。As an example, the computer-readable storage medium 820 may be a dynamic random access memory (DRAM), a high-speed RAM memory, or a non-volatile memory (Non-Volatile Memory), such as at least one disk memory; optionally, it may also be at least one computer-readable storage medium 820 located away from the aforementioned processor 810. Specifically, the computer-readable storage medium 820 includes, but is not limited to: a volatile memory and/or a non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (SDRAM), and so on. Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Synchronous Link Dynamic Random Access Memory (SLDRAM) and Direct Rambus RAM (DR RAM).
在一种实现方式中,该电子设备800可以是图8所示的芯片800;该计算机可读存储介质820中存储有计算机指令;由处理器810加载并执行计算机可读存储介质820中存放的计算机指令,以实现图1所示方法实施例中的相应步骤。具体实现中,计算机可读存储介质820中的计算机指令由处理器810加载并执行相应步骤,为避免重复,此处不再赘述。In one implementation, the electronic device 800 may be the chip 800 shown in FIG8 ; the computer readable storage medium 820 stores computer instructions; the processor 810 loads and executes the computer instructions stored in the computer readable storage medium 820 to implement the corresponding steps in the method embodiment shown in FIG1 . In a specific implementation, the computer instructions in the computer readable storage medium 820 are loaded by the processor 810 and the corresponding steps are executed, which will not be described here to avoid repetition.
根据本申请的另一方面,本申请实施例还提供了一种计算机可读存储介质820(Memory),计算机可读存储介质是电子设备800中的记忆设备,用于存放程序和数据。例如,计算机可读存储介质820。可以理解的是,此处的计算机可读存储介质820既可以包括电子设备800中的内置存储介质,当然也可以包括电子设备800所支持的扩展存储介质。计算机可读存储介质820提供存储空间,该存储空间存储了电子设备800的操作系统。并且,在该存储空间中还存放了适于被处理器810加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序821(包括程序代码)。According to another aspect of the present application, an embodiment of the present application further provides a computer-readable storage medium 820 (Memory), which is a memory device in the electronic device 800 for storing programs and data. For example, a computer-readable storage medium 820. It can be understood that the computer-readable storage medium 820 here can include both the built-in storage medium in the electronic device 800 and the extended storage medium supported by the electronic device 800. The computer-readable storage medium 820 provides a storage space, which stores the operating system of the electronic device 800. In addition, one or more computer instructions suitable for being loaded and executed by the processor 810 are also stored in the storage space, and these computer instructions can be one or more computer programs 821 (including program codes).
该电子设备800还可包括:收发器830,该收发器830可连接至该处理器810或计算机可读存储介质820。其中,计算机可读存储介质820可以控制该收发器830与其他设备进行通信。具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器830可以包括发射机和接收机,还可以进一步包括天线,天线的数量可以为一个或多个。The electronic device 800 may further include: a transceiver 830, which may be connected to the processor 810 or the computer-readable storage medium 820. The computer-readable storage medium 820 may control the transceiver 830 to communicate with other devices. Specifically, information or data may be sent to other devices, or information or data sent by other devices may be received. The transceiver 830 may include a transmitter and a receiver, and may further include an antenna, and the number of antennas may be one or more.
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质820中。例如,计算机程序821。此时,电子设备800可以是计算机,处理器810从计算机可读存储介质820读取该计算机指令,处理器810执行该计算机指令,使得该计算机执行上述各种可选方式中提供的基于ETHASH算法的数据存储方法。According to another aspect of the present application, a computer program product or a computer program is provided, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium 820. For example, a computer program 821. At this time, the electronic device 800 may be a computer, the processor 810 reads the computer instructions from the computer-readable storage medium 820, and the processor 810 executes the computer instructions, so that the computer executes the data storage method based on the ETHASH algorithm provided in the above-mentioned various optional manners.
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地运行本申请实施例的流程或实现本申请实施例的功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。In other words, when implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process of the embodiment of the present application is run in whole or in part or the function of the embodiment of the present application is implemented. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center.
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技 术方案,同时也应涵盖在不脱离申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。 The above description is only a preferred embodiment of the present application and an explanation of the technical principles used. Those skilled in the art should understand that the scope of application involved in the present application is not limited to the technical features formed by a specific combination of the above technical features. The technical solutions should also include other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the application concept. For example, the technical solutions formed by replacing the above features with (but not limited to) technical features with similar functions disclosed in this application.

Claims (11)

  1. 一种基于ETHASH算法的数据存储方法,所述ETHASH算法是基于芯片运行,所述芯片包括多个存储块,每个所述存储块包括多个存储单元,包括:A data storage method based on an ETHASH algorithm, wherein the ETHASH algorithm is based on a chip operation, wherein the chip includes a plurality of storage blocks, each of which includes a plurality of storage units, including:
    对所述存储块的多个存储单元进行测试并得到测试结果;Testing a plurality of storage units of the storage block and obtaining test results;
    根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,所述第一存储单元为通过测试的存储单元,所述第二存储单元为未通过测试的存储单元;Classify the plurality of storage units according to the test result into a first storage unit and a second storage unit, wherein the first storage unit is a storage unit that has passed the test, and the second storage unit is a storage unit that has not passed the test;
    获取缓存数据,并将所述缓存数据存储到所述第一存储单元;以及Acquire cache data, and store the cache data in the first storage unit; and
    根据所述缓存数据获取所述有向无环图数据,并将所述有向无环图数据存储到所述第一存储单元和/或所述第二存储单元。The directed acyclic graph data is acquired according to the cache data, and the directed acyclic graph data is stored in the first storage unit and/or the second storage unit.
  2. 根据权利要求1所述的方法,其中,所述方法还包括:The method according to claim 1, wherein the method further comprises:
    获取所述存储块中包含的所述第二存储单元的数量,并与算力预定值进行对比;Obtaining the number of the second storage units included in the storage block, and comparing the number with a predetermined computing power value;
    响应于所述存储块中包含的所述第二存储单元的数量超过所述算力预定值,对所述存储块中存储的所述有向无环图数据进行ETHASH运算,并获取运算结果;以及In response to the number of the second storage units included in the storage block exceeding the predetermined computing power value, performing an ETHASH operation on the directed acyclic graph data stored in the storage block, and obtaining an operation result; and
    基于所述运算结果,确定所述存储块的拒绝率,若所述存储块的拒绝率小于预设值,所述存储块用于数据存储,若所述存储块的拒绝率大于或等于预设值,所述存储块不用于数据存储,其中,所述拒绝率为所述运算结果大于特定困难值的数据的数量与所述运算结果整体数据的数量的比值。Based on the operation result, a rejection rate of the storage block is determined. If the rejection rate of the storage block is less than a preset value, the storage block is used for data storage. If the rejection rate of the storage block is greater than or equal to the preset value, the storage block is not used for data storage. The rejection rate is the ratio of the number of data whose operation results are greater than a specific difficulty value to the number of overall data of the operation results.
  3. 根据权利要求1所述的方法,其中,所述获取缓存数据,并将所述缓存数据存储到所述第一存储单元的步骤包括:The method according to claim 1, wherein the step of obtaining cache data and storing the cache data in the first storage unit comprises:
    获取训练次数,其中,所述训练次数为所述存储块的数量与训练长度的比值;Obtaining a training number, wherein the training number is a ratio of the number of storage blocks to a training length;
    基于ETHASH算法和所述训练次数进行训练,获得种子;Perform training based on the ETHASH algorithm and the training times to obtain a seed;
    计算所述缓存数据的长度;Calculating the length of the cached data;
    基于所述种子与所述缓存数据的长度计算所述缓存数据;以及Calculating the cached data based on the seed and the length of the cached data; and
    根据所述缓存数据分配所述第一存储单元的存储空间进行存储,并记录所述缓存数据的存储地址表。The storage space of the first storage unit is allocated according to the cache data for storage, and a storage address table of the cache data is recorded.
  4. 根据权利要求3所述的方法,其中,所述根据所述缓存数据获取有向无环图数据的步骤包括:The method according to claim 3, wherein the step of obtaining directed acyclic graph data according to the cache data comprises:
    根据所述缓存数据的存储地址表读取所述缓存数据;Reading the cache data according to the storage address table of the cache data;
    计算所述有向无环图数据的长度;以及Calculating the length of the directed acyclic graph data; and
    基于所述有向无环图数据的长度以及读取的所述缓存数据计算所述有向无环图数据。 The directed acyclic graph data is calculated based on the length of the directed acyclic graph data and the read cache data.
  5. 根据权利要求1所述的方法,其中,所述缓存数据在所述存储单元的存储空间X满足:
    M*D*64/65≤X≤M*D-1,
    The method according to claim 1, wherein the storage space X of the cache data in the storage unit satisfies:
    M*D*64/65≤X≤M*D-1,
    其中,M为所述存储块中通过测试的存储单元的数量,D为所述存储单元的存储空间地址深度。Wherein, M is the number of storage units that pass the test in the storage block, and D is the storage space address depth of the storage unit.
  6. 根据权利要求1所述的方法,其中,所述有向无环图数据在所述存储单元的存储空间Y满足:
    M*D*64/65≤Y≤L*D*64/65,
    The method according to claim 1, wherein the directed acyclic graph data in the storage space Y of the storage unit satisfies:
    M*D*64/65≤Y≤L*D*64/65,
    其中,M为所述存储块中通过测试的存储单元的数量,D为所述存储单元的存储空间地址深度,L为存储所述有向无环图数据的存储单元的数量。Among them, M is the number of storage units that pass the test in the storage block, D is the storage space address depth of the storage unit, and L is the number of storage units that store the directed acyclic graph data.
  7. 根据权利要求1所述的方法,其中,对芯片的存储区域进行测试并得到测试结果的步骤包括:The method according to claim 1, wherein the step of testing the storage area of the chip and obtaining the test result comprises:
    将初始测试数据写入所述存储单元,其中,所述初始测试数据包括已知的伪随机序列;以及Writing initial test data into the storage unit, wherein the initial test data includes a known pseudo-random sequence; and
    读取所述存储单元的数据,并将读取的所述存储单元的数据与所述初始测试数据进行对比,若读取的所述存储单元的数据与所述初始测试数据相同,所述存储单元的测试结果为通过,若读取的所述存储单元的数据与所述初始测试数据不同,所述存储单元的测试结果为未通过。The data of the storage unit is read, and the data of the storage unit is compared with the initial test data. If the data of the storage unit is the same as the initial test data, the test result of the storage unit is passed; if the data of the storage unit is different from the initial test data, the test result of the storage unit is failed.
  8. 根据权利要求7所述的方法,其中,在根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元之后,所述方法还包括:The method according to claim 7, wherein after classifying the plurality of storage units into first storage units and second storage units according to the test results, the method further comprises:
    对所述第二存储单元中存储的数据进行错误检查和纠正;以及performing error checking and correction on the data stored in the second storage unit; and
    将纠正后的所述数据与所述初始测试数据进行对比,若纠正后的所述数据与所述初始测试数据相同,则将所述第二存储单元重新划分到所述第一存储单元。The corrected data is compared with the initial test data, and if the corrected data is the same as the initial test data, the second storage unit is re-divided into the first storage unit.
  9. 一种基于ETHASH算法的数据存储装置,所述ETHASH算法是基于芯片运行,所述芯片包括多个存储块,每个所述存储块包括多个存储单元,包括:A data storage device based on an ETHASH algorithm, wherein the ETHASH algorithm is run on a chip, wherein the chip includes a plurality of storage blocks, each of which includes a plurality of storage units, including:
    测试模块,用于对所述存储块的多个存储单元进行测试并得到测试结果;A test module, used for testing a plurality of storage units of the storage block and obtaining a test result;
    分类模块,用于根据所述测试结果对多个所述存储单元进行分类处理,划分为第一存储单元和第二存储单元,其中,所述第一存储单元为通过测试的存储单元,所述第二存储单元为未通过测试的存储单元;A classification module, used for classifying the plurality of storage units according to the test result into first storage units and second storage units, wherein the first storage units are storage units that have passed the test, and the second storage units are storage units that have not passed the test;
    缓存数据获取及存储模块,用于获取缓存数据,并将所述缓存数据存储到所述第一存储单元;以及a cache data acquisition and storage module, configured to acquire cache data and store the cache data in the first storage unit; and
    有向无环图数据获取及存储模块,用于根据所述缓存数据获取所述有向无环图数 据,并将所述有向无环图数据存储到所述第一存储单元和/或所述第二存储单元。A directed acyclic graph data acquisition and storage module, used to acquire the directed acyclic graph data according to the cache data The directed acyclic graph data is stored in the first storage unit and/or the second storage unit.
  10. 一种电子设备,包括:An electronic device, comprising:
    处理器,适于执行计算机程序;以及a processor adapted to execute a computer program; and
    计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的方法。A computer-readable storage medium, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed by the processor, the method according to any one of claims 1 to 8 is implemented.
  11. 一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至8中任一项所述的方法。 A computer-readable storage medium for storing a computer program, wherein the computer program enables a computer to execute the method according to any one of claims 1 to 8.
PCT/CN2023/076138 2022-10-09 2023-02-15 Data storage method and apparatus based on ethash algorithm, device, and storage medium WO2024077825A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211225068.0A CN115292114B (en) 2022-10-09 2022-10-09 Data storage method, device, equipment and storage medium based on ETHASH algorithm
CN202211225068.0 2022-10-09

Publications (1)

Publication Number Publication Date
WO2024077825A1 true WO2024077825A1 (en) 2024-04-18

Family

ID=83834557

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/076138 WO2024077825A1 (en) 2022-10-09 2023-02-15 Data storage method and apparatus based on ethash algorithm, device, and storage medium

Country Status (2)

Country Link
CN (1) CN115292114B (en)
WO (1) WO2024077825A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292114B (en) * 2022-10-09 2022-12-09 中科声龙科技发展(北京)有限公司 Data storage method, device, equipment and storage medium based on ETHASH algorithm

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099809A2 (en) * 2001-06-05 2002-12-12 Infineon Technologies Ag Method and device for masking out non-serviceable memory cells
CN112486747A (en) * 2020-11-30 2021-03-12 维沃移动通信有限公司 Memory abnormity detection method and device, electronic equipment and readable storage medium
CN115292114A (en) * 2022-10-09 2022-11-04 中科声龙科技发展(北京)有限公司 Data storage method, device, equipment and storage medium based on ETHASH algorithm

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288882C (en) * 2001-11-27 2006-12-06 华为技术有限公司 Solution to local failure of memory
US11327551B2 (en) * 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
CN112214447A (en) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 Dynamic reconstruction method, system and device for workload certification operation chip cluster data
CN114003552B (en) * 2021-12-30 2022-03-29 中科声龙科技发展(北京)有限公司 Workload proving operation method, workload proving chip and upper computer
CN115083504B (en) * 2022-07-22 2022-11-01 中科声龙科技发展(北京)有限公司 Chip self-inspection method and chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099809A2 (en) * 2001-06-05 2002-12-12 Infineon Technologies Ag Method and device for masking out non-serviceable memory cells
CN112486747A (en) * 2020-11-30 2021-03-12 维沃移动通信有限公司 Memory abnormity detection method and device, electronic equipment and readable storage medium
CN115292114A (en) * 2022-10-09 2022-11-04 中科声龙科技发展(北京)有限公司 Data storage method, device, equipment and storage medium based on ETHASH algorithm

Also Published As

Publication number Publication date
CN115292114A (en) 2022-11-04
CN115292114B (en) 2022-12-09

Similar Documents

Publication Publication Date Title
CN107039084B (en) Wafer test method for memory chip with redundant unit
WO2024077825A1 (en) Data storage method and apparatus based on ethash algorithm, device, and storage medium
US9514843B2 (en) Methods for accessing a storage unit of a flash memory and apparatuses using the same
US9923578B2 (en) Parity check circuit and memory device including the same
KR101497254B1 (en) Memory diagnostic device, memory diagnostic method, and recording medium for storing program
US10896738B1 (en) Apparatuses and methods for direct access hybrid testing
US11978522B2 (en) Chip test method, apparatus, and device, and storage medium
US9063827B2 (en) Systems and methods for storing and retrieving a defect map in a DRAM component
CN115809203A (en) Software test case dynamic nesting method, device and application thereof
CN111352594A (en) Method and device for writing data and reading data in eFuse
CN112017727B (en) Interface test method and device, processor and electronic equipment
US10043588B2 (en) Memory device
US11705214B2 (en) Apparatuses and methods for self-test mode abort circuit
KR20160146402A (en) Memory system
US20060136792A1 (en) Random access memory having test circuit
CN213459060U (en) Memory and memory test system
CN108536389A (en) Row replacement method, device and NAND memory device based on nand flash memory
US20040255224A1 (en) Semiconductor storage device and evaluation method
CN114253777A (en) Memory test method, device and storage medium
CN114496050A (en) Memory, memory test system and memory test method
CN115705914A (en) Method and device for detecting bad block of flash memory and computer storage medium
US20140340975A1 (en) Semiconductor integrated circuit and method of testing semiconductor integrated circuit
US10484007B2 (en) Semiconductor device
US8644098B2 (en) Dynamic random access memory address line test technique
US20150207565A1 (en) Interface circuit for transmitting and receiving signals between electronic devices, and semiconductor memory chip and operation processing device including the same