Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HARDWARE ABSTRACT DATA STRUCTURE, DATA PROCESSING METHOD AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2013/097393
Kind Code:
A1
Abstract:
Disclosed is a hardware abstract data structure, including a general interface (GI), a coherent interface (CI), a control and configure logic (CCL), an intelligent logic (IL) and a memory pool (MP). The GI is configured to implement the intercommunication between a hardware abstract data structure (HADS) and a processor. The CI is configured to implement the coherent storage among multiple processors. The CCL is configured to configure the hardware data structure of the MP according to a configuration command received by the GI. The IL is configured to complete a large amount of simple and frequent data processing. The MP is configured to store data. Also disclosed accordingly are a data processing method and system. The present invention can realize a hardware abstract data structure which is dynamic in configuration, flexible and highly efficient with a universal interface and good interconnection, thus improving the data processing efficiency.

Inventors:
YUAN XIXI (CN)
MAO ERKUN (CN)
WANG JIAN (CN)
TIAN XUEHONG (CN)
ZENG DAIBING (CN)
TIAN WANTING (CN)
CHEN QIAN (CN)
Application Number:
PCT/CN2012/075195
Publication Date:
July 04, 2013
Filing Date:
May 08, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
YUAN XIXI (CN)
MAO ERKUN (CN)
WANG JIAN (CN)
TIAN XUEHONG (CN)
ZENG DAIBING (CN)
TIAN WANTING (CN)
CHEN QIAN (CN)
International Classes:
G06F5/06
Foreign References:
CN102136130A2011-07-27
CN1898666A2007-01-17
Other References:
None
Attorney, Agent or Firm:
CHINA PAT INTELLECTUAL PROPERTY OFFICE (CN)
北京派特恩知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权利要求书

1、 一种硬件抽象数据结构, 其中, 该硬件抽象数据结构 HADS包括: 通用接口 GI、 控制和配置逻辑 CCL和存储库 MP; 其中,

所述 GI, 设置为实现 HADS与处理器之间的交互;

所述 CCL,设置为根据 GI接收的配置命令对 MP进行硬件数据结构配 置;

所述 MP, 设置为存储数据。

2、 根据权利要求 1所述的硬件抽象数据结构, 其中, 该 HADS还包括 一致性接口 CI,

所述 CI, 用于多核之间的互联以及直接数据访问。

3、 根据权利要求 1或 2所述的硬件抽象数据结构, 其中, 该 HADS还 包括智慧逻辑 IL,

所述 CCL,还设置为根据 GI接收的命令控制数据在 MP到接口之间的 传输、 数据在 IL内的处理、 以及数据的旁路;

所述 IL, 设置为根据 CCL的控制, 对 MP中存储的数据进行处理。

4、 根据权利要求 3所述的硬件抽象数据结构, 其中,

所述 IL, 还设置为根据 CCL的控制输出处理后的数据, 或将处理后的 数据写回 MP。

5、 一种数据处理方法, 其中, 该方法包括:

处理器对 HADS进行配置, 将 HADS内的存储块配置成需要的硬件数 据结构, 之后采用所述配置的存储块进行数据存储。

6、 根据权利要求 5所述的数据处理方法, 其中, 所述处理器对 HADS 进行配置, 将 HADS内的存储块配置成需要的硬件数据结构为:

处理器通过 GI将配置命令发送给 CCL,所述配置命令至少携带需要配 置的硬件数据结构信息;

所述 CCL根据所述配置命令对 MP进行硬件数据结构配置, 将 MP中 的存储块配置成需要的硬件数据结构。

7、 根据权利要求 6所述的数据处理方法, 其中, 该方法还包括: 处理器通过 CI或 GI直接访问 MP内的数据;

所述 CCL控制数据在 MP与接口之间的传输、数据在 IL内的处理、以 及数据在 CI与 GI间的旁路。

8、 根据权利要求 7所述的数据处理方法, 其中, 该方法还包括: 所述 CCL控制 IL输出处理后的数据, 或将处理后的数据写回 MP。 9、 根据权利要求 5至 8任一项所述的数据处理方法, 其中, 所述处理 器为本地处理器和 /或远端处理器。

10、 一种数据处理系统, 其中, 该系统包括处理器和权利要求 1 至 4 任一项所述的 HADS。

