- 精华
- 0
- 帖子
- 1075
- 威望
- 0 点
- 积分
- 2089 点
- 种子
- 1135 点
- 注册时间
- 2016-7-24
- 最后登录
- 2025-2-18
|
SRAM的运行需要附带一个协处理器,也就是下文中提到的——子处理器
根据下面翻译来看,子处理器仅需要1Ghz的频率就可以实现每秒16GB的数据量输出,完全能满足专利提到的10GB每秒的设计指标。
简单来说,子处理器的作用就是把CPU发出的文件请求迅速的将文件按照寻址表找出并按照要求全部等量分割成若干文件,输出给主CPU进行处理,主CPU分配任务给GPU处理图像等。
子处理器可以持续稳定的把大量数据快速发送给CPU处理,减少了延迟,读盘慢等现象,文中有提到不用去向硬盘{这里应该包括机械硬盘和固态硬盘}中的DRAM缓存伸手,导致读取性能衰减,断层,无法稳定持续的现象,这种设计完全不同于家用PC上的SSD运行方式,确实新颖!DRAM的详情段落我截取出来了,如下
我也不太懂这些深奥的技术分解,只是把自己理解的部分简单阐述给大家讨论,轻喷哈
截取片段——————————此外,处理对闪存的访问请求的处理器与主处理器分开提供。该处理器将每个文件的访问请求划分为小单元,以便在这些单元中尽可能并行地执行后续处理。响应于此,闪存存储由文件分割产生的每个块的压缩数据。该配置为每个访问请求提供了显着改进的处理速度。此外,读取数据的尺寸较小,因此内置在闪存控制器中的SRAM可以缓冲数据并使其不必将其缓存到外部DRAM。
如上所述,主CPU 30在本实施例中处理以下处理。
1.从文件名计算哈希值
2.搜索哈希列表
3.向子CPU 32发出请求
如果文件大小很小,例如4 KiB左右,则必须在每个文件的0.4微秒内完成处理,以便提供10 GB /秒的传输速率。如果频繁发布这种小型单元中的读取请求,则并行化效应将是微不足道的。此外,主CPU 30的传输速率更可能受到子CPU 32,闪存控制器18和闪存20的传输速率的影响,容易增加等待时间并导致主CPU的传输速率较低。三十。因此,如果每毫秒左右发生如此小尺寸的数据访问请求,则将多个文件组合成单个文件,并以10 MiB左右为单位发出数据访问请求,从而提供10 GB /秒传输速率高,鲁棒性强。
子CPU 32在本实施例中处理以下处理。
1.将主CPU 30发出的请求分成固定长度的数据块
2.通过参考压缩表
3 获取存储压缩数据的区域的逻辑地址3.向闪存控制器发出读取请求18
4请求加速器42执行诸如对读取数据的篡改检查的处理
。当构成原始文件的块准备好时通知主CPU 30
子CPU 32以固定长度单位处理数据。例如,假设数据以64 KiB单位处理,则必须在每个请求6.6微秒内完成处理,以便提供10 GB /秒的传输速率。例如,如果主CPU 30发出读取16 MiB文件的请求,则子CPU 32将请求分成64 KiB单元并如上所述发出256个读取请求。此时,并不是在6.6微秒内处理一个请求,而是完全处理多个请求。
在本实施例中,只有简化的处理任务,例如向闪存控制器18和各种加速器发出命令以及完成通知的接收,可以高频并行执行。这使得例如可以在211微秒内完成32个请求的处理,从而实现10GB /秒的传输速率。取决于要实现的传输速率,例如,诸如向闪存控制器18发出命令和接收完成通知的处理任务可以进一步分配给多个CPU核。
闪存控制器18处理本实施例中的以下处理。
1.由子CPU发出读请求32
2.参考地址转换表和转换的LBA转换成物理地址
从闪存的相关联的区域3读取数据20个
4存储数据在系统存储器14和通知子CPU 32该效果
在用于其中需要快速处理的地址变换中,被称为地址转换表对存储在内置SRAM 24。如果来自子CPU 32的请求是64 KiB单元,则必须在每个请求6.6微秒内完成处理,以便提供10GB /秒的传输速率。如果将其转换为151,515 IOPS(每秒输入输出),则优选将处理分配给多个处理器核,如对子CPU 32所做的那样。此外,闪存控制器18具有用于闪存20的多个接口通道如上所述,因此对每个信道进一步划分读取请求。例如,如果64 KiB数据读取请求被分成16个KiB单元,则需要四倍的IOPS。然而,这些单元由多个通道并行处理。结果,转移率不会受到太大影响。
加速器42处理本实施例中的以下处理。
1.从子CPU 32 接收处理请求
2.从系统存储器14 读取数据
3.执行篡改检查,解码和解压缩
4.将处理后的数据存储在系统存储器14中并通知子CPU 32
在以平均等于或高于10GB /秒的吞吐量运行的情况下,考虑到处理任务之间的开销,加速器42必须具有等于或高于10GB /秒的峰值吞吐量。如果电路以128位/周期和1 GHz运行,其峰值吞吐量达到16 GB /秒,足够的水平。另一方面,如果电路需要16个周期来执行128位处理,则可以采取对策,例如并排布置16个加速器42。
在上述的本实施例中,写入闪存的访问的粒度级别大于相关技术的写入粒度级别,例如逐页的写入粒度级别。这使整个地址转换表降低到可以存储在内置SRAM中的大小,从而不必重复访问闪存以进行地址转换。此外,即使闪存的容量较大,也不再需要提供大容量外部DRAM以便缓存地址转换表。结果,不仅可以防止由于访问闪存和外部DRAM而导致的延迟增加和吞吐量降低,而且还可以降低制造成本和芯片面积。
此外,地址转换表被划分为具有不同写访问粒度级别的多个地址空间,从而使得可以选择适合数据特性的地址转换表。定义精细粒度级别的地址空间的地址转换表部分缓存到SRAM。例如,大的粒度级别被分配给游戏程序和未更新的其他数据,并且细粒度级别被分配给经常更新的用户数据。这使得可以考虑到在更新数据时需要保留新区域的闪存的特性以无浪费的方式分配区域,从而与增加粒度级别的效果达成平衡。
此外,处理对闪存的访问请求的处理器与主处理器分开提供。该处理器将每个文件的访问请求划分为小单元,以便在这些单元中尽可能并行地执行后续处理。响应于此,闪存存储由文件分割产生的每个块的压缩数据。该配置为每个访问请求提供了显着改进的处理速度。此外,读取数据的尺寸较小,因此内置在闪存控制器中的SRAM可以缓冲数据并使其不必将其缓存到外部DRAM。
更进一步地,除了相关技术文件系统之外,在软件栈中提供接口层以直接链接应用程序和SSD,从而有助于更简单的处理,直到从文件名解决获取。此外,取决于读取访问请求者是否是所讨论的接口层或相关技术文件系统,优先考虑读取访问。对于前者给予更高的优先级,并且与现有技术相比,读取单元增加以用于更有效的读取处理。这使得可以将需要快速读取的数据读取处理(例如程序文件)与诸如用户数据的普通文件读取处理区分开。
简化处理从文件名到地址获取所需的元数据使得不必追溯分层元数据。此外,可以减小元数据本身的大小,从而可以将整个元数据存储在系统存储器中。这有助于显着减少用于地址获取的存储器访问处理的负载。上述配置允许高速数据访问,其充分利用闪存的高传输速率,同时允许与各种相关技术存储的数据访问过程共存。
已经基于实施例描述了本公开。该实施例是说明性的,并且本领域技术人员应当理解,可以以各种方式修改组件和过程的组合,并且这些修改示例也落入本公开的范围内。
本技术包含与2015年10月2日向日本专利局提交的日本优先权专利申请JP 2015-197188中公开的主题有关的主题,其全部内容通过引用结合于此。 |
|