CN112765086A - 固态存储中一种基于cache一致性的软硬件交互方法 - Google Patents
固态存储中一种基于cache一致性的软硬件交互方法 Download PDFInfo
- Publication number
- CN112765086A CN112765086A CN202011609146.8A CN202011609146A CN112765086A CN 112765086 A CN112765086 A CN 112765086A CN 202011609146 A CN202011609146 A CN 202011609146A CN 112765086 A CN112765086 A CN 112765086A
- Authority
- CN
- China
- Prior art keywords
- task
- command
- address
- cpu
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出了固态存储中一种基于cache一致性的软硬件交互方法,其利用CPU自带的Cache一致性系统,实现CPU之间以及CPU和加速器之间的通讯,以较小面积和较低的功耗实现CPU之间以及CPU和加速器之间的通讯。
Description
技术领域
本发明涉及计算机领域,具体涉及固态存储中一种基于cache一致性的软硬件交互方法。
背景技术
在单核CPU结构中,为了缓解CPU指令流水中cycle冲突,L1分成了指令(L1P)和数据(L1D)两部分,而L2则是指令和数据共存。多核CPU的结构与单核相似,但是多了所有CPU共享的L3三级缓存。在多核CPU的结构中,L1和L2是CPU私有的,L3则是所有CPU核心共享的。
缓存一致性:在多核CPU与加速器共享的系统中,内存中的数据会在多个核心中存在数据副本,某一个核心发生修改操作,就产生了数据不一致的问题。而一致性协议MESI/MOESI正是用于保证多个CPU cache之间缓存共享数据的一致。
M(Modified)当M位为1时表示当前Cache行中包含的数据与存储器中的数据不一致,而且它仅在本CPU的Cache中有效,不存在其它CPU的Cache中。当CPU对这个Cache行进行替换操作时,必然会引发系统总线的写周期。
E(Exclusive)当E为1时表示当前Cache行中包含数据有效,而且该数据仅在当前CPU的Cache中有效,而不在其它CPU的Cache中存在拷贝。该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器中的数据一致。
发明内容
本发明提出了固态存储中一种基于cache一致性的软硬件交互方法,其利用CPU自带的Cache一致性系统,实现CPU之间以及CPU和加速器之间的通讯,以较小面积和较低的功耗实现CPU之间以及CPU和加速器之间的通讯。
具体而言,在基于cache一致性的软硬件交互方法中,对于每一个UFS的命令以及其子任务,将所述子任务分成任务地址、命令描述和数据;
当系统有命令或者子命令到来时,查询Buff manager unit/17模块,获取系统空闲ID;
根据系统预先分配好的系统地址CSM/18_base address和Chip buff/19_baseaddress和当前空闲ID,写入所述命令描述和数据;
将所述命令或子命令的ID回写到Task address unit/18,由所述Task addressunit/18统一分配任务;
所述Task address unit/18通过电平信号通知CPU和加速器有任务;
所述加速器ACC/20通过Task address unit/18的任务电平信号获取所述任务,并且所述CPU通过所述task address unit/18获取所述任务。
进一步地,所述任务地址为每一个命令/任务的系统地址,所述命令描述为每一个命令/任务的描述,所述数据为每一个命令/任务需要传输的数据。
进一步地,所述CSM/8位于CPU cluster内部,且为4个CPU和加速器共享;
所述CPU之间以及CPU与加速器之间由Cache coherence/12通过MESI/MOESI协议维护数据的一致性;并且,
所述CPU与所述加速器之间通过AMBA/13通信。
进一步地,所述模块ACC/20、/CPU0/0、CPU1/1、CPU2/2、CPU3/3中的每一个加速器或者CPU通过往不同的地址回写消息。
进一步地,所述Task address unit/18支持空消息,防止所述CPU和ACC通过outstanding/burst读空当前系统任务。
进一步地,当所述加速器ACC/20通过Task address unit/18的任务电平信号获取任务时:
通过AMBA/13发送outstanding/burst命令到Task address unit/18获取相关任务的地址,空消息丢弃,停止发送相关的获取任务的命令;
通过任务地址获取相关消息的描述符;
读取相关数据进行处理,并回写所述数据;
回写相关描述符和任务地址。
进一步地,当加速器不能正常工作时,通过task address unit/18的dispatch/21模块快速将任务划分给CPU。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图来获得其他的附图。
图1示出了根据本发明的软/硬件接口的示意图;
图2示出了根据本发明的Task address unit/18模块的示意图。
图3-5基于软/硬件接口示出了根据本发明的交互方法的工作流程。
具体实施方式
在下文中,本发明的示例性实施例将参照附图来详细描述。下面的实施例以举例的方式提供,以便充分传达本发明的精神给本发明所属领域的技术人员。因此,本发明不限于本文公开的实施例。
在根据本发明的基于cache一致性的软硬件交互方法中,对每一个UFS的命令(command)以及其子任务(sub command),同时生成任务描述符和系统地址消息。即将一个子任务分成三部分,即:任务地址、命令描述和数据。
其中,任务地址为每一个命令/任务的系统地址,共4Byte;命令描述为每一个命令/任务的描述,共64Byte;数据为每一个命令/任务需要传输的数据。
当系统有命令(command)或者子命令(sub command)到来时,查询Buff managerunit/17模块,获取系统空闲地址。
根据系统预先分配好的系统地址CSM/18_base address和Chip buff/19_baseaddress,可以将相应的命令描述写入9/10/11,将相应的数据写入14/15/16。
填写Task address unit/18,将该命令(command)或者子命令(sub command)的地址回写到Task address unit/18,由task address unit/18统一分配任务。
其中,CSM/8位于CPU cluster内部,相当于L3 cache,为4个CPU和加速器共享。CPU之间以及CPU与加速器之间由Cache coherence/12通过MESI/MOESI协议维护数据的一致性。CPU与加速器之间通过AMBA/13通信。
Task address unit/18通过电平信号通知CPU和加速器有任务。其中Taskaddress unit/18支持如下特性:
1、每一个模块ACC/20、/CPU0/0、CPU1/1、CPU2/2、CPU3/3通过往不同的地址回写消息且Task address unit/18slave的地址分配支持outstanding/Burst。
2、Task address unit/18必须支持空消息,防止CPU和ACC通过outstanding/burst读空当前系统任务。
3、Task address unit/18的任务分配系统可以任意指派,且可以设置multicycle。以平衡任务复杂度和后端实现问题。
加速器ACC/20通过Task address unit/18的任务电平信号获取本模块的任务。其处理任务的步骤如下:
1、通过AMBA/13发送outstanding/burst命令到Task address unit/18获取相关任务的地址,空消息丢弃,停止发送相关的获取任务的命令。
2、通过相关任务的地址获取相关消息的描述符(message description),获得怎么处理相关任务的描述符。由于该描述符处于cluster内部且描述符有64B,可以关注只需要的部分或者回写只需要的部分。为了防止写改读,读改写操作,需要注意读取/回写的粒度等一般以cacheline大小为单位。
3、读取相关data进行处理,并回写data。
4、回写相关(message description)和task address。
CPU通过task address unit/18获取任务。由于相关任务描述符处于cluster内部,此时CPU不便于处理数据(chip buff/19)。但是CPU可以快速检测ACC/20处理的结果,快速完成CPU本身的任务处理,快速回写CPU自己处理的结果。由于Cache coherence/12的存在,对于load比较大的任务,可以通过多个CPU并行快速处理相关任务。
当某个加速器出现问题不能正常工作时,可以通过task address unit/18的dispatch/21模块快速将该任务划分给CPU,保证系统的正常的工作。
借助本发明的交互方法,使用CPU的cache coherence空间存放task description(任务描述符),方便CPU之间以及CPU与加速器之间共享数据。通过task address unit/18完成CPU之间以及CPU与加速器之间的任务传递。通过task address unit/18的dispatch/21模块高效的分发任务。ACC出现异常时,可以由CPU代替其工作。Task address unit/18的任务分发信号可以任意指派和设置multicycle。便于任务的灵活调度和后端实现。当某个load较大时,可以多个CPU同时工作,并行完成该load。任务描述符具有统一的格式,便于CPU流水线工作。加速器获取任务的方式可以高效的流水线处理。CPU之间以及CPU与加速器之间可以获取空消息。CPU之间以及CPU与加速器之间任务描述符根据cacheline访问粒度分配,减轻Cache coherence模块的数据搬移操作。任务描述符集中管理,由于任务描述符高度的相似性,地址集中,CPU流水线可以高效的工作。
因此,通过将CPU与CPU之间以及CPU与加速器之间的任务描述符放于Cluster内部以及通过task address unit/18和buff manage unit等模块高效的实现CPU与CPU之间以及CPU与加速器之间的消息和任务描述符(task description)等传递。减低了CPU的IO负载的同时,加快了CPU的执行效率。ACC可以高效的实现流水线,降低实现难度和功耗。获取较大的面积和功耗收益。
尽管前面结合附图通过具体实施例对本发明进行了说明,但是,本领域技术人员容易认识到,上述实施例仅仅是示例性的,用于说明本发明的原理,其并不会对本发明的范围造成限制,本领域技术人员可以对上述实施例进行各种组合、修改和等同替换,而不脱离本发明的精神和范围。
Claims (7)
1.固态存储中一种基于cache一致性的软硬件交互方法,其中,对于每一个UFS的命令以及其子任务,将所述子任务分成任务地址、命令描述和数据;
当系统有命令或者子命令到来时,查询Buff manager unit/17模块,获取系统空闲地址;
根据系统预先分配好的系统地址CSM/18_base address和Chip buff/19_baseaddress,写入所述命令描述和数据;
将所述命令或子命令的地址回写到Task address unit/18,由所述Task addressunit/18统一分配任务;
所述Task address unit/18通过电平信号通知CPU和加速器有任务;
所述加速器ACC/20通过Task address unit/18的任务电平信号获取所述任务,并且所述CPU通过所述task address unit/18获取所述任务。
2.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,所述任务地址为每一个命令/任务的系统地址,所述命令描述为每一个命令/任务的描述,所述数据为每一个命令/任务需要传输的数据。
3.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,所述CSM/8位于CPUcluster内部,且为4个CPU和加速器共享;
所述CPU之间以及CPU与加速器之间由Cache coherence/12通过MESI/MOESI协议维护数据的一致性;并且,
所述CPU与所述加速器之间通过AMBA/13通信。
4.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,所述模块ACC/20、/CPU0/0、CPU1/1、CPU2/2、CPU3/3中的每一个通过往不同的地址回写消息。
5.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,所述Task addressunit/18支持空消息,防止所述CPU和ACC通过outstanding/burst读空当前系统任务。
6.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,当所述加速器ACC/20通过Task address unit/18的任务电平信号获取任务时:
通过AMBA/13发送outstanding/burst命令到Task address unit/18获取相关任务的地址,空消息丢弃,停止发送相关的获取任务的命令;
通过任务地址获取相关消息的描述符;
读取相关数据进行处理,并回写所述数据;
回写相关描述符和任务地址。
7.如权利要求1所述的基于cache一致性的软硬件交互方法,其中,当加速器不能正常工作时,通过task address unit/18的dispatch/21模块快速将任务划分给CPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011609146.8A CN112765086B (zh) | 2020-12-30 | 2020-12-30 | 固态存储中一种基于cache一致性的软硬件交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011609146.8A CN112765086B (zh) | 2020-12-30 | 2020-12-30 | 固态存储中一种基于cache一致性的软硬件交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765086A true CN112765086A (zh) | 2021-05-07 |
CN112765086B CN112765086B (zh) | 2023-09-08 |
Family
ID=75697516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011609146.8A Active CN112765086B (zh) | 2020-12-30 | 2020-12-30 | 固态存储中一种基于cache一致性的软硬件交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765086B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042679A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 维护存储器一致性的方法和系统 |
US20170270043A1 (en) * | 2016-03-18 | 2017-09-21 | Industry-Academic Cooperation Foundation, Yonsei University | Device for maintaining data consistency between hardware accelerator and host system and method thereof |
CN107957970A (zh) * | 2017-10-23 | 2018-04-24 | 记忆科技(深圳)有限公司 | 一种异构多核的通讯方法及固态硬盘控制器 |
CN108132834A (zh) * | 2017-12-08 | 2018-06-08 | 西安交通大学 | 多级共享高速缓冲存储器架构下的任务分配方法和系统 |
CN111538679A (zh) * | 2020-05-12 | 2020-08-14 | 中国电子科技集团公司第十四研究所 | 一种基于内嵌dma的处理器数据预取设计 |
US20200379664A1 (en) * | 2019-05-29 | 2020-12-03 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
-
2020
- 2020-12-30 CN CN202011609146.8A patent/CN112765086B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042679A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 维护存储器一致性的方法和系统 |
US20170270043A1 (en) * | 2016-03-18 | 2017-09-21 | Industry-Academic Cooperation Foundation, Yonsei University | Device for maintaining data consistency between hardware accelerator and host system and method thereof |
CN107957970A (zh) * | 2017-10-23 | 2018-04-24 | 记忆科技(深圳)有限公司 | 一种异构多核的通讯方法及固态硬盘控制器 |
CN108132834A (zh) * | 2017-12-08 | 2018-06-08 | 西安交通大学 | 多级共享高速缓冲存储器架构下的任务分配方法和系统 |
US20200379664A1 (en) * | 2019-05-29 | 2020-12-03 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
CN111538679A (zh) * | 2020-05-12 | 2020-08-14 | 中国电子科技集团公司第十四研究所 | 一种基于内嵌dma的处理器数据预取设计 |
Non-Patent Citations (1)
Title |
---|
田立 等: "基于嵌入式多核 DSP 系统的并行粒子滤波目标跟踪", 《红外与激光工程》, vol. 43, no. 7, pages 2354 - 2361 * |
Also Published As
Publication number | Publication date |
---|---|
CN112765086B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327109B2 (en) | GPU support for garbage collection | |
CN108268385B (zh) | 具有集成目录高速缓存的优化的高速缓存代理 | |
US20230214326A1 (en) | Computer Memory Expansion Device and Method of Operation | |
CN101354682B (zh) | 一种用于解决多处理器访问目录冲突的装置和方法 | |
US7698373B2 (en) | Method, processing unit and data processing system for microprocessor communication in a multi-processor system | |
US7600076B2 (en) | Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing store with reserve and load when reservation lost instructions | |
US8117389B2 (en) | Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions | |
JP4566264B2 (ja) | 格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム | |
US8239866B2 (en) | Reduction of memory latencies using fine grained parallelism and FIFO data structures | |
US7581067B2 (en) | Load when reservation lost instruction for performing cacheline polling | |
JP2001051959A (ja) | 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード | |
US8862828B2 (en) | Sub-numa clustering | |
US20180173627A1 (en) | Dynamic memory control method and system thereof | |
US20090164747A1 (en) | Method,system and apparatus for memory address mapping for sub-socket partitioning | |
US9009420B2 (en) | Structure for performing cacheline polling utilizing a store and reserve instruction | |
CN115981833A (zh) | 一种任务处理方法及装置 | |
CN117377943A (zh) | 存算一体化并行处理系统和方法 | |
US20090083496A1 (en) | Method for Improved Performance With New Buffers on NUMA Systems | |
US9983874B2 (en) | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling | |
WO2024051292A1 (zh) | 数据处理系统、内存镜像方法、装置和计算设备 | |
CN112765086B (zh) | 固态存储中一种基于cache一致性的软硬件交互方法 | |
US7089372B2 (en) | Local region table for storage of information regarding memory access by other nodes | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
CN118363900B (zh) | 一种具备扩展性和灵活性的数据流加速设备及方法 | |
CN118363900A (zh) | 一种具备扩展性和灵活性的数据流加速设备及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |