本發(fā)明是有關(guān)于一種芯片制造技術(shù),且特別是有關(guān)于一種芯片制造方法及其芯片。
背景技術(shù):
系統(tǒng)級(jí)封裝(System in Package;SiP)是將一個(gè)系統(tǒng)或子系統(tǒng)的全部或大部份電子功能配置在整合型基板內(nèi),而將芯片連結(jié)到整合型基板的封裝方式。當(dāng)SiP芯片出廠時(shí),通常會(huì)藉由芯片中預(yù)設(shè)的固有程序?qū)Υ诵酒M(jìn)行燒錄或是初始化,以實(shí)現(xiàn)SiP芯片的制造及量產(chǎn)。并且,在芯片進(jìn)行燒錄或是初始化完成后,上述的固有程序仍然存在于芯片中。其他類(lèi)型的芯片也有類(lèi)似情形,例如系統(tǒng)芯片(System in Chip;SoC)、積體電路芯片…等。
然而,部分芯片廠商認(rèn)為,芯片中預(yù)設(shè)的固有程序可能會(huì)成為安全防護(hù)上的系統(tǒng)漏洞而成為惡意攻擊的目標(biāo)之一。換句話說(shuō),若想要提升芯片的安全性,應(yīng)避免在芯片中設(shè)置固有程序。因此,廠商皆在思考如何避免使用固有程序來(lái)進(jìn)行芯片制造及量產(chǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種芯片制造方法及其芯片,此芯片不具備可能會(huì)成為系統(tǒng)漏洞的固有程序,藉此提高安全性,并讓此芯片能夠支持多樣化的通訊接口來(lái)透過(guò)外部裝置進(jìn)行芯片初始化。
本發(fā)明的芯片制造方法包括下列步驟。在芯片的可擦寫(xiě)存儲(chǔ)器中預(yù)先設(shè)置裝載器程序。啟動(dòng)此裝載器程序,以進(jìn)行芯片初始化。以及,在此芯片初始化完成后,抹除位于此可擦寫(xiě)存儲(chǔ)器中的裝載器程序。
本發(fā)明的芯片用以與外部裝置通訊。此芯片包括只讀存儲(chǔ)器、可擦寫(xiě)存儲(chǔ)器、控制模塊以及通訊模塊??刂颇K耦接此只讀存儲(chǔ)器以及此可擦寫(xiě)存儲(chǔ)器。所述控制模塊在此可擦寫(xiě)存儲(chǔ)器中預(yù)先設(shè)置裝載器程序,并禁能此只讀存儲(chǔ)器。通訊模塊耦接此 控制模塊。所述控制模塊透過(guò)此通訊模塊以與外部裝置通訊并啟動(dòng)所述裝載器程序,進(jìn)而進(jìn)行芯片初始化,并且在此芯片初始化完成后,抹除位于此可擦寫(xiě)存儲(chǔ)器中的裝載器程序。
本發(fā)明的芯片包括只讀存儲(chǔ)器、可擦寫(xiě)存儲(chǔ)器以及控制模塊??刹翆?xiě)存儲(chǔ)器具有裝載器程序??刂颇K則耦接只讀存儲(chǔ)器以及可擦寫(xiě)存儲(chǔ)器。控制模塊用以禁能此只讀存儲(chǔ)器。
基于上述,本發(fā)明實(shí)施例所述的芯片及其芯片制造方法,在首次出廠的芯片的可擦寫(xiě)存儲(chǔ)器中預(yù)先設(shè)置裝載器程序,并藉由此裝載器程序以及外部裝置來(lái)進(jìn)行芯片的初始化操作。然后,在芯片的初始化操作完成后,便抹除可擦寫(xiě)存儲(chǔ)器中的裝載器程序。藉此,完成初始化操作的芯片便不具備可能成為系統(tǒng)漏洞的固有程序,從而提高安全性。另一方面,此芯片能夠透過(guò)裝載器程序來(lái)支持多樣化的通訊接口,讓使用者可以采用與這些通訊接口相符的外部裝置即可進(jìn)行芯片初始化。
為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖式作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
圖1是依照本發(fā)明一實(shí)施例的一種芯片以及外部裝置的方塊圖。
圖2是依照本發(fā)明一實(shí)施例的一種芯片制造方法的流程圖。
圖3是圖2中步驟S230的細(xì)節(jié)流程圖。
圖4是當(dāng)通訊接口為通用非同步收發(fā)傳輸器(UART)接口時(shí)進(jìn)行芯片初始化的詳細(xì)流程示意圖。
圖5是當(dāng)通訊接口為通用串行總線(USB)接口或是網(wǎng)絡(luò)接口時(shí)進(jìn)行芯片初始化的詳細(xì)流程示意圖。
圖6是依照本發(fā)明另一實(shí)施例的一種芯片的方塊圖。
具體實(shí)施方式
本發(fā)明實(shí)施例是在剛出廠的芯片中將其內(nèi)部的只讀存儲(chǔ)器禁能,并且預(yù)先設(shè)置可被抹除的裝載器程序在芯片的可擦寫(xiě)存儲(chǔ)器中。藉由芯片中的裝載器程序,并透過(guò)此裝載器程序以及外部裝置(如,電腦或?qū)俚男酒跏蓟瘷C(jī)臺(tái))的通訊來(lái)進(jìn)行芯片的 初始化操作。在芯片的初始化操作完成后,便抹除芯片中的裝載器程序。如此一來(lái),初始化后的芯片便不會(huì)具備裝載器程序,從而提高芯片安全性。以下提出相應(yīng)實(shí)施例以詳細(xì)說(shuō)明本發(fā)明的精神。
圖1是依照本發(fā)明一實(shí)施例的一種芯片100以及外部裝置160的方塊圖。芯片100包括控制模塊110、通訊模塊120、只讀存儲(chǔ)器130以及可擦寫(xiě)存儲(chǔ)器140。通訊模塊120中還包括通訊接口150。芯片100可以是系統(tǒng)級(jí)封裝(SiP)芯片、系統(tǒng)芯片或積體電路芯片。應(yīng)用本實(shí)施例者并不限制芯片的應(yīng)用技術(shù)領(lǐng)域。
控制模塊110可以是芯片中的控制電路。通訊模塊150可以是多種通訊協(xié)議各自的通訊電路以及對(duì)應(yīng)的通訊接口。本實(shí)施例中的通訊模塊150可以同時(shí)支持通用非同步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter;UART)通訊協(xié)議、通用串行總線(Universal Serial Bus;USB)通訊協(xié)議和/或網(wǎng)絡(luò)封包通訊協(xié)議,因此通訊接口150可以包括UART接口(如,RS232電腦串列埠)、USB接口和/或網(wǎng)絡(luò)接口(如,RJ45乙太網(wǎng)絡(luò)連接器接口)。控制模塊110可透過(guò)通訊模塊120以及通訊接口150與外部裝置160相互通訊。
只讀存儲(chǔ)器130可以是可程式只讀存儲(chǔ)器(Programmable ROM;PROM)或是可抹除可編程只讀存儲(chǔ)器(Erasable Programmable Read Only Memory;EPROM)。可擦寫(xiě)存儲(chǔ)器140則可以是以NOR形式或以NAND形式生產(chǎn)的快閃存儲(chǔ)器。
圖2是依照本發(fā)明一實(shí)施例的一種芯片制造方法的流程圖。本發(fā)明實(shí)施例的芯片制造方法適用于圖1的芯片100。請(qǐng)同時(shí)參照?qǐng)D1與圖2,于步驟S210中,廠商會(huì)在芯片出廠前,在芯片100的可擦寫(xiě)存儲(chǔ)器140中預(yù)先設(shè)置裝載器程序145。裝載器程序145可以是用于芯片100大量生產(chǎn)以及制造時(shí)所采用的MPLoader程序。此裝載器程序145為一種軟體程序,由多個(gè)指令所組成。另一方面,為了避免只讀存儲(chǔ)器130中所搭載的程序被惡意利用,本發(fā)明實(shí)施例于步驟S220中特別在芯片100出廠前禁能只讀存儲(chǔ)器130。步驟S220與步驟S210皆為芯片100在初始化前的步驟,步驟S210與步驟S220兩者的順序可以互換,也可以同時(shí)進(jìn)行。
接下來(lái)則進(jìn)行芯片初始化的步驟。于步驟S230中,將尚未初始化的芯片100啟動(dòng),此時(shí)芯片100中的控制模塊110便會(huì)啟動(dòng)位于可擦寫(xiě)存儲(chǔ)器140中的裝載器程序145,以透過(guò)通訊模塊120與外部裝置160通訊并進(jìn)行芯片初始化。于步驟S240中,當(dāng)芯片100初始化完成之后,控制模塊110便會(huì)抹除位于可擦寫(xiě)存儲(chǔ)器140中的裝載器程序 145。于步驟S250中,控制模塊110還會(huì)設(shè)置另一個(gè)啟動(dòng)讀取程序至芯片100的可擦寫(xiě)存儲(chǔ)器140中。于步驟S260中,控制模塊110便重啟芯片100。藉此,芯片100中的控制模塊110在重啟后,可藉由啟動(dòng)此啟動(dòng)讀取程序來(lái)執(zhí)行芯片的功能。
在此詳細(xì)說(shuō)明步驟S230所述之芯片初始化的細(xì)節(jié)流程。圖3是圖2中步驟S230的細(xì)節(jié)流程圖。于步驟S310中,在執(zhí)行裝載器程序145之后,控制模塊110依據(jù)芯片100與外部裝置160之間所使用的通訊接口來(lái)決定將外部裝置160或是芯片100作為主機(jī)端,未做為主機(jī)端的另一個(gè)裝置便作為從屬端。在決定主機(jī)端以及從屬端之后,此主機(jī)端便依據(jù)通訊接口150來(lái)與從屬端通訊,從而進(jìn)行芯片量產(chǎn)初始化。
詳細(xì)來(lái)說(shuō),當(dāng)芯片100與外部裝置160之間所使用的通訊接口150為UART接口450時(shí),則請(qǐng)同時(shí)參考圖3及圖4,于步驟S320中,控制模塊110將外部裝置160作為主機(jī)端,且將芯片100作為從屬端。于步驟S330中,外部裝置160使芯片100與外部裝置160相互同步,并且外部裝置160傳送初始化程序410給芯片100,并讓控制模塊110執(zhí)行此初始化程序410。于步驟S340中,外部裝置160便與初始化程序410相互同步,并且初始化程序410從外部裝置160獲得一壓縮碼。于步驟S350中,外部裝置160指示初始化程序410以對(duì)此壓縮碼解壓縮來(lái)獲得初始化編碼。并且,于步驟S360中,外部裝置160指示初始化程序410以將此初始化編碼燒錄于芯片100中。藉此,便完成芯片初始化。
當(dāng)芯片100與外部裝置160之間所使用的通訊接口150為USB接口/網(wǎng)絡(luò)接口550時(shí),則請(qǐng)同時(shí)參考圖3及圖5,于步驟S370中,控制模塊110將芯片100作為主機(jī)端,且將外部裝置160作為從屬端。于步驟S380中,裝載器程序145使芯片100與外部裝置160相互同步,并且外部裝置160傳送初始化程序410給芯片100,并讓控制模塊110執(zhí)行此初始化程序510。于步驟S390中,初始化程序510與外部裝置160相互同步,且使芯片從外部裝置160獲得一壓縮碼。于步驟S392中,初始化程序510便對(duì)此壓縮碼解壓縮來(lái)獲得初始化編碼。并且,于步驟S394中,初始化程序510將此初始化編碼燒錄于芯片100。藉此,便完成芯片初始化。
圖6是依照本發(fā)明另一實(shí)施例的一種芯片600的方塊圖。芯片600包括只讀存儲(chǔ)器630、可擦寫(xiě)存儲(chǔ)器640以及控制模塊610。本發(fā)明實(shí)施例的芯片600在出廠時(shí)會(huì)將只讀存儲(chǔ)器630禁能,直到將初始化編碼燒錄于芯片600中的只讀存儲(chǔ)器630中為止。本發(fā)明實(shí)施例的其他細(xì)節(jié)流程請(qǐng)參照上述其他實(shí)施例。
藉此,以往芯片中的固有程序僅采用UART通訊協(xié)議來(lái)與外部裝置進(jìn)行芯片初始化,使得數(shù)據(jù)的傳輸速度緩慢。本發(fā)明實(shí)施例的芯片則可透過(guò)裝載器程序及通訊模塊中的多樣化通訊接口來(lái)與外部裝置相互通訊。此外,通用串行總線(USB)通訊協(xié)議和網(wǎng)絡(luò)封包通訊協(xié)議的數(shù)據(jù)傳輸速度皆快于UART通訊協(xié)議,并且USB通訊協(xié)議與網(wǎng)絡(luò)封包通訊協(xié)議均為芯片上有的功能元件。相對(duì)來(lái)說(shuō),目前較少采用UART通訊協(xié)議的專(zhuān)用設(shè)備。因此,若采用USB通訊協(xié)議與網(wǎng)絡(luò)封包通訊協(xié)議來(lái)進(jìn)行芯片初始化的話,便可不需要采用UART通訊協(xié)議的專(zhuān)用設(shè)備來(lái)做為外部裝置,藉以節(jié)省成本。
綜上所述,本發(fā)明本發(fā)明實(shí)施例所述的芯片及其芯片制造方法是在首次出廠的芯片的可擦寫(xiě)存儲(chǔ)器中預(yù)先設(shè)置可支持多種通訊接口的裝載器程序,并藉由此裝載器程序以及外部裝置來(lái)進(jìn)行芯片的初始化操作。然后,在芯片的初始化操作完成后,便抹除可擦寫(xiě)存儲(chǔ)器中的裝載器程序。藉此,完成初始化操作的芯片便不具備可能成為系統(tǒng)漏洞的固有程序,從而提高安全性。另一方面,此芯片能夠透過(guò)裝載器程序來(lái)支持多樣化的通訊接口,讓使用者可以采用與這些通訊接口相符的外部裝置即可進(jìn)行芯片初始化。
雖然本發(fā)明已以實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤(rùn)飾,故本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求所界定者為準(zhǔn)。