專利名稱:一種支持處理器硅后調(diào)試的裝置和方法
技術領域:
本發(fā)明涉及計算機系統(tǒng)驗證領域,更具體地涉及處理器硅后調(diào)試領域,特別是涉
及一種支持處理器硅后調(diào)試的裝置和方法。
背景技術:
在計算機系統(tǒng)驗證領域中,隨著芯片規(guī)模的增大,第一次流片不可避免地會存在錯誤,因此需要進行硅后調(diào)試,但是因為絕大多數(shù)的信號變化都發(fā)生在硅片內(nèi)部,設計人員難以了解芯片的工作情況,因此會對調(diào)試工作造成極大的困難。 —般的調(diào)試支持手段在芯片內(nèi)加入一些分析邏輯,把內(nèi)部工作情況采集到存儲器,以使內(nèi)部信號可見。這種方法的主要缺點是采集的信號數(shù)量和時間長度受存儲器容量所限,且可觀測的信號在芯片設計時就已決定,無法更改。對于處理器這樣復雜的設計而言,逃逸到硅后的邏輯錯誤通常需要非常微妙的條件才會觸發(fā)。如果不能提供完全的可觀測性,要直接在硅片上找到錯誤的根源幾乎是不可能的。 要觀測所有的內(nèi)部信號只有在仿真器中才可能實現(xiàn)。因為實際系統(tǒng)受到諸多因素的影響,不可能以任意低的頻率運行,而高頻下捕捉大量的內(nèi)部信號并實時地送到片外也不現(xiàn)實。因此,最佳方案是讓實際系統(tǒng)的行為可以被仿真器精確地建模,在兩者之間建立一一映射關系,從而使錯誤能夠在仿真器中重現(xiàn),精確地還原出芯片中真實的工作情況。
在現(xiàn)有技術中,一般是將處理器流水線中的指令清空,從而可以得到簡單確定的體系結構狀態(tài),使其能在仿真器中恢復。但是這種方法沒有以底層硬件的確定性為基礎,無法精確地將實際硬件與仿真器對應起來。 此外,確定性是實際系統(tǒng)可被仿真器精確建模的前提。主要的不確定性來源是跨時鐘域信號傳輸。這可通過若干已公開的方法消除,如使用比例同步時鐘(RSC, ratioedsynchronous clock),或者通過確定性同步器完成跨時鐘域傳輸。有了確定性,要做到硅片可仿真調(diào)試的主要難點在于取得被調(diào)試芯片的輸入。 圖1是基于一個常見的處理器系統(tǒng)的結構示意圖。該系統(tǒng)包括處理器核、內(nèi)存、啟動閃存、串口、網(wǎng)卡、硬盤控制器等部件。由于網(wǎng)絡和硬盤訪問受各種隨機因素的影響,這樣的一個系統(tǒng)通常難以做到確定化。如果要支持硅后仿真調(diào)試,則需要在總線上加入記錄設備,錄制所有不確定的IO信號,用于在仿真調(diào)試中作為輸入?,F(xiàn)有技術中已存在一些方法來使用專門的記錄芯片,或者邏輯分析儀抓取外部輸入,但是實現(xiàn)起來難度大,成本高,因此就需要一種更好的調(diào)試裝置和方法來解決該問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種支持處理器硅后調(diào)試的裝置和方法,其使一個處理器系統(tǒng)在硅后驗證時支持仿真調(diào)試,從而加速硅后驗證的過程。本發(fā)明能夠以最小代價改造一個處理器系統(tǒng),使其具有確定性,并且能夠方便地進行硅后仿真調(diào)試。
為實現(xiàn)本發(fā)明目的而提供的一種支持處理器硅后調(diào)試的裝置,包括調(diào)試主機和驗證系統(tǒng),其中驗證系統(tǒng)包括基本系統(tǒng)、調(diào)試控制器和網(wǎng)卡,其特征在于 基本系統(tǒng)為可支持處理器核驗證并且還有確定性的最小系統(tǒng),包括處理器核、內(nèi)
存、啟動閃存、串口輸出和時鐘控制模塊; 其中,時鐘控制模塊用于使各功能時鐘可被確定地停下,從而進入暫停狀態(tài),在暫停狀態(tài)下處理器中所有的內(nèi)部狀態(tài)都可通過測試接口用掃描鏈訪問; 驗證系統(tǒng)還包括調(diào)試控制器,用于與調(diào)試主機相連,使之可以遠程地讀取或者控制基本系統(tǒng)的接口信號。 為實現(xiàn)本發(fā)明的目的還提供一種支持處理器硅后調(diào)試的方法,其特征在于,包括下面的步驟 A、準備驗證環(huán)境步驟,用于在基本系統(tǒng)內(nèi)部初始化驗證所需要的軟件環(huán)境;
B、運行驗證程序步驟,用于在基本系統(tǒng)中運行驗證程序; C、系統(tǒng)狀態(tài)導入步驟,用于將保存在調(diào)試主機中的系統(tǒng)狀態(tài)加載到基本系統(tǒng)中;
D、系統(tǒng)狀態(tài)導出步驟,用于將基本系統(tǒng)系統(tǒng)的狀態(tài)導出保存到調(diào)試主機中;
E、建立快照點步驟,用于清理基本系統(tǒng)的狀態(tài),使其可被干凈地導入導出。
本發(fā)明的有益效果是 本發(fā)明只需少量的硬件支持就可實現(xiàn)處理器系統(tǒng)的仿真調(diào)試,使得硅后調(diào)試的可見性極大化,調(diào)試復雜度大大降低。
圖1是基于一個常見的處理器系統(tǒng)的結構示意圖; 圖2是依據(jù)本發(fā)明的一個具體實施例的處理器硅后驗證系統(tǒng)的結構示意圖; 圖3是依據(jù)本發(fā)明的一個具體實施例的時鐘控制模塊的結構示意圖; 圖4是依據(jù)本發(fā)明的一個具體實施例的基本系統(tǒng)外部接口的結構示意圖; 圖5是依據(jù)本發(fā)明的一個具體實施例的調(diào)試控制器的內(nèi)部結構示意圖; 圖6是依據(jù)本發(fā)明的一個具體實施例的驗證及仿真調(diào)試方法的流程圖; 圖7是依據(jù)本發(fā)明的一個具體實施例的引導服務軟件所執(zhí)行的流程圖。
具體實施例方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明的支持處理器硅后調(diào)試的裝置和方法進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明而不是對本發(fā)明的限制。 本發(fā)明是在以如圖l所示的常見的處理器系統(tǒng)基礎上,定義實現(xiàn)了一個基本系統(tǒng),如圖l虛線框所示,僅由驗證處理器必要的部件組成,包括處理器核、內(nèi)存、啟動閃存、串口輸出和時鐘控制模塊。當驗證軟件局限在這個基本系統(tǒng)內(nèi)部運行時,沒有來自外部的輸入信號,因而在這個基本系統(tǒng)具有確定性的前提下,只要知道系統(tǒng)初始狀態(tài)就可實現(xiàn)硅片仿真調(diào)試。 圖2是依據(jù)本發(fā)明的一個具體實施例的處理器硅后驗證系統(tǒng)的結構示意圖。如圖2所示,處理器硅后驗證系統(tǒng)包括調(diào)試主機、驗證系統(tǒng)兩部分。調(diào)試主機控制驗證過程,與驗證系統(tǒng)間通過JTAG、 UART和網(wǎng)絡接口相連。其中,JTAG接口是常見的調(diào)試接口,在這里被用于運行模式、復位等信號的控制和訪問掃描鏈;UART是簡單的低速通訊接口,用于輸出調(diào)試信息或者連接交互式終端;網(wǎng)絡接口的帶寬較高,用于在調(diào)試主機和驗證系統(tǒng)間傳送大量數(shù)據(jù)。 驗證系統(tǒng)由基本系統(tǒng)、調(diào)試控制器和網(wǎng)卡組成。其中,基本系統(tǒng)包括處理器核、內(nèi)存、啟動閃存、串口輸出和時鐘控制模塊,足以運行測試程序。在運行測試時,軟件局限在基本系統(tǒng)內(nèi)部運行,不會訪問基本系統(tǒng)以外的外部設備。由于基本系統(tǒng)內(nèi)各模塊均為具有確定性的單時鐘同步模塊,模塊之間的交互使用確定性同步器同步,因此整個基本系統(tǒng)行為可完全確定。 基本系統(tǒng)中還包括時鐘控制模塊,其結構如圖3所示,圖3是依據(jù)本發(fā)明的一個具體實施例的時鐘控制模塊的結構示意圖。測試軟件可通過寫一個停時鐘請求信號,將各功能模塊的時鐘確定地停下,從而進入暫停狀態(tài)。在圖3中,虛線框代表一個時鐘域,里面包含功能邏輯。功能邏輯的時鐘由時鐘起停器控制,當起停器收到停時鐘請求(上升沿)后將功能邏輯的時鐘關閉,收到繼續(xù)信號結束后(下降沿)恢復功能邏輯的時鐘。繼續(xù)信號同時還作為全局同步信號,供確定性同步器初始化。 暫停狀態(tài)下處理器中所有的內(nèi)部狀態(tài)都可通過測試接口用掃描鏈訪問。其它部分的狀態(tài)總是已知的或者可通過軟件初始化啟動閃存在未進行讀操作時的狀態(tài)固定,不需要記錄其狀態(tài);內(nèi)存的內(nèi)容可以用在處理器上運行的軟件讀出或者寫入;調(diào)試串口的狀態(tài)可用軟件初始化。這樣,整個基本系統(tǒng)的狀態(tài)便可導入導出。 基本系統(tǒng)的外部接口如圖4所示,圖4是依據(jù)本發(fā)明的一個具體實施例的基本系統(tǒng)外部接口的結構示意圖。該基本系統(tǒng)接口包括1、時鐘整個基本系統(tǒng)的唯一參考時鐘;2、復位系統(tǒng)復位,送到各模塊和同步器的復位輸入;3、運行模式表示當前運行模式,供引導服務軟件選擇執(zhí)行路徑;4、暫停狀態(tài)信號,指示基本系統(tǒng)各功能模塊時鐘已停止,進入暫停狀態(tài);5、繼續(xù)讓基本系統(tǒng)離開暫停狀態(tài),恢復功能模塊的時鐘;6、測試接口 處理
器測試接口 ,符合JTAG標準,與測試掃描鏈相連,可訪問處理器中所有的內(nèi)部狀態(tài)。
這些接口信號除了時鐘外,都與調(diào)試控制器連接。調(diào)試控制器為普通的JTAG TAP控制器,其主要功能就是讓調(diào)試主機可以遠程地讀取或者控制基本系統(tǒng)的接口信號。
調(diào)試控制器的內(nèi)部結構如圖5所示,圖5是依據(jù)本發(fā)明的一個具體實施例的調(diào)試控制器的內(nèi)部結構示意圖。調(diào)試控制器由TAP接口、復位控制寄存器、運行模式寄存器、暫停狀態(tài)寄存器、斷點自動繼續(xù)數(shù)目寄存器和脈沖生成器組成。復位控制、運行模式、暫停狀態(tài)寄存器分別對應基本系統(tǒng)的接口信號,調(diào)試主機可通過它們設置基本系統(tǒng)的復位信號和運行模式,并取得暫停信號的值。 斷點自動繼續(xù)數(shù)目寄存器與脈沖生成器相連,用于決定基本系統(tǒng)進入暫停狀態(tài)后是否自動恢復。其作用在于使基本系統(tǒng)工作在驗證模式時可以頻繁地進入暫停狀態(tài),并且在無需外部調(diào)試主機參與的情況下就能快速地恢復運行,從而支持頻繁且小開銷的斷點建立。如果自動繼續(xù)數(shù)目寄存器的值大于零,當收到暫停信號后脈沖生成器就會生成一繼續(xù)脈沖送到基本系統(tǒng),同時斷點自動繼續(xù)數(shù)目寄存器的值減一?;鞠到y(tǒng)收到繼續(xù)脈沖后其時鐘控制模塊將為功能邏輯送出時鐘,恢復運行。 基于本發(fā)明的硅后驗證裝置來進行硅后驗證及仿真調(diào)試的流程見圖6,圖6是依據(jù)本發(fā)明的一個具體實施例的驗證及仿真調(diào)試方法的流程圖。其中包含以下幾個主要操作1、準備驗證環(huán)境;2、運行驗證程序;3、系統(tǒng)狀態(tài)導入4、系統(tǒng)狀態(tài)導出;5、建立快照點。
基本系統(tǒng)不包含輸入輸出,所以除運行驗證程序外,這些流程需要在全系統(tǒng)中與調(diào)試主機配合著進行。為清晰起見,下面先介紹驗證系統(tǒng)中的軟件組成及其運行流程。
驗證系統(tǒng)上運行的軟件可分為弓I導服務軟件和驗證系統(tǒng)軟件兩類。其中引導服務軟件放置在啟動閃存中,處理器復位后就開始執(zhí)行。它根據(jù)不同的運行模式完成對應的功能。驗證系統(tǒng)軟件存放在調(diào)試主機中,包含在基本系統(tǒng)中運行的操作系統(tǒng)、測試程序及數(shù)據(jù),要經(jīng)由網(wǎng)絡下載到驗證系統(tǒng)。 驗證系統(tǒng)軟件和引導服務軟件都需要用到內(nèi)存。為使它們不相互干擾,內(nèi)存分成區(qū)域V和區(qū)域P,分別對應驗證系統(tǒng)軟件和引導服務軟件。 圖7是依據(jù)本發(fā)明的一個具體實施例的引導服務軟件所執(zhí)行的流程圖,圖7給出從處理器復位開始的軟件執(zhí)行流程。 下面分別就圖6和圖7中的主要流程進行詳細的描述 1、準備驗證環(huán)境調(diào)試主機將運行模式置于驗證準備模式,進行系統(tǒng)復位。引導服
務軟件通過網(wǎng)絡讀入驗證所需的軟件環(huán)境,存放到內(nèi)存區(qū)域V中。將內(nèi)存控制器置于自刷
新狀態(tài),并進入暫停狀態(tài)。調(diào)試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真。
2、運行驗證程序調(diào)試主機將運行模式置于仿真調(diào)試模式,進行系統(tǒng)復位。引導服
務軟件識別當前運行模式,對基本系統(tǒng)進行初始化,其包括對硬件進行初始化,使其狀態(tài)已
知,將內(nèi)存控制器退出自刷新狀態(tài),屏蔽內(nèi)存區(qū)域P,使其內(nèi)容對基本系統(tǒng)不可見。引導服務
軟件跳轉至區(qū)域V中驗證環(huán)境的入口,啟動驗證系統(tǒng)。驗證系統(tǒng)運行測試程序。
3、系統(tǒng)狀態(tài)導入調(diào)試主機把運行模式置于狀態(tài)導入模式,進行系統(tǒng)復位。引導服
務軟件識別當前運行模式,完成下面操作將內(nèi)存控制器退出自刷新狀態(tài),通過網(wǎng)絡從調(diào)試
主機下載內(nèi)存映像到區(qū)域V中,讓內(nèi)存控制器進入自刷新狀態(tài),發(fā)起停時鐘請求,進入暫停
狀態(tài)。試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真。調(diào)試主機通過調(diào)試接口,用掃描鏈
將被調(diào)試芯片的所有觸發(fā)器、宏單元、SRAM的值寫入。 4、系統(tǒng)狀態(tài)導出調(diào)試主機通過調(diào)試接口,用掃描鏈將被調(diào)試芯片的所有觸發(fā)器、宏單元、SRAM的值讀出。運行模式置于狀態(tài)導出模式,進行系統(tǒng)復位。引導服務軟件識別當前運行模式,完成下面的操作將內(nèi)存控制器退出自刷新狀態(tài),通過網(wǎng)絡將內(nèi)存映像送出到調(diào)試主機,把內(nèi)存控制器置于自刷新狀態(tài),發(fā)起停時鐘請求,進入暫停狀態(tài)。調(diào)試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真。 5、建立快照點驗證系統(tǒng)在一個周期性系統(tǒng)服務中(比如時鐘中斷服務)加入斷點建立代碼。斷點建立代碼被調(diào)用,停止所有訪存操作,并將內(nèi)存控制器置于自刷新狀態(tài)。斷點建立代碼發(fā)起停時鐘請求,進入定長等待循環(huán)?;鞠到y(tǒng)各模塊時鐘確定性地停下,進入暫停狀態(tài),斷點建立完成。 快照點建立完成后驗證系統(tǒng)在調(diào)試控制器控制下,由其決定是否直接從斷點繼續(xù)運行。如果直接繼續(xù)(斷點自動繼續(xù)數(shù)目寄存器大于零),則調(diào)試控制器送出繼續(xù)脈沖,基本系統(tǒng)各模塊時鐘恢復。斷點建立代碼從等待循環(huán)退出,將內(nèi)存控制器退出自刷新狀態(tài)。斷點建立代碼結束,繼續(xù)運行測試。如果不是直接繼續(xù),則驗證系統(tǒng)將停留在暫停狀態(tài),調(diào)試主機可選擇進行系統(tǒng)狀態(tài)導出操作。 盡管參照優(yōu)選實施例已經(jīng)描述了本發(fā)明,本領域熟練技術人員將認識到,可以進行形式和細節(jié)上的改變,只要不脫離本發(fā)明的精神和范圍。本發(fā)明試圖不局限于被公開的 具體實施例,如預期用于實施本發(fā)明的最佳模式,相反,本發(fā)明將包括落入附加權利要求的 范圍的全部實施例。
權利要求
一種支持處理器硅后調(diào)試的裝置,包括調(diào)試主機和驗證系統(tǒng),其中驗證系統(tǒng)包括基本系統(tǒng)、調(diào)試控制器和網(wǎng)卡,其特征在于基本系統(tǒng)包括處理器核、內(nèi)存、啟動閃存、串口輸出和時鐘控制模塊;驗證系統(tǒng)還包括調(diào)試控制器;其中,所述時鐘控制模塊用于使各功能時鐘可被確定地停下,從而進入暫停狀態(tài),在暫停狀態(tài)下處理器中所有的內(nèi)部狀態(tài)都可通過測試接口訪問;所述調(diào)試控制器用于使調(diào)試主機可以遠程地讀取或者控制基本系統(tǒng)的接口信號。
2. 根據(jù)權利要求1所述的支持處理器硅后調(diào)試的裝置,其中基本系統(tǒng)內(nèi)的各個模塊均 為具有確定性的單時鐘同步模塊,且模塊之間的交互也實現(xiàn)確定性,因而使整個基本系統(tǒng) 行為完全確定。
3. 根據(jù)權利要求2所述的支持處理器硅后調(diào)試的裝置,其中調(diào)試控制器包括TAP接口、 復位控制寄存器、運行模式寄存器、暫停狀態(tài)寄存器、斷點自動繼續(xù)數(shù)目寄存器和脈沖生成 器。復位控制、運行模式、暫停狀態(tài)寄存器分別對應基本系統(tǒng)的接口信號,調(diào)試主機可通過 它們設置基本系統(tǒng)的復位信號和運行模式,并取得暫停信號的值;調(diào)試控制器還包括斷點自動繼續(xù)數(shù)目寄存器和脈沖生成器,用于決定基本系統(tǒng)進入暫 停狀態(tài)后是否自動恢復。
4. 根據(jù)權利要求3所述的支持處理器硅后調(diào)試的裝置,其中調(diào)試主機與驗證系統(tǒng)相 連,控制調(diào)試過程。
5. 根據(jù)權利要求4所述的支持處理器硅后調(diào)試的裝置,其特征在于測試時軟件的運 行局限在基本系統(tǒng)內(nèi)部,不會訪問基本系統(tǒng)以外的設備。
6. —種支持處理器硅后調(diào)試的方法,其特征在于,包括下面的步驟A、 準備驗證環(huán)境步驟,用于在基本系統(tǒng)內(nèi)部初始化驗證所需要的軟件環(huán)境;B、 運行驗證程序步驟,用于在基本系統(tǒng)中運行驗證程序;C、 系統(tǒng)狀態(tài)導入步驟,用于將保存在調(diào)試主機中的系統(tǒng)狀態(tài)加載到基本系統(tǒng)中;D、 系統(tǒng)狀態(tài)導出步驟,用于將基本系統(tǒng)系統(tǒng)的狀態(tài)導出保存到調(diào)試主機中;E、 建立快照點步驟,用于清理基本系統(tǒng)的狀態(tài),使其可被干凈地導入導出。
7. 根據(jù)權利要求6所述的支持處理器硅后調(diào)試的方法,其中準備驗證環(huán)境步驟A包括下面的步驟Al、調(diào)試主機將運行模式置于驗證準備模式,進行系統(tǒng)復位;A2、引導服務軟件通過網(wǎng)絡讀入驗證所需的軟件環(huán)境,存放到內(nèi)存區(qū)域V中;A3、將內(nèi)存控制器置于自刷新狀態(tài),并進入暫停狀態(tài);A4、調(diào)試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真。
8. 根據(jù)權利要求6所述的支持處理器硅后調(diào)試的方法,其中運行驗證程序步驟B包括下面的步驟Bl、調(diào)試主機將運行模式置于仿真調(diào)試模式,進行系統(tǒng)復位; B2、引導服務軟件識別當前運行模式,對基本系統(tǒng)進行初始化; B3、引導服務軟件跳轉至區(qū)域V中驗證環(huán)境的入口 ,啟動驗證系統(tǒng);B4 、驗證系統(tǒng)運行測試程序。
9. 根據(jù)權利要求6所述的支持處理器硅后調(diào)試的方法,其中系統(tǒng)狀態(tài)導入步驟C包括下面的步驟Cl、調(diào)試主機把運行模式置于狀態(tài)導入模式,進行系統(tǒng)復位; C2 、引導服務軟件識別當前運行模式,導入內(nèi)存狀態(tài)后暫停; C3、調(diào)試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真;C4、調(diào)試主機通過調(diào)試接口,用掃描鏈將被調(diào)試芯片的所有觸發(fā)器、宏單元、SRAM的值 寫入。
10. 根據(jù)權利要求6所述的支持處理器硅后調(diào)試的方法,其中系統(tǒng)狀態(tài)導出步驟D包括 下面的步驟Dl、調(diào)試主機通過調(diào)試接口,用掃描鏈將被調(diào)試芯片的所有觸發(fā)器、宏單元、SRAM的值 讀出;D2、運行模式置于狀態(tài)導出模式,進行系統(tǒng)復位;D3 、引導服務軟件識別當前運行模式,導出內(nèi)存狀態(tài)后暫停;D4、調(diào)試主機查詢暫停狀態(tài)寄存器,直至暫停狀態(tài)為真。
11. 根據(jù)權利要求6所述的支持處理器硅后調(diào)試的方法,其中建立快照點步驟E包括下 面的步驟El、驗證系統(tǒng)在一個周期性系統(tǒng)服務中加入斷點建立代碼;E2 、斷點建立代碼被調(diào)用,停止所有訪存操作,并將內(nèi)存控制器置于自刷新狀態(tài);E3 、斷點建立代碼發(fā)起停時鐘請求,進入定長等待循環(huán); E4、基本系統(tǒng)各模塊時鐘確定性地停下,進入暫停狀態(tài),斷點建立完成。
全文摘要
本發(fā)明公開了一種支持處理器硅后調(diào)試的裝置和方法,該裝置包括調(diào)試主機和驗證系統(tǒng),其中驗證系統(tǒng)包括基本系統(tǒng)、調(diào)試控制器和網(wǎng)卡?;鞠到y(tǒng)包括處理器核、內(nèi)存、啟動閃存、串口輸出和時鐘控制模塊。時鐘控制模塊用于使各功能時鐘可被確定地停下,從而進入暫停狀態(tài),在暫停狀態(tài)下處理器中所有的內(nèi)部狀態(tài)都可通過測試接口用掃描鏈訪問。驗證系統(tǒng)還包括調(diào)試控制器,用于與調(diào)試主機相連,使之可以遠程地讀取或者控制基本系統(tǒng)的接口信號。
文檔編號G06F11/26GK101714114SQ200910243809
公開日2010年5月26日 申請日期2009年12月21日 優(yōu)先權日2009年12月21日
發(fā)明者蘇孟豪, 陳云霽 申請人:北京龍芯中科技術服務中心有限公司