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

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

Info

Publication number
CN112765086B
CN112765086B CN202011609146.8A CN202011609146A CN112765086B CN 112765086 B CN112765086 B CN 112765086B CN 202011609146 A CN202011609146 A CN 202011609146A CN 112765086 B CN112765086 B CN 112765086B
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.)
Active
Application number
CN202011609146.8A
Other languages
English (en)
Other versions
CN112765086A (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

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之间缓存共享数据的一致。
M(Modified)当M位为1时表示当前Cache行中包含的数据与存储器中的数据不一致,而且它仅在本CPU的Cache中有效,不存在其它CPU的Cache中。当CPU对这个Cache行进行替换操作时,必然会引发系统总线的写周期。
E(Exclusive)当E为1时表示当前Cache行中包含数据有效,而且该数据仅在当前CPU的Cache中有效,而不在其它CPU的Cache中存在拷贝。该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器中的数据一致。
S(Shared)当S位为1时表示Cache行中包含的数据有效,而且在当前CPU和其它CPU中存在副本。在该Cache行中的数据是当前处理器系统中最新的数据拷贝,而且与存储器数据一致。
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 CN112765086A (zh) 2021-05-07
CN112765086B true 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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042679A (zh) * 2006-03-23 2007-09-26 国际商业机器公司 维护存储器一致性的方法和系统
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的处理器数据预取设计

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101842764B1 (ko) * 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US11586369B2 (en) * 2019-05-29 2023-02-21 Xilinx, Inc. Hybrid hardware-software coherent framework

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042679A (zh) * 2006-03-23 2007-09-26 国际商业机器公司 维护存储器一致性的方法和系统
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的处理器数据预取设计

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于嵌入式多核 DSP 系统的并行粒子滤波目标跟踪;田立 等;《红外与激光工程》;第第43卷卷(第第7期期);2354-2361页 *

Also Published As

Publication number Publication date
CN112765086A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US8850081B2 (en) Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US20230214326A1 (en) Computer Memory Expansion Device and Method of Operation
JP5643903B2 (ja) 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
TW201333700A (zh) 支援共用虛擬記憶的異質計算系統中用於轉換旁視緩衝器終止的方法及設備
US8151081B2 (en) Method, system and apparatus for memory address mapping for sub-socket partitioning
JP4566264B2 (ja) 格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム
US11366752B2 (en) Address mapping between shared memory modules and cache sets
US20180173627A1 (en) Dynamic memory control method and system thereof
US9213656B2 (en) Flexible arbitration scheme for multi endpoint atomic accesses in multicore systems
CN101216781B (zh) 一种多处理器系统、装置及方法
TW201308204A (zh) 多核心共享頁遺失處置器
US9183150B2 (en) Memory sharing by processors
US20070220211A1 (en) Load when reservation lost instruction for performing cacheline polling
US10216634B2 (en) Cache directory processing method for multi-core processor system, and directory controller
EP4060505A1 (en) Techniques for near data acceleration for a multi-core architecture
US20090083496A1 (en) Method for Improved Performance With New Buffers on NUMA Systems
CN112765086B (zh) 固态存储中一种基于cache一致性的软硬件交互方法
KR20140038075A (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
Liu et al. Hippogriff: Efficiently moving data in heterogeneous computing systems
US8938588B2 (en) Ensuring forward progress of token-required cache operations in a shared cache
US7120758B2 (en) Technique for improving processor performance
JPWO2012127534A1 (ja) バリア同期方法、バリア同期装置及び演算処理装置
US20230114263A1 (en) Hardware assisted efficient memory management for distributed applications with remote memory accesses
KR20090054780A (ko) 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법
KR20080089621A (ko) 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체

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