CN113906393A - 在具有serdes功能的多管芯封装内部执行扫描数据传送 - Google Patents

在具有serdes功能的多管芯封装内部执行扫描数据传送 Download PDF

Info

Publication number
CN113906393A
CN113906393A CN202080038003.8A CN202080038003A CN113906393A CN 113906393 A CN113906393 A CN 113906393A CN 202080038003 A CN202080038003 A CN 202080038003A CN 113906393 A CN113906393 A CN 113906393A
Authority
CN
China
Prior art keywords
processor
data
serialized
serializer
input
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.)
Pending
Application number
CN202080038003.8A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN113906393A publication Critical patent/CN113906393A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318583Design for test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Microcomputers (AREA)

Abstract

一种用于执行处理器核心的扫描测试的系统,包括扫描测试模块和处理器,所述处理器包括处理器核心和输入/输出管芯,其中所述输入/输出管芯耦合到所述处理器核心。所述扫描测试模块将扫描测试输入数据并行传输到所述输入/输出管芯。所述输入/输出管芯的串行化器/解串行化器模块接收所述输入数据,串行化所述输入数据,并且将所述串行化的输入数据传输到所述处理器核心。所述处理器核心的串行化器/解串行化器模块接收所述串行化的扫描测试输入数据、解串行化所述输入数据、接收根据所述输入数据生成的结果数据、串行化所述结果数据、并且将所述串行化的结果数据传输到所述输入/输出管芯。所述输入/输出管芯串行化器/解串行化器模块接收所述结果数据、解串行化所述结果数据,并且将所述结果数据提供给所述扫描测试模块。错误检测可以通过冗余来执行。

Description

