CN103403701A - 具有可编程电路系统和嵌入式处理器系统的集成电路 - Google Patents

具有可编程电路系统和嵌入式处理器系统的集成电路 Download PDF

Info

Publication number
CN103403701A
CN103403701A CN2012800107455A CN201280010745A CN103403701A CN 103403701 A CN103403701 A CN 103403701A CN 2012800107455 A CN2012800107455 A CN 2012800107455A CN 201280010745 A CN201280010745 A CN 201280010745A CN 103403701 A CN103403701 A CN 103403701A
Authority
CN
China
Prior art keywords
circuit system
programmable circuit
processor
programmable
hardware resource
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
Application number
CN2012800107455A
Other languages
English (en)
Other versions
CN103403701B (zh
Inventor
威廉·E·阿雷尔
布雷德利·L·泰勒
卢廷
桑迪·杜塔
派翠克·J·克罗提
哈桑·K·巴扎刚
海·V·恩古廷
霞桑科·波宏吉
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN103403701A publication Critical patent/CN103403701A/zh
Application granted granted Critical
Publication of CN103403701B publication Critical patent/CN103403701B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种集成电路可以包括经配置以执行程序代码的处理器系统。所述处理器系统(202)可以为硬连线的并且包括处理器硬件资源(228、222、220、240、242、246、248)。所述IC还可以包括可配置用来实施不同物理电路的可编程电路系统(204)。所述可编程电路系统可以耦接到所述处理器系统。所述可编程电路系统可以经配置以共享所述处理器系统的所述处理器硬件资源的使用权。所述处理器系统可以进一步控制所述可编程电路系统的各方面,例如,通电和/或断电,并且还控制所述可编程电路系统的配置,以实施该电路系统中的一个或多个不同的物理电路(280)。

Description

具有可编程电路系统和嵌入式处理器系统的集成电路
技术领域
本说明书中所揭示的一个或多个实施例涉及集成电路(IC)。且更确切地说,一个或多个实施例涉及一种包括可编程电路系统和嵌入式处理器系统的IC。
背景技术
集成电路(IC)可以被实施用来执行指定功能。一种类型的IC为可编程IC,例如,现场可编程门阵列(FPGA)。FPGA通常包括可编程单元片阵列。这些可编程单元片可以包括,例如,输入/输出块(IOB)、可配置逻辑块(CLB)、专用随机存取存储器块(BRAM)、乘法器、数字信号处理块(DSP)、处理器、时钟管理器、延迟锁定环路(DLL)等等。
每个可编程单元片通常包括可编程互连电路系统和可编程逻辑电路系统。可编程互连电路系统通常包含不同长度的大量互连线,这些互连线由可编程互连点(PIP)互连。可编程逻辑电路系统使用可编程元件来实施用户设计的逻辑,这些可编程元件可以包括,例如,函数发生器、寄存器、算术逻辑等等。
可编程互连电路系统和可编程逻辑电路系统的编程方式通常为,将配置数据流加载到内部配置存储器单元中,所述内部配置存储器单元对可编程元件如何配置进行了定义。配置数据可以从存储器读取(例如,从外部PROM读取)或可以通过外部装置写入FPGA中。随后,各个存储器单元的集体状态可以确定FPGA的功能。
另一种类型的可编程IC为复杂可编程逻辑装置或CPLD。CPLD包括用互连开关矩阵连接在一起并且连接到输入/输出(I/O)资源的两个或多个“功能块”。CPLD的每个功能块都包括类似于可编程逻辑阵列(PLA)和可编程阵列逻辑(PAL)装置中所使用结构的二级AND/OR结构。在CPLD中,配置数据通常存储在非易失性存储器中的芯片上。在一些CPLD中,配置数据首先存储在非易失性存储器中的芯片上,然后作为初始配置(编程)序列的一部分被下载到易失性存储器。
对于所有这些可编程IC,装置的功能由提供给装置以控制装置功能的数据位来控制。数据位可以存储在易失性存储器(例如,像FPGA和一些CPLD中的静态存储器单元)中、非易失性存储器(例如,像一些CPLD中的FLASH存储器)中或任何其他类型的存储器单元中。
其他可编程IC通过使用处理层(例如,金属层)而得到编程,所述处理层可编程地将装置上的各元件互连。这些可编程IC称为掩模可编程装置。可编程IC也可以用其他方式来实施,例如,使用熔丝技术或反熔丝技术。短语“可编程IC”可以包括但不限于这些装置,而且可以进一步包括仅部分可编程的装置,包括,例如,专用集成电路(ASIC)。例如,另一种类型的可编程IC包括硬编码晶体管逻辑与可编程交换组构的组合,所述可编程交换组构可编程地与硬编码晶体管逻辑互连。
一些现代IC,包括上文论述的各种IC中的一些,它们包括能够执行程序代码的嵌入式处理器。处理器可以作为同一裸片的一部分制造出,所述裸片包括可编程逻辑电路系统和可编程互连电路系统,这两个电路系统也统称为IC的“可编程电路系统”。应了解,处理器内对程序代码的执行有别于IC上可以提供的对可编程电路系统进行的“编程”或“配置”。对IC中可编程电路系统进行编程或配置的行为,会引起对由该可编程电路系统内配置数据所指定的不同物理电路系统进行实施。
发明内容
本说明书中所揭示的一个或多个实施例涉及集成系统(IC),更确切地说,涉及包括可编程电路系统和嵌入式处理器系统的IC。
一个实施例可以包括以下这种IC,该IC包括经配置以执行程序代码的处理器系统。该处理器系统可以为硬连线的,并且可以包括处理器硬件资源。所述IC还可以包括可配置用来实施不同物理电路的可编程电路系统。所述可编程电路系统可以耦接到所述处理器系统。可编程电路系统还可以经配置以共享处理器系统的处理器硬件资源的使用权。
在一些实施例中,处理器硬件资源可以为位于处理器系统内的输入/输出(I/O)装置。
在一些实施例中,处理器硬件资源可以为位于处理器系统内的存储器。
在一些实施例中,处理器硬件资源可以经配置以生成中断信号提供给可编程电路系统和处理器系统。
在一些实施例中,处理器硬件资源可以选择性地耦接到集成电路中专用于处理器系统或可编程电路系统的输入/输出(I/O)引脚。
在一些实施例中,自处理器硬件资源生成的数据可以被提供给集成电路中专用于处理器系统的I/O引脚,并且所述数据生成于耦接至结构输入/输出复用器的数据线上,所述结构输入/输出复用器耦接至可编程电路系统。
在一些实施例中,处理器硬件资源可以选择性地耦接到集成电路中专用于处理器系统或可编程电路系统的输入/输出(I/O)引脚。
在一些实施例中,自处理器硬件资源生成的所述数据可以被提供给集成电路中专用于处理器系统的I/O引脚,并且所述数据生成于耦接至结构输入/输出复用器的数据线上,所述结构输入/输出复用器耦接至可编程电路系统。
在一些实施例中,处理器系统可以包括时钟单元,所述时钟单元经配置以生成在所述处理器系统内分布的第一时钟信号,其中所述时钟单元经配置以将第二控制信号提供给可编程电路系统。
在一些实施例中,处理器系统可以包括时钟单元,所述时钟单元经配置以生成在所述处理器系统内分布的第一时钟信号,其中所述时钟单元经配置以将第二控制信号提供给可编程电路系统。
在一些实施例中,集成电路可以进一步包括硬件锁定机构,所述硬件锁定机构经配置以每次只允许处理器系统和可编程电路系统中的一者能控制处理器硬件资源。
在一些实施例中,处理器系统或可编程电路系统仅在被授予对处理器硬件资源的控制权时才可以服务于由处理器硬件资源所生成的中断。
在一些实施例中,可编程电路系统可以包括用户电路,所述用户电路经由专门供可编程电路系统使用的I/O引脚而通信链接到集成电路外部的处理节点,其中所述用户电路可以经由将可编程电路系统与处理器系统耦接起来的接口而通信链接到I/O装置,其中所述处理节点可以经由所述用户电路访问所述I/O装置。
在一些实施例中,可编程电路系统可以包括用户电路,所述用户电路经由接口耦接至处理器系统,其中所述处理器系统可以经配置以实施标准I/O函数,其中所述处理器系统可以经配置以响应于从所述用户电路经由所述接口接收到的请求,将所述标准I/O函数提供给所述用户电路。
在一些实施例中,可编程电路系统可以在处理器系统的控制下实施物理电路。
在一些实施例中,处理器系统可以控制可编程电路系统的供电情况。
另一个实施例可以包括一种共享处理器硬件资源的方法。所述方法可以包括:配置可编程电路系统以实施不同的物理电路;以及配置所述可编程电路系统以共享处理器系统的处理器硬件资源的使用权,其中所述处理器系统为硬连线的并且经配置以执行程序代码。
在一些实施例中,所述方法可以进一步包括:接收对处理器系统的处理器硬件资源进行访问的请求;确定所请求的处理器硬件资源是否可用;如果所请求的处理器硬件资源是可用的,则:授权访问所请求的处理器硬件资源;配置所请求的处理器硬件资源;以及初始化所请求的处理器硬件资源上的操作。
另一个实施例可以包括以下这种IC,该IC包括经配置以执行程序代码的处理器系统。所述处理器系统可以是硬连线的。所述IC可以包括可编程电路系统,所述可编程电路系统经配置以实施由配置数据所指定的物理电路。所述可编程电路系统可以耦接到所述处理器系统。可编程电路系统也可以在处理器系统的控制下实施物理电路系统。
在一些实施例中,处理器系统可以经配置以:通过将指定物理电路的配置数据加载到可编程电路系统的配置存储器中而实施可编程电路系统内的该物理电路。
在一些实施例中,处理器系统可以经配置以:在将配置数据加载到配置存储器之前,从集成电路外部的一个源处经由处理器系统的输入/输出(I/O)装置接收所述配置数据。
在一些实施例中,处理器系统可以经配置以与集成电路外部的源经由I/O装置在通信链路上进行通信,并且可以通过该通信链路获得配置数据。
另一个实施例可以包括以下这种IC,该IC具有经配置以执行程序代码的处理器系统。所述处理器系统可以是硬连线的。所述IC还可以包括可编程电路系统,所述可编程电路系统可配置用于根据加载至其中的配置数据来实施不同的物理电路。所述可编程电路系统可以耦接到所述处理器系统。所述可编程电路系统可以在所述处理器系统的控制下进行电力操作,例如,通电和/或断电。
在一些实施例中,可编程电路系统可以在处理器系统的控制下从断电状态被通电。
在一些实施例中,响应于确定了可编程电路系统已完全启动过程,处理器系统可以将配置数据加载到可编程电路系统的配置存储器中。
在一些实施例中,可编程电路系统可以在处理器系统的控制下被断电。
在一些实施例中,所述集成电路可以进一步包括将所述处理器系统和所述可编程电路系统耦接起来的多个电平转换器,其中,响应于所述可编程电路系统在所述处理器系统控制下断电,所述多个电平转换器中的每一者被置于已知状态。
附图说明
图1为图示了根据本说明书中所揭示的一个实施例的集成电路(IC)架构的第一方框图。
图2为图示了根据本说明书中所揭示的另一个实施例配置的IC的第二方框图。
图3为图示了根据本说明书中所揭示的另一个实施例的图2中IC的第三方框图。
图4为图示了根据本说明书中所揭示的另一个实施例的图2中IC的第四方框图。
图5为图示了根据本说明书中所揭示的另一个实施例的图2中IC的第五方框图。
图6为图示了根据本说明书中所揭示的一个实施例的一种共享处理器硬件资源的方法的第一流程图。
图7为图示了根据本说明书中所揭示的另一个实施例的系统的第六方框图。
图8为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法的第二流程图。
图9为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法的第三流程图。
图10为图示了根据本说明书中所揭示的另一个实施例的图2中IC的第七方框图。
图11为图示了根据本说明书中所揭示的另一个实施例的图2中IC的第八方框图。
图12为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法的第四流程图。
图13为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法的第五流程图。
具体实施方式
尽管本说明书以权利要求作总结,所述权利要求书界定了被视为新颖实施例的一个或多个实施例的特征,但是应相信,可通过考虑结合附图所做的描述而更好地理解所述一个或多个实施例。根据需要,本说明书中揭示了一个或多个详细实施例。然而,应了解,所述一个或多个实施例仅仅为示例性的。因此,本说明书中所揭示的特定结构和功能细节不应解释为是限制性的,而是仅仅作为权利要求书的依据而且是作为代表性依据,用以指导所属领域的技术人员在基本上任何适合的详细结构中以各种方式来使用所述一个或多个实施例。此外,本文所使用的术语和短语并不意图用作限制,而是意图提供对本文所揭示的一个或多个实施例的可理解的描述。
本说明书中所揭示的一个或多个实施例涉及集成系统(IC),更确切地说,涉及包括可编程电路系统和嵌入式处理器系统的IC。将可编程电路系统与嵌入式处理器系统并入到同一个IC以及(例如)同一个裸片和/或基板上,这可以帮助所述可编程电路系统与所述处理器系统之间能共享各种处理器硬件资源。例如,处理器系统中像存储器、接口之类的各种组件和/或子系统,例如,所述处理器系统的输入/输出(I/O)装置,可以供可编程电路系统使用并且可以被共享。
本说明书中所揭示的一个或多个实施例也涉及IC内的电力管理,所述IC包括处理器系统和可编程电路系统部分。可编程电路系统可以经配置以独立于处理器系统被通电和/或断电。处理器系统的任务可以是管理可编程电路系统的电力循环,并且所述处理器系统可以进一步控制配置,例如,控制将配置数据加载到IC中以及对可编程电路系统加以控制的配置存储器中。处理器系统与可编程电路系统之间的电力独立使得处理器系统能够在可编程电路系统仍断电的同时操作并执行程序代码。就处理器硬件资源能被可编程电路系统所享用这方面来说,这些资源的电力管理也可以由处理器系统来控制。
图1为图示了根据本说明书中所揭示的一个实施例的IC架构100的第一方框图。架构100可以在,例如,现场可编程门阵列(FPGA)类型的IC内实施。如图所示,架构100可以包括若干不同类型的可编程电路,例如,逻辑、块。例如,架构100可以包括大量不同的可编程单元片(programmable tile),包括多吉比特收发器(MGT)101、可配置逻辑块(CLB)102、随机存取存储器块(BRAM)103、输入/输出块(IOB)104、配置与时钟逻辑(CONFIG/CLOCK)105、数字信号处理块(DSP)106、专门I/O块107(例如,配置端口和时钟端口),以及其他可编程逻辑108,像数字时钟管理器、模/数转换器、系统监控逻辑等等。
在一些IC中,每个可编程单元片包括可编程互连元件(INT)111,所述可编程互连元件具有引向和引自每个邻近单元片中相应INT111的标准化连接。因此,INT111一起实施所示IC的可编程互连结构。由图1顶部处所包括的实例所示,每个INT111也包括引向和引自同一单元片内的可编程逻辑元件的连接。
例如,CLB102可以包括可配置逻辑元件(CLE)112,所述可配置逻辑元件可以经编程以实施用户逻辑加上单个INT111。除了一个或多个INT111之外,BRAM103还可以包括BRAM逻辑元件(BRL)113。通常,一个单元片中所包括的INT111的数目取决于所述单元片的高度。在所描绘的实施例中,一个BRAM单元片与五个CLB具有相同的高度,但也可以使用其他数目(例如,四个)。除了合适数量的INT111之外,DSP单元片106还可以包括DSP逻辑元件(DSPL)114。除了一个实例INT111之外,IOB104还可以包括,例如,两个实例I/O逻辑元件(IOL)115。所属领域的技术人员将会清楚,连接至例如IOL115的实际的I/O板通常并不局限于IOL115区域。
在图1所描绘的实例中,裸片中心附近的柱状区域(图1中所示为阴影部分)用于配置、时钟以及其他控制逻辑。由此柱延伸的水平区域109用以在可编程IC的整个宽度上分布时钟与配置信号。
利用图1中所示架构的一些IC包括额外逻辑块,所述额外逻辑块使构成IC的大部分的规则柱状结构分裂。额外逻辑块可以是可编程块和/或专用电路系统。例如,描绘为PROC110的处理器块横跨了若干列的CLB和BRAM。
PROC110可以实施为硬连线处理器,所述硬连线处理器制作为裸片的一部分,所述裸片实施IC的可编程电路系统。PROC110可以表示各种不同的处理器类型和/或系统中的任一者,从复杂性上说,涵盖从单个处理器(例如,能够执行程序代码的单个核心)到具有一个或多个核心、模块、协处理器、接口及类似者的完整处理器系统。
在更复杂的布置中,例如,PROC110可以包括一个或多个核心,例如,中心处理单元、高速缓冲存储器、存储器控制器、单向和/或双向接口,所述单向和/或双向接口可配置用于直接耦接到IC的I/O引脚(例如,I/O板)以及/或者耦接到IC的可编程电路系统。短语“可编程电路系统”可以指IC内的可编程电路元件,例如,本文所述的各种可编程或可配置逻辑时钟或单元片,以及互连电路系统,所述互连电路系统用于根据加载到IC中的配置数据选择性地对各种逻辑块、单元片和/或元件进行耦接。例如,图1中所示的位于PROC110外部的那些部分可以被视为IC的可编程电路系统的一部分。
图1意在图示可以用于实施IC的示例性架构,其中所述IC包括可编程电路系统(例如,可编程结构)和处理器系统。例如,一列中的逻辑块数目、这些列的相对宽度、列的数目与次序、这些列中所包括的逻辑块类型、逻辑块的相对大小,以及图1顶部处所包括的互连/逻辑实施方案,均纯粹为示例性的。在实际IC中,例如,无论CLB出现在何处,此处通常都包括一个以上邻近列的CLB,以促进用户电路设计的有效实施。然而,相邻CLB列的数目可以随IC的总大小变化。此外,IC内的PROC110的大小和/或定位仅出于说明的目的,且并不意图作为对本说明书中所揭示的一个或多个实施例的限制。
图2为图示了根据本说明书中所揭示的另一个实施例配置的IC200的第二方框图。IC200可以使用各种不同架构中的任何一种来进行实施,所述不同架构包括耦接至可编程电路系统204的处理器系统(PS)202。例如,IC200可以使用与图1架构100相同的或类似的架构进行实施,但并不必须是这种情况。一般来说,IC200更详细地图示了可以用于将PS202与可编程电路系统204内实施的电路系统耦接起来的各种接口。
在图2所示的实例中,所图示的PS202占据了IC200裸片的近三分之二,而所示的可编程电路系统204占据了同一裸片的近三分之一。然而,图2并不意图为IC200的尺度表示。相反,所提供的图2是出于说明的目的,并且它并不意图作为对本说明书中所揭示的一个或多个实施例的限制。
一般来说,PS202实施为IC200内的硬连线系统。在PS202内的各种组件或模块通过带箭头的线(例如,信号或通信链路)耦接这个方面,这些箭头意在图示控制的方向或流向。在此方面,用带方向箭头的线图示的信号一般指示了由箭头产生的源组件而不是箭头指向的目标组件所施加在该信号上的控制。这些箭头一般并不意图指示数据的单向流动或者信号的方向性。尽管存在方向箭头,信号仍可以被实施为双向信号或通信链路。
在本说明书中,相同的参考符号用于指代终端、信号线、导线以及它们的对应信号。在这方面,本说明书中的术语“信号”、“导线”、“连接”、“终端”以及“引脚”有时可互换使用。还应了解,术语“信号”、“导线”等可以表示一个或多个信号,例如,单个位通过单根导线的传送或多个并行位通过多根并联导线的传送。此外,根据具体情况,所注的每根导线或每个信号都可以表示由该信号或导线连接的两个或多个组件之间的双向通信。
如图所示,PS202可以包括核心复合物206。核心复合物206可以包括核心208和210、浮点单元(FPU)212和214、中断请求单元(IRQ)216以及窥探控制单元(SCU)218。核心208和210中的每一者可以包括嵌入在其中的1级(L1)缓存器(未图示)。尽管本文所揭示的实施例中可以使用能够执行程序代码和/或FPU的各种不同类型处理器核心中的任何一种,例如,数学协处理器或DSP单元,但是核心208和210各可以实施为ARM CortexTM-A9类型的处理器核心,其中每个均具有32KB的指令缓存器和32KB的数据缓存器。FPU212和214可以用能够提供128位基于矢量的DSP功能的NEONTM媒体形式和/或浮点处理引擎进行实施。ARM CortexTM-A9处理器核心和NEONTM媒体以及/或者浮点处理引擎均可以从英国剑桥的ARM技术有限公司(ARM Holdings of Cambridge,UK)(ARM)购得。
尽管图示的为双核或多核系统,然而,在另一个实施例中,核心复合物206可以包括可以执行程序代码的单核。在此情况下,核心复合物206可以包括耦接到IRQ216和SCU218的单核或处理器。另外,并不一定要包括FPU212和214,但是根据需要可以包括单个FPU单元并且该单元耦接到单核。
再次参看图2,核心复合物206耦接到各种处理器硬件资源,例如,2级(L2)缓存器220和片上存储器(OCM)222。L2缓存器220可以实施为256KB的存储器。OCM222也可以实施为256KB的存储器。核心208和210以及FPU212和214可以直接访问L2缓存器220和OCM222。一般而言,OCM222提供的局部存储可用于PS202和/或可编程电路系统204,例如,可编程电路系统204内实施的电路。通过比较,L2缓存器220(它也是存储器)用作PS202的缓存器。相应地,L2缓存器220可以存储小块或小部分的数据,例如,256位,它们为存储在RAM中的数据位的有效副本,例如,执行芯片外存储器。如果,例如,针对存储在L2缓存器220中数据发出读取请求时,数据可以从L2缓存器220处读取出而非从RAM检索出。
PS202可以进一步包括硬件处理器资源,例如,复位单元224、时钟单元226和存储器控制器228。复位单元224可以接收自IC200外部的源处产生的一个或多个信号,例如信号230。信号230可以指导复位单元224使PS202和/或PS202内的一个或多个组件或所有组件复位。复位单元224进一步可以接收请求使可编程电路系统204通电或断电的信号。
时钟单元226可以从IC200外部的源处接收一个或多个参考信号,例如信号232。时钟单元226,例如,可以实施为或可以包括能够与所接收信号232同步化的锁相环电路系统。时钟单元226可以生成可以在整个PS202内分布的一个或多个不同频率的一个或多个时钟信号(未图示)。另外,时钟单元226可以生成一个或多个频率的一个或多个时钟信号,所述一个或多个时钟信号可以分布到可编程电路系统204以供其中实施的电路使用。
存储器控制器228可以经实施以与定位在IC200外部(例如,“芯片外”)的一个或多个不同类型的RAM进行通信。例如,存储器控制器228可以经实施以访问(例如,读取和/或写入)各种类型的存储器,包括但不限于,双数据速率(DDR)2、DDR3、低功率(LP)DDR2类型的存储器,无论是16位、32位、带ECC的16位等。存储器控制器228能够与之通信的不同存储器类型的列表仅出于说明的目的提供出,并且该列表并不意图形成限制或做到详尽无遗。
PS202也可以包括硬件处理器资源,例如耦接到核心交换机236和可编程电路系统204的直接存储器存取(DMA)接口234。PS202进一步包括存储器交换机238类型的硬件处理器资源,其耦接到接口256中的一个接口(在本说明书内详细描述即是接口256D)、OCM222和存储器控制器228。
如图所示,核心交换机236可以在PS202的各个组件之间路由信号。在一个实施例中,核心交换机236可以直接耦接到PS202的内部总线(未图示)。在此类实施例中,PS202内与核心交换机236连接的每一其他部件可以通过该内部总线而耦接到核心交换机236。例如,其他处理器硬件资源,例如I/O装置(如,接口)240、242、246和248,每个均可以经由内部总线耦接到核心交换机236。内部总线可以实施为多种不同总线中的任何一种,例如,高级外设总线(APB)等。
如前所述,PS202可以包括硬件处理器资源,例如,一个或多个不同类型的I/O装置或接口。PS202可以提供闪存式I/O装置、高性能I/O装置、低性能接口、调试I/O装置,以及/或者RAM I/O装置。本说明书内已对RAM I/O装置,即,存储器控制器228进行了描述。
至于额外类型的I/O装置,PS202可以包括一个或多个闪存接口240,图中示为240A和240B。例如,一个或多个闪存接口240可以实施为经配置以进行4位通信的四串行外设接口(QSPI)。一个或多个闪存接口240可以实施为并行8位的NOR/SRAM类型的接口。一个或多个闪存接口240可以实施为经配置以进行8位和/或16位通信的NAND接口。应了解,所述的特定接口是出于说明而非限制的目的而提供。可以使用具有不同位宽度的其他接口。
PS202可以包括一个或多个I/O装置242,该装置提供的性能水平比I/O装置240更高。I/O装置242A至242C中的每一者可以分别耦接到DMA控制器244A至244C。例如,一个或多个I/O装置242可以实施为通用串行总线(USB)类型的接口。一个或多个I/O装置242可以实施为吉比特以太网类型的接口。一个或多个I/O装置242可以实施为安全数字(SD)类型的接口。
PS202可以包括一个或多个I/O装置246,例如,I/O装置246A至246D,这些装置所提供的性能水平低于I/O装置242。例如,一个或多个I/O装置246可以实施为通用I/O(GPIO)类型的接口。一个或多个I/O装置246可以实施为通用异步接收器/发射器(UART)类型的接口。一个或多个I/O装置246可以采用串行外设接口(SPI)总线类型的接口的形式进行实施。一个或多个I/O装置246可以采用控制器区域网络(CAN)类型的接口和/或l2C类型接口的形式进行实施。一个或多个I/O装置246还可以采用三重定时器计数器(TTC)和/或看门狗定时器(WDT)类型的接口的形式进行实施。
PS202可以包括一个或多个调试I/O装置248,例如,处理器JTAG(PJTAG)端口或接口248A和跟踪接口248B。PJTAG端口248A可以向PS202提供外部调试接口。跟踪接口248B可以提供一个端口用于从可编程电路系统204处接收调试(例如,跟踪)信息,一个接口用于将PS202的调试数据发送出到可编程电路系统204,以及一个交叉触发端口。交叉触发端口使得可编程电路系统204内的电路系统能够触发PS202内的调试功能,例如,跟踪。类似地,PS202可以初始化可编程电路系统204内实施的电路内的调试功能。
如图所示,I/O装置240、242、246和248中的每一者可以耦接到复用器250。复用器250提供了可以直接路由到或耦接到IC200外部引脚的多个输出端,例如,内部安置有IC200的封装内的球。例如,IC200的多个I/O引脚,例如,53个引脚,可以由接口240、242、246和248所共用。用户可以将复用器250配置为PS202的一部分以用于选择接口240至248中将要使用的接口,且因此,将此接口经由复用器250耦接到IC200的I/O引脚。
如图所示,将I/O装置242至248耦接到复用器250的信号也可以耦接到结构复用器输入/输出(FMIO)接口252。相应地,基于IC200的用户配置,且更确切地说是PS202的用户配置,I/O装置242、246和/或248中任何一个均可以经由FMIO接口252耦接到IC200的可编程电路系统204。FMIO接口252,例如,可以包括可配置开关,每条信号线均耦接至其,从而使得信号线能够根据该开关的状态而被选择性地耦接到可编程电路系统204。FMIO接口252以及其中包括的开关可以配置为PS202的一部分,例如,经由控制寄存器254,以用于确定那些信号将从I/O装置242至248传递到可编程结构204。这使得从任何一个接口242至248通信的数据能路由到可编程电路系统204内的电路系统,以进行进一步的处理和/或监控。经由耦接到I/O装置242、246和248的一个或多个I/O引脚接收到的数据可以通过一个或多个接口256而被路由到可编程电路系统204,以进行进一步的处理。
FMIO接口252使得从I/O装置242、246和248输出的数据能够被提供给一个或多个I/O引脚,提供给在可编程电路系统204内实施的所选电路,例如,用户电路系统280,或者同时提供给一个或多个I/O引脚以及可编程电路系统204内实施的所选电路。应了解,为了耦接到FMIO接口252,可编程电路系统204内所实施的电路必须经配置通过加载能形成或实施物理电路系统的配置数据,才能进行此操作。
在一个实施例中,I/O装置240、242、246和248中的每一者可以经配置以生成中断信号,图示为信号290。例如,I/O装置240A至240B、242A至242C、246A至246D以及248A至248B中的每一者均可以经配置以在信号290上生成中断。如图所示,信号290耦接到核心复合物206的IRQ216,并且还直接耦接到可编程电路系统204。定位在PS202内的中断信号290是硬连线的,例如,固定布线的。相应地,由任何一个I/O装置240-248所生成的中断信号可以提供给核心复合物206以及/或者可编程电路系统204,由此帮助可编程电路系统204和/或核心复合物206使用I/O装置240至248。来自I/O装置240至248中每一者的中断信号,例如,可以同时提供给IRO216和可编程电路系统204。
控制寄存器254可以经配置以控制PS202的各方面(如果不是大部分)。可以将一个或多个命令写入控制寄存器254以控制或调控PS202的运作。例如,可编程电路系统204内的电路可以通过接口(例如,接口256B)对控制寄存器254进行写入操作,本文将对此进行进一步详细描述。控制寄存器254可以控制或调控以下功能,例如,控制知识产权(IP)启用复位、设置由时钟单元226生成的时钟频率、指定I/O驱动强度、信号通过接口路由至可编程电路系统204时的该FMIO接口252的状态,以及其他系统级功能。控制寄存器254可以调控额外的功能,例如,使PS202断电、单独使PS202的特定接口断电或停用,等等。可以通过总线对控制寄存器254进行访问,例如,将控制寄存器254耦接至核心交换机236的APB(未图示)。
PS202也可以包括直接与可编程电路系统204耦接的一个或多个接口256,描绘为接口256A至256D。在一个实施例中,接口256中的一个或多个或所有接口均可以根据由ARM公布的AMBA AXI协议规范(AXI)进行实施。例如,接口256中每一者均可以遵从第3.0版AMBA AXI协议规范进行实施,该版说明书以全文引用的方式并入本文中。一般来说,AXI为一种高性能高频率的接口,它适用于亚微米互连。
再次参看图2,接口256A和256B,例如,每个均可以经实施以提供两个32位通道,这两个通道将可编程电路系统204与核心交换机236耦接起来。接口256A可以实施为通用主接口。接口256A,例如,可以用于执行从PS202和/或其中的DMA控制器到可编程电路系统204的通用数据传递。接口256B可以实施为通用从属接口。例如,接口256B可以用于执行PS202与可编程电路系统204之间的通用数据传递。
通过接口256A至256B以及核心交换机236,可编程电路系统204内实施的电路可以访问I/O装置240、242、246和248中的多个装置。通过接口256A和/或256B以及核心交换机236,可编程电路系统204内的电路进一步可以直接访问OCM222以及通过存储器控制器228访问芯片外存储器,等等。
接口256C可以实施为64位从属接口,它将可编程电路系统204直接与核心复合物206耦接起来,且更确切地说是,直接与SCU218耦接起来。通过接口256C和SCU218,可编程电路系统204内实施的电路可以直接访问核心208和210中每一者的L1缓存器、IRQ216、L2缓存器220和OCM222。相应地,可编程电路系统204内的电路可以对这些存储器进行读取和/或写入操作,并且可以检测核心复合物206内生成或断定的中断。例如,接口256C可以提供对核心复合物206的连贯访问,所述核心复合物适用于被电路当作协处理器使用。在图示中,可编程电路系统204内以用户电路系统280形式实施的软处理器可以经由接口256C与PS202进行通信。
可编程电路系统204可配置用来直接检测来自I/O装置240、242、246和248的中断,或者用来检测来自IRQ216的中断。应了解,IRQ216允许可编程电路系统204来检测在核心复合物206内产生的处理器专用或处理器生成的中断。信号290进一步可以表示来自可编程电路系统204的一个或多个中断,这些中断可以作为端口或信号提供给IRQ216;以及/或者表示来自PS202且尤其是来自核心复合物206的一个或多个中断副本,这些中断副本可以作为端口或信号提供给可编程电路系统204。
接口256D可以经实施以提供多个,例如,四个,64位从属接口。接口256D可以用于有效地交换PS202与可编程电路系统204内实施的电路之间的大量数据。如图所示,接口256D使可编程电路系统204内实施的电路能够经由存储器交换机238访问OCM222并能够经由存储器交换机238和存储器控制器228访问芯片外存储器。
另外,PS202可以包括PS电压检测器292。PS电压检测器292可以监控从电源(描绘为信号294)的进入电压源。响应于确定了信号294电压满足预定电压电平,PS电压检测器292可以通过发出控制信号(未图示)来启用一个或多个其他组件。例如,响应于确定信号294的电压为至少最小电压电平,PS电压检测器292可以启用IC200的一个或多个IOB。在另一个实例中,响应于确定信号294的电压满足最小电压电平,PS电压检测器292可以同时启用一个或多个电平转换器,图示为电平转换电路系统296。PS电压检测器292的进一步功能将参看剩下附图进行描述。
IC200可以包括电平转换电路系统296用于帮助PS202与可编程电路系统204之间的信号传递。电平转换电路系统296帮助PS202与可编程电路系统204电隔离开,并且它经配置以将第一电压电平的信号转换为第二电压电平的信号。在一些情况下,第一电压电平与第二电压电平可以是不同的电压值。例如,在一些情况下,PS202可以使用某种电力信号进行运作,所述电力信号具有的电压电势不同于提供给可编程电路系统204的电力信号的电压电势。在其他情况下,PS202可以接收与提供给可编程电路系统204的电力信号具有或应具有相同电压电势的一个或多个电力信号。然而,电力信号可以被独立地控制,从而使得尽管电力信号的电压电势是类似或相同的,但仍存在两个不同的电力域。电力信号的独立性可能会导致,相比于提供给可编程电路系统204的电力信号,提供给PS202的电力信号的电压电势会存在些小变动。电平转换电路系统296使得PS202能用作一个电力域而可编程电路系统204能用作另一不同且独立的电力域,由此,使得可编程电路系统204能独立于PS202被通电和断电,例如,在PS202仍保持通电且运作时。
为带来电力信号中的电势变化,并且也为了支持可编程电路系统204能独立于PS202进行电力循环的这种能力,在PS202与可编程电路系统204之间交叉的信号可以通过电平转换电路系统296进行传递。通过图示为单个块,应了解,所述多个接口中的每个接口,例如,FMIO接口252、跟踪接口248B、接口256A至256D、处理器配置访问端口(PCAP)258以及诸如时钟信号和DMA信号的任何其他信号,均可以包括用电平转换电路系统296表示的电平转换器,或通过其进行传递。电平转换电路系统296使得在PS202与可编程电路系统204之间传播的信号的电压电平是相匹配的。
IC200可以包括电平转换电路系统296内的一个或多个不同级的电平转换器。例如,第一级电平转换器可以经配置以将信号,例如,系统电平信号(如配置信号、边界扫描信号和/或功能)直接从PS202连接到可编程电路系统204内的组件,例如,系统监控器262,本文将对此进行更详细描述。属于第一级电平转换电路系统296的电平转换器可以在PS202已复位(例如,进入运作模式)且已确定供给可编程电路系统204的电力足够使其运作时启用。足够使可编程电路系统204运作的电力可以包括用于配置可编程电路系统204所用的充足电力,和/或用于使可编程电路系统204内实施的任何电路在实施后能运转的充足电力。
第二级电平转换器可以经配置以将测试信号从可编程电路系统204连接到PS202。第二级电平转换器可以在以下时候启用:PS202已复位并且可编程电路系统204具有足够电力且还经配置以实施电路系统。当禁用时,第二级电平转换器可以经配置以输出默认逻辑高。在另一个实施例中,第二级电平转换器在禁用时可以经配置以输出默认逻辑低。
第二级电平转换器可以经配置以或者可用于连接PS202与可编程电路系统204之间的用户信号。第三级电平转换器可以在以下时候启用:PS202已复位并且可编程电路系统204具有足够电力且已配置。在一个实施例中,第三级电平转换器在禁用时可以经配置以输出默认逻辑低。在另一个实施例中,第三级电平转换器在禁用时可以经配置以输出默认逻辑高。
第四级电平转换器可以经配置以在可编程电路系统204与PS202之间传输一个或多个系统电平信号。第四级电平转换器可以经配置以在所有时刻均是启用的,例如,运作的。
PS202进一步包括PCAP258。如图所示,PCAP258可以耦接到配置控制器260以及系统监控器块262,这两块均位于可编程电路系统204内。尽管未图示,但PCAP258可以耦接到核心复合物236,从而使PS202能经由I/O装置240至248和228中的任一装置接收配置数据,以待在配置可编程电路系统204时使用该数据。
可编程电路系统204可以经实施以包括一个或多个可编程电路块,这些块可以使用可编程互连电路系统而耦接在一起。可编程电路块以及可编程互连电路系统可以经配置以基于加载到IC200中的配置数据来实施一个或多个不同的物理电路,例如,用户电路系统280。应了解,可编程电路系统204,除了其中实施的各种硬连线电路(本文将对此进行进一步详细描述)之外,是不运作或运转的,直到有数据加载到配置存储器中致使物理电力系统将在可编程电路系统204内实施,它才会运作。如上所述,所加载的配置数据指定将用户电路系统280连接到FMIO接口252、中断290、接口256等中的一个或多个信号。
配置控制器260和系统监控器块262可以采用硬连线电路系统的形式进行实施。配置控制器260有权将配置数据写入配置存储单元,由此物理性地实施可编程电路系统204内由配置数据所指定的电路系统。系统监控器块262可以执行以下功能,例如,模数转换、电压监控、电流监控和/或温度监控。
如上所述,可编程电路系统204还可以经配置以实施采用硬连线电路形式的一个或多个I/O装置。例如,JTAG接口264、一个或多个MGT266A至266D、外设组件互连快速(PCIe)接口268、内部配置访问端口(ICAP)270以及安全端口272可以被列入硬连线电路,尽管它们位于IC200的可编程电路系统204内。可编程电路系统204内的各种I/O装置图示了示例性接口,对于本说明书内所揭示的一个或多个实施例,所述接口可以进行实施且并不意图为限制性的或形成限制。
例如,配置数据可以加载到IC200中,并由配置控制器260接收。在一个实施例中,配置数据可以通过PS202进行接收,所述PS可以控制IC200的配置过程。配置控制器260可以将从PS202经由PCAP258接收到的配置数据加载到IC200的配置存储器(未图示)中。如加载到IC200的配置存储器中的特定配置数据所指定,可以在可编程电路系统204内实施或形成不同的物理电路,例如,用户电路系统280。应了解,由于使用了硬连线电路系统,通过这种方式来加载配置数据无需可编程电路系统204的初始化配置。可编程电路系统204内实施的电路,尽管是物理电路,但它们仍会因为加载了配置数据而通常被称为是“软”的,在于以下方面,电路系统是在可编程电路系统204内形成的,而不是硬连线的或以其他方式固定在IC200内,这有别于PS202。
图2中所示的IC架构有助于协作使用各种不同形式下的可编程电路系统204和PS202,所述形式在其他情况下是无法达到的。用户电路系统280可以通过上述各种接口中任一接口而耦接到PS202。经由接口256可以实现直接访问,然而,通过FMIO接口252可以帮助实现对PS202的进一步访问。在一个实例中,可编程电路系统204可以耦接到具有界定接口的一个或多个外部处理节点,例如,未定位在IC200上的处理节点。可编程电路系统204可以通过,例如,所保留以供可编程电路系统204使用的I/O引脚来访问外部处理节点。可编程电路系统204也可以经由接口256访问一个或多个I/O装置,例如,I/O装置240至248和/或存储器控制器228。
在另一个实例中,PS202可以经配置以将“标准I/O”函数提供给在可编程电路系统204内实施的电路。PS202,例如,可以经配置以加载并执行由标准输入(stdin)、标准输出(stdout)和/或标准误差(stderr)函数组成的库,该库可作为在核心复合物206内执行的操作系统的一部分供使用。在可编程电路系统204内实施的用户电路系统280可以经配置以经由一个或多个接口256调用或访问由核心复合物206提供的标准I/O函数。通过使可编程电路系统204内的电路系统(例如,软处理器)能从PS202访问标准I/O函数,在可编程电路系统204内因实施标准I/O函数而产生的开销通常可以通过保持PS202内的标准I/O实施而得以克服。这使得不如本来复杂但更精简的控制器能在可编程电路系统204内实施。
图3为图示了根据本说明书中所揭示的另一个实施例的图2中IC200的第三方框图。图3所示为IC200的抽象视图,它描绘了所选处理器硬件资源的操作。在图3内,I/O装置305和310旨在表示I/O装置242至248中的任何两个装置,例如,242A至242C、246A至246D和/或248A至248B中的任何两个。此外,为便于说明,所示的I/O装置305和310经由核心交换机236与核心复合物206耦接起来。图中并未示出PS202中的装置(例如,L2缓存器220和OCM222)交换数据所通过的各种存储器。类似地,所示的接口256为参照图2描述的各种接口的一般表示。例如,接口256可以表示接口256A至256D中的一个或多个接口。
如图所示,PS202可以包括多个开关315和320,它们可以选择性地将信号从I/O装置305和310耦接到I/O引脚325或耦接到FMIO接口252。尽管未图示,但应了解,将PS202的I/O装置(I/O装置242至248)与复用器250耦接起来的每根导线可以是可交换的,如图3所示。在一个实施例中,提供给PS202的配置数据,例如,加载到图2中控制寄存器254上的数据,可以确定I/O装置305和/或I/O装置310是耦接到I/O引脚325还是耦接到FMIO接口252。应了解,I/O装置242至248中的每个装置可以独立地被配置用来耦接到I/O引脚325或耦接到FMIO接口252。
开关315和320可以实施为多种已知交换电路中的任何一种,例如,复用器等。当开关315将I/O装置305耦接到I/O引脚325时,I/O装置305可以耦接到外部处理节点330。在图3所示实例中,I/O引脚325可以专门供PS202使用。在此方面,I/O引脚325可以耦接到复用器250(未图示)并且无法供可编程电路系统204或(例如)用户电路系统280使用。当开关315解除I/O装置305与I/O引脚325的耦接时,I/O装置305耦接到FMIO接口252和(例如)可编程电路系统204以及可编程电路系统204内实施的所选电路,例如,用户电路系统280。
类似地,当开关320将I/O装置310耦接到I/O引脚325时,I/O装置310可以耦接到外部处理节点335。当开关320解除I/O装置310与I/O引脚325的耦接时,I/O装置310耦接到FMIO接口252和(例如)可编程电路系统204以及可编程电路系统204内实施的所选电路,例如,用户电路系统280。在另一个实施例中,当将数据提供给外部处理节点330和335时,数据可以通过开关315和320再生成并经由FMIO接口252被同时提供给用户电路系统280。
开关315和320可以独立于彼此运作。相应地,I/O装置305可以耦接到I/O引脚325,同时I/O装置310耦接到FMIO接口252。类似地,I/O装置305可以耦接到FMIO接口252,同时I/O装置310耦接到I/O引脚325。在其他实例中,I/O装置305和310均可以耦接到I/O引脚325,或者,均可以耦接到FMIO接口252。
外部处理节点330和335可以是经配置以使用特定接口进行通信的多种系统、电路、计算系统中的任何一种。例如,外部处理节点330和/或335可以实施l2C类型接口、CAN接口、串行外设接口(SPI)等。外部处理节点330和/或335的接口可以耦接到引脚325。如上所述,引脚325可以经由复用器250耦接到一个或多个I/O装置305和310。
通过准确配置PS202,在可编程电路系统内204实例化的用户电路系统280可以通过FMIO接口252耦接到I/O装置305和310中的一者或均耦接到。通过这种方式,用户电路系统280可以与I/O装置305和/或310协同使用,同时无需耦接IC200的外部I/O引脚,例如,电路板电平迹线等,即能在专用于PS202的I/O引脚与专用于可编程电路系统204的I/O引脚之间路由数据。
在一个实施例中,用户电路系统280可以耦接到FMIO接口252。例如,开关315可以处于将I/O装置305耦接到FMIO接口252的状态。用户电路系统280可以经由FMIO接口252耦接到I/O装置305,或通过接口256并借助于核心交换机236耦接到该I/O装置。因此,输入到I/O装置305和/或从该装置输出的数据可以通过用户电路系统280进行路由并由它来处理。用户电路系统280进一步可以耦接到I/O引脚340。I/O引脚340可以专用供可编程电路系统204使用,并且此处,它便无法供PS202使用。例如,数据可以经由I/O引脚340接收到,在用户电路系统280内被处理,并被提供给I/O装置305。类似地,从I/O装置305接收到的数据可以由用户电路系统280处理并输出到I/O引脚340。
例如,由用户电路系统280执行的处理数据可以指的是,修改接收到的数据并输出修改后的数据,或者,针对特定特性来评估接收到的数据并输出接收到的数据内存在特定特性这种指示信号。在监控接收到的数据的情况下,除了任何指示信号之外,接收到的数据也可以从用户电路系统280处输出。
在一个实例中,用户电路系统280可以经配置以将经由FMIO接口252从I/O装置305接收到的数据从第一格式或协议转换为第二格式或协议。所接收的数据可以由用户电路系统280处理以根据第一协议进行格式化,并以第二不同协议中的处理后数据输出。处理后数据可以从引脚340输出。
在另一个实例中,可以通过扩充来对用户电路系统280内接收到的数据进行修改。例如,用户电路系统280可以经配置以将定时信息,例如,时间戳,添加到从I/O引脚340耦接到的处理节点处经由该引脚接收到的数据中。从处理节点接收的以太网数据包,例如,可以用时间戳进行扩充,并作为处理后数据从用户电路系统280输出。用户电路系统280可以将数据经由FMIO接口252和开关315输出到I/O装置305。在另一个实例中,用户电路系统280可以将处理后数据经由接口256输出到PS202,并将该数据借助于核心交换机236提供给I/O装置305。
在另一个实例中,用户电路系统280所接收到的数据可以针对所接收数据内的特定预定特性进行处理,例如,进行评估。响应于检测到预定特性,用户电路系统280可以生成通知信号,该信号可以输出并提供给I/O引脚340或接口256。用户电路系统进一步可以经配置以将通知信号通过FMIO接口252输出到I/O装置305或310中的一者或二者,所述I/O装置分别经由各自对应的开关315和/或320耦接到FMIO接口252。
图4为图示了根据本说明书中所揭示的另一个实施例的图2中IC200的第四方框图。图4所示为IC200的抽象视图,它示出了电路系统(如,可编程电路系统204内实施的用户电路系统280)对处理器硬件资源(如,PS202的I/O装置305)的享用。如参考图3所述的,为说明的简洁方便起见,IC200内有一个或多个组件未示出。例如,图4中未示出FMIO接口252、开关315和320以及可编程电路系统204内的各种其他组件。
在图4所示的实例中,I/O装置305可以表示I/O装置240、242、246和/或248中的任何一个。一般来说,PS202与可编程电路系统204共享I/O装置305时需要使用一种锁定机构来指示I/O装置305何时可用并进一步指示I/O装置305何时不可用。图4所示的实例中,在可编程电路系统204内实施有一种硬件锁定机构。当用户电路系统280被授予对I/O装置305的控制权时,用户电路系统280可以通过接口256以及核心交换机236来访问I/O装置305。当核心复合物206,或其中执行的过程被授予对I/O装置305的控制权时,核心复合物206可以经由一个或多个存储器(未图示)以及核心交换机236进行通信。
如图所示,锁定电路405可以在可编程电路系统204内实施。锁定电路405可以具有一个界定接口,通过该接口,用户电路系统280与PS202可以进行通信。例如,核心复合物206可以经由接口256与锁定电路405进行通信。可以在可编程电路系统204内建立适当的信号链路,从而将接口256与锁定机构405耦接起来。将为可编程电路系统204与PS202所共享的I/O装置305,可以与特定寄存器相关联,例如,位于锁定电路405内的寄存器410。锁定电路405可以实施专属访问,从而使得只有一个实体(例如,可编程电路系统204内的特定电路,在核心复合物206内的一种特定线程或过程等)可以被授予对I/O装置305的访问权或使用权。专属访问也可以称为“加载存储专属”功能。
在图示中,考虑以下情况,其中以太网、UART等类型的I/O装置305将为核心复合物206和用户电路系统280所共享。锁定电路405可以包括寄存器410,该寄存器专用于跟踪I/O装置305被享用时的状态,例如,拥有权或控制权。存储在寄存器410中的值,例如,可以指示I/O装置305是可用还是忙碌。在一个实施例中,相关联的以及/或者唯一地识别出被授予对I/O装置305控制权的实体的标识符也可以存储在寄存器410中。因此,用户电路系统280或核心复合物206需要对I/O装置305的控制权的任何时候,需要控制权的实体可以从锁定电路405处请求对I/O装置305的控制权。
当请求了控制权且I/O装置305是可用的时候,锁定电路405可以用向请求实体授予对I/O装置305的控制权来作为对请求实体的回应。例如,锁定电路405可以返回某个值或信号,所述值或信号指示了请求实体以下内容:该请求实体已接收到对I/O装置305的控制权。此外,锁定电路405可以自动地存储以及回应于请求实体而存储寄存器410内与I/O装置305相关联的某个值,该值指示出I/O装置305不再可用。如上所述,指定被授予控制权的实体的标识符也可以存储在寄存器410内。因此,当两个实体同时请求同一资源(例如同一处理器硬件资源,如,I/O装置305)时,仅有一个请求实体会被授予对所请求资源的访问权。
当锁定电路405进一步从其他实体(无论位于PS202内还是位于可编程电路系统204内)处接收到对I/O装置305控制权的请求时,并且当I/O装置305的寄存器410指示出I/O装置305不可用时,锁定电路405会回应以错误或内容为I/O装置405不可用的其他指示。当具有对I/O装置305的控制权的实体不再请求控制权时,该实体可以通知锁定电路405。作为响应,锁定电路405可以存储寄存器410内指示I/O装置305可用的值,由此释放掉请求实体对I/O装置305的控制权。此外,也存储在寄存器410内且针对实体的任何标识符可以被清除或擦除。
如图所示,中断信号会经由信号290而从I/O装置305传输到可编程电路系统204并传输到核心复合物206。I/O装置305可以经配置以,响应于各种事件(取决于I/O装置305的特定类型以及所执行的事务或操作),触发经由信号290的中断。如上所述,I/O装置305可以耦接到硬连线中断信号(标记为信号290),该信号可以提供给核心复合物206并提供给可编程电路系统204。可以致使I/O装置生成中断的事件实例,可以包括,从I/O装置305正与之通信的外部处理节点接收数据,从I/O装置305到外部处理器节点的请求超时,等等。
响应于I/O装置305在信号290上生成中断,具有对I/O装置305的控制权的特定实体当时可以根据可能需要作出回应。例如,当用户电路系统280具有对I/O装置305的控制权时,用户电路系统280可以服务于该中断。核心复合物206,例如,其中执行的任何过程,可以忽略该中断。类似地,当核心复合物206内执行的过程具有对I/O装置305的控制权时,该过程或另一过程可以服务于该中断。用户电路系统280可以忽略该中断。
图4所示的情况中,PS202的I/O装置被可编程电路系统204内实施的电路系统所共享。在另一个实施例中,可编程结构204,例如,用户电路系统280,可以赋予对I/O装置305的专属控制权。在此情况下,即,可编程电路系统204具有对I/O装置305的专属控制权,无需要锁定机构。PS202不会试图获得对I/O装置305的控制权,除非,例如,可编程电路系统204被关闭。
图5为图示了根据本说明书中所揭示的另一个实施例的图2中IC200的第五方框图。图5所示为IC200的抽象视图,它示出了电路系统(如,可编程电路系统204内实施的用户电路系统280)对处理器硬件资源(所示为PS202的I/O装置305)的享用。为图示简洁方便起见,IC200内有一个或多个组件未示出。例如,图5中未示出FMIO接口252、开关315和320以及可编程电路系统204内的各种其他组件。
图5所示为一种硬件锁定机构的一个实例,其中存储器控制器228可以用作锁定机构,用于授予对I/O装置305的控制权。存储器控制器228进一步可以用作锁定机构,用于确定哪个实体可以访问IC200外部的存储器,所述存储器经由存储器控制器228耦接到IC200,例如,位于外部的RAM装置。
存储器控制器228,例如,可以经配置以实施负载存储专属功能。不同于利用位于可编程电路系统204内的寄存器(图4锁定电路那种情况),针对每个I/O装置,存储器控制器228可以利用位于IC200外部的存储器中的存储位置,包括存储器控制器228本身,它们均可以由PS202与可编程电路系统204所共享。因此,不同于向位于可编程电路系统204内的锁定电路发出请求,用户电路系统280和核心复合物206可以直接向存储器控制器228请求对处理器硬件资源(例如,I/O装置305和/或存储器控制器228)的控制权。
请求实体,例如用户电路系统280和核心复合物206,可以大体上像参考图4所述的那样,请求对I/O装置305的控制权。然而,对控制权的请求以及释放控制权的通知,可以被引导至存储器控制器228。如上所述,在一个实施例中,位于IC200外部且存储器控制器228所耦接至的RAM也可以为PS202和可编程电路系统204所共享。因此,对控制权的请求仍然可以被引导至存储器控制器228。如上所述,当可编程电路系统204被赋予对I/O装置305或存储器控制器228的专属访问权时,例如,无需利用任何锁定机构,因为在IC200的运作期间,控制权不会在PS202与可编程电路系统204之间来回动态地变化。
在另一个实施例中,核心复合物206的任务可以是锁定分配给特定请求实体的I/O装置。如上所述,接口256中的一个,例如,256C,可以向电路系统,如用户电路系统280提供对核心复合物206的连贯访问。通过接口256C,用户电路系统280可以看到PS202的内部缓存器,例如,L1缓存器、L2缓存器220和OCM222。通过使用提供连贯性的接口256C,可编程电路系统204,且更确切地说是用户电路系统280可以利用核心复合物206内置的加载存储专属功能,并可以提供另一种形式的硬件锁定机构,它可以用于对I/O装置305(包括I/O装置240)和/或存储器控制器228的共享中。例如,L1缓存器和/或L2缓存器220内的存储位置可以用于跟踪I/O装置(无论是I/O装置305和/或存储器控制器228)的可用性。
图6为图示了根据本说明书中所揭示的一个实施例的一种共享I/O装置的方法600的第一流程图。更确切地说,方法600示出一个实施例,其中可以利用对I/O装置的粗粒度共享。方法600可以由本说明书中所述的IC实施,例如,包括耦接到可编程电路系统的PS的IC。
方法600所示的实施例中,可编程电路系统内实施的一个或多个用户电路经配置以与PS的核心复合物内执行的一个或多个过程共享PS的处理器硬件资源。例如,在可编程电路系统内,软处理器,例如,可购自加利福尼亚州圣何塞市赛灵思公司(Xilinx,Inc.of San Jose,California)的MicroBlazeTM软处理器,可以实施为,例如,用户电路系统280。软处理器可以耦接至硬件锁定机构,无论该硬件锁定机构是在可编程电路系统内实施,还是由核心复合物实施,其中软处理器经由提供连贯访问的接口与所述核心复合物耦接,抑或是由存储器控制器实施。
处理器硬件资源可以为参照PS的I/O装置240至248和/或存储器控制器228所述的资源中的任何一个。例如,被共享的处理器硬件资源可以是快闪类型的接口(如,QSPI)、并行NOR/SRAM类型的接口、NAND接口等。在另一个实例中,处理器硬件资源可以是USB类型的接口、以太网类型的接口、SD类型的接口、UART类型的接口等。可以共享参考图2的I/O装置240至248所述的各种I/O装置类型中的任何一种。另外,可以共享存储器控制器228,以帮助PS与可编程电路系统共享位于芯片外的RAM。
因此,方法600可以开始于步骤605,其中锁定机构可以监控从各种实体发出的对PS的处理器硬件资源的控制权请求。可以发出请求的实体可以包括可编程电路系统内实施的电路(例如,用户电路系统280和/或软处理器),或PS的核心复合物内执行的过程。在步骤610中,锁定机构可以从请求实体处接收对所选处理器硬件资源访问权的请求。
在步骤615中,锁定机构可以确定所选处理器硬件资源是否可用。响应于确定所选处理器硬件资源不可用,例如,在忙碌中,方法600可以前进到步骤620。在步骤620中,锁定机构可以回应请求实体,指示所选处理器硬件资源正在忙碌中且因此不可用。在步骤620之后,方法600可以跳回到步骤605,继续监控对PS的处理器硬件资源控制权的进一步请求。
响应于确定所选I/O装置可用,方法600可以继续到步骤625。在步骤625中,响应于锁定机构确定所选处理器硬件资源可用,锁定机构可以授予其控制权来回应请求实体。锁定机构可以通知请求实体以下内容:所选处理器硬件资源可用,并且对所选处理器硬件资源的控制权已被授给该请求实体。此外,锁定机构可以将所选处理器硬件资源标记为忙碌。在一个实施例中,锁定机构进一步可以存储请求实体的标识,或其指示。在此方面,锁定机构可以经配置以只对请求回应以将所选处理器硬件资源从请求实体释放掉,除非授予控制权会损坏了既定用于减少和/或消除错误(例如,时限等)的政策。
在步骤630中,请求实体可以任选地配置所选处理器硬件资源。步骤630所示情况中,针对享有对处理器硬件资源的控制权的两个或多个不同实体,共享的处理器硬件资源可以进行不同的配置。例如,考虑以下情况,UART能够以多个不同数据速率中的任何一个速率进行通信。第一请求实体,例如,核心复合物内执行的过程,可以利用UART来与第一外部处理节点以第一数据速率(例如,9600波特率)进行通信。IC的可编程电路系统内的软处理器可以利用同一UART来与第二外部处理节点以不同的第二数据速率(例如,1200波特率)进行通信。
因此,一方面,请求实体必须首先确定所选I/O装置是否根据需要被恰当配置用来进行通信。例如,所需I/O装置可以经配置以使用与被授予控制权的请求实体所需速率不同的数据速率进行通信。在此情况下,请求实体必须配置处理器硬件资源以所需数据速率进行通信。
在步骤635中,在处理器硬件资源被恰当配置的情况下,请求实体可以初始化所选处理器硬件资源上的操作。在步骤640中,所需处理器硬件资源可以为请求实体执行操作。例如,请求实体可以指导UART从目标目的地或处理节点提取特定量数据。响应于此请求,UART可以提取所请求数据。在步骤645中,所选处理器硬件资源可以生成中断。该中断以信号告知请求实体,操作已执行,例如,响应于所执行的操作,数据即可使用。
在步骤650中,响应于此中断,请求实体可以检索由所选处理器硬件资源执行操作而带来的任何数据。如果,例如,请求实体为可编程电路系统内的软处理器,那么软处理器可以服务于此中断,并检索数据。在此情况下,核心复合物会知晓,未对所选处理器硬件资源作出任何请求以及/或者核心复合物内执行的任何过程均无对发出中断的处理器硬件资源的控制权。因此,核心复合物可以忽略生成的中断,由此允许可编程电路系统内的电路系统来服务于中断。类似地,当核心复合物或其中的过程为请求实体时,核心复合物内的过程可以服务于中断,而可编程电路系统内的软处理器可以忽略该中断。软处理器,例如,可以知晓,所述软处理器不具有对发出中断的特定处理器硬件资源的控制器。
在步骤655中,请求实体可以释放掉所选处理器硬件资源。例如,请求实体可以向锁定机构发出释放请求。作为响应,锁定机构可以识别从请求实体(例如,被授予对所选处理器硬件资源的控制权的实体)处产生的释放请求,并在步骤660中,将所选处理器硬件资源标记为可用。在步骤660之后,方法600可以跳回到步骤605,并继续监控对获取PS中的处理器硬件资源控制权的进一步请求。
如上所述,图6所示为PS与可编程电路系统之间共享PS的处理器硬件资源的一种粗粒度方法。在另一个实施例中,这种共享可以是更细粒度的。在图示中,考虑以下情况,其中核心复合物内执行的一个或多个过程经由所选处理器硬件资源(例如UART接口或以太网接口)与特定处理节点进行通信。可编程电路系统内实施的电路系统,例如,软处理器,也可以经配置以经由同一个所需处理器硬件资源与同一个处理节点进行通信。
在此情况下,可以利用大体上相同的共享机构,例如锁定机构。不同于每次在对所选处理器硬件资源的控制权发生变化时重新配置所选处理器硬件资源,这两种请求实体可以使用相同参数与处理节点进行通信。例如,所选处理器硬件资源在从被核心复合物内执行的过程以及可编程电路系统访问而发生转换时,其配置可以保持为恒定的或静态的。可编程电路系统以及核心复合物内执行的过程可以通过所选处理器硬件资源以相同的数据速率与外部处理节点进行通信。因此,当实施细粒度共享方法时,无需执行图6的步骤630。
图6还描述了一个实施例,其中中断信号被用来通知具有对处理器硬件资源的控制权的特定实体以下内容:数据从处理器硬件资源即可使用或者特定操作已完成处理。在另一个实施例中,可以用轮询代替所述的中断机制。例如,已被授予对处理器硬件资源的控制权的实体可以经配置以轮询处理器硬件资源,例如,以便检查处理器硬件资源的状态,而不是等待通知或中断信号。具有控制权的实体可以定期地、连续地,或不时地咨询处理器硬件资源,以确定正执行的事务或操作的状态。
如上所述,一个或多个实施例包括具有多个不同电力域的IC,这些电力域帮助实现PS与可编程电路系统之间的电力独立性。图7至图10共同图示了IC内电力管理的各个方面,其中PS在第一电力域内运作,所述第一电力域与第二电力域是分开独立的,所述第二电力域中运作的是可编程电路系统。因此,可编程电路系统可以独立于PS被断电。在一个实施例中,PS可以控制可编程电路系统的通电和/或断电过程。
鉴于可编程电路系统有能力独立于PS进行电力循环,电力管理功能可以包括在可编程电路系统的通电和断电这两项中的一项或两项期间,对处理器硬件资源的管理。另外,电力管理功能可以包括对以下关系的管理:在PS的处理器硬件资源与外部处理节点进行通信时可以在这两者之间建立的任何关系,例如,当通信通过可编程电路系统进行路由时。
图7为图示了根据本说明书中所揭示的另一个实施例的系统700的第六方框图。如图所示,系统700可以包括IC705、电源730,以及一个或多个开关,所示为开关735、740和745。IC705可以大体如参考图1和图2中描绘的IC所述来实施。然而,图7示出了IC705的简图以更清楚地示出电力管理功能。相应地,IC705可以包括PS710和可编程电路系统715。在一个实施例中,可编程电路715可以采用FPGA的形式进行实施。PS710和可编程电路系统715可以通过一个或多个电平转换器720(描绘为720A至720C)而耦接在一起。
电源730可以生成多个电力信号,例如电力信号750、752和754。在一个实施例中,电力信号750至754中的每一者可以具有不同的电压电势。如图所示,电力信号750至754耦接到IC705的PS710内的PS电压检测器712。
电力信号750至754中的每一者还可以分别耦接到开关735至745中的一者。开关735至745可以经配置以选择性地将电力信号750至754传递给可编程电路系统715内的结构电压检测器725。响应于由PS710生成的控制信号756,开关735至745中的每一者可以选择性地将电力信号750至754传递给结构电压检测器725。在图7中所示的实施例中,PS电压检测器712可以生成控制信号756。当开关735至745闭合时,电力信号750至754传播到可编程电路系统715。当断开时,开关735至745解除电力信号750至754与可编程电路系统715的耦接。
PS电压检测器712可以经配置以监控电力信号750至754并且确定每个电力信号750至754何时满足一个或多个不同的电压阈值,下文将对此进行更详细的描述。如图所示,PS电压检测器712在两个位置耦接到电力信号754。PS电压检测器712可以在电源730与开关745之间的位置处以及在开关745与结构电压检测器725之间的位置处耦接到电力信号754。
电力信号750可以实施为1.2至1.8伏特的电力信号,它可以用于向IC705的I/O提供电力。电力信号752可以实施为1.8伏特的电力信号,它可以用于向IC705提供预驱动器电压和偏压。例如,电力信号754可以实施为1伏特电力信号,它可以用于供应IC705的逻辑电路系统。所述实例和值用于说明的目的,且同样地,并非意图作为本说明书中揭示的一个或多个实施例的限制。
电平转换器720可以如参考图2中的电平转换电路系统296所述那样来实施。如图所示,电平转换器720可以在两个位置耦接到电力信号754,例如,在开关745之前和作为开关745的输出端。一般来说,开关735至745中的每一者将具有引起电压降的某一电阻,使得各个开关的输出端的电压将低于作为该开关输入的电力信号。因此,在两个电力域意在以相同电压进行操作的情况下,由于开关735至745有电阻以及一个或多个其他因素,因此提供给每个电力域的电力信号的电压会发生波动。电平转换器720可能会导致电压中的这些波动,用于在第一电力域(即,PS710)与第二电力域(即,可编程电路系统715)之间传递信号。
如图所示,可编程电路系统715还可以包括所示为结构电压检测器725的电压检测器。结构电压检测器725可以检测信号750至754中的每一者何时达到预定电压电平并且作为响应生成信号758。信号758可以经由电平转换器720A而提供给PS710。例如,电平转换器720A可以实施为第四级电平转换器。应了解,尽管未示出,但是电力信号可以从PS电压检测器712或从一个或多个其他组件分布在PS710中。类似地,电力信号可以从结构电压检测器725或从一个或多个其他组件分布在可编程电路系统715中。另外,尽管位于可编程电路系统715内,但是结构电压检测器725可以与IC700的一个或多个其他系统级组件一起实施为硬接线电路系统。
在操作中,IC700可以通电。例如,电源730可以开始向IC700供应电力。PS710可能有助于使可编程电路系统715通电以及可编程电路系统715的配置。当向PS710供应电力时,PS电压检测器712立刻可以开始监控电力信号750至754上的电压。响应于确定电力信号750至754上的电压中的一者或多者或全部满足第一预定最小电压电平(也称为最小IOB电压),PS电压检测器712可以经由控制信号760启用IOB728。
一般来说,当PS电压检测器712启用IOB728时,PS电压检测器712已经确定了经由电力信号750至754中的一者或多者或全部而接收到的电压电势足以驱动IOB728,例如,已经满足了最小IOB电压。例如,可以通过将内部电力信号耦接到IOB728来启用IOB728。最小IOB电压可以足够高以使IOB728运作,但无需高得足以使PS710开启或启动(boot)。相应地,最小IOB电压仍然可以低于能使PS710在运作模式下运作的优选或合法电压范围。
一旦激活,IOB728便能够接收电力指示信号762。电力指示信号762可以由电源730或另一外部源提供。例如,当电源730稳定时,因此,当电力信号750至754稳定且在PS710开始开启所需的范围内时,电力指示信号762可以设置得较高。相应地,尽管PS710利用PS电压检测器712来启用IOB728,但是PS710依靠电力指示信号762来指示出电源730何时在运作且稳定。
响应于接收到电力指示信号762,例如信号变高,PS710可以开始启用或开启过程。将参照剩余附图对该开启过程进行更详细描述。在一个实施例中,作为开启过程的一部分,PS电压检测器712可以经由控制信号756来闭合开关735至745,从而使可编程电路系统715与电力信号750至754耦接在一起。
随着开关735至745闭合,PS电压检测器712可以对从开关745输出的电力信号754上的电压进行监控。当PS电压检测器712确定了信号754上的电压满足第二预定最小电压(称为最小电平转换器电压)时,PS电压检测器712可以启用一个或多个电平转换器720,例如电平转换器720A。最小电平转换器电压可以是足以使可编程电路系统715内的一个或多个所选装置(例如,电平转换器720A)运作的电压。
在一个实施例中,最小电平转换器电压可以是高得足以使可编程电路和/或一个或多个电平转换器720(例如,使用互补型金属氧化物半导体(CMOS)装置来实施的电路)运转的电压。最小电平转换器电压可以是这样的电压,尽管大的足以使装置运转,但仍然低于使可编程电路系统715内的装置运作所需的某一优选或合法的电压范围,此电压范围支持(例如)在运作模式中的配置功能和可编程电路系统715。最小IOB电压可以,但无需与最小电平转换器电压相同或相等。
此外,随着开关735至745启用,结构电压检测器725可以开始运作。结构电压检测器725可以开始监控电力信号750至754中每一者上的电压,以确定电力信号750至754中一者或多者或全部的电压何时满足使可编程电路系统715运作所需的第三预定最小电压,它称为最小可编程电路系统电压。
响应于结构电压检测器725确定了电力信号750至754中一者或多者或全部的电压满足了最小可编程电路系统电压,结构电压检测器725可以生成信号758,例如可编程电路系统电力指示信号,以向PS710指示出可编程电路系统715已通电。例如,当电力信号750至754中的一者或多者或全部满足最小可编程电路系统电压时,结构电压检测器725可以使信号758变高。最小可编程电路系统电压为使可编程电路系统715恰当运转(例如,保持在运作模式下,)并且进行配置所需的最小合法电压电平。最小可编程电路系统电压通常高于最小IOB电压和/或最小电平转换器电压。响应于结构电压检测器725确定电力信号750至754中的一者或多者或全部满足最小可编程电路系统电压而生成信号758,指示出可编程电路系统715已准备好进行配置,例如,加载配置数据以实施其中的物理电路。
在一个实施例中,结构电压检测器725可以在两种不同模式中的一种模式下运作。响应于从外部源接收到的控制信号764,可以选择结构电压检测器725运作的特定模式。根据控制信号764的状态,结构电压检测器725可以在第一模式或第二模式中运作。
在第一模式中,结构电压检测器725可以在确定电力信号750至754中的一者或多者或全部满足最小可编程电路系统电压之后等待预定时间量,再生成信号758,例如使信号758变高。例如,该时间量可以约为50毫秒,但是也可以使用其他时间段。在第二模式下,响应于确定电力信号750至754中的一者或多者或全部满足最小可编程电路系统电压,结构电压检测器725可以立刻生成信号758。信号758向PS710指示出可编程电路系统715在运转,例如,处于运作模式,并且可以经配置以实施一个或多个不同电路。
尽管所述图7使用PS710与可编程电路系统715之间的开关和公共电力信号来实现独立的电力域,但是可以用各种不同方式来实现类似的结果。例如,可以使用两个完全独立的电源。在此情况下,并非是向外部开关提供控制信号,可以将控制信号764提供给电源,从而向可编程电路系统715提供电力以使可编程电路系统715通电和/或断电。在另一个实例中,开关可以被包含在IC700内。在此情况下,控制信号756可以被提供给位于IC700内的开关,以使可编程电路系统715通电和/或断电。
图8为图示了根据本说明书中所揭示的另一个实施例的IC的电力管理方法800的第二流程图。更确切地说,方法800示出了使IC通电的示例性方法。方法800可以由如参照本说明书中的图1至图7所述的IC来执行。
相应地,在步骤805中,可以将电力施加或耦接到IC的PS。在步骤810中,PS电压检测器可以确定供应给PS的电力信号满足电压需求,例如最小IOB电压,以使耦接到外部生成的电力指示信号的IOB运作。相应地,响应于确定这些电力信号满足最小IOB电压,在步骤815中,PS电压检测器可以使耦接到该电力指示信号的IOB通电。在一个实施例中,使IOB运作所需的电压电平可以低于使PS运作通常所需的电压电平。
在步骤820中,PS可以检测该电力指示信号已经变高,从而指示出电源已经达到稳定状态。例如,该电力指示信号可以被IC外部的电源保持较低,直到实现稳定状态为止。一旦实现了稳定状态,电源便可以使电力指示信号变高,从而指示出使PS运作所需的电压可得自电源。PS电压检测器可以检测由于IOB的激活而导致的电力指示信号中的状态变化,其中电力指示信号在步骤815中耦接至所述IOB。
在步骤825中,响应于检测到电力指示信号的高状态,PS电压检测器可以初始化PS中的启动或开启过程。一般来说,步骤830至850描述了可以由PS执行的开启过程。在步骤830中,PS可以使用内部生成参考时钟开始运作。例如,内部生成参考时钟可以由图2中的时钟单元226生成。一般来说,内部参考时钟以某一频率运作,该频率低于用于在正常运作(例如,运作模式)期间最终对PS进行计时的时钟信号的频率。例如,在一个实施例中,内部时钟信号可以具有约为30MHz的频率。
在步骤835中,PS可以启用带隙电路系统或使之通电。例如,带隙电路系统可以位于PS的时钟单元内,且一般来说,它提供参考电压以供同样位于时钟单元内的PLL使用。相应地,在步骤840中,PS可以启用PLL并且开始全速运作。例如,当使用内部生成参考时钟来运作时,时钟单元的PLL被绕过。当启用带隙电路系统和PLL时,PLL不再被绕过,从而允许PS根据时钟单元的PLL可以同步的外部提供时钟信号而以全速运作。如上所述,由PLL输出的时钟信号的频率,一旦运作,便可能明显高于内部生成参考时钟。
在步骤845中,PS可以启用RAM,所述RAM经由存储器控制器耦接到PS。在步骤850中,PS可以激活任何终端校准程序和/或电路,从而与RAM同步。一般来说,在步骤850之后,PS可以被认为处于运作模式中。例如,在离开复位状态之后,PS可以执行程序代码。在另一个实例中,PS还可以开始管理可编程电路系统的电力。
在步骤855中,PS可以开始管理IC的可编程电路系统部分的程序上的电力。例如,在步骤855中,PS可以闭合开关以将电力供应给IC的可编程电路系统或者以其他方式为可编程电路系统启用电源。例如,PS可以经由控制信号来指导开关闭合,从而允许由开关接收的任何电力信号被输出,并且被传播到可编程电路系统。
在步骤860中,PS电压检测器确定到达可编程电路系统的电力信号满足用于使耦接到可编程电路系统电力指示信号的电平转换器运作的最小电平转换器电压。在步骤865中,可编程电路系统可以确定电力信号满足最小可编程电路系统电压。在步骤870中,响应于确定电力信号满足最小可编程电路系统电压,可编程电路系统发信号通知PS可编程电路系统已准备好进行配置。如上所述,可编程电路系统可以通过可编程电路系统电力指示信号来传达配置准备就绪,所述可编程电路系统电力指示信号耦接到已经由PS启用的系统电平转换器中的一者。
在步骤875中,PS可以启用用于在PS与可编程电路系统之间传达系统电平信号的任何电平转换器。在一个实施例中,PS可以启用不要求对可编程电路系统进行配置的电平转换器。也可以启用对在PS与可编程电路系统之间传递的时钟信号进行传播的一个或多个电平转换器。
当禁用时,每个电平转换器可以经配置以输出恒定值,例如,低或高。一旦启用,电平转换器的输出将变得与提供给该电平转换器的输入相关。在一个实施例中,当电平转换器接收到逻辑高时,该电平转换器可以输出逻辑高,当电平转换器接收到逻辑低时,该电平转换器可以输出逻辑低。在另一个实施例中,电平转换器可以经配置以输出互补值。例如,当电平转换器接收到作为输入的逻辑高时,该电平转换器可以输出逻辑低。
类似地,当电平转换器接收到作为输入信号的逻辑低时,该电平转换器可以经配置以输出逻辑高。无论如何,当禁用时,电平转换器可以经配置以输出恒定的逻辑高或恒定的逻辑低。
在步骤880中,PS可以对可编程电路系统进行配置以实施一个或多个电路。在一个实施例中,运作中的PS可以针对可编程电路系统从位于芯片外的存储位置访问配置数据。例如,PS可以从外部存储器检索配置数据或者通过通信链路(例如,以太网连接)发出对配置数据的请求。可以将由PS接收的配置数据提供给PCAP接口并将其发送到可编程电路系统内的配置控制器。配置控制器进而将配置数据加载到配置存储单元,由此实施由配置数据指定的物理电路系统。
在步骤885中,PS可以启用可用于在PS与可编程电路系统之间传递用户信号的电平转换器。在步骤885之后,整个IC处于运作中。如上所述,PS处于运作模式并且能够执行程序代码。此外,可编程电路系统处于运作模式。在一个实施例中,可编程电路系统可以在通过生成用户指定信号来进行配置之后从复位类型的状态中释放。用户指定信号可以是由于如参照步骤880所述加载配置数据的缘故而由可编程电路系统内实施的电路生成的信号。
图9为图示了根据本说明书中所揭示的另一个实施例的IC的电力管理方法900的第三流程图。更确切地说,方法900图示了一种技术,用于使参考本说明书图1至图8所述进行配置的IC的可编程电路系统断电。方法900图示了PS可以如何执行对IC(包括可编程电路系统)的电力管理。方法900可以开始于某种状态,其中PS和可编程电路系统均是运作的,例如,处于运作模式。PS可以执行程序电路,可编程电路系统内实施的电路系统可以正在运作。响应于某种信号或事件,PS可以确定可编程电路系统将被断电,且相应地,可以开始对可编程电路系统的断电程序。
开始于步骤905,PS可以初始化可编程电路系统内的断电程序,从而使可编程电路系统内实施的电路系统状态被存储并且,随后在可编程电路系统再次通电时,有至少部分会恢复。断电程序,由于它涉及可编程电路系统,一般包括步骤905至925。
相应地,在步骤905中,PS可以将可编程电路系统置于空闲状态。例如,PS可以将可编程电路系统置于某一状态中,在该状态中正在进行的或已经提供给可编程电路系统的任何操作被允许完成,同时防止任何其他或新的事务进入可编程电路系统。当对可编程电路系统的操作已经完成时,例如,PS可以暂停可编程电路系统,例如,对提供给可编程电路系统等的各个时钟信号进行闸控。相应地,可编程电路系统不再处于运作模式。
在步骤910中,PS可以任选地查询可编程电路系统并确定可编程电路系统内实施的电路系统(例如,用户电路系统)的状态信息。在一个实施例中,存储在可编程电路系统内的数据可以由PS使用配置回读功能、边界扫描功能等来获得。例如,存储在可编程电路系统内一个或多个存储器中的数据可以由PS获得或读取。这样的数据可以包括系数表,或由可编程电路系统内实施的电路系统所需要的其他数据。在另一个实例中,当软处理器(例如,MicroBlazeTM)在可编程电路系统内实施时,可以获得存储在寄存器中的值以及可编程电路系统内的软处理器的程序存储器中的内容。
在步骤915中,PS可以任选地将自可编程电路系统获得的状态信息存储在存储器内。在一个实施例中,PS可以将该状态信息存储在位于芯芯片外的存储器内。例如,PS可以将该状态信息存储在外部RAM内。在另一个实施例中,PS可以将该状态信息存储在内部存储器内。
例如,PS可以将该状态信息存储在参照图2描述的OCM内,所述OCM位于PS内。
在步骤920中,PS,例如,核心复合物,可以将电平转换器置于已知状态,所述电平转换器将可编程电路系统与PS耦接在一起。例如,电平转换器可以被置于某种状态以维持逻辑零或逻辑一。在一些情况下,一些电平转换器可以经配置以维持逻辑零,而其他电平转换器经配置以维持逻辑一。将电平转换器置于已知状态会防止杂散信号在PS内触发事件。例如,杂散信号在可编程电路系统断电的同时可以致使耦接至电平转换器的PS系统或组件(例如,耦接至FMIO接口的I/O装置、通过另一接口与可编程电路系统耦接在一起的另一个PS时钟块)错误地生成事件,例如中断。当中断得到可编程电路系统的服务并且可编程电路系统已断电时,该中断不会得到服务,从而致使PS内会出现尚未解决的问题或其他问题。
在步骤925中,PS可以使可编程电路系统断电。例如,PS可以经由控制信号来指导开关以解除可编程电路系统与电力信号的耦接。一旦可编程电路系统断电,PS便可以持续运作并且在正常运作状态下执行程序代码。或者,在使可编程电路系统断电之后,PS可以任选地置于低功率模式中。当处于低功率模式中时,PS并不执行程序代码并且消耗的电力远少于运作模式中的情况,在运作模式中系统时钟(例如)以全速运作。
相应地,步骤930至950实际上可以是可选的,并且示出了将PS置于低功率(例如,睡眠)模式中的步骤。在一个实施例中,例如,PS可以经配置以响应于使可编程电路系统断电而初始化低功率模式。在另一个实施例中,响应于从IC外部接收到的信号或中断,可以指导PS进入低功率模式。
在步骤930中,PS可以绕过在时钟单元内运作的PLL。当PLL被绕过时,PS可以使用内部生成参考时钟而开始运作。在步骤935中,PS可以使带隙电路系统断电。在步骤940中,PS可以将RAM置于自刷新(self-refresh)模式。在步骤945中,PS可以禁用RAM的终端校准功能。在步骤950中,可以对参考时钟进行频率划分以进一步降低PS内的功耗。例如,频率为约30MHz的内部生成时钟可以被频率划分降至约1MHz。
应了解,可以大体上通过以相反顺序执行步骤950至930而将PS从低功率模式带出来。
图10为图示了根据本说明书中所揭示的另一个实施例的图2中IC200的第七方框图。图10所绘为IC200的抽象图,它图示了当可编程电路系统204断电时对PS202的I/O装置305的管理。为图示简洁方便起见,IC200内有一个或多个组件未示出。例如,图10中未示出开关315和320以及可编程电路系统204内的各种其他组件。
图10所示的实施例中,I/O装置305通过一个或多个I/O引脚325耦接到外部处理节点(未图示)。如图所示,服务于I/O装置305并与之交互的主要实体是在可编程电路系统204内实施的用户电路系统280。在所示实例中,I/O装置305通过核心交换机236和接口256并经由标记为1005的信号路径与用户电路系统280进行通信。
在一个实施例中,响应于确定可编程电路系统204将被断电,核心复合物206可以经配置以获得对I/O装置305的控制权。当图10所示配置中可编程电路系统204已断电时,如本说明书中所述,在不改变控制权的情况下,I/O装置305不再对处理节点可用。
例如,核心复合物206可以用信号通知用于跟踪对I/O装置305的控制权的特定锁定机构以下内容:核心复合物206正从用户电路系统280处移走控制权。在一个实施例中,核心复合物206可以包括或执行程序代码,所述程序代码提供了能由用户电路系统280实施的一些或所有特定功能。因此,当用户电路系统280通电时,核心复合物206可以接管先前由用户电路系统280执行的功能,至少是与I/O装置305有关的功能。在一个实例中,核心复合物206可以维持I/O装置305与外部处理节点之间的通信链路。
图11为图示了根据本说明书中所揭示的另一个实施例的图2中IC200的第八方框图。图11图示了IC200在可编程电路系统204断电后的状态。为说明可编程电路系统204已断电且不可用,用阴影示出可编程电路系统204。如图所示,核心复合物206已获得对I/O装置305的控制权,并且已开始服务于I/O装置305。现通过标记为1100的信号路径在核心复合物206与I/O装置305之间进行通信。因此,并非是继续将通信从I/O装置305路由到可编程电路系统204,而是将通信提供给核心复合物206,以便服务。
在图示中,考虑以下情况,其中I/O装置305实施USB接口到达外部处理节点。例如,在可编程电路系统204内实施的用户电路系统280,可以实施视频处理电路系统用以处理在USB通信链路上运载的视频。在I/O装置305控制权不改变的情况下,当可编程电路系统204断电时,提供给外部处理节点的视频会停止。通过将I/O装置305的控制权提供给核心复合物206,核心复合物206可以维持USB通信链路。
在一个实施例中,核心复合物206可以通过程序代码的执行而提供出本来由用户电路系统280提供的相同功能。由于该功能(例如,此情况下为视频处理)在通过程序代码执行后会由核心复合物206执行,因此,与用户电路系统280相比,其性能可能会变少。在另一个实施例中,核心复合物206可以提供多样的或不同的功能。例如,并非是继续处理视频,核心复合物206可以输出视频信号,所述视频信号指出表明视频处理暂时不可用的图像。可以提供其他形式的变少或受限的功能。然而,在任一情况下,可以维持与外部处理节点之间的通信链路,例如,保留电通信信道。
图12为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法1200的第四流程图。方法1200所示为用于在具有对I/O装置的控制权的IC内进行电力管理的一种技术,所述I/O装置可以耦接到可编程电路系统内的电路系统。例如,方法1200所示为用于对参照本说明书图10和图11所图示以及所描述的IC进行电力管理的一种技术。
方法1200可以开始于某种状态,其中IC已被通电且处于全运作中。例如,至少一个I/O装置可以通过专门供PS使用的一个或多个I/O引脚而通信地链接到外部处理节点。I/O装置还可以通过核心交换机和接口耦接到可编程电路系统内实施的电路系统。例如,用户电路系统可以经配置以服务于I/O装置。
在步骤1205中,核心复合物可以确定可编程电路系统将被断电。如上所论述,PS可以经配置以控制可编程电路系统的电力功能。在一个实例中,核心复合物本身可以(例如,通过对程序代码的执行并对特定编程式执行逻辑的应用)确定可编程电路系统将被断电。在另一个实例中,IC,例如,核心复合物,可以从另一个外部处理节点接收请求使可编程电路系统断电的通知或信号。
在步骤1210中,核心复合物可以确定PS内是否包含任何I/O装置通过PS(例如,一个或多个接口)耦接到可编程电路系统。例如,核心复合物可以经由位于PS内的控制寄存器来检查I/O装置、接口、核心复合物等等的配置,以确定哪一个I/O装置(如果有的话)得到可编程电路系统内的用户电路系统的服务。当一个或多个I/O装置通过PS耦接到可编程电路系统,方法可以继续到步骤1215。当不存在I/O装置通过PS耦接到可编程电路系统,方法可以继续到步骤1225。
在步骤1215中,PS可以获得对I/O装置的控制权。例如,核心复合物可以经配置以重新配置PS内的链路,如参照图10和图11所示,因此,从I/O装置接收到的信息会被引导至核心复合物而不是可编程电路系统。在PS内利用了锁定机构的事件中,核心复合物可以指导锁定机构,核心复合物对I/O装置具有专属控制权。出于说明的目的,方法1200假定有一个I/O装置通过PS耦接到可编程电路系统。然而,应了解,可以有一个以上的I/O装置耦接到可编程电路系统,并且参照图12所述的步骤可以应用于这类情况中。
在步骤1220中,PS可以开始维持外部处理节点与I/O装置之间的通信链路。PS可以服务于外部处理节点和I/O装置,并且可以进一步执行曾由可编程电路系统内的用户电路系统所提供的功能。如上所述,PS可以提供用户电路系统的全功能性或者可以提供由用户电路系统提供的功能性的有限子集。
在步骤1225中,PS可以将可编程电路系统置于空闲状态。在步骤1230中,PS可以任选地查询可编程电路系统以确定可编程电路系统内实施的电路系统(例如,用户电路系统)的状态信息。如上所述,存储在可编程电路系统内的数据可以由PS使用配置回读功能、边界扫描功能等来获得。在步骤1235中,PS可以任选地将自可编程电路系统获得的状态信息存储在存储器内。
在步骤1240中,PS,例如,核心复合物,可以将电平转换器置于已知状态,所述电平转换器将可编程电路系统与PS耦接在一起。在步骤1245中,PS可以使可编程电路断电。在步骤1250中,PS可以继续运作,例如,执行程序代码,并且可以维持I/O装置与耦接至其的外部处理节点之间的通信链路。PS可以继续服务于I/O装置。
图13为图示了根据本说明书中所揭示的另一个实施例的一种IC电力管理方法1300的第五流程图。方法1300所示为用于在具有对I/O装置的控制权的IC内进行电力管理的一种技术,所述I/O装置可以耦接到可编程电路系统内的电路系统。更确切地说,方法1300所示的实例中,可编程电路系统已通电,并且对I/O装置的控制权被从核心复合物提供回给可编程电路系统。方法1300可以由参照本说明书的图10至图12所展示的系统来执行。
方法1300可以开始于某种状态,其中PS是运作的,并且可编程电路系统已断电。更确切地说,方法1300可以开始于某种状态,其中PS的核心复合物已获得对I/O装置的控制权,所述I/O装置在可编程电路系统断电之前由可编程电路系统内实施的用户电路系统来控制,如参考图12所述。
因此,在步骤1305中,PS可以闭合开关以将电力供应给IC的可编程电路系统或者以其他方式启用可编程电路系统的电源。在步骤1310中,PS电压检测器可以确定到达可编程电路系统的电力信号满足使耦接到可编程电路系统电力指示信号的电平转换器运作的最小电平转换器电压。在步骤1315中,可编程电路系统可以确定电力信号满足最小可编程电路系统电压。
在步骤1320中,响应于确定电力信号满足最小可编程电路系统电压,可编程电路系统发信号通知PS可编程电路系统已准备好进行配置。在步骤1325中,PS可以启用用于在PS与可编程电路系统之间传达系统电平信号的任何电平转换器。在一个实施例中,PS可以启用不要求对可编程电路系统进行配置的电平转换器。也可以启用对在PS与可编程电路系统之间传递的时钟信号进行传播的一个或多个电平转换器。
在步骤1330中,PS可以对可编程电路进行配置以实施一个或多个电路。在一个实施例中,运作中的PS可以针对可编程电路系统从位于芯片外的存储位置访问配置数据。例如,PS可以从外部存储器检索配置数据或者通过通信链路(例如,以太网连接)发出对配置数据的请求。可以将由PS接收的配置数据提供给PCAP接口并将其发送到可编程电路系统内的配置控制器。配置控制器进而将配置数据加载到配置存储单元,由此实施由配置数据指定的物理电路系统。
在一个实例中,相同的电路设计,例如,相同的用户电路设计,可以被重新加载到在所述可编程电路系统断电之前一直存在着的可编程电路系统中。在另一个实例中,可以经由加载配置数据来实施断电之前可编程电路系统内实施的用户电路系统的修改版,例如,升级版。在又一个实例中,可以在可编程电路系统内实施一个完全不同的电路设计作为用户电路系统,所述用户电路系统明显不同于可编程电路系统断电之前在可编程电路系统内实施的用户电路系统。
在步骤1335中,PS可以启用可用于在PS与可编程电路之间传递用户信号的电平转换器。在步骤1340中,任何存储状态数据可以任选地在可编程电路系统内实施的用户电路系统内恢复,例如,重新加载。在步骤1340之后,整个IC在运作。如上所述,PS处于运作模式并且能够执行程序代码。此外,可编程电路系统处于运作模式。在一个实施例中,可编程电路系统可以在通过生成用户指定信号来进行配置之后从复位类型的状态中释放。用户指定信号可能是由于如参照步骤1330所述加载配置数据的缘故而由可编程电路系统内实施的电路系统生成的信号。
在步骤1345中,响应于可编程电路系统从复位状态释放,PS,例如核心复合物,可以将对I/O装置的控制权传递给可编程电路系统内实施的用户电路系统。如参考图12所述,核心复合物可以假定对I/O装置的控制权来自可编程电路系统内实施的用户电路系统。在PS内利用锁定机构的事件中,核心复合物可以指导锁定机构,核心复合物将其对I/O装置的控制权(例如,专属控制权)传递给用户电路系统。核心复合物可以经配置以重新配置PS内的通信链路,从而使得I/O装置会通过核心复合物和接口而再次与用户电路系统耦接在一起。例如,数据路径可以从图11所示那样变为图10中所示那样,从而使得信息能经由核心复合物和接口而在I/O装置与用户电路系统之间流动。
在步骤1350中,响应于控制权已从核心复合物传递至用户电路系统,用户电路系统可以开始服务于I/O装置。在此方面,I/O装置与位于IC外部且耦接到I/O装置的处理节点之间的通信链路不会发生中断或以其他方式发生丢失。在核心复合物相比用户电路系统仅提供更少功能的情况下,可以复合全功能并且这些功能可经由I/O装置为处理节点所用。
如参照图12所述,出于说明的目的,方法1300假定有一个I/O装置通过PS耦接到可编程电路系统。然而,应了解,可以有一个以上的I/O装置耦接到可编程电路系统,并且参照图13所述的步骤可以应用于这类情况中。
附图中的流程图图示了根据本说明书中揭示的一个或多个实施例的系统、方法以及计算机程序产品的可行实施方案的结构、功能和操作。在此方面,流程图中的每个方框可以表示模块、片段或代码的一部分,所述代码包括实施指定逻辑功能的可执行程序代码的一个或多个部分。
应注意,在一些替代性实施方案中,在各方框中提到的功能可以用与图中不一致的顺序出现。例如,连续示出的两个方框实际上可以基本并发地执行,或各方框有时可以按照相反的顺序来执行,这取决于所提及的功能。还应了解,流程图图示中的每个方框,以及流程图图示中的方框的组合可以通过基于硬件的专用系统来实施,所述专用系统执行指定的功能或行为,或专用硬件和可执行指令的组合。
一个或多个实施例可以用硬件或者硬件和软件的组合加以实现。一个或多个实施例可以在一个系统中以集中方式实现,或者以不同元件散布在若干互连系统上的分布方式来实现。任何种类的数据处理系统或适于执行本文所描述方法至少一部分的其他设备都可适用。
一个或多个实施例进一步可以嵌入在诸如计算机程序产品之类的装置中,这种装置包括能实施本文所述方法的所有特征。所述装置可以包括数据存储媒体,例如,非瞬时计算机可用或计算机可读媒体,用于存储程序代码,所述程序代码在加载到系统(包括存储器和处理器)中并执行时,会致使系统执行本说明书中所述功能的至少一部分。数据存储媒体的实例可以包括,但不限于,光学媒体、磁性媒体、像随机存取存储器或硬盘之类的计算机存储器,等等。
本文中的术语“计算机程序”、“软件”、“应用程序”、“计算机可用程序代码”、“程序代码”、“可执行代码”,及其变体和/或组合,指的是一组指令的任何表示法,无论是语言、代码或符号,所述指令意图使具有信息处理能力的系统执行特定功能,无论是直接执行,还是在以下行为中的一者或两者之后执行:a)转换为另一种语言、代码或符号;b)采用不同的材料形式进行复制。例如,程序代码可以包括,但不限于,子例程、函数、程序、目标方法、目标实施方案、可执行应用程序、小应用程序、小服务程序、源代码、目标代码、共享库/动态加载库和/或设计用于在计算机系统上执行的其他指令序列。
本文中所用的术语“一”定义为一个或一个以上。本文中所用的术语“多个”定义为两个或两个以上。本文中所用的术语“另一个”定义为至少第二个或更多。本文中所用的术语“包含”和/或“具有”定义为包含,即,开放性语言。本文中所用的术语“耦接”定义为连接,无论是未使用任何介入元件的直接连接还是使用一个或多个介入元件的间接连接,除非另有指示。两个元件也可以按照机械方式、电方式或通信链接方式通过通信信道、路径、网络或系统来耦接。
在不脱离实施例的精神或基本属性的前提下,本说明书中所揭示的一个或多个实施例也可以通过其他形式来实施。因此,应参考以上权利要求,而不是参考上述指示一个或多个实施例的范围的说明书。

Claims (15)

1.一种集成电路,其包括:
经配置以执行程序代码的处理器系统,其中所述处理器系统为硬连线的并且包括处理器硬件资源;以及
可配置用来实施不同物理电路的可编程电路系统,所述可编程电路系统耦接到所述处理器系统,
其中所述可编程电路系统经配置以共享所述处理器硬件资源的使用权。
2.根据权利要求1所述的集成电路,其中所述处理器硬件资源为定位在所述处理器系统内的输入/输出(I/O)装置。
3.根据权利要求1所述的集成电路,其中所述处理器硬件资源为定位在所述处理器系统内的存储器。
4.根据权利要求2或3所述的集成电路,其中所述处理器硬件资源经配置以生成中断信号,所述中断信号提供给所述可编程电路系统和所述处理器系统。
5.根据权利要求1所述的集成电路,其中所述处理器硬件资源选择性地耦接到所述集成电路中专用于所述处理器系统或所述可编程电路系统的输入/输出(I/O)引脚。
6.根据权利要求5所述的集成电路,其中从所述处理器硬件资源生成的数据被提供给所述集成电路中专用于所述处理器系统的所述I/O引脚,并且所述数据生成于耦接至结构输入/输出复用器的数据线上,所述结构输入/输出复用器耦接至所述可编程电路系统。
7.根据权利要求1至6中任一项所述的集成电路,其中所述处理器系统包括经配置以生成在所述处理器系统内分布的第一时钟信号的时钟单元,其中所述时钟单元经配置以将第二时钟信号提供给所述可编程电路系统。
8.根据权利要求1至3以及5至7中任一项所述的集成电路,其进一步包括硬件锁定机构,所述硬件锁定机构经配置以每次仅允许所述处理器系统或所述可编程电路系统中的一者控制所述处理器硬件资源。
9.根据权利要求8所述的集成电路,其中所述处理器系统或所述可编程电路系统仅在被授予对所述处理器硬件资源的控制权时,才服务于由所述处理器硬件资源所生成的中断。
10.根据权利要求1所述的集成电路,其中所述可编程电路系统包括用户电路,所述用户电路经由专门供所述可编程电路系统使用的I/O引脚而通信链接到所述集成电路外部的处理节点,其中所述用户电路经由将所述可编程电路系统与所述处理器系统耦接起来的接口而通信链接到I/O装置,其中所述处理节点经由所述用户电路访问所述I/O装置。
11.根据权利要求1所述的集成电路,其中所述可编程电路系统包括用户电路,所述用户电路经由接口耦接至所述处理器系统,其中所述处理器系统经配置以实施标准I/O函数,其中所述处理器系统经配置以响应于从所述用户电路经由所述接口接收到的请求,将所述标准I/O函数提供给所述用户电路。
12.根据权利要求1至11中任一项所述的集成电路,其中所述可编程电路系统在所述处理器系统的控制下实施所述物理电路。
13.根据权利要求1至12中任一项所述的集成电路,其中所述处理器系统控制着所述可编程电路系统的供电情况。
14.一种共享处理器硬件资源的方法,其包括:
配置可编程电路系统以实施不同的物理电路;以及
配置所述可编程电路系统以共享处理器系统的所述处理器硬件资源的使用权,其中所述处理器系统为硬连线的并且经配置以执行程序代码。
15.根据权利要求14所述的方法,其进一步包括:
接收对所述处理器系统的所述处理器硬件资源进行访问的请求;
确定所请求的处理器硬件资源是否可用;
如果所请求的处理器硬件资源是可用的,则:
授权访问所请求的处理器硬件资源;
配置所请求的处理器硬件资源;以及
初始化所请求的处理器硬件资源上的操作。
CN201280010745.5A 2011-02-28 2012-01-30 具有可编程电路系统和嵌入式处理器系统的集成电路 Active CN103403701B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/037,234 US8667192B2 (en) 2011-02-28 2011-02-28 Integrated circuit with programmable circuitry and an embedded processor system
US13/037,234 2011-02-28
PCT/US2012/023190 WO2012118586A1 (en) 2011-02-28 2012-01-30 Integrated circuit with programmable circuitry and an embedded processor system

