WO2022227561A1 - 用于数据读取的装置、方法、芯片、计算机设备及存储介质 - Google Patents
用于数据读取的装置、方法、芯片、计算机设备及存储介质 Download PDFInfo
- Publication number
- WO2022227561A1 WO2022227561A1 PCT/CN2021/134574 CN2021134574W WO2022227561A1 WO 2022227561 A1 WO2022227561 A1 WO 2022227561A1 CN 2021134574 W CN2021134574 W CN 2021134574W WO 2022227561 A1 WO2022227561 A1 WO 2022227561A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target data
- data
- cache block
- storage address
- read request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013500 data storage Methods 0.000 claims description 305
- 239000000872 buffer Substances 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
Abstract
一种用于数据读取的装置、方法、芯片、计算机设备及存储介质,其中,该装置包括:包括:仲裁电路(10)以及缓存器(20);其中,所述缓存器(20)包括多个缓存块(201);所述仲裁电路(10),用于接收一个或多个用户设备发送的一个或多个数据读取请求,并从所述一个或多个数据读取请求中,为所述多个缓存块(201)中各缓存块(201)确定对应的目标数据读取请求;向所述多个缓存块(201)分别发送对应的目标数据读取请求;所述多个缓存块(201)中的各缓存块(201),用于接收所述仲裁电路(10)发送的对应的目标数据读取请求,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据。提高了数据的读取效率。
Description
相关公开的交叉引用
本公开要求于2021年4月29日提交的、申请号为202110476806.8的中国专利申请的优先权,该中国专利申请公开的全部内容以引用的方式并入本文中。
本公开涉及计算机技术领域,具体而言,涉及用于数据读取的装置、方法、芯片、计算机设备及存储介质。
多线程处理是提高电子设备计算能力的一种有效途径。在多线程处理的过程中,会存在多个用户设备同时向电子设备中的缓存器发起数据读取请求的情况,但缓存器在一个处理周期内只能被一台用户设备访问,造成数据获取效率低的问题。
发明内容
本公开实施例至少提供用于数据读取的装置、方法、芯片、计算机设备及存储介质。
第一方面,本公开实施例提供了一种数据读取装置,包括:仲裁电路以及缓存器;其中,所述缓存器包括多个缓存块;所述仲裁电路,用于接收一个或多个用户设备发送的一个或多个数据读取请求,并从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求;向所述多个缓存块分别发送对应的目标数据读取请求;所述多个缓存块中的各缓存块,用于在接收到所述仲裁电路发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据。
这样,因为缓存器包括多个缓存块,每个缓存块在每个处理周期都可以接收对应的目标数据读取请求,因此缓存器中的多个缓存块可以在同一处理周期并行接收多个对应的目标数据读取请求,从而提高数据读取的效率。
在一种可能的实施方式中,所述仲裁电路,在从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求时,用于:基于每一所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路,在基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求时,用于:基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定目标数据读取请求。
数据存储地址的目标比特位的数据可以代表属于同一缓存块的各数据存储地址的特点,基于该特点可以判断每一数据读取请求对应的缓存块。
在一种可能的实施方式中,所述仲裁电路,在基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定对应的目标数据读取请求时,用于:将标识数据与该缓存块对应的缓存块标识匹配成功的数据读取请求,确定作为该缓存块的备选数据读取请求;基于一个或多个所述备选数据读取请求的优先级信息、和/或预设发送顺序,从所述备选数据读取请求中,为该缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路,在基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求时,用于:基于多个所述数据读取请求中携带的数据存储地址,将多个所述数据读取请求分为至少一个分组;其中,属于同一分组的数据读取请求中携带的数据存储地址相同;基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组;针对每个所述缓存块,基于与该缓存块对应的目标分组中的数据读取请求,为该缓存块确定对应的目标数据读取请求。
这样,将不同用户设备针对同一个数据的数据读取请求放在一个分组中,在目标分组中的任一条数据读取请求都可以作为目标数据读取请求,让处理目标数据读取请求的缓存块向目标分组中各数据读取请求对应的用户设备返回目标数据,可以提高数据读取的效率。
在一种可能的实施方式中,所述仲裁电路,在基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组时,用于:基于该缓存块对应的分组分别包括的数据读取请求的数量,为该缓存块确定目标分组;或者,基于该缓存块对应的分组分别包括的数据读取请求的优先级,为该缓存块确定目标分组;或者,基于该缓存块对应的分组分别包括的数据读取请求中携带的数据存储地址、以及预先设置的不同数据存储地址对应的预设发送顺序,为该缓存块确定目标分组。
这样,可以确保缓存块能响应更多的用户设备的数据读取请求,提高数据读取的效率;或者能确保缓存块优先响应优先级较高的用户设备的数据读取请求。
在一种可能的实施方式中,所述仲裁电路,还用于:针对所述多个缓存块中的各缓存块,确定该缓存块对应的目标数据读取请求的用户标识;向该缓存块发送所述用户标识;所述多个缓存块中的各缓存块,在向发送对应的目标数据读取请求的用户设备发送所述目标数据时,用于基于所述用户标识,向所述用户标识对应的用户设备发送所述目标数据。
这样,缓存块在接收到一条目标数据读取请求后,可以向需要该目标数据读取请求对应的目标数据的多个用户设备同时返回目标数据,提高了数据读取的效率。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,在基于对应的目标数据读取请求获取目标数据时,用于:基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有所述目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;在确定该缓存块并未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,在基于所述目标数据存储地址,从外部存储器中读取所述目标数据时,用于:将所述目标数据存储地址、与历史目标数据存储地址进行比对;其中,该缓存块基于所述历史目标数据存储地址向外 部存储器请求了数据、且所述外部存储器尚未返回数据;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,在基于所述目标数据存储地址,从外部存储器中读取所述目标数据时,还用于:在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,将所述历史目标数据存储地址对应的数据作为所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,还用于在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
这样,缓存块在接收到外部存储器返回的目标数据后,可以基于合并后的用户标识向历史目标分组、以及目标分组中的各数据读取请求对应的用户设备发送目标数据,提高数据读取效率。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,包括:数据存储模块;所述数据存储模块,用于:基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有与所述目标数据存储地址对应的目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;所述数据存储模块,还用于在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据;向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,还包括:标识存储模块;所述数据存储模块,在确定该缓存块未存储所述目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据时,用于:向所述标识存储模块发送所述目标数据存储地址;在接收到所述标识存储模块反馈的读取指令后,从外部存储器中读取所述目标数据;所述标识存储模块,用于在接收到所述数据存储模块发送的目标数据存储地址后,将所述目标数据存储地址、与历史目标数据存储地址进行比对;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,向所述数据存储模块反馈读取指令;在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,向所述数据存储模块反馈等待指令;其中,所述数据存储模块基于所述历史目标数据存储地址向外部存储器请求了数据、且所述外部存储器尚未返回数据。
在一种可能的实施方式中,所述数据存储模块,还用于:在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,向所述标识存储模块发送所述目标数据读取请求的用户标识;在向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据时,用于:从外部存储器中读取所述目标数据后,从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述标识存储模块,还用于:在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;所述数据存储模块,在从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述目标数据时,还用 于:在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,从所述标识存储模块读取所述合并用户标识,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
第二方面,本公开实施例还提供一种数据读取方法,应用于数据读取装置,所述数据读取装置包括:仲裁电路以及缓存器;其中,所述缓存器包括多个缓存块;所述数据读取方法包括:所述仲裁电路接收一个或多个用户设备发送的一个或多个数据读取请求,并从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求;向所述多个缓存块分别发送对应的目标数据读取请求;所述多个缓存块中的各缓存块在接收到所述仲裁电路发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据。
在一种可能的实施方式中,所述仲裁电路从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求,包括:基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求,包括:基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据以及该缓存块对应的缓存块标识,为该缓存块确定目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定对应的目标数据读取请求,包括:将标识数据与该缓存块对应的缓存块标识匹配成功的数据读取请求,确定作为该缓存块的备选数据读取请求;基于一个或多个所述备选数据读取请求的优先级信息、和/或预设发送顺序,从所述备选数据读取请求中,为该缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求,包括:基于多个所述数据读取请求中携带的数据存储地址,将多个所述数据读取请求分为至少一个分组;其中,属于同一分组的数据读取请求中携带的数据存储地址相同;基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组;针对每个缓存块,基于与该缓存块对应的目标分组中的数据读取请求,为该缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组,包括:所述仲裁电路基于该缓存块对应的分组分别包括的数据读取请求的数量,为该缓存块确定目标分组;或者,基于该缓存块对应的分组分别包括的数据读取请求的优先级,为该缓存块确定目标分组;或者,基于该缓存块对应的分组分别包括的数据读取请求中携带的数据存储地址、以及预先设置的不同数据存储地址对应的预设发送顺序,为该缓存块确定目标分组。
在一种可能的实施方式中,所述数据读取方法还包括:所述仲裁电路针对所述多个缓存块中的各缓存块,确定该缓存块对应的目标数据读取请求的用户标识;向该缓存块发送所述用户标识;所述多个缓存块中的各缓存块向发送对应的目标数据读取请求的 用户设备发送所述目标数据包括:基于所述用户标识,向所述用户标识对应的用户设备发送所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于对应的目标数据读取请求获取目标数据,包括:所述多个缓存块中的各缓存块,基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有所述目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;在确定该缓存块并未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于所述目标数据存储地址,从外部存储器中读取所述目标数据,包括:所述多个缓存块中的各缓存块,将所述目标数据存储地址、与历史目标数据存储地址进行比对;其中,该缓存块基于所述历史目标数据存储地址向外部存储器请求了数据、且所述外部存储器尚未返回数据;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于所述目标数据存储地址,从外部存储器中读取所述目标数据后,还包括:所述多个缓存块中的各缓存块在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,将所述历史目标数据存储地址对应的数据作为所述目标数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述多个缓存块中的各缓存块,还用于在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,包括:数据存储模块;所述多个缓存块中的各缓存块基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据,包括:所述数据存储模块基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有与所述目标数据存储地址对应的目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;所述数据读取方法,还包括:所述数据存储模块在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据;向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,还包括:标识存储模块;所述数据存储模块在确定该缓存块未存储所述目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据,包括:所述数据存储模块向所述标识存储模块发送所述目标数据存储地址;在接收到所述标识存储模块反馈的读取指令后,从外部存储器中读取所述目标数据;所述数据读取方法,还包括:所述标识存储模块在接收到所述数据存储模块发送的目标数据存储地址后,将所述目标数据存储地址、与历史目标数据存储地址进行比对;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,向所述数据存储模块反馈读取指令;在所述目标数据存储地址与所述 历史目标数据存储地址一致的情况下,向所述数据存储模块反馈等待指令;其中,所述数据存储模块基于所述历史目标数据存储地址向外部存储器请求了数据、且所述外部存储器尚未返回数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述数据存储模块在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,向所述标识存储模块发送所述目标数据读取请求的用户标识;所述数据存储模块向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据,包括:从外部存储器中读取所述目标数据后,从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述标识存储模块在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;所述数据存储模块在从所述标识存储模块读取与所述目标数据读取请求对应的用户标识,并基于所述用户标识,向与所述用户标识对应的用户设备发送所述目标数据时,执行:在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
第三方面,本公开可选实现方式还提供一种芯片,包括:如上述第一方面、或第一方面任一项所述的数据读取装置。
第四方面,本公开可选实现方式还提供一种计算机设备,包括:指令存储器和如上述第三方面所述的芯片。
第五方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
关于上述数据读取方法、芯片、计算机设备、及计算机可读存储介质的效果描述参见上述数据读取装置的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据读取装置的示意图;
图2示出了本公开实施例所提供的一种数据读取装置中,缓存块的示意图;
图3示出了本公开实施例所提供的一种数据读取方法的流程图。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
电子设备,例如数据读取装置,包含的缓存器中通常存储有缓存数据,用户设备可以向电子设备的缓存器发起数据读取请求。多线程处理是提高电子设备计算能力的一种有效途径。在多线程处理的过程中,会存在多个用户设备同时向电子设备的缓存器发起数据读取请求的情况。当多个用户设备同时向缓存器发起数据读取请求时,仲裁电路可以在每个处理周期对发起数据读取请求的多个用户设备进行一次仲裁,确定唯一一个可以向缓存器发送数据读取请求的用户设备,并将该用户设备对应的数据读取请求发送给缓存器。缓存器在接收到数据读取请求后,基于数据读取请求中携带的数据存储地址获取目标数据,并基于数据读取请求中携带的用户设备的标识信息,向该用户设备返回对应的目标数据。这样,每个处理周期只有一个用户设备能向缓存器发送数据读取请求,数据获取效率低。
基于上述研究,本公开提供了一种数据读取装置,通过将缓存器分为多个缓存块,多个缓存块在同一处理周期都能够被用户设备访问,从而提升数据读取效率。
以上均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面对本公开实施例所述的一些名词进行解释说明:
本公开实施例所述的仲裁电路为通过电子元件的连接、以及电平信号(例如高电平、低电平)的传递实现对应功能的硬件电路。
本公开实施例所述的外部存储器为具有存储功能的电子元件,外部存储器存放有用户设备需要的数据;数据被存放至与对应数据存储地址对应的存储位置。外部存储器可以为数据读取装置包含的部件,也可以为与数据读取装置连接的设备,本公开实施例不做具体限定。
本公开实施例所述的缓存器为具有存储功能的电子元件,该电子元件可以分成多个存储区域,每一存储区域即为一个缓存块,每个缓存块均连接有访问通路。用户设备能够根据各个缓存块的访问通路读取缓存至各个缓存块中的数据。用户设备在读取数据时,首先从缓存块中读取;在缓存块中不存在用户设备要读取的数据时,缓存块从外部存储器中获取对应数据,并将获取到的数据发送给对应的用户设备;同时,缓存块还会将从外部存储器中获取的数据缓存至本地。
另外,缓存器还可以是由多个小型缓存器相互连接构成的缓存器堆;可以将多个小型缓存器进行分组,每个分组中包括多个小型缓存器,称为一个缓存块。多个小型缓存器在物理上可以通过线路连接。
本公开实施例所述用户设备例如为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备、服务器或其它处理设备。其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备、个人电脑、笔记本电脑等。每一用户设备通过不同的端口向仲裁电路发送数据读取请求。或者,用户设备还可以是计算机设备内用于执行数据处理任务的功能模块,每一功能模块通过不同的端口向仲裁电路发送数据读取请求,例如处理核中的不同运算单元(Arithmetic and Logic Unit)。
本公开实施例所述的数据存储地址例如是由多个二进制数组成的二进制数组,每一位二进制数占一个比特位,不同的二进制数组表征不同的地址;本公开实施例所述的缓存块标识例如为数据存储地址的目标比特位所表达的数据,也即目标比特位对应的二进制数;目标比特位包括数据存储地址的比特位中的一个比特位或者连续的多个比特位,例如数据存储地址的最后一位比特位、或者数据存储地址的最后两位比特位、或者数据存储地址的最前边的三位比特位等,可以根据缓存器中包括的缓存块的数量设定目标比特位。
示例性的,在缓存器中包括四个缓存块的情况下,可以将数据存储地址的最后两位比特位作为目标比特位,数据存储地址的最后两个比特位存储的二进制数有下述四种组合情况:00、01、10、11;缓存器的四个缓存块的标识就分别为:00、01、10、11;标识为00的缓存块用于存储最后两位比特位为00的数据存储地址以及该数据存储地址对应的数据;标识为01的缓存块用于存储最后两位比特位为01的数据存储地址以及该数据存储地址对应的数据;标识为10的缓存块用于存储最后两位比特位为10的数据存储地址以及该数据存储地址对应的数据;标识为11的缓存块用于存储最后两位比特位为11的数据存储地址以及该数据存储地址对应的数据。
参见图1所示,为本公开实施例提供的一种数据读取装置的示意图,该数据读取装置包括仲裁电路10以及缓存器20;缓存器20中包括多个缓存块201;仲裁电路10,用于接收一个或多个用户设备发送的一个或多个数据读取请求,并从一个或多个数据读取请求中,为多个缓存块中的各缓存块201确定对应的目标数据读取请求;向多个缓存块201分别发送对应的目标数据读取请求;多个缓存块中的各缓存块201,用于在接收到仲裁电路10发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送目标数据。
本公开实施例中的数据读取装置,包括仲裁电路以及缓存器;其中,缓存器中包括多个缓存块,仲裁电路接收到一个或多个用户设备发送的一个或多个数据读取请求后,从一个或多个数据读取请求中为多个缓存块中的各缓存块确定对应的目标数据读取请求;多个缓存块中的各缓存块接收到仲裁电路发送的对应的目标数据读取请求后,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送该目标数据。由于缓存器包括多个缓存块,单个缓存块在每个处理周期都可以接收对应的目标数据读取请求,因此缓存器中的多个缓存块可以在同一处理周期并行接收多个数据读取请求,从而提高数据读取的效率。
下面对本公开实施例所述的数据读取装置进行详细介绍。
针对仲裁电路10,接收用户设备发送的一个或多个数据读取请求,为各缓存块201从接收到的一个或多个数据读取请求中确定对应的目标数据读取请求时,例如可以采用下述方式A或者方式B中的任一种:
方式A:基于每一个数据读取请求中携带的数据存储地址、以及每一个缓存块201的缓存块标识为每一缓存块201确定对应的目标数据读取请求。
示例性的,从每一个数据读取请求携带的数据存储地址中的目标比特位获取标识数据;针对多个缓存块中的各缓存块201,基于获取到的标识数据、以及该缓存块201对应的缓存块标识,将每一个数据读取请求与该缓存块201进行匹配;基于每一个数据读取请求与该缓存块201的匹配结果,为该缓存块201确定对应的目标数据读取请求。
此处,每一数据读取请求携带的数据存储地址中的目标比特位所表示的数据对应于唯一的一个缓存块201,但是因为仲裁电路10接收到的多个数据读取请求中,所携带数据存储地址完全相同的数据读取请求可能不止一条,且所携带数据存储地址中的目标比特位的数据相同、但其他比特位的数据不同的数据读取请求可能也不止一条,所以一个缓存块可能对应多条数据读取请求,也可能在当前处理周期没有对应的数据读取请求。
仲裁电路10在接收到用户设备发送的一个或多个数据读取请求后,可针对每个缓存块,将从每个数据读取请求中获取到的标识数据与该缓存块对应的缓存块标识进行匹配,将匹配成功的数据读取请求作为该缓存块的备选数据读取请求。然后,针对存在备选数据读取请求的缓存块201,仲裁电路10可采用下述a1、a2中的至少一种方式从该缓存块201的备选数据读取请求中,确定出一条数据读取请求作为目标数据读取请求:
a1:基于缓存块201对应的一个或多个备选数据读取请求中各备选数据读取请求的优先级信息,确定优先级最高的备选数据读取请求为目标数据读取请求。在优先级最高的备选数据读取请求存在至少两条的情况下,确定优先级最高的备选数据读取请求中的任一条备选数据读取请求为目标数据读取请求。
a2:按照备选数据读取请求的预设发送顺序,从本处理周期对应的多个备选数据读取请求中,确定缓存块201在本处理周期对应的目标数据读取请求。
例如,可以根据用户设备与仲裁电路连接的接口的标识,确定来源于不同用户设备的备选数据读取请求的预设发送顺序,进而使得各个用户设备能够按照一定的顺序从缓存器中读取数据,同时,可以使得各个用户设备具有同等的机会访问缓存器。
这样,可以为每个存在对应的备选数据读取请求的缓存块201分别确定出一条目标数据读取请求,仲裁电路10同一处理周期可以为缓存器20中的多个缓存块201分别确定一条目标数据读取请求,相较于同一处理周期只能为缓存器20确定一条目标数据读取请求,提高了缓存器20在同一处理周期接收目标数据读取请求的数量,从而提升数据读取效率。
方式B:基于多个数据读取请求中携带的数据存储地址,将多个数据读取请求分为至少一个分组,属于同一分组的数据读取请求中携带的数据存储地址相同;基于每个分组的数据读取请求中携带的数据存储地址、以及每一缓存块201对应的缓存块标识,为多个缓存块中的各缓存块201确定对应的目标分组;针对多个缓存块中的各缓存块201,将该缓存块201对应的目标分组中的任一条数据读取请求确定为该缓存块201对应的目标数据读取请求。
具体的,仲裁电路10接收到多个数据读取请求之后,将数据存储地址相同的数据读取请求放在一个分组中,得到至少一个分组。然后,针对每个分组,仲裁电路10可以获取该分组中数据读取请求的数据存储地址的目标比特位所表示的标识数据,再将标识数据与各缓存块201的缓存块标识进行匹配,基于匹配结果确定与该分组对应的缓存块201。该分组中的各数据读取请求可能对应于不同的用户设备,但都对应于同一缓存块201,一个缓存块201可能有至少一个对应的分组,也可能该缓存块201在当前处理周期没有对应的分组。
仲裁电路10基于每个分组的数据读取请求中携带的数据存储地址、以及每一缓存块对应的缓存块标识,为每一存在对应分组的缓存块201从该缓存块201对应的至少一 个分组中采用下述b1~b3中的至少一种方式确定该缓存块201对应的目标分组:
b1:基于该缓存块201对应的分组分别包括的数据读取请求的数量,为该缓存块201确定目标分组;例如确定该缓存块201对应的各分组中包含数据读取请求最多的分组为目标分组。
这样,可以确保缓存块201能及时响应更多的用户设备的数据读取请求,提高数据读取的效率。
b2:基于该缓存块201对应的分组分别包括的数据读取请求的优先级,为该缓存块201确定目标分组。
此处,优先级例如可以包括:发出数据读取请求的用户设备的优先级。
在基于数据读取请求的优先级确定目标分组时,例如可以基于该缓存块201对应的各分组中优先级最高的数据读取请求的优先级确定目标分组。
示例性的,分组1中优先级最高的数据读取请求的优先级为2级,分组2中优先级最高的数据读取请求的优先级为3级,则确定分组2为目标分组。如果该缓存块201对应的各分组中数据读取请求的最高优先级相同,则比较各分组中数据读取请求的次高优先级,基于各分组中数据读取请求的次高优先级决定目标分组。
另外,在基于数据读取请求的优先级确定目标分组时,还可以对该缓存块201对应的各分组中数据读取请求的优先级进行求和,然后比较各分组的优先级求和结果,确定优先级求和结果最高的分组为目标分组。
这样,能确保缓存块201优先响应优先级较高的用户设备的数据读取请求。
b3:基于该缓存块201对应的分组分别包括的数据读取请求中携带的数据存储地址、以及预先设置的不同数据存储地址对应的发送顺序,为该缓存块201确定目标分组。例如:基于数据存储地址的前三个比特位设定数据存储地址的发送顺序为:000、001、010、011、100、101、110、111;则仲裁电路10在各个处理周期,可以基于数据存储地址的前三个比特位,确定当前处理周期对应的比特位数值;然后基于确定的比特位数值,确定目标分组。
例如,当前处理周期对应的比特位数值为100,则从多个分组中,确定数据存储地址的前三个比特位为100的分组作为目标分组。
仲裁电路10在确定该缓存块201的目标分组后,将目标分组中的任一条数据读取请求确定为该缓存块201对应的目标数据读取请求。
因为同一分组中的各数据读取请求携带的数据存储地址是相同的,该分组内的各数据读取请求是不同用户设备发送的、旨在读取同一个目标数据的数据读取请求,所以无论将目标分组中的哪一条数据读取请求确定为缓存块201对应的目标数据读取请求,缓存块201都可以基于该目标数据读取请求获取目标数据。另外,针对上述方式B所述的确定目标数据读取请求的方法,仲裁电路10将数据存储地址相同的数据读取请求放在一个分组中后,针对每一分组,根据该分组中各数据读取请求携带的用户设备的标识信息,生成该分组对应的用户标识,也即目标数据读取请求的用户标识。仲裁电路10在向缓存块201发送目标数据读取请求时,将该目标数据读取请求所在的目标分组对应的用户标识也发送给该缓存块201,以便该缓存块201基于用户标识中包含的标识信息向目标分组中各数据读取请求对应的用户设备发送目标数据。
这样,缓存块201在接收到一条目标数据读取请求后,可以向需要该目标数据读取请求对应的目标数据的多个用户设备同时返回目标数据,从而实现了将多个用户设备 对于同一数据的数据读取请求合并为一次请求,提高了数据读取的效率。
在每个处理周期中,仲裁电路10可以向确定了目标数据读取请求的缓存块201发送该缓存块201对应的目标数据读取请求。
多个缓存块中的各缓存块201,在接收到仲裁电路10发送给该缓存块201的目标数据读取请求后,可以获取该目标数据读取请求对应的目标数据。
具体的,多个缓存块中的各缓存块201基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块201是否存储有与目标数据存储地址对应的目标数据;在确定该缓存块201存储有与目标数据存储地址对应的目标数据的情况下,直接从该缓存块201中读取目标数据。
在确定该缓存块并未存储与所述目标数据存储地址对应的目标数据的情况下,基于目标数据存储地址,从外部存储器中读取目标数据。
另外,缓存块201在从外部存储器中读取目标数据前,将目标数据存储地址、与历史目标数据存储地址进行比对;在目标数据存储地址与历史目标数据存储地址不一致的情况下,从外部存储器中读取目标数据。
其中,缓存块201基于历史目标数据存储地址向外部存储器请求了数据、且外部存储器尚未返回数据。
仲裁电路10每个处理周期都会基于接收到的数据读取请求确定需提供数据读取服务的缓存块201和每个确定出的缓存块201需响应的目标数据读取请求,缓存块201接收到目标数据读取请求后,可能需要到外部存储器读取目标数据。但是,缓存块201从外部存储器读取目标数据是需要一定的时间的,该缓存块201在从外部存储器读取目标数据的过程中,有可能仲裁电路10已经到了下一个或之后几个处理周期,有可能仲裁电路10在这个过程中又向该缓存块201发送了新的目标数据读取请求,该缓存块201会对新的目标数据读取请求进行处理。为了便于理解,新的目标数据读取请求所在的处理周期可以称为当前处理周期,之前已经向外部存储器请求读取数据但是外部存储器还没有返回数据的处理周期可以称为历史处理周期。针对当前处理周期新的目标数据读取请求,如果该缓存块201中存储有该目标数据读取请求对应的目标数据,该缓存块201可以向该目标数据读取请求对应的用户设备发送目标数据。
如果处理当前处理周期的目标数据读取请求也需要缓存块201到外部存储器读取目标数据,缓存块201可以确定当前处理周期中目标数据读取请求的目标数据存储地址与历史目标数据存储地址是否一致:
如果一致,则不需要向外部存储器再发送一次读取数据的请求,只需等待外部存储器返回对应的数据即可;在接收到外部存储器反馈的所述历史目标数据存储地址对应的数据后,将所述历史目标数据存储地址对应的数据作为目标数据,将该目标数据向当前处理周期中目标数据存储地址对应的用户设备、以及历史目标数据存储地址对应的用户设备发送。
另外,针对该缓存块201接收到当前处理周期中的目标数据读取请求的用户标识、以及历史处理周期中的目标数据读取请求的历史用户标识的情况,该缓存块201将该用户标识和历史用户标识进行合并,也即,将目标数据存储地址对应的用户标识、和历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;在接收到外部存储器反馈的历史目标数据存储地址对应的数据后,向合并用户标识对应的用户设备发送该数据。
如果不一致,则基于当前处理周期中的目标数据存储地址从外部存储器中读取目 标数据,在外部存储器返回历史目标数据存储地址对应的数据后,将该数据发送给历史目标数据存储地址对应的用户设备,在外部存储器返回目标数据后,向当前处理周期中目标数据存储地址对应的用户设备发送目标数据。
如图2所示,本公开另一实施例中,多个缓存块中的各缓存块201包括:数据存储模块2011、以及标识存储模块2012;
数据存储模块2011,接收仲裁电路10发送的目标数据读取请求、以及用户标识,基于目标数据读取请求中携带的目标数据存储地址,确定该数据存储模块2011是否存储有与目标数据存储地址对应的目标数据;在该数据存储模块2011存储有与目标数据存储地址对应的目标数据的情况下,基于用户标识向目标分组中各数据读取请求对应的用户设备发送目标数据。
在该数据存储模块2011并未存储有与目标数据存储地址对应的目标数据的情况下,向标识存储模块2012发送用户标识以及目标数据存储地址;
标识存储模块2012在接收到数据存储模块2011发送的用户标识以及目标数据存储地址后,将目标数据存储地址、与历史目标数据存储地址进行比对,在目标数据存储地址与历史目标数据存储地址不一致的情况下,向数据存储模块2011反馈获取目标数据的读取指令;
数据存储模块2011接收到标识存储模块2012反馈的获取目标数据的读取指令后,向外部存储器发送读取目标数据的请求,该请求中携带目标数据存储地址;在接收到外部存储器返回的目标数据后,基于目标数据存储地址从标识存储模块2012读取目标数据存储地址对应的用户标识,基于读取到的用户标识向目标分组中各数据读取请求对应的用户设备发送目标数据。
为了避免重复响应同一个数据读取请求,数据存储模块2011从标识存储模块2012读取到目标数据存储地址对应的用户标识后,标识存储模块2012删除该用户标识。
另外,标识存储模块2012在目标数据存储地址与所述历史目标数据存储地址一致的情况下,向数据存储模块2011反馈等待外部存储器返回目标数据的等待指令;数据存储模块2011接收到外部存储器返回的目标数据后,基于目标数据存储地址从标识存储模块2012读取目标数据存储地址对应的用户标识、以及历史目标数据存储地址对应的历史用户标识,基于用户标识、以及历史用户标识,向目标分组和历史目标分组中各数据读取请求对应的用户设备返回目标数据。
或者,标识存储模块2012在目标数据存储地址与所述历史目标数据存储地址一致的情况下,向数据存储模块2011反馈等待外部存储器返回目标数据的等待指令,并将目标数据存储地址对应的用户标识、以及历史目标数据存储地址对应的历史用户标识合并,得到合并用户标识;数据存储模块2011接收到外部存储器返回的目标数据后,基于目标数据存储地址从标识存储模块2012读取合并用户标识,基于合并用户标识向目标分组和历史目标分组中各数据读取请求对应的用户设备返回目标数据。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据读取装置对应的数据读取方法,由于本公开实施例中的方法解决问题的原理与本公开实施例上述数据读取装置相似,因此方法的实施可以参见装置的实施,重复之处不再赘述。
本公开实施例所提供的数据读取方法的执行主体一般为具有一定计算能力的计算 机设备,该计算机设备例如包括:数据读取装置、终端设备、服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备、个人电脑、笔记本电脑等。在一些可能的实现方式中,该数据读取方法可以通过计算机设备中的处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为数据读取装置为例对本公开实施例提供的数据读取方法加以说明。
参照图3所示,为本公开实施例提供的一种数据读取方法的流程图,包括:
S301:仲裁电路接收一个或多个用户设备发送的一个或多个数据读取请求,并从一个或多个数据读取请求中,为多个缓存块中各缓存块确定对应的目标数据读取请求;向多个缓存块分别发送对应的目标数据读取请求;
S302:多个缓存块中的各缓存块在接收到仲裁电路发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送目标数据。
在一种可能的实施方式中,所述仲裁电路从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求,包括:基于每一个所述数据读取请求中携带的数据存储地址、以及每一个缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求,包括:基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定对应的目标数据读取请求,包括:将标识数据与该缓存块对应的缓存块标识匹配成功的数据读取请求,确定作为该缓存块的备选数据读取请求;基于一个或多个所述备选数据读取请求的优先级信息、和/或预设发送顺序,从所述备选数据读取请求中,为该缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求,包括:基于多个所述数据读取请求中携带的数据存储地址,将多个所述数据读取请求分为至少一个分组;其中,属于同一分组的数据读取请求中携带的数据存储地址相同;基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组;针对每个缓存块,基于与该缓存块对应的目标分组中的数据读取请求,为该缓存块确定对应的目标数据读取请求。
在一种可能的实施方式中,所述仲裁电路基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组,包括:所述仲裁电路基于该缓存块对应的分组分别包括的数据读取请求的数量,为该缓存块确定目标分组;或者,基于该缓存块对应的分组分别包括的数据读取请求的优先级,为该缓存块确定目标分组;或者,基于该缓存块对应的分 组分别包括的数据读取请求中携带的数据存储地址、以及预先设置的不同数据存储地址对应的发送顺序,为该缓存块确定目标分组。
在一种可能的实施方式中,所述数据读取方法还包括:所述仲裁电路针对所述多个缓存块中的各缓存块,确定该缓存块对应的目标数据读取请求的用户标识;向该缓存块发送所述用户标识;所述多个缓存块中的各缓存块向发送对应的目标数据读取请求的用户设备发送所述目标数据包括:基于所述用户标识,向所述用户标识对应的用户设备发送所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于对应的目标数据读取请求获取目标数据,包括:所述多个缓存块中的各缓存块,基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有所述目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;在确定该缓存块并未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于所述目标数据存储地址,从外部存储器中读取所述目标数据,包括:所述多个缓存块中的各缓存块,将所述目标数据存储地址、与历史目标数据存储地址进行比对;其中,该缓存块基于所述历史目标数据存储地址向外部存储器请求了数据、且所述外部存储器尚未返回数据;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块基于所述目标数据存储地址,从外部存储器中读取所述目标数据后,还包括:所述多个缓存块中的各缓存块在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,将所述历史目标数据存储地址对应的数据作为所述目标数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述多个缓存块中的各缓存块,还用于在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,包括:数据存储模块;所述多个缓存块中的各缓存块基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据,包括:所述数据存储模块基于对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有与所述目标数据存储地址对应的目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;所述数据读取方法,还包括:所述数据存储模块在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据;向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据。
在一种可能的实施方式中,所述多个缓存块中的各缓存块,还包括:标识存储模块;所述数据存储模块在确定该缓存块未存储所述目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据,包括:所述数据存储模块向所述标识 存储模块发送所述目标数据存储地址;在接收到所述标识存储模块反馈的读取指令后,从外部存储器中读取所述目标数据;所述数据读取方法,还包括:所述标识存储模块在接收到所述数据存储模块发送的目标数据存储地址后,将所述目标数据存储地址、与历史目标数据存储地址进行比对;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,向所述数据存储模块反馈读取指令;在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,向所述数据存储模块反馈等待指令;其中,所述数据存储模块基于所述历史目标数据存储地址向外部存储器请求了数据、且所述外部存储器尚未返回数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述数据存储模块在确定该缓存块未存储与所述目标数据存储地址对应的目标数据的情况下,向所述标识存储模块发送所述目标数据读取请求的用户标识;所述数据存储模块向所述目标数据读取请求对应的用户设备发送从所述外部存储器读取的所述目标数据,包括:从外部存储器中读取所述目标数据后,从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述从外部存储器中读取所述目标数据。
在一种可能的实施方式中,所述数据读取方法还包括:所述标识存储模块在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;所述数据存储模块在从所述标识存储模块读取与所述目标数据读取请求对应的用户标识,并基于所述用户标识,向与所述用户标识对应的用户设备发送所述目标数据时,执行:在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
本公开实施例还提供了一种芯片,包括:如本公开任一实施例所述的数据读取装置。
上述数据读取装置的具体执行命令的具体过程可以参考本公开实施例中所述的数据读取方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机设备,包括本公开任一实施例提供的芯片。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据读取方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (17)
- 一种数据读取装置,包括仲裁电路以及缓存器;其中,所述缓存器包括多个缓存块;所述仲裁电路,用于接收一个或多个用户设备发送的一个或多个数据读取请求,并从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求;向所述多个缓存块分别发送对应的目标数据读取请求;所述多个缓存块中的各缓存块,用于在接收到所述仲裁电路发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请求的用户设备发送所述目标数据。
- 根据权利要求1所述的数据读取装置,其特征在于,所述仲裁电路,在从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求时,用于:基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求。
- 根据权利要求2所述的数据读取装置,其特征在于,所述仲裁电路,在基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求时,用于:基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定对应的目标数据读取请求。
- 根据权利要求3所述的数据读取装置,其特征在于,所述仲裁电路,在基于每一个所述数据读取请求携带的数据存储地址中的目标比特位表示的标识数据、以及该缓存块对应的缓存块标识,为该缓存块确定对应的目标数据读取请求时,用于:将所述标识数据与该缓存块对应的缓存块标识匹配成功的数据读取请求,确定作为该缓存块的备选数据读取请求;基于一个或多个所述备选数据读取请求的优先级信息、和/或预设发送顺序,从所述备选数据读取请求中,为该缓存块确定对应的目标数据读取请求。
- 根据权利要求2或3所述的数据读取装置,其特征在于,所述仲裁电路,在基于每一个所述数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标数据读取请求时,用于:基于多个所述数据读取请求中携带的数据存储地址,将多个所述数据读取请求分为至少一个分组;其中,属于同一分组的数据读取请求中携带的数据存储地址相同;基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组;针对每个所述缓存块,基于与该缓存块对应的目标分组中的数据读取请求,为该缓存块确定对应的目标数据读取请求。
- 根据权利要求5所述的数据读取装置,其特征在于,所述仲裁电路,在基于每个分组的数据读取请求中携带的数据存储地址、以及每一个所述缓存块对应的缓存块标识,为所述多个缓存块中的各缓存块确定对应的目标分组时,用于:针对所述多个缓存块中的各缓存块,基于以下任意一项为该缓存块确定对应的目标分组:该缓存块对应的分组分别包括的数据读取请求的数量,该缓存块对应的分组分别包括的数据读取请求的优先级,该缓存块对应的分组分别包括的数据读取请求中携带的数据存储地址对应的预设发送顺序。
- 根据权利要求1至6任一项所述的数据读取装置,其特征在于,所述仲裁电路,还用于:针对所述多个缓存块中的各缓存块,确定该缓存块对应的目标数据读取请求的用户标识;向该缓存块发送所述用户标识;所述多个缓存块中的各缓存块,在向发送对应的目标数据读取请求的用户设备发送所述目标数据时,用于基于所述用户标识,向所述用户标识对应的用户设备发送所述目标数据。
- 根据权利要求1至7中任一项所述的数据读取装置,其特征在于,所述多个缓存块中的各缓存块包括数据存储模块,在基于对应的目标数据读取请求获取目标数据时,用于:基于所述对应的目标数据读取请求中携带的目标数据存储地址,确定该缓存块是否存储有与所述目标数据存储地址对应的目标数据;在确定该缓存块存储有所述目标数据的情况下,向所述目标数据读取请求对应的用户设备发送所述目标数据;在确定该缓存块并未存储所述目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据;向所述目标数据读取请求对应的用户设备发送所述目标数据。
- 根据权利要求8所述的数据读取装置,其特征在于,所述多个缓存块中的各缓存块,在确定该缓存块并未存储所述目标数据的情况下,用于:将所述目标数据存储地址、与历史目标数据存储地址进行比对;其中,该缓存块基于所述历史目标数据存储地址向所述外部存储器请求了数据、且所述外部存储器尚未返回数据;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,从所述外部存储器中读取所述目标数据;在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,将所述历史目标数据存储地址对应的数据作为所述目标数据。
- 根据权利要求9所述的数据读取装置,其特征在于,所述多个缓存块中的各缓存块,在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进 行合并,得到合并用户标识;在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
- 根据权利要求8所述的数据读取装置,其特征在于,所述多个缓存块中的各缓存块,还包括标识存储模块;所述数据存储模块,在确定该缓存块未存储所述目标数据的情况下,基于所述目标数据存储地址,从外部存储器中读取所述目标数据时,用于:向所述标识存储模块发送所述目标数据存储地址;所述标识存储模块,用于在接收到所述数据存储模块发送的所述目标数据存储地址后,将所述目标数据存储地址、与历史目标数据存储地址进行比对,其中,所述数据存储模块基于所述历史目标数据存储地址向所述外部存储器请求了数据、且所述外部存储器尚未返回数据;在所述目标数据存储地址与所述历史目标数据存储地址不一致的情况下,向所述数据存储模块反馈读取指令;在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,向所述数据存储模块反馈等待指令;所述数据存储模块,还用于:在接收到所述标识存储模块反馈的所述读取指令后,从所述外部存储器中读取所述目标数据。
- 根据权利要求11所述的数据读取装置,其特征在于,所述数据存储模块,还用于:在确定该缓存块未存储所述目标数据的情况下,向所述标识存储模块发送所述目标数据读取请求的用户标识;所述数据存储模块,在向所述目标数据读取请求对应的用户设备发送所述目标数据时,用于:从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述目标数据。
- 根据权利要求12所述的数据读取装置,其特征在于,所述标识存储模块,还用于:在所述目标数据存储地址与所述历史目标数据存储地址一致的情况下,将所述目标数据存储地址对应的用户标识、和所述历史目标数据存储地址对应的历史用户标识进行合并,得到合并用户标识;所述数据存储模块,在从所述标识存储模块读取与所述目标数据读取请求对应的用户标识;基于所述用户标识,向与所述用户标识对应的用户设备发送所述目标数据时,还用于:在接收到所述外部存储器反馈的所述历史目标数据存储地址对应的数据后,从所述标识存储模块读取所述合并用户标识,向所述合并用户标识对应的用户设备发送所述历史目标数据存储地址对应的数据。
- 一种数据读取方法,应用于数据读取装置,所述数据读取装置包括仲裁电路以及缓存器;其中,所述缓存器包括多个缓存块;所述数据读取方法包括:所述仲裁电路接收一个或多个用户设备发送的一个或多个数据读取请求,并从所述一个或多个数据读取请求中,为所述多个缓存块中各缓存块确定对应的目标数据读取请求;向所述多个缓存块分别发送对应的目标数据读取请求;所述多个缓存块中的各缓存块在接收到所述仲裁电路发送的对应的目标数据读取请求时,基于对应的目标数据读取请求获取目标数据,并向发送对应的目标数据读取请 求的用户设备发送所述目标数据。
- 一种芯片,其特征在于,包括:如权利要求1至13任一项所述的数据读取装置。
- 一种计算机设备,其特征在于,包括:指令存储器和如权利要求15所述的芯片。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求14所述的数据读取方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110476806.8A CN113157603A (zh) | 2021-04-29 | 2021-04-29 | 数据读取装置、方法、芯片、计算机设备及存储介质 |
CN202110476806.8 | 2021-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022227561A1 true WO2022227561A1 (zh) | 2022-11-03 |
Family
ID=76872812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/134574 WO2022227561A1 (zh) | 2021-04-29 | 2021-11-30 | 用于数据读取的装置、方法、芯片、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113157603A (zh) |
WO (1) | WO2022227561A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157603A (zh) * | 2021-04-29 | 2021-07-23 | 上海阵量智能科技有限公司 | 数据读取装置、方法、芯片、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116555A (zh) * | 2013-03-05 | 2013-05-22 | 中国人民解放军国防科学技术大学 | 基于多体并行缓存结构的数据访问方法 |
CN107273522A (zh) * | 2015-06-01 | 2017-10-20 | 明算科技(北京)股份有限公司 | 面向多应用的数据存储系统和数据调用方法 |
CN110147254A (zh) * | 2019-05-23 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种数据缓存处理方法、装置、设备及可读存储介质 |
US20200358709A1 (en) * | 2015-09-10 | 2020-11-12 | Lightfleet Corporation | Priority-based arbitration for parallel multicast routing with self-directed data packets |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN113157603A (zh) * | 2021-04-29 | 2021-07-23 | 上海阵量智能科技有限公司 | 数据读取装置、方法、芯片、计算机设备及存储介质 |
-
2021
- 2021-04-29 CN CN202110476806.8A patent/CN113157603A/zh active Pending
- 2021-11-30 WO PCT/CN2021/134574 patent/WO2022227561A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116555A (zh) * | 2013-03-05 | 2013-05-22 | 中国人民解放军国防科学技术大学 | 基于多体并行缓存结构的数据访问方法 |
CN107273522A (zh) * | 2015-06-01 | 2017-10-20 | 明算科技(北京)股份有限公司 | 面向多应用的数据存储系统和数据调用方法 |
US20200358709A1 (en) * | 2015-09-10 | 2020-11-12 | Lightfleet Corporation | Priority-based arbitration for parallel multicast routing with self-directed data packets |
CN110147254A (zh) * | 2019-05-23 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种数据缓存处理方法、装置、设备及可读存储介质 |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN113157603A (zh) * | 2021-04-29 | 2021-07-23 | 上海阵量智能科技有限公司 | 数据读取装置、方法、芯片、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113157603A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8325633B2 (en) | Remote direct memory access | |
US7827024B2 (en) | Low latency, high bandwidth data communications between compute nodes in a parallel computer | |
US11347563B2 (en) | Computing system and method for operating computing system | |
US9253275B2 (en) | Cognitive dynamic allocation in caching appliances | |
WO2021258512A1 (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
WO2022227693A1 (zh) | 用于命令分发的装置、方法、芯片、计算机设备及介质 | |
CN111737300A (zh) | 业务处理方法、装置、设备及计算机可读存储介质 | |
WO2022227561A1 (zh) | 用于数据读取的装置、方法、芯片、计算机设备及存储介质 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
US20220229701A1 (en) | Dynamic allocation of computing resources | |
CN114742000B (zh) | 基于FPGA集群的SoC芯片验证系统、验证方法、装置 | |
CN112559386A (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
US8543722B2 (en) | Message passing with queues and channels | |
US8533377B2 (en) | System and method for allocating transaction ID in a system with a plurality of processing modules | |
WO2019134222A1 (zh) | Docker镜像库文件存储方法、终端、设备以及存储介质 | |
US20060026214A1 (en) | Switching from synchronous to asynchronous processing | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
US10284501B2 (en) | Technologies for multi-core wireless network data transmission | |
CN110659143A (zh) | 一种容器间的通讯方法、装置及电子设备 | |
CN111228815B (zh) | 处理游戏的配置表的方法、装置、存储介质和系统 | |
CN116418848A (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
CN116136790A (zh) | 任务处理方法和装置 | |
CN105072047A (zh) | 一种报文传输及处理方法 | |
CN116360708B (zh) | 数据写入方法及装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21939020 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21939020 Country of ref document: EP Kind code of ref document: A1 |