11、 根据权利要求 10所述的数据处理系统, 其中, 所述处理器为本地 处理器和 /或远端处理器。

Description:
硬件抽象数据结构、 数据处理方法及系统 技术领域

本发明涉及数据存储技术,尤其涉及一种硬件 抽象数据结构( Hardware Abstract Data Structure, HADS )、 数据处理方法及系统。 背景技术

用处理器处理一个具体任务时, 需要将具体任务抽象成适当的数据结 构, 基本的类型包括集合、 线性结构、 树形结构、 图状结构等, 这些结构 的实现大都是通过软件实现的, 效率低、 实现复杂、 能耗比较大。 下面以 堆栈(STACK ) 为例说明软件如何实现特定的数据结构。

STACK是限定仅在栈顶( TOP )和栈底( BASE )进行插入或删除操作 的线性表。 实现软件 STACK 的过程是先根据栈的最大使用量申请存储空 间, 设置 STACK栈底指针和栈顶指针, 初始化时 STACK为 NULL, 栈顶 指针指向栈底, 即 TOP=BASE, 然后, 通过压入( PUSH )指令将数据压入 STACK, 每执行一次 PUSH操作, TOP加 1; 通过弹出 (POP )指令弹出 STACK保存的数据,每执行一次 POP操作, TOP减 1。这里的 TOP和 BASE 指针都是保存在寄存器或存储器内的, 加 1或减 1操作也需要通过指令来 完成。 软件 STACK的实现原理如图 1所示, 可以看出, 对 STACK的每次 操作至少需要两条指令, 如果需要实现 STACK的防覆盖等功能, 每次操作 将需要更多的指令, 从而 STACK的处理效率较低。

虽然目前出现了硬件实现的数据结构, 但是也只能实现结构较简单的 数据结构,如先入先出队列(FIFO )、 STACK,堆(HEAP )、 队列(QUEUE ) 等集合或线性结构, 但由于现有硬件实现的数据结构通常是采用固 定硬件 实现的, 从而可配置性不强、 不灵活、 浪费系统资源。 硬件实现的 FIFO结 构如图 2所示,可以看出,硬件 FIFO由读地址生成( Read Address Generate )、 写地址生成 ( Write Address Generate )、 双端口 SRAM ( Double Port RAM )、 FIFO的空满状态( Full and Empty Flag )组成, 同时还需要考虑输入输出接 口的兼容性问题。 虽然硬件实现的 FIFO效率相当高, 设置不需要配置就可 以直接使用, 但是实现的 FIFO大小、 接口等都是固定不变的, 另外, 当处 理器不用 FIFO的时候, 这部分资源白白浪费了, 不可能将这种硬件 FIFO 用作 HEAP或其它结构。 如果采用硬件实现 TREE结构, 除了不能重用外, 设计也较复杂。 发明内容

有鉴于此, 本发明的主要目的在于提供一种硬件抽象数据 结构、 数据 处理方法及系统, 能够实现可动态配置、 灵活多变、 高效率、 接口通用、 互联特性好的硬件抽象数据结构, 提高数据处理效率。

为达到上述目的, 本发明实施例的技术方案是这样实现的:

一种硬件抽象数据结构, 该硬件抽象数据结构 HADS包括: 通用接口 GI、 控制和配置逻辑 CCL和存储库 MP; 其中,

所述 GI, 设置为实现 HADS与处理器之间的交互;

所述 CCL,设置为根据 GI接收的配置命令对 MP进行硬件数据结构配 置;

所述 MP, 设置为存储数据。

该 HADS还包括一致性接口 CI ,

所述 CI, 用于多核之间的互联以及直接数据访问。

该 HADS还包括智慧逻辑 IL,

所述 CCL,还设置为根据 GI接收的命令控制数据在 MP到接口之间的 传输、 数据在 IL内的处理、 以及数据的旁路;

所述 IL, 设置为根据 CCL的控制, 对 MP中存储的数据进行处理。 所述 IL, 还设置为根据 CCL的控制输出处理后的数据, 或将处理后的 数据写回 MP。

一种数据处理方法, 包括:

处理器对 HADS进行配置, 将 HADS内的存储块配置成需要的硬件数 据结构, 之后采用所述配置的存储块进行数据存储。

所述处理器对 HADS进行配置, 将 HADS内的存储块配置成需要的硬 件数据结构为:

处理器通过 GI将配置命令发送给 CCL,所述配置命令至少携带需要配 置的硬件数据结构信息;

所述 CCL根据所述配置命令对 MP进行硬件数据结构配置, 将 MP中 的存储块配置成需要的硬件数据结构。

该方法还包括:

处理器通过 CI或 GI直接访问 MP内的数据;

所述 CCL控制数据在 MP与接口之间的传输、数据在 IL内的处理、 以 及数据在 CI与 GI间的旁路。

该方法还包括:

所述 CCL控制 IL输出处理后的数据, 或将处理后的数据写回 MP。 所述处理器为本地处理器和 /或远端处理器。

一种数据处理系统,包括处理器和权利要求 1至 4任一项所述的 HADS。 所述处理器为本地处理器和 /或远端处理器。

本发明实施例所述的硬件抽象数据结构、 数据处理方法及系统中的硬 件抽象数据结构(HADS ) 包括: 通用接口 (GI )、 控制和配置逻辑(CCL ) 和存储库(MP ); 其中, 所述 GI, 设置为实现 HADS与处理器之间的互联; 所述 CCL, 设置为根据 GI接收的配置命令对 MP进行硬件数据结构配置; 所述 MP, 设置为存储数据。 本发明实现了完全可动态配置、 灵活多变、 高 效率、 接口通用、 互联特性好的硬件抽象数据结构, 采用所述硬件抽象数 据结构来实现 Cache、 TCM、 CAM等存储结构, 以及实现 FIFO、 BUFFER, HEAP, STACK、 QUEUE、 LINK, TABLE等线性结构, 以及实现 TREE 型结构以及实现图等其它结构, 可以使这些结构的实现更加高效、 灵活; 同时, 本发明具有对数据的智慧处理和转换功能, 尽量将数据的处理靠近 存储器、 减少对总线的依赖, 从而能够减轻处理器的负担, 提高性能、 降 低功耗、 节省成本。 附图说明

图 1为现有软件 STACK的实现原理示意图;

图 2为现有硬件实现的 FIFO结构示意图;

图 3为本发明实施例硬件抽象数据结构的示意图

图 4为 HADS可实现的数据结构示意图;

图 5为本发明实施例 1中 HADS实现 FIFO的示意图;

图 6为本发明实施例 2中 HADS实现 TCM的示意图;

图 7为本发明实施例 3中 HADS实现 STACK的示意图;

图 8为本发明实施例 4中 HADS实现 Cache的示意图;

图 9为本发明实施例 5中 HADS实现查找表的示意图;

图 10为本发明实施例 6中 HADS实现 TREE的示意图;

图 11为 HADS内对数据处理的实例示意图;

图 12为 HADS在系统中可能的使用情况示意图;

图 13为 HADS与其他存储器共用的实例示意图。 具体实施方式

本发明实施例的基本思想是: 硬件抽象数据结构(HADS ) 包括: 通用 接口 (GI )、 控制和配置逻辑(CCL )和存储库(MP ); 其中, 所述 GI, 设 置为实现 HADS与处理器之间的交互; 所述 CCL, 设置为根据 GI接收的 配置命令对 MP进行硬件数据结构配置; 所述 MP, 设置为存储数据。

图 3为本发明实施例硬件抽象数据结构的示意图 如图 3所示, 该硬 件抽象数据结构包括: 通用接口 (General Interface, GI )、 控制和配置逻辑 ( Control and Configure Logic, CCL )和存储库( Memory Pool, MP ), 其 中,

所述 GI,与处理器实现互联,设置为实现 HADS与处理器之间的交互; 所述 CCL,设置为根据 GI接收的配置命令对 MP进行硬件数据结构配 置; 具体的, 可以将 MP内的存储阵列 (Memory Array, MA )动态配置成 需要的硬件数据结构, 如 Cache、 TCM、 CAM, FIFO, BUFFER, HEAP, STACK, QUEUE, TABLE, LINK, TREE, GRAPHIC等结构。

所述 MP, 设置为存储数据。 这里所述的数据是一个广义的概念, 除了 具体的数据, 还可以包括索引、 指针等。 MP—般由大量的存储块(可以以 阵列表示, 但不限于阵列)组成, 一定大小的存储器可以配置成 n块存储 阵列 ( Memory Array, MA ), 每个存储阵列的作用完全可配置, 可能存储 的是索引, 也可能是指针或数据。 本发明将 MP 以外的部分称为硬件抽象 的数据结构智慧控制和互联(HADS_ICI )。

该 HADS还包括一致性接口 ( Coherence Interface , CI ), 设置为多核 之间的互联以及直接数据访问。

该 HADS还包括智慧逻辑( Intelligence Logic, IL ),

所述 CCL,还设置为根据 GI接收的命令控制数据在 MP到接口之间的 传输、 数据在 IL内的处理、 以及数据的旁路;

所述 IL, 设置为根据 CCL的控制, 对 MP中存储的数据进行处理。 所述 IL, 还设置为根据 CCL的控制输出处理后的数据, 或将处理后的 数据写回 MP。 HADS还可以包括一致性接口 (Coherence Interface, CI ): 用于多核之 间的互联, 也可用于直接数据访问 (如 DMA );

需要说明的是, 基于 HADS, 可以根据软件的需求, 将整个 MP配置 成不同的数据结构, 图 4为 HADS可实现的数据结构示意图, 如图 4所示, 系统可以将 MP配置成不同的数据结构, 即使这种数据结构正在使用也可 以动态的改变其属性, 另外, 所有这些数据结构输入或输出的数据或索引 等都可以通过 IL进行处理, 不是所有访问都必须返回数值给处理器, 数据 甚至可以在不同的数据结构之间进行流动, 以达到节省总线带宽, 减轻处 理器负担的目的, 处理器仅负责复杂的运算和控制, 从而提高处理性能。

本发明实施例还相应地提出一种数据处理方法 , 该方法包括: 处理器对 HADS进行配置, 将 HADS内的存储块配置成需要的硬件数 据结构, 之后采用所述配置的存储块进行数据存储。

所述处理器对 HADS进行配置, 将 HADS内的存储块配置成需要的硬 件数据结构为:

处理器通过 GI将配置命令发送给 CCL,所述配置命令至少携带需要配 置的硬件数据结构信息;

所述 CCL根据所述配置命令对 MP进行硬件数据结构配置, 将 MP中 的存储块配置成需要的硬件数据结构。

该方法还包括:

处理器通过 CI或 GI直接访问 MP内的数据;

所述 CCL控制数据在 MP到接口之间的传输、数据在 IL内的处理、以 及数据在 CI和 GI间的直通旁路。

该方法还包括:

所述 CCL控制 IL输出处理后的数据, 或将处理后的数据写回 MP。 所述处理器为本地处理器和 /或远端处理器。 本发明实施例还相应地提出一种数据处理系统 , 该系统包括处理器和 上述的 HADS。

所述处理器为本地处理器和 /或远端处理器, 多个处理器间可以共享同 一种或多种数据结构。 下面结合具体实施例对本发明的技术方案作进 一步详细说明。

实施例 1

图 5为本发明实施例 1中 HADS实现 FIFO的示意图,如图 5所示,本 实施例中, 根据一条简单的在 MP内配置一个 FIFO的命令(①), HADS 在 CCL的控制 (②)下将生成一个硬件 FIFO, 这个硬件 FIFO的特性, 包 括大小、数据输入输出的方向(来自 GI或 CI,也可以指定从 CI或 GI输出)、 以及可以使能旁路、 是否支持数据覆盖, 甚至可以根据 FIFO的状态产生中 断, 在使用过程中也可以使用命令适当改变 FIFO的属性。 在 IL的支持下, 可以对数据的输入 (③ )和输出 (④ )作运算或变换等操作, FIFO的数据 输入既可以来自处理器, 也可以是 HADS内其它结构输出的数据; 同样输 出可以直接返回给处理器, 也可以送到其它的数据结构。

实施例 2

图 6为本发明实施例 2中 HADS实现 TCM的示意图,可以看出,通过 配置, HADS可以简单地当作 TCM来使用, 该 TCM甚至可以在一个时钟 周期返回处理器或其它数据结构需要的数据, 节省对存储器的访问延迟, 提高处理器性能。

实施例 3

图 7为本发明实施例 3中 HADS实现 STACK的示意图, 图 7所示的 STACK完全可以达到图 1所示 STACK的灵活程度, 当软件觉得大小不够 使用时, 随时可以通过指令动态配置, 与图 1 不同的是, 这种方法实现的 STACK读写地址的生成完全由 IL来做, 不需要专门的地址生成逻辑。 实施例 4

图 8为本发明实施例 4中 HADS实现 Cache的示意图, Cache的实现 至少需要两块存储阵列, 分别作为 TAG和 DATA使用。 通过 IL和 CCL, 可以实现虚实地址转换, 甚至可以使用一块存储阵列来实现 TLB的功能。 通过一致性接口, 可以进行多核的互联以及实现 cache的一致性功能。

实施例 5

本实施例以查找表为例说明 TABLE的实现, 图 9为本发明实施例 5中 HADS 实现查找表的示意图, 具体的, 可以使用一个存储阵列来实现查找 表, 也可以使用多个存储阵列。 图 9 中④表示索引, 可以直接查表得到数 据⑥, 实现一级查找表的功能, 也可能查表得到的是下一个索引⑤, 实现 多级链表。

实施例 6

图 10为本发明实施例 6中 HADS实现 TREE的示意图, 其中, ④表示 树的根(root )指针, ⑤表示由 root指针得到的两个分支指针, 其中一个指 针取到了数据⑥, 到达了树的叶 (leaf ), 该分支结束; 另一个分支指针取 到的还是指针⑦, 将继续追踪(trace ), 直到所追踪的树叶, 取得需要的数 据⑧。 根据软件的需要, HADS可以实现复杂的树形结构, 而不限于图 10 的示例。

需要说明的是,从图 5到图 10仅是列举了 HADS可以实现的几种数据 结构, 在 CCL和 IL的控制下, HADS可以实现所有可以想到的数据结构, 数据可以在这些数据结构之间流动, IL可以对这些数据进行处理。 举例来 说,两个核之间通过 FIFO进行通信,如果两个核的大小端是动态可 置的, 在它们之间传输的数据也必须根据两个核配置 的变化进行大小端的匹配, 如果两个核的大小端是一致的, 则数据直接传输到 CI接口; 如果大小端不 一致, 则需要将数据按字节扭一下, 通过 IL很容易实现这个功能, HADS 内对数据处理的实例如图 11所示。

需要说明的是, 对于矩阵变换或位操作 (如位提取或插入)等数据量 大的操作, 使用 HADS更方便, 可以在 HADS内定义一个 BUFFER, 将处 理的中间结果先存入 BUFFER内, 待数据处理完后再返回给处理器。

HADS在系统中可能的使用情况如图 12所示, 可以看出, HADS的使 用非常灵活, 可以作为单核的内部存储器, 也可以作为多核的共享存储器; 还可以每个核拥有一个或多个 HADS , 核间通过一致性接口保证多核的 HADS内数据的一致性; 当然, 也可以作为外部存储器使用。

另外, 多个 HADS能相互连接组合成较大的 HADS; HADS与其它类 型的存储器也是可以共存的, 且 HADS与其它存储器间可以相互通信。 也 就是说, HADS 可以适用于任何处理器架构, 可以使用作为处理器的唯一 存储器, 也可以与其它存储器一起使用, HADS 与其他存储器共用的实例 如图 13所示。

总的来说, 与现有技术相比, HADS具有如下特点:

1 )动态可配置, 灵活多变, Memory作为何种数据结构使用完全由软 件决定;

2 )效率高, 完全可以达到固定硬件实现的效率;

3 ) Memory内多种数据结构可以并存, 数据可以在各种数据结构之间 流动, 减少了数据总线的流量, 有利于性能的提升和功耗的降低;

4 )可以对各种数据结构的输入输出数据进行处 , 减轻了处理器的 负担, 可以提高处理器的性能;

5 )使用灵活, 可以适用于任何处理器架构。

采用本发明实施例所述的 HADS, 与现有技术相比, 取得了软件实现 数据结构的灵活, 达到了硬件实现数据结构的高效, HADS 可以在任何处 理器架构下使用, 完全动态可配置, 智慧逻辑具有数据处理和转换能力, 降低了总线访问的频率, 有利于性能的提高和功耗的降低。 在 HADS内, 多种数据结构可以并存, 数据可以在各种数据结构之间流动, 智慧逻辑可 以对流动的数据进行处理, 减轻总线和处理器的负担, 从而达到提升性能 和降低功耗的目的。

以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。