CN112835513A - 控制数据读写装置与方法 - Google Patents
控制数据读写装置与方法 Download PDFInfo
- Publication number
- CN112835513A CN112835513A CN202010142116.4A CN202010142116A CN112835513A CN 112835513 A CN112835513 A CN 112835513A CN 202010142116 A CN202010142116 A CN 202010142116A CN 112835513 A CN112835513 A CN 112835513A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- physical
- physical block
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 19
- 230000015654 memory Effects 0.000 claims abstract description 136
- 238000013507 mapping Methods 0.000 claims description 49
- 238000006243 chemical reaction Methods 0.000 claims description 45
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Abstract
一种控制数据读写装置,包括存储器控制器。存储器控制器控制对存储器的读写,其中存储器具有至少第一物理块与第二物理块。存储器控制器接收数据块的写入请求,并依据写入请求,在对应第一物理块与第二物理块的相应位置重复写入对应数据块数据的相应数据。存储器控制器接收数据块的读取请求,并依据读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以连续输出储存于存储器的数据块数据。
Description
技术领域
本发明关于一种控制数据读写装置与方法。
背景技术
近年来,随机存取存储器(random access memory,RAM)随着制造工艺进步,容量越来越大,带宽也越来越高,譬如说动态随机存取存储器(dynamic random accessmemory,DRAM)。但是,随机存取存储器的内部存储单元的速度并没有随着提高,其中一个原因是随着容量提高,存储阵列内的存储单元也会增加,以DRAM为例,较小的制造工艺带来的好处都被随机存取存储器更大的容量所抵消。
那既然存储核心速度没有增加,带宽却要大量提高,那要如何达成呢?其实就是通过预取(pre-fetch),也就是每次从存储器取出多笔数据,在I/O控制器发出请求之前预先准备好在预取队列,然后顺序读出,或是写入时先写进一个寄存区,然后再依次写入。在双倍数据传输率(double data rate,DDR)的时代开始这种预取的概念,第一代DDR预取量为2笔数据,而现今第四代DDR(DDR4)的预取量为8n。
同时DDR4引入了库群(bank group)的概念,库群是独立的实体,因此它们允许在库群内完成行循环,但该行循环不会影响另一个库群中发生的情况。这种库群的概念,不仅在DDR4有,在其他的先进存储器都有应用类似的概念。在引入了库群这个概念后,对同库群与不同库群的数据读取会有很大的差别,唯有通过适当的指令调度,才能达成最高的带宽。
如果将数据放在不同的库群中,操作需要延迟4个时钟周期(clock cycles),但在2133Mbps传输速率下,在相同的库群之下进行列指令操作需要间隔6个时钟周期,这样会有2个周期是未传输数据的,也就是浪费了33%的带宽,而当传输速率更高时,可能浪费高达50%的带宽。因此,DDR4或相似架构的动态存储器要达到能使用全带宽,需要在不同的库群之间将数据先排序好以进行交错存取。
因此,在连续性读取时存储器控制器如何有效连续输出数据特别是储存于相同库群中的数据,提升数据读取速度和/或节省数据读取时间将成为重要研发议题之一。
发明内容
本发明提供一种控制存储器数据读写装置与方法,用于达到数据块中数据可任意顺序连续读取的效果。
本发明提供一种控制数据读写装置,包括存储器控制器。存储器控制器控制对存储器的读写,其中存储器具有至少第一物理块与第二物理块。存储器控制器在接收数据块的写入请求时,依据写入请求,将对应数据块数据的相应数据重复写入第一物理块与第二物理块的相应位置。存储器控制器接收数据块的读取请求时,依据读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以连续输出储存于存储器的数据块数据。
本发明还提供一种控制数据读写方法,包括下列步骤。接收数据块的写入请求时,依据写入请求,将对应数据块数据的相应数据重复写入存储器的第一物理块与第二物理块的相应位置。接收数据块的读取请求时,依据读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以连续输出储存于存储器的数据块数据。
本发明所揭示的控制数据读写装置与方法,可适用于DDR4,而通过存储器控制器依据数据块的写入请求,将对应数据块数据的相应数据重复写入存储器的第一物理块与第二物理块的相应位置,以及依据数据块的读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以进行储存于存储器的数据块数据的相应数据的连续输出。如此一来,可以提升储存于存储器的物理块中数据读取速度和/或节省数据读取时间,并达到可以有效连续输出储存于存储器的物理块中数据的效果。
附图说明
为了对本发明的上述及其他方面有更佳的了解,下文特举实施范例,并配合附图详细加以说明。
图1为依据本发明一实施例的控制数据读写装置的示意图。
图2为依据本发明一实施例的第一物理块与第二物理块的对应关系示意图。
图3为依据本发明一实施例的存储器控制器的示意图。
图4为依据本发明另一实施例的存储器控制器的示意图。
图5A~图5C为依据本发明的一实施例的第一物理块与第二物理块的对应关系示意图。
图6为依据本发明一实施例的控制数据读写方法流程示意图。
图7为依据本发明一实施例的控制数据读写方法流程示意图。
具体实施方式
本说明书的技术用语参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。本揭示的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本领域技术人员可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。
在以下所列举的各实施例中,将以相同的标号代表相同或相似的元件或组件。
图1为依据本发明一实施例的控制数据读写装置的示意图。请参考图1,控制数据读写装置100至少包括存储器控制器110、寄存器120与运算单元阵列130。
存储器控制器110控制对存储器150的读写,其中,存储器150具有第一物理块151与第二物理块152。在本发明的实施例中,存储器150可以是动态随机存取存储器(dynamicrandom access memory,DRAM)。另外,所谓的物理块(physical blocks)指的是存储器中连续物理地址形成的空间集合,第一物理块151与第二物理块152例如可为存储器库区块(rank)、芯片(chip)、存储器模块(memory module)、储存库群组(bank group)或储存库(bank)等等,但本发明的实施例不限于此。
存储器控制器110接收数据块的写入请求,并依据写入请求,将对应数据块数据的相应数据重复写入对应存储器150的第一物理块151与第二物理块152的相应位置。而在一实施例中,当存储器控制器110将数据块数据的相应数据写入第一物理块151与第二物理块152时,第一物理块151与第二物理块152的相应位置会具有相同的相应数据,如图2所示。在此实施例中,写入第一物理块151与第二物理块152的相应数据可为数据块中的原始数据或经过映射转换后的转换数据。
举例来说,对应数据块的逻辑地址“0x0000”的第一物理块151与第二物理块152的相应物理地址“0x0000”会被写入并储存数据A,对应数据块的逻辑地址“0x0001”的第一物理块151与第二物理块152的相应物理地址“0x0001”会被写入并储存数据B,对应数据块的逻辑地址“0x0002”的第一物理块151与第二物理块152的相应物理地址“0x0002”会被写入并储存数据C。对应数据块的其余逻辑地址的第一物理块151与第二物理块152的其余相应物理地址写入并储存数据方式则类推。
存储器控制器110接收数据块的读取请求,并依据读取请求及读取条件,选择从相应位置所对应的第一物理块151或第二物理块152读取数据块数据的相应数据,以连续输出而得到储存于存储器150的数据块数据的相应数据,而若相应数据为转换数据则须进行反转换。在一实施例中,读取条件可例如为预设置的交替读取。举例来说,当存储器控制器110接收到读取请求时,存储器控制器110会依据读取请求及读取条件(以此实施例来说,即交替读取),先从第一物理块151的相应物理地址“0x0000”读取“数据A”。接着,存储器控制器110会从第二物理块152的相应物理地址“0x0001”读取“数据B”。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0002”读取“数据C”。其余则类推。也就是说,存储器控制器110会从相应位置所对应的第一物理块151或第二物理块152交替地读取数据块数据的相应数据。如此一来,存储器控制器110便可连续读取存储器以得到数据块数据的相应数据,并可提升储存于存储器150的物理块中数据读取速度和/或节省数据读取时间,并达到可连续输出储存于存储器150的物理块中数据的效果。
在另一实施例中,存储器控制器110可以从第一物理块151的相应物理地址“0x0000”读取“数据A”。接着,存储器控制器110从第二物理块152的相应物理地址“0x0001”读取“数据B”。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0002”读取“数据C”。接着,存储器控制器110会从第二物理块152的相应物理地址“0x0000”读取“数据A”。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0001”读取“数据B”。其余则类推。
在一实施例中,读取条件可例如为第一物理块151与第二物理块152各自的状态。也就是说,当存储器控制器110从相应位置所对应的第一物理块151或第二物理块152读取数据时,存储器控制器110会依据所取得的第一物理块151与第二物理块152各自的状态,判断第一物理块151的读取延迟是否低于第二物理块152的读取延迟。譬如以仲裁器藉由各物理块的状态,先计算出各相应物理地址的读取延迟并加以判断,再选择读取延迟较低的第一物理块151或第二物理块152读取数据块数据的相应数据。这里所谓的物理块的状态可为来自譬如状态管理模块中的储存库状态机(bank state machine)的某个状态(state)与计数值(counter)。也就是说,存储器控制器110会依据其内部的状态管理模块中的某个状态或是计数值,计算出第一物理块151与第二物理块152的读取延迟。
当存储器控制器110判断出第一物理块151的读取延迟未高于第二物理块152的读取延迟时,存储器控制器110会选择从相应位置的第一物理块151读取数据。另外,当存储器控制器110判断出第一物理块151的读取延迟高于第二物理块152的读取延迟时,存储器控制器110会选择从相应位置的第二物理块152读取数据。
举例来说,当存储器控制器110接收到读取请求时,存储器控制器110会依据读取请求及读取条件(以此实施例来说,即第一物理块151与第二物理块152各自的状态),先从第一物理块151的相应物理地址“0x0000”读取“数据A”,表示第一物理块151的读取延迟低于第二物理块152的读取延迟。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0001”读取“数据B”,表示第一物理块151的读取延迟低于第二物理块152的读取延迟。
接着,存储器控制器110会从第二物理块152的相应物理地址“0x0002”读取“数据C”,表示第一物理块151的读取延迟未低于第二物理块152的读取延迟。接着,存储器控制器110会从第二物理块152的相应物理地址“0x0003”读取“数据D”,表示第一物理块151的读取延迟未低于第二物理块152的读取延迟。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0004”读取“数据E”,表示第一物理块151的读取延迟低于第二物理块152的读取延迟。其余则类推。如此一来,存储器控制器110便可连续读取以输出数据块的数据,节省数据读取时间,并达到对储存于存储器的数据块数据的相应数据可连续输出的效果。
寄存器120寄存从存储器150读取的数据及写入存储器150的数据。运算单元阵列130对寄存器120所寄存的数据进行数学运算,其中运算单元阵列130包括多个运算单元131,以同时进行相同数学运算,例如乘加运算等。
在另一实施例中,存储器控制器110可以从第一物理块151的相应物理地址“0x0000”读取“数据A”。接着,存储器控制器110从第二物理块152的相应物理地址“0x0003”读取“数据D”。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0001”读取“数据B”。接着,存储器控制器110会从第一物理块151的相应物理地址“0x0004”读取“数据E”。接着,存储器控制器110会从第二物理块152的相应物理地址“0x0002”读取“数据C”。其余则类推。
此外,为了方便说明,图1的存储器150仅包括2个物理块,即第一物理块151与第二物理块152,但本发明的实施例不限于此。存储器150可以包括3个或3个以上的物理块,也即本发明亦可使3个或3个以上的物理块产生关联,且存储器控制器110对3个或3个以上的物理块的读写操作方式可参考如上实施例的说明,也可达到相同的效果,故在此不再赘述。
图3为依据本发明一实施例的存储器控制器的示意图。请参考图3,存储器控制器110包括物理块映射模块310与访问控制模块320。
物理块映射模块310包括物理块映射重复器(duplicator)311。物理块映射重复器311依据控制信号CS,将数据块的逻辑地址映射为第一物理地址与第二物理地址,其中第一物理地址为第一物理块151的相应位置,第二物理地址为第二物理块152的相应位置。举例来说,当控制信号CS例如为高逻辑电平时,物理块映射重复器311将数据块的逻辑地址映射为第一物理地址与第二物理地址。当控制信号CS例如为低逻辑电平时,物理块映射重复器311不会将数据块的逻辑地址映射为第一物理地址与第二物理地址,仅映射到单一物理地址。
访问控制模块320包括存取指令产生器321。存取指令产生器321依据控制信号CS、第一物理地址与第二物理地址,将数据块数据的数据相应写入第一物理块151与第二物理块152的相应位置,以及依据控制信号CS、读取条件、第一物理地址与第二物理地址,选择从相应位置所对应的第一物理块151或第二物理块152读取数据块数据的相应数据。
举例来说,当控制信号CS例如为高逻辑电平时,存取指令产生器321依据第一物理地址与第二物理地址,将数据块的数据写入第一物理块151与第二物理块152的相应位置,以及选择从相应位置所对应的第一物理块151或第二物理块152读取数据块数据的相应数据。当控制信号CS例如为低逻辑电平时,存取指令产生器321不动作,或仅存取其一,例如仅存取第一物理地址。
进一步来说,当数据读取条件为第一物理块与第二物理块各自的状态,存取指令产生器321可包括仲裁器322。仲裁器322可以选择从计算出的读取延迟较低的第一物理块151或第二物理块152读取数据块数据的相应数据。
图4为依据本发明另一实施例的存储器控制器的示意图。请参考图4,存储器控制器110还包括地址映射模块410、数据转换模块420与数据反转换模块430。
如前所述,存储器控制器110接收数据块的写入请求,并依据写入请求,将数据块数据的相应数据重复写入第一物理块151与第二物理块152的相应位置。而于另一实施例中,数据转换模块420可以将写入第二物理块152的相应数据进行转换,例如将对应于第一物理块151的数据块数据的相应数据转换成转换数据,如图5A所示。在此实施例中,写入第一物理块151的相应数据可为数据块的真实数据或经过转换的第一转换数据,而写入第二物理块152的相应数据则为对应于写入第一物理块151中相应数据经过转换的第二转换数据。再者,不同物理块映射转换的方式可以相同或不相同。
举例来说,数据转换模块420将对应于第一物理块151的相应物理地址“0x0000”的数据A转换成转换数据A’,且转换数据A’会被写入第二物理块152的相应位置(例如第二物理块152的相应物理地址“0x0000”)。数据转换模块420将对应于第一物理块151的相应物理地址“0x0001”的数据B转换成转换数据B’,且转换数据B’会被写入第二物理块152的相应位置(例如第二物理块152的相应物理地址“0x0001”)。数据转换模块420将对应于第一物理块151的相应物理地址“0x0002”的数据C转换成转换数据C’,且转换数据C’会被写入第二物理块152的相应位置(例如第二物理块152的相应物理地址“0x0002”)。其余则类推。
存储器控制器110依据读取请求及读取条件,选择从相应位置的第一物理块151读取数据块数据的相应数据,或数据反转换模块430将写入第二物理块152的相应位置的转换数据反转换成原始数据,以从相应位置的第二物理块152读取原始数据,而连续读取以得到储存于存储器150中数据块数据的相应数据。
举例来说,当存储器控制器110读取第二物理块152的相应物理地址“0x0000”的转换数据A’时,数据反转换模块430可以将第二物理块152的相应物理地址“0x0000”的转换数据A’反转换成数据A(即原始数据),以从第二物理块152的相应物理地址“0x0000”读取数据A(即原始数据)。当存储器控制器110读取第二物理块152的相应物理地址“0x0001”的转换数据B’时,数据反转换模块430可以将第二物理块152的相应物理地址“0x0001”的转换数据B’反转换成数据B(即原始数据),以从第二物理块152的相应物理地址“0x0001”读取数据B(即原始数据)。当存储器控制器110读取第二物理块152的相应物理地址“0x0002”的转换数据C’时,数据反转换模块430可以将第二物理块152的相应物理地址“0x0002”的转换数据C’反转换成数据C(即原始数据),以从第二物理块152的相应物理地址“0x0002”读取数据C(即原始数据)。其余则类推。
如前所述,存储器控制器110接收数据块的写入请求,并依据写入请求,将数据块数据的相应数据重复写入第一物理块151与第二物理块152的相应位置。于再一实施例中,地址映射模块410将对应于第一物理块151的相应物理地址映射成映射地址,以将数据块数据的相应数据写入对应于映射地址的第二物理块152的相应位置,如图5B所示。
举例来说,地址映射模块410将第一物理块151的相应物理地址“0x0000”映射成映射地址,例如对应于第二物理块152的相应物理地址“0x0001”。接着,将数据A会被写入第二物理块152的相应物理地址“0x0001”。地址映射模块410将第一物理块151的相应物理地址“0x0001”映射成映射地址,例如对应于第二物理块152的相应物理地址“0x0002”。数据B会被写入对应此映射地址的第二物理块152的相应位置(即第二物理块152的相应物理地址“0x0002”)。地址映射模块410将第一物理块151的相应物理地址“0x0002”映射成映射地址,例如对应于第二物理块152的相应物理地址“0x0003”。接着,数据C会被写入对应此映射地址的第二物理块152的相应位置(即第二物理块152的相应物理地址“0x0003”)。其余则类推。
存储器控制器110依据读取请求及读取条件,选择从相应位置的第一物理块151读取数据块数据的相应数据,或从对应映射地址的相应位置的第二物理块152读取数据块数据的相应数据,而连续读取以得到储存于存储器150中数据块数据的相应数据。
举例来说,当存储器控制器110读取第二物理块152的相应物理地址“0x0001”的数据A时,地址映射模块410可以将第一物理块151的相应物理地址“0x0000”映射成映射地址(例如对应于第二物理块152的相应物理地址“0x0001”),以从对应映射地址“0x0001”的第二物理块152的相应物理地址“0x0001”读取数据A。当存储器控制器110读取第二物理块152的相应物理地址“0x0002”的数据B时,地址映射模块410可以将第一物理块151的相应物理地址“0x0001”映射成映射地址(例如对应于第二物理块152的相应物理地址“0x0002”),以从对应映射地址“0x0002”的第二物理块152的相应物理地址“0x0002”读取数据B。
当存储器控制器110读取第二物理块152的相应物理地址“0x0003”的数据C时,地址映射模块410可以将第一物理块151的相应物理地址“0x0002”映射成映射地址(例如对应于第二物理块152的相应物理地址“0x0003”),以从对应映射地址“0x0003”的第二物理块152的相应物理地址“0x0003”读取数据C。其余则类推。
如前所述,存储器控制器110接收数据块的写入请求,并依据写入请求,将数据块数据的相应数据重复写入第一物理块151与第二物理块152的相应位置。在另一实施例中,地址映射模块410可以将对应于第一物理块151的相应物理地址映射成映射地址,且数据转换模块420可以将写入第二物理块152的相应数据进行转换,例如将第一物理块151的数据块数据的相应数据转换成转换数据,如图5C所示。
举例来说,数据转换模块420将第一物理块151的相应物理地址“0x0000”的数据A转换成转换数据A’,以及地址映射模块410将第一物理块151的相应物理地址“0x0000”映射成映射地址,例如对应于第二物理块152的相应物理地址“0x0001”。接着,转换数据A’会被写入对应此映射地址的第二物理块152的相应位置(即第二物理块152的相应物理地址“0x0001”)。
数据转换模块420将第一物理块151的相应物理地址“0x0001”的数据B转换成转换数据B’,以及地址映射模块410将第一物理块151的相应物理地址“0x0001”映射成映射地址,例如对应于第二物理块152的相应物理地址“0x0002”。接着,转换数据B’会被写入对应此映射地址的第二物理块152的相应位置(即第二物理块152的相应物理地址“0x0002”)。数据转换模块420将第一物理块151的相应物理地址“0x0002”的数据C转换成转换数据C’,以及地址映射模块410将第一物理块151的相应物理地址“0002”映射成映射地址,例如对应于第二物理块152的相应物理地址“0003”。接着,转换数据C’会被写入对应此映射地址的第二物理块152的相应位置(即第二物理块152的相应物理地址“0x0003”)。其余则类推。
存储器控制器110可以依据读取请求及读取条件,选择从相应位置的第一物理块151读取数据块数据的相应数据,或从对应映射地址的相应位置的第二物理块152读取相应数据的转换数据,并经数据反转换模块430将写入对应映射地址的第二物理块152的相应位置的转换数据反转换成原始数据,而连续读取以得到储存于存储器150中数据块数据的相应数据。
举例来说,当存储器控制器110读取第二物理块152的数据A时,地址映射模块410可以将第一物理块151的相应物理地址“0x0000”映射成映射地址(例如对应第二物理块152的相应物理地址“0x0001”)。接着,数据反转换模块430可以将对应第二物理块152的相应物理地址“0x0001”的转换数据A’反转换成数据A(即原始数据),以从对应映射地址“0x0001”的第二物理块152的相应物理地址“0x0001”读取数据A(即原始数据)。
当存储器控制器110读取第二物理块152的数据B时,地址映射模块410可以将第一物理块151的相应物理地址“0x0001”映射成映射地址(例如将对应第二物理块152的相应物理地址“0x0002”)。接着,数据反转换模块430可以将对应第二物理块152的相应物理地址“0x0002”的转换数据B’反转换成数据B(即原始数据),以从对应映射地址“0x0002”的第二物理块152的相应物理地址“0x0002”读取数据B(即原始数据)。当存储器控制器110读取第二物理块152的数据C时,地址映射模块410可以将第一物理块151的相应物理地址“0x0002”映射成映射地址(例如对应第二物理块152的相应物理地址“0x0003”)。接着,数据反转换模块430可以将对应第二物理块152的相应物理地址“0x0003”的转换数据C’反转换成数据C(即原始数据),以从对应映射地址“0x0003”的第二物理块152的相应物理地址“0x0003”读取数据C(即原始数据)。其余则类推。
在本发明的实施例中,数据转换模块420例如使用不同的算法将数据块数据的相应数据转换成转换数据。另外,数据反转换模块430例如使用不同的算法将转换数据反转换成原始数据。
图6为依据本发明一实施例的控制数据读写方法的流程示意图。在步骤S602中,接收数据块的写入请求。在步骤S604中,依据写入请求,将对应数据块的数据块数据的相应数据重复写入对应存储器的第一物理块与第二物理块的相应位置。在步骤S606中,接收数据块的读取请求。在步骤S608中,依据读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以连续输出储存于存储器的数据块数据的相应数据。在本实施例中,第一物理块、第二物理块为存储器库区块(rank)、芯片、存储器模块、储存库群组或储存库。另外,读取条件可包括预设置交替读取第一物理块与第二物理块或第一物理块与第二物理块各自的状态。
图7为依据本发明一实施例的控制数据读写方法的流程示意图。在步骤S702中,接收数据块的写入请求。在步骤S704中,依据控制信号,将数据块的逻辑地址映射为第一物理地址与第二物理地址,其中第一物理地址为第一物理块的相应位置,第二物理地址为第二物理块的相应位置。
在步骤S706,写入数据块数据的相应数据时,依据控制信号、第一物理地址与第二物理地址,将数据块数据的相应数据重复写入第一物理块与第二物理块的相应位置。在步骤S708中,接收数据块的读取请求。在步骤S710中,读取数据块数据的相应数据时,依据控制信号、读取条件、第一物理地址与第二物理地址,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据。在本实施例中,第一物理块与第二物理块为存储器库区块(rank)、芯片、存储器模块、储存库群组或储存库。另外,读取条件包括预设置交替读取第一物理块与第二物理块或第一物理块与第二物理块各自的状态。此外,当读取条件为第一物理块与第二物理块各自的状态时,在步骤S710可进一步包括选择从计算出的读取延迟较低的第一物理块或第二物理块读取数据块数据的相应数据。
进一步来说,在步骤S706的写入数据块数据的相应数据时以及在步骤S710的读取数据块数据的相应数据时,第一物理地址和/或第二物理地址可为经地址映射模块映射后的映射地址。
此外,第一物理地址和/或第二物理地址所写入存储器的相应数据可为经数据转换模块转换的转换数据。第一物理地址和/或第二物理地址读取存储器时所输出的数据块数据的相应数据可为经数据反转换模块转换的原始数据。再者,数据转换模块例如使用相同或不同的算法将数据块数据的相应数据转换成转换数据,且数据反转换模块例如使用相同或不同的算法将转换数据反转换成原始数据。
综上所述,本发明所揭示的控制数据读写装置与方法,通过存储器控制器依据数据块的写入请求,将对应该数据块的数据块数据的相应数据重复写入第一物理块与第二物理块的相应位置,以及依据数据块的读取请求及读取条件,选择从相应位置所对应的第一物理块或第二物理块读取数据块数据的相应数据,以进行储存于存储器的数据块数据的相应数据的连续读取。另外,读取条件可包括以下中的一个:交替读取第一物理块与第二物理块或第一物理块与第二物理块各自的状态。如此一来,可以提升储存于存储器的物理块中数据读取速度和/或节省数据读取时间,并达到可以有效连续输出储存于存储器的物理块中数据的效果。
本发明虽以实施例揭示如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视后附的权利要求所界定者为准。
符号说明
100:控制数据读写装置
110:存储器控制器
120:寄存器
130:运算单元阵列
131:运算单元
150:存储器
151:第一物理块
152:第二物理块
310:物理块映射模块
311:物理块映射重复器
320:访问控制模块
321:存取指令产生器
322:仲裁器
410:地址映射模块
420:数据转换模块
430:数据反转换模块
CS:控制信号
S602~S608、S702~S710:步骤
Claims (17)
1.一种控制数据读写装置,包括:
存储器控制器,控制对存储器的读写,其中该存储器具有至少第一物理块与第二物理块,该存储器控制器接收数据块的写入请求时,依据该写入请求,将对应该数据块的数据块数据的相应数据重复写入对应该第一物理块与该第二物理块的相应位置;以及
该存储器控制器接收该数据块的读取请求时,依据该读取请求及读取条件,选择从该相应位置所对应的该第一物理块或该第二物理块读取该数据块数据的相应数据,以连续输出储存于该存储器的该数据块数据的相应数据。
2.如权利要求1所述的控制数据读写装置,其中该第一物理块、该第二物理块为存储器库区块、芯片、存储器模块、储存库群组或储存库中的一个。
3.如权利要求1所述的控制数据读写装置,该存储器控制器还包括:
物理块映射模块,包括物理块映射重复器,该物理块映射重复器依据控制信号,将该数据块的逻辑地址映射为第一物理地址与第二物理地址,其中该第一物理地址为该第一物理块的相应位置,该第二物理地址为该第二物理块的相应位置;以及
访问控制模块,包括存取指令产生器,该存取指令产生器依据该控制信号、该第一物理地址与该第二物理地址,将该数据块数据的相应数据重复写入该第一物理块与该第二物理块的该相应位置,以及依据该控制信号、该读取条件、该第一物理地址与该第二物理地址,选择从该相应位置所对应的该第一物理块或该第二物理块读取该数据块数据的相应数据。
4.如权利要求3所述的控制数据读写装置,其中写入该数据块数据的相应数据时以及读取该数据块数据的相应数据时,该第一物理地址和/或该第二物理地址为经地址映射模块映射的映射地址。
5.如权利要求3所述的控制数据读写装置,其中该第一物理地址和/或该第二物理地址所写入的该数据块数据的相应数据为经数据转换模块转换的转换数据,其中自该第一物理地址和/或该第二物理地址所读取的该数据块数据的相应数据为经数据反转换模块转换的原始数据。
6.如权利要求5所述的控制数据读写装置,其中该数据转换模块使用不同的算法将该数据块数据的相应数据转换成不同的该转换数据,且其中该数据反转换模块使用不同的算法将该转换数据反转换成该原始数据。
7.如权利要求3所述的控制数据读写装置,其中该数据读取条件为该第一物理块与该第二物理块各自的状态,且该存取指令产生器还包括仲裁器,选择从计算出的读取延迟较低的该第一物理块或该第二物理块读取该数据块数据的相应数据。
8.如权利要求1所述的控制数据读写装置,还包括:
寄存器,寄存从该存储器读取及写入该存储器的数据;以及
运算单元阵列,对该寄存器所寄存的数据进行数学运算,其中该运算单元阵列包括多个运算单元,以进行数学运算。
9.如权利要求1所述的控制数据读写装置,其中该读取条件包括交替读取该第一物理块与该第二物理块或该第一物理块与该第二物理块各自的状态。
10.一种控制数据读写方法,包括:
接收数据块的写入请求时,依据该写入请求,将对应该数据块的数据块数据的相应数据重复写入对应存储器的第一物理块与第二物理块的相应位置;以及
接收该数据块的读取请求时,依据该读取请求及读取条件,选择从该相应位置所对应的该第一物理块或该第二物理块读取该数据块数据的相应数据,以连续输出储存于该存储器的该数据块数据的相应数据。
11.如权利要求10所述的控制数据读写方法,其中该第一物理块、该第二物理块为存储器库区块、芯片、存储器模块、储存库群组或储存库中的一个。
12.如权利要求10所述的控制数据读写方法,还包括:
依据控制信号,将该数据块的逻辑地址映射为第一物理地址与第二物理地址,其中该第一物理地址为该第一物理块的相应位置,该第二物理地址为该第二物理块的相应位置;
写入该数据块数据的相应数据时,依据该控制信号、该第一物理地址与该第二物理地址,将该数据块数据的相应数据重复写入该第一物理块与该第二物理块的该相应位置;以及
读取该数据块数据的相应数据时,依据该控制信号、该读取条件、该第一物理地址与该第二物理地址,选择从该相应位置所对应的该第一物理块或该第二物理块读取该数据块数据的相应数据。
13.如权利要求12所述的控制数据读写方法,其中写入该数据块数据的相应数据时以及读取该数据块数据的相应数据时,该第一物理地址和/或该第二物理地址为经地址映射模块转换的映射地址。
14.如权利要求12所述的控制数据读写方法,其中该第一物理地址和/或该第二物理地址所写入的该相应数据为经数据转换模块转换的转换数据,其中自该第一物理地址和/或该第二物理地址所读取的该数据块数据的相应数据为经数据反转换模块转换的原始数据。
15.如权利要求14所述的控制数据读写方法,其中该数据转换模块使用不同的算法将该数据块数据的相应数据转换成该转换数据,且其中该数据反转换模块使用不同的算法将该转换数据反转换成该原始数据。
16.如权利要求15所述的控制数据读写方法,其中该读取条件为该第一物理块与该第二物理块各自的状态,并选择从计算出的读取延迟较低的该第一物理块或该第二物理块读取该数据块数据的相应数据。
17.如权利要求10所述的控制数据读写方法,其中该读取条件包括交替读取该第一物理块与该第二物理块或该第一物理块与该第二物理块各自的状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108142452A TWI721660B (zh) | 2019-11-22 | 2019-11-22 | 控制資料讀寫裝置與方法 |
TW108142452 | 2019-11-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835513A true CN112835513A (zh) | 2021-05-25 |
Family
ID=75923060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010142116.4A Pending CN112835513A (zh) | 2019-11-22 | 2020-03-04 | 控制数据读写装置与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210157495A1 (zh) |
CN (1) | CN112835513A (zh) |
TW (1) | TWI721660B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6914746B1 (en) * | 2002-12-05 | 2005-07-05 | Dallas W. Meyer | High sustained data rate storage devices having microactuator |
US20090172323A1 (en) * | 2007-12-28 | 2009-07-02 | Swanson Robert C | Methods and appratus for demand-based memory mirroring |
CN102473150A (zh) * | 2009-06-26 | 2012-05-23 | 美光科技公司 | 用于在存储器装置中提供可配置等待时间及/或密度的系统及方法 |
CN102567244A (zh) * | 2011-12-13 | 2012-07-11 | 清华大学 | 闪存和磁盘转换存取方法 |
CN104778018A (zh) * | 2015-04-23 | 2015-07-15 | 南京道熵信息技术有限公司 | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 |
US20160147481A1 (en) * | 2013-05-13 | 2016-05-26 | Rambus Inc. | Buffer circuit with data bit inversion |
US20180081563A1 (en) * | 2016-09-22 | 2018-03-22 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
CN108959112A (zh) * | 2017-05-08 | 2018-12-07 | 爱思开海力士有限公司 | 存储系统及使用其的损耗均衡方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2977906A1 (en) * | 2004-04-28 | 2016-01-27 | Panasonic Corporation | Nonvolatile storage device and data write method |
US7685393B2 (en) * | 2006-06-30 | 2010-03-23 | Mosaid Technologies Incorporated | Synchronous memory read data capture |
TWI413931B (zh) * | 2009-01-15 | 2013-11-01 | Phison Electronics Corp | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
KR101739556B1 (ko) * | 2010-11-15 | 2017-05-24 | 삼성전자주식회사 | 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법 |
TWI463495B (zh) * | 2010-12-10 | 2014-12-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與儲存裝置 |
TWI602196B (zh) * | 2014-04-02 | 2017-10-11 | 補丁科技股份有限公司 | 記憶體元件的控制方法、記憶體元件以及記憶體系統 |
TWI610219B (zh) * | 2016-08-09 | 2018-01-01 | 捷鼎國際股份有限公司 | 資料儲存系統 |
TWI643067B (zh) * | 2017-04-14 | 2018-12-01 | 國立臺灣科技大學 | 三維非及閘快閃記憶體及其記憶體管理方法 |
-
2019
- 2019-11-22 TW TW108142452A patent/TWI721660B/zh active
- 2019-12-26 US US16/727,877 patent/US20210157495A1/en not_active Abandoned
-
2020
- 2020-03-04 CN CN202010142116.4A patent/CN112835513A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6914746B1 (en) * | 2002-12-05 | 2005-07-05 | Dallas W. Meyer | High sustained data rate storage devices having microactuator |
US20090172323A1 (en) * | 2007-12-28 | 2009-07-02 | Swanson Robert C | Methods and appratus for demand-based memory mirroring |
CN102473150A (zh) * | 2009-06-26 | 2012-05-23 | 美光科技公司 | 用于在存储器装置中提供可配置等待时间及/或密度的系统及方法 |
CN102567244A (zh) * | 2011-12-13 | 2012-07-11 | 清华大学 | 闪存和磁盘转换存取方法 |
US20160147481A1 (en) * | 2013-05-13 | 2016-05-26 | Rambus Inc. | Buffer circuit with data bit inversion |
CN104778018A (zh) * | 2015-04-23 | 2015-07-15 | 南京道熵信息技术有限公司 | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 |
US20180081563A1 (en) * | 2016-09-22 | 2018-03-22 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
CN108959112A (zh) * | 2017-05-08 | 2018-12-07 | 爱思开海力士有限公司 | 存储系统及使用其的损耗均衡方法 |
TW201907288A (zh) * | 2017-05-08 | 2019-02-16 | 韓商愛思開海力士有限公司 | 記憶體系統及使用其的耗損均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI721660B (zh) | 2021-03-11 |
TW202121178A (zh) | 2021-06-01 |
US20210157495A1 (en) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
JP5231642B2 (ja) | メモリモジュール内の独立制御式仮想メモリ装置 | |
US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
US20200257633A1 (en) | Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
CN109891397A (zh) | 用于固态装置中的操作系统高速缓冲存储器的设备及方法 | |
US20090240866A1 (en) | Multi-port memory and computer system provided with the same | |
JP7382678B2 (ja) | コンピューティングメモリシステム | |
CN111158633A (zh) | 一种基于fpga的ddr3多通道读写控制器及控制方法 | |
CN111916120B (zh) | 带宽提升的堆叠存储器 | |
US9275692B2 (en) | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input | |
KR20180006645A (ko) | 메모리 버퍼를 포함하는 메모리 시스템 | |
JP2014154119A (ja) | メモリ制御装置及び半導体記憶装置 | |
US6091667A (en) | Semiconductor memory device and a data reading method and a data writing method therefor | |
US6412039B1 (en) | Cross-bank, cross-page data accessing and controlling system | |
KR20100127317A (ko) | 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로 | |
US11861369B2 (en) | Processing-in-memory (PIM) device | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
CN111459552A (zh) | 一种并行化存内计算的方法及装置 | |
US20220027131A1 (en) | Processing-in-memory (pim) devices | |
CN112835513A (zh) | 控制数据读写装置与方法 | |
JPH10134576A (ja) | 半導体メモリ装置 | |
JPH1139857A (ja) | メモリシステム及び情報処理システム | |
US7586779B2 (en) | Controller apparatus for utilizing downgrade memory and method for operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |