WO2016101837A1 - 数据存储方法、存储模块和可编程逻辑器件 - Google Patents

数据存储方法、存储模块和可编程逻辑器件 Download PDF

Info

Publication number
WO2016101837A1
WO2016101837A1 PCT/CN2015/097731 CN2015097731W WO2016101837A1 WO 2016101837 A1 WO2016101837 A1 WO 2016101837A1 CN 2015097731 W CN2015097731 W CN 2015097731W WO 2016101837 A1 WO2016101837 A1 WO 2016101837A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
storage unit
capacity
data
cascaded
Prior art date
Application number
PCT/CN2015/097731
Other languages
English (en)
French (fr)
Inventor
包朝伟
刘真麒
张志文
唐万韬
Original Assignee
深圳市国微电子有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市国微电子有限公司 filed Critical 深圳市国微电子有限公司
Publication of WO2016101837A1 publication Critical patent/WO2016101837A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Definitions

  • the present invention relates to the field of integrated circuit design, and in particular, to a data storage method, a storage module, and a programmable logic device.
  • Digital logic devices can be divided into two broad categories, fixed logic devices and programmable logic devices.
  • the function of the fixed logic device is permanent and cannot be changed after manufacture.
  • Programmable logic devices offer a wide range of combined logic, sequencing logic, and voltage characteristics to perform many different logic functions.
  • field programmable gate array is a typical product of programmable logic devices.
  • FPGA field programmable gate array
  • Block memory is commonly used as a storage unit in FPGA devices on the market.
  • a separate block RAM usually has a storage capacity of 36K bits or 18K bits, and an FPGA device has multiple Block RAM units.
  • Block RAM can also be cascaded for larger storage.
  • Block RAM unit has some shortcomings, mainly in: Single block RAM storage capacity is too large, and is a storage area can not be divided into blocks of independent read and write operations as a whole, when the user application instance needs At the same time, many small-capacity data storage areas are read and written.
  • Each small-capacity data storage area needs to occupy one block RAM, which causes a large amount of storage space redundancy, wastes logical resources, and leads to a decrease in circuit operation speed. The consumption is increased. Especially in the face of a large number of small, small-scale, shallow depth of small-capacity data storage, it will cause huge waste of logic resources, such as peers to read 10 2K bits of data, FPGA devices need to call 10 With a block memory unit of 36K bits size, the resource utilization of each block RAM is only 5%.
  • the existing block memory-based programmable logic device causes a large amount of storage space redundancy and waste of logic resources for small-capacity data storage.
  • the main technical problem to be solved by the present invention is to provide a data storage method, a storage module, and a programmable logic device, which can solve the problem that the existing block memory-based programmable logic device causes a small-capacity data storage.
  • the present invention provides a data storage method, which is applied to a programmable logic device, where the programmable logic device includes a plurality of storage modules, and the storage module includes a plurality of small-capacity storage units.
  • the method includes the following steps:
  • the capacity of the storage module is the sum of the capacities of all the storage units in the storage module
  • the step of cascading the number of storage units to form a first cascading storage unit comprises: serially concatenating the number of storage units or parallel cascading to form the first Cascading storage units.
  • the step of serially forming the first cascading storage unit by serially forming the number of storage units comprises:
  • the step of serially forming the first cascading storage unit for the number of storage units comprises:
  • bit width of the to-be-stored data is greater than the bit width of the storage unit
  • the number of storage units are parallel concatenated to form the first concatenated storage unit according to increasing the bit width.
  • the method further includes: enabling a storage unit that is not cascaded in the storage module, and storing, to the uncascaded storage unit, data to be stored whose number of bytes is smaller than a capacity of the storage unit .
  • the method further includes: enabling one of the storage units in the storage module when the number of bytes of the data to be stored is less than a capacity of the storage unit, and The storage data is stored in the storage unit.
  • the method further includes: determining, when the number of bytes of data to be stored is greater than a capacity of the storage module, determining, according to the capacity of the storage module and the number of bytes, a storage module that needs to be cascaded [0020] cascading all of the storage units in the number of storage modules;
  • the step of cascading all of the storage units in the number of storage modules includes: serializing or parallelizing all of the storage units in the number of storage modules .
  • the step of cascading the number of storage modules to form a second cascading storage unit comprises: serially or parallel cascading the number of storage modules to form a second cascading storage unit .
  • the present invention further provides a storage module, which is applied to a programmable logic device, comprising: a first cascade storage unit; the first cascade storage unit is composed of a plurality of small capacity The storage unit is cascaded.
  • the first cascading storage unit is formed by serial or parallel cascading of a plurality of small-capacity storage units.
  • the first cascading storage unit is serially cascaded by a plurality of small-capacity storage units,
  • the byte depth of the first cascaded memory unit is the sum of the byte depths of the plurality of memory cells.
  • the first cascade storage unit is formed by parallel connection of a plurality of small-capacity storage units
  • the bit width of the first cascode memory cell is a sum of bit widths of the plurality of memory cells.
  • the storage module further includes: a storage unit that is not cascaded.
  • the storage module further includes: a cascade output port and a storage unit output port; the cascade output port is configured to output data stored by the cascade storage unit, and the storage unit output port
  • the present invention provides a programmable logic device including a second cascade storage unit, the second cascade storage unit being stored by the plurality of any one of the above Module cascading is formed.
  • the second cascading storage unit is formed by serial or parallel cascading of the plurality of storage modules according to any one of the above.
  • the present invention provides a data storage method, a storage module, and a programmable logic device.
  • the data storage method of the present invention is applied to a programmable logic device, the programmable logic device including a plurality of memory modules, the storing
  • the module includes a plurality of small-capacity storage units, and the method includes: when the number of bytes of data to be stored is greater than a capacity of the storage unit is less than or equal to a capacity of the storage module, according to the number of bytes of the data to be stored and The capacity of the storage unit determines the number of storage units that need to be cascaded; the capacity of the storage module is the sum of the capacities of all the storage units in the storage module; enabling the number of storage units in the storage module And cascading the number of storage units to form a first cascading storage unit, and storing the to-be-stored data in the first cascading storage unit; the data storage method of the present invention may be based on the size of data to be stored Adapt
  • the logic resource is wasted; the method of the present invention can set the capacity of the storage module to a value matching the data size by cascading in the face of small-capacity data storage, thereby avoiding the excessive capacity of the existing programmable logic device due to the block RAM.
  • the write operation since the storage module is composed of a small-capacity storage unit, the storage module has a small area and thus runs at a high speed, so that the speed of data exchange with an external circuit can be greatly increased.
  • FIG. 1 is a schematic flowchart of a data storage method according to Embodiment 1 of the present invention.
  • FIG. 2 is a schematic structural diagram of a storage unit according to Embodiment 1 of the present invention.
  • FIG. 3 is a schematic diagram of a byte depth and a bit width of a memory cell according to Embodiment 1 of the present invention.
  • FIG. 4 is a schematic structural diagram of a first storage module according to Embodiment 1 of the present invention.
  • FIG. 5 is a schematic circuit diagram of a first storage module according to Embodiment 1 of the present invention.
  • FIG. 6 is a schematic structural diagram of a second storage module according to Embodiment 1 of the present invention.
  • FIG. 7 is a circuit diagram of a second storage module according to Embodiment 1 of the present invention.
  • FIG. 8 is a schematic structural diagram of a third storage module according to Embodiment 1 of the present invention.
  • FIG. 9 is a schematic structural diagram of a fourth storage module according to Embodiment 1 of the present invention.
  • FIG. 10 is a schematic structural diagram of a storage module according to Embodiment 2 of the present invention.
  • FIG. 11 is a schematic flowchart of a data storage method according to Embodiment 3 of the present invention.
  • FIG. 12 is a schematic structural diagram of a cascade storage unit according to Embodiment 3 of the present invention.
  • FIG. 13 is a schematic structural diagram of another cascading storage unit according to Embodiment 3 of the present invention.
  • FIG. 14 is a schematic structural diagram of a storage module according to Embodiment 4 of the present invention.
  • FIG. 15 is a schematic structural diagram of another storage module according to Embodiment 4 of the present invention.
  • FIG. 16 is a schematic structural diagram of a programmable logic device according to Embodiment 5 of the present invention.
  • FIG. 17 is a schematic structural view of a memory circuit provided by the present invention.
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • the existing block memory-based programmable logic device causes a large amount of storage space redundancy and waste of logic resources in the storage of small-capacity data.
  • This embodiment provides a data storage method, which is applied to a programmable logic device, the programmable logic device comprising a plurality of memory modules, the memory module The block includes a plurality of small-capacity storage units. As shown in FIG. 1, the method in this embodiment includes the following steps.
  • Step 101 When the number of bytes of the data to be stored is greater than the capacity of the storage unit is less than or equal to the capacity of the storage module, determining the cascading according to the number of bytes of data to be stored and the capacity of the storage unit.
  • the number of storage units; the capacity of the storage module is the sum of the capacities of all the storage units in the storage module.
  • the size of the data to be stored in this embodiment is represented by the number of bytes, and the larger the number of bytes, the larger the data, and the smaller the smaller the byte data, the smaller the data.
  • the storage unit is a small-capacity storage unit, and preferably, it may be a storage unit having a capacity of 2K bits.
  • the storage module in this embodiment includes a plurality of storage units, for example, may include 4, 7, 8, ... n storage units.
  • the storage module includes four storage units of 2K bits, and the capacity of the storage module is 8K bits.
  • the capacity of the storage module is 8K bits.
  • the programmable logic device needs to store 8K bits of data, since the number of bytes of the data is greater than the storage.
  • Such a capacity is equal to the capacity of the storage module. Therefore, it can be determined according to the number of bytes and the capacity of the storage unit that four storage units need to be cascaded to obtain a storage space with a capacity of 8K bits.
  • the number of storage units that need to be cascaded is less than or equal to the total number of storage units in the storage module. That is to say, in the case of small data, do not cascade all the enabling units in the storage module, and only need to cascade a part to store the data.
  • Step 102 Enable the number of storage units in the storage module, cascade the number of storage units to form a first cascade storage unit, and store the to-be-stored data in the first In a cascaded storage unit.
  • the storage unit includes different signal ports, and the functions of each port are as follows:
  • Address The address at which the storage unit performs read and write operations.
  • Data input The data that the storage unit performs a write operation.
  • Read/Write Enable Controls the operating mode in which the memory cell is in a read or write mode.
  • Chip Enable Controls whether the memory unit is in a working state.
  • Bit Width Selection Controls how many bits of stored data are read and written by the storage unit.
  • the data storage method of the embodiment can adaptively set the capacity of the storage module according to the size of the data to be stored, improve the utilization of the storage space and the logical resource, reduce storage space redundancy, and waste logical resources;
  • the capacity of the storage module can be set to match the data size by cascading, which avoids the existing programmable logic device facing small-capacity data storage due to excessive block RAM capacity.
  • the storage module can independently perform read and write operations. Since the storage module is composed of a small-capacity storage unit, the storage module has a small area, and thus the running speed is fast. Can greatly increase the speed of data exchange with external circuits.
  • the manner in which the method of the embodiment can cascade the number of storage units includes: serial concatenation or parallel concatenation, that is, serializing the number of storage units as described in step 102 above.
  • the process of forming the first cascaded memory cells includes: serially concatenating the number of memory cells or parallel forming the first cascaded memory cells.
  • the first number of memory cells may be serially cascaded in such a manner as to increase the byte depth to form the first cascaded memory cells.
  • each storage unit may be connected in byte order, so that the bit width of the first cascaded storage unit is equal to the bit width of the storage unit, that is, the bit width is unchanged, and the byte of the first hierarchical storage unit is The sum of the byte depths of the cascaded memory locations.
  • the storage module includes four storage units with a capacity of 2K bits, and the data storage to be stored in the 8K bits is taken as an example to describe the serial cascading mode in this embodiment:
  • the chip enable signals of the four memory cells are first set to be effective, and the memory modules realize the storage capacity of 8K bits by serially cascading four memory cells.
  • the 8K bits memory module can realize the bit width of various bits.
  • the storage data is outputted by the cascade output port; the serially cascaded storage module is shown in FIG.
  • the circuit implementation of the four memory cells in the serial cascode memory module is that each memory cell is connected in byte order, and the bit width of the memory module is kept unchanged by M, and the byte depth is changed to 4N.
  • the overall storage capacity is increased to 8K, and the connection mode of the storage unit in the storage module is as shown in FIG. 5.
  • the storage module that is cascaded by using the serial method is applicable to data to be stored with small bit width and large byte depth; and facing data with a small byte depth and a large bit width, a string
  • the way in which rows are cascaded with storage units is not feasible.
  • the method in this embodiment can not only cascade the storage units in a serial manner, but also cascade the storage units in a parallel manner.
  • Embodiment methods may form the first cascaded memory cells in parallel by cascading the number of memory cells in a manner that increases bit width. Specifically, a determined number of memory cells can be connected in the order of bit width, and the same size of the memory module is also increased. The resulting first cascaded memory cell has the same byte depth as the memory cell's byte depth, but the bit width is the sum of the bit widths of all cascaded memory cells.
  • the storage module includes four storage units with a capacity of 2 ⁇ bits, and the data storage to be stored of 8K bits is taken as an example to describe the parallel cascading manner in this embodiment:
  • the chip enable signals of the four memory cells are set to be effective, and four memory cells are cascaded in parallel by programming, and the storage module realizes the storage capacity of 8K bits, after parallel cascading
  • the storage module is shown in Figure 6.
  • the circuit implementation of the four memory cells in the parallel cascode memory module is that each memory cell is connected in the order of bit width, and the bit width of the memory module is changed to 4M, and the byte depth is kept unchanged by N.
  • the overall storage capacity is increased to 8K.
  • the connection mode of the storage unit in the storage module is shown in Figure 7.
  • the variable width of the storage module is especially suitable for the computing needs of multiple encryption algorithms in the information security field.
  • the number of storage units that need to be cascaded determined in the method in this embodiment is smaller than the total number of storage units; therefore, all storage modules in the storage module are not required to be cascaded, for example, when The storage module includes four storage units. If the data is not large, four storage units are not required to be stored together, that is, four storage units are not required to be cascaded. In this case, based on the above content, the method of this embodiment further includes:
  • the method in this embodiment may also use the first cascading storage unit and the uncascaded storage unit to store different sizes of data.
  • the storage module includes four storage units with a capacity of 2K bits, and the data storage to be stored of 4K bits is taken as an example to introduce the method of the embodiment:
  • the memory module realizes the storage capacity of 4K bits by programming serially cascading two storage units, refer to FIG. 8. By controlling the bit width selection signal, the 4K bits memory module can realize the bit width of various bits. Cascaded output port output 4K
  • the bits store the stored data of the submodule.
  • the serial cascading mode of the internal memory cells of the module is similar to that of the serial 8K bits memory module.
  • the byte depth is increased to 2N, and the bit width is kept unchanged.
  • the memory unit 3 and the memory unit 4 also operate normally in the case where the chip is enabled, and the output of the unit 3 and the output of the unit 4 output two ports.
  • the 4K bits memory module is implemented in two more output ports than the 8K bits memory module, and can perform three-way data exchange at the same time.
  • Another form of implementing the 4K bits memory module is a memory cell in the parallel cascading module, which increases the memory capacity in a manner of increasing the bit width, as shown in FIG.
  • the module's internal memory cells are connected in a similar manner to the parallel 8K bits memory module.
  • the memory cells are connected according to the bit width.
  • the byte depth is kept at N and the bit width is changed to 2N.
  • the method of the embodiment can control the storage unit to perform serial or parallel cascading, realize the change of the byte depth and the bit width, and realize the adaptation of the storage capacity of the storage module.
  • the first embodiment is mainly when the number of bytes of data to be stored is greater than the capacity of the storage unit is less than or equal to the capacity of the storage module, and the data is stored; in actual applications, there may be a collision.
  • the method of the first embodiment is not applicable; in this case, the embodiment provides a data storage method, and based on the content described in the first embodiment, The method includes: when the number of bytes of the data to be stored is smaller than the capacity of the storage unit, enabling one of the storage units, and storing the to-be-stored data in the storage unit Medium.
  • the storage module includes four storage units with a capacity of 2K bits, and the data storage to be stored of 4K bits is taken as an example to introduce the method of the embodiment:
  • the storage module may not cascade the storage units inside the module, and the chip enable signals of the storage unit 1 to the storage unit 4 are asserted, and each storage unit serves as an independent storage.
  • the sub-module performs the reading and writing operation; the four ports respectively output the respective read and write data, as shown in FIG. 10, the storage units 1, 2, 3, and 4 are not cascaded, and each storage unit has an output port, which can be independently performed. Read and write operations.
  • Embodiment 3 is a diagrammatic representation of Embodiment 3
  • the above storage module is applicable, even if all the storage units of the cascade cannot store large-scale data; therefore, as shown in FIG. 11, this embodiment A data storage method is provided. Based on the first embodiment and/or the second embodiment, the method further includes:
  • Step 110 When the number of bytes of data to be stored is greater than the capacity of the storage module, determine the number of storage modules that need to be cascaded according to the capacity of the storage module and the number of bytes.
  • Step 111 Cascading all of the storage units in the quantity of storage modules.
  • the step may include: serially or parallel cascading all of the storage units in the quantity of storage modules; that is, cascading storage units in the storage module in a parallel or serial manner.
  • Step 112 Cascading the number of storage modules to form a second cascading storage unit, and storing the to-be-stored data in the second cascading storage unit.
  • the step may specifically include: serially or parallelly cascading the number of storage modules to form a second cascade storage unit.
  • the method in this embodiment may also cascade the storage modules to form a second capacity storage module of a larger capacity to meet the requirement of storing larger data.
  • two 8K bits of memory modules can be serially or parallelly cascaded by programming, and a maximum of 16K bits of cascaded memory modules can be realized.
  • the following storage module includes four storage units of 2K bits capacity, 32-bit wide and 14K bits to be stored.
  • Data storage is taken as an example to introduce the method of this embodiment:
  • the storage unit in the storage module is set to a bit width of 8 bits, and four storage units are cascaded in parallel to realize a storage module having a bit width of 32 bits and a capacity of 8 Kbits.
  • the two storage modules are serially cascaded to implement a 32-bit wide, 16K-bit second cascade storage unit, and the data to be stored is stored in the second cascade storage unit.
  • two memory modules with a bit width of 16 bits and a capacity of 8K bits can be parallel cascaded to realize a second cascade memory unit having a bit width of 32 bits and a capacity of 8 Kbits, as shown in FIG. 13;
  • the storage units in the two storage modules are cascaded to form a storage module having a bit width of 16 bits and a capacity of 8K bits, and then the two storage modules are cascaded in parallel to form a second level of 32 bits.
  • Connected storage unit Adjust the serial and parallel cascading methods of the storage module to flexibly adapt to different storage needs.
  • the storage module in the method of the embodiment can also achieve larger-scale storage by cascading. Through the combination and control of the storage modules, the storage requirements of different byte depths and different bit width data are satisfied.
  • Embodiment 4 is a diagrammatic representation of Embodiment 4:
  • the embodiment provides a storage module for a programmable logic device, including: a first level storage unit; the first cascade storage unit is configured by multiple small-capacity storage units. The unit is cascaded.
  • the first cascading storage unit is formed by serial or parallel cascading of a plurality of small-capacity storage units.
  • a byte depth of the first cascading storage unit is a plurality of storage units The sum of the byte depths.
  • a bit width of the first cascading storage unit is a bit width of the plurality of storage units Sum.
  • the storage module of this embodiment may further include: a storage unit that is not cascaded.
  • the storage module of the embodiment may further cascade the output port and the storage unit output port; the cascade output port is configured to output data stored by the cascade storage unit, and the storage unit output port And for outputting data stored by the uncascaded storage unit.
  • Embodiment 5 :
  • the embodiment provides a programmable logic device, including a second cascade storage unit, where the second cascade storage unit is composed of a plurality of storage module levels as described in Embodiment 4. Formed together.
  • the second cascading storage unit is formed by a plurality of storage modules as described in Embodiment 4 in a serial or parallel cascade.
  • a storage circuit includes a programmable logic device and an external circuit; the programmable logic device includes a plurality of second cascaded memory modules, and the second cascaded memory module includes a plurality of memory module levels.
  • the memory module may be formed by cascading a plurality of memory cells; the external circuit includes a digital processor for performing storage control on the memory module and the cascade memory module.
  • the memory circuit provided in this embodiment utilizes the characteristics of its programmable wiring to realize capacity expansion by cascading memory cells.
  • the way the memory module is connected to the external circuit is also determined by programming and is implemented by interconnectable resources.
  • the memory module performs data read and write operations independently, and performs data exchange in parallel with external circuits.
  • modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed in multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in a storage medium (ROM/RAM, disk, optical disk) by a computing device, and at some In some cases, the steps shown or described may be performed in an order different from that described in the above embodiments, or they may be separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof may be fabricated into a single integrated circuit module. to realise. Therefore, the invention is not limited to any specific combination of hardware and software.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Logic Circuits (AREA)

Abstract

提供一种数据存储方法、存储模块和可编程逻辑器件。所述数据存储方法应用于可编程逻辑器件。该可编程逻辑器件包括多个存储模块,所述存储模块包括多个小容量的存储单元,方法包括:当待存储数据的字节数大于存储单元的容量小于等于存储模块容量时,根据字节数和容量确定需级联的存储单元的数量;存储模块的容量为所述存储模块中所有存储单元的容量之和;使能存储模块中所述数量的存储单元,对所述数量的存储单元进行级联形成第一级联存储单元,将待存储数据存储在第一级联存储单元中;该方法可以解决现有基于块状存储器的可编程逻辑器件在对小容量数据存储时会造成大量的存储空间冗余、逻辑资源浪费的技术问题。

Description

发明名称:数据存储方法、 存储模块和可编程逻辑器件 技术领域
[0001] 本发明涉及集成电路设计领域, 尤其涉及一种数据存储方法、 存储模块和可编 程逻辑器件。
背景技术
[0002] 数字逻辑器件可分为两大类, 固定逻辑器件和可编程逻辑器件。 固定逻辑器件 的功能是永久性的, 制造后无法改变。 可编程逻辑器件能够提供广泛的组合逻 辑, 吋序逻辑, 电压特性, 从而完成许多不同的逻辑功能。
[0003] 对于可编程逻辑器件, 只需要通过幵发工具将设计的电路转化为位流文件, 导 入可编程器件中, 便可得到期望的电路功能。 相比于固定逻辑器件, 可编程逻 辑器件节省了大量的流片成本, 并且更加灵活, 可重复编程以实现不同逻辑功 能。
[0004] 其中, 现场可编程门阵列 (FPGA) 是可编程逻辑器件的典型产品。 如今, FP GA的发展已引起了集成电路市场及电子科技领域的广泛关注, 利用其灵活配置 , 高速, 可系统化集成的优势, 逐渐扩大在集成电路市场份额, 并将电子技术 产业的热点, 逐渐由 ASIC向 FPGA转移。
[0005] 目前, FPGA生产商为了降低器件的生产成本, 通常采用某种固定、 单一的 芯片架构。 并且, 为了使 FPGA器件适用于普遍的电路应用, 器件中的逻辑资源 将布置得尽可能丰富, 以逻辑资源的冗余换取 FPGA器件实现更多的功能。 大部 分应用情况下, 仅需要调用部分 FPGA器件中的逻辑资源, 便可实现所需的电路 功能。 器件中的其他逻辑资源将处于闲置或不启用的状态, 这不可避免的造成 了逻辑资源的浪费, 资源利用率低下的状况。
[0006] 目前市场上的 FPGA器件中普遍采用块状存储器 (Block RAM) 作为存储单元 , 一个独立的 Block RAM通常具有 36K bits或 18K bits的存储容量, 一个 FPGA器 件具有多个 Block RAM单元, 多个 Block RAM还可进行级联, 实现更大规模的存 储功能。 然而, 在某些特殊应用中 (例如, 在 AES、 DES加密算法中, 需要对多 个 2K bits的数据模块进行逻辑运算) Block RAM单元存在某些不足, 主要表现在 : 单个 Block RAM存储容量太大、 并且是一个存储区域无法分块独立读写操作的 整体, 当用户应用实例需要同吋对许多小容量数据存储区进行读写吋, 每个小 容量数据存储区均需要占据 1个 Block RAM, 造成大量的存储空间冗余, 逻辑资 源浪费, 并导致电路运行速度降低, 电路功耗增加。 尤其是在面对数量较多、 小规模、 浅深度的小容量数据存储吋, 会造成巨大的逻辑资源浪费, 例如同吋 对 10个 2K bits大小的数据进行读取, FPGA器件需调用 10个 36K bits大小的 Block RAM单元, 每个 Block RAM的资源利用率仅为 5%。
[0007] 因此, 现有基于块状存储器的可编程逻辑器件在对小容量数据存储吋会造成大 量的存储空间冗余、 逻辑资源浪费。
技术问题
[0008] 本发明要解决的主要技术问题是, 提供一种数据存储方法、 存储模块和可编程 逻辑器件, 能够解决现有基于块状存储器的可编程逻辑器件在对小容量数据存 储吋会造成大量的存储空间冗余、 逻辑资源浪费的技术问题。
问题的解决方案
技术解决方案
[0009] 为解决上述技术问题, 本发明提供一种数据存储方法,应用于可编程逻辑器件 , 所述可编程逻辑器件包括多个存储模块, 所述存储模块包括多个小容量的存 储单元, 所述方法包括如下步骤:
[0010] 当待存储数据的字节数大于所述存储单元的容量小于等于所述存储模块的容量 吋, 根据待存储数据的字节数和所述存储单元的容量确定需要级联的存储单元 的数量; 所述存储模块的容量为所述存储模块中所有所述存储单元的容量之和
[0011] 使能所述存储模块中所述数量的存储单元, 对所述数量的存储单元进行级联形 成第一级联存储单元, 将所述待存储数据存储在所述第一级联存储单元中.
[0012] 进一步地, 所述对所述数量的存储单元进行级联形成第一级联存储单元的步骤 包括: 对所述数量的存储单元进行串行级联或者并行级联形成所述第一级联存 储单元。 [0013] 进一步地, 所述对所述数量的存储单元进行串行级形成所述第一级联存储单元 的步骤包括:
[0014] 当所述待存储数据的字节深度大于所述存储单元的字节深度吋, 按照增加字节 深度的方式对所述数量的存储单元进行串行级联形成所述第一级联存储单元。
[0015] 进一步地, 所述对所述数量的存储单元进行串行级形成所述第一级联存储单元 的步骤包括:
[0016] 当所述待存储数据的位宽大于所述存储单元的位宽吋, 按照增加位宽的方式对 所述数量的存储单元进行并行级联形成所述第一级联存储单元。
[0017] 进一步地, 所述方法还包括: 使能存储模块中未级联的存储单元, 将字节数小 于所述存储单元的容量的待存储数据存储在所述未级联的存储单元中。
[0018] 进一步地, 所述方法还包括: 当所述待存储数据的字节数小于所述存储单元的 容量吋, 使能所述存储模块中的一个所述存储单元, 并将所述待存储数据存储 在该存储单元中。
[0019] 进一步地, 所述方法还包括: 当待存储数据的字节数大于所述存储模块的容量 吋, 根据所述存储模块的容量和所述字节数确定需要级联的存储模块的数量; [0020] 对所述数量的存储模块中所有的所述存储单元进行级联;
[0021] 对所述数量的存储模块进行级联形成第二级联存储单元, 将所述待存储数据存 储在所述第二级联存储单元中。
[0022] 进一步地, 所述对所述数量的存储模块中所有的所述存储单元进行级联的步骤 包括: 对所述数量的存储模块中所有的所述存储单元进行串行或并行级联。
[0023] 进一步地, 所述对所述数量的存储模块进行级联形成第二级联存储单元的步骤 包括: 对所述数量的存储模块进行串行或并行级联形成第二级联存储单元。
[0024] 同样为了解决上述技术问题, 本发明还提供了一种存储模块, 应用于可编程逻 辑器件, 包括: 第一级联存储单元; 所述第一级联存储单元由多个小容量的存 储单元级联形成。
[0025] 进一步地, 所述第一级联存储单元由多个小容量的存储单元串行或并行级联形 成。
[0026] 进一步地, 所述第一级联存储单元由多个小容量的存储单元串行级联形成吋, 所述第一级联存储单元的字节深度为所述多个存储单元的字节深度之和。
[0027] 进一步地, 当所述第一级联存储单元由多个小容量的存储单元并行级联形成吋
, 所述第一级联存储单元的位宽为所述多个存储单元的位宽之和。
[0028] 进一步地, 所述存储模块还包括: 未级联的存储单元。
[0029] 进一步地, 所述存储模块还包括: 级联输出端口和存储单元输出端口; 所述级 联输出端口, 用于输出所述级联存储单元存储的数据, 所述存储单元输出端口
, 用于输出所述未级联的存储单元存储的数据。
[0030] 同样为了解决上述的技术问题, 本发明还提供了一种可编程逻辑器件, 包括第 二级联存储单元, 所述第二级联存储单元由多个如上任一项所述的存储模块级 联形成。
[0031] 进一步地, 所述第二级联存储单元由多个如上任一项所述的存储模块串行或并 行级联形成。
发明的有益效果
有益效果
[0032] 本发明的有益效果是:
[0033] 本发明提供了一种数据存储方法、 存储模块和可编程逻辑器件; 本发明的数据 存储方法, 应用于可编程逻辑器件, 所述可编程逻辑器件包括多个存储模块, 所述存储模块包括多个小容量的存储单元, 所述方法包括: 当待存储数据的字 节数大于所述存储单元的容量小于等于所述存储模块的容量吋, 根据待存储数 据的字节数和所述存储单元的容量确定需要级联的存储单元的数量; 所述存储 模块的容量为所述存储模块中所有所述存储单元的容量之和; 使能所述存储模 块中所述数量的存储单元, 对所述数量的存储单元进行级联形成第一级联存储 单元, 将所述待存储数据存储在所述第一级联存储单元中; 本发明的数据存储 方法可以根据待存储数据的大小自适应地设置存储模块的容量, 提高了存储空 间和逻辑资源的利用率, 减少了存储空间冗余、 逻辑资源浪费; 本发明的方法 在面对小容量数据存储吋, 可以通过级联将存储模块的容量设置成与数据大小 匹配的值, 避免了现有可编程逻辑器件由于 Block RAM容量过大在面临小容量数 据存储吋的逻辑资源浪费的问题; 另外, 本发明中存储模块可独立同步进行读 写操作, 由于存储模块由小容量的存储单元构成, 所以存储模块面积较小, 从 而运行速度较快, 因此能够大大增加与外部电路进行数据交换的速度。
对附图的简要说明
附图说明
[0034] 图 1为本发明实施例一提供的一种数据存储方法的流程示意图;
[0035] 图 2为本发明实施例一提供的一种存储单元的结构示意图;
[0036] 图 3为本发明实施例一提供的一种存储单元字节深度和位宽的示意图;
[0037] 图 4为本发明实施例一提供的第一种存储模块的结构示意图;
[0038] 图 5为本发明实施例一提供的第一种存储模块的电路示意图;
[0039] 图 6为本发明实施例一提供的第二种存储模块的结构示意图;
[0040] 图 7为本发明实施例一提供的第二种存储模块的电路示意图;
[0041] 图 8为本发明实施例一提供的第三种存储模块的结构示意图;
[0042] 图 9为本发明实施例一提供的第四种存储模块的结构示意图;
[0043] 图 10为本发明实施例二提供的一种存储模块的结构示意图;
[0044] 图 11为本发明实施例三提供的一种数据存储方法的流程示意图;
[0045] 图 12为本发明实施例三提供的一种级联存储单元的结构示意图;
[0046] 图 13为本发明实施例三提供的另一种级联存储单元的结构示意图;
[0047] 图 14为本发明实施例四提供的一种存储模块的结构示意图;
[0048] 图 15为本发明实施例四提供的另一种存储模块的结构示意图;
[0049] 图 16为本发明实施例五提供的一种可编程逻辑器件的结构示意图;
[0050] 图 17为本发明是死了五提供的一种存储电路的结构示意图。
本发明的实施方式
[0051] 下面通过具体实施方式结合附图对本发明作进一步详细说明。
[0052] 实施例一:
[0053] 现有基于块状存储器的可编程逻辑器件在对小容量数据存储吋会造成大量的存 储空间冗余、 逻辑资源浪费的技术问题, 本实施例提供了一种数据存储方法, 应用于可编程逻辑器件, 所述可编程逻辑器件包括多个存储模块, 所述存储模 块包括多个小容量的存储单元, 如图 1所示, 本实施例方法包括如下步骤
[0054] 步骤 101 : 当待存储数据的字节数大于所述存储单元的容量小于等于所述存储 模块的容量吋, 根据待存储数据的字节数和所述存储单元的容量确定需要级联 的存储单元的数量; 所述存储模块的容量为所述存储模块中所有所述存储单元 的容量之和。
[0055] 本实施例中待存储数据的大小用字节数体现, 字节数越大表示数据越大, 反之 字节数据越小表示数据越小。
[0056] 本实施例中存储单元为小容量的存储单元, 优选地, 可以为容量为 2K bits的存 储单元。 本实施例中存储模块包括多个存储单元, 例如, 可以包括 4、 7、 8...... n个存储单元。
[0057] 例如, 存储模块包括 4个容量为 2K bits存储单元吋, 存储模块的容量即为 8K bits , 当可编程逻辑器件需要对 8K bits数据存储吋, 由于该数据的字节数大于存 储都那样的容量等于存储模块的容量, 此吋, 可以根据字节数和存储单元的容 量确定需要级联 4个存储单元才能得到容量为 8K bits的存储空间。
[0058] 本实施例中确定需要级联的存储单元的数量小于或等于存储模块中存储单元的 总数。 也就是说, 在面临数据不大的情况下, 不要将存储模块中所有的促成单 元进行级联, 只需级联一部分即可存储数据。
[0059] 步骤 102: 使能所述存储模块中所述数量的存储单元, 对所述数量的存储单元 进行级联形成第一级联存储单元, 将所述待存储数据存储在所述第一级联存储 单元中。
[0060] 在确实级联的存储单元数量之后, 需要使该数量的存储单元处于工作状态, 即 使能该数量的存储单元; 具体地, 可以通过将存储单元的芯片使能信号置为有 效的方式来使能存储单元。
[0061] 本实施例中存储单元功能和结构可以参考图 2, 在 2中存储单元包括不同信号端 口, 各端口的功能如下:
[0062] 地址: 存储单元进行读写操作的地址。
[0063] 数据输入: 存储单元进行写操作吋输入的数据。
[0064] 读 /写使能: 控制存储单元处于读或者写的工作模式。 [0065] 芯片使能: 控制存储单元是否处于工作的状态。
[0066] 位宽选择: 控制存储单元同吋读写多少位存储数据。
[0067] 本实施例的数据存储方法可以根据待存储数据的大小自适应地设置存储模块的 容量, 提高了存储空间和逻辑资源的利用率, 减少了存储空间冗余、 逻辑资源 浪费; 本实施例的方法在面对小容量数据存储吋, 可以通过级联将存储模块的 容量设置成与数据大小匹配的值, 避免了现有可编程逻辑器件由于 Block RAM容 量过大在面临小容量数据存储吋的逻辑资源浪费的问题; 另外, 本实施例方法 中存储模块可独立同步进行读写操作, 由于存储模块由小容量的存储单元构成 , 所以存储模块面积较小, 从而运行速度较快, 因此能够大大增加与外部电路 进行数据交换的速度。
[0068] 优选地, 本实施例方法可以对所述数量的存储单元级联的方式包括: 串行级联 或并行级联, 即上述步骤 102中所述对所述数量的存储单元进行串行级形成所述 第一级联存储单元的过程包括: 对所述数量的存储单元进行串行级联或者并行 级联形成所述第一级联存储单元。
[0069] 在对存储单元进行串行级联的情况下, 可以按照增加字节深度的方式对所述数 量的存储单元进行串行级联形成所述第一级联存储单元。 具体地, 可以将每个 存储单元按照字节顺序连接, 此吋得到第一级联存储单元的位宽与存储单元的 位宽相等, 即位宽不变, 第一级联存储单元的字节为级联的存储单元的字节深 度之和。
[0070] 本实施例中获取存储单元的字节深度可通过公式: N=X/M计算得到, 其中 N为 字节深度、 M为存储单元的位宽、 X为存储单元的容量。 如图 3所示, 介绍本实 施例中存储单元的位宽和字节深度。
[0071] 下面以存储模块包括 4个容量为 2K bits存储单元, 对 8K bits的待存储数据存储 为例来介绍本实施例中串行级联的方式:
[0072] 实现串行 SK bits的存储吋, 首先将 4个存储单元的芯片使能信号置为有效, 通 过编程串行级联 4个存储单元, 存储模块实现 8K bits的存储容量。 通过控制位宽 选择信号, 8K bits存储模块可实现多种 bit的位宽。 对存储模块进行读写吋, 由 级联输出端口输出存储数据; 串行级联后的存储模块如图 4所示。 [0073] 串行级联存储模块内部 4个存储单元的电路实现方式是, 每个存储单元按照字 节顺序连接, 此吋存储模块的位宽保持为 M不变, 字节深度变为 4N, 整体存储 容量增大为 8K, 存储模块内的存储单元的连接方式如图 5所示。
[0074] 本实施例利用串行方式进行级联后的存储模块适用于位宽小、 字节深度大的待 存储数据; 而面对字节深度较浅, 位宽较大的数据吋, 串行级联存储单元的方 式并不可行。
[0075] 针对位宽较大的数据, 优选地, 本实施例方法不仅可以采用串行方式对存储单 元级联, 还可以采用并行方式对存储单元级联, 在并行级联的情况下, 本实施 例方法可以按照增加位宽的方式对所述数量的存储单元进行并行级联形成所述 第一级联存储单元。 具体地, 可以将确定数量的存储单元按照位宽的顺序连接 , 改变存储模块的容量的同吋也增加了位宽。 此吋得到的第一级联存储单元的 字节深度与存储单元的字节深度相同, 但位宽是所有级联的存储单元的位宽之 和。
[0076] 同样以存储模块包括 4个容量为 2Κ bits存储单元, 对 8K bits的待存储数据存储 为例来介绍本实施例中并行级联的方式:
[0077] 实现串行 SK bits的存储吋, 首先将 4个存储单元的芯片使能信号置为有效, 通 过编程并行级联 4个存储单元, 存储模块实现 8K bits的存储容量, 并行级联后的 存储模块如图 6所示。
[0078] 并行级联存储模块内部 4个存储单元的电路实现方式是, 将每个存储单元按照 位宽的顺序连接, 此吋存储模块的位宽变为 4M, 字节深度保持为 N不变, 整体 存储容量增大为 8K。 存储模块内的存储单元的连接方式如图 7所示。 存储模块位 宽可改变的特性, 特别适用于信息安全领域中多种加密算法的计算需求。
[0079] 如果面临的待存储数据不大, 本实施例方法中确定的需要级联的存储单元数量 是小于存储单元的总数; 此吋就不需要级联存储模块中所有的存储模块, 例如 当存储模块包括 4个存储单元吋, 如果数据不大, 不需要 4个存储单元共同进行 存储, 即不需要级联 4个存储单元。 在此情况, 在上述内容的基础上, 本实施例 方法还包括:
[0080] 使能存储模块中未级联的存储单元, 将字节数小于所述存储单元的容量的待存 储数据存储在所述未级联的存储单元中。
[0081] 因此, 本实施例方法还可以采用第一级联存储单元和未级联的存储单元同吋对 不同大小的数据进行存储。
[0082] 下面以存储模块包括 4个容量为 2K bits存储单元, 对 4K bits的待存储数据存储 为例来介绍本实施例方法:
[0083] 实现串行 4K bits的存储吋, 将存储单元 1至存储单元 2的芯片使能信号置为有效
, 通过编程串行级联 2个存储单元, 存储模块实现 4K bits的存储容量, 参考图 8。 通过控制位宽选择信号, 4K bits存储模块可实现多种 bit的位宽。 级联输出端口 输出 4K
bits存储子模块的存储数据。 模块内部存储单元的串行级联方式与串行 8K bits存 储模块类似, 按照字节连接存储单元, 字节深度增加为 2N, 位宽保持为 M不变
[0084] 存储单元 3和存储单元 4在芯片使能的情况下也正常工作, 并通过单元 3输出、 单元 4输出 2个端口输出数据。 4K bits存储模块的实现方式比 8K bits存储模块多了 两个输出端口, 可同吋进行 3路数据交换。
[0085] 另一种实现 4K bits存储模块的形式是并行级联模块内的存储单元, 以增加位宽 的方式增加存储容量, 参考图 9。 模块内部存储单元的连接方式与并行 8K bits存 储模块类似, 按照位宽连接存储单元, 字节深度保持为 N不变, 位宽变为 2N。
[0086] 本实施例方法可以控制存储单元进行串行或者并行级联, 实现字节深度和位宽 的改变, 并实现存储模块存储容量的自适应。
[0087]
[0088] 实施例二:
[0089] 上述实施例一主要介绍是当数据待存储数据的字节数大于所述存储单元的容量 小于等于所述存储模块的容量吋进行数据存储的情况; 在实际应用中, 有可能 会碰到小数据的情况, 例如面对大量零散数据吋, 上述实施例一方法就不适用 ; 针对该情况, 本实施例提供了一种数据存储方法, 在实施例一所述内容的基 础上, 还包括: 当所述待存储数据的字节数小于所述存储单元的容量吋, 使能 所述存储模块中的一个所述存储单元, 并将所述待存储数据存储在该存储单元 中。
[0090] 下面以存储模块包括 4个容量为 2K bits存储单元, 对 4K bits的待存储数据存储 为例来介绍本实施例方法:
[0091] 在面对大量零散数据的存储需求吋, 存储模块可不级联模块内部的存储单元, 将存储单元 1至存储单元 4的芯片使能信号置为有效, 每个存储单元作为一个独 立存储子模块进行读写作操作; 4个端口分别输出各自的读写数据, 如图 10所示 , 存储单元 1、 2、 3、 4不级联, 每个存储单元均有一个输出端口, 可独立进行 读写操作。
[0092]
[0093] 实施例三:
[0094] 在面对存储更大规模数据的需求吋, 上述存储模块就可适用了, 即使级联所有 的存储单元也不能存储完大规模的数据; 因此, 如图 11所示, 本实施例提供了 一种数据存储方法, 在实施例一和 /或实施例二的基础上, 还包括:
[0095] 步骤 110: 当待存储数据的字节数大于所述存储模块的容量吋, 根据所述存储 模块的容量和所述字节数确定需要级联的存储模块的数量。
[0096] 步骤 111 : 对所述数量的存储模块中所有的所述存储单元进行级联。
[0097] 优选地, 本步骤可以具体包括: 对所述数量的存储模块中所有的所述存储单元 进行串行或并行级联; 即采用并行或串行方式级联存储模块中的存储单元。
[0098] 关于并行或串行方式参考实施例一种相关描述。
[0099] 步骤 112: 对所述数量的存储模块进行级联形成第二级联存储单元, 将所述待 存储数据存储在所述第二级联存储单元中。
[0100] 优选地, 本步骤可以具体包括: 对所述数量的存储模块进行串行或并行级联形 成第二级联存储单元。
[0101] 同样关于并行或串行方式参考实施例一种相关描述。
[0102] 本实施例方法还可以对存储模块进行级联, 形成更大容量的第二级联存储模块 , 以满足存储更大规模数据的需求。 例如, 通过编程, 将 2个 8K bits的存储模块 串行或并行级联, 最多可实现一个 16K bits级联存储模块。
[0103] 下面以存储模块包括 4个容量为 2K bits存储单元, 对 32位宽, 14K bits的待存储 数据存储为例来介绍本实施例方法:
[0104] 先将存储模块内的存储单元设置为 8 bits的位宽, 并联级联 4个存储单元, 实现 位宽为 32 bits、 容量为 8 Kbits的存储模块。
[0105] 然后, 将 2个上述的存储模块进行串行级联, 实现 32位宽, 16K bits的第二级联 存储单元, 将待存储数据存储在第二级联存储单元中如图 12所示。 当然也可以 将 2个位宽为 16 bits,容量为 8K bits的存储模块进行并行级联, 实现位宽为 32 bits 、 容量为 8 Kbits的第二级联存储单元中, 如图 13所示;具体地, 先级联两个存储 模块中的存储单元形成一个位宽为 16 bits、 容量为 8K bits的存储模块, 然后将这 个两个存储模块进行并行级联形成 1个 32 bits的第二级联存储单元; 。 调整存储 模块的串行和并行级联方法, 可灵活适应不同的存储需求。
[0106] 本实施例方法中存储模块也可通过级联, 实现更大规模的存储。 通过对存储模 块的组合、 控制, 满足了不同字节深度、 不同位宽数据的存储需求。
[0107]
[0108] 实施例四:
[0109] 如图 14所示, 本实施例提供了一种存储模块, 用于可编程逻辑器件, 包括: 第 一级联存储单元; 所述第一级联存储单元由多个小容量的存储单元级联形成。
[0110] 优选地, 所述第一级联存储单元由多个小容量的存储单元串行或并行级联形成
[0111] 优选地, 当所述第一级联存储单元由多个小容量的存储单元串行级联形成吋, 所述第一级联存储单元的字节深度为所述多个存储单元的字节深度之和。
[0112] 优选地, 当所述第一级联存储单元由多个小容量的存储单元并行级联形成吋, 所述第一级联存储单元的位宽为所述多个存储单元的位宽之和。
[0113] 如图 15所示, 在上述基础上, 本实施例的存储模块还可以包括: 未级联的存储 单元。
[0114] 优选地, 本实施例的存储模块还可以级联输出端口和存储单元输出端口; 所述 级联输出端口, 用于输出所述级联存储单元存储的数据, 所述存储单元输出端 口, 用于输出所述未级联的存储单元存储的数据。 [0116] 实施例五:
[0117] 如图 16所示, 本实施例提供了一种可编程逻辑器件, 包括第二级联存储单元, 所述第二级联存储单元由多个如实施例四所述的存储模块级联形成。
[0118] 优选地, 所述第二级联存储单元由多个如实施例四所述的存储模块串行或并行 级联形成。
[0119] 如图 17所示, 为一种存储电路, 包括可编程逻辑器件和外部电路; 可编程逻辑 器件包括多个第二级联存储模块, 第二级联存储模块由多个存储模块级联形成 , 而存储模块可以由多个存储单元级联形成; 外部电路包括数字处理器用于对 存储模块和级联存储模块进行存储控制。
[0120] 本实施例提供的存储电路, 利用其可编程布线的特点, 通过级联存储单元而实 现容量扩展。 存储模块与外部电路的连接方式同样由编程决定, 并由可互连资 源实现。 存储模块独立地进行数据读写操作, 与外部电路并行地进行数据交换
[0121] 显然, 本领域的技术人员应该明白, 上述本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算 装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而, 可以将它们存储在存储介质 (ROM/RAM、 磁碟、 光盘) 中由计算装置 来执行, 并且在某些情况下, 可以以不同于上述实施例描述的顺序执行所示出 或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将它们中的多 个模块或步骤制作成单个集成电路模块来实现。 所以, 本发明不限制于任何特 定的硬件和软件结合。
[0122] 以上内容是结合具体的实施方式对本发明所作的进一步详细说明, 不能认定本 发明的具体实施只局限于这些说明。 对于本发明所属技术领域的普通技术人员 来说, 在不脱离本发明构思的前提下, 还可以做出若干简单推演或替换, 都应 当视为属于本发明的保护范围。

Claims

权利要求书
[权利要求 1] 一种数据存储方法, 其特征在于, 应用于可编程逻辑器件, 所述可编 程逻辑器件包括多个存储模块, 所述存储模块包括多个小容量的存储 单元, 所述方法包括如下步骤:
当待存储数据的字节数大于所述存储单元的容量小于等于所述存储模 块的容量吋, 根据待存储数据的字节数和所述存储单元的容量确定需 要级联的存储单元的数量; 所述存储模块的容量为所述存储模块中所 有所述存储单元的容量之和;
使能所述存储模块中所述数量的存储单元, 对所述数量的存储单元进 行级联形成第一级联存储单元, 将所述待存储数据存储在所述第一级 联存储单元中。
[权利要求 2] 如权利要求 1所述的方法, 其特征在于, 所述对所述数量的存储单元 进行级联形成第一级联存储单元的步骤包括:
对所述数量的存储单元进行串行级联或者并行级联形成所述第一级 联存储单元。
[权利要求 3] 如权利要求 2所述的方法, 其特征在于, 所述对所述数量的存储单元 进行串行级形成所述第一级联存储单元的步骤包括:
当所述待存储数据的字节深度大于所述存储单元的字节深度吋, 按 照增加字节深度的方式对所述数量的存储单元进行串行级联形成所述 第一级联存储单元。
[权利要求 4] 如权利要求 3所述的方法, 其特征在于, 所述对所述数量的存储单元 进行串行级形成所述第一级联存储单元的步骤包括:
当所述待存储数据的位宽大于所述存储单元的位宽吋, 按照增加位 宽的方式对所述数量的存储单元进行并行级联形成所述第一级联存储 单元。
[权利要求 5] 如权利要求 1所述的方法, 其特征在于, 还包括: 使能存储模块中未 级联的存储单元, 将字节数小于所述存储单元的容量的待存储数据存 储在所述未级联的存储单元中。
[权利要求 6] 如权利要求 1所述的方法, 其特征在于, 还包括: 当所述待存储数据 的字节数小于所述存储单元的容量吋, 使能所述存储模块中的一个所 述存储单元, 并将所述待存储数据存储在该存储单元中。
[权利要求 7] 如权利要求 1-6任一项所述的方法, 其特征在于, 还包括: 当待存储 数据的字节数大于所述存储模块的容量吋, 根据所述存储模块的容量 和所述字节数确定需要级联的存储模块的数量; 对所述数量的存储模块中所有的所述存储单元进行级联;
对所述数量的存储模块进行级联形成第二级联存储单元, 将所述待存 储数据存储在所述第二级联存储单元中。
[权利要求 8] 如权利要求 7所述的方法, 其特征在于, 所述对所述数量的存储模块 中所有的所述存储单元进行级联的步骤包括:
对所述数量的存储模块中所有的所述存储单元进行串行或并行级联
[权利要求 9] 如权利要求 7所述的方法, 其特征在于, 所述对所述数量的存储模块 进行级联形成第二级联存储单元的步骤包括:
对所述数量的存储模块进行串行或并行级联形成第二级联存储单元
[权利要求 10] —种存储模块, 其特征在于, 应用于可编程逻辑器件, 包括: 第一级 联存储单元; 所述第一级联存储单元由多个小容量的存储单元级联形 成。
[权利要求 11] 如权利要求 10所述的存储模块, 其特征在于, 所述第一级联存储单元 由多个小容量的存储单元串行或并行级联形成。
[权利要求 12] 如权利要求 11所述的存储模块, 其特征在于, 当所述第一级联存储单 元由多个小容量的存储单元串行级联形成吋, 所述第一级联存储单元 的字节深度为所述多个存储单元的字节深度之和。
[权利要求 13] 如权利要求 11所述的存储模块, 其特征在于, 当所述第一级联存储单 元由多个小容量的存储单元并行级联形成吋, 所述第一级联存储单元 的位宽为所述多个存储单元的位宽之和。
[权利要求 14] 如权利要求 10-13任一项所述的存储模块, 其特征在于, 还包括: 未 级联的存储单元。
[权利要求 15] 权利要求 14所述的存储模块, 其特征在于, 还包括: 级联输出端口和 存储单元输出端口; 所述级联输出端口, 用于输出所述第一级联存储 单元存储的数据, 所述存储单元输出端口, 用于输出所述未级联的存 储单元存储的数据。
[权利要求 16] —种可编程逻辑器件, 其特征在于, 包括第二级联存储单元, 所述第 二级联存储单元由多个如权利要求 10-15任一项所述的存储模块级联 形成。
[权利要求 17] 如权利要求 16所述可编程逻辑器件, 其特征在于, 所述第二级联存储 单元由多个如权利要求 10-15任一项所述的存储模块串行或并行级联 形成。
PCT/CN2015/097731 2014-12-26 2015-12-17 数据存储方法、存储模块和可编程逻辑器件 WO2016101837A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410830638.8A CN104572573A (zh) 2014-12-26 2014-12-26 数据存储方法、存储模块和可编程逻辑器件
CN201410830638.8 2014-12-26

Publications (1)

Publication Number Publication Date
WO2016101837A1 true WO2016101837A1 (zh) 2016-06-30

Family

ID=53088680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/097731 WO2016101837A1 (zh) 2014-12-26 2015-12-17 数据存储方法、存储模块和可编程逻辑器件

Country Status (2)

Country Link
CN (1) CN104572573A (zh)
WO (1) WO2016101837A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572573A (zh) * 2014-12-26 2015-04-29 深圳市国微电子有限公司 数据存储方法、存储模块和可编程逻辑器件
CN106649136B (zh) * 2015-11-03 2022-09-23 西安中兴新软件有限责任公司 一种数据存储方法和存储装置
CN107204198B (zh) * 2016-03-18 2020-06-09 深圳市中兴微电子技术有限公司 高速访问双倍速率同步动态随机存储器的控制方法及装置
CN107544917A (zh) * 2016-06-24 2018-01-05 中兴通讯股份有限公司 一种存储资源共享方法和装置
CN106297861B (zh) * 2016-07-28 2019-02-22 盛科网络(苏州)有限公司 可扩展的多端口存储器的数据处理方法及数据处理系统
CN106302260B (zh) * 2016-07-28 2019-08-02 盛科网络(苏州)有限公司 4个读端口4个写端口全共享报文的数据缓存处理方法及数据处理系统
CN109542799B (zh) * 2018-11-05 2023-03-28 西安智多晶微电子有限公司 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列
CN111381771B (zh) * 2018-12-29 2023-06-27 深圳市海思半导体有限公司 存储数据的方法、存储控制器和芯片
CN110782389B (zh) * 2019-09-23 2023-09-15 五八有限公司 一种图像数据字节对齐方法和终端
CN111008160A (zh) * 2019-11-30 2020-04-14 苏州浪潮智能科技有限公司 一种数据处理方法、装置和电子设备及可读存储介质
CN111078150A (zh) * 2019-12-18 2020-04-28 成都定为电子技术有限公司 一种高速存储设备及不间断扩容方法
CN112068467B (zh) * 2020-08-24 2022-01-14 国微集团(深圳)有限公司 数据传输系统、数据存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866865A (zh) * 2012-09-07 2013-01-09 北京时代民芯科技有限公司 一种fpga专用配置存储器多版本码流存储电路架构
CN103678164A (zh) * 2012-09-25 2014-03-26 北京兆易创新科技股份有限公司 一种存储器级联方法和装置
CN104572573A (zh) * 2014-12-26 2015-04-29 深圳市国微电子有限公司 数据存储方法、存储模块和可编程逻辑器件

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106098B1 (en) * 2004-05-04 2006-09-12 Xilinx, Inc. Split FIFO configuration of block RAM
CN103809769B (zh) * 2014-02-24 2016-09-07 中国电子科技集团公司第五十八研究所 一种block ram级联实现结构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866865A (zh) * 2012-09-07 2013-01-09 北京时代民芯科技有限公司 一种fpga专用配置存储器多版本码流存储电路架构
CN103678164A (zh) * 2012-09-25 2014-03-26 北京兆易创新科技股份有限公司 一种存储器级联方法和装置
CN104572573A (zh) * 2014-12-26 2015-04-29 深圳市国微电子有限公司 数据存储方法、存储模块和可编程逻辑器件

Also Published As

Publication number Publication date
CN104572573A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
WO2016101837A1 (zh) 数据存储方法、存储模块和可编程逻辑器件
US11296705B2 (en) Stacked programmable integrated circuitry with smart memory
US9503095B2 (en) Space-multiplexing DRAM-based reconfigurable logic
JP5709855B2 (ja) 周波数構成可能クロックドメインを有するブリッジデバイス(bridgingdevice)
TWI492059B (zh) 多串列介面堆疊式晶粒記憶體架構
US20140173322A1 (en) Packet data id generation for serially interconnected devices
US10095445B2 (en) Systems and methods for offloading processing from a host to storage processing units using an interconnect network
US10579591B1 (en) Incremental block compression
JP6517626B2 (ja) 再構成可能な半導体装置
CN102176673B (zh) 4输入查找表、fpga逻辑单元和fpga逻辑块
US8364856B2 (en) Memory module with configurable input/output ports
WO2018175121A1 (en) Apparatuses and methods for in-memory data switching networks
US9553591B2 (en) Hybrid architecture for signal processing
TWI544414B (zh) 用以重新排序資料的方法和裝置
CN101004674B (zh) 数据处理系统和包括数据处理系统的高清晰度电视机
WO2012009873A1 (zh) 一种搜索处理装置及网络系统
US9478272B1 (en) Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry
CN103809769B (zh) 一种block ram级联实现结构
US20180269880A1 (en) Logic block architecture for programmable gate array
CN207503223U (zh) 一种运算芯片及相应的电路板
CN106796505A (zh) 指令执行的方法及处理器
US8890570B2 (en) Switch block circuit in field programmable gate array
TWI442236B (zh) 串聯連接裝置之資料的選擇性廣播
US20200272585A1 (en) Memory controller and memory system including the memory controller
TW202401431A (zh) 記憶體裝置及zq校準方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15871905

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15871905

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11/12/2018)

122 Ep: pct application non-entry in european phase

Ref document number: 15871905

Country of ref document: EP

Kind code of ref document: A1