039]在下文中,將在附圖的基礎(chǔ)上描述優(yōu)選的實施方式。
[0040](第一實施方式)
[0041]描述第一實施方式。
[0042]圖1是示出了根據(jù)第一實施方式的包括直接存儲器存取(DMA)控制器的信息處理系統(tǒng)的配置示例的圖。如圖1所示,信息處理系統(tǒng)包括DMA控制器10、主CPU(中央處理單元)20、用于主CPU的RAM (隨機存取存儲器)30、副CPU 40、用于副CPU的RAM 50和介質(zhì)存取控制(MAC)部分60。
[0043]在圖1所示的信息處理系統(tǒng)中,副CPU 40和RAM 50的組合的功耗低于主CPU 20和RAM 30的組合的功耗。在正常操作狀態(tài)(正常模式)中,激活主CPU 20和副CPU 40 二者。另一方面,在備用狀態(tài)(備用模式)中,將至作為正常系統(tǒng)的主CPU 20和RAM 30的電力切斷從而主CPU 20和RAM 30被停止,并且執(zhí)行作為備用系統(tǒng)的副CPU 40和RAM50的處理。信息處理系統(tǒng)經(jīng)由MAC部分60和沒有示出的物理(PHY)部分連接至網(wǎng)絡(luò)。
[0044]DMA控制器10為基于存儲在RAM 30處的描述符31和存儲在RAM50處的描述符51來執(zhí)行數(shù)據(jù)的DMA傳送的描述符型DMA控制器。DMA控制器10包括描述符讀/寫處理部分102、數(shù)據(jù)讀/寫處理部分103、通道切換部分(分組切換器)104、模式設(shè)置寄存器105和分組數(shù)據(jù)保存緩沖器106。
[0045]DMA控制器10包括用于主CPU的DMA通道(主CPU通道)1lA和用于副CPU的DMA通道(副CPU通道)101B。即,根據(jù)本實施方式的DMA控制器10包括用于正常系統(tǒng)和備用系統(tǒng)中的每一個的單獨的DMA通道。
[0046]主CPU通道1lA包括接收DMA通道IllA和發(fā)送DMA通道121A。類似地,副CPU通道1lB包括接收DMA通道IllB和發(fā)送DMA通道121B。
[0047]每個接收通道lllA(lllB)包括基地址寄存器112A(112B)、當(dāng)前地址寄存器113A(113B)、結(jié)束地址寄存器114A(114B)、剩余分組的數(shù)目的寄存器115A(115B)、重啟處理部分116A(116B)和控制部分117A(117B)。每個發(fā)送通道121A(121B)包括基地址寄存器122A(122B)、當(dāng)前地址寄存器123A(123B)、結(jié)束地址寄存器124A(124B)、剩余分組的數(shù)目的寄存器125A(125B)、重啟處理部分126A(126B)和控制部分127A(127B)。
[0048]每個通道的基地址寄存器、當(dāng)前地址寄存器、結(jié)束地址寄存器、剩余分組的數(shù)目的寄存器、重啟處理部分和控制部分的各自的功能等等相同。將放在對應(yīng)的RAM上的描述符的第一個地址存儲在基地址寄存器處。將放在對應(yīng)的RAM上的描述符的結(jié)束地址存儲在結(jié)束地址寄存器處。將該描述符的與下一次要被處理的分組對應(yīng)的地址存儲在當(dāng)前地址寄存器處。實際上布置有分組的RAM的地址信息、分組的長度信息和用于分組的處理的信息包括在該描述符中。
[0049]剩余分組的數(shù)目的寄存器具有表示在DMA通道處沒有被處理的分組的數(shù)目(剩余分組的數(shù)目)的功能。重啟處理部分具有接收用于停止和啟動DMA通道的指令的功能。當(dāng)接收到用于停止DMA通道的指令時,重啟處理部分停止屬于該DMA通道的分組數(shù)據(jù)的傳送處理,并且執(zhí)行用于清除DMA通道的描述符信息的處理。當(dāng)接收到用于啟動DMA通道的指令時,重啟處理部分將基地址寄存器的值注冊至當(dāng)前地址寄存器,執(zhí)行用于清除剩余分組的數(shù)目的寄存器的處理,并且啟動DMA操作??刂撇糠挚刂圃诿總€寄存器處存儲的信息。
[0050]描述符讀/寫處理部分102執(zhí)行與描述符信息的讀和寫有關(guān)的處理。數(shù)據(jù)讀/寫處理部分103執(zhí)行與經(jīng)由MAC 60發(fā)送的數(shù)據(jù)有關(guān)的處理。分組數(shù)據(jù)保存緩沖器106為保持從網(wǎng)絡(luò)接收到的分組數(shù)據(jù)的緩沖器。
[0051]通道切換部分(分組切換器)104根據(jù)模式設(shè)置寄存器105處設(shè)置的信息來選擇并且切換要被使用的DMA通道。通道切換部分104的接收處理部分141向所選擇的DMA通道輸出接收分組數(shù)據(jù)。將來自所選擇的DMA通道的發(fā)送分組數(shù)據(jù)輸入至通道切換部分104的發(fā)送處理部分142。在模式設(shè)置寄存器105處設(shè)置表示信息處理系統(tǒng)的操作模式(即表示操作模式是正常操作狀態(tài)(正常模式)還是備用狀態(tài)(備用模式))的信息。由副CPU40執(zhí)行向模式設(shè)置寄存器105設(shè)置該信息。
[0052]通道切換部分104具有分組分析處理功能,并且根據(jù)模式設(shè)置寄存器105的信息在分組邊界處執(zhí)行DMA通道的切換。例如,根據(jù)本實施方式的信息處理系統(tǒng)接收來自網(wǎng)絡(luò)的采用圖2A所示的數(shù)據(jù)格式的數(shù)據(jù),并且將該數(shù)據(jù)作為接收分組數(shù)據(jù)202存儲至接收分組緩沖器201。
[0053]在圖2A中,將包括以太網(wǎng)報頭部分203、IP報頭部分204、TCP報頭部分205、有效載荷部分206和報尾207的TCP/IPv4的數(shù)據(jù)格式示出為示例。例如,可以從IP報頭部分204的總長度字段來獲取總IP分組的數(shù)據(jù)大小,并且可以從TCP報頭部分205的數(shù)據(jù)偏移字段獲取TCP報頭大小??梢愿鶕?jù)從IP報頭部分204獲取的總IP分組的數(shù)據(jù)大小和從TCP報頭部分205獲取的TCP報頭大小來獲取有效載荷部分206的數(shù)據(jù)大小。
[0054]如圖2B所示,當(dāng)接收到分組時,通道切換部分104的分組報頭分析部分211從接收分組緩沖器提取接收分組數(shù)據(jù)202的報頭數(shù)據(jù)并且對其進行分析,并且將分析出的報頭信息傳送至接收分組處理部分212。接收分組處理部分212基于從分組報頭分析部分211獲取的報頭信息從接收分組緩沖器獲取接收分組數(shù)據(jù)。接收分組處理部分212從接收分組數(shù)據(jù)中提取有效載荷數(shù)據(jù),將該有效載荷數(shù)據(jù)作為接收有效載荷數(shù)據(jù)214存儲至分組數(shù)據(jù)存儲器,并且在接收描述符213處設(shè)置分組信息。通道切換部分104通過一個分組單元來執(zhí)行這些處理。
[0055]圖3是示出了通道切換部分104在分組接收時的操作示例的流程圖。通道切換部分104基于根據(jù)所接收的分組數(shù)據(jù)的報頭部分的信息獲取的數(shù)據(jù)大小等等,執(zhí)行用于所選擇的DMA通道的數(shù)據(jù)傳送直到達到分組邊界的發(fā)送完成為止(SlOl)。
[0056]在達到分組邊界的傳送完成(在S102中為真)時,當(dāng)模式設(shè)置寄存器105處設(shè)置的信息為表示正常模式的信息(在S103中為真)時,通道切換部分104選擇主CPU通道1lA(S104)。隨后,通道切換部分104啟動從分組數(shù)據(jù)接收緩沖器106至主CPU通道1lA的針對一個分組的數(shù)據(jù)傳送(S105),并且處理返回至步驟SlOl。
[0057]另一方面,當(dāng)模式設(shè)置寄存器105處設(shè)置的信息不是表示正常模式的信息(即表示備用模式的信息)(在S103中為假)時,通道切換部分104選擇副CPU通道1lB (S106)。隨后,通道切換部分104啟動用于來自分組數(shù)據(jù)接收緩沖器106的一個分組的至副CPU通道1lB的數(shù)據(jù)傳送(S105),并且處理返回至步驟SlOl。
[0058]在根據(jù)本實施方式的信息處理系統(tǒng)處的分組接收處理中,每當(dāng)接收到一個分組時將分組數(shù)據(jù)存儲至RAM上的接收分組區(qū)域。然后根據(jù)圖4所示的流程圖,辨別RAM上的分組數(shù)據(jù)的存在/不存在,并且逐一處理該分組。即,即使在從接收到分組至模式切換處理的時段期間接收到新的分組,在任何時候也在將分組數(shù)據(jù)保存在RAM上的接收分組區(qū)域之后按順序處理該分組數(shù)據(jù),并且因此對模式切換處理等沒有影響。
[0059]圖4是示出了根據(jù)本實施方式的分組傳送處理的流程圖。當(dāng)信息處理系統(tǒng)檢測到從正常模式至備用模式的轉(zhuǎn)換或者從備用模式至正常模式的轉(zhuǎn)換(在S201中為是)時,執(zhí)行模式轉(zhuǎn)換處理(S202)。此后,當(dāng)RAM上存在接收分組(在S203中為是)時,執(zhí)行接收分組處理(S204),并且當(dāng)RAM上存在發(fā)送分組(在S205中為是)時,執(zhí)行發(fā)送分組處理(S206)。
[0060]圖5是示出了根據(jù)本實施方式的包括信息處理系統(tǒng)的模式切換的操作示例的流程圖。當(dāng)操作開始時,激活副CPU 40(S301)。隨后,重置與DMA控制器10中的副CPU(在下本中,被稱為副DMA)有關(guān)的功能部分(S302)。此后,初始化DMA控制器10中的副DMA,將RAM 50上的描述符的第一地址注冊至基地址寄存器112B、122B(S303),并且此后激活副DMA(S304)。
[0061]接下來,激活主CPU 20(S305)。隨后,重置與DMA控制器10中的主CPU (在下本中,被稱為主DMA)有關(guān)的功能部分(S306)。此后,初始化DMA控制器10中的主DMA,將RAM 30上的描述符的第一地址注冊至基地址寄存器112A、122A(S307),并且此后,激活主DMA(S308)。上述步驟S301至步驟S308的處理不限于所示的處理順序,而步驟S301至步驟S304的處理將按照所示的順序來執(zhí)行,并且步驟S305至步驟S308的處理將按照所示的順序來執(zhí)行。
[0062]接下來,副CPU 40將表示正常模式的信息寫至DMA控制器10的模式設(shè)置寄存器105(S309)。此后,執(zhí)行使用DMA控制器10的分組傳送處理(S310)。這時,當(dāng)接收到如下指令:其中,需要模式設(shè)置寄存器105的切換,S卩,從正常模式至備用模式或者從備用模式至正常模式的模式切換(在S311中為真)時,執(zhí)行CPU切換處理(S312),并且該處理返回至步驟S310。
[0063]圖6是示出了根據(jù)圖5中所示的第一實施方式的CPU切換處理的流程圖。在該CPU切換處理中,在使用主CPU 20的處理即模式為正常模式(在S401中為真)時激活在此之前被停止的主CPU 20(S402)。隨后,重置DMA控制器10中的主DMA(S403)。此后,初始化DMA控制器10中的主DMA,將RAM上的描述符的第一地址重新加載至基地址寄存器112A、122A(S404),并且此后,激活主 DMA(S405)。
[0064]主CPU 20向副CPU 40通知激活完成(S406)。接收到來自主CPU 20的激活完成的通知的副CPU 40在DMA控制器10的模式設(shè)置寄存器105處設(shè)置表示正常模式的信息(S407)。隨后,DMA控制器10的通道切換部分104根據(jù)模式設(shè)置寄存器105處設(shè)置的信息將要被使用的DMA通道切換至主CPU通道101A,向副CPU 40通知模式切換完成(S408),并且完成CPU切換處理。
[0065]另一方面,如果不是使用主CPU 20的處理(在S401中為假),則