存储数据访问方法及相关的控制器、设备、主机和系统的制作方法_3

文档序号:9597135阅读:来源:国知局
址以及发送第二标识信息 的步骤的执行顺序也不限定。
[0070] S15、存储控制器收到第一标识信息时,将收到的逻辑地址转换为第一物理地址并 根据第一物理地址访问闪存颗粒中的数据的信息;存储控制器收到第二标识信息时,使用 收到的第二物理地址访问所述闪存颗粒中的数据的信息。
[0071] 存储控制器通过标准的协议接口(如eMMC协议)接收来自主机的逻辑地址处理 模块发送的信息,本实施例中,对于存储控制器,仅根据收到的"地址",其并不能知道这个 地址表示的是"逻辑地址"还是转换后的"物理地址",也不知道如何对逻辑地址或者物理地 址进行处理。因此,需要一个信息去告诉存储控制器如何进行处理,这个信息就是第一标识 信息以及第二标识信息,存储控制器通过判断接收到的是哪个标识信息来采取对应的处理 策略,即,收到第一标识信息后,进行地址转换,根据转换后的第一物理地址访问闪存颗粒 中的数据;收到第二标识信息后,直接根据收到的第二物理地址访问闪存颗粒中的数据。
[0072] 标识信息(包括第一标识信息以及第二标识信息)可以基于现有的协议或者使用 私有协议来实现。通常为了方便实现,可以基于现有的协议,例如,基于协议的一些预留的 字段进行扩展,或者使用预留的命令等。
[0073] 以主机与存储控制器使用eMMC协议进行通信为例,可以利用eMMC坟预留的命令 来实现标识信息的传递。在eMMC协议中,通信双方基于命令(Command,CMD)进行,其中, CMD 60-63为预留的命令,因此,可以使用这些命令来传递标识信息。
[0074] 例如,S13中,逻辑地址处理模块需要发送逻辑地址时,可以首先发送一个CMD 60 命令,同时携带参数0x754C4241,表示发送了第一标识信息;类似的,步骤504中,逻辑地址 处理模块需要发送第二物理地址时,可以首先发送一个CMD 60命令,该CMD 60携带参数 0x7550504E,表示发送了第二标识信息。
[0075] 这些用于传递标识信息的命令(如CMD 60)可以在每个访问请求前都发送,也可 以在第一次访问不同类型的请求时发送,后续的访问访求使用前一次的结果。例如,刚开始 通过CMD 60发了一个第一标识信息,后续如果不发送CMD 60命令,而直接发送访问命令, 则默认这些后续访问命令都是第一标识信息,除非再次发送CMD 60命令来表示发送第二 标识信息,这样后续的访问命令又默认变成了第二标识信息。
[0076] 当存储控制器收到这些命令后,就知道接下来如何对收到的命令中的"地址"进行 处理(如直接根据地址访问还是进行地址转换)。
[0077] 需要再次说明的是,如上述S13、S14中最后提到的一样,这个指示标识的发送并 不一定严格限定在发送逻辑地址前面执行,根据不同协议对各种命令(或报文、或消息)的 不同定义,也可以选择在发送逻辑地址后再执行,或者同时执行(如封装到一个命令,或者 封装到一个报文后发送)。
[0078] 此外,还需要说明的是,上述步骤都是逻辑层面的步骤,在真正实现的代码层面, 可能并没有跟步骤一一对应的,从代码字面意义看跟步骤完全符合的代码,但这些代码背 后所表示的逻辑含义是符合上述步骤的。例如,对于S12,在代码层面,可以只进行一次判 断,即判断收到的逻辑地址是否属于范围Α,如果属于这个范围Α,执行一种操作,否则执行 另一种操作;从字面上看,似乎并不和S12完全一致,但结合其他条件(例如,只定义两种地 址,将Α范围定义为操作系统数据对应的逻辑地址,那么剩下的自然就是用户数据对应的 逻辑地址了),就能发现在逻辑层面是跟S12 -样的。这些在软件层面具体的实现比较灵 活,也属于本领域技术人员所公知的技术,本发明各实施例不对此进行详细描述。
[0079] 本发明实施例中,将原来存储控制器实现的逻辑地址到物理地址转换功能中的一 部分移到主机来做,由于主机的处理能力通常都会比存储控制器高,从而能够提高主机访 问存储设备的速度。
[0080] 此外,由于在主机实现了对对闪存颗粒物理地址以及逻辑地址的映射管理,主机 能够更直接地管理闪存颗粒的物理地址和各类算法(如地址映射算法)的运行过程,并可 以根据主机自身的运行状态,在合适的时机发起垃圾回收和磨损均衡等操作,提高对存储 设备的管理,降低Nand坏块和数据碎片化对存储性能的影响。而且,当出现故障时,可以更 清楚地对故障进行定位。
[0081] 实施例二
[0082] 基于实施例一,本实施例通过两个具体的示例来对上述实施例进行说明,本实施 例中,假设主机与存储控制器基于eMMC协议,假设闪存颗粒总的物理空间为lOOOOByte (仅 用于示例,实际物理空间会远大于这个数),其中前2000用于操作系统数据(包含管理信 息),剩下的8000物理空间分配给用户数据;同时,假设在主机(内核)侧,将2000的物理 空间映射到了逻辑地址空间100-2099 ;在存储控制器侧,将8000物理空间映射到逻辑地址 空间2100-10099 ;具体如表一所示:
[0085] 示例一:
[0086] S21、应用向文件系统发送访问文件的第一请求;
[0087] S22、文件系统将第一请求转成通过逻辑地址来进行访问的第二请求,第二请求中 携带的要访问的逻辑地址是2201-2300之间的逻辑地址,并将第二请求发送给内核;
[0088] S23、内核判断2201-2300之间的逻辑地址属于用户数据对应的地址,将逻辑地址 2201-2300转成物理地址2101-2200,并将第二请求重新根据eMMC协议要求封装后发送给 存储控制器,并发送一个标识信息,指示类型是物理地址(也即指示后续存储器不需要再 进行转换);
[0089] S24、存储控制器收到基于物理地址2101-2200的访问请求后,直接访问闪存颗粒 的物理地址2101-2200。
[0090] 示例二:
[0091] S31、应用向文件系统发送访问文件的第一请求;
[0092] S32、文件系统将第一请求转成通过逻辑地址来进行访问的第二请求,第二请求中 携带的要访问的逻辑地址是100-199之间的逻辑地址,并将第二请求发送给内核;
[0093] S33、内核判断100-199之间的逻辑地址属于操作系统数据对应的地址,根据eMMC 协议要求封装后将包括逻辑地址100-199的第三请求"透传"给存储控制器,并发送一个标 识信息,指示类型是逻辑地址(也即指示后续存储器进行转换);
[0094] S34、内存存储控制器收到第三请求后将逻辑地址100-199转成物理地址0-99,并 通过物理地址0-99访问闪存颗粒。
[0095] 实施例三
[0096] 基于上述各实施例,本实施例公开了一种使用boot loader的通信设备(如手机、 平板等终端设备)以及该通信设备访问存储设备的方法。本实施例中的通信设备包括主机 以及前述实施例中的存储设备,主机与存储设备之间通过例如eMMC等协议进行通信。主机 主要包括CPU,当然,为了 CPU能够更好地运行,还可以包括用于数据存储的内存,同时,还 需要一些外围电路(如电源管理相关的电路、与外围设备通信的接口电路等)。
[0097] 本实施例中的通信设备在使用过程中会用到引导加载器(通常用英文boot loader或者bootloader表示),这是一个用于引导操作系统的一个程序。这个程序是跟 CPU适配的一个固化的程序,一般由CPU厂家提供,使用该CPU的其他厂家不会对该程序进 行修改。
[0098] 同时,现有的引导加载器都使用逻辑地址来访问存储颗粒中存储的操作系统数 据,在上述各实施例中,由于存储控制器对操作系统数据仍然可以进行逻辑地址到物理地 址的转换,这样,现有的引导加载器仍然能够工作,起到了兼容的作用。
[0099] 在这过程当中,需要对存储控制器进行一些适配性的工作,具体的:
[0100] 由于引导加载器本身不具有上述实施例提到的发送上述实施例中提到的标识信 息的能力,也就无法让存储控制器知道在收到地址时进行何种处理。此时,可以让存储控制 器上电后默认对收到的地址按逻辑地址进行处理,即存储控制器在上电后,如果没有收到 标识信息,则默认收到的地址是逻辑地址,然后对逻辑地址进行转换,转成物理地址后访问 闪存颗粒。具体实现方法可以根据传递标识信息方式的不同而不同,例如,如果是通过一 个消息的一个预定义字段携带标识信息时,那么通过读取这个字段就可知道是否有标识信 息;如果传递标识信息的方式是基于一个单独的命令(如在上文举例的通过CMD 60来传 递),那么如果没有收到这个命令,就可认为没有收到标识信息。
[0101] 实施例四
[0102] 基于上述各实施例,本发明实施例公开了一种存储控制器,位于存储设备,存储设 备还包括与存储控制器通信的至少一个闪存颗粒,参见图3,存储控制器包括接收单元41、 判断单元42、转换单元43以及访问单元44 ;这些单元用于执行实施例一中的各个步骤,具 体的:
[0103] 接收单元用于接收主机发送的用于访问闪存颗粒的第一地址以及用于指示第一 地址的地址类型的标识信息,标识信息为第一标识信息或者第二标识信息;第一地址由位 于主机中的软件底层的逻辑地址处理模块发送,其中,逻辑地址处理模块接收到位于主机 中的软件上层的逻辑地址发送模块发送的第一逻辑地址后,判断第一逻辑地址属于操作系 统数据对应的逻辑地址还是属于用户数据对应的逻辑地址;当判断第一逻辑地址属于操作 系统数据对应的逻辑地址时,将第一逻辑地址发送给存储控制器,并向存储控制器发送第 一标识信息,此时,第一地址为第一逻辑
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1