CN112765086A - 固态存储中一种基于cache一致性的软硬件交互方法 - Google Patents

固态存储中一种基于cache一致性的软硬件交互方法 Download PDF

Info

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
Application number
CN202011609146.8A
Other languages
English (en)
Other versions
CN112765086B (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.)
Zeshi Technology Wuhan Co Ltd
Beijing Zeshi Technology Co ltd
Original Assignee
Zeshi Technology Wuhan Co Ltd
Beijing Zeshi Technology Co ltd
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 Zeshi Technology Wuhan Co Ltd, Beijing Zeshi Technology Co ltd filed Critical Zeshi Technology Wuhan Co Ltd
Priority to CN202011609146.8A priority Critical patent/CN112765086B/zh
Publication of CN112765086A publication Critical patent/CN112765086A/zh
Application granted granted Critical
Publication of CN112765086B publication Critical patent/CN112765086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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一致性的软硬件交互方法
技术领域
本发明涉及计算机领域,具体涉及固态存储中一种基于cache一致性的软硬件交互方法。
背景技术
在单核CPU结构中,为了缓解CPU指令流水中cycle冲突,L1分成了指令(L1P)和数据(L1D)两部分,而L2则是指令和数据共存。多核CPU的结构与单核相似,但是多了所有CPU共享的L3三级缓存。在多核CPU的结构中,L1和L2是CPU私有的,L3则是所有CPU核心共享的。
缓存一致性:在多核CPU与加速器共享的系统中,内存中的数据会在多个核心中存在数据副本,某一个核心发生修改操作,就产生了数据不一致的问题。而一致性协议MESI/MOESI正是用于保证多个CPU cache之间缓存共享数据的一致。
Figure BDA0002870854230000011
M(Modified)当M位为1时表示当前Cache行中包含的数据与存储器中的数据不一致,而且它仅在本CPU的Cache中有效,不存在其它CPU的Cache中。当CPU对这个Cache行进行替换操作时,必然会引发系统总线的写周期。
Figure BDA0002870854230000012
E(Exclusive)当E为1时表示当前Cache行中包含数据有效,而且该数据仅在当前CPU的Cache中有效,而不在其它CPU的Cache中存在拷贝。该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器中的数据一致。
Figure BDA0002870854230000013
S(Shared)当S位为1时表示Cache行中包含的数据有效,而且在当前CPU和其它CPU中存在副本。在该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器数据一致。
Figure BDA0002870854230000014
I(Invalid)当I位为1表示当前Cache行中没有有效数据或者该Cache行没有使能。MESI协议进行Cache行替换时,将优先使用I位为1的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。
CN202011609146.8A 2020-12-30 2020-12-30 固态存储中一种基于cache一致性的软硬件交互方法 Active CN112765086B (zh)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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