具有并发输入的改进的JTAG寄存器的制作方法

文档序号:28492721发布日期:2022-01-15 03:10阅读:117来源:国知局
具有并发输入的改进的JTAG寄存器的制作方法
具有并发输入的改进的jtag寄存器
技术领域
1.本公开大体上涉及存储器装置,且更具体地说,涉及用于非易失性存储器管理的设备和方法。更具体地说,本公开涉及允许多核心操作的基于jtag的架构以及对非易失性存储器装置中的输入的改进管理。


背景技术:

2.非易失性快闪存储器当今是现代电子系统中的基本构建块中的一个,特别是对于在管理数据时需要高并行性的实时操作系统(rtos)。通常,非易失性快闪存储器的操作受包含嵌入式固件的内部控制器管理,此类控制器执行所需的写入/读取/擦除操作。
3.快闪存储器在速度、消耗、可更改性、非易失性和日益重要的系统可重配置性方面的性能已推动其集成在片上系统(soc)装置中。然而,存在用于soc中的若干非易失性技术,但编程方法需要更多的空间,且与过去相比,完全满足例如受监管市场的新法规的软件是复杂的。在其它情况下,简单的编程技术迫使产生具有已经开发的功能的更大的库,即使不使用这些库,这些库也会被下载到硬件中。此缺点正朝着寻找具有更多存储空间的方向推进,且难以将此类存储空间集成在soc中。
4.soc是集成计算机或其它电子系统的所有组件的半导体集成电路。这些组件通常包含中央处理单元(cpu)、soc控制器、存储器部分、输入/输出端口和次级存储组件,所有这些组件均处于单个半导体衬底上。取决于应用,soc可含有数字、模拟、混合信号和常用射频信号处理功能。由于上述功能集成在单个电子衬底上,因此与具有等效功能性的多芯片设计相比,soc装置可消耗少得多的功率且占用小得多的面积。soc装置现如今在移动计算中、嵌入式系统中和物联网(iot)中极常见。
5.当光刻节点低于28nm时,越来越难以管理嵌入在片上系统中的非易失性存储器部分(即eflash)。对soc中的板上存储器的需求增加正在触及物理限值,而在当前技术下,使用大小越来越接近所述物理限值的eflash组件不再方便。
6.因此,需要提供存储器组件的新架构,且对应地需要界定用于与soc通信的新接口,所述soc在第一存取中具有低初始等待时间且改进总体吞吐量时同时改进非易失性存储器部分的性能。
附图说明
7.图1展示根据本公开的实施例的耦合到非易失性存储器组件的主机装置(例如,片上系统)的示意图;
8.图2是根据本公开的存储器组件的示意图;
9.图3是根据本公开的一个实施例的图1的非易失性存储器组件的内部布局的示意图;
10.图3a展示包含根据本公开的布局配置的图2的非易失性存储器组件的存储器块的示意图;
11.图3b是用于本公开的存储器组件中的存储器页的地址寄存器群组的示意图;
12.图3c和3d展示针对本公开的存储器装置采用的行数据缓冲器和对应行地址缓冲器的示意性方案;
13.图4是根据本公开的通用存储器单元与包含经修改jtag单元的对应感测放大器之间的连接的示意图;
14.图5是根据本公开的已修改的jtag单元的示意图;
15.图6是使用根据第1149.1号ieee标准配置的边界扫描单元但包含图5的经修改jtag单元的标准结构架构的示意图;
16.图7是更详细地示意性地展示并入到本公开的边界扫描架构中的寄存器的组成的图;
17.图8是报告基于jtag协议的有限状态机的操作的框图;
18.图9是基于基于jtag协议的有限状态机的指令列表的示意图;
19.图10是示意性地展示图1的主机装置与本公开的边界扫描架构的寄存器之间的交互的框图。
具体实施方式
20.参考这些图,本文将公开涉及非易失性存储器装置1或组件和用于此类存储器装置的主机装置10的设备和方法。
21.图1中展示的主机装置10可为具有嵌入式存储器组件1的片上系统,或包含耦合到存储器装置的系统的更复杂的电子装置,如将从参考其它图作出的对本公开的其它实施例的描述中呈现。在任何情况下,片上系统10和存储器装置1在通过不同光刻工艺获得的相应裸片上实现。作为替代方案,系统10可为与片上系统通信的外部控制器,但出于本公开的目的,我们将主机装置或soc称为与存储器组件通信的实体。
22.举例来说,系统10可为能够将存储器用于信息的临时或持久性存储的多个电子装置中的一个。举例来说,主机装置可为计算装置、移动电话、平板电脑或自主车辆的中央处理单元。
23.根据本公开的实施例,存储器组件1的大小已得到改进。本公开的存储器组件为非易失性存储器装置1,所述非易失性存储器装置1已实现为具有专用于制造快闪存储器装置的特定光刻工艺的独立裸片,且可通过通信信道耦合到主机装置10或耦合到片上系统。
24.存储器组件1为独立结构,但其严格地与主机装置或与soc结构相关联。更具体地说,存储器装置1与soc结构相关联且链接到soc结构,所述soc结构与此类结构部分重叠,而soc结构的对应半导体区域已用于其它逻辑电路,且用于例如通过多个支柱或其它类似替代连接(例如凸块球)或使用与倒装芯片类似的技术为在结构上部分重叠的独立存储器装置1提供支撑。
25.最终配置将是面对面的互连soc/快闪阵列,其中感测放大器将在直接存储器存取配置中连接到soc。以此方式,有可能将所需互连的数目保持在相对较低的数目,特别是仅借助于此实施方案的实例,有可能保持在约600到650个衬垫的范围内。
26.存储器组件1构造为具有用于具有soc的通信信道的对应互连衬垫的单个独立裸片;然而,存储器组件可构造为在单个装置封装中互连的存储器裸片的堆叠,在此情况下,
提供无线裸片内通信。
27.更确切地说,此非易失性存储器组件1包含快闪存储器单元的阵列90和位于存储器阵列周围的电路系统。通过互连在电路布局中面朝彼此的多个相应衬垫250或引脚端子来获得soc结构10与存储器组件1之间的耦合,即使修改存储器组件的大小,所述电路布局也保持衬垫的对准。
28.在本公开的一个实施例中,存储器组件的衬垫250的布置已经在存储器组件1的表面上实现,实际上在阵列的顶部上实现。更确切地说,衬垫布置在阵列上方,使得当存储器组件1反转时,其衬垫面对主机或soc结构10的对应衬垫。图2的示意图未按比例表示衬垫250的定位和位置,而仅是指示性的。此外,仅说明减少数目的衬垫250。
29.即使更大大小的存储器组件也可被soc结构的衬垫支撑并与其互连,从而保持其互连衬垫的定位和位错。
30.最后,根据用户的需要在可根据可用技术而变化的值的范围内制造存储器装置1,例如仅借助于此实施方案的实例,从至少128兆位到512兆位或甚至更多,而对申请人的权利没有任何限制。更确切地说,所提出的外部架构允许超过允许集成更大存储器的当前eflash(即,嵌入式快闪技术)的限制,因为仍仅借助于此实施方案的实例,取决于存储器技术和技术节点,所述更大存储器可为512兆位和/或1千兆位和/或更大。
31.如果和与存储器装置1相关联的soc结构的大小相比,那么所述存储器装置1可具有不同的大小,此大小可较小或更大。参考先前所使用的术语“部分重叠”,我们希望存储器装置1部分或不完全覆盖soc结构的区域,或反之亦然。
32.更特定地参考图1的实例,将公开根据本公开的实施例的存储器组件1的主结构。
33.存储器组件1至少包含:i/o电路5、微定序器3、存储器单元阵列90、电压和电流参考产生器7、位于阵列外围的电荷泵2和解码电路系统8、感测放大器9和对应锁存器、命令用户接口,例如命令用户接口(cui)块4。
34.存储器单元阵列90包含非易失性快闪存储器单元。可成块擦除而不是一次一个字节地擦除所述单元。每一可擦除存储器块包括布置成行和列的矩阵的多个非易失性存储器单元。每一单元耦合到存取线和/或数据线。通过操控存取线和数据线上电压和时序来编程和擦除所述单元。
35.为了读取阵列90的存储器单元,提供包含优化的读取有限状态机的专用电路部分,所述优化的读取有限状态机用于确保高读取性能,例如:分支预测、提取/预提取、中断管理等。
36.在图3a中示意性地展示的本公开的一个实施例中,存储器阵列90构建为子阵列120的集合。每一子阵列120可在存储器装置100内独立地寻址。每一子阵列120含有多个存储器块。
37.以此方式,如果与已知解决方案相比具有较小的扇区,那么存取时间显著减少且存储器组件的整体吞吐量得到改进。初始等待时间的减少是在块级别处进行的,这是因为行和列线、与读取路径相关联的等待时间和外部通信已得到优化。
38.在此处公开的实施例中,使用对应于相关联的soc的核心的数目且因此对应于对应通信信道的数目的多个子阵列120来构造存储器阵列90。举例来说,提供至少四个存储器子阵列120,其中一个用于具有soc 10的对应核心的每一通信信道。
39.主机装置或片上系统10通常包含超过一个核心,且每一核心耦合到对应总线或信道以用于接收数据且将数据传送到存储器组件1。
40.因此,在本发明实施方案中,每一子阵列120可接入对应信道以与片上系统10的对应核心通信。此架构的优点在于其可伸缩性很强,其中扩大和/或减小最终装置的密度仅在镜像和/或增加每一子阵列的块的数目(即每个核心的可用密度)时转换。
41.在本公开的实施例中,每一存储器子阵列120的块的每一可独立寻址的位置寻址扩展页。一对扩展页将被定义为“超页”。
42.内部感测放大器9准备至少168个位(即,128个位加上安全数据,具体地说,地址和ecc位)的两个页,且当第一页准备好移位时,在内部对其执行与相同地址相关联的第二页的进一步读取操作。如果系统构造有例如128个位的,更确切地说,当包含安全数据时168个位的两个页,那么这允许准备在rtos应用程序中是典型的五个到八个双字,所述rtos应用程序允许感测放大器执行进一步的内部读取操作以准备第二半字节或128个位的群组。
43.作为非限制性实例,此扩展页包括字串,所述字串包含用于与soc装置10进行i/o数据交换的至少一百二十八(128)个位的第一群组加上至少二十四(24)个地址位的第二群组和至少十六(16)个ecc位的最终或第三群组。二十四(24)个地址位足以寻址多达2千兆位的可用存储器空间。
44.根据本公开,根据存储器阵列的大小,感测放大器sa的输出一次准备双扩展页,即超页,其包括由上述数据位、地址位和ecc位的三个群组的双重组合给出的多个位。
45.在此处公开的特定但非限制性的实例中,每一扩展页包含至少168个位,其通过上述128+24+16的数据、地址和ecc位的三个群组的组合而获得,且每一超页由一对扩展页(即,168个位
×
2的群组)形成。
46.仅为了得到非限制性数值实例,存储器块的每一行包含十六个扩展页。因此,所得行包含来自可独立寻址的且各自包含168个位的十六个扩展页的组合的2688个位,或者换句话说,包含八个超页的组合。
47.在本公开的实施例中,通用子阵列120的输出是组合以下序列而形成的:数据单元加上地址单元加上ecc单元。在此非限制性实例中,位的总量将涉及每个信道168个衬垫,如图3b中所展示。
48.数据单元+地址单元+ecc单元的组合字串允许根据标准要求实施总线的整个安全覆盖,因为ecc覆盖整个总线通信(数据单元+地址单元),而地址单元的存在提供了数据恰好来自控制器的寻址位置的置信度。
49.每一子阵列120的感测放大器sa与经修改的jtag单元140的扫描链连接,从而将一个子阵列120的所有输出连接在一起。此外,与子阵列120相关联的经修改的jtag单元140可互连以形成用于快速检查衬垫互连的完整性的唯一链。
50.由于本公开的存储器架构,有可能从用于从存储器子阵列120检索数据和地址的并行模式传递到用于检查存储器组件1与相关联的soc装置10之间的互连的串行模式。此外,soc有权读取一次
‘1’
和一次
‘0’
以执行测试且还可以分析存储器结果,从而使用扫描链扫描出数据。
51.另外应注意,每一子阵列120包含连接到数据缓冲寄存器的地址寄存器,类似于dram存储器装置中所使用的架构,即作为3dxp中的ddrx或作为lpddrx。
52.作为操作,将错误校正保留给soc 10;将额外位提供到控制器以存储与页相关联的任何可能的ecc校验子。ecc单元允许soc控制器理解在数据加地址内容中是否发生损坏。
53.为了写入和擦除阵列90的存储器单元,为其提供专用逻辑电路部分,所述专用逻辑电路部分包含简化的精简指令集计算机(risc)控制器或修改有限状态机或为用于处置编程和擦除算法的逻辑电路。
54.在本公开的一个实施例中,存储器组件1实施直接存储器存取类型的存储器以替代已知soc装置的嵌入式存储器阵列。
55.此外,采用jtag接口210作为常规用户接口以修改阵列且将读取地址提供到存储器块。jtag接口210还用于存储器组件1的测试,从而允许测试工具的再使用。因此,存储器组件1还包括jtag逻辑。
56.存储器组件1使用高速互连衬垫250和逻辑电路部分来允许与soc结构10的互连。
57.最终配置将是面对面的互连soc/快闪阵列,其中存储器组件1的感测放大器9将在直接存储器存取配置中连接到soc。
58.直接存储器存取允许减小soc在读取数据时可经历的最终等待时间。此外,最终等待时间还因块形状因数、块之间的感测放大器分布、感测放大器中的比较阈值的选择和优化路径而减少。
59.互连件还包含用于测试和其它目的的jtag接口210和控制引脚。soc装置10的核心可通过使用一些内部衬垫270而接入jtag接口210。此类衬垫是高速的且具有支持最大频率的能力。更确切地说,高速衬垫250相对于soc在快速读取路径中使用,而低速路径专用于测试阶段。jtag单元是快速路径的部分,但jtag接口使用较慢的路径。
60.根据本公开,存储器组件1配备有快闪阵列90的控制器230(下文称为快闪阵列控制器)。快闪阵列控制器230具有允许与soc控制器一起使用一些快闪阵列资源而不损害存储在其中的某些信息(例如,算法,快闪阵列电压,电流和更一般的处理信息)的安全性且保证最终客户返回管理的架构。此通过采用特殊结构来实现,其中用户可在第一区域中写入他自己的固件且可在第二不同区域中与控制器内部固件交互。
61.此外,提供用于测试和用于管理存储器阵列读取寄存器的边界扫描架构260。
62.本公开的一个实施例涉及一种设备,其包括:
[0063]-主机装置或片上系统:
[0064]-存储器组件,其具有独立结构且包含组织成具有相关联的解码和感测电路系统的子阵列的至少一个存储器单元阵列;
[0065]-所述至少一个存储器单元阵列中的jtag接口,其包含边界扫描架构;
[0066]-所述jtag接口的所述边界扫描架构中的指令寄存器,其包含指示测试数据输入(tdi)信号的存在的至少一对位。
[0067]
此外,还与所述指令寄存器并行地加载至少一个数据寄存器。
[0068]
jtag接口是控制边界扫描架构的操作步骤且包含在单个时钟周期中加载的所述指令寄存器的有限状态机fsm。
[0069]
本公开的内容参考包含多个子阵列220和每一子阵列中的多个存储器块的存储器阵列。此外,多个扩展页可在每一块中独立地寻址,且每一扩展页包含数据、地址和ecc位的群组。包含所述数据、地址和ecc位的群组的扩展页包括至少168个位。
[0070]
更确切地说,包括存储器阵列的每一位置的存储器块的架构可定义为扩展页。扩展页包含soc所需的128位i/o和涉及24位寻址的16位的ecc(多达2g位的可用空间)。
[0071]
换句话说,在每一子阵列220中用于用soc装置填充通信信道的128个位的原子页已在本发明实施方案中被扩大以含有所存储的地址和ecc。
[0072]
每一存储器块含有至少256个行,且每一行包含十六个上述大小的扩展页。每一扩展页包含至少168个位作为数据、寻址和ecc位的组合。因此,存储器阵列的每一行可各自含有多达十六个32个位的双字,加上每页的地址和ecc位。如已经指示,包含2688个位的所得行来自可独立寻址的且各自包含168个位的十六个扩展页的组合,且因此包含八个超页的组合。
[0073]
仅为了得到数值,扩展页由128+16+24=168个位形成,且每一行十六个扩展页包括168*16=2688个位。
[0074]
因此,存储器块的每一行包含至少十六个页,所述页包括存储器字加上对应地址位和对应ecc位。显然,可选择另一大小,且所报告的值仅出于非限制性实例的说明目的。归因于经修改和优化的jtag接口210,块的结果由主机装置或soc 10直接驱动,而无需使用已知解决方案的高功率输出缓冲器且优化路径。
[0075]
再次参考图2,每个子阵列220的感测放大器sa的输出由读取接口240的内部电路锁存。存储器结构可扩展为允许多页读取,同时移出已经读取的页。
[0076]
感测放大器sa直接连接到稍后将公开的经修改的jtag单元,以便在单个电路部分中集成jtag结构和感测放大器。这允许在将存储器阵列的输出传播到soc时尽可能地减少延迟。
[0077]
如先前所述,内部感测放大器9准备至少128个位的两个页,且当第一页准备好移位时,在内部对其执行与相同地址相关联的第二页的进一步读取操作。如果系统构造有128个位的两个页,那么这允许准备在rtos应用程序中是典型的每个32个位的五个到八个双字,所述rtos应用程序允许感测放大器执行进一步的内部读取操作以准备第二半字节或128个位的群组。这是选择2
×
128个位加上对应地址和ecc位的扩展页的原因。使用将在感测放大器电平下读取的内容传送到主机装置或soc装置10的额外启用信号(即,内部时钟信号或adv信号),将四个双字的此第二部分传送到快闪阵列90的输出。信号名称是load_data[0,1]
……
,当使用扩展页时不需要递增地址。更具体地说,load_data[1:0]链接到指示soc需要数据的哪一部分的地址。
[0078]
因此,现在参考图3c的实例,如果soc 10在不考虑地址和ecc位的情况下一次需要多达256个位,那么将复制数据缓冲器以便能够移位,假设使用子阵列0的地址0:
[0079]
第一组位的第一遍次:数据0_0_h[127:0]+add位+ecc
[0080]
第二组位的第二遍次:数据0_0_l[127:0]+add位+ecc。
[0081]
使用load_data[1:0]作为高页或低页的选择器来进行此选择。
[0082]
如稍后将解释,使用jtag单元来进行地址缓冲器。
[0083]
根据关于jtag的标准ieee 1149和1532,协议ieee1532用作扩展命令集以在每一子阵列中操作。
[0084]
对极低初始等待时间和高吞吐量的需要推动以下用于每个子阵列寻址的方案的产生。图3d展示类似于dram的结构中的行地址缓冲器和对应行数据缓冲器,但此处我们已
采用超页地址和对应数据,即168
×
2。
[0085]
用以寻址所实施的存储器的指令集可具有两种类型:
[0086]
全局地址加载:在此情况下,所有子阵列将使用命令在多个步骤中接收地址,即load_global_address_0、load_global_address_1等。
[0087]
本地地址加载:在此情况下,仅所选择的子阵列中的寻址寄存器将接收新地址,即local_address_0_0、local_address_0_1、local_global_address_1_3等。
[0088]
每一子阵列将含有一组4
×
数据寄存器,例如各自对应于地址寄存器的2
×
(4
×
(数据+地址+ecc寄存器))。4
×
数据寄存器含有超页,也就是说:data_h+data_l,其中data_h和data_l分别是数据的较高和较低部分。换句话说,例如,其是例如从一起形成所谓的超页的第一扩展页和第二扩展页依序加载的数据部分。
[0089]
当使用适当的jtag序列正确地锁存全局和本地地址时,地址寄存器与测试数据输入(tdi)连接,即:在ir中加载全局地址命令,接着加载子阵列地址,接着作为指令加载本地地址命令,加载待读取的扩展页的地址,接着加载读取命令,随后运行/测试空闲以从选定位置执行读取。
[0090]
根据本公开,寄存器的加载逐个发生,取决于寄存器的种类:指令寄存器(一次4个位)、地址(8个位)、数据(128个位)等,灵活的tdi增加可容许位数目的大小,直到使用整个数据线宽度。换句话说,灵活的tdi是依赖于寄存器的,仅有的约束在ir中,其中jtag标准指示用以加载指令的最小的两个时钟周期。相反,tdo始终是单个位。
[0091]
global_address_loadx命令用于同时加载对应寄存器中的八个位的半字节:
[0092]
指令寄存器中的全局_地址_load0产生addr0_0的加载。此命令例如可寻址子阵列0;类似地,当jtag接口的有限状态机处于shift_dr状态时,使用三个tck周期来选择对应子阵列地址寄存器、addr1_0、addr2_0和addr3_0也会发生这种情况。
[0093]
当有限状态机处于移位_dr状态时,指令寄存器中的本地_地址_load0_0使用三个tck周期产生addr0_0的加载。作为实例,此命令寻址选定子阵列的寄存器0。这意味着当到达shiftdr时,tdi连接到此移位寄存器的输入且tdo连接到输出,如果使用灵活的tdi,那么我们仅需要三个时钟周期tck来使整个地址位于选定地址寄存器内,否则我们将需要24个时钟周期tck。
[0094]
这些指令(global_address_load0、global_address_load1、global_address_load2、global_address_load3)允许预加载在快闪阵列中实施的所有信道的地址。实施这四个指令以选择四个子阵列中的一个。在具有八个核心的可能实施方案中,我们将需要八个命令,每一核心一个命令,或者使用一个命令和子阵列地址来选择核心中的一个的方法。因此,上述命令的引入准许优化soc结构10与存储器组件1之间的通信,从而增强到控制器的传送性能。
[0095]
指令(local_address_load0_0、
……
、local_address3_3)允许使用单个核心/信道,从而避免控制器在只有一个核心正在工作时管理整个核心集合的需要。这些指令用于选择选定子阵列的地址寄存器中的一个。
[0096]
每一子阵列220的每一感测放大器9的输出处的jtag单元的扫描链连接在一起以形成唯一的移位寄存器以适当地测试上述互连,如稍后将更详细地公开。
[0097]
此架构的可伸缩性很强,且扩大和/或减小仅在以可伸缩性很强的方式镜像和/或
增加每一子阵列220的块的数目时转换的最终装置的密度。
[0098]
图3展示本公开的非易失性存储器组件1的主要组件的示意图。
[0099]
如我们先前所见,每一子阵列220以直接存储器存取方式耦合到soc装置。jtag tap对于每个快闪阵列是唯一的,且是作为装置的用户和测试模式接口的jtag接口210的部分。当快速输出与soc一起使用时,经修改的jtag单元用于减少用于soc活动的路径。
[0100]
jtag接口210接收标准jtag信号作为输入:trst、tck、tdi以及来自128个位的存储器页的数据。
[0101]
根据本公开的实施例,将扩展的tdi用作灵活的tdi。灵活性归因于以下事实:作为tdi工作的并行位的数目取决于所选择的寄存器,例如用于指令寄存器的四条线、用于地址寄存器的八条线和用于数据寄存器的128条线等。
[0102]
因此,信号tdi来自jtag协议,所述jtag协议对用于填充寄存器的信号使用tdi作为名称,但本公开使用扩展的tdi,因为普通jtag接口的公共输入信号已扩展为还包含用于对应信号的另外的输入/输出衬垫:t_busy、t_analog、t_testrun。
[0103]
加载jtag的寄存器产生作为输出的数据,地址和控制信号,其被传送到内部快闪控制器230以对子阵列120的选定区域执行修改操作。更确切地说,地址解码器320驱动由电荷泵的输出驱动的行和列的选择。当需要对子阵列的选定区域执行各种操作,即编程、读取、擦除时,电荷泵将提供适当的电压。
[0104]
电荷泵360允许解码器的活动,所述电荷泵360构造成保密电压和时序以管理阵列;这些特征由快闪控制器230的固件处置,且泵从快闪控制器接收目标电压。
[0105]
此解码器320寻址所选择的存储器块。地址解码器320连接到阵列以选择适当的数据线,即用于每一超页的行和列。所述读取、修改和任何其它操作使用地址解码器来正确地寻址存储器阵列中的字节。
[0106]
存储器块连接到感测放大器,且读取接口240的感测放大器使用经修改的jtag单元连接到soc装置10。快闪阵列块与soc装置10之间的通信信道由控制和状态总线350表示。
[0107]
读取接口360的输出由先前已公开的用于每一子阵列220的168个位的序列表示。
[0108]
此机制的实施方案是在所公开的装置上执行优化活动的组件中的一个,且对高吞吐量具有影响,从而确保存储器阵列的读取操作的优化。
[0109]
图4展示包含耦合到感测放大器sa的至少一个存储器单元mc的存储器子阵列的通用列的示意图。显然,所述列具有多个单元,如mc,且此图展示从存储单元到核心输入的通用完整路径。
[0110]
存储器子阵列的感测放大器sa直接连接到经修改的jtag单元500,此稍后将参考图5加以公开,以便在单个电路部分中集成jtag结构和感测放大器。这允许在将存储器阵列的输出传播到soc时尽可能地减少延迟。
[0111]
每一子阵列220的感测放大器sa以图4中所展示的方式耦合到经修改的jtag单元500,即使未展示其它较不重要的电路。
[0112]
pin:来自感测放大器的输出(或来自感测放大器下游的输出缓冲器)
[0113]
pout:去往soc对应的数据i/o
[0114]
sin:是连接到先前经修改的jtag单元的sout的串行in输入
[0115]
sout:是连接到下一jtag单元的sin的串行输出。
[0116]
使用串行输入和输出由串行互连的jtag单元500形成的扫描链具有一些优点:
[0117]-能够测试soc与直接存储器存取(dma)存储器之间的成功互连;
[0118]-能够实施感测放大器的数字测试,因为单元可充当将数据存储在阵列内的程序加载;
[0119]-能够充当第二级的锁存器。
[0120]
感测放大器sa耦合到存储器单元的列,作为当从存储器阵列读取数据时使用的读取电路系统的部分。一般来说,在一对时钟脉冲中读取168加168个位的扩展页作为数据、寻址和ecc位的组合。
[0121]
众所周知,感测放大器的作用是感测来自阵列行的低功率信号。表示存储在存储器单元mc中的逻辑数据位(1或0,取决于惯例)的低电压值被放大到可辨识的逻辑电平,因此数据可由存储器外部的逻辑电路部分正确地解释。
[0122]
在此处公开的实例中,每一感测放大器sa的输出耦合到经修改的jtag单元500,以便集成jtag结构和感测放大器。
[0123]
由于本公开的存储器架构,有可能从用于从存储器子阵列220检索数据和地址的并行模式传递到用于检查存储器组件1与相关联的主机装置10之间的互连的串行模式,从而进一步分析存储器结果,使用由经修改的jtag调用形成的扫描链来扫出数据。
[0124]
从并行到串行模式的转换由jtag接口210管理。然而,这些双模式操作的实施方案被下文所公开的经修改的jtag单元500的特定结构所允许。
[0125]
参考图5的示意性实例,其展示根据本公开修改的jtag单元500。
[0126]
如图5中所展示,jtag单元500可被视为具有两个输入端子pin和sin以及两个输出端子pout和sout的功能元件。输入端子pin是并行输入,而输入端子sin是串行输入。类似地,输出端子pout是并行输出,而输出端子sout是串行输出。
[0127]
使用由经修改的jtag单元形成的扫描链将输出256个位,因为第一读取阶段完成,而第二读取阶段在后台准备。当包含安全数据时,经修改的jtag单元将输出256个位的数据、32个位的地址单元和48个位的ecc单元。
[0128]
通过使用fsm和tap控制器的“捕获”状态以及关于所捕获内容的移位命令,可执行测试过程以检查存储器组件1与相关联的片上系统10之间不存在故障连接。由于并行输入和输出,相同jtag单元用作数据缓冲器以用于通过感测放大器sa完成读取阶段。
[0129]
jtag单元500包括边界扫描基本单元580,所述边界扫描基本单元580包含一对锁存器501和502以及一对多路复用器551和552。第一输入多路复用器551和第二输出多路复用器552。
[0130]
边界扫描基本单元580由图5中的虚线框指示,并且是双输入单元,其中串行输入对应于sin且并行输入对应于pin,也是双输出单元,其中串行输出对应于sout且并行输出对应于pout。
[0131]
第一多路复用器551在第一输入“0”上从第一并行输入端子pin接收并行输入信号pin,且在第二输入“1”上从第一串行输入端子sin接收串行输入信号sin。
[0132]
此第一多路复用器551由控制信号shiftdr驱动且具有输出mo1。单元500具有对应于第二多路复用器552的输出且对应于并行输出pout的输出mo2。
[0133]
图8展示报告基于jtag协议的有限状态机的操作的框图。
[0134]
此输出mo1连接到在第二输入端子上接收时钟信号clockdr的第一锁存器或触发器501的第一输入。
[0135]
第一锁存器501链式连接到第二锁存器502,其中第一锁存器501的第一输出连接到第二锁存器502的第一输入。
[0136]
重要的是要注意,第一锁存器501的输出也是整个jtag单元500的串行输出sout。
[0137]
第二锁存器502的第二输入端子接收信号updatedr。
[0138]
第二锁存器502具有连接到第二多路复用器552的输入(具体是其第二输入)的输出。
[0139]
此第二多路复用器552由模式控制信号控制,所述模式控制信号允许将整个jtag单元500从串行模式切换到并行模式,且反之亦然。
[0140]
在本公开的一个实施例中,jtag单元500进一步包含设置在并行输入pin与第二多路复用器552之间的另一对锁存器521和522。换句话说,jtag单元500包含边界扫描单元580和至少另外的锁存器521和522。此锁存器521和522专用于直接读取(即,第一168个位)和影子读取(即,2
×
168页的第二部分)。
[0141]
下文中我们将把这些另外的锁存器称为第三锁存器521和第四锁存器522。在其它实施例中,可使用更长的锁存器链,且因此超页的大小(在此实例中为2
×
168个位)取决于此路径中的锁存器或触发器的深度。
[0142]
更具体地说,第三锁存器521和第四锁存器522以小型管线配置连接,其中第三锁存器521在第一输入上从第一并行输入端子pin接收并行输入信号pin,且在第二输入上接收对应于第一数据加载的信号data_load[0]。
[0143]
第四锁存器522在第一输入上接收第三锁存器521的输出,且在第二输入上接收对应于后续数据加载的信号data_load[1]。
[0144]
第四锁存器522的输出连接到第二多路复用器552的第一输入“0”,所述第二多路复用器552在其输出端子mo2上产生用于并行输出端子pout的输出信号。
[0145]
如果与常规的jtag单元相比,那么本公开的jtag单元500可被视为经修改jtag单元,因为除了存在边界扫描单元580之外,还存在两个额外的锁存器,即第三和第四锁存器521和522。
[0146]
现在,我们必须设想jtag单元500耦合到存储器子阵列220的每一感测放大器sa的输出。通常,存储器阵列为存储器单元的每一列提供感测放大器,如图4中所展示。
[0147]
在本公开的实施例中,耦合到存储器子阵列的感测放大器的所有jtag单元500将被视为用于待读取页的数据缓冲器;在本发明实施方案中,此类页包含至少一百六十八(168)个位,以用于从四个子阵列220一次读取组合存储器页。
[0148]
然而,如先前所报告,存储器组件与soc结构之间的通信信道一次可能需要多达2
×
168个位(即,两个组合的存储器字),且jtag单元500已修改为仅复制内部锁存器以能够将待读取的数据的128个位的第一或更高部分与待读取的数据的第二或更低部分移位。显然,在此竞赛中,“更高”意味着之前加载的数据部分,而“更低”意味着之后加载的数据部分。
[0149]
本领域的技术人员将理解,在需要改进待通过通信信道传送到soc结构的位数目的情况下,可扩增经修改的jtag单元500的内部锁存器的数目。举例来说,可根据控制器存
储器装置的特定实施方案所需的页的大小来扩展上述结构。
[0150]
仅为了解释数据在数据缓冲器中传送的方式,我们必须设想当数据加载到两个锁存器521或522中的一个时,另一个锁存器处于待机状态,但已准备好接收后续数据部分。
[0151]
因此,包含168个位的第一区段被传送到soc结构以用于第一数据加工,而读取阶段不停止,因为128个位的另一部分准备在后续时钟信号处被加载到锁存器中。
[0152]
每一数据缓冲器含有128个经修改的jtag单元500,且公共data_load[1:0]是经产生以允许捕获全部256个位的信号,也就是说:根据所提出的实施方案的八个双字dw(用于每一子阵列的八个双字)。更具体地说,具有适当逻辑的公共data_load[1:0]信号可用作来自soc的读取信号,以接收包含安全数据的全部2
×
168个位。
[0153]
在soc仅提供信号或命令以提供超页的第二部分而内部读取由快闪阵列中的读取有限状态机使用168个位并行性来处置的意义上,对信号产生进行内部控制。
[0154]
在此存储器架构中,每一缓冲器可含有整个超页,从而使感测放大器空闲以在另一存储器位置中读取。
[0155]
经修改的jtag单元500的存在作为感测放大器的输出特别重要,因为允许:
[0156]
a.使用边界扫描作为检查soc 10与快闪阵列组件1之间的互连的方法;
[0157]
b.实施直接连接感测放大器与控制器的直接存储器存取;
[0158]
c.由感测放大器准备第二256位宽的页加上地址加上ecc且靠近所述页写入。
[0159]
还可采用根据ieee 1149标准但包含经修改的jtag单元500的边界扫描测试架构,从而获得类似于图6的示意图中所展示的边界扫描测试架构的新的和独特的边界扫描测试架构。对于此测试,仅需要一个输出驱动。此使用tck信号和存储在单元中的数据来完成。如先前所报告,扫描链测试要求soc 10测试扫描链的输出。
[0160]
如在此特定技术领域中已知,边界扫描是旨在解决许多测试问题的一系列测试方法:从芯片级到系统级,从逻辑核心到核心之间的互连,以及从数字电路到模拟或混合模式电路。
[0161]
边界扫描测试架构600提供一种在不使用物理测试探针的情况下测试板上的集成电路1和10之间的互连的方式。其将包含多路复用器和锁存器的边界扫描单元500添加到装置上的每一引脚或衬垫。
[0162]
换句话说,类似于存储器组件1或主机装置10的复杂半导体装置的每一主要输入信号和主要输出信号补充有称为边界扫描单元的多用途存储器元件,它们一起在装置的边界周围形成串行移位寄存器650。
[0163]
根据被称为联合测试行动小组(jtag)的国际工作组的结果,这些边界扫描单元已被引入作为将测试应用于个别半导体装置的手段。
[0164]
根据本公开,边界扫描单元500还用于测试一起工作的集成电路(例如片上系统10与相关联的存储器组件1)之间的互连,就像本公开的情况。
[0165]
边界扫描单元的集合配置到并行输入或并行输出移位寄存器中,且边界扫描路径独立于主机装置的功能。所有需要的数字逻辑包含在边界扫描寄存器内;然而,快闪控制器的内部jtag fsm通过由jtag逻辑驱动的jtag协议与单元交互:即通过shiftdr、shiftir、updatedr等。
[0166]
为了非常简要地概括边界扫描单元的功能,可以说每一单元500构造成用于在其
并行输入pi上捕获数据;将数据更新到其并行输出po上;将数据从其串行输出so串行扫描到其邻近的串行输入si。此外,在pi传递到po的意义上,每一单元表现得较明显。
[0167]
图6展示使用根据ieee标准第1149.1号配置的边界扫描单元的标准结构架构的示意图。然而,根据本公开,在架构600中使用的边界扫描单元是先前所公开的经修改的jtag单元500。
[0168]
jtag接口210可被视为添加到快闪阵列的特殊接口,因为根据本公开,已添加两个或更多个引脚,从而允许此jtag接口210并行处置jtag寄存器。换句话说,所添加的引脚并不扩展jtag功能性,而是提供将并行输入提供到串行jtag寄存器以优化性能的灵活的tdi。
[0169]
连接器引脚是:tdi(测试数据输入);tdo(测试数据输出);tck(测试时钟);tms(测试模式选择)和任选的trst(测试复位)。
[0170]
取决于芯片,trst引脚是对测试逻辑的任选的低电平有效复位,通常是异步的,但有时是同步的。如果引脚不可用,那么可通过使用例如采样五次的tms同步地切换到复位状态来复位测试逻辑,一次使fsm tap处于测试逻辑复位状态。应注意,复位测试逻辑不一定意味着复位任何其它内容。通常存在一些处理器特定的jtag操作,其可复位被调试的芯片的全部或部分。
[0171]
由于仅一条数据线可用,因此协议是串行的;然而,已经提供了灵活的tdi,这将数据线的可用性修改为并行协议。时钟输入位于tck引脚处。在每一tck上升时钟沿处,将一位数据从tdi传入且传出到tdo。可加载不同指令。典型ic的指令可读取芯片id、采样输入引脚、驱动(或浮动)输出引脚、操控芯片功能或旁路(管线tdi到tdo以在逻辑上缩短多个芯片的链)。
[0172]
如同任何时钟信号,呈现给tdi的数据必须在相关(此处是上升)时钟沿之前的某个芯片特定的设置时间和之后的保持时间内有效。tdo数据在tck的下降沿之后的某个芯片特定的时间内有效。
[0173]
图6展示一组四个专用测试引脚
‑‑
测试数据输入(tdi)、测试模式选择(tms)、测试时钟(tck)、测试数据输出(tdo)
‑‑
和一个任选的测试引脚测试复位(trst)。
[0174]
这些引脚统称为测试存取端口(tap)。然而,架构600包含称为tap控制器670的有限状态机,其接收三个信号:tck、tms和trst作为输入。tap控制器670是控制边界扫描架构600的操作的每一步骤的16状态有限状态机fsm。待由边界扫描架构600执行的每一指令存储在指令寄存器620中。
[0175]
图6展示装置主要输入和主要输出引脚上的多个边界扫描单元500。单元500内部连接以形成串行边界扫描寄存器650。换句话说,经修改的jtag单元500用作边界扫描架构600的构建块。
[0176]
数据还可以串行模式围绕边界扫描移位寄存器650移位,从称为“测试数据输入(tdi)”的专用装置输入引脚开始并在多路复用器660的输出处称为“测试数据输出(tdo)”的专用装置输出引脚处终止。
[0177]
取决于tap状态和寄存器选择,测试时钟tck是选择性地发送到每一寄存器的tck。
[0178]
指令寄存器(ir)620包含n位(其中n≥2)且经实施以用于保持每一当前指令。
[0179]
所述架构还包含1位旁路寄存器640(旁路);任选的32位识别寄存器630(ident),其能够加载有永久性装置识别码。
[0180]
在任何时间,仅一个寄存器可从tdi连接到tdo(例如,ir、旁路、边界扫描、ident或甚至核心逻辑内部的某个适当寄存器)。所选择的寄存器由ir的解码输出识别。某些指令是必选的,例如extest(所选择的边界扫描寄存器),而其它指令是任选的,例如idcode指令(所选择的ident寄存器)。
[0181]
如稍后参考图8所公开,并行加载操作称为“捕获”操作,且使得装置输入引脚上的信号值被加载到输入单元中,且从核心逻辑传递到装置输出引脚的信号值被加载到输出单元中。捕获操作使用并行输入来捕获所选择的寄存器的每一单元中的值。
[0182]
并行卸载操作称为“更新”操作,且使得已经存在于输出扫描单元中的信号值通过装置输出引脚传递出去。此外,即使未完成pause指令,所述pause指令也准许将数据保持在寄存器中。更新操作冻结移位寄存器的内容以维持其稳定。
[0183]
取决于输入扫描单元的性质,已经存在于输入扫描单元中的信号值将被传递到核心逻辑中。
[0184]
现在,在本公开的一个实施例中,边界扫描架构600通过另外的或额外的寄存器780来完成,所述寄存器780专门提供来管理存储器组件1。此额外寄存器780还可由用户使用如系统编程标准中的ieee1532协议来定义。
[0185]
图7展示对应于图6的边界扫描架构600或对应于图2中的边界扫描架构260的边界扫描架构700。图7的示意性图示仅说明根据ieee1149的强制性寄存器,且引入并入到本公开的边界扫描架构600中的用户专有寄存器;其他组件缺失与本公开不相关。
[0186]
在此图7中,对应于图6的边界扫描寄存器650的边界扫描移位寄存器750以串行模式耦合到tdi引脚,且经由多路复用器760朝向tdo输出引脚提供输出。
[0187]
测试时钟tck经由又一专用装置输入引脚馈入,且操作模式由专用“测试模式选择”(tms)串行控制信号控制,两者都应用于tap控制器770。
[0188]
接着由解码器790提供与指令相关联的各种控制信号。
[0189]
指令寄存器(ir)720包含n位(其中n≥2)且经实施以用于保持每一当前指令。所述架构包含1位旁路寄存器(图7中未展示)和识别寄存器730。
[0190]
额外寄存器780用作移位数据寄存器,以允许在存储器组件的写入和/或读取阶段中与主机装置的核心交互。用户可定义寄存器甚至可以是不同的。取决于加载于ir中的命令,可组合不同寄存器。举例来说,为了对存储器进行编程,至少需要具有对应于待在存储器阵列中编程的最小页的大小的数据寄存器,含有可加载的地址的数据地址,任选地,还可能需要屏蔽寄存器以避免接触数据的一部分。
[0191]
现在,由tap控制器670或770表示的命令用户接口是基于ieee1149和ieee1532标准(使用ieee1149的接口),所述标准实施具有修改相关联的存储器子阵列220的内部内容的能力的低信号计数接口,即tms、tck、tdi、tdo、trst(任选的)。
[0192]
如图8中所展示,标准ieee1149.1是基于有限状态机,即包含十六个状态,且其中的两个,即移位指令寄存器(shiftir)和移位数据寄存器(shiftdr),允许在写入和/或读取时与系统交互。
[0193]
图8示意性地展示作为有限状态机的测试存取端口tap 800,其负责与例如存储器装置的集成电路的测试有关的所有操作。
[0194]
应用于tms引脚的逻辑信号“0”和“1”的序列通过边界扫描结构控制芯片架构的操
作。
[0195]
当电路上电时,让我们首先考虑从用数字810指示的测试逻辑复位状态开始。在此特定状态下,所有边界扫描单元处于所谓的透明状态,其中并行输入pin在内部连接到并行输出pout,且所有输入引脚连接到集成电路的核心。
[0196]
通过将逻辑值“1”和“0”的适当序列驱动为tms信号,有可能以使得tdi输入作为第一指令移位以获得输出tdo的方式设置输出多路复用器。tms信号应在状态shiftdr或shiftir下驱动tap fsm以将tdi和tdo连接到寄存器。
[0197]
为了使指令移位,我们需要进入具有数字830的状态shiftir,且为了达到所述状态,我们需要应用以下序列:将0设置为tms且将若干时钟脉冲驱动到tck,我们达到运行/空闲状态820。
[0198]
现在从状态820中选择“1”,维持两个时钟周期,我们传递为数据寄存器扫描840的选择和指令寄存器扫描845。换句话说,对tms=“1”采样两次。利用tms上的另一个“0”,我们可到达指令寄存器850的捕获阶段。
[0199]
捕获阶段允许捕捉图7中的指令寄存器720的两个最终位;此捕获阶段捕获链接到所选择的寄存器的信号的值。更具体地说,在指令寄存器的情况下,值1和0经硬编码,因此不连接到任何内容。
[0200]
另一个“0”驱动到允许将输入值tdi传递到输出tdo的移位ir;根据jtag实施方案,在输入处的tdi值出现在等于寄存器大小的多个时钟之后。使用灵活的tdi,除了必须是最少两个时钟周期的ir之外,仅一个时钟周期就足够了。
[0201]
将tms保持为“0”,我们可保持在移位ir状态830,从而允许将在tdi引脚上接收到的位移位到输出tdo。
[0202]
有可能在移位所有输入位所需的所有时钟周期内保持在所述状态830。
[0203]
我们在对应于ir 720的位数目减去一的多个时钟周期内保持在shiftir状态830。在序列结束时,到达退出-1ir状态855。
[0204]
从这一退出状态855,我们将移动到驱动“1”tms的更新状态860,且这是新指令变得有效的时刻。边界扫描单元恢复到测试模式,其中输入引脚与核心电路系统隔离。
[0205]
现在有可能通过达到移位dr状态870将测试向量发送到核心电路系统。
[0206]
数据寄存器的状态类似于指令寄存器的状态。
[0207]
因此,利用序列1-0-0,我们可达到shiftdr状态870。
[0208]
通过捕获dr 875,边界扫描单元的第一多路复用器mo1连接到并行输入pin,且边界扫描寄存器的所有输入引脚已捕获其输入值。
[0209]
现在转到移位dr 870,多路复用器改变其允许捕捉串行输入sin的状态,且扫描路径通过边界扫描寄存器从tdi输入移位到输出引脚tdo。
[0210]
电路在对应于边界扫描单元的数目减去一的多个时钟周期内保持在此状态;显然,边界扫描是用ir寄存器中的适当指令选择的可能数据寄存器中的一个。
[0211]
当通过退出-1dr 880状态且到达更新dr状态885时,新的测试向量输出到输出引脚。
[0212]
序列从更新到捕获重复进行,以允许将新的测试向量引入到电路系统中。
[0213]
如我们已看到,tap包含测试数据输入和测试数据输出以及时钟信号。更具体地
说,移位数据寄存器shiftdr报告tdi与寄存器连接的状态。在所述状态下,将寄存器内容传送到装置中和/或传送到装置之外。
[0214]
类似地,移位指令寄存器shiftir还报告tdi与寄存器连接的状态。在所述状态下加载指令。
[0215]
由于在主机装置10内部具有多核心的要求,jtag接口的内部寄存器780必须能够至多支持地址和数据寄存器。具体地说,提供四个地址寄存器(来自每一子阵列220的地址寄存器)的产生以填充每一子阵列220的不同地址,且每个子阵列区段触发用于读取寄存器[0:3]的四个不同数据输出。到soc的通信发生在将所选择的读取寄存器(即,称为pout[127:0]的输出)直接连接到主机装置或soc 10的信道的输入。
[0216]
此机制允许预加载用于控制器的数据,从而将等待时间减少到非常低的值。
[0217]
为完整性起见,应注意,jtag状态机可用于复位寄存器、存取指令寄存器或存取由指令寄存器选择的数据。
[0218]
jtag平台通常将信号添加到由ieee 1149.1规范定义的少量信号。使调试器复位整个系统,而不仅仅是具有jtag支持的部分的系统复位(srst)信号是相当常见的。有时存在用于由主机或由正通过jtag监测的装置触发活动的事件信号;或可能存在额外控制线。
[0219]
在jtag中,装置暴露一或多个测试存取端口(tap)。
[0220]
为了使用jtag,主机通过一些种类的jtag适配器连接到目标的jtag信号(tms、tck、tdi、tdo等),这可能需要处置如电平移位和电流隔离的问题。适配器使用例如usb、pci、以太网等一些接口连接到主机。然而,根据本公开,soc还能够在没有外部辅助的情况下驱动存储器中的jtag tap。
[0221]
主机装置10通过操控信号tms和tck(或如果存在的话还有trst)与tap通信。信号tdi仅用于加载寄存器数据读取,接着通过tdo(其是唯一的标准主机侧输入)加载结果。tms/tdi/tck输出转换创建在其上构建高层协议的基本jtag通信原语:
[0222]
状态切换:其中所有tap处于相同状态,且所述状态在tck转换时改变。所有tap fsm相应地移动,因为tms同时连接到所有jtag兼容装置,如果其存在于板中的话。
[0223]
如图8中所展示,此jtag状态机是jtag规范的部分且包含十六个状态。存在六个“稳定状态”,其中保持tms稳定防止状态改变。在所有其它状态中,tck总是改变所述状态。此外,断言信号trst强制进入,从而将寄存器的所有内容变为默认值。其内容不再有效,且应以比将tms保持为高且使tck循环五次的替代方案稍快的方式将其重新加载到这些稳定状态(test_logic_reset)中的一个。
[0224]
移位阶段:其中jtag状态机的大部分支持用于传送数据的两个稳定状态。每一tap具有指令寄存器(ir)和数据寄存器(dr)。这些寄存器的大小在tap之间变化,且这些寄存器通过tdi和tdo组合以形成大移位寄存器。(dr的大小是所述tap的当前ir中的值的函数,且可能是由scan_n指令指定的值的函数。)
[0225]
通常存在定义数据寄存器的大小的任选的寄存器。由于低有效位加载有1和0,因此使用标准检查ir。这允许对网络中的jtag装置的数目进行计数,且了解每一tap ir的大小,所述大小可以是不同的。
[0226]
在所述移位寄存器上定义了三个操作:
[0227]
捕获临时值。
[0228]
经由capture_ir状态进入shift_ir稳定状态,以部分固定的值(不是当前指令)加载移位寄存器。
[0229]
经由capture_dr状态进入shift_dr稳定状态,加载由tap的当前ir指定的数据寄存器的值。
[0230]
在shift_ir或shift_dr稳定状态下逐位移位所述值;tck转换将移位寄存器从tdi朝向tdo移位一个位,就像通过装置的菊花链(其中tms=0用作芯片选择信号,tdi用作mosi等)的spi模式1数据传送一样。
[0231]
在通过update_ir或update_dr状态转换时,从移入的临时值更新ir或dr。pause状态也与移位分支的每一侧中的标准的部分相关。
[0232]
运行状态:其中一个稳定状态称为run_test/idle。区别是tap特定的。在空闲状态中对tck计时没有特别的副作用,但是在run_test状态中对其计时可以改变系统状态。举例来说,一些核心支持调试模式,其中处于run_test状态的tck周期驱动指令管线。
[0233]
因此,在基本层级,使用jtag涉及读取和写入指令和其相关数据寄存器;且有时涉及运行多个测试周期。在这些寄存器后面的是未由jtag指定的硬件,且其具有受jtag活动影响的其自己的状态。
[0234]
在tck的上升沿、时钟信号处触发jtag有限状态机,且在下降沿提供输出。这允许使用旁路寄存器且不损失扫描链中的时钟周期。
[0235]
检查tms信号,且其值触发状态转换。
[0236]
shiftdr和shiftir状态寻址io寄存器,且tdi信号用于在所选择的寄存器内串行插入数据。
[0237]
ir寄存器用于选择待使用的特定数据寄存器和/或指令。
[0238]
当状态机处于运行测试/空闲时,检查ir寄存器的命令,且使用最终服务寄存器的数据来执行所述命令,即程序命令可使用数据寄存器和地址寄存器来决定必须存储何种数据和数据必须存储在何处。
[0239]
jtag边界扫描技术提供对包含装置引脚的复杂集成电路的许多逻辑信号的存取。信号在可经由tap存取的边界扫描寄存器(bsr)中表示。这准许测试以及控制用于测试和调试的信号的状态。因此,可定位软件和硬件(制造)故障,且可监测操作装置。
[0240]
本公开获得了下文中不按重要性顺序报告的许多优点。先前所公开的解决方案减少用于存储器组件的硅的成本且改进包含主机装置和存储器组件的整个设备的整体质量和可靠性问题。
[0241]
本公开的设备提供了用于实现实时操作系统(rtos)的良好选择,尤其是在汽车领域中,在存储器组件的第一次存取中提供低初始等待时间。
[0242]
此外,先前所公开的存储器架构提供非常高的质量和在小于百万分之1的范围内的错误率。
[0243]
最后,所公开的架构允许在主机装置中采用积极的光刻节点,且在存储器组件中采用最新的快闪存储器技术,将这两种技术解耦,从而允许在适当的位置实现两种装置的最佳集成电路。
[0244]
存储器组件1和主机或soc 10已经使用非常高的并行性与接口耦合。此特征还可用于改进性能,例如加载指令寄存器和(通用)数据寄存器。
[0245]
举例来说,如果我们参考图9的实例,那么可了解,可在将datax并行连接到存储器单元的单个时钟周期中加载指令寄存器720。
[0246]
此外,图9展示由tms信号(即使未展示)驱动的tap转换。当达到状态shiftdr或shiftir时;所述图展示了灵活的tdi的两种情况,当包含安全数据地址和ecc位时,一种是八个位的数据寄存器,另一种是128个位或168个位的数据寄存器。
[0247]
data0可用作默认值,但在soc 10无法管理用于所有通信的单个dat0的情况下,可为控制器的每一信道添加mux,即当channel0被寻址为data0时,当channel1为data1时等。
[0248]
在并发编程的情况下,data0可并行加载所有子阵列读取寄存器。
[0249]
ieee 1149定义串行协议。至少两个位的指令寄存器720还用作发现方法。
[0250]
现在参考图10的示意性实例,其展示用图10中的数字1000指示的主机装置或片上系统10与对应于图7的指令寄存器720的指令寄存器1020之间的关系。
[0251]
主机1000可将连接到扫描链的所有装置的接口移动到shiftir模式,且接着在整个串行链通过时开始以已知码字移位,所述代码字呈现给主机的tdo。应注意,tms、tck和trst是公共信号,串行连接缩短了扫描链中的装置的tdo与相邻装置的tdo。此外,主机的tdi与扫描链的第一tdi连接,而如由主机接收的tdo是扫描链中的最后一个装置的tdo,
[0252]
主机可对图10的左侧中所展示的组合“1 0”计数且获得以下信息:
[0253]
链中的装置的数目;和/或
[0254]
每一装置的指令寄存器的长度。
[0255]
灵活的tdi被认为改进了某些操作的性能,即可使用子阵列的整个数据i/o能力来加载包含168个位的数据寄存器。输出将始终与jtag兼容,但其将仅是一个位,即数据寄存器的较低有效位。
[0256]
指令寄存器需要特别注意,因为其必须是至少2位宽,所以在指令寄存器是8位的情况下,快闪阵列mu的实施方案预测使用两个时钟周期的通信,以允许将序列“1 0”发送到下一装置。
[0257]
所提出的方法将不是装置的默认状态,但其在易失性配置寄存器位中将是可选择的,使得用户可将装置配置为在其需要的所有时间在灵活的tdi中操作。
[0258]
尽管已在本文中说明并描述了具体实施例,但本领域的一般技术人员应了解,经计算以实现相同结果的布置可取代所展示的具体实施例。本公开意图涵盖本公开的各种实施例的修改或变化。
[0259]
应理解,以上描述是以说明性方式而非限制性方式进行的。在审阅以上描述之后,以上实施例的组合和本文中未具体描述的其它实施例对于本领域的技术人员将是显而易见的。本公开的各种实施例的范围包含使用以上结构和方法的其它应用。因此,本公开的各种实施例的范围应参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1