專利名稱:在包括多個具有jtag能力的集成電路的系統(tǒng)中的代碼下載的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及電子系統(tǒng),并尤其涉及有效地把信息加載到多個集成電路中的方法和設(shè)備,每個集成電路都需要用這類信息來執(zhí)行其預(yù)定功能。
半導(dǎo)體制造技術(shù)以及數(shù)字系統(tǒng)結(jié)構(gòu)的發(fā)展已經(jīng)能夠設(shè)計和生產(chǎn)較大的集成電路,較大的集成電路較之過去能做到的而言結(jié)合了多得多的功能性。一類特殊的集成電路被稱為片上系統(tǒng)(SoC),它至少結(jié)合了幾個較大的功能塊,以產(chǎn)生高級的功能性。這類SoC集成電路往往包括一個或多個處理器以及用于存儲處理器將運(yùn)行的程序代碼的存儲器,和一個或多個用于執(zhí)行不同的高級外部功能的電路塊。
SoC一般被用在包括不同的其它元件的電子產(chǎn)品或系統(tǒng)中。在一個標(biāo)準(zhǔn)方案中,SoC和SoC以外的諸如只讀存儲器或閃存之類的非易失性存儲器被安裝在諸如印刷電路板之類的基片上。在這種情況下,外部的非易失性存儲器被連接到SoC,以便提供程序代碼,程序代碼被載入SoC以供其中集成的一個或多個處理器的后續(xù)使用。在其它方案中,程序代碼存儲器可以完全或部分地在SoC以外。隨著電子產(chǎn)品變得更加復(fù)雜,把多個SoC包括在單個電子產(chǎn)品中的需要已經(jīng)出現(xiàn)。
所需要的是有效地把信息載入多個集成電路的方法和設(shè)備,比如電子產(chǎn)品內(nèi)包含的SoC。
簡言之,本發(fā)明的實(shí)施例用來把信息從單個非易失性的外存儲器載入多個集成電路,其中,多個集成電路中只有一個為了存儲訪問而被連接到單個非易失性的外存儲器。
在本發(fā)明的又一個方面中,被載入多個集成電路至少之一的信息包括程序代碼,程序代碼可以由那至少一個集成電路內(nèi)包括的處理器來運(yùn)行。
在本發(fā)明更進(jìn)一步的方面中,用于把程序代碼從單個外存儲器經(jīng)由第一集成電路傳送到第二集成電路的通信路徑由第一和第二集成電路中分別的測試通道組成。
圖1是一個包括多個SoC的常規(guī)電子產(chǎn)品的示意框圖,每個SoC都被連接到單獨(dú)的外部非易失性存儲器芯片,程序代碼從該芯片被傳送到SoC。
圖2是一個電子產(chǎn)品的高級框圖,其中,單個外存儲器芯片提供信息,比如根據(jù)本發(fā)明向多個SoC提供程序代碼。
圖3是一個電子產(chǎn)品的示意框圖,其中,單個外存儲器芯片提供信息,比如根據(jù)本發(fā)明經(jīng)由JTAG機(jī)理向多個SoC提供程序代碼。
圖4是一個適用于本發(fā)明實(shí)施例的集成電路的示意框圖,其大略地示出一個依從JTAG的集成電路,并更加特別地說明了EJTAG擴(kuò)展。
圖5是一個電子產(chǎn)品的示意框圖,其中,單個外部非易失性存儲器芯片提供信息,比如根據(jù)本發(fā)明經(jīng)由JTAG機(jī)理向多個SoC提供程序代碼,每個SoC還具有一個專用的外存儲器。
圖6是一個電子產(chǎn)品的示意框圖,其中,單個非易失性的外存儲器芯片提供信息,比如根據(jù)本發(fā)明經(jīng)由JTAG機(jī)理向多個SoC提供程序代碼,并且每個SoC都被連接到它自己的外存儲器總線。
圖7是一個根據(jù)本發(fā)明的說明性進(jìn)程的流程圖。
圖8是一個根據(jù)本發(fā)明的另一個說明性進(jìn)程的流程圖。
當(dāng)那些集成電路本身是″片上系統(tǒng)″(SoC)種類的時候,由于有上市時間的約束條件,包括多個集成電路的電子產(chǎn)品正變得越來越普遍。即,通過在板級集成幾個SoC而不是通過產(chǎn)生具有那些多個SoC的結(jié)合功能的新的ASIC(即SoC),提供某個功能性的系統(tǒng)解決方案現(xiàn)在可以更快速地實(shí)現(xiàn)。按照慣例,這類SoC中的每一個尤其都包括一個用于運(yùn)行程序代碼的處理器,和一個用于存儲那個處理器將運(yùn)行的程序代碼的存儲器。在一些常規(guī)的替換方案中,用于存儲處理器將運(yùn)行的程序代碼的外存儲器被連接到SoC。此外按照慣例,這類SoC中的每一個都必須被連接到單獨(dú)的外存儲器,程序代碼從單獨(dú)的外存儲器被載入SoC。這個常規(guī)方案中的每個SoC都被連接到單獨(dú)的存儲器,從而相當(dāng)大地增加了電子產(chǎn)品的成本。
通過使用一般用于系統(tǒng)調(diào)試操作的每個SoC上的現(xiàn)有通信接口,本發(fā)明的各個實(shí)施例從單個外存儲器向系統(tǒng)中多個SoC中的每個SoC提供程序代碼。在一部分實(shí)施例中,每個SoC內(nèi)包括的JTAG電路被用來提供通信接口以下載代碼。
在此對″一個實(shí)施例″或類似表達(dá)的引用指的是結(jié)合實(shí)施例描述的特殊特征、結(jié)構(gòu)、操作或特性被包括在本發(fā)明的至少一個實(shí)施例中。從而,此處這類字句或陳述的出現(xiàn)一定地全部都指的是相同的實(shí)施例。此外,不同的特定特征、結(jié)構(gòu)、操作、或特征可以在一個或多個實(shí)施例中用任何適當(dāng)?shù)姆椒ū唤Y(jié)合。
縮寫ASIC指的是專用集成電路。
縮寫JTAG指的是聯(lián)合測試行動組。電氣和電子工程師學(xué)會(IEEE)機(jī)構(gòu)已經(jīng)核準(zhǔn)了IEEE標(biāo)準(zhǔn)1149.1,測試存取端口和邊界掃描結(jié)構(gòu)。
縮寫LSI指的是大規(guī)模集成電路。
縮寫NVM指的是非易失性存儲器,并包括任何不施加電源來保持?jǐn)?shù)據(jù)的適當(dāng)?shù)臄?shù)據(jù)存儲裝置。非易失性存儲器的例子非限制性地包括只讀存儲器、可編程序只讀存儲器、可擦可編程只讀存儲器、和閃存。
縮寫指的是片上系統(tǒng),而SoCs是多個SoC。
縮寫TAP指的是測試存取端口。
MIPSEJTAG指的是硬件調(diào)試設(shè)備,其為包括嵌入MIPS結(jié)構(gòu)處理器的SoC提供非插入的調(diào)試能力。一個被稱為ICE的類似而替換的方案可用于ARM處理器結(jié)構(gòu)。
術(shù)語芯片、半導(dǎo)體裝置、集成電路、LSI裝置、單片集成電路、ASIC、SoC、微電子器件、以及類似的表示有時在這個領(lǐng)域中可以互換使用。微電子器件可以被認(rèn)為是包含其它的廣義術(shù)語。根據(jù)這些微電子學(xué)設(shè)備,信號經(jīng)由物理、電學(xué)傳導(dǎo)的連接被耦合在它們及其它電路元件之間。連接點(diǎn)有時被稱為輸入端、輸出端、終端、線路、管腳、盤、端口、接口、或類似的變形和結(jié)合。為了本公開內(nèi)容的目的,這些被認(rèn)為是等效的術(shù)語。
在此使用的術(shù)語下載指的是信息傳送,包括但不限于從外存儲器向集成電路傳送程序代碼,例如被直接連接或間接耦合到外存儲器的SoC。
編程指令有時也被稱為代碼。它往往是提供諸如構(gòu)造工作程序的恒定值以及編程指令之類的數(shù)據(jù)所必需的。類似的表達(dá)非限制性地包括程序代碼、軟件、固件、和微碼。
依從JTAG的裝置包括用于時鐘、輸入數(shù)據(jù)、輸出數(shù)據(jù)和模式選擇的插腳,分別相當(dāng)于TCK、TDI、TDO和TMS。TCK指的是測試時鐘輸入,它是接收與系統(tǒng)時鐘分離的時鐘信號的依從JTAG的裝置的端子。TDI指的是測試數(shù)據(jù)輸入,它是數(shù)據(jù)被移動到依從JTAG的裝置中所經(jīng)由的端子。TDO指的是測試數(shù)據(jù)輸出,它是數(shù)據(jù)被移出依從JTAG的裝置所經(jīng)由的終端。TMS指的是測試模式選擇,它是接收數(shù)據(jù),以用于在依從JTAG的裝置將運(yùn)行的一個或多個測試模式中確定測試模式的終端。依從JTAG的裝置可以是任何類型的集成電路,比如微處理器、ASIC、或SoC。依從JTAG的裝置還可能包括用于接收低活動復(fù)位信號的管腳,被稱為TRST#。依從JTAG的裝置包括邊界掃描寄存器和TAP控制器。TAP控制器是控制JTAG功能的狀態(tài)機(jī)。邊界掃描寄存器由多個串行連接比特組成,其中,每個比特還被連接到依從JTAG的裝置的數(shù)字插腳。依從JTAG的裝置還可能包括其它寄存器,比如數(shù)據(jù)寄存器、指令寄存器、和旁路寄存器。
具有EJTAG的SoC使用5管腳的JTAG接口,這在IEEE1149.1JTAG標(biāo)準(zhǔn)中被規(guī)定用于和其它元件的通信。EJTAG電路還提供直接控制嵌入式處理器的行為的一個裝置。
內(nèi)部地,具有EJTAG的SoC尤其包括用于訪問地址和數(shù)據(jù)總線的電路,這一般被嵌入式處理機(jī)、程序存儲器、及其它包括在SoC內(nèi)的功能塊所使用。
本發(fā)明的不同實(shí)施例在生產(chǎn)環(huán)境中使用SoC現(xiàn)有的調(diào)試能力來降低包括兩個或多個SoC的整個系統(tǒng)的總成本。通常,每個SoC都有自己的相應(yīng)的外存儲器來引導(dǎo)啟動。本發(fā)明的一部分實(shí)施例將多SoC電子產(chǎn)品的每個SoC的代碼圖像存儲在接口到單個SoC的單個外存儲器中。每個下游SoC的代碼圖像從那里經(jīng)由聯(lián)接于外存儲器的SoC和每個下游SoC之間的接口被傳送。
參考圖1,一個常規(guī)的電子產(chǎn)品100被示出。常規(guī)的電子產(chǎn)品100包括具有第一、第二和第三SoC104、108、112的印刷電路板102,和在其中設(shè)置的第一、第二和第三非易失性的存儲器106、110、114。SoC104、108、112一般是至少具有提供運(yùn)行編程指令的處理器所需電路和存儲編程指令的存儲器的集成電路。非易失性存儲器106、110、114分別被耦合到第一、第二和第三SoC104、108、112,因此代碼可能在每個分別被耦合的SoC和非易失性存儲器之間被傳送??梢钥闯?,在圖1的常規(guī)方法中,每個SoC都需要一個單獨(dú)的非易失性存儲器和一個訪問那些單獨(dú)的非易失性存儲器的通道。這些元件以及它們需要的空間和功率增加了用這個方法構(gòu)造的電子產(chǎn)品的制造和操作成本。
參考圖2,一個根據(jù)本發(fā)明的電子產(chǎn)品200被示出。電子產(chǎn)品200包括基片202?;?02一般是一個印刷電路板,但是也可以是支持集成電路,或在其中可以設(shè)置其它元件的任何適當(dāng)?shù)牟牧匣蚪Y(jié)構(gòu)。如圖2中所示,第一非易失性存儲器206、第一SoC204、第二SoC208、和第三SoC210被安排在基片202上。SoC204、208、210可能具有相同的硬件設(shè)備或不同的硬件設(shè)備,盡管在典型實(shí)施例中它們具有不同的硬件設(shè)備來執(zhí)行不同的功能。通過非限制性的舉例來說,第一SoC可能包括用于執(zhí)行電纜調(diào)制解調(diào)器接口的硬件設(shè)備,而第二SoC可能包括用于執(zhí)行MPEG解碼器的硬件設(shè)備。在這個說明性的例子中,SoC204、208分別包括MIPS結(jié)構(gòu)處理器和EJTAG調(diào)試設(shè)備。得益于本公開內(nèi)容的本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,只要能提供SoC的嵌入式存儲器的訪問,則其它的調(diào)試設(shè)備也可以被使用。
第一非易失性存儲器206和第一SoC204被連接,以便于SoC204可以訪問即讀取第一非易失性存儲器206的內(nèi)容。用另一種方式來描述,即第一SoC204包括一個連接到外存儲器(即非易失性存儲器206)的外存儲接口。SoC204被連接到SoC208以把數(shù)據(jù)從SoC204傳遞到SoC208。同樣地,SoC208被連接到SoC210,以把數(shù)據(jù)從SoC208傳遞到SoC210。這類配置允許數(shù)據(jù)(例如代碼圖像)將從非易失性存儲器206經(jīng)由外存儲接口被傳送到SoC204,經(jīng)由外存儲接口并通過SoC204被傳送到SoC208,以及經(jīng)由外存儲接口、通過SoC204和SoC208被傳送到SoC210。
參考圖3,根據(jù)本發(fā)明的一個電子產(chǎn)品300被示出。圖3的電子產(chǎn)品300類似于圖2中示出的電子產(chǎn)品,但它更具體地說明了具有JTAG接口的執(zhí)行過程的信號通道,JTAG接口用于把代碼圖像從單個外存儲器傳送到多個集成電路中的每一個,其中,只有多個集成電路之一被連接來讀取外存儲器。第一非易失性存儲器206、第一SoC204、第二SoC208、以及第三SoC210被設(shè)置在基片302上。JTAG時鐘、復(fù)位、及模式選擇信號(TCLK、TRST#-、和TMS)被共同連接到第一、第二、和第三SoC204、208、210中的每一個。這些信號在本發(fā)明的代碼下載操作中由第一SoC204驅(qū)動,然而這些信號通常為了JTAG電路的常規(guī)使用從外信號源被驅(qū)動。第一非易失性存儲器206和第一SoC204被連接,以便于SoC204可以訪問即讀取第一非易失性存儲器206的內(nèi)容。SoC204被連接到SoC208,以把數(shù)據(jù)從SoC204傳遞到SoC208。更特別地,SoC204的輸出端304通過導(dǎo)電通道308被連接到SoC208的輸入端306。在這個說明性的實(shí)施例中,輸出端304是JTAG測試數(shù)據(jù)輸出(TDO)管腳,并且輸入端306是JTAG測試數(shù)據(jù)輸入(TDI)管腳。同樣地,SoC208被連接到SoC210,以把數(shù)據(jù)從SoC208傳遞到SoC210。更特別地,SoC208的輸出端310通過導(dǎo)電通路314被連接到SoC210的輸入端312。在這個說明性的實(shí)施例中,輸出端304是JTAG測試數(shù)據(jù)輸出(TD0)管腳,并且輸入端306是JTAG測試數(shù)據(jù)輸入(TDI)管腳。這類配置允許數(shù)據(jù)(例如代碼圖像)將從非易失性存儲器206經(jīng)由外存儲接口被傳送到SoC204,經(jīng)由外存儲接口并通過SoC204被傳送到SoC208,以及經(jīng)由外存儲接口、通過SoC204和SoC208被傳送到SoC210。SoC208、210內(nèi)部的電路控制程序代碼載入例如它們的內(nèi)部存儲器。
仍然參考圖3中示出的說明性實(shí)施例,應(yīng)當(dāng)指出,那里可能選擇性地是在SoC210的測試數(shù)據(jù)輸出管腳和SoC204的測試數(shù)據(jù)輸入管腳之間的連接(未示出),以創(chuàng)建返回通路。這類連接準(zhǔn)備用于需要SoC204來確定不同的下游SoC狀態(tài)的情況。
參考圖4,包括EJTAG功能的依從JTAG的IC的高級示意框圖被示出。更具體地,SoC400被示出,它包括CPU402、調(diào)試寄存器404、用于至少存儲程序代碼的系統(tǒng)存儲器406、外部功能塊408、和EJTAG塊410。EJTAG塊410包括TAP控制器412、指令、數(shù)據(jù)、控制、和邊界掃描寄存器414、直接存儲器訪問(DMA)模塊416、和處理器存取模塊418。SoC400還包括地址/數(shù)據(jù)總線420、它被連接到CPU402、調(diào)試寄存器404、系統(tǒng)存儲器406、DMA模塊416、和處理器存取模塊418。應(yīng)當(dāng)指出在一些實(shí)施例中,系統(tǒng)存儲器可能沒有被安置在片外;DMA模塊不一定包括在所有的實(shí)施例內(nèi);并且一部分實(shí)施例可能在EJTAG電路和處理器之間包括直接控制和/或狀態(tài)連接。TAP控制器412具有用于接收J(rèn)TAG時鐘、復(fù)位、模式選擇、以及數(shù)據(jù)輸入信號的輸入端,并且還具有一個用于發(fā)射數(shù)據(jù)輸出信號的輸出端。此類方案提供了一個用于將信息傳送到以及傳送出系統(tǒng)存儲器的結(jié)構(gòu)。
參考圖5,一個包括單個非易失性存儲器和幾個SoC的電子產(chǎn)品500的示意框圖被示出,每個SoC都被連接到它自己的專用外存儲器。在這個說明性的實(shí)施例中,能夠作為EJTAG主裝置的SoC502被連接到非易失性存儲器504。SoC502另外具有一個被連接到節(jié)點(diǎn)522的輸入終端,SoC502從節(jié)點(diǎn)522接收依從JTAG的使能信號。依從JTAG的使能信號結(jié)合改變JTAG主從之間的SoC操作模式被使用。NVM504可以包括將被載入電子產(chǎn)品500中的多個SoC的程序代碼和/或其它數(shù)據(jù)。外存儲器506被連接到SoC502。外存儲器506尤其能夠存儲從NVM504下載的程序代碼和數(shù)據(jù)。用圖5中說明的類似方式,SoC508、512分別被連接到它們自己專用的外部存儲器510、514。SoC508、512能夠作為EJTAG從屬裝置操作。另外,用來從EJTAG主裝置向EJTAG從屬裝置提供控制信號的通信通道516如所示地被連接在SoC502、508和512之間。應(yīng)當(dāng)指出,當(dāng)電子產(chǎn)品500被適當(dāng)配置運(yùn)行于測試模式中時,這些控制信號(例如時鐘、復(fù)位、和模式)可以從端口526由諸如測試器之類的外源來驅(qū)動。通信通道516一般用于諸如時鐘信號、復(fù)位信號、和模式信號之類的信號通信。圖5中還示出通道518,其用于把SoC502的測試數(shù)據(jù)輸出端連接到SoC508的測試數(shù)據(jù)輸入端;和通道520,其用于把SoC508的測試數(shù)據(jù)輸出端連接到SoC512的測試數(shù)據(jù)輸入端。應(yīng)當(dāng)指出,SoC512的測試數(shù)據(jù)輸出可以在端口524被觀察,而且SoC502的測試數(shù)據(jù)輸入可以從端口528被驅(qū)動。此外應(yīng)當(dāng)指出,可以創(chuàng)建一個返回回路,將SoC512的測試數(shù)據(jù)輸出連接到SoC502的測試數(shù)據(jù)輸入。
在操作中,在使用包括在SoC502、508、和512內(nèi)的JTAG串行數(shù)據(jù)通道的EJTAG主裝置的控制之下,說明性的電子產(chǎn)品500可以把諸如程序代碼和/或數(shù)據(jù)之類的信息從NVM504傳送到專用的外部存儲器506、510、和512。應(yīng)當(dāng)指出,在不同的實(shí)施例中,SoC502、508、和512可以分別具有結(jié)合在自身內(nèi)的一定數(shù)量的存儲器,并且這些內(nèi)部存儲器在一些實(shí)施例中還可以存儲程序代碼和/或數(shù)據(jù)。
參考圖6,一個包括單個非易失性存儲器和幾個SoC的電子產(chǎn)品600的示意框圖被示出,每個SoC都被連接到它自己的存儲總線。這個可仿效的實(shí)施例說明了本發(fā)明的一個優(yōu)點(diǎn),其中,從存儲總線除去非易失性存儲器可以降低總線負(fù)載并允許被連接到存儲器總線的存儲裝置高速運(yùn)轉(zhuǎn)。此類方案的另一個優(yōu)點(diǎn)是,SoC的存儲控制器邏輯電路被簡化,這是因為SoC只需與RAM接口、而不需要與RAM和NVM接口(這可以具有用于存儲訪問的不同控制信號規(guī)范)。更特別地,SoC602被連接到能夠作為EJTAG主裝置的NVM604。在這個說明性的實(shí)施例中,NVM604是一個包括將是EJTAG主裝置的電路的閃速存儲器,即使它沒有其中集成的處理器或CPU。SoC602以及SoC612并614被分別連接到存儲總線606a、606b、606c。儲存裝置608a、610a;608b、610b;和608c、610c被示出分別耦合到存儲總線606a、606b、606c。應(yīng)當(dāng)指出,存在市場可用的多種存儲器體系結(jié)構(gòu)和存儲訪問協(xié)議,然而儲存裝置608a、610a;608b、610b和608c、610c可以是任何適當(dāng)?shù)拇鎯ζ?,非限制性地比如,靜態(tài)隨機(jī)存取存儲器或動態(tài)隨機(jī)存取存儲器。還應(yīng)當(dāng)指出,盡管兩個存儲裝置被示出連接到存儲總線,然而本發(fā)明不被限制在這類裝置的任何特殊數(shù)量。
仍然參考圖6,通信路徑616被示出耦合在EJTAG主NVM604和SoC602、612、和614之間。通信路徑616適合于提供控制信號,非限制性地比如時鐘信號、復(fù)位信號、和模式信號。通信路徑618把SoC602的測試數(shù)據(jù)輸出端耦合到SoC612的測試數(shù)據(jù)輸入端。通信路徑620把SoC612的測試數(shù)據(jù)輸出端耦合到SoC614的測試數(shù)據(jù)輸入端。
應(yīng)當(dāng)指出,本發(fā)明可以替換地被包括在類似于圖6中示出的配置中,不同之處在于,每個SoC通過公共存儲總線而不是專用存儲總線訪問易失性存儲器。
參考圖7,一個根據(jù)本發(fā)明的說明性過程被示出,在第一操作702中,第一程序代碼從第一存儲器被傳送到第一集成電路。第一存儲器一般是單片,并一般也是非易失性存儲器芯片,例如只讀存儲器(ROM)或閃存。根據(jù)本發(fā)明,第一存儲器還可以被實(shí)現(xiàn)為可作為單個程序包或單元而被尋址的多棧存儲基片。第一程序代碼一般包括在第一集成電路內(nèi)可由處理器來執(zhí)行的多個指令。第一程序代碼可能還包括數(shù)據(jù),即不可執(zhí)行信息,它們可以由第一集成電路上的處理器來使用。第一集成電路上的處理器可以是任何適當(dāng)?shù)慕Y(jié)構(gòu)??梢栽诟鶕?jù)本發(fā)明的SoC中被使用的處理器結(jié)構(gòu)的例子是MIPS結(jié)構(gòu)。然而,本發(fā)明不限于任何特殊的處理器結(jié)構(gòu)。第一集成電路可以執(zhí)行任何任意函數(shù);可以是被稱為SoC的一類集成電路;并可以是包括JTAG測試電路(例如邊界掃描寄存器、TAP控制器、模式選擇寄存器、旁路寄存器、等等)的一個SoC。第一IC包括一個其中可以存儲程序代碼的存儲器(盡管上面提到,然而替換實(shí)施例在IC之外也具有這個存儲器)。第一集成電路一般包括一個允許信息被傳送到/出存儲器的通道,比如由EJTAG電路所提供的通道。第一程序代碼在第一IC中被存儲704。如圖7中所示,第二程序代碼從第一存儲器被傳送到第一IC,而第二程序代碼從第一IC被發(fā)射到連接到第一IC的第二IC。第二IC可以執(zhí)行任何的任意函數(shù);可以是被稱為SoC的一類集成電路;并且可以是包括用于通信的JTAG測試電路接口的一個SoC。第二程序代碼在第二IC中被存儲710。應(yīng)當(dāng)指出,經(jīng)由第一集成電路和任何根據(jù)本發(fā)明在中間耦合的集成電路,一個或多個輔助的集成電路可以從第一存儲器接收代碼。第二程序代碼從第一IC發(fā)射到第二IC的過程可以通過任何適當(dāng)?shù)慕涌诜桨竵硗瓿?。在本發(fā)明的一些實(shí)施例中,接口裝置由包括在第一和第二集成電路內(nèi)的JTAG測試電路提供。應(yīng)當(dāng)指出,數(shù)據(jù)傳送可以但不要求用流水線方式進(jìn)行,將被傳送的一部分?jǐn)?shù)據(jù)被移動,然后過程被重復(fù)直到所需數(shù)據(jù)已經(jīng)全部被傳送為止。
參考圖8,根據(jù)本發(fā)明的另一個說明性的進(jìn)程被示出。在第一操作802中,第一程序代碼從第一存儲器被傳送到第一IC。第一存儲器一般是單片非易失性存儲器IC。第一程序代碼一般包括可由第一IC內(nèi)集成的處理器來執(zhí)行的多個指令。第一程序代碼還可包括數(shù)據(jù)。第一IC可以執(zhí)行任何任意函數(shù);可以是被稱為SoC的一類集成電路;并且可以是包括JTAG測試電路的一個SoC。第一IC包括其中可以存儲程序代碼的一個存儲器。第一程序代碼被存儲在第一IC中804。然后,第一IC至少運(yùn)行一部分第一程序代碼806。響應(yīng)于在第一IC中運(yùn)行至少一部分第一程序代碼,第二程序代碼從第一存儲器被傳送到第一IC。
還響應(yīng)于運(yùn)行至少一部分第一程序代碼,第二程序代碼從第一IC被發(fā)射810到連接到第一IC的第二IC。第二IC可以執(zhí)行任何的任意函數(shù);可以是被稱為SoC的一類集成電路;并且可以是包括JTAG測試電路的一個SoC。在本發(fā)明的說明性實(shí)施例中,第二程序代碼經(jīng)由它的JTAG數(shù)據(jù)輸出管腳被逐次移出第一IC,并且經(jīng)由第二IC的JTAG數(shù)據(jù)輸入端被逐次移入第二IC。第二程序代碼被存儲在第二IC中812,因此它可以由第二IC內(nèi)包括的處理器來執(zhí)行。應(yīng)當(dāng)指出,經(jīng)由第一IC和任何根據(jù)本發(fā)明在中間耦合的IC,一個或多個輔助的IC可以從第一存儲器接收代碼。
在一個說明性的實(shí)施例中,第一IC從外存儲器加載程序代碼然后引導(dǎo)到一個狀態(tài)中,它可以從那個狀態(tài)開始把代碼下載到一個或多個它連接的下游集成電路中(直接或間接地)。在此類實(shí)施例中,第一IC可以初始化第二IC的存儲控制器,把代碼下載到第二IC的存儲器中,以及設(shè)置從第二IC的存儲器運(yùn)行的第二IC的嵌入式處理器。同樣地,第一IC把代碼下載到每個下游IC并起動每個下游IC。
在一個替換的說明性實(shí)施例中,在第一IC開始把代碼下載到下游集成電路的進(jìn)程之前,第一IC從外存儲器加載程序代碼但是只引導(dǎo)向限制范圍,而不是引導(dǎo)向它的完全功能狀態(tài)。在一個或多個下游裝置已經(jīng)載入程序代碼之后,第一集成電路可以返回其引導(dǎo)操作。因為下游裝置在第一IC完成其引導(dǎo)操作之前就已經(jīng)開始了它們相應(yīng)的引導(dǎo)操作,所以總的系統(tǒng)引導(dǎo)時間可以通過啟動并行處理來降低。
在又一個替換實(shí)施例中,代碼可以被同時下載到兩個或多個下游裝置中。
盡管已經(jīng)針對具有多個包括處理器的集成電路的電子產(chǎn)品以及將程序代碼下載到那些集成電路以由處理器執(zhí)行,描述了本發(fā)明不同的說明性實(shí)施例,然而應(yīng)當(dāng)指出本發(fā)明具有更廣泛地的適用性。例如,說明性的電子產(chǎn)品中的一個或多個IC可接收數(shù)據(jù)或控制信息而不接收適于運(yùn)行的程序代碼。如上面提到的,根據(jù)本發(fā)明,從單個存儲器接收信息的下游集成電路與另一個安排在存儲器和接收信息的IC中間的IC接口。另外,盡管在本發(fā)明的說明性實(shí)施例中描述了基于JTAG的接口,然而任何適當(dāng)?shù)慕涌诙伎捎糜谠趩蝹€外存儲器和電子產(chǎn)品內(nèi)包括的不同集成電路之間的數(shù)據(jù)傳送操作。
應(yīng)當(dāng)指出,在本發(fā)明的不同說明性實(shí)施例中提及的單個外存儲器芯片可能在其中還包括用于執(zhí)行任何隨機(jī)功能的電路。
本發(fā)明的不同實(shí)施例用一個新穎的方法結(jié)合了多個諸如依從JTAG的SoC之類的單獨(dú)集成電路的現(xiàn)有硬件能力,從而提供了用于減少電子產(chǎn)品的尺寸、成本和功率消耗的系統(tǒng)和方法。
在一些實(shí)施例中,單獨(dú)集成電路的JTAG調(diào)試能力在生產(chǎn)環(huán)境中被結(jié)合,因此系統(tǒng)中每個IC的代碼圖像都可以被存儲在附著于EJTAG主起動裝置的單個閃速存儲器中,并且在EJTAG主裝置已經(jīng)被引導(dǎo)的時候就可以被下載到每個目標(biāo)裝置中。
應(yīng)當(dāng)理解,本發(fā)明不受限于上述的實(shí)施例,而是包含附加權(quán)利要求范圍內(nèi)的任何和所有實(shí)施例。
權(quán)利要求
1.一個從設(shè)置在基片上的第一存儲器向設(shè)置在基片上的多個集成電路(IC)傳送編程指令的方法,包括訪問(702)第一存儲器的多個IC中的第一個IC,檢索第一組編程指令并把第一組編程指令存儲(704)在多個IC的第一個IC內(nèi);和訪問第一存儲器集成電路的多個IC中的第一個IC,檢索(706)第二組編程指令并把第二組編程指令發(fā)射(708)到多個IC中的第二個IC。
2.權(quán)利要求1的方法,其中,多個IC中的第一和第二IC分別包括一個能夠運(yùn)行第一和第二組編程指令的處理器。
3.權(quán)利要求2的方法,還包括運(yùn)行至少一部分第一組編程指令的多個IC中的第一IC。
4.權(quán)利要求3的方法,其中,在把第二組編程指令發(fā)射到多個IC中的第二IC之前,運(yùn)行至少一部分第一組編程指令。
5.權(quán)利要求2的方法,還包括訪問第一存儲器的多個IC中的第一IC檢索第一組數(shù)據(jù),并把第一組數(shù)據(jù)存儲在多個IC中的第一IC內(nèi);和訪問第一存儲器的多個IC中的第一IC,檢索第二組數(shù)據(jù),并把第二組數(shù)據(jù)發(fā)射到多個IC中的第二IC。
6.權(quán)利要求3的方法,其中,基片包括一個印刷電路板。
7.權(quán)利要求3的方法,其中,發(fā)射包括串行地將數(shù)據(jù)移出第一集成電路和同時將數(shù)據(jù)移入第二集成電路。
8.權(quán)利要求7的方法,還包括在把第二組編程指令發(fā)射到多個IC中的第二IC之前,把控制信息從第一集成電路發(fā)射到第二集成電路。
9.權(quán)利要求8的方法,其中,控制信息控制多個IC中的第二接收后續(xù)發(fā)射的編程指令。
10.在一個包括多個設(shè)置在印刷電路板上的集成電路的IC系統(tǒng)(500)中,每個IC(502、508、512)都包括用于至少存儲編程指令的存儲器(506、510、514),每個IC還包括連接到存儲器的用于運(yùn)行存儲在存儲器中的編程指令的處理器;系統(tǒng)還包括印刷電路板上設(shè)置的并僅為了存儲訪問多個IC中的第一IC(502)而被耦合的單個非易失性存儲器(504),一個從單個非易失性存儲器(504)把代碼下載到多個(502、508、512)IC中的每一個IC的方法,包括在多個IC中的第一IC處從單個非易失性存儲器接收(802)第一組數(shù)據(jù);把第一組數(shù)據(jù)存儲(804)在多個IC中的第一IC的存儲器中;在多個IC中的第一IC處從單個非易失性存儲器接收第二組數(shù)據(jù);把第二組數(shù)據(jù)從多個IC中的第一IC發(fā)射到多個IC中的第二IC;和把第二組數(shù)據(jù)存儲在多個IC中的第二IC的存儲器中;其中,第一和第二組數(shù)據(jù)包括程序代碼。
11.權(quán)利要求10的方法,還包括在第一IC中運(yùn)行(806)第一組數(shù)據(jù)中的至少一部分程序代碼;在多個IC中的第一IC處,從單個非易失性存儲器接收第三組數(shù)據(jù);把第三組數(shù)據(jù)從多個IC中的第一IC發(fā)射到多個IC中的第三IC;和把第三組數(shù)據(jù)存儲在多個IC中的第三IC的存儲器中;
12.權(quán)利要求10的方法,其中,從多個IC的第一IC把第二組數(shù)據(jù)發(fā)射(808)到多個IC的第二IC包括經(jīng)由輸出端串行地把數(shù)據(jù)移出多個IC中的第一IC;其中,輸出端被連接到多個IC中的第二IC的輸入端,輸入端被連接到多個IC中的第二IC內(nèi)的適于接收串行數(shù)據(jù)的電路。
13.權(quán)利要求12的方法,還包括在發(fā)射第二組數(shù)據(jù)之前,把控制信息從多個IC中的第一IC發(fā)射到多個IC中的第二IC。
14.權(quán)利要求13的方法,其中,控制信息根據(jù)通信的JTAG標(biāo)準(zhǔn)來發(fā)射。
15.一個電子產(chǎn)品,包括具有第一處理器、第一內(nèi)部存儲器、第一串行通信接口和外存儲接口的第一集成電路;連接到外存儲接口的外存儲器;具有第二處理器、第二內(nèi)部存儲器、和被連接到第一串行通信接口的第二串行通信接口的第二集成電路;其中,第一集成電路、外存儲器、和第二集成電路被設(shè)置在基片上。
16.權(quán)利要求15的電子產(chǎn)品,其中,第一處理器被連接到第一內(nèi)部存儲器,第一內(nèi)部存儲器適合于接收第一代碼圖像,第二處理器被連接到第二內(nèi)部存儲器,第二內(nèi)部存儲器適合于接收第二代碼圖像,并且外存儲器是用第一和第二代碼圖像編碼的非易失性存儲器。
17.權(quán)利要求16的電子產(chǎn)品,其中,第一集成電路包括用于至少執(zhí)行第一功能的第一硬件設(shè)備,而第二集成電路包括用于至少執(zhí)行第二功能的第二硬件設(shè)備,并且第一和第二功能是不同的。
18.權(quán)利要求17的電子產(chǎn)品,還包括第三集成電路,第三集成電路具有第三處理器、第三內(nèi)部存儲器、和被連接到第二串行通信接口的第三串行通信接口,第三處理器被連接到第三內(nèi)部存儲器,第三內(nèi)部存儲器適合于接收第三代碼圖像,并且外存儲器還用第三代碼圖像來編碼。
全文摘要
一個電子產(chǎn)品(500),包括連接到第一存儲器(506)的第一集成電路(502),并至少包括一個被連接(516、518、520)第一集成電路的第二集成電路(508、512)。第一集成電路從第一存儲器把諸如第一代碼圖像之類的信息載入第一集成電路,并運(yùn)行至少一部分第一代碼圖像。響應(yīng)于這類代碼執(zhí)行,第一集成電路從第一存儲器讀取諸如第二代碼圖像之類的信息并將那些信息發(fā)射到第二集成電路。在第一和第二集成電路之間用于信息發(fā)射的接口可以是諸如JTAG電路之類的測試電路(522、528、526、524)接口。在一個實(shí)施例中,用逐次連接JTAG數(shù)據(jù)和控制插腳的方法,程序代碼從單個外存儲器經(jīng)由第一集成電路被傳送到一個或多個下游集成電路。
文檔編號G06F15/177GK1729452SQ200380107125
公開日2006年2月1日 申請日期2003年12月17日 優(yōu)先權(quán)日2002年12月18日
發(fā)明者P·奧馬圖納 申請人:皇家飛利浦電子股份有限公司