CN110321307B - 寻址切换方案 - Google Patents
寻址切换方案 Download PDFInfo
- Publication number
- CN110321307B CN110321307B CN201910207670.3A CN201910207670A CN110321307B CN 110321307 B CN110321307 B CN 110321307B CN 201910207670 A CN201910207670 A CN 201910207670A CN 110321307 B CN110321307 B CN 110321307B
- Authority
- CN
- China
- Prior art keywords
- address
- bit
- axi
- address portion
- translator
- 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
Links
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种寻址切换方案以及设备,该设备包括:第一地址转换器,联接到第一装置和第二装置并且被配置为将从第一装置接收的第一n位地址转换为m位上地址部分和(n‑m)位下地址部分,并且将m位上地址部分通过边带路径以及将(n‑m)位下地址部分通过主路径递送到第二装置,m和n是正整数;以及第二地址转换器,被配置为将m位上地址部分和(n‑m)位下地址部分组合为表示第一n位地址的第二n位地址,并将第二n位地址提供给第三装置。
Description
相关申请的交叉引用
本申请要求于2018年3月28日提交的申请号为62/649,495、名称为“全64位寻址切换方案”(“FULL 64 BITS ADDRESSING SWITCH SOLUTION”)的美国临时专利申请的优先权,其公开内容通过引用整体并入本公开以用于所有目的。
技术领域
本发明总体涉及一种计算机互连架构,更特别地涉及一种在全地址的一部分已经被用于访问其他装置的情况下向主机装置提供全地址的设备、半导体装置和方法。
背景技术
高速外围组件互连(PCIe)是一种允许外围装置和主机之间进行高速串行数据传输的标准。随着PCIe企业系统的发展,可能需要完全使用64位地址。在这种情况下,PCIe端点可发出具有全64位主机地址的请求。
许多半导体装置架构,诸如基于先进可扩展接口(AXI)的架构,以例如64位地址的固定的地址进行操作。当AXI主站通过经过AXI切换装置(switch)而访问两个或多个AXI从站区域时,AXI切换装置通常将使用最高有效位(MSB)AXI地址部分来解码切换装置的从站区域,使得每个AXI从站区域将具有63位或更小的地址范围。
当AXI从站区域试图访问主机的全地址范围(即,全64位地址)时,固定的地址范围可能是个问题。一个应用示例是高速非易失性存储器(NVMe)应用。NVMe模块可以访问主机存储器或PCIe控制器内的控制器存储器缓冲器(CMB)。默认情况下,在AXI切换装置之后,可以使用63位或更小的有效地址范围来寻址主机。
图1是说明在本领域中已知的AXI主站101和主机105之间的通信关系的框图。参照图1,AXI主站101经由AXI切换装置103向主机105发送读取或写入请求,该AXI切换装置103根据AXI总线协议具有64位的全地址范围102。AXI切换装置103可以具有消耗AXI地址总线的全地址范围102的一部分的一个或多个从站区域。参照图1,如果AXI切换装置103具有第一从站区域1和第二从站区域2,则全地址范围102的1位被用于寻址(访问)第一从站区域1和第二从站区域2,使得仅63位被剩余并且可用作主机的地址位。如果AXI切换装置具有多于2个从站区域,则将使用全地址范围102的更多位,使得甚至更少的地址位将可用于支持64位地址空间的主机105。
因此非常期望保留用于寻址主机的全地址范围。本发明提供了解决主机存储器全64位寻址访问范围问题的新颖方案。本发明构思还可以应用于需要或期望访问地址的全范围的其他半导体设计和架构区域。
发明内容
本发明的实施例提供一种即使当全地址范围的一部分被用于寻址其他装置或组件的情况下也向主机提供全地址范围的设备、装置和方法。
根据实施例,一种设备包括第一地址转换器,其联接到第一装置和第二装置并且被配置为将从第一装置接收的第一n位地址转换为m位上地址部分和(n-m)位下地址部分,并且将m位上地址部分通过边带路径以及将(n-m)位下地址部分通过主路径递送到第二装置,m和n是正整数。该设备还包括第二地址转换器,其被配置为将m位上地址部分和(n-m)位下地址部分组合为表示第一n位地址的第二n位地址。
在一个实施例中,第一n位地址是先进可扩展接口(AXI)地址。
在一个实施例中,第一装置是先进可扩展接口(AXI)主站装置,第二装置是AXI切换装置。
在一个实施例中,第二地址转换器包括:第一输入终端,被配置为通过侧路径,即边带路径接收m位上地址部分;第二输入终端,被配置为通过主路径接收(n-m)位下地址部分;以及第一输出终端,被配置为将第二n位地址输出至第三装置。
在一个实施例中,第三装置是主机装置。在一个实施例中,第一地址转换器和第二地址转换器被集成在同一半导体管芯上。
在一个实施例中,作为AXI切换装置的第二装置、第一地址转换器以及第二地址转换器被集成在同一半导体管芯上。
在一个实施例中,m位上地址部分包括被配置为访问多个外部装置的第一n位地址的最高有效位(MSB),并且(n-m)位下方地址部分包括被配置为由多个外部装置共享的第一n位地址的最低有效位(LSB)。
在一个实施例中,m等于1并且n等于64。
本发明的实施例还提供了一种半导体装置。该半导体装置包括:输入部,被配置为从第一装置接收第一n位地址和命令信号;控制器,被配置为响应于所接收的命令信号生成控制信号;分解器单元,被配置为将第一n位地址分解为m位上地址部分和(n-m)位下地址部分;第一寄存器,被配置为存储m位上地址部分;第二寄存器,被配置为响应于控制信号存储(n-m)位下方地址部分;以及第一输出部,被配置为将m位上地址部分输出至第二装置,以及第二输出部,被配置为将(n-m)位下地址部分输出至第二装置。变量m和n是正整数。
在一个实施例中,第一装置是先进可扩展接口(AXI)主站装置,第二装置是AXI切换装置。
在一个实施例中,半导体装置进一步包括组合器,其被配置为将存储的m位上地址部分和存储的(n-m)位下地址部分组合为表示第一n位地址的第二n位地址并将第二n位地址提供给主机装置。
在一个实施例中,m位上地址部分包括第一n位地址的最高有效位(MSB)。在一个实施例中,m等于1并且n等于64。
本发明的实施例还提供一种向主机装置提供全地址的方法,其中全地址的一部分已经被用于访问其他装置。该方法可以包括由半导体装置从第一装置接收具有n位的第一全地址;通过第一地址转换器将第一全地址分解为具有m位的上地址部分和具有(n-m)位的下地址部分;对上地址部分进行解码以用于访问第二装置的一部分;将上地址部分和下地址部分存储在多个寄存器中;通过第二地址转换器将存储在寄存器中的上地址部分和下地址部分组合为表示第一全地址的第二全地址;以及将第二全地址输出至主机装置。
在一个实施例中,该方法可以进一步包括由半导体装置从第一装置接收命令,其中,基于所接收的命令中的一个来分解第一全地址。
在一个实施例中,第一装置是先进可扩展接口(AXI)主站装置,第二装置是AXI切换装置。在一个实施例中,第一地址转换器和第二地址转换器被集成在同一管芯上。
以下描述与附图将一起提供对所要求保护的发明的本质和优点的更好的理解。
附图说明
附图形成本公开的一部分,其描述本发明的示例性实施例。附图与说明书一起将解释本发明的原理。
图1是说明在本领域中已知的AXI主站101和主机105之间的通信关系的框图。
图2是说明根据本发明实施例的AXI主站和主机之间的通信关系的框图。
图3是根据本发明实施例的操作为地址转换器M和地址转换器S的单个集成装置的简化框图。
图4是根据本发明实施例的向主机装置提供全地址的方法的流程图,其中全地址的一部分已经被用于访问其他装置。
图5是根据本发明实施例的可执行图3的半导体装置的操作和图4中描述的处理步骤的集成装置的简化框图。
图6是说明根据本发明的一些实施例的与具有带有根联合体(root complex)的高速PCI模块的主机通信的集成电路的简化框图。
具体实施方式
高级描述
AXI是一种高性能、高带宽和低延迟的总线协议,AXI规定了64位的地址范围。AXI的地址、控制和数据传输彼此分开,并使用字节选通信号来支持非对齐的数据传输。分开的AXI总线的读取/写入数据通道有效地支持了低成本的直接存储器访问操作,并且能够使多个地址被同时发射。由于AXI协议支持多个地址的同时发射,如果需要AXI总线支持多个附加装置,则全地址范围可能无法用于主机。
在许多应用中,期望向主机提供全地址范围。由于AXI总线具有固定的地址范围,因此请求更改规范以增加地址位的数量是耗时的过程。即使协议规范可以修改和更新,但是对于所有相关的AXI主站/从站/切换模块,仍然需要花费大量的时间和努力来支持更新的规范。因此,请求改变AXI总线接口的固定的地址范围是不切实际的。
尽管参照特定的通信协议描述了本发明,但是本领域的技术人员将理解的是,不应将地址的路由局限于特定的通信协议。因此,如本领域技术人员将理解的,该描述内容可被应用于具有适当修改和改变的其他通信协议。
AXI地址带有AXI边带信号。这些AXI边带信号具有与AXI地址相同的协议时序关系。本发明通过将AXI真地址的MSB位存储到AXI边带中来提供对地址范围的有效改进。在通过AXI切换装置之后,AXI真地址的这些MSB位在已经被用在解码器中以访问AXI从站区域之后,被重新组合回AXI全地址。
为了满足解码从站区域的要求,将区域解码器地址(假地址)放入AXI总线地址中。在解码AXI从站区域之后,由AXI真地址替换这些区域解码器地址(假地址)。
通过在AXI地址和边带信号之间使用地址转换方案,可以保留或恢复地址信息。
图2是说明根据本发明的实施例的AXI主站201和主机205之间的通信关系的框图。参照图2,AXI主站201发出全64位地址202,以旨在经由AXI切换装置203来访问主机205。地址转换器(M)211被设置在AXI主站201和AXI切换装置203之间,并被配置为将上地址部分(最高有效位,MSB)放置至边带213,以及利用解码AXI切换装置中的从站区域的区域地址来替换相同的地址字段(上地址部分,或MSB)。具有校正区域解码器地址的新地址将通过AXI切换装置203,并访问适当的从站区域(例如,从站区域1或从站区域2)。在AXI切换装置之后,有效地址222为少于或等于63位(全64位地址的剩余地址部分或最低有效位,LSB)。边带213中的信号将通过AXI切换装置而无变化地作为边带地址223。地址转换器(S)221被设置在AXI切换装置203和主机205之间,并被配置为将上地址部分(MSB)与AXI有效地址(LSB)组合,从而重建表示全地址202的全64位地址224,并向主机205提供64位的全地址224。AXI切换装置还可以通过接口206访问其自身的地址空间207。
等式
在整个说明书中使用以下术语来描述本发明:
A.AXI主站之后的AXI地址是:AXI_Addrm。
B.地址转换器(M)之后的AXI地址是:{RegionAddr[m-1:0],AXI_Addrm[63-m:0]}。
地址转换器(M)之后的边带是:AXI_Addrm[m-1:0]。
C.AXI切换装置之后的AXI地址是:{RegionAddr[m-1:0],AXI_Addrm[63-m:0]}。
AXI切换装置之后的边带是:AXI_Addrm[m-1:0]。
D.地址转换器S之后的AXI地址是:AXI_Addrm,其是全64位地址。
示例
以下示例说明了根据本发明实施例的地址转换。在示例中:
AXI主站是高速非易失性存储器(NVMe)模块,其可以访问主机和片上双倍数据速率(DDR)动态随机存取存储器(DRAM)。高速NVM(NVMe)是用于访问非易失性存储介质的开放式逻辑装置接口规范。主机可以例如包括连接到一个或多个CPU的根联合体和存储器。当输入的addr[63]位=0时,可操作AXI切换装置以访问主机。当输入的addr[63]位=1时,可操作AXI切换装置以访问片上DDR DRAM。因此,将addr[63]位作为区域解码器地址进行操作。
在该示例中,NVMe模块操作以获取存储在主机中的、在地址‘xF800_AA00_5500_0000’处起始的数据,该地址是十六进制值(即,“F”表示二进制形式的“1111”或十进制形式的“15”,并且“A”表示二进制形式的“1010”或十进制形式的“10”。如果该目标地址‘xF800_AA00_5500_0000’被直接发送至AXI切换装置,则该数据获取请求将被指向片上DDR DRAM而不是主机。
根据本发明,地址转换器(M)将目标地址‘xF800_AA00_5500_0000’转换为经转换的从站地址‘x7800_AA00_5500_0000’,并且边带信号为“1”以保持addr[63]位值。
由于新地址是‘x7800_AA00_5500_0000’,所以AXI切换装置将数据获取请求指向主机。
AXI切换装置将经转换的地址‘x7800_AA00_5500_0000’输出至地址转换器(S)。地址转换器(M)将边带信号“1”输出至地址转换器(S)。
地址转换器(S)将边带信号和经转换的地址连接(组合)为{sideband,slave_addr[62:0]},这产生地址值{1,x7800_AA00_5500_000}=‘xF800_AA00_5500_0000’。
稍后,地址‘xF800_AA00_5500_0000’可以通过PCIe控制器,该PCIe控制器生成事务层数据包(TLP)并且将请求发送至主机。TLP地址为‘xF800_AA00_5500_0000’。
由于TLP地址可以具有全64位地址空间,因此能够利用全64位地址范围来访问系统。
利用该示例,NVMe模块可以访问具有全64位地址的主机,而不受任何限制。
图3是根据本发明实施例的操作为地址转换器(M)和地址转换器(S)的单个集成装置30的简化框图。参照图3,集成装置30包括用于从主站装置(例如,AXI主站装置201)接收命令信号和全n位地址的输入端口311、被配置为解码命令信号的命令解码器313和被配置为基于解码后的命令信号中的一个,来将n位地址分解为m位上地址部分341和(n-m)位下地址部分342的分解器单元315。m位上地址部分341被提供给地址编码器317,地址编码器317对m位地址部分进行编码以提供用于访问切换装置303的不同区域(例如,图2中的AXI切换装置203的从站区域1或从站区域2)的使能或选择信号318。集成装置30进一步包括用于存储m位的寄存器321和用于存储(n-m)位的寄存器323。集成装置30还包括地址组合器单元331,地址组合器单元331联接到寄存器321和323,并且被配置为将存储在寄存器321和323中的m位部分和(n-m)位部分组合回全n位地址333并且提供给主机(例如,主机205)。
在一些实施例中,集成装置30可以包括连接到寄存器321的输出部的输出端口322,输出端口341被配置为向地址组合器单元331提供边带信号中的m位上地址部分。集成装置30还可以包括连接到地址组合器单元331的输入端口324,以将边带信号中的m位上地址部分提供给地址组合器单元331。类似地,集成装置30可以包括输出端口351和输入端口352,其中输出端口351连接到被配置为输出(n-m)位下地址部分的寄存器323的输出部,以及输入端口352被配置为接收(n-m)位下地址部分并提供给地址组合器单元331。
在一些实施例中,集成装置30与切换装置303(例如,AXI切换装置203)集成在同一半导体管芯上。在一些实施例中,寄存器321和寄存器323可以由CMOS锁存器或D触发器形成,其中CMOS锁存器或D触发器由与用于主站装置提供的命令信号和地址的时钟相同的时钟同步地计时。
图4是根据本发明实施例的在全地址的一部分已经被用于访问其他装置的情况下,向主机装置提供全地址的方法40的流程图。参照图4,方法40可以包括由半导体装置从第一装置接收第一全地址(步骤401)。第一装置可以是例如AXI主站装置201的请求装置,半导体装置可以是地址转换器(M)211,并且第一全地址可以包括n位(例如,符合AXI协议规范的64位地址)。在步骤401中,还可以由对命令或请求信号进行解码的半导体装置接收命令或请求信号。该方法还包括响应于解码的命令或请求信号,将第一全地址分解(分开、分割)为上地址部分和下地址部分(步骤403)。上地址部分可以包括第一全地址的m个最高有效位(MSB),并且下地址部分可以包括第一全地址(n位)的(n-m)个剩余位。在步骤405中,该方法进一步包括对上地址部分进行解码,以通过使用上地址部分来访问第二装置的一部分。在实施例中,如果上地址部分具有多于一个位,即,第二装置可以具有多于两个区域,则解码的上地址部分将提供使能或选择信号以确定第二装置的哪些区域将被访问。第二装置可以是AXI切换装置,诸如AXI切换装置203。在步骤407中,该方法还包括将上地址部分和下地址部分存储在各自的寄存器(例如,图3的寄存器321和寄存器323)中。在步骤409中,方法40还包括将存储的上地址部分和下地址部分组合为n位的第二全地址,并且将第二全地址输出至第三装置(例如,主机装置205),其中该第二全地址是第一全地址的延迟版本。
图5是根据本发明实施例的可执行图3的半导体装置30的操作和图4中描述的处理步骤的系统或集成装置50的简化框图。图5描述了集成装置的一种潜在的实现方式,该集成装置可用于即使当主站装置的全地址的一部分已经被用于访问设置在集成装置和主机装置之间的切换装置的一个或更多区域的情况下,也向主机装置提供全地址(例如,64位寻址)。图5仅仅是结合本发明的实施例的说明并且不限制权利要求中所述的本发明的范围。本领域普通技术人员将识别出其他的变型、修改和替代。在一个实施例中,系统或集成装置50通常包括联接到显示屏510、计算机520、用户输出装置540、用户输入装置530、通信接口550等的互连总线590。
参照图5,计算机520可以包括经由互连总线590与多个外围装置进行通信的处理器560。这些外围装置可以包括用户输出装置540、用户输入装置530、通信接口550和诸如随机存取存储器(RAM)、双端口FIFO 570以及磁盘驱动器或非易失性存储器580的存储子系统。
用户输入装置530包括用于向计算机系统520输入信息的所有可能类型的装置和机制。这些可以包括键盘,小键盘,结合到显示器中的触摸屏,诸如语音识别系统、麦克风的音频输入装置和其他类型的输入装置。在各个实施例中,用户输入装置530通常被实现为计算机鼠标、轨迹球、触控板、操纵杆、无线遥控器、绘图板、语音命令系统、眼动追踪系统等。用户输入装置530通常允许用户通过诸如点击按钮等的命令来选择出现在显示屏510上的对象、图标、文本等。
用户输出装置540包括用于从计算机520输出信息的所有可能类型的装置和机制。这些可以包括显示器(例如,显示屏510)、诸如音频输出装置的非可视显示器,等等。
通信接口550提供与其他通信网络和装置的接口。通信接口550可以用作从其他系统接收数据和向其他系统传输数据的接口。通信接口550的实施例通常包括以太网卡、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字用户线(DSL)单元、火线接口、USB接口等。例如,通信接口550可以联接到计算机网络、火线总线等。在其他实施例中,通信接口550可以物理地集成在计算机520的主板上,并且可以是软件程序,诸如软件DSL等。
在各个实施例中,集成装置50还可以包括能够通过诸如HTTP协议、TCP/IP协议、RTP/RTSP协议等的网络进行通信的软件。在本发明的可选实施例中,还可以使用其他通信软件和传输协议,例如IPX、UDP等。在一些实施例中,计算机520包括一个或多个处理器或CPU560。进一步地,在一个实施例中,集成装置50包括基于UNIX的操作系统。
RAM(双端口FIFO)570和磁盘驱动器(非易失性存储器)580是有形介质的示例,该有形介质被配置为存储包括以下的、诸如本发明实施例的数据:可执行计算机代码、人类可读代码等。其他类型的有形介质包括软盘、可移动硬盘、诸如CD-ROM、DVD和条形码的光学存储介质、诸如闪速存储器的半导体存储器、非暂时性只读存储器(ROM)、带备份电池的易失性存储器、网络化存储装置等。RAM 570和非易失性存储器580可以被配置为存储提供本发明的功能性的基本编程和数据构造。例如,RAM和非易失性存储器580可以包括用于在主站装置和集成装置50之间转换层和数据包、提供对配置寄存器和存储寄存器的访问以及解码从主站装置(装置201)接收的命令的软件。
提供本发明的功能性的软件代码模块和指令可以存储在RAM 570和非易失性存储器580中。这些软件模块可以由处理器560运行。RAM 570和非易失性存储器580还可以提供用于存储根据本发明使用的数据的存储库。
RAM 570和非易失性存储器580可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)和存储固定的非暂时性指令的只读存储器(ROM)。RAM 570还可以包括配置寄存器和存储寄存器。RAM 570和非易失性存储器580可以包括文件存储子系统,该文件存储子系统为程序和数据文件提供永久性(非易失性)存储。RAM 570和非易失性存储器580还可以包括可移动存储系统,诸如可移动闪速存储器。
总线子系统590提供用于使计算机520的各个部件和子系统按预期彼此通信的机制。尽管总线子系统590被示意性示出为单个总线,但总线子系统的可选实施例可以使用多个总线。
图5是能够实现本发明的集成装置50的代表。对于本领域普通技术人员显而易见的是,许多其他硬件和软件配置也适用于本发明。
图6是说明根据本发明的一些实施例的与具有带有根联合体的高速PCI模块的主机通信的集成电路60的简化框图。在一些实施例中,集成电路60可以是片上NAND控制器系统(SOC)。集成电路60可以包括PCIe物理层(PHY)接口单元601,该PCIe物理层(PHY)接口单元601用于与具有带有根联合体(PCIe RC)的高速PCI模块的主机600交换命令和数据。集成电路(NAND控制器SOC)60可以进一步包括PCIe控制器单元602,该PCIe控制器单元602通过PIPE接口603与PCIe PHY单元601通信。集成电路60可以进一步包括NVMe模块606,该NVMe模块606可以与主机600或双倍数据速率(DDR)存储器609通信。在一些实施例中,NVMe模块606可以被配置为使用DDR控制器608与DDR存储器609通信。在一些实施例中,NVMe模块606可以被配置为AXI主站,诸如AXI主站201。在一些实施例中,NVMe模块606可以被配置为使用AXI切换装置607与主机600通信。在一些实施例中,AXI切换装置607可以与一个或多个AXI从站,诸如AXI从站1、AXI从站2通信。在一些实施例中,集成电路60可以进一步包括专用逻辑610,该专用逻辑610包括被配置为作为第一地址转换器(地址转换器(M))和第二地址转换器(地址转换器(S))进行操作的命令解码器单元。第一地址转换器被设置在NVMe模块606和AXI切换装置607之间,并被配置为响应于解码器命令信号而将由NVMe提供的n位地址划分为m位上地址部分和(n-m)位下地址部分。例如,m位上地址部分选择AXI从站中的一个,而(n-m)位下地址部分寻址所选择的AXI从站。专用逻辑610还包括寄存器,该寄存器被配置为存储m位上地址部分和(n-m)位下地址部分并且提供给第二地址转换器。第二地址转换器被配置为将m位上地址部分和(n-m)位下地址部分组合回n位地址,并且通过PCIe控制器602和PCIe PHY单元601提供给主机600。专用逻辑可以以与图3中示出和描述的集成装置30类似的方式进行操作。在一些实施例中,专用逻辑610可以将AXI切换装置607的AXI协议转换为PCIe协议并传输。
仍然参照图6,集成电路60可以进一步包括设置在PCIe PHY单元601和CPU 612之间的AXI到APB转换模块611。AXI到APB转换模块611被配置为将AXI通信转换为高级外围总线(APB)。CPU 612还可以经由AXI到APB转换模块611与专用逻辑610通信。集成电路60还可以包括诸如静态随机存取存储器(SRAM)和只读存储器(ROM)的其他存储器单元,该其他存储器单元被配置为存储可由CPU执行以提供本发明的功能性的编程指令和数据结构。CPU612可以通过AXI切换装置614与NVMe模块606通信。在示例中,CPU 612基于AXI通信协议而进行操作。应当理解的是,CPU 612可以具有多个处理单元,每个处理单元可以基于不同的通信协议,例如高级高性能总线(AHB)、APB、PCIe通信协议等而进行操作。集成电路60还可以包括与一个或多个NAND闪速存储器装置616通信的NAND闪存控制器615。
本发明的各个实施例可以软件或硬件或两者的组合中的逻辑的形式来实施。该逻辑可作为一组指令而存储在计算机可读或机器可读的非暂时性存储介质中,该组指令适于引导计算机系统的处理器执行本发明的实施例中公开的一组步骤。该逻辑可以形成计算机程序产品的一部分,该计算机程序产品适于引导信息处理装置执行本发明的实施例中公开的一组步骤。基于本文提供的公开和教导,本领域普通技术人员将理解实施本发明的其他方式和/或方法。
本文描述的数据结构和代码可以部分地或完全地存储在计算机可读存储介质和/或硬件模块和/或硬件设备上。计算机可读存储介质包括但不限于易失性存储器,非易失性存储器,诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用光盘或数字视频光盘)的磁性和光学存储装置,或者现在已知或以后开发的能够存储代码和/或数据的其他介质。本文描述的硬件模块或设备包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器和/或现在已知或以后开发的其他硬件模块或设备。
本文描述的方法和进程可以部分或完全地实现为存储在计算机可读存储介质或装置中的代码和/或数据,从而当计算机系统读取并执行代码和/或数据时,计算机系统执行相关联的方法和进程。方法和进程还可以部分或完全地实现在硬件模块或设备中,使得当激活硬件模块或设备时,该硬件模块或设备执行相关联的方法和进程。可以使用代码、数据和硬件模块或设备的组合来实现本文公开的方法和进程。
根据本发明,AXI边带信号被用于通过地址的最高有效位(MSB)。在一些实施例中,边带信号需要具有与AXI地址相同的协议顺序。为满足此要求,需要相应地编程AXI网络接口卡(NIC)。在一些实施例中,地址转换器(M)和地址转换器(S)可以使用数字逻辑来实施。在其他实施例中,地址转换器(M)和地址转换器(S)可以使用硬件和软件的组合来实施。本发明的实施例在多个存储器资源之间传输和访问数据方面是非常有用的,并且特别适用于跨AXI切换装置的在主机和DDR存储器空间之间进行全地址数据移动。
本文公开的实施例不限于本文描述的具体实施例的范围。根据前面的描述和附图,除了本文描述的那些之外,本发明的实施例的各种修改对于本领域普通技术人员而言将是显而易见的。此外,尽管已经在针对特定目的特定环境中的特定实施方式的上下文中描述了本发明的一些实施例,但是本领域普通技术人员将认识到其有用性不限于此并且本发明的实施例可以被有利地实现在针对任何数量目的的任何数量的环境中。
Claims (19)
1.一种提供全地址的设备,包括:
第一地址转换器,联接到第一装置和第二装置;以及
第二地址转换器,联接到所述第二装置和第三装置,
其中,所述第一地址转换器:
从所述第一装置接收包括m位上地址部分和n-m位下地址部分的第一n位地址,m和n是正整数;
利用用于解码所述第二装置中的两个或更多区域的区域地址部分替换所述m位上地址部分,所述第二装置中的两个或更多区域中的每一个具有n-m或更少的位的地址范围,所述第二装置中的两个或多个区域的区域地址范围用于访问所述第三装置;并且
将所述m位上地址部分通过边带路径转发给所述第二地址转换器;以及
所述第二地址转换器:
通过所述边带路径接收所述m位上地址部分,通过主路径接收所述n-m位下地址部分;
将所述m位上地址部分和所述n-m位下地址部分组合成第二n位地址;并且
将所述第二n位地址提供给所述第三装置以寻址所述第三装置。
2.根据权利要求1所述的设备,其中所述第一n位地址是先进可扩展接口地址,即AXI地址。
3.根据权利要求1所述的设备,其中所述第一装置是先进可扩展接口主站装置,即AXI主站装置,并且所述第二装置是AXI切换装置。
4.根据权利要求1所述的设备,其中所述第二地址转换器包括:第一输入终端,通过所述边带路径接收所述m位上地址部分;第二输入终端,通过所述主路径接收所述n-m位下地址部分;以及第一输出终端,将所述第二n位地址输出至所述第三装置。
5.根据权利要求4所述的设备,其中所述第三装置是主机装置。
6.根据权利要求1所述的设备,其中所述第一地址转换器和所述第二地址转换器被集成在同一半导体管芯上。
7.根据权利要求1所述的设备,其中所述第二装置、所述第一地址转换器以及所述第二地址转换器被集成在同一半导体管芯上。
8.根据权利要求1所述的设备,其中所述m位上地址部分包括所述第一n位地址的最高有效位,即MSB并且访问多个外部装置;并且所述n-m位下地址部分包括所述第一n位地址的最低有效位,即LSB并且由所述多个外部装置共享。
9.根据权利要求1所述的设备,进一步包括命令解码器,所述命令解码器从第一装置接收命令并对接收到的命令进行解码,其中所述第一地址转换器基于解码的命令利用所述区域地址部分替换m位上地址部分。
10.一种半导体装置,包括:
输入部,从第一装置接收第一n位地址和命令信号;
分解器单元:
将所述第一n位地址分解为m位上地址部分和n-m位下地址部分,其中m和n为正整数;以及
利用用于解码第二装置中的两个或更多区域的区域地址部分替换所述m位上地址部分,其中所述第二装置中的两个或更多区域中的每一个具有n-m或更少位的地址范围,所述第二装置中的两个或多个区域中的区域地址范围用于访问第三装置;
第一寄存器,用于存储所述m位上地址部分;
第二寄存器,用于存储所述n-m位下地址部分;
第一输出部,将所述m位上地址部分输出到边带路径;
第二输出部,用于将所述n-m位下地址部分输出到主路径; 以及
组合器单元,具有通过所述边带路径接收所述m位上地址部分的第一输入部和用于通过所述主路径接收所述n-m位下地址部分的第二输入部,所述组合器单元将所接收到的m位上地址部分和所接收到的n-m位下地址部分组合为表示所述第一n位地址的第二n位地址,并且将所述第二n位地址提供给所述第三装置以寻址所述第三装置。
11.根据权利要求10所述的半导体装置,其中所述第一装置是先进可扩展接口主站装置,即AXI主站装置,并且所述第二装置是AXI切换装置。
12.根据权利要求10所述的半导体装置,进一步包括地址编码器,所述地址编码器,联接到所述分解器单元并且对所述m位上地址部分进行编码以向所述第二装置中的两个或更多个区域中的至少一个区域提供选择信号。
13.根据权利要求12所述的半导体装置,进一步包括命令解码器,所述命令解码器从所述第一装置接收命令并对所接收到的命令进行解码,
其中,所述地址编码器基于所解码的命令对所述m位上地址部分进行编码,以将所述选择信号提供给所述第二装置中的两个或更多个区域中的至少一个区域。
14.一种提供全地址的方法,包括:
由第一转换器从第一装置接收第一地址,所述第一地址包括具有上地址大小的上地址部分和具有下地址大小的下地址部分;
由所述第一转换器利用区域地址部分替换所述上地址部分以从第二装置中的两个或更多区域中选择至少一个区域,其中所述第二装置中的两个或更多个区域中的每一个具有等于或小于下地址大小的地址范围,并且其中所述第二装置中的两个或更多个区域中的区域地址范围用于访问主机装置;
解码所述区域地址部分以访问所述第二装置中的两个或更多个区域中的至少一个区域;
通过边带路径将所述上地址部分并且通过主路径将所述下地址部分传递到设置在所述第二装置和所述主机装置之间的第二转换器;
由所述第二转换器将所述上地址部分和所述下地址部分组合成第二地址用于寻址所述主机装置;以及
所述第二转换器将所述第二地址输出到所述主机装置。
15.根据权利要求14所述的方法,其中所述第一转换器和所述第二转换器集成在同一集成装置中。
16.根据权利要求14所述的方法,其中所述第一装置是先进可扩展接口主站装置,即AXI主站装置,并且所述第二装置是AXI切换装置。
17.根据权利要求15所述的方法,进一步包括:
由所述集成装置从所述第一装置接收命令;
其中,基于所接收到的命令利用所述区域地址部分替换所述上地址部分。
18.根据权利要求14所述的方法,其中将所述第二地址输出到所述主机装置符合高速外围组件互连协议。
19.根据权利要求14所述的方法,其中所述第一装置使用先进可扩展接口协议与所述主机装置通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862649495P | 2018-03-28 | 2018-03-28 | |
US62/649,495 | 2018-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321307A CN110321307A (zh) | 2019-10-11 |
CN110321307B true CN110321307B (zh) | 2023-06-13 |
Family
ID=68057024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910207670.3A Active CN110321307B (zh) | 2018-03-28 | 2019-03-19 | 寻址切换方案 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11288187B2 (zh) |
CN (1) | CN110321307B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116664381B (zh) * | 2023-07-28 | 2024-03-26 | 深流微智能科技(深圳)有限公司 | Gpu访问cpu扩展内存的方法及图形处理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145739A (en) * | 1977-06-20 | 1979-03-20 | Wang Laboratories, Inc. | Distributed data processing system |
US5313300A (en) * | 1992-08-10 | 1994-05-17 | Commodore Electronics Limited | Binary to unary decoder for a video digital to analog converter |
US5740404A (en) * | 1993-09-27 | 1998-04-14 | Hitachi America Limited | Digital signal processor with on-chip select decoder and wait state generator |
JP3201716B2 (ja) * | 1996-02-22 | 2001-08-27 | シャープ株式会社 | コンピュータ装置 |
US6567880B1 (en) * | 2002-03-28 | 2003-05-20 | Compaq Information Technologies Group, L.P. | Computer bridge interfaces for accelerated graphics port and peripheral component interconnect devices |
US7149862B2 (en) * | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7813273B2 (en) * | 2003-05-14 | 2010-10-12 | At&T Intellectual Property I, Lp | Soft packet dropping during digital audio packet-switched communications |
TW589801B (en) * | 2003-06-12 | 2004-06-01 | Sonix Technology Co Ltd | Method and apparatus for digital signal processing |
JP4640126B2 (ja) * | 2005-11-14 | 2011-03-02 | 富士通株式会社 | サイドバンド・バス設定回路 |
US8274812B2 (en) * | 2010-06-14 | 2012-09-25 | Crossbar, Inc. | Write and erase scheme for resistive memory device |
KR20120046461A (ko) | 2010-11-02 | 2012-05-10 | 삼성전자주식회사 | 인터페이스 장치 및 이를 포함하는 시스템 |
EP2885713A4 (en) * | 2012-08-18 | 2016-03-23 | Qualcomm Technologies Inc | TRANSLATION LOOK ASIDE BUFFER STORE WITH ADVANCE |
US20140068125A1 (en) * | 2012-08-30 | 2014-03-06 | Lsi Corporation | Memory throughput improvement using address interleaving |
US20160062954A1 (en) * | 2012-09-15 | 2016-03-03 | Numbergun Llc | Flexible high-speed generation and formatting of application-specified strings |
KR20140131623A (ko) * | 2013-05-06 | 2014-11-14 | 에스케이하이닉스 주식회사 | 반도체 장치 |
GB2528061B (en) * | 2014-07-08 | 2021-04-21 | Advanced Risc Mach Ltd | Translating between memory transactions of first type and memory transactions of a second type |
EP3440553A1 (en) * | 2016-04-04 | 2019-02-13 | Marvell World Trade, Ltd. | Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access |
KR102666075B1 (ko) * | 2016-12-16 | 2024-05-14 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 도전 라인들의 배치 방법 |
US10649929B2 (en) * | 2017-07-10 | 2020-05-12 | Dialog Semiconductar Korea Inc. | Memory time-sharing method and apparatus capable of distributing bus traffic of system-on-chip |
CN107659359B (zh) * | 2017-09-15 | 2019-02-22 | 武汉光迅科技股份有限公司 | 光模块及其控制电路和方法 |
US10866746B2 (en) * | 2017-12-28 | 2020-12-15 | Silicon Motion Inc. | Memory addressing methods and associated controller, memory device and host |
-
2019
- 2019-01-31 US US16/264,358 patent/US11288187B2/en active Active
- 2019-03-19 CN CN201910207670.3A patent/CN110321307B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
Non-Patent Citations (1)
Title |
---|
Dynamic address compression schemes: a performance, energy, and cost study;Jiangjiang Liu等;《IEEE International Conference on Computer Design: VLSI in Computers and Processors, 2004. ICCD 2004. Proceedings》;20041108;论文第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
US20190303291A1 (en) | 2019-10-03 |
CN110321307A (zh) | 2019-10-11 |
US11288187B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835738A (en) | Address space architecture for multiple bus computer systems | |
US5778419A (en) | DRAM with high bandwidth interface that uses packets and arbitration | |
CN112463714B (zh) | 远程直接内存访问方法、异构计算系统及电子设备 | |
US9652391B2 (en) | Compression of hardware cache coherent addresses | |
CA2558360A1 (en) | Pvdm (packet voice data module) generic bus protocol | |
CN112543925A (zh) | 用于使用专用低延迟链路的多个硬件加速器的统一地址空间 | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
CN107209663B (zh) | 数据格式转换装置、缓冲芯片及方法 | |
US11669487B2 (en) | Secondary device detection using a synchronous interface | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
US6925519B2 (en) | Automatic translation from SCSI command protocol to ATA command protocol | |
CN110321307B (zh) | 寻址切换方案 | |
JPH04213144A (ja) | 高速データ・アクセス・システム | |
US10126966B1 (en) | Rotated memory storage for fast first-bit read access | |
US6308249B1 (en) | Storing data in a grey code system | |
CN117056249B (zh) | 一种mdio到ahb的转换方法、系统、设备及介质 | |
US11650876B2 (en) | Payload parity protection for a synchronous interface | |
US10095640B2 (en) | Multi mode address spaces for PC to device transfer optimization | |
US20190286606A1 (en) | Network-on-chip and computer system including the same | |
WO2022086732A1 (en) | Static identifiers for a synchronous interface | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN116561036B (zh) | 数据访问控制方法、装置、设备及存储介质 | |
CN116569151A (zh) | 多通道存储器系统 | |
US8892784B2 (en) | Adaptive apparatus | |
JPH04213143A (ja) | 高速デ−タ読出しシステム |
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 |