Publications (2)

Publication Number Publication Date
CN103403701A true CN103403701A (zh) 2013-11-20
CN103403701B CN103403701B (zh) 2016-11-30

Family

ID=

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335148A (zh) * 2014-08-11 2016-02-17 京微雅格(北京)科技有限公司 具有可配置应用平台cap的集成电路
CN106484649A (zh) * 2015-08-31 2017-03-08 爱思开海力士有限公司 用于高速通信的传送器件以及接口电路和包括它们的系统
CN107103472A (zh) * 2017-04-26 2017-08-29 北京计算机技术及应用研究所 一种用于区块链的算法处理模块
CN108351380A (zh) * 2015-10-29 2018-07-31 北欧半导体公司 微处理器接口
CN109565280A (zh) * 2016-08-19 2019-04-02 株式会社半导体能源研究所 半导体装置的电源控制方法
CN112181294A (zh) * 2020-09-21 2021-01-05 宜鼎国际股份有限公司 具有系统作业能力的资料储存装置
US11157673B2 (en) * 2019-07-12 2021-10-26 Ratier-Figeac Sas Field programmable gate array (FPGA) having dissimilar cores
CN114964243A (zh) * 2022-08-03 2022-08-30 中勍科技股份有限公司 一体化惯性导航数据采集及处理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6803785B1 (en) * 2000-06-12 2004-10-12 Altera Corporation I/O circuitry shared between processor and programmable logic portions of an integrated circuit
US20040236893A1 (en) * 2000-06-12 2004-11-25 Altera Corporation Bus architecture for system on a chip
US20080048715A1 (en) * 2003-07-31 2008-02-28 Actel Corporation, A California Corporation Programmable system on a chip for power-supply voltage and current monitoring and control
US7724028B1 (en) * 2008-04-11 2010-05-25 Xilinx, Inc. Clocking for a hardwired core embedded in a host integrated circuit device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6803785B1 (en) * 2000-06-12 2004-10-12 Altera Corporation I/O circuitry shared between processor and programmable logic portions of an integrated circuit
US20040236893A1 (en) * 2000-06-12 2004-11-25 Altera Corporation Bus architecture for system on a chip
US20080048715A1 (en) * 2003-07-31 2008-02-28 Actel Corporation, A California Corporation Programmable system on a chip for power-supply voltage and current monitoring and control
US7724028B1 (en) * 2008-04-11 2010-05-25 Xilinx, Inc. Clocking for a hardwired core embedded in a host integrated circuit device

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335148A (zh) * 2014-08-11 2016-02-17 京微雅格(北京)科技有限公司 具有可配置应用平台cap的集成电路
CN105335148B (zh) * 2014-08-11 2021-08-24 京微雅格(北京)科技有限公司 具有可配置应用平台cap的集成电路
CN106484649A (zh) * 2015-08-31 2017-03-08 爱思开海力士有限公司 用于高速通信的传送器件以及接口电路和包括它们的系统
CN106484649B (zh) * 2015-08-31 2020-10-13 爱思开海力士有限公司 用于高速通信的传送器件以及接口电路和包括它们的系统
CN108351380A (zh) * 2015-10-29 2018-07-31 北欧半导体公司 微处理器接口
CN109565280A (zh) * 2016-08-19 2019-04-02 株式会社半导体能源研究所 半导体装置的电源控制方法
CN109565280B (zh) * 2016-08-19 2023-02-17 株式会社半导体能源研究所 半导体装置的电源控制方法
CN107103472A (zh) * 2017-04-26 2017-08-29 北京计算机技术及应用研究所 一种用于区块链的算法处理模块
US11157673B2 (en) * 2019-07-12 2021-10-26 Ratier-Figeac Sas Field programmable gate array (FPGA) having dissimilar cores
CN112181294A (zh) * 2020-09-21 2021-01-05 宜鼎国际股份有限公司 具有系统作业能力的资料储存装置
CN114964243A (zh) * 2022-08-03 2022-08-30 中勍科技股份有限公司 一体化惯性导航数据采集及处理系统

Also Published As

Publication number Publication date
KR101496072B1 (ko) 2015-02-25
WO2012118586A1 (en) 2012-09-07
US20120221833A1 (en) 2012-08-30
KR20130108469A (ko) 2013-10-02
EP2681670A1 (en) 2014-01-08
US8667192B2 (en) 2014-03-04
US9454498B1 (en) 2016-09-27
JP5826865B2 (ja) 2015-12-02
JP2014515843A (ja) 2014-07-03
EP2681670B1 (en) 2016-03-30

Similar Documents

Publication Publication Date Title
JP5826865B2 (ja) プログラマブル回路と埋込型プロセッサシステムとを伴う集積回路
CN103370878A (zh) 集成电路内的电源管理
CN103354977B (zh) 在集成电路内进行处理器系统的扩展
US9722612B2 (en) Configuration sequence for programmable logic device
US9436785B1 (en) Hierarchical preset and rule based configuration of a system-on-chip
KR20220015471A (ko) Soc 파워-업 시퀀싱을 위한 시스템 및 방법
US10184983B2 (en) Interface independent test boot method and apparatus using automatic test equipment
US9935870B2 (en) Channel selection in multi-channel switching network
CN104854531A (zh) 时钟发生电路的重新配置
TW201140324A (en) Interface logic for a multi-core system-on-a-chip (SoC)
CN105143896A (zh) 可配置垂直集成
KR102596637B1 (ko) 상호작용형 다단계 물리적 합성
US20130002287A1 (en) Apparatus for improving reliability of electronic circuitry and associated methods
CN104076272A (zh) 双主控jtag方法、电路及系统
US7966519B1 (en) Reconfiguration in a multi-core processor system with configurable isolation
JP2008004788A (ja) 集積回路設定システム及びその設定方法
CN102971964A (zh) 用于周期性信号的输入/输出接口
CN103403701B (zh) 具有可编程电路系统和嵌入式处理器系统的集成电路
JP2004185619A (ja) クロックソースを切り替えるシステムおよび方法
US7560953B1 (en) Power management systems and methods for programmable logic devices
US20240231461A1 (en) Dynamic fabric quiescence
Shnidman et al. Fault scanner for reconfigurable logic
KR102614429B1 (ko) 재설정 가능한 시스템 프레임워크 및 서버시각 동기부를 포함하는 에지 디바이스용 시스템 온 모듈
WO2024159184A1 (en) Context switching systems and methods
KR102563928B1 (ko) 표준 셀 라이브러리, 동기 회로를 포함하는 집적 회로 및 집적 회로를 설계하기 위한 컴퓨팅 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant