CN106372004B - 用于ssd控制器的可编程协议独立bar存储器 - Google Patents

用于ssd控制器的可编程协议独立bar存储器 Download PDF

Info

Publication number
CN106372004B
CN106372004B CN201610592549.3A CN201610592549A CN106372004B CN 106372004 B CN106372004 B CN 106372004B CN 201610592549 A CN201610592549 A CN 201610592549A CN 106372004 B CN106372004 B CN 106372004B
Authority
CN
China
Prior art keywords
write
read
memory
access
attribute
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.)
Active
Application number
CN201610592549.3A
Other languages
English (en)
Other versions
CN106372004A (zh
Inventor
芮险峰
嘉温·张
瑞恩·余
阿楠塔纳拉亚南·纳卡拉占
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN106372004A publication Critical patent/CN106372004A/zh
Application granted granted Critical
Publication of CN106372004B publication Critical patent/CN106372004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种存储器系统,其可以包括:可编程位控制单元,其适于将读取‑写入属性定义至基址寄存器(BAR)存储器中的位置;读取‑写入开关,其适于接收存储器存取请求,以及识别存储器存取请求是读取存取还是写入存取;以及存取控制单元,其适于当存储器存取请求被识别为写入存取时接收来自读取‑写入开关的存储器存取请求,确定与写入存取相关的读取‑写入属性,以及将写入存取处理至具有与写入请求相关的确定的读取‑写入属性相同的定义的读取‑写入属性的BAR存储器中的位置。

Description

用于SSD控制器的可编程协议独立BAR存储器
相关申请的交叉引用
本申请要求于2015年7月24日提交的申请号为62/196,851的美国临时申请的权益,其全部内容通过引用并入本文。
技术领域
本发明的示例性实施例涉及一种存储器系统及其操作方法。
背景技术
计算机环境范式已经转变为可随时随地使用的普适计算系统。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有活动部件,所以它们提供了优良的稳定性、耐久性、高信息存取速度以及低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
为了使SSD控制器与多种主机接口和更新的主机协议规范兼容,使用了基址寄存器(BAR)。存在对BAR存储器组件的改进设计的需求。
发明内容
本发明的方面包括存储器系统。存储器系统可以包括:可编程位控制单元,其适于将读取-写入属性定义至基址寄存器(BAR)存储器中的位置;读取-写入开关,其适于接收存储器存取请求,以及识别存储器存取请求是读取存取还是写入存取;以及存取控制单元,其适于当存储器存取请求被识别为写入存取时接收来自读取-写入开关的存储器存取请求,确定与写入存取相关的读取-写入属性,以及将写入存取处理至具有与写入请求相关的确定的读取-写入属性相同的定义的读取-写入属性的BAR存储器中的位置。
本发明的进一步的方面包括方法。方法可以包括利用可编程位控制将读取-写入属性定义至基址寄存器(BAR)存储器中的位置,利用读取-写入开关接收存储器存取请求,利用读取-写入开关识别存储器存取请求是读取存取还是写入存取,当存储器存取请求被识别为写入请求时利用存取控制单元接收来自读取-写入开关的存储器存取请求,利用存取控制单元确定与写入存取相关的读取-写入属性,以及利用存取控制单元将写入存取处理至具有与写入请求相关的确定的读取-写入属性相同的定义的读取-写入属性的BAR存储器中的位置。
本发明的附加方面包括存储器装置。存储器装置可以包括:可编程位控制单元,其配置为将读取-写入属性定义至基址寄存器(BAR)存储器中的位置;读取-写入开关,其配置为接收存储器存取请求,以及识别存储器存取请求是读取存取还是写入存取;以及存取控制单元,其配置为当存储器存取请求被识别为写入存取时接收来自读取-写入开关的存储器存取请求,确定与写入存取相关的读取-写入属性,以及将写入存取处理至具有与写入请求相关的确定的读取-写入属性相同的定义的读取-写入属性的BAR存储器中的位置。
附图说明
图1是示意性示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是根据本发明的方面的用于编程和管理BAR存储器的系统的图。
图5是根据本发明的方面的用于编程和管理BAR存储器的方法中的步骤的流程图。
图6是根据本发明的方面的用于编程和管理BAR存储器的步骤的算法流程图。
具体实施方式
以下将参照附图对各个实施例进行更详细的描述。然而,本发明可以不同的形式呈现并且不应解释为限于本文阐述的实施例。相反,这些实施例被提供使得本公开将是彻底且完整的,并将向本领域技术人员充分传达本发明的范围。在整个公开中,遍及本发明的各个附图和实施例中相似的参考标记指代相似的部件。
本发明可以大量方式来实现,包括作为过程、设备、系统、物体的组合、在计算机可读存储介质上体现的计算机编程产品和/或处理器,例如适于执行存储在联接至该处理器的存储器上和/或由联接至该处理器的存储器提供的指令的处理器。在本说明书中,这些实施或本发明可以采用的任何其它形式可以称为技术。通常地,公开的过程的步骤的顺序在本发明的范围内可以改变。除非另有声明,否则诸如描述为适于执行任务的诸如处理器或存储器的组件可以实施为暂时适于在给定时间执行任务的一般组件或被制造为执行任务的特殊组件。如本文所使用的,术语“处理器”指代一个或多个装置、电路和/或适于处理数据的处理核,例如计算机编程指令。
在下文,与示出本发明的原理的附图一起提供了本发明的一个或多个实施例的详细描述。结合这些实施例来描述本发明,但是本发明并不限于任何实施例。本发明的范围仅由权利要求限定并且本发明涵盖大量替换、修改和等同。为了提供对本发明的透彻的理解,以下描述中阐述了大量具体细节。为了示例的目的提供这些细节并且本发明可以根据权利要求来实施而无需这些具体细节中一些或全部。为了清楚的目的,没有具体描述与本发明涉及的技术领域中已知的技术材料,以便本发明不会不必要地模糊。
图1是示意性示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除、编程和读取操作。半导体存储器装置200可以通过输入/输出线来接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR并通过控制线接收控制信号CTRL。控制信号可以包括命令锁存启动(CLE)信号、地址锁存启动(ALE)信号、芯片启动(CE)信号、写入启动(WE)信号、读取启动(RE)信号等。
存储器控制器100和半导体存储器装置200可以集成在单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(SSD)的单个半导体装置中。固态驱动器可以包括用于将数据存储于其中的存储装置。当在SSD中使用半导体存储器系统10时,联接至存储器系统10的主机(未示出)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以集成在单个半导体装置中以配置诸如个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型尺寸版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和通用闪速存储(UFS)的存储卡。
对于另一个示例,存储器系统10可以被提供为包括诸如以下的电子装置的各种元件中的一种:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和传输信息的装置、家庭网络的电子装置中的一种、计算机网络的电子装置中的一种、远程信息处理网络的电子装置中的一种、无线射频识别(RFID)装置或计算系统的元件装置。
图2是示出根据本发明的实施例的存储器系统的细节框图。例如,图2的存储器系统可以描述图1中示出的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求来操作,并且特别地存储待由主机装置存取的数据。
主机装置可以利用各种电子装置的任何一种来实现。在一些实施例中,主机装置可以包括诸如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器和数字视频播放器的电子装置。在一些实施例中,主机装置可以包括诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和便携式游戏机的便携式电子装置。
存储器装置200可以存储待由主机装置存取的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置或者诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和电阻式RAM(RRAM)的非易失性存储器装置来实现。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供至主机装置,并且将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储单元110、控制单元120、错误校正码(ECC)单元130、主机接口140和存储器接口150。
存储单元110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可以存储由控制器100和存储器装置200使用的用于诸如读取、写入、编程和擦除操作的数据。
存储单元110可以利用易失性存储器来实现。存储单元110可以利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。如上所述,存储单元110可以存储主机装置用于存储器装置200中的用于读取和写入操作的数据。为了存储数据,存储单元110可以包括编程存储器、数据存储器、写入缓冲区、读取缓冲区、映射缓冲区等。
控制单元120可以响应于来自主机装置的写入请求或读取请求控制存储器系统10的一般操作以及用于存储器装置200的写入操作或读取操作。控制单元120可以驱动称为闪存转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、耗损均衡、垃圾收集和坏块处理的操作。L2P映射被称为逻辑区块地址(LBA)。
ECC单元130可以在读取操作期间检测并且校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正的错误位的阈值时,ECC单元130可以不校正错误位,并且可以输出指示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC单元130可以基于诸如低密度奇偶校验(LDPC)码、博斯-乔德里-霍昆格姆(BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制来执行错误校正操作。ECC单元130可以包括用于错误校正操作的所有电路、系统或装置。
主机接口140可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和集成驱动电子设备(IDE)的各种接口协议中的一种或多种来与主机装置通信。
存储器接口150可以提供控制器100和存储器装置200之间的接口以允许控制器100响应于来自主机装置的请求控制存储器装置200。存储器接口150可以在CPU 120的控制下产生用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下产生用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲区250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括多个存储块211并且可以存储数据于其中。电压生成电路230、行解码器240、页面缓冲区250、列解码器260和输入/输出电路270形成用于存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程、读取或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成具有各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的具有各种电平的操作电压。
行解码器240可以连接至电压生成电路230和多个存储块211。行解码器240可以响应于由控制电路220生成的行地址RADD在多个存储块211中选择至少一个存储块,并且将由电压生成电路230提供的操作电压传输至在多个存储块211中选择的存储块。
页面缓冲区250通过位线BL(未示出)连接至存储器单元阵列210。页面缓冲区250可以响应于由控制电路220生成的页面缓冲控制信号利用正电压为位线BL预先充电、在编程操作中传输数据至选择的存储块/在读取操作中从选择的存储块接收数据或者临时存储传输的数据。
列解码器260可以传输数据至页面缓冲区250/从页面缓冲区250接收数据或者传输数据至输入/输出电路270/从输入/输出电路270接收数据。
输入/输出电路270可以将传输自外部装置(例如,存储器控制器100)的命令和地址传输至控制电路220,将来自外部装置的数据传输至列解码器260或者将来自列解码器260的数据通过输入/输出电路270输出至外部装置。
控制电路220可以响应于命令和地址控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中示出的存储器单元阵列210的存储块211。
参照图3,存储块211可以包括分别联接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可以串联地联接在选择晶体管DST和SST之间。存储器单元MC0至MCn-1中的每个可以由每个单元中存储多位数据信息的多层单元(MLC)形成。单元串221可以分别电联接至对应的位线BL0至BLm-1。
在一些实施例中,存储块211可以包括NAND类型的闪速存储器单元。然而,存储块211不限于NAND闪速存储器,而是可以包括NOR类型的闪速存储器、其中结合两种或更多种类型的存储器单元的混合闪速存储器和其中控制器嵌入存储器芯片内的1-NAND闪速存储器。
作为高通量和性能评估标准,高速PCI(PCIe)作为存储接口为NAND闪速存储器提供优化的解决方法。在PCIe上的主机接口被引入SSD控制器设计中以最大化性能,如NVMe、SOP、AHCI等。这些接口,特别是NVMe,被非常快速地发展和改进。为了使一个SSD控制器与多种主机接口和即将来临的主机协议规范更新兼容,基址寄存器(BAR)是关键元件。本文公开的是实现协议独立特征和对主机接口的灵活性的可编程BAR存储器。
参照图4,示出用于编程和管理BAR存储器的系统40。系统可以包括PCIe 400、嵌入式处理器402(例如,控制器)、可编程路由开关404、可编程位控制单元406、读取-写入(RW)开关408、存取控制单元410、BAR存储器412和可编程位控制单元存储器414。
图5是用于编程和管理BAR存储器的方法中的步骤的流程图50。在步骤500中,读取-写入属性被定义至BAR存储器412中的位置/地址。读取-写入属性可以由可编程位控制单元406来定义。可编程位控制单元406可以将读取-写入属性定义至BAR存储器412中的所有位置。可以利用多种解决方法(例如,位、字节和双字(DW)等)来使用多个实施方式。读取-写入属性可以基于写入操作行为。例如,读取-写入属性可以包括读取-写入(RW)、只读(RO)、写1清除(RW1C)和写1设置(RW1S)等。附加的读取-写入属性可以从本文的描述中被本领域技术人员理解。
在步骤502中,接收存储器存取请求并且识别存储器存取请求是读取存取还是写入存取。存取请求可以由RW开关408从PCIe 400和/或经由可编程路由开关404接收。RW开关408可以被配置以区分读取存取和写入存取。因此,RW开关408可以配置为识别接收的存取请求是读取存取(例如,只需要从BAR存储器412读取的存取)还是写入存取(例如,需要写入至BAR存储器412的某种形式的存取)。
在示例中,RW开关408接收来自可编程路由开关404的存取请求。可编程路由开关404可以配置为将通信量从校正主机地址路由至BAR存储器412。BAR0、BAR1...BAR5(例如)可以在PCIe 400控制器寄存器中定义,并且可编程路由开关404可以配置为具有可编程规则以定义哪个BAR是合法的。只有到有效BAR的通信量应该被路由到BAR存储器。在实施例中,同时激活多个BAR,并且控制器同时支持多个主机协议。可编程路由开关404还可以配置为限制BAR基址和大小,并且禁止在BAR范围之外的任何存取。可编程路由开关404中的参数可以例如包括在具有6个BAR的系统中:
每个BAR的有效位:VBAR0、VBAR1......VBAR5;
有效BAR开始地址:VADDR0、VADDR1......VADDR5;
有效BAR大小:VSIZE0、VSIZE1......VSIZE5。
如本领域技术人员所理解的那样,可以使用添加的或可替换的参数以实现本文公开的发明。
在步骤504中,当存储器存取请求被识别为读取存取时,存储器存取请求直接路由至BAR存储器412。例如,当RW开关408将存取请求识别为读取存取时,RW开关408可以配置为将存取请求直接路由至BAR存储器412。
在步骤506中,当存储器存取请求被识别为写入请求时,确定与存储器存取请求相关的读取-写入属性。例如,当RW开关408将存取请求识别为写入存取时,其可以将存取请求路由至存取控制单元410。存取控制单元410可以配置为接收来自RW开关408的存取请求,解码来自请求的主机地址,并且确定与写入请求(例如,RW、RO、RW1C、RW1S等)相关的读取-写入属性。存取控制单元410还可以配置为计算对BAR存储器412的写入存取请求的目标地址。写入存取的读取-写入属性可以通过读取来自可编程位控制单元406的读取-写入属性确定。
在步骤508中,写入存取被处理至具有和与写入存取(存储器存取请求)相关的读取-写入属性相同的定义的读取-写入属性的BAR存储器412中的位置。例如,存取控制单元410可以配置为处理写入存取。
在一个示例中,如果写入存取的读取-写入属性是RO,则写入存取的处理可以被绕开(例如,其将不会被写入至定义为RO的BAR存储器412中的位置)。因此,如果写入存取的读取-写入属性是RW,则其将会被处理至定义为RW的BAR存储器412的位置,如果写入存取的读取-写入属性是RW1C,则其将会被处理至定义为RW1C的BAR存储器412的位置等。
图6是示出在用于管理和编程BAR存储器的系统中步骤和确定的顺序的示例的算法流程图60。在流程图60中的步骤的顺序和数量是示例性的而非排它性的。本领域的技术人员将理解不同数量和顺序的步骤能实现本文公开的发明。
在600中,处理开始。在602中,PCIe存取(例如,存储器存取请求)从PCIe 400接收。在604中,确定存取请求是否在有效BAR范围内(例如,利用可编程路由开关404)。如果其不在有效BAR范围内,则系统在606处返回错误并且处理在630处结束。
如果请求在有效BAR范围中,则在608处,识别存取请求是读取存取还是写入存取(例如,通过RW开关408)。如果存取请求被识别为读取存取,则在610处请求被直接发送至BAR存储器412并且处理在630处结束。如果存取请求被识别为写入存取,则在612处请求被路由至存取控制单元410。
在614处,存取控制单元410确定存取请求的读取-写入属性。例如,存取控制单元410可以通过从可编程位控制单元406读取属性来确定存取请求的读取-写入属性。
在616处,如果读取-写入属性是RO,则写入存取在618处被绕过并且处理在630处结束。在620处,如果读取-写入属性是RW1C,则在622处0被写入至BAR存储器并且处理在630处结束。在624处,如果读取-写入属性是RW1S,则在626处,1被写入至BAR存储器并且处理在630处结束。另外,在628处,数据因为具有RW读取-写入属性而被写入至BAR存储器并且处理在630处结束。
可编程位控制单元406可以各种配置实现。例如,一个选择是使每个BAR位置都可编程,并且为每个位置定义读取-写入属性。在这种情况下,可以为BAR存储器中的每个位定义2-位参数(例如,R/W控制(RWC))。其将具有表示RO、RW、RW1S和RW1C(例如,00、01、10、11)的4种可能值。该子系统将提供高灵活性,但是该实施方式可以需要具有BAR存储器的两倍大小的规则存储器(例如,可编程位控制单元存储器414)。例如,如果BAR存储器为16KB,则可编程位控制单元存储器414将为32KB。
另一个示例是定义可编程的BAR存储器中的一些位置,而保持所有其余的为RO。在这种情况下,除R/W控制(RWC)参数外,可以具有另一个参数,有效可编程偏移(VPOFF)。例如,VPOFF是指向由32个RWC的组控制的DW的有效BAR存储器偏移。每个RWC可以表示该DW中的1位。该实施方式将具有合理的灵活性,但是其具有非常小的开销。例如,如果BAR存储器大小为16KB,并且只需要16个可编程DW,则可编程位控制单元406将仅需要16个控制组。每个组具有1个VPOFF(12位)和32个RWC(2位),总计76位。
另一个示例为结合之前的两个上述示例。不是对于RWC使用2位来表示4种可能的读取-写入属性,而是对于RW/RO使用1位,因为这些是在任何协议中最可能的情况。此外,VPOFF和RWC控制组可以被定义以增加某些具体位置的灵活性。在16KB的BAR存储器的示例中,该实施方式将需要略微比16KB大的规则存储器414。
尽管已经为清楚理解的目的详细描述了前述实施例,但是本发明不限于提供的细节。存在实施本发明的许多可替代的方式。公开的实施例是说明性的而非限制性的。

Claims (15)

1.一种存储器系统,其包括:
可编程位控制单元,其适于将读取-写入属性定义至基址寄存器存储器即BAR存储器中的位置;
读取-写入开关,其适于:
接收存储器存取请求;以及
识别所述存储器存取请求是读取存取还是写入存取;
基于识别操作路由所述存储器存取请求以用于进一步处理,其中当所述存储器存取请求被识别为读取存取时,将所述存储器存取请求直接路由至BAR存储器;以及
存取控制单元,其适于:
当所述存储器存取请求被识别为写入存取时,接收来自所述读取-写入开关的存储器存取请求;
在多个读取-写入属性之中确定与所述写入存取相关的读取-写入属性;
当所述读取-写入属性被确定为所述多个读取-写入属性的第一读取-写入属性时,绕过所述写入存取;以及
当所述读取-写入属性被确定为所述多个读取-写入属性的任意其它读取-写入属性时,将所述写入存取处理至具有与所述写入请求相关的所确定的读取-写入属性相同的定义的读取-写入属性的所述BAR存储器中的位置。
2.根据权利要求1所述的存储器系统,其中所述第一读取-写入属性包括只读,并且其它读取-写入属性包括读取-写入、读取-写入1以清除、以及读取-写入1以设置。
3.根据权利要求2所述的存储器系统,
其中当与所述写入存取相关的所述读取-写入属性为读取-写入1以清除时,所述存取控制单元进一步适于写入0至所述BAR存储器;
其中当与所述写入存取相关的所述读取-写入属性为读取-写入1以设置时,所述存取控制单元进一步适于写入1至所述BAR存储器。
4.根据权利要求1所述的存储器系统,其中所述存取控制单元进一步适于计算所述写入存取在所述BAR存储器中的目标地址。
5.根据权利要求1所述的存储器系统,其中所述读取-写入属性通过2-位参数被定义至所述BAR存储器中的位置。
6.一种操作存储器系统的方法,其包括:
利用可编程位控制将读取-写入属性定义至基址寄存器存储器即BAR存储器中的位置;
利用读取-写入开关接收存储器存取请求;
利用所述读取-写入开关识别所述存储器存取请求是读取存取还是写入存取;
利用所述读取-写入开关基于识别操作路由所述存储器存取请求以用于进一步处理,其中当所述存储器存取请求被识别为读取存取时,将所述存储器存取请求直接路由至BAR存储器;
当所述存储器存取请求被识别为写入请求时,利用存取控制单元接收来自所述读取-写入开关的所述存储器存取请求;
利用所述存取控制单元在多个读取-写入属性之中确定与所述写入存取相关的读取-写入属性;
当所述读取-写入属性被确定为所述多个读取-写入属性的第一读取-写入属性时,绕过所述写入存取;以及
当所述读取-写入属性被确定为所述多个读取-写入属性的任意其它读取-写入属性时,利用所述存取控制单元将所述写入存取处理至具有与所述写入请求相关的所确定的读取-写入属性相同的定义的读取-写入属性的所述BAR存储器中的位置。
7.根据权利要求6所述的方法,其中所述第一读取-写入属性包括只读,并且其它读取-写入属性包括读取-写入、读取-写入1以清除和读取-写入1以设置。
8.根据权利要求7所述的方法,其进一步包括:
当与所述写入存取相关的所述读取-写入属性为读取-写入1以清除时,写入0至所述BAR存储器;
当与所述写入存取相关的所述读取-写入属性为读取-写入1以设置时,写入1至所述BAR存储器。
9.根据权利要求6所述的方法,其进一步包括计算所述写入存取在所述BAR存储器中的目标地址。
10.根据权利要求6所述的方法,其中所述读取-写入属性通过2-位参数被定义至所述BAR存储器中的位置。
11.一种存储器装置,其包括:
可编程位控制单元,其配置为将读取-写入属性定义至基址寄存器存储器即BAR存储器中的位置;
读取-写入开关,其配置为:
接收存储器存取请求;以及
识别所述存储器存取请求是读取存取还是写入存取;
基于识别操作路由所述存储器存取请求以用于进一步处理,其中当所述存储器存取请求被识别为读取存取时,将所述存储器存取请求直接路由至BAR存储器;以及
存取控制单元,其配置为:
当所述存储器存取请求被识别为写入存取时,接收来自所述读取-写入开关的所述存储器存取请求;
在多个读取-写入属性之中确定与所述写入存取相关的读取-写入属性;
当所述读取-写入属性被确定为所述多个读取-写入属性的第一读取-写入属性时,绕过所述写入存取;以及
当所述读取-写入属性被确定为所述多个读取-写入属性的任意其它读取-写入属性时,将所述写入存取处理至具有与所述写入请求相关的所确定的读取-写入属性相同的定义的读取-写入属性的所述BAR存储器中的位置。
12.根据权利要求11所述的存储器装置,其中所述第一读取-写入属性包括只读,并且其它读取-写入属性包括读取-写入、读取-写入1以清除和读取-写入1以设置。
13.根据权利要求12所述的存储器装置,
其中当与所述写入存取相关的所述读取-写入属性为读取-写入1以清除时,所述存取控制单元进一步适于写入0至所述BAR存储器;
其中当与所述写入存取相关的所述读取-写入属性为读取-写入1以设置时,所述存取控制单元进一步适于写入1至所述BAR存储器。
14.根据权利要求11所述的存储器装置,其中所述存取控制单元进一步适于计算所述写入存取在所述BAR存储器中的目标地址。
15.根据权利要求11所述的存储器装置,其中所述读取-写入属性通过2-位参数被定义至所述BAR存储器中的位置。
CN201610592549.3A 2015-07-24 2016-07-25 用于ssd控制器的可编程协议独立bar存储器 Active CN106372004B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562196851P 2015-07-24 2015-07-24
US62/196,851 2015-07-24

Publications (2)

Publication Number Publication Date
CN106372004A CN106372004A (zh) 2017-02-01
CN106372004B true CN106372004B (zh) 2020-08-11

Family

ID=57836120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610592549.3A Active CN106372004B (zh) 2015-07-24 2016-07-25 用于ssd控制器的可编程协议独立bar存储器

Country Status (2)

Country Link
US (1) US10482038B2 (zh)
CN (1) CN106372004B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126981B1 (en) 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US11599403B2 (en) * 2018-10-03 2023-03-07 SK Hynix Inc. Logging mechanism for memory system
US11449357B2 (en) * 2018-11-13 2022-09-20 SK Hynix Inc. Configurable integrated circuit to support new capability
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
KR102532032B1 (ko) 2019-10-31 2023-05-12 아서스테크 컴퓨터 인코포레이션 무선 통신 시스템에서 장치 대 장치 피드백 전송을 처리하기 위한 방법 및 장치
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
CN110928815B (zh) * 2019-11-29 2023-05-05 四川效率源科技有限责任公司 一种获取ahci基地址寄存器值的方法
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
CN112364394A (zh) * 2020-11-11 2021-02-12 中国信息安全测评中心 一种固态硬盘的安全防护方法及装置
CN112346665B (zh) * 2020-11-30 2023-05-19 杭州华澜微电子股份有限公司 基于pcie的通信方法、装置、设备、系统及存储介质
CN112836221B (zh) * 2021-01-13 2024-02-06 深圳安捷丽新技术有限公司 一种多安全级别分区的便携固态硬盘及其设计方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN86108086A (zh) * 1986-01-16 1987-07-29 国际商用机器公司 地址转换与地址计算相重叠的数据处理系统
CN102622206A (zh) * 2011-01-28 2012-08-01 中兴通讯股份有限公司 一种处理器及其处理数据的方法
US9025495B1 (en) * 2013-01-16 2015-05-05 Pmc-Sierra Us, Inc. Flexible routing engine for a PCI express switch and method of use

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
US9311127B2 (en) * 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9104334B2 (en) 2013-08-20 2015-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd Performance improvements in input/output operations between a host system and an adapter-coupled cache
US10241817B2 (en) * 2014-11-25 2019-03-26 Red Hat Israel, Ltd. Paravirtualized access for device assignment by bar extension

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN86108086A (zh) * 1986-01-16 1987-07-29 国际商用机器公司 地址转换与地址计算相重叠的数据处理系统
CN102622206A (zh) * 2011-01-28 2012-08-01 中兴通讯股份有限公司 一种处理器及其处理数据的方法
US9025495B1 (en) * 2013-01-16 2015-05-05 Pmc-Sierra Us, Inc. Flexible routing engine for a PCI express switch and method of use

Also Published As

Publication number Publication date
US20170024332A1 (en) 2017-01-26
CN106372004A (zh) 2017-02-01
US10482038B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
CN106372004B (zh) 用于ssd控制器的可编程协议独立bar存储器
US10180805B2 (en) Memory system and operating method thereof
US10147500B2 (en) Hybrid read disturb count management
CN106169308B (zh) 存储器控制器及其操作方法
CN107731259B (zh) 最佳读取参考电压的存储器系统及其操作方法
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
US10296452B2 (en) Data separation by delaying hot block garbage collection
CN107957959B (zh) 具有文件级安全擦除的存储器系统及其操作方法
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
CN106372011B (zh) 用于pcie ssd控制器的高性能主机队列监控器
CN107544925B (zh) 存储器系统及加速引导时间的方法
CN107977283B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110750380B (zh) 具有奇偶校验高速缓存方案的存储器系统以及操作方法
US11367488B2 (en) Memory system and method for read operation based on grouping of word lines
CN109800178B (zh) 垃圾收集方法以及用于混合地址映射的存储器系统
US9946644B2 (en) Memory system and operating method thereof
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
US20220011969A1 (en) Read threshold optimization systems and methods using domain transformation
US11449357B2 (en) Configurable integrated circuit to support new capability
CN112416298B (zh) 闪速存储器的基于原始读取的物理不可克隆功能
CN112216328B (zh) 具有低复杂度解码的存储器系统及其操作方法
CN113515466B (zh) 用于多内核之间动态逻辑块地址分布的系统和方法
US11087846B1 (en) Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder
US12093562B2 (en) Controller with smart scheduling and method of operating the controller
CN110941567B (zh) 存储器控制器及其操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant