CN110704338B - 地址转换装置、人工智能芯片及电子设备 - Google Patents

地址转换装置、人工智能芯片及电子设备 Download PDF

Info

Publication number
CN110704338B
CN110704338B CN201910993793.4A CN201910993793A CN110704338B CN 110704338 B CN110704338 B CN 110704338B CN 201910993793 A CN201910993793 A CN 201910993793A CN 110704338 B CN110704338 B CN 110704338B
Authority
CN
China
Prior art keywords
data
unit
content addressing
artificial intelligence
virtual address
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
CN201910993793.4A
Other languages
English (en)
Other versions
CN110704338A (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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information 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 Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN201910993793.4A priority Critical patent/CN110704338B/zh
Publication of CN110704338A publication Critical patent/CN110704338A/zh
Application granted granted Critical
Publication of CN110704338B publication Critical patent/CN110704338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及一种地址转换装置、人工智能芯片及电子设备,板卡包括:存储器件、接口装置和控制器件以及所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。本公开所述的地址转换装置,可以适用于多核心、大数据量的场景,并提高数据读取的效率,增加适应性及灵活性。

Description

地址转换装置、人工智能芯片及电子设备
技术领域
本公开涉及计算机技术领域,特别是涉及一种地址转换装置、人工智能芯片及电子设备。
背景技术
随着计算机技术的发展,为了加快数据的读取,相关技术采用系统内存管理单元(SMMU,System Memory Management Unit)完成IO设备虚拟地址到物理地址的转换功能。然而,相关技术的SMMU在完成虚拟地址到物理地址的转换时延迟大、效率低,无法适用于大数据量、多核心并行访问的情况。
发明内容
基于此,有必要针对上述技术问题,根据本公开的一个方面,提供一种地址转换装置,所述装置通过总线接收至少一个数据读取或写入请求,所述数据读取或写入请求中包括虚拟地址,所述装置包括:
翻译缓存模块,包括:数据分配单元、多个内容寻址单元、缓存单元;
所述数据分配单元,用于确定每一个数据读取或写入请求对应的内容寻址单元,并将所述每一个数据读取或写入请求传输到所述对应的内容寻址单元;
所述内容寻址单元,用于在本身存储有所述虚拟地址的情况下,通过所述缓存单元确定与所述虚拟地址对应的物理地址。
根据本公开的另一方面,提出了一种人工智能芯片,所述芯片包括所述的地址转换装置。
根据本公开的另一方面,提出了一种电子设备,所述电子设备包括所述的人工智能芯片。
根据本公开的另一方面,提出了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
本公开各个方面可以将多个数据读取或写入请求通过数据分配单元分配给对应的内容寻址单元,从而实现对各个数据读取或写入请求的独立处理,每个内容寻址单元根据数据读取或写入请求适应性地在缓存单元中确定对应的物理地址。本公开所述的地址转换装置,可以适用于多核心、大数据量的场景,并提高数据读取的效率,增加适应性及灵活性。
通过权要中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施方式的地址转换装置的框图。
图2示出了根据本公开一实施方式的地址转换装置的框图。
图3示出根据本公开一实施方式的板卡的结构框图
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
相关技术中的SMMU在应用到人工智能(AI)芯片中时,由于AI芯片具有多核心、大数据量的特性,因此相关技术的SMMU在进行虚拟地址到物理地址的转换时,延迟大、效率低,并且不能针对多数据流的访问特性制定TLB(Translation Lookaside Buffer)的实现策略以加速TLB查找效率。
有鉴于此,本公开提出一种新的技术方案,以克服相关技术存在的缺陷。
请参阅图1,图1示出了根据本公开一实施方式的地址转换装置的框图。
如图1所示,所述装置通过输入总线接收至少一个数据读取或写入请求,所述数据读取或写入请求中包括虚拟地址,所述装置包括:
翻译缓存模块1,包括:数据分配单元10、多个内容寻址单元(ContentAddressable Unit,CAU)20、缓存单元30;
所述数据分配单元10,用于确定每一个数据读取或写入请求对应的内容寻址单元20,并将所述每一个数据读取或写入请求传输到所述对应的内容寻址单元20;
所述内容寻址单元20,用于在本身存储有所述虚拟地址的情况下,通过所述缓存单元30确定与所述虚拟地址对应的物理地址。
通过以上装置,本公开可以将多个数据读取或写入请求通过数据分配单元分配给对应的内容寻址单元,从而实现对各个数据读取或写入请求的独立处理,每个内容寻址单元可以根据数据读取或写入请求适应性地通过缓存单元确定对应的物理地址。本公开所述的地址转换装置,可以适用于多核心、大数据量的场景,并提高数据读取的效率,增加适应性及灵活性。
在一种可能的实施方式中,输入总线可以连接到一个IO设备,IO设备可以包括多个直接内存存取单元(DMA,Direct Memory Access),每个DMA可以发出数据读取或写入请求,并通过输入总线传输到地址转换装置。
本公开对每一个IO设备可以配置单独的地址转换装置,在具有多个IO设备的芯片(例如人工智能芯片)中,每个IO设备的IO接口连接到对应的地址转换装置,可以实现对该IO设备发出的数据读取或写入请求的快速响应,提高地址转换的效率,从而提高数据读取或写入的速度。对具有多个IO设备的芯片来说,根据本公开可能的实施方式,对每个IO设备设置对应的地址转换装置,可以提高芯片的地址转换效率,从而提高芯片的工作效率。
本公开对数据读取或写入请求包括的具体信息不做限定,每个DMA发出的数据读取或写入请求根据要读取或写入数据的要求不同,可以包括不同的虚拟地址、不同的数据量大小等。
在一种可能的实施方式中,输入总线例如可以为AXI、ACE等,对于输入总线的具体类型,本公开不做限定。
在一种可能的实施方式中,可以将输入总线及输出总线的类型设置为相同,例如,当输入总线为AXI时,可以设置输出总线也为AXI。这样,可以使得地址转换装置能够嵌入多种IO设备,并且不需要改变IO设备的设计结构,增加地址转换装置的适用性。
在一种可能的实施方式中,每个内存寻址单元20可以缓存有多个虚拟地址,每个内存寻址单元通过将从数据读取或写入请求中获得的虚拟地址与自身缓存的虚拟地址进行比较,从而可以判断在内存寻址单元20中是否缓存有对应的虚拟地址(存在对应的虚拟地址可以称为命中hit,不存在对应的虚拟地址可以称为未命中miss)。
在一种可能的实施方式中,可以根据需要在每个内存寻址单元20中存储不同的虚拟地址,并且,可以设置每个内存寻址单元20与直接内存存取单元对应,这样,当直接内存存取单元发出数据读取或写入请求时,可以直接到对应内容寻址单元进行查询,如果命中hit,则可以进一步获得对应的物理地址。
这样,可以提高地址查询的效率。
在一种可能的实施方式中,所述数据读取或写入请求中还可以包括数据标识,所述确定每一个数据读取或写入请求对应的内容寻址单元20,可以包括:
根据所述数据读取或写入请求中的数据标识及预设对应关系确定内容寻址单元20,其中,所述预设对应关系包括数据标识与内容寻址单元的对应关系。
本公开可以提前配置所述预设对应关系,即将数据标识与内容寻址单元20建立对应关系,在一种可能的实施方式中,所述数据标识可以为直接内存存取单元的标识,该数据标识可以唯一地标识发出数据读取或写入请求的来源。
直接内存存取单元在发出数据读取或写入请求时,将直接内存存取单元的数据标识携带在数据读取或写入请求中,在数据分配单元10接收到数据读取或写入请求后,可以根据数据读取或写入请求携带的数据标识及预存的预设对应关系确定与该数据标识对应的内容寻址单元20。
当然,以上以直接内存存取单元为例对发出数据读取或写入请求及数据标识进行了说明,应该明白的是,以上描述是示例性的,除了直接内存存取单元,本领域技术人员也可以通过其他技术手段发出数据读取或写入请求,只要发出的数据读取或写入请求携带有可以唯一标识其来源的数据标识即可。
通过数据标识及内容寻址单元20的对应关系,数据分配单元10可以快速确定与数据读取或写入请求对应的内容寻址单元20,从而加快地址查询及转换,提高数据读取的效率。
在一种可能的实施方式中,所述数据分配单元10可以包括数据分配器(DEMUX),数据分配单元10可以包括一个输入端及多个输出端,一个输入端用于接收从输入总线输入的数据读取或写入请求,多个输出端分别连接到多个内容寻址单元20,用于将数据读取或写入请求传输到对应的内容寻址单元20。
当有多个数据读取或写入请求到达数据分配单元10时,数据分配单元10可以按照数据读取或写入请求到来的时间顺序确定每个数据读取或写入请求对应的内容寻址单元20。
当多个数据读取或写入请求同时到达数据分配单元10时,数据分配单元10可以按照预先设置的优先级顺序为每个数据读取或写入请求确定内容寻址单元20,当然,本领域技术人员可以根据实际情况确定优先级顺序,对此,本公开不做限定。
在数据分配单元10确定了数据读取或写入请求对应的内容寻址单元20后,可以将数据读取或写入请求传输到对应的内容寻址单元20。
内容寻址单元20在接收到数据读取或写入请求后,可以将数据读取或写入请求中的虚拟地址与自身缓存的虚拟地址进行比较,从而确定是否命中。
在一种可能的实施方式中,每个内容寻址单元20可以被配置有不同的页面替换策略及预取策略。为了适用于一些芯片(例如AI芯片)的多核心、大数据量的特点,本公开在翻译缓存模块1中设置多个内容寻址单元20,每个内容寻址单元20中可以设置不同的页面替换策略及预取策略。
当内容寻址单元20根据数据读取或写入请求查询到虚拟地址命中的情况下,可以调用该内容寻址单元20中的预取策略,从而实现预取;当内容寻址单元20根据数据读取或写入请求查询到虚拟地址未命中的情况下,可以调用对应的页面替换策略更新页面。
在一种可能的实施方式中,所述页面替换策略例如可以包括NRU算法、LRU算法等,所述预取策略例如可以包括forward预取、backward预取等。
当然,以上描述并非穷举,也并不以此限定本公开,本领域技术人员可以选择其他的页面替换策略及预取策略,对内容寻址单元进行设置,从而满足实际运用的需要。
应该说明的是,本公开以各个内容寻址单元20被配置的替换策略、预取策略不同为例进行了说明,但是,在其他的实施方式中,本领域技术人员也可以设置具有相同配置的内容寻址单元20。举例而言,假设有四个内容寻址单元20,可以设置其中两个内容寻址单元20具有相同配置的替换策略、预取策略,另外两个具有不同配置的替换策略、预取策略。
如前介绍,本公开可以提前配置好预设对应关系,从而使得数据分配单元10在接收到数据读取或写入请求后,可以根据数据读取或写入请求中的数据标识及预设对应关系确定内容寻址单元20。但是,在其他的实施方式中,本公开也可以通过其他方式确定与数据读取或写入请求对应的内容寻址单元20。
在一种可能的实施方式中,所述确定每一个数据读取或写入请求对应的内容寻址单元20,可以包括:
根据所述虚拟地址确定匹配的页面替换策略及预取策略;
根据匹配的页面替换策略及预取策略确定内容寻址单元20。
在本实施方式中,数据分配单元10可以对数据读取或写入请求中的虚拟地址进行分析,从而确定与数据读取或写入请求相匹配的页面替换策略及预取策略。
例如,数据分配单元10可以根据虚拟地址确定数据读取或写入请求要读取的数据的数据类型、访问特性,从而确定相应的页面替换策略及预取策略。
在确定了与数据读取或写入请求匹配的页面替换策略及预取策略后,数据分配单元10可以进一步确定内容寻址单元20,例如确定配置有上述匹配的页面替换策略和预取策略的内存寻址单元20,并将数据读取或写入请求传输到确定的内容寻址单元20中。
在一种可能的实施方式中,缓存单元30可以包括TLB(Translation LookasideBuffer)SRAM,缓存单元30可以存储有多个内容寻址单元20中缓存的虚拟地址对应的物理地址。
当内容寻址单元20根据数据读取或写入请求查询虚拟地址命中的情况下,缓存单元30输出与命中的虚拟地址对应的物理地址。
在一个示例中,在缓存单元30中,每个物理地址可以包括对应的物理地址标识,该物理地址标识与物理地址、虚拟地址对应,该物理地址标识也可以存储在内容寻址单元20中,当内容寻址单元20根据数据读取或写入请求查询虚拟地址命中的情况下,内容寻址单元20可以得到与虚拟地址对应的物理地址的物理地址标识,并利用物理地址标识从缓存单元30中获取对应的物理地址。
本公开对物理地址标识的具体实现方式不做限定,本领域技术人员可以根据需要设定。
应该说明的是,在确定了物理地址后,地址转换装置可以通过输出总线输出物理地址及读取或写入的请求信号,从而到内存、硬盘等存储介质中读取或写入数据。应该说明的是,“读取或写入请求”与“读取或写入的请求信号”可以是不同的,“读取或写入请求”包括虚拟地址,利用本公开提出的地址转换装置,可以将“读取或写入请求”中的虚拟地址转换为物理地址。而“读取或写入的请求信号”可以是利用物理地址到存储介质读取或写入数据的请求信号,例如,当“读取或写入的请求信号”为根据物理地址到存储介质读取数据的请求信号时,地址转换装置可以利用该读取数据的请求信号到存储介质对应的物理地址去读取数据;当“读取或写入的请求信号”为根据物理地址到存储介质写入数据的请求信号时,该“读取或写入的请求信号”可以包括要写入的数据,地址转换装置可以利用该写入数据的请求信号到存储介质对应的物理地址去写入数据。
请参阅图2,图2示出了根据本公开一实施方式的地址转换装置的框图。
在一种可能的实施方式中,如图2所示,所述翻译缓存模块1还可以包括:
第一数据选择单元40,电连接于所述多个内容寻址单元20,用于按照时间顺序或内容寻址单元的编号大小顺序或预设优先级顺序依次输出所述多个内容寻址单元的数据。
在一种可能的实施方式中,第一数据选择单元40可以包括数据选择器MUX,在不同的实施方式中,数据选择器具体可为四选一、八选一、十六选一等,本公开对数据选择器的具体参数不做限制,只要大于或等于内容寻址单元20的数目,可以实现将多个内容寻址单元20的数据按顺序输出到缓存单元30即可。
在多个内容寻址单元20根据数据读取或写入请求查询虚拟地址得到数据(包括查询结果hit或miss,及数据读取或写入请求)后,可以通过第一数据选择单元40将数据传输到缓存单元30。通过第一数据选择单元40按顺序输出每个内容寻址单元20的数据,可以避免多个内容寻址单元20输出数据到缓存单元30造成数据错乱。
在一种可能的实施方式中,内容寻址单元20输出的数据可以包括查询命中或没命中的消息、虚拟地址(或对应物理地址的标识)、数据读取或写入的请求信号(可以包括要读取的数据的大小或规模等)、页表查询请求等。
应该说明的是,第一数据选择单元40的预设优先级顺序可以根据实际需求设定,本公开对各个内容寻址单元20输出数据到缓存单元30的具体预设优先级顺序不做限定。
在一种可能的实施方式中,所述内容寻址单元20还用于在本身没有存储所述虚拟地址的情况下(即miss),利用配置的页面替换策略进行页面替换,以缓存所述虚拟地址在所述内容寻址单元20;输出页表查询请求(PTW,Page Table Walk)及页面替换的结果信息,所述页表查询请求用于在内存中查询页表以确定所述数据读取或写入请求的虚拟地址对应的物理地址。
其中,所述结果信息可以包括页面替换后,该虚拟地址与物理地址的索引信息,通过该索引信息,可以确定该物理地址与该虚拟地址的对应关系。在一个示例中,内容寻址单元20在根据数据读取或写入请求查询虚拟地址未命中的情况下,可以发出页表查询请求以在内存中查询页表,以确定与数据读取或写入请求中的虚拟地址对应的物理地址,并可以利用预先配置的页面替换策略进行页面替换,以将数据读取或写入请求中的虚拟地址缓存在内容寻址单元20中。在将所述虚拟地址缓存时,内容寻址单元20可以输出页面替换的结果信息,以使得下游模块能够得到虚拟地址与物理地址的索引信息。
在一种可能的实施方式中,所述内存寻址单元20在查询所述虚拟地址并命中的情况下(即hit),可以到缓存单元30查询是否存在与所述虚拟地址对应的物理地址,当所述缓存单元30发生错误,导致无法获得所述虚拟地址对应的物理地址的情况下,所述缓存单元30可以输出页表查询请求PTW,以在内存中查询页表以确定所述数据读取或写入请求的虚拟地址对应的物理地址。
在一种可能的实施方式中,如图2所示,所述装置还可以包括:
翻译控制模块2,电连接于所述翻译缓存模块1,用于根据所述页表查询请求PTW,从内存中获取所述数据读取或写入请求的虚拟地址对应的物理地址,并将确定的所述数据读取或写入请求的虚拟地址对应的物理地址传输到所述翻译缓存模块1;
所述翻译缓存模块1,还用于根据所述翻译控制模块2传输来的物理地址及所述结果信息在所述缓存单元进行物理地址更新。
在一个示例中,所述结果信息可以包括虚拟地址与物理地址的对应关系(例如索引信息),翻译缓存模块1可以将物理地址及从结果信息中得到的物理地址的索引信息存储到缓存单元中,从而对物理地址进行更新。
在一种可能的实施方式中,所述翻译控制模块2可以包括翻译控制单元(Translation Control Unit,TCU)。
在一种可能的实施方式中,所述翻译控制模块2可以连接到翻译缓存模块的缓存单元30,翻译控制模块2可接收由缓存单元30提供的虚拟地址及页表查询请求,从而到外部存储介质(例如内存)中查询与缓存单元30提供的虚拟地址对应的物理地址,并将查询结果返回。
在一个示例中,翻译控制模块2在根据页表查询请求,从内存中获取所述虚拟地址对应的物理地址时,可以将物理地址发送到缓存单元30,以将该物理地址缓存在对应的位置。
在一个示例中,内容寻址单元20在本身没有存储所述虚拟地址的情况下,可以将该虚拟地址缓存在内容寻址单元20(以配置的页面替换策略进行页面替换),并设置有效位(例如可以包括1个比特),在该有效位被设置为有效的情况下,内容寻址单元20中进行页面替换的虚拟地址被置为有效,此后,如果有新的数据读取或写入请求查询该虚拟地址,则可以在该内容寻址单元20中查询到该虚拟地址。
通过设置有效位,本公开实施例可以通过翻译控制模块2触发内容寻址单元20的该虚拟地址生效。
在一个示例中,内容寻址单元20可以电连接于翻译控制模块2,当翻译控制模块2从内存中获取所述虚拟地址对应的物理地址的情况下,可以将所述虚拟地址对应的有效位设置为有效,使得内容寻址单元20缓存的虚拟地址生效。
内容寻址单元20中的该虚拟地址对应的有效位除了可以被翻译控制模块2控制生效外,还可以被其他组件以软件或硬件的方式置位有效,例如,当翻译控制模块2没有在内存中查询到与该虚拟地址对应的物理地址的情况下,其他组件可以根据预设规则将内容寻址单元20中的该虚拟地址置为有效,并触发其他流程(例如触发中断)以进行物理地址的查询及更新,对此,本公开不做限定。
当然,在内容寻址单元20的存储空间(例如缓存cache)处于未满状态,内容寻址单元20也可以将所述虚拟地址直接存储到空闲的存储位置,对此,本公开不做限定。
当然,以上描述是示例性的,不应视为是对本公开的限制。
本公开通过翻译控制模块2可以从内存中确定与数据读取或写入请求的虚拟地址对应的物理地址,且,翻译缓存模块1中的内容寻址单元20可以根据配置的页面替换策略进行页面替换,从而更新内容寻址单元20中的虚拟地址、缓存单元30中的物理地址及二者的映射关系。
应该说明的是,当某个内容寻址单元20查询虚拟地址未命中的情况下,是对该内容寻址单元20进行操作,对其他的内容寻址单元20可不做操作。
在一个示例中,所述“操作”可以包括:当某个内容寻址单元20查询虚拟地址未命中的情况下,对该内容寻址单元20进行页面替换,以缓存数据读取或写入请求的虚拟地址。
在一个示例中,所述“操作”可以包括:当某个内容寻址单元20查询虚拟地址未命中的情况下,在利用页表查询请求在内存中获得对应的物理地址时,对该内容寻址单元20的有效位进行操作,例如,将该内容寻址单元20的有效位置位有效。
这样,在进行页面替换后,当下一个具有相同虚拟地址的数据读取或写入请求到来时,数据分配单元10可以将数据读取或写入请求传输到对应的内容寻址单元20,这种情况下,内容寻址单元20中存储有该虚拟地址,因此内容寻址单元20会查询命中,并且可以到缓存单元30中获得对应的物理地址。
在一种可能的实施方式中,所述装置还包括第二数据选择单元50,电连接于所述翻译缓存模块1及所述翻译控制模块2,用于按照时间顺序或预设优先级顺序依次输出所述翻译缓存模块1及所述翻译控制模块2的数据。
在一种可能的实施方式中,第二数据选择单元50可以包括数据选择器MUX。
应该说明的是,第二数据选择单元50的预设优先级顺序可以根据实际需要确定,本公开对此不做限定。
第二数据选择单元可以将缓存单元30输出的物理地址及数据读取或写入的请求信号通过输出总线输出,以在内存等存储介质中读取数据;还可以将翻译控制模块2输出的地址查询请求输出,从而在内存中查询页表,以得到对应的物理地址。
本公开的地址转换装置可以适应于多核心、大数据量的芯片,可以快速、高效地根据多个数据读取或写入请求完成地址的转换、数据的读取或写入,并且,基于不同内容寻址单元的模式配置,可以针对不同的数据读取或写入请求完成页面替换及预取,从而加快地址转换、数据读取或写入的效率。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储介质可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述地址转换装置。
在一种可能的实现方式中,还公开了一种人工智能芯片,所述人工智能芯片包括:
一个或两个以上的输入输出接口;
一个或两个以上的所述的地址转换装置,其中,所述输入输出接口与所述地址转换装置一一对应。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图3示出根据本公开一实施方式的板卡的结构框图,参阅图3,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括地址转换装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (11)

1.一种地址转换装置,其特征在于,所述装置通过总线接收至少一个数据读取或写入请求,所述数据读取或写入请求中包括虚拟地址及数据标识,所述装置包括:
翻译缓存模块,包括:数据分配单元、多个内容寻址单元、缓存单元;
所述数据分配单元,用于确定每一个数据读取或写入请求对应的内容寻址单元,并将所述每一个数据读取或写入请求传输到所述对应的内容寻址单元,所述确定每一个数据读取或写入请求对应的内容寻址单元,包括:根据所述数据读取或写入请求中的数据标识及预设对应关系确定所述对应的内容寻址单元,其中,所述预设对应关系包括数据标识与内容寻址单元的对应关系;
所述内容寻址单元,用于在本身存储有所述虚拟地址的情况下,通过所述缓存单元确定与所述虚拟地址对应的物理地址。
2.根据权利要求1所述的装置,其特征在于,所述数据分配单元包括数据分配器。
3.根据权利要求1所述的装置,其特征在于,每个内容寻址单元配置有不同的页面替换策略及预取策略,所述确定每一个数据读取或写入请求对应的内容寻址单元,包括:
根据所述虚拟地址确定匹配的页面替换策略及预取策略;
根据匹配的页面替换策略及预取策略确定所述对应的内容寻址单元。
4.根据权利要求1-3任一项所述的装置,其特征在于,所述翻译缓存模块还包括:
第一数据选择单元,电连接于所述多个内容寻址单元,用于按照时间顺序或内容寻址单元的编号大小顺序或预设优先级顺序依次输出所述多个内容寻址单元的数据。
5.根据权利要求1-3任一项所述的装置,其特征在于,所述内容寻址单元还用于:
在本身没有存储所述虚拟地址的情况下,利用配置的页面替换策略进行页面替换,以缓存所述虚拟地址在所述内容寻址单元;
输出页表查询请求及页面替换的结果信息,所述页表查询请求用于在内存中查询页表以确定所述虚拟地址对应的物理地址。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
翻译控制模块,电连接于所述翻译缓存模块,用于:
根据所述页表查询请求,从内存中获取所述虚拟地址对应的物理地址;
将确定的所述虚拟地址对应的物理地址传输到所述翻译缓存模块;
所述翻译缓存模块,还用于:根据所述翻译控制模块传输来的物理地址及所述结果信息在所述缓存单元进行物理地址更新。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括第二数据选择单元,电连接于所述翻译缓存模块及所述翻译控制模块,用于按照时间顺序或预设优先级顺序依次输出所述翻译缓存模块及所述翻译控制模块的数据。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求1-7中任意一项所述的地址转换装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
11.根据权利要求10所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述人工智能芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
CN201910993793.4A 2019-10-18 2019-10-18 地址转换装置、人工智能芯片及电子设备 Active CN110704338B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910993793.4A CN110704338B (zh) 2019-10-18 2019-10-18 地址转换装置、人工智能芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910993793.4A CN110704338B (zh) 2019-10-18 2019-10-18 地址转换装置、人工智能芯片及电子设备

Publications (2)

Publication Number Publication Date
CN110704338A CN110704338A (zh) 2020-01-17
CN110704338B true CN110704338B (zh) 2021-01-26

Family

ID=69201625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910993793.4A Active CN110704338B (zh) 2019-10-18 2019-10-18 地址转换装置、人工智能芯片及电子设备

Country Status (1)

Country Link
CN (1) CN110704338B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559046A (zh) * 2020-12-09 2021-03-26 清华大学 数据处理装置及人工智能处理器
CN115291812B (zh) * 2022-09-30 2023-01-13 北京紫光青藤微系统有限公司 一种通信芯片的数据存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973557B2 (en) * 2003-02-04 2005-12-06 Sun Microsystems, Inc. Apparatus and method for dual access to a banked and pipelined data cache memory unit
US8219780B2 (en) * 2005-09-16 2012-07-10 Hewlett-Packard Development Company, L.P. Mitigating context switch cache miss penalty
CN105095108A (zh) * 2014-05-06 2015-11-25 展讯通信(上海)有限公司 输入输出存储器管理单元及控制方法、装置
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
CN107493329A (zh) * 2017-08-15 2017-12-19 诸葛晴凤 一种分布式内存文件系统的远程文件访问方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102002900B1 (ko) * 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
CN107870867B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
US10552338B2 (en) * 2017-02-21 2020-02-04 Arm Limited Technique for efficient utilisation of an address translation cache
GB2571539B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973557B2 (en) * 2003-02-04 2005-12-06 Sun Microsystems, Inc. Apparatus and method for dual access to a banked and pipelined data cache memory unit
US8219780B2 (en) * 2005-09-16 2012-07-10 Hewlett-Packard Development Company, L.P. Mitigating context switch cache miss penalty
CN105095108A (zh) * 2014-05-06 2015-11-25 展讯通信(上海)有限公司 输入输出存储器管理单元及控制方法、装置
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
CN107493329A (zh) * 2017-08-15 2017-12-19 诸葛晴凤 一种分布式内存文件系统的远程文件访问方法

Also Published As

Publication number Publication date
CN110704338A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN113424160B (zh) 一种处理方法、装置及相关设备
CN102792285B (zh) 用于处理数据的装置和方法
US11474951B2 (en) Memory management unit, address translation method, and processor
KR101845371B1 (ko) 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템
CN111143242B (zh) 一种缓存预取方法和装置
US10255195B2 (en) Apparatus and method for performing address translation
JP2000242559A (ja) 情報処理装置及び半導体装置
CN105117180A (zh) 一种数据存储方法和装置以及固态硬盘
CN110704338B (zh) 地址转换装置、人工智能芯片及电子设备
US11243716B2 (en) Memory system and operation method thereof
US10083120B2 (en) Memory system, and address mapping method and access method thereof
CN112416819A (zh) 基于主机内存缓冲器的固态驱动器的实现方法及装置
CN109219804A (zh) 非易失内存访问方法、装置和系统
EP3382558B1 (en) Apparatus, method and system for just-in-time cache associativity
EP0745940B1 (en) An apparatus and method for providing a cache indexing scheme less susceptible to cache collisions
US6968402B2 (en) System and method for storing chunks of first cache line and second cache line in a buffer in a first and second chunk order
US7900019B2 (en) Data access target predictions in a data processing system
CN113157602B (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
JP2008511882A (ja) 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法
US6961837B2 (en) Method and apparatus for address translation pre-fetch
US10860498B2 (en) Data processing system
US6674441B1 (en) Method and apparatus for improving performance of an accelerated graphics port (AGP) device
CN114116533A (zh) 利用共享存储器存储数据的方法
US20230128405A1 (en) Electronic device and method for accelerating memory access
CN116643999A (zh) 一种l2p加速器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201223

Address after: Room 611-194, R & D center building, China (Hefei) international intelligent voice Industrial Park, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Anhui Cambrian Information Technology Co., Ltd

Address before: 100190 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Applicant before: Zhongke Cambrian Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant