CN108628638A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN108628638A CN108628638A CN201710157711.3A CN201710157711A CN108628638A CN 108628638 A CN108628638 A CN 108628638A CN 201710157711 A CN201710157711 A CN 201710157711A CN 108628638 A CN108628638 A CN 108628638A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- address
- external storage
- assembly line
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 87
- 238000004891 communication Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 claims description 2
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000002679 ablation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
本申请公开了数据处理方法及装置,可降低大小端数据格式不一致时的加载命中时延。方法包括:获取处理器指令流水线发送的读指令,读指令包括待读取的第一数据在Cache的外部存储中的地址信息,Cache的读写宽度为2P字节,第一数据的字节数K≤P;当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,根据第一数据在外部存储中的地址信息,确定第二数据在Cache中的地址信息,第二数据为第三数据中与第一数据对应的数据,第三数据为将包含第一数据的cacheline进行大小端格式转换后得到的数据;根据第二数据在Cache中的地址信息,从Cache中读取2P字节的第四数据;将第四数据循环右移第一字节,得到第五数据;将第五数据中的第二数据发送给处理器指令流水线。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及数据处理方法及装置。
背景技术
通常,一个计算机设备的硬件系统需要同时支持大端数据格式和小端数据格式。但是为了简化设计,目前,计算机设备中的处理器指令流水线(Instruction Pipeline)往往只支持一种数据格式,比如仅支持小端数据格式或者仅支持大端数据格式。
这样,在计算机设备将某个缓存(Cache)的外部存储(External Memory)的数据以cacheline的形式写入该Cache中之后,在计算机设备将从该Cache中读取的数据送至处理器指令流水线处理之前,首先需要进行数据格式的匹配。当外部存储工作中的数据格式与处理器指令流水线支持的数据格式一致(Endianness match)时才能送至处理器指令流水线处理。当外部存储工作中的数据格式与处理器指令流水线支持的数据格式不一致(Endianness Mismatch)时,如图1所示,从Cache中读取的数据需要分别经过右移数据对齐(Data Alignment)、大小端数据格式转换(Endian Conversion)和符号位扩展(SignExtension)等加载命中路径(Load Hit Path)才能送到处理器指令流水线做后续的处理,在这过程中,由于大小端数据格式不一致而引入的大小端数据格式转换处理逻辑必然导致加载命中延时(Load Hit Latency)的增加。考虑到加载命中路径往往是高速缓存设计的关键路径,因此,如何降低大小端数据格式不一致时的加载命中时延,是目前亟待解决的问题。
发明内容
本申请实施例提供数据处理方法及装置,以至少降低大小端数据格式不一致时的加载命中时延。
为达到上述目的,本申请实施例提供如下技术方案:
第一方面,提供一种数据处理方法,该方法包括:获取处理器指令流水线发送的读指令,该读指令包括待读取的第一数据在缓存Cache的外部存储中的地址信息,其中,该Cache的读写宽度为2P字节,该第一数据的字节数K≤P,K和P均为正整数;当该外部存储支持的数据格式与该处理器指令流水线支持的数据格式不一致时,根据该第一数据在该外部存储中的地址信息,确定第二数据在该Cache中的地址信息,其中,该第二数据为第三数据中与该第一数据对应的数据,该第三数据为将包含该第一数据的高速缓存块cacheline进行大小端格式转换后得到的数据,该cacheline的大小≥2P;根据该第二数据在该Cache中的地址信息,从该Cache中读取2P字节的第四数据,其中,该第四数据中包含该第二数据;将该第四数据循环右移第一字节,得到第五数据,其中,该第五数据中包含该第二数据,该第二数据为该第五数据对应的2P字节地址中低K位地址上的数据,Index 1=~(Address[n:0]+K–1),Index1表示该第一字节,~表示取反,n=log2P,Address[n:0]表示该第一数据在该Cache的外部存储中的首地址中低(n+1)位地址的值;将该第二数据发送给该处理器指令流水线。也就是说,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,从Cache中读取的数据是经过大小端格式转换后的数据,因此在从Cache中读数据之后,不需要再进行大小端格式转换,从而避免了现有技术中从Cache中读数据之后,由于大小端数据格式不一致而引入的大小端数据格式转换处理逻辑导致的加载命中延时增加的问题,降低了大小端数据格式不一致时的加载命中时延。
在一种可能的设计中,在根据该第二数据在该Cache中的地址信息,从该Cache中读取2P字节的第四数据之前,还包括:从该Cache的外部存储中读取包含该第一数据的cacheline;将该包含该第一数据的cacheline进行大小端数据格式转换,得到该第三数据;将该第三数据写入该Cache中。基于该方案,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,可以将外部存储中的数据写入Cache中,并且写入Cache中的数据为经过大小端格式转换后的数据。进而,在从Cache中读取数据之后,不需要再进行大小端格式转换,从而避免了现有技术中从Cache中读数据之后,由于大小端数据格式不一致而引入的大小端数据格式转换处理逻辑导致的加载命中延时增加的问题,降低了大小端数据格式不一致时的加载命中时延。
在一种可能的设计中,在获取处理器指令流水线发送的读指令之后,还包括:当该外部存储支持的数据格式与该处理器指令流水线支持的数据格式一致时,根据该第一数据在该外部存储中的地址信息,从该Cache中读取2P字节的第六数据,其中,该第六数据中包含该第一数据;将该第六数据循环右移第二字节,得到第七数据,该第七数据中包含该第一数据,该第一数据为该第七数据对应的2P字节地址中低K位地址上的数据,其中,Index2=Address[n:0],Index2表示该第二字节,n=log2P,Address[n:0]表示该第一数据在该Cache的外部存储中的首地址中低(n+1)位地址的值;将该第一数据发送给该处理器指令流水线。基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将Cache中的数据发送给处理器指令流水线。
在一种可能的设计中,在根据该第一数据在该外部存储中的地址信息,从该Cache中读取2P字节的第六数据之前,还包括:从该Cache的外部存储中读取包含该第一数据的cacheline;将该包含该第一数据的cacheline写入该Cache中。基于该方案,当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,可以将外部存储中的数据写入Cache中。
在一种可能的设计中,该方法还包括:获取该处理器指令流水线发送的写指令,该写指令包括待写入的第八数据和该第八数据的字节数T,其中,T≤P,T为整数;当该外部存储支持的数据格式与该处理器指令流水线支持的数据格式不一致时,将该第八数据循环左移第三字节数,得到2P字节的第九数据,其中,Index 3=~(Address[n:0]+T–1),Index3表示该第三字节数;将该第九数据写入该Cache中。基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,将处理器指令流水线中的数据写入Cache中。
在一种可能的设计中,在获取该处理器指令流水线发送的写指令之后,还包括:当该外部存储支持的数据格式与该处理器指令流水线支持的数据格式一致时,将该第八数据循环左移第四字节数,得到2P字节的第十数据,其中,Index 4=(Address[n:0]),Index4表示该第四字节数;将该第十数据写入该Cache中。基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将处理器指令流水线中的数据写入Cache中。
第二方面,本申请实施例提供一种数据处理装置,该数据处理装置具有实现上述方法实施例中数据处理装置行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供一种数据处理装置,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该数据处理装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该数据处理装置执行如上述第一方面任意一项的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述数据处理装置所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任意一项的数据处理方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面中任意一项的数据处理方法。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为现有技术中大小端数据格式不一致时的数据处理逻辑框图;
图2为本申请实施例所适用的一个分层存储的多核系统的架构示意图;
图3为本申请实施例提供的一种数据处理装置的硬件结构示意图;
图4为本申请实施例提供的数据处理方法的流程示意图一;
图5为本申请实施例提供的大小端数据格式不一致时的数据处理逻辑框图;
图6为本申请实施例提供的数据处理方法的流程示意图二;
图7为本申请实施例提供的数据处理方法的示例示意图一;
图8为本申请实施例提供的数据处理方法的示例示意图二;
图9为本申请实施例提供的数据处理方法的示例示意图三;
图10为本申请实施例提供的数据处理方法的示例示意图四;
图11为本申请实施例提供的数据处理装置的结构示意图一;
图12为本申请实施例提供的数据处理装置的结构示意图二;
图13为本申请实施例提供的数据处理装置的结构示意图三。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请的描述中,“多个”是指两个或多于两个。
图2为本申请实施例所适用的一个分层存储的多核系统的架构示意图。如图2所示,该多核系统100包括:总线101、与总线101相连的多核处理器102、以及与总线101相连的存储器103。
其中,存储器103具体可以是随机存取存储器(英文:Random Access Memory,缩写:RAM)、或者动态随机存取存储器(英文:Dynamic Random Access Memory,缩写:DRAM)等等,本申请实施例对此不作具体限定。
总线101可以是外设部件互连标准(英文:Peripheral Component Interconnect,缩写:PCI)总线或扩展工业标准结构(英文:Extended Industry Standard Architecture,缩写:EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线
多核处理器102包括多个处理器核,如处理器核102a、处理器核102b、……、处理器核102c,这些处理器核具体可以是中央处理单元(英文:Central Processing Unit,缩写:CPU)核,也可以是图形处理器(英文:Graphic Processing Unit,缩写:GPU)核,本申请实施例对此不作具体限定。其中,这些处理器核主要用于执行计算,每一个处理器核有自己的一级缓存(英文:Level 1Cache,缩写:L1C)和二级缓存(Level 2Cache,缩写:L2C);多个处理器核共用一个最后一级缓存(英文:Last Level Cache,缩写:LLC);多个多核处理器共用一个存储器。当某一个处理器核接收到一条读取数据的指令时,首先在L1C中查看是否存在该地址,如果存在则该处理器核直接从L1C中读取该数据,如果该地址不存在,则该处理器核会继续到L2C中查找,以此类推。
当然,本申请实施例也适用于有类似分层存储结构的单核系统或者其他包含Cache的系统,本申请实施例对此不作具体限定。
如图3所示,为本申请实施例提供的一种数据处理装置30的硬件结构示意图。该数据处理装置30包括处理器301、存储器302、通信接口304和总线303。其中,处理器301、通信接口304和存储器302通过总线303相互连接。
处理器301是数据处理装置30的控制中心,通过总线303连接整个数据处理装置30的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行数据处理装置30的各种功能和处理数据,从而对数据处理装置30进行整体监控。
可选的,该处理器301可以是上述图2中的任意一个处理器核。
存储器302可用于存储软件程序以及模块,处理器301通过运行存储在存储器302中的软件程序以及模块,从而执行数据处理装置30的各种功能应用以及数据处理。存储器302主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序2等;存储数据区可存储根据数据处理装置30的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
可选的,该存储器302可以是上述图2中的存储器。
总线303可以是PCI总线或EISA总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,该总线303可以是上述图2中的总线。
通信接口304用于数据处理装置30与外部设备的通信。
尽管未示出,数据处理装置30还可能包括射频(英文:Radio Frequency,缩写:RF)电路、音频电路、通信接口和/或多种传感器,本申请实施例对此不作具体限定。
其中,当处理器301为上述图2中的任意一个处理器核,存储器302为上述图2中的存储器,总线303为上述图2中的总线时,本申请实施例提供的数据处理装置30可以是上述图2中的多核系统,本申请实施例对该情况不作具体限定。
如图4所示,为本申请实施例提供的数据处理方法的流程示意图,包括如下步骤:
S401、数据处理装置获取处理器指令流水线发送的读指令,该读指令包括待读取的第一数据在Cache的外部存储中的地址信息。
其中,Cache的读写宽度为2P字节,第一数据的字节数K≤P,K和P均为正整数。
本申请实施例中,Cache的读写宽度为2P字节具体是指,从Cache中读取数据时,每次读取2P字节的数据;将数据写入Cache中时,每次写入2P字节的数据。
其中,当本申请实施例中的数据处理装置为上述图2中的多核系统时,步骤S401中的Cache可以是L1C,Cache的外部存储可以是L2C,LLC或者存储器等,本申请实施例对此不作具体限定。
S402、当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,数据处理装置根据第一数据在外部存储中的地址信息,确定第二数据在Cache中的地址信息,其中,第二数据为第三数据中与第一数据对应的数据,第三数据为将包含第一数据的高速缓存块(cacheline)进行大小端格式转换后得到的数据,cacheline的大小≥2P。
S403、数据处理装置根据第二数据在Cache中的地址信息,从Cache中读取2P字节的第四数据,其中,第四数据中包含第二数据。
S404、数据处理装置将第四数据循环右移第一字节,得到第五数据,第五数据中包含第二数据,该第二数据为第五数据对应的2P字节地址中低K位地址上的数据。
其中,Index 1=~(Address[n:0]+K–1),Index1表示第一字节,~表示取反,n=log2P,Address[n:0]表示第一数据在Cache的外部存储中的首地址中低(n+1)位地址的值。
需要说明的是,本申请实施例中,数据循环右移是为了实现数据右对齐。之所以进行数据右对齐,是由于处理器指令流水线在读取数据时,最右端字节即为读取指令首地址对应的字节,因此数据在发送给处理器指令流水线前,需要进行数据右对齐,在此进行统一说明,以下不再赘述。
S405、数据处理装置将第二数据发送给处理器指令流水线。
即,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,从Cache中读取的数据是经过大小端格式转换后的数据,因此在从Cache中读取数据之后,不需要再进行大小端格式转换。
如图5所示,为本申请实施例提供的大小端数据格式不一致时的数据处理逻辑框图。由图5可以看出,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,大小端格式转换位于Cache的写通道中,也就是说,是在数据从外部存储写入Cache的过程中进行了大小端格式转换,进而,在从Cache中读取数据时,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,可以直接从Cache中读取经过大小端转换后的数据,并经过数据右对齐操作,得到所需的数据。
需要说明的是,图5中的符号位扩展在本申请提供的数据处理方法中是个可选的操作,具体实现可参考现有的处理方式,本申请实施例对此不作具体限定。
基于本申请实施例提供的数据处理方法,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,根据第一数据在外部存储中的地址信息,确定第二数据在Cache中的地址信息,其中,该第二数据为第三数据中与第一数据对应的数据,该三数据为将包含第一数据的cacheline进行大小端格式转换后得到的数据;进而根据第二数据在Cache中的地址信息,从Cache中读取包含第二数据的2P字节的第四数据;然后将第四数据循环右移第一字节,得到包含第二数据的第五数据,并将第二数据发送给处理器指令流水线,该第二数据为第五数据对应的2P字节的地址中低K位地址上的数据。也就是说,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,从Cache中读取的数据是经过大小端格式转换后的数据,因此在从Cache中读数据之后,不需要再进行大小端格式转换,从而避免了现有技术中从Cache中读数据之后,由于大小端数据格式不一致而引入的大小端数据格式转换处理逻辑导致的加载命中延时增加的问题,降低了大小端数据格式不一致时的加载命中时延。
进一步的,在数据处理装置根据第二数据在Cache中的地址信息,从Cache中读取2P字节的第四数据(步骤S403)之前,还可以包括:
数据处理装置从Cache的外部存储中读取包含第一数据的cacheline;将包含第一数据的cacheline进行大小端数据格式转换,得到第三数据;将第三数据写入Cache中。
需要说明的是,本申请实施例中,由于Cache的读写宽度为2P字节,cacheline的大小≥2P,而第三数据的大小为cacheline的大小,因此在将第三数据写入Cache中时,可能是经过多次写入过程写入的,比如,若cacheline的大小为4P,则是分两次写入过程写入的,本申请实施例对此不作具体限定。
基于该方案,当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,可以将外部存储中的数据写入Cache中,并且写入Cache中的数据为经过大小端格式转换后的数据。进而,在从Cache中读取数据之后,不需要再进行大小端格式转换,从而避免了现有技术中从Cache中读数据之后,由于大小端数据格式不一致而引入的大小端数据格式转换处理逻辑导致的加载命中延时增加的问题,降低了大小端数据格式不一致时的加载命中时延。
可选的,如图6所示,在数据处理装置获取处理器指令流水线发送的读指令(步骤S401)之后,还可以包括如下步骤:
S406、当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,数据处理装置根据第一数据在外部存储中的地址信息,从Cache中读取2P字节的第六数据,其中,第六数据中包含第一数据。
S407、数据处理装置将第六数据循环右移第二字节,得到第七数据,第七数据中包含第一数据,该第一数据为第七数据对应的2P字节地址中低K位地址上的数据。
其中,Index2=Address[n:0],Index2表示第二字节,n=log2P,Address[n:0]表示第一数据在Cache的外部存储中的首地址中低(n+1)位地址的值。
S408、数据处理装置将第一数据发送给处理器指令流水线。
即,本申请实施例中,当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,由于不需要再进行大小端格式转换。因此从Cache中读取的数据就是从外部存储写入Cache中的数据。
基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将Cache中的数据发送给处理器指令流水线。
进一步的,在数据处理装置根据第一数据在外部存储中的地址信息,从Cache中读取2P字节的第六数据(步骤S406)之前,还可以包括:
数据处理装置从Cache的外部存储中读取包含第一数据的cacheline;将包含第一数据的cacheline写入Cache中。
需要说明的是,本申请实施例中,由于Cache的读写宽度为2P字节,cacheline的大小≥2P,因此在将包含第一数据的cacheline写入Cache中时,可能是经过多次写入过程写入的,比如,若cacheline的大小为4P,则是分两次写入过程写入的,本申请实施例对此不作具体限定。
基于该方案,当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,可以将外部存储中的数据写入Cache中。
可选的,本申请实施例提供的数据处理方法还可以包括:数据处理装置获取处理器指令流水线发送的写指令,该写指令包括待写入的第八数据和第八数据的字节数T,其中,T≤P,T为整数;当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,将第八数据循环左移第三字节数,得到2P字节的第九数据,其中,Index 3=~(Address[n:0]+T–1),Index3表示第三字节数;将第九数据写入Cache中。
基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,将处理器指令流水线中的数据写入Cache中。
可选的,在数据处理装置获取处理器指令流水线发送的写指令之后,还可以包括:当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将第八数据循环左移第四字节数,得到2P字节的第十数据,其中,Index 4=(Address[n:0]),Index4表示第四字节数;将第十数据写入所述Cache中。
基于该方案,可以在外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将处理器指令流水线中的数据写入Cache中。
下面将结合一个具体示例对本申请实施例提供的数据处理方法进行进一步说明。
示例性的,以2P=16字节,处理器指令流水线只支持小端数据格式,外部存储支持大小端数据格式,并且cacheline的大小为16字节为例,则,
当外部存储工作在大端数据格式时:
数据处理装置将外部存储中16字节的cacheline以字节为单位反转后存储在Cache中,相当于将16字节的大端数据以小端格式存储在Cache中。当处理器指令流水线发起读指令时,可以直接从Cache中读取小端数据。另外,由于之前数据写入Cache时cacheline做了反转操作,因此在进行数据右对齐时,循环右移的Index需要做相应的反转补偿。
比如,在图7中,假设需要读取的数据为外部存储中的B0、B1、B2和B3,也就是外部存储中0x7、0x8、0x9和0xA地址上的数据,则由于在外部存储中数据以大端模式存储,因此,当把数据写入Cache时,整条cacheline需要以字节为单位反转后写入Cache中,如图7所示。其中,B0写入Cache中的0x5地址上,B1写入Cache中的0x6地址上,B2写入Cache中的0x7地址上,B3写入Cache中的0x8地址上。此时,数据在Cache中已经以小端形式存储了。当处理器指令流水线需要读取0x7、0x8、0x9和0xA地址上的数据时,Cache将cacheline数据输出,如mem_data_o中所示。此时只要恰当的处理数据右对齐的循环右移Index即可得到目标数据B3、B2、B1和B0。其中,Index=~(Address[n:0]+K–1)。在此例中,Address[n:0]=7,K=4,因此,Index=~(Address[n:0]+K–1)=~(7+4–1)=5,即循环右移5个字节,如图7所示。最终,发送给处理器指令流水线的即为0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0。
当然,在将处理器指令流水线中0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0写入Cache中时,需要循环左移5个字节,得到图7中Cache中的数据,本申请实施例在此不再赘述。
或者,比如,在图8中,假设需要读取的数据为外部存储中的B0、B1、B2和B3,也就是外部存储中0xE、0xF、0x10和0x11地址上的数据,需要跨cacheline。则由于在外部存储中数据以大端模式存储,因此,当把数据写入Cache时,整条cacheline需要以字节为单位反转后写入Cache中,如图8所示。其中,B0写入Cache中的0x1E地址上,B1写入Cache中的0x1F地址上,B2写入Cache中的0x0地址上,B3写入Cache中的0x1地址上。此时,数据在Cache中已经以小端形式存储了。当处理器指令流水线需要读取0xE、0xF、0x10和0x11地址上的数据时,Cache将cacheline数据输出,如mem_data_o中所示。此时只要恰当的处理数据右对齐的循环右移Index即可得到目标数据B3、B2、B1和B0。其中,Index=~(Address[n:0]+K–1)。在此例中,Address[n:0]=14,K=4,因此,Index=~(Address[n:0]+K–1)=~(14+4–1)=14,即循环右移14个字节,如图8所示。最终,发送给处理器指令流水线的即为0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0。
当然,在将处理器指令流水线中0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0写入Cache中时,需要循环左移14个字节,得到图8中Cache中的数据,本申请实施例在此不再赘述。
当外部存储工作在小端数据格式时:
数据处理装置将外部存储中16字节的cacheline直接写入Cache中。当处理器指令流水线发起读指令时,可以直接从Cache中读取小端数据。另外,由于之前数据写入Cache时cacheline未进行反转操作,因此在进行数据右对齐,循环右移的Index不需要做相应的反转补偿。
比如,在图9中,假设需要读取的数据为外部存储中的B0、B1、B2和B3,也就是外部存储中0x7、0x8、0x9和0xA地址上的数据,则由于在外部存储中数据以小端模式存储,因此,当把数据写入Cache时,可以将整条cacheline直接写入Cache中,如图7所示。其中,B0写入Cache中的0x7地址上,B1写入Cache中的0x8地址上,B2写入Cache中的0x9地址上,B3写入Cache中的0xA地址上。此时,数据在Cache中仍以小端形式存储。当处理器指令流水线需要读取0x7、0x8、0x9和0xA地址上的数据时,Cache将cacheline数据输出,如mem_data_o中所示。此时只要恰当的处理数据右对齐的循环右移Index即可得到目标数据B3、B2、B1和B0。其中,Index=Address[n:0]。在此例中,Address[n:0]=7,因此,Index=Address[n:0]=7,即循环右移7个字节,如图9所示。最终,发送给处理器指令流水线的即为0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0。
当然,在将处理器指令流水线中0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0写入Cache中时,需要循环左移7个字节,得到图9中Cache中的数据,本申请实施例在此不再赘述。
或者,比如,在图10中,假设需要读取的数据为外部存储中的B0、B1、B2和B3,也就是外部存储中0xE、0xF、0x10和0x11地址上的数据,需要跨cacheline。则由于在外部存储中数据以小端模式存储,因此,当把数据写入Cache时,可以将整条cacheline直接写入Cache中,如图10所示。其中,B0写入Cache中的0xE地址上,B1写入Cache中的0xF地址上,B2写入Cache中的0x10地址上,B3写入Cache中的0x11地址上。此时,数据在Cache中仍以小端形式存储。当处理器指令流水线需要读取0xE、0xF、0x10和0x11地址上的数据时,Cache将cacheline数据输出,如mem_data_o中所示。此时只要恰当的处理数据右对齐的循环右移Index即可得到目标数据B3、B2、B1和B0。其中,Index=Address[n:0]。在此例中,Address[n:0]=14,因此,Index=Address[n:0]=14,即循环右移14个字节,如图10所示。最终,发送给处理器指令流水线的即为0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0。
当然,在将处理器指令流水线中0x0、0x1、0x2和0x3地址上的数据B3、B2、B1和B0写入Cache中时,需要循环左移14个字节,得到图10中Cache中的数据,本申请实施例在此不再赘述。
需要说明的是,上述示例以处理器指令流水线只支持小端数据格式,外部存储支持大小端数据格式为例进行说明。当然,也可以是处理器指令流水线只支持大端数据格式,外部存储支持大小端数据格式,本申请实施例对此不作具体限定。
上述主要从数据处理装置执行数据处理方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述数据处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的数据处理装置110的一种可能的结构示意图。该数据处理装置110包括:获取模块1101、确定模块1102、读取模块1103、移位模块1104和发送模块1105。其中,获取模块1101用于支持数据处理装置110执行图4所示的步骤S401;确定模块1102用于支持数据处理装置110执行图4所示的步骤S402;读取模块1103用于支持数据处理装置110执行图4所示的步骤S403;移位模块1104用于支持数据处理装置110执行图4所示的步骤S404;发送模块1105用于支持数据处理装置110执行图4所示的步骤S405。
可选的,如图12所示,数据处理装置110还可以包括格式转换模块1106和写入模块1107。读取模块1103,还用于在根据第二数据在Cache中的地址信息,从Cache中读取2P字节的第四数据之前,从Cache的外部存储中读取包含第一数据的cacheline。格式转换模块1106,用于将包含第一数据的cacheline进行大小端数据格式转换,得到第三数据;1107写入模块,用于将第三数据写入Cache中。
可选的,读取模块1103还用于支持数据处理装置110执行图6所示的步骤S406;移位模块1104还用于支持数据处理装置110执行图6所示的步骤S407;发送模块1105还用于支持数据处理装置110执行图6所示的步骤S408。
可选的,读取模块1103,还用于在根据第一数据在外部存储中的地址信息,从Cache中读取2P字节的第六数据之前,从Cache的外部存储中读取包含第一数据的cacheline;写入模块1107,还用于将包含第一数据的cacheline写入Cache中。
可选的,获取模块1101,还用于获取处理器指令流水线发送的写指令,写指令包括待写入的第八数据和第八数据的字节数T,其中,T≤P,T为整数。移位模块1104,还用于当外部存储支持的数据格式与处理器指令流水线支持的数据格式不一致时,将第八数据循环左移第三字节数,得到2P字节的第九数据,其中,Index 3=~(Address[n:0]+T–1),Index3表示第三字节数。写入模块1107,还用于将第九数据写入Cache中。
可选的,移位模块1104,还用于在获取模块1101获取处理器指令流水线发送的写指令之后,当外部存储支持的数据格式与处理器指令流水线支持的数据格式一致时,将第八数据循环左移第四字节数,得到2P字节的第十数据,其中,Index 4=(Address[n:0]),Index4表示第四字节数;写入模块1107,还用于将第十数据写入Cache中。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
以采用集成的方式划分各个功能模块的情况下,图13示出了上述实施例中所涉及的数据处理装置的一种可能的结构示意图,该数据处理装置130包括:处理模块1301和通信模块1302。其中,该处理模块1301可用于执行图11或图12中获取模块1101、确定模块1102、读取模块1103、移位模块1104、格式转换模块1106和写入模块1107所能执行的操作;通信模块1302可用于执行图11或图12中发送模块1105所能执行的操作,具体可参考图11或图12所示的实施例,本申请实施例在此不再赘述。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在发明实施例中,该数据处理装置以对应各个功能划分各个功能模块的形式来呈现,或者,该数据处理装置以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到数据处理装置110或者数据处理装置130可以采用图3所示的形式。比如,图11中的获取模块1101、确定模块1102、读取模块1103、移位模块1104和发送模块1105可以通过图3的处理器301和存储器303来实现,具体的,获取模块1101、确定模块1102、读取模块1103、移位模块1104和发送模块1105可以通过由处理器301来调用存储器303中存储的应用程序代码来执行,本申请实施例对此不作任何限制。或者,比如,图12中的获取模块1101、确定模块1102、读取模块1103、移位模块1104、发送模块1105、格式转换模块1106和写入模块1107可以通过图3的处理器301和存储器303来实现,具体的,获取模块1101、确定模块1102、读取模块1103、移位模块1104、发送模块1105、格式转换模块1106和写入模块1107可以通过由处理器301来调用存储器303中存储的应用程序代码来执行,本申请实施例对此不作任何限制。或者,比如,图13中的处理模块1301和通信模块1302可以通过图3的处理器301和存储器303来实现,具体的,处理模块1301和通信模块1302可以通过由处理器301来调用存储器303中存储的应用程序代码来执行,本申请实施例对此不作任何限制。
由于本申请实施例提供的数据处理装置可用于执行上述数据处理方法,因此其所能获得的技术效果可参考上述方法实施例,本申请实施例在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
获取处理器指令流水线发送的读指令,所述读指令包括待读取的第一数据在缓存Cache的外部存储中的地址信息,其中,所述Cache的读写宽度为2P字节,所述第一数据的字节数K≤P,K和P均为正整数;
当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式不一致时,根据所述第一数据在所述外部存储中的地址信息,确定第二数据在所述Cache中的地址信息,其中,所述第二数据为第三数据中与所述第一数据对应的数据,所述第三数据为将包含所述第一数据的高速缓存块cacheline进行大小端格式转换后得到的数据,所述cacheline的大小≥2P;
根据所述第二数据在所述Cache中的地址信息,从所述Cache中读取2P字节的第四数据,其中,所述第四数据中包含所述第二数据;
将所述第四数据循环右移第一字节,得到第五数据,其中,所述第五数据中包含所述第二数据,所述第二数据为所述第五数据对应的2P字节地址中低K位地址上的数据,Index1=~(Address[n:0]+K–1),Index1表示所述第一字节,~表示取反,n=log2P,Address[n:0]表示所述第一数据在所述Cache的外部存储中的首地址中低(n+1)位地址的值;
将所述第二数据发送给所述处理器指令流水线。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述第二数据在所述Cache中的地址信息,从所述Cache中读取2P字节的第四数据之前,还包括:
从所述Cache的外部存储中读取包含所述第一数据的cacheline;
将所述包含所述第一数据的cacheline进行大小端数据格式转换,得到所述第三数据;
将所述第三数据写入所述Cache中。
3.根据权利要求1或2所述的方法,其特征在于,在所述获取处理器指令流水线发送的读指令之后,还包括:
当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式一致时,根据所述第一数据在所述外部存储中的地址信息,从所述Cache中读取2P字节的第六数据,其中,所述第六数据中包含所述第一数据;
将所述第六数据循环右移第二字节,得到第七数据,所述第七数据中包含所述第一数据,所述第一数据为所述第七数据对应的2P字节地址中低K位地址上的数据,其中,Index2=Address[n:0],Index2表示所述第二字节,n=log2P,Address[n:0]表示所述第一数据在所述Cache的外部存储中的首地址中低(n+1)位地址的值;
将所述第一数据发送给所述处理器指令流水线。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述第一数据在所述外部存储中的地址信息,从所述Cache中读取2P字节的第六数据之前,还包括:
从所述Cache的外部存储中读取包含所述第一数据的cacheline;
将所述包含所述第一数据的cacheline写入所述Cache中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取所述处理器指令流水线发送的写指令,所述写指令包括待写入的第八数据和所述第八数据的字节数T,其中,T≤P,T为整数;
当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式不一致时,将所述第八数据循环左移第三字节数,得到2P字节的第九数据,其中,Index 3=~(Address[n:0]+T–1),Index3表示所述第三字节数;
将所述第九数据写入所述Cache中。
6.根据权利要求5所述的方法,其特征在于,在所述获取所述处理器指令流水线发送的写指令之后,还包括:
当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式一致时,将所述第八数据循环左移第四字节数,得到2P字节的第十数据,其中,Index 4=(Address[n:0]),Index4表示所述第四字节数;
将所述第十数据写入所述Cache中。
7.一种数据处理装置,其特征在于,所述装置包括获取模块、确定模块、读取模块、移位模块和发送模块;
所述获取模块,用于获取处理器指令流水线发送的读指令,所述读指令包括待读取的第一数据在缓存Cache的外部存储中的地址信息,其中,所述Cache的读写宽度为2P字节,所述第一数据的字节数K≤P,K和P均为正整数;
所述确定模块,用于当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式不一致时,根据所述第一数据在所述外部存储中的地址信息,确定第二数据在所述Cache中的地址信息,其中,所述第二数据为第三数据中与所述第一数据对应的数据,所述第三数据为将包含所述第一数据的高速缓存块cacheline进行大小端格式转换后得到的数据,所述cacheline的大小≥2P;
所述读取模块,用于根据所述第二数据在所述Cache中的地址信息,从所述Cache中读取2P字节的第四数据,其中,所述第四数据中包含所述第二数据;
所述移位模块,用于将所述第四数据循环右移第一字节,得到第五数据,其中,所述第五数据中包含所述第二数据,所述第二数据为所述第五数据对应的2P字节地址中低K位地址上的数据,Index 1=~(Address[n:0]+K–1),Index1表示所述第一字节,~表示取反,n=log2P,Address[n:0]表示所述第一数据在所述Cache的外部存储中的首地址中低(n+1)位地址的值;
所述发送模块,用于将所述第二数据发送给所述处理器指令流水线。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括格式转换模块和写入模块;
所述读取模块,还用于在所述根据所述第二数据在所述Cache中的地址信息,从所述Cache中读取2P字节的第四数据之前,从所述Cache的外部存储中读取包含所述第一数据的cacheline;
所述格式转换模块,用于将所述包含所述第一数据的cacheline进行大小端数据格式转换,得到所述第三数据;
所述写入模块,用于将所述第三数据写入所述Cache中。
9.根据权利要求7或8所述的装置,其特征在于,
所述读取模块,还用于在所述获取模块获取处理器指令流水线发送的读指令之后,当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式一致时,根据所述第一数据在所述外部存储中的地址信息,从所述Cache中读取2P字节的第六数据,其中,所述第六数据中包含所述第一数据;
所述移位模块,还用于将所述第六数据循环右移第二字节,得到第七数据,所述第七数据中包含所述第一数据,所述第一数据为所述第七数据对应的2P字节地址中低K位地址上的数据,其中,Index2=Address[n:0],Index2表示所述第二字节,n=log2P,Address[n:0]表示所述第一数据在所述Cache的外部存储中的首地址中低(n+1)位地址的值;
所述发送模块,还用于将所述第一数据发送给所述处理器指令流水线。
10.根据权利要求9所述的装置,其特征在于,
所述读取模块,还用于在所述根据所述第一数据在所述外部存储中的地址信息,从所述Cache中读取2P字节的第六数据之前,从所述Cache的外部存储中读取包含所述第一数据的cacheline;
所述写入模块,还用于将所述包含所述第一数据的cacheline写入所述Cache中。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述装置还包括写入模块;
所述获取模块,还用于获取所述处理器指令流水线发送的写指令,所述写指令包括待写入的第八数据和所述第八数据的字节数T,其中,T≤P,T为整数;
所述移位模块,还用于当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式不一致时,将所述第八数据循环左移第三字节数,得到2P字节的第九数据,其中,Index 3=~(Address[n:0]+T–1),Index3表示所述第三字节数;
所述写入模块,还用于将所述第九数据写入所述Cache中。
12.根据权利要求11所述的装置,其特征在于,
所述移位模块,还用于在所述获取模块获取所述处理器指令流水线发送的写指令之后,当所述外部存储支持的数据格式与所述处理器指令流水线支持的数据格式一致时,将所述第八数据循环左移第四字节数,得到2P字节的第十数据,其中,Index 4=(Address[n:0]),Index4表示所述第四字节数;
所述写入模块,还用于将所述第十数据写入所述Cache中。
13.一种数据处理装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述数据处理装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据处理装置执行如权利要求1-6中任意一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157711.3A CN108628638B (zh) | 2017-03-16 | 2017-03-16 | 数据处理方法及装置 |
PCT/CN2018/077026 WO2018166337A1 (zh) | 2017-03-16 | 2018-02-23 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157711.3A CN108628638B (zh) | 2017-03-16 | 2017-03-16 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628638A true CN108628638A (zh) | 2018-10-09 |
CN108628638B CN108628638B (zh) | 2021-02-09 |
Family
ID=63521829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710157711.3A Active CN108628638B (zh) | 2017-03-16 | 2017-03-16 | 数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108628638B (zh) |
WO (1) | WO2018166337A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688341A (zh) * | 2019-09-25 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 在fpga上实现高效合约调用的方法及装置 |
CN111125715A (zh) * | 2019-12-18 | 2020-05-08 | 深圳忆联信息系统有限公司 | 基于固态硬盘的tcg数据处理加速方法、装置、计算机设备及存储介质 |
CN111258785A (zh) * | 2020-01-20 | 2020-06-09 | 北京百度网讯科技有限公司 | 数据洗牌方法和装置 |
WO2020135208A1 (zh) * | 2018-12-24 | 2020-07-02 | 安谋科技(中国)有限公司 | 处理器的指令执行方法及其处理器 |
CN113766270A (zh) * | 2021-02-26 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 视频播放方法、系统、服务器、终端设备、以及电子设备 |
CN113778526A (zh) * | 2021-11-12 | 2021-12-10 | 北京微核芯科技有限公司 | 一种基于Cache的流水线的执行方法及装置 |
CN117093510A (zh) * | 2023-05-30 | 2023-11-21 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230765A1 (en) * | 2003-03-19 | 2004-11-18 | Kazutoshi Funahashi | Data sharing apparatus and processor for sharing data between processors of different endianness |
CN102135941A (zh) * | 2010-08-26 | 2011-07-27 | 华为技术有限公司 | 从缓存写数据到内存的方法和装置 |
US20140115270A1 (en) * | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Multi processor bridge with mixed endian mode support |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
-
2017
- 2017-03-16 CN CN201710157711.3A patent/CN108628638B/zh active Active
-
2018
- 2018-02-23 WO PCT/CN2018/077026 patent/WO2018166337A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230765A1 (en) * | 2003-03-19 | 2004-11-18 | Kazutoshi Funahashi | Data sharing apparatus and processor for sharing data between processors of different endianness |
CN102135941A (zh) * | 2010-08-26 | 2011-07-27 | 华为技术有限公司 | 从缓存写数据到内存的方法和装置 |
US20140115270A1 (en) * | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Multi processor bridge with mixed endian mode support |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020135208A1 (zh) * | 2018-12-24 | 2020-07-02 | 安谋科技(中国)有限公司 | 处理器的指令执行方法及其处理器 |
CN110688341A (zh) * | 2019-09-25 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 在fpga上实现高效合约调用的方法及装置 |
CN110688341B (zh) * | 2019-09-25 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 在fpga上实现高效合约调用的方法及装置 |
CN111125715A (zh) * | 2019-12-18 | 2020-05-08 | 深圳忆联信息系统有限公司 | 基于固态硬盘的tcg数据处理加速方法、装置、计算机设备及存储介质 |
CN111258785A (zh) * | 2020-01-20 | 2020-06-09 | 北京百度网讯科技有限公司 | 数据洗牌方法和装置 |
CN111258785B (zh) * | 2020-01-20 | 2023-09-08 | 北京百度网讯科技有限公司 | 数据洗牌方法和装置 |
CN113766270A (zh) * | 2021-02-26 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 视频播放方法、系统、服务器、终端设备、以及电子设备 |
CN113766270B (zh) * | 2021-02-26 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | 视频播放方法、系统、服务器、终端设备、以及电子设备 |
CN113778526A (zh) * | 2021-11-12 | 2021-12-10 | 北京微核芯科技有限公司 | 一种基于Cache的流水线的执行方法及装置 |
CN117093510A (zh) * | 2023-05-30 | 2023-11-21 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
CN117093510B (zh) * | 2023-05-30 | 2024-04-09 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108628638B (zh) | 2021-02-09 |
WO2018166337A1 (zh) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628638A (zh) | 数据处理方法及装置 | |
US9176913B2 (en) | Coherence switch for I/O traffic | |
US8214845B2 (en) | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
US7934025B2 (en) | Content terminated DMA | |
US8769251B2 (en) | Data processing apparatus and method for converting data values between endian formats | |
US8359433B2 (en) | Method and system of handling non-aligned memory accesses | |
KR20090127689A (ko) | 메모리 테스트 디바이스 및 메모리 테스트 방법 | |
US20020169900A1 (en) | Direct memory access controller, and direct memory access control method | |
CN114258533A (zh) | 在基于处理器的设备中优化对页表条目的访问 | |
US11275683B2 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
TW202004494A (zh) | 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統 | |
KR100463205B1 (ko) | 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 | |
CN113672555A (zh) | 处理器核、处理器、片上系统和调试系统 | |
US20120254530A1 (en) | Microprocessor and memory access method | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
US11604737B1 (en) | Dynamic modification of coherent atomic memory operations | |
JPH0997211A (ja) | バス制御装置、及びバス制御装置を含む情報処理装置 | |
US11809221B2 (en) | Artificial intelligence chip and data operation method | |
JP6626216B2 (ja) | コントローラ | |
JP2002149593A (ja) | 階層バスシステム | |
WO2023047762A1 (ja) | プロセッサおよびエンディアン変換方法 | |
CN117743248A (zh) | 一种实现PCIe配置空间的方法、装置、设备及介质 | |
US7409479B2 (en) | Semiconductor integrated circuit | |
CN115169270A (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 |