在具有SERDES功能的多管芯封装内部执行扫描数据传送
背景技术
在封装处理器或包括处理器的片上系统之后,通常执行测试以确保处理器的各种部件在限定的参数内操作。在正常操作中,除非通过处理器的其他部件,否则无法由外部装备访问处理器的一些部件。例如,考虑处理器的核心或核心复合体。除了通过处理器的各种输入/输出接口部件之外,核心可能没有到外部测试装备的直接连接。为了访问此类核心进行测试,一些处理器是用仅测试部件实现的。然而,此类仅测试部件增加了处理器的成本,同时也减少了用于典型操作的处理器部件的可利用的管芯面积。此外,在封装之后输入到处理器中用于测试核心的测试数据本身的大小持续增长。
附图说明
图1阐述了根据本公开的实施例的其中执行处理器核心的扫描测试的示例性处理器的框图。
图2阐述了根据本公开的实施例的用于执行处理器核心的扫描测试的示例系统的功能框图。
图3阐述了示出根据本公开的实施例的执行处理器核心的扫描测试的示例方法的流程图。
图4阐述了示出根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法的流程图。
图5阐述了示出根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法的流程图。
图6阐述了示出根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法的流程图。
图7阐述了根据本公开的实施例的用于执行具有错误检测的处理器核心的扫描测试的示例系统的功能框图。
具体实施方式
在本说明书中描述了用于执行处理器核心的扫描测试的示例方法、设备和产品。下面参考附图更详细地描述了执行处理器核心的扫描测试的各种实施例。以下示例中的处理器核心包括一个或多个核心(或作为同义词的核心复合体),一旦被封装,处理器外部的测试设备就通常无法访问所述一个或多个核心。处理器还包括一个输入/输出(I/O)管芯。I/O管芯是处理器的单片数据通信接口。也就是说,I/O管芯充当处理器和外部部件之间的通信接口。在计算机系统(诸如服务器)内的处理器的正常操作期间,I/O管芯提供:存储器接口,诸如DDR(双倍数据速率)接口;或总线接口,诸如PCI型(外围部件互连)接口。此类处理器中的I/O管芯通过一个或多个内部链路在点对点的基础上耦合到处理器内的处理器核心中的每个。将I/O管芯耦合到处理器核心的部分或全部链路是直接耦合(DC耦合)的。
在此类处理器中,执行处理器核心的扫描测试包括由处理器的输入/输出管芯的串行化器/解串行化器(‘SERDES’)模块从测试模块并行接收扫描测试输入数据。输入/输出(‘I/O’)管芯的SERDES模块串行化扫描测试输入数据。I/O管芯的SERDES模块将串行化的扫描测试输入数据传输到处理器的处理器核心。在用数据选通编码对传输进行编码之后,在上述DC耦合链路的子集上执行此类传输。
处理器核心的SERDES模块接收串行化的扫描测试输入数据、解串行化所述串行化的扫描测试输入数据,并且将解串行化的测试输入数据提供给处理器核心内的被测装置。被测装置利用输入数据执行测试,并且产生结果数据,所述结果数据被传递给处理器核心的SERDES模块。响应于接收到结果数据,处理器核心的SERDES模块串行化所述结果数据,并且将串行化的结果数据传输到I/O管芯。在用数据选通编码对传输进行编码之后,在上述DC耦合链路的另一个子集上执行此类传输。
I/O管芯的SERDES模块接收串行化的结果数据、解串行化所述串行化的结果数据,并且将解串行化的结果数据提供给测试模块。
通过多个链路,I/O管芯和核心的SERDES模块使得大的并行数据包能够在有限并且在一些情况下受限数量的链路上传输。此外,此类链路不是‘仅测试’链路,而是在测试阶段之外的处理器正常操作期间进行利用。数据选通编码和解码,连同链路的DC耦合特性,消除了在测试期间为时钟恢复目的在处理器内实现锁相环的需要。此类锁相环电路通常用处理器内的模拟部件来实现,与数字等效部件相比,所述模拟部件成本更高、管芯面积消耗更大并且功耗更高。
为了进一步说明,图1阐述了根据本公开的实施例的其中执行处理器核心的扫描测试的示例性处理器的框图。图1的示例包括处理器(102)。处理器(102)包括多个核心(104a、104b、104c、104d)。核心(104a、104b、104c、104d)中的每个耦合到I/O管芯(106)。核心通过多个DC耦合链路耦合到I/O管芯。除了通过I/O管芯(106)之外,没有一个核心能够与处理器(102)外部的部件进行数据通信。
图1的示例性处理器(102)中的I/O管芯(106)将核心(104)以及这里未示出的其他部件耦合到处理器外部的不同类型的部件,用于数据通信。在一些实施例中,I/O管芯(106)提供PCIe、DDR总线和其他类型的接口。
在图1的示例中,I/O管芯(106)包括用于每个核心(104)的SERDES模块(108a、108b、108c、108d)。如下文更详细地描述的,I/O管芯(106)的每个SERDES模块(108)包括发射器部件和接收部件。I/O管芯(106)的SERDES模块(108)中的每个通过链路耦合到包括在每个核心中的单独的SERDES模块(112a、112b、112c、112d)用于通信。
图1的示例中的处理器(102)耦合到测试模块(110),所述测试模块(110)为核心(104)提供扫描测试输入数据,以用于执行一个或多个不同的测试。此类数据的示例包括自动测试模式生成(‘ATPG’)数据。
在图1的示例中,测试模块(110)将扫描测试输入数据提供给处理器(102)的I/O管芯(106)。I/O管芯(106)的SERDES模块(108)中的任一个或多个以并行方式接收扫描测试输入数据。
接收扫描测试输入数据的SERDES模块(108)串行化扫描测试输入数据,并且将串行化的测试输入数据传输到SERDES模块(108)所耦合到的处理器核心(104)。更具体地,I/O管芯(106)的SERDES模块(108)将串行化的扫描测试输入数据提供给核心(104)的SERDES模块(112)。
核心(104)的SERDES模块(112)接收串行化的扫描测试输入数据、解串行化所述串行化的扫描测试输入数据,并且处理器核心(104)利用扫描测试输入数据来生成结果数据。核心(104)的SERDES模块(112)串行化所述生成的结果数据,并且将串行化的结果数据传输到I/O管芯(106)的耦合的SERDES模块(108)。
I/O管芯(106)的SERDES模块(108)接收串行化所述结果数据,对结果数据进行解串行化,并且将解串行化的结果数据提供给测试模块(110)。一旦测试完成,核心和I/O管芯的SERDES模块被禁用。然后,对于计算系统内的正常操作,处理器利用将I/O管芯耦合到用于携载测试数据的核心的相同链路。也就是说,用于执行扫描测试的链路不是‘仅测试’链路,而是代替地用于处理器的主要操作。
为了进一步说明,图2阐述了根据本公开的实施例的用于执行处理器核心的扫描测试的示例系统的功能框图。图2的系统包括处理器(102),所述处理器(102)通过外部链路(212)耦合到测试模块(110)。处理器(102)包括核心(104),所述核心(104)通过多个DC耦合链路(210)耦合到I/O管芯(106)。核心(104)包括SERDES模块(112),所述SERDES模块(112)又包括接收部件(202)和传输部件(204)。核心SERDES模块(112)的传输部件(204)通过DC耦合链路(210)的一个子集耦合到I/O管芯(106)的SERDES模块(108)的接收部件(208)。同样,核心SERDES模块(112)的接收部件(202)通过DC耦合链路(210)的另一个子集耦合到I/OSERDES模块(108)的传输部件(206)。
在图2的示例中,除了通过I/O管芯(106)之外,禁止由任何外部部件诸如测试模块(110)访问核心(104)。处理器(102)利用现有的DC耦合链路和I/O管芯(106)的外部链路来使测试模块(110)能够访问核心(104)用于测试,而不是实现一组仅测试的电路或逻辑。
在所述示例中,测试模块(110)将扫描测试输入数据以ATPG测试位模式的形式传输到I/O管芯(106)。I/O SERDES模块(108)的传输部件(206)串行化测试位模式、用数据选通编码对测试位模式进行编码,并且在成对的DC耦合链路(210a)上将测试位模式的串行化部分传输到核心管芯SERDES模块(112)的接收部件(202)。DC耦合链路(210a)中的每对包括携载串行传输的数据部分的链路和携载数据传输的选通部分的链路。在数据选通编码中,时钟被有效地编码到数据和选通信号中。此外,因为链路是DC耦合的,所以锁相环或其他类似电路对于SERDES模块的接收部件处的时钟恢复是不必要的。
核心SERDES模块(112)的接收部件(202)接收串行化的扫描测试输入数据、对数据和选通传输进行解码、解串行化所述数据,并且将解串行化的数据传递给核心(104)内的被测装置(214)。被测装置(214)利用解串行化的数据来生成测试结果。然后,测试结果被传递给核心SERDES模块(112)的传输部件(204)。传输部件(204)串行化所述结果数据、用数据选通编码对结果数据进行编码,并且在成对的DC耦合链路(210b)上将数据和选通信号传输到I/O SERDES模块(108)的接收部件(208)。接收部件(208)对接收到的数据和选通信号进行解码、解串行化所述结果数据,并且将结果数据传递给测试模块(110)。
为了进一步说明,图3阐述了示出根据本公开的实施例的执行处理器核心的扫描测试的示例方法的流程图。图3的方法包括由处理器(102)的输入/输出管芯(106)的串行化器/解串行化器模块(108)并行接收(302)扫描测试输入数据(308)。在一个示例中,接收此类输入数据包括将输入数据存储在一个或多个先进先出(‘FIFO’)缓冲器中。
图3的方法还包括由输入/输出管芯(106)的串行化器/解串行化器模块(106b)串行化(304)扫描测试输入数据(310)。在一些示例中,串行化(304)扫描测试输入数据是通过以高于并行数据接收速率的速率对测试数据的每个位进行计时来执行的。
图3的方法还包括由输入/输出管芯(106)的串行化器/解串行化器模块(108)将串行化的扫描测试输入数据(310)传输(306)到处理器(102)的处理器核心(104)。在图3的示例中,传输(306)串行化的扫描测试输入数据(310)还包括用数据选通编码来对串行化的扫描测试输入数据(310)进行编码。数据选通编码利用一对信号线,即,一个信号线携载‘数据’,而一个信号线携载‘选通’。在传输期间,‘数据’或‘选通’在一个时钟周期中改变逻辑值,但在同一时钟周期期间禁止两者同时改变。通常,当且仅当数据在两个数据位之间保持恒定时,‘数据’线才按原样传输数据,而‘选通’改变逻辑值状态。
为了进一步说明,图4阐述了根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法。图4的方法与图3的方法类似之处在于,图4的方法在包括处理器核心(104)、I/O管芯(106)和测试模块(110)的系统中执行。图4的方法也与图3的方法类似之处在于,图4的方法还包括:由处理器的输入/输出管芯(106)的串行化器/解串行化器模块(108)并行接收(302)扫描测试输入数据;由输入/输出管芯(106)的串行化器/解串行化器模块(108)串行化(304)扫描测试输入数据;以及由输入/输出管芯(106)的串行化器/解串行化器模块(108)将串行化的扫描测试输入数据(310)传输(306)到处理器(102)的处理器核心(104)。
然而,图4的方法与图3的方法不同之处在于,图4的方法包括由处理器核心(104)的串行化器/解串行化器模块(112)接收(402)串行化的扫描测试输入数据(310)。串行化器/解串行化器模块(112)通过在一个或多个FIFO缓冲器中缓冲接收到的数据来接收串行化的扫描测试输入数据(310)。
图4的方法还包括由处理器核心(104)的串行化器/解串行化器模块(112)解串行化(404)所述串行化的扫描测试输入数据(310)。核心模块(112)将解串行化的扫描测试输入数据(406)提供给被测装置(408),所述被测装置(408)基于输入数据(406)生成结果数据(410)。响应于接收到结果数据(410),核心SERDES模块(112)串行化(412)结果数据(410),并且将串行化的结果数据(416)传输到I/O管芯(106)。在图4的方法中,传输(414)串行化的结果数据(416)包括用数据选通编码对串行化的扫描测试输入数据进行编码。
为了进一步说明,图5阐述了根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法。图5的方法与图4的方法类似之处在于,图5的方法在包括处理器核心(104)、I/O管芯(106)和测试模块(110)的系统中执行。图5的方法与图4的方法的类似之处还在于,图5的方法还包括:接收(302)扫描测试输入数据;串行化(304)扫描测试输入数据;以及将串行化的扫描测试输入数据传输(306)到处理器核心(104)。图5的方法还包括接收(402)串行化的扫描测试输入数据;解串行化(404)所述串行化的扫描测试输入数据;串行化(412)所述结果数据;以及将串行化的结果数据传输(414)到I/O管芯(106)。
然而,图5的方法与图4的方法的不同之处在于,图5的方法包括:由输入/输出管芯(106)的串行化器/解串行化器模块(108)接收(502)串行化的结果数据(504);由输入/输出管芯(106)的串行化器/解串行化器模块(108)解串行化(506)串行化的结果数据;以及由输入/输出管芯(106)将解串行化的结果数据(508)提供(510)给测试模块(110)。
为了进一步说明,图6阐述了根据本公开的实施例的执行处理器核心的扫描测试的另一个示例方法。图6的方法与图5的方法类似之处在于,图6的方法在包括处理器核心(104)、I/O管芯(106)和测试模块(110)的系统中执行,并且还包括:
●接收(302)扫描测试输入数据;
●串行化(304)扫描测试输入数据;
●将串行化的扫描测试输入数据传输(306)到处理器核心104;
●接收(402)串行化的扫描测试输入数据;
●解串行化(404)所述串行化的扫描测试输入数据;
●串行化(412)所述结果数据;
●将串行化的结果数据传输(414)到I/O管芯106;
●接收(502)串行化的结果数据(504);
●解串行化(506)串行化的结果数据;以及
●将解串行化的结果数据(508)提供(510)给测试模块(110)。
然而,图6的方法与图5的方法的不同之处在于,在图6的方法中,由处理器核心(104)的SERDES模块(112)接收(402)串行化的扫描测试输入数据包括在不确定性窗口期满之前保持(606)扫描测试输入数据,并且由处理器核心(104)的SERDES模块(112)解串行化(404)所述串行化的扫描测试输入数据包括响应于不确定性窗口的期满而释放(608)保持的扫描测试输入数据。如这里利用的术语‘不确定性窗口’是指一个时间段(在一些情况下根据时钟周期表示),在所述时间段期间,测试数据结果的接收是不确定的。由于多种原因,测试结果不确定。从管芯到管芯,即使采用相同的架构,也存在时钟交叉不确定性、管芯到管芯数据和选通路由偏斜以及管芯内时钟偏斜。此类差异会导致进出处理器核心的不确定的信号传输。然而,这些差异的容差通常是已知的并且是可量化的。因此,信号符号不确定的时间既是已知的也是有限的。该时间在这里被称为不确定性窗口。为此,数据在符号不确定的时间段期间被保持,并且在该时间段之后被释放。此类保持和释放是通过使用翻转计数器在缓冲器中执行的,在达到构成不确定性窗口的时钟周期数之前所述翻转计数器在每个时钟周期上递增。一旦计数器复位,所保持的数据就从缓冲器释放。
同样在图6的方法中,由输入/输出管芯(106)的SERDES模块(108)接收(502)串行化的结果数据包括在不确定性窗口期满之前保持(602)结果数据。由I/O管芯(106)的SERDES模块(108)解串行化(506)图6的方法中的串行化的结果数据包括响应于不确定性窗口的期满而释放(604)保持的结果数据。尽管在图6的示例中示出为在串行域(在解串行化之前)中执行,但是在一些实施例中,在不确定性窗口期满之前的数据保持是在解串行化后的并行域中执行的。
为了进一步说明,图7阐述了根据本公开的实施例的用于执行具有错误检测的处理器核心的扫描测试的示例系统的功能框图。图7的示例系统类似于图2中阐述的示例。图7的示例系统与图2的示例系统的不同之处在于,图7的系统实现了错误检测。此类错误检测是通过在I/O管芯(106)和核心(104)之间使用SERDES连接的另外的、未使用的通道来执行。在图7中,核心SERDES模块(112)包括到I/O SERDES模块(108)的双通道SERDES连接。核心SERDES模块(112)的传输逻辑(204)包括两个传输块(204a、204b),每个传输块为核心SERDES模块(112)和I/O SERDES模块(108)之间的业务提供通道。在图7中,一个传输块(204a)将数据和选通信号以串行化输出数据的形式提供给I/O SERDES模块(108)的接收逻辑(208)。代替将数据(706)和选通脉冲(708)信号提供给单个接收块,第一通道的传输块(204a)耦合到接收逻辑(208)的两个通道的接收块(208a、208b)。第二通道接收块(208b)原本将不被使用。相反,第二通道接收块(208b)以及第一通道接收块(208a)接收数据和选通输出信号。通过这种方式,来自两个接收块(两个通道)的原本应匹配的数据被比较,并且两者之间的错误可以被检测到。
在一些实施例中,包括图7的示例,在第二个、原本未使用的SERDES线上提供数据和选通的副本以通过对两个副本进行比较来检测错误的相同概念也在输入数据上实现。例如,在图7中,I/O管芯(106)的传输逻辑(206)包括两个不同的传输块(每个通道一个)(206a、206b)。第一通道(206a)的传输块可以将从测试模块(110)接收到的输入测试数据的数据(702)和选通信号(704)传输到核心SERDES(112)的接收逻辑(202)的两个不同的接收块(每个SERDES通道一个)(202a、202b)。核心SERDES(112)或其他模块可以比较输入数据的两个副本,以确定是否检测到任何差异,并且由此检测到数据错误。
本领域技术人员将认识到,在测试期间,提供I/O管芯和处理器核心(或核心复合体,这里也称为核心)之间的通信的链路被重新用于测试目的,然后在测试完成后用于正常操作。此外,SERDES模块提供一种手段,通过所述手段,当有限数量的链路(少于携载全部并行数据所需的链路)可用时,非常大量的并行测试数据被输入到原本不能访问处理器外部的测试设备的核心中。SERDES模块还包括可合成的数字逻辑,其可以用寄存器传送级(RTL)设计抽象来表示。此类RTL以低成本的方式实现,利用了处理器管芯设计中的现有结构和部件。此外,实现此类数字逻辑的面积小于以类似方式操作的模拟部件的面积。此外,可合成的数字逻辑比模拟部件消耗更少的电力。在一些实施例中,在硬件描述语言中利用RTL来模拟扫描测试期间处理器的操作。
由于I/O管芯和核心之间的链路是DC耦合的,以及如上所描述的数据选通编码,因此不需要锁相环。消除了对PLL的需求还减小了成本、功耗和对处理器架构所需的修改。由于在符号不确定通过的时间段期间之前对结果的保持和释放,因此测试结果也是确定的。
示例性实施例主要在全功能测试系统的环境中描述。然而,本领域技术人员将认识到,本公开还可在计算机程序产品中实施,所述计算机程序产品设置在计算机可读存储介质上以与任何适当的数据处理系统一起使用。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁性介质、光学介质或其他适当的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘、用于光盘驱动器的光盘、磁带以及本领域技术人员会想到的其他介质。本领域技术人员将立即认识到,具有适当的编程手段的任何计算机系统将能够执行如在计算机程序产品中实施的方法的步骤。本领域技术人员还将认识到,尽管本说明书中描述的一些示例性实施例面向安装在计算机硬件上并且在其上执行的软件,然而,实现为固件或硬件的替代实施例也在本公开的范围内。
实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的一个(或多个)计算机可读存储介质,用于使处理器执行本公开的各方面。
计算机可读存储介质可以是能够保存和存储指令以供指令执行装置使用的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述项的任何适当的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下项:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码装置(诸如穿孔卡或其上具有记录的指令的凹槽中的凸起结构)、以及前述项的任何适当组合。如本文所使用的,计算机可读存储介质本身不应被解释为瞬态信号,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(诸如,穿过光纤电缆的光脉冲)、或通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储装置。所述网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发所述计算机可读程序指令以存储在相应计算/处理装置内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者是以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,诸如Smalltalk、C++等,以及常规的过程编程语言,诸如“C”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上并且部分在远程计算机上、或者完全在远程计算机或服务器上来执行。在后一种场景下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路来执行计算机可读程序指令,以便执行本公开的各方面。
本文参考根据本公开的一些实施例的方法、设备(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的手段。这些计算机可读程序指令还可以存储在计算机可读存储介质中,所述计算机可读程序指令可以指导计算机、可编程数据处理设备和/或其他装置以特定方式运行,使得其中存储有指令的计算机可读存储介质是包括实现流程图和/或框图块中指定的功能/动作的各方面的指令的制造品。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理设备或其他装置上,以使得在计算机、其他可编程设备或其他装置上执行一系列操作步骤,使得产生计算机实现的过程,使得在计算机、其他可编程设备或其他装置上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这个方面上,流程图或框图中的每个框可以表示模块、片段或指令(包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令)的部分。在一些替代实现方式中,框中指出的功能可以不按图中指出的顺序发生。例如,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行所述框,这取决于所涉及的功能。还应注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或者执行专用硬件和计算机指令的组合。

Claims (27)

1.一种执行处理器核心的扫描测试的方法,所述方法包括:
由处理器的输入/输出管芯的串行化器/解串行化器模块并行接收扫描测试输入数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块串行化所述扫描测试输入数据;以及
由所述输入/输出管芯的所述串行化器/解串行化器模块将所述串行化的扫描测试输入数据传输到所述处理器的处理器核心。
2.如权利要求1所述的方法,其中将所述串行化的扫描测试输入数据传输到所述处理器核心还包括用数据选通编码对所述串行化的扫描测试输入数据进行编码。
3.如权利要求1所述的方法,其还包括:
由所述处理器核心的串行化器/解串行化器模块接收所述串行化的扫描测试输入数据;
由所述处理器核心的所述串行化器/解串行化器模块解串行化所述串行化的扫描测试输入数据;
响应于接收到根据所述解串行化的扫描测试输入数据生成的结果数据,串行化所述结果数据;以及
由所述处理器核心的所述串行化器/解串行化器模块将所述串行化的结果数据传输到所述输入/输出管芯。
4.如权利要求3所述的方法,其还包括:
由所述输入/输出管芯的所述串行化器/解串行化器模块接收所述串行化的结果数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块解串行化所述串行化的结果数据;以及
由所述输入/输出管芯将所述解串行化的结果数据提供给测试模块。
5.如权利要求3所述的方法,其中将所述串行化的结果数据传输到所述输入/输出管芯还包括用数据选通编码来对所述串行化的扫描测试输入数据进行编码。
6.如权利要求4所述的方法,其中:
由所述处理器核心的串行化器/解串行化器模块接收所述串行化的扫描测试输入数据还包括在不确定性窗口期满之前保持所述扫描测试输入数据,所述不确定性窗口包括在串行化器/解串行化器模块之间传输的符号不确定的时间段;
由所述处理器核心的所述串行化器/解串行化器模块解串行化所述串行化的扫描测试输入数据还包括响应于所述不确定性窗口的期满而释放所述保持的扫描测试输入数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块接收所述串行化的结果数据还包括在所述不确定性窗口期满之前保持所述结果数据;以及
由所述输入/输出管芯的所述串行化器/解串行化器模块解串行化所述串行化的结果数据还包括响应于所述不确定性窗口的期满而释放所述保持的结果数据。
7.如权利要求3所述的方法,其中所述输入/输出核心的所述串行化器/解串行化器模块和所述处理器核心的所述串行化器/解串行化器模块包括至少两个通道,其中每个通道携载冗余传输,并且所述方法还包括通过比较所述通道的冗余传输来检测传输中的错误。
8.如权利要求1所述的方法,其中在所述输入/输出管芯和所述处理器核心之间携载传输的链路是直接耦合的。
9.如权利要求1所述的方法,其中所述输入输出管芯包括用于所述处理器的单片数据通信接口。
10.如权利要求1所述的方法,其中所述串行化器/解串行化器模块仅适用于测试。
11.如权利要求3所述的方法,其中所述串行化器/解串行化器模块包括可合成的数字逻辑。
12.如权利要求1所述的方法,其中执行扫描测试包括在将所述处理器封装之后,在将所述处理器安装在计算机系统中之前的时间执行所述扫描测试。
13.如权利要求1所述的方法,其中所述处理器还包括多个处理器核心,其中每个处理器核心独立地耦合到所述输入/输出核心,并且除了通过所述输入/输出管芯之外,禁止每个处理器核心进行所述处理器外部的数据通信。
14.一种用于执行处理器核心的扫描测试的处理器,所述处理器包括:
处理器核心;以及
输入/输出管芯,其中所述输入/输出管芯耦合到所述处理器核心,并且所述处理器被配置为执行以下步骤:
由所述输入/输出管芯的串行化器/解串行化器模块并行接收扫描测试输入数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块串行化所述扫描测试输入数据;以及
由所述输入/输出管芯的所述串行化器/解串行化器模块将所述串行化的扫描测试输入数据传输到所述处理器的处理器核心。
15.如权利要求14所述的处理器,其中将所述串行化的扫描测试输入数据传输到所述处理器核心还包括用数据选通编码对所述串行化的扫描测试输入数据进行编码。
16.如权利要求14所述的处理器,其中所述处理器还被配置为执行以下步骤:
由所述处理器核心的串行化器/解串行化器模块接收所述串行化的扫描测试输入数据;
由所述处理器核心的所述串行化器/解串行化器模块解串行化所述串行化的扫描测试输入数据;
响应于接收到根据所述解串行化的扫描测试输入数据生成的结果数据,串行化所述结果数据;以及
由所述处理器核心的所述串行化器/解串行化器模块将所述串行化的结果数据传输到所述输入/输出管芯。
17.如权利要求16所述的处理器,其中所述处理器还被配置为执行以下步骤:
由所述输入/输出管芯的所述串行化器/解串行化器模块接收所述串行化的结果数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块解串行化所述串行化的结果数据;以及
由所述输入/输出管芯将所述解串行化的结果数据提供给测试模块。
18.如权利要求16所述的处理器,其中将所述串行化的结果数据传输到所述输入/输出管芯还包括用数据选通编码来对所述串行化的扫描测试输入数据进行编码。
19.如权利要求17所述的处理器,其中:
由所述处理器核心的串行化器/解串行化器模块接收所述串行化的扫描测试输入数据还包括在不确定性窗口期满之前保持所述扫描测试输入数据,所述不确定性窗口包括在串行化器/解串行化器模块之间传输的符号不确定的时间段;
由所述处理器核心的所述串行化器/解串行化器模块解串行化所述串行化的扫描测试输入数据还包括响应于所述不确定性窗口的期满而释放所述保持的扫描测试输入数据;
由所述输入/输出管芯的所述串行化器/解串行化器模块接收所述串行化的结果数据还包括在所述不确定性窗口期满之前保持所述结果数据;以及
由所述输入/输出管芯的所述串行化器/解串行化器模块解串行化所述串行化的结果数据还包括响应于所述不确定性窗口的期满而释放所述保持的结果数据。
20.如权利要求14所述的处理器,其中在所述输入/输出管芯和所述处理器核心之间携载传输的链路是直接耦合的。
21.如权利要求14所述的处理器,其中所述输入输出管芯包括用于所述处理器的单片数据通信接口。
22.如权利要求14所述的处理器,其中所述串行化器/解串行化器模块仅适用于测试。
23.如权利要求16所述的处理器,其中所述串行化器/解串行化器模块包括可合成的数字逻辑。
24.如权利要求14所述的处理器,其中执行扫描测试包括在将所述处理器封装之后,在将所述处理器安装在计算机系统中之前的时间执行所述扫描测试。
25.如权利要求14所述的处理器,其中所述处理器还包括多个处理器核心,其中每个处理器核心独立地耦合到所述输入/输出核心,并且除了通过所述输入/输出管芯之外,禁止每个处理器核心进行所述处理器外部的数据通信。
26.一种用于执行处理器核心的扫描测试的系统,所述系统包括:
扫描测试模块;以及
处理器,其包括处理器核心和输入/输出管芯,所述输入/输出管芯耦合到所述处理器核心,其中:
所述扫描测试模块将扫描测试输入数据经由所述输入/输出管芯并行传输到所述处理器;
所述输入/输出管芯的串行化器/解串行化器模块:
接收所述扫描测试输入数据;
串行化所述扫描测试输入数据;以及
将所述串行化的扫描测试输入数据传输到所述处理器的所述处理器核心;
所述处理器核心的串行化器/解串行化器模块:
接收所述串行化的扫描测试输入数据;
解串行化所述串行化的扫描测试输入数据;
接收根据所述解串行化的扫描测试输入数据生成的结果数据;
串行化所述结果数据;以及
将所述串行化的结果数据传输到所述输入/输出管芯;以及
所述输入/输出管芯的所述串行化器/解串行化器模块:
接收所述串行化的结果数据;
解串行化所述串行化的结果数据;以及
将所述解串行化的结果数据提供给所述扫描测试模块。
27.如权利要求26所述的系统,其中:
所述输入/输出管芯的所述串行化器/解串行化器模块通过用数据选通编码对所述串行化的扫描测试输入数据进行编码,将所述串行化的扫描测试输入数据传输到所述处理器核心;
所述处理器核心的所述串行化器/解串行化器模块通过用数据选通编码对所述串行化的扫描测试输入数据进行编码,将所述串行化的结果数据传输到所述输入/输出管芯;
所述处理器核心的所述串行化器/解串行化器模块通过用数据选通解码对所述串行化的扫描测试输入数据进行解码来接收所述串行化的扫描测试输入数据;以及
所述输入/输出管芯的所述串行化器/解串行化器模块通过用数据选通解码对所述串行化的结果数据进行解码来接收所述串行化的结果数据。
CN202080038003.8A 2019-10-21 2020-10-16 在具有serdes功能的多管芯封装内部执行扫描数据传送 Pending CN113906393A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/658,514 2019-10-21
US16/658,514 US11181579B2 (en) 2019-10-21 2019-10-21 Performing scan data transfer inside multi-die package with SERDES functionality
PCT/US2020/055985 WO2021080866A1 (en) 2019-10-21 2020-10-16 Performing scan data transfer inside multi-die package with serdes functionality

Publications (1)

Publication Number Publication Date
CN113906393A true CN113906393A (zh) 2022-01-07

Family

ID=73288692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080038003.8A Pending CN113906393A (zh) 2019-10-21 2020-10-16 在具有serdes功能的多管芯封装内部执行扫描数据传送

Country Status (6)

Country Link
US (3) US11181579B2 (zh)
EP (1) EP4049050A1 (zh)
JP (1) JP2022551782A (zh)
KR (1) KR20220080729A (zh)
CN (1) CN113906393A (zh)
WO (1) WO2021080866A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220083914A (ko) * 2020-12-11 2022-06-21 삼성전자주식회사 내부 루프백 테스트를 수행하는 송수신기 및 그것의 동작 방법
CN114416447B (zh) * 2022-01-12 2022-12-06 中国科学院国家空间科学中心 适用于有效载荷高速数据采集与传输的地面测试系统
US20240019493A1 (en) * 2022-07-15 2024-01-18 Advanced Micro Devices, Inc. Cost-saving scheme for scan testing of 3d stack die

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343535B2 (en) * 2002-02-06 2008-03-11 Avago Technologies General Ip Dte Ltd Embedded testing capability for integrated serializer/deserializers
US7496818B1 (en) * 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US8103924B2 (en) 2008-01-29 2012-01-24 Globalfoundries Inc. Test access mechanism for multi-core processor or other integrated circuit
US8726112B2 (en) 2008-07-18 2014-05-13 Mentor Graphics Corporation Scan test application through high-speed serial input/outputs
WO2011059439A2 (en) 2009-11-12 2011-05-19 Mentor Graphics Corporation Scan test application through high-speed serial input/outputs
US8650524B1 (en) * 2012-11-09 2014-02-11 Cadence Design Systems, Inc. Method and apparatus for low-pin count testing of integrated circuits
TWI493206B (zh) 2013-07-30 2015-07-21 Ind Tech Res Inst 積體電路裝置及串列式壓縮掃描訊號產生裝置之測試存取埠狀態機的控制方法
US10545189B2 (en) * 2015-10-27 2020-01-28 Nvidia Corporation Granular dynamic test systems and methods
US20160349320A1 (en) * 2015-05-26 2016-12-01 Qualcomm Incorporated Remote bus wrapper for testing remote cores using automatic test pattern generation and other techniques
US10088525B2 (en) * 2016-02-11 2018-10-02 Texas Instruments Incorporated Non-interleaved scan operation for achieving higher scan throughput in presence of slower scan outputs
US10996267B2 (en) * 2019-01-23 2021-05-04 Qualcomm Incorporated Time interleaved scan system

Also Published As

Publication number Publication date
EP4049050A1 (en) 2022-08-31
US20210116503A1 (en) 2021-04-22
WO2021080866A1 (en) 2021-04-29
US11762017B2 (en) 2023-09-19
US20220082623A1 (en) 2022-03-17
US20240027525A1 (en) 2024-01-25
US11181579B2 (en) 2021-11-23
JP2022551782A (ja) 2022-12-14
KR20220080729A (ko) 2022-06-14

Similar Documents

Publication Publication Date Title
US11762017B2 (en) Performing scan data transfer inside multi-die package with SERDES functionality
US8386867B2 (en) Computer memory test structure
US7444558B2 (en) Programmable measurement mode for a serial point to point link
US6715010B2 (en) Bus emulation apparatus
US7992058B2 (en) Method and apparatus for loopback self testing
US7082481B2 (en) Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput
KR20090077015A (ko) 듀얼-모드 메모리 상호접속을 포함하는 메모리 제어기
US10461805B2 (en) Valid lane training
US10114790B2 (en) Port mirroring for peripheral component interconnect express devices
US20070115831A1 (en) Method and apparatus for meeting compliance for debugging and testing a multi-speed, point-to-point link
US7650540B2 (en) Detecting and differentiating SATA loopback modes
US7224638B1 (en) Reliability clock domain crossing
US11145340B2 (en) Data transmission code and interface
CN107533533B (zh) 集成电路之间的通信
Armbruster et al. The ATLAS muon to central trigger processor interface upgrade for the run 3 of the LHC
US8972806B2 (en) Self-test design for serializer / deserializer testing
CN107066419B (zh) 可扩展的自适应n×n通道数据通信系统
US8234530B2 (en) Serial interface device built-in self test
US7679404B2 (en) Missing clock pulse detector
US10210034B2 (en) Electronic device with recording functionality and method for recording thereof
JP4061294B2 (ja) 自己同期型擬似ランダム・ビット・シーケンス・チェッカ
CN108631808B (zh) 用于数字信号传输的装置和方法
US20100040122A1 (en) Simultaneous bi-directional data transfer
US11467620B1 (en) Architecture and methodology for tuning clock phases to minimize latency in a serial interface
CN107835012B (zh) 现场可编程门阵列及其模块间同步信号的传递方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination