国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種SSD主控芯片PCIe與NVMe的SR-IOV握手系統(tǒng)、方法、設(shè)備及介質(zhì)與流程

      文檔序號(hào):40282589發(fā)布日期:2024-12-11 13:23閱讀:14來(lái)源:國(guó)知局
      一種SSD主控芯片PCIe與NVMe的SR-IOV握手系統(tǒng)、方法、設(shè)備及介質(zhì)與流程

      所屬的技術(shù)人員能夠理解,本發(fā)明提供的ssd主控芯片pcie與nvme的sr-iov握手方法各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本公開(kāi)的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。在儲(chǔ)存ssd主控芯片pcie與nvme的sr-iov握手方法的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,可以為但不限于電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。盡管通過(guò)參考附圖并結(jié)合優(yōu)選實(shí)施例的方式對(duì)本發(fā)明進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。在不脫離本發(fā)明的精神和實(shí)質(zhì)的前提下,本領(lǐng)域普通技術(shù)人員可以對(duì)本發(fā)明的實(shí)施例進(jìn)行各種等效的修改或替換,而這些修改或替換都應(yīng)在本發(fā)明的涵蓋范圍內(nèi)/任何熟悉本的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。


      背景技術(shù):

      1、ssd,是solid?state?drive的簡(jiǎn)稱(chēng),固態(tài)硬盤(pán)。

      2、sr-iov,是single-root?i/o?virtualization的簡(jiǎn)稱(chēng),單根i/0虛擬化,是通過(guò)虛擬層與服務(wù)器存儲(chǔ)盤(pán)io進(jìn)行管理及共享的方式,sr-iov具有pf和vf兩種通道類(lèi)型,其中pf是pcie設(shè)備在物理通道的功能,vf是pcie設(shè)備在虛擬通道的功能。

      3、axi,是advanced?extensible?interface的簡(jiǎn)稱(chēng),一種總線協(xié)議。

      4、pcie,是peripheral?component?interconnect?express的簡(jiǎn)稱(chēng),高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn)。

      5、nvme,是nonvolatile?memory?express的簡(jiǎn)稱(chēng),非易失性快速存儲(chǔ)器。

      6、nvme?ssd借助sr-iov虛擬化技術(shù)可以減少用戶(hù)所需pcie設(shè)備數(shù)量,還能實(shí)現(xiàn)多命名空間管理,到達(dá)數(shù)據(jù)io相互隔離。支持sr-iov功能的nvme子系統(tǒng)具有物理功能及每個(gè)物理功能下的多個(gè)虛擬功能,各虛擬功能需要綁定到一個(gè)物理功能下,每個(gè)功能都會(huì)對(duì)應(yīng)一個(gè)nvme控制器。

      7、pcie與nvme控制器之間的數(shù)據(jù)交互是通過(guò)兩組axi總線進(jìn)行的,一組pcie作為主接口,向nvme控制器發(fā)送數(shù)據(jù),另一組pcie作為從接口,接收nvme控制器發(fā)送的數(shù)據(jù),設(shè)計(jì)過(guò)程需要將pcie每個(gè)功能的數(shù)據(jù)正確的傳輸給對(duì)應(yīng)的nvme控制器,錯(cuò)誤的傳輸會(huì)導(dǎo)致系統(tǒng)穩(wěn)定性和可靠性的降低。支持sr-iov的pcie系統(tǒng)中通過(guò)增加pf和vf邊帶信號(hào)表征axi數(shù)據(jù)傳輸是pf數(shù)據(jù)還是vf數(shù)據(jù),以及增加功能數(shù)指示axi總線上的數(shù)據(jù)來(lái)自哪個(gè)功能。氮?dú)舛嗤ㄟ^(guò)單個(gè)pf綁定多個(gè)vf方式,pcie功能與nvme控制器握手方式一般會(huì)采用axi總線的user信號(hào)進(jìn)行,例如一種相關(guān)方式中在pcie總增加pf_num信號(hào)指示哪一個(gè)pf,增加vf_num指示哪一個(gè)vf,o_vf_active指示pcie向nvme傳輸這一筆axi數(shù)據(jù)是否是vf的數(shù)據(jù),i_vf_active指示nvme向pcie傳輸這一筆axi數(shù)據(jù)是否是vf的數(shù)據(jù)。pcie作為主接口向nvme傳輸數(shù)據(jù)方向握手方式如下:

      8、1.當(dāng)o_vf_active=0時(shí)axi_user=pf_num;

      9、2.當(dāng)o_vf_active=1時(shí)axi_user=vf_num+1;

      10、nvme作為主接口向pcie傳輸數(shù)據(jù)方向握手方式如下:

      11、1.判斷axi_user是否大于0;

      12、2.當(dāng)aix_user等于0時(shí),pf_num=0,i_vf_active=0;

      13、3.當(dāng)aix_user大于0時(shí),vf_num=aix_user-1,i_vf_active=1。

      14、此為現(xiàn)有技術(shù)的不足,因此,針對(duì)現(xiàn)有技術(shù)中的上述缺陷,提供一種ssd主控芯片pcie與nvme的sr-iov握手系統(tǒng)、方法、設(shè)備及介質(zhì),是非常有必要的。


      技術(shù)實(shí)現(xiàn)思路

      1、針對(duì)現(xiàn)有技術(shù)的上述在支持sr-iov功能的pcie與nvme子系統(tǒng)的通信過(guò)程中,當(dāng)前的設(shè)計(jì)方式僅能使用在每個(gè)pf綁定確定固定個(gè)數(shù)vf的系統(tǒng)中,針對(duì)綁定vf個(gè)數(shù)不確定系統(tǒng),無(wú)法滿(mǎn)足握手需求的缺陷,本發(fā)明提供一種ssd主控芯片pcie與nvme的sr-iov握手系統(tǒng)、方法、設(shè)備及介質(zhì),以解決上述技術(shù)問(wèn)題。

      2、第一方面,本發(fā)明提供一種ssd主控芯片pcie與nvme的sr-iov握手系統(tǒng),包括nvme子系統(tǒng)和pcie控制器;

      3、nvme子系統(tǒng)包括若干nvme控制器;

      4、pcie控制器設(shè)有若干物理功能接口pf及若干虛擬功能接口vf;各虛擬功能接口vf綁定到一個(gè)物理功能接口pf;

      5、pcie控制器與nvme控制器通過(guò)axi總線連接;

      6、axi總線包括axuser信號(hào)線,在axuser信號(hào)線上設(shè)有sriov控制器;

      7、nvme子系統(tǒng)通過(guò)axuser信號(hào)線的信號(hào)對(duì)各nvme控制器進(jìn)行表示;

      8、sriov控制器,用于進(jìn)行pcie控制器的物理功能接口pf、虛擬功能接口vf的分配,進(jìn)行nvme子系統(tǒng)各nvme控制器地址與pcie控制器的物理功能接口pf編號(hào)、虛擬功能接口vf編號(hào)的轉(zhuǎn)換。

      9、進(jìn)一步地,axi總線還包括數(shù)據(jù)傳輸線,數(shù)據(jù)傳輸線包括主傳輸線和從傳輸線;

      10、主傳輸線以pcie控制器為主接口,以nvme控制器為從接口進(jìn)行數(shù)據(jù)傳輸;

      11、從傳輸線以nvme控制器為主接口,以pcie控制器為從接口進(jìn)行數(shù)據(jù)傳輸。

      12、進(jìn)一步地,axuser信號(hào)線包括主axuser信號(hào)線和從axuser信號(hào)線;

      13、主axuser信號(hào)線包括前段主寫(xiě)通道信號(hào)線、后段主寫(xiě)通道信號(hào)線、前段主讀通道信號(hào)線以及后段主讀通道信號(hào)線;

      14、前段主寫(xiě)通道信號(hào)線連接pcie控制器與sirov控制器,后段主寫(xiě)通道信號(hào)線連接sirov控制器與nvme控制器;

      15、從axuser信號(hào)線包括前段從寫(xiě)通道信號(hào)線、后段從寫(xiě)通道信號(hào)線、前段從讀通道信號(hào)線以及后段從讀通道信號(hào)線;

      16、前段從寫(xiě)通道信號(hào)線連接nvme控制器與sirov控制器,后段從寫(xiě)通道信號(hào)線連接sirov控制器與pcie控制器。

      17、進(jìn)一步地,sriov控制器設(shè)有:

      18、第一轉(zhuǎn)換模塊,在pcie控制器作為主接口向nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),將axuser信號(hào)線中vf活躍信號(hào)、當(dāng)前物理功能接口pf的編號(hào)、所需物理功能接口pf個(gè)數(shù)、每個(gè)物理功能接口pf下所需虛擬功能接口vf個(gè)數(shù)以及當(dāng)前物理功能接口pf編號(hào)下的虛擬功能接口vf編號(hào)轉(zhuǎn)換為表征nvme控制器的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser;

      19、第二轉(zhuǎn)換模塊,在pcie控制器作為從接口接收nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),將所需物理功能接口pf個(gè)數(shù)、每個(gè)物理功能接口pf下所需虛擬功能接口vf個(gè)數(shù)以及axuser信號(hào)線中表征nvme控制器的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser轉(zhuǎn)換為vf活躍信號(hào)、當(dāng)前物理功能接口pf編號(hào)以及當(dāng)前虛擬功能接口vf編號(hào)。

      20、進(jìn)一步地,第一轉(zhuǎn)換模塊包括:

      21、虛擬接口活躍功能識(shí)別單元,用于當(dāng)pcie控制器作為axi主接口向nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),識(shí)別axuser信號(hào)線中的vf活躍信號(hào)vf_active;

      22、第一用戶(hù)識(shí)別信號(hào)計(jì)算單元,用于當(dāng)vf_active=0時(shí)判定為虛擬功能接口vf未開(kāi)啟,用戶(hù)識(shí)別信號(hào)的編號(hào)axuser=當(dāng)前虛擬功能接口pf的編號(hào)pf_num;

      23、當(dāng)前物理功能接口識(shí)別單元,用于當(dāng)vf_active=1時(shí),判定為虛擬功能接口vf開(kāi)啟,獲取axuser信號(hào)線中當(dāng)前pcie描述符,識(shí)別當(dāng)前物理功能接口pf的編號(hào)pf_num;

      24、第二用戶(hù)識(shí)別信號(hào)計(jì)算單元,設(shè)定用戶(hù)識(shí)別信號(hào)的編號(hào)axuser=

      25、所需物理功能接口pf個(gè)數(shù)pf_num_total+當(dāng)前pf的編號(hào)pf_num之前每個(gè)物理功能接口pf下的虛擬功能接口vf數(shù)量之和+當(dāng)前物理功能接口pf下的當(dāng)前虛擬功能接口vf的編號(hào)vf_num;

      26、目的nvme控制器確定單元,用于根據(jù)用戶(hù)識(shí)別信號(hào)的編號(hào)axuser確定向哪一個(gè)nvme控制器傳輸數(shù)據(jù)。

      27、進(jìn)一步地,第二轉(zhuǎn)換模塊包括:

      28、用戶(hù)識(shí)別編號(hào)識(shí)別單元,用于當(dāng)pcie控制器作為axi從接口接收nvme系統(tǒng)傳輸數(shù)據(jù)時(shí),識(shí)別axuser信號(hào)線中的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser;

      29、用戶(hù)識(shí)別信號(hào)編號(hào)與所需物理功能數(shù)量比對(duì)單元,用于判斷用戶(hù)識(shí)別信號(hào)的編號(hào)axuser>所需物理功能接口pf個(gè)數(shù)pf_num_total-1是否成立;

      30、虛擬功能開(kāi)啟判定單元,用于用戶(hù)識(shí)別信號(hào)的編號(hào)axuser>所需物理功能接口pf個(gè)數(shù)pf_num_total-1成立時(shí),判定vf活躍信號(hào)vf_active=1;

      31、虛擬功能未開(kāi)啟判定都那樣,用于用戶(hù)識(shí)別信號(hào)的編號(hào)axuser>所需物理功能接口pf個(gè)數(shù)pf_num_total-1不成立時(shí),判定vf活躍信號(hào)vf_active=0;

      32、物理功能接口確定單元,用于設(shè)定當(dāng)前物理功能接口pf的編號(hào)pf_num需要所對(duì)應(yīng)的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser大于當(dāng)前物理功能接口pf前面所有物理功能接口pf對(duì)應(yīng)的虛擬功能接口vf編號(hào)pf*_vf_num加上所需物理功能接口pf的個(gè)數(shù)pf_num_total-1并且小于該物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num及前面所有物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num之和再加上所需物理功能接口pf個(gè)數(shù)pf_num_total;

      33、vf活躍信號(hào)判斷單元,用于判斷vf活躍信號(hào)vf_active是否為0;

      34、虛擬接口編號(hào)確定單元,用于vf活躍信號(hào)vf_active為0時(shí),設(shè)定當(dāng)前虛擬功能接口vf的編號(hào)vf_num等于用戶(hù)識(shí)別信號(hào)的編號(hào)axuser減去所需物理功能接口pf個(gè)數(shù)pf_num_total及該當(dāng)前物理功能接口pf的編號(hào)pf_num前面的物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num;

      35、目的pcie控制器接口確定單元,用于vf活躍信號(hào)vf_active不為0時(shí),根據(jù)當(dāng)前物理功能接口pf的編號(hào)pf_num、當(dāng)前虛擬功能接口vf的編號(hào)vf_num確定向pcie控制器的哪一個(gè)接口傳輸數(shù)據(jù)。

      36、第二方面,本發(fā)明提供一種ssd主控芯片pcie與nvme的sr-iov握手方法,包括如下步驟:

      37、s1.在pcie控制器與nvme子系統(tǒng)之間設(shè)置sriov控制器,并預(yù)先配置所需物理功能接口pf個(gè)數(shù)以及每個(gè)物理功能接口pf下所需的虛擬功能接口vf個(gè)數(shù);

      38、s2.在pcie控制器作為主接口向nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),sriov控制器將axuser信號(hào)線中vf活躍信號(hào)、當(dāng)前物理功能接口pf的編號(hào)、所需物理功能接口pf個(gè)數(shù)、每個(gè)物理功能接口pf下所需虛擬功能接口vf個(gè)數(shù)以及當(dāng)前物理功能接口pf編號(hào)下的虛擬功能接口vf編號(hào)轉(zhuǎn)換為表征nvme控制器的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser;

      39、s3.在pcie控制器作為從接口接收nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),sriov控制器將所需物理功能接口pf個(gè)數(shù)、每個(gè)物理功能接口pf下所需虛擬功能接口vf個(gè)數(shù)以及axuser信號(hào)線中表征nvme控制器的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser轉(zhuǎn)換為vf活躍信號(hào)、當(dāng)前物理功能接口pf編號(hào)以及當(dāng)前虛擬功能接口vf編號(hào)。

      40、進(jìn)一步地,步驟s1具體步驟如下:

      41、s11.在pcie控制器與各nvme控制器之間axi總線的axuser信號(hào)線上設(shè)置sriov控制器;

      42、s12.獲取pcie控制器最多支持的物理功能接口pf的個(gè)數(shù)pf_num_max和最多支持的虛擬功能接口vf的個(gè)數(shù)vf_num_max,并在sriov控制器中配置;

      43、s13.在sriov控制器配置所需物理功能接口pf個(gè)數(shù)pf_num_total以及每個(gè)物理功能接口pf的編號(hào)pf_num,其中所需物理功能接口pf的個(gè)數(shù)pf_num_total小于等于pcie控制器最多支持的物理功能接口pf的個(gè)數(shù)pf_num_max;

      44、s14.在sriov控制器配置每個(gè)物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num以及每個(gè)虛擬功能接口vf的編號(hào)vf_num,其中各物理功能接口pf的所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num之和小于等于pcie控制器最多支持的虛擬功能接口vf個(gè)數(shù)vf_num_max。

      45、進(jìn)一步地,步驟s2具體步驟如下:

      46、s21.當(dāng)pcie控制器作為axi主接口向nvme子系統(tǒng)傳輸數(shù)據(jù)時(shí),sriov控制器識(shí)別axuser信號(hào)線中的vf活躍信號(hào)vf_active;

      47、當(dāng)vf_active=0時(shí),進(jìn)入步驟s22;

      48、當(dāng)vf_active=1時(shí),進(jìn)入步驟s23;

      49、s22.判定為虛擬功能接口vf未開(kāi)啟,用戶(hù)識(shí)別信號(hào)的編號(hào)axuser=當(dāng)前虛擬功能接口pf的編號(hào)pf_num,進(jìn)入步驟s25;

      50、s23.判定為虛擬功能接口vf開(kāi)啟,獲取axuser信號(hào)線中當(dāng)前pcie描述符,識(shí)別當(dāng)前物理功能接口pf的編號(hào)pf_num;

      51、s24.用戶(hù)識(shí)別信號(hào)的編號(hào)axuser=

      52、所需物理功能接口pf個(gè)數(shù)pf_num_total+當(dāng)前pf的編號(hào)pf_num之前每個(gè)物理功能接口pf下的虛擬功能接口vf數(shù)量之和+當(dāng)前物理功能接口pf下的當(dāng)前虛擬功能接口vf的編號(hào)vf_num;

      53、s25.sriov控制器根據(jù)用戶(hù)識(shí)別信號(hào)的編號(hào)axuser確定向哪一個(gè)nvme控制器傳輸數(shù)據(jù)。

      54、進(jìn)一步地,步驟s3具體步驟如下:

      55、s31.當(dāng)pcie控制器作為axi從接口接收nvme系統(tǒng)傳輸數(shù)據(jù)時(shí),識(shí)別axuser信號(hào)線中的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser;

      56、s32.判斷用戶(hù)識(shí)別信號(hào)的編號(hào)axuser>所需物理功能接口pf個(gè)數(shù)pf_num_total-1是否成立;

      57、若是,判定vf活躍信號(hào)vf_active=1,進(jìn)入步驟s33;

      58、若否,判定vf活躍信號(hào)vf_active=0,進(jìn)入步驟s33;

      59、s33.當(dāng)前物理功能接口pf的編號(hào)pf_num需要所對(duì)應(yīng)的用戶(hù)識(shí)別信號(hào)的編號(hào)axuser大于當(dāng)前物理功能接口pf前面所有物理功能接口pf對(duì)應(yīng)的虛擬功能接口vf編號(hào)pf*_vf_num加上所需物理功能接口pf的個(gè)數(shù)pf_num_total-1并且小于該物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num及前面所有物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num之和再加上所需物理功能接口pf個(gè)數(shù)pf_num_total;

      60、s34.判斷vf活躍信號(hào)vf_active是否為0;

      61、若是,進(jìn)入步驟s36;

      62、若否,進(jìn)入步驟s35;

      63、s35.當(dāng)前虛擬功能接口vf的編號(hào)vf_num等于用戶(hù)識(shí)別信號(hào)的編號(hào)axuser減去所需物理功能接口pf個(gè)數(shù)pf_num_total及該當(dāng)前物理功能接口pf的編號(hào)pf_num前面的物理功能接口pf所需虛擬功能接口vf個(gè)數(shù)pf*_vf_num;

      64、s36.sriov控制器根據(jù)當(dāng)前物理功能接口pf的編號(hào)pf_num、當(dāng)前虛擬功能接口vf的編號(hào)vf_num確定向pcie控制器的哪一個(gè)接口傳輸數(shù)據(jù)。

      65、第三方面,本發(fā)明提供一種電子設(shè)備,包括處理器和存儲(chǔ)器;

      66、其中,該存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序,該處理器用于從存儲(chǔ)器中調(diào)用并運(yùn)行該計(jì)算機(jī)程序,使得電子設(shè)備執(zhí)行上述第二方面所述的方法。

      67、第四方面,本發(fā)明提供了一種存儲(chǔ)介質(zhì),

      68、所述存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述第二方面所述的方法。

      69、本發(fā)明的有益效果在于:

      70、本發(fā)明提供的ssd主控芯片pcie與nvme的sr-iov握手系統(tǒng)、方法、設(shè)備及介質(zhì),在支持sr-iov功能的ssd主控芯片中設(shè)計(jì)了sr-iov控制器,實(shí)現(xiàn)了pcie各功能接口與nvme控制器之間的握手,同時(shí)增加根據(jù)pcie分配不同pf與vf可以動(dòng)態(tài)配置與nvme控制器握手機(jī)制,與以往pcie每個(gè)vf要綁定固定nvme控制器相比,避免了nvme控制器資源的浪費(fèi)從而使資源利用更加合理,動(dòng)態(tài)分配可以使系統(tǒng)更加靈活。

      71、此外,本發(fā)明設(shè)計(jì)原理可靠,結(jié)構(gòu)簡(jiǎn)單,具有非常廣泛的應(yīng)用前景。

      72、由此可見(jiàn),本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步,其實(shí)施的有益效果也是顯而易見(jiàn)的。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1